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