DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_SHORTCHECKEXEC_PUB

Source


1 PACKAGE BODY INV_ShortCheckExec_PUB AS
2 /* $Header: INVSEPUB.pls 120.1 2005/06/21 05:36:13 appldev ship $*/
3 G_PKG_NAME              CONSTANT VARCHAR2(30) := 'INV_ShortCheckExec_PUB';
4   -- Start OF comments
5   -- API name  : ExecCheck
6   -- TYPE      : Public
7   -- Pre-reqs  : None
8   -- FUNCTION  :
9   -- Parameters:
10   --     IN    :
11   --  p_api_version      IN  NUMBER (required)
12   --  	API Version of this procedure
13   --
14   --  p_init_msg_list   IN  VARCHAR2 (optional)
15   --    DEFAULT = FND_API.G_FALSE,
16   --
17   --  p_commit           IN  VARCHAR2 (optional)
18   --    DEFAULT = FND_API.G_FALSE
19   --
20   --
21   --     OUT   :
22   --  x_return_status    OUT NUMBER
23   --  	Result of all the operations
24   --
25   --  x_msg_count        OUT NUMBER,
26   --
27   --  x_msg_data         OUT VARCHAR2,
28   --
29   --  x_check_result	 OUT VARCHAR2
30   --
31   -- Version: Current Version 1.0
32   --              Changed : Nothing
33   --          No Previous Version 0.0
34   --          Initial version 1.0
35   -- Notes  :
36   -- END OF comments
37 PROCEDURE ExecCheck (
38   p_api_version 		IN NUMBER ,
39   p_init_msg_list 		IN VARCHAR2 DEFAULT FND_API.G_FALSE,
40   p_commit 			IN VARCHAR2 DEFAULT FND_API.G_FALSE,
41   x_return_status 		IN OUT NOCOPY VARCHAR2,
42   x_msg_count 			IN OUT NOCOPY NUMBER,
43   x_msg_data 			IN OUT NOCOPY VARCHAR2,
44   p_sum_detail_flag		IN NUMBER,
45   p_organization_id		IN NUMBER,
46   p_inventory_item_id		IN NUMBER,
47   p_comp_att_qty_flag		IN NUMBER,
48   p_primary_quantity		IN NUMBER DEFAULT 0,
49   x_seq_num			OUT NOCOPY NUMBER,
50   x_check_result		OUT NOCOPY VARCHAR2
51   )
52 IS
53      L_api_version 	CONSTANT NUMBER := 1.0;
54      L_api_name 	CONSTANT VARCHAR2(30) := 'ExecCheck';
55      L_Object_Exists	VARCHAR2(1);
56      --
57      CURSOR L_Item_crs ( p_organization_id    IN NUMBER,
58 		         p_inventory_item_id  IN NUMBER ) IS
59 	SELECT 'X'
60 	FROM   mtl_system_items
61 	WHERE  inventory_item_id = p_inventory_item_id
62 	AND    organization_id   = p_organization_id;
63      --
64   BEGIN
65      -- Standard Call to check for call compatibility
66      IF NOT FND_API.Compatible_API_Call(l_api_version
67            , p_api_version
68            , l_api_name
69            , G_PKG_NAME) THEN
70         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
71      END IF;
72      --
73      -- Initialize message list if p_init_msg_list is set to true
74      IF FND_API.to_Boolean(p_init_msg_list) THEN
75         FND_MSG_PUB.initialize;
76      END IF;
77      --
78      -- Initialize API return status to access
79      x_return_status := FND_API.G_RET_STS_SUCCESS;
80      --
81      -- Validate p_inventory_item_id if not null or statement type is summary
82      IF p_inventory_item_id IS NOT NULL OR p_sum_detail_flag = 2 THEN
83         OPEN L_Item_crs ( p_organization_id,
84 	                  p_inventory_item_id );
85         FETCH L_Item_crs INTO L_Object_Exists;
86         IF L_Item_crs%NOTFOUND THEN
87 	   FND_MESSAGE.SET_NAME('INV','INV_SHORT_ITEM_NOT_FOUND');
88 	   FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',TO_CHAR(p_inventory_item_id));
89 	   FND_MSG_PUB.Add;
90 	   RAISE FND_API.G_EXC_ERROR;
91         END IF;
92         CLOSE L_Item_crs;
93      END IF;
94      --
95      INV_ShortCheckExec_PVT.ExecCheck (
96   	p_api_version		=> 1.0,
97   	p_init_msg_list 	=> p_init_msg_list,
98   	p_commit 		=> p_commit,
99   	x_return_status		=> x_return_status,
100   	x_msg_count		=> x_msg_count,
101   	x_msg_data		=> x_msg_data,
102   	p_sum_detail_flag	=> p_sum_detail_flag,
103   	p_organization_id	=> p_organization_id,
104   	p_inventory_item_id	=> p_inventory_item_id,
105   	p_comp_att_qty_flag	=> p_comp_att_qty_flag,
106 	p_primary_quantity	=> p_primary_quantity,
107   	x_seq_num		=> x_seq_num,
108   	x_check_result		=> x_check_result
109   	);
110      --
111      -- Standard check of p_commit
112      IF FND_API.to_Boolean(p_commit) THEN
113         COMMIT;
114      END IF;
115      -- Standard call to get message count and if count is 1, get message info
116      FND_MSG_PUB.Count_And_Get
117      (p_count => x_msg_count
118         , p_data => x_msg_data);
119   EXCEPTION
120      WHEN FND_API.G_EXC_ERROR THEN
121      --
122      x_return_status := FND_API.G_RET_STS_ERROR;
123      --
124      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
125         , p_data => x_msg_data);
126      --
127      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
128      --
129      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
130      --
131      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
132         , p_data => x_msg_data);
133      --
134      WHEN OTHERS THEN
135      --
136      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
137      --
138      IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
139         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
140      END IF;
141      --
142      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
143         , p_data => x_msg_data);
144   END;
145   -- Start OF comments
146   -- API name  : CheckPrerequisites
147   -- TYPE      : Public
148   -- Pre-reqs  : None
149   -- FUNCTION  :
150   -- Parameters:
151   --     IN    :
152   --  p_api_version      IN  NUMBER (required)
153   --  	API Version of this procedure
154   --
155   --  p_init_msg_list   IN  VARCHAR2 (optional)
156   --    DEFAULT = FND_API.G_FALSE,
157   --
158   --  p_commit           IN  VARCHAR2 (optional)
159   --    DEFAULT = FND_API.G_FALSE
160   --
161   --
162   --     OUT   :
163   --  x_return_status    OUT NUMBER
164   --  	Result of all the operations
165   --
166   --  x_msg_count        OUT NUMBER,
167   --
168   --  x_msg_data         OUT VARCHAR2,
169   --
170   -- Version: Current Version 1.0
171   --              Changed : Nothing
172   --          No Previous Version 0.0
173   --          Initial version 1.0
174   -- Notes  :
175   -- END OF comments
176 PROCEDURE CheckPrerequisites (
177   p_api_version 		IN NUMBER ,
178   p_init_msg_list 		IN VARCHAR2 DEFAULT FND_API.G_FALSE,
179   x_return_status 		IN OUT NOCOPY VARCHAR2,
180   x_msg_count 			IN OUT NOCOPY NUMBER,
181   x_msg_data 			IN OUT NOCOPY VARCHAR2,
182   p_sum_detail_flag		IN NUMBER,
183   p_organization_id		IN NUMBER,
184   p_inventory_item_id		IN NUMBER,
185   p_transaction_type_id		IN NUMBER,
186   x_check_result		OUT NOCOPY VARCHAR2
187   )
188 IS
189      L_api_version 	CONSTANT NUMBER := 1.0;
190      L_api_name 	CONSTANT VARCHAR2(30) := 'CheckPrerequisites';
191      L_Object_Exists	VARCHAR2(1);
192      --
193      CURSOR L_Item_crs ( p_organization_id    IN NUMBER,
194 		         p_inventory_item_id  IN NUMBER ) IS
195 	SELECT 'X'
196 	FROM   mtl_system_items
197 	WHERE  inventory_item_id = p_inventory_item_id
198 	AND    organization_id   = p_organization_id;
199      --
200      CURSOR L_TransType_crs ( p_transaction_type_id  IN NUMBER ) IS
201 	SELECT 'X'
202         FROM   mtl_transaction_types
203 	WHERE  transaction_type_id = p_transaction_type_id;
204      --
205   BEGIN
206      -- Standard Call to check for call compatibility
207      IF NOT FND_API.Compatible_API_Call(l_api_version
208            , p_api_version
209            , l_api_name
210            , G_PKG_NAME) THEN
211         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
212      END IF;
213      --
214      -- Initialize message list if p_init_msg_list is set to true
215      IF FND_API.to_Boolean(p_init_msg_list) THEN
216         FND_MSG_PUB.initialize;
217      END IF;
218      --
219      -- Initialize API return status to access
220      x_return_status := FND_API.G_RET_STS_SUCCESS;
221      --
222      -- Validate p_inventory_item_id
223      OPEN L_Item_crs ( p_organization_id,
224          	       p_inventory_item_id );
225      FETCH L_Item_crs INTO L_Object_Exists;
226      IF L_Item_crs%NOTFOUND THEN
227         FND_MESSAGE.SET_NAME('INV','INV_ITEM_NOT_FOUND');
228 	FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',TO_CHAR(p_inventory_item_id));
229 	FND_MSG_PUB.Add;
230 	RAISE FND_API.G_EXC_ERROR;
231      END IF;
232      CLOSE L_Item_crs;
233      --
234      -- Validate p_transaction_type_id
235      IF p_transaction_type_id IS NOT NULL THEN
236         OPEN L_TransType_crs ( p_transaction_type_id );
237         FETCH L_TransType_crs INTO L_Object_Exists;
238         IF L_TransType_crs%NOTFOUND THEN
239            FND_MESSAGE.SET_NAME('INV','INV_TRANSACTION_TYPE_NOT_FOUND');
240 	   FND_MESSAGE.SET_TOKEN('TRANSACTION_TYPE_ID',
241 			         TO_CHAR(p_transaction_type_id));
242            FND_MSG_PUB.Add;
243            RAISE FND_API.G_EXC_ERROR;
244         END IF;
245         CLOSE L_TransType_crs;
246      END IF;
247      --
248      INV_ShortCheckExec_PVT.CheckPrerequisites (
249   	p_api_version		=> 1.0,
250   	p_init_msg_list 	=> p_init_msg_list,
251   	x_return_status		=> x_return_status,
252   	x_msg_count		=> x_msg_count,
253   	x_msg_data		=> x_msg_data,
254   	p_sum_detail_flag	=> p_sum_detail_flag,
255   	p_organization_id	=> p_organization_id,
256   	p_inventory_item_id	=> p_inventory_item_id,
257 	p_transaction_type_id	=> p_transaction_type_id,
258   	x_check_result		=> x_check_result
259   	);
260      --
261      -- Standard call to get message count and if count is 1, get message info
262      FND_MSG_PUB.Count_And_Get
263      (p_count => x_msg_count
264         , p_data => x_msg_data);
265   EXCEPTION
266      WHEN FND_API.G_EXC_ERROR THEN
267      --
268      x_return_status := FND_API.G_RET_STS_ERROR;
269      --
270      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
271         , p_data => x_msg_data);
272      --
273      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
274      --
275      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
276      --
277      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
278         , p_data => x_msg_data);
279      --
280      WHEN OTHERS THEN
281      --
282      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
283      --
284      IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
285         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
286      END IF;
287      --
288      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
289         , p_data => x_msg_data);
290   END;
291   -- Start OF comments
292   -- API name  : PurgeTempTable
293   -- TYPE      : Public
294   -- Pre-reqs  : None
295   -- FUNCTION  :
296   -- Parameters:
297   --     IN    :
298   --  p_api_version      IN  NUMBER (required)
299   --  	API Version of this procedure
300   --
301   --  p_init_msg_list   IN  VARCHAR2 (optional)
302   --    DEFAULT = FND_API.G_FALSE,
303   --
304   --  p_commit          IN  VARCHAR2 (optional)
305   --    DEFAULT = FND_API.G_FALSE
306   --
307   --  p_seq_num		IN NUMBER
308   --	Sequence number of rows which have to be deleted
309   --
310   --
311   --     OUT   :
312   --  x_return_status    OUT NUMBER
313   --  	Result of all the operations
314   --
315   --  x_msg_count        OUT NUMBER,
316   --
317   --  x_msg_data         OUT VARCHAR2,
318   --
319   --
320   -- Version: Current Version 1.0
321   --              Changed : Nothing
322   --          No Previous Version 0.0
323   --          Initial version 1.0
324   -- Notes  :
325   -- END OF comments
326 PROCEDURE PurgeTempTable (
327   p_api_version 		IN NUMBER ,
328   p_init_msg_list 		IN VARCHAR2 DEFAULT FND_API.G_FALSE,
329   p_commit 			IN VARCHAR2 DEFAULT FND_API.G_FALSE,
330   x_return_status 		IN OUT NOCOPY VARCHAR2,
331   x_msg_count 			IN OUT NOCOPY NUMBER,
332   x_msg_data 			IN OUT NOCOPY VARCHAR2,
333   p_seq_num			IN NUMBER
334   )
335 IS
336      L_api_version 	CONSTANT NUMBER := 1.0;
337      L_api_name 	CONSTANT VARCHAR2(30) := 'PurgeTempTable';
338   BEGIN
339      -- Standard Call to check for call compatibility
340      IF NOT FND_API.Compatible_API_Call(l_api_version
341            , p_api_version
342            , l_api_name
343            , G_PKG_NAME) THEN
344         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
345      END IF;
346      --
347      -- Initialize message list if p_init_msg_list is set to true
348      IF FND_API.to_Boolean(p_init_msg_list) THEN
349         FND_MSG_PUB.initialize;
350      END IF;
351      --
352      -- Initialize API return status to access
353      x_return_status := FND_API.G_RET_STS_SUCCESS;
354      --
355      INV_ShortCheckExec_PVT.PurgeTempTable (
356   	p_api_version 		=> 1.0,
357   	p_init_msg_list 	=> p_init_msg_list,
358   	p_commit 		=> p_commit,
359   	x_return_status		=> x_return_status,
360   	x_msg_count		=> x_msg_count,
361   	x_msg_data		=> x_msg_data,
362   	p_seq_num		=> p_seq_num
363      );
364      --
365      -- Standard check of p_commit
366      IF FND_API.to_Boolean(p_commit) THEN
367         COMMIT;
368      END IF;
369      -- Standard call to get message count and if count is 1, get message info
370      FND_MSG_PUB.Count_And_Get
371      (p_count => x_msg_count
372         , p_data => x_msg_data);
373   EXCEPTION
374      WHEN FND_API.G_EXC_ERROR THEN
375      --
376      x_return_status := FND_API.G_RET_STS_ERROR;
377      --
378      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
379         , p_data => x_msg_data);
380      --
381      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
382      --
383      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
384      --
385      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
386         , p_data => x_msg_data);
387      --
388      WHEN OTHERS THEN
389      --
390      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
391      --
392      IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
393         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
394      END IF;
395      --
396      FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
397         , p_data => x_msg_data);
398   END;
399 END INV_ShortCheckExec_PUB;