[Home] [Help]
PACKAGE BODY: APPS.OE_BULK_HOLDS_PVT
Source
1 PACKAGE BODY OE_Bulk_Holds_PVT AS
2 /* $Header: OEBVHLDB.pls 120.12 2012/02/02 06:25:18 sujithku ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):='OE_Bulk_Holds_PVT';
5
6
10 > 1. Customer - Header Level
7 /****************************************************************************
8 Valid Entity Combination
9 ^^^^^^^^^^^^^^^^^^^^^^^^
11 > 2. item - Line Level
12 > 3. ship_to - Line Level
13 > 4. bill to - Line Level
14 > 5. warehouse - Line Level
15 > 6. Item - Customer - Line Level
16 > 7. Item - Customer Ship to Site - Line Level
17 > 8. Item - Customer Bill to Site - Line Level
18 > 9. Item - Warehouse - Line Level
19 > 10. Warehouse - Customer - Line Level
20 > 11. Warehouse - Customer Ship to Site - Line Level
21 > 12. Warehouse - Customer Bill to Site - Line Level
22
23 ***************************************************************************/
24 PROCEDURE Extend_Holds_Tbl;
25
26 PROCEDURE Extend_Hold_Source_Rec;
27
28 --ER# 3667551 new Function added to return Customer Account ID for the Site ID passed in
29 FUNCTION CustAcctID_func
30 (
31 p_in_site_id IN NUMBER,
32 p_out_IDfound OUT NOCOPY VARCHAR2)
33 RETURN NUMBER IS
34 l_Custid NUMBER := 0;
35 BEGIN
36 p_out_IDfound:='N';
37 SELECT 'Y',
38 cust.cust_account_id
39 INTO p_out_IDfound ,
40 l_Custid
41 FROM HZ_CUST_ACCOUNTS_ALL cust ,
42 HZ_CUST_ACCT_SITES_ALL site,
43 hz_cust_site_uses_all siteuse
44 WHERE siteuse.site_use_id = p_in_site_id
45 AND site.cust_acct_site_id = siteuse.cust_acct_site_id
46 AND siteuse.site_use_code ='BILL_TO'
47 AND siteuse.status = 'A'
48 AND cust.cust_account_id =site.cust_account_id ;
49
50 oe_debug_pub.add(' CustAcctID_func -l_Custid- '||l_Custid);
51 RETURN(l_Custid);
52 EXCEPTION
53 WHEN NO_DATA_FOUNd THEN
54 oe_debug_pub.add(' CustAcctID_func, No Data Found, p_in_site_id= '||p_in_site_id);
55 p_out_IDfound:='N';
56 RETURN 0;
57 WHEN OTHERS THEN
58 oe_debug_pub.add(' CustAcctID_func, When Others Exception, p_in_site_id='||p_in_site_id);
59 p_out_IDfound:='N';
60 RETURN 0;
61 END;
62 --ER# 3667551 END
63
64 PROCEDURE Initialize_Holds_Tbl IS
65 BEGIN
66
67 -- Clear the Globals.
68 g_hold_header_id.DELETE;
69 g_hold_line_id.DELETE;
70 g_hold_Source_Id.DELETE;
71 g_hold_ship_set.DELETE;
72 g_hold_arrival_set.DELETE;
73 g_hold_top_model_line_id.DELETE;
74 g_hold_activity_name.DELETE;
75
76 g_hold_source_rec.HOLD_ID.DELETE;
77 g_hold_source_rec.HOLD_SOURCE_ID.DELETE;
78 g_hold_source_rec.HOLD_ENTITY_CODE.DELETE;
79 g_hold_source_rec.HOLD_ENTITY_ID.DELETE;
80
81 EXCEPTION
82 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
83 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
84 WHEN OTHERS THEN
85 OE_BULK_MSG_PUB.Add_Exc_Msg
86 ( G_PKG_NAME
87 , 'Initialize_Holds_Tbl'
88 );
89 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
90 END Initialize_Holds_Tbl;
91
92 PROCEDURE Load_Hold_Sources
93 IS
94 CURSOR C_Hold_Sources IS
95 SELECT HS.HOLD_SOURCE_ID,
96 HS.HOLD_ENTITY_ID,
97 HS.HOLD_ENTITY_CODE,
98 HS.HOLD_ENTITY_ID2,
99 HS.HOLD_ENTITY_CODE2,
100 HLD.ACTIVITY_NAME,
101 HS.HOLD_ID --ER# 3667551
102 FROM OE_HOLD_SOURCES HS,
103 OE_HOLD_DEFINITIONS HLD
104 WHERE --ER#7479609 HS.HOLD_ENTITY_CODE IN ('C','I','B','W','S')
105 HS.HOLD_ENTITY_CODE IN ('C','I','B','D','W','S','PL','OT','CD','SC','P','SM','EC','IC') --ER#7479609 --ER# 12571983 added ,'EC' --ER# 13331078 added 'IC'
106 AND ROUND( NVL(HS.HOLD_UNTIL_DATE, SYSDATE ) ) >=
107 ROUND( SYSDATE )
108 AND HS.RELEASED_FLAG = 'N'
109 AND HLD.HOLD_ID = HS.HOLD_ID
110 AND SYSDATE
111 BETWEEN NVL( HLD.START_DATE_ACTIVE, SYSDATE )
112 AND NVL( HLD.END_DATE_ACTIVE, SYSDATE )
113 ORDER BY HS.HOLD_ENTITY_CODE,HS.HOLD_ENTITY_CODE2,HS.HOLD_ENTITY_ID,
114 HS.HOLD_ENTITY_ID2;
115
116 T_HOLD_SOURCE_ID OE_WSH_BULK_GRP.T_NUM := OE_WSH_BULK_GRP.T_NUM();
117 --ER#7479609 T_HOLD_ENTITY_ID OE_WSH_BULK_GRP.T_NUM;
118 T_HOLD_ENTITY_ID OE_WSH_BULK_GRP.T_V50 := OE_WSH_BULK_GRP.T_V50(); --ER#7479609
119 T_HOLD_ENTITY_CODE OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30();
120 --ER#7479609 T_HOLD_ENTITY_ID2 OE_WSH_BULK_GRP.T_NUM;
121 T_HOLD_ENTITY_ID2 OE_WSH_BULK_GRP.T_V50 := OE_WSH_BULK_GRP.T_V50(); --ER#7479609
122 T_HOLD_ENTITY_CODE2 OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30();
123 T_HOLD_ACTIVITY_NAME OE_WSH_BULK_GRP.T_V30 := OE_WSH_BULK_GRP.T_V30();
124 T_HOLD_ID OE_WSH_BULK_GRP.T_V50 := OE_WSH_BULK_GRP.T_V50();--ER# 3667551
125
126 l_count BINARY_INTEGER;
127 BEGIN
128
129 oe_debug_pub.add('Entering OE_Bulk_Holds_PVT.Load_Hold_Sources'); --ER#7479609 debug
130 -- Clear the Globals.
131 g_hold_header_id.DELETE;
132 g_hold_line_id.DELETE;
133 g_hold_Source_Id.DELETE;
134 g_hold_ship_set.DELETE;
135 g_hold_arrival_set.DELETE;
136 g_hold_top_model_line_id.DELETE;
137 g_hold_activity_name.DELETE;
138
139 Customer_Pointer.DELETE;
140 Item_Pointer.DELETE;
141 ship_to_Pointer.DELETE;
142 bill_to_Pointer.DELETE;
143 Warehouse_Pointer.DELETE;
144 --ER#7479609 start
145 PriceList_Pointer.DELETE;
146 OrderType_Pointer.DELETE;
147 CreationDate_Pointer.DELETE;
148 SalesChannel_Pointer.DELETE;
149 PaymentType_Pointer.DELETE;
150 ShipMethod_Pointer.DELETE;
151 deliver_to_Pointer.DELETE;
152 --ER#7479609 end
153
154 Item_Customer_Pointer.DELETE;
155 Item_shipto_Pointer.DELETE;
156 Item_Billto_Pointer.DELETE;
157 Item_Warehouse_Pointer.DELETE;
158 --ER#7479609 start
162 --ER#7479609 Item_Project_Pointer.DELETE;
159 Item_ShipMethod_Pointer.DELETE;
160 Item_Deliverto_Pointer.DELETE;
161 Item_PriceList_Pointer.DELETE;
163 Item_SourceType_Pointer.DELETE;
164 Item_LineType_Pointer.DELETE;
165 --ER#7479609 end
166
167 Warehouse_Customer_Pointer.DELETE;
168 Warehouse_shipto_Pointer.DELETE;
169 Warehouse_Billto_Pointer.DELETE;
170 --ER#7479609 start
171 Warehouse_LineType_Pointer.DELETE;
172 Warehouse_ShipMethod_Pointer.DELETE;
173 Warehouse_Deliverto_Pointer.DELETE;
174 Warehouse_SourceType_Pointer.DELETE;
175 --ER#7479609 end
176
177 --ER#7479609 start
178 Cust_SourceType_Pointer.DELETE;
179 Cust_Billto_Pointer.DELETE;
180 Cust_Shipto_Pointer.DELETE;
181 Cust_Deliverto_Pointer.DELETE;
182 Cust_PriceList_Pointer.DELETE;
183 Cust_LineType_Pointer.DELETE;
184 Cust_PayTerm_Pointer.DELETE;
185 Cust_OrderType_Pointer.DELETE;
186 Cust_PaymentType_Pointer.DELETE;
187 Cust_Curr_Pointer.DELETE;
188 Cust_SalesChannel_Pointer.DELETE;
189
190
191 --ER#7479609 Project_Task_Pointer.DELETE;
192
193 PriceList_Curr_Pointer.DELETE;
194
195 OrderType_Curr_Pointer.DELETE;
196 OrderType_LineType_Pointer.DELETE;
197
198 CreDate_CreBy_Pointer.DELETE;
199 --ER#7479609 end
200
201 Customer_Hold.DELETE;
202 Item_Hold.DELETE;
203 ship_to_Hold.DELETE;
204 bill_to_Hold.DELETE;
205 Warehouse_Hold.DELETE;
206 --ER#7479609 start
207 PriceList_Hold.DELETE;
208 OrderType_Hold.DELETE;
209 CreationDate_Hold.DELETE;
210 SalesChannel_Hold.DELETE;
211 PaymentType_Hold.DELETE;
212 ShipMethod_Hold.DELETE;
213 deliver_to_Hold.DELETE;
214 --ER#7479609 end
215
216 Item_Customer_Hold.DELETE;
217 Item_shipto_Hold.DELETE;
218 Item_Billto_Hold.DELETE;
219 Item_Warehouse_Hold.DELETE;
220 --ER#7479609 start
221 Item_ShipMethod_Hold.DELETE;
222 Item_Deliverto_Hold.DELETE;
223 Item_PriceList_Hold.DELETE;
224 Item_SourceType_Hold.DELETE;
225 Item_LineType_Hold.DELETE;
226 --ER#7479609 end
227
228 Warehouse_Customer_Hold.DELETE;
229 Warehouse_shipto_Hold.DELETE;
230 Warehouse_Billto_Hold.DELETE;
231 --ER#7479609 start
232 Warehouse_LineType_Hold.DELETE;
233 Warehouse_ShipMethod_Hold.DELETE;
234 Warehouse_Deliverto_Hold.DELETE;
235 Warehouse_SourceType_Hold.DELETE;
236 --ER#7479609 end
237
238 --ER#7479609 start
239 Cust_SourceType_Hold.DELETE;
240 Cust_Billto_Hold.DELETE;
241 Cust_Shipto_Hold.DELETE;
242 Cust_Deliverto_Hold.DELETE;
243 Cust_PriceList_Hold.DELETE;
244 Cust_LineType_Hold.DELETE;
245 Cust_PayTerm_Hold.DELETE;
246 Cust_OrderType_Hold.DELETE;
247 Cust_PaymentType_Hold.DELETE;
248 Cust_Curr_Hold.DELETE;
249 Cust_SalesChannel_Hold.DELETE;
250
251
252
253 PriceList_Curr_Hold.DELETE;
254
255 OrderType_Curr_Hold.DELETE;
256 OrderType_LineType_Hold.DELETE;
257
258 CreDate_CreBy_Hold.DELETE;
259 --ER#7479609 end
260
261 --ER# 12571983 start added for 'EC'
262
263 EndCust_Pointer.Delete;
264 Item_EndCust_Pointer.Delete;
265 Warehouse_EndCust_Pointer.Delete;
266 EndCust_SourceType_Pointer.Delete;
267 EndCust_Billto_Pointer.Delete;
268 EndCust_Shipto_Pointer.Delete;
269 EndCust_Deliverto_Pointer.Delete;
270 EndCust_PriceList_Pointer.Delete;
271 EndCust_LineType_Pointer.Delete;
272 EndCust_PayTerm_Pointer.Delete;
273 EndCust_OrderType_Pointer.Delete;
274 EndCust_PaymentType_Pointer.Delete;
275 EndCust_Curr_Pointer.Delete;
276 EndCust_SalesChannel_Pointer.Delete;
277 EndCust_EndCustLoc_Pointer.Delete;
278
279 EndCust_Hold.Delete;
280 Item_EndCust_Hold.Delete;
281 Warehouse_EndCust_Hold.Delete;
282 EndCust_SourceType_Hold.Delete;
283 EndCust_Billto_Hold.Delete;
284 EndCust_Shipto_Hold.Delete;
285 EndCust_Deliverto_Hold.Delete;
286 EndCust_PriceList_Hold.Delete;
287 EndCust_LineType_Hold.Delete;
288 EndCust_PayTerm_Hold.Delete;
289 EndCust_OrderType_Hold.Delete;
290 EndCust_PaymentType_Hold.Delete;
291 EndCust_Curr_Hold.Delete;
292 EndCust_SalesChannel_Hold.Delete;
293 EndCust_EndCustLoc_Hold.Delete;
294
295 --ER# 12571983 end added for 'EC'
296
297 oe_debug_pub.add('Before opening C_Hold_Sources'); --ER#7479609 debug
298 -- Load the Hold Sources into Globals.
299 OPEN C_Hold_Sources;
300 FETCH C_Hold_Sources BULK COLLECT INTO
301 T_HOLD_SOURCE_ID,
302 T_HOLD_ENTITY_ID,
303 T_HOLD_ENTITY_CODE,
304 T_HOLD_ENTITY_ID2,
305 T_HOLD_ENTITY_CODE2,
306 T_HOLD_ACTIVITY_NAME,
307 T_HOLD_ID;--ER# 3667551
308 CLOSE C_Hold_Sources;
309 oe_debug_pub.add('After Closing C_Hold_Sources:'||T_HOLD_SOURCE_ID.COUNT); --ER#7479609 debug
310
311 FOR i IN 1..T_HOLD_SOURCE_ID.COUNT LOOP
312
313 -- Load Customer Hold Source
314 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) IS NULL
315 THEN
316 l_count := Customer_Hold.COUNT;
317 Customer_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
318 Customer_Hold(l_count+1).Entity_Id2 := NULL;
319 Customer_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
320 Customer_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
321 Customer_Hold(l_count+1).HOLD_ID:=T_HOLD_ID(i);--ER# 3667551
322
323 IF NOT Customer_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
324 Customer_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
328
325 END IF;
326
327 END IF;
329 --ER# 12571983 start
330 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) IS NULL
331 THEN
332 l_count := EndCust_Hold.COUNT;
333 EndCust_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
334 EndCust_Hold(l_count+1).Entity_Id2 := NULL;
335 EndCust_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
336 EndCust_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
337
338 IF NOT EndCust_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
339 EndCust_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
340 END IF;
341
342 END IF;
343 --ER# 12571983 end
344
345 -- Load Item Hold Source
346 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_ID2(i) IS NULL
347 THEN
348 l_count := Item_Hold.COUNT;
349 Item_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
350 Item_Hold(l_count+1).Entity_Id2 := NULL;
351 Item_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
352 Item_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
353
354 IF NOT Item_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
355 Item_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
356 END IF;
357 END IF;
358
359 -- Load Ship_To Hold Source
360 IF T_HOLD_ENTITY_CODE(i) = 'S' AND T_HOLD_ENTITY_ID2(i) IS NULL
361 THEN
362 l_count := Ship_to_Hold.COUNT;
363 Ship_to_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
364 Ship_to_Hold(l_count+1).Entity_Id2 := NULL;
365 Ship_to_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
366 Ship_to_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
367
368 IF NOT Ship_to_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
369 Ship_to_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
370 END IF;
371 END IF;
372
373 -- Load Bill_To Hold Source
374 IF T_HOLD_ENTITY_CODE(i) = 'B' AND T_HOLD_ENTITY_ID2(i) IS NULL
375 THEN
376 l_count := Bill_to_Hold.COUNT;
377 Bill_to_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
378 Bill_to_Hold(l_count+1).Entity_Id2 := NULL;
379 Bill_to_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
380 Bill_to_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
381
382 IF NOT Bill_to_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
383 Bill_to_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
384 END IF;
385 END IF;
386
387 -- Load Warehouse Hold Source
388 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_ID2(i) IS NULL
389 THEN
390 l_count := Warehouse_Hold.COUNT;
391 Warehouse_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
392 Warehouse_Hold(l_count+1).Entity_Id2 := NULL;
393 Warehouse_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
394 Warehouse_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
395
396 IF NOT Warehouse_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
397 Warehouse_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
398 END IF;
399 END IF;
400
401
402
403 --ER#7479609 start
404
405 IF T_HOLD_ENTITY_CODE(i) = 'PL' AND T_HOLD_ENTITY_ID2(i) IS NULL
406 THEN
407 l_count := PriceList_Hold.COUNT;
408 PriceList_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
409 PriceList_Hold(l_count+1).Entity_Id2 := NULL;
410 PriceList_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
411 PriceList_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
412
413 IF NOT PriceList_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
414 PriceList_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
415 END IF;
416 END IF;
417
418 IF T_HOLD_ENTITY_CODE(i) = 'OT' AND T_HOLD_ENTITY_ID2(i) IS NULL
419 THEN
420 l_count := OrderType_Hold.COUNT;
421 OrderType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
422 OrderType_Hold(l_count+1).Entity_Id2 := NULL;
423 OrderType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
424 OrderType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
425
426 IF NOT OrderType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
427 OrderType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
428 END IF;
429 END IF;
430
431 IF T_HOLD_ENTITY_CODE(i) = 'CD' AND T_HOLD_ENTITY_ID2(i) IS NULL
432 THEN
433 l_count := CreationDate_Hold.COUNT;
434 CreationDate_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
435 CreationDate_Hold(l_count+1).Entity_Id2 := NULL;
436 CreationDate_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
437 CreationDate_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
438
439 IF NOT CreationDate_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
440 CreationDate_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
441 END IF;
442 END IF;
443
444 IF T_HOLD_ENTITY_CODE(i) = 'SC' AND T_HOLD_ENTITY_ID2(i) IS NULL
445 THEN
446 l_count := SalesChannel_Hold.COUNT;
447 SalesChannel_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
448 SalesChannel_Hold(l_count+1).Entity_Id2 := NULL;
449 SalesChannel_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
450 SalesChannel_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
451
452 IF NOT SalesChannel_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
453 SalesChannel_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
454 END IF;
455 END IF;
456
457 oe_debug_pub.add('Before Loading payment type'); --ER#7479609 debug
458 IF T_HOLD_ENTITY_CODE(i) = 'P' AND T_HOLD_ENTITY_ID2(i) IS NULL
459 THEN
460 l_count := PaymentType_Hold.COUNT;
464 PaymentType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
461 PaymentType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
462 PaymentType_Hold(l_count+1).Entity_Id2 := NULL;
463 PaymentType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
465
466 IF NOT PaymentType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
467 PaymentType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
468 END IF;
469
470 END IF;
471
472 IF T_HOLD_ENTITY_CODE(i) = 'SM' AND T_HOLD_ENTITY_ID2(i) IS NULL
473 THEN
474 l_count := ShipMethod_Hold.COUNT;
475 ShipMethod_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
476 ShipMethod_Hold(l_count+1).Entity_Id2 := NULL;
477 ShipMethod_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
478 ShipMethod_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
479
480 IF NOT ShipMethod_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
481 ShipMethod_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
482 END IF;
483 END IF;
484
485 IF T_HOLD_ENTITY_CODE(i) = 'D' AND T_HOLD_ENTITY_ID2(i) IS NULL
486 THEN
487 l_count := deliver_to_Hold.COUNT;
488 deliver_to_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
489 deliver_to_Hold(l_count+1).Entity_Id2 := NULL;
490 deliver_to_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
491 deliver_to_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
492
493 IF NOT deliver_to_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
494 deliver_to_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
495 END IF;
496 END IF;
497
498 --ER#7479609 end
499
500 --ER#7479609 start
501
502 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'ST'
503 THEN
504 l_count := Cust_SourceType_Hold.COUNT;
505 Cust_SourceType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
506 Cust_SourceType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
507 Cust_SourceType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
508 Cust_SourceType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
509
510 IF NOT Cust_SourceType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
511 Cust_SourceType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
512 END IF;
513
514 END IF;
515
516 --ER# 12571983 start
517 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'ST'
518 THEN
519 l_count := EndCust_SourceType_Hold.COUNT;
520 EndCust_SourceType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
521 EndCust_SourceType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
522 EndCust_SourceType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
523 EndCust_SourceType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
524
525 IF NOT EndCust_SourceType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
526 EndCust_SourceType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
527 END IF;
528
529 END IF;
530 --ER# 12571983 end
531
532 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'B'
533 THEN
534 l_count := Cust_Billto_Hold.COUNT;
535 Cust_Billto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
536 Cust_Billto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
537 Cust_Billto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
538 Cust_Billto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
539
540 IF NOT Cust_Billto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
541 Cust_Billto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
542 END IF;
543
544 END IF;
545
546 --ER# 12571983 start
547 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'B'
548 THEN
549 l_count := EndCust_Billto_Hold.COUNT;
550 EndCust_Billto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
551 EndCust_Billto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
552 EndCust_Billto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
553 EndCust_Billto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
554
555 IF NOT EndCust_Billto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
556 EndCust_Billto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
557 END IF;
558
559 END IF;
560 --ER# 12571983 end
561
562
563 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'S'
564 THEN
565 l_count := Cust_Shipto_Hold.COUNT;
566 Cust_Shipto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
567 Cust_Shipto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
568 Cust_Shipto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
569 Cust_Shipto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
570
571 IF NOT Cust_Shipto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
572 Cust_Shipto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
573 END IF;
574
575 END IF;
576
577 --ER# 12571983 start
578 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'S'
579 THEN
580 l_count := EndCust_Shipto_Hold.COUNT;
581 EndCust_Shipto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
582 EndCust_Shipto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
583 EndCust_Shipto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
584 EndCust_Shipto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
585
586 IF NOT EndCust_Shipto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
587 EndCust_Shipto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
588 END IF;
589
590 END IF;
591 --ER# 12571983 end
592
593
594 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'D'
598 Cust_Deliverto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
595 THEN
596 l_count := Cust_Deliverto_Hold.COUNT;
597 Cust_Deliverto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
599 Cust_Deliverto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
600 Cust_Deliverto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
601
602 IF NOT Cust_Deliverto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
603 Cust_Deliverto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
604 END IF;
605
606 END IF;
607
608 --ER# 12571983 start
609
610 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'D'
611 THEN
612 l_count := EndCust_Deliverto_Hold.COUNT;
613 EndCust_Deliverto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
614 EndCust_Deliverto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
615 EndCust_Deliverto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
616 EndCust_Deliverto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
617
618 IF NOT EndCust_Deliverto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
619 EndCust_Deliverto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
620 END IF;
621
622 END IF;
623
624 --ER# 12571983 end
625
626
627 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'PL'
628 THEN
629 l_count := Cust_PriceList_Hold.COUNT;
630 Cust_PriceList_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
631 Cust_PriceList_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
632 Cust_PriceList_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
633 Cust_PriceList_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
634
635 IF NOT Cust_PriceList_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
636 Cust_PriceList_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
637 END IF;
638
639 END IF;
640
641 --ER# 12571983 start
642 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_ID2(i) = 'PL'
643 THEN
644 l_count := EndCust_PriceList_Hold.COUNT;
645 EndCust_PriceList_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
646 EndCust_PriceList_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
647 EndCust_PriceList_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
648 EndCust_PriceList_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
649
650 IF NOT EndCust_PriceList_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
651 EndCust_PriceList_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
652 END IF;
653
654 END IF;
655 --ER# 12571983 end
656
657
658 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'LT'
659 THEN
660 l_count := Cust_LineType_Hold.COUNT;
661 Cust_LineType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
662 Cust_LineType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
663 Cust_LineType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
664 Cust_LineType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
665
666 IF NOT Cust_LineType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
667 Cust_LineType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
668 END IF;
669
670 END IF;
671
672 --ER# 12571983 start
673 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'LT'
674 THEN
675 l_count := EndCust_LineType_Hold.COUNT;
676 EndCust_LineType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
677 EndCust_LineType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
678 EndCust_LineType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
679 EndCust_LineType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
680
681 IF NOT EndCust_LineType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
682 EndCust_LineType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
683 END IF;
684
685 END IF;
686 --ER# 12571983 end
687
688
689 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'PT'
690 THEN
691 l_count := Cust_PayTerm_Hold.COUNT;
692 Cust_PayTerm_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
693 Cust_PayTerm_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
694 Cust_PayTerm_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
695 Cust_PayTerm_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
696
697 IF NOT Cust_PayTerm_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
698 Cust_PayTerm_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
699 END IF;
700
701 END IF;
702
703 --ER# 12571983 start
704 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'PT'
705 THEN
706 l_count := EndCust_PayTerm_Hold.COUNT;
707 EndCust_PayTerm_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
708 EndCust_PayTerm_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
709 EndCust_PayTerm_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
710 EndCust_PayTerm_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
711
712 IF NOT EndCust_PayTerm_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
713 EndCust_PayTerm_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
714 END IF;
715
716 END IF;
717 --ER# 12571983 end
718
719
720 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'OT'
721 THEN
722 l_count := Cust_OrderType_Hold.COUNT;
723 Cust_OrderType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
724 Cust_OrderType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
725 Cust_OrderType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
726 Cust_OrderType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
727
728 IF NOT Cust_OrderType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
729 Cust_OrderType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
730 END IF;
731
732 END IF;
733
734
735 --ER# 12571983 start
736 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'OT'
737 THEN
738 l_count := EndCust_OrderType_Hold.COUNT;
739 EndCust_OrderType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
740 EndCust_OrderType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
741 EndCust_OrderType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
742 EndCust_OrderType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
743
744 IF NOT EndCust_OrderType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
745 EndCust_OrderType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
746 END IF;
747
748 END IF;
749 --ER# 12571983 end
750
751
752 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'P'
753 THEN
754 l_count := Cust_PaymentType_Hold.COUNT;
755 Cust_PaymentType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
756 Cust_PaymentType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
757 Cust_PaymentType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
758 Cust_PaymentType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
759
760 IF NOT Cust_PaymentType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
761 Cust_PaymentType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
762 END IF;
763
764 END IF;
765
766 --ER# 12571983 start
767 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'P'
768 THEN
769 l_count := EndCust_PaymentType_Hold.COUNT;
770 EndCust_PaymentType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
771 EndCust_PaymentType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
772 EndCust_PaymentType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
773 EndCust_PaymentType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
774
775 IF NOT EndCust_PaymentType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
776 EndCust_PaymentType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
777 END IF;
778
779 END IF;
780 --ER# 12571983 end
781
782
783 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'TC'
784 THEN
785 l_count := Cust_Curr_Hold.COUNT;
786 Cust_Curr_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
787 Cust_Curr_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
788 Cust_Curr_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
789 Cust_Curr_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
790
791 IF NOT Cust_Curr_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
792 Cust_Curr_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
793 END IF;
794
795 END IF;
796
797 --ER# 12571983 start
798 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'TC'
799 THEN
800 l_count := EndCust_Curr_Hold.COUNT;
801 EndCust_Curr_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
802 EndCust_Curr_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
803 EndCust_Curr_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
804 EndCust_Curr_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
805
806 IF NOT EndCust_Curr_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
807 EndCust_Curr_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
808 END IF;
809
810 END IF;
811 --ER# 12571983 end
812
813
814 IF T_HOLD_ENTITY_CODE(i) = 'C' AND T_HOLD_ENTITY_ID2(i) = 'SC'
815 THEN
816 l_count := Cust_SalesChannel_Hold.COUNT;
817 Cust_SalesChannel_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
818 Cust_SalesChannel_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
819 Cust_SalesChannel_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
820 Cust_SalesChannel_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
821
822 IF NOT Cust_SalesChannel_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
823 Cust_SalesChannel_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
824 END IF;
825
826 END IF;
827
828 --ER# 12571983 start
829 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'SC'
830 THEN
831 l_count := EndCust_SalesChannel_Hold.COUNT;
832 EndCust_SalesChannel_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
833 EndCust_SalesChannel_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
834 EndCust_SalesChannel_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
835 EndCust_SalesChannel_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
836
840
837 IF NOT EndCust_SalesChannel_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
838 EndCust_SalesChannel_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
839 END IF;
841 END IF;
842
843 IF T_HOLD_ENTITY_CODE(i) = 'EC' AND T_HOLD_ENTITY_CODE2(i) = 'EL'
844 THEN
845 l_count := EndCust_EndCustLoc_Hold.COUNT;
846 EndCust_EndCustLoc_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
847 EndCust_EndCustLoc_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
848 EndCust_EndCustLoc_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
849 EndCust_EndCustLoc_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
850
851 IF NOT EndCust_EndCustLoc_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
852 EndCust_EndCustLoc_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
853 END IF;
854
855 END IF;
856 --ER# 12571983 end
857
858
859 --ER#7479609 end
860
861 -- Load Item Customer Hold Source
862 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'C'
863 THEN
864 l_count := Item_Customer_Hold.COUNT;
865 Item_Customer_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
866 Item_Customer_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
867 Item_Customer_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
868 Item_Customer_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
869
870 IF NOT Item_Customer_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
871 Item_Customer_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
872 END IF;
873
874 END IF;
875
876 --ER# 12571983 start
877 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'EC'
878 THEN
879 l_count := Item_EndCust_Hold.COUNT;
880 Item_EndCust_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
881 Item_EndCust_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
882 Item_EndCust_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
883 Item_EndCust_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
884
885 IF NOT Item_EndCust_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
886 Item_EndCust_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
887 END IF;
888
889 END IF;
890 --ER# 12571983 end
891
892 -- Load Item Ship_To Hold Source
893 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'S'
894 THEN
895 l_count := Item_Shipto_Hold.COUNT;
896 Item_Shipto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
897 Item_Shipto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
898 Item_Shipto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
899 Item_Shipto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
900
901 IF NOT Item_Shipto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
902 Item_Shipto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
903 END IF;
904
905 END IF;
906
907 -- Load Item Bill_To Hold Source
908 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'B'
909 THEN
910 l_count := Item_Billto_Hold.COUNT;
911 Item_Billto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
912 Item_Billto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
913 Item_Billto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
914 Item_Billto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
915
916 IF NOT Item_Billto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
917 Item_Billto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
918 END IF;
919
920 END IF;
921
922 -- Load Item Warehouse Hold Source
923 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'W'
924 THEN
925 l_count := Item_Warehouse_Hold.COUNT;
926 Item_Warehouse_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
927 Item_Warehouse_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
928 Item_Warehouse_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
929 Item_Warehouse_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
930
931 IF NOT Item_Warehouse_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
932 Item_Warehouse_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
933 END IF;
934
935 END IF;
936
937 --ER#7479609 start
938 -- Load Item Linetype Hold Source
939 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'LT'
940 THEN
941 l_count := Item_LineType_Hold.COUNT;
942 Item_LineType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
943 Item_LineType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
944 Item_LineType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
945 Item_LineType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
946
947 IF NOT Item_LineType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
948 Item_LineType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
949 END IF;
950 END IF;
951 --ER#7479609 end
952
953 --ER#7479609 start
954
955 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'SM'
956 THEN
957 l_count := Item_ShipMethod_Hold.COUNT;
958 Item_ShipMethod_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
959 Item_ShipMethod_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
960 Item_ShipMethod_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
961 Item_ShipMethod_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
962
963 IF NOT Item_ShipMethod_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
964 Item_ShipMethod_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
965 END IF;
966
967 END IF;
968
969
970 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'D'
971 THEN
972 l_count := Item_Warehouse_Hold.COUNT;
973 Item_Deliverto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
974 Item_Deliverto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
975 Item_Deliverto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
976 Item_Deliverto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
977
978 IF NOT Item_Deliverto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
979 Item_Deliverto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
980 END IF;
981
982 END IF;
983
984 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'PL'
985 THEN
986 l_count := Item_PriceList_Hold.COUNT;
987 Item_PriceList_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
988 Item_PriceList_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
989 Item_PriceList_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
990 Item_PriceList_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
991
992 IF NOT Item_PriceList_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
993 Item_PriceList_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
994 END IF;
995
996 END IF;
997
998
999 IF T_HOLD_ENTITY_CODE(i) = 'I' AND T_HOLD_ENTITY_CODE2(i) = 'ST'
1000 THEN
1001 l_count := Item_SourceType_Hold.COUNT;
1002 Item_SourceType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1003 Item_SourceType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1004 Item_SourceType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1005 Item_SourceType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1006
1007 IF NOT Item_SourceType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1008 Item_SourceType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1009 END IF;
1010
1011 END IF;
1012
1013 --ER#7479609 end
1014 oe_debug_pub.add('Before Loading Ware House'); --ER#7479609 debug
1015 -- Load Warehouse Customer Hold Source
1016 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'C'
1017 THEN
1018 l_count := Warehouse_Customer_Hold.COUNT;
1019 Warehouse_Customer_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1020 Warehouse_Customer_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1021 Warehouse_Customer_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1022 Warehouse_Customer_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1023
1024 IF NOT Warehouse_Customer_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1025 Warehouse_Customer_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1026 END IF;
1027
1028 END IF;
1029
1030 --ER# 12571983 start
1031 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'EC'
1032 THEN
1033 l_count := Warehouse_EndCust_Hold.COUNT;
1034 Warehouse_EndCust_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1035 Warehouse_EndCust_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1036 Warehouse_EndCust_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1037 Warehouse_EndCust_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1038
1039 IF NOT Warehouse_EndCust_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1040 Warehouse_EndCust_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1041 END IF;
1042
1043 END IF;
1044 --ER# 12571983 end
1045
1046 -- Load Warehouse Shipto Hold Source
1047 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'S'
1048 THEN
1049 l_count := Warehouse_shipto_Hold.COUNT;
1050 Warehouse_Shipto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1051 Warehouse_Shipto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1052 Warehouse_Shipto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1053 Warehouse_Shipto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1054
1055 IF NOT Warehouse_Shipto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1056 Warehouse_Shipto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1057 END IF;
1058
1059 END IF;
1060
1061 -- Load Warehouse Billto Hold Source
1062 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'B'
1063 THEN
1064 l_count := Warehouse_Billto_hold.COUNT;
1065 Warehouse_Billto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1066 Warehouse_Billto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1067 Warehouse_Billto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1068 Warehouse_Billto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1069
1070 IF NOT Warehouse_Billto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1071 Warehouse_Billto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1072 END IF;
1073
1074 END IF;
1075
1076 --ER#7479609 start
1077
1078 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'LT'
1079 THEN
1080 l_count := Warehouse_LineType_Hold.COUNT;
1081 Warehouse_LineType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1082 Warehouse_LineType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1083 Warehouse_LineType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1084 Warehouse_LineType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1085
1086 IF NOT Warehouse_LineType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1087 Warehouse_LineType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1088 END IF;
1089
1090 END IF;
1091
1092 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'SM'
1093 THEN
1094 l_count := Warehouse_ShipMethod_Hold.COUNT;
1095 Warehouse_ShipMethod_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1096 Warehouse_ShipMethod_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1097 Warehouse_ShipMethod_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1098 Warehouse_ShipMethod_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1099
1100 IF NOT Warehouse_ShipMethod_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1101 Warehouse_ShipMethod_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1102 END IF;
1103
1104 END IF;
1105
1106 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'D'
1107 THEN
1108 l_count := Warehouse_Deliverto_Hold.COUNT;
1109 Warehouse_Deliverto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1110 Warehouse_Deliverto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1111 Warehouse_Deliverto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1112 Warehouse_Deliverto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1113
1114 IF NOT Warehouse_Deliverto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1115 Warehouse_Deliverto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1116 END IF;
1117
1118 END IF;
1119
1120 IF T_HOLD_ENTITY_CODE(i) = 'W' AND T_HOLD_ENTITY_CODE2(i) = 'ST'
1121 THEN
1122 l_count := Warehouse_SourceType_Hold.COUNT;
1123 Warehouse_SourceType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1124 Warehouse_SourceType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1125 Warehouse_SourceType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1126 Warehouse_SourceType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1127
1128 IF NOT Warehouse_SourceType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1129 Warehouse_SourceType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1130 END IF;
1131
1132 END IF;
1133
1134 --ER#7479609 end
1135
1136 --ER#7479609 start
1137 -- Misc
1138
1139
1140 IF T_HOLD_ENTITY_CODE(i) = 'PL' AND T_HOLD_ENTITY_CODE2(i) = 'TC'
1141 THEN
1142 l_count := PriceList_Curr_Hold.COUNT;
1143 PriceList_Curr_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1144 PriceList_Curr_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1145 PriceList_Curr_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1146 PriceList_Curr_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1147
1148 IF NOT PriceList_Curr_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1149 PriceList_Curr_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1150 END IF;
1151
1152 END IF;
1153
1154
1155 IF T_HOLD_ENTITY_CODE(i) = 'OT' AND T_HOLD_ENTITY_CODE2(i) = 'TC'
1156 THEN
1157 l_count := OrderType_Curr_Hold.COUNT;
1158 OrderType_Curr_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1159 OrderType_Curr_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1160 OrderType_Curr_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1161 OrderType_Curr_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1162
1163 IF NOT OrderType_Curr_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1164 OrderType_Curr_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1165 END IF;
1166
1167 END IF;
1168
1169
1170 IF T_HOLD_ENTITY_CODE(i) = 'OT' AND T_HOLD_ENTITY_CODE2(i) = 'LT'
1171 THEN
1172 l_count := OrderType_LineType_Hold.COUNT;
1173 OrderType_LineType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1174 OrderType_LineType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1175 OrderType_LineType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1176 OrderType_LineType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1177
1178 IF NOT OrderType_LineType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1179 OrderType_LineType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1183
1180 END IF;
1181
1182 END IF;
1184
1185 IF T_HOLD_ENTITY_CODE(i) = 'CD' AND T_HOLD_ENTITY_CODE2(i) = 'CB'
1186 THEN
1187 l_count := CreDate_CreBy_Hold.COUNT;
1188 CreDate_CreBy_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1189 CreDate_CreBy_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1190 CreDate_CreBy_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1191 CreDate_CreBy_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1192
1193 IF NOT CreDate_CreBy_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1194 CreDate_CreBy_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1195 END IF;
1196
1197 END IF;
1198
1199
1200 --ER#7479609 end
1201
1202 --ER# 13331078 START for 'IC'
1203
1204 --Item Category Hold
1205 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) IS NULL
1206 THEN
1207 l_count := ItemCat_Hold.COUNT;
1208 ItemCat_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1209 ItemCat_Hold(l_count+1).Entity_Id2 := NULL;
1210 ItemCat_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1211 ItemCat_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1212
1213 IF NOT ItemCat_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1214 ItemCat_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1215 END IF;
1216 END IF;
1217
1218 -- Load Item Category,Customer Hold Source
1219 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'C'
1220 THEN
1221 l_count := ItemCat_Customer_Hold.COUNT;
1222 ItemCat_Customer_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1223 ItemCat_Customer_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1224 ItemCat_Customer_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1225 ItemCat_Customer_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1226
1227 IF NOT ItemCat_Customer_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1228 ItemCat_Customer_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1229 END IF;
1230
1231 END IF;
1232
1233 --ER# 12571983 as well
1234 -- Load Item Category, End Customer Hold Source
1235 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'EC'
1236 THEN
1237 l_count := ItemCat_EndCust_Hold.COUNT;
1238 ItemCat_EndCust_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1239 ItemCat_EndCust_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1240 ItemCat_EndCust_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1241 ItemCat_EndCust_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1242
1243 IF NOT ItemCat_EndCust_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1244 ItemCat_EndCust_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1245 END IF;
1246
1247 END IF;
1248 --ER# 12571983 end
1249
1250 -- Load Item Category,Ship_To Hold Source
1251 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'S'
1252 THEN
1253 l_count := ItemCat_Shipto_Hold.COUNT;
1254 ItemCat_Shipto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1255 ItemCat_Shipto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1256 ItemCat_Shipto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1257 ItemCat_Shipto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1258
1259 IF NOT ItemCat_Shipto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1260 ItemCat_Shipto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1261 END IF;
1262
1263 END IF;
1264
1265 -- Load Item Category,Bill_To Hold Source
1266 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'B'
1267 THEN
1268 l_count := ItemCat_Billto_Hold.COUNT;
1269 ItemCat_Billto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1270 ItemCat_Billto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1271 ItemCat_Billto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1272 ItemCat_Billto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1273
1274 IF NOT ItemCat_Billto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1275 ItemCat_Billto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1276 END IF;
1277
1278 END IF;
1279
1280 -- Load Item Category,Warehouse Hold Source
1281 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'W'
1282 THEN
1283 l_count := ItemCat_Warehouse_Hold.COUNT;
1284 ItemCat_Warehouse_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1285 ItemCat_Warehouse_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1286 ItemCat_Warehouse_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1287 ItemCat_Warehouse_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1288
1289 IF NOT ItemCat_Warehouse_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1290 ItemCat_Warehouse_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1291 END IF;
1292
1293 END IF;
1294
1295
1296 -- Load Item Category,Linetype Hold Source
1297 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'LT'
1298 THEN
1299 l_count := ItemCat_LineType_Hold.COUNT;
1300 ItemCat_LineType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1301 ItemCat_LineType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1302 ItemCat_LineType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1303 ItemCat_LineType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1304
1305 IF NOT ItemCat_LineType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1306 ItemCat_LineType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1307 END IF;
1308 END IF;
1309
1313 THEN
1310 -- Load Item Category,Ship Method Hold Source
1311
1312 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'SM'
1314 l_count := ItemCat_ShipMethod_Hold.COUNT;
1315 ItemCat_ShipMethod_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1316 ItemCat_ShipMethod_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1317 ItemCat_ShipMethod_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1318 ItemCat_ShipMethod_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1319
1320 IF NOT ItemCat_ShipMethod_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1321 ItemCat_ShipMethod_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1322 END IF;
1323
1324 END IF;
1325
1326 -- Load Item Category,Deliver To Hold Source
1327 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'D'
1328 THEN
1329 l_count := ItemCat_Deliverto_Hold.COUNT;
1330 ItemCat_Deliverto_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1331 ItemCat_Deliverto_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1332 ItemCat_Deliverto_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1333 ItemCat_Deliverto_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1334
1335 IF NOT ItemCat_Deliverto_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1336 ItemCat_Deliverto_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1337 END IF;
1338
1339 END IF;
1340
1341 -- Load Item Category,Price List Hold Source
1342 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'PL'
1343 THEN
1344 l_count := ItemCat_PriceList_Hold.COUNT;
1345 ItemCat_PriceList_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1346 ItemCat_PriceList_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1347 ItemCat_PriceList_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1348 ItemCat_PriceList_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1349
1350 IF NOT ItemCat_PriceList_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1351 ItemCat_PriceList_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1352 END IF;
1353
1354 END IF;
1355
1356 -- Load Item Category,Source Type Hold Source
1357 IF T_HOLD_ENTITY_CODE(i) = 'IC' AND T_HOLD_ENTITY_CODE2(i) = 'ST'
1358 THEN
1359 l_count := ItemCat_SourceType_Hold.COUNT;
1360 ItemCat_SourceType_Hold(l_count+1).Entity_Id1 := T_HOLD_ENTITY_ID(i);
1361 ItemCat_SourceType_Hold(l_count+1).Entity_Id2 := T_HOLD_ENTITY_ID2(i);
1362 ItemCat_SourceType_Hold(l_count+1).Hold_Source_Id := T_HOLD_SOURCE_ID(i);
1363 ItemCat_SourceType_Hold(l_count+1).activity_name := T_HOLD_ACTIVITY_NAME(i);
1364
1365 IF NOT ItemCat_SourceType_Pointer.EXISTS(T_HOLD_ENTITY_ID(i)) THEN
1366 ItemCat_SourceType_Pointer(T_HOLD_ENTITY_ID(i)) := l_count+1;
1367 END IF;
1368
1369 END IF;
1370
1371 --ER# 13331078 END for 'IC'
1372
1373 END LOOP;
1374
1375 oe_debug_pub.add('Exitting OE_Bulk_Holds_PVT.Load_Hold_Sources'); --ER#7479609 debug
1376
1377 EXCEPTION
1378 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1379 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1380 WHEN OTHERS THEN
1381 OE_BULK_MSG_PUB.Add_Exc_Msg
1382 ( G_PKG_NAME
1383 , 'Load_Hold_Sources'
1384 );
1385 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1386 END Load_Hold_Sources;
1387
1388
1389
1390 --ER#7479609 start
1391 PROCEDURE Evaluate_Holds(
1392 p_header_rec IN OE_Order_PUB.Header_Rec_Type,
1393 p_line_rec IN OE_Order_PUB.Line_Rec_Type,
1394 p_check_only_warehouse_holds IN BOOLEAN := FALSE,
1395 p_on_generic_hold OUT NOCOPY BOOLEAN,
1396 p_on_booking_hold OUT NOCOPY BOOLEAN,
1397 p_on_scheduling_hold OUT NOCOPY BOOLEAN
1398 )
1399 IS
1400 i NUMBER;
1401 j NUMBER;
1402 l_activity_name VARCHAR2(30);
1403 l_inventory_item_id NUMBER;
1404
1405
1406 l_itemcategory_id NUMBER :=''; --ER# 13331078
1407
1408 --ER# 3667551 start
1409 l_credithold_syspar varchar2(10) := NVL(OE_SYS_PARAMETERS.value('ONT_CREDITHOLD_TYPE'),'S') ;
1410 l_custlin_hold CHAR := 'N';
1411 l_invoice_Custid NUMBER := 0;
1412 --ER# 3667551 end;
1413
1414 BEGIN
1415 oe_debug_pub.add('Entering OE_Bulk_Holds_PVT.Evaluate_Holds');
1416 oe_debug_pub.add('Header'||p_header_rec.header_id);
1417 oe_debug_pub.add('Line:'||p_line_rec.header_id||':'||p_line_rec.line_id);
1418
1419 -- Set the OUT parameter
1420 p_on_generic_hold := FALSE;
1421 p_on_booking_hold := FALSE;
1422 p_on_scheduling_hold := FALSE;
1423
1424 IF p_line_rec.line_id IS NULL THEN -- Header Level Holds
1425
1426 -- Check Customer Hold
1427 IF Customer_Pointer.EXISTS(p_header_rec.sold_to_org_id) THEN
1428
1429 j := Customer_Pointer(p_header_rec.sold_to_org_id);
1430 WHILE Customer_hold(j).Entity_Id1 = p_header_rec.sold_to_org_id
1431 LOOP
1432 --ER# 3667551 start, if System param set to 'BillToCustomerLine' then no header hold
1433 -- Also for Bill To Customer and Sold to Customer being same with parameter as 'BTH'
1434 -- applying hold is handled seperately below this section so no hold to be applied for BTH also here
1435 --
1436 If(l_credithold_syspar IN('BTL','BTH') AND Customer_hold(j).hold_id=1) then
1437 j := j+1; -- Increment counter so that next hold data is processed
1438 oe_debug_pub.add('Credit Hold TYpe System Parameter set to BillToCustomer, no header level hold');
1439 Else
1440 --ER# 3667551 end
1441 Mark_Hold(p_header_id => p_header_rec.header_id,
1442 p_line_id => NULL,
1443 p_line_number => NULL,
1444 p_hold_source_id => Customer_hold(j).hold_source_id,
1448 p_attribute => 'Customer',
1445 p_ship_set_name => NULL,
1446 p_arrival_set_name => NULL,
1447 p_activity_name => Customer_hold(j).activity_name,
1449 p_top_model_line_id => NULL
1450 );
1451 IF Customer_hold(j).activity_name IS NULL THEN
1452 p_on_generic_hold := TRUE;
1453 ELSIF Customer_hold(j).activity_name = 'BOOK_ORDER' THEN
1454 p_on_booking_hold := TRUE;
1455 END IF;
1456 j := j+1;
1457 End If; --ER# 3667551, added end if;
1458
1459 IF j > Customer_hold.COUNT THEN
1460 EXIT;
1461 END IF;
1462
1463 END LOOP;
1464
1465 END IF;
1466
1467 --ER# 3667551 start
1468 -- Check Customer Hold , for Credit Hold checking with System parameter "Apply Credit Hold Based On"
1469 --set to 'Bill To Customer Header'
1470 l_invoice_Custid:=CustAcctID_func(p_in_site_id => p_header_rec.invoice_to_org_id,
1471 p_out_IDfound=> l_custlin_hold);
1472
1473 IF l_custlin_hold='Y' and Customer_Pointer.EXISTS(l_invoice_Custid) THEN
1474
1475 j := Customer_Pointer(l_invoice_Custid);
1476
1477 WHILE Customer_hold(j).Entity_Id1 = l_invoice_Custid
1478 LOOP
1479
1480 If(l_credithold_syspar='BTH' AND Customer_hold(j).hold_id=1) then
1481
1482 Mark_Hold(p_header_id => p_header_rec.header_id,
1483 p_line_id => NULL,
1484 p_line_number => NULL,
1485 p_hold_source_id => Customer_hold(j).hold_source_id,
1486 p_ship_set_name => NULL,
1487 p_arrival_set_name => NULL,
1488 p_activity_name => Customer_hold(j).activity_name,
1489 p_attribute => 'Customer',
1490 p_top_model_line_id => NULL
1491 );
1492 IF Customer_hold(j).activity_name IS NULL THEN
1493 p_on_generic_hold := TRUE;
1494 ELSIF Customer_hold(j).activity_name = 'BOOK_ORDER' THEN
1495 p_on_booking_hold := TRUE;
1496 END IF;
1497 End If; -- end if of BTH check
1498 j := j+1;
1499 IF j > Customer_hold.COUNT THEN
1500 EXIT;
1501 END IF;
1502
1503 END LOOP;
1504
1505 END IF;
1506 --ER# 3667551 end
1507
1508
1509 --ER#7479609 start
1510
1511 -- Check Sales channel Hold
1512 IF SalesChannel_Pointer.EXISTS(p_header_rec.sales_channel_code) THEN
1513
1514 j := SalesChannel_Pointer(p_header_rec.sales_channel_code);
1515 WHILE SalesChannel_Hold(j).Entity_Id1 = p_header_rec.sales_channel_code
1516 LOOP
1517 Mark_Hold(p_header_id => p_header_rec.header_id,
1518 p_line_id => NULL,
1519 p_line_number => NULL,
1520 p_hold_source_id => SalesChannel_Hold(j).hold_source_id,
1521 p_ship_set_name => NULL,
1522 p_arrival_set_name => NULL,
1523 p_activity_name => SalesChannel_Hold(j).activity_name,
1524 p_attribute => 'Sales Channel',
1525 p_top_model_line_id => NULL
1526 );
1527 IF SalesChannel_Hold(j).activity_name IS NULL THEN
1528 p_on_generic_hold := TRUE;
1529 ELSIF SalesChannel_Hold(j).activity_name = 'BOOK_ORDER' THEN
1530 p_on_booking_hold := TRUE;
1531 END IF;
1532 j := j+1;
1533
1534 IF j > SalesChannel_Hold.COUNT THEN
1535 EXIT;
1536 END IF;
1537
1538 END LOOP;
1539
1540 END IF;
1541
1542 -- Check Payment Type Hold
1543 IF PaymentType_Pointer.EXISTS(p_header_rec.payment_type_code) THEN
1544
1545 j := PaymentType_Pointer(p_header_rec.payment_type_code);
1546 WHILE PaymentType_Hold(j).Entity_Id1 = p_header_rec.payment_type_code
1547 LOOP
1548 Mark_Hold(p_header_id => p_header_rec.header_id,
1549 p_line_id => NULL,
1550 p_line_number => NULL,
1551 p_hold_source_id => PaymentType_Hold(j).hold_source_id,
1552 p_ship_set_name => NULL,
1553 p_arrival_set_name => NULL,
1554 p_activity_name => PaymentType_Hold(j).activity_name,
1555 p_attribute => 'Payment Type',
1556 p_top_model_line_id => NULL
1557 );
1558 IF PaymentType_Hold(j).activity_name IS NULL THEN
1559 p_on_generic_hold := TRUE;
1560 ELSIF PaymentType_Hold(j).activity_name = 'BOOK_ORDER' THEN
1561 p_on_booking_hold := TRUE;
1562 END IF;
1563 j := j+1;
1564
1565 IF j > PaymentType_Hold.COUNT THEN
1566 EXIT;
1567 END IF;
1568
1569 END LOOP;
1570
1571 END IF;
1572
1573 -- Check Customer Order Type Holds
1574 IF p_header_rec.sold_to_org_id IS NOT NULL AND
1575 p_header_rec.order_type_id IS NOT NULL AND
1576 Cust_OrderType_Pointer.EXISTS(p_header_rec.sold_to_org_id)
1577 THEN
1578 j := Cust_OrderType_Pointer(p_header_rec.sold_to_org_id);
1579 WHILE Cust_OrderType_Hold(j).Entity_Id1 = p_header_rec.sold_to_org_id
1580 LOOP
1581
1582 IF Cust_OrderType_Hold(j).Entity_Id2 = p_header_rec.order_type_id
1583 THEN
1584 Mark_Hold(p_header_id => p_header_rec.header_id,
1585 p_line_id => NULL,
1586 p_line_number => NULL,
1590 p_activity_name => Cust_OrderType_Hold(j).activity_name,
1587 p_hold_source_id => Cust_OrderType_Hold(j).hold_source_id,
1588 p_ship_set_name => NULL,
1589 p_arrival_set_name => NULL,
1591 p_attribute => 'Customer/Order Type',
1592 p_top_model_line_id => NULL
1593 );
1594 IF Cust_OrderType_Hold(j).activity_name IS NULL THEN
1595 p_on_generic_hold := TRUE;
1596 ELSIF Cust_OrderType_Hold(j).activity_name = 'BOOK_ORDER' THEN
1597 p_on_booking_hold := TRUE;
1598 END IF;
1599
1600 END IF;
1601 j := j + 1;
1602
1603 IF j > Cust_OrderType_Hold.COUNT THEN
1604 EXIT;
1605 END IF;
1606
1607 END LOOP;
1608 END IF;
1609
1610
1611 -- Check Customer payment Type Holds
1612
1613 IF p_header_rec.sold_to_org_id IS NOT NULL AND
1614 p_header_rec.payment_type_code IS NOT NULL AND
1615 Cust_PaymentType_Pointer.EXISTS(p_header_rec.sold_to_org_id)
1616 THEN
1617 j := Cust_PaymentType_Pointer(p_header_rec.sold_to_org_id);
1618 WHILE Cust_PaymentType_Hold(j).Entity_Id1 = p_header_rec.sold_to_org_id
1619 LOOP
1620
1621 IF Cust_PaymentType_Hold(j).Entity_Id2 = p_header_rec.payment_type_code
1622 THEN
1623 Mark_Hold(p_header_id => p_header_rec.header_id,
1624 p_line_id => NULL,
1625 p_line_number => NULL,
1626 p_hold_source_id => Cust_PaymentType_Hold(j).hold_source_id,
1627 p_ship_set_name => NULL,
1628 p_arrival_set_name => NULL,
1629 p_activity_name => Cust_PaymentType_Hold(j).activity_name,
1630 p_attribute => 'Customer/Payment Type',
1631 p_top_model_line_id => NULL
1632 );
1633 IF Cust_PaymentType_Hold(j).activity_name IS NULL THEN
1634 p_on_generic_hold := TRUE;
1635 ELSIF Cust_PaymentType_Hold(j).activity_name = 'BOOK_ORDER' THEN
1636 p_on_booking_hold := TRUE;
1637 END IF;
1638
1639 END IF;
1640 j := j + 1;
1641
1642 IF j > Cust_PaymentType_Hold.COUNT THEN
1643 EXIT;
1644 END IF;
1645
1646 END LOOP;
1647 END IF;
1648
1649 -- Check Customer currency Holds
1650 IF p_header_rec.sold_to_org_id IS NOT NULL AND
1651 p_header_rec.transactional_curr_code IS NOT NULL AND
1652 Cust_Curr_Pointer.EXISTS(p_header_rec.sold_to_org_id)
1653 THEN
1654 j := Cust_Curr_Pointer(p_header_rec.sold_to_org_id);
1655 WHILE Cust_Curr_Hold(j).Entity_Id1 = p_header_rec.sold_to_org_id
1656 LOOP
1657
1658 IF Cust_Curr_Hold(j).Entity_Id2 = p_header_rec.transactional_curr_code
1659 THEN
1660 Mark_Hold(p_header_id => p_header_rec.header_id,
1661 p_line_id => NULL,
1662 p_line_number => NULL,
1663 p_hold_source_id => Cust_Curr_Hold(j).hold_source_id,
1664 p_ship_set_name => NULL,
1665 p_arrival_set_name => NULL,
1666 p_activity_name => Cust_Curr_Hold(j).activity_name,
1667 p_attribute => 'Customer/Currency',
1668 p_top_model_line_id => NULL
1669 );
1670 IF Cust_Curr_Hold(j).activity_name IS NULL THEN
1671 p_on_generic_hold := TRUE;
1672 ELSIF Cust_Curr_Hold(j).activity_name = 'BOOK_ORDER' THEN
1673 p_on_booking_hold := TRUE;
1674 END IF;
1675
1676 END IF;
1677 j := j + 1;
1678
1679 IF j > Cust_Curr_Hold.COUNT THEN
1680 EXIT;
1681 END IF;
1682
1683 END LOOP;
1684 END IF;
1685
1686 -- Check Customer Sales Channel Holds
1687 IF p_header_rec.sold_to_org_id IS NOT NULL AND
1688 p_header_rec.sales_channel_code IS NOT NULL AND
1689 Cust_SalesChannel_Pointer.EXISTS(p_header_rec.sold_to_org_id)
1690 THEN
1691 j := Cust_SalesChannel_Pointer(p_header_rec.sold_to_org_id);
1692 WHILE Cust_SalesChannel_Hold(j).Entity_Id1 = p_header_rec.sold_to_org_id
1693 LOOP
1694
1695 IF Cust_SalesChannel_Hold(j).Entity_Id2 = p_header_rec.sales_channel_code
1696 THEN
1697 Mark_Hold(p_header_id => p_header_rec.header_id,
1698 p_line_id => NULL,
1699 p_line_number => NULL,
1700 p_hold_source_id => Cust_SalesChannel_Hold(j).hold_source_id,
1701 p_ship_set_name => NULL,
1702 p_arrival_set_name => NULL,
1703 p_activity_name => Cust_SalesChannel_Hold(j).activity_name,
1704 p_attribute => 'Customer/Sales Channel',
1705 p_top_model_line_id => NULL
1706 );
1707 IF Cust_SalesChannel_Hold(j).activity_name IS NULL THEN
1708 p_on_generic_hold := TRUE;
1709 ELSIF Cust_SalesChannel_Hold(j).activity_name = 'BOOK_ORDER' THEN
1710 p_on_booking_hold := TRUE;
1711 END IF;
1712
1713 END IF;
1714 j := j + 1;
1715
1716 IF j > Cust_SalesChannel_Hold.COUNT THEN
1717 EXIT;
1718 END IF;
1719
1720 END LOOP;
1721 END IF;
1722
1723 --ER#7479609 end
1724 ELSE -- Line Level Holds
1725
1726 --ER# 13331078 start
1727 BEGIN
1731 mtl_default_category_sets mdc
1728 select mic.category_id
1729 into l_itemcategory_id
1730 from mtl_item_categories mic,
1732 where mic.inventory_item_id = p_line_rec.inventory_item_id
1733 and mic.organization_id = oe_sys_parameters.Value('MASTER_ORGANIZATION_ID') --13653352
1734 AND mdc.functional_area_id=7
1735 AND mdc.category_set_id = mic.category_set_id;
1736 EXCEPTION WHEN OTHERS THEN
1737 l_itemcategory_id := '';
1738 END;
1739
1740 --ER# 13331078 end
1741
1742
1743 IF p_check_only_warehouse_holds THEN
1744 GOTO Just_WareHouse_Holds;
1745 END IF;
1746
1747 --ER# 3667551 start
1748 -- Check Customer Hold at Line Level for Credit Hold Enabled with SystemParameter to BillTo
1749 -- check should be for hold source entry of Bill To Customer of Line
1750 l_invoice_Custid:=CustAcctID_func(p_in_site_id => p_line_rec.invoice_to_org_id,
1751 p_out_IDfound=> l_custlin_hold);
1752 --IF Customer_Pointer.EXISTS(p_line_rec.sold_to_org_id) THEN
1753 IF (Customer_Pointer.EXISTS(l_invoice_Custid) AND l_custlin_hold = 'Y') THEN
1754 j := Customer_Pointer(l_invoice_Custid);
1755 oe_debug_pub.add(' CH sold_to_org_id= ' ||p_line_rec.sold_to_org_id||'invoice_to_org_id= '||p_line_rec.invoice_to_org_id);
1756
1757 WHILE (Customer_hold(j).Entity_Id1 = l_invoice_Custid )
1758 LOOP
1759
1760 If(l_credithold_syspar='BTL' AND Customer_hold(j).hold_id=1) then
1761 Mark_Hold(p_header_id => p_line_rec.header_id,
1762 p_line_id => p_line_rec.line_id,
1763 p_line_number => p_line_rec.line_number,
1764 p_hold_source_id => Customer_hold(j).hold_source_id,
1765 p_ship_set_name => NULL,
1766 p_arrival_set_name => NULL,
1767 p_activity_name => Customer_hold(j).activity_name,
1768 p_attribute => 'Customer',
1769 p_top_model_line_id => p_line_rec.top_model_line_id
1770 );
1771
1772 IF Customer_hold(j).activity_name IS NULL THEN
1773 p_on_generic_hold := TRUE;
1774 ELSIF Customer_hold(j).activity_name = 'LINE_SCHEDULING' THEN
1775 p_on_scheduling_hold := TRUE;
1776 END IF;
1777
1778 END IF;
1779 j := j+1;
1780
1781 IF j > Customer_hold.COUNT THEN
1782 EXIT;
1783 END IF;
1784
1785 END LOOP;
1786 END IF;
1787 --ER# 3667551, END
1788
1789 -- Check Item Hold
1790 IF p_line_rec.inventory_item_id IS NOT NULL AND
1791 Item_Pointer.EXISTS(p_line_rec.inventory_item_id)
1792 THEN
1793 j := Item_Pointer(p_line_rec.inventory_item_id);
1794 WHILE item_hold(j).Entity_Id1 = p_line_rec.inventory_item_id
1795 LOOP
1796 Mark_Hold(p_header_id => p_line_rec.header_id,
1797 p_line_id => p_line_rec.line_id,
1798 p_line_number => p_line_rec.line_number,
1799 p_hold_source_id => Item_Hold(j).hold_source_id,
1800 p_ship_set_name => NULL,
1801 p_arrival_set_name => NULL,
1802 p_activity_name => Item_hold(j).activity_name,
1803 p_attribute => 'Item',
1804 p_top_model_line_id => p_line_rec.top_model_line_id
1805 );
1806 IF item_hold(j).activity_name IS NULL THEN
1807 p_on_generic_hold := TRUE;
1808 ELSIF item_hold(j).activity_name = 'LINE_SCHEDULING' THEN
1809 p_on_scheduling_hold := TRUE;
1810 END IF;
1811 j := j+1;
1812 IF j > Item_Hold.COUNT THEN
1813 EXIT;
1814 END IF;
1815
1816 END LOOP;
1817
1818 END IF;
1819
1820 -- Check Ship_To Hold
1821 IF p_line_rec.ship_to_org_id IS NOT NULL AND
1822 Ship_To_Pointer.EXISTS(p_line_rec.ship_to_org_id)
1823 THEN
1824 j := ship_to_Pointer(p_line_rec.ship_to_org_id);
1825 WHILE Ship_to_hold(j).Entity_Id1 = p_line_rec.ship_to_org_id
1826 LOOP
1827 Mark_Hold(p_header_id => p_line_rec.header_id,
1828 p_line_id => p_line_rec.line_id,
1829 p_line_number => p_line_rec.line_number,
1830 p_hold_source_id => Ship_to_Hold(j).hold_source_id,
1831 p_ship_set_name => NULL,
1832 p_arrival_set_name => NULL,
1833 p_activity_name => Ship_to_hold(j).activity_name,
1834 p_attribute => 'Ship to Site',
1835 p_top_model_line_id => p_line_rec.top_model_line_id
1836 );
1837 IF Ship_to_hold(j).activity_name IS NULL THEN
1838 p_on_generic_hold := TRUE;
1839 ELSIF Ship_to_hold(j).activity_name = 'LINE_SCHEDULING' THEN
1840 p_on_scheduling_hold := TRUE;
1841 END IF;
1842 j := j+1;
1843 IF j > Ship_to_Hold.COUNT THEN
1844 EXIT;
1845 END IF;
1846
1847 END LOOP;
1848
1849 END IF;
1850
1851 -- Check Bill_To Hold
1852 IF p_line_rec.invoice_to_org_id IS NOT NULL AND
1853 Bill_To_Pointer.EXISTS(p_line_rec.invoice_to_org_id)
1854 THEN
1855 j := Bill_To_Pointer(p_line_rec.invoice_to_org_id);
1856 WHILE Bill_To_hold(j).Entity_Id1 = p_line_rec.invoice_to_org_id
1857 LOOP
1858 Mark_Hold(p_header_id => p_line_rec.header_id,
1859 p_line_id => p_line_rec.line_id,
1860 p_line_number => p_line_rec.line_number,
1861 p_hold_source_id => Bill_To_hold(j).hold_source_id,
1862 p_ship_set_name => NULL,
1863 p_arrival_set_name => NULL,
1864 p_activity_name => Bill_To_hold(j).activity_name,
1868 IF Bill_To_hold(j).activity_name IS NULL THEN
1865 p_attribute => 'Bill to Site',
1866 p_top_model_line_id => p_line_rec.top_model_line_id
1867 );
1869 p_on_generic_hold := TRUE;
1870 ELSIF Bill_To_hold(j).activity_name = 'LINE_SCHEDULING' THEN
1871 p_on_scheduling_hold := TRUE;
1872 END IF;
1873 j := j+1;
1874 IF j > Bill_to_Hold.COUNT THEN
1875 EXIT;
1876 END IF;
1877
1878 END LOOP;
1879
1880 END IF;
1881
1882 --ER#7479609 start
1883
1884 -- Check Price List Hold
1885 IF p_line_rec.price_list_id IS NOT NULL AND
1886 PriceList_Pointer.EXISTS(p_line_rec.price_list_id)
1887 THEN
1888 j := PriceList_Pointer(p_line_rec.price_list_id);
1889 WHILE PriceList_Hold(j).Entity_Id1 = p_line_rec.price_list_id
1890 LOOP
1891 Mark_Hold(p_header_id => p_line_rec.header_id,
1892 p_line_id => p_line_rec.line_id,
1893 p_line_number => p_line_rec.line_number,
1894 p_hold_source_id => PriceList_Hold(j).hold_source_id,
1895 p_ship_set_name => NULL,
1896 p_arrival_set_name => NULL,
1897 p_activity_name => PriceList_Hold(j).activity_name,
1898 p_attribute => 'Price List',
1899 p_top_model_line_id => p_line_rec.top_model_line_id
1900 );
1901 IF PriceList_Hold(j).activity_name IS NULL THEN
1902 p_on_generic_hold := TRUE;
1903 ELSIF PriceList_Hold(j).activity_name = 'LINE_SCHEDULING' THEN
1904 p_on_scheduling_hold := TRUE;
1905 END IF;
1906 j := j+1;
1907 IF j > PriceList_Hold.COUNT THEN
1908 EXIT;
1909 END IF;
1910
1911 END LOOP;
1912
1913 END IF;
1914
1915 -- Check Order Type Hold
1916 IF p_header_rec.order_type_id IS NOT NULL AND
1917 OrderType_Pointer.EXISTS(p_header_rec.order_type_id)
1918 THEN
1919 j := OrderType_Pointer(p_header_rec.order_type_id);
1920 WHILE OrderType_Hold(j).Entity_Id1 = p_header_rec.order_type_id
1921 LOOP
1922 Mark_Hold(p_header_id => p_line_rec.header_id,
1923 p_line_id => p_line_rec.line_id,
1924 p_line_number => p_line_rec.line_number,
1925 p_hold_source_id => OrderType_Hold(j).hold_source_id,
1926 p_ship_set_name => NULL,
1927 p_arrival_set_name => NULL,
1928 p_activity_name => OrderType_Hold(j).activity_name,
1929 p_attribute => 'POrder Type',
1930 p_top_model_line_id => p_line_rec.top_model_line_id
1931 );
1932 IF OrderType_Hold(j).activity_name IS NULL THEN
1933 p_on_generic_hold := TRUE;
1934 ELSIF OrderType_Hold(j).activity_name = 'LINE_SCHEDULING' THEN
1935 p_on_scheduling_hold := TRUE;
1936 END IF;
1937 j := j+1;
1938 IF j > OrderType_Hold.COUNT THEN
1939 EXIT;
1940 END IF;
1941
1942 END LOOP;
1943
1944 END IF;
1945
1946 -- Check Creation Date Hold
1947 IF p_line_rec.creation_date IS NOT NULL AND
1948 CreationDate_Pointer.EXISTS(to_char(p_line_rec.creation_date,'DD-MON-RRRR'))
1949 THEN
1950 j := CreationDate_Pointer(to_char(p_line_rec.creation_date,'DD-MON-RRRR'));
1951 WHILE CreationDate_Hold(j).Entity_Id1 = to_char(p_line_rec.creation_date,'DD-MON-RRRR')
1952 LOOP
1953 Mark_Hold(p_header_id => p_line_rec.header_id,
1954 p_line_id => p_line_rec.line_id,
1955 p_line_number => p_line_rec.line_number,
1956 p_hold_source_id => CreationDate_Hold(j).hold_source_id,
1957 p_ship_set_name => NULL,
1958 p_arrival_set_name => NULL,
1959 p_activity_name => CreationDate_Hold(j).activity_name,
1960 p_attribute => 'Creation Date',
1961 p_top_model_line_id => p_line_rec.top_model_line_id
1962 );
1963 IF CreationDate_Hold(j).activity_name IS NULL THEN
1964 p_on_generic_hold := TRUE;
1965 ELSIF CreationDate_Hold(j).activity_name = 'LINE_SCHEDULING' THEN
1966 p_on_scheduling_hold := TRUE;
1967 END IF;
1968 j := j+1;
1969 IF j > CreationDate_Hold.COUNT THEN
1970 EXIT;
1971 END IF;
1972
1973 END LOOP;
1974
1975 END IF;
1976
1977
1978 -- Check Shipping Method Hold
1979 IF p_line_rec.shipping_method_code IS NOT NULL AND
1980 ShipMethod_Pointer.EXISTS(p_line_rec.shipping_method_code)
1981 THEN
1982 j := ShipMethod_Pointer(p_line_rec.shipping_method_code);
1983 WHILE ShipMethod_Hold(j).Entity_Id1 = p_line_rec.shipping_method_code
1984 LOOP
1985 Mark_Hold(p_header_id => p_line_rec.header_id,
1986 p_line_id => p_line_rec.line_id,
1987 p_line_number => p_line_rec.line_number,
1988 p_hold_source_id => ShipMethod_Hold(j).hold_source_id,
1989 p_ship_set_name => NULL,
1990 p_arrival_set_name => NULL,
1991 p_activity_name => ShipMethod_Hold(j).activity_name,
1992 p_attribute => 'Shipping Method',
1993 p_top_model_line_id => p_line_rec.top_model_line_id
1994 );
1995 IF ShipMethod_Hold(j).activity_name IS NULL THEN
1996 p_on_generic_hold := TRUE;
2000 j := j+1;
1997 ELSIF ShipMethod_Hold(j).activity_name = 'LINE_SCHEDULING' THEN
1998 p_on_scheduling_hold := TRUE;
1999 END IF;
2001 IF j > ShipMethod_Hold.COUNT THEN
2002 EXIT;
2003 END IF;
2004
2005 END LOOP;
2006
2007 END IF;
2008
2009
2010 --ER#7479609 end
2011
2012
2013 -- Check Item Customer Holds
2014 IF p_line_rec.inventory_item_id IS NOT NULL AND
2015 p_line_rec.sold_to_org_id IS NOT NULL AND
2016 Item_Customer_Pointer.EXISTS(p_line_rec.inventory_item_id)
2017 THEN
2018 j := Item_Customer_Pointer(p_line_rec.inventory_item_id);
2019 WHILE Item_Customer_hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2020 LOOP
2021
2022 IF Item_Customer_Hold(j).Entity_Id2 = p_line_rec.sold_to_org_id
2023 THEN
2024 Mark_Hold(p_header_id => p_line_rec.header_id,
2025 p_line_id => p_line_rec.line_id,
2026 p_line_number => p_line_rec.line_number,
2027 p_hold_source_id => Item_Customer_Hold(j).hold_source_id,
2028 p_ship_set_name => NULL,
2029 p_arrival_set_name => NULL,
2030 p_activity_name => Item_Customer_Hold(j).activity_name,
2031 p_attribute => 'Item\Customer',
2032 p_top_model_line_id => p_line_rec.top_model_line_id
2033 );
2034 IF Item_Customer_Hold(j).activity_name IS NULL THEN
2035 p_on_generic_hold := TRUE;
2036 ELSIF Item_Customer_Hold(j).activity_name = 'LINE_SCHEDULING'
2037 THEN
2038 p_on_scheduling_hold := TRUE;
2039 END IF;
2040
2041 END IF;
2042 j := j + 1;
2043
2044 IF j > Item_Customer_hold.COUNT THEN
2045 EXIT;
2046 END IF;
2047
2048 END LOOP;
2049 END IF;
2050
2051 -- Check Item Shipto Holds
2052 IF p_line_rec.inventory_item_id IS NOT NULL AND
2053 p_line_rec.ship_to_org_id IS NOT NULL AND
2054 Item_Shipto_Pointer.EXISTS(p_line_rec.inventory_item_id)
2055 THEN
2056 j := Item_shipto_Pointer(p_line_rec.inventory_item_id);
2057 WHILE Item_shipto_hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2058 LOOP
2059
2060 IF Item_shipto_Hold(j).Entity_Id2 = p_line_rec.ship_to_org_id
2061 THEN
2062 Mark_Hold(p_header_id => p_line_rec.header_id,
2063 p_line_id => p_line_rec.line_id,
2064 p_line_number => p_line_rec.line_number,
2065 p_hold_source_id => Item_shipto_Hold(j).hold_source_id,
2066 p_ship_set_name => NULL,
2067 p_arrival_set_name => NULL,
2068 p_activity_name => Item_shipto_Hold(j).activity_name,
2069 p_attribute => 'Item\Ship to Site',
2070 p_top_model_line_id => p_line_rec.top_model_line_id
2071 );
2072 IF Item_shipto_Hold(j).activity_name IS NULL THEN
2073 p_on_generic_hold := TRUE;
2074 ELSIF Item_shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
2075 THEN
2076 p_on_scheduling_hold := TRUE;
2077 END IF;
2078
2079 END IF;
2080 j := j + 1;
2081
2082 IF j > Item_shipto_hold.COUNT THEN
2083 EXIT;
2084 END IF;
2085
2086 END LOOP;
2087 END IF;
2088
2089 -- Check Item LineType Holds
2090 IF p_line_rec.inventory_item_id IS NOT NULL AND
2091 p_line_rec.line_type_id IS NOT NULL AND
2092 Item_LineType_Pointer.EXISTS(p_line_rec.inventory_item_id)
2093 THEN
2094 j := Item_LineType_Pointer(p_line_rec.inventory_item_id);
2095 WHILE Item_LineType_Hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2096 LOOP
2097
2098 IF Item_LineType_Hold(j).Entity_Id2 = p_line_rec.line_type_id
2099 THEN
2100 Mark_Hold(p_header_id => p_line_rec.header_id,
2101 p_line_id => p_line_rec.line_id,
2102 p_line_number => p_line_rec.line_number,
2103 p_hold_source_id => Item_LineType_Hold(j).hold_source_id,
2104 p_ship_set_name => NULL,
2105 p_arrival_set_name => NULL,
2106 p_activity_name => Item_LineType_Hold(j).activity_name,
2107 p_attribute => 'Item\Line Type',
2108 p_top_model_line_id => p_line_rec.top_model_line_id
2109 );
2110 IF Item_LineType_Hold(j).activity_name IS NULL THEN
2111 p_on_generic_hold := TRUE;
2112 ELSIF Item_LineType_Hold(j).activity_name = 'LINE_SCHEDULING'
2113 THEN
2114 p_on_scheduling_hold := TRUE;
2115 END IF;
2116
2117 END IF;
2118 j := j + 1;
2119
2120 IF j > Item_LineType_Hold.COUNT THEN
2121 EXIT;
2122 END IF;
2123
2124 END LOOP;
2125 END IF;
2126
2127 --ER#7479609 start
2128
2129
2130 -- Check Item Customer Holds
2131 IF p_line_rec.inventory_item_id IS NOT NULL AND
2132 p_line_rec.sold_to_org_id IS NOT NULL AND
2133 Item_Customer_Pointer.EXISTS(p_line_rec.inventory_item_id)
2134 THEN
2135 j := Item_Customer_Pointer(p_line_rec.inventory_item_id);
2136 WHILE Item_Customer_hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2140 THEN
2137 LOOP
2138
2139 IF Item_Customer_Hold(j).Entity_Id2 = p_line_rec.sold_to_org_id
2141 Mark_Hold(p_header_id => p_line_rec.header_id,
2142 p_line_id => p_line_rec.line_id,
2143 p_line_number => p_line_rec.line_number,
2144 p_hold_source_id => Item_Customer_Hold(j).hold_source_id,
2145 p_ship_set_name => NULL,
2146 p_arrival_set_name => NULL,
2147 p_activity_name => Item_Customer_Hold(j).activity_name,
2148 p_attribute => 'Item\Customer',
2149 p_top_model_line_id => p_line_rec.top_model_line_id
2150 );
2151 IF Item_Customer_Hold(j).activity_name IS NULL THEN
2152 p_on_generic_hold := TRUE;
2153 ELSIF Item_Customer_Hold(j).activity_name = 'LINE_SCHEDULING'
2154 THEN
2155 p_on_scheduling_hold := TRUE;
2156 END IF;
2157
2158 END IF;
2159 j := j + 1;
2160
2161 IF j > Item_Customer_hold.COUNT THEN
2162 EXIT;
2163 END IF;
2164
2165 END LOOP;
2166 END IF;
2167
2168 -- Check Item Ship Method Holds
2169 IF p_line_rec.inventory_item_id IS NOT NULL AND
2170 p_line_rec.shipping_method_code IS NOT NULL AND
2171 Item_ShipMethod_Pointer.EXISTS(p_line_rec.inventory_item_id)
2172 THEN
2173 j := Item_ShipMethod_Pointer(p_line_rec.inventory_item_id);
2174 WHILE Item_ShipMethod_Hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2175 LOOP
2176
2177 IF Item_ShipMethod_Hold(j).Entity_Id2 = p_line_rec.shipping_method_code
2178 THEN
2179 Mark_Hold(p_header_id => p_line_rec.header_id,
2180 p_line_id => p_line_rec.line_id,
2181 p_line_number => p_line_rec.line_number,
2182 p_hold_source_id => Item_ShipMethod_Hold(j).hold_source_id,
2183 p_ship_set_name => NULL,
2184 p_arrival_set_name => NULL,
2185 p_activity_name => Item_ShipMethod_Hold(j).activity_name,
2186 p_attribute => 'Item\Ship Method',
2187 p_top_model_line_id => p_line_rec.top_model_line_id
2188 );
2189 IF Item_ShipMethod_Hold(j).activity_name IS NULL THEN
2190 p_on_generic_hold := TRUE;
2191 ELSIF Item_ShipMethod_Hold(j).activity_name = 'LINE_SCHEDULING'
2192 THEN
2193 p_on_scheduling_hold := TRUE;
2194 END IF;
2195
2196 END IF;
2197 j := j + 1;
2198
2199 IF j > Item_ShipMethod_Hold.COUNT THEN
2200 EXIT;
2201 END IF;
2202
2203 END LOOP;
2204 END IF;
2205
2206 -- Check Item Deliver to Site Holds
2207 IF p_line_rec.inventory_item_id IS NOT NULL AND
2208 p_line_rec.deliver_to_org_id IS NOT NULL AND
2209 Item_Deliverto_Pointer.EXISTS(p_line_rec.inventory_item_id)
2210 THEN
2211 j := Item_Deliverto_Pointer(p_line_rec.inventory_item_id);
2212 WHILE Item_Deliverto_Hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2213 LOOP
2214
2215 IF Item_Deliverto_Hold(j).Entity_Id2 = p_line_rec.deliver_to_org_id
2216 THEN
2217 Mark_Hold(p_header_id => p_line_rec.header_id,
2218 p_line_id => p_line_rec.line_id,
2219 p_line_number => p_line_rec.line_number,
2220 p_hold_source_id => Item_Deliverto_Hold(j).hold_source_id,
2221 p_ship_set_name => NULL,
2222 p_arrival_set_name => NULL,
2223 p_activity_name => Item_Deliverto_Hold(j).activity_name,
2224 p_attribute => 'Item\Deliver to Site',
2225 p_top_model_line_id => p_line_rec.top_model_line_id
2226 );
2227 IF Item_Deliverto_Hold(j).activity_name IS NULL THEN
2228 p_on_generic_hold := TRUE;
2229 ELSIF Item_Deliverto_Hold(j).activity_name = 'LINE_SCHEDULING'
2230 THEN
2231 p_on_scheduling_hold := TRUE;
2232 END IF;
2233
2234 END IF;
2235 j := j + 1;
2236
2237 IF j > Item_Deliverto_Hold.COUNT THEN
2238 EXIT;
2239 END IF;
2240
2241 END LOOP;
2242 END IF;
2243
2244
2245 -- Check Item Price List Holds
2246 IF p_line_rec.inventory_item_id IS NOT NULL AND
2247 p_line_rec.price_list_id IS NOT NULL AND
2248 Item_PriceList_Pointer.EXISTS(p_line_rec.inventory_item_id)
2249 THEN
2250 j := Item_PriceList_Pointer(p_line_rec.inventory_item_id);
2251 WHILE Item_PriceList_Hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2252 LOOP
2253
2254 IF Item_PriceList_Hold(j).Entity_Id2 = p_line_rec.price_list_id
2255 THEN
2256 Mark_Hold(p_header_id => p_line_rec.header_id,
2257 p_line_id => p_line_rec.line_id,
2258 p_line_number => p_line_rec.line_number,
2259 p_hold_source_id => Item_PriceList_Hold(j).hold_source_id,
2260 p_ship_set_name => NULL,
2261 p_arrival_set_name => NULL,
2262 p_activity_name => Item_PriceList_Hold(j).activity_name,
2263 p_attribute => 'Item\Price List',
2264 p_top_model_line_id => p_line_rec.top_model_line_id
2265 );
2269 THEN
2266 IF Item_PriceList_Hold(j).activity_name IS NULL THEN
2267 p_on_generic_hold := TRUE;
2268 ELSIF Item_PriceList_Hold(j).activity_name = 'LINE_SCHEDULING'
2270 p_on_scheduling_hold := TRUE;
2271 END IF;
2272
2273 END IF;
2274 j := j + 1;
2275
2276 IF j > Item_PriceList_Hold.COUNT THEN
2277 EXIT;
2278 END IF;
2279
2280 END LOOP;
2281 END IF;
2282
2283
2284 -- Check Item Source Type Holds
2285 IF p_line_rec.inventory_item_id IS NOT NULL AND
2286 p_line_rec.source_type_code IS NOT NULL AND
2287 Item_SourceType_Pointer.EXISTS(p_line_rec.inventory_item_id)
2288 THEN
2289 j := Item_SourceType_Pointer(p_line_rec.inventory_item_id);
2290 WHILE Item_SourceType_Hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2291 LOOP
2292
2293 IF Item_SourceType_Hold(j).Entity_Id2 = p_line_rec.source_type_code
2294 THEN
2295 Mark_Hold(p_header_id => p_line_rec.header_id,
2296 p_line_id => p_line_rec.line_id,
2297 p_line_number => p_line_rec.line_number,
2298 p_hold_source_id => Item_SourceType_Hold(j).hold_source_id,
2299 p_ship_set_name => NULL,
2300 p_arrival_set_name => NULL,
2301 p_activity_name => Item_SourceType_Hold(j).activity_name,
2302 p_attribute => 'Item\Source Type',
2303 p_top_model_line_id => p_line_rec.top_model_line_id
2304 );
2305 IF Item_SourceType_Hold(j).activity_name IS NULL THEN
2306 p_on_generic_hold := TRUE;
2307 ELSIF Item_SourceType_Hold(j).activity_name = 'LINE_SCHEDULING'
2308 THEN
2309 p_on_scheduling_hold := TRUE;
2310 END IF;
2311
2312 END IF;
2313 j := j + 1;
2314
2315 IF j > Item_SourceType_Hold.COUNT THEN
2316 EXIT;
2317 END IF;
2318
2319 END LOOP;
2320 END IF;
2321
2322 --ER#7479609 end
2323
2324 -- Check Item BillTo Holds
2325 IF p_line_rec.inventory_item_id IS NOT NULL AND
2326 p_line_rec.invoice_to_org_id IS NOT NULL AND
2327 Item_Billto_Pointer.EXISTS(p_line_rec.inventory_item_id)
2328 THEN
2329 j := Item_billto_Pointer(p_line_rec.inventory_item_id);
2330 WHILE Item_billto_hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2331 LOOP
2332
2333 IF Item_billto_Hold(j).Entity_Id2 = p_line_rec.invoice_to_org_id
2334 THEN
2335 Mark_Hold(p_header_id => p_line_rec.header_id,
2336 p_line_id => p_line_rec.line_id,
2337 p_line_number => p_line_rec.line_number,
2338 p_hold_source_id => Item_billto_Hold(j).hold_source_id,
2339 p_ship_set_name => NULL,
2340 p_arrival_set_name => NULL,
2341 p_activity_name => Item_billto_Hold(j).activity_name,
2342 p_attribute => 'Item\Bill to Site',
2343 p_top_model_line_id => p_line_rec.top_model_line_id
2344 );
2345 IF Item_billto_Hold(j).activity_name IS NULL THEN
2346 p_on_generic_hold := TRUE;
2347 ELSIF Item_billto_Hold(j).activity_name = 'LINE_SCHEDULING'
2348 THEN
2349 p_on_scheduling_hold := TRUE;
2350 END IF;
2351
2352 END IF;
2353 j := j + 1;
2354
2355 IF j > Item_billto_hold.COUNT THEN
2356 EXIT;
2357 END IF;
2358
2359 END LOOP;
2360 END IF;
2361
2362 --ER#7479609 start
2363
2364 -- Check Customer Source Type Holds
2365 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2366 p_line_rec.source_type_code IS NOT NULL AND
2367 Cust_SourceType_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2368 THEN
2369 j := Cust_SourceType_Pointer(p_line_rec.sold_to_org_id);
2370 WHILE Cust_SourceType_Hold(j).Entity_Id1 = p_line_rec.sold_to_org_id
2371 LOOP
2372
2373 IF Cust_SourceType_Hold(j).Entity_Id2 = p_line_rec.source_type_code
2374 THEN
2375 Mark_Hold(p_header_id => p_line_rec.header_id,
2376 p_line_id => p_line_rec.line_id,
2377 p_line_number => p_line_rec.line_number,
2378 p_hold_source_id => Cust_SourceType_Hold(j).hold_source_id,
2379 p_ship_set_name => NULL,
2380 p_arrival_set_name => NULL,
2381 p_activity_name => Cust_SourceType_Hold(j).activity_name,
2382 p_attribute => 'Customer/Source Type',
2383 p_top_model_line_id => p_line_rec.top_model_line_id
2384 );
2385 IF Cust_SourceType_Hold(j).activity_name IS NULL THEN
2386 p_on_generic_hold := TRUE;
2387 ELSIF Cust_SourceType_Hold(j).activity_name = 'LINE_SCHEDULING'
2388 THEN
2389 p_on_scheduling_hold := TRUE;
2390 END IF;
2391
2392 END IF;
2393 j := j + 1;
2394
2395 IF j > Cust_SourceType_Hold.COUNT THEN
2396 EXIT;
2397 END IF;
2398
2399 END LOOP;
2400 END IF;
2401
2402 -- Check Customer Bill to Site Holds
2406 THEN
2403 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2404 p_line_rec.invoice_to_org_id IS NOT NULL AND
2405 Cust_Billto_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2407 j := Cust_Billto_Pointer(p_line_rec.sold_to_org_id);
2408 WHILE Cust_Billto_Hold(j).Entity_Id1 = p_line_rec.sold_to_org_id
2409 LOOP
2410
2411 IF Cust_Billto_Hold(j).Entity_Id2 = p_line_rec.invoice_to_org_id
2412 THEN
2413 Mark_Hold(p_header_id => p_line_rec.header_id,
2414 p_line_id => p_line_rec.line_id,
2415 p_line_number => p_line_rec.line_number,
2416 p_hold_source_id => Cust_Billto_Hold(j).hold_source_id,
2417 p_ship_set_name => NULL,
2418 p_arrival_set_name => NULL,
2419 p_activity_name => Cust_Billto_Hold(j).activity_name,
2420 p_attribute => 'Customer/Bill to Site',
2421 p_top_model_line_id => p_line_rec.top_model_line_id
2422 );
2423 IF Cust_Billto_Hold(j).activity_name IS NULL THEN
2424 p_on_generic_hold := TRUE;
2425 ELSIF Cust_Billto_Hold(j).activity_name = 'LINE_SCHEDULING'
2426 THEN
2427 p_on_scheduling_hold := TRUE;
2428 END IF;
2429
2430 END IF;
2431 j := j + 1;
2432
2433 IF j > Cust_Billto_Hold.COUNT THEN
2434 EXIT;
2435 END IF;
2436
2437 END LOOP;
2438 END IF;
2439
2440 -- Check Customer Ship to Site Holds
2441 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2442 p_line_rec.ship_to_org_id IS NOT NULL AND
2443 Cust_Shipto_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2444 THEN
2445 j := Cust_Shipto_Pointer(p_line_rec.sold_to_org_id);
2446 WHILE Cust_Shipto_Hold(j).Entity_Id1 = p_line_rec.sold_to_org_id
2447 LOOP
2448
2449 IF Cust_Shipto_Hold(j).Entity_Id2 = p_line_rec.ship_to_org_id
2450 THEN
2451 Mark_Hold(p_header_id => p_line_rec.header_id,
2452 p_line_id => p_line_rec.line_id,
2453 p_line_number => p_line_rec.line_number,
2454 p_hold_source_id => Cust_Shipto_Hold(j).hold_source_id,
2455 p_ship_set_name => NULL,
2456 p_arrival_set_name => NULL,
2457 p_activity_name => Cust_Shipto_Hold(j).activity_name,
2458 p_attribute => 'Customer/Ship to Site',
2459 p_top_model_line_id => p_line_rec.top_model_line_id
2460 );
2461 IF Cust_Shipto_Hold(j).activity_name IS NULL THEN
2462 p_on_generic_hold := TRUE;
2463 ELSIF Cust_Shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
2464 THEN
2465 p_on_scheduling_hold := TRUE;
2466 END IF;
2467
2468 END IF;
2469 j := j + 1;
2470
2471 IF j > Cust_Shipto_Hold.COUNT THEN
2472 EXIT;
2473 END IF;
2474
2475 END LOOP;
2476 END IF;
2477
2478
2479 -- Check Customer Deliver to Site Holds
2480 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2481 p_line_rec.deliver_to_org_id IS NOT NULL AND
2482 Cust_Deliverto_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2483 THEN
2484 j := Cust_Deliverto_Pointer(p_line_rec.sold_to_org_id);
2485 WHILE Cust_Deliverto_Hold(j).Entity_Id1 = p_line_rec.deliver_to_org_id
2486 LOOP
2487
2488 IF Cust_Deliverto_Hold(j).Entity_Id2 = p_line_rec.ship_to_org_id
2489 THEN
2490 Mark_Hold(p_header_id => p_line_rec.header_id,
2491 p_line_id => p_line_rec.line_id,
2492 p_line_number => p_line_rec.line_number,
2493 p_hold_source_id => Cust_Deliverto_Hold(j).hold_source_id,
2494 p_ship_set_name => NULL,
2495 p_arrival_set_name => NULL,
2496 p_activity_name => Cust_Deliverto_Hold(j).activity_name,
2497 p_attribute => 'Customer/Deliver to Site',
2498 p_top_model_line_id => p_line_rec.top_model_line_id
2499 );
2500 IF Cust_Deliverto_Hold(j).activity_name IS NULL THEN
2501 p_on_generic_hold := TRUE;
2502 ELSIF Cust_Deliverto_Hold(j).activity_name = 'LINE_SCHEDULING'
2503 THEN
2504 p_on_scheduling_hold := TRUE;
2505 END IF;
2506
2507 END IF;
2508 j := j + 1;
2509
2510 IF j > Cust_Deliverto_Hold.COUNT THEN
2511 EXIT;
2512 END IF;
2513
2514 END LOOP;
2515 END IF;
2516
2517
2518 -- Check Customer Price List Holds
2519 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2520 p_line_rec.price_list_id IS NOT NULL AND
2521 Cust_PriceList_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2522 THEN
2523 j := Cust_PriceList_Pointer(p_line_rec.sold_to_org_id);
2524 WHILE Cust_PriceList_Hold(j).Entity_Id1 = p_line_rec.deliver_to_org_id
2525 LOOP
2526
2527 IF Cust_PriceList_Hold(j).Entity_Id2 = p_line_rec.price_list_id
2528 THEN
2529 Mark_Hold(p_header_id => p_line_rec.header_id,
2530 p_line_id => p_line_rec.line_id,
2531 p_line_number => p_line_rec.line_number,
2532 p_hold_source_id => Cust_PriceList_Hold(j).hold_source_id,
2533 p_ship_set_name => NULL,
2534 p_arrival_set_name => NULL,
2538 );
2535 p_activity_name => Cust_PriceList_Hold(j).activity_name,
2536 p_attribute => 'Customer/Price List',
2537 p_top_model_line_id => p_line_rec.top_model_line_id
2539 IF Cust_PriceList_Hold(j).activity_name IS NULL THEN
2540 p_on_generic_hold := TRUE;
2541 ELSIF Cust_PriceList_Hold(j).activity_name = 'LINE_SCHEDULING'
2542 THEN
2543 p_on_scheduling_hold := TRUE;
2544 END IF;
2545
2546 END IF;
2547 j := j + 1;
2548
2549 IF j > Cust_PriceList_Hold.COUNT THEN
2550 EXIT;
2551 END IF;
2552
2553 END LOOP;
2554 END IF;
2555
2556 -- Check Customer Line type Holds
2557 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2558 p_line_rec.line_type_id IS NOT NULL AND
2559 Cust_LineType_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2560 THEN
2561 j := Cust_LineType_Pointer(p_line_rec.sold_to_org_id);
2562 WHILE Cust_LineType_Hold(j).Entity_Id1 = p_line_rec.deliver_to_org_id
2563 LOOP
2564
2565 IF Cust_LineType_Hold(j).Entity_Id2 = p_line_rec.line_type_id
2566 THEN
2567 Mark_Hold(p_header_id => p_line_rec.header_id,
2568 p_line_id => p_line_rec.line_id,
2569 p_line_number => p_line_rec.line_number,
2570 p_hold_source_id => Cust_LineType_Hold(j).hold_source_id,
2571 p_ship_set_name => NULL,
2572 p_arrival_set_name => NULL,
2573 p_activity_name => Cust_LineType_Hold(j).activity_name,
2574 p_attribute => 'Customer/Line Type',
2575 p_top_model_line_id => p_line_rec.top_model_line_id
2576 );
2577 IF Cust_LineType_Hold(j).activity_name IS NULL THEN
2578 p_on_generic_hold := TRUE;
2579 ELSIF Cust_LineType_Hold(j).activity_name = 'LINE_SCHEDULING'
2580 THEN
2581 p_on_scheduling_hold := TRUE;
2582 END IF;
2583
2584 END IF;
2585 j := j + 1;
2586
2587 IF j > Cust_LineType_Hold.COUNT THEN
2588 EXIT;
2589 END IF;
2590
2591 END LOOP;
2592 END IF;
2593
2594 -- Check Customer Payment term Holds
2595 IF p_line_rec.sold_to_org_id IS NOT NULL AND
2596 p_line_rec.payment_term_id IS NOT NULL AND
2597 Cust_PayTerm_Pointer.EXISTS(p_line_rec.sold_to_org_id)
2598 THEN
2599 j := Cust_PayTerm_Pointer(p_line_rec.sold_to_org_id);
2600 WHILE Cust_PayTerm_Hold(j).Entity_Id1 = p_line_rec.deliver_to_org_id
2601 LOOP
2602
2603 IF Cust_PayTerm_Hold(j).Entity_Id2 = p_line_rec.payment_term_id
2604 THEN
2605 Mark_Hold(p_header_id => p_line_rec.header_id,
2606 p_line_id => p_line_rec.line_id,
2607 p_line_number => p_line_rec.line_number,
2608 p_hold_source_id => Cust_PayTerm_Hold(j).hold_source_id,
2609 p_ship_set_name => NULL,
2610 p_arrival_set_name => NULL,
2611 p_activity_name => Cust_PayTerm_Hold(j).activity_name,
2612 p_attribute => 'Customer/Payment Term',
2613 p_top_model_line_id => p_line_rec.top_model_line_id
2614 );
2615 IF Cust_PayTerm_Hold(j).activity_name IS NULL THEN
2616 p_on_generic_hold := TRUE;
2617 ELSIF Cust_PayTerm_Hold(j).activity_name = 'LINE_SCHEDULING'
2618 THEN
2619 p_on_scheduling_hold := TRUE;
2620 END IF;
2621
2622 END IF;
2623 j := j + 1;
2624
2625 IF j > Cust_PayTerm_Hold.COUNT THEN
2626 EXIT;
2627 END IF;
2628
2629 END LOOP;
2630 END IF;
2631
2632
2633 -- Check Order Type Line Type Holds
2634 IF p_header_rec.order_type_id IS NOT NULL AND
2635 p_line_rec.line_type_id IS NOT NULL AND
2636 OrderType_LineType_Pointer.EXISTS(p_header_rec.order_type_id)
2637 THEN
2638 j := OrderType_LineType_Pointer(p_header_rec.order_type_id);
2639 WHILE OrderType_LineType_Hold(j).Entity_Id1 = p_header_rec.order_type_id
2640 LOOP
2641
2642 IF OrderType_LineType_Hold(j).Entity_Id2 = p_line_rec.line_type_id
2643 THEN
2644 Mark_Hold(p_header_id => p_line_rec.header_id,
2645 p_line_id => p_line_rec.line_id,
2646 p_line_number => p_line_rec.line_number,
2647 p_hold_source_id => OrderType_LineType_Hold(j).hold_source_id,
2648 p_ship_set_name => NULL,
2649 p_arrival_set_name => NULL,
2650 p_activity_name => OrderType_LineType_Hold(j).activity_name,
2651 p_attribute => 'Order Type/Line Type',
2652 p_top_model_line_id => p_line_rec.top_model_line_id
2653 );
2654 IF OrderType_LineType_Hold(j).activity_name IS NULL THEN
2655 p_on_generic_hold := TRUE;
2656 ELSIF OrderType_LineType_Hold(j).activity_name = 'LINE_SCHEDULING'
2657 THEN
2658 p_on_scheduling_hold := TRUE;
2659 END IF;
2660
2661 END IF;
2662 j := j + 1;
2663
2664 IF j > OrderType_LineType_Hold.COUNT THEN
2665 EXIT;
2666 END IF;
2667
2668 END LOOP;
2669 END IF;
2670
2671
2675 CreDate_CreBy_Pointer.EXISTS(to_char(p_line_rec.creation_date,'DD-MON-RRRR'))
2672 -- Check Creation date/Creation By Holds
2673 IF p_line_rec.creation_date IS NOT NULL AND
2674 p_line_rec.created_by IS NOT NULL AND
2676 THEN
2677 j := CreDate_CreBy_Pointer(to_char(p_line_rec.creation_date,'DD-MON-RRRR'));
2678 WHILE CreDate_CreBy_Hold(j).Entity_Id1 = to_char(p_line_rec.creation_date,'DD-MON-RRRR')
2679 LOOP
2680
2681 IF CreDate_CreBy_Hold(j).Entity_Id2 = p_line_rec.created_by
2682 THEN
2683 Mark_Hold(p_header_id => p_line_rec.header_id,
2684 p_line_id => p_line_rec.line_id,
2685 p_line_number => p_line_rec.line_number,
2686 p_hold_source_id => CreDate_CreBy_Hold(j).hold_source_id,
2687 p_ship_set_name => NULL,
2688 p_arrival_set_name => NULL,
2689 p_activity_name => CreDate_CreBy_Hold(j).activity_name,
2690 p_attribute => 'Creation Date/Creation By',
2691 p_top_model_line_id => p_line_rec.top_model_line_id
2692 );
2693 IF CreDate_CreBy_Hold(j).activity_name IS NULL THEN
2694 p_on_generic_hold := TRUE;
2695 ELSIF CreDate_CreBy_Hold(j).activity_name = 'LINE_SCHEDULING'
2696 THEN
2697 p_on_scheduling_hold := TRUE;
2698 END IF;
2699
2700 END IF;
2701 j := j + 1;
2702
2703 IF j > CreDate_CreBy_Hold.COUNT THEN
2704 EXIT;
2705 END IF;
2706
2707 END LOOP;
2708 END IF;
2709
2710
2711 --ER#7479609 end
2712 --ER# 12571983 start
2713 -- Check EndCustomer Holds
2714 IF EndCust_Pointer.EXISTS(p_line_rec.end_customer_id) THEN
2715
2716 j := EndCust_Pointer(p_line_rec.end_customer_id);
2717 WHILE EndCust_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2718 LOOP
2719 Mark_Hold(p_header_id => p_line_rec.header_id,
2720 p_line_id => p_line_rec.line_id,
2721 p_line_number => p_line_rec.line_number,
2722 p_hold_source_id => EndCust_Hold(j).hold_source_id,
2723 p_ship_set_name => NULL,
2724 p_arrival_set_name => NULL,
2725 p_activity_name => EndCust_Hold(j).activity_name,
2726 p_attribute => 'End Customer',
2727 p_top_model_line_id => p_line_rec.top_model_line_id
2728 );
2729 IF EndCust_Hold(j).activity_name IS NULL THEN
2730 p_on_generic_hold := TRUE;
2731 ELSIF EndCust_Hold(j).activity_name = 'LINE_SCHEDULING'
2732 THEN
2733 p_on_scheduling_hold := TRUE;
2734 END IF;
2735 j := j+1;
2736
2737 IF j > EndCust_Hold.COUNT THEN
2738 EXIT;
2739 END IF;
2740
2741 END LOOP;
2742
2743 END IF;
2744
2745 -- Check End Customer, Order Type Holds
2746 IF p_line_rec.end_customer_id IS NOT NULL AND
2747 p_header_rec.order_type_id IS NOT NULL AND
2748 EndCust_OrderType_Pointer.EXISTS(p_line_rec.end_customer_id)
2749 THEN
2750 j := EndCust_OrderType_Pointer(p_line_rec.end_customer_id);
2751
2752 WHILE EndCust_OrderType_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2753 LOOP
2754 IF EndCust_OrderType_Hold(j).Entity_Id2 = p_header_rec.order_type_id
2755 THEN
2756 Mark_Hold(p_header_id => p_line_rec.header_id,
2757 p_line_id => p_line_rec.line_id,
2758 p_line_number => p_line_rec.line_number,
2759 p_hold_source_id => EndCust_OrderType_Hold(j).hold_source_id,
2760 p_ship_set_name => NULL,
2761 p_arrival_set_name => NULL,
2762 p_activity_name => EndCust_OrderType_Hold(j).activity_name,
2763 p_attribute => 'End Customer/Order Type',
2764 p_top_model_line_id => p_line_rec.top_model_line_id
2765 );
2766 IF EndCust_OrderType_Hold(j).activity_name IS NULL THEN
2767 p_on_generic_hold := TRUE;
2768 ELSIF EndCust_OrderType_Hold(j).activity_name = 'LINE_SCHEDULING'
2769 THEN
2770 p_on_scheduling_hold := TRUE;
2771 END IF;
2772
2773 END IF;
2774 j := j + 1;
2775
2776 IF j > EndCust_OrderType_Hold.COUNT THEN
2777 EXIT;
2778 END IF;
2779
2780 END LOOP;
2781 END IF;
2782
2783
2784 -- Check End Customer, payment Type Holds
2785
2786 IF p_line_rec.end_customer_id IS NOT NULL AND
2787 p_header_rec.payment_type_code IS NOT NULL AND
2788 EndCust_PaymentType_Pointer.EXISTS(p_line_rec.end_customer_id)
2789 THEN
2790 j := EndCust_PaymentType_Pointer(p_line_rec.end_customer_id);
2791 WHILE EndCust_PaymentType_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2792 LOOP
2793
2794 IF EndCust_PaymentType_Hold(j).Entity_Id2 = p_header_rec.payment_type_code
2795 THEN
2796 Mark_Hold(p_header_id => p_line_rec.header_id,
2797 p_line_id => p_line_rec.line_id,
2798 p_line_number => p_line_rec.line_number,
2799 p_hold_source_id => EndCust_PaymentType_Hold(j).hold_source_id,
2800 p_ship_set_name => NULL,
2801 p_arrival_set_name => NULL,
2802 p_activity_name => EndCust_PaymentType_Hold(j).activity_name,
2806 IF EndCust_PaymentType_Hold(j).activity_name IS NULL THEN
2803 p_attribute => 'End Customer/Payment Type',
2804 p_top_model_line_id => p_line_rec.top_model_line_id
2805 );
2807 p_on_generic_hold := TRUE;
2808 ELSIF EndCust_PaymentType_Hold(j).activity_name = 'LINE_SCHEDULING'
2809 THEN
2810 p_on_scheduling_hold := TRUE;
2811 END IF;
2812
2813 END IF;
2814 j := j + 1;
2815
2816 IF j > EndCust_PaymentType_Hold.COUNT THEN
2817 EXIT;
2818 END IF;
2819
2820 END LOOP;
2821 END IF;
2822
2823 -- Check End Customer, currency Holds
2824 IF p_line_rec.end_customer_id IS NOT NULL AND
2825 p_header_rec.transactional_curr_code IS NOT NULL AND
2826 EndCust_Curr_Pointer.EXISTS(p_line_rec.end_customer_id)
2827 THEN
2828 j := EndCust_Curr_Pointer(p_line_rec.end_customer_id);
2829 WHILE EndCust_Curr_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2830 LOOP
2831
2832 IF EndCust_Curr_Hold(j).Entity_Id2 = p_header_rec.transactional_curr_code
2833 THEN
2834 Mark_Hold(p_header_id => p_line_rec.header_id,
2835 p_line_id => p_line_rec.line_id,
2836 p_line_number => p_line_rec.line_number,
2837 p_hold_source_id => EndCust_Curr_Hold(j).hold_source_id,
2838 p_ship_set_name => NULL,
2839 p_arrival_set_name => NULL,
2840 p_activity_name => EndCust_Curr_Hold(j).activity_name,
2841 p_attribute => 'End Customer/Currency',
2842 p_top_model_line_id => p_line_rec.top_model_line_id
2843 );
2844 IF EndCust_Curr_Hold(j).activity_name IS NULL THEN
2845 p_on_generic_hold := TRUE;
2846 ELSIF EndCust_Curr_Hold(j).activity_name = 'LINE_SCHEDULING'
2847 THEN
2848 p_on_scheduling_hold := TRUE;
2849 END IF;
2850
2851 END IF;
2852 j := j + 1;
2853
2854 IF j > EndCust_Curr_Hold.COUNT THEN
2855 EXIT;
2856 END IF;
2857
2858 END LOOP;
2859 END IF;
2860
2861 -- Check End Customer, Sales Channel Holds
2862 IF p_line_rec.end_customer_id IS NOT NULL AND
2863 p_header_rec.sales_channel_code IS NOT NULL AND
2864 EndCust_SalesChannel_Pointer.EXISTS(p_line_rec.end_customer_id)
2865 THEN
2866 j := EndCust_SalesChannel_Pointer(p_line_rec.end_customer_id);
2867 WHILE EndCust_SalesChannel_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2868 LOOP
2869
2870 IF EndCust_SalesChannel_Hold(j).Entity_Id2 = p_header_rec.sales_channel_code
2871 THEN
2872 Mark_Hold(p_header_id => p_line_rec.header_id,
2873 p_line_id => p_line_rec.line_id,
2874 p_line_number => p_line_rec.line_number,
2875 p_hold_source_id => EndCust_SalesChannel_Hold(j).hold_source_id,
2876 p_ship_set_name => NULL,
2877 p_arrival_set_name => NULL,
2878 p_activity_name => EndCust_SalesChannel_Hold(j).activity_name,
2879 p_attribute => 'End Customer/Sales Channel',
2880 p_top_model_line_id => p_line_rec.top_model_line_id
2881 );
2882 IF EndCust_SalesChannel_Hold(j).activity_name IS NULL THEN
2883 p_on_generic_hold := TRUE;
2884 ELSIF EndCust_SalesChannel_Hold(j).activity_name = 'LINE_SCHEDULING'
2885 THEN
2886 p_on_scheduling_hold := TRUE;
2887 END IF;
2888
2889 END IF;
2890 j := j + 1;
2891
2892 IF j > EndCust_SalesChannel_Hold.COUNT THEN
2893 EXIT;
2894 END IF;
2895
2896 END LOOP;
2897 END IF;
2898
2899 -- Check End Customer, End Customer Location Holds
2900 IF p_line_rec.end_customer_id IS NOT NULL AND
2901 p_line_rec.end_customer_site_use_id IS NOT NULL AND
2902 EndCust_EndCustLoc_Pointer.EXISTS(p_line_rec.end_customer_id)
2903 THEN
2904 j := EndCust_EndCustLoc_Pointer(p_line_rec.end_customer_id);
2905 WHILE EndCust_EndCustLoc_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2906 LOOP
2907
2908 IF EndCust_EndCustLoc_Hold(j).Entity_Id2 = p_line_rec.end_customer_site_use_id
2909 THEN
2910 Mark_Hold(p_header_id => p_line_rec.header_id,
2911 p_line_id => p_line_rec.line_id,
2912 p_line_number => p_line_rec.line_number,
2913 p_hold_source_id => EndCust_EndCustLoc_Hold(j).hold_source_id,
2914 p_ship_set_name => NULL,
2915 p_arrival_set_name => NULL,
2916 p_activity_name => EndCust_EndCustLoc_Hold(j).activity_name,
2917 p_attribute => 'End Customer/End Customer Location',
2918 p_top_model_line_id => p_line_rec.top_model_line_id
2919 );
2920 IF EndCust_EndCustLoc_Hold(j).activity_name IS NULL THEN
2921 p_on_generic_hold := TRUE;
2922 ELSIF EndCust_EndCustLoc_Hold(j).activity_name = 'LINE_SCHEDULING'
2923 THEN
2924 p_on_scheduling_hold := TRUE;
2925 END IF;
2926
2927 END IF;
2928 j := j + 1;
2929
2930 IF j > EndCust_EndCustLoc_Hold.COUNT THEN
2931 EXIT;
2932 END IF;
2933
2934 END LOOP;
2935 END IF;
2936
2937 -- Check Item, EndCustomer Holds
2938 IF p_line_rec.inventory_item_id IS NOT NULL AND
2939 p_line_rec.end_customer_id IS NOT NULL AND
2940 Item_EndCust_Pointer.EXISTS(p_line_rec.inventory_item_id)
2941 THEN
2942 j := Item_EndCust_Pointer(p_line_rec.inventory_item_id);
2943 WHILE Item_EndCust_Hold(j).Entity_Id1 = p_line_rec.inventory_item_id
2944 LOOP
2945
2946 IF Item_EndCust_Hold(j).Entity_Id2 = p_line_rec.end_customer_id
2947 THEN
2948 Mark_Hold(p_header_id => p_line_rec.header_id,
2949 p_line_id => p_line_rec.line_id,
2950 p_line_number => p_line_rec.line_number,
2951 p_hold_source_id => Item_EndCust_Hold(j).hold_source_id,
2952 p_ship_set_name => NULL,
2953 p_arrival_set_name => NULL,
2954 p_activity_name => Item_EndCust_Hold(j).activity_name,
2955 p_attribute => 'Item\End Customer',
2956 p_top_model_line_id => p_line_rec.top_model_line_id
2957 );
2958 IF Item_EndCust_Hold(j).activity_name IS NULL THEN
2959 p_on_generic_hold := TRUE;
2960 ELSIF Item_EndCust_Hold(j).activity_name = 'LINE_SCHEDULING'
2961 THEN
2962 p_on_scheduling_hold := TRUE;
2963 END IF;
2964
2965 END IF;
2966 j := j + 1;
2967
2968 IF j > Item_EndCust_Hold.COUNT THEN
2969 EXIT;
2970 END IF;
2971
2972 END LOOP;
2973 END IF;
2974
2975 -- Check End Customer, Source Type Holds
2976 IF p_line_rec.end_customer_id IS NOT NULL AND
2977 p_line_rec.source_type_code IS NOT NULL AND
2978 EndCust_SourceType_Pointer.EXISTS(p_line_rec.end_customer_id)
2979 THEN
2980 j := EndCust_SourceType_Pointer(p_line_rec.end_customer_id);
2981 WHILE EndCust_SourceType_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
2982 LOOP
2983
2984 IF EndCust_SourceType_Hold(j).Entity_Id2 = p_line_rec.source_type_code
2985 THEN
2986 Mark_Hold(p_header_id => p_line_rec.header_id,
2987 p_line_id => p_line_rec.line_id,
2988 p_line_number => p_line_rec.line_number,
2989 p_hold_source_id => EndCust_SourceType_Hold(j).hold_source_id,
2990 p_ship_set_name => NULL,
2991 p_arrival_set_name => NULL,
2992 p_activity_name => EndCust_SourceType_Hold(j).activity_name,
2993 p_attribute => 'End Customer/Source Type',
2994 p_top_model_line_id => p_line_rec.top_model_line_id
2995 );
2996 IF EndCust_SourceType_Hold(j).activity_name IS NULL THEN
2997 p_on_generic_hold := TRUE;
2998 ELSIF EndCust_SourceType_Hold(j).activity_name = 'LINE_SCHEDULING'
2999 THEN
3000 p_on_scheduling_hold := TRUE;
3001 END IF;
3002
3003 END IF;
3004 j := j + 1;
3005
3006 IF j > EndCust_SourceType_Hold.COUNT THEN
3007 EXIT;
3008 END IF;
3009
3010 END LOOP;
3011 END IF;
3012
3013 -- Check End Customer, Bill to Site Holds
3014 IF p_line_rec.end_customer_id IS NOT NULL AND
3015 p_line_rec.invoice_to_org_id IS NOT NULL AND
3016 EndCust_Billto_Pointer.EXISTS(p_line_rec.end_customer_id)
3017 THEN
3018 j := EndCust_Billto_Pointer(p_line_rec.end_customer_id);
3019 WHILE EndCust_Billto_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
3020 LOOP
3021
3022 IF EndCust_Billto_Hold(j).Entity_Id2 = p_line_rec.invoice_to_org_id
3023 THEN
3024 Mark_Hold(p_header_id => p_line_rec.header_id,
3025 p_line_id => p_line_rec.line_id,
3026 p_line_number => p_line_rec.line_number,
3027 p_hold_source_id => EndCust_Billto_Hold(j).hold_source_id,
3028 p_ship_set_name => NULL,
3029 p_arrival_set_name => NULL,
3030 p_activity_name => EndCust_Billto_Hold(j).activity_name,
3031 p_attribute => 'End Customer/Bill to Site',
3032 p_top_model_line_id => p_line_rec.top_model_line_id
3033 );
3034 IF EndCust_Billto_Hold(j).activity_name IS NULL THEN
3035 p_on_generic_hold := TRUE;
3036 ELSIF EndCust_Billto_Hold(j).activity_name = 'LINE_SCHEDULING'
3037 THEN
3038 p_on_scheduling_hold := TRUE;
3039 END IF;
3040
3041 END IF;
3042 j := j + 1;
3043
3044 IF j > EndCust_Billto_Hold.COUNT THEN
3045 EXIT;
3046 END IF;
3047
3048 END LOOP;
3049 END IF;
3050
3051 -- Check End Customer, Ship to Site Holds
3052 IF p_line_rec.end_customer_id IS NOT NULL AND
3053 p_line_rec.ship_to_org_id IS NOT NULL AND
3054 EndCust_Shipto_Pointer.EXISTS(p_line_rec.end_customer_id)
3055 THEN
3056 j := EndCust_Shipto_Pointer(p_line_rec.end_customer_id);
3057 WHILE EndCust_Shipto_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
3058 LOOP
3059
3060 IF EndCust_Shipto_Hold(j).Entity_Id2 = p_line_rec.ship_to_org_id
3061 THEN
3062 Mark_Hold(p_header_id => p_line_rec.header_id,
3063 p_line_id => p_line_rec.line_id,
3064 p_line_number => p_line_rec.line_number,
3065 p_hold_source_id => EndCust_Shipto_Hold(j).hold_source_id,
3066 p_ship_set_name => NULL,
3067 p_arrival_set_name => NULL,
3068 p_activity_name => EndCust_Shipto_Hold(j).activity_name,
3069 p_attribute => 'End Customer/Ship to Site',
3070 p_top_model_line_id => p_line_rec.top_model_line_id
3071 );
3072 IF EndCust_Shipto_Hold(j).activity_name IS NULL THEN
3073 p_on_generic_hold := TRUE;
3074 ELSIF EndCust_Shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
3075 THEN
3076 p_on_scheduling_hold := TRUE;
3077 END IF;
3078
3079 END IF;
3080 j := j + 1;
3081
3082 IF j > EndCust_Shipto_Hold.COUNT THEN
3083 EXIT;
3084 END IF;
3085
3086 END LOOP;
3087 END IF;
3088
3089
3090 -- Check End Customer, Deliver to Site Holds
3091 IF p_line_rec.end_customer_id IS NOT NULL AND
3092 p_line_rec.deliver_to_org_id IS NOT NULL AND
3093 EndCust_Deliverto_Pointer.EXISTS(p_line_rec.end_customer_id)
3094 THEN
3095 j := EndCust_Deliverto_Pointer(p_line_rec.end_customer_id);
3096 WHILE EndCust_Deliverto_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
3097 LOOP
3098
3099 IF EndCust_Deliverto_Hold(j).Entity_Id2 = p_line_rec.deliver_to_org_id
3100 THEN
3101 Mark_Hold(p_header_id => p_line_rec.header_id,
3102 p_line_id => p_line_rec.line_id,
3103 p_line_number => p_line_rec.line_number,
3104 p_hold_source_id => EndCust_Deliverto_Hold(j).hold_source_id,
3105 p_ship_set_name => NULL,
3106 p_arrival_set_name => NULL,
3107 p_activity_name => EndCust_Deliverto_Hold(j).activity_name,
3108 p_attribute => 'End Customer/Deliver to Site',
3109 p_top_model_line_id => p_line_rec.top_model_line_id
3110 );
3111 IF EndCust_Deliverto_Hold(j).activity_name IS NULL THEN
3112 p_on_generic_hold := TRUE;
3113 ELSIF EndCust_Deliverto_Hold(j).activity_name = 'LINE_SCHEDULING'
3114 THEN
3115 p_on_scheduling_hold := TRUE;
3116 END IF;
3117
3118 END IF;
3119 j := j + 1;
3120
3121 IF j > EndCust_Deliverto_Hold.COUNT THEN
3122 EXIT;
3123 END IF;
3124
3125 END LOOP;
3126 END IF;
3127
3128
3129 -- Check End Customer, Price List Holds
3130 IF p_line_rec.end_customer_id IS NOT NULL AND
3131 p_line_rec.price_list_id IS NOT NULL AND
3132 EndCust_PriceList_Pointer.EXISTS(p_line_rec.end_customer_id)
3133 THEN
3134 j := EndCust_PriceList_Pointer(p_line_rec.end_customer_id);
3135 WHILE EndCust_PriceList_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
3136 LOOP
3137
3138 IF EndCust_PriceList_Hold(j).Entity_Id2 = p_line_rec.price_list_id
3139 THEN
3140 Mark_Hold(p_header_id => p_line_rec.header_id,
3141 p_line_id => p_line_rec.line_id,
3142 p_line_number => p_line_rec.line_number,
3143 p_hold_source_id => EndCust_PriceList_Hold(j).hold_source_id,
3144 p_ship_set_name => NULL,
3145 p_arrival_set_name => NULL,
3146 p_activity_name => EndCust_PriceList_Hold(j).activity_name,
3147 p_attribute => 'End Customer/Price List',
3148 p_top_model_line_id => p_line_rec.top_model_line_id
3149 );
3150 IF EndCust_PriceList_Hold(j).activity_name IS NULL THEN
3151 p_on_generic_hold := TRUE;
3152 ELSIF EndCust_PriceList_Hold(j).activity_name = 'LINE_SCHEDULING'
3153 THEN
3154 p_on_scheduling_hold := TRUE;
3155 END IF;
3156
3157 END IF;
3158 j := j + 1;
3159
3160 IF j > EndCust_PriceList_Hold.COUNT THEN
3161 EXIT;
3162 END IF;
3163
3164 END LOOP;
3165 END IF;
3166
3167 -- Check End Customer, Line type Holds
3168 IF p_line_rec.end_customer_id IS NOT NULL AND
3169 p_line_rec.line_type_id IS NOT NULL AND
3170 EndCust_LineType_Pointer.EXISTS(p_line_rec.end_customer_id)
3171 THEN
3172 j := EndCust_LineType_Pointer(p_line_rec.end_customer_id);
3173 WHILE EndCust_LineType_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
3174 LOOP
3175
3176 IF EndCust_LineType_Hold(j).Entity_Id2 = p_line_rec.line_type_id
3177 THEN
3178 Mark_Hold(p_header_id => p_line_rec.header_id,
3179 p_line_id => p_line_rec.line_id,
3180 p_line_number => p_line_rec.line_number,
3181 p_hold_source_id => EndCust_LineType_Hold(j).hold_source_id,
3182 p_ship_set_name => NULL,
3183 p_arrival_set_name => NULL,
3184 p_activity_name => EndCust_LineType_Hold(j).activity_name,
3185 p_attribute => 'End Customer/Line Type',
3186 p_top_model_line_id => p_line_rec.top_model_line_id
3187 );
3188 IF EndCust_LineType_Hold(j).activity_name IS NULL THEN
3189 p_on_generic_hold := TRUE;
3190 ELSIF EndCust_LineType_Hold(j).activity_name = 'LINE_SCHEDULING'
3191 THEN
3192 p_on_scheduling_hold := TRUE;
3193 END IF;
3194
3195 END IF;
3196 j := j + 1;
3197
3198 IF j > EndCust_LineType_Hold.COUNT THEN
3199 EXIT;
3200 END IF;
3201
3202 END LOOP;
3203 END IF;
3204
3205 -- Check EndCustomer, Payment term Holds
3206 IF p_line_rec.end_customer_id IS NOT NULL AND
3207 p_line_rec.payment_term_id IS NOT NULL AND
3208 EndCust_PayTerm_Pointer.EXISTS(p_line_rec.end_customer_id)
3209 THEN
3210 j := EndCust_PayTerm_Pointer(p_line_rec.end_customer_id);
3211 WHILE EndCust_PayTerm_Hold(j).Entity_Id1 = p_line_rec.end_customer_id
3212 LOOP
3213
3214 IF EndCust_PayTerm_Hold(j).Entity_Id2 = p_line_rec.payment_term_id
3215 THEN
3216 Mark_Hold(p_header_id => p_line_rec.header_id,
3217 p_line_id => p_line_rec.line_id,
3218 p_line_number => p_line_rec.line_number,
3219 p_hold_source_id => EndCust_PayTerm_Hold(j).hold_source_id,
3220 p_ship_set_name => NULL,
3221 p_arrival_set_name => NULL,
3222 p_activity_name => EndCust_PayTerm_Hold(j).activity_name,
3223 p_attribute => 'End Customer/Payment Term',
3224 p_top_model_line_id => p_line_rec.top_model_line_id
3225 );
3226 IF EndCust_PayTerm_Hold(j).activity_name IS NULL THEN
3227 p_on_generic_hold := TRUE;
3228 ELSIF EndCust_PayTerm_Hold(j).activity_name = 'LINE_SCHEDULING'
3229 THEN
3230 p_on_scheduling_hold := TRUE;
3231 END IF;
3232
3233 END IF;
3234 j := j + 1;
3235
3236 IF j > EndCust_PayTerm_Hold.COUNT THEN
3237 EXIT;
3238 END IF;
3239
3240 END LOOP;
3241 END IF;
3242 --ER# 12571983 end
3243
3244 --ER# 13331078 START added for 'IC'
3245 -- Check Item Category Hold
3246 IF l_itemcategory_id IS NOT NULL AND
3247 ItemCat_Pointer.EXISTS(l_itemcategory_id)
3248 THEN
3249 j := ItemCat_Pointer(l_itemcategory_id);
3250 WHILE ItemCat_Hold(j).Entity_Id1 = l_itemcategory_id
3251 LOOP
3252 Mark_Hold(p_header_id => p_line_rec.header_id,
3253 p_line_id => p_line_rec.line_id,
3254 p_line_number => p_line_rec.line_number,
3255 p_hold_source_id => ItemCat_Hold(j).hold_source_id,
3256 p_ship_set_name => NULL,
3257 p_arrival_set_name => NULL,
3258 p_activity_name => ItemCat_Hold(j).activity_name,
3259 p_attribute => 'ItemCategory',
3260 p_top_model_line_id => p_line_rec.top_model_line_id
3261 );
3262 IF ItemCat_Hold(j).activity_name IS NULL THEN
3263 p_on_generic_hold := TRUE;
3264 ELSIF ItemCat_Hold(j).activity_name = 'LINE_SCHEDULING' THEN
3265 p_on_scheduling_hold := TRUE;
3266 END IF;
3267 j := j+1;
3268 IF j > ItemCat_Hold.COUNT THEN
3269 EXIT;
3270 END IF;
3271
3272 END LOOP;
3273
3274 END IF;
3275
3276 -- Check Item Category,Customer Holds
3277 IF l_itemcategory_id IS NOT NULL AND
3278 p_line_rec.sold_to_org_id IS NOT NULL AND
3279 ItemCat_Customer_Pointer.EXISTS(l_itemcategory_id)
3280 THEN
3281 j := ItemCat_Customer_Pointer(l_itemcategory_id);
3282 WHILE ItemCat_Customer_Hold(j).Entity_Id1 = l_itemcategory_id
3283 LOOP
3284
3285 IF ItemCat_Customer_Hold(j).Entity_Id2 = p_line_rec.sold_to_org_id
3286 THEN
3287 Mark_Hold(p_header_id => p_line_rec.header_id,
3288 p_line_id => p_line_rec.line_id,
3289 p_line_number => p_line_rec.line_number,
3290 p_hold_source_id => ItemCat_Customer_Hold(j).hold_source_id,
3291 p_ship_set_name => NULL,
3292 p_arrival_set_name => NULL,
3293 p_activity_name => ItemCat_Customer_Hold(j).activity_name,
3294 p_attribute => 'ItemCategory\Customer',
3295 p_top_model_line_id => p_line_rec.top_model_line_id
3296 );
3297 IF ItemCat_Customer_Hold(j).activity_name IS NULL THEN
3298 p_on_generic_hold := TRUE;
3299 ELSIF ItemCat_Customer_Hold(j).activity_name = 'LINE_SCHEDULING'
3300 THEN
3301 p_on_scheduling_hold := TRUE;
3302 END IF;
3303
3304 END IF;
3305 j := j + 1;
3306
3307 IF j > ItemCat_Customer_Hold.COUNT THEN
3308 EXIT;
3309 END IF;
3310
3311 END LOOP;
3312 END IF;
3313
3314
3315 -- Check Item Category,Shipto Holds
3316 IF l_itemcategory_id IS NOT NULL AND
3317 p_line_rec.ship_to_org_id IS NOT NULL AND
3318 ItemCat_shipto_Pointer.EXISTS(l_itemcategory_id)
3319 THEN
3320 j := ItemCat_shipto_Pointer(l_itemcategory_id);
3321 WHILE ItemCat_shipto_Hold(j).Entity_Id1 = l_itemcategory_id
3322 LOOP
3323
3324 IF ItemCat_shipto_Hold(j).Entity_Id2 = p_line_rec.ship_to_org_id
3325 THEN
3326 Mark_Hold(p_header_id => p_line_rec.header_id,
3327 p_line_id => p_line_rec.line_id,
3328 p_line_number => p_line_rec.line_number,
3329 p_hold_source_id => ItemCat_shipto_Hold(j).hold_source_id,
3330 p_ship_set_name => NULL,
3331 p_arrival_set_name => NULL,
3332 p_activity_name => ItemCat_shipto_Hold(j).activity_name,
3333 p_attribute => 'ItemCategory\Ship to Site',
3334 p_top_model_line_id => p_line_rec.top_model_line_id
3335 );
3336 IF ItemCat_shipto_Hold(j).activity_name IS NULL THEN
3337 p_on_generic_hold := TRUE;
3338 ELSIF ItemCat_shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
3339 THEN
3340 p_on_scheduling_hold := TRUE;
3341 END IF;
3342
3343 END IF;
3344 j := j + 1;
3345
3346 IF j > ItemCat_shipto_Hold.COUNT THEN
3347 EXIT;
3348 END IF;
3349
3350 END LOOP;
3351 END IF;
3352
3353 -- Check Item Category,LineType Holds
3354 IF l_itemcategory_id IS NOT NULL AND
3355 p_line_rec.line_type_id IS NOT NULL AND
3356 ItemCat_LineType_Pointer.EXISTS(l_itemcategory_id)
3357 THEN
3361
3358 j := ItemCat_LineType_Pointer(l_itemcategory_id);
3359 WHILE ItemCat_LineType_Hold(j).Entity_Id1 = l_itemcategory_id
3360 LOOP
3362 IF ItemCat_LineType_Hold(j).Entity_Id2 = p_line_rec.line_type_id
3363 THEN
3364 Mark_Hold(p_header_id => p_line_rec.header_id,
3365 p_line_id => p_line_rec.line_id,
3366 p_line_number => p_line_rec.line_number,
3367 p_hold_source_id => ItemCat_LineType_Hold(j).hold_source_id,
3368 p_ship_set_name => NULL,
3369 p_arrival_set_name => NULL,
3370 p_activity_name => ItemCat_LineType_Hold(j).activity_name,
3371 p_attribute => 'ItemCategory\Line Type',
3372 p_top_model_line_id => p_line_rec.top_model_line_id
3373 );
3374 IF ItemCat_LineType_Hold(j).activity_name IS NULL THEN
3375 p_on_generic_hold := TRUE;
3376 ELSIF ItemCat_LineType_Hold(j).activity_name = 'LINE_SCHEDULING'
3377 THEN
3378 p_on_scheduling_hold := TRUE;
3379 END IF;
3380
3381 END IF;
3382 j := j + 1;
3383
3384 IF j > ItemCat_LineType_Hold.COUNT THEN
3385 EXIT;
3386 END IF;
3387
3388 END LOOP;
3389 END IF;
3390
3391
3392 -- Check Item Category,Ship Method Holds
3393 IF l_itemcategory_id IS NOT NULL AND
3394 p_line_rec.shipping_method_code IS NOT NULL AND
3395 ItemCat_ShipMethod_Pointer.EXISTS(l_itemcategory_id)
3396 THEN
3397 j := ItemCat_ShipMethod_Pointer(l_itemcategory_id);
3398 WHILE ItemCat_ShipMethod_Hold(j).Entity_Id1 = l_itemcategory_id
3399 LOOP
3400
3401 IF ItemCat_ShipMethod_Hold(j).Entity_Id2 = p_line_rec.shipping_method_code
3402 THEN
3403 Mark_Hold(p_header_id => p_line_rec.header_id,
3404 p_line_id => p_line_rec.line_id,
3405 p_line_number => p_line_rec.line_number,
3406 p_hold_source_id => ItemCat_ShipMethod_Hold(j).hold_source_id,
3407 p_ship_set_name => NULL,
3408 p_arrival_set_name => NULL,
3409 p_activity_name => ItemCat_ShipMethod_Hold(j).activity_name,
3410 p_attribute => 'ItemCategory\Ship Method',
3411 p_top_model_line_id => p_line_rec.top_model_line_id
3412 );
3413 IF ItemCat_ShipMethod_Hold(j).activity_name IS NULL THEN
3414 p_on_generic_hold := TRUE;
3415 ELSIF ItemCat_ShipMethod_Hold(j).activity_name = 'LINE_SCHEDULING'
3416 THEN
3417 p_on_scheduling_hold := TRUE;
3418 END IF;
3419
3420 END IF;
3421 j := j + 1;
3422
3423 IF j > ItemCat_ShipMethod_Hold.COUNT THEN
3424 EXIT;
3425 END IF;
3426
3427 END LOOP;
3428 END IF;
3429
3430 -- Check Item Category,Deliver to Site Holds
3431 IF l_itemcategory_id IS NOT NULL AND
3432 p_line_rec.deliver_to_org_id IS NOT NULL AND
3433 ItemCat_Deliverto_Pointer.EXISTS(l_itemcategory_id)
3434 THEN
3435 j := ItemCat_Deliverto_Pointer(l_itemcategory_id);
3436 WHILE ItemCat_Deliverto_Hold(j).Entity_Id1 = l_itemcategory_id
3437 LOOP
3438
3439 IF ItemCat_Deliverto_Hold(j).Entity_Id2 = p_line_rec.deliver_to_org_id
3440 THEN
3441 Mark_Hold(p_header_id => p_line_rec.header_id,
3442 p_line_id => p_line_rec.line_id,
3443 p_line_number => p_line_rec.line_number,
3444 p_hold_source_id => ItemCat_Deliverto_Hold(j).hold_source_id,
3445 p_ship_set_name => NULL,
3446 p_arrival_set_name => NULL,
3447 p_activity_name => ItemCat_Deliverto_Hold(j).activity_name,
3448 p_attribute => 'ItemCategory\Deliver to Site',
3449 p_top_model_line_id => p_line_rec.top_model_line_id
3450 );
3451 IF ItemCat_Deliverto_Hold(j).activity_name IS NULL THEN
3452 p_on_generic_hold := TRUE;
3453 ELSIF ItemCat_Deliverto_Hold(j).activity_name = 'LINE_SCHEDULING'
3454 THEN
3455 p_on_scheduling_hold := TRUE;
3456 END IF;
3457
3458 END IF;
3459 j := j + 1;
3460
3461 IF j > ItemCat_Deliverto_Hold.COUNT THEN
3462 EXIT;
3463 END IF;
3464
3465 END LOOP;
3466 END IF;
3467
3468
3469 -- Check Item Category,Price List Holds
3470 IF l_itemcategory_id IS NOT NULL AND
3471 p_line_rec.price_list_id IS NOT NULL AND
3472 ItemCat_PriceList_Pointer.EXISTS(l_itemcategory_id)
3473 THEN
3474 j := ItemCat_PriceList_Pointer(l_itemcategory_id);
3475 WHILE ItemCat_PriceList_Hold(j).Entity_Id1 = l_itemcategory_id
3476 LOOP
3477
3478 IF ItemCat_PriceList_Hold(j).Entity_Id2 = p_line_rec.price_list_id
3479 THEN
3480 Mark_Hold(p_header_id => p_line_rec.header_id,
3481 p_line_id => p_line_rec.line_id,
3482 p_line_number => p_line_rec.line_number,
3483 p_hold_source_id => ItemCat_PriceList_Hold(j).hold_source_id,
3484 p_ship_set_name => NULL,
3485 p_arrival_set_name => NULL,
3486 p_activity_name => ItemCat_PriceList_Hold(j).activity_name,
3487 p_attribute => 'ItemCategory\Price List',
3488 p_top_model_line_id => p_line_rec.top_model_line_id
3489 );
3490 IF ItemCat_PriceList_Hold(j).activity_name IS NULL THEN
3491 p_on_generic_hold := TRUE;
3492 ELSIF ItemCat_PriceList_Hold(j).activity_name = 'LINE_SCHEDULING'
3493 THEN
3494 p_on_scheduling_hold := TRUE;
3495 END IF;
3496
3497 END IF;
3498 j := j + 1;
3499
3500 IF j > ItemCat_PriceList_Hold.COUNT THEN
3501 EXIT;
3502 END IF;
3503
3504 END LOOP;
3505 END IF;
3506
3507
3508 -- Check Item Category,Source Type Holds
3509 IF l_itemcategory_id IS NOT NULL AND
3510 p_line_rec.source_type_code IS NOT NULL AND
3511 ItemCat_SourceType_Pointer.EXISTS(l_itemcategory_id)
3512 THEN
3513 j := ItemCat_SourceType_Pointer(l_itemcategory_id);
3514 WHILE ItemCat_SourceType_Hold(j).Entity_Id1 = l_itemcategory_id
3515 LOOP
3516
3517 IF ItemCat_SourceType_Hold(j).Entity_Id2 = p_line_rec.source_type_code
3518 THEN
3519 Mark_Hold(p_header_id => p_line_rec.header_id,
3520 p_line_id => p_line_rec.line_id,
3521 p_line_number => p_line_rec.line_number,
3522 p_hold_source_id => ItemCat_SourceType_Hold(j).hold_source_id,
3523 p_ship_set_name => NULL,
3524 p_arrival_set_name => NULL,
3525 p_activity_name => ItemCat_SourceType_Hold(j).activity_name,
3526 p_attribute => 'ItemCategory\Source Type',
3527 p_top_model_line_id => p_line_rec.top_model_line_id
3528 );
3532 THEN
3529 IF ItemCat_SourceType_Hold(j).activity_name IS NULL THEN
3530 p_on_generic_hold := TRUE;
3531 ELSIF ItemCat_SourceType_Hold(j).activity_name = 'LINE_SCHEDULING'
3533 p_on_scheduling_hold := TRUE;
3534 END IF;
3535
3536 END IF;
3537 j := j + 1;
3538
3539 IF j > ItemCat_SourceType_Hold.COUNT THEN
3540 EXIT;
3541 END IF;
3542
3543 END LOOP;
3544 END IF;
3545
3546
3547 -- Check Item Category,BillTo Holds
3548 IF l_itemcategory_id IS NOT NULL AND
3549 p_line_rec.invoice_to_org_id IS NOT NULL AND
3550 ItemCat_Billto_Pointer.EXISTS(l_itemcategory_id)
3551 THEN
3552 j := ItemCat_Billto_Pointer(l_itemcategory_id);
3553 WHILE ItemCat_Billto_Hold(j).Entity_Id1 = l_itemcategory_id
3554 LOOP
3555
3556 IF ItemCat_Billto_Hold(j).Entity_Id2 = p_line_rec.invoice_to_org_id
3557 THEN
3558 Mark_Hold(p_header_id => p_line_rec.header_id,
3559 p_line_id => p_line_rec.line_id,
3560 p_line_number => p_line_rec.line_number,
3561 p_hold_source_id => ItemCat_Billto_Hold(j).hold_source_id,
3562 p_ship_set_name => NULL,
3563 p_arrival_set_name => NULL,
3564 p_activity_name => ItemCat_Billto_Hold(j).activity_name,
3565 p_attribute => 'ItemCategory\Bill to Site',
3566 p_top_model_line_id => p_line_rec.top_model_line_id
3567 );
3568 IF ItemCat_Billto_Hold(j).activity_name IS NULL THEN
3569 p_on_generic_hold := TRUE;
3570 ELSIF ItemCat_Billto_Hold(j).activity_name = 'LINE_SCHEDULING'
3571 THEN
3572 p_on_scheduling_hold := TRUE;
3573 END IF;
3574
3575 END IF;
3576 j := j + 1;
3577
3578 IF j > ItemCat_Billto_Hold.COUNT THEN
3579 EXIT;
3580 END IF;
3581
3582 END LOOP;
3583 END IF;
3584
3585 -- Check Item, EndCustomer Holds, for --ER# 12571983 as well
3586 IF l_itemcategory_id IS NOT NULL AND
3587 p_line_rec.end_customer_id IS NOT NULL AND
3588 ItemCat_EndCust_Pointer.EXISTS(l_itemcategory_id)
3589 THEN
3590 j := ItemCat_EndCust_Pointer(l_itemcategory_id);
3591 WHILE ItemCat_EndCust_Hold(j).Entity_Id1 = l_itemcategory_id
3592 LOOP
3593
3594 IF ItemCat_EndCust_Hold(j).Entity_Id2 = p_line_rec.end_customer_id
3595 THEN
3596 Mark_Hold(p_header_id => p_line_rec.header_id,
3597 p_line_id => p_line_rec.line_id,
3598 p_line_number => p_line_rec.line_number,
3599 p_hold_source_id => ItemCat_EndCust_Hold(j).hold_source_id,
3600 p_ship_set_name => NULL,
3601 p_arrival_set_name => NULL,
3602 p_activity_name => ItemCat_EndCust_Hold(j).activity_name,
3603 p_attribute => 'ItemCategory\End Customer',
3604 p_top_model_line_id => p_line_rec.top_model_line_id
3605 );
3606 IF ItemCat_EndCust_Hold(j).activity_name IS NULL THEN
3607 p_on_generic_hold := TRUE;
3608 ELSIF ItemCat_EndCust_Hold(j).activity_name = 'LINE_SCHEDULING'
3609 THEN
3610 p_on_scheduling_hold := TRUE;
3611 END IF;
3612
3613 END IF;
3614 j := j + 1;
3615
3616 IF j > ItemCat_EndCust_Hold.COUNT THEN
3617 EXIT;
3618 END IF;
3619
3620 END LOOP;
3621 END IF;
3622
3623 --ER# 13331078 END added for 'IC'
3624
3625
3626 <<Just_WareHouse_Holds>>
3627
3628 -- Check Item Warehouse Holds
3629 IF p_line_rec.inventory_item_id IS NOT NULL AND
3630 p_line_rec.ship_from_org_id IS NOT NULL AND
3631 Item_Warehouse_Pointer.EXISTS(p_line_rec.inventory_item_id)
3632 THEN
3633 j := Item_Warehouse_Pointer(p_line_rec.inventory_item_id);
3634 WHILE Item_Warehouse_hold(j).Entity_Id1 = p_line_rec.inventory_item_id
3635 LOOP
3636
3637 IF Item_Warehouse_Hold(j).Entity_Id2 = p_line_rec.ship_from_org_id
3638 THEN
3639 Mark_Hold(p_header_id => p_line_rec.header_id,
3640 p_line_id => p_line_rec.line_id,
3641 p_line_number => p_line_rec.line_number,
3642 p_hold_source_id => Item_Warehouse_Hold(j).hold_source_id,
3643 p_ship_set_name => NULL,
3644 p_arrival_set_name => NULL,
3645 p_activity_name => Item_Warehouse_Hold(j).activity_name,
3646 p_attribute => 'Item\Warehouse',
3647 p_top_model_line_id => p_line_rec.top_model_line_id
3648 );
3649 IF Item_Warehouse_Hold(j).activity_name IS NULL THEN
3650 p_on_generic_hold := TRUE;
3651 ELSIF Item_Warehouse_Hold(j).activity_name = 'LINE_SCHEDULING'
3652 THEN
3653 p_on_scheduling_hold := TRUE;
3654 END IF;
3655
3656 END IF;
3657 j := j + 1;
3658
3659 IF j > Item_Warehouse_hold.COUNT THEN
3660 EXIT;
3661 END IF;
3662
3666 -- Check Warehouse Hold
3663 END LOOP;
3664 END IF;
3665
3667 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3668 Warehouse_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3669 THEN
3670 j := Warehouse_Pointer(p_line_rec.ship_from_org_id);
3671 WHILE Warehouse_hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3672 LOOP
3673 Mark_Hold(p_header_id => p_line_rec.header_id,
3674 p_line_id => p_line_rec.line_id,
3675 p_line_number => p_line_rec.line_number,
3676 p_hold_source_id => Warehouse_hold(j).hold_source_id,
3677 p_ship_set_name => NULL,
3678 p_arrival_set_name => NULL,
3679 p_activity_name => Warehouse_hold(j).activity_name,
3680 p_attribute => 'Warehouse',
3681 p_top_model_line_id => p_line_rec.top_model_line_id
3682 );
3683 IF Warehouse_hold(j).activity_name IS NULL THEN
3684 p_on_generic_hold := TRUE;
3685 ELSIF Warehouse_hold(j).activity_name = 'LINE_SCHEDULING' THEN
3686 p_on_scheduling_hold := TRUE;
3687 END IF;
3688 j := j+1;
3689 IF j > Warehouse_Hold.COUNT THEN
3690 EXIT;
3691 END IF;
3692
3693 END LOOP;
3694
3695 END IF;
3696
3697 -- Check Warehouse Customer Holds
3698 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3699 p_line_rec.sold_to_org_id IS NOT NULL AND
3700 Warehouse_Customer_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3701 THEN
3702 j := Warehouse_Customer_Pointer(p_line_rec.ship_from_org_id);
3703 WHILE Warehouse_Customer_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3704 LOOP
3705
3706 IF Warehouse_Customer_Hold(j).Entity_Id2 = p_line_rec.sold_to_org_id
3707 THEN
3708 Mark_Hold(p_header_id => p_line_rec.header_id,
3709 p_line_id => p_line_rec.line_id,
3710 p_line_number => p_line_rec.line_number,
3711 p_hold_source_id =>Warehouse_Customer_Hold(j).hold_source_id,
3712 p_ship_set_name => NULL,
3713 p_arrival_set_name => NULL,
3714 p_activity_name => Warehouse_Customer_Hold(j).activity_name,
3715 p_attribute => 'Warehouse\Customer',
3716 p_top_model_line_id => p_line_rec.top_model_line_id
3717 );
3718 IF Warehouse_Customer_Hold(j).activity_name IS NULL THEN
3719 p_on_generic_hold := TRUE;
3720 ELSIF Warehouse_Customer_Hold(j).activity_name = 'LINE_SCHEDULING'
3721 THEN
3722 p_on_scheduling_hold := TRUE;
3723 END IF;
3724
3725 END IF;
3726 j := j + 1;
3727
3728 IF j > Warehouse_Customer_Hold.COUNT THEN
3729 EXIT;
3730 END IF;
3731
3732 END LOOP;
3733 END IF;
3734
3735 -- Check Warehouse Shipto Holds
3736 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3737 p_line_rec.ship_to_org_id IS NOT NULL AND
3738 Warehouse_shipto_pointer.EXISTS(p_line_rec.ship_from_org_id)
3739 THEN
3740 j := Warehouse_shipto_pointer(p_line_rec.ship_from_org_id);
3741 WHILE Warehouse_shipto_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3742 LOOP
3743
3744 IF Warehouse_shipto_Hold(j).Entity_Id2 = p_line_rec.ship_to_org_id
3745 THEN
3746 Mark_Hold(p_header_id => p_line_rec.header_id,
3747 p_line_id => p_line_rec.line_id,
3748 p_line_number => p_line_rec.line_number,
3749 p_hold_source_id => Warehouse_shipto_Hold(j).hold_source_id,
3750 p_ship_set_name => NULL,
3751 p_arrival_set_name => NULL,
3752 p_activity_name => Warehouse_shipto_Hold(j).activity_name,
3753 p_attribute => 'Warehouse\Ship to Site',
3754 p_top_model_line_id => p_line_rec.top_model_line_id
3755 );
3756 IF Warehouse_shipto_Hold(j).activity_name IS NULL THEN
3757 p_on_generic_hold := TRUE;
3758 ELSIF Warehouse_shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
3759 THEN
3760 p_on_scheduling_hold := TRUE;
3761 END IF;
3762
3763 END IF;
3764 j := j + 1;
3765
3766 IF j > Warehouse_shipto_Hold.COUNT THEN
3767 EXIT;
3768 END IF;
3769
3770 END LOOP;
3771 END IF;
3772
3773 -- Check Warehouse BillTo Holds
3774 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3775 p_line_rec.invoice_to_org_id IS NOT NULL AND
3776 Warehouse_billto_pointer.EXISTS(p_line_rec.ship_from_org_id)
3777 THEN
3778 j := Warehouse_billto_pointer(p_line_rec.ship_from_org_id);
3779 WHILE Warehouse_billto_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3780 LOOP
3781
3782 IF Warehouse_billto_Hold(j).Entity_Id2 = p_line_rec.invoice_to_org_id
3783 THEN
3784 Mark_Hold(p_header_id => p_line_rec.header_id,
3785 p_line_id => p_line_rec.line_id,
3786 p_line_number => p_line_rec.line_number,
3787 p_hold_source_id => Warehouse_billto_Hold(j).hold_source_id,
3788 p_ship_set_name => NULL,
3792 p_top_model_line_id => p_line_rec.top_model_line_id
3789 p_arrival_set_name => NULL,
3790 p_activity_name => Warehouse_billto_Hold(j).activity_name,
3791 p_attribute => 'Warehouse\Bill to Site',
3793 );
3794 IF Warehouse_billto_Hold(j).activity_name IS NULL THEN
3795 p_on_generic_hold := TRUE;
3796 ELSIF Warehouse_billto_Hold(j).activity_name = 'LINE_SCHEDULING'
3797 THEN
3798 p_on_scheduling_hold := TRUE;
3799 END IF;
3800
3801 END IF;
3802 j := j + 1;
3803
3804 IF j > Warehouse_billto_Hold.COUNT THEN
3805 EXIT;
3806 END IF;
3807
3808 END LOOP;
3809 END IF;
3810
3811 --ER#7479609 start
3812
3813 -- Check Warehouse Line Type Holds
3814 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3815 p_line_rec.line_type_id IS NOT NULL AND
3816 Warehouse_LineType_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3817 THEN
3818 j := Warehouse_LineType_Pointer(p_line_rec.ship_from_org_id);
3819 WHILE Warehouse_LineType_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3820 LOOP
3821
3822 IF Warehouse_LineType_Hold(j).Entity_Id2 = p_line_rec.line_type_id
3823 THEN
3824 Mark_Hold(p_header_id => p_line_rec.header_id,
3825 p_line_id => p_line_rec.line_id,
3826 p_line_number => p_line_rec.line_number,
3827 p_hold_source_id => Warehouse_LineType_Hold(j).hold_source_id,
3828 p_ship_set_name => NULL,
3829 p_arrival_set_name => NULL,
3830 p_activity_name => Warehouse_LineType_Hold(j).activity_name,
3831 p_attribute => 'Warehouse\Line Type',
3832 p_top_model_line_id => p_line_rec.top_model_line_id
3833 );
3834 IF Warehouse_LineType_Hold(j).activity_name IS NULL THEN
3835 p_on_generic_hold := TRUE;
3836 ELSIF Warehouse_LineType_Hold(j).activity_name = 'LINE_SCHEDULING'
3837 THEN
3838 p_on_scheduling_hold := TRUE;
3839 END IF;
3840
3841 END IF;
3842 j := j + 1;
3843
3844 IF j > Warehouse_LineType_Hold.COUNT THEN
3845 EXIT;
3846 END IF;
3847
3848 END LOOP;
3849 END IF;
3850
3851 -- Check Warehouse Shipping Method Holds
3852 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3853 p_line_rec.shipping_method_code IS NOT NULL AND
3854 Warehouse_ShipMethod_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3855 THEN
3856 j := Warehouse_ShipMethod_Pointer(p_line_rec.ship_from_org_id);
3857 WHILE Warehouse_ShipMethod_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3858 LOOP
3859
3860 IF Warehouse_ShipMethod_Hold(j).Entity_Id2 = p_line_rec.shipping_method_code
3861 THEN
3862 Mark_Hold(p_header_id => p_line_rec.header_id,
3863 p_line_id => p_line_rec.line_id,
3864 p_line_number => p_line_rec.line_number,
3865 p_hold_source_id => Warehouse_ShipMethod_Hold(j).hold_source_id,
3866 p_ship_set_name => NULL,
3867 p_arrival_set_name => NULL,
3868 p_activity_name => Warehouse_ShipMethod_Hold(j).activity_name,
3869 p_attribute => 'Warehouse\Shipping Method',
3870 p_top_model_line_id => p_line_rec.top_model_line_id
3871 );
3872 IF Warehouse_ShipMethod_Hold(j).activity_name IS NULL THEN
3873 p_on_generic_hold := TRUE;
3874 ELSIF Warehouse_ShipMethod_Hold(j).activity_name = 'LINE_SCHEDULING'
3875 THEN
3876 p_on_scheduling_hold := TRUE;
3877 END IF;
3878
3879 END IF;
3880 j := j + 1;
3881
3882 IF j > Warehouse_ShipMethod_Hold.COUNT THEN
3883 EXIT;
3884 END IF;
3885
3886 END LOOP;
3887 END IF;
3888
3889 -- Check Warehouse Deliver to Site Holds
3890 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3891 p_line_rec.deliver_to_org_id IS NOT NULL AND
3892 Warehouse_Deliverto_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3893 THEN
3894 j := Warehouse_Deliverto_Pointer(p_line_rec.ship_from_org_id);
3895 WHILE Warehouse_Deliverto_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3896 LOOP
3897
3898 IF Warehouse_Deliverto_Hold(j).Entity_Id2 = p_line_rec.deliver_to_org_id
3899 THEN
3900 Mark_Hold(p_header_id => p_line_rec.header_id,
3901 p_line_id => p_line_rec.line_id,
3902 p_line_number => p_line_rec.line_number,
3903 p_hold_source_id => Warehouse_Deliverto_Hold(j).hold_source_id,
3904 p_ship_set_name => NULL,
3905 p_arrival_set_name => NULL,
3906 p_activity_name => Warehouse_Deliverto_Hold(j).activity_name,
3907 p_attribute => 'Warehouse\Deliver to Site',
3908 p_top_model_line_id => p_line_rec.top_model_line_id
3909 );
3910 IF Warehouse_Deliverto_Hold(j).activity_name IS NULL THEN
3911 p_on_generic_hold := TRUE;
3912 ELSIF Warehouse_Deliverto_Hold(j).activity_name = 'LINE_SCHEDULING'
3913 THEN
3914 p_on_scheduling_hold := TRUE;
3915 END IF;
3916
3917 END IF;
3918 j := j + 1;
3919
3923
3920 IF j > Warehouse_Deliverto_Hold.COUNT THEN
3921 EXIT;
3922 END IF;
3924 END LOOP;
3925 END IF;
3926
3927
3928 -- Check Warehouse Source type Holds
3929 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3930 p_line_rec.source_type_code IS NOT NULL AND
3931 Warehouse_SourceType_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3932 THEN
3933 j := Warehouse_SourceType_Pointer(p_line_rec.ship_from_org_id);
3934 WHILE Warehouse_SourceType_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3935 LOOP
3936
3937 IF Warehouse_SourceType_Hold(j).Entity_Id2 = p_line_rec.source_type_code
3938 THEN
3939 Mark_Hold(p_header_id => p_line_rec.header_id,
3940 p_line_id => p_line_rec.line_id,
3941 p_line_number => p_line_rec.line_number,
3942 p_hold_source_id => Warehouse_SourceType_Hold(j).hold_source_id,
3943 p_ship_set_name => NULL,
3944 p_arrival_set_name => NULL,
3945 p_activity_name => Warehouse_SourceType_Hold(j).activity_name,
3946 p_attribute => 'Warehouse\Source Type',
3947 p_top_model_line_id => p_line_rec.top_model_line_id
3948 );
3949 IF Warehouse_SourceType_Hold(j).activity_name IS NULL THEN
3950 p_on_generic_hold := TRUE;
3951 ELSIF Warehouse_SourceType_Hold(j).activity_name = 'LINE_SCHEDULING'
3952 THEN
3953 p_on_scheduling_hold := TRUE;
3954 END IF;
3955
3956 END IF;
3957 j := j + 1;
3958
3959 IF j > Warehouse_SourceType_Hold.COUNT THEN
3960 EXIT;
3961 END IF;
3962
3963 END LOOP;
3964 END IF;
3965
3966 --ER#7479609 end
3967
3968 --ER# 12571983 start
3969 -- Check Warehouse, EndCustomer Holds
3970 IF p_line_rec.ship_from_org_id IS NOT NULL AND
3971 p_line_rec.end_customer_id IS NOT NULL AND
3972 Warehouse_EndCust_Pointer.EXISTS(p_line_rec.ship_from_org_id)
3973 THEN
3974 j := Warehouse_EndCust_Pointer(p_line_rec.ship_from_org_id);
3975 WHILE Warehouse_EndCust_Hold(j).Entity_Id1 = p_line_rec.ship_from_org_id
3976 LOOP
3977
3978 IF Warehouse_EndCust_Hold(j).Entity_Id2 = p_line_rec.end_customer_id
3979 THEN
3980 Mark_Hold(p_header_id => p_line_rec.header_id,
3981 p_line_id => p_line_rec.line_id,
3982 p_line_number => p_line_rec.line_number,
3983 p_hold_source_id =>Warehouse_EndCust_Hold(j).hold_source_id,
3984 p_ship_set_name => NULL,
3985 p_arrival_set_name => NULL,
3986 p_activity_name => Warehouse_EndCust_Hold(j).activity_name,
3987 p_attribute => 'Warehouse\End Customer',
3988 p_top_model_line_id => p_line_rec.top_model_line_id
3989 );
3990 IF Warehouse_EndCust_Hold(j).activity_name IS NULL THEN
3991 p_on_generic_hold := TRUE;
3992 ELSIF Warehouse_EndCust_Hold(j).activity_name = 'LINE_SCHEDULING'
3993 THEN
3994 p_on_scheduling_hold := TRUE;
3995 END IF;
3996
3997 END IF;
3998 j := j + 1;
3999
4000 IF j > Warehouse_EndCust_Hold.COUNT THEN
4001 EXIT;
4002 END IF;
4003
4004 END LOOP;
4005 END IF;
4006 --ER# 12571983 end
4007
4008 --ER# 13331078 START added fro 'IC'
4009 --Check Item Category,Warehouse Holds
4010 IF l_itemcategory_id IS NOT NULL AND
4011 p_line_rec.ship_from_org_id IS NOT NULL AND
4012 ItemCat_Warehouse_Pointer.EXISTS(l_itemcategory_id)
4013 THEN
4014 j := ItemCat_Warehouse_Pointer(l_itemcategory_id);
4015 WHILE ItemCat_Warehouse_Hold(j).Entity_Id1 = l_itemcategory_id
4016 LOOP
4017
4018 IF ItemCat_Warehouse_Hold(j).Entity_Id2 = p_line_rec.ship_from_org_id
4019 THEN
4020 Mark_Hold(p_header_id => p_line_rec.header_id,
4021 p_line_id => p_line_rec.line_id,
4022 p_line_number => p_line_rec.line_number,
4023 p_hold_source_id => ItemCat_Warehouse_Hold(j).hold_source_id,
4024 p_ship_set_name => NULL,
4025 p_arrival_set_name => NULL,
4026 p_activity_name => ItemCat_Warehouse_Hold(j).activity_name,
4027 p_attribute => 'ItemCategory\Warehouse',
4028 p_top_model_line_id => p_line_rec.top_model_line_id
4029 );
4030 IF ItemCat_Warehouse_Hold(j).activity_name IS NULL THEN
4031 p_on_generic_hold := TRUE;
4032 ELSIF ItemCat_Warehouse_Hold(j).activity_name = 'LINE_SCHEDULING'
4033 THEN
4034 p_on_scheduling_hold := TRUE;
4035 END IF;
4036
4037 END IF;
4038 j := j + 1;
4039
4040 IF j > ItemCat_Warehouse_Hold.COUNT THEN
4041 EXIT;
4042 END IF;
4043
4044 END LOOP;
4045 END IF;
4046
4047 --ER# 13331078 END added 'IC'
4048
4049 END IF;
4050 oe_debug_pub.add('Exitting OE_Bulk_Holds_PVT.Evaluate_Holds'); --ER#7479609 debug
4051 EXCEPTION
4052 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4053 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4054 WHEN OTHERS THEN
4055 OE_BULK_MSG_PUB.Add_Exc_Msg
4056 ( G_PKG_NAME
4057 , 'Evaluate_Holds'
4058 );
4062 --ER#7479609 end
4059 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4060 END Evaluate_Holds;
4061
4063
4064
4065
4066 PROCEDURE Evaluate_Holds(
4067 p_header_id IN NUMBER,
4068 p_line_id IN NUMBER,
4069 p_line_number IN NUMBER,
4070 p_sold_to_org_id IN NUMBER,
4071 p_inventory_item_id IN NUMBER,
4072 p_ship_from_org_id IN NUMBER,
4073 p_invoice_to_org_id IN NUMBER,
4074 p_ship_to_org_id IN NUMBER,
4075 p_top_model_line_id IN NUMBER,
4076 p_ship_set_name IN VARCHAR2,
4077 p_arrival_set_name IN VARCHAR2,
4078 p_check_only_warehouse_holds IN BOOLEAN := FALSE,
4079 p_on_generic_hold OUT NOCOPY BOOLEAN,
4080 p_on_booking_hold OUT NOCOPY BOOLEAN,
4081 p_on_scheduling_hold OUT NOCOPY BOOLEAN
4082 )
4083 IS
4084 i NUMBER;
4085 j NUMBER;
4086 l_activity_name VARCHAR2(30);
4087 BEGIN
4088 -- Set the OUT parameter
4089 p_on_generic_hold := FALSE;
4090 p_on_booking_hold := FALSE;
4091 p_on_scheduling_hold := FALSE;
4092
4093 IF p_line_id IS NULL THEN -- Header Level Holds
4094
4095 -- Check Customer Hold
4096 IF Customer_Pointer.EXISTS(p_sold_to_org_id) THEN
4097
4098 j := Customer_Pointer(p_sold_to_org_id);
4099 WHILE Customer_hold(j).Entity_Id1 = p_sold_to_org_id
4100 LOOP
4101 Mark_Hold(p_header_id => p_header_id,
4102 p_line_id => NULL,
4103 p_line_number => NULL,
4104 p_hold_source_id => Customer_hold(j).hold_source_id,
4105 p_ship_set_name => NULL,
4106 p_arrival_set_name => NULL,
4107 p_activity_name => Customer_hold(j).activity_name,
4108 p_attribute => 'Customer',
4109 p_top_model_line_id => NULL
4110 );
4111 IF Customer_hold(j).activity_name IS NULL THEN
4112 p_on_generic_hold := TRUE;
4113 ELSIF Customer_hold(j).activity_name = 'BOOK_ORDER' THEN
4114 p_on_booking_hold := TRUE;
4115 END IF;
4116 j := j+1;
4117
4118 IF j > Customer_hold.COUNT THEN
4119 EXIT;
4120 END IF;
4121
4122 END LOOP;
4123
4124 END IF;
4125
4126 ELSE -- Line Level Holds
4127
4128 IF p_check_only_warehouse_holds THEN
4129 GOTO Just_WareHouse_Holds;
4130 END IF;
4131
4132 -- Check Item Hold
4133 IF p_inventory_item_id IS NOT NULL AND
4134 Item_Pointer.EXISTS(p_inventory_item_id)
4135 THEN
4136 j := Item_Pointer(p_inventory_item_id);
4137 WHILE item_hold(j).Entity_Id1 = p_inventory_item_id
4138 LOOP
4139 Mark_Hold(p_header_id => p_header_id,
4140 p_line_id => p_line_id,
4141 p_line_number => p_line_number,
4142 p_hold_source_id => Item_Hold(j).hold_source_id,
4143 p_ship_set_name => p_ship_set_name,
4144 p_arrival_set_name => p_arrival_set_name,
4145 p_activity_name => Item_hold(j).activity_name,
4146 p_attribute => 'Item',
4147 p_top_model_line_id => p_top_model_line_id
4148 );
4149 IF item_hold(j).activity_name IS NULL THEN
4150 p_on_generic_hold := TRUE;
4151 ELSIF item_hold(j).activity_name = 'LINE_SCHEDULING' THEN
4152 p_on_scheduling_hold := TRUE;
4153 END IF;
4154 j := j+1;
4155 IF j > Item_Hold.COUNT THEN
4156 EXIT;
4157 END IF;
4158
4159 END LOOP;
4160
4161 END IF;
4162
4163 -- Check Ship_To Hold
4164 IF p_ship_to_org_id IS NOT NULL AND
4165 Ship_To_Pointer.EXISTS(p_ship_to_org_id)
4166 THEN
4167 j := ship_to_Pointer(p_ship_to_org_id);
4168 WHILE Ship_to_hold(j).Entity_Id1 = p_ship_to_org_id
4169 LOOP
4170 Mark_Hold(p_header_id => p_header_id,
4171 p_line_id => p_line_id,
4172 p_line_number => p_line_number,
4173 p_hold_source_id => Ship_to_Hold(j).hold_source_id,
4174 p_ship_set_name => p_ship_set_name,
4175 p_arrival_set_name => p_arrival_set_name,
4176 p_activity_name => Ship_to_hold(j).activity_name,
4177 p_attribute => 'Ship to Site',
4178 p_top_model_line_id => p_top_model_line_id
4179 );
4180 IF Ship_to_hold(j).activity_name IS NULL THEN
4181 p_on_generic_hold := TRUE;
4182 ELSIF Ship_to_hold(j).activity_name = 'LINE_SCHEDULING' THEN
4183 p_on_scheduling_hold := TRUE;
4184 END IF;
4185 j := j+1;
4186 IF j > Ship_to_Hold.COUNT THEN
4187 EXIT;
4188 END IF;
4189
4190 END LOOP;
4191
4192 END IF;
4193
4194 -- Check Bill_To Hold
4195 IF p_invoice_to_org_id IS NOT NULL AND
4196 Bill_To_Pointer.EXISTS(p_invoice_to_org_id)
4197 THEN
4198 j := Bill_To_Pointer(p_invoice_to_org_id);
4199 WHILE Bill_To_hold(j).Entity_Id1 = p_invoice_to_org_id
4200 LOOP
4201 Mark_Hold(p_header_id => p_header_id,
4202 p_line_id => p_line_id,
4203 p_line_number => p_line_number,
4204 p_hold_source_id => Bill_To_hold(j).hold_source_id,
4205 p_ship_set_name => p_ship_set_name,
4209 p_top_model_line_id => p_top_model_line_id
4206 p_arrival_set_name => p_arrival_set_name,
4207 p_activity_name => Bill_To_hold(j).activity_name,
4208 p_attribute => 'Bill to Site',
4210 );
4211 IF Bill_To_hold(j).activity_name IS NULL THEN
4212 p_on_generic_hold := TRUE;
4213 ELSIF Bill_To_hold(j).activity_name = 'LINE_SCHEDULING' THEN
4214 p_on_scheduling_hold := TRUE;
4215 END IF;
4216 j := j+1;
4217 IF j > Bill_to_Hold.COUNT THEN
4218 EXIT;
4219 END IF;
4220
4221 END LOOP;
4222
4223 END IF;
4224
4225
4226 -- Check Item Customer Holds
4227 IF p_inventory_item_id IS NOT NULL AND
4228 p_sold_to_org_id IS NOT NULL AND
4229 Item_Customer_Pointer.EXISTS(p_inventory_item_id)
4230 THEN
4231 j := Item_Customer_Pointer(p_inventory_item_id);
4232 WHILE Item_Customer_hold(j).Entity_Id1 = p_inventory_item_id
4233 LOOP
4234
4235 IF Item_Customer_Hold(j).Entity_Id2 = p_sold_to_org_id
4236 THEN
4237 Mark_Hold(p_header_id => p_header_id,
4238 p_line_id => p_line_id,
4239 p_line_number => p_line_number,
4240 p_hold_source_id => Item_Customer_Hold(j).hold_source_id,
4241 p_ship_set_name => p_ship_set_name,
4242 p_arrival_set_name => p_arrival_set_name,
4243 p_activity_name => Item_Customer_Hold(j).activity_name,
4244 p_attribute => 'Item\Customer',
4245 p_top_model_line_id => p_top_model_line_id
4246 );
4247 IF Item_Customer_Hold(j).activity_name IS NULL THEN
4248 p_on_generic_hold := TRUE;
4249 ELSIF Item_Customer_Hold(j).activity_name = 'LINE_SCHEDULING'
4250 THEN
4251 p_on_scheduling_hold := TRUE;
4252 END IF;
4253
4254 END IF;
4255 j := j + 1;
4256
4257 IF j > Item_Customer_hold.COUNT THEN
4258 EXIT;
4259 END IF;
4260
4261 END LOOP;
4262 END IF;
4263
4264 -- Check Item Shipto Holds
4265 IF p_inventory_item_id IS NOT NULL AND
4266 p_ship_to_org_id IS NOT NULL AND
4267 Item_Shipto_Pointer.EXISTS(p_inventory_item_id)
4268 THEN
4269 j := Item_shipto_Pointer(p_inventory_item_id);
4270 WHILE Item_shipto_hold(j).Entity_Id1 = p_inventory_item_id
4271 LOOP
4272
4273 IF Item_shipto_Hold(j).Entity_Id2 = p_ship_to_org_id
4274 THEN
4275 Mark_Hold(p_header_id => p_header_id,
4276 p_line_id => p_line_id,
4277 p_line_number => p_line_number,
4278 p_hold_source_id => Item_shipto_Hold(j).hold_source_id,
4279 p_ship_set_name => p_ship_set_name,
4280 p_arrival_set_name => p_arrival_set_name,
4281 p_activity_name => Item_shipto_Hold(j).activity_name,
4282 p_attribute => 'Item\Ship to Site',
4283 p_top_model_line_id => p_top_model_line_id
4284 );
4285 IF Item_shipto_Hold(j).activity_name IS NULL THEN
4286 p_on_generic_hold := TRUE;
4287 ELSIF Item_shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
4288 THEN
4289 p_on_scheduling_hold := TRUE;
4290 END IF;
4291
4292 END IF;
4293 j := j + 1;
4294
4295 IF j > Item_shipto_hold.COUNT THEN
4296 EXIT;
4297 END IF;
4298
4299 END LOOP;
4300 END IF;
4301
4302 -- Check Item BillTo Holds
4303 IF p_inventory_item_id IS NOT NULL AND
4304 p_invoice_to_org_id IS NOT NULL AND
4305 Item_Billto_Pointer.EXISTS(p_inventory_item_id)
4306 THEN
4307 j := Item_billto_Pointer(p_inventory_item_id);
4308 WHILE Item_billto_hold(j).Entity_Id1 = p_inventory_item_id
4309 LOOP
4310
4311 IF Item_billto_Hold(j).Entity_Id2 = p_invoice_to_org_id
4312 THEN
4313 Mark_Hold(p_header_id => p_header_id,
4314 p_line_id => p_line_id,
4315 p_line_number => p_line_number,
4316 p_hold_source_id => Item_billto_Hold(j).hold_source_id,
4317 p_ship_set_name => p_ship_set_name,
4318 p_arrival_set_name => p_arrival_set_name,
4319 p_activity_name => Item_billto_Hold(j).activity_name,
4320 p_attribute => 'Item\Bill to Site',
4321 p_top_model_line_id => p_top_model_line_id
4322 );
4323 IF Item_billto_Hold(j).activity_name IS NULL THEN
4324 p_on_generic_hold := TRUE;
4325 ELSIF Item_billto_Hold(j).activity_name = 'LINE_SCHEDULING'
4326 THEN
4327 p_on_scheduling_hold := TRUE;
4328 END IF;
4329
4330 END IF;
4331 j := j + 1;
4332
4333 IF j > Item_billto_hold.COUNT THEN
4334 EXIT;
4335 END IF;
4336
4337 END LOOP;
4338 END IF;
4339
4340 <<Just_WareHouse_Holds>>
4341
4342 -- Check Item Warehouse Holds
4343 IF p_inventory_item_id IS NOT NULL AND
4344 p_ship_from_org_id IS NOT NULL AND
4348 WHILE Item_Warehouse_hold(j).Entity_Id1 = p_inventory_item_id
4345 Item_Warehouse_Pointer.EXISTS(p_inventory_item_id)
4346 THEN
4347 j := Item_Warehouse_Pointer(p_inventory_item_id);
4349 LOOP
4350
4351 IF Item_Warehouse_Hold(j).Entity_Id2 = p_ship_from_org_id
4352 THEN
4353 Mark_Hold(p_header_id => p_header_id,
4354 p_line_id => p_line_id,
4355 p_line_number => p_line_number,
4356 p_hold_source_id => Item_Warehouse_Hold(j).hold_source_id,
4357 p_ship_set_name => p_ship_set_name,
4358 p_arrival_set_name => p_arrival_set_name,
4359 p_activity_name => Item_Warehouse_Hold(j).activity_name,
4360 p_attribute => 'Item\Warehouse',
4361 p_top_model_line_id => p_top_model_line_id
4362 );
4363 IF Item_Warehouse_Hold(j).activity_name IS NULL THEN
4364 p_on_generic_hold := TRUE;
4365 ELSIF Item_Warehouse_Hold(j).activity_name = 'LINE_SCHEDULING'
4366 THEN
4367 p_on_scheduling_hold := TRUE;
4368 END IF;
4369
4370 END IF;
4371 j := j + 1;
4372
4373 IF j > Item_Warehouse_hold.COUNT THEN
4374 EXIT;
4375 END IF;
4376
4377 END LOOP;
4378 END IF;
4379
4380 -- Check Warehouse Hold
4381 IF p_ship_from_org_id IS NOT NULL AND
4382 Warehouse_Pointer.EXISTS(p_ship_from_org_id)
4383 THEN
4384 j := Warehouse_Pointer(p_ship_from_org_id);
4385 WHILE Warehouse_hold(j).Entity_Id1 = p_ship_from_org_id
4386 LOOP
4387 Mark_Hold(p_header_id => p_header_id,
4388 p_line_id => p_line_id,
4389 p_line_number => p_line_number,
4390 p_hold_source_id => Warehouse_hold(j).hold_source_id,
4391 p_ship_set_name => p_ship_set_name,
4392 p_arrival_set_name => p_arrival_set_name,
4393 p_activity_name => Warehouse_hold(j).activity_name,
4394 p_attribute => 'Warehouse',
4395 p_top_model_line_id => p_top_model_line_id
4396 );
4397 IF Warehouse_hold(j).activity_name IS NULL THEN
4398 p_on_generic_hold := TRUE;
4399 ELSIF Warehouse_hold(j).activity_name = 'LINE_SCHEDULING' THEN
4400 p_on_scheduling_hold := TRUE;
4401 END IF;
4402 j := j+1;
4403 IF j > Warehouse_Hold.COUNT THEN
4404 EXIT;
4405 END IF;
4406
4407 END LOOP;
4408
4409 END IF;
4410
4411 -- Check Warehouse Customer Holds
4412 IF p_ship_from_org_id IS NOT NULL AND
4413 p_sold_to_org_id IS NOT NULL AND
4414 Warehouse_Customer_Pointer.EXISTS(p_ship_from_org_id)
4415 THEN
4416 j := Warehouse_Customer_Pointer(p_ship_from_org_id);
4417 WHILE Warehouse_Customer_Hold(j).Entity_Id1 = p_ship_from_org_id
4418 LOOP
4419
4420 IF Warehouse_Customer_Hold(j).Entity_Id2 = p_sold_to_org_id
4421 THEN
4422 Mark_Hold(p_header_id => p_header_id,
4423 p_line_id => p_line_id,
4424 p_line_number => p_line_number,
4425 p_hold_source_id =>Warehouse_Customer_Hold(j).hold_source_id,
4426 p_ship_set_name => p_ship_set_name,
4427 p_arrival_set_name => p_arrival_set_name,
4428 p_activity_name => Warehouse_Customer_Hold(j).activity_name,
4429 p_attribute => 'Warehouse\Customer',
4430 p_top_model_line_id => p_top_model_line_id
4431 );
4432 IF Warehouse_Customer_Hold(j).activity_name IS NULL THEN
4433 p_on_generic_hold := TRUE;
4434 ELSIF Warehouse_Customer_Hold(j).activity_name = 'LINE_SCHEDULING'
4435 THEN
4436 p_on_scheduling_hold := TRUE;
4437 END IF;
4438
4439 END IF;
4440 j := j + 1;
4441
4442 IF j > Warehouse_Customer_Hold.COUNT THEN
4443 EXIT;
4444 END IF;
4445
4446 END LOOP;
4447 END IF;
4448
4449 -- Check Warehouse Shipto Holds
4450 IF p_ship_from_org_id IS NOT NULL AND
4451 p_ship_to_org_id IS NOT NULL AND
4452 Warehouse_shipto_pointer.EXISTS(p_ship_from_org_id)
4453 THEN
4454 j := Warehouse_shipto_pointer(p_ship_from_org_id);
4455 WHILE Warehouse_shipto_Hold(j).Entity_Id1 = p_ship_from_org_id
4456 LOOP
4457
4458 IF Warehouse_shipto_Hold(j).Entity_Id2 = p_ship_to_org_id
4459 THEN
4460 Mark_Hold(p_header_id => p_header_id,
4461 p_line_id => p_line_id,
4462 p_line_number => p_line_number,
4463 p_hold_source_id => Warehouse_shipto_Hold(j).hold_source_id,
4464 p_ship_set_name => p_ship_set_name,
4465 p_arrival_set_name => p_arrival_set_name,
4466 p_activity_name => Warehouse_shipto_Hold(j).activity_name,
4467 p_attribute => 'Warehouse\Ship to Site',
4468 p_top_model_line_id => p_top_model_line_id
4469 );
4470 IF Warehouse_shipto_Hold(j).activity_name IS NULL THEN
4471 p_on_generic_hold := TRUE;
4472 ELSIF Warehouse_shipto_Hold(j).activity_name = 'LINE_SCHEDULING'
4473 THEN
4477 END IF;
4474 p_on_scheduling_hold := TRUE;
4475 END IF;
4476
4478 j := j + 1;
4479
4480 IF j > Warehouse_shipto_Hold.COUNT THEN
4481 EXIT;
4482 END IF;
4483
4484 END LOOP;
4485 END IF;
4486
4487 -- Check Warehouse BillTo Holds
4488 IF p_ship_from_org_id IS NOT NULL AND
4489 p_invoice_to_org_id IS NOT NULL AND
4490 Warehouse_billto_pointer.EXISTS(p_ship_from_org_id)
4491 THEN
4492 j := Warehouse_billto_pointer(p_ship_from_org_id);
4493 WHILE Warehouse_billto_Hold(j).Entity_Id1 = p_ship_from_org_id
4494 LOOP
4495
4496 IF Warehouse_billto_Hold(j).Entity_Id2 = p_invoice_to_org_id
4497 THEN
4498 Mark_Hold(p_header_id => p_header_id,
4499 p_line_id => p_line_id,
4500 p_line_number => p_line_number,
4501 p_hold_source_id => Warehouse_billto_Hold(j).hold_source_id,
4502 p_ship_set_name => p_ship_set_name,
4503 p_arrival_set_name => p_arrival_set_name,
4504 p_activity_name => Warehouse_billto_Hold(j).activity_name,
4505 p_attribute => 'Warehouse\Bill to Site',
4506 p_top_model_line_id => p_top_model_line_id
4507 );
4508 IF Warehouse_billto_Hold(j).activity_name IS NULL THEN
4509 p_on_generic_hold := TRUE;
4510 ELSIF Warehouse_billto_Hold(j).activity_name = 'LINE_SCHEDULING'
4511 THEN
4512 p_on_scheduling_hold := TRUE;
4513 END IF;
4514
4515 END IF;
4516 j := j + 1;
4517
4518 IF j > Warehouse_billto_Hold.COUNT THEN
4519 EXIT;
4520 END IF;
4521
4522 END LOOP;
4523 END IF;
4524
4525 END IF;
4526
4527 EXCEPTION
4528 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4529 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4530 WHEN OTHERS THEN
4531 OE_BULK_MSG_PUB.Add_Exc_Msg
4532 ( G_PKG_NAME
4533 , 'Evaluate_Holds'
4534 );
4535 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4536 END Evaluate_Holds;
4537
4538 PROCEDURE Extend_Holds_Tbl
4539 IS
4540 BEGIN
4541
4542 G_Hold_header_id.EXTEND;
4543 G_Hold_line_id.EXTEND;
4544 G_Hold_source_id.EXTEND;
4545 G_hold_ship_set.EXTEND;
4546 G_hold_arrival_set.EXTEND;
4547 G_hold_top_model_line_id.EXTEND;
4548 G_hold_activity_name.EXTEND;
4549
4550 EXCEPTION
4551 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4552 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4553 WHEN OTHERS THEN
4554 OE_BULK_MSG_PUB.Add_Exc_Msg
4555 ( G_PKG_NAME
4556 , 'Extend_Holds_Tbl'
4557 );
4558 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4559 END Extend_Holds_Tbl;
4560
4561 PROCEDURE Create_Holds
4562 IS
4563 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4564 l_org_id number :=mo_global.get_current_org_id; --5488209
4565 BEGIN
4566
4567 IF l_debug_level > 0 THEN
4568 oe_debug_pub.add('No. of holds to create is '||G_Hold_header_id.COUNT);
4569 oe_debug_pub.add('No. of holds sources to create is '
4570 ||g_hold_source_rec.HOLD_SOURCE_ID.COUNT);
4571 END IF;
4572
4573 FORALL i IN 1..G_Hold_header_id.COUNT
4574 --added org_id in insert for bug 5488209
4575 INSERT INTO OE_ORDER_HOLDS
4576 ( ORDER_HOLD_ID
4577 , LAST_UPDATE_DATE
4578 , LAST_UPDATED_BY
4579 , CREATION_DATE
4580 , CREATED_BY
4581 , LAST_UPDATE_LOGIN
4582 , HOLD_SOURCE_ID
4583 , HEADER_ID
4584 , LINE_ID
4585 , RELEASED_FLAG
4586 , ORG_ID
4587 )
4588 VALUES
4589 ( OE_ORDER_HOLDS_S.NEXTVAL
4590 , SYSDATE
4591 , NVL(FND_GLOBAL.USER_ID, -1)
4592 , SYSDATE
4593 , NVL(FND_GLOBAL.USER_ID, -1)
4594 , NULL
4595 , G_hold_source_id(i)
4596 , G_Hold_header_id(i)
4597 , G_Hold_line_id(i)
4598 , 'N'
4599 , l_org_id
4600 );
4601
4602 -- Clear the Globals.
4603 g_hold_header_id.DELETE;
4604 g_hold_line_id.DELETE;
4605 g_hold_Source_Id.DELETE;
4606 g_hold_ship_set.DELETE;
4607 g_hold_arrival_set.DELETE;
4608 g_hold_top_model_line_id.DELETE;
4609 g_hold_activity_name.DELETE;
4610
4611 IF g_hold_source_rec.HOLD_SOURCE_ID.COUNT > 0 THEN
4612 FORALL i IN 1..g_hold_source_rec.HOLD_SOURCE_ID.COUNT
4613 --added org_id in insert for bug 5488209
4614 INSERT INTO OE_HOLD_SOURCES
4615 ( HOLD_SOURCE_ID
4616 , LAST_UPDATE_DATE
4617 , LAST_UPDATED_BY
4618 , CREATION_DATE
4619 , CREATED_BY
4620 , LAST_UPDATE_LOGIN
4621 , PROGRAM_APPLICATION_ID
4622 , PROGRAM_ID
4623 , PROGRAM_UPDATE_DATE
4624 , REQUEST_ID
4625 , HOLD_ID
4626 , HOLD_ENTITY_CODE
4627 , HOLD_ENTITY_ID
4628 , HOLD_UNTIL_DATE
4629 , RELEASED_FLAG
4630 , ORG_ID
4631 )
4632 VALUES
4633 ( g_hold_source_rec.hold_source_id(i)
4634 , sysdate
4635 , NVL(FND_GLOBAL.USER_ID, -1)
4636 , sysdate
4637 , NVL(FND_GLOBAL.USER_ID, -1)
4638 , NULL
4639 , NULL
4643 , g_hold_source_rec.HOLD_ID(i)
4640 , NULL
4641 , NULL
4642 , NULL
4644 , g_hold_source_rec.HOLD_ENTITY_CODE(i)
4645 , g_hold_source_rec.HOLD_ENTITY_ID(i)
4646 , NULL
4647 , 'N'
4648 , l_org_id
4649 );
4650
4651 g_hold_source_rec.HOLD_ID.DELETE;
4652 g_hold_source_rec.HOLD_SOURCE_ID.DELETE;
4653 g_hold_source_rec.HOLD_ENTITY_CODE.DELETE;
4654 g_hold_source_rec.HOLD_ENTITY_ID.DELETE;
4655 END IF;
4656 EXCEPTION
4657 WHEN OTHERS THEN
4658 IF l_debug_level > 0 THEN
4659 oe_debug_pub.add('In OTHERS error ' || SUBSTR(sqlerrm,1,240), 1);
4660 END IF;
4661 OE_BULK_MSG_PUB.Add_Exc_Msg
4662 ( G_PKG_NAME
4663 , 'Create_Holds'
4664 );
4665 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4666 END Create_Holds;
4667
4668 PROCEDURE Mark_Hold(p_header_id IN NUMBER,
4669 p_line_id IN NUMBER,
4670 p_line_number IN NUMBER,
4671 p_hold_source_id IN NUMBER,
4672 p_ship_set_name IN VARCHAR2,
4673 p_arrival_set_name IN VARCHAR2,
4674 p_activity_name IN VARCHAR2,
4675 p_attribute IN VARCHAR2,
4676 p_top_model_line_id IN NUMBER
4677 )
4678 IS
4679 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4680 i BINARY_INTEGER;
4681 BEGIN
4682
4683 i := G_Hold_header_id.COUNT;
4684 Extend_Holds_Tbl;
4685
4686 G_Hold_header_id(i+1) := p_header_id;
4687 G_Hold_line_id(i+1) := p_line_id;
4688 G_Hold_source_id(i+1) := p_hold_source_id;
4689 G_Hold_ship_set(i+1) := p_ship_set_name;
4690 G_Hold_arrival_set(i+1) := p_arrival_set_name;
4691 G_Hold_top_model_line_id(i+1) := p_top_model_line_id;
4692 G_Hold_activity_name(i+1) := p_activity_name;
4693
4694 IF p_line_id IS NULL THEN
4695 FND_MESSAGE.SET_NAME('ONT','OE_HLD_APPLIED');
4696 ELSE
4697 FND_MESSAGE.SET_NAME('ONT','OE_HLD_APPLIED_LINE');
4698 FND_MESSAGE.SET_TOKEN('LINE_NUMBER',p_line_number);
4699 END IF;
4700 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_attribute);
4701 OE_BULK_MSG_PUB.ADD;
4702
4703 EXCEPTION
4704 WHEN OTHERS THEN
4705 IF l_debug_level > 0 THEN
4706 oe_debug_pub.add('In OTHERS error - Mark_Hold ' ||
4707 SUBSTR(sqlerrm,1,240), 1);
4708 END IF;
4709 OE_BULK_MSG_PUB.Add_Exc_Msg
4710 ( G_PKG_NAME
4711 , 'Mark_Hold'
4712 );
4713 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4714 END Mark_Hold;
4715
4716 FUNCTION Is_Header_On_Hold(
4717 p_header_id IN NUMBER,
4718 p_hold_index IN OUT NOCOPY NUMBER
4719 ) RETURN BOOLEAN
4720 IS
4721 i NUMBER;
4722 l_old_header_id NUMBER;
4723 BEGIN
4724
4725 IF g_hold_header_id.COUNT > 0 THEN
4726
4727 IF p_hold_index IS NULL THEN
4728 p_hold_index := 1;
4729 END IF;
4730
4731 l_old_header_id := g_hold_header_id(p_hold_index);
4732
4733 FOR i IN p_hold_index..g_hold_header_id.COUNT LOOP
4734
4735 -- IF there are NO Header Level Holds
4736 IF g_hold_line_id(i) IS NOT NULL THEN
4737 RETURN FALSE;
4738 END IF;
4739
4740 -- Since the search is a linear one with incremental header_id
4741 IF g_hold_header_id(i) > p_header_id THEN
4742 RETURN FALSE;
4743 END IF;
4744
4745 IF g_hold_header_id(i) <> l_old_header_id THEN
4746 p_hold_index := i;
4747 END IF;
4748
4749 IF p_header_id = g_hold_header_id(i) AND
4750 g_hold_activity_name(i) IS NULL THEN
4751 RETURN TRUE;
4752 END IF;
4753 l_old_header_id := g_hold_header_id(i);
4754
4755 END LOOP;
4756
4757 END IF;
4758
4759 RETURN FALSE;
4760
4761 EXCEPTION
4762 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4763 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4764 WHEN OTHERS THEN
4765 OE_BULK_MSG_PUB.Add_Exc_Msg
4766 ( G_PKG_NAME
4767 , 'Is_Header_On_Hold'
4768 );
4769 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4770 END Is_Header_On_Hold;
4771
4772 FUNCTION Is_Line_On_Hold(
4773 p_header_id IN NUMBER,
4774 p_line_id IN NUMBER,
4775 p_top_model_line_id IN NUMBER,
4776 p_ship_set_name IN VARCHAR2,
4777 p_arrival_set_name IN VARCHAR2,
4778 p_hold_index IN OUT NOCOPY NUMBER
4779 ) RETURN BOOLEAN
4780 IS
4781 i BINARY_INTEGER;
4782 l_old_header_id NUMBER;
4783 BEGIN
4784
4785 IF g_hold_header_id.COUNT > 0 THEN
4786
4787 i := 1;
4788 l_old_header_id := g_hold_header_id(p_hold_index);
4789 -- Check if the header is on hold
4790 WHILE g_hold_line_id(i) IS NULL LOOP
4791 IF p_header_id = g_hold_header_id(i) AND
4792 g_hold_activity_name(i) IS NULL THEN
4793 RETURN TRUE;
4794 END IF;
4795 i := i+1;
4796
4797 IF i > g_hold_header_id.COUNT THEN
4798 RETURN FALSE;
4799 END IF;
4800
4801 END LOOP;
4802
4803 -- Header is not on HOLD.
4804
4805 IF p_hold_index IS NULL THEN
4806
4807 IF i <= g_hold_header_id.COUNT THEN
4808 p_hold_index := i;
4809 END IF;
4810
4814 END IF;
4811 -- IF there are no lines on hold then
4812 IF p_hold_index IS NULL THEN
4813 RETURN FALSE;
4815
4816 END IF;
4817
4818 IF p_header_id > g_hold_header_id(g_hold_header_id.LAST) THEN
4819 RETURN FALSE;
4820 END IF;
4821
4822 l_old_header_id := g_hold_header_id(p_hold_index);
4823
4824 FOR i IN p_hold_index..g_hold_header_id.COUNT LOOP
4825
4826 -- Since the search is a linear one with incremental header_id
4827 IF g_hold_header_id(i) > p_header_id THEN
4828 RETURN FALSE;
4829 END IF;
4830
4831 IF g_hold_header_id(i) <> l_old_header_id THEN
4832 p_hold_index := i;
4833 END IF;
4834
4835 -- Check if there is a Match
4836 IF p_header_id = g_hold_header_id(i) AND
4837 (p_top_model_line_id = g_hold_top_model_line_id(i) OR
4838 p_ship_set_name = g_hold_ship_set(i) OR
4839 p_arrival_set_name = g_hold_arrival_set(i)) AND
4840 g_hold_activity_name(i) IS NULL
4841 THEN
4842 RETURN TRUE;
4843 END IF;
4844
4845 l_old_header_id := g_hold_header_id(i);
4846
4847 END LOOP;
4848 END IF;
4849
4850 RETURN FALSE;
4851
4852 EXCEPTION
4853 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4854 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4855 WHEN OTHERS THEN
4856 OE_BULK_MSG_PUB.Add_Exc_Msg
4857 ( G_PKG_NAME
4858 , 'Is_Line_On_Hold'
4859 );
4860 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4861 END Is_Line_On_Hold;
4862
4863 PROCEDURE Apply_GSA_Hold(p_header_id IN NUMBER,
4864 p_line_id IN NUMBER,
4865 p_line_number IN NUMBER,
4866 p_hold_id IN NUMBER,
4867 p_ship_set_name IN VARCHAR2,
4868 p_arrival_set_name IN VARCHAR2,
4869 p_activity_name IN VARCHAR2,
4870 p_attribute IN VARCHAR2,
4871 p_top_model_line_id IN NUMBER,
4872 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2 --bug 3735141
4873 )
4874 IS
4875 i BINARY_INTEGER;
4876 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4877 BEGIN
4878 x_return_status := FND_API.G_RET_STS_SUCCESS;
4879 -- Check the count of the Global Table for Hold Source Rec
4880 i := g_hold_source_rec.HOLD_ID.COUNT;
4881
4882 -- Assign memory
4883 Extend_Hold_Source_Rec;
4884
4885 g_hold_source_rec.HOLD_ID(i+1) := p_hold_id;
4886
4887 -- Get the Hold Source Id
4888 SELECT OE_HOLD_SOURCES_S.NEXTVAL
4889 INTO g_hold_source_rec.HOLD_SOURCE_ID(i+1)
4890 FROM DUAL;
4891
4892 g_hold_source_rec.HOLD_ENTITY_CODE(i+1) := 'O';
4893 g_hold_source_rec.HOLD_ENTITY_ID(i+1) := p_header_id; --bug 3716296
4894 -- passing header_id as hold_entity_id instead of line_id
4895
4896 Mark_Hold(p_header_id => p_header_id,
4897 p_line_id => p_line_id,
4898 p_line_number => NULL,
4899 p_hold_source_id => g_hold_source_rec.HOLD_SOURCE_ID(i+1),
4900 p_ship_set_name => NULL,
4901 p_arrival_set_name => NULL,
4902 p_activity_name => NULL,
4903 p_attribute => 'GSA PRICE Violation',
4904 p_top_model_line_id => p_top_model_line_id
4905 );
4906
4907 --bug 3735141
4908 EXCEPTION
4909 WHEN OTHERS THEN
4910 IF l_debug_level > 0 THEN
4911 oe_debug_pub.add('In OTHERS error - Apply GSA Hold ' ||
4912 SUBSTR(sqlerrm,1,240), 1);
4913 END IF;
4914 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4915 --bug 3735141
4916
4917 END Apply_GSA_Hold;
4918
4919 PROCEDURE Extend_Hold_Source_Rec
4920 IS
4921 BEGIN
4922 g_hold_source_rec.HOLD_ID.EXTEND;
4923 g_hold_source_rec.HOLD_SOURCE_ID.EXTEND;
4924 g_hold_source_rec.HOLD_ENTITY_CODE.EXTEND;
4925 g_hold_source_rec.HOLD_ENTITY_ID.EXTEND;
4926 END Extend_Hold_Source_Rec;
4927
4928 ------------------------------------------------------------------------
4929 -- FUNCTION Check_for_Holds
4930 -- This API is called by scheduling
4931 --
4932 -- Checks if there are any holds on the order or order line. If
4933 -- order line, then checks for holds on the order that it belongs to.
4934 -- If ATO line, then checks for holds on other lines belonging to the
4935 -- same ATO model. If SMC line, then checks for other lines in the SMC.
4936 -- If included item line then checks for hold on its immediate parent
4937 -- if included item flag is set appropriately in the hold definition.
4938 ------------------------------------------------------------------------
4939 FUNCTION Check_For_Holds(p_header_id IN NUMBER,
4940 p_line_id IN NUMBER,
4941 p_line_index IN NUMBER,
4942 p_header_index IN NUMBER,
4943 p_top_model_line_index IN NUMBER,
4944 p_ship_model_complete_flag IN VARCHAR2,
4945 p_ato_line_index IN NUMBER,
4946 p_ii_parent_line_index IN NUMBER
4947 ) RETURN BOOLEAN
4948 IS
4949
4950 l_result BOOLEAN;
4951 l_header_hold_index BINARY_INTEGER;
4952 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4953
4954 BEGIN
4955
4956 IF l_debug_level > 0 THEN
4957 oe_debug_pub.add( 'IN OE_BULK_HOLDS_PVT.Check_For_Holds');
4958 oe_debug_pub.add( 'p_line_index is '||p_line_index);
4959 END IF;
4960
4961 -- Initialize API return value to False
4962 l_result := FALSE;
4963
4964 -- First Check if the line is on generic HOLD
4965 IF G_Line_Holds_Tbl.EXISTS(p_line_index) THEN
4966 IF G_Line_Holds_Tbl(p_line_index).On_Generic_Hold = 'Y' THEN
4967
4968 IF l_debug_level > 0 THEN
4969 oe_debug_pub.add( 'Line on Generic Hold' ||p_line_id ) ;
4970 END IF;
4971 RETURN TRUE;
4972
4973 END IF;
4974 END IF;
4975
4976 -- Check if the header is on HOLD.
4977 l_result := Is_Header_On_Hold(p_header_id => p_header_id ,
4978 p_hold_index => l_header_hold_index );
4979
4980 IF l_result THEN
4981 IF l_debug_level > 0 THEN
4982 oe_debug_pub.add( 'HEADER LEVEL HOLD EXISTS' ) ;
4983 END IF;
4984 RETURN l_result;
4985 END IF;
4986
4987 -- Check if the line is part of an ATO model.
4988 IF p_ato_line_index IS NOT NULL AND
4989 p_top_model_line_index IS NOT NULL
4990 THEN
4991 -- Check if the ato_line has been marked for Hold.
4992 IF G_Line_Holds_Tbl.EXISTS(p_ato_line_index) THEN
4993 IF G_Line_Holds_Tbl(p_ato_line_index).Any_ato_line_on_hold = 'Y' THEN
4994
4995 IF l_debug_level > 0 THEN
4996 oe_debug_pub.add( 'Line is part of ATO model and one of the lines
4997 is on Generic Hold') ;
4998 END IF;
4999 RETURN TRUE;
5000 END IF;
5001 END IF;
5002 END IF;
5003
5004 -- Check if the line is part of an SMC Model or Kit-included items.
5005 IF p_top_model_line_index IS NOT NULL AND
5006 p_ship_model_complete_flag = 'Y'
5007 THEN
5008 -- Check if the Top Model line has been marked for Hold.
5009 IF G_Line_Holds_Tbl.EXISTS(p_top_model_line_index) THEN
5010 IF G_Line_Holds_Tbl(p_top_model_line_index).Any_SMC_Line_on_hold = 'Y'
5011 THEN
5012
5013 IF l_debug_level > 0 THEN
5014 oe_debug_pub.add( 'Line is part of SMC model and one of the lines
5015 is on Generic Hold') ;
5016 END IF;
5017 RETURN TRUE;
5018 END IF;
5019 END IF;
5020 END IF;
5021
5022 -- Check if the line is an included item line.
5023 IF p_ii_parent_line_index IS NOT NULL THEN
5024 -- Check if the parent is on generic hold and hold source says that put
5025 -- included items also on hold
5026 IF G_Line_Holds_Tbl.EXISTS(p_ii_parent_line_index) THEN
5027
5028 IF G_Line_Holds_Tbl(p_ii_parent_line_index).On_Generic_Hold = 'Y' AND
5029 G_Line_Holds_Tbl(p_ii_parent_line_index).hold_ii_flag = 'Y'
5030 THEN
5031 IF l_debug_level > 0 THEN
5032 oe_debug_pub.add( 'II Parent line is on Generic Hold') ;
5033 END IF;
5034 RETURN TRUE;
5035 END IF;
5036 END IF;
5037 END IF;
5038 IF l_debug_level > 0 THEN
5039 oe_debug_pub.add( 'Exiting OE_BULK_HOLDS_PVT.Check_For_Holds');
5040 END IF;
5041 RETURN FALSE;
5042
5043 EXCEPTION
5044 WHEN OTHERS THEN
5045 IF l_debug_level > 0 THEN
5046 oe_debug_pub.add( 'In others of OE_BULK_HOLDS_PVT.Check_For_Holds');
5047 END IF;
5048 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5049 THEN
5050 OE_MSG_PUB.Add_Exc_Msg
5051 ( G_PKG_NAME
5052 , 'Check_For_Holds'
5053 );
5054 END IF;
5055
5056 END Check_For_Holds;
5057
5058 END OE_Bulk_Holds_PVT;