DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_ORDER_IMPORT_UTIL_PVT

Source


1 PACKAGE BODY OE_ORDER_IMPORT_UTIL_PVT AS
2 /* $Header: OEXVIMUB.pls 120.1 2005/08/05 15:29:37 sphatarp noship $ */
3 
4 /* ---------------------------------------------------------------
5 --  Start of Comments
6 --  API name    OE_ORDER_IMPORT_UTIL_PVT
7 --  Type        Private
8 --  Function
9 --  Pre-reqs
10 --  Parameters
11 --  Version     Current version = 1.0
12 --              Initial version = 1.0
13 --  Notes
14 --
15 --  End of Comments
16 ------------------------------------------------------------------
17 */
18 
19 /* -----------------------------------------------------------
20    Procedure: Delete_Order
21    -----------------------------------------------------------
22 */
23 PROCEDURE Delete_Order(
24 	p_request_id     		IN  NUMBER
25        ,p_order_source_id     		IN  NUMBER
26        ,p_orig_sys_document_ref 	IN  VARCHAR2
27        ,p_sold_to_org_id                IN  NUMBER
28        ,p_sold_to_org                   IN  VARCHAR2
29        ,p_change_sequence 		IN  VARCHAR2
30        ,p_return_status         	OUT NOCOPY /* file.sql.39 change */ VARCHAR2
31 ) IS
32       l_api_name            CONSTANT VARCHAR2(30) := 'Delete_Order';
33       l_exists_reject_line           VARCHAR2(1);
34 BEGIN
35 
36     DELETE FROM oe_actions_interface
37     WHERE order_source_id       = p_order_source_id
38       AND orig_sys_document_ref = p_orig_sys_document_ref
39       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
40         = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
41       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
42         = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
43       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
44 	= nvl(p_change_sequence,FND_API.G_MISS_CHAR)
45       AND nvl(  request_id,	FND_API.G_MISS_NUM)
46 	= nvl(p_request_id,	FND_API.G_MISS_NUM);
47 
48     DELETE FROM oe_reservtns_interface
49     WHERE order_source_id       = p_order_source_id
50       AND orig_sys_document_ref = p_orig_sys_document_ref
51       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
52         = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
53       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
54         = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
55       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
56 	= nvl(p_change_sequence,FND_API.G_MISS_CHAR)
57       AND nvl(  request_id,	FND_API.G_MISS_NUM)
58 	= nvl(p_request_id,	FND_API.G_MISS_NUM);
59 
60     DELETE FROM oe_lotserials_interface
61     WHERE order_source_id       = p_order_source_id
62       AND orig_sys_document_ref = p_orig_sys_document_ref
63       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
64         = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
65       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
66         = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
67       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
68 	= nvl(p_change_sequence,FND_API.G_MISS_CHAR)
69       AND nvl(  request_id,	FND_API.G_MISS_NUM)
70 	= nvl(p_request_id,	FND_API.G_MISS_NUM);
71 
72     DELETE FROM oe_credits_interface
73     WHERE order_source_id       = p_order_source_id
74       AND orig_sys_document_ref = p_orig_sys_document_ref
75       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
76         = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
77       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
78         = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
79       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
80 	= nvl(p_change_sequence,FND_API.G_MISS_CHAR)
81       AND nvl(  request_id,	FND_API.G_MISS_NUM)
82 	= nvl(p_request_id,	FND_API.G_MISS_NUM);
83 
84     DELETE FROM oe_payments_interface
85     WHERE order_source_id       = p_order_source_id
86       AND orig_sys_document_ref = p_orig_sys_document_ref
87       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
88 	= nvl(p_change_sequence,FND_API.G_MISS_CHAR)
89       AND nvl(  request_id,	FND_API.G_MISS_NUM)
90 	= nvl(p_request_id,	FND_API.G_MISS_NUM);
91 
92     DELETE FROM oe_price_adjs_interface
93     WHERE order_source_id       = p_order_source_id
94       AND orig_sys_document_ref = p_orig_sys_document_ref
95       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
96         = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
97       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
98         = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
99       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
100 	= nvl(p_change_sequence,FND_API.G_MISS_CHAR)
101       AND nvl(  request_id,	FND_API.G_MISS_NUM)
102 	= nvl(p_request_id,	FND_API.G_MISS_NUM);
103 /* 1433292 */
104        DELETE FROM oe_price_atts_interface
105     WHERE order_source_id       = p_order_source_id
106       AND orig_sys_document_ref = p_orig_sys_document_ref
107       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
108         = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
109       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
110         = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
111       AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
112         = nvl(p_change_sequence,FND_API.G_MISS_CHAR)
113       AND nvl(  request_id,     FND_API.G_MISS_NUM)
114         = nvl(p_request_id,     FND_API.G_MISS_NUM);
115 
116     -- { Following changes are made to fix the bug 2922709
117     --   The issue is that the acknowledgment are not being send for the
118     --   Rejected Order and Line.
119     --   Fix is that we should not delete the lines if the
120     --   Reject_flag = 'Y' and if there is such line in that case
121     --   Order Header should also be not deleted.
122     --   And when the acknowledgments are being processed we should
123     --   use this information to create the data.
124 
125     --   Check if there is any Line with the Reject_Flag = 'Y'
126     Begin
127 
128       SELECT 1
129       INTO   l_exists_reject_line
130       FROM   oe_lines_interface
131       WHERE  order_source_id       = p_order_source_id
132       AND    orig_sys_document_ref = p_orig_sys_document_ref
133       AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
134            = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
135       AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
136            = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
137       AND    nvl(  change_sequence,FND_API.G_MISS_CHAR)
138 	   = nvl(p_change_sequence,FND_API.G_MISS_CHAR)
139       AND    nvl(  request_id,	FND_API.G_MISS_NUM)
140 	   = nvl(p_request_id,	FND_API.G_MISS_NUM)
141       AND    nvl(rejected_flag,'N')= 'Y'
142       AND    rownum                = 1;
143 
144       DELETE FROM oe_lines_interface
145       WHERE order_source_id       = p_order_source_id
146         AND orig_sys_document_ref = p_orig_sys_document_ref
147         AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
148           = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
149         AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
150           = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
151         AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
152           = nvl(p_change_sequence,FND_API.G_MISS_CHAR)
153         AND nvl(  request_id,	FND_API.G_MISS_NUM)
154           = nvl(p_request_id,	FND_API.G_MISS_NUM)
155         AND nvl(rejected_flag,'N')= 'N';
156     EXCEPTION
157       When NO_DATA_FOUND Then
158 
159       -- This is the OLD code path, let me put debug statement so
160       -- developer know this is executed..
161 
162       oe_debug_pub.add('Delete_Order - No_DATA - Old Path of execution');
163 
164       DELETE FROM oe_lines_interface
165       WHERE order_source_id       = p_order_source_id
166         AND orig_sys_document_ref = p_orig_sys_document_ref
167         AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
168           = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
169         AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
170           = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
171         AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
172           = nvl(p_change_sequence,FND_API.G_MISS_CHAR)
173         AND nvl(  request_id,	FND_API.G_MISS_NUM)
174           = nvl(p_request_id,	FND_API.G_MISS_NUM);
175 
176       DELETE FROM oe_headers_interface
177       WHERE order_source_id       = p_order_source_id
178         AND orig_sys_document_ref = p_orig_sys_document_ref
179         AND nvl(  sold_to_org_id, FND_API.G_MISS_NUM)
180           = nvl(p_sold_to_org_id, FND_API.G_MISS_NUM)
181         AND nvl(  sold_to_org, FND_API.G_MISS_CHAR)
182           = nvl(p_sold_to_org, FND_API.G_MISS_CHAR)
183         AND nvl(  change_sequence,FND_API.G_MISS_CHAR)
184           = nvl(p_change_sequence,FND_API.G_MISS_CHAR)
185         AND nvl(  request_id,	FND_API.G_MISS_NUM)
186          = nvl(p_request_id,	FND_API.G_MISS_NUM);
187 
188 
189     END;
190 
191     -- End of fix the bug 2922709}
192 
193     p_return_status := FND_API.G_RET_STS_SUCCESS;
194 
195 
196 EXCEPTION
197     WHEN OTHERS THEN
198       oe_debug_pub.add('Unexpected error: '||sqlerrm);
199 
200       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
201 	 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
202          OE_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,'Delete_Order',substr(sqlerrm,1,2000));
203       END IF;
204 
205 END Delete_Order;
206 
207 
208 /* -----------------------------------------------------------
209    Procedure: Delete_Messages
210    -----------------------------------------------------------
211 */
212 PROCEDURE Delete_Messages(
213 	p_request_id     		IN  NUMBER
214        ,p_order_source_id     		IN  NUMBER
215        ,p_orig_sys_document_ref 	IN  VARCHAR2
216        ,p_sold_to_org_id                IN  NUMBER
217        ,p_sold_to_org                   IN  VARCHAR2
218        ,p_change_sequence 		IN  VARCHAR2
219        ,p_org_id                        IN  VARCHAR2
220        ,p_return_status         	OUT NOCOPY /* file.sql.39 change */ VARCHAR2
221 ) IS
222 	l_api_name            CONSTANT VARCHAR2(30) := 'Delete_Messages';
223         l_request_id                  NUMBER          := p_request_id;
224         l_order_source_id             NUMBER          := p_order_source_id;
225         l_orig_sys_document_ref       VARCHAR2(50)    := p_orig_sys_document_ref;
226 	l_sold_to_org_id              NUMBER          := p_sold_to_org_id;
227         l_sold_to_org             VARCHAR2(360)          := p_sold_to_org;
228 
229         l_change_sequence             VARCHAR2(50)    := p_change_sequence;
230         l_org_id                      Number          := p_org_id;
231 BEGIN
232   --Commented this particular SQL statement as part of the
233   --fix for bug#2110646
234 
235   /*DELETE FROM OE_PROCESSING_MSGS_VL
236     WHERE order_source_id       	= p_order_source_id
237       AND original_sys_document_ref 	= p_orig_sys_document_ref
238       AND nvl(  change_sequence,	FND_API.G_MISS_CHAR)
239 	= nvl(p_change_sequence,	FND_API.G_MISS_CHAR);*/
240 
241 
242   --Call to DELETE_OI_MESSAGE to delete the messages from oe_processing_msgs
243   --and oe_processing_msgs_tl.Fix for bug#2110646.
244     OE_MSG_PUB.DELETE_OI_MESSAGE(
245             p_order_source_id           => l_order_source_id,
246             p_orig_sys_document_ref     => l_orig_sys_document_ref,
247             p_change_sequence           => l_change_sequence,
248             p_org_id                    => l_org_id
249            );
250 
251 
252 
253     p_return_status := FND_API.G_RET_STS_SUCCESS;
254 
255     EXCEPTION
256         WHEN OTHERS THEN
257 	  oe_debug_pub.add('Unexpected error: '||sqlerrm);
258 
259           IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
260 	     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
261              OE_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, 'Delete_Messages');
262           END IF;
263 
264 END Delete_Messages;
265 
266 
267 /* -----------------------------------------------------------
268    Function: Get_Line_Index
269    -----------------------------------------------------------
270 */
271 FUNCTION Get_Line_Index(
272         p_line_tbl			IN OE_Order_Pub.Line_Tbl_Type
273        ,p_orig_sys_line_ref 		IN VARCHAR2
274        ,p_orig_sys_shipment_ref		IN VARCHAR2
275 )
276 RETURN NUMBER
277 IS
278 	l_api_name            CONSTANT VARCHAR2(30) := 'Get_Line_Index';
279 BEGIN
280 
281 	FOR i IN 1 .. p_line_tbl.count
282 	LOOP
283 	   IF p_line_tbl(i).orig_sys_line_ref     = p_orig_sys_line_ref AND
284 	      p_line_tbl(i).orig_sys_shipment_ref = p_orig_sys_shipment_ref
285 	   THEN
286 		RETURN i;
287 	   END IF;
288 	END LOOP;
289 
290 END Get_Line_Index;
291 
292 
293 END OE_ORDER_IMPORT_UTIL_PVT;