DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_OSP_ORDERS_CUHK

Source


1 PACKAGE BODY AHL_OSP_ORDERS_CUHK AS
2 /* $Header: AHLCOSPB.pls 120.0 2005/11/11 11:49:50 jeli noship $*/
3 G_PKG_NAME CONSTANT VARCHAR2(30) :='AHL_OSP_ORDERS_CUHK';
4 PROCEDURE process_osp_order_pre(
5      p_osp_order_rec       IN  AHL_OSP_ORDERS_PVT.osp_order_rec_type,
6     p_osp_order_lines_tbl IN  AHL_OSP_ORDERS_PVT.osp_order_lines_tbl_type,
7     x_return_status       OUT NOCOPY VARCHAR2,
8     x_msg_count           OUT NOCOPY NUMBER,
9     x_msg_data            OUT NOCOPY VARCHAR2) IS
10 /*
11 CURSOR get_item_flag(c_inventory_item_id NUMBER, c_inventory_org_id NUMBER) IS
12 SELECT comms_nl_trackable_flag --hazardous_material_flag
13   FROM mtl_system_items_kfv
14  WHERE inventory_item_id = c_inventory_item_id
15    AND organization_id = c_inventory_org_id;
16   l_first_item_flag       VARCHAR2(1);
17   l_temp_item_flag        VARCHAR2(1);
18 */
19   l_msg_count             NUMBER;
20   l_api_name              VARCHAR2(30);
21 BEGIN
22   --Initialize API return status to success
23   x_return_status := FND_API.G_RET_STS_SUCCESS;
24 
25   l_api_name := 'PROCESS_OSP_ORDER_PRE';
26 
27   /* This section was commented out for the user to customize
28   IF (p_osp_order_rec.operation_flag = 'C' AND p_osp_order_lines_tbl.COUNT > 0) THEN
29     OPEN get_item_flag(p_osp_order_lines_tbl(1).inventory_item_id, p_osp_order_lines_tbl(1).inventory_org_id );
30     FETCH get_item_flag INTO l_first_item_flag;
31     IF get_item_flag%NOTFOUND THEN
32       FND_MESSAGE.set_name('AHL', 'AHL_OSP_ORD_INV_ITEM');
33       FND_MESSAGE.set_token('ITEM_ID', p_osp_order_lines_tbl(1).inventory_item_id);
34       FND_MSG_PUB.add;
35       CLOSE get_item_flag;
36       RAISE FND_API.G_EXC_ERROR;
37     ELSE
38       CLOSE get_item_flag;
39     END IF;
40     FOR i IN p_osp_order_lines_tbl.FIRST.. p_osp_order_lines_tbl.LAST LOOP
41       OPEN get_item_flag(p_osp_order_lines_tbl(i).inventory_item_id, p_osp_order_lines_tbl(i).inventory_org_id );
42       FETCH get_item_flag INTO l_temp_item_flag;
43       IF get_item_flag%NOTFOUND THEN
44         FND_MESSAGE.set_name('AHL', 'AHL_OSP_ORD_INV_ITEM');
45         FND_MESSAGE.set_token('ITEM_ID', p_osp_order_lines_tbl(i).inventory_item_id);
46         FND_MSG_PUB.ADD;
47         CLOSE get_item_flag;
48         RAISE FND_API.G_EXC_ERROR;
49       ELSE
50         CLOSE get_item_flag;
51       END IF;
52       IF ((l_first_item_flag IS NULL AND l_temp_item_flag IS NOT NULL) OR
53           (l_first_item_flag IS NOT NULL AND l_temp_item_flag IS NULL) OR
54           (l_temp_item_flag <> l_first_item_flag)) THEN
55         -- Throw an error about the mixed nature of items
56         FND_MESSAGE.set_name('AHL', 'AHL_OSP_CANNOT_MIX_ITEMS');
57         FND_MESSAGE.set_token('ITEM_ID', p_osp_order_lines_tbl(i).inventory_item_id);
58         FND_MSG_PUB.add;
59         RAISE FND_API.G_EXC_ERROR;
60       END IF;
61     END LOOP;
62   END IF;
63   */
64   -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
65   l_msg_count := FND_MSG_PUB.count_msg;
66   IF l_msg_count > 0 THEN
67     x_msg_count := l_msg_count;
68     RAISE FND_API.G_EXC_ERROR;
69   END IF;
70 
71   -- Count and Get messages (optional)
72   FND_MSG_PUB.count_and_get(
73     p_encoded  => FND_API.G_FALSE,
74     p_count    => x_msg_count,
75     p_data     => x_msg_data);
76 
77 EXCEPTION
78   WHEN FND_API.G_EXC_ERROR THEN
79     x_return_status := FND_API.G_RET_STS_ERROR;
80     FND_MSG_PUB.count_and_get(
81       p_encoded  => FND_API.G_FALSE,
82       p_count    => x_msg_count,
83       p_data     => x_msg_data);
84 
85   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
86     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
87     FND_MSG_PUB.count_and_get(
88       p_encoded  => FND_API.G_FALSE,
89       p_count    => x_msg_count,
90       p_data     => x_msg_data);
91 
92   WHEN OTHERS THEN
93     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
94     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
95     THEN
96       FND_MSG_PUB.add_exc_msg(
97         p_pkg_name         => G_PKG_NAME,
98         p_procedure_name   => l_api_name,
99         p_error_text       => SUBSTRB(SQLERRM,1,240));
100     END IF;
101     FND_MSG_PUB.count_and_get(
102       p_encoded  => FND_API.G_FALSE,
103       p_count    => x_msg_count,
104       p_data     => x_msg_data);
105 END process_osp_order_pre;
106 
107 PROCEDURE process_osp_order_post(
108     p_osp_order_rec       IN  AHL_OSP_ORDERS_PVT.osp_order_rec_type,
109     p_osp_order_lines_tbl IN  AHL_OSP_ORDERS_PVT.osp_order_lines_tbl_type,
110     x_return_status       OUT NOCOPY VARCHAR2,
111     x_msg_count           OUT NOCOPY NUMBER,
112     x_msg_data            OUT NOCOPY VARCHAR2) IS
113   l_msg_count             NUMBER;
114   l_api_name              VARCHAR2(30);
115 BEGIN
116   --Initialize API return status to success
117   x_return_status := FND_API.G_RET_STS_SUCCESS;
118 
119   l_api_name := 'PROCESS_OSP_ORDER_POST';
120 
121   --Users can add their own customization code here
122 
123   -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
124   l_msg_count := FND_MSG_PUB.count_msg;
125   IF l_msg_count > 0 THEN
126     x_msg_count := l_msg_count;
127     RAISE FND_API.G_EXC_ERROR;
128   END IF;
129 
130   -- Count and Get messages (optional)
131   FND_MSG_PUB.count_and_get(
132     p_encoded  => FND_API.G_FALSE,
133     p_count    => x_msg_count,
134     p_data     => x_msg_data);
135 
136 EXCEPTION
137   WHEN FND_API.G_EXC_ERROR THEN
138     x_return_status := FND_API.G_RET_STS_ERROR;
139     FND_MSG_PUB.count_and_get(
140       p_encoded  => FND_API.G_FALSE,
141       p_count    => x_msg_count,
142       p_data     => x_msg_data);
143 
144   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
145     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
146     FND_MSG_PUB.count_and_get(
147       p_encoded  => FND_API.G_FALSE,
148       p_count    => x_msg_count,
149       p_data     => x_msg_data);
150 
151   WHEN OTHERS THEN
152     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
153     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
154       FND_MSG_PUB.add_exc_msg(
155         p_pkg_name         => G_PKG_NAME,
156         p_procedure_name   => l_api_name,
157         p_error_text       => SUBSTRB(SQLERRM,1,240));
158     END IF;
159     FND_MSG_PUB.count_and_get(
160       p_encoded  => FND_API.G_FALSE,
161       p_count    => x_msg_count,
162       p_data     => x_msg_data);
163 END process_osp_order_post;
164 
165 END AHL_OSP_ORDERS_CUHK;