[Home] [Help]
PACKAGE BODY: APPS.OE_DELAYED_REQUESTS_PVT
Source
1 PACKAGE BODY OE_Delayed_Requests_PVT AS
2 /* $Header: OEXVREQB.pls 120.25.12010000.5 2008/11/20 14:00:36 vbkapoor ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Delayed_Requests_PVT';
7
8 g_requesting_entities OE_Order_PUB.Requesting_Entity_Tbl_Type;
9 G_MAX_REQUESTS NUMBER := 10000;
10
11 /* Local Procedures */
12 /* Local procedure to check if a request exists for a given entity, request
13 return the result in p_request_search_result which is set to FND_API.G_TRUE
14 if the request exists. The index of the request in request table is returned
15 in parameter x_request_ind
16
17 BUG 1794544 -
18 05/30/01: Changes to improve scalability of this search when there
19 is a large number of requests:
20
21 The index value where the request is stored is a function of the
22 entity_id value (the function was chosen to be 'mod' as this has
23 a high probability of resulting in a unique value as line ids are
24 generated sequentially). Therefore, this check would search only
25 through requests for the entity_id that resolves to the same
26 mod value.
27
28 If the request does NOT exist, then x_result is set to FND_API.G_FALSE
29 and the parameter x_request_ind has the index value where this request
30 should be inserted.
31 */
32
33 PROCEDURE Process_Scheduling_Request
34 ( p_request_ind IN NUMBER
35 ,p_request_rec IN OE_Order_PUB.request_rec_type
36 ,x_return_status OUT NOCOPY VARCHAR2);
37
38 PROCEDURE Check_Pricing_Request
39 ( p_request_ind IN NUMBER
40 ,p_request_rec IN OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.request_rec_type
41 ,x_log_request OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 );
43
44 Procedure Check_for_Request( p_entity_code in Varchar2
45 ,p_entity_id in Number
46 ,p_request_type in Varchar2
47 ,p_request_unique_key1 IN VARCHAR2
48 ,p_request_unique_key2 IN VARCHAR2
49 ,p_request_unique_key3 IN VARCHAR2
50 ,p_request_unique_key4 IN VARCHAR2
51 ,p_request_unique_key5 IN VARCHAR2
52 ,x_request_ind OUT NOCOPY Number
53
54 ,x_result OUT NOCOPY Varchar2
55
56 ,x_return_status OUT NOCOPY Varchar2)
57
58 IS
59 l_ind PLS_INTEGER;
60 l_max_ind PLS_INTEGER;
61 --
62 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
63 --
64 BEGIN
65 x_return_status := FND_API.G_RET_STS_SUCCESS;
66 x_result := FND_API.G_FALSE;
67 IF l_debug_level > 0 THEN
68 oe_debug_pub.add('Entering Procedure Check_for_Request in Package OE_Delayed_Requests_Pvt');
69 END IF;
70 -- l_ind to l_max_ind is the range of index positions that can
71 -- hold requests for this entity id - for e.g. if entity_id is
72 -- 2341 and G_MAX_REQUESTS is 10000 then the range would be:
73 -- 23410001 - 23420000
74
75 l_ind := (mod(p_entity_id,100000) * G_MAX_REQUESTS)+1;
76 l_max_ind := l_ind + G_MAX_REQUESTS - 1;
77
78 --oe_debug_pub.add('Max Ind :'||l_max_ind);
79
80 -- Starting from l_ind, search for the first index position
81 -- with a request. This is required as requests can be
82 -- deleted later which will result in indexes without any
83 -- requests. However, the search should still go over the
84 -- requests in the range from l_ind to l_max_ind.
85
86 IF NOT G_Delayed_Requests.Exists(l_ind) THEN
87 x_request_ind := l_ind;
88 l_ind := G_Delayed_Requests.Next(l_ind);
89 END IF;
90
91 WHILE G_Delayed_Requests.Exists(l_ind)
92 AND l_ind <= l_max_ind LOOP
93
94 x_request_ind := l_ind+1;
95
96 --oe_debug_pub.add('Index :'||l_ind);
97 --oe_debug_pub.add('Entity :'||G_Delayed_Requests(l_ind).Entity_code);
98 --oe_debug_pub.add('Entity ID:'||G_Delayed_Requests(l_ind).entity_id);
99 --oe_debug_pub.add('Request:'||G_Delayed_Requests(l_ind).request_type);
100
101 IF G_Delayed_Requests(l_ind).Entity_code = p_entity_code
102 AND
103 G_Delayed_Requests(l_ind).Entity_id = p_entity_id
104 AND
105 G_Delayed_Requests(l_ind).Request_Type = p_request_type
106 AND
107 NVL(G_Delayed_Requests(l_ind).request_unique_key1, FND_API.G_MISS_CHAR) =
108 NVL(p_request_unique_key1, FND_API.G_MISS_CHAR)
109 AND
110 NVL(G_Delayed_Requests(l_ind).request_unique_key2, FND_API.G_MISS_CHAR) =
111 NVL(p_request_unique_key2, FND_API.G_MISS_CHAR)
112 AND
113 NVL(G_Delayed_Requests(l_ind).request_unique_key3, FND_API.G_MISS_CHAR) =
114 NVL(p_request_unique_key3, FND_API.G_MISS_CHAR)
115 AND
116 NVL(G_Delayed_Requests(l_ind).request_unique_key4, FND_API.G_MISS_CHAR) =
117 NVL(p_request_unique_key4, FND_API.G_MISS_CHAR)
118 AND
119 NVL(G_Delayed_Requests(l_ind).request_unique_key5, FND_API.G_MISS_CHAR) =
120 NVL(p_request_unique_key5, FND_API.G_MISS_CHAR)
121 AND NVL(G_Delayed_Requests(l_ind).processed,'N') = 'N'
122 THEN
123 x_request_ind := l_ind;
124 x_result := FND_API.G_TRUE;
125 EXIT;
126 END IF;
127
128 l_ind := G_Delayed_Requests.Next(l_ind);
129
130 END LOOP;
131
132 IF x_request_ind > l_max_ind THEN
133 FND_MESSAGE.SET_NAME('ONT','OE_MAX_REQUESTS_EXCEEDED');
134 OE_MSG_PUB.ADD;
135 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
136 END IF;
137
138 EXCEPTION
139 WHEN OTHERS THEN
140 IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
141 THEN
142 OE_MSG_PUB.Add_Exc_Msg
143 (G_PKG_NAME
144 ,'CheckForRequest');
145 END IF;
146 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
147
148 End Check_For_Request;
149
150 FUNCTION Requests_Count
151 RETURN NUMBER
152 IS
153 BEGIN
154
155 RETURN G_Delayed_Requests.COUNT;
156
157 END Requests_Count;
158
159 PROCEDURE Process_Request_Pvt
160 (p_request_ind IN Number
161 ,p_delete IN Varchar2 default FND_API.G_FALSE
162 ,x_return_status OUT NOCOPY VARCHAR2)
163
164 IS
165 cursor included_lines_cur(p_header_id in number) is
166 select line_id
167 from oe_order_lines_all
168 where header_id = p_header_id
169 and item_type_code = 'INCLUDED';
170
171 l_request_rec OE_Order_PUB.request_rec_type;
172 l_request_type VARCHAR2(30);
173 l_return_status VARCHAR2(1);
174 l_entity_id NUMBER;
175 l_entity_code Varchar2(30);
176 l_req_entity_ind number;
177 l_set_index NUMBER;
178 l_set_request OE_Order_PUB.request_tbl_type;
179 l_sch_set_tbl OE_Order_PUB.request_tbl_type;
180 l_deleted_options_tbl OE_Order_PUB.request_tbl_type;
181 l_updated_options_tbl OE_Order_PUB.request_tbl_type;
182 l_index NUMBER;
183 l_d_index NUMBER;
184 l_u_index NUMBER;
185 l_set VARCHAR2(2000);
186 K NUMBER;
187 l_cto_request_rec OE_Order_PUB.request_rec_type;
188 l_cto_request_tbl OE_Order_PUB.request_tbl_type;
189 l_cto_split_tbl OE_Order_PUB.request_tbl_type;
190 l_cto_decimal_tbl OE_Order_PUB.request_tbl_type;
191 l_line_Tbl OE_ORDER_PUB.line_Tbl_type;
192 l_prc_adj_request OE_ORDER_PUB.request_tbl_type;
193 l_prc_adj_index NUMBER := 1;
194 I NUMBER := 1;
195 l_price_control_rec QP_PREQ_GRP.control_record_type;
196 l_msg_count NUMBER;
197 l_msg_data VARCHAR2(2000);
198 l_entity_id_tbl Entity_Id_Tbl_Type;
199 j number := 1;
200 l_unit_cost number; --MRG
201 l_count NUMBER; --2391781
202 l_set_id NUMBER := NULL; -- 2391781
203 payment_line_id NUMBER;
204 payment_header_id NUMBER;
205 old_invoice_to_org_id NUMBER; --R12 CC Encryption
206
207 l_header_id NUMBER; -- For IR ISO CMS Project
208 l_line_id NUMBER; -- For IR ISO CMS Project
209 l_cancel_order BOOLEAN := FALSE; -- For IR ISO CMS Project
210 --
211 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
212 --
213
214 BEGIN
215 IF l_debug_level > 0 THEN
216 oe_debug_pub.add('Entering Procedure Process_Request_Pvt ',1);
217 oe_debug_pub.add('Request processed '||G_Delayed_Requests(p_request_ind).processed);
218 END IF;
219 x_return_status := FND_API.G_RET_STS_SUCCESS;
220
221
222 -- if request has already been processed ('Y') or if the request is
223 -- being processed ('I'): this would occur if request resulted in
224 -- to a recursive call to process order (bug#1003821)
225 if (G_Delayed_Requests(p_request_ind).processed = 'Y'
226 OR G_Delayed_Requests(p_request_ind).processed = 'I')
227 then
228 RETURN;
229 end if;
230 l_request_rec := G_Delayed_Requests(p_request_ind);
231 l_entity_code := l_request_rec.entity_code;
232 l_entity_Id := l_request_rec.entity_Id;
233 l_request_type := l_request_rec.request_type;
234 IF l_debug_level > 0 THEN
235 oe_debug_pub.add('Request type '||l_request_type,1);
236 oe_debug_pub.add('Entity id '||l_entity_id, 5);
237 oe_debug_pub.add('param1 '||l_request_rec.param1, 5);
238 oe_debug_pub.add('param2 '||l_request_rec.param2, 5);
239 oe_debug_pub.add('param3 '||l_request_rec.param3, 5);
240 END IF;
241 G_Delayed_Requests(p_request_ind).processed := 'I';
242
243 IF l_debug_level > 0 THEN
244 IF OE_GLOBALS.G_CASCADING_REQUEST_LOGGED THEN
245 oe_debug_pub.add('cascade flag set to true');
246 ELSE
247 oe_debug_pub.add('cascade flag set to false');
248 END IF;
249 END IF;
250 -- Fix Bug 2062937: Do not set the cascade flag blindly for certain
251 -- delayed requests.
252 -- This will improve the performance of sales order form as lines
253 -- would not be re-queried if cascade flag is not set.
254 -- Requests for which cascade flag is not set:
255 -- 1) Pricing Integration will set the cascade flag only if order level
256 -- modifiers result in a change to attributes on any lines on this order.
257 -- 2) Verify Payment will set the cascade flag only if there are updates
258 -- back to the header for credit card payments.
259 -- 3) Apply Automatic Attachments: never results in an update back to order/lines.
260 -- NOTE: All other delayed requests also need to be evaluated so
261 -- that cascade flag is set in the request and not here.
262 IF OE_GLOBALS.G_PROCESS_OBJECTS_FLAG = TRUE THEN
263
264 IF l_Request_type NOT IN ('RECORD_HISTORY'
265 ,OE_GLOBALS.G_PRICE_ORDER
266 ,OE_GLOBALS.G_PRICE_ADJ
267 ,OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT
268 ,OE_GLOBALS.G_VERIFY_PAYMENT
269 ,OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP
270 ,OE_GLOBALS.G_CHECK_HSC_QUOTA_TOTAL
271 ,OE_GLOBALS.G_GENERATE_XML_REQ_HDR
272 ,OE_GLOBALS.G_GENERATE_XML_REQ_LN)
273 THEN
274 IF l_debug_level > 0 THEN
275 oe_debug_pub.add('****** process_obj=>delayed req execution ****', 1);
276 END IF;
277 OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := TRUE;
278 END IF;
279
280 END IF;
281
282
283 IF l_Request_type = 'RECORD_HISTORY' THEN
284 NULL;
285 ELSIF l_request_type = OE_GLOBALS.G_CHECK_PERCENTAGE
286 THEN
287
288 OE_DELAYED_REQUESTS_UTIL.check_percentage
289 (p_request_rec => l_request_rec,
290 x_return_status => l_return_status);
291
292 ELSIF l_request_type = OE_GLOBALS.G_CHECK_DUPLICATE THEN
293
294 OE_DELAYED_REQUESTS_UTIL.check_duplicate
295 (p_request_rec => l_request_rec,
296 x_return_status => l_return_status);
297
298 ELSIF l_request_type = OE_GLOBALS.G_CANCEL_WF THEN
299
300 OE_SALES_CAN_UTIL.Cancel_Wf
301 (x_request_rec => l_request_rec,
302 x_return_status => l_return_status);
303
304 ELSIF l_request_type = OE_GLOBALS.G_CHECK_FIXED_PRICE
305 THEN
306
307 OE_DELAYED_REQUESTS_UTIL.check_fixed_price
308 (p_request_rec => l_request_rec,
309 x_return_status => l_return_status);
310
311 ELSIF l_request_type = OE_GLOBALS.G_PRICE_ADJ THEN
312 IF l_debug_level > 0 THEN
313 Oe_Debug_pub.Add('Before Executing Delayed request Price Adjustment for '||l_request_rec.entity_id);
314 END IF;
315 /* 1905650
316 G_PRICE_ADJ request is now logged against LINE entity
317 */
318 If l_entity_code = OE_GLOBALS.G_ENTITY_LINE Then
319
320 oe_order_adj_pvt.Price_Adjustments(
321 X_Return_Status => l_Return_Status
322 ,p_Header_id => Null
323 ,p_Line_id => l_request_rec.entity_id
324 ,p_request_type_code=> 'ONT'
325 ,p_request_rec => l_request_rec
326 );
327 Else
328 oe_order_adj_pvt.Price_Adjustments(
329 X_Return_Status => l_Return_Status
330 ,p_Header_id => l_request_rec.entity_id
331 ,p_Line_id => null
332 ,p_request_type_code=> 'ONT'
333 ,p_request_rec => l_request_rec
334 );
335 End if;
336 IF l_debug_level > 0 THEN
337 Oe_Debug_pub.Add('After Executing Delayed request Price Adj for '||l_request_rec.entity_id);
338 END IF;
339 ELSIF l_request_type =
340 OE_GLOBALS.G_CHECK_HSC_QUOTA_TOTAL then
341 if l_entity_code = OE_GLOBALS.G_ENTITY_HEADER_SCREDIT
342 OR l_entity_code = OE_GLOBALS.G_ENTITY_ALL then -- bug 5746190
343 OE_DELAYED_REQUESTS_UTIL.Validate_HSC_QUOTA_TOTAL
344 ( x_return_status =>l_return_status
345 ,p_header_id =>to_number(l_request_rec.param1)
346 );
347 end if;
348
349 ELSIF l_request_type =
350 OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL then
351 if l_entity_code = OE_GLOBALS.G_ENTITY_Line_SCREDIT then
352 OE_DELAYED_REQUESTS_UTIL.Validate_LSC_QUOTA_TOTAL
353 ( x_return_status =>l_return_status
354 ,p_line_id =>to_number(l_request_rec.param1)
355 );
356 end if;
357
358 ELSIF l_request_type =
359 OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL then
360 if l_entity_code = OE_GLOBALS.G_ENTITY_Line_SCREDIT then
361 OE_DELAYED_REQUESTS_UTIL.Validate_LSC_QUOTA_TOTAL
362 ( x_return_status =>l_return_status
363 ,p_line_id =>to_number(l_request_rec.param1)
364 );
365 end if;
366
367 ELSIF l_request_type =
368 OE_GLOBALS.G_CASCADE_SERVICE_SCREDIT then
369 IF l_entity_code = OE_GLOBALS.G_ENTITY_Line_SCREDIT THEN
370 OE_DELAYED_REQUESTS_UTIL.Cascade_Service_Scredit
371 ( x_return_status =>l_return_status
372 ,p_request_rec =>l_request_rec
373 );
374 end if;
375
376
377 ELSIF (l_request_type = OE_GLOBALS.G_CREATE_SETS) then
378 OE_DELAYED_REQUESTS_UTIL.Insert_Set
379 (p_request_rec => l_request_rec,
380 x_return_status => l_return_status);
381 ELSIF l_request_type = OE_GLOBALS.G_INSERT_INTO_SETS then
382 IF l_entity_code = OE_GLOBALS.G_ENTITY_LINE then
383 /* Commenting out nocopy per Rupal */
384
385 null;
386 /* OE_Process_Models.Insert_Into_Line_Sets
387 (p_line_id =>l_entity_id
388 ,p_top_model_line_id =>l_request_rec.param2
389 ,p_set_type => 'ALL'
390 ,x_return_status =>l_return_status
391 ); */
392 END IF;
393 ELSIF l_request_type = OE_GLOBALS.G_VALIDATE_LINE_SET then
394 oe_delayed_requests_util.validate_line_set(
395 p_line_set_id => l_request_rec.entity_id,
396 x_return_status => l_return_status);
397 ELSIF l_request_type =
398 OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP then
399 OE_DELAYED_REQUESTS_UTIL.DFLT_Hscredit_Primary_Srep
400 ( x_return_status =>l_return_status
401 ,p_header_id =>to_number(l_request_rec.param1)
402 ,p_salesrep_id =>to_number(l_request_rec.param2)
403 );
404
405
406 ELSIF l_request_type =
407 OE_GLOBALS.G_VERIFY_PAYMENT then
408 OE_DELAYED_REQUESTS_UTIL.Verify_Payment
409 ( x_return_status =>l_return_status
410 ,p_header_id => l_entity_id
411 );
412
413 ELSIF l_request_type =
414 OE_GLOBALS.G_INSERT_RMA then
415 OE_DELAYED_REQUESTS_UTIL.INSERT_RMA_SCREDIT_ADJUSTMENT
416 ( x_return_status =>l_return_status
417 ,p_line_id => l_entity_id
418 );
419 OE_DELAYED_REQUESTS_UTIL.INSERT_RMA_OPTIONS_INCLUDED
420 ( x_return_status =>l_return_status
421 ,p_line_id => l_entity_id
422 );
423 -- Do not call INSERT_RMA_LOT_SERIAL for system split.
424 -- Bug 4651421
425 IF NOT((l_request_rec.param1 = OE_GLOBALS.G_OPR_UPDATE and
426 nvl(l_request_rec.param2,'USER') = 'SYSTEM' and
427 NVL(l_request_rec.param3,'X') = 'SPLIT')
428 OR
429 (l_request_rec.param1 = OE_GLOBALS.G_OPR_CREATE AND
430 l_request_rec.param4 IS NOT NULL AND
431 nvl(l_request_rec.param2, 'USER') = 'SYSTEM'))
432 THEN
433 OE_DELAYED_REQUESTS_UTIL.INSERT_RMA_LOT_SERIAL
434 ( x_return_status =>l_return_status
435 ,p_line_id => l_entity_id
436 );
437 END IF;
438 ELSIF l_request_type = OE_GLOBALS.G_TAX_LINE then
439
440 -- Renga - changed so that we call Process_Tax
441 l_entity_id_tbl(1).entity_id := l_entity_id;
442 -- l_entity_id_tbl(l_count).request_ind := 1;
443
444 l_entity_id_tbl(1).request_ind := p_request_ind;
445
446 /*
447 OE_DELAYED_REQUESTS_UTIL.TAX_LINE
448 ( x_return_status => l_return_status
449 , p_line_id => l_entity_id
450 );
451 */
452
453 OE_Delayed_Requests_UTIL.Process_Tax
454 (p_Entity_id_tbl => l_entity_id_tbl
455 ,x_return_status => l_return_status
456 );
457
458 ELSIF l_request_type = OE_GLOBALS.G_SPLIT_HOLD then
459 OE_DELAYED_REQUESTS_UTIL.Split_hold
460 ( p_entity_code => l_request_rec.entity_code
461 ,p_entity_id => l_request_rec.entity_id
462 ,p_split_from_line_id => l_request_rec.param1
463 ,x_return_status => l_return_status
464 );
465 ELSIF l_request_type =
466 OE_GLOBALS.G_EVAL_HOLD_SOURCE then
467 OE_DELAYED_REQUESTS_UTIL.Eval_Hold_Source
468 ( x_return_status => l_return_status
469 ,p_entity_code => l_request_rec.entity_code
470 ,p_entity_id => l_request_rec.entity_id
471 ,p_hold_entity_code => l_request_rec.param1
472 ,p_hold_entity_id => l_request_rec.param2
473 );
474
475 /* 1739574 */
476 ELSIF l_request_type = OE_GLOBALS.G_COMPLETE_ACTIVITY THEN
477 IF l_debug_level > 0 THEN
478 oe_debug_pub.ADD('Calling wf_engine.CompleteActivityInternalName for '||l_request_rec.param1 || '/'||l_request_rec.param2||'/'||l_request_rec.param3 ||'/'||'/'||l_request_rec.param4, 3);
479 END IF;
480 wf_engine.CompleteActivityInternalName(l_request_rec.param1,l_request_rec.param2,l_request_rec.param3,l_request_rec.param4);
481 IF l_debug_level > 0 THEN
482 oe_debug_pub.ADD('Returned from wf_engine.CompleteActivityInternalName ',3);
483 END IF;
484 ELSIF l_request_rec.request_type = OE_GLOBALS.G_UPDATE_SHIPPING THEN
485
486 OE_Delayed_Requests_UTIL.Update_Shipping
487 ( p_update_shipping_tbl => g_delayed_requests
488 , p_line_id => l_request_rec.entity_id
489 , p_operation => l_request_rec.request_unique_key1
490 , x_return_status => l_return_status
491 );
492
493 ELSIF l_request_rec.request_type = OE_GLOBALS.G_SHIP_CONFIRMATION THEN
494
495 OE_Delayed_Requests_UTIL.Ship_Confirmation
496 ( p_ship_confirmation_tbl => g_delayed_requests
497 , p_line_id => l_request_rec.entity_id
498 , p_process_type => l_request_rec.request_unique_key1
499 , p_process_id => l_request_rec.param1
500 , x_return_status => l_return_status
501 );
502
503
504 /* 7576948: IR ISO Change Management project Start */
505 -- This code is hooked up for IR ISO project so as to trigger
506 -- the new procedure OE_Delated_Requests_Util.Update_Requisition_Info
507 -- for update of internal requisition based on changes offered by
508 -- sales order user w.r.t Ordered Quantity, Schedule Ship/Arrival
509 -- Date or Line/Header cancellation
510
511 -- For details on IR ISO CMS project, please refer to FOL >
512 -- OM Development > OM GM > 12.1.1 > TDD > IR_ISO_CMS_TDD.doc
513
514
515 ELSIF l_request_rec.request_type = OE_GLOBALS.G_UPDATE_REQUISITION THEN
516
517 IF NVL(l_request_rec.param2,'N') = 'Y' THEN
518 IF l_debug_level > 0 THEN
519 oe_debug_pub.add('Requisition Header Cancellation is TRUE',5);
520 END IF;
521 l_cancel_order := TRUE;
522
523 -- For Requisition Header Cancellation, following information is not needed -
524 l_request_rec.param1 := NULL;
525 l_request_rec.date_param1 := NULL;
526 ELSE
527 IF l_debug_level > 0 THEN
528 oe_debug_pub.add('Requisition Header Cancellation is FALSE',5);
529 END IF;
530 l_cancel_order := FALSE;
531 END IF;
532
533 IF l_request_rec.entity_code = OE_Globals.G_Entity_Header THEN
534 l_header_id := l_request_rec.entity_id;
535 l_line_id := NULL;
536 ELSIF l_request_rec.entity_code = OE_Globals.G_Entity_Line THEN
537 l_header_id := l_request_rec.request_unique_key1;
538 l_line_id := l_request_rec.entity_id;
539 END IF;
540
541 OE_Delayed_Requests_UTIL.Update_Requisition_Info
542 ( P_Requisition_Header_id => l_request_rec.request_unique_key2
543 , P_Requisition_Line_id => l_request_rec.request_unique_key3
544 , P_Header_id => l_header_id
545 , p_Line_id => l_line_id
546 , p_Line_ids => l_request_rec.long_param1
547 , p_num_records => l_request_rec.param3
548 , P_Quantity_Change => l_request_rec.param1
549 , P_New_Schedule_Ship_Date => l_request_rec.date_param1
550 , P_Cancel_order => l_cancel_order -- Param2
551 , X_Return_Status => l_return_status
552 );
553
554
555 /* ============================= */
556 /* IR ISO Change Management Ends */
557
558
559 ELSIF l_request_type =
560 OE_GLOBALS.G_CASCADE_CHANGES then
561 IF l_debug_level > 0 THEN
562 oe_debug_pub.add('Performing Delayed Req for Cascade Changes',1);
563 END IF;
564
565 OE_CONFIG_UTIL.CASCADE_CHANGES
566 ( p_parent_line_id => l_request_rec.entity_id
567 , p_request_rec => l_request_rec
568 , x_return_status => l_return_status
569 );
570 IF l_debug_level > 0 THEN
571 oe_debug_pub.add('done Delayed Req for Cascade Changes',1);
572 END IF;
573
574 ELSIF l_request_type =
575 OE_GLOBALS.G_CHANGE_CONFIGURATION then
576
577 oe_debug_pub.add('Performing Delayed Req for Change Config',1);
578
579 OE_CONFIG_UTIL.CHANGE_CONFIGURATION
580 ( p_request_rec => l_request_rec
581 , x_return_status => l_return_status
582 );
583 IF l_debug_level > 0 THEN
584 oe_debug_pub.add('Done Delayed Req for Change Config',1);
585 END IF;
586
587 ELSIF l_request_type =
588 OE_GLOBALS.G_CREATE_RESERVATIONS then
589 OE_DELAYED_REQUESTS_UTIL.SPLIT_RESERVATIONS
590 ( p_reserved_line_id => l_request_rec.entity_id
591 , p_ordered_quantity => to_number(l_request_rec.param1)
592 , p_reserved_quantity => to_number(l_request_rec.param2)
593 , x_return_status => l_return_status
594 );
595
596 ELSIF l_request_type =
597 OE_GLOBALS.G_COPY_CONFIGURATION then
598 OE_Config_Pvt.Copy_Config
599 ( p_top_model_line_id => l_request_rec.entity_id ,
600 p_config_hdr_id => l_request_rec.param1 ,
601 p_config_rev_nbr => l_request_rec.param2 ,
602 p_configuration_id => l_request_rec.param4 ,
603 p_remnant_flag => l_request_rec.param3 ,
604 x_return_status => l_return_status
605 );
606
607 ELSIF l_request_type =
608 OE_GLOBALS.G_COMPLETE_CONFIGURATION then
609 OE_DELAYED_REQUESTS_UTIL.COMPLETE_CONFIGURATION
610 ( p_top_model_line_id => l_request_rec.entity_id
611 , x_return_status => l_return_status
612 );
613 -- No Processing here. The processing will be done in
614 -- Process_Delayed_Requests at the Commit Time.
615
616 ELSIF l_request_type = OE_GLOBALS.G_DROPSHIP_CMS THEN
617 RETURN;
618
619 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
620 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
621 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
622 RAISE FND_API.G_EXC_ERROR;
623 END IF;
624 ELSIF l_request_type = OE_GLOBALS.G_UPDATE_OPTION THEN
625 IF l_debug_level > 0 THEN
626 oe_debug_pub.add('upd: processed with cfg val', 3);
627 END IF;
628 RETURN;
629
630 ELSIF l_request_type = OE_GLOBALS.G_DELETE_OPTION THEN
631 IF l_debug_level > 0 THEN
632 oe_debug_pub.add('del: processed with cfg val', 3);
633 END IF;
634 RETURN;
635
636 ELSIF l_request_type =
637 OE_GLOBALS.G_VALIDATE_CONFIGURATION
638 THEN
639
640 -- Get the delayed requests logged for deletions and updatations
641 -- which needs to be passed to validate_configuration.
642
643 l_d_index := 0;
644 l_u_index := 0;
645 K := G_Delayed_Requests.FIRST;
646
647 WHILE K is not null -- while loop safe that tbl.first to last
648 LOOP
649
650 IF G_Delayed_Requests(K).request_type = OE_GLOBALS.G_DELETE_OPTION OR
651 G_Delayed_Requests(K).request_type = OE_GLOBALS.G_UPDATE_OPTION
652 THEN
653
654 IF G_Delayed_Requests(K).request_type = OE_GLOBALS.G_DELETE_OPTION
655 AND G_Delayed_Requests(K).param1 = l_request_rec.entity_id
656 THEN
657 l_d_index := l_d_index + 1;
658 l_deleted_options_tbl(l_d_index) :=
659 g_delayed_requests(K);
660 END IF;
661
662 IF G_Delayed_Requests(K).request_type = OE_GLOBALS.G_UPDATE_OPTION
663 AND G_Delayed_Requests(K).param1 = l_request_rec.entity_id
664 THEN
665 l_u_index := l_u_index + 1;
666 l_updated_options_tbl(l_u_index) :=
667 g_delayed_requests(K);
668 END IF;
669 -- delete after both updete and delete checks,
670 -- if deleted in the inside if, no_data_found exceptiion
671 -- g_delayed_requests.delete(K);
672 END IF;
673 K := G_Delayed_Requests.NEXT(K);
674 END LOOP;
675 IF l_debug_level > 0 THEN
676 oe_debug_pub.add('out of loop for upd/del options table', 1);
677 END IF;
678
679 OE_DELAYED_REQUESTS_UTIL.VALIDATE_CONFIGURATION
680 ( p_top_model_line_id => l_request_rec.entity_id
681 , p_deleted_options_tbl => l_deleted_options_tbl
682 , p_updated_options_tbl => l_updated_options_tbl
683 , x_return_status => l_return_status
684 );
685 IF l_debug_level > 0 THEN
686 oe_debug_pub.add('ret sts: '|| x_return_status, 4);
687 END IF;
688
689 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
690 oe_debug_pub.add('deleteing after success ', 3);
691 K := G_Delayed_Requests.FIRST;
692
693 WHILE K is not null
694 LOOP
695 IF (G_Delayed_Requests(K).request_type =
696 OE_GLOBALS.G_DELETE_OPTION OR
697 G_Delayed_Requests(K).request_type =
698 OE_GLOBALS.G_UPDATE_OPTION ) AND
699 G_Delayed_Requests(K).param1 = l_request_rec.entity_id
700 THEN
701 G_Delayed_Requests.delete(K);
702 END IF;
703
704 K := G_Delayed_Requests.NEXT(K);
705
706 END LOOP;
707 END IF;
708
709
710 ELSIF l_request_type = OE_GLOBALS.G_CTO_CHANGE THEN
711 IF l_debug_level > 0 THEN
712 oe_debug_pub.add('cto: processed with notification', 3);
713 END IF;
714 RETURN;
715
716 ELSIF l_request_type =
717 OE_GLOBALS.G_CTO_NOTIFICATION then
718 -- loop over and call cto
719 IF l_debug_level > 0 THEN
720 oe_debug_pub.add('cto notification excecution', 2);
721 END IF;
722
723 K := G_Delayed_Requests.FIRST;
724
725 WHILE K is not null
726 LOOP
727 IF G_Delayed_Requests(K).request_type =
728 OE_GLOBALS.G_CTO_CHANGE AND
729 G_Delayed_Requests(K).param3 = l_request_rec.entity_id
730 THEN
731 IF l_debug_level > 0 THEN
732 oe_debug_pub.add(K || 'cto change req ', 3);
733 END IF;
734 IF G_Delayed_Requests(K).request_unique_key1 = 'Quantity'
735 THEN
736 l_cto_request_rec.param1 := G_Delayed_Requests(K).param1;
737 l_cto_request_rec.param2 := G_Delayed_Requests(K).param2;
738
739 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Req Date'
740 THEN
741 l_cto_request_rec.param3 := G_Delayed_Requests(K).param1;
742 l_cto_request_rec.param4 := G_Delayed_Requests(K).param2;
743
744 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Ship Date'
745 THEN
746 l_cto_request_rec.param5 := G_Delayed_Requests(K).param1;
747 l_cto_request_rec.param6 := G_Delayed_Requests(K).param2;
748
749 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Arr Date'
750 THEN
751 l_cto_request_rec.param7 := G_Delayed_Requests(K).param1;
752 l_cto_request_rec.param8 := G_Delayed_Requests(K).param2;
753
754 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Config Chg'
755 THEN
756 l_cto_request_rec.param9 := 'Y';
757
758 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Warehouse'
759 THEN
760 l_cto_request_rec.param10 := G_Delayed_Requests(K).param1;
761 l_cto_request_rec.param11 := G_Delayed_Requests(K).param2;
762 -- INVCONV
763 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Quantity2'
764 THEN
765 l_cto_request_rec.param12 := G_Delayed_Requests(K).param1;
766 l_cto_request_rec.param13 := G_Delayed_Requests(K).param2;
767
768 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Uom2'
769 THEN
770 l_cto_request_rec.param14 := G_Delayed_Requests(K).param1;
771 l_cto_request_rec.param15 := G_Delayed_Requests(K).param2;
772
773 ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Uom'
774 THEN
775 l_cto_request_rec.param16 := G_Delayed_Requests(K).param1;
776 l_cto_request_rec.param17 := G_Delayed_Requests(K).param2;
777
778 -- INVCONV
779
780 ELSIF G_Delayed_Requests(K).request_unique_key1 =
781 'Config Chg pto_ato'
782 THEN
783 IF l_debug_level > 0 THEN
784 oe_debug_pub.add('ptoato '|| G_Delayed_Requests(K).param4, 1);
785 END IF;
786 l_cto_request_tbl(K).param1 := G_Delayed_Requests(K).param4;
787 l_cto_request_tbl(K).param2 := G_Delayed_Requests(K).param5;
788
789 ELSIF G_Delayed_Requests(K).request_unique_key1 =
790 'Decimal Chg'
791 THEN
792 IF l_debug_level > 0 THEN
793 oe_debug_pub.add('for decimal '||G_Delayed_Requests(K).entity_id, 1);
794 END IF;
795 l_cto_decimal_tbl(K) := G_Delayed_Requests(K);
796
797 ELSIF G_Delayed_Requests(K).request_unique_key1 =
798 'Split Create'
799 THEN
800 IF l_debug_level > 0 THEN
801 oe_debug_pub.add('split '|| G_Delayed_Requests(K).param4, 1);
802 END IF;
803 l_cto_split_tbl(K) := G_Delayed_Requests(K);
804 END IF;
805 IF l_debug_level > 0 THEN
806 oe_debug_pub.add(G_Delayed_Requests(K).request_unique_key1, 4);
807 END IF;
808 --G_Delayed_Requests.delete(K);
809 END IF;
810
811 IF l_debug_level > 0 THEN
812 oe_debug_pub.add('cto looping', 4);
813 END IF;
814
815 K := G_Delayed_Requests.NEXT(K);
816 END LOOP;
817
818 OE_CONFIG_UTIL.Notify_CTO
819 ( p_ato_line_id => l_request_rec.entity_id
820 , p_request_rec => l_cto_request_rec
821 , p_request_tbl => l_cto_request_tbl
822 , p_split_tbl => l_cto_split_tbl
823 , p_decimal_tbl => l_cto_decimal_tbl
824 , x_return_status => l_return_status);
825
826 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
827 IF l_debug_level > 0 THEN
828 oe_debug_pub.add('deleteing after success ', 3);
829 END IF;
830 K := G_Delayed_Requests.FIRST;
831
832 WHILE K is not null
833 LOOP
834 IF G_Delayed_Requests(K).request_type =
835 OE_GLOBALS.G_CTO_CHANGE AND
836 G_Delayed_Requests(K).param3 = l_request_rec.entity_id
837 THEN
838 G_Delayed_Requests.delete(K);
839 END IF;
840
841 K := G_Delayed_Requests.NEXT(K);
842
843 END LOOP;
844 END IF;
845 ELSIF l_request_type =
846 OE_GLOBALS.G_GROUP_SET THEN
847
848
849 l_index := 0;
850 K := G_Delayed_Requests.FIRST;
851
852 WHILE K is not null -- while loop safer than tbl.first to last
853 LOOP
854
855 IF (G_Delayed_Requests(K).request_type =
856 OE_GLOBALS.G_GROUP_SET)
857 THEN
858
859 l_index := l_index + 1;
860 l_sch_set_tbl(l_index) := g_delayed_requests(K);
861 g_delayed_requests(K).processed := 'I';
862 END IF;
863
864 K := G_Delayed_Requests.NEXT(K);
865 END LOOP;
866
867 OE_GROUP_SCH_UTIL.Group_Schedule_sets
868 ( p_sch_set_tbl => l_sch_set_tbl
869 , x_return_status => l_return_status);
870
871 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
872
873 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
874
875 END IF;
876
877 K := G_Delayed_Requests.FIRST;
878 WHILE K is not null -- while loop safer than tbl.first to last
879 LOOP
880
881 IF G_Delayed_Requests(K).request_type =
882 OE_GLOBALS.G_GROUP_SET
883 THEN
884 g_delayed_requests(K).processed := 'Y';
885 END IF;
886
887 K := G_Delayed_Requests.NEXT(K);
888
889 END LOOP;
890 l_sch_set_tbl.delete;
891 ELSIF l_request_type =
892 OE_GLOBALS.G_SPLIT_SCHEDULE THEN
893
894
895 l_index := 0;
896 K := G_Delayed_Requests.FIRST;
897
898 WHILE K is not null -- while loop safer than tbl.first to last
899 LOOP
900
901 IF (G_Delayed_Requests(K).request_type =
902 OE_GLOBALS.G_SPLIT_SCHEDULE)
903 THEN
904
905 l_index := l_index + 1;
906 l_sch_set_tbl(l_index) := g_delayed_requests(K);
907 g_delayed_requests(K).processed := 'I';
908 END IF;
909
910 K := G_Delayed_Requests.NEXT(K);
911 END LOOP;
912
913 OE_SCHEDULE_UTIL.Schedule_split_lines
914 ( p_sch_set_tbl => l_sch_set_tbl
915 , x_return_status => l_return_status);
916
917 K := G_Delayed_Requests.FIRST;
918 WHILE K is not null -- while loop safer than tbl.first to last
919 LOOP
920
921 IF G_Delayed_Requests(K).request_type =
922 OE_GLOBALS.G_SPLIT_SCHEDULE
923 THEN
924 IF l_return_status <> FND_API.G_RET_STS_UNEXP_ERROR
925 THEN
926 g_delayed_requests(K).processed := 'Y';
927 ELSE
928 g_delayed_requests(K).processed := Null;
929 END IF;
930 END IF;
931
932 K := G_Delayed_Requests.NEXT(K);
933
934 END LOOP;
935 l_sch_set_tbl.delete;
936 ELSIF l_request_type =
937 OE_GLOBALS.G_INSERT_SERVICE then
938 OE_DELAYED_REQUESTS_UTIL.INSERT_SERVICE_FOR_OPTIONS
939 ( x_return_status => l_return_status
940 , p_serviced_line_id => l_entity_id
941 );
942
943 /* BUG 2013611 - Increment promotional balances in response to cancellations */
944 ELSIF l_request_rec.request_type = OE_GLOBALS.G_REVERSE_LIMITS THEN
945 IF l_debug_level > 0 THEN
946 oe_debug_pub.add('About to PERFORM Delayed Request for Reverse Limits',1);
947 END IF;
948
949 OE_DELAYED_REQUESTS_UTIL.REVERSE_LIMITS
950 ( x_return_status => l_return_status
951 , p_action_code => l_request_rec.param1
952 , p_cons_price_request_code => l_request_rec.param2
953 , p_orig_ordered_qty => to_number(l_request_rec.param3)
954 , p_amended_qty => to_number(l_request_rec.param4)
955 , p_ret_price_request_code => l_request_rec.param5
956 , p_returned_qty => to_number(l_request_rec.param6)
957 , p_line_id => l_request_rec.entity_id
958 );
959 IF l_debug_level > 0 THEN
960 oe_debug_pub.add('Call Issued to OE_DELAYED_REQUESTS_UTIL.Reverse_Limits',1);
961 END IF;
962 /* BUG 2013611 END */
963
964 -- Freight Rating.
965 ELSIF l_request_rec.request_type = OE_GLOBALS.G_FREIGHT_RATING THEN
966 IF l_debug_level > 0 THEN
967 Oe_Debug_pub.Add('Before Executing Delayed request Freight Rating for header: '||l_request_rec.entity_id, 3);
968 END IF;
969 OE_FTE_INTEGRATION_PVT.Process_FTE_Action
970 ( p_header_id => l_request_rec.entity_id
971 ,p_line_id => null
972 ,p_ui_flag => 'N'
973 ,p_action => 'R'
974 ,p_call_pricing_for_FR => l_request_rec.param1
975 ,x_return_status => l_return_status
976 ,x_msg_count => l_msg_count
977 ,x_msg_data => l_msg_data
978 );
979
980
981 ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRICE_LINE THEN
982 IF l_debug_level > 0 THEN
983 Oe_Debug_pub.Add('Before Executing Delayed request Price line for '||l_request_rec.entity_id);
984 Oe_Debug_pub.Add('The Event is '||l_request_rec.param2);
985 END IF;
986 l_Price_Control_Rec.pricing_event := l_request_rec.param2;
987 l_Price_Control_Rec.calculate_flag := QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
988 l_Price_Control_Rec.Simulation_Flag := 'N';
989
990 --RT{
991 If l_Price_Control_Rec.pricing_event IN ('BATCH','RETROBILL')
992 Then
993 l_price_control_rec.source_order_amount_flag := 'Y';
994 End If;
995 --RT}
996 IF l_debug_level > 0 THEN
997 Oe_Debug_pub.Add('Before Line Price');
998 END IF;
999 oe_order_adj_pvt.Price_line(
1000 X_Return_Status => l_Return_Status
1001 ,p_Line_id => l_request_rec.entity_id
1002 ,p_Request_Type_code=> 'ONT'
1003 ,p_Control_rec => l_Price_Control_Rec
1004 ,p_write_to_db => TRUE
1005 ,p_request_rec => l_request_rec
1006 ,x_line_Tbl => l_Line_Tbl
1007 );
1008 IF l_debug_level > 0 THEN
1009 Oe_Debug_pub.Add('After Executing Delayed request Price line for '||l_request_rec.entity_id);
1010 END IF;
1011 ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRICE_ORDER THEN
1012 IF l_debug_level > 0 THEN
1013 Oe_Debug_pub.Add('Before Executing Delayed request Price line for '||l_request_rec.entity_id);
1014 Oe_Debug_pub.Add('Before Header Price');
1015 Oe_Debug_pub.Add('The Event is '||l_request_rec.param2);
1016 Oe_Debug_pub.Add('The Action is '||l_request_rec.param3);
1017 Oe_Debug_pub.Add('The get freight flag is: '||l_request_rec.request_unique_key2, 3);
1018 END IF;
1019 l_Price_Control_Rec.pricing_event := l_request_rec.param2;
1020 l_Price_Control_Rec.calculate_flag := QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
1021 l_Price_Control_Rec.Simulation_Flag := 'N';
1022 l_Price_Control_Rec.get_freight_flag := nvl(l_request_rec.request_unique_key2, 'N');
1023
1024 If l_Price_Control_Rec.pricing_event = 'BATCH' Then
1025 l_price_control_rec.source_order_amount_flag := 'Y';
1026 End If;
1027
1028 --Bug 2619506, Added p_action_code
1029 oe_order_adj_pvt.Price_line(
1030 X_Return_Status => l_Return_Status
1031 ,p_Header_id => l_request_rec.entity_id
1032 ,p_Request_Type_code=> 'ONT'
1033 ,p_Control_rec => l_Price_Control_Rec
1034 ,p_write_to_db => TRUE
1035 ,p_request_rec => l_request_rec
1036 ,x_line_Tbl => l_Line_Tbl
1037 ,p_action_code => l_request_rec.param3
1038 );
1039 IF l_debug_level > 0 THEN
1040 Oe_Debug_pub.Add('After Header Price');
1041 Oe_Debug_pub.Add('After Executing Delayed request Price line for '||l_request_rec.entity_id);
1042 END IF;
1043
1044 /* Customer Acceptance - Start */
1045 ELSIF l_request_rec.request_type = OE_GLOBALS.G_DFLT_CONTINGENCY_ATTRIBUTES THEN
1046 IF l_debug_level > 0 THEN
1047 Oe_Debug_pub.Add('Before Defaulting Contingency Attributes ');
1048 END IF;
1049 OE_ACCEPTANCE_UTIL.Default_contingency_Attributes();
1050 IF l_debug_level > 0 THEN
1051 Oe_Debug_pub.Add('After Defaulting Contingency Attributes ');
1052 END IF;
1053 /* Customer Acceptance - End */
1054
1055 ELSIF (l_request_type = OE_GLOBALS.G_PROCESS_ADJUSTMENTS) then
1056 if l_entity_code = OE_GLOBALS.G_ENTITY_LINE then
1057 IF l_debug_level > 0 THEN
1058 oe_debug_pub.add('count is : ' || G_Delayed_Requests.count );
1059 END IF;
1060 l_prc_adj_index := G_Delayed_Requests.first;
1061
1062 WHILE l_prc_adj_index is NOT NULL LOOP
1063 IF l_debug_level > 0 THEN
1064 oe_debug_pub.add('Ren 0: Param1 :' || l_request_rec.param1);
1065 END IF;
1066 IF G_Delayed_Requests(l_prc_adj_index).request_type = l_request_type THEN
1067 IF l_debug_level > 0 THEN
1068 oe_debug_pub.add('REN: SUCCESS - FOUND THE REQUEST');
1069
1070 oe_debug_pub.add('Ren 1: Param2 :' || g_delayed_requests(l_prc_adj_index).param2);
1071 END IF;
1072
1073 l_prc_adj_request(I) := g_delayed_requests(l_prc_adj_index);
1074 oe_debug_pub.add('Ren 2: Param2 :' || l_prc_adj_request(I).param2);
1075 g_delayed_requests.delete(l_prc_adj_index);
1076 IF l_debug_level > 0 THEN
1077 oe_debug_pub.add('Ren 3: Param2 :' || l_prc_adj_request(I).param2);
1078 END IF;
1079 I := I + 1;
1080
1081 ELSE
1082 IF l_debug_level > 0 THEN
1083 oe_debug_pub.add('Ren: Req not found ' || l_prc_adj_index);
1084 END IF;
1085
1086 END IF;
1087
1088 l_prc_adj_index := G_Delayed_Requests.Next(l_prc_adj_index);
1089
1090 END LOOP;
1091
1092 IF l_prc_adj_request.count > 0 THEN
1093 IF l_debug_level > 0 THEN
1094 oe_debug_pub.add('before calling process_adjustments ');
1095 END IF;
1096
1097 OE_DELAYED_REQUESTS_UTIL.Process_Adjustments
1098 (p_adjust_tbl => l_prc_adj_request,
1099 x_return_status => l_return_status);
1100
1101 END IF; /* if count > 0 */
1102
1103 end if; /* entity_code = G_ENTITY_LINE */
1104
1105 -- Delayed Request to Apply Automatic Attachments
1106 ELSIF l_request_type = OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT THEN
1107
1108 OE_DELAYED_REQUESTS_UTIL.Apply_Automatic_Attachments
1109 ( p_entity_code => l_request_rec.entity_code
1110 , p_entity_id => l_request_rec.entity_id
1111 , p_is_user_action => 'N'
1112 , x_return_status => l_return_status
1113 );
1114
1115 ELSIF l_request_type = OE_GLOBALS.G_COPY_ATCHMT THEN
1116
1117 OE_DELAYED_REQUESTS_UTIL.Copy_Attachments
1118 (p_entity_code => l_request_rec.entity_code
1119 ,p_from_entity_id =>
1120 to_number(l_request_rec.param1)
1121 ,p_to_entity_id => l_request_rec.entity_id
1122 ,p_manual_attachments_only => l_request_rec.param2
1123 ,x_return_status => l_return_status
1124 );
1125
1126 ELSIF l_request_type = OE_GLOBALS.G_COPY_ADJUSTMENTS THEN
1127
1128 OE_Line_Adj_Util.copy_adjustment_lines
1129 (p_from_line_id => to_number(l_request_rec.param2)
1130 ,p_to_line_id => l_request_rec.entity_id
1131 ,p_from_Header_id => to_number(l_request_rec.param3)
1132 ,p_to_Header_id => to_number(l_request_rec.param1)
1133 ,p_line_category_code => l_request_rec.param4
1134 ,p_split_by => l_request_rec.param5
1135 ,p_booked_flag => l_request_rec.param6
1136 --RT{
1137 ,p_mode => l_request_rec.param7
1138 ,p_retrobill_request_id=>l_request_rec.param8
1139 --RT}
1140 ,x_return_status => l_return_status
1141 );
1142 /* Added for Bug # 1559906 */
1143 ELSIF l_request_type = OE_GLOBALS.G_COPY_FREIGHT_CHARGES THEN
1144
1145 OE_Header_Adj_Util.copy_freight_charges
1146 ( p_from_header_id => to_number(l_request_rec.param2)
1147 , p_to_header_id => l_request_rec.entity_id
1148 , p_to_order_category => l_request_rec.param1
1149 , x_return_status => l_return_status
1150 );
1151
1152
1153 /* Added the new delayed req for Bug # 2170086 */
1154 ELSIF l_request_type = OE_GLOBALS.G_COPY_HEADER_ADJUSTMENTS THEN
1155
1156 OE_Header_Adj_Util.copy_header_adjustments
1157 ( p_from_header_id => to_number(l_request_rec.param2)
1158 , p_to_header_id => l_request_rec.entity_id
1159 , p_to_order_category => l_request_rec.param1
1160 , x_return_status => l_return_status
1161 );
1162
1163
1164
1165 /* csheu added for bug #1533658 */
1166
1167 ELSIF l_request_type = OE_GLOBALS.G_UPDATE_SERVICE THEN
1168 IF l_debug_level > 0 THEN
1169 oe_debug_pub.add('CSH-- Before calls OE_Service_Util.cascade_changes', 1);
1170 END IF;
1171
1172 OE_Service_Util.cascade_changes
1173 ( p_parent_line_id => l_request_rec.entity_id
1174 ,p_request_rec => l_request_rec
1175 ,x_return_status => l_return_status
1176 );
1177 IF l_debug_level > 0 THEN
1178 oe_debug_pub.add('CSH-- After calls OE_Service_Util.cascade_changes', 1);
1179 END IF;
1180
1181 /* lchen added for bug #1761154 */
1182
1183 ELSIF l_request_type = OE_GLOBALS.G_CASCADE_OPTIONS_SERVICE then
1184 IF l_debug_level > 0 THEN
1185 oe_debug_pub.add('lchen-- Before calls OE_DELAYED_REQUESTS_UTIL.CASCADE_SERVICE_FOR_OPTIONS', 1);
1186 END IF;
1187 OE_DELAYED_REQUESTS_UTIL.CASCADE_SERVICE_FOR_OPTIONS
1188 ( x_return_status => l_return_status
1189 , p_option_line_id => l_entity_id
1190 );
1191 IF l_debug_level > 0 THEN
1192 oe_debug_pub.add('lchen-- After calls OE_DELAYED_REQUESTS_UTIL.CASCADE_SERVICE_FOR_OPTIONS', 1);
1193 END IF;
1194
1195 -- added by lkxu: to copy pricing attributes
1196 ELSIF l_request_type = OE_GLOBALS.G_COPY_PRICING_ATTRIBUTES THEN
1197
1198 OE_Line_PAttr_Util.copy_pricing_attributes
1199 (p_from_line_id => to_number(l_request_rec.param2)
1200 ,p_to_line_id => l_request_rec.entity_id
1201 ,p_to_Header_id => to_number(l_request_rec.param1)
1202 ,x_return_status => l_return_status
1203 );
1204
1205 ELSIF l_request_type = OE_GLOBALS.G_COPY_MODEL_PATTR THEN
1206
1207 /* bug 1857538
1208 copy_model_pattr now takes only the line_id as parameter
1209 Corresponding changes are in OEXULPAS and OEXULPAB
1210 */
1211 OE_Line_PAttr_Util.copy_model_pattr
1212 (
1213 --p_model_line_id => l_request_rec.entity_id
1214 p_to_line_id => to_number(l_request_rec.param1)
1215 ,x_return_status => l_return_status
1216 );
1217
1218 ELSIF l_request_type = OE_GLOBALS.G_DELETE_CHARGES THEN
1219 OE_Header_Util.cancel_header_charges
1220 (
1221 p_header_id => l_request_rec.entity_id,
1222 --p_x_line_id => to_number(l_request_rec.param1),
1223 x_return_status => l_return_status
1224 );
1225
1226 ELSIF l_request_type = OE_GLOBALS.G_CASCADE_SCH_ATTRBS THEN
1227
1228 G_Delayed_Requests(p_request_ind).processed := 'Y';
1229
1230 ELSIF l_request_type =
1231 OE_GLOBALS.G_CASCADE_SHIP_SET_ATTR then
1232
1233 l_index := 0;
1234 l_set_id := l_request_rec.param2;
1235
1236 K := G_Delayed_Requests.FIRST;
1237
1238 WHILE K is not null
1239 LOOP
1240
1241 IF (G_Delayed_Requests(K).request_type =
1242 OE_GLOBALS.G_CASCADE_SHIP_SET_ATTR) AND
1243 G_Delayed_Requests(K).param2 = l_set_id AND
1244 K <> p_request_ind
1245 THEN
1246
1247 g_delayed_requests.delete(K);
1248
1249 END IF;
1250
1251 K := G_Delayed_Requests.NEXT(K);
1252
1253 END LOOP;
1254
1255 OE_SCHEDULE_UTIL.Cascade_ship_set_attr
1256 ( p_request_rec => l_request_rec
1257 , x_return_status => l_return_status);
1258
1259 ELSIF l_request_type =
1260 OE_GLOBALS.G_GROUP_SCHEDULE then
1261
1262 l_index := 0;
1263 l_set_id := l_request_rec.param1;
1264
1265 K := G_Delayed_Requests.FIRST;
1266
1267 WHILE K is not null
1268 LOOP
1269
1270 IF (G_Delayed_Requests(K).request_type =
1271 OE_GLOBALS.G_GROUP_SCHEDULE) AND
1272 G_Delayed_Requests(K).param1 = l_set_id AND
1273 K <> p_request_ind
1274 THEN
1275
1276 l_index := l_index + 1;
1277
1278 IF nvl(g_delayed_requests(K).param12,'N') = 'Y' THEN
1279 l_request_rec.param12 := 'Y';
1280 END IF;
1281
1282 g_delayed_requests.delete(K);
1283
1284 END IF;
1285
1286 K := G_Delayed_Requests.NEXT(K);
1287
1288 END LOOP;
1289
1290 -- Removed the below code -Bug4504362
1291 -- Start 2391781
1292 -- Storing Cascade Warehouse records
1293 l_set_id := l_request_rec.param1;
1294 l_count := G_Delayed_Requests.FIRST;
1295 WHILE l_count is not null
1296 LOOP
1297
1298 IF G_Delayed_Requests(l_count).request_type =
1299 OE_GLOBALS.G_CASCADE_SCH_ATTRBS AND
1300 G_Delayed_Requests(l_count).param1 = l_set_id
1301 THEN
1302 oe_schedule_util.OE_sch_Attrb_Tbl
1303 (G_Delayed_Requests(l_count).entity_id).set_id :=
1304 G_Delayed_Requests(l_count).param1;
1305 oe_schedule_util.OE_sch_Attrb_Tbl
1306 (G_Delayed_Requests(l_count).entity_id).line_id :=
1307 G_Delayed_Requests(l_count).entity_id;
1308 oe_schedule_util.OE_sch_Attrb_Tbl
1309 (G_Delayed_Requests(l_count).entity_id).attribute1 :=
1310 G_Delayed_Requests(l_count).param2;
1311 oe_schedule_util.OE_sch_Attrb_Tbl
1312 (G_Delayed_Requests(l_count).entity_id).date_attribute1 :=
1313 G_Delayed_Requests(l_count).date_param1;
1314
1315 g_delayed_requests.delete(l_count);
1316 END IF;
1317
1318 l_count := G_Delayed_Requests.NEXT(l_count);
1319
1320 END LOOP;
1321 -- End 2391781
1322
1323 OE_GROUP_SCH_UTIL.Schedule_Set
1324 ( p_request_rec => l_request_rec
1325 , x_return_status => l_return_status);
1326
1327 IF l_debug_level > 0 THEN
1328 oe_debug_pub.add('Group Schedule Return Status ' || l_return_status,1);
1329 END IF;
1330 -- 4026758
1331 ELSIF l_request_type =
1332 OE_GLOBALS.G_DELETE_SET THEN
1333 l_set_id := l_request_rec.param1;
1334
1335 K := G_Delayed_Requests.FIRST;
1336
1337 WHILE K is not null
1338 LOOP
1339
1340 IF (G_Delayed_Requests(K).request_type =
1341 OE_GLOBALS.G_DELETE_SET)
1342 AND G_Delayed_Requests(K).param1 = l_set_id
1343 AND K <> p_request_ind THEN
1344
1345 g_delayed_requests.delete(K);
1346
1347 END IF;
1348
1349 K := G_Delayed_Requests.NEXT(K);
1350
1351 END LOOP;
1352
1353 oe_set_util.Delete_Set(p_request_rec => l_request_rec
1354 , x_return_status => l_return_status);
1355 oe_debug_pub.add('Delete Set Return Status ' || l_return_status,1);
1356 ELSIF (l_request_type =
1357 OE_GLOBALS.G_SCHEDULE_LINE OR
1358 l_request_type =
1359 OE_GLOBALS.G_RESCHEDULE_LINE) then
1360
1361 l_index := 0;
1362 l_set := l_request_rec.param1;
1363
1364 K := G_Delayed_Requests.FIRST;
1365
1366 WHILE K is not null -- while loop safer than tbl.first to last
1367 LOOP
1368
1369 IF (G_Delayed_Requests(K).request_type =
1370 OE_GLOBALS.G_SCHEDULE_LINE OR
1371 G_Delayed_Requests(K).request_type =
1372 OE_GLOBALS.G_RESCHEDULE_LINE) AND
1373 G_Delayed_Requests(K).param1 = l_set
1374 THEN
1375
1376 l_index := l_index + 1;
1377 l_sch_set_tbl(l_index) := g_delayed_requests(K);
1378 g_delayed_requests(K).processed := 'I';
1379 END IF;
1380
1381 K := G_Delayed_Requests.NEXT(K);
1382 END LOOP;
1383 IF l_debug_level > 0 THEN
1384 oe_debug_pub.add('Calling Sch_Line with '|| l_sch_set_tbl.count,1);
1385 END IF;
1386
1387 -- Commented out the below code -Bug4504362
1388 OE_GROUP_SCH_UTIL.Schedule_Set_lines
1389 ( p_sch_set_tbl => l_sch_set_tbl
1390 , x_return_status => l_return_status);
1391
1392
1393 IF l_debug_level > 0 THEN
1394 oe_debug_pub.add('After Calling Sch_Line: '|| l_return_status,1);
1395 END IF;
1396
1397 -- If Schedule_Line is success for all the lines, mark
1398 -- the request for others lines as processed.
1399
1400 K := G_Delayed_Requests.FIRST;
1401 WHILE K is not null -- while loop safer than tbl.first to last
1402 LOOP
1403
1404 IF (G_Delayed_Requests(K).request_type =
1405 OE_GLOBALS.G_SCHEDULE_LINE OR
1406 G_Delayed_Requests(K).request_type =
1407 OE_GLOBALS.G_RESCHEDULE_LINE) AND
1408 G_Delayed_Requests(K).param1 = l_set
1409 THEN
1410 l_index := l_index + 1;
1411 IF l_return_status <> FND_API.G_RET_STS_UNEXP_ERROR
1412 THEN
1413 g_delayed_requests(K).processed := 'Y';
1414 ELSE
1415 g_delayed_requests(K).processed := Null;
1416 END IF;
1417 END IF;
1418
1419 K := G_Delayed_Requests.NEXT(K);
1420
1421 END LOOP;
1422
1423 -- bug 1829201, commitment related changes.
1424 ELSIF l_request_type = OE_GLOBALS.G_CALCULATE_COMMITMENT THEN
1425 IF l_debug_level > 0 THEN
1426 oe_debug_pub.add('Calling procedure calculate_commtment!',1);
1427 END IF;
1428
1429 --bug 3560198
1430 OE_Commitment_Pvt.calculate_commitment(
1431 p_request_rec => l_request_rec
1432 ,x_return_status => l_return_status
1433 );
1434
1435 ELSIF l_request_type = OE_GLOBALS.G_UPDATE_COMMITMENT THEN
1436
1437 OE_Commitment_Pvt.update_commitment
1438 ( p_line_id => l_request_rec.entity_id
1439 ,x_return_status => l_return_status
1440 );
1441 -- multiple payments
1442 ELSIF l_request_type = OE_GLOBALS.G_UPDATE_COMMITMENT_APPLIED THEN
1443 IF l_debug_level > 0 THEN
1444 oe_debug_pub.add('OEXVREQB param1 is: '||l_request_rec.param1,3);
1445 oe_debug_pub.add('OEXVREQB param2 is: '||l_request_rec.param2,3);
1446 oe_debug_pub.add('OEXVREQB param3 is: '||l_request_rec.param3,3);
1447 END IF;
1448 OE_Commitment_Pvt.update_commitment_applied
1449 ( p_line_id => l_request_rec.entity_id
1450 ,p_amount => l_request_rec.param1
1451 ,p_header_id => l_request_rec.param2
1452 ,p_commitment_id => l_request_rec.param3
1453 ,x_return_status => l_return_status
1454 );
1455
1456 -- Included for the Spares Management (ikon) project mshenoy
1457 -- For the delayed request type of Create Internal Req call the procedure
1458 ELSIF l_request_type = OE_GLOBALS.G_CREATE_INTERNAL_REQ THEN
1459 IF l_debug_level > 0 THEN
1460 oe_debug_pub.add(' Calling auto_create_internal_req hdr id '|| l_entity_id,1);
1461 END IF;
1462 OE_DELAYED_REQUESTS_UTIL.auto_create_internal_req
1463 ( p_ord_header_id => l_entity_id
1464 ,x_return_status => l_return_status);
1465 IF l_debug_level > 0 THEN
1466 oe_debug_pub.add('After Calling auto_create_internal_req ret_status : '|| l_return_status,1);
1467 END IF;
1468
1469 /* Modified the following condition to fix the bug 6663462 */
1470
1471 ELSIF l_request_type = OE_GLOBALS.G_SCHEDULE_ATO OR
1472 l_request_type = OE_GLOBALS.G_SCHEDULE_SMC OR
1473 l_request_type = OE_GLOBALS.G_SCHEDULE_NONSMC OR
1474 l_request_type = OE_GLOBALS.G_DELAYED_SCHEDULE THEN
1475 IF l_debug_level > 0 THEN
1476 oe_debug_pub.add('calling Process_Scheduling_Request');
1477 END IF;
1478 Process_Scheduling_Request
1479 ( p_request_ind => p_request_ind
1480 ,p_request_rec => l_request_rec
1481 ,x_return_status => l_return_status);
1482 IF l_debug_level > 0 THEN
1483 oe_debug_pub.add('Scheduling_Request '|| l_return_status);
1484 END IF;
1485 ---------
1486 -- Added by rsreeniv
1487 ----------
1488 ELSIF l_request_rec.request_type = OE_GLOBALS.G_FREIGHT_FOR_INCLUDED THEN
1489 IF l_debug_level > 0 THEN
1490 Oe_Debug_pub.Add('Before Executing Delayed request Freight for included for '||l_request_rec.entity_id);
1491 Oe_Debug_pub.Add('Before Order Price - Freight');
1492 Oe_Debug_pub.Add('The Event is '||l_request_rec.param2);
1493 END IF;
1494 l_Price_Control_Rec.pricing_event := l_request_rec.param2;
1495 l_Price_Control_Rec.calculate_flag := QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
1496 l_Price_Control_Rec.Simulation_Flag := 'N';
1497
1498 If l_Price_Control_Rec.pricing_event = 'BATCH' Then
1499 l_price_control_rec.source_order_amount_flag := 'Y';
1500 End If;
1501
1502 j := 1;
1503
1504 /*
1505
1506 FOR inclinesrec in included_lines_cur(l_request_rec.entity_id) LOOP
1507
1508 IF OE_LINE_ADJ_UTIL.G_CHANGED_LINE_TBL.exists(inclinesrec.line_id) THEN
1509
1510 l_line_tbl(j) := OE_LINE_UTIL.QUERY_ROW(p_line_id => inclinesrec.line_id);
1511
1512 END IF;
1513
1514 j := j + 1;
1515
1516 END LOOP; */
1517
1518
1519 oe_order_adj_pvt.Price_line(
1520 X_Return_Status => l_Return_Status
1521 ,p_Request_Type_code=> 'ONT'
1522 ,p_Control_rec => l_Price_Control_Rec
1523 ,p_Header_id => l_request_rec.entity_id
1524 ,p_write_to_db => TRUE
1525 ,p_request_rec => l_request_rec
1526 ,x_line_Tbl => l_Line_Tbl
1527 );
1528 IF l_debug_level > 0 THEN
1529 Oe_Debug_pub.Add('After Header Price');
1530 Oe_Debug_pub.Add('After Executing Delayed request Price line for '||l_request_rec.entity_id);
1531 END IF;
1532 --MRG BGN
1533 ELSIF l_request_type = OE_GLOBALS.G_MARGIN_HOLD THEN
1534 IF l_debug_level > 0 THEN
1535 oe_debug_pub.add('From delayed request: executing Oe_Margin_Pvt.Margin_Hold');
1536 END IF;
1537 Oe_Margin_Pvt.Margin_Hold(p_header_id => l_request_rec.entity_id);
1538 --MRG END
1539 -------------
1540 --Added btea
1541 -------------
1542
1543
1544 --MRG BGN
1545 ELSIF l_request_type = OE_GLOBALS.G_GET_COST THEN
1546 IF l_debug_level > 0 THEN
1547 oe_debug_pub.add('From delayed request: executing Oe_Margin_Pvt.Get_Cost');
1548 END IF;
1549 l_unit_cost := Oe_Margin_Pvt.Get_Cost(p_request_rec => l_request_rec);
1550 --MRG END
1551
1552
1553 ELSIF l_request_type = OE_GLOBALS.G_DEL_CHG_LINES Then
1554 IF l_debug_level > 0 THEN
1555 oe_debug_pub.add('Executing Delete_Changed_Lines delayed request');
1556 END IF;
1557
1558 Oe_Line_Adj_Util.Delete_Changed_Lines_Tbl;
1559 IF l_debug_level > 0 THEN
1560 oe_debug_pub.add('After Delete_Changed_Lines delayed request');
1561 END IF;
1562
1563 ELSIF l_request_type = OE_GLOBALS.G_VERSION_AUDIT THEN
1564
1565 OE_Versioning_Util.Execute_Versioning_Request(p_header_id => l_request_rec.entity_id,
1566 p_document_type => l_request_rec.entity_code,
1567 p_changed_attribute => l_request_rec.param1,
1568 x_msg_count => l_msg_count,
1569 x_msg_data => l_msg_data,
1570 x_return_status => x_return_status);
1571
1572 -- BLANKETS: Ignore process release related requests here. These
1573 -- will be executed with all requests in process_delayed_requests call.
1574 ELSIF l_request_type = OE_GLOBALS.G_PROCESS_RELEASE THEN
1575 RETURN;
1576 ELSIF l_request_type = OE_GLOBALS.G_VALIDATE_RELEASE_SHIPMENTS THEN
1577 RETURN;
1578
1579 -- Delayed requests logged by blankets business object APIs.
1580 ELSIF l_request_type = 'VALIDATE_BLANKET_LINE_NUMBER' THEN
1581 OE_BLANKET_UTIL.VALIDATE_LINE_NUMBER( p_req_ind => p_request_ind,
1582 x_return_status => l_return_status);
1583
1584 ELSIF l_request_type = 'VALIDATE_BLANKET_INV_ITEM' THEN
1585 OE_BLANKET_UTIL.VALIDATE_ITEM_UNIQUENESS( p_req_ind => p_request_ind,
1586 x_return_status => l_return_status);
1587 ELSIF l_request_type = 'CREATE_BLANKET_PRICE_LIST' THEN
1588 OE_BLANKET_UTIL.create_price_list( p_index => p_request_ind,
1589 x_return_status => l_return_status);
1590 ELSIF l_request_type = 'ADD_BLANKET_PRICE_LIST_LINE' THEN
1591 OE_BLANKET_UTIL.add_price_list_line( p_req_ind => p_request_ind,
1592 x_return_status => l_return_status);
1593 -- for bug 3309427
1594 ELSIF l_request_type = OE_GLOBALS.G_CLEAR_BLKT_PRICE_LIST_LINE THEN
1595 OE_BLANKET_UTIL.clear_price_list_line( p_req_ind => p_request_ind,
1596 x_return_status => l_return_status);
1597 ELSIF l_request_type = 'RECORD_BLANKET_HISTORY' THEN
1598 OE_BLANKET_UTIL.record_blanket_history(
1599 x_return_status => l_return_status);
1600 ELSIF l_request_type = 'VALIDATE_BLANKET_SOLD_TO' THEN
1601 OE_BLANKET_UTIL.validate_sold_to( p_header_id => l_entity_id,
1602 p_sold_To_org_id => l_request_rec.param1,
1603 x_return_status => l_return_status);
1604 -- End of requests logged by blankets business object APIs.
1605 -- Begin of Multiple Payments
1606 ELSIF l_request_type = OE_GLOBALS.G_SPLIT_PAYMENT then
1607 OE_PrePayment_Pvt.split_payment (
1608 p_line_id => l_request_rec.entity_id
1609 , p_header_id => l_request_rec.param2
1610 , p_split_from_line_id => l_request_rec.param1
1611 , x_return_status => l_return_status
1612 , x_msg_count => l_msg_count
1613 , x_msg_data => l_msg_data
1614 );
1615 -- End of Multiple Payments
1616
1617 ELSIF l_request_type = OE_GLOBALS.G_UPDATE_HDR_PAYMENT then
1618
1619 IF l_debug_level > 0 THEN
1620 oe_debug_pub.add('param1 is : ' || l_request_rec.param1);
1621 oe_debug_pub.add('param2 is : ' || l_request_rec.param2);
1622 oe_debug_pub.add('entity id is : ' || l_request_rec.entity_id);
1623 oe_debug_pub.add('entity code is : ' || l_request_rec.entity_code);
1624 END IF;
1625
1626 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT
1627 AND l_request_rec.param1 = 'UPDATE_LINE' THEN
1628 payment_line_id := l_request_rec.entity_id;
1629 payment_header_id := l_request_rec.param2;
1630
1631 ELSE
1632 payment_header_id := l_request_rec.entity_id;
1633 payment_line_id := NULL;
1634 END IF;
1635
1636 IF l_debug_level > 0 THEN
1637 oe_debug_pub.add('header id for update_hdr_payment is : ' || payment_header_id,3);
1638 oe_debug_pub.add('line id for update_hdr_payment is : ' || payment_line_id,3);
1639 END IF;
1640
1641 OE_PrePayment_Pvt.Update_Hdr_Payment (
1642 p_header_id => payment_header_id
1643 , p_action => l_request_rec.param1
1644 , p_line_id => payment_line_id
1645 , x_return_status => l_return_status
1646 , x_msg_count => l_msg_count
1647 , x_msg_data => l_msg_data
1648 );
1649
1650 ELSIF l_request_type = OE_GLOBALS.G_APPLY_PPP_HOLD THEN
1651 --bug3507871 start
1652 IF l_debug_level > 0 THEN
1653 oe_debug_pub.add('Before calling Process_Payments for applying PPP hold');
1654 END IF;
1655
1656 OE_PREPAYMENT_PVT.Process_Payments(
1657 p_header_id => l_request_rec.entity_id,
1658 p_calling_action => 'UPDATE',
1659 p_amount => null,
1660 p_delayed_request=> FND_API.G_TRUE,
1661 x_msg_data => l_msg_data,
1662 x_msg_count => l_msg_count,
1663 x_return_status => l_return_status);
1664 --bug3507871 end
1665 --bug3625027 start
1666 ELSIF l_request_type = OE_GLOBALS.G_PROCESS_PAYMENT THEN
1667 IF l_debug_level > 0 THEN
1668 oe_debug_pub.add('Request Type: '||l_request_type);
1669 END IF;
1670 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_HEADER_PAYMENT THEN
1671 IF l_debug_level > 0 THEN
1672 oe_debug_pub.add('Before calling Process_Payments Procedure at the header level');
1673 END IF;
1674
1675 OE_PREPAYMENT_PVT.Process_Payments(
1676 p_header_id => l_request_rec.entity_id,
1677 p_calling_action => null,
1678 p_amount => null,
1679 p_delayed_request=> FND_API.G_TRUE,
1680 p_process_prepayment=>'N',
1681 p_process_authorization=>'N',
1682 x_msg_data => l_msg_data,
1683 x_msg_count => l_msg_count,
1684 x_return_status => l_return_status);
1685 ELSIF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT THEN
1686 IF l_debug_level > 0 THEN
1687 oe_debug_pub.add('Before calling Process_Payments Procedure at the line level');
1688 END IF;
1689
1690 OE_PREPAYMENT_PVT.Process_Payments(
1691 p_header_id => l_request_rec.entity_id,
1692 p_line_id => l_request_rec.param1,
1693 p_calling_action => null,
1694 p_amount => null,
1695 p_delayed_request=> FND_API.G_TRUE,
1696 p_process_prepayment=>'N',
1697 p_process_authorization=>'N',
1698 x_msg_data => l_msg_data,
1699 x_msg_count => l_msg_count,
1700 x_return_status => l_return_status);
1701 END IF;
1702 --bug3625027 end
1703
1704 ELSIF l_request_type = OE_GLOBALS.G_DELETE_PAYMENT_HOLD THEN
1705 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT THEN
1706 payment_line_id := l_request_rec.entity_id;
1707 payment_header_id := l_request_rec.param2;
1708 ELSE
1709 payment_header_id := l_request_rec.entity_id;
1710 payment_line_id := NULL;
1711 END IF;
1712
1713 IF l_debug_level > 0 THEN
1714 oe_debug_pub.add('header id for delete_payment_hold is : ' || payment_header_id,3);
1715 oe_debug_pub.add('line id for delete_payment_hold is : ' || payment_line_id,3);
1716 END IF;
1717
1718 OE_PrePayment_Pvt.Delete_Payment_Hold
1719 ( p_line_id => payment_line_id
1720 , p_header_id => payment_header_id
1721 , p_hold_type => l_request_rec.param1
1722 , x_return_status => l_return_status
1723 , x_msg_count => l_msg_count
1724 , x_msg_data => l_msg_data
1725 );
1726
1727 -- End of Multiple Payments
1728
1729 -- 11i10 Work Flow Changes
1730 ELSIF l_request_type = 'BLANKET_DATE_CHANGE' THEN
1731 OE_BLANKET_WF_UTIL.Blanket_Date_Changed(p_header_id => l_entity_id,
1732 x_return_status => l_return_status);
1733 -- End of Work Flow Changes.
1734 -- 11i10 Pricing Changes for blankets
1735 ELSIF l_request_type IN ('CREATE_MODIFIER_LIST'
1736 ,'ADD_MODIFIER_LIST_LINE'
1737 )
1738 THEN
1739 OE_BLANKET_PRICING_UTIL.Create_Modifiers(
1740 p_index => p_request_ind,
1741 x_return_status => l_return_status);
1742
1743 ELSIF l_request_type IN (OE_GLOBALS.G_GENERATE_XML_REQ_HDR, OE_GLOBALS.G_GENERATE_XML_REQ_LN) THEN
1744 -- only do processing on header-level requests
1745
1746 IF l_request_type = OE_GLOBALS.G_GENERATE_XML_REQ_HDR THEN
1747 OE_DELAYED_REQUESTS_UTIL.process_xml_delayed_request(p_request_ind => p_request_ind,
1748 x_return_status => l_return_status);
1749 END IF;
1750 --R12 CC Encryption
1751 ELSIF l_request_type = OE_GLOBALS.G_DELETE_PAYMENTS THEN
1752 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT THEN
1753 payment_line_id := l_request_rec.entity_id;
1754 payment_header_id := l_request_rec.param1;
1755 old_invoice_to_org_id := to_number(l_request_rec.param2);
1756 ELSE
1757 payment_header_id := l_request_rec.entity_id;
1758 payment_line_id := NULL;
1759 old_invoice_to_org_id := to_number(l_request_rec.param1);
1760 END IF;
1761
1762 IF l_debug_level > 0 THEN
1763 oe_debug_pub.add('header id for delete_payments is : ' || payment_header_id,3);
1764 oe_debug_pub.add('line id for delete_payments is : ' || payment_line_id,3);
1765 END IF;
1766
1767 OE_PrePayment_Pvt.Delete_Payments
1768 ( p_line_id => payment_line_id
1769 , p_header_id => payment_header_id
1770 , p_invoice_to_org_id => old_invoice_to_org_id
1771 , x_return_status => l_return_status
1772 , x_msg_count => l_msg_count
1773 , x_msg_data => l_msg_data
1774 );
1775 --R12 CC Encryption
1776 -- End of requests logged by blankets business object APIs.
1777 ELSE
1778 FND_MESSAGE.SET_NAME('ONT','ONT_INVALID_REQUEST');
1779 FND_MESSAGE.SET_TOKEN('ACTION',l_request_type);
1780 OE_MSG_PUB.Add;
1781 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1782
1783 END IF;
1784
1785 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1786 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1787 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1788 RAISE FND_API.G_EXC_ERROR;
1789 END IF;
1790
1791 IF (p_delete = FND_API.G_TRUE) then
1792
1793 G_Delayed_Requests.Delete(p_request_ind);
1794
1795 /*
1796 BUG 1794544 - do not delete from req entities table
1797 , delete table in the end when all requests are processed
1798 This to improve performance as this search loops through
1799 the entire pl/sql table which becomes very large with
1800 greater number of lines being processed
1801 -- Delete all the records in the requesting entities table
1802 -- that have this request.
1803
1804 l_req_entity_ind := G_Requesting_Entities.First;
1805
1806
1807 WHILE l_req_entity_ind IS NOT NULL LOOP
1808 IF G_Requesting_Entities(l_req_entity_ind).request_index = p_request_ind
1809 THEN
1810 G_Requesting_Entities.Delete(l_req_entity_ind);
1811 END IF;
1812 l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
1813 END LOOP;
1814 */
1815
1816 ELSE
1817
1818 G_Delayed_Requests(p_request_ind).processed := 'Y';
1819
1820 END IF;
1821
1822 /* IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1823 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1824 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1825 RAISE FND_API.G_EXC_ERROR;
1826 END IF;*/
1827 /* The request is not removed if return_status is error Rajeev*/
1828 --IF (p_delete = FND_API.G_TRUE) then
1829 -- G_Delayed_Requests.Delete(p_request_ind);
1830 --ELSE
1831 -- G_Delayed_Requests(p_request_ind).processed := 'Y';
1832 --END IF;
1833 IF l_debug_level > 0 THEN
1834 oe_debug_pub.add('leaving Process_Request_Pvt', 1);
1835 END IF;
1836 EXCEPTION
1837
1838 WHEN FND_API.G_EXC_ERROR THEN
1839 oe_debug_pub.add('exe error Process_Request_Pvt', 1);
1840 G_Delayed_Requests(p_request_ind).processed := 'N';
1841 oe_debug_pub.add
1842 ('1 type----- '|| G_Delayed_Requests(p_request_ind).request_type, 1);
1843 oe_debug_pub.add
1844 ('1 ind----- '|| p_request_ind, 1);
1845 x_return_status := FND_API.G_RET_STS_ERROR;
1846
1847 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1848 oe_debug_pub.add('unexp error Process_Request_Pvt', 1);
1849 oe_debug_pub.add('SQL ERROR MESSAGE:'||SQLERRM);
1850 G_Delayed_Requests(p_request_ind).processed := 'N';
1851 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1852
1853 WHEN NO_DATA_FOUND THEN
1854 oe_debug_pub.add('Exiting Process_Request_Pvt no_data_found exception ');
1855 G_Delayed_Requests(p_request_ind).processed := 'N';
1856 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1857
1858
1859 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1860 THEN
1861 OE_MSG_PUB.Add_Exc_Msg
1862 ( G_PKG_NAME
1863 , 'Process_Request_Pvt'
1864 );
1865 END IF;
1866
1867 WHEN OTHERS THEN
1868 G_Delayed_Requests(p_request_ind).processed := 'N';
1869 oe_debug_pub.add('SQL ERROR MESSAGE FOR WHEN OTHRES:'||SQLERRM);
1870 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1871
1872 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1873 THEN
1874 OE_MSG_PUB.Add_Exc_Msg
1875 ( G_PKG_NAME
1876 , 'Process_Request_Pvt'
1877 );
1878 END IF;
1879
1880 oe_debug_pub.add('Exiting Process_Request_Pvt with others exception ');
1881
1882
1883 End Process_Request_Pvt;
1884
1885 /** End Local Procedures **/
1886
1887 /** Global Procedures **/
1888 Procedure Log_Request
1889 ( p_entity_code IN VARCHAR2
1890 , p_entity_id IN NUMBER
1891 , p_requesting_entity_code IN VARCHAR2
1892 , p_requesting_entity_id IN NUMBER
1893 , p_request_type IN VARCHAR2
1894 , p_request_unique_key1 IN VARCHAR2 := NULL
1895 , p_request_unique_key2 IN VARCHAR2 := NULL
1896 , p_request_unique_key3 IN VARCHAR2 := NULL
1897 , p_request_unique_key4 IN VARCHAR2 := NULL
1898 , p_request_unique_key5 IN VARCHAR2 := NULL
1899 , p_param1 IN VARCHAR2 := NULL
1900 , p_param2 IN VARCHAR2 := NULL
1901 , p_param3 IN VARCHAR2 := NULL
1902 , p_param4 IN VARCHAR2 := NULL
1903 , p_param5 IN VARCHAR2 := NULL
1904 , p_param6 IN VARCHAR2 := NULL
1905 , p_param7 IN VARCHAR2 := NULL
1906 , p_param8 IN VARCHAR2 := NULL
1907 , p_param9 IN VARCHAR2 := NULL
1908 , p_param10 IN VARCHAR2 := NULL
1909 , p_param11 IN VARCHAR2 := NULL
1910 , p_param12 IN VARCHAR2 := NULL
1911 , p_param13 IN VARCHAR2 := NULL
1912 , p_param14 IN VARCHAR2 := NULL
1913 , p_param15 IN VARCHAR2 := NULL
1914 , p_param16 IN VARCHAR2 := NULL
1915 , p_param17 IN VARCHAR2 := NULL
1916 , p_param18 IN VARCHAR2 := NULL
1917 , p_param19 IN VARCHAR2 := NULL
1918 , p_param20 IN VARCHAR2 := NULL
1919 , p_param21 IN VARCHAR2 := NULL
1920 , p_param22 IN VARCHAR2 := NULL
1921 , p_param23 IN VARCHAR2 := NULL
1922 , p_param24 IN VARCHAR2 := NULL
1923 , p_param25 IN VARCHAR2 := NULL
1924 , p_date_param1 IN DATE := NULL
1925 , p_date_param2 IN DATE := NULL
1926 , p_date_param3 IN DATE := NULL
1927 , p_date_param4 IN DATE := NULL
1928 , p_date_param5 IN DATE := NULL
1929 , p_date_param6 IN DATE := NULL
1930 , p_date_param7 IN DATE := NULL
1931 , p_date_param8 IN DATE := NULL
1932 , p_long_param1 IN VARCHAR2 := NULL
1933 , x_return_status OUT NOCOPY VARCHAR2
1934
1935 )
1936 IS
1937 l_request_search_rslt VARCHAR2(1);
1938 l_return_status VARCHAR2(1);
1939 l_request_ind NUMBER;
1940 l_req_entity_ind NUMBER;
1941 l_request OE_Order_PUB.REQUEST_REC_TYPE;
1942 l_req_entity OE_Order_PUB.Requesting_Entity_Rec_Type;
1943 l_log_request VARCHAR2(1);
1944 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1945 BEGIN
1946
1947 IF l_debug_level > 0 THEN
1948 oe_debug_pub.add('Entering Procedure Log_Request in Package OE_Delayed_Requests_Pvt, entity id: '||p_entity_id||', request type:'||p_request_type);
1949 END IF;
1950
1951 -- Initialize the request_record
1952 l_request.request_type := p_request_type;
1953 l_request.entity_id := p_entity_id;
1954 l_request.entity_code := p_entity_code;
1955 l_request.request_unique_key1 := p_request_unique_key1;
1956 l_request.request_unique_key2 := p_request_unique_key2;
1957 l_request.request_unique_key3 := p_request_unique_key3;
1958 l_request.request_unique_key4 := p_request_unique_key4;
1959 l_request.request_unique_key5 := p_request_unique_key5;
1960 l_request.param1 := p_param1;
1961 l_request.param2 := p_param2;
1962 l_request.param3 := p_param3;
1963 l_request.param4 := p_param4;
1964 l_request.param5 := p_param5;
1965 l_request.param6 := p_param6;
1966 l_request.param7 := p_param7;
1967 l_request.param8 := p_param8;
1968 l_request.param9 := p_param9;
1969 l_request.param10 := p_param10;
1970 l_request.param11 := p_param11;
1971 l_request.param12 := p_param12;
1972 l_request.param13 := p_param13;
1973 l_request.param14 := p_param14;
1974 l_request.param15 := p_param15;
1975 l_request.param16 := p_param16;
1976 l_request.param17 := p_param17;
1977 l_request.param18 := p_param18;
1978 l_request.param19 := p_param19;
1979 l_request.param20 := p_param20;
1980 l_request.param21 := p_param21;
1981 l_request.param22 := p_param22;
1982 l_request.param23 := p_param23;
1983 l_request.param24 := p_param24;
1984 l_request.param25 := p_param25;
1985 l_request.date_param1 := p_date_param1;
1986 l_request.date_param2 := p_date_param2;
1987 l_request.date_param3 := p_date_param3;
1988 l_request.date_param4 := p_date_param4;
1989 l_request.date_param5 := p_date_param5;
1990 l_request.date_param6 := p_date_param6;
1991 l_request.date_param7 := p_date_param7;
1992 l_request.date_param8 := p_date_param8;
1993 l_request.long_param1 := p_long_param1;
1994
1995 -- Initialize the return variable
1996 x_return_status := FND_API.G_RET_STS_SUCCESS;
1997
1998 Check_For_Request(p_entity_code,
1999 p_entity_id,
2000 p_request_type,
2001 p_request_unique_key1,
2002 p_request_unique_key2,
2003 p_request_unique_key3,
2004 p_request_unique_key4,
2005 p_request_unique_key5,
2006 l_request_ind,
2007 l_request_search_rslt,
2008 l_return_status);
2009
2010 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2011 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2012 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2013 RAISE FND_API.G_EXC_ERROR;
2014 END IF;
2015
2016 l_request.processed := 'N';
2017
2018 IF l_request.request_type = OE_GLOBALS.G_PRICE_ORDER
2019 AND (l_request.request_unique_key1 = 'BATCH'
2020 AND nvl(l_request.request_unique_key2,'N') = 'Y'
2021 OR l_request.request_unique_key1 = 'ORDER'
2022 AND nvl(l_request.request_unique_key2,'N') = 'N'
2023 OR l_request.request_unique_key1 = 'BATCH'
2024 AND nvl(l_request.request_unique_key2,'N') = 'N'
2025 OR l_request.request_unique_key1 = 'BATCH,BOOK'
2026 AND nvl(l_request.request_unique_key2,'N') = 'Y'
2027 OR l_request.request_unique_key1 = 'ORDER,BOOK'
2028 AND nvl(l_request.request_unique_key2,'N') = 'N'
2029 OR l_request.request_unique_key1 = 'BATCH,BOOK'
2030 AND nvl(l_request.request_unique_key2,'N') = 'N')
2031 AND l_request_search_rslt = FND_API.g_false THEN
2032
2033 IF l_debug_level > 0 THEN
2034 oe_debug_pub.add('In log_request, calling check_pricing_request.',3);
2035 oe_debug_pub.add('request_unique_key1 is: '||l_request.request_unique_key1,3);
2036 oe_debug_pub.add('request_unique_key2 is: '||l_request.request_unique_key2,3);
2037 END IF;
2038 Check_Pricing_Request
2039 ( p_request_ind => l_request_ind
2040 ,p_request_rec => l_request
2041 ,x_log_request => l_log_request);
2042
2043 -- no need to log this delayed request.
2044 IF l_log_request = 'N' THEN
2045 RETURN;
2046 END IF;
2047
2048 --Bug 7566697
2049 IF oe_mass_change_pvt.Lines_Remaining = 'Y'
2050 THEN
2051 oe_debug_pub.add('Called from Mass Change, line remaining, NOT logging pricing request');
2052 RETURN;
2053 ELSE
2054 oe_debug_pub.add('Called from Mass Change, last line reached, logging pricing request');
2055 END IF;
2056
2057 END IF;
2058
2059 /* Added the following code to fix the fp bug 3498435 */
2060
2061 IF l_request.request_type = OE_GLOBALS.G_PRICE_LINE
2062 AND (nvl(l_request.request_unique_key1, l_request.param2) = 'BATCH'
2063 AND nvl(l_request.request_unique_key2,'N') = 'N'
2064 OR nvl(l_request.request_unique_key1,l_request.param2) = 'BATCH,BOOK'
2065 AND nvl(l_request.request_unique_key2,'N') = 'N')
2066 OR nvl(l_request.request_unique_key1, l_request.param2) = 'LINE'
2067 AND l_request_search_rslt = FND_API.g_false THEN
2068 Check_Pricing_Request
2069 ( p_request_ind => l_request_ind
2070 ,p_request_rec => l_request
2071 ,x_log_request => l_log_request);
2072 -- no need to log this delayed request.
2073 IF l_log_request = 'N' THEN
2074 RETURN;
2075 END IF;
2076
2077 END IF;
2078
2079 /* End of the code added to fix the fp bug 3498435 */
2080
2081 IF l_request_search_rslt = FND_API.g_true -- replace the request
2082 THEN
2083 IF l_debug_level > 0 THEN
2084 OE_Debug_PUB.ADD('Request replaced');
2085 END IF;
2086
2087 IF g_delayed_requests(l_request_ind).request_type =
2088 OE_GLOBALS.G_CASCADE_CHANGES THEN
2089 IF l_debug_level > 0 THEN
2090 OE_Debug_PUB.ADD('cascade changes, orig qty '||
2091 g_delayed_requests(l_request_ind).param1, 3);
2092 END IF;
2093 l_request.param1 := g_delayed_requests(l_request_ind).param1;
2094
2095 ELSIF g_delayed_requests(l_request_ind).request_type =
2096 OE_GLOBALS.G_UPDATE_OPTION THEN
2097 IF l_debug_level > 0 THEN
2098 OE_Debug_PUB.ADD('update option, orig qty '||
2099 g_delayed_requests(l_request_ind).param4, 3);
2100 END IF;
2101
2102 l_request.param4 := g_delayed_requests(l_request_ind).param4;
2103
2104 -- Added 09-DEC-2002
2105 -- BLANKETS: exception for blankets to retain old parameters
2106 ELSIF p_request_type = OE_GLOBALS.G_PROCESS_RELEASE
2107 THEN
2108 IF l_debug_level > 0 THEN
2109 oe_debug_pub.add('Retain parameters for old values');
2110 END IF;
2111 l_request.param1 := g_delayed_requests(l_request_ind).param1;
2112 l_request.param2 := g_delayed_requests(l_request_ind).param2;
2113 l_request.param3 := g_delayed_requests(l_request_ind).param3;
2114 l_request.param4 := g_delayed_requests(l_request_ind).param4;
2115 l_request.param5 := g_delayed_requests(l_request_ind).param5;
2116 l_request.param6 := g_delayed_requests(l_request_ind).param6;
2117
2118 ELSIF p_request_type = OE_GLOBALS.G_DROPSHIP_CMS
2119 THEN
2120 l_request.param1 := g_delayed_requests(l_request_ind).param1;
2121 l_request.param2 := g_delayed_requests(l_request_ind).param2;
2122 l_request.param3 := g_delayed_requests(l_request_ind).param3;
2123 l_request.param4 := g_delayed_requests(l_request_ind).param4;
2124 l_request.param5 := g_delayed_requests(l_request_ind).param5;
2125 l_request.param6 := g_delayed_requests(l_request_ind).param6;
2126 /*****Begin changes for bug#6918700*********/
2127 -- l_request.param7 := g_delayed_requests(l_request_ind).param7;
2128 l_request.date_param1 := g_delayed_requests(l_request_ind).date_param1;
2129 /*****End changes for bug#6918700*********/
2130
2131 ELSIF p_request_type = OE_GLOBALS.G_GROUP_SCHEDULE
2132 THEN
2133 --2819258 -- Retain the operation
2134 l_request.param14 := g_delayed_requests(l_request_ind).param14;
2135 -- 4052648
2136 ELSIF p_request_type = OE_GLOBALS.G_SCHEDULE_ATO
2137 THEN
2138 -- Retain old parameter values.
2139 l_request.param7 := g_delayed_requests(l_request_ind).param7; -- Ship From
2140 l_request.param8 := g_delayed_requests(l_request_ind).param8; -- Demand Class
2141 l_request.param14 := g_delayed_requests(l_request_ind).param14; -- Ship To
2142 l_request.param15 := g_delayed_requests(l_request_ind).param15; -- Ship Method
2143 l_request.param16 := g_delayed_requests(l_request_ind).param16; -- Planning Priority
2144 l_request.param17 := g_delayed_requests(l_request_ind).param17; -- Delivery Lead Time
2145 l_request.date_param4 := g_delayed_requests(l_request_ind).date_param4; -- Req Date
2146 l_request.date_param5 := g_delayed_requests(l_request_ind).date_param5; -- SSD
2147 l_request.date_param6 := g_delayed_requests(l_request_ind).date_param6; -- SAD
2148 ELSIF p_request_type = OE_GLOBALS.G_SCHEDULE_SMC
2149 THEN
2150 -- Retain old parameter values.
2151 l_request.param7 := g_delayed_requests(l_request_ind).param7; -- Ship From
2152 l_request.param8 := g_delayed_requests(l_request_ind).param8; -- Demand Class
2153 l_request.param14 := g_delayed_requests(l_request_ind).param14; -- Ship To
2154 l_request.param15 := g_delayed_requests(l_request_ind).param15; -- Ship Method
2155 l_request.param16 := g_delayed_requests(l_request_ind).param16; -- Planning Priority
2156 l_request.param17 := g_delayed_requests(l_request_ind).param17; -- Delivery Lead Time
2157 l_request.date_param4 := g_delayed_requests(l_request_ind).date_param4; -- Req Date
2158 l_request.date_param5 := g_delayed_requests(l_request_ind).date_param5; -- SSD
2159 l_request.date_param6 := g_delayed_requests(l_request_ind).date_param6; -- SAD
2160 ELSIF p_request_type = OE_GLOBALS.G_SCHEDULE_NONSMC
2161 THEN
2162 -- Retain old parameter values.
2163 l_request.param7 := g_delayed_requests(l_request_ind).param7; -- Ship From
2164 l_request.param8 := g_delayed_requests(l_request_ind).param8; -- Demand Class
2165 l_request.param14 := g_delayed_requests(l_request_ind).param14; -- Ship To
2166 l_request.param15 := g_delayed_requests(l_request_ind).param15; -- Ship Method
2167 l_request.param16 := g_delayed_requests(l_request_ind).param16; -- Planning Priority
2168 l_request.param17 := g_delayed_requests(l_request_ind).param17; -- Delivery Lead Time
2169 l_request.date_param4 := g_delayed_requests(l_request_ind).date_param4; -- Req Date
2170 l_request.date_param5 := g_delayed_requests(l_request_ind).date_param5; -- SSD
2171 l_request.date_param6 := g_delayed_requests(l_request_ind).date_param6; -- SAD
2172
2173 /* 7576948: IR ISO Change Management project Start */
2174 -- This code is hooked for IR ISO project and specific to
2175 -- OE_GLOBALS.G_UPDATE_REQUISITION delayed request, where if this request
2176 -- is getting replaced then certain parameter values should be retained
2177 -- or manipulated. Following parameters are used for this delayed request
2178 -- Please refer them with their meaning -
2179 --
2180 -- P_entity_code Entity for which delayed request has to be logged.
2181 -- In this project it can be OE_Globals.G_Entity_Line
2182 -- or OE_Globals.G_Entity_Header
2183 -- P_entity_id Primary key of the entity record. In this project,
2184 -- it can be Order Line_id or Header_id
2185 -- P_requesting_entity_code Which entity has requested this delayed request to
2186 -- be logged! In this project it will be OE_Globals.
2187 -- G_Entity_Line or OE_Globals.G_Entity_Header
2188 -- P_requesting_entity_id Primary key of the requesting entity. In this
2189 -- project, it is Line_id or Header_id
2190 -- P_request_type Indicates which business logic (or which procedure)
2191 -- should be executed. In this project, it is OE_Global
2192 -- s.G_UPDATE_REQUISITION
2193 -- P_request_unique_key1 Additional argument in form of parameters.
2194 -- In this project, it will denote the Sales Order
2195 -- Header id
2196 -- P_request_unique_key2 Additional argument in form of parameters.
2197 -- In this project, it will denote the Requisition
2198 -- Header id
2199 -- P_request_unique_key3 Additional argument in form of parameters. In
2200 -- this project, it will denote the Requistion Line
2201 -- id
2202 -- P_param1 Additional argument in form of parameters. In this project, it
2203 -- will denote net change in order quantity with respective single
2204 -- requisition line. If it is greater than 0 then it is an increment
2205 -- in the quantity, while if it is less than 0 then it is a decrement
2206 -- in the ordered quantity. If it is 0 then it indicates there is no
2207 -- change in ordered quantity value
2208 -- P_param2 Additional argument in form of parameters. In this project, it
2209 -- will denote whether internal sales order is cancelled or not. If
2210 -- it is cancelled then respective Purchasing api will be called to
2211 -- trigger the requisition header cancellation. It accepts a value of
2212 -- Y indicating requisition header has to be cancelled.
2213 -- P_param3 Additional argument in form of parameters. In this project, it
2214 -- will denote the number of sales order lines cancelled while order
2215 -- header is (Full/Partial) cancelled.
2216 -- p_date_param1 Additional date argument in form of parameters. In this
2217 -- project, it will denote the change in Schedule Ship Date
2218 -- with to respect to single requisition line.
2219 -- P_Long_param1 Additional argument in form of parameters. In this project,
2220 -- it will store all the sales order line_ids, which are getting
2221 -- cancelled while order header gets cancelled (Full/Partial).
2222 -- These Line_ids will be separated by a delimiter comma ','
2223 -- x_return_status The return status of the API (Expected/Unexcepted/Success)
2224
2225 -- For details on IR ISO CMS project, please refer to FOL >
2226 -- OM Development > OM GM > 12.1.1 > TDD > IR_ISO_CMS_TDD.doc
2227
2228
2229 ELSIF p_request_type = OE_GLOBALS.G_UPDATE_REQUISITION THEN
2230 IF l_debug_level > 0 THEN
2231 oe_debug_pub.add('Type: G_UPDATE_REQUISITION, retain old parameter values',5);
2232 END IF;
2233
2234 IF g_delayed_requests(l_request_ind).param1 IS NOT NULL
2235 AND l_request.param1 IS NULL THEN
2236 IF l_debug_level > 0 THEN
2237 oe_debug_pub.add(' Retaining Delta Quantity change for index '||l_request_ind,5);
2238 oe_debug_pub.add(' Old Delta Quantity change is '||g_delayed_requests(l_request_ind).param1,5);
2239 oe_debug_pub.add(' New Delta Quantity change is NULL',5);
2240 END IF;
2241 l_request.param1 := g_delayed_requests(l_request_ind).param1;
2242 -- Retaining the delta quantity change value if the new delta change is null, which could
2243 -- be typically a case when user will change the order quantity first, and then the
2244 -- schedule ship date
2245 END IF;
2246
2247 IF NVL(g_delayed_requests(l_request_ind).param2,'N') = 'Y' THEN
2248 IF l_debug_level > 0 THEN
2249 oe_debug_pub.add(' Retaining Header Level Cancellation Flag for index '||l_request_ind,5);
2250 oe_debug_pub.add(' Old Header Level Cancelation flag is '||g_delayed_requests(l_request_ind).param2,5);
2251 oe_debug_pub.add(' New Header Level Cancelation flag is '||l_request.param2,5);
2252 END IF;
2253 l_request.param2 := g_delayed_requests(l_request_ind).param2;
2254 -- Order Header is requested for cancellation
2255 END IF;
2256
2257 IF g_delayed_requests(l_request_ind).param3 IS NOT NULL THEN
2258 IF l_debug_level > 0 THEN
2259 oe_debug_pub.add(' Incrementing the counter for lines to be cancelled for index '||l_request_ind,5);
2260 oe_debug_pub.add(' Old counter value is '||g_delayed_requests(l_request_ind).param3,5);
2261 END IF;
2262 l_request.param3 := nvl(l_request.param3,0) + g_delayed_requests(l_request_ind).param3;
2263 IF l_debug_level > 0 THEN
2264 oe_debug_pub.add(' New counter value is '||l_request.param3,5);
2265 END IF;
2266 -- Counter maintaining number of order line records cancelled during
2267 -- the order header level (Full/Partial) cancellation request
2268 END IF;
2269
2270 IF l_request.long_param1 IS NOT NULL THEN
2271 IF g_delayed_requests(l_request_ind).long_param1 IS NOT NULL THEN
2272 IF l_debug_level > 0 THEN
2273 oe_debug_pub.add(' Line_ids to be cancelled for index '||l_request_ind,5);
2274 oe_debug_pub.add(' Old Line_ids are '||g_delayed_requests(l_request_ind).long_param1,5);
2275 END IF;
2276 l_request.long_param1 := g_delayed_requests(l_request_ind).long_param1||','|| l_request.long_param1;
2277 IF l_debug_level > 0 THEN
2278 oe_debug_pub.add(' New Line_ids are '||l_request.long_param1,5);
2279 END IF;
2280 -- A string variable containing line_ids, which are cancelled during
2281 -- the Order Header level (Full/Partial) cancellation request
2282 -- In this string, the Line_ids will be separated by a delimiter comma ','
2283 END IF;
2284 ELSE
2285 l_request.long_param1 := g_delayed_requests(l_request_ind).long_param1;
2286 IF l_debug_level > 0 THEN
2287 oe_debug_pub.add(' Only old Line_ids are retained '||l_request.long_param1,5);
2288 END IF;
2289 -- Since this request has not passed the line_id, just retain the global
2290 END IF;
2291
2292 IF g_delayed_requests(l_request_ind).date_param1 IS NOT NULL
2293 AND l_request.date_param1 IS NULL THEN
2294 IF l_debug_level > 0 THEN
2295 oe_debug_pub.add(' Retain Old date_param1 : '||g_delayed_requests(l_request_ind).date_param1,5);
2296 END IF;
2297 l_request.date_param1 := g_delayed_requests(l_request_ind).date_param1;
2298 END IF;
2299
2300
2301 /* ============================= */
2302 /* IR ISO Change Management Ends */
2303
2304
2305 END IF;
2306
2307 g_delayed_requests(l_request_ind) := l_request;
2308
2309 ELSE -- insert the new request
2310 IF l_debug_level > 0 THEN
2311 OE_Debug_PUB.ADD('New request inserted');
2312 END IF;
2313 -- l_request_ind := nvl(g_delayed_requests.LAST, 0) + 1;
2314
2315 -- 11i10 Pricing Changes for blankets
2316 IF p_request_type = OE_GLOBALS.G_PROCESS_RELEASE
2317 AND OE_Code_Control.Get_Code_Release_Level >= '110510'
2318 THEN
2319 OE_Blkt_Release_Util.Cache_Order_Qty_Amt
2320 (p_request_rec => l_request
2321 ,x_return_status => l_return_status
2322 ) ;
2323 if l_return_status = fnd_api.g_ret_sts_error then
2324 raise fnd_api.g_exc_error;
2325 elsif l_return_status = fnd_api.g_ret_sts_error then
2326 raise fnd_api.g_exc_unexpected_error;
2327 end if;
2328 END IF;
2329
2330 g_delayed_requests(l_request_ind) := l_request;
2331
2332 END IF;
2333
2334 -- Initialize the requesting entity record
2335 l_req_entity.entity_code := p_requesting_entity_code;
2336 l_req_entity.entity_id := p_requesting_entity_id;
2337 l_req_entity.request_index := l_request_ind;
2338
2339 l_req_entity_ind := nvl(g_requesting_entities.LAST, 0) + 1;
2340
2341 -- Insert into the requesting entities table
2342 g_requesting_entities(l_req_entity_ind) := l_req_entity;
2343 IF l_debug_level > 0 THEN
2344 oe_debug_pub.add('!!!!!!! index '|| l_request_ind, 5);
2345 END IF;
2346 EXCEPTION
2347
2348 WHEN FND_API.G_EXC_ERROR THEN
2349
2350 x_return_status := FND_API.G_RET_STS_ERROR;
2351
2352 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2353
2354 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2355 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2356
2357 WHEN OTHERS THEN
2358 IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2359 THEN
2360 OE_MSG_PUB.Add_Exc_Msg
2361 (G_PKG_NAME
2362 ,'LOGREQUEST');
2363 END IF;
2364
2365 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2366 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2367
2368 End Log_Request;
2369
2370 Function Check_for_Request( p_entity_code IN VARCHAR2,
2371 p_entity_id IN NUMBER,
2372 p_request_type IN VARCHAR2,
2373 p_request_unique_key1 IN VARCHAR2 := NULL,
2374 p_request_unique_key2 IN VARCHAR2 := NULL,
2375 p_request_unique_key3 IN VARCHAR2 := NULL,
2376 p_request_unique_key4 IN VARCHAR2 := NULL,
2377 p_request_unique_key5 IN VARCHAR2 := NULL
2378 )
2379 RETURN BOOLEAN IS
2380 l_ind Number;
2381 x_result Varchar2(30);
2382 x_return_status Varchar2(30);
2383 Begin
2384 Check_for_Request( p_entity_code => p_entity_code
2385 ,p_entity_id => p_entity_id
2386 ,p_request_type => p_request_type
2387 ,p_request_unique_key1 => p_request_unique_key1
2388 ,p_request_unique_key2 => p_request_unique_key2
2389 ,p_request_unique_key3 => p_request_unique_key3
2390 ,p_request_unique_key4 => p_request_unique_key4
2391 ,p_request_unique_key5 => p_request_unique_key5
2392 ,x_request_ind => l_ind
2393 ,x_result => x_result
2394 ,x_return_status => x_return_status);
2395
2396 if x_result = FND_API.G_TRUE then
2397 return(TRUE);
2398 else
2399 return(FALSE);
2400 end if;
2401
2402 End;
2403
2404 Procedure Delete_Request(p_entity_code IN VARCHAR2
2405 ,p_entity_id IN NUMBER
2406 ,p_request_Type IN VARCHAR2
2407 ,p_request_unique_key1 IN VARCHAR2 := NULL
2408 ,p_request_unique_key2 IN VARCHAR2 := NULL
2409 ,p_request_unique_key3 IN VARCHAR2 := NULL
2410 ,p_request_unique_key4 IN VARCHAR2 := NULL
2411 ,p_request_unique_key5 IN VARCHAR2 := NULL
2412 ,x_return_status OUT NOCOPY VARCHAR2)
2413
2414 IS
2415 l_request_search_rslt Varchar2(1);
2416 l_return_status Varchar2(1);
2417 l_request_ind number;
2418 l_req_entity_ind number;
2419 --
2420 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2421 --
2422 BEGIN
2423 IF l_debug_level > 0 THEN
2424 oe_debug_pub.add('Entering Procedure Delete_Request in Package OE_Delayed_Requests_Pvt');
2425 END IF;
2426 x_return_status := FND_API.G_RET_STS_SUCCESS;
2427
2428 Check_for_Request( p_entity_code => p_entity_code
2429 ,p_entity_id => p_entity_id
2430 ,p_request_type => p_request_type
2431 ,p_request_unique_key1 => p_request_unique_key1
2432 ,p_request_unique_key2 => p_request_unique_key2
2433 ,p_request_unique_key3 => p_request_unique_key3
2434 ,p_request_unique_key4 => p_request_unique_key4
2435 ,p_request_unique_key5 => p_request_unique_key5
2436 ,x_request_ind => l_request_ind
2437 ,x_result => l_request_search_rslt
2438 ,x_return_status => l_return_status);
2439
2440
2441 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2442 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2443 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2444 RAISE FND_API.G_EXC_ERROR;
2445 END IF;
2446
2447 if l_request_search_rslt = FND_API.G_TRUE -- delete the request
2448 then
2449 G_Delayed_Requests.Delete(l_request_ind);
2450 /*
2451 BUG 1794544 - do not delete from req entities table
2452 , delete table in the end when all requests are processed
2453 This to improve performance as this search loops through
2454 the entire pl/sql table which becomes very large with
2455 greater number of lines being processed
2456 -- Delete all the records in the requesting entities table
2457 -- that have this request.
2458 l_req_entity_ind := G_Requesting_Entities.First;
2459 WHILE l_req_entity_ind IS NOT NULL LOOP
2460 IF G_Requesting_Entities(l_req_entity_ind).request_index = l_request_ind
2461 THEN
2462 G_Requesting_Entities.Delete(l_req_entity_ind);
2463 END IF;
2464 l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
2465 END LOOP;
2466 */
2467 end if;
2468
2469 EXCEPTION
2470
2471 WHEN FND_API.G_EXC_ERROR THEN
2472
2473 x_return_status := FND_API.G_RET_STS_ERROR;
2474
2475 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2476
2477 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2478
2479 when others THEN
2480
2481 IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2482 OE_MSG_PUB.Add_Exc_Msg
2483 (G_PKG_NAME
2484 ,'DeleteRequest');
2485 END IF;
2486
2487 x_return_status := FND_API.G_RET_STS_ERROR;
2488
2489 End Delete_Request;
2490
2491 Procedure Clear_Request( x_return_status OUT NOCOPY VARCHAR2)
2492
2493 IS
2494 --
2495 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2496 --
2497 BEGIN
2498 IF l_debug_level > 0 THEN
2499 oe_debug_pub.add('Entering Procedure Clear_Request in Package OE_Delayed_Requests_Pvt');
2500 END IF;
2501
2502 x_return_status := FND_API.G_RET_STS_SUCCESS;
2503
2504 G_Delayed_Requests.DELETE;
2505 g_requesting_entities.DELETE;
2506
2507 --Bug4504362
2508 OE_Config_Schedule_Pvt.Delete_Attribute_Changes;
2509
2510 --- Bug #2674349
2511 IF(OE_Line_Adj_Util.G_CHANGED_LINE_TBL.count>0) THEN
2512 Oe_Line_Adj_Util.Delete_Changed_Lines_Tbl;
2513 END IF;
2514
2515 ----Bug #2822222
2516 /* IF OE_Config_Pvt.OE_MODIFY_INC_ITEMS_TBL.COUNT > 0 THEN
2517 OE_Config_Pvt.OE_MODIFY_INC_ITEMS_TBL.DELETE;
2518 END IF; */
2519
2520
2521 EXCEPTION
2522
2523 WHEN OTHERS THEN
2524
2525 IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2526 OE_MSG_PUB.Add_Exc_Msg
2527 (G_PKG_NAME
2528 ,'Clear_Request');
2529 END IF;
2530
2531 x_return_status := FND_API.G_RET_STS_ERROR;
2532
2533 End Clear_Request;
2534
2535 Procedure Process_Request( p_entity_code IN VARCHAR2
2536 ,p_entity_id IN Number
2537 ,p_request_Type IN VARCHAR2
2538 ,p_request_unique_key1 IN VARCHAR2 := NULL
2539 ,p_request_unique_key2 IN VARCHAR2 := NULL
2540 ,p_request_unique_key3 IN VARCHAR2 := NULL
2541 ,p_request_unique_key4 IN VARCHAR2 := NULL
2542 ,p_request_unique_key5 IN VARCHAR2 := NULL
2543 ,p_delete IN Varchar2 Default
2544 FND_API.G_TRUE
2545 ,x_return_status OUT NOCOPY Varchar2)
2546
2547 IS
2548 l_request_ind Number;
2549 l_request_search_rslt Varchar2(30);
2550 l_return_status Varchar2(30);
2551 --
2552 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2553 --
2554 Begin
2555 x_return_status := FND_API.G_RET_STS_SUCCESS;
2556 IF l_debug_level > 0 THEN
2557 oe_debug_pub.add('Entering Procedure Process_Request in Package OE_Delayed_Requests_Pvt');
2558 END IF;
2559 Check_for_Request( p_entity_code => p_entity_code
2560 ,p_entity_id => p_entity_id
2561 ,p_request_type => p_request_type
2562 ,p_request_unique_key1 => p_request_unique_key1
2563 ,p_request_unique_key2 => p_request_unique_key2
2564 ,p_request_unique_key3 => p_request_unique_key3
2565 ,p_request_unique_key4 => p_request_unique_key4
2566 ,p_request_unique_key5 => p_request_unique_key5
2567 ,x_request_ind => l_request_ind
2568 ,x_result => l_request_search_rslt
2569 ,x_return_status => l_return_status);
2570
2571 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2572 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2573 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2574 RAISE FND_API.G_EXC_ERROR;
2575 END IF;
2576
2577 if l_request_search_rslt = FND_API.G_TRUE then
2578 Process_Request_Pvt
2579 (p_request_ind => l_request_ind
2580 ,p_delete => p_delete
2581 ,x_return_status => l_return_status
2582 );
2583 end if;
2584
2585 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2586 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2587 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2588 RAISE FND_API.G_EXC_ERROR;
2589 END IF;
2590
2591 EXCEPTION
2592
2593 WHEN FND_API.G_EXC_ERROR THEN
2594
2595 x_return_status := FND_API.G_RET_STS_ERROR;
2596
2597 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2598
2599 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2600
2601 WHEN OTHERS THEN
2602
2603 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2604
2605 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2606 THEN
2607 OE_MSG_PUB.Add_Exc_Msg
2608 ( G_PKG_NAME
2609 , 'Process_Request'
2610 );
2611 END IF;
2612
2613 End Process_Request;
2614
2615 Procedure Process_Request_for_Entity
2616 ( p_entity_code in Varchar2
2617 ,p_delete in Varchar2 Default FND_API.G_TRUE
2618 ,x_return_status OUT NOCOPY Varchar2) IS
2619
2620 l_return_status Varchar2(30);
2621 l_ind Number;
2622 --
2623 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2624 --
2625 Begin
2626 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2627 p_In_out => 1);
2628
2629 x_return_status := FND_API.G_RET_STS_SUCCESS;
2630 IF l_debug_level > 0 THEN
2631 oe_debug_pub.add('Enter OE_Delayed_Requests_Pvt.Process_Request_for_Entity',1);
2632 END IF;
2633 IF oe_globals.g_recursion_mode = 'N' THEN
2634
2635
2636 l_ind := G_Delayed_Requests.first;
2637
2638 WHILE l_ind IS NOT NULL LOOP
2639 IF G_Delayed_Requests(l_ind).Entity_code = p_entity_code THEN
2640 Process_Request_Pvt
2641 (p_request_ind => l_ind
2642 ,p_delete => p_delete
2643 ,x_return_status => l_return_status
2644 );
2645
2646 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2647 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2648 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2649 IF l_debug_level > 0 THEN
2650 oe_debug_pub.add
2651 ('2 type----- '|| G_Delayed_Requests(l_ind).request_type, 1);
2652 oe_debug_pub.add
2653 ('2 ind----- '|| l_ind, 1);
2654 END IF;
2655 RAISE FND_API.G_EXC_ERROR;
2656 END IF;
2657 END IF;
2658 l_ind := G_Delayed_Requests.Next(l_ind);
2659 END LOOP;
2660 END IF; -- Recursion mode
2661
2662 IF l_debug_level > 0 THEN
2663 oe_debug_pub.add('Exiting Process_Request_for_Entity ');
2664 END IF;
2665
2666 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2667 p_In_out => 0);
2668 EXCEPTION
2669
2670 WHEN FND_API.G_EXC_ERROR THEN
2671 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2672 p_In_out => 0);
2673 x_return_status := FND_API.G_RET_STS_ERROR;
2674
2675 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2676 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2677 p_In_out => 0);
2678 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2679
2680 WHEN OTHERS THEN
2681 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2682 p_In_out => 0);
2683 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2684
2685 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2686 THEN
2687 OE_MSG_PUB.Add_Exc_Msg
2688 ( G_PKG_NAME
2689 , 'Process_Request_for_Entity'
2690 );
2691 END IF;
2692 IF l_debug_level > 0 THEN
2693 oe_debug_pub.add('Exiting Process_Request_for_Entity ');
2694 END IF;
2695
2696 End Process_Request_for_Entity;
2697
2698
2699 Procedure Process_Request_for_ReqType
2700 ( p_request_type in Varchar2
2701 ,p_delete in Varchar2 Default FND_API.G_TRUE
2702 ,x_return_status OUT NOCOPY Varchar2
2703
2704 ) IS
2705 l_return_status Varchar2(30);
2706 l_ind Number;
2707 l_count Number;
2708 l_req_entity_ind Number;
2709
2710 l_entity_id_tbl Entity_Id_Tbl_Type;
2711 --
2712 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2713 --
2714 BEGIN
2715 x_return_status := FND_API.G_RET_STS_SUCCESS;
2716 oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
2717 p_In_out => 1);
2718 IF l_debug_level > 0 THEN
2719 oe_debug_pub.add('Entering Procedure Process_Request_for_ReqType in Package OE_Delayed_Requests_Pvt');
2720 END IF;
2721 --IF oe_globals.g_recursion_mode = 'N' THEN
2722 l_ind := G_Delayed_Requests.first;
2723 l_count := 0;
2724 WHILE l_ind IS NOT NULL LOOP
2725 IF G_Delayed_Requests(l_ind).request_type = p_request_type THEN
2726 IF p_request_type = OE_GLOBALS.G_TAX_LINE THEN
2727 l_count := l_count + 1;
2728 l_entity_id_tbl(l_count).entity_id := G_Delayed_Requests(l_ind).entity_id;
2729 l_entity_id_tbl(l_count).request_ind := l_ind;
2730 ELSE
2731 Process_Request_Pvt
2732 (p_request_ind => l_ind
2733 ,p_delete => p_delete
2734 ,x_return_status => l_return_status
2735 );
2736
2737 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2738 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2739 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2740 RAISE FND_API.G_EXC_ERROR;
2741 END IF;
2742 END IF;
2743 END IF;
2744 l_ind := G_Delayed_Requests.Next(l_ind);
2745 END LOOP;
2746 IF l_entity_id_tbl.COUNT > 0 THEN
2747 OE_Delayed_Requests_UTIL.Process_Tax
2748 (p_Entity_id_tbl => l_entity_id_tbl
2749 ,x_return_status => l_return_status
2750 );
2751
2752 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2753 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2754 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2755 RAISE FND_API.G_EXC_ERROR;
2756 END IF;
2757 l_count := l_entity_id_tbl.FIRST;
2758 WHILE l_count IS NOT NULL LOOP -- Fixing 1888284
2759 G_Delayed_Requests.DELETE(l_entity_id_tbl(l_count).request_ind);
2760 /*
2761 BUG 1794544 - do not delete from req entities table
2762 , delete table in the end when all requests are processed
2763 This to improve performance as this search loops through
2764 the entire pl/sql table which becomes very large with
2765 greater number of lines being processed
2766 l_req_entity_ind := G_Requesting_Entities.First;
2767 WHILE l_req_entity_ind IS NOT NULL LOOP
2768 IF G_Requesting_Entities(l_req_entity_ind).request_index
2769 = l_entity_id_tbl(l_count).request_ind
2770 THEN
2771 G_Requesting_Entities.Delete(l_req_entity_ind);
2772 END IF;
2773 l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
2774 END LOOP;
2775 */
2776 l_count := l_entity_id_tbl.NEXT(l_count);
2777 END LOOP;
2778
2779 END IF;
2780 --END IF ; -- Recursion mode
2781 oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
2782 p_In_out => 0);
2783 IF l_debug_level > 0 THEN
2784 oe_debug_pub.add('leaving process_requenst_for_reqtype', 1);
2785 END IF;
2786 EXCEPTION
2787
2788 WHEN FND_API.G_EXC_ERROR THEN
2789 oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
2790 p_In_out => 0);
2791 oe_debug_pub.add('execution error', 1);
2792 x_return_status := FND_API.G_RET_STS_ERROR;
2793
2794 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2795 oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
2796 p_In_out => 0);
2797 oe_debug_pub.add('unexp error', 1);
2798 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2799
2800 WHEN OTHERS THEN
2801 oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
2802 p_In_out => 0);
2803 oe_debug_pub.add('others error', 1);
2804 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2805
2806 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2807 THEN
2808 OE_MSG_PUB.Add_Exc_Msg
2809 ( G_PKG_NAME
2810 , 'Process_Request_for_ReqType'
2811 );
2812 END IF;
2813
2814 End Process_Request_for_ReqType;
2815
2816 Procedure Process_Delayed_Requests(
2817 x_return_status OUT NOCOPY Varchar2
2818
2819 ) IS
2820 l_ind NUMBER; /* 1739574 */
2821 l_return_status Varchar2(30);
2822 --
2823 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2824 --
2825 Begin
2826 IF l_debug_level > 0 THEN
2827 oe_debug_pub.add('Enter OE_Delayed_Requests_Pvt.Process_Delayed_Requests');
2828 END IF;
2829 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2830 p_In_out => 1);
2831
2832 -- Process requests as per the dependency
2833 -- Process a request to default header sales credit for
2834 -- primary sales person
2835 IF oe_globals.g_recursion_mode = 'N' THEN
2836
2837 Process_Request_for_ReqType
2838 (p_request_type => OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP
2839 ,p_delete => FND_API.G_TRUE
2840 ,x_return_status => l_return_status
2841 );
2842 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2843 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2844 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2845 RAISE FND_API.G_EXC_ERROR;
2846 END IF;
2847
2848 -- Process Header Sales Credits Delayed Requests
2849 Process_Request_for_ReqType
2850 (p_request_type => OE_GLOBALS.G_CHECK_HSC_QUOTA_TOTAL
2851 ,p_delete => FND_API.G_TRUE
2852 ,x_return_status => l_return_status
2853 );
2854 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2855 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2856 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2857 RAISE FND_API.G_EXC_ERROR;
2858 END IF;
2859
2860 -- Process Lines Sales Credits Delayed Requests
2861 Process_Request_for_ReqType
2862 (p_request_type => OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL
2863 ,p_delete => FND_API.G_TRUE
2864 ,x_return_status => l_return_status
2865 );
2866 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2867 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2868 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2869 RAISE FND_API.G_EXC_ERROR;
2870 END IF;
2871
2872 -- Process CREATE_SETS Requests
2873 Process_Request_for_ReqType
2874 (p_request_type => OE_GLOBALS.G_CREATE_SETS
2875 ,p_delete => FND_API.G_TRUE
2876 ,x_return_status => l_return_status
2877 );
2878 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2879 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2880 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2881 RAISE FND_API.G_EXC_ERROR;
2882 END IF;
2883
2884
2885
2886 -- Process CREATE_CONFIG_ITEM Requests
2887 Process_Request_for_ReqType
2888 (p_request_type => OE_GLOBALS.G_CREATE_CONFIG_ITEM
2889 ,p_delete => FND_API.G_TRUE
2890 ,x_return_status => l_return_status
2891 );
2892 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2893 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2894 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2895 RAISE FND_API.G_EXC_ERROR;
2896 END IF;
2897
2898 -- Process INSERT_INTO_SETS Requests
2899 Process_Request_for_ReqType
2900 (p_request_type => OE_GLOBALS.G_INSERT_INTO_SETS
2901 ,p_delete => FND_API.G_TRUE
2902 ,x_return_status => l_return_status
2903 );
2904 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2905 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2906 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2907 RAISE FND_API.G_EXC_ERROR;
2908 END IF;
2909
2910 -- Process INS_INCLUDED_ITEM Requests
2911 Process_Request_for_ReqType
2912 (p_request_type => OE_GLOBALS.G_INS_INCLUDED_ITEMS
2913 ,p_delete => FND_API.G_TRUE
2914 ,x_return_status => l_return_status
2915 );
2916 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2917 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2918 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2919 RAISE FND_API.G_EXC_ERROR;
2920 END IF;
2921
2922
2923
2924 -- Process requests for RMA
2925 Process_Request_for_ReqType
2926 (p_request_type => OE_GLOBALS.G_INSERT_RMA
2927 ,p_delete => FND_API.G_TRUE
2928 ,x_return_status => l_return_status
2929 );
2930 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2931 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2932 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2933 RAISE FND_API.G_EXC_ERROR;
2934 END IF;
2935
2936 -- Process requests for Split_hold
2937 Process_Request_for_ReqType
2938 (p_request_type => OE_GLOBALS.G_SPLIT_HOLD
2939 ,p_delete => FND_API.G_TRUE
2940 ,x_return_status => l_return_status
2941 );
2942 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2943 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2944 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2945 RAISE FND_API.G_EXC_ERROR;
2946 END IF;
2947
2948 -- Process requests for Delayed Requests
2949 Process_Request_for_ReqType
2950 (p_request_type => OE_GLOBALS.G_EVAL_HOLD_SOURCE
2951 ,p_delete => FND_API.G_TRUE
2952 ,x_return_status => l_return_status
2953 );
2954 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2955 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2956 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2957 RAISE FND_API.G_EXC_ERROR;
2958 END IF;
2959
2960 -- Process requests for Quantity Cascade
2961 Process_Request_for_ReqType
2962 (p_request_type => OE_GLOBALS.G_CASCADE_QUANTITY
2963 ,p_delete => FND_API.G_TRUE
2964 ,x_return_status => l_return_status
2965 );
2966 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2967 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2968 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2969 RAISE FND_API.G_EXC_ERROR;
2970 END IF;
2971
2972 /*** we do not need this, confirm with ashwin
2973 -- Process requests for project Cascade
2974 Process_Request_for_ReqType
2975 (p_request_type => OE_GLOBALS.G_CASCADE_PROJECT
2976 ,p_delete => FND_API.G_TRUE
2977 ,x_return_status => l_return_status
2978 );
2979 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2980 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2981 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2982 RAISE FND_API.G_EXC_ERROR;
2983 END IF;
2984
2985 -- Process requests for task Cascade
2986 Process_Request_for_ReqType
2987 (p_request_type => OE_GLOBALS.G_CASCADE_TASK
2988 ,p_delete => FND_API.G_TRUE
2989 ,x_return_status => l_return_status
2990 );
2991 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2992 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2993 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2994 RAISE FND_API.G_EXC_ERROR;
2995 END IF;
2996
2997 -- Process requests for task Cascade
2998 ***/
2999 Process_Request_for_ReqType
3000 (p_request_type => OE_GLOBALS.G_CASCADE_CHANGES
3001 ,p_delete => FND_API.G_TRUE
3002 ,x_return_status => l_return_status
3003 );
3004 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3005 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3006 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3007 RAISE FND_API.G_EXC_ERROR;
3008 END IF;
3009
3010 -- Process requests to Split Reservations
3011 Process_Request_for_ReqType
3012 (p_request_type => OE_GLOBALS.G_CREATE_RESERVATIONS
3013 ,p_delete => FND_API.G_TRUE
3014 ,x_return_status => l_return_status
3015 );
3016 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3017 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3018 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3019 RAISE FND_API.G_EXC_ERROR;
3020 END IF;
3021
3022 -- Process requests to Complete Configuration
3023 Process_Request_for_ReqType
3024 (p_request_type => OE_GLOBALS.G_COMPLETE_CONFIGURATION
3025 ,p_delete => FND_API.G_TRUE
3026 ,x_return_status => l_return_status
3027 );
3028 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3029 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3030 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3031 RAISE FND_API.G_EXC_ERROR;
3032 END IF;
3033
3034 -- Process requests for Validate Configuration
3035 Process_Request_for_ReqType
3036 (p_request_type => OE_GLOBALS.G_VALIDATE_CONFIGURATION
3037 ,p_delete => FND_API.G_TRUE
3038 ,x_return_status => l_return_status
3039 );
3040 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3041 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3042 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3043 RAISE FND_API.G_EXC_ERROR;
3044 END IF;
3045
3046 -- Process requests for CTO Notification
3047 Process_Request_for_ReqType
3048 (p_request_type => OE_GLOBALS.G_CTO_NOTIFICATION
3049 ,p_delete => FND_API.G_TRUE
3050 ,x_return_status => l_return_status
3051 );
3052 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3053 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3054 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3055 RAISE FND_API.G_EXC_ERROR;
3056 END IF;
3057
3058 -- Process requests for Service
3059 Process_Request_for_ReqType
3060 (p_request_type => OE_GLOBALS.G_INSERT_SERVICE
3061 ,p_delete => FND_API.G_TRUE
3062 ,x_return_status => l_return_status
3063 );
3064 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3065 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3066 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3067 RAISE FND_API.G_EXC_ERROR;
3068 END IF;
3069
3070 /* Added the below call for bug 5925600 */
3071 Process_Request_for_ReqType
3072 (p_request_type => OE_GLOBALS.G_GROUP_SCHEDULE
3073 ,p_delete => FND_API.G_TRUE
3074 ,x_return_status => l_return_status
3075 );
3076 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3077 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3078 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3079 RAISE FND_API.G_EXC_ERROR;
3080 END IF;
3081
3082 Process_Request_for_ReqType
3083 (p_request_type => OE_GLOBALS.G_CASCADE_OPTIONS_SERVICE
3084 ,p_delete => FND_API.G_TRUE
3085 ,x_return_status => l_return_status
3086 );
3087 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3088 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3089 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3090 RAISE FND_API.G_EXC_ERROR;
3091 END IF;
3092 /* End of changes done for bug 5925600 */
3093
3094 -- bug 5717671/5736696, need to execute copy header adj
3095 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3096 (p_request_type =>OE_GLOBALS.G_COPY_HEADER_ADJUSTMENTS
3097 ,p_delete => FND_API.G_TRUE
3098 ,x_return_status => l_return_status
3099 );
3100 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3101 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3102 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3103 RAISE FND_API.G_EXC_ERROR;
3104 END IF;
3105
3106
3107 -- bug 1834260, moved this block of code from after processing
3108 -- for request type G_PRICE_LINE to before it.
3109 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3110 (p_request_type =>OE_GLOBALS.G_COPY_ADJUSTMENTS
3111 ,p_delete => FND_API.G_TRUE
3112 ,x_return_status => l_return_status
3113 );
3114 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3115 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3116 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3117 RAISE FND_API.G_EXC_ERROR;
3118 END IF;
3119
3120 -- Process Requests for Freight Rating.
3121 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3122 (p_request_type =>OE_GLOBALS.G_FREIGHT_RATING
3123 ,p_delete => FND_API.G_TRUE
3124 ,x_return_status => l_return_status
3125 );
3126 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3127 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3128 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3129 RAISE FND_API.G_EXC_ERROR;
3130 END IF;
3131
3132 /* Added for Bug # 1559906 */
3133 /* Renga- copy_freight_charges delayed request should be executed
3134 right after copy_adjustments - please do not put any delayed
3135 request in between copy_adjustments and copy_freight_charges */
3136
3137 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3138 (p_request_type =>OE_GLOBALS.G_COPY_FREIGHT_CHARGES
3139 ,p_delete => FND_API.G_TRUE
3140 ,x_return_status => l_return_status
3141 );
3142 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3143 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3144 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3145 RAISE FND_API.G_EXC_ERROR;
3146 END IF;
3147
3148
3149 -- Process Requests for Pricing
3150 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3151 (p_request_type =>OE_GLOBALS.G_PRICE_LINE
3152 ,p_delete => FND_API.G_TRUE
3153 ,x_return_status => l_return_status
3154 );
3155 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3156 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3157 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3158 RAISE FND_API.G_EXC_ERROR;
3159 END IF;
3160
3161
3162 -- Renga - added freight_for_included items call
3163 -- Process Requests for Freight For included items.
3164 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3165 (p_request_type =>OE_GLOBALS.G_FREIGHT_FOR_INCLUDED
3166 ,p_delete => FND_API.G_TRUE
3167 ,x_return_status => l_return_status
3168 );
3169 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3170 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3171 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3172 RAISE FND_API.G_EXC_ERROR;
3173 END IF;
3174
3175 -- Renga - done for freight for included items.
3176
3177
3178 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3179 (p_request_type =>OE_GLOBALS.G_PRICE_ORDER
3180 ,p_delete => FND_API.G_TRUE
3181 ,x_return_status => l_return_status
3182 );
3183 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3184 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3185 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3186 RAISE FND_API.G_EXC_ERROR;
3187 END IF;
3188
3189 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3190 (p_request_type =>OE_GLOBALS.G_PRICE_ADJ
3191 ,p_delete => FND_API.G_TRUE
3192 ,x_return_status => l_return_status
3193 );
3194 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3195 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3196 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3197 RAISE FND_API.G_EXC_ERROR;
3198 END IF;
3199
3200 -- added by lkxu
3201 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3202 (p_request_type =>OE_GLOBALS.G_COPY_PRICING_ATTRIBUTES
3203 ,p_delete => FND_API.G_TRUE
3204 ,x_return_status => l_return_status
3205 );
3206 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3207 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3208 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3209 RAISE FND_API.G_EXC_ERROR;
3210 END IF;
3211
3212 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3213 (p_request_type =>OE_GLOBALS.G_COPY_MODEL_PATTR
3214 ,p_delete => FND_API.G_TRUE
3215 ,x_return_status => l_return_status
3216 );
3217 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3218 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3219 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3220 RAISE FND_API.G_EXC_ERROR;
3221 END IF;
3222
3223 -- Process Delete Charges Delayed Requests
3224 Process_Request_for_ReqType
3225 (p_request_type => OE_GLOBALS.G_DELETE_CHARGES
3226 ,p_delete => FND_API.G_TRUE
3227 ,x_return_status => l_return_status
3228 );
3229 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3230 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3231 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3232 RAISE FND_API.G_EXC_ERROR;
3233 END IF;
3234
3235 -- Process Tax Delayed Requests
3236 Process_Request_for_ReqType
3237 (p_request_type => OE_GLOBALS.G_TAX_LINE
3238 ,p_delete => FND_API.G_TRUE
3239 ,x_return_status => l_return_status
3240 );
3241 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3242 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3243 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3244 RAISE FND_API.G_EXC_ERROR;
3245 END IF;
3246
3247
3248 -- Process Commitment Delayed Requests
3249 Process_Request_for_ReqType
3250 (p_request_type => OE_GLOBALS.G_CALCULATE_COMMITMENT
3251 ,p_delete => FND_API.G_TRUE
3252 ,x_return_status => l_return_status
3253 );
3254 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3255 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3256 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3257 RAISE FND_API.G_EXC_ERROR;
3258 END IF;
3259
3260 -- Process Commitment Delayed Requests
3261 Process_Request_for_ReqType
3262 (p_request_type => OE_GLOBALS.G_UPDATE_COMMITMENT
3263 ,p_delete => FND_API.G_TRUE
3264 ,x_return_status => l_return_status
3265 );
3266 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3267 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3268 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3269 RAISE FND_API.G_EXC_ERROR;
3270 END IF;
3271
3272 -- for multiple payments
3273 Process_Request_for_ReqType
3274 (p_request_type => OE_GLOBALS.G_UPDATE_COMMITMENT_APPLIED
3275 ,p_delete => FND_API.G_TRUE
3276 ,x_return_status => l_return_status
3277 );
3278 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3279 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3280 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3281 RAISE FND_API.G_EXC_ERROR;
3282 END IF;
3283
3284 -- for multiple payments
3285 Process_Request_for_ReqType
3286 (p_request_type => OE_GLOBALS.G_SPLIT_PAYMENT
3287 ,p_delete => FND_API.G_TRUE
3288 ,x_return_status => l_return_status
3289 );
3290 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3291 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3292 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3293 RAISE FND_API.G_EXC_ERROR;
3294 END IF;
3295
3296 Process_Request_for_ReqType
3297 (p_request_type => OE_GLOBALS.G_UPDATE_HDR_PAYMENT
3298 ,p_delete => FND_API.G_TRUE
3299 ,x_return_status => l_return_status
3300 );
3301 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3302 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3303 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3304 RAISE FND_API.G_EXC_ERROR;
3305 END IF;
3306
3307 -- Process requests for Payment Verification
3308 Process_Request_for_ReqType
3309 (p_request_type => OE_GLOBALS.G_VERIFY_PAYMENT
3310 ,p_delete => FND_API.G_TRUE
3311 ,x_return_status => l_return_status
3312 );
3313 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3314 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3315 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3316 RAISE FND_API.G_EXC_ERROR;
3317 END IF;
3318
3319 Process_Request_for_ReqType
3320 (p_request_type => OE_GLOBALS.G_DELETE_PAYMENT_HOLD
3321 ,p_delete => FND_API.G_TRUE
3322 ,x_return_status => l_return_status
3323 );
3324 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3325 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3326 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3327 RAISE FND_API.G_EXC_ERROR;
3328 END IF;
3329
3330 -- Process Request to create automatic attachments
3331 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3332 (p_request_type =>OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT
3333 ,p_delete => FND_API.G_TRUE
3334 ,x_return_status => l_return_status
3335 );
3336 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3337 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3338 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3339 RAISE FND_API.G_EXC_ERROR;
3340 END IF;
3341
3342 -- Process Request to copy attachments
3343 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3344 (p_request_type =>OE_GLOBALS.G_COPY_ATCHMT
3345 ,p_delete => FND_API.G_TRUE
3346 ,x_return_status => l_return_status
3347 );
3348 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3349 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3350 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3351 RAISE FND_API.G_EXC_ERROR;
3352 END IF;
3353
3354 --added by MShenoy for Spares Management ikon project - Create internal req.
3355 IF l_debug_level > 0 THEN
3356 oe_debug_pub.add(' Entering Procedure process_Delayed_Requests in Package OE_Delayed_Requests_Pvt');
3357 END IF;
3358
3359 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3360 (p_request_type =>OE_GLOBALS.G_CREATE_INTERNAL_REQ
3361 ,p_delete => FND_API.G_TRUE
3362 ,x_return_status => l_return_status);
3363 IF l_debug_level > 0 THEN
3364 oe_debug_pub.add(' leaving Procedure process_Delayed_Requests in Package
3365 OE_Delayed_Requests_Pvt ret status '||l_return_status);
3366 END IF;
3367 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3368 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3369 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3370 RAISE FND_API.G_EXC_ERROR;
3371 END IF;
3372
3373 -- B2013611 reverse promotional limits
3374 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3375 (p_request_type =>OE_GLOBALS.G_REVERSE_LIMITS
3376 ,p_delete => FND_API.G_TRUE
3377 ,x_return_status => l_return_status
3378 );
3379 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3380 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3381 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3382 RAISE FND_API.G_EXC_ERROR;
3383 END IF;
3384
3385 --MRG BGN
3386 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3387 (p_request_type => OE_GLOBALS.G_MARGIN_HOLD
3388 ,p_delete => FND_API.G_TRUE
3389 ,x_return_status => l_return_status
3390 );
3391 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3392 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3393 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3394 RAISE FND_API.G_EXC_ERROR;
3395 END IF;
3396 --MRG END
3397
3398
3399 ----------
3400 --Btea
3401 ----------
3402
3403 --MRG BGN
3404 IF l_debug_level > 0 THEN
3405 oe_debug_pub.add('before call to OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype in process_delayed_requests');
3406 END IF;
3407 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3408 (p_request_type => OE_GLOBALS.G_GET_COST
3409 ,p_delete => FND_API.G_TRUE
3410 ,x_return_status => l_return_status
3411 );
3412 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3413 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3414 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3415 RAISE FND_API.G_EXC_ERROR;
3416 END IF;
3417 --MRG END
3418
3419
3420 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3421 (p_request_type =>OE_GLOBALS.G_DEL_CHG_LINES
3422 ,p_delete => FND_API.G_TRUE
3423 ,x_return_status => l_return_status
3424 );
3425 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3426 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3427 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3428 RAISE FND_API.G_EXC_ERROR;
3429 END IF;
3430
3431
3432 --process delayed requests for xml generation
3433
3434 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3435 (p_request_type =>OE_GLOBALS.G_GENERATE_XML_REQ_HDR
3436 ,p_delete => FND_API.G_TRUE
3437 ,x_return_status => l_return_status
3438 );
3439 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3440 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3441 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3442 RAISE FND_API.G_EXC_ERROR;
3443 END IF;
3444
3445
3446 -- Please do not put any delayed requests that can update qty
3447 -- or price before this point !
3448
3449 -- BLANKETS: Update released amount/qty on blanket order/line
3450 -- IMPORTANT: This request should be executed after all requests that
3451 -- can result in change to qty or price are executed.
3452 -- This will execute both requests of type: PROCESS_RELEASE
3453 -- and VALIDATE_RELEASE_SHIPMENTS.
3454 OE_Blkt_Release_Util.Process_Releases
3455 (p_request_tbl => G_Delayed_Requests
3456 ,x_return_status => l_return_status);
3457 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3458 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3459 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3460 RAISE FND_API.G_EXC_ERROR;
3461 END IF;
3462
3463 -- Changes for Enhanced Dropshipments
3464
3465 OE_Purchase_Release_PVT.Process_DropShip_CMS_Requests
3466 (p_request_tbl => G_Delayed_Requests
3467 ,x_return_status => l_return_status);
3468 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3469 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3470 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3471 RAISE FND_API.G_EXC_ERROR;
3472 END IF;
3473
3474
3475 /* 7576948: IR ISO Change Management project Start */
3476 -- This code is hooked up for IR ISO project so as to trigger
3477 -- the delayed request processing for update of internal requisition
3478
3479 -- For details on IR ISO CMS project, please refer to FOL >
3480 -- OM Development > OM GM > 12.1.1 > TDD > IR_ISO_CMS_TDD.doc
3481
3482
3483 -- Process Request to Update the Internal Requisition
3484 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3485 ( p_request_type => OE_GLOBALS.G_UPDATE_REQUISITION
3486 , p_delete => FND_API.G_TRUE
3487 , x_return_status => l_return_status
3488 );
3489
3490 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3491 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3492 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3493 RAISE FND_API.G_EXC_ERROR;
3494 END IF;
3495
3496 /* ============================= */
3497 /* IR ISO Change Management Ends */
3498
3499
3500 --process delayed requests for cancel workflow
3501
3502 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3503 (p_request_type =>OE_GLOBALS.G_CANCEL_WF
3504 ,p_delete => FND_API.G_TRUE
3505 ,x_return_status => l_return_status
3506 );
3507 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3508 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3509 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3510 RAISE FND_API.G_EXC_ERROR;
3511 END IF;
3512
3513
3514 /* Please do not put execution of any delayed request beyond this point */
3515 l_ind := G_Delayed_Requests.first;
3516
3517 IF l_debug_level > 0 THEN
3518 oe_debug_pub.add('Global Request count-PDR-E'||G_Delayed_Requests.count,1);
3519 oe_debug_pub.add('*****l_ind :' || l_ind, 1);
3520 END IF;
3521
3522 WHILE l_ind IS NOT NULL LOOP
3523 Process_Request_Pvt
3524 (p_request_ind => l_ind
3525 ,p_delete => FND_API.G_TRUE
3526 ,x_return_status => l_return_status
3527 );
3528
3529 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3530 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3531 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3532 RAISE FND_API.G_EXC_ERROR;
3533 END IF;
3534 l_ind := G_Delayed_Requests.Next(l_ind);
3535 END LOOP;
3536
3537 -- Process Request to Complete workflow activity
3538 OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3539 (p_request_type =>OE_GLOBALS.G_COMPLETE_ACTIVITY
3540 ,p_delete => FND_API.G_TRUE
3541 ,x_return_status => l_return_status
3542 );
3543 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3544 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3545 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3546 RAISE FND_API.G_EXC_ERROR;
3547 END IF;
3548 IF l_debug_level > 0 THEN
3549 oe_debug_pub.add('Global Request count-PDR-AL'||G_Delayed_Requests.count,1);
3550 END IF;
3551
3552 -- clear the delayed request cache
3553 Clear_Request(x_return_status);
3554 END IF; -- Recursion mode
3555 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3556 p_In_out => 0);
3557
3558 EXCEPTION
3559
3560 WHEN FND_API.G_EXC_ERROR THEN
3561 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3562 p_In_out => 0);
3563 x_return_status := FND_API.G_RET_STS_ERROR;
3564
3565 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3566 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3567 p_In_out => 0);
3568 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3569
3570 WHEN OTHERS THEN
3571 oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3572 p_In_out => 0);
3573 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3574
3575 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3576 THEN
3577 OE_MSG_PUB.Add_Exc_Msg
3578 ( G_PKG_NAME
3579 , 'Process_Delayed_Requests'
3580 );
3581 END IF;
3582 End Process_Delayed_Requests;
3583
3584 /** This procedure is called twice from Process Order. Once to
3585 ** process action requests that need to be processed before the flows have
3586 ** started and a second time to process action requests that can ONLY be
3587 ** processed after the flow has started (book, LINK, match_and_reserve)
3588 **/
3589
3590 PROCEDURE Process_Order_Actions
3591 (p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3592 p_x_request_tbl IN OUT NOCOPY OE_Order_PUB.request_tbl_type,
3593 p_process_WF_requests IN boolean DEFAULT TRUE
3594 )
3595 IS
3596 l_request_rec OE_Order_PUB.request_rec_type;
3597 l_return_status VARCHAR2(1);
3598 --
3599 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3600 --
3601 l_header_id NUMBER;
3602 l_line_id NUMBER;
3603 l_order_source_id NUMBER;
3604 l_orig_sys_document_ref VARCHAR2(50);
3605 l_orig_sys_line_ref VARCHAR2(50);
3606 l_orig_sys_shipment_ref VARCHAR2(50);
3607 l_change_sequence VARCHAR2(50);
3608 l_source_document_type_id NUMBER;
3609 l_source_document_id NUMBER;
3610 l_source_document_line_id NUMBER;
3611 --R12 CVV2
3612 --comm rej l_reject_on_auth_failure VARCHAR2(1);
3613 --comm rej l_reject_on_risk_failure VARCHAR2(1);
3614 l_msg_count NUMBER;
3615 l_msg_data VARCHAR2(4000);
3616 l_result_out VARCHAR2(30);
3617 l_header_rec OE_ORDER_PUB.Header_Rec_Type;
3618 --R12 CVV2
3619
3620 -- ER 7243028
3621 l_lines_count NUMBER;
3622 l_lines_list VARCHAR2(4000);
3623
3624 BEGIN
3625 IF l_debug_level > 0 THEN
3626 oe_debug_pub.ADD('Entering OE_ORDER_PUB.PROCESS_ORDER_ACTIONS', 1);
3627 END IF;
3628
3629 -- added for notification framework
3630 -- check code release leve first, notificaiont framework is at pack H
3631 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3632 oe_order_pvt.set_recursion_mode(p_Entity_Code => 10,
3633 p_In_out => 1);
3634 END IF;
3635
3636 FOR i IN 1..p_x_request_tbl.COUNT LOOP
3637 BEGIN
3638 IF l_debug_level > 0 THEN
3639 oe_debug_pub.ADD('Processing delayed requests # = '
3640 || To_char(i), 2);
3641 END IF;
3642
3643 -- If request is already processed then loop around.
3644
3645 IF (p_x_request_tbl(i).processed = 'Y') then
3646 goto END_OF_LOOP;
3647 END IF;
3648
3649 l_request_rec := p_x_request_tbl(i);
3650 IF l_debug_level > 0 THEN
3651 oe_debug_pub.ADD('Request Type = '
3652 || l_request_rec.request_type, 2);
3653 END IF;
3654 IF l_request_rec.entity_code = 'HEADER' THEN
3655 l_header_id := l_request_rec.entity_id;
3656 IF l_request_rec.entity_id IS NOT NULL THEN
3657 BEGIN
3658 IF l_debug_level > 0 THEN
3659 oe_debug_pub.add('Getting reference data for header_id:'||l_header_id);
3660 END IF;
3661 SELECT order_source_id, orig_sys_document_ref, change_sequence,
3662 source_document_type_id, source_document_id
3663 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
3664 l_source_document_type_id, l_source_document_id
3665 FROM OE_ORDER_HEADERS_ALL
3666 WHERE header_id = l_request_rec.entity_id;
3667 EXCEPTION
3668 WHEN NO_DATA_FOUND THEN
3669 l_order_source_id := null;
3670 l_orig_sys_document_ref := null;
3671 l_change_sequence := null;
3672 l_source_document_type_id := null;
3673 l_source_document_id := null;
3674 WHEN OTHERS THEN
3675 l_order_source_id := null;
3676 l_orig_sys_document_ref := null;
3677 l_change_sequence := null;
3678 l_source_document_type_id := null;
3679 l_source_document_id := null;
3680 END;
3681 END IF;
3682 ELSIF l_request_rec.entity_code = 'LINE' THEN
3683 l_line_id := l_request_rec.entity_id;
3684 IF l_request_rec.entity_id IS NOT NULL THEN
3685 BEGIN
3686 IF l_debug_level > 0 THEN
3687 oe_debug_pub.add('Getting reference data for line_id:'||l_request_rec.entity_id);
3688 END IF;
3689 SELECT order_source_id, orig_sys_document_ref, change_sequence,
3690 source_document_type_id, source_document_id, orig_sys_line_ref,
3691 source_document_line_id, orig_sys_shipment_ref, header_id
3692 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
3693 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
3694 l_source_document_line_id, l_orig_sys_shipment_ref, l_header_id
3695 FROM OE_ORDER_LINES_ALL
3696 WHERE line_id = l_request_rec.entity_id;
3697 EXCEPTION
3698 WHEN NO_DATA_FOUND THEN
3699 l_header_id := null;
3700 l_order_source_id := null;
3701 l_orig_sys_document_ref := null;
3702 l_change_sequence := null;
3703 l_source_document_type_id := null;
3704 l_source_document_id := null;
3705 l_orig_sys_line_ref := null;
3706 l_source_document_line_id := null;
3707 l_orig_sys_shipment_ref := null;
3708 WHEN OTHERS THEN
3709 l_header_id := null;
3710 l_order_source_id := null;
3711 l_orig_sys_document_ref := null;
3712 l_change_sequence := null;
3713 l_source_document_type_id := null;
3714 l_source_document_id := null;
3715 l_orig_sys_line_ref := null;
3716 l_source_document_line_id := null;
3717 l_orig_sys_shipment_ref := null;
3718 END;
3719 END IF;
3720 ELSIF l_request_rec.entity_code = 'HEADER_ADJ' THEN
3721 IF l_request_rec.entity_id IS NOT NULL THEN
3722 BEGIN
3723 IF l_debug_level > 0 THEN
3724 oe_debug_pub.add('Getting header_id of the header adjustment:'||l_request_rec.entity_id);
3725 END IF;
3726 SELECT header_id
3727 INTO l_header_id
3728 FROM oe_price_adjustments
3729 WHERE price_adjustment_id = l_request_rec.entity_id;
3730 EXCEPTION
3731 WHEN NO_DATA_FOUND THEN
3732 l_header_id := null;
3733 WHEN OTHERS THEN
3734 l_header_id := null;
3735 END;
3736 END IF;
3737 IF l_header_id IS NOT NULL THEN
3738 BEGIN
3739 IF l_debug_level > 0 THEN
3740 oe_debug_pub.add('Getting reference data for header_id:'||l_header_id);
3741 END IF;
3742 SELECT order_source_id, orig_sys_document_ref, change_sequence,
3743 source_document_type_id, source_document_id
3744 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
3745 l_source_document_type_id, l_source_document_id
3746 FROM OE_ORDER_HEADERS_ALL
3747 WHERE header_id = l_header_id;
3748 EXCEPTION
3749 WHEN NO_DATA_FOUND THEN
3750 l_order_source_id := null;
3751 l_orig_sys_document_ref := null;
3752 l_change_sequence := null;
3753 l_source_document_type_id := null;
3754 l_source_document_id := null;
3755 WHEN OTHERS THEN
3756 l_order_source_id := null;
3757 l_orig_sys_document_ref := null;
3758 l_change_sequence := null;
3759 l_source_document_type_id := null;
3760 l_source_document_id := null;
3761 END;
3762 END IF;
3763 ELSIF l_request_rec.entity_code = 'LINE_ADJ' THEN
3764 IF l_request_rec.entity_id IS NOT NULL THEN
3765 BEGIN
3766 IF l_debug_level > 0 THEN
3767 oe_debug_pub.add('Getting line_id of the line adjustment:'||l_request_rec.entity_id);
3768 END IF;
3769 SELECT line_id
3770 INTO l_line_id
3771 FROM oe_price_adjustments
3772 WHERE price_adjustment_id = l_request_rec.entity_id;
3773 EXCEPTION
3774 WHEN NO_DATA_FOUND THEN
3775 l_line_id := null;
3776 WHEN OTHERS THEN
3777 l_line_id := null;
3778 END;
3779 END IF;
3780 IF l_line_id IS NOT NULL THEN
3781 BEGIN
3782 IF l_debug_level > 0 THEN
3783 oe_debug_pub.add('Getting reference data for line_id:'||l_line_id);
3784 END IF;
3785 SELECT order_source_id, orig_sys_document_ref, change_sequence,
3786 source_document_type_id, source_document_id, orig_sys_line_ref,
3787 source_document_line_id, orig_sys_shipment_ref, header_id
3788 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
3789 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
3790 l_source_document_line_id, l_orig_sys_shipment_ref, l_header_id
3791 FROM OE_ORDER_LINES_ALL
3792 WHERE line_id = l_line_id;
3793 EXCEPTION
3794 WHEN NO_DATA_FOUND THEN
3795 l_header_id := null;
3796 l_order_source_id := null;
3797 l_orig_sys_document_ref := null;
3798 l_change_sequence := null;
3799 l_source_document_type_id := null;
3800 l_source_document_id := null;
3801 l_orig_sys_line_ref := null;
3802 l_source_document_line_id := null;
3803 l_orig_sys_shipment_ref := null;
3804 WHEN OTHERS THEN
3805 l_header_id := null;
3806 l_order_source_id := null;
3807 l_orig_sys_document_ref := null;
3808 l_change_sequence := null;
3809 l_source_document_type_id := null;
3810 l_source_document_id := null;
3811 l_orig_sys_line_ref := null;
3812 l_source_document_line_id := null;
3813 l_orig_sys_shipment_ref := null;
3814 END;
3815 END IF;
3816 ELSIF l_request_rec.entity_code = 'HEADER_SCREDIT' THEN
3817 IF l_request_rec.entity_id IS NOT NULL THEN
3818 BEGIN
3819 IF l_debug_level > 0 THEN
3820 oe_debug_pub.add('Getting header_id of the header scredit:'||l_request_rec.entity_id);
3821 END IF;
3822 SELECT header_id
3823 INTO l_header_id
3824 FROM oe_sales_credits
3825 WHERE sales_credit_id = l_request_rec.entity_id;
3826 EXCEPTION
3827 WHEN NO_DATA_FOUND THEN
3828 l_header_id := null;
3829 WHEN OTHERS THEN
3830 l_header_id := null;
3831 END;
3832 END IF;
3833 IF l_header_id IS NOT NULL THEN
3834 BEGIN
3835 IF l_debug_level > 0 THEN
3836 oe_debug_pub.add('Getting reference data for header_id:'||l_header_id);
3837 END IF;
3838 SELECT order_source_id, orig_sys_document_ref, change_sequence,
3839 source_document_type_id, source_document_id
3840 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
3841 l_source_document_type_id, l_source_document_id
3842 FROM OE_ORDER_HEADERS_ALL
3843 WHERE header_id = l_header_id;
3844 EXCEPTION
3845 WHEN NO_DATA_FOUND THEN
3846 l_order_source_id := null;
3847 l_orig_sys_document_ref := null;
3848 l_change_sequence := null;
3849 l_source_document_type_id := null;
3850 l_source_document_id := null;
3851 WHEN OTHERS THEN
3852 l_order_source_id := null;
3853 l_orig_sys_document_ref := null;
3854 l_change_sequence := null;
3855 l_source_document_type_id := null;
3856 l_source_document_id := null;
3857 END;
3858 END IF;
3859 ELSIF l_request_rec.entity_code = 'LINE_SCREDIT' THEN
3860 IF l_request_rec.entity_id IS NOT NULL THEN
3861 BEGIN
3862 IF l_debug_level > 0 THEN
3863 oe_debug_pub.add('Getting line_id of the line scredit:'||l_request_rec.entity_id);
3864 END IF;
3865 SELECT line_id
3866 INTO l_line_id
3867 FROM oe_sales_credits
3868 WHERE sales_credit_id = l_request_rec.entity_id;
3869 EXCEPTION
3870 WHEN NO_DATA_FOUND THEN
3871 l_line_id := null;
3872 WHEN OTHERS THEN
3873 l_line_id := null;
3874 END;
3875 END IF;
3876 IF l_line_id IS NOT NULL THEN
3877 BEGIN
3878 IF l_debug_level > 0 THEN
3879 oe_debug_pub.add('Getting reference data for line_id:'||l_line_id);
3880 END IF;
3881 SELECT order_source_id, orig_sys_document_ref, change_sequence,
3882 source_document_type_id, source_document_id, orig_sys_line_ref,
3883 source_document_line_id, orig_sys_shipment_ref, header_id
3884 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
3885 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
3886 l_source_document_line_id, l_orig_sys_shipment_ref, l_header_id
3887 FROM OE_ORDER_LINES_ALL
3888 WHERE line_id = l_line_id;
3889 EXCEPTION
3890 WHEN NO_DATA_FOUND THEN
3891 l_header_id := null;
3892 l_order_source_id := null;
3893 l_orig_sys_document_ref := null;
3894 l_change_sequence := null;
3895 l_source_document_type_id := null;
3896 l_source_document_id := null;
3897 l_orig_sys_line_ref := null;
3898 l_source_document_line_id := null;
3899 l_orig_sys_shipment_ref := null;
3900 WHEN OTHERS THEN
3901 l_header_id := null;
3902 l_order_source_id := null;
3903 l_orig_sys_document_ref := null;
3904 l_change_sequence := null;
3905 l_source_document_type_id := null;
3906 l_source_document_id := null;
3907 l_orig_sys_line_ref := null;
3908 l_source_document_line_id := null;
3909 l_orig_sys_shipment_ref := null;
3910 END;
3911 END IF;
3912 END IF;
3913
3914 OE_MSG_PUB.set_msg_context(
3915 p_entity_code => l_request_rec.entity_code
3916 ,p_entity_id => l_request_rec.entity_id
3917 ,p_header_id => l_header_id
3918 ,p_line_id => l_line_id
3919 ,p_order_source_id => l_order_source_id
3920 ,p_orig_sys_document_ref => l_orig_sys_document_ref
3921 ,p_orig_sys_document_line_ref => l_orig_sys_line_ref
3922 ,p_orig_sys_shipment_ref => l_orig_sys_shipment_ref
3923 ,p_change_sequence => l_change_sequence
3924 ,p_source_document_type_id => l_source_document_type_id
3925 ,p_source_document_id => l_source_document_id
3926 ,p_source_document_line_id => l_source_document_line_id );
3927 IF l_debug_level > 0 THEN
3928 oe_debug_pub.add('Request Entity:'||l_request_rec.entity_code||
3929 ' Request ID:'||l_request_rec.entity_id);
3930 END IF;
3931
3932 -- Action Request to Apply Automatic Attachments
3933 IF l_request_rec.request_type = OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT THEN
3934
3935 OE_DELAYED_REQUESTS_UTIL.Apply_Automatic_Attachments
3936 ( p_entity_code => l_request_rec.entity_code
3937 , p_entity_id => l_request_rec.entity_id
3938 , p_is_user_action => 'Y'
3939 , x_return_status => l_return_status
3940 );
3941 l_request_rec.processed := 'Y';
3942 ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRICE_ORDER THEN
3943 -- For ER 7243028
3944 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_HEADER THEN
3945 IF l_debug_level > 0 THEN
3946 oe_debug_pub.add('Before calling Price Order for :' || l_request_rec.entity_id, 5);
3947 END IF;
3948 OE_ORDER_ADJ_PVT.price_action
3949 (
3950 p_header_count => 1,
3951 p_header_list => l_request_rec.entity_id,
3952 p_line_count => 0,
3953 p_line_list => NULL,
3954 p_price_level => 'ORDER',
3955 x_return_status => l_return_status,
3956 x_msg_count => l_msg_count,
3957 x_msg_data => l_msg_data
3958 );
3959 ELSIF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE THEN
3960
3961 l_lines_count :=0;
3962
3963 for j in i .. p_x_request_tbl.count loop
3964 if p_x_request_tbl(j).request_type = OE_GLOBALS.G_PRICE_ORDER and
3965 p_x_request_tbl(j).entity_code = OE_GLOBALS.G_ENTITY_LINE
3966 then
3967 l_lines_count := l_lines_count + 1;
3968 if l_lines_count = 1 then
3969 l_lines_list := p_x_request_tbl(j).entity_id;
3970 else
3971 l_lines_list := l_lines_list || ',' || p_x_request_tbl(j).entity_id;
3972 end if;
3973 p_x_request_tbl(j).processed := 'Y';
3974 end if;
3975 end loop;
3976
3977 IF l_debug_level > 0 THEN
3978 oe_debug_pub.add('Before calling Price Line for count :' || l_lines_count || '; List : ' || l_lines_list, 5);
3979 END IF;
3980 OE_ORDER_ADJ_PVT.price_action
3981 (
3982 p_header_count => 0,
3983 p_header_list => null,
3984 p_line_count => l_lines_count,
3985 p_line_list => l_lines_list,
3986 p_price_level => 'LINE',
3987 x_return_status => l_return_status,
3988 x_msg_count => l_msg_count,
3989 x_msg_data => l_msg_data
3990 );
3991 ELSE
3992 IF l_debug_level > 0 THEN
3993 oe_debug_pub.add('Invalid entity given for Price Order Action. Entity has to be Header or Line', 5);
3994 END IF;
3995
3996 FND_MESSAGE.SET_NAME('ONT','ONT_INVALID_REQUEST');
3997 FND_MESSAGE.SET_TOKEN('ACTION',l_request_rec.request_type);
3998 OE_MSG_PUB.Add;
3999 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4000
4001 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4002 END IF;
4003
4004 IF l_debug_level > 0 THEN
4005 oe_debug_pub.add('After Price Order, Status : ' || l_return_status, 5);
4006 END IF;
4007
4008 l_request_rec.processed := 'Y';
4009
4010 IF l_request_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4011 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4012 ELSIF l_request_rec.return_status = FND_API.G_RET_STS_ERROR THEN
4013 RAISE FND_API.G_EXC_ERROR;
4014 END IF;
4015
4016 -- End of ER 7243028
4017
4018 ELSIF l_request_rec.request_type = OE_GLOBALS.G_APPLY_HOLD THEN
4019 IF l_debug_level > 0 THEN
4020 OE_Debug_PUB.ADD('Calling Apply_Hold', 2);
4021 END IF;
4022 OE_Delayed_Requests_UTIL.Apply_Hold
4023 (p_validation_level => p_validation_level,
4024 x_request_rec => l_request_rec);
4025
4026 l_request_rec.processed := 'Y';
4027 IF l_debug_level > 0 THEN
4028 OE_Debug_PUB.ADD('After Calling Apply_hold', 2);
4029 END IF;
4030
4031 ELSIF l_request_rec.request_type = OE_GLOBALS.G_RELEASE_HOLD THEN
4032 IF l_debug_level > 0 THEN
4033 OE_Debug_PUB.ADD('Calling Release_Hold', 2);
4034 END IF;
4035 OE_Delayed_Requests_UTIL.Release_Hold
4036 (p_validation_level => p_validation_level,
4037 x_request_rec => l_request_rec);
4038 l_request_rec.processed := 'Y';
4039 IF l_debug_level > 0 THEN
4040 OE_Debug_PUB.ADD('After Calling Release_hold', 2);
4041 END IF;
4042 --R12 CVV2
4043 ELSIF l_request_rec.request_type = OE_GLOBALS.G_VERIFY_PAYMENT THEN
4044 /*comm rej IF nvl(l_request_rec.param2, 'HOLD') = 'REJECT' THEN
4045 l_reject_on_auth_failure := 'Y';
4046 ELSE
4047 l_reject_on_auth_failure := 'N';
4048 END IF;
4049
4050 IF nvl(l_request_rec.param3, 'HOLD') = 'REJECT' THEN
4051 l_reject_on_risk_failure := 'Y';
4052 ELSE
4053 l_reject_on_risk_failure := 'N';
4054 END IF; comm rej*/
4055
4056 /*
4057 OE_Verify_Payment_PUB.Verify_Payment
4058 ( p_header_id => l_request_rec.entity_id
4059 , p_calling_action => null
4060 , p_delayed_request=> null
4061 , p_reject_on_auth_failure => l_reject_on_auth_failure
4062 , p_reject_on_risk_failure => l_reject_on_risk_failure
4063 , p_risk_eval_flag => l_request_rec.param1
4064 , p_msg_count => l_msg_count
4065 , p_msg_data => l_msg_data
4066 , p_return_status => l_return_status
4067 );
4068 l_request_rec.return_status := l_return_status;
4069 */
4070
4071 IF l_debug_level > 0 THEN
4072 oe_debug_pub.add('Before call to Authrize Payment header_id is: ' || l_header_id);
4073 oe_debug_pub.add('Before call to Authrize Payment line_id is: ' || l_line_id);
4074 --comm rej oe_debug_pub.add('reject on auth is: ' || l_reject_on_auth_failure);
4075 --comm rej oe_debug_pub.add('reject on risk is: ' || l_reject_on_risk_failure);
4076 oe_debug_pub.add('risk eval flag is: ' || l_request_rec.param1);
4077 END IF;
4078
4079 OE_Header_UTIL.Query_Row
4080 (p_header_id => l_header_id
4081 ,x_header_rec => l_header_rec
4082 );
4083
4084 OE_Verify_Payment_PUB.Authorize_MultiPayments
4085 ( p_header_rec => l_header_rec
4086 , p_line_id => l_line_id --bug3524209
4087 , p_calling_action => null
4088 --R12 CVV2
4089 --comm rej , p_reject_on_auth_failure => l_reject_on_auth_failure
4090 --comm rej , p_reject_on_risk_failure => l_reject_on_risk_failure
4091 , p_risk_eval_flag => l_request_rec.param1
4092 --R12 CVV2
4093 , p_msg_count => l_msg_count
4094 , p_msg_data => l_msg_data
4095 , p_result_out => l_result_out
4096 , p_return_status => l_return_status
4097 );
4098
4099 l_request_rec.return_status := l_return_status;
4100
4101 IF l_debug_level > 0 THEN
4102 oe_debug_pub.add('After call to Authorizat Payment return status : ' || l_return_status);
4103 END IF;
4104
4105 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4106 RAISE FND_API.G_EXC_ERROR;
4107 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4108 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4109 END IF;
4110
4111 l_request_rec.processed := 'Y';
4112 -- to ensure verify_payment not getting called again during book_order.
4113 OE_GLOBALS.G_PAYMENT_PROCESSED := 'Y';
4114 --R12 CVV2
4115
4116
4117 ELSIF (l_request_rec.request_type = OE_GLOBALS.G_BOOK_ORDER
4118 AND p_process_WF_requests) THEN
4119
4120 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_HEADER THEN
4121 IF l_debug_level > 0 THEN
4122 OE_Debug_PUB.ADD('Calling Book Order');
4123 END IF;
4124 OE_Delayed_Requests_UTIL.Book_Order
4125 ( p_validation_level => p_validation_level
4126 , p_header_id => l_request_rec.entity_id
4127 , x_return_status => l_request_rec.return_status
4128 );
4129 l_request_rec.processed := 'Y';
4130 END IF;
4131
4132 ELSIF (l_request_rec.request_type = OE_GLOBALS.G_GET_SHIP_METHOD
4133 OR l_request_rec.request_type = OE_GLOBALS.G_GET_FREIGHT_RATES
4134 OR l_request_rec.request_type = OE_GLOBALS.G_GET_SHIP_METHOD_AND_RATES) THEN
4135
4136 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110509' THEN
4137 IF l_debug_level > 0 THEN
4138 OE_DEBUG_PUB.Add('Calling Get Ship Method');
4139 END IF;
4140
4141 -- Get_Ship_Method API not only gets ship method
4142 -- from FTE, but also can get freight rates
4143 -- from FTE. This API was named as Get_Ship_Method
4144 -- initially for Carrier Selection, we added the
4145 -- capability for Freight Rating later, and decided
4146 -- to not change the API name.
4147 OE_Delayed_Requests_UTIL.Get_Ship_Method
4148 ( p_entity_code => l_request_rec.entity_code
4149 , p_entity_id => l_request_rec.entity_id
4150 , p_action_code => l_request_rec.request_type
4151 , x_return_status => l_request_rec.return_status
4152 );
4153 l_request_rec.processed := 'Y';
4154
4155 END IF;
4156
4157 ELSIF (l_request_rec.request_type = OE_GLOBALS.G_ADD_FULFILLMENT_SET OR
4158 l_request_rec.request_type = OE_GLOBALS.G_REMOVE_FULFILLMENT_SET ) AND
4159 l_request_rec.param5 IS NOT NULL THEN
4160
4161 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
4162
4163 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE THEN
4164 OE_Delayed_Requests_UTIL.Fulfillment_Sets
4165 ( p_entity_code => l_request_rec.entity_code
4166 , p_entity_id => l_request_rec.entity_id
4167 , p_action_code => l_request_rec.request_type
4168 , p_fulfillment_set_name => l_request_rec.param5
4169 , x_return_status => l_request_rec.return_status
4170 );
4171 l_request_rec.processed := 'Y';
4172 END IF;
4173 END IF;
4174
4175 ELSIF l_request_rec.request_type = OE_GLOBALS.G_DELINK_CONFIG
4176 THEN
4177
4178 OE_Delayed_Requests_UTIL.DELINK_CONFIG
4179 ( p_line_id => l_request_rec.entity_id
4180 , x_return_status => l_request_rec.return_status
4181 );
4182 l_request_rec.processed := 'Y';
4183
4184 ELSIF (l_request_rec.request_type = OE_GLOBALS.G_MATCH_AND_RESERVE
4185 AND p_process_WF_requests) THEN
4186
4187 OE_Delayed_Requests_UTIL.MATCH_AND_RESERVE
4188 ( p_line_id => l_request_rec.entity_id
4189 , x_return_status => l_request_rec.return_status
4190 );
4191 l_request_rec.processed := 'Y';
4192
4193 ELSIF (l_request_rec.request_type = OE_GLOBALS.G_LINK_CONFIG
4194 AND p_process_WF_requests)
4195 THEN
4196 OE_Config_UTIL.LINK_CONFIG
4197 ( p_line_id => l_request_rec.entity_id
4198 , p_config_item_id => to_number(l_request_rec.param1)
4199 , x_return_status => l_request_rec.return_status );
4200 l_request_rec.processed := 'Y';
4201 --Customer Acceptance Project actions
4202 ELSIF ( l_request_rec.request_type = OE_GLOBALS.G_ACCEPT_FULFILLMENT OR
4203 l_request_rec.request_type = OE_GLOBALS.G_REJECT_FULFILLMENT) AND
4204 p_process_WF_requests THEN
4205
4206 OE_ACCEPTANCE_PVT.Process_Acceptance(p_request_tbl => p_x_request_tbl
4207 ,x_return_status => l_return_status);
4208
4209 /*** IMPORTANT ****/
4210 /** This has to be the last elsif. When adding new action requests **/
4211 /** please add above this elsif. Since process_order_actions is now **/
4212 /** called twice, this cannot be an 'else' statement to ensure that **/
4213 /** the WF requests are NOT marked invalid in the first call but **/
4214 /** processed in the second call **/
4215 ELSIF p_process_WF_requests THEN
4216
4217 IF l_request_rec.entity_code = OE_Globals.G_ENTITY_HEADER THEN
4218 OE_MSG_PUB.update_msg_context(
4219 p_header_id => l_request_rec.entity_id);
4220
4221 ELSIF l_request_rec.entity_code = OE_Globals.G_ENTITY_LINE THEN
4222 OE_MSG_PUB.update_msg_context(
4223 p_line_id => l_request_rec.entity_id);
4224 END IF;
4225 FND_MESSAGE.SET_NAME('ONT','ONT_INVALID_REQUEST');
4226 FND_MESSAGE.SET_TOKEN('ACTION',l_request_rec.request_type);
4227 OE_MSG_PUB.Add;
4228 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4229 END IF;
4230
4231 IF l_request_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR
4232 THEN
4233 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4234 ELSIF l_request_rec.return_status = FND_API.G_RET_STS_ERROR
4235 THEN
4236 RAISE FND_API.G_EXC_ERROR;
4237 END IF;
4238
4239 IF ( l_request_rec.request_type = OE_GLOBALS.G_ACCEPT_FULFILLMENT OR
4240 l_request_rec.request_type = OE_GLOBALS.G_REJECT_FULFILLMENT) AND
4241 p_process_WF_requests THEN
4242 -- do not override return status set by process acceptance
4243 null;
4244 else
4245 p_x_request_tbl(i) := l_request_rec;
4246 end if;
4247
4248 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4249
4250 EXCEPTION
4251
4252 WHEN FND_API.G_EXC_ERROR THEN
4253 l_request_rec.return_status := FND_API.G_RET_STS_ERROR;
4254 l_request_rec.processed := 'Y';
4255 p_x_request_tbl(i):= l_request_rec;
4256 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4257
4258 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4259 l_request_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4260 l_request_rec.processed := 'Y';
4261 p_x_request_tbl(i):= l_request_rec;
4262 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4263 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4264
4265
4266 WHEN OTHERS THEN
4267 l_request_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4268 l_request_rec.processed := 'Y';
4269 p_x_request_tbl(i) := l_request_rec;
4270
4271 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4272 THEN
4273 OE_MSG_PUB.Add_Exc_Msg
4274 ( G_PKG_NAME
4275 , 'Process_Order_Actions'
4276 );
4277 END IF;
4278
4279 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4280 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4281
4282 END;
4283 <<END_OF_LOOP>> -- Label for requests that do not need to be processed
4284 null;
4285 END LOOP;
4286
4287 -- added for notification framework
4288 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
4289 oe_order_pvt.set_recursion_mode(p_Entity_Code => 10,
4290 p_In_out => 0);
4291 END IF;
4292 IF l_debug_level > 0 THEN
4293 oe_debug_pub.ADD('Exiting OE_ORDER_PUB.PROCESS_ORDER_ACTIONS', 1);
4294 END IF;
4295 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4296
4297 EXCEPTION
4298
4299 WHEN FND_API.G_EXC_ERROR THEN
4300 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4301 RAISE;
4302
4303 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4304 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4305 RAISE;
4306
4307 WHEN OTHERS THEN
4308
4309 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4310 THEN
4311 OE_MSG_PUB.Add_Exc_Msg
4312 ( G_PKG_NAME
4313 , 'Process_Order_Actions'
4314 );
4315 END IF;
4316
4317 OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4318 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4319
4320 END Process_Order_Actions;
4321
4322 -- delete_against defaulting to TRUE to prevent delete
4323 -- of versioning requests for deletes.
4324 -- Bug 3800577
4325 -- Make p_entity_id an optional parameter so if it is null, delete
4326 -- all requests for that entity code
4327 Procedure Delete_Reqs_for_Deleted_Entity ( p_entity_code IN Varchar2
4328 , p_delete_against IN BOOLEAN := TRUE
4329 , p_entity_id in Number := NULL
4330 , x_return_status OUT NOCOPY Varchar2)
4331
4332 IS
4333 i number;
4334 j number;
4335 req_ind number;
4336 request_delete BOOLEAN;
4337 version_request_id number := 0;
4338 --
4339 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4340 --
4341 BEGIN
4342
4343
4344
4345 x_return_status := FND_API.G_RET_STS_SUCCESS;
4346 IF l_debug_level > 0 THEN
4347 oe_debug_pub.add('In Delete_Reqs_for_Deleted_Entity');
4348 oe_debug_pub.add('p_entity_code/p_entity_id' ||
4349 p_entity_code || '/' || p_entity_id);
4350 END IF;
4351
4352 -- DELETING REQUESTS LOGGED AGAINST THIS ENTITY
4353
4354 i := G_Delayed_Requests.first;
4355
4356 WHILE i IS NOT NULL LOOP
4357 IF l_debug_level > 0 THEN
4358 oe_debug_pub.add('G_Delayed_Requests.entity_code/entity_id' ||
4359 G_Delayed_Requests(i).entity_code || '/' ||
4360 G_Delayed_Requests(i).entity_id);
4361 oe_debug_pub.add('G_Delayed_Requests.request_type' ||
4362 G_Delayed_Requests(i).request_type);
4363
4364 END IF;
4365
4366 IF (G_Delayed_Requests(i).request_type = OE_GLOBALS.G_VERSION_AUDIT) THEN --Bug # 5206049
4367 version_request_id := i;
4368 END IF;
4369
4370 IF (G_Delayed_Requests(i).entity_code = p_entity_code
4371 AND (p_entity_id IS NULL OR
4372 G_Delayed_Requests(i).entity_id = p_entity_id)
4373 )
4374 THEN
4375 IF l_debug_level > 0 THEN
4376 oe_debug_pub.add('Delete above request');
4377 END IF;
4378
4379 -- delete records in requesting entity tables with this request
4380 j := G_Requesting_Entities.first;
4381 WHILE j IS NOT NULL LOOP
4382 IF G_Requesting_Entities(j).request_index = i THEN
4383 G_Requesting_Entities.Delete(j);
4384 END IF;
4385 j := G_Requesting_Entities.Next(j);
4386 END LOOP;
4387
4388 -- delete the delayed request
4389 G_Delayed_Requests.Delete(i);
4390
4391 END IF;
4392
4393 i := G_Delayed_Requests.Next(i);
4394
4395 END LOOP;
4396
4397
4398 -- DELETING REQUESTS LOGGED BY THIS ENTITY
4399 -- DO this only if delete agains is false. If true we delete request logged
4400 -- against the given entity.
4401
4402 IF NOT p_delete_against THEN
4403 IF l_debug_level > 0 THEN
4404 oe_debug_pub.add('Delete against is FALSE');
4405 END IF;
4406
4407
4408 i := G_Requesting_Entities.first;
4409
4410 WHILE i IS NOT NULL LOOP
4411
4412 -- search for requests logged by this entity
4413
4414 IF (G_Requesting_Entities(i).entity_code = p_entity_code
4415 AND (p_entity_id IS NULL OR
4416 G_Requesting_Entities(i).entity_id = p_entity_id)
4417 )
4418 THEN
4419
4420 req_ind := G_Requesting_Entities(i).request_index;
4421
4422 -- initialize request delete to TRUE
4423 request_delete := TRUE;
4424
4425 -- set the delete to FALSE if there are other entities that
4426 -- logged the same request but if the same entity has logged this
4427 -- request, then delete in the requesting entities table
4428
4429 j := G_Requesting_Entities.first;
4430 WHILE j IS NOT NULL LOOP
4431 IF G_Requesting_Entities(j).request_index = req_ind THEN
4432 IF ((G_Requesting_Entities(j).entity_code = p_entity_code
4433 AND (p_entity_id is null
4434 OR G_Requesting_Entities(j).entity_id = p_entity_id)
4435 )AND (G_Requesting_Entities(j).request_index <> version_request_id ) ) --Bug # 5206049
4436 THEN
4437 G_Requesting_Entities.Delete(j);
4438 ELSE
4439 request_delete := FALSE;
4440 END IF;
4441 END IF;
4442 j := G_Requesting_Entities.Next(j);
4443 END LOOP;
4444
4445 -- deleting the delayed request
4446 IF request_delete
4447 AND G_Delayed_Requests.Exists(req_ind) THEN
4448 IF l_debug_level > 0 THEN
4449 oe_debug_pub.add('Delete following request =>');
4450 oe_debug_pub.add('G_Delayed_Requests.entity_code/entity_id' ||
4451 G_Delayed_Requests(req_ind).entity_code || '/' ||
4452 G_Delayed_Requests(req_ind).entity_id);
4453 oe_debug_pub.add('G_Delayed_Requests.request_type' ||
4454 G_Delayed_Requests(req_ind).request_type);
4455 END IF;
4456 -- Bug 3800577
4457 -- Reset versioning globals if version request is deleted
4458 IF G_Delayed_Requests(req_ind).request_type
4459 = OE_GLOBALS.G_VERSION_AUDIT
4460 THEN
4461 IF l_debug_level > 0 THEN
4462 oe_debug_pub.add('reset versioning globals');
4463 END IF;
4464 IF (NOT OE_Versioning_Util.Reset_Globals) THEN
4465 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4466 END IF;
4467 END IF;
4468 G_Delayed_Requests.Delete(req_ind);
4469 END IF;
4470
4471 END IF;
4472
4473 i := G_Requesting_Entities.Next(i);
4474
4475 END LOOP;
4476 END IF;
4477
4478 EXCEPTION
4479
4480 WHEN FND_API.G_EXC_ERROR THEN
4481
4482 x_return_status := FND_API.G_RET_STS_ERROR;
4483
4484 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4485
4486 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4487
4488 when others THEN
4489
4490 IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4491 OE_MSG_PUB.Add_Exc_Msg
4492 (G_PKG_NAME
4493 ,'Delete_Reqs_for_Deleted_Entity');
4494 END IF;
4495
4496 x_return_status := FND_API.G_RET_STS_ERROR;
4497
4498 End Delete_Reqs_for_Deleted_Entity;
4499
4500
4501 /*---------------------------------------------------------------
4502 PROCEDURE Process_Scheduling_Request
4503 will be used for configurations scheduling requests.
4504 ----------------------------------------------------------------*/
4505 PROCEDURE Process_Scheduling_Request
4506 ( p_request_ind IN NUMBER
4507 ,p_request_rec IN OE_Order_PUB.request_rec_type
4508 ,x_return_status OUT NOCOPY VARCHAR2)
4509
4510 IS
4511 I NUMBER;
4512 K NUMBER;
4513 l_ato_line_id NUMBER;
4514 l_res_changes VARCHAR2(1);
4515 l_request_tbl OE_Order_PUB.request_tbl_type;
4516 --
4517 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4518 --
4519 BEGIN
4520 IF l_debug_level > 0 THEN
4521 oe_debug_pub.add('sch request '|| p_request_rec.request_type, 1);
4522 END IF;
4523
4524 x_return_status := FND_API.G_RET_STS_SUCCESS;
4525
4526 IF p_request_rec.request_type = OE_GLOBALS.G_SCHEDULE_ATO THEN
4527 IF l_debug_level > 0 THEN
4528 oe_debug_pub.add('.. schedule_ato '|| p_request_rec.entity_id, 1);
4529 END IF;
4530
4531 IF p_request_rec.param9 = 'Y' THEN
4532 K := p_request_ind;
4533 IF l_debug_level > 0 THEN
4534 oe_debug_pub.add('searh for duplicates '|| K, 3);
4535 END IF;
4536 WHILE K is not null
4537 LOOP
4538 IF G_Delayed_Requests(K).request_type
4539 = OE_GLOBALS.G_SCHEDULE_ATO AND
4540 G_Delayed_Requests(K).param2 = p_request_rec.param2 AND
4541 G_Delayed_Requests(K).param9 = 'Y'
4542 THEN
4543 IF l_debug_level > 0 THEN
4544 oe_debug_pub.add('another req for same top model', 2);
4545 END IF;
4546 SELECT ato_line_id
4547 INTO l_ato_line_id
4548 FROM oe_order_lines
4549 WHERE line_id = G_Delayed_Requests(K).entity_id;
4550
4551 IF nvl(l_ato_line_id, -1) <> G_Delayed_Requests(K).entity_id THEN
4552 IF l_debug_level > 0 THEN
4553 oe_debug_pub.add('2 incorrect sch_ato req ', 3);
4554 END IF;
4555 G_Delayed_Requests.DELETE(K);
4556 END IF;
4557 END IF;
4558 K := G_Delayed_Requests.NEXT(K);
4559 END LOOP;
4560 END IF; -- pto ato non ui
4561
4562 IF G_Delayed_Requests.EXISTS(p_request_ind) THEN
4563 OE_Config_Schedule_Pvt.Schedule_ATO
4564 ( p_request_rec => p_request_rec
4565 ,x_return_status => x_return_status);
4566 END IF;
4567
4568 ELSIF p_request_rec.request_type = OE_GLOBALS.G_SCHEDULE_SMC THEN
4569 IF l_debug_level > 0 THEN
4570 oe_debug_pub.add('calling schedule_smc '|| p_request_rec.param24 , 1);
4571 END IF;
4572
4573 OE_Config_Schedule_Pvt.Schedule_SMC
4574 ( p_request_rec => p_request_rec
4575 ,x_return_status => x_return_status);
4576
4577 ELSIF p_request_rec.request_type = OE_GLOBALS.G_SCHEDULE_NONSMC
4578 THEN
4579 I := 0;
4580 K := p_request_ind;
4581
4582 WHILE K is not null
4583 LOOP
4584 IF G_Delayed_Requests(K).request_type
4585 = OE_GLOBALS.G_SCHEDULE_NONSMC AND
4586 G_Delayed_Requests(K).param2 = p_request_rec.param2 AND
4587 G_Delayed_Requests(K).param1 = p_request_rec.param1
4588 THEN
4589
4590 l_ato_line_id := null;
4591
4592 IF G_Delayed_Requests(K).param9 = 'Y' THEN
4593 SELECT ato_line_id
4594 INTO l_ato_line_id
4595 FROM oe_order_lines
4596 WHERE line_id = G_Delayed_Requests(K).entity_id;
4597 END IF;
4598
4599 IF l_ato_line_id is NULL THEN
4600 IF l_debug_level > 0 THEN
4601 oe_debug_pub.add('req for same model, same action', 2);
4602 END IF;
4603 I := I + 1;
4604 l_request_tbl(I) := G_Delayed_Requests(K);
4605
4606 IF l_request_tbl(I).param24 = 'Y' THEN
4607 l_res_changes := 'Y';
4608 END IF;
4609 ELSE
4610 IF l_debug_level > 0 THEN
4611 oe_debug_pub.add('part of ato '|| l_ato_line_id , 3);
4612 END IF;
4613 END IF;
4614
4615 G_Delayed_Requests.DELETE(K);
4616
4617 END IF;
4618 K := G_Delayed_Requests.NEXT(K);
4619 END LOOP;
4620 IF l_debug_level > 0 THEN
4621 oe_debug_pub.add('calling schedule_nonsmc '||l_res_changes , 1);
4622 END IF;
4623 OE_Config_Schedule_Pvt.Schedule_NONSMC
4624 ( p_request_tbl => l_request_tbl
4625 ,p_res_changes => l_res_changes
4626 ,x_return_status => x_return_status);
4627
4628 ELSIF p_request_rec.request_type = OE_GLOBALS.G_DELAYED_SCHEDULE THEN
4629 if l_debug_level > 0 then
4630 oe_debug_pub.add('6663462 : calling delayed_schedule ' , 1);
4631 end if;
4632
4633 OE_SCHEDULE_UTIL.DELAYED_SCHEDULE_LINES
4634 (x_return_status => x_return_status);
4635
4636 END IF;
4637 IF l_debug_level > 0 THEN
4638 oe_debug_pub.add('type----- '|| p_request_rec.request_type, 4);
4639 oe_debug_pub.add('leaving sch reqs '|| x_return_status, 1);
4640 END IF;
4641 EXCEPTION
4642 WHEN OTHERS THEN
4643 oe_debug_pub.add('Process_Scheduling_Request error '|| sqlerrm, 1);
4644 RAISE;
4645 END Process_Scheduling_Request;
4646
4647 /*---------------------------------------------------------------
4648 PROCEDURE Check_Pricing_Request
4649
4650 ----------------------------------------------------------------*/
4651 PROCEDURE Check_Pricing_Request
4652 ( p_request_ind IN NUMBER
4653 ,p_request_rec IN OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.request_rec_type
4654 ,x_log_request OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4655 )
4656
4657 IS
4658 l_request_search_rslt1 VARCHAR2(1);
4659 l_request_search_rslt2 VARCHAR2(1);
4660 l_request_search_rslt3 VARCHAR2(1);
4661 l_request_search_rslt4 VARCHAR2(1);
4662 l_return_status VARCHAR2(1);
4663 l_request_ind NUMBER;
4664 l_req_entity_ind NUMBER;
4665 l_request OE_Order_PUB.REQUEST_REC_TYPE;
4666 l_req_entity OE_Order_PUB.Requesting_Entity_Rec_Type;
4667 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4668
4669 BEGIN
4670
4671 /* Added the following condition to fix the fp bug 3498435 */
4672
4673 IF p_request_rec.request_type = OE_GLOBALS.G_PRICE_ORDER THEN
4674
4675
4676 IF l_debug_level > 0 THEN
4677 oe_debug_pub.add('Entering check_pricing_request in Oe_Delayed_Request_PVT.',1);
4678 END IF;
4679 IF (p_request_rec.request_unique_key1 = 'BATCH'
4680 OR p_request_rec.request_unique_key1 = 'BATCH,BOOK')
4681 AND nvl(p_request_rec.request_unique_key2,'N') = 'Y' THEN
4682
4683 IF p_request_rec.request_unique_key1 = 'BATCH' THEN
4684 Check_For_Request(p_request_rec.entity_code,
4685 p_request_rec.entity_id,
4686 p_request_rec.request_type,
4687 'BATCH,BOOK',
4688 NULL,
4689 p_request_rec.request_unique_key3,
4690 p_request_rec.request_unique_key4,
4691 p_request_rec.request_unique_key5,
4692 l_request_ind,
4693 l_request_search_rslt1,
4694 l_return_status);
4695 IF l_request_search_rslt1 = FND_API.G_TRUE THEN
4696 -- no need to log request with BATCH and Y if
4697 -- 'BATCH,BOOK' and N already exists.
4698 x_log_request := 'N';
4699 return;
4700 ELSE
4701 Check_For_Request(p_request_rec.entity_code,
4702 p_request_rec.entity_id,
4703 p_request_rec.request_type,
4704 'BATCH',
4705 NULL,
4706 p_request_rec.request_unique_key3,
4707 p_request_rec.request_unique_key4,
4708 p_request_rec.request_unique_key5,
4709 l_request_ind,
4710 l_request_search_rslt1,
4711 l_return_status);
4712 END IF;
4713 ELSIF p_request_rec.request_unique_key1 = 'BATCH,BOOK' THEN
4714 Check_For_Request(p_request_rec.entity_code,
4715 p_request_rec.entity_id,
4716 p_request_rec.request_type,
4717 'BATCH,BOOK',
4718 NULL,
4719 p_request_rec.request_unique_key3,
4720 p_request_rec.request_unique_key4,
4721 p_request_rec.request_unique_key5,
4722 l_request_ind,
4723 l_request_search_rslt1,
4724 l_return_status);
4725
4726 END IF;
4727
4728 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4729 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4730 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4731 RAISE FND_API.G_EXC_ERROR;
4732 END IF;
4733
4734 IF l_request_search_rslt1 = FND_API.G_TRUE THEN
4735 -- no need to log request with BATCH and Y if BATCH
4736 -- and N already exists.
4737 IF l_debug_level > 0 THEN
4738 oe_debug_pub.add('there already exists BATCH + N so no need to log pricing request.', 3);
4739 END IF;
4740 x_log_request := 'N';
4741
4742 ELSE
4743 IF p_request_rec.request_unique_key1 = 'BATCH' THEN
4744 -- check if there already exists request with
4745 -- pricing event 'ORDER' with get_freight_flag = 'N'.
4746 Check_For_Request(p_request_rec.entity_code,
4747 p_request_rec.entity_id,
4748 p_request_rec.request_type,
4749 'ORDER',
4750 NULL,
4751 p_request_rec.request_unique_key3,
4752 p_request_rec.request_unique_key4,
4753 p_request_rec.request_unique_key5,
4754 l_request_ind,
4755 l_request_search_rslt2,
4756 l_return_status);
4757 ELSIF p_request_rec.request_unique_key1 = 'BATCH,BOOK' THEN
4758 Check_For_Request(p_request_rec.entity_code,
4759 p_request_rec.entity_id,
4760 p_request_rec.request_type,
4761 'ORDER,BOOK',
4762 NULL,
4763 p_request_rec.request_unique_key3,
4764 p_request_rec.request_unique_key4,
4765 p_request_rec.request_unique_key5,
4766 l_request_ind,
4767 l_request_search_rslt2,
4768 l_return_status);
4769
4770 END IF;
4771
4772
4773 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4774 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4775 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4776 RAISE FND_API.G_EXC_ERROR;
4777 END IF;
4778
4779 IF l_request_search_rslt2 = FND_API.G_TRUE THEN
4780 -- check if there already exists request with
4781 -- pricing event 'LINE' with get_freight_flag = 'Y'.
4782 -- If exists, do nothing.
4783 IF l_debug_level > 0 THEN
4784 oe_debug_pub.add('there already exists request with ORDER + N.',3);
4785 END IF;
4786 Check_For_Request(p_request_rec.entity_code,
4787 p_request_rec.entity_id,
4788 p_request_rec.request_type,
4789 'LINE',
4790 'Y',
4791 p_request_rec.request_unique_key3,
4792 p_request_rec.request_unique_key4,
4793 p_request_rec.request_unique_key5,
4794 l_request_ind,
4795 l_request_search_rslt3,
4796 l_return_status);
4797 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4798 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4799 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4800 RAISE FND_API.G_EXC_ERROR;
4801 END IF;
4802
4803 IF l_request_search_rslt3 = FND_API.G_TRUE THEN
4804 -- If not exists, replace BATCH event with LINE event
4805 -- since request with 'ORDER' event already exists.
4806 IF l_debug_level > 0 THEN
4807 oe_debug_pub.add('there exists LINE + Y and ORDER + N so no need to log request for BATCH + Y.', 3);
4808 END IF;
4809 x_log_request := 'N';
4810 ELSE
4811 -- if l_request_search_rslt3 = FND_API.G_FALSE THEN
4812 -- check for LINE and N.
4813 Check_For_Request(p_request_rec.entity_code,
4814 p_request_rec.entity_id,
4815 p_request_rec.request_type,
4816 'LINE',
4817 NULL,
4818 p_request_rec.request_unique_key3,
4819 p_request_rec.request_unique_key4,
4820 p_request_rec.request_unique_key5,
4821 l_request_ind,
4822 l_request_search_rslt4,
4823 l_return_status);
4824 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4825 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4826 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4827 RAISE FND_API.G_EXC_ERROR;
4828 END IF;
4829
4830
4831 IF l_request_search_rslt4 = FND_API.G_TRUE THEN
4832 -- if already exists request with LINE and N.
4833 IF l_debug_level > 0 THEN
4834 oe_debug_pub.add('there exists LINE + N and ORDER + N so no need to log request for BATCH + Y.', 3);
4835 END IF;
4836 x_log_request := 'N';
4837
4838 ELSE
4839 -- p_request_rec.request_unique_key1 := 'LINE';
4840 -- replace event BATCH with LINE.
4841 IF l_debug_level > 0 THEN
4842 oe_debug_pub.add('replace BATCH event with LINE + Y and ORDER + N.', 3);
4843 END IF;
4844 p_request_rec.param2 := 'LINE';
4845 p_request_rec.request_unique_key1 := 'LINE';
4846 p_request_rec.request_unique_key2 := 'Y';
4847 END IF;
4848 END IF; -- end of l_request_search_rslt3.
4849
4850
4851 END IF; -- end of l_request_search_rslt2
4852 END IF; -- end of l_request_search_rslt1
4853
4854 ELSIF p_request_rec.request_unique_key1 = 'ORDER'
4855 AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
4856 Check_For_Request(p_request_rec.entity_code,
4857 p_request_rec.entity_id,
4858 p_request_rec.request_type,
4859 'BATCH',
4860 NULL,
4861 p_request_rec.request_unique_key3,
4862 p_request_rec.request_unique_key4,
4863 p_request_rec.request_unique_key5,
4864 l_request_ind,
4865 l_request_search_rslt1,
4866 l_return_status);
4867
4868 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4869 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4870 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4871 RAISE FND_API.G_EXC_ERROR;
4872 END IF;
4873
4874 IF l_request_search_rslt1 = FND_API.G_TRUE THEN
4875 -- if l_request_search_rslt1 = FND_API.G_TRUE
4876 -- request with event 'BATCH' and get_freight_flag ='N'
4877 -- exists, don't need to log request.
4878 IF l_debug_level > 0 THEN
4879 oe_debug_pub.add('there exists BATCH + N so no need to log request.', 3);
4880 END IF;
4881 x_log_request := 'N';
4882 ELSE
4883 -- if l_request_search_rslt1 = FND_API.G_FALSE
4884 -- request with event 'BATCH' and get_freight_flag ='N'
4885 -- does not exist.
4886 Check_For_Request(p_request_rec.entity_code,
4887 p_request_rec.entity_id,
4888 p_request_rec.request_type,
4889 'BATCH',
4890 'Y',
4891 p_request_rec.request_unique_key3,
4892 p_request_rec.request_unique_key4,
4893 p_request_rec.request_unique_key5,
4894 l_request_ind,
4895 l_request_search_rslt2,
4896 l_return_status);
4897 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4898 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4899 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4900 RAISE FND_API.G_EXC_ERROR;
4901 END IF;
4902
4903 IF l_request_search_rslt2 = FND_API.G_TRUE THEN
4904
4905 -- there exists request with BATCH+Y already.
4906 -- need to delete BATCH+Y, log the current request which is
4907 -- ORDER+N and log an additional request LINE+Y.
4908 IF l_debug_level > 0 THEN
4909 oe_debug_pub.add('need to have two separate requests ORDER + N and LINE + Y',3);
4910 END IF;
4911 delete_request(p_entity_code => p_request_rec.entity_code,
4912 p_entity_id => p_request_rec.entity_id,
4913 p_request_type => p_request_rec.request_type,
4914 p_request_unique_key1 => 'BATCH',
4915 p_request_unique_key2 => 'Y',
4916 x_return_status => l_return_status);
4917
4918 log_request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
4919 p_entity_id => p_request_rec.entity_id,
4920 p_requesting_entity_code => p_request_rec.entity_code,
4921 p_requesting_entity_id => p_request_rec.entity_id,
4922 p_request_unique_key1 => 'LINE',
4923 p_request_unique_key2 => 'Y',
4924 p_param1 => p_request_rec.entity_id,
4925 p_param2 => 'LINE',
4926 p_request_type => p_request_rec.request_type,
4927 x_return_status => l_return_status);
4928
4929 END IF;
4930
4931 END IF; -- enf of l_request_search_rslt1.
4932 ELSIF p_request_rec.request_unique_key1 = 'BATCH'
4933 AND nvl(p_request_rec.request_unique_key2,'N') = 'N'
4934 OR p_request_rec.request_unique_key1 = 'BATCH,BOOK'
4935 AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
4936 -- delete all other request for G_PRICE_ORDER.
4937 IF l_debug_level > 0 THEN
4938 oe_debug_pub.add('delete all other price_order request.',1);
4939 END IF;
4940 delete_request(p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
4941 p_entity_id => p_request_rec.entity_id,
4942 p_request_type => p_request_rec.request_type,
4943 p_request_unique_key1 => 'ORDER',
4944 x_return_status => l_return_status);
4945 delete_request(p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
4946 p_entity_id => p_request_rec.entity_id,
4947 p_request_type => p_request_rec.request_type,
4948 p_request_unique_key1 => 'BATCH',
4949 x_return_status => l_return_status);
4950 IF p_request_rec.request_unique_key1 = 'BATCH,BOOK'
4951 AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
4952 -- event is 'BATCH,BOOK'
4953 delete_request(p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
4954 p_entity_id => p_request_rec.entity_id,
4955 p_request_type => p_request_rec.request_type,
4956 p_request_unique_key1 => 'ORDER,BOOK',
4957 x_return_status => l_return_status);
4958 delete_request(p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
4959 p_entity_id => p_request_rec.entity_id,
4960 p_request_type => p_request_rec.request_type,
4961 p_request_unique_key1 => 'BATCH,BOOK',
4962 x_return_status => l_return_status);
4963 END IF;
4964
4965 ELSIF p_request_rec.request_unique_key1 = 'ORDER,BOOK'
4966 AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
4967 Check_For_Request(p_request_rec.entity_code,
4968 p_request_rec.entity_id,
4969 p_request_rec.request_type,
4970 'BATCH,BOOK',
4971 NULL,
4972 p_request_rec.request_unique_key3,
4973 p_request_rec.request_unique_key4,
4974 p_request_rec.request_unique_key5,
4975 l_request_ind,
4976 l_request_search_rslt1,
4977 l_return_status);
4978
4979 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4980 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4981 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4982 RAISE FND_API.G_EXC_ERROR;
4983 END IF;
4984
4985 IF l_request_search_rslt1 = FND_API.G_TRUE THEN
4986 -- request with event 'BATCH' and get_freight_flag ='N'
4987 -- already exists, no need to log request.
4988 IF l_debug_level > 0 THEN
4989 oe_debug_pub.add('there exists BATCH + N so no need to log request.', 3);
4990 END IF;
4991 x_log_request := 'N';
4992 ELSE
4993 -- l_request_search_rslt1 = FND_API.G_FALSE
4994 -- request with event 'BATCH' and get_freight_flag ='N'
4995 -- does not exist.
4996 Check_For_Request(p_request_rec.entity_code,
4997 p_request_rec.entity_id,
4998 p_request_rec.request_type,
4999 'BATCH,BOOK',
5000 'Y',
5001 p_request_rec.request_unique_key3,
5002 p_request_rec.request_unique_key4,
5003 p_request_rec.request_unique_key5,
5004 l_request_ind,
5005 l_request_search_rslt2,
5006 l_return_status);
5007 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5008 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5009 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5010 RAISE FND_API.G_EXC_ERROR;
5011 END IF;
5012
5013 IF l_request_search_rslt2 = FND_API.G_TRUE THEN
5014
5015 -- there exists request with BATCH,BOOK+Y already.
5016 -- need to delete BATCH,BOOK+Y, log the current request which is
5017 -- ORDER,BOOK+N and log an additional request LINE+Y.
5018 IF l_debug_level > 0 THEN
5019 oe_debug_pub.add('need to have two separate requests ORDER,BOOK + N and LINE + Y and delete BATCH,BOOK + Y',1);
5020 END IF;
5021 delete_request(p_entity_code => p_request_rec.entity_code,
5022 p_entity_id => p_request_rec.entity_id,
5023 p_request_type => p_request_rec.request_type,
5024 p_request_unique_key1 => 'BATCH,BOOK',
5025 p_request_unique_key2 => 'Y',
5026 x_return_status => l_return_status);
5027
5028 log_request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5029 p_entity_id => p_request_rec.entity_id,
5030 p_requesting_entity_code => p_request_rec.entity_code,
5031 p_requesting_entity_id => p_request_rec.entity_id,
5032 p_request_unique_key1 => 'LINE',
5033 p_request_unique_key2 => 'Y',
5034 p_param1 => p_request_rec.entity_id,
5035 p_param2 => 'LINE',
5036 p_request_type => p_request_rec.request_type,
5037 x_return_status => l_return_status);
5038
5039 END IF;
5040
5041 END IF;
5042
5043 END IF;
5044
5045 /* New code added to fix the fp bug 3498435 */
5046 ELSIF p_request_rec.request_type = OE_GLOBALS.G_PRICE_LINE THEN
5047 IF l_debug_level > 0 THEN
5048 oe_debug_pub.add('3498435: Entering check_pricing_request '||p_request_rec.request_unique_key1,1);
5049 END IF;
5050 IF p_request_rec.request_unique_key1 = 'LINE' THEN
5051 Check_For_Request(p_request_rec.entity_code,
5052 p_request_rec.entity_id,
5053 p_request_rec.request_type,
5054 'BATCH',
5055 NULL,
5056 p_request_rec.request_unique_key3,
5057 p_request_rec.request_unique_key4,
5058 p_request_rec.request_unique_key5,
5059 l_request_ind,
5060 l_request_search_rslt1,
5061 l_return_status);
5062 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5063 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5064 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5065 RAISE FND_API.G_EXC_ERROR;
5066 END IF;
5067
5068 IF l_request_search_rslt1 = FND_API.G_TRUE THEN
5069 IF l_debug_level > 0 THEN
5070 oe_debug_pub.add('there exists BATCH + N so no need to log request.', 3);
5071 END IF;
5072 x_log_request := 'N';
5073 ELSE
5074 IF l_debug_level > 0 THEN
5075 oe_debug_pub.add('3498435: Search result is false ',1);
5076 END IF;
5077 Check_For_Request(p_request_rec.entity_code,
5078 p_request_rec.entity_id,
5079 p_request_rec.request_type,
5080 'BATCH,BOOK',
5081 NULL,
5082 p_request_rec.request_unique_key3,
5083 p_request_rec.request_unique_key4,
5084 p_request_rec.request_unique_key5,
5085 l_request_ind,
5086 l_request_search_rslt2,
5087 l_return_status);
5088 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5089 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5090 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5091 RAISE FND_API.G_EXC_ERROR;
5092 END IF;
5093 IF l_request_search_rslt2 = FND_API.G_TRUE THEN
5094 IF l_debug_level > 0 THEN
5095 oe_debug_pub.add('there exists BATCH,BOOK + N so no need to log request.', 3);
5096 END IF;
5097 x_log_request := 'N';
5098 END IF; --l_request_search_rslt2
5099 END IF; --l_request_search_rslt1
5100 ELSIF (nvl(p_request_rec.request_unique_key1,p_request_rec.param2) = 'BATCH'
5101 OR nvl(p_request_rec.request_unique_key1,p_request_rec.param2) = 'BATCH,BOOK') THEN
5102 IF l_debug_level > 0 THEN
5103 oe_debug_pub.add('Delete Line',3);
5104 END IF;
5105 delete_request(p_entity_code => p_request_rec.entity_code,
5106 p_entity_id => p_request_rec.entity_id,
5107 p_request_type => p_request_rec.request_type,
5108 p_request_unique_key1 => 'LINE',
5109 p_request_unique_key2 => NULL,
5110 x_return_status => l_return_status);
5111 END IF; --p_request_rec.request_unique_key1 check
5112 END IF; --Price order or price line check
5113
5114
5115 /* End of New code added to fix the fp bug 3498435 */
5116
5117
5118 IF l_debug_level > 0 THEN
5119 oe_debug_pub.add('Exiting procedure OE_Delayed_Requests_Pvt.Check_Pricing_Request', 1);
5120 END IF;
5121
5122 END Check_Pricing_Request;
5123
5124 END OE_Delayed_Requests_Pvt;