[Home] [Help]
PACKAGE BODY: APPS.MSC_SCE_LOADS_PKG
Source
1 PACKAGE BODY msc_sce_loads_pkg AS
2 /* $Header: MSCXLDB.pls 120.20.12010000.2 2008/05/07 09:59:16 hbinjola ship $ */
3
4 G_DAY_DESC varchar2(80);
5 G_USER_IS_ADMIN number;
6 SYS_YES CONSTANT number := 1;
7 SYS_NO CONSTANT number := 2;
8
9 G_OVERWRITE_OF varchar2(1) := nvl(fnd_profile.value('MSC_X_OVERWRITE_OF'),'N');
10 G_MSC_CP_DEBUG VARCHAR2(10) := NVL(FND_PROFILE.VALUE('MSC_CP_DEBUG'), '0');
11 --Consigned CVMI Enh : Bug # 4562914
12 G_CVMI_PROFILE VARCHAR2(1) := NVL(FND_PROFILE.VALUE('MSC_X_CVMI_CA_MAND'), 'N') ;
13
14 PROCEDURE get_user_id (
15 p_int_control_number IN NUMBER,
16 p_user_id OUT NOCOPY NUMBER
17 ) IS
18 BEGIN
19 SELECT usr.user_id
20 INTO p_user_id
21 FROM fnd_user usr,
22 ecx_doclogs ecx
23 WHERE usr.user_name = upper(ecx.username)
24 AND ecx.internal_control_number = p_int_control_number;
25 EXCEPTION
26 WHEN OTHERS THEN
27 p_user_id := -1;
28 END get_user_id;
29
30 -- This procesure prints out debug information
31 PROCEDURE LOG_DEBUG(
32 p_debug_info IN VARCHAR2
33 )IS
34 BEGIN
35 IF ( g_msc_cp_debug= '1' OR g_msc_cp_debug = '2') THEN
36 FND_FILE.PUT_LINE(FND_FILE.LOG, p_debug_info);
37 END IF;
38 --dbms_output.put_line(p_debug_info); --ut
39 EXCEPTION
40 WHEN OTHERS THEN
41 RAISE;
42 END LOG_DEBUG;
43
44 Function is_user_admin( pUSER_ID in number)
45 return number
46 IS
47 lv_admin number;
48 BEGIN
49
50 select 1
51 into lv_admin
52 from fnd_user_resp_groups furg,
53 fnd_responsibility_vl frv
54 where furg.USER_ID = pUSER_ID
55 and frv.RESPONSIBILITY_NAME like '%Supply Chain Collaboration Administrator%'
56 and frv.APPLICATION_ID = 724
57 and frv.APPLICATION_ID = furg.RESPONSIBILITY_APPLICATION_ID
58 and frv.RESPONSIBILITY_ID = furg.RESPONSIBILITY_ID
59 and trunc(nvl(furg.end_date,sysdate)) >= trunc(sysdate)
60 and rownum = 1;
61
62 return lv_admin;
63
64 EXCEPTION
65 when others then
66 return SYS_NO;
67 END is_user_admin;
68
69 PROCEDURE update_errors (
70 p_header_id IN NUMBER,
71 p_language IN VARCHAR2,
72 p_build_err IN NUMBER,
73 p_date_format IN VARCHAR2
74 , p_consumption_advice_exists OUT NOCOPY BOOLEAN -- bug 3551850
75 ) IS
76 l_err_msg VARCHAR2(2000);
77 l_row_status NUMBER;
78 l_posting_party VARCHAR2(255);
79 l_min NUMBER;
80 l_max NUMBER;
81 l_loops_reqd NUMBER;
82 l_start_line NUMBER;
83 l_end_line NUMBER;
84 l_log_message VARCHAR2(4000);
85 t_line_id lineidList;
86 t_line_id1 lineidList;
87 t_order_type lineidList;
88 t_err_line_id lineidList;
89 t_log_line_id lineidList;
90 t_log_item_name itemList;
91 t_log_order_type otdescList;
92 t_log_err_msg errmsgList;
93
94 t_pub publisherList;
95 t_pub_site pubsiteList;
96 t_cust customerList;
97 t_cust_site custsiteList;
98 t_supp supplierList;
99 t_supp_site suppsiteList;
100 t_order_type_desc otdescList;
101 t_key_date keydateList;
102 t_bucket_type bktypeList;
103 t_item_id numlist;
104 t_order_number ordernumlist;
105 t_rel_number relnumlist;
106 t_line_number linenumlist;
107 t_end_order_number endordlist;
108 t_end_order_rel_number endrellist;
109 t_end_order_line_number endlinelist;
110 t_tmp_line_id lineidlist;
111 t_tmp_ot lineidlist;
112
113 t_del_pub_id numlist;
114 t_del_pub_site_id numlist;
115 t_del_cust_id numlist;
116 t_del_cust_site_id numlist;
117 t_del_item_id numlist;
118 t_del_supp_id numlist;
119 t_del_supp_site_id numlist;
120
121 CURSOR c_dates (
122 p_header_id IN NUMBER,
123 p_start_line IN NUMBER,
124 p_end_line IN NUMBER,
125 p_date_format IN VARCHAR2
126 ) IS
127 SELECT l.line_id
128 FROM msc_supdem_lines_interface l
129 WHERE l.parent_header_id = p_header_id
130 AND l.line_id BETWEEN p_start_line AND p_end_line
131 AND NVL(l.row_status, G_PROCESS) = G_PROCESS
132 AND checkdates(p_header_id,l.line_id,p_date_format) = 1;
133
134 CURSOR c_err_msg(
135 p_header_id IN Number,
136 p_start_line IN Number,
137 p_end_line IN Number
138 ) IS
139 select line_id,
140 nvl(item_name,
141 nvl(owner_item_name,
142 nvl(customer_item_name,
143 supplier_item_name))),
144 substrb(order_type,1,80) ,
145 err_msg
146 from msc_supdem_lines_interface
147 where parent_header_id = p_header_id and
148 line_id between p_start_line and p_end_line and
149 row_status = 4;
150
151 cursor c_exec_keys
152 (
153 p_header_id number,
154 p_language varchar2
155 ) is
156 select distinct upper(ln.publisher_company),
157 upper(ln.publisher_site),
158 upper(ln.customer_company),
159 upper(ln.customer_site),
160 upper(ln.supplier_company),
161 upper(ln.supplier_site),
162 upper(ln.order_type),
163 ln.inventory_item_id,
164 ln.order_identifier,
165 ln.release_number,
166 ln.line_number,
167 ln.pegging_order_identifier,
168 ln.ref_release_number,
169 ln.ref_line_number
170 from msc_supdem_lines_interface ln,
171 fnd_lookup_values flv
172 where ln.parent_header_id = p_header_id
173 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
174 and flv.language = p_language
175 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
176 and upper(flv.meaning) = upper(ln.order_type)
177 and flv.lookup_code in (G_PURCHASE_ORDER,
178 G_SALES_ORDER,
179 G_ASN,
180 G_SHIP_RECEIPT,
181 G_REQUISITION,
182 G_PO_ACKNOWLEDGEMENT)
183 and upper(ln.sync_indicator) = 'R';
184
185 cursor c_onhand_keys
186 (
187 p_header_id number,
188 p_language varchar2
189 ) is
190 select distinct upper(ln.publisher_company),
191 upper(ln.publisher_site),
192 upper(ln.customer_company),
193 upper(ln.customer_site),
194 upper(ln.supplier_company),
195 upper(ln.supplier_site),
196 upper(ln.order_type),
197 ln.inventory_item_id
198 from msc_supdem_lines_interface ln,
199 fnd_lookup_values flv
200 where ln.parent_header_id = p_header_id
201 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
202 and flv.language = p_language
203 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
204 and upper(flv.meaning) = upper(ln.order_type)
205 and flv.lookup_code in (G_ALLOC_ONHAND, g_unallocated_onhand)
206 and upper(ln.sync_indicator) = 'R';
207
208 CURSOR c_work_order_keys
209 (
210 p_header_id NUMBER,
211 p_language VARCHAR2
212 ) IS
213 SELECT DISTINCT Upper(ln.publisher_company),
214 Upper(ln.publisher_site),
215 Upper(ln.customer_company),
216 Upper(ln.customer_site),
217 Upper(ln.order_type),
218 ln.inventory_item_id,
219 ln.order_identifier
220 FROM msc_supdem_lines_interface ln,
221 fnd_lookup_values flv
222 WHERE ln.parent_header_id = p_header_id
223 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
224 and flv.language = p_language
225 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
226 and upper(flv.meaning) = upper(ln.order_type)
227 and flv.lookup_code = g_work_order
228 and upper(ln.sync_indicator) = 'R';
229
230 cursor c_daily_keys
231 (
232 p_header_id number,
233 p_language varchar2,
234 p_date_format VARCHAR2
235 ) is
236 select upper(ln.publisher_company),
237 upper(ln.publisher_site),
238 upper(ln.customer_company),
239 upper(ln.customer_site),
240 upper(ln.supplier_company),
241 upper(ln.supplier_site),
242 upper(ln.order_type),
243 ln.inventory_item_id,
244 trunc(to_date(ln.key_date,p_date_format)),
245 upper(ln.bucket_type)
246 from msc_supdem_lines_interface ln,
247 fnd_lookup_values flv,
248 fnd_lookup_values flv1
249 where ln.parent_header_id = p_header_id
250 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
251 and flv.language = p_language
252 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
253 and upper(flv.meaning) = upper(ln.order_type)
254 and flv.lookup_code in (G_SALES_FORECAST,
255 G_ORDER_FORECAST,
256 G_SUPPLY_COMMIT,
257 G_HIST_SALES,
258 G_SELL_THRO_FCST,
259 G_SUPPLIER_CAP,
260 G_SAFETY_STOCK,
261 G_INTRANSIT,
262 g_replenishment,
263 g_proj_avai_bal)
264 and flv1.language = flv.language
265 and flv1.lookup_type = 'MSC_X_BUCKET_TYPE'
266 and flv1.lookup_code = G_DAY
267 and upper(flv1.meaning) = upper(ln.bucket_type)
268 and upper(ln.sync_indicator) = 'R'
269 union
270 select upper(ln.publisher_company),
271 upper(ln.publisher_site),
272 upper(ln.customer_company),
273 upper(ln.customer_site),
274 upper(ln.supplier_company),
275 upper(ln.supplier_site),
276 upper(ln.order_type),
277 ln.inventory_item_id,
278 trunc(to_date(ln.key_date,p_date_format)),
279 upper(ln.bucket_type)
280 from msc_supdem_lines_interface ln,
281 fnd_lookup_values flv
282 where ln.parent_header_id = p_header_id
283 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
284 and flv.language = p_language
285 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
286 and upper(flv.meaning) = upper(ln.order_type)
287 and flv.lookup_code in (G_SALES_FORECAST,
288 G_ORDER_FORECAST,
289 G_SUPPLY_COMMIT,
290 G_HIST_SALES,
291 G_SELL_THRO_FCST,
292 G_SUPPLIER_CAP,
293 G_SAFETY_STOCK,
294 G_INTRANSIT,
295 g_replenishment,
296 g_proj_avai_bal)
297 and ln.bucket_type is null
298 and upper(ln.sync_indicator) = 'R';
299
300 cursor c_weekly_keys
301 (
302 p_header_id number,
303 p_language varchar2,
304 p_date_format VARCHAR2
305 ) is
306 select upper(ln.publisher_company),
307 upper(ln.publisher_site),
308 upper(ln.customer_company),
309 upper(ln.customer_site),
310 upper(ln.supplier_company),
311 upper(ln.supplier_site),
312 upper(ln.order_type),
313 ln.inventory_item_id,
314 trunc(to_date(ln.key_date,p_date_format)),
315 upper(ln.bucket_type)
316 from msc_supdem_lines_interface ln,
317 fnd_lookup_values flv,
318 fnd_lookup_values flv1
319 where ln.parent_header_id = p_header_id
320 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
321 and flv.language = p_language
322 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
323 and upper(flv.meaning) = upper(ln.order_type)
324 and flv.lookup_code in (G_SALES_FORECAST,
325 G_ORDER_FORECAST,
326 G_SUPPLY_COMMIT,
327 G_HIST_SALES,
328 G_SELL_THRO_FCST,
329 G_SUPPLIER_CAP,
330 G_SAFETY_STOCK,
331 G_INTRANSIT,
332 g_replenishment,
333 g_proj_avai_bal)
334 and flv1.language = flv.language
335 and flv1.lookup_type = 'MSC_X_BUCKET_TYPE'
336 and flv1.lookup_code = G_WEEK
337 and upper(flv1.meaning) = upper(ln.bucket_type)
338 and upper(ln.sync_indicator) = 'R';
339
340 cursor c_monthly_keys
341 (
342 p_header_id number,
343 p_language varchar2,
344 p_date_format VARCHAR2
345 ) is
346 select upper(ln.publisher_company),
347 upper(ln.publisher_site),
348 upper(ln.customer_company),
349 upper(ln.customer_site),
350 upper(ln.supplier_company),
351 upper(ln.supplier_site),
352 upper(ln.order_type),
353 ln.inventory_item_id,
354 trunc(to_date(ln.key_date,p_date_format)),
355 upper(ln.bucket_type)
356 from msc_supdem_lines_interface ln,
357 fnd_lookup_values flv,
358 fnd_lookup_values flv1
359 where ln.parent_header_id = p_header_id
360 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
361 and flv.language = p_language
362 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
363 and upper(flv.meaning) = upper(ln.order_type)
364 and flv.lookup_code in (G_SALES_FORECAST,
365 G_ORDER_FORECAST,
366 G_SUPPLY_COMMIT,
367 G_HIST_SALES,
368 G_SELL_THRO_FCST,
369 G_SUPPLIER_CAP,
370 G_SAFETY_STOCK,
371 G_INTRANSIT,
372 g_replenishment,
373 g_proj_avai_bal)
374 and flv1.language = flv.language
375 and flv1.lookup_type = 'MSC_X_BUCKET_TYPE'
376 and flv1.lookup_code = G_MONTH
377 and upper(flv1.meaning) = upper(ln.bucket_type)
378 and upper(ln.sync_indicator) = 'R';
379
380 CURSOR key_dates(p_header_id IN number,
381 p_start_line IN number,
382 p_end_line IN number,
383 p_language IN varchar2)
384 IS
385 SELECT ln.line_id, flv.lookup_code
386 FROM msc_supdem_lines_interface ln
387 , fnd_lookup_values flv
388 WHERE ln.parent_header_id = p_header_id
389 AND ln.line_id BETWEEN p_start_line AND p_end_line
390 AND Nvl(ln.row_status, g_process) = g_process
391 AND flv.lookup_type = 'MSC_X_ORDER_TYPE'
392 AND flv.language = p_language
393 AND Upper(flv.meaning) = Upper(ln.order_type);
394
395 --Added for bug 3103879
396 CURSOR c_delete_supply_commit (
397 p_header_id IN NUMBER,
398 p_language IN VARCHAR2
399 ) IS
400 SELECT DISTINCT c.company_id,
401 cs.company_site_id,
402 c1.company_id,
403 cs1.company_site_id,
404 ln.inventory_item_id
405 FROM msc_companies c,
406 msc_company_sites cs,
407 msc_companies c1,
408 msc_company_sites cs1,
409 fnd_lookup_values flv,
410 msc_supdem_lines_interface ln
411 WHERE ln.parent_header_id = p_header_id
412 AND ln.row_status = G_SUCCESS
413 AND Upper(c.company_name) = Upper(ln.publisher_company)
414 AND c.company_id = cs.company_id
415 AND Upper(cs.company_site_name) = Upper(ln.publisher_site)
416 AND Upper(c1.company_name) = Upper(ln.customer_company)
417 AND c1.company_id = cs1.company_id
418 AND Upper(cs1.company_site_name) = Upper(ln.customer_site)
419 AND flv.lookup_type = 'MSC_X_ORDER_TYPE'
420 AND Upper(flv.meaning) = Upper(ln.order_type)
421 AND flv.language = p_language
422 AND flv.lookup_code = g_supply_commit;
423
424 --Added for bug 3304493
425 CURSOR c_delete_order_forecast (
426 p_header_id IN NUMBER,
427 p_language IN VARCHAR2
428 ) IS
429 SELECT DISTINCT c.company_id,
430 cs.company_site_id,
431 c1.company_id,
432 cs1.company_site_id,
433 ln.inventory_item_id
434 FROM msc_companies c,
435 msc_company_sites cs,
436 msc_companies c1,
437 msc_company_sites cs1,
438 fnd_lookup_values flv,
439 msc_supdem_lines_interface ln
440 WHERE ln.parent_header_id = p_header_id
441 AND ln.row_status = G_SUCCESS
442 AND Upper(c.company_name) = Upper(ln.publisher_company)
443 AND c.company_id = cs.company_id
444 AND Upper(cs.company_site_name) = Upper(ln.publisher_site)
445 AND Upper(c1.company_name) = Upper(ln.supplier_company)
446 AND c1.company_id = cs1.company_id
447 AND Upper(cs1.company_site_name) = Upper(ln.supplier_site)
448 AND flv.lookup_type = 'MSC_X_ORDER_TYPE'
449 AND Upper(flv.meaning) = Upper(ln.order_type)
450 AND flv.language = p_language
451 AND flv.lookup_code = G_ORDER_FORECAST;
452
453 calendar_is_not_seeded number;
454
455 BEGIN
456 /* BEGIN
457 select 1 into calendar_is_not_seeded
458 from dual
459 where exists ( select 'exists'
460 from msc_calendar_dates
461 where calendar_code = 'CP-Mon-70'
462 and exception_set_id = -1
463 and sr_instance_id = 0 );
464 EXCEPTION
465 WHEN OTHERS THEN
466 calendar_is_not_seeded := 0;
467 END;
468
469 if calendar_is_not_seeded = 0 then
470 begin
471 select min(line_id) into l_min
472 from msc_supdem_lines_interface
473 where parent_header_id = p_header_id;
474 exception
475 when others then
476 return;
477 end;
478
479 l_err_msg := get_message('MSC', 'MSC_X_CALENDAR_NOT_SEEDED', p_language);
480
481 update msc_supdem_lines_interface
482 set row_status = 4,
483 err_msg = substrb(l_err_msg,1,1000)
484 where parent_header_id = p_header_id
485 and line_id = l_min;
486
487 update msc_supdem_lines_interface
488 set row_status = 1
489 where parent_header_id = p_header_id
490 and line_id <> l_min;
491
492 end if; */
493
494 p_consumption_advice_exists := FALSE; -- bug 3551850
495
496 BEGIN
497 SELECT min(line_id), max(line_id)
498 INTO l_min, l_max
499 FROM msc_supdem_lines_interface
500 WHERE parent_header_id = p_header_id;
501 EXCEPTION
502 WHEN NO_DATA_FOUND THEN
503 return;
504 END;
505
506 IF l_min IS NULL OR l_max IS NULL THEN
507 RETURN;
508 END IF;
509
510 l_loops_reqd := 1 + trunc((l_max - l_min)/G_BATCH_SIZE);
511
512 FOR i IN 1..l_loops_reqd LOOP
513 l_start_line := l_min + ((i-1)*G_BATCH_SIZE);
514 IF ((l_min -1 + i*G_BATCH_SIZE) <= l_max) THEN
515 l_end_line := l_min -1 + i*G_BATCH_SIZE;
516 ELSE
517 l_end_line := l_max;
518 END IF;
519
520
521 --=========================================================================
522 -- select and validate the order type first
523 --=========================================================================
524
525 SELECT line_id
526 BULK COLLECT INTO t_line_id
527 FROM msc_supdem_lines_interface
528 WHERE parent_header_id = p_header_id AND
529 line_id BETWEEN l_start_line and l_end_line;
530
531
532 IF t_line_id IS NOT NULL AND t_line_id.COUNT > 0 THEN
533 --======================================================================
534 -- Validation: Check if order type is valid
535 --======================================================================
536
537
538 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ORDER_TYPE', p_language);
539 FORALL j IN t_line_id.FIRST..t_line_id.LAST
540 UPDATE msc_supdem_lines_interface ln
541 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
542 WHERE ln.parent_header_id = p_header_id AND
543 ln.line_id = t_line_id(j) AND
544 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
545 NOT EXISTS (SELECT l.lookup_code
546 FROM fnd_lookup_values l
547 WHERE l.lookup_type = 'MSC_X_ORDER_TYPE' AND
548 UPPER(l.meaning) = NVL(UPPER(ln.order_type), G_NULL_STRING) AND
549 l.language = p_language);
550
551 END IF;
552
553 --====================================================================================
554
555 SELECT flv.lookup_code,
556 ln.line_id
557 BULK COLLECT into t_order_type, t_line_id
558 FROM fnd_lookup_values flv,
559 msc_supdem_lines_interface ln
560 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' and
561 flv.language = p_language and
562 Upper(flv.meaning(+)) = Upper(ln.order_type) and
563 nvl(ln.row_status, G_PROCESS) = G_PROCESS and
564 ln.parent_header_id = p_header_id and
565 ln.line_id between l_start_line and l_end_line;
566
567 l_log_message := substrb(get_message('MSC','MSC_X_API_NOW_PROCESSING',p_language),1,500)
568 || '... ' || to_char(l_start_line - l_min + 1) || ' ' ||
569 substrb(get_message('MSC','MSC_X_API_THROUGH',p_language),1,40) ||
570 ' ' || to_char(l_end_line -l_min + 1);
571
572 log_message(l_log_message);
573
574 IF t_line_id IS NOT NULL AND t_line_id.COUNT > 0 THEN
575 --=============================================================
576 -- Independent Errors for sync indicator 'R' and 'D'
577 --
578 -- Validation: Check if the posting party exists
579 --=======================================================================
580 l_err_msg := get_message('MSC', 'MSC_X_INVALID_POSTING_PARTY', p_language);
581 FORALL j IN t_line_id.FIRST..t_line_id.LAST
582 UPDATE msc_supdem_lines_interface ln
583 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
584 WHERE ln.parent_header_id = p_header_id AND
585 ln.line_id = t_line_id(j) AND
586 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
587 NOT EXISTS (SELECT c.company_id
588 FROM msc_companies c
589 WHERE UPPER(c.company_name) = UPPER(NVL(ln.posting_party_name, G_NULL_STRING)));
590
591 --=======================================================================
592 -- Validation: Check if the sync indicator is valid
593 --=======================================================================
594 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SYNC_INDICATOR', p_language);
595 FORALL j IN t_line_id.FIRST..t_line_id.LAST
596 UPDATE msc_supdem_lines_interface ln
597 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
598 WHERE ln.parent_header_id = p_header_id AND
599 ln.line_id = t_line_id(j) AND
600 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
601 UPPER(NVL(ln.sync_indicator, G_NULL_STRING)) NOT IN ('R','D');
602
603 --======================================================================
604 -- Validation: Check if atleast one item is provided in the flat-
605 -- file or XML document.
606 --======================================================================
607 l_err_msg := get_message('MSC', 'MSC_X_INVALID_NO_ITEM', p_language);
608 FORALL j IN t_line_id.FIRST..t_line_id.LAST
609 update msc_supdem_lines_interface ln
610 set ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
611 where ln.parent_header_id = p_header_id and
612 ln.line_id = t_line_id(j) and
613 NVL(ln.row_status, G_PROCESS) = G_PROCESS and
614 ln.item_name is NULL and
615 ln.owner_item_name is NULL and
616 ln.supplier_item_name is NULL and
617 ln.customer_item_name is NULL;
618
619 --======================================================================
620 -- Validation: Check if order type is valid
621 --======================================================================
622 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ORDER_TYPE', p_language);
623 FORALL j IN t_line_id.FIRST..t_line_id.LAST
624 UPDATE msc_supdem_lines_interface ln
625 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
626 WHERE ln.parent_header_id = p_header_id AND
627 ln.line_id = t_line_id(j) AND
628 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
629 t_order_type(j) is NULL;
630
631 -- NOT EXISTS (SELECT l.lookup_code
632 -- FROM fnd_lookup_values l
633 -- WHERE l.lookup_type = 'MSC_X_ORDER_TYPE' AND
634 -- UPPER(l.meaning) = NVL(UPPER(ln.order_type), G_NULL_STRING) AND
635 -- l.language = p_language);
636
637 -- added the following code for bug 3551580
638 FOR j IN t_line_id.FIRST..t_line_id.LAST LOOP
639 IF (t_order_type(j) = G_CONS_ADVICE AND ( NOT p_consumption_advice_exists)) THEN
640 p_consumption_advice_exists := TRUE;
641 END IF;
642 END LOOP;
643
644 log_debug('Validated order type');
645 log_debug('Profile :MSC: Order Number-CA Mandatory for CVMI = '||G_CVMI_PROFILE);
646 --- Consigned CVMI Enhancements : Bug # 4247230
647 --================================================================================
648 /* ADD Validation: Check if Order Number is provided if profile option :
649 MSC: Order Number-CA Mandatory for CVMI is set to YES */
650 --================================================================================
651
652 IF (Nvl(fnd_profile.value('MSC_X_CVMI_CA_MAND'),'N') = 'Y') THEN
653
654 log_debug('Order number is Mandatory for Consumption Advice');
655 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ORDER_NUMBER', p_language);
656
657 FORALL j IN t_line_id.FIRST..t_line_id.LAST
658 UPDATE msc_supdem_lines_interface ln
659 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
660 WHERE ln.parent_header_id = p_header_id AND
661 ln.line_id = t_line_id(j) AND
662 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
663 ln.order_identifier is NULL AND
664 t_order_type(j) = G_CONS_ADVICE ;
665
666 log_debug('Validated order number');
667 END IF;
668
669 --=======================================================================
670 -- Validation: Check if publisher company exists
671 --=======================================================================
672 IF p_build_err = 1 THEN
673 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER', p_language);
674 FORALL j IN t_line_id.FIRST..t_line_id.LAST
675 UPDATE msc_supdem_lines_interface ln
676 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
677 WHERE ln.parent_header_id = p_header_id AND
678 ln.line_id = t_line_id(j) AND
679 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
680 ln.publisher_company IS NOT NULL AND
681 NOT EXISTS (SELECT c.company_id
682 FROM msc_companies c
683 WHERE UPPER(c.company_name) = UPPER(ln.publisher_company));
684
685 --=============================================================================
686 -- Validate the company to be consistent if more than two feild has been given
687 --=============================================================================
688 l_err_msg := get_message('MSC', 'MSC_X_PUBLISH_UNMATCH', p_language); --change for export start
689 FORALL j IN t_line_id.FIRST..t_line_id.LAST
690 UPDATE msc_supdem_lines_interface ln
691 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
692 WHERE ln.parent_header_id = p_header_id AND
693 ln.line_id = t_line_id(j) AND
694 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
695 ln.publisher_company <> NVL(DECODE(t_order_type(j),G_REQUISITION,ln.customer_company,
696 G_ORDER_FORECAST,ln.customer_company,
697 G_HIST_SALES,ln.posting_party_name,
698 G_SELL_THRO_FCST,ln.posting_party_name,
699 G_ALLOC_ONHAND,ln.customer_company,
700 G_PURCHASE_ORDER,ln.customer_company,
701 G_SHIP_RECEIPT,ln.customer_company,
702 G_SUPPLY_COMMIT,ln.supplier_company,
703 G_SUPPLIER_CAP,ln.supplier_company,
704 G_SAFETY_STOCK,ln.supplier_company,
705 G_SALES_ORDER,ln.supplier_company,
706 G_ASN,ln.supplier_company,
707 G_WORK_ORDER,ln.supplier_company,
708 G_REPLENISHMENT,ln.supplier_company,
709 G_PO_ACKNOWLEDGEMENT,ln.supplier_company,
710 G_SALES_FORECAST,ln.posting_party_name,
711 G_UNALLOCATED_ONHAND,nvl(customer_company, supplier_company),
712 G_CONS_ADVICE, nvl(customer_company, supplier_company)
713 ),publisher_company);
714 /* sbala Add CA */
715
716
717 --=============================================================================
718 -- Validate the company sites to be consistent if more than two feild has been given
719 --=============================================================================
720 l_err_msg := get_message('MSC', 'MSC_X_PUBLISH_SITE_UNMATCH', p_language);
721 FORALL j IN t_line_id.FIRST..t_line_id.LAST
722 UPDATE msc_supdem_lines_interface ln
723 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
724 WHERE ln.parent_header_id = p_header_id AND
725 ln.line_id = t_line_id(j) AND
726 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
727 ln.publisher_site <> NVL(DECODE(t_order_type(j),G_REQUISITION,ln.customer_site,
728 G_ORDER_FORECAST,ln.customer_site,
729 G_HIST_SALES, decode(posting_party_name,customer_company,customer_site,supplier_company,supplier_site,null),
730 G_SELL_THRO_FCST,decode(posting_party_name,customer_company,customer_site,supplier_company,supplier_site,null),
731 G_ALLOC_ONHAND,ln.customer_site,
732 G_PURCHASE_ORDER,ln.customer_site,
733 G_SHIP_RECEIPT,ln.customer_site,
734 G_SUPPLY_COMMIT,ln.supplier_site,
735 G_SUPPLIER_CAP,ln.supplier_site,
736 G_SAFETY_STOCK,ln.supplier_site,
737 G_SALES_ORDER,ln.supplier_site,
738 G_ASN,ln.supplier_site,
739 G_WORK_ORDER,ln.supplier_site,
740 G_REPLENISHMENT,ln.supplier_site,
741 G_PO_ACKNOWLEDGEMENT,ln.supplier_site,
742 G_SALES_FORECAST, decode(posting_party_name,customer_company,customer_site,supplier_company,supplier_site,null),
743 G_UNALLOCATED_ONHAND,nvl(customer_site, supplier_site),
744 G_CONS_ADVICE, nvl(customer_site, supplier_site)
745 ),publisher_site);
746
747 /* sbala add CA */
748 --==============================================================================
749 -- Populate the Publisher Information
750 --============================================================================
751 FORALL j IN t_line_id.FIRST..t_line_id.LAST
752 UPDATE msc_supdem_lines_interface ln
753 SET ln.publisher_company = NVL(decode(t_order_type(j),
754 G_SALES_FORECAST, ln.posting_party_name,
755 G_ORDER_FORECAST, ln.customer_company,
756 G_SUPPLY_COMMIT, ln.supplier_company,
757 G_HIST_SALES, ln.posting_party_name,
758 G_SELL_THRO_FCST, ln.posting_party_name,
759 G_SUPPLIER_CAP, ln.supplier_company,
760 G_SAFETY_STOCK, ln.supplier_company,
761 G_ALLOC_ONHAND, ln.customer_company,
762 G_UNALLOCATED_ONHAND,
763 nvl(ln.customer_company, ln.supplier_company),
764 G_PURCHASE_ORDER, ln.customer_company,
765 G_SALES_ORDER, ln.supplier_company,
766 G_ASN, ln.supplier_company,
767 G_SHIP_RECEIPT, ln.customer_company,
768 G_REPLENISHMENT, ln.supplier_company,
769 G_REQUISITION, ln.customer_company,
770 G_PO_ACKNOWLEDGEMENT, ln.supplier_company,
771 G_WORK_ORDER, ln.supplier_company),ln.publisher_company),
772 ln.publisher_site = NVL(decode(t_order_type(j),
773 G_SALES_FORECAST,
774 decode(ln.posting_party_name,
775 ln.customer_company,
776 ln.customer_site,
777 ln.supplier_company,
778 ln.supplier_site,
779 null),
780 G_ORDER_FORECAST, ln.customer_site,
781 G_SUPPLY_COMMIT, ln.supplier_site,
782 G_HIST_SALES,
783 decode(ln.posting_party_name,
784 ln.customer_company,
785 ln.customer_site,
786 ln.supplier_company,
787 ln.supplier_site,
788 null),
789
790 G_SELL_THRO_FCST,
791 decode(ln.posting_party_name,
792 ln.customer_company,
793 ln.customer_site,
794 ln.supplier_company,
795 ln.supplier_site,
796 null),
797 G_SUPPLIER_CAP, ln.supplier_site,
798 G_SAFETY_STOCK, ln.supplier_site,
799 G_ALLOC_ONHAND, ln.customer_site,
800 G_UNALLOCATED_ONHAND,
801 nvl(ln.customer_site, ln.supplier_site),
802 G_PURCHASE_ORDER, ln.customer_site,
803 G_SALES_ORDER, ln.supplier_site,
804 G_ASN, ln.supplier_site,
805 G_SHIP_RECEIPT, ln.customer_site,
806 G_REPLENISHMENT, ln.supplier_site,
807 G_REQUISITION, ln.customer_site,
808 G_PO_ACKNOWLEDGEMENT, ln.supplier_site,
809 G_WORK_ORDER, ln.supplier_site,
810 G_CONS_ADVICE, nvl(ln.customer_site,
811 ln.supplier_site)),
812 ln.publisher_site)
813 WHERE ln.parent_header_id = p_header_id AND
814 ln.line_id = t_line_id(j) AND
815 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
816 ln.publisher_company IS NOT NULL AND
817 ln.publisher_site IS NOT NULL;
818
819 --======================================================================
820 -- Validation: Check if Posting Party is one of the Trading partners
821 -- added for bug # 2565412
822 --======================================================================
823 if (G_USER_IS_ADMIN <> SYS_YES) then
824 /* only for users who do not have SC Admin Responsibility */
825 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER', p_language);
826 FORALL j IN t_line_id.FIRST..t_line_id.LAST
827 UPDATE msc_supdem_lines_interface ln
828 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000),
829 ln.row_status = G_FAILURE
830 WHERE ln.parent_header_id = p_header_id AND
831 ln.line_id = t_line_id(j) AND
832 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
833 not exists ( select 1
834 from dual
835 where upper(ln.posting_party_name) =
836 upper(nvl(ln.supplier_company,G_NULL_STRING))
837 union select 1
838 from dual
839 where upper(ln.posting_party_name) =
840 upper(nvl(ln.customer_company,G_NULL_STRING))
841 union select 1
842 from dual
843 where upper(ln.posting_party_name) =
844 upper(nvl(ln.publisher_company,G_NULL_STRING))
845 );
846 end if;
847
848 /* sbala ADD CA */
849
850 --=============================================================================
851 -- Remove the extra Columns . Added for export/import
852 --=============================================================================
853 FORALL j IN t_line_id.FIRST..t_line_id.LAST
854 UPDATE msc_supdem_lines_interface ln
855 SET ln.customer_company = DECODE(t_order_type(j),
856 G_SALES_FORECAST,
857 DECODE(ln.posting_party_name,
858 ln.customer_company,
859 null,
860 ln.customer_company),
861 G_ORDER_FORECAST, null,
862 G_HIST_SALES,
863 DECODE(ln.posting_party_name,
864 ln.customer_company,
865 null,
866 ln.customer_company),
867 G_SELL_THRO_FCST,
868 DECODE(ln.posting_party_name,
869 ln.customer_company,
870 null,
871 ln.customer_company),
872 G_ALLOC_ONHAND, null,
873 G_UNALLOCATED_ONHAND, null,
874 G_PURCHASE_ORDER, null,
875 G_SHIP_RECEIPT, null,
876 G_REQUISITION, null,
877 G_SAFETY_STOCK, null,
878 g_proj_avai_bal, NULL,
879 ln.customer_company),
880 ln.customer_site = DECODE(t_order_type(j),
881 G_SALES_FORECAST,
882 DECODE(ln.posting_party_name,
883 ln.customer_company,
884 null,
885 ln.customer_site),
886 G_ORDER_FORECAST, null,
887 G_HIST_SALES,
888 DECODE(ln.posting_party_name,
889 ln.customer_company,
890 null,
891 ln.customer_site),
892 G_SELL_THRO_FCST,
893 DECODE(ln.posting_party_name,
894 ln.customer_company,
895 null,
896 ln.customer_site),
897 G_ALLOC_ONHAND, null,
898 G_UNALLOCATED_ONHAND, null,
899 G_CONS_ADVICE, null,
900 G_PURCHASE_ORDER, null,
901 G_SHIP_RECEIPT, null,
902 G_REQUISITION, null,
903 G_SAFETY_STOCK, null,
904 g_proj_avai_bal, NULL,
905 ln.customer_site),
906 ln.supplier_company = DECODE(t_order_type(j),
907 G_SALES_FORECAST,
908 DECODE(ln.posting_party_name,
909 ln.supplier_company,
910 null,
911 ln.supplier_company),
912 G_HIST_SALES,
913 DECODE(ln.posting_party_name,
914 ln.supplier_company,
915 null,
916 ln.supplier_company),
917 G_SELL_THRO_FCST,
918 DECODE(ln.posting_party_name,
919 ln.supplier_company,
920 null,
921 ln.supplier_company),
922 G_SUPPLY_COMMIT, null,
923 G_SUPPLIER_CAP, null,
924 G_SAFETY_STOCK, null,
925 g_proj_avai_bal, NULL,
926 G_UNALLOCATED_ONHAND, null,
927 G_CONS_ADVICE, null,
928 G_SALES_ORDER, null,
929 G_ASN, null,
930 G_REPLENISHMENT, null,
931 G_PO_ACKNOWLEDGEMENT, null,
932 /* Added for work order support */
933 G_WORK_ORDER, NULL,
934 ln.supplier_company),
935 ln.supplier_site = DECODE(t_order_type(j),
936 G_SALES_FORECAST,
937 DECODE(ln.posting_party_name,
938 ln.supplier_company,
939 null,
940 ln.supplier_site),
941 G_HIST_SALES,
942 DECODE(ln.posting_party_name,
943 ln.supplier_company,
944 null,
945 ln.supplier_site),
946 G_SELL_THRO_FCST,
947 DECODE(ln.posting_party_name,
948 ln.supplier_company,
949 null,
950 ln.supplier_site),
951 G_SUPPLY_COMMIT, null,
952 G_SUPPLIER_CAP, null,
953 G_SAFETY_STOCK, null,
954 g_proj_avai_bal, NULL,
955 G_UNALLOCATED_ONHAND, null,
956 G_CONS_ADVICE, null,
957 G_SALES_ORDER, null,
958 G_ASN, null,
959 G_REPLENISHMENT, null,
960 G_PO_ACKNOWLEDGEMENT, null,
961 /* Added for work order support */
962 G_WORK_ORDER, NULL,
963 G_CONS_ADVICE, NULL,
964 ln.supplier_site)
965 WHERE ln.parent_header_id = p_header_id AND
966 ln.line_id = t_line_id(j) AND
967 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
968 ln.publisher_company IS NOT NULL AND
969 ln.publisher_site IS NOT NULL;
970 END IF; --change for export end
971
972 /* sbala ADD CA */
973 --======================================================================
974 -- Validation: Check if bucket type is valid
975 --======================================================================
976 l_err_msg := get_message('MSC', 'MSC_X_INVALID_BUCKET_TYPE', p_language);
977 FORALL j IN t_line_id.FIRST..t_line_id.LAST
978 UPDATE msc_supdem_lines_interface ln
979 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
980 WHERE ln.parent_header_id = p_header_id AND
981 ln.line_id = t_line_id(j) AND
982 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
983 ln.bucket_type IS NOT NULL AND
984 NOT EXISTS (SELECT l.lookup_code
985 FROM fnd_lookup_values l
986 WHERE l.lookup_type = 'MSC_X_BUCKET_TYPE' AND
987 UPPER(l.meaning) = NVL(UPPER(ln.bucket_type),
988 G_NULL_STRING) AND
989 l.language = p_language);
990
991 --======================================================================
992 -- Validation: Check if date formats are valid
993 --======================================================================
994 l_err_msg := get_message('MSC', 'MSC_X_INVALID_DATE_FORMAT', p_language);
995
996 OPEN c_dates(p_header_id, l_start_line, l_end_line,p_date_format);
997 FETCH c_dates BULK COLLECT INTO t_err_line_id;
998 CLOSE c_dates;
999
1000 IF t_err_line_id IS NOT NULL AND t_err_line_id.COUNT > 0 THEN
1001 FORALL j in t_err_line_id.FIRST..t_err_line_id.LAST
1002 UPDATE msc_supdem_lines_interface ln
1003 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1004 WHERE ln.parent_header_id = p_header_id AND
1005 ln.line_id = t_err_line_id(j) AND
1006 NVL(ln.row_status, G_PROCESS) = G_PROCESS;
1007 END IF;
1008
1009
1010 --=======================================================================
1011 -- End of independent errors for sync indicator D
1012 -- Set row status = G_FAILURE for records with sync indicator 'D'
1013 -- where err_msg is not null
1014 --=======================================================================
1015 forall j IN t_line_id.first..t_line_id.last
1016 UPDATE msc_supdem_lines_interface ln
1017 SET ln.row_status = g_failure
1018 WHERE ln.err_msg IS NOT NULL
1019 AND Upper(ln.sync_indicator) = 'D'
1020 AND ln.parent_header_id = p_header_id
1021 AND ln.line_id = t_line_id(j);
1022
1023 --=======================================================================
1024 -- Dependent validations for sync indicator D
1025 --
1026 --Validation: Item check for records with sync indicator 'D'
1027 --========================================================================
1028 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ITEM', p_language);
1029 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1030 update msc_supdem_lines_interface ln
1031 set ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1032 where ln.parent_header_id = p_header_id and
1033 ln.line_id = t_line_id(j) and
1034 NVL(ln.row_status, G_PROCESS) = G_PROCESS and
1035 ln.sync_indicator = 'D' and
1036 not exists (select i.inventory_item_id
1037 from msc_items i
1038 where i.item_name = ln.item_name
1039 UNION
1040 select msi.inventory_item_id
1041 from msc_system_items msi
1042 where msi.item_name = NVL(ln.owner_item_name,
1043 NVL(ln.customer_item_name,
1044 ln.supplier_item_name)) and
1045 msi.plan_id = -1
1046 UNION
1047 select mis.inventory_item_id
1048 from msc_item_suppliers mis
1049 where mis.supplier_item_name = NVL(ln.owner_item_name,
1050 NVL(ln.customer_item_name,
1051 ln.supplier_item_name)) and
1052 mis.plan_id = -1
1053 UNION
1054 select mic.inventory_item_id
1055 from msc_item_customers mic
1056 where mic.customer_item_name = NVL(ln.owner_item_name,
1057 NVL(ln.customer_item_name,
1058 ln.supplier_item_name)) and
1059 mic.plan_id = -1 );
1060
1061 --======================================================================
1062 -- Validation: Check if publisher site exists
1063 --======================================================================
1064 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER_SITE', p_language);
1065 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1066 UPDATE msc_supdem_lines_interface ln
1067 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1068 WHERE ln.parent_header_id = p_header_id AND
1069 ln.line_id = t_line_id(j) AND
1070 Upper(ln.sync_indicator) = 'D' AND
1071 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1072 NOT EXISTS (SELECT cs.company_site_id
1073 FROM msc_company_sites cs,
1074 msc_companies c
1075 WHERE UPPER(c.company_name) = UPPER(ln.publisher_company) AND
1076 c.company_id = cs.company_id AND
1077 UPPER(cs.company_site_name) = UPPER(ln.publisher_site));
1078
1079 --========================================================
1080 -- Validation: Check if customer company exists
1081 --========================================================
1082 l_err_msg := get_message('MSC', 'MSC_X_INVALID_CUSTOMER', p_language);
1083 FORALL j in t_line_id.FIRST..t_line_id.LAST
1084 UPDATE msc_supdem_lines_interface ln
1085 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1086 WHERE ln.parent_header_id = p_header_id AND
1087 ln.line_id = t_line_id(j) AND
1088 Upper(ln.sync_indicator) = 'D' AND
1089 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1090 ln.customer_company IS NOT NULL AND
1091 NOT EXISTS (SELECT c.company_id
1092 FROM msc_companies c,
1093 msc_companies c1,
1094 msc_company_relationships r
1095 WHERE UPPER(c.company_name) = UPPER(ln.customer_company) and
1096 UPPER(c1.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) and
1097 r.subject_id = c1.company_id and
1098 r.object_id = c.company_id and
1099 r.relationship_type = 1);
1100
1101 --========================================================
1102 -- Validation: Check if customer site exists
1103 --========================================================
1104 l_err_msg := get_message('MSC', 'MSC_X_INVALID_CUST_SITE', p_language);
1105 FORALL j in t_line_id.FIRST..t_line_id.LAST
1106 UPDATE msc_supdem_lines_interface ln
1107 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1108 WHERE ln.parent_header_id = p_header_id AND
1109 ln.line_id = t_line_id(j) AND
1110 Upper(ln.sync_indicator) = 'D' AND
1111 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1112 ln.customer_company IS NOT NULL AND
1113 NOT EXISTS (SELECT cs.company_site_id
1114 FROM msc_company_sites cs,
1115 msc_companies c
1116 WHERE UPPER(c.company_name) = UPPER(ln.customer_company) AND
1117 c.company_id = cs.company_id AND
1118 UPPER(cs.company_site_name) = UPPER(NVL(ln.customer_site,
1119 G_NULL_STRING)));
1120
1121 --========================================================
1122 -- Validation: Check if supplier company exists
1123 --========================================================
1124 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SUPPLIER', p_language);
1125 FORALL j in t_line_id.FIRST..t_line_id.LAST
1126 UPDATE msc_supdem_lines_interface ln
1127 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1128 WHERE ln.parent_header_id = p_header_id AND
1129 ln.line_id = t_line_id(j) AND
1130 Upper(ln.sync_indicator) = 'D' AND
1131 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1132 ln.supplier_company IS NOT NULL AND
1133 NOT EXISTS (SELECT c.company_id
1134 FROM msc_companies c,
1135 msc_companies c1,
1136 msc_company_relationships r
1137 WHERE UPPER(c.company_name) = UPPER(ln.supplier_company) and
1138 UPPER(c1.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) and
1139 r.subject_id = c1.company_id and
1140 r.object_id = c.company_id and
1141 r.relationship_type = 2);
1142
1143 --========================================================
1144 -- Validation: Check if supplier site exists
1145 --========================================================
1146 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SUPP_SITE', p_language);
1147 FORALL j in t_line_id.FIRST..t_line_id.LAST
1148 UPDATE msc_supdem_lines_interface ln
1149 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1150 WHERE ln.parent_header_id = p_header_id AND
1151 ln.line_id = t_line_id(j) AND
1152 Upper(ln.sync_indicator) = 'D' AND
1153 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1154 ln.supplier_company IS NOT NULL AND
1155 NOT EXISTS (SELECT cs.company_site_id
1156 FROM msc_company_sites cs,
1157 msc_companies c
1158 WHERE UPPER(c.company_name) = UPPER(ln.supplier_company) AND
1159 c.company_id = cs.company_id AND
1160 UPPER(cs.company_site_name) = UPPER(NVL(ln.supplier_site,
1161 G_NULL_STRING)));
1162
1163 --============================================================================
1164 -- Populate the Key Date. This is required for c_delete in PROCEDURE validate
1165 -- Verify that the bucket end date is greater than the key date.
1166 --============================================================================
1167 OPEN key_dates(p_header_id, l_start_line, l_end_line, p_language);
1168 FETCH key_dates bulk collect INTO t_tmp_line_id, t_tmp_ot;
1169 CLOSE key_dates;
1170
1171 IF t_tmp_line_id IS NOT NULL AND t_tmp_line_id.COUNT > 0 THEN
1172 forall j IN t_tmp_line_id.first..t_tmp_line_id.last
1173
1174 UPDATE msc_supdem_lines_interface ln
1175 SET ln.key_date = Decode(t_tmp_ot(j),
1176 G_WORK_ORDER,ln.wip_end_date,
1177 G_PURCHASE_ORDER, -- jguo
1178 DECODE(ln.shipping_control,
1179 1, ln.receipt_date,
1180 2, ln.ship_date,
1181 ln.receipt_date),
1182 G_SHIP_RECEIPT, ln.receipt_date,
1183 G_ORDER_FORECAST,-- jguo
1184 DECODE(ln.shipping_control,
1185 1, ln.receipt_date,
1186 2, ln.ship_date,
1187 ln.receipt_date),
1188 G_REQUISITION, -- jguo
1189 DECODE(ln.shipping_control,
1190 1, ln.receipt_date,
1191 2, ln.ship_date,
1192 ln.receipt_date),
1193 G_SELL_THRO_FCST, ln.ship_date,
1194 G_SUPPLIER_CAP, ln.ship_date,
1195 G_HIST_SALES, ln.new_schedule_date,
1196 G_SAFETY_STOCK, ln.new_schedule_date,
1197 G_ALLOC_ONHAND, ln.new_schedule_date,
1198 G_UNALLOCATED_ONHAND, ln.new_schedule_date,
1199 g_safety_stock, ln.new_schedule_date,
1200 g_proj_avai_bal, ln.new_schedule_date,
1201 G_CONS_ADVICE, ln.new_schedule_date,
1202 G_SUPPLY_COMMIT, -- jguo Nvl(ln.ship_date, ln.receipt_date),
1203 DECODE(ln.shipping_control,
1204 1, ln.receipt_date,
1205 2, ln.ship_date,
1206 Nvl(ln.receipt_date, ln.ship_date)),
1207 G_ASN, -- jguo Nvl(ln.ship_date, ln.receipt_date),
1208 DECODE(ln.shipping_control,
1209 1, ln.receipt_date,
1210 2, ln.receipt_date,
1211 nvl(ln.receipt_date, ln.ship_date)),
1212 G_SALES_FORECAST, -- jguo Nvl(ln.ship_date, ln.receipt_date),
1213 DECODE(ln.shipping_control,
1214 1, ln.ship_date,
1215 2, ln.ship_date,
1216 Nvl(ln.ship_date, ln.receipt_date)),
1217 G_SALES_ORDER, -- jguo Nvl(ln.ship_date, ln.receipt_date),
1218 DECODE(ln.shipping_control,
1219 1, ln.receipt_date,
1220 2, ln.ship_date,
1221 Nvl(ln.receipt_date, ln.ship_date)), -- jguo
1222 NULL)
1223 WHERE ln.parent_header_id = p_header_id
1224 AND ln.line_id = t_tmp_line_id(j)
1225 AND Upper(ln.sync_indicator) = 'D';
1226
1227
1228
1229 END IF;
1230
1231
1232 /* sbala ADD CA */
1233 --======================================================================
1234 -- Validation: Check if key date <= new schedule end date
1235 --======================================================================
1236 l_err_msg := get_message('MSC', 'MSC_X_INVALID_END_DATE', p_language);
1237 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1238 UPDATE msc_supdem_lines_interface ln
1239 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1240 WHERE ln.parent_header_id = p_header_id AND
1241 ln.line_id = t_line_id(j) AND
1242 Upper(ln.sync_indicator) = 'D' AND
1243 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1244 ln.key_date IS NOT NULL AND
1245 ln.new_schedule_end_date IS NOT NULL AND
1246 to_date(ln.new_schedule_end_date, p_date_format) <
1247 to_date(ln.key_date, p_date_format);
1248
1249
1250 --=======================================================================
1251 -- End of Validations for sync indicator 'D'
1252 --=======================================================================
1253 forall j IN t_line_id.first..t_line_id.last
1254 UPDATE msc_supdem_lines_interface ln
1255 SET ln.row_status = g_failure
1256 WHERE ln.err_msg IS NOT NULL
1257 AND Upper(ln.sync_indicator) = 'D'
1258 AND ln.parent_header_id = p_header_id
1259 AND ln.line_id = t_line_id(j);
1260
1261 forall j IN t_line_id.first..t_line_id.last
1262 UPDATE msc_supdem_lines_interface ln
1263 SET ln.row_status = g_success
1264 WHERE ln.err_msg IS NULL
1265 AND Upper(ln.sync_indicator) = 'D'
1266 AND ln.parent_header_id = p_header_id
1267 AND ln.line_id = t_line_id(j);
1268
1269 END IF;
1270
1271 --=======================================================================
1272 -- Other Independent validations for sync indicator 'R'
1273 --=======================================================================
1274 --Perform remaining validations for records with sync indicator equal to 'R'
1275 SELECT line_id
1276 BULK COLLECT INTO t_line_id
1277 FROM msc_supdem_lines_interface
1278 WHERE sync_indicator = 'R' AND
1279 NVL(row_status, G_PROCESS) = G_PROCESS AND
1280 parent_header_id = p_header_id AND
1281 line_id BETWEEN l_start_line and l_end_line;
1282
1283 IF t_line_id IS NOT NULL AND t_line_id.COUNT > 0 THEN
1284 --=======================================================================
1285 -- Validation: Check that exactly two parties are involved in the transaction
1286 --=======================================================================
1287 l_err_msg := get_message('MSC', 'MSC_X_INVALID_MULTIPLE_PARTIES', p_language);
1288 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1289 UPDATE msc_supdem_lines_interface ln
1290 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1291 WHERE ln.parent_header_id = p_header_id AND
1292 ln.line_id = t_line_id(j) AND
1293 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1294 ln.publisher_company IS NOT NULL and
1295 ln.supplier_company IS NOT NULL and
1296 ln.customer_company IS NOT NULL;
1297
1298 --========================================================
1299 -- Validation: Check if posted quantity is positive
1300 --========================================================
1301 l_err_msg := get_message('MSC', 'MSC_X_INVALID_QUANTITY', p_language);
1302 FORALL j in t_line_id.FIRST..t_line_id.LAST
1303 UPDATE msc_supdem_lines_interface ln
1304 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1305 WHERE ln.parent_header_id = p_header_id AND
1306 ln.line_id = t_line_id(j) AND
1307 nVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1308 NVL(ln.quantity,-1) < 0;
1309
1310 --========================================================
1311 -- Validation: Check if ship from company exists
1312 --========================================================
1313 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_FROM_PARTY', p_language);
1314 FORALL j in t_line_id.FIRST..t_line_id.LAST
1315 UPDATE msc_supdem_lines_interface ln
1316 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1317 WHERE ln.parent_header_id = p_header_id AND
1318 ln.line_id = t_line_id(j) AND
1319 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1320 ln.ship_from_party_name IS NOT NULL AND
1321 NOT EXISTS (SELECT c.company_id
1322 FROM msc_companies c
1323 WHERE UPPER(c.company_name) = UPPER(ln.ship_from_party_name));
1324
1325 --========================================================
1326 -- Validation: Check if ship to company exists
1327 --========================================================
1328 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_TO_PARTY', p_language);
1329 FORALL j in t_line_id.FIRST..t_line_id.LAST
1330 UPDATE msc_supdem_lines_interface ln
1331 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1332 WHERE ln.parent_header_id = p_header_id AND
1333 ln.line_id = t_line_id(j) AND
1334 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1335 ln.ship_to_party_name IS NOT NULL AND
1336 NOT EXISTS (SELECT c.company_id
1337 FROM msc_companies c
1338 WHERE UPPER(c.company_name) = UPPER(ln.ship_to_party_name));
1339
1340 --========================================================
1341 -- Validation: Check if end order publisher exists
1342 --========================================================
1343 l_err_msg := get_message('MSC', 'MSC_X_INVALID_END_ORDER_PUB', p_language);
1344 FORALL j in t_line_id.FIRST..t_line_id.LAST
1345 UPDATE msc_supdem_lines_interface ln
1346 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1347 WHERE ln.parent_header_id = p_header_id AND
1348 ln.line_id = t_line_id(j) AND
1349 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1350 ln.end_order_publisher_name IS NOT NULL AND
1351 NOT EXISTS (SELECT c.company_id
1352 FROM msc_companies c
1353 WHERE UPPER(c.company_name) = UPPER(ln.end_order_publisher_name));
1354
1355 --========================================================
1356 -- Validation: Check if end order type is valid
1357 --========================================================
1358 l_err_msg := get_message('MSC', 'MSC_X_INVALID_END_ORDER_TYPE', p_language);
1359 FORALL j in t_line_id.FIRST..t_line_id.LAST
1360 UPDATE msc_supdem_lines_interface ln
1361 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1362 WHERE ln.parent_header_id = p_header_id AND
1363 ln.line_id = t_line_id(j) AND
1364 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1365 ln.pegging_order_identifier IS NOT NULL AND
1366 ln.end_order_type IS NULL;
1367
1368 FORALL j in t_line_id.FIRST..t_line_id.LAST
1369 UPDATE msc_supdem_lines_interface ln
1370 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1371 WHERE ln.parent_header_id = p_header_id AND
1372 ln.line_id = t_line_id(j) AND
1373 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1374 ln.end_order_type IS NOT NULL AND
1375 NOT EXISTS (SELECT l.lookup_code
1376 FROM fnd_lookup_values l
1377 WHERE l.lookup_type = 'MSC_X_ORDER_TYPE' AND
1378 UPPER(l.meaning) = NVL(UPPER(ln.end_order_type), G_NULL_STRING) AND
1379 l.language = p_language);
1380
1381
1382 --======================================================================
1383 -- Validation: Check if uom codes are valid. If no uom code is
1384 -- specified the default uom 'Ea' is used.
1385 --======================================================================
1386 l_err_msg := get_message('MSC', 'MSC_X_INVALID_UOM_CODE', p_language);
1387 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1388 UPDATE msc_supdem_lines_interface ln
1389 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1390 WHERE ln.parent_header_id = p_header_id AND
1391 ln.line_id = t_line_id(j) AND
1392 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1393 NOT EXISTS (SELECT u.uom_code
1394 FROM msc_units_of_measure u
1395 WHERE u.uom_code = NVL(ln.uom, G_UOM));
1396
1397 --=======================================================================
1398 --End of independent errors for sync indicator R
1399 --=======================================================================
1400 forall j IN t_line_id.first..t_line_id.last
1401 UPDATE msc_supdem_lines_interface ln
1402 SET ln.row_status = g_failure
1403 WHERE ln.err_msg IS NOT NULL
1404 AND Upper(ln.sync_indicator) = 'R'
1405 AND ln.parent_header_id = p_header_id
1406 AND ln.line_id = t_line_id(j);
1407
1408 --=======================================================================
1409 -- Dependent validations for sync indicator R
1410 --=======================================================================
1411 --Performing MOE validations
1412 if p_build_err = 2 THEN
1413 SELECT flv.lookup_code,
1414 ln.line_id
1415 BULK COLLECT into t_order_type, t_line_id1
1416 FROM fnd_lookup_values flv,
1417 msc_supdem_lines_interface ln
1418 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' and
1419 flv.language = p_language and
1420 flv.meaning = ln.order_type and
1421 nvl(ln.row_status, G_PROCESS) = G_PROCESS and
1422 ln.parent_header_id = p_header_id and
1423 ln.line_id between l_start_line and l_end_line;
1424
1425 IF t_line_id1 IS NOT NULL AND t_line_id1.COUNT > 0 THEN
1426 l_err_msg := get_message('MSC', 'MSC_X_INVALID_FEW_PARTIES', p_language);
1427 FORALL j in t_line_id1.FIRST..t_line_id1.LAST
1428 UPDATE msc_supdem_lines_interface ln
1429 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1430 WHERE ln.parent_header_id = p_header_id AND
1431 ln.line_id = t_line_id1(j) AND
1432 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1433 (ln.customer_company IS NULL OR
1434 ln.supplier_company IS NULL) AND
1435 t_order_type(j) NOT IN (g_unallocated_onhand, g_work_order, g_safety_stock, g_proj_avai_bal, G_CONS_ADVICE);
1436
1437 FORALL j in t_line_id1.FIRST..t_line_id1.LAST
1438 UPDATE msc_supdem_lines_interface ln
1439 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1440 WHERE ln.parent_header_id = p_header_id AND
1441 ln.line_id = t_line_id1(j) AND
1442 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1443 ln.customer_company IS NULL AND
1444 ln.supplier_company IS NULL AND
1445 t_order_type(j) IN (g_unallocated_onhand, g_work_order, g_safety_stock, g_proj_avai_bal, G_CONS_ADVICE);
1446
1447 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PROXY_SF', p_language);
1448 FORALL j in t_line_id1.FIRST..t_line_id1.LAST
1449 UPDATE msc_supdem_lines_interface ln
1450 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1451 WHERE ln.parent_header_id = p_header_id AND
1452 ln.line_id = t_line_id1(j) AND
1453 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1454 ln.customer_company <> ln.posting_party_name AND
1455 ln.supplier_company <> ln.posting_party_name AND
1456 G_SALES_FORECAST = t_order_type(j);
1457
1458 FORALL j in t_line_id1.FIRST..t_line_id1.LAST
1459 UPDATE msc_supdem_lines_interface ln
1460 SET ln.publisher_company = decode(t_order_type(j),
1461 G_SALES_FORECAST, ln.posting_party_name,
1462 G_ORDER_FORECAST, ln.customer_company,
1463 G_SUPPLY_COMMIT, ln.supplier_company,
1464 G_HIST_SALES, ln.posting_party_name,
1465 G_SELL_THRO_FCST, ln.posting_party_name,
1466 G_SUPPLIER_CAP, ln.supplier_company,
1467 G_ALLOC_ONHAND, ln.customer_company,
1468 G_UNALLOCATED_ONHAND,
1469 nvl(ln.customer_company, ln.supplier_company),
1470 g_safety_stock,
1471 nvl(ln.customer_company, ln.supplier_company),
1472 g_proj_avai_bal,
1473 nvl(ln.customer_company, ln.supplier_company),
1474 G_CONS_ADVICE, nvl(ln.customer_company,
1475 ln.supplier_company),
1476 G_PURCHASE_ORDER, ln.customer_company,
1477 G_SALES_ORDER, ln.supplier_company,
1478 G_ASN, ln.supplier_company,
1479 G_SHIP_RECEIPT, ln.customer_company,
1480 G_REPLENISHMENT, ln.supplier_company,
1481 G_REQUISITION, ln.customer_company,
1482 G_PO_ACKNOWLEDGEMENT, ln.supplier_company,
1483 G_WORK_ORDER, ln.supplier_company),
1484 ln.publisher_site = decode(t_order_type(j),
1485 G_SALES_FORECAST,
1486 decode(ln.posting_party_name,
1487 ln.customer_company,
1488 ln.customer_site,
1489 ln.supplier_company,
1490 ln.supplier_site,
1491 null),
1492 G_ORDER_FORECAST, ln.customer_site,
1493 G_SUPPLY_COMMIT, ln.supplier_site,
1494 G_HIST_SALES,
1495 decode(ln.posting_party_name,
1496 ln.customer_company,
1497 ln.customer_site,
1498 ln.supplier_company,
1499 ln.supplier_site,
1500 null),
1501 G_SELL_THRO_FCST,
1502 decode(ln.posting_party_name,
1503 ln.customer_company,
1504 ln.customer_site,
1505 ln.supplier_company,
1506 ln.supplier_site,
1507 null),
1508 G_SUPPLIER_CAP, ln.supplier_site,
1509 G_ALLOC_ONHAND, ln.customer_site,
1510 G_UNALLOCATED_ONHAND,
1511 nvl(ln.customer_site, ln.supplier_site),
1512 g_safety_stock,
1513 nvl(ln.customer_site, ln.supplier_site),
1514 g_proj_avai_bal,
1515 nvl(ln.customer_site, ln.supplier_site),
1516 G_CONS_ADVICE,
1517 nvl(ln.customer_site, ln.supplier_site),
1518 G_PURCHASE_ORDER, ln.customer_site,
1519 G_SALES_ORDER, ln.supplier_site,
1520 G_ASN, ln.supplier_site,
1521 G_SHIP_RECEIPT, ln.customer_site,
1522 G_REPLENISHMENT, ln.supplier_site,
1523 G_REQUISITION, ln.customer_site,
1524 G_PO_ACKNOWLEDGEMENT, ln.supplier_site,
1525 G_WORK_ORDER, ln.supplier_site)
1526 WHERE ln.parent_header_id = p_header_id AND
1527 ln.line_id = t_line_id1(j) AND
1528 NVL(ln.row_status, G_PROCESS) = G_PROCESS;
1529
1530 --======================================================================
1531 -- Validation: Check if Posting Party is one of the Trading partners
1532 --======================================================================
1533 if (G_USER_IS_ADMIN <> SYS_YES) then
1534 /* only for users who do not have SC Admin Responsibility */
1535 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER', p_language);
1536 FORALL j IN t_line_id1.FIRST..t_line_id1.LAST
1537 UPDATE msc_supdem_lines_interface ln
1538 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000),
1539 ln.row_status = G_FAILURE
1540 WHERE ln.parent_header_id = p_header_id AND
1541 ln.line_id = t_line_id1(j) AND
1542 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1543 not exists ( select 1
1544 from dual
1545 where upper(ln.posting_party_name) =
1546 upper(nvl(ln.supplier_company,G_NULL_STRING))
1547 union select 1
1548 from dual
1549 where upper(ln.posting_party_name) =
1550 upper(nvl(ln.customer_company,G_NULL_STRING))
1551 union select 1
1552 from dual
1553 where upper(ln.posting_party_name) =
1554 upper(nvl(ln.publisher_company,G_NULL_STRING))
1555 );
1556 end if;
1557
1558 /* sbala ADD CA */
1559 FORALL j in t_line_id1.FIRST..t_line_id1.LAST
1560 UPDATE msc_supdem_lines_interface ln
1561 SET ln.customer_company = decode(t_order_type(j),
1562 G_SALES_FORECAST,
1563 decode(ln.posting_party_name,
1564 ln.customer_company,
1565 null,
1566 ln.customer_company),
1567 G_ORDER_FORECAST, null,
1568 G_HIST_SALES,
1569 decode(ln.posting_party_name,
1570 ln.customer_company,
1571 null,
1572 ln.customer_company),
1573 G_SELL_THRO_FCST,
1574 decode(ln.posting_party_name,
1575 ln.customer_company,
1576 null,
1577 ln.customer_company),
1578 G_ALLOC_ONHAND, null,
1579 G_UNALLOCATED_ONHAND, null,
1580 g_safety_stock, NULL,
1581 g_proj_avai_bal, NULL,
1582 G_CONS_ADVICE, NULL,
1583 G_PURCHASE_ORDER, null,
1584 G_SHIP_RECEIPT, null,
1585 G_REQUISITION, null,
1586 ln.customer_company),
1587 ln.customer_site = decode(t_order_type(j),
1588 G_SALES_FORECAST,
1589 decode(ln.posting_party_name,
1590 ln.customer_company,
1591 null,
1592 ln.customer_site),
1593 G_ORDER_FORECAST, null,
1594 G_HIST_SALES,
1595 decode(ln.posting_party_name,
1596 ln.customer_company,
1597 null,
1598 ln.customer_site),
1599 G_SELL_THRO_FCST,
1600 decode(ln.posting_party_name,
1601 ln.customer_company,
1602 null,
1603 ln.customer_site),
1604 G_ALLOC_ONHAND, null,
1605 G_UNALLOCATED_ONHAND, null,
1606 g_safety_stock, NULL,
1607 g_proj_avai_bal, NULL,
1608 G_PURCHASE_ORDER, null,
1609 G_SHIP_RECEIPT, null,
1610 G_REQUISITION, null,
1611 G_CONS_ADVICE, null,
1612 ln.customer_site),
1613 ln.supplier_company = decode(t_order_type(j),
1614 G_SALES_FORECAST,
1615 decode(ln.posting_party_name,
1616 ln.supplier_company,
1617 null,
1618 ln.supplier_company),
1619 G_HIST_SALES,
1620 decode(ln.posting_party_name,
1621 ln.supplier_company,
1622 null,
1623 ln.supplier_company),
1624 G_SELL_THRO_FCST,
1625 decode(ln.posting_party_name,
1626 ln.supplier_company,
1627 null,
1628 ln.supplier_company),
1629 G_SUPPLY_COMMIT, null,
1630 G_SUPPLIER_CAP, null,
1631 G_UNALLOCATED_ONHAND, null,
1632 g_safety_stock, NULL,
1633 g_proj_avai_bal, NULL,
1634 G_CONS_ADVICE, null,
1635 G_SALES_ORDER, null,
1636 G_ASN, null,
1637 G_REPLENISHMENT, null,
1638 G_PO_ACKNOWLEDGEMENT, null,
1639 G_WORK_ORDER, null,
1640 ln.supplier_company),
1641 ln.supplier_site = decode(t_order_type(j),
1642 G_SALES_FORECAST,
1643 decode(ln.posting_party_name,
1644 ln.supplier_company,
1645 null,
1646 ln.supplier_site),
1647 G_HIST_SALES,
1648 decode(ln.posting_party_name,
1649 ln.supplier_company,
1650 null,
1651 ln.supplier_site),
1652 G_SELL_THRO_FCST,
1653 decode(ln.posting_party_name,
1654 ln.supplier_company,
1655 null,
1656 ln.supplier_site),
1657 G_SUPPLY_COMMIT, null,
1658 G_SUPPLIER_CAP, null,
1659 G_UNALLOCATED_ONHAND, null,
1660 G_CONS_ADVICE, null,
1661 g_safety_stock, NULL,
1662 g_proj_avai_bal, NULL,
1663 G_SALES_ORDER, null,
1664 G_ASN, null,
1665 G_REPLENISHMENT, null,
1666 G_PO_ACKNOWLEDGEMENT, null,
1667 G_WORK_ORDER, null,
1668 ln.supplier_site)
1669 WHERE ln.parent_header_id = p_header_id AND
1670 ln.line_id = t_line_id1(j) AND
1671 NVL(ln.row_status, G_PROCESS) = G_PROCESS;
1672 /* sbala ADD CA */
1673
1674 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER', p_language);
1675 FORALL j IN t_line_id1.FIRST..t_line_id1.LAST
1676 UPDATE msc_supdem_lines_interface ln
1677 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000),
1678 ln.row_status = G_FAILURE
1679 WHERE ln.parent_header_id = p_header_id AND
1680 ln.line_id = t_line_id1(j) AND
1681 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1682 ln.publisher_company IS NOT NULL AND
1683 NOT EXISTS (SELECT c.company_id
1684 FROM msc_companies c
1685 WHERE UPPER(c.company_name) = UPPER(ln.publisher_company));
1686
1687 end if; -- if t_line_id1
1688 end if; -- if MOE
1689
1690 --======================================================================
1691 -- Validation: Check if publisher site exists
1692 --======================================================================
1693 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER_SITE', p_language);
1694 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1695 UPDATE msc_supdem_lines_interface ln
1696 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1697 WHERE ln.parent_header_id = p_header_id AND
1698 ln.line_id = t_line_id(j) AND
1699 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1700 NOT EXISTS (SELECT cs.company_site_id
1701 FROM msc_company_sites cs,
1702 msc_companies c
1703 WHERE UPPER(c.company_name) = UPPER(ln.publisher_company) AND
1704 c.company_id = cs.company_id AND
1705 UPPER(cs.company_site_name) = UPPER(ln.publisher_site));
1706
1707 --========================================================
1708 -- Validation: Check if either customer company or the
1709 -- supplier company is populated if the order type is NOT
1710 -- unallocated onhand or work order.
1711 -- Check if both customer and supplier company
1712 -- is null for unallocated onhand records.
1713 --========================================================
1714 l_err_msg := get_message('MSC', 'MSC_X_NULL_SUBSCRIBER', p_language);
1715 FORALL j in t_line_id.FIRST..t_line_id.LAST
1716 UPDATE msc_supdem_lines_interface ln
1717 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1718 WHERE ln.parent_header_id = p_header_id AND
1719 ln.line_id = t_line_id(j) AND
1720 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1721 ln.customer_company IS NULL AND
1722 ln.supplier_company IS NULL AND
1723 not exists (SELECT 1
1724 FROM fnd_lookup_values flv
1725 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
1726 UPPER(flv.meaning) = UPPER(ln.order_type) AND
1727 flv.language = p_language AND
1728 flv.lookup_code in (G_UNALLOCATED_ONHAND,G_CONS_ADVICE,g_work_order,g_safety_stock,g_proj_avai_bal));
1729 /* sbala ADD CA */
1730 l_err_msg := get_message('MSC', 'MSC_X_INVALID_MULT_PARTIES_UO', p_language);
1731 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1732 UPDATE msc_supdem_lines_interface ln
1733 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1734 WHERE ln.parent_header_id = p_header_id AND
1735 ln.line_id = t_line_id(j) AND
1736 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1737 (ln.supplier_company IS NOT NULL or
1738 ln.customer_company IS NOT NULL) and
1739 (G_UNALLOCATED_ONHAND = (SELECT flv.lookup_code
1740 FROM fnd_lookup_values flv
1741 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
1742 UPPER(flv.meaning) = UPPER(ln.order_type) AND
1743 flv.language = p_language) OR
1744 G_CONS_ADVICE = (SELECT flv.lookup_code
1745 FROM fnd_lookup_values flv
1746 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
1747 UPPER(flv.meaning) = UPPER(ln.order_type) AND
1748 flv.language = p_language) OR
1749 g_safety_stock = (SELECT flv.lookup_code
1750 FROM fnd_lookup_values flv
1751 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
1752 UPPER(flv.meaning) = UPPER(ln.order_type) AND
1753 flv.language = p_language) OR
1754 g_proj_avai_bal = (SELECT flv.lookup_code
1755 FROM fnd_lookup_values flv
1756 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
1757 UPPER(flv.meaning) = UPPER(ln.order_type) AND
1758 flv.language = p_language));
1759 /* sbala ADD CA */
1760 --========================================================
1761 -- Validation: Check if customer company exists
1762 --========================================================
1763 l_err_msg := get_message('MSC', 'MSC_X_INVALID_CUSTOMER', p_language);
1764 FORALL j in t_line_id.FIRST..t_line_id.LAST
1765 UPDATE msc_supdem_lines_interface ln
1766 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1767 WHERE ln.parent_header_id = p_header_id AND
1768 ln.line_id = t_line_id(j) AND
1769 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1770 ln.customer_company IS NOT NULL AND
1771 NOT EXISTS (SELECT c.company_id
1772 FROM msc_companies c,
1773 msc_companies c1,
1774 msc_company_relationships r
1775 WHERE UPPER(c.company_name) = UPPER(ln.customer_company) and
1776 UPPER(c1.company_name) = UPPER(NVL(ln.publisher_company,
1777 ln.posting_party_name)) and
1778 r.subject_id = c1.company_id and
1779 r.object_id = c.company_id and
1780 r.relationship_type = 1);
1781
1782 --========================================================
1783 -- Validation: Check if customer site exists
1784 --========================================================
1785 l_err_msg := get_message('MSC', 'MSC_X_INVALID_CUST_SITE', p_language);
1786 FORALL j in t_line_id.FIRST..t_line_id.LAST
1787 UPDATE msc_supdem_lines_interface ln
1788 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1789 WHERE ln.parent_header_id = p_header_id AND
1790 ln.line_id = t_line_id(j) AND
1791 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1792 ln.customer_company IS NOT NULL AND
1793 NOT EXISTS (SELECT cs.company_site_id
1794 FROM msc_company_sites cs,
1795 msc_companies c
1796 WHERE UPPER(c.company_name) = UPPER(ln.customer_company) AND
1797 c.company_id = cs.company_id AND
1798 UPPER(cs.company_site_name) = UPPER(NVL(ln.customer_site,
1799 G_NULL_STRING)));
1800
1801 --========================================================
1802 -- Validation: Check if supplier company exists
1803 --========================================================
1804 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SUPPLIER', p_language);
1805 FORALL j in t_line_id.FIRST..t_line_id.LAST
1806 UPDATE msc_supdem_lines_interface ln
1807 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1808 WHERE ln.parent_header_id = p_header_id AND
1809 ln.line_id = t_line_id(j) AND
1810 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1811 ln.supplier_company IS NOT NULL AND
1812 NOT EXISTS (SELECT c.company_id
1813 FROM msc_companies c,
1814 msc_companies c1,
1815 msc_company_relationships r
1816 WHERE UPPER(c.company_name) = UPPER(ln.supplier_company) and
1817 UPPER(c1.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) and
1818 r.subject_id = c1.company_id and
1819 r.object_id = c.company_id and
1820 r.relationship_type = 2);
1821
1822 --========================================================
1823 -- Validation: Check if supplier site exists
1824 --========================================================
1825 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SUPP_SITE', p_language);
1826 FORALL j in t_line_id.FIRST..t_line_id.LAST
1827 UPDATE msc_supdem_lines_interface ln
1828 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1829 WHERE ln.parent_header_id = p_header_id AND
1830 ln.line_id = t_line_id(j) AND
1831 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1832 ln.supplier_company IS NOT NULL AND
1833 NOT EXISTS (SELECT cs.company_site_id
1834 FROM msc_company_sites cs,
1835 msc_companies c
1836 WHERE UPPER(c.company_name) = UPPER(ln.supplier_company) AND
1837 c.company_id = cs.company_id AND
1838 UPPER(cs.company_site_name) = UPPER(NVL(ln.supplier_site,
1839 G_NULL_STRING)));
1840
1841 --========================================================
1842 -- Validation: Check if ship from site exists
1843 --========================================================
1844 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_FROM_SITE', p_language);
1845 FORALL j in t_line_id.FIRST..t_line_id.LAST
1846 UPDATE msc_supdem_lines_interface ln
1847 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1848 WHERE ln.parent_header_id = p_header_id AND
1849 ln.line_id = t_line_id(j) AND
1850 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1851 ln.ship_from_party_name IS NOT NULL AND
1852 NOT EXISTS (SELECT cs.company_site_id
1853 FROM msc_company_sites cs,
1854 msc_companies c
1855 WHERE UPPER(c.company_name) = UPPER(ln.ship_from_party_name) AND
1856 c.company_id = cs.company_id AND
1857 UPPER(cs.company_site_name) = UPPER(NVL(ln.ship_from_party_site, G_NULL_STRING)));
1858
1859
1860 --========================================================
1861 -- Validation: Check if ship to site exists
1862 --========================================================
1863 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_TO_SITE', p_language);
1864 FORALL j in t_line_id.FIRST..t_line_id.LAST
1865 UPDATE msc_supdem_lines_interface ln
1866 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1867 WHERE ln.parent_header_id = p_header_id AND
1868 ln.line_id = t_line_id(j) AND
1869 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1870 ln.ship_to_party_name IS NOT NULL AND
1871 NOT EXISTS (SELECT cs.company_site_id
1872 FROM msc_company_sites cs,
1873 msc_companies c
1874 WHERE UPPER(c.company_name) = UPPER(ln.ship_to_party_name) AND
1875 c.company_id = cs.company_id AND
1876 UPPER(cs.company_site_name) = UPPER(NVL(ln.ship_to_party_site, G_NULL_STRING)));
1877
1878 --========================================================
1879 -- Validation: Check if end order publisher site exists
1880 --========================================================
1881 l_err_msg := get_message('MSC', 'MSC_X_INV_END_ORD_PUB_SITE', p_language);
1882 FORALL j in t_line_id.FIRST..t_line_id.LAST
1883 UPDATE msc_supdem_lines_interface ln
1884 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1885 WHERE ln.parent_header_id = p_header_id AND
1886 ln.line_id = t_line_id(j) AND
1887 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
1888 ln.end_order_publisher_name IS NOT NULL AND
1889 NOT EXISTS (SELECT cs.company_site_id
1890 FROM msc_company_sites cs,
1891 msc_companies c
1892 WHERE UPPER(c.company_name) = UPPER(ln.end_order_publisher_name) AND
1893 c.company_id = cs.company_id AND
1894 UPPER(cs.company_site_name) = UPPER(NVL(ln.end_order_publisher_site, G_NULL_STRING)));
1895
1896 --========================================================================
1897 --Validation: Item check for records with sync indicator 'R'
1898 --========================================================================
1899 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ITEM', p_language);
1900 FORALL j IN t_line_id.FIRST..t_line_id.LAST
1901 update msc_supdem_lines_interface ln
1902 set ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
1903 where ln.parent_header_id = p_header_id and
1904 ln.line_id = t_line_id(j) and
1905 NVL(ln.row_status, G_PROCESS) = G_PROCESS and
1906 ln.sync_indicator = 'R' and
1907 not exists ( select i.inventory_item_id
1908 from msc_items i
1909 where i.item_name = ln.item_name
1910 UNION
1911 select msi.inventory_item_id
1912 from msc_system_items msi,
1913 msc_trading_partners part,
1914 msc_trading_partner_maps map,
1915 msc_company_sites cs,
1916 msc_companies c
1917 where msi.plan_id = -1 and
1918 msi.item_name = nvl(ln.owner_item_name,
1919 nvl(ln.customer_item_name,
1920 ln.supplier_item_name)) and
1921 msi.organization_id = part.sr_tp_id and
1922 msi.sr_instance_id = part.sr_instance_id and
1923 part.partner_type = 3 and
1924 part.partner_id = map.tp_key and
1925 map.map_type = 2 and
1926 map.company_key = cs.company_site_id and
1927 UPPER(cs.company_site_name) = UPPER(decode(ln.owner_item_name,
1928 null,
1929 decode(ln.customer_item_name,
1930 null,
1931 nvl(ln.supplier_site,
1932 ln.publisher_site),
1933 nvl(ln.customer_site,
1934 ln.publisher_site)),
1935 ln.publisher_site)) and
1936 cs.company_id = c.company_id and
1937 UPPER(c.company_name) = UPPER(decode(ln.owner_item_name,
1938 null,
1939 decode(ln.customer_item_name,
1940 null,
1941 nvl(ln.supplier_company,
1942 ln.publisher_company),
1943 nvl(ln.customer_company,
1944 ln.publisher_company)),
1945 ln.publisher_company)) and
1946 NVL(part.company_id,1) = c.company_id and
1947 ln.item_name IS NULL
1948 UNION
1949 select mis.inventory_item_id
1950 from msc_item_suppliers mis,
1951 msc_trading_partners mtp,
1952 msc_trading_partner_maps map,
1953 msc_trading_partner_maps map1,
1954 msc_trading_partner_maps map2,
1955 msc_company_relationships r,
1956 msc_company_sites cs,
1957 msc_companies c,
1958 msc_company_sites cs1
1959 where mis.plan_id = -1 and
1960 mis.supplier_item_name = nvl(ln.owner_item_name,
1961 ln.supplier_item_name) and
1962 mis.organization_id = mtp.sr_tp_id and
1963 mis.sr_instance_id = mtp.sr_instance_id and
1964 mtp.partner_id = map2.tp_key and
1965 map2.map_type = 2 and
1966 map2.company_key = cs1.company_site_id and
1967 cs1.company_id = 1 and
1968 mis.supplier_id = map.tp_key and
1969 mis.supplier_site_id = map1.tp_key and
1970 map.map_type = 1 and
1971 map.company_key = r.relationship_id and
1972 r.subject_id = 1 and
1973 r.object_id = c.company_id and
1974 r.relationship_type = 2 and
1975 UPPER(c.company_name) = UPPER(decode(ln.owner_item_name, null,
1976 nvl(ln.supplier_company,
1977 ln.publisher_company),
1978 ln.publisher_company)) and
1979 map1.map_type = 3 and
1980 map1.company_key = cs.company_site_id and
1981 UPPER(cs.company_site_name) = UPPER(decode(ln.owner_item_name, null,
1982 nvl(ln.supplier_site,
1983 ln.publisher_site),
1984 ln.publisher_site)) and
1985 cs.company_id = c.company_id AND
1986 ln.item_name IS NULL
1987 UNION
1988 select mic.inventory_item_id
1989 from msc_item_customers mic,
1990 msc_trading_partner_maps map,
1991 msc_trading_partner_maps map1,
1992 msc_company_relationships r,
1993 msc_company_sites cs,
1994 msc_companies c
1995 where mic.plan_id = -1 and
1996 mic.customer_item_name = nvl(ln.owner_item_name,
1997 ln.customer_item_name) and
1998 mic.customer_id = map.tp_key and
1999 --nvl(mic.customer_site_id, map1.tp_key) = map1.tp_key and
2000 mic.customer_site_id = map1.tp_key and
2001 map.map_type = 1 and
2002 map.company_key = r.relationship_id and
2003 r.subject_id = 1 and
2004 r.object_id = c.company_id and
2005 r.relationship_type = 1 and
2006 UPPER(c.company_name) = UPPER(decode(ln.owner_item_name, null,
2007 nvl(ln.customer_company,
2008 ln.publisher_company),
2009 ln.publisher_company)) and
2010 map1.map_type = 3 and
2011 map1.company_key = cs.company_site_id and
2012 UPPER(cs.company_site_name) = UPPER(decode(ln.owner_item_name, null,
2013 nvl(ln.customer_site, --bug #4292548
2014 ln.publisher_site),
2015 ln.publisher_site)) and
2016 cs.company_id = c.company_id AND
2017 ln.item_name IS NULL
2018 );
2019
2020 --========================================================================
2021 --Validation: Item check in OEM org
2022 --========================================================================
2023
2024 IF t_order_type IS NOT NULL AND t_order_type.COUNT > 0 THEN
2025 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ITEM', p_language);
2026 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2027 update msc_supdem_lines_interface ln
2028 set ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2029 where ln.parent_header_id = p_header_id and
2030 ln.line_id = t_line_id(j) and
2031 NVL(ln.row_status, G_PROCESS) = G_PROCESS and
2032 not exists ( select msi.inventory_item_id
2033 from msc_system_items msi,
2034 msc_trading_partners part,
2035 msc_trading_partner_maps map,
2036 msc_company_sites cs,
2037 msc_companies c
2038 where msi.plan_id = -1 and
2039 msi.item_name = ln.item_name and
2040 msi.organization_id = part.sr_tp_id and
2041 msi.sr_instance_id = part.sr_instance_id and
2042 part.partner_type = 3 and
2043 part.partner_id = map.tp_key and
2044 map.map_type = 2 and
2045 map.company_key = cs.company_site_id and
2046 UPPER(cs.company_site_name) = upper(ln.publisher_site) and
2047 cs.company_id = c.company_id and
2048 UPPER(c.company_name) = upper(ln.publisher_company) and
2049 c.company_id = 1 and
2050 NVL(part.company_id,1) = c.company_id
2051 union select 1
2052 from msc_companies c
2053 where c.company_id <> 1 and G_CONS_ADVICE <> t_order_type(j) and
2054 UPPER(c.company_name) = upper(ln.publisher_company)
2055 /* For Consumption Advice, Item should be valid in the Org modelled as the customer (publisher) */
2056 union select 1
2057 from msc_system_items msi,
2058 msc_trading_partners part,
2059 msc_trading_partner_maps map,
2060 msc_company_sites cs,
2061 msc_companies c
2062 where
2063 msi.plan_id = -1 and
2064 msi.item_name = ln.item_name and
2065 msi.organization_id = part.sr_tp_id and
2066 msi.sr_instance_id = part.sr_instance_id and
2067 part.partner_type = 3 and
2068 part.modeled_customer_site_id = map.tp_key and
2069 map.map_type = 3 and
2070 map.company_key = cs.company_site_id and
2071 UPPER(cs.company_site_name) = upper(ln.publisher_site) and
2072 cs.company_id = c.company_id and
2073 UPPER(c.company_name) = upper(ln.publisher_company) and
2074 c.company_id <> 1 and
2075 G_CONS_ADVICE = t_order_type(j) and
2076 msi.consigned_flag = 1 and -- bug 4744103
2077 msi.inventory_planning_code = 7 -- bug 4744108
2078 );
2079 END IF;
2080 --=========================================================
2081 -- If publisher is a modeled org in the OEM's company, they
2082 -- should not be allowed to publish unallocated onhand
2083 --=========================================================
2084 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUB_UO', p_language);
2085 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2086 UPDATE msc_supdem_lines_interface ln
2087 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2088 WHERE ln.parent_header_id = p_header_id AND
2089 ln.line_id = t_line_id(j) AND
2090 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2091 (G_UNALLOCATED_ONHAND = (SELECT flv.lookup_code
2092 FROM fnd_lookup_values flv
2093 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2094 UPPER(flv.meaning) = UPPER(ln.order_type) AND
2095 flv.language = p_language)) AND
2096 exists (SELECT 'exists'
2097 FROM msc_companies c0,
2098 msc_company_sites s0,
2099 msc_trading_partners mtp,
2100 msc_trading_partners mtp1,
2101 msc_trading_partner_maps maps,
2102 msc_trading_partner_maps maps1,
2103 msc_trading_partner_maps maps2,
2104 msc_trading_partner_sites mtps,
2105 msc_company_sites cs,
2106 msc_companies c,
2107 msc_company_relationships rel
2108 WHERE rel.relationship_type = 2
2109 AND rel.subject_id = 1
2110 AND Upper(c0.company_name) = Upper(ln.publisher_company)
2111 AND rel.object_id = c0.company_id
2112 AND maps.company_key = rel.relationship_id
2113 AND maps.map_type = 1
2114 AND maps.tp_key = mtp.partner_id
2115 AND s0.company_id = c0.company_id
2116 AND Upper(s0.company_site_name) = Upper(ln.publisher_site)
2117 AND maps1.company_key = s0.company_site_id
2118 AND maps1.map_type = 3
2119 AND mtps.partner_site_id = maps1.tp_key
2120 AND mtps.partner_id = mtp.partner_id
2121 AND mtp1.partner_type = 3
2122 AND mtp1.modeled_supplier_id = mtp.partner_id
2123 AND mtp1.modeled_supplier_site_id = mtps.partner_site_id
2124 AND maps2.tp_key = mtp1.partner_id
2125 AND maps2.map_type = 2
2126 AND cs.company_site_id = maps2.company_key
2127 AND cs.company_id = c.company_id
2128 AND c.company_id = 1);
2129
2130 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2131 UPDATE msc_supdem_lines_interface ln
2132 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2133 WHERE ln.parent_header_id = p_header_id AND
2134 ln.line_id = t_line_id(j) AND
2135 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2136 (G_UNALLOCATED_ONHAND = (SELECT flv.lookup_code
2137 FROM fnd_lookup_values flv
2138 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2139 UPPER(flv.meaning) = UPPER(ln.order_type) AND
2140 flv.language = p_language)) AND
2141 exists( select 'exist'
2142 from msc_companies c,
2143 msc_company_sites s,
2144 msc_trading_partner_maps m,
2145 msc_trading_partners t
2146 where upper(c.company_name) = upper(ln.publisher_company)
2147 and c.company_id = s.company_id
2148 and upper(s.company_site_name) = upper(ln.publisher_site)
2149 and m.company_key = s.company_site_id
2150 and m.map_type = 2
2151 and m.tp_key = t.partner_id
2152 and t.partner_type = 3
2153 and t.modeled_supplier_id is not null
2154 and t.modeled_supplier_site_id is not NULL);
2155
2156
2157 --======================================================================
2158 -- Validation: Check if wip completion date is populated if the order type is
2159 -- Work order
2160 --
2161 -- Check if wip completion date is populated if the order type is
2162 -- Work order
2163 --======================================================================
2164 l_err_msg := get_message('MSC','MSC_X_INVALID_WIP_DATE', p_language);
2165 forall j IN t_line_id.first..t_line_id.last
2166 UPDATE msc_supdem_lines_interface ln
2167 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2168 WHERE ln.parent_header_id = p_header_id
2169 AND ln.line_id = t_line_id(j)
2170 AND Nvl(ln.row_status, g_process) = g_process
2171 AND g_null_string = (SELECT Nvl(ln1.wip_end_date, g_null_string)
2172 FROM msc_supdem_lines_interface ln1,
2173 fnd_lookup_values flv
2174 WHERE ln1.parent_header_id = ln.parent_header_id and
2175 ln1.line_id = ln.line_id and
2176 UPPER(flv.meaning) = UPPER(ln1.order_type) and
2177 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
2178 flv.language = p_language and
2179 flv.lookup_code = g_work_order);
2180
2181 FORALL j in t_line_id.FIRST..t_line_id.LAST
2182 UPDATE msc_supdem_lines_interface ln
2183 SET ln.key_date = ln.wip_end_date
2184 WHERE ln.parent_header_id = p_header_id AND
2185 ln.line_id = t_line_id(j) AND
2186 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2187 UPPER(ln.order_type) = (SELECT UPPER(flv.meaning)
2188 FROM fnd_lookup_values flv
2189 WHERE flv.language = p_language AND
2190 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2191 flv.lookup_code = g_work_order);
2192
2193 l_err_msg := get_message('MSC','MSC_X_INVALID_WIP_ST_DATE', p_language);
2194 forall j IN t_line_id.first..t_line_id.last
2195 UPDATE msc_supdem_lines_interface ln
2196 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2197 WHERE ln.parent_header_id = p_header_id
2198 AND ln.line_id = t_line_id(j)
2199 AND Nvl(ln.row_status, g_process) = g_process
2200 AND ln.wip_start_date IS NOT NULL
2201 AND to_date(ln.wip_start_date, p_date_format) >
2202 to_date(ln.wip_end_date, p_date_format);
2203
2204 -- jguo: call API to validate receipt/ship date for TP as a cusotmer
2205 validate_rs_dates_customer(
2206 t_line_id -- IN lineidList
2207 , p_header_id -- IN NUMBER
2208 , p_language
2209 );
2210
2211 -- jguo: call API to validate receipt/ship date for TP as a supplier
2212 validate_rs_dates_supplier(
2213 t_line_id -- IN lineidList
2214 , p_header_id -- IN NUMBER
2215 , p_language
2216 );
2217
2218 --=================================================================================
2219 -- Validation: Check if new_schedule date (aka actual date) is populated if the
2220 -- order type is historical sales, safety stock, allocated onhand
2221 --=================================================================================
2222 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ACT_DATE', p_language);
2223 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2224 UPDATE msc_supdem_lines_interface ln
2225 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2226 WHERE ln.parent_header_id = p_header_id AND
2227 ln.line_id = t_line_id(j) AND
2228 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2229 G_NULL_STRING = (SELECT NVL(ln1.new_schedule_date, G_NULL_STRING)
2230 FROM msc_supdem_lines_interface ln1,
2231 fnd_lookup_values flv
2232 WHERE ln1.parent_header_id = ln.parent_header_id and
2233 ln1.line_id = ln.line_id and
2234 UPPER(flv.meaning) = UPPER(ln1.order_type) and
2235 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
2236 flv.language = p_language and
2237 flv.lookup_code IN (G_HIST_SALES,
2238 G_SAFETY_STOCK,
2239 G_ALLOC_ONHAND,
2240 G_PROJ_AVAI_BAL));
2241 FORALL j in t_line_id.FIRST..t_line_id.LAST
2242 UPDATE msc_supdem_lines_interface ln
2243 SET ln.key_date = ln.new_schedule_date,
2244 ln.key_end_date = ln.new_schedule_end_date
2245 WHERE ln.parent_header_id = p_header_id AND
2246 ln.line_id = t_line_id(j) AND
2247 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2248 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
2249 FROM fnd_lookup_values flv
2250 WHERE flv.language = p_language AND
2251 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2252 flv.lookup_code IN (G_CONS_ADVICE,
2253 G_HIST_SALES,
2254 G_SAFETY_STOCK,
2255 G_ALLOC_ONHAND,
2256 G_PROJ_AVAI_BAL));
2257 -- jguo: change starts here
2258 --==============================================================================
2259 -- Validation: Check if either ship date or receipt date is
2260 -- populated if the order type is supply commit,
2261 -- sales order, ASN
2262 --==============================================================================
2263 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_RCPT_DATE', p_language);
2264 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2265 UPDATE msc_supdem_lines_interface ln
2266 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2267 WHERE ln.parent_header_id = p_header_id AND
2268 ln.line_id = t_line_id(j) AND
2269 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2270 G_NULL_STRING = (SELECT NVL(ln1.ship_date, G_NULL_STRING)
2271 FROM msc_supdem_lines_interface ln1,
2272 fnd_lookup_values flv
2273 WHERE ln1.parent_header_id = ln.parent_header_id and
2274 ln1.line_id = ln.line_id and
2275 UPPER(flv.meaning) = UPPER(ln1.order_type) and
2276 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
2277 flv.language = p_language and
2278 flv.lookup_code IN (G_SUPPLY_COMMIT,
2279 G_ASN,
2280 G_SALES_FORECAST,
2281 G_SALES_ORDER)) AND
2282 G_NULL_STRING = (SELECT NVL(ln1.receipt_date, G_NULL_STRING)
2283 FROM msc_supdem_lines_interface ln1,
2284 fnd_lookup_values flv
2285 WHERE ln1.parent_header_id = ln.parent_header_id and
2286 ln1.line_id = ln.line_id and
2287 UPPER(flv.meaning) = UPPER(ln1.order_type) and
2288 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
2289 flv.language = p_language and
2290 flv.lookup_code IN (G_SUPPLY_COMMIT,
2291 G_ASN,
2292 G_SALES_FORECAST,
2293 G_SALES_ORDER))
2294
2295 AND EXISTS ( SELECT ln.customer_company
2296 FROM msc_companies c
2297 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
2298 AND c.company_id = 1
2299 )
2300 ;
2301
2302 FORALL j in t_line_id.FIRST..t_line_id.LAST
2303 UPDATE msc_supdem_lines_interface ln
2304 SET ln.key_date = NVL(ln.receipt_date, ln.ship_date), -- jguo NVL(ln.ship_date, ln.receipt_date),
2305 ln.key_end_date = ln.new_schedule_end_date
2306 WHERE ln.parent_header_id = p_header_id AND
2307 ln.line_id = t_line_id(j) AND
2308 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2309 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
2310 FROM fnd_lookup_values flv
2311 WHERE flv.language = p_language AND
2312 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2313 flv.lookup_code IN (G_SUPPLY_COMMIT,
2314 G_ASN,
2315 ---G_SALES_FORECAST,
2316 G_SALES_ORDER))
2317 AND EXISTS ( SELECT ln.customer_company
2318 FROM msc_companies c
2319 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
2320 AND c.company_id = 1
2321 );
2322
2323
2324 FORALL j in t_line_id.FIRST..t_line_id.LAST
2325 UPDATE msc_supdem_lines_interface ln
2326 SET ln.key_date = NVL(ln.ship_date, ln.receipt_date),
2327 ln.key_end_date = ln.new_schedule_end_date
2328 WHERE ln.parent_header_id = p_header_id AND
2329 ln.line_id = t_line_id(j) AND
2330 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2331 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
2332 FROM fnd_lookup_values flv
2333 WHERE flv.language = p_language AND
2334 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2335 flv.lookup_code = G_SALES_FORECAST)
2336 AND EXISTS ( SELECT ln.customer_company
2337 FROM msc_companies c
2338 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
2339 AND c.company_id = 1
2340 );
2341 -- jguo: change ends here
2342
2343 --======================================================================
2344 -- Validation: Check if key date <= new schedule end date
2345 --======================================================================
2346 l_err_msg := get_message('MSC', 'MSC_X_INVALID_END_DATE', p_language);
2347 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2348 UPDATE msc_supdem_lines_interface ln
2349 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2350 WHERE ln.parent_header_id = p_header_id AND
2351 ln.line_id = t_line_id(j) AND
2352 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2353 ln.key_date IS NOT NULL AND
2354 ln.new_schedule_end_date IS NOT NULL AND
2355 to_date(ln.new_schedule_end_date, p_date_format) <
2356 to_date(ln.key_date, p_date_format);
2357
2358 --=========================================================================
2359 -- Check if the ship date > the receipt date
2360 --=========================================================================
2361 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_DATE1', p_language);
2362 FORALL j IN t_line_id.FIRST..t_line_id.LAST
2363 UPDATE msc_supdem_lines_interface ln
2364 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2365 WHERE ln.parent_header_id = p_header_id AND
2366 ln.line_id = t_line_id(j) AND
2367 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2368 ln.ship_date is not null AND
2369 ln.receipt_date is not null AND
2370 to_date(ln.ship_date, p_date_format) >
2371 to_date(ln.receipt_date, p_date_format);
2372
2373
2374 --=========================================================================
2375 -- Check if the SO has already been entered via iSP (PO-Ack validation)
2376 --=========================================================================
2377 l_err_msg := get_message('MSC', 'MSC_X_SO_EXISTS', p_language);
2378 FORALL j in t_line_id.FIRST..t_line_id.LAST
2379 UPDATE msc_supdem_lines_interface ln
2380 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2381 WHERE ln.parent_header_id = p_header_id AND
2382 ln.line_id = t_line_id(j) AND
2383 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
2384 UPPER(ln.order_type) = (SELECT UPPER(flv.meaning)
2385 FROM fnd_lookup_values flv
2386 WHERE flv.language = p_language AND
2387 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
2388 flv.lookup_code IN (G_SALES_ORDER)) AND
2389 exists (SELECT 'exists'
2390 FROM msc_sup_dem_entries sd
2391 WHERE Upper(sd.publisher_name) = Upper(ln.publisher_company)
2392 AND Upper(sd.publisher_site_name) = Upper(ln.publisher_site)
2393 AND Upper(sd.customer_name) = Upper(ln.customer_company)
2394 AND Upper(sd.customer_site_name) = Upper(ln.customer_site)
2395 AND (sd.item_name = nvl(ln.item_name, nvl(ln.owner_item_name, nvl(ln.customer_item_name, ln.supplier_item_name))) OR
2396 sd.owner_item_name = nvl(ln.owner_item_name, nvl(ln.item_name, nvl(ln.customer_item_name, ln.supplier_item_name))) OR
2397 sd.customer_item_name = nvl(ln.customer_item_name, nvl(ln.item_name, nvl(ln.owner_item_name, ln.supplier_item_name))) OR
2398 sd.supplier_item_name = nvl(ln.supplier_item_name, nvl(ln.item_name, nvl(ln.owner_item_name, ln.customer_item_name))))
2399 AND Upper(sd.publisher_order_type_desc) = Upper(ln.order_type)
2400 --AND Nvl(sd.order_number, g_null_string) = Nvl(ln.order_identifier, g_null_string)
2401 --AND Nvl(sd.line_number, g_null_string) = Nvl(ln.line_number, g_null_string)
2402 --AND Nvl(sd.release_number, g_null_string) = Nvl(ln.release_number, g_null_string)
2403 AND Nvl(sd.end_order_number, g_null_string) = Nvl(ln.pegging_order_identifier, g_null_string)
2404 AND Nvl(sd.end_order_line_number, g_null_string) = Nvl(ln.ref_line_number, g_null_string)
2405 AND Nvl(sd.end_order_rel_number, g_null_string) = Nvl(ln.ref_release_number, g_null_string)
2406 AND nvl(sd.ack_flag, 'N') = 'Y');
2407
2408 --=========================================================================
2409 -- End of Dependent Validations
2410 -- Update row status in MSC_SUPDEM_LINES_INTERFACE to G_FAILURE (4) if
2411 -- the err_msg is not null
2412 --=========================================================================
2413 FORALL j in t_line_id.FIRST..t_line_id.LAST
2414 UPDATE msc_supdem_lines_interface ln
2415 SET ln.row_status = G_FAILURE
2416 WHERE ln.parent_header_id = p_header_id AND
2417 ln.line_id = t_line_id(j) AND
2418 NVL(ln.row_status, G_PROCESS) = g_process AND
2419 ln.err_msg IS NOT NULL;
2420
2421 --=========================================================================
2422 -- Update row status in MSC_SUPDEM_LINES_INTERFACE to G_SUCCESS (3) if
2423 -- the err_msg is null
2424 --=========================================================================
2425 FORALL j in t_line_id.FIRST..t_line_id.LAST
2426 UPDATE msc_supdem_lines_interface ln
2427 SET ln.row_status = G_SUCCESS
2428 WHERE ln.parent_header_id = p_header_id AND
2429 ln.line_id = t_line_id(j) AND
2430 NVL(ln.row_status, G_PROCESS) = g_process AND
2431 Nvl(ln.err_msg, g_null_string) = g_null_string;
2432
2433 --=========================================================================
2434 -- Post Validation steps
2435 -- Populate the item id column for validated records
2436 --=========================================================================
2437 FORALL j in t_line_id.FIRST..t_line_id.LAST
2438 update msc_supdem_lines_interface l
2439 set l.inventory_item_id =
2440 (select i.inventory_item_id
2441 from msc_items i,
2442 msc_supdem_lines_interface ln
2443 where i.item_name = ln.item_name and
2444 ln.parent_header_id = p_header_id AND
2445 ln.line_id = t_line_id(j) AND
2446 NVL(ln.row_status, G_PROCESS) = G_SUCCESS
2447 UNION
2448 select msi.inventory_item_id
2449 from msc_system_items msi,
2450 msc_trading_partners part,
2451 msc_trading_partner_maps map,
2452 msc_company_sites cs,
2453 msc_companies c,
2454 msc_supdem_lines_interface ln
2455 where msi.plan_id = -1 and
2456 ln.parent_header_id = p_header_id AND
2457 ln.line_id = t_line_id(j) AND
2458 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
2459 msi.item_name = nvl(ln.owner_item_name,
2460 nvl(ln.customer_item_name,
2461 ln.supplier_item_name)) and
2462 msi.organization_id = part.sr_tp_id and
2463 msi.sr_instance_id = part.sr_instance_id and
2464 part.partner_type = 3 and
2465 part.partner_id = map.tp_key and
2466 map.map_type = 2 and
2467 map.company_key = cs.company_site_id and
2468 cs.company_site_name = decode(ln.owner_item_name,
2469 null,
2470 decode(ln.customer_item_name,
2471 null,
2472 nvl(ln.supplier_site,
2473 ln.publisher_site),
2474 nvl(ln.customer_site,
2475 ln.publisher_site)),
2476 ln.publisher_site) and
2477 cs.company_id = c.company_id and
2478 c.company_name = decode(ln.owner_item_name,
2479 null,
2480 decode(ln.customer_item_name,
2481 null,
2482 nvl(ln.supplier_company,
2483 ln.publisher_company),
2484 nvl(ln.customer_company,
2485 ln.publisher_company)),
2486 ln.publisher_company) and
2487 NVL(part.company_id,1) = c.company_id and
2488 ln.item_name IS NULL
2489 UNION
2490 select mis.inventory_item_id
2491 from msc_item_suppliers mis,
2492 msc_trading_partner_maps map,
2493 msc_trading_partner_maps map1,
2494 msc_company_relationships r,
2495 msc_company_sites cs,
2496 msc_companies c,
2497 msc_supdem_lines_interface ln
2498 where mis.plan_id = -1 and
2499 ln.parent_header_id = p_header_id AND
2500 ln.line_id = t_line_id(j) AND
2501 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
2502 mis.supplier_item_name = nvl(ln.owner_item_name,
2503 ln.supplier_item_name) and
2504 mis.supplier_id = map.tp_key and
2505 mis.supplier_site_id = map1.tp_key and
2506 map.map_type = 1 and
2507 map.company_key = r.relationship_id and
2508 r.subject_id = 1 and
2509 r.object_id = c.company_id and
2510 r.relationship_type = 2 and
2511 c.company_name = decode(ln.owner_item_name, null,
2512 nvl(ln.supplier_company,
2513 ln.publisher_company),
2514 ln.publisher_company) and
2515 map1.map_type = 3 and
2516 map1.company_key = cs.company_site_id and
2517 cs.company_site_name = decode(ln.owner_item_name, null,
2518 nvl(ln.supplier_site,
2519 ln.publisher_site),
2520 ln.publisher_site) and
2521 cs.company_id = c.company_id AND
2522 ln.item_name IS NULL
2523 UNION
2524 select mic.inventory_item_id
2525 from msc_item_customers mic,
2526 msc_trading_partner_maps map,
2527 msc_trading_partner_maps map1,
2528 msc_company_relationships r,
2529 msc_company_sites cs,
2530 msc_companies c,
2531 msc_supdem_lines_interface ln
2532 where mic.plan_id = -1 and
2533 ln.parent_header_id = p_header_id AND
2534 ln.line_id = t_line_id(j) AND
2535 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
2536 mic.customer_item_name = nvl(ln.owner_item_name,
2537 ln.customer_item_name) and
2538 mic.customer_id = map.tp_key and
2539 --nvl(mic.customer_site_id, map1.tp_key) = map1.tp_key and
2540 mic.customer_site_id = map1.tp_key and
2541 map.map_type = 1 and
2542 map.company_key = r.relationship_id and
2543 r.subject_id = 1 and
2544 r.object_id = c.company_id and
2545 r.relationship_type = 1 and
2546 c.company_name = decode(ln.owner_item_name, null,
2547 nvl(ln.customer_company,
2548 ln.publisher_company),
2549 ln.publisher_company) and
2550 map1.map_type = 3 and
2551 map1.company_key = cs.company_site_id and
2552 cs.company_site_name = decode(ln.owner_item_name, null,
2553 nvl(ln.customer_site,
2554 ln.publisher_site),
2555 ln.publisher_site) and
2556 cs.company_id = c.company_id AND
2557 ln.item_name IS NULL
2558 )
2559 where l.parent_header_id = p_header_id AND
2560 l.line_id = t_line_id(j) AND
2561 NVL(l.row_status, G_PROCESS) = G_SUCCESS;
2562
2563 END IF; --End of sync indicator R validations
2564
2565 END LOOP; --End of the main 'for' loop
2566
2567 IF p_build_err <> 2 then
2568 OPEN c_exec_keys(p_header_id, p_language);
2569 FETCH c_exec_keys
2570 bulk collect INTO t_pub,
2571 t_pub_site,
2572 t_cust,
2573 t_cust_site,
2574 t_supp,
2575 t_supp_site,
2576 t_order_type_desc,
2577 t_item_id,
2578 t_order_number,
2579 t_rel_number,
2580 t_line_number,
2581 t_end_order_number,
2582 t_end_order_rel_number,
2583 t_end_order_line_number;
2584 CLOSE c_exec_keys;
2585
2586 l_err_msg := get_message('MSC', 'MSC_X_DUPLICATE_KEYS_EXEC', p_language);
2587 IF t_pub IS NOT NULL AND t_pub.COUNT > 0 then
2588 forall j IN t_pub.first..t_pub.LAST
2589 UPDATE msc_supdem_lines_interface ln
2590 SET ln.row_status = g_failure,
2591 ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2592 WHERE ln.line_id IN (SELECT DISTINCT ln1.line_id
2593 FROM msc_supdem_lines_interface ln1
2594 WHERE ln1.parent_header_id = p_header_id
2595 AND Upper(ln1.publisher_company) = t_pub(j)
2596 AND Upper(ln1.publisher_site) = t_pub_site(j)
2597 AND Nvl(Upper(ln1.supplier_company),-99) = Nvl(t_supp(j),-99)
2598 AND Nvl(Upper(ln1.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2599 AND Nvl(Upper(ln1.customer_company),-99) = Nvl(t_cust(j),-99)
2600 AND Nvl(Upper(ln1.customer_site),-99) = Nvl(t_cust_site(j),-99)
2601 AND Upper(ln1.order_type) = t_order_type_desc(j)
2602 AND ln1.inventory_item_id = t_item_id(j)
2603 AND Nvl(Upper(ln1.order_identifier),-99) = Nvl(t_order_number(j),-99)
2604 AND Nvl(Upper(ln1.release_number),-99) = Nvl(t_rel_number(j),-99)
2605 AND Nvl(Upper(ln1.line_number),-99) = Nvl(t_line_number(j),-99)
2606 AND Nvl(Upper(ln1.pegging_order_identifier),-99) = Nvl(t_end_order_number(j),-99)
2607 AND Nvl(Upper(ln1.ref_release_number),-99) = Nvl(t_end_order_rel_number(j),-99)
2608 AND Nvl(Upper(ln1.ref_line_number),-99) = Nvl(t_end_order_line_number(j),-99)
2609 AND 1 < (SELECT COUNT(*)
2610 FROM msc_supdem_lines_interface ln2
2611 WHERE ln2.parent_header_id = p_header_id
2612 AND Upper(ln2.publisher_company) = t_pub(j)
2613 AND Upper(ln2.publisher_site) = t_pub_site(j)
2614 AND Nvl(Upper(ln2.supplier_company),-99) = Nvl(t_supp(j),-99)
2615 AND Nvl(Upper(ln2.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2616 AND Nvl(Upper(ln2.customer_company),-99) = Nvl(t_cust(j),-99)
2617 AND Nvl(Upper(ln2.customer_site),-99) = Nvl(t_cust_site(j),-99)
2618 AND Upper(ln2.order_type) = t_order_type_desc(j)
2619 AND ln2.inventory_item_id = t_item_id(j)
2620 AND Nvl(Upper(ln2.order_identifier),-99) = Nvl(t_order_number(j),-99)
2621 AND Nvl(Upper(ln2.release_number),-99) = Nvl(t_rel_number(j),-99)
2622 AND Nvl(Upper(ln2.line_number),-99) = Nvl(t_line_number(j),-99)
2623 AND Nvl(Upper(ln2.pegging_order_identifier),-99) = Nvl(t_end_order_number(j),-99)
2624 AND Nvl(Upper(ln2.ref_release_number),-99) = Nvl(t_end_order_rel_number(j),-99)
2625 AND Nvl(Upper(ln2.ref_line_number),-99) = Nvl(t_end_order_line_number(j),-99)));
2626 END IF;
2627
2628 OPEN c_work_order_keys(p_header_id, p_language);
2629 FETCH c_work_order_keys
2630 bulk collect INTO t_pub,
2631 t_pub_site,
2632 t_cust,
2633 t_cust_site,
2634 t_order_type_desc,
2635 t_item_id,
2636 t_order_number;
2637 CLOSE c_work_order_keys;
2638
2639 l_err_msg := get_message('MSC', 'MSC_X_DUPLICATE_KEYS_WIP', p_language);
2640 IF t_pub IS NOT NULL AND t_pub.COUNT > 0 THEN
2641 forall j IN t_pub.first..t_pub.last
2642 UPDATE msc_supdem_lines_interface ln
2643 SET ln.row_status = g_failure,
2644 ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2645 WHERE ln.line_id IN (SELECT DISTINCT ln1.line_id
2646 FROM msc_supdem_lines_interface ln1
2647 WHERE ln1.parent_header_id = p_header_id
2648 AND Upper(ln1.publisher_company) = t_pub(j)
2649 AND Upper(ln1.publisher_site) = t_pub_site(j)
2650 AND Nvl(Upper(ln1.customer_company),-99) = Nvl(t_cust(j),-99)
2651 AND Nvl(Upper(ln1.customer_site),-99) = Nvl(t_cust_site(j),-99)
2652 AND Upper(ln1.order_type) = t_order_type_desc(j)
2653 AND ln1.inventory_item_id = t_item_id(j)
2654 AND Nvl(ln1.order_identifier, '-99') = Nvl(t_order_number(j), '-99')
2655 AND 1 < (SELECT COUNT(*)
2656 FROM msc_supdem_lines_interface ln2
2657 WHERE ln2.parent_header_id = p_header_id
2658 AND Upper(ln2.publisher_company) = t_pub(j)
2659 AND Upper(ln2.publisher_site) = t_pub_site(j)
2660 AND Nvl(Upper(ln2.customer_company),-99) = Nvl(t_cust(j),-99)
2661 AND Nvl(Upper(ln2.customer_site),-99) = Nvl(t_cust_site(j),-99)
2662 AND Upper(ln2.order_type) = t_order_type_desc(j)
2663 AND ln2.inventory_item_id = t_item_id(j)
2664 AND Nvl(ln2.order_identifier, '-99') = Nvl(t_order_number(j), '-99')));
2665 END IF;
2666
2667 OPEN c_onhand_keys(p_header_id, p_language);
2668 FETCH c_onhand_keys
2669 bulk collect INTO t_pub,
2670 t_pub_site,
2671 t_cust,
2672 t_cust_site,
2673 t_supp,
2674 t_supp_site,
2675 t_order_type_desc,
2676 t_item_id;
2677 CLOSE c_onhand_keys;
2678
2679 l_err_msg := get_message('MSC', 'MSC_X_DUPLICATE_KEY_PLANNING', p_language);
2680 IF t_pub IS NOT NULL AND t_pub.COUNT > 0 then
2681 forall j IN t_pub.first..t_pub.LAST
2682 UPDATE msc_supdem_lines_interface ln
2683 SET ln.row_status = g_failure,
2684 ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2685 WHERE ln.line_id IN (SELECT DISTINCT ln1.line_id
2686 FROM msc_supdem_lines_interface ln1
2687 WHERE ln1.parent_header_id = p_header_id
2688 AND Upper(ln1.publisher_company) = t_pub(j)
2689 AND Upper(ln1.publisher_site) = t_pub_site(j)
2690 AND Nvl(Upper(ln1.supplier_company),-99) = Nvl(t_supp(j),-99)
2691 AND Nvl(Upper(ln1.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2692 AND Nvl(Upper(ln1.customer_company),-99) = Nvl(t_cust(j),-99)
2693 AND Nvl(Upper(ln1.customer_site),-99) = Nvl(t_cust_site(j),-99)
2694 AND Upper(ln1.order_type) = t_order_type_desc(j)
2695 AND ln1.inventory_item_id = t_item_id(j)
2696 AND 1 < (SELECT COUNT(*)
2697 FROM msc_supdem_lines_interface ln2
2698 WHERE ln2.parent_header_id = p_header_id
2699 AND Upper(ln2.publisher_company) = t_pub(j)
2700 AND Upper(ln2.publisher_site) = t_pub_site(j)
2701 AND Nvl(Upper(ln2.supplier_company),-99) = Nvl(t_supp(j),-99)
2702 AND Nvl(Upper(ln2.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2703 AND Nvl(Upper(ln2.customer_company),-99) = Nvl(t_cust(j),-99)
2704 AND Nvl(Upper(ln2.customer_site),-99) = Nvl(t_cust_site(j),-99)
2705 AND Upper(ln2.order_type) = t_order_type_desc(j)
2706 AND ln2.inventory_item_id = t_item_id(j)));
2707 END IF;
2708
2709 OPEN c_daily_keys(p_header_id, p_language,p_date_format);
2710 FETCH c_daily_keys
2711 bulk collect INTO t_pub,
2712 t_pub_site,
2713 t_cust,
2714 t_cust_site,
2715 t_supp,
2716 t_supp_site,
2717 t_order_type_desc,
2718 t_item_id,
2719 t_key_date,
2720 t_bucket_type;
2721 CLOSE c_daily_keys;
2722
2723 l_err_msg := get_message('MSC', 'MSC_X_DUPLICATE_KEY_PLANNING', p_language);
2724 IF t_pub IS NOT NULL AND t_pub.COUNT > 0 then
2725 forall j IN t_pub.first..t_pub.LAST
2726 UPDATE msc_supdem_lines_interface ln
2727 SET ln.row_status = g_failure,
2728 ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2729 WHERE ln.line_id IN (SELECT DISTINCT ln1.line_id
2730 FROM msc_supdem_lines_interface ln1
2731 WHERE ln1.parent_header_id = p_header_id
2732 AND Upper(ln1.publisher_company) = t_pub(j)
2733 AND Upper(ln1.publisher_site) = t_pub_site(j)
2734 AND Nvl(Upper(ln1.supplier_company),-99) = Nvl(t_supp(j),-99)
2735 AND Nvl(Upper(ln1.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2736 AND Nvl(Upper(ln1.customer_company),-99) = Nvl(t_cust(j),-99)
2737 AND Nvl(Upper(ln1.customer_site),-99) = Nvl(t_cust_site(j),-99)
2738 AND Upper(ln1.order_type) = t_order_type_desc(j)
2739 AND ln1.inventory_item_id = t_item_id(j)
2740 AND Nvl(Upper(ln1.bucket_type),1) = Nvl(t_bucket_type(j),1)
2741 AND t_key_date(j) = trunc(to_date(ln1.key_date,p_date_format))
2742 AND 1 < (SELECT COUNT(*)
2743 FROM msc_supdem_lines_interface ln2
2744 WHERE ln2.parent_header_id = p_header_id
2745 AND Upper(ln2.publisher_company) = t_pub(j)
2746 AND Upper(ln2.publisher_site) = t_pub_site(j)
2747 AND Nvl(Upper(ln2.supplier_company),-99) = Nvl(t_supp(j),-99)
2748 AND Nvl(Upper(ln2.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2749 AND Nvl(Upper(ln2.customer_company),-99) = Nvl(t_cust(j),-99)
2750 AND Nvl(Upper(ln2.customer_site),-99) = Nvl(t_cust_site(j),-99)
2751 AND Upper(ln2.order_type) = t_order_type_desc(j)
2752 AND ln2.inventory_item_id = t_item_id(j)
2753 AND Nvl(Upper(ln2.bucket_type),1) = Nvl(t_bucket_type(j),1)
2754 AND t_key_date(j) = trunc(to_date(ln2.key_date,p_date_format))
2755 ));
2756 END IF;
2757
2758 OPEN c_weekly_keys(p_header_id, p_language,p_date_format);
2759 FETCH c_weekly_keys
2760 bulk collect INTO t_pub,
2761 t_pub_site,
2762 t_cust,
2763 t_cust_site,
2764 t_supp,
2765 t_supp_site,
2766 t_order_type_desc,
2767 t_item_id,
2768 t_key_date,
2769 t_bucket_type;
2770 CLOSE c_weekly_keys;
2771
2772 l_err_msg := get_message('MSC', 'MSC_X_DUPLICATE_KEY_PLANNING', p_language);
2773 IF t_pub IS NOT NULL AND t_pub.COUNT > 0 then
2774 forall j IN t_pub.first..t_pub.LAST
2775 UPDATE msc_supdem_lines_interface ln
2776 SET ln.row_status = g_failure,
2777 ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2778 WHERE ln.line_id IN (SELECT DISTINCT ln1.line_id
2779 FROM msc_supdem_lines_interface ln1
2780 WHERE ln1.parent_header_id = p_header_id
2781 AND Upper(ln1.publisher_company) = t_pub(j)
2782 AND Upper(ln1.publisher_site) = t_pub_site(j)
2783 AND Nvl(Upper(ln1.supplier_company),-99) = Nvl(t_supp(j),-99)
2784 AND Nvl(Upper(ln1.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2785 AND Nvl(Upper(ln1.customer_company),-99) = Nvl(t_cust(j),-99)
2786 AND Nvl(Upper(ln1.customer_site),-99) = Nvl(t_cust_site(j),-99)
2787 AND Upper(ln1.order_type) = t_order_type_desc(j)
2788 AND ln1.inventory_item_id = t_item_id(j)
2789 AND Upper(ln1.bucket_type) = t_bucket_type(j)
2790 AND t_key_date(j) = trunc(to_date(ln1.key_date,p_date_format))
2791 AND 1 < (SELECT COUNT(*)
2792 FROM msc_supdem_lines_interface ln2
2793 WHERE ln2.parent_header_id = p_header_id
2794 AND Upper(ln2.publisher_company) = t_pub(j)
2795 AND Upper(ln2.publisher_site) = t_pub_site(j)
2796 AND Nvl(Upper(ln2.supplier_company),-99) = Nvl(t_supp(j),-99)
2797 AND Nvl(Upper(ln2.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2798 AND Nvl(Upper(ln2.customer_company),-99) = Nvl(t_cust(j),-99)
2799 AND Nvl(Upper(ln2.customer_site),-99) = Nvl(t_cust_site(j),-99)
2800 AND Upper(ln2.order_type) = t_order_type_desc(j)
2801 AND ln2.inventory_item_id = t_item_id(j)
2802 AND Upper(ln2.bucket_type) = t_bucket_type(j)
2803 AND t_key_date(j) = trunc(to_date(ln2.key_date,p_date_format))
2804 ));
2805 END IF;
2806
2807 OPEN c_monthly_keys(p_header_id, p_language,p_date_format);
2808 FETCH c_monthly_keys
2809 bulk collect INTO t_pub,
2810 t_pub_site,
2811 t_cust,
2812 t_cust_site,
2813 t_supp,
2814 t_supp_site,
2815 t_order_type_desc,
2816 t_item_id,
2817 t_key_date,
2818 t_bucket_type;
2819 CLOSE c_monthly_keys;
2820
2821 l_err_msg := get_message('MSC', 'MSC_X_DUPLICATE_KEY_PLANNING', p_language);
2822 IF t_pub IS NOT NULL AND t_pub.COUNT > 0 then
2823 forall j IN t_pub.first..t_pub.LAST
2824 UPDATE msc_supdem_lines_interface ln
2825 SET ln.row_status = g_failure,
2826 ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
2827 WHERE ln.line_id IN (SELECT DISTINCT ln1.line_id
2828 FROM msc_supdem_lines_interface ln1
2829 WHERE ln1.parent_header_id = p_header_id
2830 AND Upper(ln1.publisher_company) = t_pub(j)
2831 AND Upper(ln1.publisher_site) = t_pub_site(j)
2832 AND Nvl(Upper(ln1.supplier_company),-99) = Nvl(t_supp(j),-99)
2833 AND Nvl(Upper(ln1.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2834 AND Nvl(Upper(ln1.customer_company),-99) = Nvl(t_cust(j),-99)
2835 AND Nvl(Upper(ln1.customer_site),-99) = Nvl(t_cust_site(j),-99)
2836 AND Upper(ln1.order_type) = t_order_type_desc(j)
2837 AND ln1.inventory_item_id = t_item_id(j)
2838 AND Upper(ln1.bucket_type) = t_bucket_type(j)
2839 AND t_key_date(j) = trunc(to_date(ln1.key_date,p_date_format))
2840 AND 1 < (SELECT COUNT(*)
2841 FROM msc_supdem_lines_interface ln2
2842 WHERE ln2.parent_header_id = p_header_id
2843 AND Upper(ln2.publisher_company) = t_pub(j)
2844 AND Upper(ln2.publisher_site) = t_pub_site(j)
2845 AND Nvl(Upper(ln2.supplier_company),-99) = Nvl(t_supp(j),-99)
2846 AND Nvl(Upper(ln2.supplier_site),-99) = Nvl(t_supp_site(j),-99)
2847 AND Nvl(Upper(ln2.customer_company),-99) = Nvl(t_cust(j),-99)
2848 AND Nvl(Upper(ln2.customer_site),-99) = Nvl(t_cust_site(j),-99)
2849 AND Upper(ln2.order_type) = t_order_type_desc(j)
2850 AND ln2.inventory_item_id = t_item_id(j)
2851 AND Upper(ln2.bucket_type) = t_bucket_type(j)
2852 AND t_key_date(j) = trunc(to_date(ln2.key_date,p_date_format))
2853 ));
2854 END IF;
2855
2856 END IF; /* if p_build_err <> 2 */
2857
2858 --Added for bug 3103879
2859 log_debug('MSC_X_OVERWRITE_SC := ' || fnd_profile.value('MSC_X_OVERWRITE_SC'));
2860 IF (Nvl(fnd_profile.value('MSC_X_OVERWRITE_SC'),'N') = 'Y') THEN
2861 OPEN c_delete_supply_commit(p_header_id, p_language);
2862 FETCH c_delete_supply_commit
2863 bulk collect INTO t_del_pub_id,
2864 t_del_pub_site_id,
2865 t_del_cust_id,
2866 t_del_cust_site_id,
2867 t_del_item_id;
2868 CLOSE c_delete_supply_commit;
2869 IF t_del_pub_id IS NOT NULL AND t_del_pub_id.COUNT > 0 THEN
2870 forall j IN t_del_pub_id.first..t_del_pub_id.last
2871 DELETE FROM msc_sup_dem_entries sd
2872 WHERE sd.publisher_id = t_del_pub_id(j)
2873 AND sd.publisher_site_id = t_del_pub_site_id(j)
2874 AND sd.customer_id = t_del_cust_id(j)
2875 AND sd.customer_site_id = t_del_cust_site_id(j)
2876 AND sd.inventory_item_id = t_del_item_id(j)
2877 AND sd.publisher_order_type = g_supply_commit;
2878 END IF;
2879 END IF;
2880
2881 --Added for bug 3304493
2882 log_debug('MSC_X_OVERWRITE_OF := ' || G_OVERWRITE_OF);
2883 --log_debug('MSC_X_OVERWRITE_OF := ' || G_OVERWRITE_OF);
2884 IF (G_OVERWRITE_OF = 'Y') THEN
2885 OPEN c_delete_order_forecast(p_header_id, p_language);
2886 FETCH c_delete_order_forecast
2887 bulk collect INTO t_del_pub_id,
2888 t_del_pub_site_id,
2889 t_del_supp_id,
2890 t_del_supp_site_id,
2891 t_del_item_id;
2892 CLOSE c_delete_order_forecast;
2893 IF t_del_pub_id IS NOT NULL AND t_del_pub_id.COUNT > 0 THEN
2894 forall j IN t_del_pub_id.first..t_del_pub_id.last
2895 DELETE FROM msc_sup_dem_entries sd
2896 WHERE sd.publisher_id = t_del_pub_id(j)
2897 AND sd.publisher_site_id = t_del_pub_site_id(j)
2898 AND sd.supplier_id = t_del_supp_id(j)
2899 AND sd.supplier_site_id = t_del_supp_site_id(j)
2900 AND sd.inventory_item_id = t_del_item_id(j)
2901 AND sd.publisher_order_type = G_ORDER_FORECAST;
2902 END IF;
2903 END IF;
2904
2905 --===========================================================================
2906 -- Print error messages to the log file
2907 --===========================================================================
2908
2909 FOR i IN 1..l_loops_reqd LOOP
2910 l_start_line := l_min + ((i-1)*G_BATCH_SIZE);
2911 IF ((l_min -1 + i*G_BATCH_SIZE) <= l_max) THEN
2912 l_end_line := l_min -1 + i*G_BATCH_SIZE;
2913 ELSE
2914 l_end_line := l_max;
2915 END IF;
2916
2917 --=========================================================================
2918 -- Writing error messages to the log file
2919 --=========================================================================
2920 open c_err_msg(p_header_id, l_start_line, l_end_line);
2921 fetch c_err_msg bulk collect
2922 into t_log_line_id,
2923 t_log_item_name,
2924 t_log_order_type,
2925 t_log_err_msg;
2926 close c_err_msg;
2927
2928 if t_log_line_id is not null and t_log_line_id.COUNT > 0 then
2929 for j in t_log_line_id.FIRST..t_log_line_id.LAST loop
2930 l_log_message :=
2931 substrb(get_message('MSC','MSC_X_UI_VOD_ORD_LINE_NUM',p_language),1,500) ||
2932 ': ' || to_char(t_log_line_id(j) - l_min + 1) || ', ' ||
2933 substrb(get_message('MSC','MSC_X_UI_ITEM',p_language),1,500) ||
2934 ': ' || t_log_item_name(j) || ', ' ||
2935 substrb(get_message('MSC','MSC_X_UI_SDD_ORDER_TYPE',p_language),1,500) ||
2936 ': ' || t_log_order_type(j) || ', ' ||
2937 substrb(get_message('MSC','MSC_X_UI_LSD_ERROR', p_language),1,500) ||
2938 ': ' || t_log_err_msg(j) || fnd_global.local_chr(10) ;
2939
2940 log_message(l_log_message);
2941 end loop;
2942 end if;
2943
2944 END LOOP;
2945
2946 END update_errors;
2947
2948
2949 FUNCTION checkdates (
2950 p_header_id IN NUMBER,
2951 p_line_id IN NUMBER,
2952 p_date_format IN VARCHAR2
2953 ) RETURN NUMBER IS
2954 DATE_FORMAT_ERROR EXCEPTION;
2955 PRAGMA EXCEPTION_INIT(DATE_FORMAT_ERROR, -1861);
2956 x_date1 DATE;
2957 x_date2 DATE;
2958 x_date3 DATE;
2959 x_date4 DATE;
2960 x_date5 DATE;
2961 x_date6 DATE;
2962 x_date7 DATE;
2963 /* Added for work order support */
2964 x_date8 DATE;
2965 x_date9 DATE;
2966 BEGIN
2967 SELECT DECODE(ln.new_schedule_date, NULL, SYSDATE,
2968 to_date(ln.new_schedule_date, p_date_format)),
2969 DECODE(ln.new_schedule_end_date, NULL, SYSDATE,
2970 to_date(ln.new_schedule_end_date, p_date_format)),
2971 DECODE(ln.receipt_date, NULL, SYSDATE,
2972 to_date(ln.receipt_date, p_date_format)),
2973 DECODE(ln.ship_date, NULL, SYSDATE,
2974 to_date(ln.ship_date, p_date_format)),
2975 DECODE(ln.new_order_placement_date, NULL, SYSDATE,
2976 to_date(ln.new_order_placement_date, p_date_format)),
2977 DECODE(ln.request_date, NULL, SYSDATE,
2978 to_date(ln.request_date, p_date_format)),
2979 DECODE(ln.original_promised_date, NULL, SYSDATE,
2980 to_date(ln.original_promised_date, p_date_format)),
2981 DECODE(ln.wip_start_date, NULL, SYSDATE,
2982 to_date(ln.wip_start_date, p_date_format)),
2983 DECODE(ln.wip_end_date, NULL, SYSDATE,
2984 to_date(ln.wip_end_date, p_date_format))
2985 INTO x_date1,
2986 x_date2,
2987 x_date3,
2988 x_date4,
2989 x_date5,
2990 x_date6,
2991 x_date7,
2992 x_date8,
2993 x_date9
2994 FROM msc_supdem_lines_interface ln
2995 WHERE ln.parent_header_id = p_header_id and
2996 ln.line_id = p_line_id;
2997
2998 return 0;
2999
3000 EXCEPTION
3001 WHEN DATE_FORMAT_ERROR THEN
3002 return 1;
3003 WHEN OTHERS THEN
3004 return 1;
3005 END CHECKDATES;
3006
3007
3008 FUNCTION get_message (
3009 p_app IN VARCHAR2,
3010 p_name IN VARCHAR2,
3011 p_lang IN VARCHAR2
3012 ) RETURN VARCHAR2 IS
3013 msg VARCHAR2(2000) := NULL;
3014 CURSOR c1(app_name VARCHAR2, msg_name VARCHAR2, lang VARCHAR2) IS
3015 SELECT m.message_text
3016 FROM fnd_new_messages m,
3017 fnd_application a
3018 WHERE m.message_name = msg_name AND
3019 m.language_code = lang AND
3020 a.application_short_name = app_name AND
3021 m.application_id = a.application_id;
3022 BEGIN
3023 OPEN c1(p_app, p_name, p_lang);
3024 FETCH c1 INTO msg;
3025 IF (c1%NOTFOUND) then
3026 msg := p_name;
3027 END IF;
3028 CLOSE c1;
3029 RETURN msg;
3030 END get_message;
3031
3032
3033
3034 PROCEDURE send_ntf (
3035 p_header_id IN NUMBER,
3036 p_file_name IN VARCHAR2,
3037 p_status IN NUMBER,
3038 p_user_name IN VARCHAR2,
3039 p_event_key IN VARCHAR2
3040 ) IS
3041 parameter_list WF_PARAMETER_LIST_T;
3042 event_name VARCHAR2(50):= 'oracle.apps.msc.txn.loads';
3043 msg_txt VARCHAR2(2000) := NULL;
3044 full_language VARCHAR2(80) := NULL;
3045 language VARCHAR2(10);
3046 msg_name VARCHAR2(40) := NULL;
3047 date_format VARCHAR2(80);
3048 mailDate VARCHAR2(80);
3049 BEGIN
3050 log_debug('In send_ntf');
3051 --language := fnd_preference.get(UPPER(p_user_name),'WF','LANGUAGE');
3052
3053 /* BUG #3845796 :Using Applications Session Language in preference to ICX_LANGUAGE profile value */
3054
3055 language := USERENV('LANG');
3056 IF(language is null) THEN
3057
3058 full_language := fnd_profile.value('ICX_LANGUAGE');
3059
3060 IF full_language IS NOT NULL THEN
3061 SELECT language_code
3062 INTO language
3063 FROM fnd_languages
3064 WHERE nls_language = full_language;
3065 ELSE
3066 language := 'US';
3067 END IF;
3068 END IF;
3069 /*
3070 if language is null then
3071 language := 'US';
3072 end if;
3073 */
3074 date_format := NVL(fnd_profile.value('ICX_DATE_FORMAT_MASK'),'DD/MM/YYYY');
3075 mailDate := to_char(sysdate, date_format) ;
3076
3077 IF p_status = G_SUCCESS THEN
3078 msg_txt := get_message('MSC', 'MSC_X_LOADS_SUCCESS', language);
3079 msg_name := 'LOADS_SUCCESS_NTF';
3080 ELSIF p_status = G_FAILURE THEN
3081 msg_txt := build_error_string(p_header_id, language);
3082 msg_name := 'LOADS_ERROR_NTF';
3083 END IF;
3084
3085 wf_event.AddParameterToList(p_name => 'USER_NAME',
3086 p_value => p_user_name,
3087 p_parameterlist => parameter_list);
3088 wf_event.AddParameterToList(p_name => 'MESG',
3089 p_value => msg_name,
3090 p_parameterlist => parameter_list);
3091 wf_event.AddParameterToList(p_name => 'MESG_BODY',
3092 p_value => msg_txt,
3093 p_parameterlist => parameter_list);
3094 wf_event.AddParameterToList(p_name => 'HEADER_ID',
3095 p_value => p_header_id,
3096 p_parameterlist => parameter_list);
3097 wf_event.AddParameterToList(p_name => 'CREATION_DATE',
3098 p_value => mailDate,
3099 p_parameterlist => parameter_list);
3100 wf_event.AddParameterToList(p_name => 'FILENAME',
3101 p_value => p_file_name,
3102 p_parameterlist => parameter_list);
3103 wf_event.raise(p_event_name => event_name,
3104 p_event_key => p_event_key,
3105 p_parameters => parameter_list);
3106 END send_ntf;
3107
3108
3109
3110 FUNCTION build_error_string (
3111 p_header_id IN NUMBER,
3112 p_lang IN VARCHAR2
3113 ) RETURN VARCHAR2 IS
3114
3115 CURSOR errors (header_id NUMBER) IS
3116 SELECT line_id,
3117 nvl(item_name, nvl(owner_item_name, nvl(supplier_item_name, customer_item_name))),
3118 substrb(err_msg,1,240),
3119 substrb(order_type,1,240),
3120 order_identifier,
3121 release_number,
3122 line_number
3123 FROM msc_supdem_lines_interface
3124 WHERE parent_header_id = header_id AND
3125 row_status = G_FAILURE;
3126
3127 err_buf VARCHAR2(2000) := NULL;
3128 line_id NUMBER;
3129 min_line_id NUMBER;
3130 err_msg VARCHAR2(240);
3131 item_name VARCHAR2(240);
3132 order_type VARCHAR2(240);
3133 order_number VARCHAR2(240);
3134 release_number VARCHAR2(20);
3135 line_number VARCHAR2(20);
3136 BEGIN
3137 SELECT min(line_id)
3138 INTO min_line_id
3139 FROM msc_supdem_lines_interface
3140 WHERE parent_header_id = p_header_id;
3141
3142 OPEN errors(p_header_id);
3143 LOOP
3144 FETCH errors
3145 INTO line_id,
3146 item_name,
3147 err_msg,
3148 order_type,
3149 order_number,
3150 release_number,
3151 line_number;
3152 EXIT WHEN errors%NOTFOUND OR lengthb(err_buf) > 1500;
3153 err_buf := err_buf || fnd_global.local_chr(10) ||
3154 substrb(get_message('MSC','MSC_X_UI_VOD_ORD_LINE_NUM',p_lang),1,40) ||
3155 ': ' || to_char(line_id - min_line_id + 1) || ', ' ||
3156 substrb(get_message('MSC','MSC_X_UI_ITEM',p_lang),1,40) ||
3157 ': ' || item_name || ', ' ;
3158
3159 IF order_type IS NOT NULL THEN
3160 err_buf := err_buf || substrb(get_message('MSC','MSC_X_UI_SDD_ORDER_TYPE',p_lang),1,40) ||
3161 ': ' || order_type || ', ';
3162 END IF;
3163
3164 IF order_number IS NOT NULL THEN
3165 err_buf := err_buf || substrb(get_message('MSC','MSC_X_UI_SDD_TH_ORDER', p_lang),1,40) ||
3166 ': ' || order_number || ', ';
3167 END IF;
3168
3169 IF release_number IS NOT NULL THEN
3170 err_buf := err_buf || substrb(get_message('MSC','MSC_X_UI_VOD_ORD_REL_NUM', p_lang),1,40) ||
3171 ': ' || release_number || ', ';
3172 END IF;
3173
3174 IF line_number IS NOT NULL THEN
3175 err_buf := err_buf || substrb(get_message('MSC','MSC_X_UI_VOD_EX_ORD_LINE', p_lang),1,40) ||
3176 ': ' || line_number || ', ';
3177 END IF;
3178
3179 err_buf := err_buf || substrb(get_message('MSC','MSC_X_UI_LSD_ERROR', p_lang),1,40) ||
3180 ': ' || err_msg ;
3181 IF (lengthb(err_buf) > 1500) THEN
3182 err_buf := err_buf || fnd_global.local_chr(10) || substrb(get_message('MSC','MSC_X_API_ERRORS_STOPPED', p_lang),1,(2000 - lengthb(err_buf)));
3183 END IF;
3184 END LOOP;
3185 CLOSE errors;
3186 RETURN err_buf;
3187 END build_error_string;
3188
3189
3190
3191 PROCEDURE validate (
3192
3193 p_err_msg OUT NOCOPY VARCHAR2,
3194 p_status OUT NOCOPY NUMBER,
3195 p_header_id IN NUMBER,
3196 p_build_err IN NUMBER
3197 ) IS
3198
3199 -- Added fix for bug 2408610 (Sync'd up delete and replace behavior)
3200
3201 /* sbala ADD CA */
3202 CURSOR c_delete
3203 (
3204 p_header_id NUMBER,
3205 p_language VARCHAR2,
3206 p_start_line NUMBER,
3207 p_end_line NUMBER,
3208 p_date_format VARCHAR2
3209 ) IS
3210 select sd.transaction_id
3211 from msc_supdem_lines_interface ln,
3212 msc_companies c,
3213 msc_company_sites s ,
3214 fnd_lookup_values flv,
3215 msc_sup_dem_entries sd
3216 where ln.parent_header_id = p_header_id and
3217 ln.line_id between p_start_line and p_end_line and
3218 NVL(ln.row_status, G_PROCESS) = G_SUCCESS and
3219 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) and
3220 s.company_id = c.company_id and
3221 UPPER(s.company_site_name) = UPPER(ln.publisher_site) and
3222 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
3223 flv.language = p_language and
3224 UPPER(flv.meaning) = UPPER(ln.order_type) and
3225 UPPER(ln.sync_indicator) = 'D' and
3226 sd.publisher_id = c.company_id and
3227 sd.publisher_site_id = s.company_site_id AND
3228
3229 upper(nvl(sd.supplier_name,G_NULL_STRING)) = upper(nvl(ln.supplier_company,
3230 nvl(sd.supplier_name,G_NULL_STRING))) and
3231 upper(nvl(sd.supplier_site_name,G_NULL_STRING)) = upper(nvl(ln.supplier_site,
3232 nvl(sd.supplier_site_name,G_NULL_STRING))) and
3233 upper(nvl(sd.customer_name,G_NULL_STRING)) = upper(nvl(ln.customer_company,
3234 nvl(sd.customer_name,G_NULL_STRING))) and
3235 upper(nvl(sd.customer_site_name,G_NULL_STRING)) = upper(nvl(ln.customer_site,
3236 nvl(sd.customer_site_name,G_NULL_STRING))) and
3237 (
3238 sd.item_name = NVL(ln.item_name,
3239 Nvl(ln.owner_item_name,
3240 Nvl(ln.customer_item_name, ln.supplier_item_name))) or
3241 sd.owner_item_name = NVL(ln.owner_item_name,
3242 Nvl(ln.item_name,
3243 Nvl(ln.customer_item_name,ln.supplier_item_name))) or
3244 sd.customer_item_name = NVL(ln.customer_item_name,
3245 Nvl(ln.item_name,
3246 Nvl(ln.owner_item_name, ln.supplier_item_name))) or
3247 sd.supplier_item_name = NVL(ln.supplier_item_name,
3248 Nvl(ln.item_name,
3249 Nvl(ln.owner_item_name, ln.customer_item_name)))
3250 ) and
3251 sd.publisher_order_type = flv.lookup_code and
3252 sd.publisher_order_type in (G_SALES_FORECAST,
3253 G_ORDER_FORECAST,
3254 G_SUPPLY_COMMIT,
3255 G_HIST_SALES,
3256 G_SELL_THRO_FCST,
3257 G_SUPPLIER_CAP,
3258 G_SAFETY_STOCK,
3259 G_INTRANSIT,
3260 g_replenishment,
3261 g_alloc_onhand,
3262 g_unallocated_onhand,
3263 g_proj_avai_bal, --Consigned CVMI Enh : Bug # 4247230
3264 decode(G_CVMI_PROFILE , 'N' , G_CONS_ADVICE , null , G_CONS_ADVICE , -1 ))
3265 and upper(nvl(sd.bucket_type_desc, G_NULL_STRING)) = upper(nvl(ln.bucket_type, Nvl(sd.bucket_type_desc,G_NULL_STRING)))
3266 and sd.key_date between Decode(ln.key_date,NULL,sd.key_date, trunc(to_date(ln.key_date, p_date_format)))
3267 and decode(ln.new_schedule_end_date, NULL, sd.key_date,trunc(to_date(ln.new_schedule_end_date, p_date_format)))
3268 AND Nvl(sd.last_update_login,-1) <> G_DELETED
3269 UNION
3270 select sd.transaction_id
3271 from msc_supdem_lines_interface ln,
3272 msc_companies c,
3273 msc_company_sites s ,
3274 fnd_lookup_values flv,
3275 msc_sup_dem_entries sd
3276 where ln.parent_header_id = p_header_id and
3277 ln.line_id between p_start_line and p_end_line and
3278 NVL(ln.row_status, G_PROCESS) = G_SUCCESS and
3279 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) and
3280 s.company_id = c.company_id and
3281 UPPER(s.company_site_name) = UPPER(ln.publisher_site) and
3282 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
3283 flv.language = p_language and
3284 --- flv.meaning = 'Consumption Advice' and
3285 UPPER(flv.meaning) = UPPER(ln.order_type) and
3286 UPPER(ln.sync_indicator) = 'D' and
3287 sd.publisher_id = c.company_id and
3288 sd.publisher_site_id = s.company_site_id and
3289 upper(nvl(sd.supplier_name,G_NULL_STRING)) = upper(nvl(ln.supplier_company,
3290 nvl(sd.supplier_name,G_NULL_STRING))) and
3291 upper(nvl(sd.supplier_site_name,G_NULL_STRING)) = upper(nvl(ln.supplier_site,
3292 nvl(sd.supplier_site_name,G_NULL_STRING))) and
3293 upper(nvl(sd.customer_name,G_NULL_STRING)) = upper(nvl(ln.customer_company,
3294 nvl(sd.customer_name,G_NULL_STRING))) and
3295 upper(nvl(sd.customer_site_name,G_NULL_STRING)) = upper(nvl(ln.customer_site,
3296 nvl(sd.customer_site_name,G_NULL_STRING))) and
3297 (
3298 sd.item_name = NVL(ln.item_name,
3299 Nvl(ln.owner_item_name,
3300 Nvl(ln.customer_item_name, ln.supplier_item_name))) or
3301 sd.owner_item_name = NVL(ln.owner_item_name,
3302 Nvl(ln.item_name,
3303 Nvl(ln.customer_item_name,ln.supplier_item_name))) or
3304 sd.customer_item_name = NVL(ln.customer_item_name,
3305 Nvl(ln.item_name,
3306 Nvl(ln.owner_item_name, ln.supplier_item_name))) or
3307 sd.supplier_item_name = NVL(ln.supplier_item_name,
3308 Nvl(ln.item_name,
3309 Nvl(ln.owner_item_name, ln.customer_item_name)))
3310 ) and
3311 sd.publisher_order_type = flv.lookup_code and
3312 sd.publisher_order_type = G_WORK_ORDER
3313 and sd.key_date = decode(ln.key_date, NULL,sd.key_date, Trunc(To_date(ln.key_date, p_date_format)))
3314 and NVL(sd.order_number, G_NULL_STRING) = NVL(ln.order_identifier,Nvl(sd.order_number,G_NULL_STRING))
3315 AND Nvl(sd.last_update_login,-1) <> G_DELETED
3316 UNION
3317 select sd.transaction_id
3318 from msc_supdem_lines_interface ln,
3319 msc_companies c,
3320 msc_company_sites s ,
3321 fnd_lookup_values flv,
3322 msc_sup_dem_entries sd
3323 where ln.parent_header_id = p_header_id and
3324 ln.line_id between p_start_line and p_end_line and
3325 NVL(ln.row_status, G_PROCESS) = G_SUCCESS and
3326 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) and
3327 s.company_id = c.company_id and
3328 UPPER(s.company_site_name) = UPPER(ln.publisher_site) and
3329 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
3330 flv.language = p_language and
3331 UPPER(flv.meaning) = UPPER(ln.order_type) and
3332 UPPER(ln.sync_indicator) = 'D' and
3333 sd.publisher_id = c.company_id and
3334 sd.publisher_site_id = s.company_site_id and
3335 upper(nvl(sd.supplier_name,G_NULL_STRING)) = upper(nvl(ln.supplier_company,
3336 nvl(sd.supplier_name,G_NULL_STRING))) and
3337 upper(nvl(sd.supplier_site_name,G_NULL_STRING)) = upper(nvl(ln.supplier_site,
3338 nvl(sd.supplier_site_name,G_NULL_STRING))) and
3339 upper(nvl(sd.customer_name,G_NULL_STRING)) = upper(nvl(ln.customer_company,
3340 nvl(sd.customer_name,G_NULL_STRING))) and
3341 upper(nvl(sd.customer_site_name,G_NULL_STRING)) = upper(nvl(ln.customer_site,
3342 nvl(sd.customer_site_name,G_NULL_STRING))) and
3343 (
3344 sd.item_name = NVL(ln.item_name,
3345 Nvl(ln.owner_item_name,
3346 Nvl(ln.customer_item_name, ln.supplier_item_name))) or
3347 sd.owner_item_name = NVL(ln.owner_item_name,
3348 Nvl(ln.item_name,
3349 Nvl(ln.customer_item_name,ln.supplier_item_name))) or
3350 sd.customer_item_name = NVL(ln.customer_item_name,
3351 Nvl(ln.item_name,
3352 Nvl(ln.owner_item_name, ln.supplier_item_name))) or
3353 sd.supplier_item_name = NVL(ln.supplier_item_name,
3354 Nvl(ln.item_name,
3355 Nvl(ln.owner_item_name, ln.customer_item_name)))
3356 ) and
3357 sd.publisher_order_type = flv.lookup_code and
3358 sd.publisher_order_type IN (G_PURCHASE_ORDER,
3359 G_SALES_ORDER,
3360 G_ASN,
3361 G_SHIP_RECEIPT,
3362 G_REQUISITION,
3363 G_PO_ACKNOWLEDGEMENT,
3364 decode(G_CVMI_PROFILE , 'Y' , G_CONS_ADVICE , -1 )) AND --Consigned CVMI Enh
3365 NVL(sd.order_number, G_NULL_STRING) = Decode(sd.publisher_order_type,
3366 g_purchase_order,
3367 nvl(ln.order_identifier,G_NULL_STRING),
3368 G_SALES_ORDER,
3369 nvl(ln.order_identifier,G_NULL_STRING),
3370 G_ASN,
3371 nvl(ln.order_identifier,G_NULL_STRING),
3372 G_SHIP_RECEIPT,
3373 nvl(ln.order_identifier,G_NULL_STRING),
3374 G_REQUISITION,
3375 nvl(ln.order_identifier, G_NULL_STRING),
3376 G_PO_ACKNOWLEDGEMENT,
3377 nvl(ln.order_identifier, g_null_string),
3378 G_CONS_ADVICE,
3379 nvl(ln.order_identifier,G_NULL_STRING),
3380 G_NULL_STRING) AND
3381 NVL(sd.line_number, G_NULL_STRING) = Decode(sd.publisher_order_type,
3382 g_purchase_order,
3383 nvl(ln.line_number, g_null_string),
3384 G_SALES_ORDER,
3385 nvl(ln.line_number, g_null_string),
3386 G_ASN,
3387 nvl(ln.line_number, g_null_string),
3388 G_SHIP_RECEIPT,
3389 Nvl(ln.line_number, g_null_string),
3390 G_REQUISITION,
3391 Nvl(ln.line_number, g_null_string),
3392 G_PO_ACKNOWLEDGEMENT,
3393 Nvl(ln.line_number, g_null_string),
3394 G_CONS_ADVICE,
3395 nvl(ln.line_number, g_null_string),
3396 G_NULL_STRING) AND
3397 NVL(sd.release_number, G_NULL_STRING) = Decode(sd.publisher_order_type,
3398 g_purchase_order,
3399 Nvl(ln.release_number, g_null_string),
3400 G_SALES_ORDER,
3401 Nvl(ln.release_number, g_null_string),
3402 G_ASN,
3403 Nvl(ln.release_number, g_null_string),
3404 G_SHIP_RECEIPT,
3405 Nvl(ln.release_number, g_null_string),
3406 G_REQUISITION,
3407 Nvl(ln.release_number, g_null_string),
3408 G_PO_ACKNOWLEDGEMENT,
3409 Nvl(ln.release_number, g_null_string),
3410 G_CONS_ADVICE,
3411 Nvl(ln.release_number, g_null_string),
3412 G_NULL_STRING) AND
3413 NVL(sd.end_order_number, G_NULL_STRING) = Decode(sd.publisher_order_type,
3414 g_purchase_order,
3415 Nvl(ln.pegging_order_identifier, g_null_string),
3416 G_SALES_ORDER,
3417 Nvl(ln.pegging_order_identifier, g_null_string),
3418 G_ASN,
3419 Nvl(ln.pegging_order_identifier, g_null_string),
3420 G_SHIP_RECEIPT,
3421 Nvl(ln.pegging_order_identifier, g_null_string),
3422 G_REQUISITION,
3423 Nvl(ln.pegging_order_identifier, g_null_string),
3424 G_PO_ACKNOWLEDGEMENT,
3425 Nvl(ln.pegging_order_identifier, g_null_string),
3426 G_CONS_ADVICE,
3427 Nvl(ln.pegging_order_identifier, g_null_string),
3428 G_NULL_STRING) AND
3429 NVL(sd.end_order_rel_number, G_NULL_STRING) = Decode(sd.publisher_order_type,
3430 g_purchase_order,
3431 Nvl(ln.ref_release_number, g_null_string),
3432 G_SALES_ORDER,
3433 Nvl(ln.ref_release_number, g_null_string),
3434 G_ASN,
3435 Nvl(ln.ref_release_number, g_null_string),
3436 G_SHIP_RECEIPT,
3437 Nvl(ln.ref_release_number, g_null_string),
3438 G_REQUISITION,
3439 Nvl(ln.ref_release_number, g_null_string),
3440 G_PO_ACKNOWLEDGEMENT,
3441 Nvl(ln.ref_release_number, g_null_string),
3442 G_CONS_ADVICE,
3443 Nvl(ln.ref_release_number, g_null_string),
3444 G_NULL_STRING) AND
3445 NVL(sd.end_order_line_number, G_NULL_STRING) = Decode(sd.publisher_order_type,
3446 g_purchase_order,
3447 Nvl(ln.ref_line_number, g_null_string),
3448 G_SALES_ORDER,
3449 Nvl(ln.ref_line_number, g_null_string),
3450 G_ASN,
3451 Nvl(ln.ref_line_number, g_null_string),
3452 G_SHIP_RECEIPT,
3453 Nvl(ln.ref_line_number, g_null_string),
3454 G_REQUISITION,
3455 Nvl(ln.ref_line_number, g_null_string),
3456 G_PO_ACKNOWLEDGEMENT,
3457 Nvl(ln.ref_line_number, g_null_string),
3458 G_CONS_ADVICE,
3459 Nvl(ln.ref_line_number, g_null_string),
3460 G_NULL_STRING) and
3461 Nvl(sd.last_update_login,-1) <> G_DELETED;
3462
3463 /* Added for work order support */
3464
3465 CURSOR c_work_order_without_cust(
3466 p_header_id NUMBER,
3467 p_language VARCHAR2,
3468 p_start_line NUMBER,
3469 p_end_line NUMBER,
3470 p_date_format VARCHAR2
3471 ) IS
3472 SELECT ln.line_id ,
3473 c.company_name,
3474 c.company_id,
3475 s.company_site_name,
3476 s.company_site_id,
3477 ln.publisher_address,
3478 ln.customer_company,
3479 ln.customer_company,
3480 ln.customer_site,
3481 ln.customer_site,
3482 ln.customer_address,
3483 c.company_name,
3484 c.company_id,
3485 s.company_site_name,
3486 s.company_site_id,
3487 ln.supplier_address,
3488 ln.ship_from_party_name,
3489 ln.ship_from_party_site,
3490 ln.ship_from_party_address,
3491 ln.ship_to_party_name,
3492 ln.ship_to_party_site,
3493 ln.ship_to_party_address,
3494 ln.ship_to_address,
3495 ln.end_order_publisher_name,
3496 ln.end_order_publisher_site,
3497 flv1.lookup_code,
3498 flv1.meaning,
3499 null,
3500 --ln.end_order_type,
3501 --ln.bucket_type,
3502 flv.meaning,
3503 flv.lookup_code,
3504 ln.inventory_item_id,
3505 ln.order_identifier,
3506 ln.line_number,
3507 ln.release_number,
3508 null,
3509 null,
3510 null,
3511 /*
3512 ln.pegging_order_identifier,
3513 ln.ref_line_number,
3514 ln.ref_release_number,
3515 */
3516 DECODE(ln.key_date, NULL, NULL,
3517 to_date(ln.key_date, p_date_format)),
3518 DECODE(ln.new_schedule_date, NULL, NULL,
3519 to_date(ln.new_schedule_date, p_date_format)),
3520 DECODE(ln.ship_date, NULL, NULL,
3521 to_date(ln.ship_date, p_date_format)),
3522 DECODE(ln.receipt_date, NULL, NULL,
3523 to_date(ln.receipt_date, p_date_format)),
3524 DECODE(ln.new_order_placement_date, NULL, NULL,
3525 to_date(ln.new_order_placement_date, p_date_format)),
3526 DECODE(ln.original_promised_date, NULL, NULL,
3527 to_date(ln.original_promised_date, p_date_format)),
3528 DECODE(ln.request_date,NULL,NULL,
3529 to_date(ln.request_date,p_date_format)),
3530 Decode(ln.wip_start_date, NULL, NULL,
3531 to_date(ln.wip_start_date,p_date_format)),
3532 Decode(ln.wip_end_date, NULL, NULL,
3533 to_date(ln.wip_end_date,p_date_format)),
3534 round(ln.quantity, 6),
3535 ln.uom,
3536 ln.comments,
3537 ln.carrier_code,
3538 ln.bill_of_lading_number,
3539 ln.tracking_number,
3540 ln.vehicle_number,
3541 ln.container_type,
3542 round(ln.container_qty, 6),
3543 ln.serial_number,
3544 ln.attachment_url,
3545 ln.version,
3546 ln.designator,
3547 ln.context,
3548 ln.attribute1,
3549 ln.attribute2,
3550 ln.attribute3,
3551 ln.attribute4,
3552 ln.attribute5,
3553 ln.attribute6,
3554 ln.attribute7,
3555 ln.attribute8,
3556 ln.attribute9,
3557 ln.attribute10,
3558 ln.attribute11,
3559 ln.attribute12,
3560 ln.attribute13,
3561 ln.attribute14,
3562 ln.attribute15,
3563 ln.posting_party_name
3564 FROM msc_supdem_lines_interface ln,
3565 fnd_lookup_values flv,
3566 fnd_lookup_values flv1,
3567 msc_companies c,
3568 msc_company_sites s
3569 WHERE ln.parent_header_id = p_header_id AND
3570 ln.line_id between p_start_line and p_end_line AND
3571 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
3572 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
3573 s.company_id = c.company_id AND
3574 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
3575 ln.customer_company IS NULL and
3576 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
3577 flv.language = p_language AND
3578 flv.lookup_code = g_day and
3579 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
3580 flv1.language = p_language AND
3581 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
3582 flv1.lookup_code = G_WORK_ORDER AND
3583 UPPER(ln.sync_indicator) = 'R';
3584
3585 CURSOR c_work_order_with_cust(
3586 p_header_id NUMBER,
3587 p_language VARCHAR2,
3588 p_start_line NUMBER,
3589 p_end_line NUMBER,
3590 p_date_format VARCHAR2
3591 ) IS
3592 SELECT ln.line_id ,
3593 c.company_name,
3594 c.company_id,
3595 s.company_site_name,
3596 s.company_site_id,
3597 ln.publisher_address,
3598 c1.company_name,
3599 c1.company_id,
3600 s1.company_site_name,
3601 s1.company_site_id,
3602 ln.customer_address,
3603 c.company_name,
3604 c.company_id,
3605 s.company_site_name,
3606 s.company_site_id,
3607 ln.supplier_address,
3608 ln.ship_from_party_name,
3609 ln.ship_from_party_site,
3610 ln.ship_from_party_address,
3611 ln.ship_to_party_name,
3612 ln.ship_to_party_site,
3613 ln.ship_to_party_address,
3614 ln.ship_to_address,
3615 ln.end_order_publisher_name,
3616 ln.end_order_publisher_site,
3617 flv1.lookup_code,
3618 flv1.meaning,
3619 null,
3620 --ln.end_order_type,
3621 --ln.bucket_type,
3622 flv.meaning,
3623 flv.lookup_code,
3624 ln.inventory_item_id,
3625 ln.order_identifier,
3626 ln.line_number,
3627 ln.release_number,
3628 null,
3629 null,
3630 null,
3631 /*
3632 ln.pegging_order_identifier,
3633 ln.ref_line_number,
3634 ln.ref_release_number,
3635 */
3636 DECODE(ln.key_date, NULL, NULL,
3637 to_date(ln.key_date, p_date_format)),
3638 DECODE(ln.new_schedule_date, NULL, NULL,
3639 to_date(ln.new_schedule_date, p_date_format)),
3640 DECODE(ln.ship_date, NULL, NULL,
3641 to_date(ln.ship_date, p_date_format)),
3642 DECODE(ln.receipt_date, NULL, NULL,
3643 to_date(ln.receipt_date, p_date_format)),
3644 DECODE(ln.new_order_placement_date, NULL, NULL,
3645 to_date(ln.new_order_placement_date, p_date_format)),
3646 DECODE(ln.original_promised_date, NULL, NULL,
3647 to_date(ln.original_promised_date, p_date_format)),
3648 DECODE(ln.request_date,NULL,NULL,
3649 to_date(ln.request_date,p_date_format)),
3650 Decode(ln.wip_start_date, NULL, NULL,
3651 to_date(ln.wip_start_date,p_date_format)),
3652 Decode(ln.wip_end_date, NULL, NULL,
3653 to_date(ln.wip_end_date,p_date_format)),
3654 round(ln.quantity, 6),
3655 ln.uom,
3656 ln.comments,
3657 ln.carrier_code,
3658 ln.bill_of_lading_number,
3659 ln.tracking_number,
3660 ln.vehicle_number,
3661 ln.container_type,
3662 round(ln.container_qty, 6),
3663 ln.serial_number,
3664 ln.attachment_url,
3665 ln.version,
3666 ln.designator,
3667 ln.context,
3668 ln.attribute1,
3669 ln.attribute2,
3670 ln.attribute3,
3671 ln.attribute4,
3672 ln.attribute5,
3673 ln.attribute6,
3674 ln.attribute7,
3675 ln.attribute8,
3676 ln.attribute9,
3677 ln.attribute10,
3678 ln.attribute11,
3679 ln.attribute12,
3680 ln.attribute13,
3681 ln.attribute14,
3682 ln.attribute15,
3683 ln.posting_party_name
3684 FROM msc_supdem_lines_interface ln,
3685 fnd_lookup_values flv,
3686 fnd_lookup_values flv1,
3687 msc_companies c,
3688 msc_company_sites s,
3689 msc_companies c1,
3690 msc_company_sites s1,
3691 msc_company_relationships r
3692 WHERE ln.parent_header_id = p_header_id AND
3693 ln.line_id between p_start_line and p_end_line AND
3694 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
3695 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
3696 s.company_id = c.company_id AND
3697 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
3698 ln.customer_company IS NOT NULL AND
3699 UPPER(c1.company_name) = UPPER(ln.customer_company) AND
3700 r.subject_id = c.company_id AND
3701 r.object_id = c1.company_id AND
3702 r.relationship_type = 1 AND
3703 s1.company_id = c1.company_id AND
3704 UPPER(s1.company_site_name) = UPPER(ln.customer_site) AND
3705 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
3706 flv.language = p_language AND
3707 flv.lookup_code = g_day and
3708 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
3709 flv1.language = p_language AND
3710 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
3711 flv1.lookup_code = G_WORK_ORDER AND
3712 UPPER(ln.sync_indicator) = 'R';
3713
3714 CURSOR c_unallocated_onhand(
3715 p_header_id NUMBER,
3716 p_language VARCHAR2,
3717 p_start_line NUMBER,
3718 p_end_line NUMBER,
3719 p_date_format VARCHAR2
3720 ) IS
3721 SELECT ln.line_id ,
3722 c.company_name,
3723 c.company_id,
3724 s.company_site_name,
3725 s.company_site_id,
3726 ln.publisher_address,
3727 ln.customer_company,
3728 ln.customer_company,
3729 ln.customer_site,
3730 ln.customer_site,
3731 ln.customer_address,
3732 ln.supplier_company,
3733 ln.supplier_company,
3734 ln.supplier_site,
3735 ln.supplier_site,
3736 ln.supplier_address,
3737 ln.ship_from_party_name,
3738 ln.ship_from_party_site,
3739 ln.ship_from_party_address,
3740 ln.ship_to_party_name,
3741 ln.ship_to_party_site,
3742 ln.ship_to_party_address,
3743 ln.ship_to_address,
3744 ln.end_order_publisher_name,
3745 ln.end_order_publisher_site,
3746 flv1.lookup_code,
3747 flv1.meaning,
3748 ln.end_order_type,
3749 decode(lookup_code, G_CONS_ADVICE,NVL(ln.bucket_type,G_DAY_DESC),
3750 NULL),
3751 NULL,
3752 ln.inventory_item_id,
3753 ln.order_identifier,
3754 ln.line_number,
3755 ln.release_number,
3756 ln.pegging_order_identifier,
3757 ln.ref_line_number,
3758 ln.ref_release_number,
3759 /* for bug# 3271374, populate the new_schedule_date as key_date for unallocated OH */
3760 DECODE(ln.new_schedule_date, NULL, NULL,
3761 to_date(ln.new_schedule_date, p_date_format)),
3762 DECODE(ln.new_schedule_date, NULL, NULL,
3763 to_date(ln.new_schedule_date, p_date_format)),
3764 DECODE(ln.ship_date, NULL, NULL,
3765 to_date(ln.ship_date, p_date_format)),
3766 DECODE(ln.receipt_date, NULL, NULL,
3767 to_date(ln.receipt_date, p_date_format)),
3768 DECODE(ln.new_order_placement_date, NULL, NULL,
3769 to_date(ln.new_order_placement_date, p_date_format)),
3770 DECODE(ln.original_promised_date, NULL, NULL,
3771 to_date(ln.original_promised_date, p_date_format)),
3772 DECODE(ln.request_date,NULL,NULL,
3773 to_date(ln.request_date,p_date_format)),
3774 NULL,
3775 NULL,
3776 round(ln.quantity, 6),
3777 ln.uom,
3778 ln.comments,
3779 ln.carrier_code,
3780 ln.bill_of_lading_number,
3781 ln.tracking_number,
3782 ln.vehicle_number,
3783 ln.container_type,
3784 round(ln.container_qty, 6),
3785 ln.serial_number,
3786 ln.attachment_url,
3787 ln.version,
3788 ln.designator,
3789 ln.context,
3790 ln.attribute1,
3791 ln.attribute2,
3792 ln.attribute3,
3793 ln.attribute4,
3794 ln.attribute5,
3795 ln.attribute6,
3796 ln.attribute7,
3797 ln.attribute8,
3798 ln.attribute9,
3799 ln.attribute10,
3800 ln.attribute11,
3801 ln.attribute12,
3802 ln.attribute13,
3803 ln.attribute14,
3804 ln.attribute15,
3805 ln.posting_party_name
3806 FROM msc_supdem_lines_interface ln,
3807 fnd_lookup_values flv1,
3808 msc_companies c,
3809 msc_company_sites s
3810 WHERE ln.parent_header_id = p_header_id AND
3811 ln.line_id between p_start_line and p_end_line AND
3812 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
3813 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
3814 s.company_id = c.company_id AND
3815 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
3816 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
3817 flv1.language = p_language AND
3818 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
3819 flv1.lookup_code IN (g_unallocated_onhand,
3820 G_CONS_ADVICE) AND
3821 UPPER(ln.sync_indicator) = 'R';
3822
3823 CURSOR c_bktless_key (
3824 p_header_id NUMBER,
3825 p_language VARCHAR2,
3826 p_start_line NUMBER,
3827 p_end_line NUMBER,
3828 p_date_format VARCHAR2
3829 ) IS
3830 SELECT ln.line_id ,
3831 c.company_name,
3832 c.company_id,
3833 s.company_site_name,
3834 s.company_site_id,
3835 ln.publisher_address,
3836 decode(ln.customer_company, NULL, c.company_name, c1.company_name),
3837 decode(ln.customer_company, NULL, c.company_id, c1.company_id),
3838 decode(ln.customer_site, NULL, s.company_site_name, s1.company_site_name),
3839 decode(ln.customer_site, NULL, s.company_site_id, s1.company_site_id),
3840 ln.customer_address,
3841 decode(ln.supplier_company, NULL, c.company_name, c1.company_name),
3842 decode(ln.supplier_company, NULL, c.company_id, c1.company_id),
3843 decode(ln.supplier_site, NULL, s.company_site_name, s1.company_site_name),
3844 decode(ln.supplier_site, NULL, s.company_site_id, s1.company_site_id),
3845 ln.supplier_address,
3846 ln.ship_from_party_name,
3847 ln.ship_from_party_site,
3848 ln.ship_from_party_address,
3849 ln.ship_to_party_name,
3850 ln.ship_to_party_site,
3851 ln.ship_to_party_address,
3852 ln.ship_to_address,
3853 ln.end_order_publisher_name,
3854 ln.end_order_publisher_site,
3855 flv1.lookup_code,
3856 flv1.meaning,
3857 ln.end_order_type,
3858 ln.bucket_type,
3859 --Fix for bug 2606288 (Default bucket type to day for planning order types)
3860 Decode(flv1.lookup_code,
3861 g_purchase_order, to_number(NULL),
3862 G_SALES_ORDER, to_number(NULL),
3863 G_ASN, to_number(NULL),
3864 G_SHIP_RECEIPT, to_number(NULL),
3865 G_REQUISITION, to_number(NULL),
3866 G_PO_ACKNOWLEDGEMENT, to_number(NULL),
3867 G_DAY),
3868 ln.inventory_item_id,
3869 ln.order_identifier,
3870 ln.line_number,
3871 ln.release_number,
3872 ln.pegging_order_identifier,
3873 ln.ref_line_number,
3874 ln.ref_release_number,
3875 DECODE(ln.key_date, NULL,to_date(NULL),
3876 to_date(ln.key_date, p_date_format)),
3877 DECODE(ln.new_schedule_date, NULL,to_date(NULL),
3878 to_date(ln.new_schedule_date, p_date_format)),
3879 DECODE(ln.ship_date, NULL,to_date(NULL),
3880 to_date(ln.ship_date, p_date_format)),
3881 DECODE(ln.receipt_date, NULL,to_date(NULL),
3882 to_date(ln.receipt_date, p_date_format)),
3883 DECODE(ln.new_order_placement_date, NULL,to_date(NULL),
3884 to_date(ln.new_order_placement_date, p_date_format)),
3885 DECODE(ln.original_promised_date, NULL,to_date(NULL),
3886 to_date(ln.original_promised_date, p_date_format)),
3887 DECODE(ln.request_date,NULL,to_date(NULL),
3888 to_date(ln.request_date,p_date_format)),
3889 NULL,
3890 NULL,
3891 round(ln.quantity, 6),
3892 ln.uom,
3893 ln.comments,
3894 ln.carrier_code,
3895 ln.bill_of_lading_number,
3896 ln.tracking_number,
3897 ln.vehicle_number,
3898 ln.container_type,
3899 round(ln.container_qty, 6),
3900 ln.serial_number,
3901 ln.attachment_url,
3902 ln.version,
3903 ln.designator,
3904 ln.context,
3905 ln.attribute1,
3906 ln.attribute2,
3907 ln.attribute3,
3908 ln.attribute4,
3909 ln.attribute5,
3910 ln.attribute6,
3911 ln.attribute7,
3912 ln.attribute8,
3913 ln.attribute9,
3914 ln.attribute10,
3915 ln.attribute11,
3916 ln.attribute12,
3917 ln.attribute13,
3918 ln.attribute14,
3919 ln.attribute15,
3920 ln.posting_party_name
3921 FROM msc_supdem_lines_interface ln,
3922 fnd_lookup_values flv1,
3923 msc_companies c,
3924 msc_company_sites s,
3925 msc_companies c1,
3926 msc_company_sites s1,
3927 msc_company_relationships r
3928 WHERE ln.parent_header_id = p_header_id AND
3929 ln.line_id between p_start_line and p_end_line AND
3930 ln.bucket_type IS NULL AND
3931 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
3932 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
3933 s.company_id = c.company_id AND
3934 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
3935 UPPER(c1.company_name) = UPPER(NVL(ln.customer_company, ln.supplier_company)) AND
3936 r.subject_id = c.company_id AND
3937 r.object_id = c1.company_id AND
3938 r.relationship_type = DECODE(ln.customer_company,NULL,2,1) AND
3939 s1.company_id = c1.company_id AND
3940 UPPER(s1.company_site_name) = UPPER(NVL(ln.customer_site, ln.supplier_site)) AND
3941 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
3942 flv1.language = p_language AND
3943 /* Added for work order support */
3944 flv1.lookup_code <> G_WORK_ORDER AND
3945 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
3946 UPPER(ln.sync_indicator) = 'R'
3947 UNION
3948 SELECT ln.line_id ,
3949 c.company_name,
3950 c.company_id,
3951 s.company_site_name,
3952 s.company_site_id,
3953 ln.publisher_address,
3954 ln.customer_company,
3955 to_number(NULL),
3956 ln.customer_site,
3957 to_number(NULL),
3958 ln.customer_address,
3959 ln.supplier_company,
3960 to_number(NULL),
3961 ln.supplier_site,
3962 to_number(NULL),
3963 ln.supplier_address,
3964 ln.ship_from_party_name,
3965 ln.ship_from_party_site,
3966 ln.ship_from_party_address,
3967 ln.ship_to_party_name,
3968 ln.ship_to_party_site,
3969 ln.ship_to_party_address,
3970 ln.ship_to_address,
3971 ln.end_order_publisher_name,
3972 ln.end_order_publisher_site,
3973 flv1.lookup_code,
3974 flv1.meaning,
3975 ln.end_order_type,
3976 ln.bucket_type,
3977 --Fix for bug 2606288 (Default bucket type to day for planning order types)
3978 Decode(flv1.lookup_code,
3979 g_purchase_order, to_number(NULL),
3980 G_SALES_ORDER, to_number(NULL),
3981 G_ASN, to_number(NULL),
3982 G_SHIP_RECEIPT, to_number(NULL),
3983 G_REQUISITION, to_number(NULL),
3984 G_PO_ACKNOWLEDGEMENT, to_number(NULL),
3985 G_DAY),
3986 ln.inventory_item_id,
3987 ln.order_identifier,
3988 ln.line_number,
3989 ln.release_number,
3990 ln.pegging_order_identifier,
3991 ln.ref_line_number,
3992 ln.ref_release_number,
3993 DECODE(ln.key_date, NULL, to_date(NULL),
3994 to_date(ln.key_date, p_date_format)),
3995 DECODE(ln.new_schedule_date, NULL, to_date(NULL),
3996 to_date(ln.new_schedule_date, p_date_format)),
3997 DECODE(ln.ship_date, NULL, to_date(NULL),
3998 to_date(ln.ship_date, p_date_format)),
3999 DECODE(ln.receipt_date, NULL, to_date(NULL),
4000 to_date(ln.receipt_date, p_date_format)),
4001 DECODE(ln.new_order_placement_date, NULL, to_date(NULL),
4002 to_date(ln.new_order_placement_date, p_date_format)),
4003 DECODE(ln.original_promised_date, NULL, to_date(NULL),
4004 to_date(ln.original_promised_date, p_date_format)),
4005 DECODE(ln.request_date,NULL,to_date(NULL),
4006 to_date(ln.request_date,p_date_format)),
4007 NULL,
4008 NULL,
4009 round(ln.quantity, 6),
4010 ln.uom,
4011 ln.comments,
4012 ln.carrier_code,
4013 ln.bill_of_lading_number,
4014 ln.tracking_number,
4015 ln.vehicle_number,
4016 ln.container_type,
4017 round(ln.container_qty, 6),
4018 ln.serial_number,
4019 ln.attachment_url,
4020 ln.version,
4021 ln.designator,
4022 ln.context,
4023 ln.attribute1,
4024 ln.attribute2,
4025 ln.attribute3,
4026 ln.attribute4,
4027 ln.attribute5,
4028 ln.attribute6,
4029 ln.attribute7,
4030 ln.attribute8,
4031 ln.attribute9,
4032 ln.attribute10,
4033 ln.attribute11,
4034 ln.attribute12,
4035 ln.attribute13,
4036 ln.attribute14,
4037 ln.attribute15,
4038 ln.posting_party_name
4039 FROM msc_supdem_lines_interface ln,
4040 fnd_lookup_values flv1,
4041 msc_companies c,
4042 msc_company_sites s
4043 WHERE ln.parent_header_id = p_header_id AND
4044 ln.line_id between p_start_line and p_end_line AND
4045 ln.bucket_type IS NULL AND
4046 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
4047 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
4048 s.company_id = c.company_id AND
4049 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
4050 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
4051 flv1.language = p_language AND
4052 flv1.lookup_code in (g_safety_stock, g_proj_avai_bal) AND
4053 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
4054 UPPER(ln.sync_indicator) = 'R';
4055
4056 CURSOR c_daily_bkt_key (
4057 p_header_id NUMBER,
4058 p_language VARCHAR2,
4059 p_start_line NUMBER,
4060 p_end_line NUMBER,
4061 p_date_format VARCHAR2
4062 ) IS
4063 SELECT DISTINCT ln.line_id,
4064 c.company_name,
4065 c.company_id,
4066 s.company_site_name,
4067 s.company_site_id,
4068 ln.publisher_address,
4069 decode(ln.customer_company, NULL, c.company_name, c1.company_name),
4070 decode(ln.customer_company, NULL, c.company_id, c1.company_id),
4071 decode(ln.customer_site, NULL, s.company_site_name, s1.company_site_name),
4072 decode(ln.customer_site, NULL, s.company_site_id, s1.company_site_id),
4073 ln.customer_address,
4074 decode(ln.supplier_company, NULL, c.company_name, c1.company_name),
4075 decode(ln.supplier_company, NULL, c.company_id, c1.company_id),
4076 decode(ln.supplier_site, NULL, s.company_site_name, s1.company_site_name),
4077 decode(ln.supplier_site, NULL, s.company_site_id, s1.company_site_id),
4078 ln.supplier_address,
4079 ln.ship_from_party_name,
4080 ln.ship_from_party_site,
4081 ln.ship_from_party_address,
4082 ln.ship_to_party_name,
4083 ln.ship_to_party_site,
4084 ln.ship_to_party_address,
4085 ln.ship_to_address,
4086 ln.end_order_publisher_name,
4087 ln.end_order_publisher_site,
4088 flv1.lookup_code,
4089 flv1.meaning,
4090 ln.end_order_type,
4091 ln.bucket_type,
4092 flv.lookup_code,
4093 ln.inventory_item_id,
4094 ln.order_identifier,
4095 ln.line_number,
4096 ln.release_number,
4097 ln.pegging_order_identifier,
4098 ln.ref_line_number,
4099 ln.ref_release_number,
4100 mlb.bucket_date,
4101 DECODE(flv1.lookup_code, /* sbala ADD CA */
4102 G_HIST_SALES, mlb.bucket_date,
4103 G_SAFETY_STOCK, mlb.bucket_date,
4104 G_ALLOC_ONHAND, mlb.bucket_date,
4105 G_UNALLOCATED_ONHAND, mlb.bucket_date,
4106 G_CONS_ADVICE, mlb.bucket_date,
4107 g_proj_avai_bal, mlb.bucket_date,
4108 DECODE(ln.new_schedule_date, NULL, NULL,
4109 trunc(to_date(ln.new_schedule_date, p_date_format)))),
4110 DECODE(flv1.lookup_code,
4111 G_SELL_THRO_FCST, mlb.bucket_date,
4112 G_SUPPLIER_CAP, mlb.bucket_date,
4113 G_PROJ_SS, mlb.bucket_date,
4114 G_PROJ_ALLOC_AVAIL, mlb.bucket_date,
4115 G_PROJ_UNALLOC_AVAIL, mlb.bucket_date,
4116 G_SUPPLY_COMMIT, -- SBALACHANGE
4117 DECODE(ln.shipping_control,
4118 1, trunc(to_date(ln.ship_date,p_date_format)),
4119 2, mlb.bucket_date,
4120 decode(ln.ship_date, null, null, decode(ln.receipt_date, null,
4121 mlb.bucket_date,
4122 trunc(to_date(ln.ship_date, p_date_format))))),
4123 G_ASN,
4124 DECODE(ln.shipping_control,
4125 1, trunc(to_date(ln.ship_date,p_date_format)),
4126 2, trunc(to_date(ln.ship_date,p_date_format)),
4127 decode(ln.ship_date, null, to_date(null), decode(ln.receipt_date, null,
4128 mlb.bucket_date,
4129 trunc(to_date(ln.ship_date,p_date_format))))),
4130 G_SALES_FORECAST,
4131 DECODE(ln.shipping_control,
4132 1, mlb.bucket_date,
4133 2, mlb.bucket_date,
4134 decode(ln.ship_date, null, to_date(null), mlb.bucket_date)),
4135 G_SALES_ORDER,
4136 DECODE(ln.shipping_control,
4137 1, trunc(to_date(ln.ship_date,p_date_format)),
4138 2, mlb.bucket_date,
4139 decode(ln.ship_date, null, to_date(null), decode(ln.receipt_date, null,
4140 mlb.bucket_date,
4141 trunc(to_date(ln.ship_date,p_date_format))))),
4142 G_PURCHASE_ORDER,
4143 DECODE(ln.shipping_control,
4144 1, trunc(to_date(ln.ship_date,p_date_format)),
4145 2, mlb.bucket_date,
4146 to_date(null)),
4147 G_SHIP_RECEIPT, to_date(null),
4148 G_ORDER_FORECAST,
4149 DECODE(ln.shipping_control,
4150 1, trunc(to_date(ln.ship_date,p_date_format)),
4151 2, mlb.bucket_date,
4152 to_date(null)),
4153 G_REQUISITION,
4154 DECODE(ln.shipping_control,
4155 1, trunc(to_date(ln.ship_date,p_date_format)),
4156 2, mlb.bucket_date,
4157 to_date(null)),
4158 DECODE(ln.ship_date, NULL, to_date(null),
4159 trunc(to_date(ln.ship_date, p_date_format)))),
4160 DECODE(flv1.lookup_code,
4161 G_ORDER_FORECAST,
4162 DECODE(ln.shipping_control,
4163 1, mlb.bucket_date,
4164 2, trunc(to_date(ln.receipt_date, p_date_format)),
4165 mlb.bucket_date),
4166 G_PURCHASE_ORDER,
4167 DECODE(ln.shipping_control,
4168 1, mlb.bucket_date,
4169 2, trunc(to_date(ln.receipt_date, p_date_format)),
4170 mlb.bucket_date),
4171 G_SHIP_RECEIPT, mlb.bucket_date,
4172 G_REQUISITION,
4173 DECODE(ln.shipping_control,
4174 1, mlb.bucket_date,
4175 2, trunc(to_date(ln.receipt_date, p_date_format)),
4176 mlb.bucket_date),
4177 G_SUPPLY_COMMIT,
4178 DECODE(ln.shipping_control,
4179 1, mlb.bucket_date,
4180 2, trunc(to_date(ln.receipt_date, p_date_format)),
4181 decode(ln.receipt_date, null, to_date(null), mlb.bucket_date)),
4182 G_ASN,
4183 DECODE(ln.shipping_control,
4184 1, mlb.bucket_date,
4185 2, mlb.bucket_date,
4186 decode(ln.receipt_date, null, to_date(null), mlb.bucket_date)),
4187 G_SALES_FORECAST,
4188 DECODE(ln.shipping_control,
4189 1, trunc(to_date(ln.receipt_date, p_date_format)),
4190 2, trunc(to_date(ln.receipt_date, p_date_format)),
4191 decode(ln.receipt_date, null, to_date(null), decode(ln.ship_date, null, mlb.bucket_date, to_date(null)))),
4192 G_SALES_ORDER,
4193 DECODE(ln.shipping_control,
4194 1, mlb.bucket_date,
4195 2, trunc(to_date(ln.receipt_date, p_date_format)),
4196 decode(ln.receipt_date, null, to_date(null), mlb.bucket_date)),
4197 DECODE(ln.receipt_date, NULL, to_date(NULL),
4198 trunc(to_date(ln.receipt_date, p_date_format)))),
4199 DECODE(ln.new_order_placement_date, NULL, to_date(NULL),
4200 trunc(to_date(ln.new_order_placement_date, p_date_format))),
4201 DECODE(ln.original_promised_date, NULL, to_date(NULL),
4202 trunc(to_date(ln.original_promised_date, p_date_format))),
4203 DECODE(ln.request_date, NULL, to_date(NULL),
4204 trunc(to_date(ln.request_date, p_date_format))),
4205 NULL,
4206 NULL,
4207 round(ln.quantity, 6),
4208 ln.uom,
4209 ln.comments,
4210 ln.carrier_code,
4211 ln.bill_of_lading_number,
4212 ln.tracking_number,
4213 ln.vehicle_number,
4214 ln.container_type,
4215 round(ln.container_qty, 6),
4216 ln.serial_number,
4217 ln.attachment_url,
4218 ln.version,
4219 ln.designator,
4220 ln.context,
4221 ln.attribute1,
4222 ln.attribute2,
4223 ln.attribute3,
4224 ln.attribute4,
4225 ln.attribute5,
4226 ln.attribute6,
4227 ln.attribute7,
4228 ln.attribute8,
4229 ln.attribute9,
4230 ln.attribute10,
4231 ln.attribute11,
4232 ln.attribute12,
4233 ln.attribute13,
4234 ln.attribute14,
4235 ln.attribute15,
4236 ln.posting_party_name
4237 FROM msc_supdem_lines_interface ln,
4238 MSC_LOAD_BUCKETS_TEMP mlb,
4239 fnd_lookup_values flv,
4240 fnd_lookup_values flv1,
4241 msc_companies c,
4242 msc_company_sites s,
4243 msc_companies c1,
4244 msc_company_sites s1,
4245 msc_company_relationships r
4246 WHERE ln.parent_header_id = p_header_id AND
4247 ln.line_id between p_start_line and p_end_line AND
4248 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
4249 UPPER(flv.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING) AND
4250 flv.language = p_language AND
4251 flv.lookup_code = G_DAY AND
4252 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
4253 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
4254 s.company_id = c.company_id AND
4255 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
4256 UPPER(c1.company_name) = UPPER(NVL(ln.customer_company, ln.supplier_company)) AND
4257 r.subject_id = c.company_id AND
4258 r.object_id = c1.company_id AND
4259 r.relationship_type = DECODE(ln.customer_company,NULL,2,1) AND
4260 s1.company_id = c1.company_id AND
4261 UPPER(s1.company_site_name) = UPPER(NVL(ln.customer_site, ln.supplier_site)) AND
4262 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
4263 flv1.language = p_language AND
4264 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
4265 /* Added for work order support */
4266 flv1.lookup_code <> g_work_order
4267 AND mlb.parent_header_id = ln.parent_header_id
4268 AND mlb.line_id = ln.line_id
4269 AND UPPER(ln.sync_indicator) = 'R'
4270 UNION
4271 SELECT DISTINCT ln.line_id,
4272 c.company_name,
4273 c.company_id,
4274 s.company_site_name,
4275 s.company_site_id,
4276 ln.publisher_address,
4277 ln.customer_company,
4278 to_number(NULL),
4279 ln.customer_site,
4280 to_number(NULL),
4281 ln.customer_address,
4282 ln.supplier_company,
4283 to_number(NULL),
4284 ln.supplier_site,
4285 to_number(NULL),
4286 ln.supplier_address,
4287 ln.ship_from_party_name,
4288 ln.ship_from_party_site,
4289 ln.ship_from_party_address,
4290 ln.ship_to_party_name,
4291 ln.ship_to_party_site,
4292 ln.ship_to_party_address,
4293 ln.ship_to_address,
4294 ln.end_order_publisher_name,
4295 ln.end_order_publisher_site,
4296 flv1.lookup_code,
4297 flv1.meaning,
4298 ln.end_order_type,
4299 ln.bucket_type,
4300 flv.lookup_code,
4301 ln.inventory_item_id,
4302 ln.order_identifier,
4303 ln.line_number,
4304 ln.release_number,
4305 ln.pegging_order_identifier,
4306 ln.ref_line_number,
4307 ln.ref_release_number,
4308 mlb.bucket_date,
4309 DECODE(flv1.lookup_code, /* sbala ADD CA */
4310 G_HIST_SALES, mlb.bucket_date,
4311 G_SAFETY_STOCK, mlb.bucket_date,
4312 G_ALLOC_ONHAND, mlb.bucket_date,
4313 G_UNALLOCATED_ONHAND, mlb.bucket_date,
4314 G_CONS_ADVICE, mlb.bucket_date,
4315 g_proj_avai_bal, mlb.bucket_date,
4316 DECODE(ln.new_schedule_date, NULL, to_date(NULL),
4317 trunc(to_date(ln.new_schedule_date, p_date_format)))),
4318 DECODE(flv1.lookup_code,
4319 G_SELL_THRO_FCST, mlb.bucket_date,
4320 G_SUPPLIER_CAP, mlb.bucket_date,
4321 G_PROJ_SS, mlb.bucket_date,
4322 G_PROJ_ALLOC_AVAIL, mlb.bucket_date,
4323 G_PROJ_UNALLOC_AVAIL, mlb.bucket_date,
4324 G_SUPPLY_COMMIT, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4325 G_ASN, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4326 G_SALES_FORECAST, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4327 G_SALES_ORDER, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4328 G_PURCHASE_ORDER, to_date(NULL),
4329 G_SHIP_RECEIPT, to_date(NULL),
4330 G_ORDER_FORECAST, to_date(NULL),
4331 G_REQUISITION, to_date(NULL),
4332 DECODE(ln.ship_date, NULL, to_date(NULL),
4333 trunc(to_date(ln.ship_date, p_date_format)))),
4334 DECODE(flv1.lookup_code,
4335 G_ORDER_FORECAST, mlb.bucket_date,
4336 G_PURCHASE_ORDER, mlb.bucket_date,
4337 G_SHIP_RECEIPT, mlb.bucket_date,
4338 G_REQUISITION, mlb.bucket_date,
4339 G_SUPPLY_COMMIT, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4340 G_ASN, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4341 G_SALES_FORECAST, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4342 G_SALES_ORDER, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4343 DECODE(ln.receipt_date, NULL, to_date(NULL), trunc(to_date(ln.receipt_date, p_date_format)))),
4344 DECODE(ln.new_order_placement_date, NULL, to_date(NULL), trunc(to_date(ln.new_order_placement_date, p_date_format))),
4345 DECODE(ln.original_promised_date, NULL, to_date(NULL), trunc(to_date(ln.original_promised_date, p_date_format))),
4346 DECODE(ln.request_date, NULL, to_date(NULL), trunc(to_date(ln.request_date, p_date_format))),
4347 NULL,
4348 NULL,
4349 round(ln.quantity, 6),
4350 ln.uom,
4351 ln.comments,
4352 ln.carrier_code,
4353 ln.bill_of_lading_number,
4354 ln.tracking_number,
4355 ln.vehicle_number,
4356 ln.container_type,
4357 round(ln.container_qty, 6),
4358 ln.serial_number,
4359 ln.attachment_url,
4360 ln.version,
4361 ln.designator,
4362 ln.context,
4363 ln.attribute1,
4364 ln.attribute2,
4365 ln.attribute3,
4366 ln.attribute4,
4367 ln.attribute5,
4368 ln.attribute6,
4369 ln.attribute7,
4370 ln.attribute8,
4371 ln.attribute9,
4372 ln.attribute10,
4373 ln.attribute11,
4374 ln.attribute12,
4375 ln.attribute13,
4376 ln.attribute14,
4377 ln.attribute15,
4378 ln.posting_party_name
4379 FROM msc_supdem_lines_interface ln,
4380 MSC_LOAD_BUCKETS_TEMP mlb,
4381 fnd_lookup_values flv,
4382 fnd_lookup_values flv1,
4383 msc_companies c,
4384 msc_company_sites s
4385 WHERE ln.parent_header_id = p_header_id AND
4386 ln.line_id between p_start_line and p_end_line AND
4387 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
4388 UPPER(flv.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING) AND
4389 flv.language = p_language AND
4390 flv.lookup_code = G_DAY AND
4391 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
4392 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
4393 s.company_id = c.company_id AND
4394 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
4395 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
4396 flv1.language = p_language AND
4397 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
4398 flv1.lookup_code in (g_safety_stock, g_proj_avai_bal)
4399 AND mlb.parent_header_id = ln.parent_header_id
4400 AND mlb.line_id = ln.line_id
4401 AND UPPER(ln.sync_indicator) = 'R';
4402
4403 CURSOR c_weekly_bkt_key (
4404 p_header_id NUMBER,
4405 p_language VARCHAR2,
4406 p_start_line NUMBER,
4407 p_end_line NUMBER,
4408 p_date_format VARCHAR2
4409 ) IS
4410 SELECT ln.line_id ,
4411 c.company_name,
4412 c.company_id,
4413 s.company_site_name,
4414 s.company_site_id,
4415 ln.publisher_address,
4416 decode(ln.customer_company, NULL, c.company_name, c1.company_name),
4417 decode(ln.customer_company, NULL, c.company_id, c1.company_id),
4418 decode(ln.customer_site, NULL, s.company_site_name, s1.company_site_name),
4419 decode(ln.customer_site, NULL, s.company_site_id, s1.company_site_id),
4420 ln.customer_address,
4421 decode(ln.supplier_company, NULL, c.company_name, c1.company_name),
4422 decode(ln.supplier_company, NULL, c.company_id, c1.company_id),
4423 decode(ln.supplier_site, NULL, s.company_site_name, s1.company_site_name),
4424 decode(ln.supplier_site, NULL, s.company_site_id, s1.company_site_id),
4425 ln.supplier_address,
4426 ln.ship_from_party_name,
4427 ln.ship_from_party_site,
4428 ln.ship_from_party_address,
4429 ln.ship_to_party_name,
4430 ln.ship_to_party_site,
4431 ln.ship_to_party_address,
4432 ln.ship_to_address,
4433 ln.end_order_publisher_name,
4434 ln.end_order_publisher_site,
4435 flv1.lookup_code,
4436 flv1.meaning,
4437 ln.end_order_type,
4438 ln.bucket_type,
4439 flv.lookup_code,
4440 ln.inventory_item_id,
4441 ln.order_identifier,
4442 ln.line_number,
4443 ln.release_number,
4444 ln.pegging_order_identifier,
4445 ln.ref_line_number,
4446 ln.ref_release_number,
4447 mlb.bucket_date, /* sbala ADD CA */
4448 DECODE(flv1.lookup_code,
4449 G_HIST_SALES, mlb.bucket_date,
4450 G_SAFETY_STOCK, mlb.bucket_date,
4451 G_ALLOC_ONHAND, mlb.bucket_date,
4452 G_UNALLOCATED_ONHAND, mlb.bucket_date,
4453 G_CONS_ADVICE, mlb.bucket_date,
4454 g_proj_avai_bal, mlb.bucket_date,
4455 DECODE(ln.new_schedule_date, NULL, to_date(NULL),
4456 trunc(to_date(ln.new_schedule_date, p_date_format)))),
4457 DECODE(flv1.lookup_code,
4458 G_SELL_THRO_FCST, mlb.bucket_date,
4459 G_SUPPLIER_CAP, mlb.bucket_date,
4460 G_PROJ_SS, mlb.bucket_date,
4461 G_PROJ_ALLOC_AVAIL, mlb.bucket_date,
4462 G_PROJ_UNALLOC_AVAIL, mlb.bucket_date,
4463 G_SUPPLY_COMMIT,
4464 DECODE(ln.shipping_control,
4465 1, trunc(to_date(ln.ship_date, p_date_format)),
4466 2, mlb.bucket_date,
4467 decode(ln.ship_date, null, to_date(NULL), decode(ln.receipt_date, null,
4468 mlb.bucket_date,
4469 trunc(to_date(ln.ship_date, p_date_format))))),
4470 G_ASN,
4471 DECODE(ln.shipping_control,
4472 1, trunc(to_date(ln.ship_date, p_date_format)),
4473 2, trunc(to_date(ln.ship_date, p_date_format)),
4474 decode(ln.ship_date, null, to_date(NULL), decode(ln.receipt_date, null,
4475 mlb.bucket_date,
4476 trunc(to_date(ln.ship_date, p_date_format))))),
4477 G_SALES_FORECAST,
4478 DECODE(ln.shipping_control,
4479 1, mlb.bucket_date,
4480 2, mlb.bucket_date,
4481 decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date)),
4482 G_SALES_ORDER,
4483 DECODE(ln.shipping_control,
4484 1, trunc(to_date(ln.ship_date, p_date_format)),
4485 2, mlb.bucket_date,
4486 decode(ln.ship_date, null, to_date(NULL), decode(ln.receipt_date, null,
4487 mlb.bucket_date,
4488 trunc(to_date(ln.ship_date, p_date_format))))),
4489 G_PURCHASE_ORDER,
4490 decode(ln.shipping_control,
4491 1, trunc(to_date(ln.ship_date, p_date_format)),
4492 2, mlb.bucket_date,
4493 to_date(NULL)),
4494 G_SHIP_RECEIPT, to_date(NULL),
4495 G_ORDER_FORECAST,
4496 decode(ln.shipping_control,
4497 1, trunc(to_date(ln.ship_date, p_date_format)),
4498 2, mlb.bucket_date,
4499 to_date(NULL)),
4500 G_REQUISITION,
4501 decode(ln.shipping_control,
4502 1, trunc(to_date(ln.ship_date, p_date_format)),
4503 2, mlb.bucket_date,
4504 to_date(NULL)),
4505 DECODE(ln.ship_date, NULL, to_date(NULL),
4506 trunc(to_date(ln.ship_date, p_date_format)))),
4507 DECODE(flv1.lookup_code,
4508 G_ORDER_FORECAST,
4509 DECODE(ln.shipping_control,
4510 1, mlb.bucket_date,
4511 2,trunc(to_date(ln.receipt_date, p_date_format)),
4512 mlb.bucket_date),
4513 G_PURCHASE_ORDER,
4514 DECODE(ln.shipping_control,
4515 1, mlb.bucket_date,
4516 2, trunc(to_date(ln.receipt_date, p_date_format)),
4517 mlb.bucket_date),
4518 G_SHIP_RECEIPT, mlb.bucket_date,
4519 G_REQUISITION,
4520 DECODE(ln.shipping_control,
4521 1, mlb.bucket_date,
4522 2, trunc(to_date(ln.receipt_date, p_date_format)),
4523 mlb.bucket_date),
4524 G_SUPPLY_COMMIT,
4525 DECODE(ln.shipping_control,
4526 1, mlb.bucket_date,
4527 2, trunc(to_date(ln.receipt_date, p_date_format)),
4528 decode(ln.receipt_date, null, to_date(NULL), mlb.bucket_date)),
4529 G_ASN,
4530 DECODE(ln.shipping_control,
4531 1, mlb.bucket_date,
4532 2, mlb.bucket_date,
4533 decode(ln.receipt_date, null, to_date(NULL), mlb.bucket_date)),
4534 G_SALES_FORECAST,
4535 DECODE(ln.shipping_control,
4536 1, trunc(to_date(ln.receipt_date, p_date_format)),
4537 2, trunc(to_date(ln.receipt_date, p_date_format)),
4538 decode(ln.receipt_date, null, to_date(NULL),
4539 decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL)))),
4540 G_SALES_ORDER,
4541 DECODE(ln.shipping_control,
4542 1, mlb.bucket_date,
4543 2, trunc(to_date(ln.receipt_date, p_date_format)),
4544 decode(ln.receipt_date, null, to_date(NULL), mlb.bucket_date)),
4545 DECODE(ln.receipt_date, NULL, to_date(NULL), trunc(to_date(ln.receipt_date, p_date_format)))),
4546 DECODE(ln.new_order_placement_date, NULL, to_date(NULL), trunc(to_date(ln.new_order_placement_date, p_date_format))),
4547 DECODE(ln.original_promised_date, NULL, to_date(NULL), trunc(to_date(ln.original_promised_date, p_date_format))),
4548 DECODE(ln.request_date, NULL, to_date(NULL), trunc(to_date(ln.request_date, p_date_format))),
4549 NULL,
4550 NULL,
4551 round(ln.quantity, 6),
4552 ln.uom,
4553 ln.comments,
4554 ln.carrier_code,
4555 ln.bill_of_lading_number,
4556 ln.tracking_number,
4557 ln.vehicle_number,
4558 ln.container_type,
4559 round(ln.container_qty, 6),
4560 ln.serial_number,
4561 ln.attachment_url,
4562 ln.version,
4563 ln.designator,
4564 ln.context,
4565 ln.attribute1,
4566 ln.attribute2,
4567 ln.attribute3,
4568 ln.attribute4,
4569 ln.attribute5,
4570 ln.attribute6,
4571 ln.attribute7,
4572 ln.attribute8,
4573 ln.attribute9,
4574 ln.attribute10,
4575 ln.attribute11,
4576 ln.attribute12,
4577 ln.attribute13,
4578 ln.attribute14,
4579 ln.attribute15,
4580 ln.posting_party_name
4581 FROM msc_supdem_lines_interface ln,
4582 MSC_LOAD_BUCKETS_TEMP mlb,
4583 fnd_lookup_values flv,
4584 fnd_lookup_values flv1,
4585 msc_companies c,
4586 msc_company_sites s,
4587 msc_companies c1,
4588 msc_company_sites s1,
4589 msc_company_relationships r
4590 WHERE ln.parent_header_id = p_header_id AND
4591 ln.line_id between p_start_line and p_end_line AND
4592 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
4593 UPPER(flv.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING) AND
4594 flv.language = p_language AND
4595 flv.lookup_code = G_WEEK AND
4596 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
4597 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
4598 s.company_id = c.company_id AND
4599 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
4600 UPPER(c1.company_name) = UPPER(NVL(ln.customer_company, ln.supplier_company)) AND
4601 r.subject_id = c.company_id AND
4602 r.object_id = c1.company_id AND
4603 r.relationship_type = DECODE(ln.customer_company,NULL,2,1) AND
4604 s1.company_id = c1.company_id AND
4605 UPPER(s1.company_site_name) = UPPER(NVL(ln.customer_site, ln.supplier_site)) AND
4606 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
4607 flv1.language = p_language AND
4608 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
4609 /* Added for work order support */
4610 flv1.lookup_code <> g_work_order
4611 AND mlb.parent_header_id = ln.parent_header_id
4612 AND mlb.line_id = ln.line_id
4613 AND UPPER(ln.sync_indicator) = 'R'
4614 UNION
4615 SELECT ln.line_id ,
4616 c.company_name,
4617 c.company_id,
4618 s.company_site_name,
4619 s.company_site_id,
4620 ln.publisher_address,
4621 ln.customer_company,
4622 to_number(NULL),
4623 ln.customer_site,
4624 to_number(NULL),
4625 ln.customer_address,
4626 ln.supplier_company,
4627 to_number(NULL),
4628 ln.supplier_site,
4629 to_number(NULL),
4630 ln.supplier_address,
4631 ln.ship_from_party_name,
4632 ln.ship_from_party_site,
4633 ln.ship_from_party_address,
4634 ln.ship_to_party_name,
4635 ln.ship_to_party_site,
4636 ln.ship_to_party_address,
4637 ln.ship_to_address,
4638 ln.end_order_publisher_name,
4639 ln.end_order_publisher_site,
4640 flv1.lookup_code,
4641 flv1.meaning,
4642 ln.end_order_type,
4643 ln.bucket_type,
4644 flv.lookup_code,
4645 ln.inventory_item_id,
4646 ln.order_identifier,
4647 ln.line_number,
4648 ln.release_number,
4649 ln.pegging_order_identifier,
4650 ln.ref_line_number,
4651 ln.ref_release_number,
4652 mlb.bucket_date, /* sbala ADD CA */
4653 DECODE(flv1.lookup_code,
4654 G_HIST_SALES, mlb.bucket_date,
4655 G_SAFETY_STOCK, mlb.bucket_date,
4656 G_ALLOC_ONHAND, mlb.bucket_date,
4657 G_UNALLOCATED_ONHAND, mlb.bucket_date,
4658 G_CONS_ADVICE, mlb.bucket_date,
4659 g_proj_avai_bal, mlb.bucket_date,
4660 DECODE(ln.new_schedule_date, NULL, to_date(NULL),
4661 trunc(to_date(ln.new_schedule_date, p_date_format)))),
4662 DECODE(flv1.lookup_code,
4663 G_SELL_THRO_FCST, mlb.bucket_date,
4664 G_SUPPLIER_CAP, mlb.bucket_date,
4665 G_PROJ_SS, mlb.bucket_date,
4666 G_PROJ_ALLOC_AVAIL, mlb.bucket_date,
4667 G_PROJ_UNALLOC_AVAIL, mlb.bucket_date,
4668 G_SUPPLY_COMMIT, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4669 G_ASN, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4670 G_SALES_FORECAST, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4671 G_SALES_ORDER, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
4672 G_PURCHASE_ORDER, to_date(NULL),
4673 G_SHIP_RECEIPT, to_date(NULL),
4674 G_ORDER_FORECAST, to_date(NULL),
4675 G_REQUISITION, to_date(NULL),
4676 DECODE(ln.ship_date, NULL, to_date(NULL),
4677 trunc(to_date(ln.ship_date, p_date_format)))),
4678 DECODE(flv1.lookup_code,
4679 G_ORDER_FORECAST, mlb.bucket_date,
4680 G_PURCHASE_ORDER, mlb.bucket_date,
4681 G_SHIP_RECEIPT, mlb.bucket_date,
4682 G_REQUISITION, mlb.bucket_date,
4683 G_SUPPLY_COMMIT, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4684 G_ASN, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4685 G_SALES_FORECAST, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4686 G_SALES_ORDER, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
4687 DECODE(ln.receipt_date, NULL, to_date(NULL), trunc(to_date(ln.receipt_date, p_date_format)))),
4688 DECODE(ln.new_order_placement_date, NULL, to_date(NULL), trunc(to_date(ln.new_order_placement_date, p_date_format))),
4689 DECODE(ln.original_promised_date, NULL, to_date(NULL), trunc(to_date(ln.original_promised_date, p_date_format))),
4690 DECODE(ln.request_date, NULL, to_date(NULL), trunc(to_date(ln.request_date, p_date_format))),
4691 NULL,
4692 NULL,
4693 round(ln.quantity, 6),
4694 ln.uom,
4695 ln.comments,
4696 ln.carrier_code,
4697 ln.bill_of_lading_number,
4698 ln.tracking_number,
4699 ln.vehicle_number,
4700 ln.container_type,
4701 round(ln.container_qty, 6),
4702 ln.serial_number,
4703 ln.attachment_url,
4704 ln.version,
4705 ln.designator,
4706 ln.context,
4707 ln.attribute1,
4708 ln.attribute2,
4709 ln.attribute3,
4710 ln.attribute4,
4711 ln.attribute5,
4712 ln.attribute6,
4713 ln.attribute7,
4714 ln.attribute8,
4715 ln.attribute9,
4716 ln.attribute10,
4717 ln.attribute11,
4718 ln.attribute12,
4719 ln.attribute13,
4720 ln.attribute14,
4721 ln.attribute15,
4722 ln.posting_party_name
4723 FROM msc_supdem_lines_interface ln,
4724 MSC_LOAD_BUCKETS_TEMP mlb,
4725 fnd_lookup_values flv,
4726 fnd_lookup_values flv1,
4727 msc_companies c,
4728 msc_company_sites s
4729 WHERE ln.parent_header_id = p_header_id AND
4730 ln.line_id between p_start_line and p_end_line AND
4731 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
4732 UPPER(flv.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING) AND
4733 flv.language = p_language AND
4734 flv.lookup_code = G_WEEK AND
4735 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
4736 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
4737 s.company_id = c.company_id AND
4738 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
4739 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
4740 flv1.language = p_language AND
4741 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
4742 flv1.lookup_code IN (g_safety_stock, g_proj_avai_bal)
4743 AND mlb.parent_header_id = ln.parent_header_id
4744 AND mlb.line_id = ln.line_id
4745 AND UPPER(ln.sync_indicator) = 'R';
4746
4747 CURSOR c_monthly_bkt_key (
4748 p_header_id NUMBER,
4749 p_language VARCHAR2,
4750 p_start_line NUMBER,
4751 p_end_line NUMBER,
4752 p_date_format VARCHAR2
4753 ) IS
4754 SELECT ln.line_id ,
4755 c.company_name,
4756 c.company_id,
4757 s.company_site_name,
4758 s.company_site_id,
4759 ln.publisher_address,
4760 decode(ln.customer_company, NULL, c.company_name, c1.company_name),
4761 decode(ln.customer_company, NULL, c.company_id, c1.company_id),
4762 decode(ln.customer_site, NULL, s.company_site_name, s1.company_site_name),
4763 decode(ln.customer_site, NULL, s.company_site_id, s1.company_site_id),
4764 ln.customer_address,
4765 decode(ln.supplier_company, NULL, c.company_name, c1.company_name),
4766 decode(ln.supplier_company, NULL, c.company_id, c1.company_id),
4767 decode(ln.supplier_site, NULL, s.company_site_name, s1.company_site_name),
4768 decode(ln.supplier_site, NULL, s.company_site_id, s1.company_site_id),
4769 ln.supplier_address,
4770 ln.ship_from_party_name,
4771 ln.ship_from_party_site,
4772 ln.ship_from_party_address,
4773 ln.ship_to_party_name,
4774 ln.ship_to_party_site,
4775 ln.ship_to_party_address,
4776 ln.ship_to_address,
4777 ln.end_order_publisher_name,
4778 ln.end_order_publisher_site,
4779 flv1.lookup_code,
4780 flv1.meaning,
4781 ln.end_order_type,
4782 ln.bucket_type,
4783 flv.lookup_code,
4784 ln.inventory_item_id,
4785 ln.order_identifier,
4786 ln.line_number,
4787 ln.release_number,
4788 ln.pegging_order_identifier,
4789 ln.ref_line_number,
4790 ln.ref_release_number,
4791 mlb.bucket_date, /* sbala ADD CA */
4792 DECODE(flv1.lookup_code,
4793 G_HIST_SALES, mlb.bucket_date,
4794 G_SAFETY_STOCK, mlb.bucket_date,
4795 G_ALLOC_ONHAND, mlb.bucket_date,
4796 G_UNALLOCATED_ONHAND, mlb.bucket_date,
4797 G_CONS_ADVICE, mlb.bucket_date,
4798 g_proj_avai_bal, mlb.bucket_date,
4799 DECODE(ln.new_schedule_date, NULL, to_date(NULL),
4800 trunc(to_date(ln.new_schedule_date, p_date_format)))),
4801 DECODE(flv1.lookup_code,
4802 G_SELL_THRO_FCST, mlb.bucket_date,
4803 G_SUPPLIER_CAP, mlb.bucket_date,
4804 G_PROJ_SS, mlb.bucket_date,
4805 G_PROJ_ALLOC_AVAIL, mlb.bucket_date,
4806 G_PROJ_UNALLOC_AVAIL, mlb.bucket_date,
4807 G_SUPPLY_COMMIT,
4808 DECODE(ln.shipping_control,
4809 1, trunc(to_date(ln.ship_date, p_date_format)),
4810 2, mlb.bucket_date,
4811 decode(ln.ship_date, null, to_date(NULL), decode(ln.receipt_date, null,
4812 mlb.bucket_date,
4813 trunc(to_date(ln.ship_date, p_date_format))))),
4814 G_ASN,
4815 DECODE(ln.shipping_control,
4816 1, trunc(to_date(ln.ship_date, p_date_format)),
4817 2, trunc(to_date(ln.ship_date, p_date_format)),
4818 decode(ln.ship_date, null, to_date(NULL), decode(ln.receipt_date, null,
4819 mlb.bucket_date,
4820 trunc(to_date(ln.ship_date, p_date_format))))),
4821 G_SALES_FORECAST,
4822 DECODE(ln.shipping_control,
4823 1, mlb.bucket_date,
4824 2, mlb.bucket_date,
4825 decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date)),
4826 G_SALES_ORDER,
4827 DECODE(ln.shipping_control,
4828 1, trunc(to_date(ln.ship_date, p_date_format)),
4829 2, mlb.bucket_date,
4830 decode(ln.ship_date, null, to_date(NULL), decode(ln.receipt_date, null,
4831 mlb.bucket_date,
4832 trunc(to_date(ln.ship_date, p_date_format))))),
4833 G_PURCHASE_ORDER,
4834 DECODE(ln.shipping_control,
4835 1, trunc(to_date(ln.ship_date, p_date_format)),
4836 2, mlb.bucket_date,
4837 to_date(NULL)),
4838 G_SHIP_RECEIPT, to_date(NULL),
4839 G_ORDER_FORECAST,
4840 DECODE(ln.shipping_control,
4841 1, trunc(to_date(ln.ship_date, p_date_format)),
4842 2, mlb.bucket_date,
4843 to_date(NULL)),
4844 G_REQUISITION,
4845 DECODE(ln.shipping_control,
4846 1, trunc(to_date(ln.ship_date, p_date_format)),
4847 2, mlb.bucket_date,
4848 to_date(NULL)),
4849 DECODE(ln.ship_date, NULL, to_date(NULL),
4850 trunc(to_date(ln.ship_date, p_date_format)))),
4851 DECODE(flv1.lookup_code,
4852 G_ORDER_FORECAST,
4853 DECODE(ln.shipping_control,
4854 1, mlb.bucket_date,
4855 2, trunc(to_date(ln.receipt_date, p_date_format)),
4856 mlb.bucket_date),
4857 G_PURCHASE_ORDER,
4858 DECODE(ln.shipping_control,
4859 1, mlb.bucket_date,
4860 2, trunc(to_date(ln.receipt_date, p_date_format)),
4861 mlb.bucket_date),
4862 G_SHIP_RECEIPT, mlb.bucket_date,
4863 G_REQUISITION,
4864 DECODE(ln.shipping_control,
4865 1, mlb.bucket_date,
4866 2, trunc(to_date(ln.receipt_date, p_date_format)),
4867 mlb.bucket_date),
4868 G_SUPPLY_COMMIT,
4869 DECODE(ln.shipping_control,
4870 1, mlb.bucket_date,
4871 2, trunc(to_date(ln.receipt_date, p_date_format)),
4872 decode(ln.receipt_date, null, to_date(NULL), mlb.bucket_date)),
4873 G_ASN,
4874 DECODE(ln.shipping_control,
4875 1, mlb.bucket_date,
4876 2, mlb.bucket_date,
4877 decode(ln.receipt_date, null, to_date(NULL), mlb.bucket_date)),
4878 G_SALES_FORECAST,
4879 DECODE(ln.shipping_control,
4880 1, trunc(to_date(ln.receipt_date, p_date_format)),
4881 2, trunc(to_date(ln.receipt_date, p_date_format)),
4882 decode(ln.receipt_date, null, to_date(NULL),
4883 decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL)))),
4884 G_SALES_ORDER,
4885 DECODE(ln.shipping_control,
4886 1, mlb.bucket_date,
4887 2, trunc(to_date(ln.receipt_date, p_date_format)),
4888 decode(ln.receipt_date, null, to_date(NULL), mlb.bucket_date)),
4889 DECODE(ln.receipt_date, NULL, to_date(NULL), trunc(to_date(ln.receipt_date, p_date_format)))),
4890 DECODE(ln.new_order_placement_date, NULL, to_date(NULL), trunc(to_date(ln.new_order_placement_date, p_date_format))),
4891 DECODE(ln.original_promised_date, NULL, to_date(NULL), trunc(to_date(ln.original_promised_date, p_date_format))),
4892 DECODE(ln.request_date, NULL, to_date(NULL), trunc(to_date(ln.request_date, p_date_format))),
4893 NULL,
4894 NULL,
4895 round(ln.quantity, 6),
4896 ln.uom,
4897 ln.comments,
4898 ln.carrier_code,
4899 ln.bill_of_lading_number,
4900 ln.tracking_number,
4901 ln.vehicle_number,
4902 ln.container_type,
4903 round(ln.container_qty, 6),
4904 ln.serial_number,
4905 ln.attachment_url,
4906 ln.version,
4907 ln.designator,
4908 ln.context,
4909 ln.attribute1,
4910 ln.attribute2,
4911 ln.attribute3,
4912 ln.attribute4,
4913 ln.attribute5,
4914 ln.attribute6,
4915 ln.attribute7,
4916 ln.attribute8,
4917 ln.attribute9,
4918 ln.attribute10,
4919 ln.attribute11,
4920 ln.attribute12,
4921 ln.attribute13,
4922 ln.attribute14,
4923 ln.attribute15,
4924 ln.posting_party_name
4925 FROM msc_supdem_lines_interface ln,
4926 MSC_LOAD_BUCKETS_TEMP mlb,
4927 fnd_lookup_values flv,
4928 fnd_lookup_values flv1,
4929 msc_companies c,
4930 msc_company_sites s,
4931 msc_companies c1,
4932 msc_company_sites s1,
4933 msc_company_relationships r
4934 WHERE ln.parent_header_id = p_header_id AND
4935 ln.line_id between p_start_line and p_end_line AND
4936 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
4937 UPPER(flv.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING) AND
4938 flv.language = p_language AND
4939 flv.lookup_code = G_MONTH AND
4940 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
4941 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
4942 s.company_id = c.company_id AND
4943 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
4944 UPPER(c1.company_name) = UPPER(NVL(ln.customer_company, ln.supplier_company)) AND
4945 r.subject_id = c.company_id AND
4946 r.object_id = c1.company_id AND
4947 r.relationship_type = DECODE(ln.customer_company,NULL,2,1) AND
4948 s1.company_id = c1.company_id AND
4949 UPPER(s1.company_site_name) = UPPER(NVL(ln.customer_site, ln.supplier_site)) AND
4950 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
4951 flv1.language = p_language AND
4952 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
4953 /* Added for work order support */
4954 flv1.lookup_code <> g_work_order
4955 AND mlb.parent_header_id = ln.parent_header_id
4956 AND mlb.line_id = ln.line_id
4957 AND UPPER(ln.sync_indicator) = 'R'
4958 UNION
4959 SELECT ln.line_id ,
4960 c.company_name,
4961 c.company_id,
4962 s.company_site_name,
4963 s.company_site_id,
4964 ln.publisher_address,
4965 ln.customer_company,
4966 to_number(null),
4967 ln.customer_site,
4968 to_number(null),
4969 ln.customer_address,
4970 ln.supplier_company,
4971 to_number(null),
4972 ln.supplier_site,
4973 to_number(null),
4974 ln.supplier_address,
4975 ln.ship_from_party_name,
4976 ln.ship_from_party_site,
4977 ln.ship_from_party_address,
4978 ln.ship_to_party_name,
4979 ln.ship_to_party_site,
4980 ln.ship_to_party_address,
4981 ln.ship_to_address,
4982 ln.end_order_publisher_name,
4983 ln.end_order_publisher_site,
4984 flv1.lookup_code,
4985 flv1.meaning,
4986 ln.end_order_type,
4987 ln.bucket_type,
4988 flv.lookup_code,
4989 ln.inventory_item_id,
4990 ln.order_identifier,
4991 ln.line_number,
4992 ln.release_number,
4993 ln.pegging_order_identifier,
4994 ln.ref_line_number,
4995 ln.ref_release_number,
4996 mlb.bucket_date, /* sbala ADD CA */
4997 DECODE(flv1.lookup_code,
4998 G_HIST_SALES, mlb.bucket_date,
4999 G_SAFETY_STOCK, mlb.bucket_date,
5000 G_ALLOC_ONHAND, mlb.bucket_date,
5001 G_UNALLOCATED_ONHAND, mlb.bucket_date,
5002 G_CONS_ADVICE,mlb.bucket_date,
5003 g_proj_avai_bal, mlb.bucket_date,
5004 DECODE(ln.new_schedule_date, NULL, to_date(NULL),
5005 trunc(to_date(ln.new_schedule_date, p_date_format)))),
5006 DECODE(flv1.lookup_code,
5007 G_SELL_THRO_FCST, mlb.bucket_date,
5008 G_SUPPLIER_CAP, mlb.bucket_date,
5009 G_PROJ_SS, mlb.bucket_date,
5010 G_PROJ_ALLOC_AVAIL, mlb.bucket_date,
5011 G_PROJ_UNALLOC_AVAIL, mlb.bucket_date,
5012 G_SUPPLY_COMMIT, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
5013 G_ASN, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
5014 G_SALES_FORECAST, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
5015 G_SALES_ORDER, decode(ln.ship_date, null, to_date(NULL), mlb.bucket_date),
5016 G_PURCHASE_ORDER, to_date(NULL),
5017 G_SHIP_RECEIPT, to_date(NULL),
5018 G_ORDER_FORECAST, to_date(NULL),
5019 G_REQUISITION, to_date(NULL),
5020 DECODE(ln.ship_date, NULL, to_date(NULL), trunc(to_date(ln.ship_date, p_date_format)))),
5021 DECODE(flv1.lookup_code,
5022 G_ORDER_FORECAST, mlb.bucket_date,
5023 G_PURCHASE_ORDER, mlb.bucket_date,
5024 G_SHIP_RECEIPT, mlb.bucket_date,
5025 G_REQUISITION, mlb.bucket_date,
5026 G_SUPPLY_COMMIT, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
5027 G_ASN, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
5028 G_SALES_FORECAST, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
5029 G_SALES_ORDER, decode(ln.receipt_date, null, to_date(NULL), decode(ln.ship_date, null, mlb.bucket_date, to_date(NULL))),
5030 DECODE(ln.receipt_date, NULL, to_date(NULL), trunc(to_date(ln.receipt_date, p_date_format)))),
5031 DECODE(ln.new_order_placement_date, NULL, to_date(NULL), trunc(to_date(ln.new_order_placement_date, p_date_format))),
5032 DECODE(ln.original_promised_date, NULL, to_date(NULL), trunc(to_date(ln.original_promised_date, p_date_format))),
5033 DECODE(ln.request_date, NULL, to_date(NULL), trunc(to_date(ln.request_date, p_date_format))),
5034 NULL,
5035 NULL,
5036 round(ln.quantity, 6),
5037 ln.uom,
5038 ln.comments,
5039 ln.carrier_code,
5040 ln.bill_of_lading_number,
5041 ln.tracking_number,
5042 ln.vehicle_number,
5043 ln.container_type,
5044 round(ln.container_qty, 6),
5045 ln.serial_number,
5046 ln.attachment_url,
5047 ln.version,
5048 ln.designator,
5049 ln.context,
5050 ln.attribute1,
5051 ln.attribute2,
5052 ln.attribute3,
5053 ln.attribute4,
5054 ln.attribute5,
5055 ln.attribute6,
5056 ln.attribute7,
5057 ln.attribute8,
5058 ln.attribute9,
5059 ln.attribute10,
5060 ln.attribute11,
5061 ln.attribute12,
5062 ln.attribute13,
5063 ln.attribute14,
5064 ln.attribute15,
5065 ln.posting_party_name
5066 FROM msc_supdem_lines_interface ln,
5067 MSC_LOAD_BUCKETS_TEMP mlb,
5068 fnd_lookup_values flv,
5069 fnd_lookup_values flv1,
5070 msc_companies c,
5071 msc_company_sites s
5072 WHERE ln.parent_header_id = p_header_id AND
5073 ln.line_id between p_start_line and p_end_line AND
5074 flv.lookup_type = 'MSC_X_BUCKET_TYPE' AND
5075 UPPER(flv.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING) AND
5076 flv.language = p_language AND
5077 flv.lookup_code = G_MONTH AND
5078 NVL(ln.row_status, G_PROCESS) = G_SUCCESS AND
5079 UPPER(c.company_name) = UPPER(NVL(ln.publisher_company, ln.posting_party_name)) AND
5080 s.company_id = c.company_id AND
5081 UPPER(s.company_site_name) = UPPER(ln.publisher_site) AND
5082 flv1.lookup_type = 'MSC_X_ORDER_TYPE' AND
5083 flv1.language = p_language AND
5084 UPPER(flv1.meaning) = UPPER(ln.order_type) AND
5085 flv1.lookup_code in (g_safety_stock, g_proj_avai_bal)
5086 AND mlb.parent_header_id = ln.parent_header_id
5087 AND mlb.line_id = ln.line_id
5088 AND UPPER(ln.sync_indicator) = 'R';
5089
5090 CURSOR c_moe_reqs(
5091 p_header_id in number
5092 ) IS
5093 select sd.inventory_item_id,
5094 sd.primary_quantity,
5095 to_char(sd.receipt_date,NVL(fnd_profile.value('ICX_DATE_FORMAT_MASK'),'DD/MM/YYYY')),
5096 nvl(sd.customer_id, sd.publisher_id),
5097 nvl(sd.customer_site_id, sd.publisher_site_id),
5098 nvl(sd.supplier_id, sd.publisher_id),
5099 nvl(sd.supplier_site_id, sd.publisher_site_id),
5100 sd.primary_uom
5101 from msc_sup_dem_entries sd
5102 where sd.ref_header_id = p_header_id and
5103 sd.publisher_order_type = G_REQUISITION;
5104
5105 CURSOR c_sc_admins
5106 (
5107 p_header_id IN NUMBER
5108 ) IS
5109 SELECT DISTINCT u.user_name
5110 , u.user_id
5111 FROM fnd_user u,
5112 fnd_user_resp_groups g,
5113 fnd_responsibility r,
5114 msc_company_users cu,
5115 msc_companies c,
5116 msc_supdem_lines_interface ln
5117 WHERE ln.parent_header_id = p_header_id
5118 AND ln.publisher_company = c.company_name
5119 AND cu.company_id = c.company_id
5120 AND cu.user_id = u.user_id
5121 AND g.user_id = u.user_id
5122 AND g.responsibility_id = r.responsibility_id
5123 AND r.responsibility_key = 'MSCX_SC_ADMIN_FULL';
5124
5125 CURSOR c_bucket_data ( p_language VARCHAR2,
5126 p_header_id NUMBER,
5127 l_date_format VARCHAR2,
5128 p_bucket_type NUMBER)
5129 IS
5130 SELECT ln.parent_header_id,
5131 ln.line_id,
5132 to_char(trunc(to_date(ln.key_date,l_date_format)),'J') from_date,
5133 to_char(trunc(to_date(nvl(ln.key_end_date,key_date),l_date_format)),'J') to_date
5134 FROM msc_supdem_lines_interface ln,
5135 fnd_lookup_values flv,
5136 fnd_lookup_values flv1
5137 WHERE ln.key_date is not null
5138 and ln.parent_header_id = p_header_id
5139 and nvl(ln.row_status, G_PROCESS) = G_SUCCESS
5140 and flv.language = p_language
5141 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
5142 and upper(flv.meaning) = upper(ln.order_type)
5143 and flv.lookup_code <> g_work_order
5144 and flv1.language = flv.language
5145 and flv1.lookup_type = 'MSC_X_BUCKET_TYPE'
5146 and flv1.lookup_code = p_bucket_type
5147 and UPPER(flv1.meaning) = NVL(UPPER(ln.bucket_type), G_NULL_STRING)
5148 and upper(ln.sync_indicator) = 'R'
5149 order by parent_header_id,line_id;
5150
5151 /* Local variables */
5152 l_sync_ind VARCHAR2(1);
5153 l_posting_party_name VARCHAR2(255);
5154 l_resp_id NUMBER;
5155 l_app_id NUMBER;
5156 l_user_id NUMBER;
5157 l_user_name VARCHAR2(100);
5158 l_language VARCHAR2(30);
5159 l_language_code VARCHAR2(4);
5160 l_posting_party_id NUMBER;
5161 l_header_status NUMBER;
5162 l_error_count NUMBER;
5163 l_event_key VARCHAR2(30);
5164 l_min NUMBER;
5165 l_max NUMBER;
5166 l_loops_reqd NUMBER;
5167 l_start_line NUMBER;
5168 l_end_line NUMBER;
5169 l_conversion_found BOOLEAN;
5170 l_conversion_rate NUMBER;
5171 l_file_name VARCHAR2(255);
5172 l_comp_avg_dmd NUMBER;
5173 l_date_format VARCHAR2(80);
5174
5175 /* Variables added for moe requisitions cursor */
5176 l_item_id NUMBER;
5177 l_quantity NUMBER;
5178 l_rec_date VARCHAR2(40);
5179 l_cust_id NUMBER;
5180 l_cust_site_id NUMBER;
5181 l_sup_id NUMBER;
5182 l_sup_site_id NUMBER;
5183 l_uom VARCHAR2(3);
5184 l_err_msg VARCHAR2(1000);
5185
5186 /* Collection variables */
5187 t_line_id lineidList;
5188 t_pub publisherList;
5189 t_pub_id publishidList;
5190 t_pub_site pubsiteList;
5191 t_pub_site_id pubsiteidList;
5192 t_pub_addr pubaddrList;
5193 t_cust customerList;
5194 t_cust_id custidList;
5195 t_cust_site custsiteList;
5196 t_cust_site_id custsiteidList;
5197 t_cust_addr custaddrList;
5198 t_supp supplierList;
5199 t_supp_id suppidList;
5200 t_supp_site suppsiteList;
5201 t_supp_site_id suppsiteidList;
5202 t_supp_addr suppaddrList;
5203 t_shipfrom shipfromList;
5204 t_shipfrom_id shipfromidList := shipfromidList();
5205 t_shipfrom_site shipfromsiteList;
5206 t_shipfrom_site_id shipfromsidList := shipfromsidList();
5207 t_shipfrom_addr shipfromaddrList;
5208 t_shipto shiptoList;
5209 t_shipto_id shiptoidList := shiptoidList();
5210 t_shipto_site shiptositeList;
5211 t_shipto_site_id shiptosidList := shiptosidList();
5212 t_shipto_party_addr shiptopaddrList;
5213 t_shipto_addr shiptoaddrList;
5214 t_end_order_pub endordpubList;
5215 t_end_ord_pub_id endordpubidList := endordpubidList();
5216 t_end_ord_pub_site endordpubsiteList;
5217 t_end_ord_pub_site_id endordpubsidList := endordpubsidList();
5218 t_order_type ordertypeList;
5219 t_ot_desc otdescList;
5220 t_end_order_type endordertypeList := endordertypeList();
5221 t_end_ot_desc endotdescList;
5222 t_bkt_type_desc bktypedescList;
5223 t_bkt_type bktypeList;
5224 t_item_name itemList;
5225 t_owner_item_name itemList;
5226 t_cust_item_name itemList;
5227 t_supp_item_name itemList;
5228 t_item_id itemidList;
5229 t_item_desc itemdescList;
5230 t_pri_uom uomList;
5231 t_pri_qty qtyList := qtyList();
5232 t_category categoryList;
5233 t_ref_item_name itemList;
5234 t_ref_item_desc itemdescList;
5235 t_ref_uom uomList;
5236 t_ord_num ordernumList;
5237 t_rel_num relnumList;
5238 t_line_num linenumList;
5239 t_end_ord endordList;
5240 t_end_line endlineList;
5241 t_end_rel endrelList;
5242 t_key_date keydateList;
5243 t_key_end_date keydatelist;
5244 t_new_sched_date newschedList;
5245 t_ship_date shipdateList;
5246 t_receipt_date receiptdateList;
5247 t_new_ord_plac_date newordplaceList;
5248 t_orig_prom_date origpromList;
5249 t_req_date reqdateList;
5250 /* Added for work order support */
5251 t_wip_st_date wipstdatelist;
5252 t_wip_end_date wipenddatelist;
5253 t_quantity qtyList;
5254 t_uom uomList;
5255 t_comments commentList;
5256 t_carrier_code carrierList;
5257 t_bill_of_lading billofladList;
5258 t_tracking_number trackingList;
5259 t_vehicle_number vehicleList;
5260 t_container_type containerList;
5261 t_container_qty contqtyList;
5262 t_serial_number serialnumList;
5263 t_attach_url attachurlList;
5264 t_version versionList;
5265 t_designator designatorList;
5266 t_context contextList;
5267 t_attribute1 attributeList;
5268 t_attribute2 attributeList;
5269 t_attribute3 attributeList;
5270 t_attribute4 attributeList;
5271 t_attribute5 attributeList;
5272 t_attribute6 attributeList;
5273 t_attribute7 attributeList;
5274 t_attribute8 attributeList;
5275 t_attribute9 attributeList;
5276 t_attribute10 attributeList;
5277 t_attribute11 attributeList;
5278 t_attribute12 attributeList;
5279 t_attribute13 attributeList;
5280 t_attribute14 attributeList;
5281 t_attribute15 attributeList;
5282 t_posting_party_name postingpartyList;
5283 t_posting_party_id numList := numList();
5284 t_user_name usernameList;
5285 t_user_id numList;
5286 t_event_key eventkeyList := eventkeyList();
5287 t_transaction_id transactionIdList;
5288
5289 /* variables added for Bucketing changes */
5290 t_header_id_lst headeridList;
5291 t_line_id_lst lineidList;
5292 t_key_date_lst numList;
5293 t_ket_end_date_lst numList;
5294
5295 lv_bucket_index number;
5296 lv_new_date number;
5297
5298 l_consumption_advice_exists BOOLEAN; -- bug 3551850
5299
5300 BEGIN
5301
5302 ---------------------------------------------------------------
5303 --- Call custom validations code to perform custom validations
5304 ---------------------------------------------------------------
5305
5306 msc_custom_validation_pkg.call_validations_pre(p_header_id);
5307
5308 log_debug('In validate');
5309 --========================================================
5310 --Get the user's language
5311 --========================================================
5312 BEGIN
5313 SELECT distinct u.user_name,
5314 l.created_by
5315 INTO l_user_name,
5316 l_user_id
5317 FROM fnd_user u,
5318 msc_supdem_lines_interface l
5319 WHERE u.user_id = l.created_by and
5320 l.parent_header_id = p_header_id;
5321
5322 /* BUG #3845796 :Using Applications Session Language in preference to ICX_LANGUAGE profile value */
5323
5324 l_language_code := USERENV('LANG');
5325 G_USER_IS_ADMIN := is_user_admin(l_user_id);
5326
5327 IF(l_language_code is null) THEN
5328 l_language := fnd_profile.value('ICX_LANGUAGE');
5329
5330 IF l_language IS NOT NULL THEN
5331 SELECT language_code
5332 INTO l_language_code
5333 FROM fnd_languages
5334 WHERE nls_language = l_language;
5335 ELSE
5336 l_language_code := 'US';
5337 END IF;
5338 END IF;
5339
5340 EXCEPTION
5341 WHEN NO_DATA_FOUND THEN
5342 l_language_code := 'US';
5343 END;
5344
5345 execute immediate
5346 'select meaning from FND_LOOKUP_VALUES '
5347 || ' where LOOKUP_TYPE = ''MSC_X_BUCKET_TYPE'' '
5348 || ' and LOOKUP_CODE = 1 '
5349 || ' and LANGUAGE = :l_language_code '
5350 into G_DAY_DESC
5351 USING l_language_code;
5352
5353 IF p_build_err = 1 THEN
5354 l_date_format := NVL(fnd_profile.value('ICX_DATE_FORMAT_MASK'),'DD/MM/YYYY HH24:MI:SS');
5355 ELSE
5356 l_date_format := 'DD/MM/YYYY HH24:MI:SS';
5357 END IF;
5358
5359 --==========================================================
5360 --Get the file name. In case of XML or MOE default correctly
5361 --==========================================================
5362 BEGIN
5363 SELECT file_name
5364 INTO l_file_name
5365 FROM msc_files
5366 WHERE plan_id = -1 AND
5367 header_id = p_header_id;
5368 EXCEPTION
5369 WHEN OTHERS THEN
5370 l_file_name := substrb(get_message('MSC','MSC_X_XML_FILE', l_language_code),1,240);
5371 END;
5372
5373 log_debug('File name:' || l_file_name);
5374
5375 BEGIN
5376 SELECT min(line_id), max(line_id)
5377 INTO l_min, l_max
5378 FROM msc_supdem_lines_interface
5379 WHERE parent_header_id = p_header_id;
5380 EXCEPTION
5381 WHEN NO_DATA_FOUND THEN
5382 p_status := 0;
5383 p_err_msg := NULL;
5384 return;
5385 END;
5386
5387 l_loops_reqd := 1 + trunc((l_max - l_min)/G_BATCH_SIZE);
5388
5389 --==========================================================
5390 --Insert/update/delete records into/from the transaction
5391 --table in batches of 500
5392 --==========================================================
5393 IF l_loops_reqd IS NOT NULL THEN
5394
5395 --==========================================================
5396 --Perform validations on the data
5397 --==========================================================
5398 -- bug 3551850 update_errors(p_header_id, l_language_code, p_build_err,l_date_format);
5399 update_errors(p_header_id, l_language_code, p_build_err,l_date_format, l_consumption_advice_exists);
5400
5401 --==========================================================
5402 --Insert/update/delete records into/from the transaction
5403 --table in batches of 500
5404 --==========================================================
5405 FOR i IN 1..l_loops_reqd LOOP
5406 l_start_line := l_min + (i-1)*G_BATCH_SIZE;
5407 IF ((l_min -1 + i*G_BATCH_SIZE) <= l_max) THEN
5408 l_end_line := l_min -1 + i*G_BATCH_SIZE;
5409 ELSE
5410 l_end_line := l_max;
5411 END IF;
5412 log_debug('Loop: ' || i);
5413
5414 --==========================================================
5415 -- Records with Sync indicator D
5416 --==========================================================
5417 log_debug('Opening c_delete');
5418 log_debug('Date format = ' || l_date_format);
5419 OPEN c_delete(p_header_id, l_language_code, l_start_line, l_end_line,l_date_format);
5420 FETCH c_delete BULK COLLECT INTO t_transaction_id;
5421 CLOSE c_delete;
5422
5423
5424 log_debug('Count = ' || t_transaction_id.COUNT);
5425 log_debug('-- p_header_id :'||p_header_id);
5426 log_debug('-- l_start_line :'||l_start_line);
5427 log_debug('-- l_end_line :'||l_end_line);
5428 log_debug('-- l_language_code :'||l_language_code);
5429
5430 if (t_transaction_id is not null) and (t_transaction_id.COUNT > 0) then
5431 log_debug('RecordS fetched: ' || t_transaction_id.COUNT);
5432 BEGIN
5433 FORALL i IN t_transaction_id.FIRST..t_transaction_id.LAST
5434 UPDATE msc_sup_dem_entries msde
5435 SET msde.quantity = 0,
5436 msde.tp_quantity = 0,
5437 msde.primary_quantity = 0,
5438 msde.ref_header_id = p_header_id,
5439 msde.last_refresh_number = msc_cl_refresh_s.nextval,
5440 msde.last_update_login = G_DELETED
5441 WHERE msde.transaction_id = t_transaction_id(i);
5442
5443 -- Disable all the corresponding serial Details
5444 FORALL i IN t_transaction_id.FIRST..t_transaction_id.LAST
5445 UPDATE msc_serial_numbers msn
5446 SET msn.disable_date = sysdate
5447 WHERE msn.serial_txn_id = t_transaction_id(i) AND
5448 NVL(msn.disable_date,sysdate+1) > sysdate ;
5449 END;
5450 --COMMIT;
5451 end if;
5452
5453 log_debug('After c_delete');
5454
5455 /* Added for work order support */
5456
5457 OPEN c_work_order_without_cust(
5458 p_header_id,
5459 l_language_code,
5460 l_start_line,
5461 l_end_line,
5462 l_date_format);
5463 FETCH c_work_order_without_cust bulk collect INTO
5464 t_line_id,
5465 t_pub,
5466 t_pub_id,
5467 t_pub_site,
5468 t_pub_site_id,
5469 t_pub_addr,
5470 t_cust,
5471 t_cust_id,
5472 t_cust_site,
5473 t_cust_site_id,
5474 t_cust_addr,
5475 t_supp,
5476 t_supp_id,
5477 t_supp_site,
5478 t_supp_site_id,
5479 t_supp_addr,
5480 t_shipfrom,
5481 t_shipfrom_site,
5482 t_shipfrom_addr,
5483 t_shipto,
5484 t_shipto_site,
5485 t_shipto_party_addr,
5486 t_shipto_addr,
5487 t_end_order_pub,
5488 t_end_ord_pub_site,
5489 t_order_type,
5490 t_ot_desc,
5491 t_end_ot_desc,
5492 t_bkt_type_desc,
5493 t_bkt_type,
5494 t_item_id,
5495 t_ord_num,
5496 t_line_num,
5497 t_rel_num,
5498 t_end_ord,
5499 t_end_line,
5500 t_end_rel,
5501 t_key_date,
5502 t_new_sched_date,
5503 t_ship_date,
5504 t_receipt_date,
5505 t_new_ord_plac_date,
5506 t_orig_prom_date,
5507 t_req_date,
5508 /* Added for work order support */
5509 t_wip_st_date,
5510 t_wip_end_date,
5511 t_quantity,
5512 t_uom,
5513 t_comments,
5514 t_carrier_code,
5515 t_bill_of_lading,
5516 t_tracking_number,
5517 t_vehicle_number,
5518 t_container_type,
5519 t_container_qty,
5520 t_serial_number,
5521 t_attach_url,
5522 t_version,
5523 t_designator,
5524 t_context,
5525 t_attribute1,
5526 t_attribute2,
5527 t_attribute3,
5528 t_attribute4,
5529 t_attribute5,
5530 t_attribute6,
5531 t_attribute7,
5532 t_attribute8,
5533 t_attribute9,
5534 t_attribute10,
5535 t_attribute11,
5536 t_attribute12,
5537 t_attribute13,
5538 t_attribute14,
5539 t_attribute15,
5540 t_posting_party_name;
5541 CLOSE c_work_order_without_cust;
5542
5543 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
5544 log_debug('Records fetched: ' || t_line_id.COUNT);
5545 get_optional_info(
5546 p_header_id,
5547 l_language_code,
5548 t_line_id,
5549 t_end_order_pub,
5550 t_end_ord_pub_site,
5551 t_shipfrom,
5552 t_shipfrom_site,
5553 t_shipto,
5554 t_shipto_site,
5555 t_end_ot_desc,
5556 t_posting_party_name,
5557 t_cust_id,
5558 t_cust_site_id,
5559 t_supp_id,
5560 t_supp_site_id,
5561 t_item_id,
5562 t_order_type,
5563 t_ship_date,
5564 t_receipt_date,
5565 t_end_order_type,
5566 t_end_ord_pub_id,
5567 t_end_ord_pub_site_id,
5568 t_shipfrom_id,
5569 t_shipfrom_site_id,
5570 t_shipto_id,
5571 t_shipto_site_id,
5572 t_posting_party_id,
5573 t_cust,
5574 t_cust_site,
5575 t_key_date
5576 );
5577
5578 replace_supdem_entries (
5579 p_header_id,
5580 t_line_id,
5581 t_pub,
5582 t_pub_id,
5583 t_pub_site,
5584 t_pub_site_id,
5585 t_pub_addr,
5586 t_cust,
5587 t_cust_id,
5588 t_cust_site,
5589 t_cust_site_id,
5590 t_cust_addr,
5591 t_supp,
5592 t_supp_id,
5593 t_supp_site,
5594 t_supp_site_id,
5595 t_supp_addr,
5596 t_shipfrom,
5597 t_shipfrom_id,
5598 t_shipfrom_site,
5599 t_shipfrom_site_id,
5600 t_shipfrom_addr,
5601 t_shipto,
5602 t_shipto_id,
5603 t_shipto_site,
5604 t_shipto_site_id,
5605 t_shipto_party_addr,
5606 t_shipto_addr,
5607 t_end_order_pub,
5608 t_end_ord_pub_id,
5609 t_end_ord_pub_site,
5610 t_end_ord_pub_site_id,
5611 t_order_type,
5612 t_ot_desc,
5613 t_end_order_type,
5614 t_end_ot_desc,
5615 t_bkt_type_desc,
5616 t_bkt_type,
5617 t_item_id,
5618 t_ord_num,
5619 t_line_num,
5620 t_rel_num,
5621 t_end_ord,
5622 t_end_line,
5623 t_end_rel,
5624 t_key_date,
5625 t_new_sched_date,
5626 t_ship_date,
5627 t_receipt_date,
5628 t_new_ord_plac_date,
5629 t_orig_prom_date,
5630 t_req_date,
5631 /* Added for work order support */
5632 t_wip_st_date,
5633 t_wip_end_date,
5634 t_uom,
5635 t_quantity,
5636 t_comments,
5637 t_carrier_code,
5638 t_bill_of_lading,
5639 t_tracking_number,
5640 t_vehicle_number,
5641 t_container_type,
5642 t_container_qty,
5643 t_serial_number,
5644 t_attach_url,
5645 t_version,
5646 t_designator,
5647 t_context,
5648 t_attribute1,
5649 t_attribute2,
5650 t_attribute3,
5651 t_attribute4,
5652 t_attribute5,
5653 t_attribute6,
5654 t_attribute7,
5655 t_attribute8,
5656 t_attribute9,
5657 t_attribute10,
5658 t_attribute11,
5659 t_attribute12,
5660 t_attribute13,
5661 t_attribute14,
5662 t_attribute15,
5663 t_posting_party_name,
5664 t_posting_party_id,
5665 l_user_id,
5666 l_language_code
5667 );
5668
5669 end if;
5670
5671 OPEN c_work_order_with_cust(
5672 p_header_id,
5673 l_language_code,
5674 l_start_line,
5675 l_end_line,
5676 l_date_format);
5677 FETCH c_work_order_with_cust bulk collect INTO
5678 t_line_id,
5679 t_pub,
5680 t_pub_id,
5681 t_pub_site,
5682 t_pub_site_id,
5683 t_pub_addr,
5684 t_cust,
5685 t_cust_id,
5686 t_cust_site,
5687 t_cust_site_id,
5688 t_cust_addr,
5689 t_supp,
5690 t_supp_id,
5691 t_supp_site,
5692 t_supp_site_id,
5693 t_supp_addr,
5694 t_shipfrom,
5695 t_shipfrom_site,
5696 t_shipfrom_addr,
5697 t_shipto,
5698 t_shipto_site,
5699 t_shipto_party_addr,
5700 t_shipto_addr,
5701 t_end_order_pub,
5702 t_end_ord_pub_site,
5703 t_order_type,
5704 t_ot_desc,
5705 t_end_ot_desc,
5706 t_bkt_type_desc,
5707 t_bkt_type,
5708 t_item_id,
5709 t_ord_num,
5710 t_line_num,
5711 t_rel_num,
5712 t_end_ord,
5713 t_end_line,
5714 t_end_rel,
5715 t_key_date,
5716 t_new_sched_date,
5717 t_ship_date,
5718 t_receipt_date,
5719 t_new_ord_plac_date,
5720 t_orig_prom_date,
5721 t_req_date,
5722 /* Added for work order support */
5723 t_wip_st_date,
5724 t_wip_end_date,
5725 t_quantity,
5726 t_uom,
5727 t_comments,
5728 t_carrier_code,
5729 t_bill_of_lading,
5730 t_tracking_number,
5731 t_vehicle_number,
5732 t_container_type,
5733 t_container_qty,
5734 t_serial_number,
5735 t_attach_url,
5736 t_version,
5737 t_designator,
5738 t_context,
5739 t_attribute1,
5740 t_attribute2,
5741 t_attribute3,
5742 t_attribute4,
5743 t_attribute5,
5744 t_attribute6,
5745 t_attribute7,
5746 t_attribute8,
5747 t_attribute9,
5748 t_attribute10,
5749 t_attribute11,
5750 t_attribute12,
5751 t_attribute13,
5752 t_attribute14,
5753 t_attribute15,
5754 t_posting_party_name;
5755 CLOSE c_work_order_with_cust;
5756
5757 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
5758 log_debug('Records fetched: ' || t_line_id.COUNT);
5759 get_optional_info(
5760 p_header_id,
5761 l_language_code,
5762 t_line_id,
5763 t_end_order_pub,
5764 t_end_ord_pub_site,
5765 t_shipfrom,
5766 t_shipfrom_site,
5767 t_shipto,
5768 t_shipto_site,
5769 t_end_ot_desc,
5770 t_posting_party_name,
5771 t_cust_id,
5772 t_cust_site_id,
5773 t_supp_id,
5774 t_supp_site_id,
5775 t_item_id,
5776 t_order_type,
5777 t_ship_date,
5778 t_receipt_date,
5779 t_end_order_type,
5780 t_end_ord_pub_id,
5781 t_end_ord_pub_site_id,
5782 t_shipfrom_id,
5783 t_shipfrom_site_id,
5784 t_shipto_id,
5785 t_shipto_site_id,
5786 t_posting_party_id,
5787 t_cust,
5788 t_cust_site,
5789 t_key_date
5790 );
5791
5792 replace_supdem_entries (
5793 p_header_id,
5794 t_line_id,
5795 t_pub,
5796 t_pub_id,
5797 t_pub_site,
5798 t_pub_site_id,
5799 t_pub_addr,
5800 t_cust,
5801 t_cust_id,
5802 t_cust_site,
5803 t_cust_site_id,
5804 t_cust_addr,
5805 t_supp,
5806 t_supp_id,
5807 t_supp_site,
5808 t_supp_site_id,
5809 t_supp_addr,
5810 t_shipfrom,
5811 t_shipfrom_id,
5812 t_shipfrom_site,
5813 t_shipfrom_site_id,
5814 t_shipfrom_addr,
5815 t_shipto,
5816 t_shipto_id,
5817 t_shipto_site,
5818 t_shipto_site_id,
5819 t_shipto_party_addr,
5820 t_shipto_addr,
5821 t_end_order_pub,
5822 t_end_ord_pub_id,
5823 t_end_ord_pub_site,
5824 t_end_ord_pub_site_id,
5825 t_order_type,
5826 t_ot_desc,
5827 t_end_order_type,
5828 t_end_ot_desc,
5829 t_bkt_type_desc,
5830 t_bkt_type,
5831 t_item_id,
5832 t_ord_num,
5833 t_line_num,
5834 t_rel_num,
5835 t_end_ord,
5836 t_end_line,
5837 t_end_rel,
5838 t_key_date,
5839 t_new_sched_date,
5840 t_ship_date,
5841 t_receipt_date,
5842 t_new_ord_plac_date,
5843 t_orig_prom_date,
5844 t_req_date,
5845 /* Added for work order support */
5846 t_wip_st_date,
5847 t_wip_end_date,
5848 t_uom,
5849 t_quantity,
5850 t_comments,
5851 t_carrier_code,
5852 t_bill_of_lading,
5853 t_tracking_number,
5854 t_vehicle_number,
5855 t_container_type,
5856 t_container_qty,
5857 t_serial_number,
5858 t_attach_url,
5859 t_version,
5860 t_designator,
5861 t_context,
5862 t_attribute1,
5863 t_attribute2,
5864 t_attribute3,
5865 t_attribute4,
5866 t_attribute5,
5867 t_attribute6,
5868 t_attribute7,
5869 t_attribute8,
5870 t_attribute9,
5871 t_attribute10,
5872 t_attribute11,
5873 t_attribute12,
5874 t_attribute13,
5875 t_attribute14,
5876 t_attribute15,
5877 t_posting_party_name,
5878 t_posting_party_id,
5879 l_user_id,
5880 l_language_code
5881 );
5882
5883 end if;
5884
5885 --==========================================================
5886 -- Valid unallocated onhand records. This order type is
5887 -- handled specially because neither the customer nor the
5888 -- supplier fields are populated.
5889 --==========================================================
5890 log_debug('Opening c_unallocated_onhand');
5891 OPEN c_unallocated_onhand(
5892 p_header_id,
5893 l_language_code,
5894 l_start_line,
5895 l_end_line,
5896 l_date_format);
5897 FETCH c_unallocated_onhand BULK COLLECT INTO
5898 t_line_id,
5899 t_pub,
5900 t_pub_id,
5901 t_pub_site,
5902 t_pub_site_id,
5903 t_pub_addr,
5904 t_cust,
5905 t_cust_id,
5906 t_cust_site,
5907 t_cust_site_id,
5908 t_cust_addr,
5909 t_supp,
5910 t_supp_id,
5911 t_supp_site,
5912 t_supp_site_id,
5913 t_supp_addr,
5914 t_shipfrom,
5915 t_shipfrom_site,
5916 t_shipfrom_addr,
5917 t_shipto,
5918 t_shipto_site,
5919 t_shipto_party_addr,
5920 t_shipto_addr,
5921 t_end_order_pub,
5922 t_end_ord_pub_site,
5923 t_order_type,
5924 t_ot_desc,
5925 t_end_ot_desc,
5926 t_bkt_type_desc,
5927 t_bkt_type,
5928 t_item_id,
5929 t_ord_num,
5930 t_line_num,
5931 t_rel_num,
5932 t_end_ord,
5933 t_end_line,
5934 t_end_rel,
5935 t_key_date,
5936 t_new_sched_date,
5937 t_ship_date,
5938 t_receipt_date,
5939 t_new_ord_plac_date,
5940 t_orig_prom_date,
5941 t_req_date,
5942 /* Added for work order support */
5943 t_wip_st_date,
5944 t_wip_end_date,
5945 t_quantity,
5946 t_uom,
5947 t_comments,
5948 t_carrier_code,
5949 t_bill_of_lading,
5950 t_tracking_number,
5951 t_vehicle_number,
5952 t_container_type,
5953 t_container_qty,
5954 t_serial_number,
5955 t_attach_url,
5956 t_version,
5957 t_designator,
5958 t_context,
5959 t_attribute1,
5960 t_attribute2,
5961 t_attribute3,
5962 t_attribute4,
5963 t_attribute5,
5964 t_attribute6,
5965 t_attribute7,
5966 t_attribute8,
5967 t_attribute9,
5968 t_attribute10,
5969 t_attribute11,
5970 t_attribute12,
5971 t_attribute13,
5972 t_attribute14,
5973 t_attribute15,
5974 t_posting_party_name;
5975 CLOSE c_unallocated_onhand;
5976
5977 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
5978 log_debug('Records fetched: ' || t_line_id.COUNT);
5979 get_optional_info(
5980 p_header_id,
5981 l_language_code,
5982 t_line_id,
5983 t_end_order_pub,
5984 t_end_ord_pub_site,
5985 t_shipfrom,
5986 t_shipfrom_site,
5987 t_shipto,
5988 t_shipto_site,
5989 t_end_ot_desc,
5990 t_posting_party_name,
5991 t_cust_id,
5992 t_cust_site_id,
5993 t_supp_id,
5994 t_supp_site_id,
5995 t_item_id,
5996 t_order_type,
5997 t_ship_date,
5998 t_receipt_date,
5999 t_end_order_type,
6000 t_end_ord_pub_id,
6001 t_end_ord_pub_site_id,
6002 t_shipfrom_id,
6003 t_shipfrom_site_id,
6004 t_shipto_id,
6005 t_shipto_site_id,
6006 t_posting_party_id,
6007 t_cust,
6008 t_cust_site,
6009 t_key_date
6010 );
6011
6012 replace_supdem_entries (
6013 p_header_id,
6014 t_line_id,
6015 t_pub,
6016 t_pub_id,
6017 t_pub_site,
6018 t_pub_site_id,
6019 t_pub_addr,
6020 t_cust,
6021 t_cust_id,
6022 t_cust_site,
6023 t_cust_site_id,
6024 t_cust_addr,
6025 t_supp,
6026 t_supp_id,
6027 t_supp_site,
6028 t_supp_site_id,
6029 t_supp_addr,
6030 t_shipfrom,
6031 t_shipfrom_id,
6032 t_shipfrom_site,
6033 t_shipfrom_site_id,
6034 t_shipfrom_addr,
6035 t_shipto,
6036 t_shipto_id,
6037 t_shipto_site,
6038 t_shipto_site_id,
6039 t_shipto_party_addr,
6040 t_shipto_addr,
6041 t_end_order_pub,
6042 t_end_ord_pub_id,
6043 t_end_ord_pub_site,
6044 t_end_ord_pub_site_id,
6045 t_order_type,
6046 t_ot_desc,
6047 t_end_order_type,
6048 t_end_ot_desc,
6049 t_bkt_type_desc,
6050 t_bkt_type,
6051 t_item_id,
6052 t_ord_num,
6053 t_line_num,
6054 t_rel_num,
6055 t_end_ord,
6056 t_end_line,
6057 t_end_rel,
6058 t_key_date,
6059 t_new_sched_date,
6060 t_ship_date,
6061 t_receipt_date,
6062 t_new_ord_plac_date,
6063 t_orig_prom_date,
6064 t_req_date,
6065 /* Added for work order support */
6066 t_wip_st_date,
6067 t_wip_end_date,
6068 t_uom,
6069 t_quantity,
6070 t_comments,
6071 t_carrier_code,
6072 t_bill_of_lading,
6073 t_tracking_number,
6074 t_vehicle_number,
6075 t_container_type,
6076 t_container_qty,
6077 t_serial_number,
6078 t_attach_url,
6079 t_version,
6080 t_designator,
6081 t_context,
6082 t_attribute1,
6083 t_attribute2,
6084 t_attribute3,
6085 t_attribute4,
6086 t_attribute5,
6087 t_attribute6,
6088 t_attribute7,
6089 t_attribute8,
6090 t_attribute9,
6091 t_attribute10,
6092 t_attribute11,
6093 t_attribute12,
6094 t_attribute13,
6095 t_attribute14,
6096 t_attribute15,
6097 t_posting_party_name,
6098 t_posting_party_id,
6099 l_user_id,
6100 l_language_code
6101 );
6102
6103 end if;
6104
6105 log_debug('Opening c_bktless_key');
6106 OPEN c_bktless_key (
6107 p_header_id,
6108 l_language_code,
6109 l_start_line,
6110 l_end_line,
6111 l_date_format);
6112 FETCH c_bktless_key BULK COLLECT INTO
6113 t_line_id,
6114 t_pub,
6115 t_pub_id,
6116 t_pub_site,
6117 t_pub_site_id,
6118 t_pub_addr,
6119 t_cust,
6120 t_cust_id,
6121 t_cust_site,
6122 t_cust_site_id,
6123 t_cust_addr,
6124 t_supp,
6125 t_supp_id,
6126 t_supp_site,
6127 t_supp_site_id,
6128 t_supp_addr,
6129 t_shipfrom,
6130 t_shipfrom_site,
6131 t_shipfrom_addr,
6132 t_shipto,
6133 t_shipto_site,
6134 t_shipto_party_addr,
6135 t_shipto_addr,
6136 t_end_order_pub,
6137 t_end_ord_pub_site,
6138 t_order_type,
6139 t_ot_desc,
6140 t_end_ot_desc,
6141 t_bkt_type_desc,
6142 t_bkt_type,
6143 t_item_id,
6144 t_ord_num,
6145 t_line_num,
6146 t_rel_num,
6147 t_end_ord,
6148 t_end_line,
6149 t_end_rel,
6150 t_key_date,
6151 t_new_sched_date,
6152 t_ship_date,
6153 t_receipt_date,
6154 t_new_ord_plac_date,
6155 t_orig_prom_date,
6156 t_req_date,
6157 t_wip_st_date,
6158 t_wip_end_date,
6159 t_quantity,
6160 t_uom,
6161 t_comments,
6162 t_carrier_code,
6163 t_bill_of_lading,
6164 t_tracking_number,
6165 t_vehicle_number,
6166 t_container_type,
6167 t_container_qty,
6168 t_serial_number,
6169 t_attach_url,
6170 t_version,
6171 t_designator,
6172 t_context,
6173 t_attribute1,
6174 t_attribute2,
6175 t_attribute3,
6176 t_attribute4,
6177 t_attribute5,
6178 t_attribute6,
6179 t_attribute7,
6180 t_attribute8,
6181 t_attribute9,
6182 t_attribute10,
6183 t_attribute11,
6184 t_attribute12,
6185 t_attribute13,
6186 t_attribute14,
6187 t_attribute15,
6188 t_posting_party_name;
6189 CLOSE c_bktless_key;
6190
6191 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
6192 log_debug('Records fetched: ' || t_line_id.COUNT);
6193 get_optional_info(
6194 p_header_id,
6195 l_language_code,
6196 t_line_id,
6197 t_end_order_pub,
6198 t_end_ord_pub_site,
6199 t_shipfrom,
6200 t_shipfrom_site,
6201 t_shipto,
6202 t_shipto_site,
6203 t_end_ot_desc,
6204 t_posting_party_name,
6205 t_cust_id,
6206 t_cust_site_id,
6207 t_supp_id,
6208 t_supp_site_id,
6209 t_item_id,
6210 t_order_type,
6211 t_ship_date,
6212 t_receipt_date,
6213 t_end_order_type,
6214 t_end_ord_pub_id,
6215 t_end_ord_pub_site_id,
6216 t_shipfrom_id,
6217 t_shipfrom_site_id,
6218 t_shipto_id,
6219 t_shipto_site_id,
6220 t_posting_party_id,
6221 t_cust,
6222 t_cust_site,
6223 t_key_date
6224 );
6225
6226 log_debug('Calling replace_supdem_entries');
6227 replace_supdem_entries (
6228 p_header_id,
6229 t_line_id,
6230 t_pub,
6231 t_pub_id,
6232 t_pub_site,
6233 t_pub_site_id,
6234 t_pub_addr,
6235 t_cust,
6236 t_cust_id,
6237 t_cust_site,
6238 t_cust_site_id,
6239 t_cust_addr,
6240 t_supp,
6241 t_supp_id,
6242 t_supp_site,
6243 t_supp_site_id,
6244 t_supp_addr,
6245 t_shipfrom,
6246 t_shipfrom_id,
6247 t_shipfrom_site,
6248 t_shipfrom_site_id,
6249 t_shipfrom_addr,
6250 t_shipto,
6251 t_shipto_id,
6252 t_shipto_site,
6253 t_shipto_site_id,
6254 t_shipto_party_addr,
6255 t_shipto_addr,
6256 t_end_order_pub,
6257 t_end_ord_pub_id,
6258 t_end_ord_pub_site,
6259 t_end_ord_pub_site_id,
6260 t_order_type,
6261 t_ot_desc,
6262 t_end_order_type,
6263 t_end_ot_desc,
6264 t_bkt_type_desc,
6265 t_bkt_type,
6266 t_item_id,
6267 t_ord_num,
6268 t_line_num,
6269 t_rel_num,
6270 t_end_ord,
6271 t_end_line,
6272 t_end_rel,
6273 t_key_date,
6274 t_new_sched_date,
6275 t_ship_date,
6276 t_receipt_date,
6277 t_new_ord_plac_date,
6278 t_orig_prom_date,
6279 t_req_date,
6280 /* Added for work order support */
6281 t_wip_st_date,
6282 t_wip_end_date,
6283 t_uom,
6284 t_quantity,
6285 t_comments,
6286 t_carrier_code,
6287 t_bill_of_lading,
6288 t_tracking_number,
6289 t_vehicle_number,
6290 t_container_type,
6291 t_container_qty,
6292 t_serial_number,
6293 t_attach_url,
6294 t_version,
6295 t_designator,
6296 t_context,
6297 t_attribute1,
6298 t_attribute2,
6299 t_attribute3,
6300 t_attribute4,
6301 t_attribute5,
6302 t_attribute6,
6303 t_attribute7,
6304 t_attribute8,
6305 t_attribute9,
6306 t_attribute10,
6307 t_attribute11,
6308 t_attribute12,
6309 t_attribute13,
6310 t_attribute14,
6311 t_attribute15,
6312 t_posting_party_name,
6313 t_posting_party_id,
6314 l_user_id,
6315 l_language_code
6316 );
6317 log_debug('After replace');
6318 end if;
6319
6320 /* for Daily buckets data */
6321 OPEN c_bucket_data( l_language_code ,
6322 p_header_id,
6323 l_date_format,
6324 G_DAY);
6325 FETCH c_bucket_data
6326 BULK COLLECT INTO
6327 t_header_id_lst,
6328 t_line_id_lst,
6329 t_key_date_lst,
6330 t_ket_end_date_lst;
6331 CLOSE c_bucket_data;
6332
6333 if (t_line_id_lst.COUNT > 0 ) then
6334 FOR i in 1..t_line_id_lst.COUNT LOOP
6335
6336 lv_bucket_index := 0;
6337
6338 LOOP
6339
6340 lv_new_date := t_key_date_lst(i) + lv_bucket_index;
6341
6342 EXIT WHEN lv_new_date > t_ket_end_date_lst(i);
6343
6344 insert into MSC_LOAD_BUCKETS_TEMP
6345 (PARENT_HEADER_ID,
6346 LINE_ID,
6347 BUCKET_DATE,
6348 BUCKET_TYPE)
6349 values ( t_header_id_lst(i),
6350 t_line_id_lst(i),
6351 to_date(lv_new_date,'J'),
6352 1);
6353
6354 lv_bucket_index := lv_bucket_index + 1;
6355
6356 END LOOP;
6357
6358 END LOOP;
6359 end if;
6360
6361 log_debug('Opening c_daily_bkt_key');
6362 OPEN c_daily_bkt_key (
6363 p_header_id,
6364 l_language_code,
6365 l_start_line,
6366 l_end_line,
6367 l_date_format);
6368 FETCH c_daily_bkt_key BULK COLLECT INTO
6369 t_line_id,
6370 t_pub,
6371 t_pub_id,
6372 t_pub_site,
6373 t_pub_site_id,
6374 t_pub_addr,
6375 t_cust,
6376 t_cust_id,
6377 t_cust_site,
6378 t_cust_site_id,
6379 t_cust_addr,
6380 t_supp,
6381 t_supp_id,
6382 t_supp_site,
6383 t_supp_site_id,
6384 t_supp_addr,
6385 t_shipfrom,
6386 t_shipfrom_site,
6387 t_shipfrom_addr,
6388 t_shipto,
6389 t_shipto_site,
6390 t_shipto_party_addr,
6391 t_shipto_addr,
6392 t_end_order_pub,
6393 t_end_ord_pub_site,
6394 t_order_type,
6395 t_ot_desc,
6396 t_end_ot_desc,
6397 t_bkt_type_desc,
6398 t_bkt_type,
6399 t_item_id,
6400 t_ord_num,
6401 t_line_num,
6402 t_rel_num,
6403 t_end_ord,
6404 t_end_line,
6405 t_end_rel,
6406 t_key_date,
6407 t_new_sched_date,
6408 t_ship_date,
6409 t_receipt_date,
6410 t_new_ord_plac_date,
6411 t_orig_prom_date,
6412 t_req_date,
6413 /* Added for work order support */
6414 t_wip_st_date,
6415 t_wip_end_date,
6416 t_quantity,
6417 t_uom,
6418 t_comments,
6419 t_carrier_code,
6420 t_bill_of_lading,
6421 t_tracking_number,
6422 t_vehicle_number,
6423 t_container_type,
6424 t_container_qty,
6425 t_serial_number,
6426 t_attach_url,
6427 t_version,
6428 t_designator,
6429 t_context,
6430 t_attribute1,
6431 t_attribute2,
6432 t_attribute3,
6433 t_attribute4,
6434 t_attribute5,
6435 t_attribute6,
6436 t_attribute7,
6437 t_attribute8,
6438 t_attribute9,
6439 t_attribute10,
6440 t_attribute11,
6441 t_attribute12,
6442 t_attribute13,
6443 t_attribute14,
6444 t_attribute15,
6445 t_posting_party_name;
6446
6447 CLOSE c_daily_bkt_key;
6448
6449 commit;
6450
6451 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
6452 log_debug('Records fetched: ' || t_line_id.COUNT);
6453 get_optional_info(
6454 p_header_id,
6455 l_language_code,
6456 t_line_id,
6457 t_end_order_pub,
6458 t_end_ord_pub_site,
6459 t_shipfrom,
6460 t_shipfrom_site,
6461 t_shipto,
6462 t_shipto_site,
6463 t_end_ot_desc,
6464 t_posting_party_name,
6465 t_cust_id,
6466 t_cust_site_id,
6467 t_supp_id,
6468 t_supp_site_id,
6469 t_item_id,
6470 t_order_type,
6471 t_ship_date,
6472 t_receipt_date,
6473 t_end_order_type,
6474 t_end_ord_pub_id,
6475 t_end_ord_pub_site_id,
6476 t_shipfrom_id,
6477 t_shipfrom_site_id,
6478 t_shipto_id,
6479 t_shipto_site_id,
6480 t_posting_party_id,
6481 t_cust,
6482 t_cust_site,
6483 t_key_date
6484 );
6485
6486 replace_supdem_entries (
6487 p_header_id,
6488 t_line_id,
6489 t_pub,
6490 t_pub_id,
6491 t_pub_site,
6492 t_pub_site_id,
6493 t_pub_addr,
6494 t_cust,
6495 t_cust_id,
6496 t_cust_site,
6497 t_cust_site_id,
6498 t_cust_addr,
6499 t_supp,
6500 t_supp_id,
6501 t_supp_site,
6502 t_supp_site_id,
6503 t_supp_addr,
6504 t_shipfrom,
6505 t_shipfrom_id,
6506 t_shipfrom_site,
6507 t_shipfrom_site_id,
6508 t_shipfrom_addr,
6509 t_shipto,
6510 t_shipto_id,
6511 t_shipto_site,
6512 t_shipto_site_id,
6513 t_shipto_party_addr,
6514 t_shipto_addr,
6515 t_end_order_pub,
6516 t_end_ord_pub_id,
6517 t_end_ord_pub_site,
6518 t_end_ord_pub_site_id,
6519 t_order_type,
6520 t_ot_desc,
6521 t_end_order_type,
6522 t_end_ot_desc,
6523 t_bkt_type_desc,
6524 t_bkt_type,
6525 t_item_id,
6526 t_ord_num,
6527 t_line_num,
6528 t_rel_num,
6529 t_end_ord,
6530 t_end_line,
6531 t_end_rel,
6532 t_key_date,
6533 t_new_sched_date,
6534 t_ship_date,
6535 t_receipt_date,
6536 t_new_ord_plac_date,
6537 t_orig_prom_date,
6538 t_req_date,
6539 /* Added for work order support */
6540 t_wip_st_date,
6541 t_wip_end_date,
6542 t_uom,
6543 t_quantity,
6544 t_comments,
6545 t_carrier_code,
6546 t_bill_of_lading,
6547 t_tracking_number,
6548 t_vehicle_number,
6549 t_container_type,
6550 t_container_qty,
6551 t_serial_number,
6552 t_attach_url,
6553 t_version,
6554 t_designator,
6555 t_context,
6556 t_attribute1,
6557 t_attribute2,
6558 t_attribute3,
6559 t_attribute4,
6560 t_attribute5,
6561 t_attribute6,
6562 t_attribute7,
6563 t_attribute8,
6564 t_attribute9,
6565 t_attribute10,
6566 t_attribute11,
6567 t_attribute12,
6568 t_attribute13,
6569 t_attribute14,
6570 t_attribute15,
6571 t_posting_party_name,
6572 t_posting_party_id,
6573 l_user_id,
6574 l_language_code
6575 );
6576
6577 end if;
6578
6579 /* for weekly buckets data */
6580 OPEN c_bucket_data( l_language_code ,
6581 p_header_id,
6582 l_date_format,
6583 G_WEEK);
6584 FETCH c_bucket_data
6585 BULK COLLECT INTO
6586 t_header_id_lst,
6587 t_line_id_lst,
6588 t_key_date_lst,
6589 t_ket_end_date_lst;
6590 CLOSE c_bucket_data;
6591
6592 if (t_line_id_lst.COUNT > 0 ) then
6593 FOR i in 1..t_line_id_lst.COUNT LOOP
6594
6595 lv_bucket_index := 0;
6596
6597 LOOP
6598
6599 lv_new_date := t_key_date_lst(i) + (7 * lv_bucket_index);
6600
6601 EXIT WHEN lv_new_date > t_ket_end_date_lst(i);
6602
6603 insert into MSC_LOAD_BUCKETS_TEMP
6604 (PARENT_HEADER_ID,
6605 LINE_ID,
6606 BUCKET_DATE,
6607 BUCKET_TYPE)
6608 values ( t_header_id_lst(i),
6609 t_line_id_lst(i),
6610 to_date(lv_new_date,'J'),
6611 2);
6612
6613 lv_bucket_index := lv_bucket_index + 1;
6614
6615 END LOOP;
6616
6617 END LOOP;
6618 end if;
6619
6620 log_debug('Opening c_weekly_bkt_key');
6621 OPEN c_weekly_bkt_key (
6622 p_header_id,
6623 l_language_code,
6624 l_start_line,
6625 l_end_line,
6626 l_date_format);
6627 FETCH c_weekly_bkt_key BULK COLLECT INTO
6628 t_line_id,
6629 t_pub,
6630 t_pub_id,
6631 t_pub_site,
6632 t_pub_site_id,
6633 t_pub_addr,
6634 t_cust,
6635 t_cust_id,
6636 t_cust_site,
6637 t_cust_site_id,
6638 t_cust_addr,
6639 t_supp,
6640 t_supp_id,
6641 t_supp_site,
6642 t_supp_site_id,
6643 t_supp_addr,
6644 t_shipfrom,
6645 t_shipfrom_site,
6646 t_shipfrom_addr,
6647 t_shipto,
6648 t_shipto_site,
6649 t_shipto_party_addr,
6650 t_shipto_addr,
6651 t_end_order_pub,
6652 t_end_ord_pub_site,
6653 t_order_type,
6654 t_ot_desc,
6655 t_end_ot_desc,
6656 t_bkt_type_desc,
6657 t_bkt_type,
6658 t_item_id,
6659 t_ord_num,
6660 t_line_num,
6661 t_rel_num,
6662 t_end_ord,
6663 t_end_line,
6664 t_end_rel,
6665 t_key_date,
6666 t_new_sched_date,
6667 t_ship_date,
6668 t_receipt_date,
6669 t_new_ord_plac_date,
6670 t_orig_prom_date,
6671 t_req_date,
6672 /* Added for work order support */
6673 t_wip_st_date,
6674 t_wip_end_date,
6675 t_quantity,
6676 t_uom,
6677 t_comments,
6678 t_carrier_code,
6679 t_bill_of_lading,
6680 t_tracking_number,
6681 t_vehicle_number,
6682 t_container_type,
6683 t_container_qty,
6684 t_serial_number,
6685 t_attach_url,
6686 t_version,
6687 t_designator,
6688 t_context,
6689 t_attribute1,
6690 t_attribute2,
6691 t_attribute3,
6692 t_attribute4,
6693 t_attribute5,
6694 t_attribute6,
6695 t_attribute7,
6696 t_attribute8,
6697 t_attribute9,
6698 t_attribute10,
6699 t_attribute11,
6700 t_attribute12,
6701 t_attribute13,
6702 t_attribute14,
6703 t_attribute15,
6704 t_posting_party_name;
6705 CLOSE c_weekly_bkt_key;
6706
6707 commit;
6708
6709 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
6710 log_debug('Records fetched: ' || t_line_id.COUNT);
6711 get_optional_info(
6712 p_header_id,
6713 l_language_code,
6714 t_line_id,
6715 t_end_order_pub,
6716 t_end_ord_pub_site,
6717 t_shipfrom,
6718 t_shipfrom_site,
6719 t_shipto,
6720 t_shipto_site,
6721 t_end_ot_desc,
6722 t_posting_party_name,
6723 t_cust_id,
6724 t_cust_site_id,
6725 t_supp_id,
6726 t_supp_site_id,
6727 t_item_id,
6728 t_order_type,
6729 t_ship_date,
6730 t_receipt_date,
6731 t_end_order_type,
6732 t_end_ord_pub_id,
6733 t_end_ord_pub_site_id,
6734 t_shipfrom_id,
6735 t_shipfrom_site_id,
6736 t_shipto_id,
6737 t_shipto_site_id,
6738 t_posting_party_id,
6739 t_cust,
6740 t_cust_site,
6741 t_key_date
6742 );
6743
6744 replace_supdem_entries (
6745 p_header_id,
6746 t_line_id,
6747 t_pub,
6748 t_pub_id,
6749 t_pub_site,
6750 t_pub_site_id,
6751 t_pub_addr,
6752 t_cust,
6753 t_cust_id,
6754 t_cust_site,
6755 t_cust_site_id,
6756 t_cust_addr,
6757 t_supp,
6758 t_supp_id,
6759 t_supp_site,
6760 t_supp_site_id,
6761 t_supp_addr,
6762 t_shipfrom,
6763 t_shipfrom_id,
6764 t_shipfrom_site,
6765 t_shipfrom_site_id,
6766 t_shipfrom_addr,
6767 t_shipto,
6768 t_shipto_id,
6769 t_shipto_site,
6770 t_shipto_site_id,
6771 t_shipto_party_addr,
6772 t_shipto_addr,
6773 t_end_order_pub,
6774 t_end_ord_pub_id,
6775 t_end_ord_pub_site,
6776 t_end_ord_pub_site_id,
6777 t_order_type,
6778 t_ot_desc,
6779 t_end_order_type,
6780 t_end_ot_desc,
6781 t_bkt_type_desc,
6782 t_bkt_type,
6783 t_item_id,
6784 t_ord_num,
6785 t_line_num,
6786 t_rel_num,
6787 t_end_ord,
6788 t_end_line,
6789 t_end_rel,
6790 t_key_date,
6791 t_new_sched_date,
6792 t_ship_date,
6793 t_receipt_date,
6794 t_new_ord_plac_date,
6795 t_orig_prom_date,
6796 t_req_date,
6797 /* Added for work order support */
6798 t_wip_st_date,
6799 t_wip_end_date,
6800 t_uom,
6801 t_quantity,
6802 t_comments,
6803 t_carrier_code,
6804 t_bill_of_lading,
6805 t_tracking_number,
6806 t_vehicle_number,
6807 t_container_type,
6808 t_container_qty,
6809 t_serial_number,
6810 t_attach_url,
6811 t_version,
6812 t_designator,
6813 t_context,
6814 t_attribute1,
6815 t_attribute2,
6816 t_attribute3,
6817 t_attribute4,
6818 t_attribute5,
6819 t_attribute6,
6820 t_attribute7,
6821 t_attribute8,
6822 t_attribute9,
6823 t_attribute10,
6824 t_attribute11,
6825 t_attribute12,
6826 t_attribute13,
6827 t_attribute14,
6828 t_attribute15,
6829 t_posting_party_name,
6830 t_posting_party_id,
6831 l_user_id,
6832 l_language_code
6833 );
6834
6835 end if;
6836
6837 /* for Monthly buckets data */
6838 OPEN c_bucket_data( l_language_code ,
6839 p_header_id,
6840 l_date_format,
6841 G_MONTH);
6842 FETCH c_bucket_data
6843 BULK COLLECT INTO
6844 t_header_id_lst,
6845 t_line_id_lst,
6846 t_key_date_lst,
6847 t_ket_end_date_lst;
6848 CLOSE c_bucket_data;
6849
6850 if (t_line_id_lst.COUNT > 0 ) then
6851 FOR i in 1..t_line_id_lst.COUNT LOOP
6852
6853 lv_bucket_index := 0;
6854
6855 LOOP
6856
6857 lv_new_date := to_char(add_months(to_date(t_key_date_lst(i),'J') , lv_bucket_index) ,'J') ;
6858
6859 EXIT WHEN lv_new_date > t_ket_end_date_lst(i);
6860
6861 insert into MSC_LOAD_BUCKETS_TEMP
6862 (PARENT_HEADER_ID,
6863 LINE_ID,
6864 BUCKET_DATE,
6865 BUCKET_TYPE)
6866 values ( t_header_id_lst(i),
6867 t_line_id_lst(i),
6868 to_date(lv_new_date,'J') ,
6869 3);
6870
6871 lv_bucket_index := lv_bucket_index + 1;
6872
6873 END LOOP;
6874
6875 END LOOP;
6876 end if;
6877
6878 log_debug('Opening c_monthly_bkt_key');
6879 OPEN c_monthly_bkt_key (
6880 p_header_id,
6881 l_language_code,
6882 l_start_line,
6883 l_end_line,
6884 l_date_format);
6885 FETCH c_monthly_bkt_key BULK COLLECT INTO
6886 t_line_id,
6887 t_pub,
6888 t_pub_id,
6889 t_pub_site,
6890 t_pub_site_id,
6891 t_pub_addr,
6892 t_cust,
6893 t_cust_id,
6894 t_cust_site,
6895 t_cust_site_id,
6896 t_cust_addr,
6897 t_supp,
6898 t_supp_id,
6899 t_supp_site,
6900 t_supp_site_id,
6901 t_supp_addr,
6902 t_shipfrom,
6903 t_shipfrom_site,
6904 t_shipfrom_addr,
6905 t_shipto,
6906 t_shipto_site,
6907 t_shipto_party_addr,
6908 t_shipto_addr,
6909 t_end_order_pub,
6910 t_end_ord_pub_site,
6911 t_order_type,
6912 t_ot_desc,
6913 t_end_ot_desc,
6914 t_bkt_type_desc,
6915 t_bkt_type,
6916 t_item_id,
6917 t_ord_num,
6918 t_line_num,
6919 t_rel_num,
6920 t_end_ord,
6921 t_end_line,
6922 t_end_rel,
6923 t_key_date,
6924 t_new_sched_date,
6925 t_ship_date,
6926 t_receipt_date,
6927 t_new_ord_plac_date,
6928 t_orig_prom_date,
6929 t_req_date,
6930 /* Added for work order support */
6931 t_wip_st_date,
6932 t_wip_end_date,
6933 t_quantity,
6934 t_uom,
6935 t_comments,
6936 t_carrier_code,
6937 t_bill_of_lading,
6938 t_tracking_number,
6939 t_vehicle_number,
6940 t_container_type,
6941 t_container_qty,
6942 t_serial_number,
6943 t_attach_url,
6944 t_version,
6945 t_designator,
6946 t_context,
6947 t_attribute1,
6948 t_attribute2,
6949 t_attribute3,
6950 t_attribute4,
6951 t_attribute5,
6952 t_attribute6,
6953 t_attribute7,
6954 t_attribute8,
6955 t_attribute9,
6956 t_attribute10,
6957 t_attribute11,
6958 t_attribute12,
6959 t_attribute13,
6960 t_attribute14,
6961 t_attribute15,
6962 t_posting_party_name;
6963 CLOSE c_monthly_bkt_key;
6964
6965 commit;
6966
6967 if (t_line_id is not null) and (t_line_id.COUNT > 0) then
6968 log_debug('Records fetched: ' || t_line_id.COUNT);
6969 get_optional_info(
6970 p_header_id,
6971 l_language_code,
6972 t_line_id,
6973 t_end_order_pub,
6974 t_end_ord_pub_site,
6975 t_shipfrom,
6976 t_shipfrom_site,
6977 t_shipto,
6978 t_shipto_site,
6979 t_end_ot_desc,
6980 t_posting_party_name,
6981 t_cust_id,
6982 t_cust_site_id,
6983 t_supp_id,
6984 t_supp_site_id,
6985 t_item_id,
6986 t_order_type,
6987 t_ship_date,
6988 t_receipt_date,
6989 t_end_order_type,
6990 t_end_ord_pub_id,
6991 t_end_ord_pub_site_id,
6992 t_shipfrom_id,
6993 t_shipfrom_site_id,
6994 t_shipto_id,
6995 t_shipto_site_id,
6996 t_posting_party_id,
6997 t_cust,
6998 t_cust_site,
6999 t_key_date
7000 );
7001
7002 replace_supdem_entries (
7003 p_header_id,
7004 t_line_id,
7005 t_pub,
7006 t_pub_id,
7007 t_pub_site,
7008 t_pub_site_id,
7009 t_pub_addr,
7010 t_cust,
7011 t_cust_id,
7012 t_cust_site,
7013 t_cust_site_id,
7014 t_cust_addr,
7015 t_supp,
7016 t_supp_id,
7017 t_supp_site,
7018 t_supp_site_id,
7019 t_supp_addr,
7020 t_shipfrom,
7021 t_shipfrom_id,
7022 t_shipfrom_site,
7023 t_shipfrom_site_id,
7024 t_shipfrom_addr,
7025 t_shipto,
7026 t_shipto_id,
7027 t_shipto_site,
7028 t_shipto_site_id,
7029 t_shipto_party_addr,
7030 t_shipto_addr,
7031 t_end_order_pub,
7032 t_end_ord_pub_id,
7033 t_end_ord_pub_site,
7034 t_end_ord_pub_site_id,
7035 t_order_type,
7036 t_ot_desc,
7037 t_end_order_type,
7038 t_end_ot_desc,
7039 t_bkt_type_desc,
7040 t_bkt_type,
7041 t_item_id,
7042 t_ord_num,
7043 t_line_num,
7044 t_rel_num,
7045 t_end_ord,
7046 t_end_line,
7047 t_end_rel,
7048 t_key_date,
7049 t_new_sched_date,
7050 t_ship_date,
7051 t_receipt_date,
7052 t_new_ord_plac_date,
7053 t_orig_prom_date,
7054 t_req_date,
7055 /* Added for work order support */
7056 t_wip_st_date,
7057 t_wip_end_date,
7058 t_uom,
7059 t_quantity,
7060 t_comments,
7061 t_carrier_code,
7062 t_bill_of_lading,
7063 t_tracking_number,
7064 t_vehicle_number,
7065 t_container_type,
7066 t_container_qty,
7067 t_serial_number,
7068 t_attach_url,
7069 t_version,
7070 t_designator,
7071 t_context,
7072 t_attribute1,
7073 t_attribute2,
7074 t_attribute3,
7075 t_attribute4,
7076 t_attribute5,
7077 t_attribute6,
7078 t_attribute7,
7079 t_attribute8,
7080 t_attribute9,
7081 t_attribute10,
7082 t_attribute11,
7083 t_attribute12,
7084 t_attribute13,
7085 t_attribute14,
7086 t_attribute15,
7087 t_posting_party_name,
7088 t_posting_party_id,
7089 l_user_id,
7090 l_language_code
7091 );
7092
7093 end if;
7094 END LOOP;
7095 END IF;
7096
7097 --After all lines in the flat file have been processed.
7098 COMMIT;
7099 --============================================================================
7100 --Raise event that launches the workflow process that sends the error message
7101 --============================================================================
7102 BEGIN
7103 SELECT 1 INTO l_error_count
7104 FROM dual
7105 WHERE exists(
7106 SELECT 'exists'
7107 FROM msc_supdem_lines_interface
7108 WHERE parent_header_id = p_header_id AND
7109 row_status IN (G_PROCESS,G_FAILURE)
7110 );
7111 EXCEPTION
7112 WHEN OTHERS THEN
7113 l_error_count := 0;
7114 END;
7115
7116
7117 --dbms_output.enable(1000000);
7118 -- if the data was uploaded using flat-file loads or manual order entry
7119 if l_user_id <> -1 then
7120 l_event_key := 'LOADS' || '-' || p_header_id || '-' || l_user_id;
7121 if l_error_count > 0 THEN
7122 p_status := 1;
7123 if p_build_err = 2 then
7124 SELECT err_msg INTO p_err_msg
7125 FROM msc_supdem_lines_interface
7126 WHERE parent_header_id = p_header_id;
7127 else
7128 send_ntf(p_header_id, l_file_name, G_FAILURE, l_user_name, l_event_key);
7129 end if;
7130 else
7131 p_status := 0;
7132 if p_build_err = 2 then
7133 OPEN c_moe_reqs(p_header_id);
7134 LOOP
7135 FETCH c_moe_reqs
7136 INTO l_item_id,
7137 l_quantity,
7138 l_rec_date,
7139 l_cust_id,
7140 l_cust_site_id,
7141 l_sup_id,
7142 l_sup_site_id,
7143 l_uom;
7144 EXIT WHEN c_moe_reqs%NOTFOUND;
7145 log_debug('Calling API to move reqs to ERP');
7146 log_debug('Item id := ' || l_item_id);
7147 log_debug('Cust id := ' || l_cust_id);
7148 log_debug('Cust site id := ' || l_cust_site_id);
7149 log_debug('Supplier id := ' || l_sup_id);
7150 log_debug('Supp site id := ' || l_sup_site_id);
7151
7152 MSC_X_REPLENISH.CREATE_REQUISITION(
7153 l_item_id,
7154 l_quantity,
7155 l_rec_date,
7156 l_cust_id,
7157 l_cust_site_id,
7158 l_sup_id,
7159 l_sup_site_id,
7160 l_uom,
7161 l_err_msg
7162 );
7163 END LOOP;
7164 CLOSE c_moe_reqs;
7165
7166 p_err_msg := nvl(l_err_msg, 'MSC_X_VALID_SUCCESS');
7167
7168 --p_err_msg := 'MSC_X_VALID_SUCCESS';
7169 else
7170 send_ntf(p_header_id, l_file_name, G_SUCCESS, l_user_name, l_event_key);
7171 end if;
7172 end if;
7173 ELSE
7174 --For files uploaded via XML the notifications are sent to the users
7175 --having the Supply Chain Administrator responsibility
7176 OPEN c_sc_admins(p_header_id);
7177 FETCH c_sc_admins bulk collect INTO
7178 t_user_name,
7179 t_user_id;
7180 CLOSE c_sc_admins;
7181
7182 IF t_user_name IS NOT NULL AND t_user_name.COUNT > 0 THEN
7183 FOR j IN t_user_name.first..t_user_name.last LOOP
7184 t_event_key.extend;
7185 t_event_key(j) := 'LOADS' || '-' || p_header_id || '-' || t_user_id(j);
7186 IF l_error_count > 0 THEN
7187 send_ntf(p_header_id, l_file_name, G_FAILURE, t_user_name(j), t_event_key(j));
7188 ELSE
7189 send_ntf(p_header_id, l_file_name, G_SUCCESS, t_user_name(j), t_event_key(j));
7190 END IF;
7191 END LOOP;
7192 END IF;
7193
7194 END IF;
7195
7196
7197 --============================================================================================
7198 -- Starting post processing steps
7199 --============================================================================================
7200 IF (l_consumption_advice_exists) THEN
7201 LOG_MESSAGE('Creating Sales orders for Consumption Advice');
7202 begin
7203 MSC_X_CVMI_REPLENISH.vmi_release_api_load(p_header_id);
7204 exception
7205 when others then
7206 LOG_MESSAGE('Error in Sales orders for Consumption Advice: '||SQLERRM);
7207 end;
7208 END IF;
7209
7210 log_message('Performing Consumption');
7211 POST_PROCESS(p_header_id);
7212
7213
7214 /*****************************************
7215 Not needed since average daily demand is calculated in
7216 the VMI engine from 11.5.10
7217 log_message('Calculating average demand');
7218 BEGIN
7219 select 1
7220 into l_comp_avg_dmd
7221 from dual
7222 where exists (
7223 select 'exists'
7224 from msc_supdem_lines_interface ln,
7225 fnd_lookup_values flv
7226 where ln.parent_header_id = p_header_id
7227 and ln.row_status = G_SUCCESS
7228 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
7229 and flv.lookup_code = 2
7230 and UPPER(flv.meaning) = UPPER(ln.order_type)
7231 );
7232 log_debug('l_comp_avg_dmd := ' || l_comp_avg_dmd);
7233 EXCEPTION
7234 WHEN OTHERS THEN
7235 l_comp_avg_dmd := 0;
7236 END;
7237
7238 IF l_comp_avg_dmd = 1 THEN
7239 BEGIN
7240 MSC_X_PLANNING.CALCULATE_AVERAGE_DEMAND;
7241 EXCEPTION
7242 WHEN OTHERS THEN
7243 LOG_MESSAGE('Error in MSC_X_PLANNING.CALCULATE_AVERAGE_DEMAND');
7244 LOG_MESSAGE(SQLERRM);
7245 END;
7246 END IF;
7247
7248
7249 ***************/
7250 /* Delete the work orders that have been deleted */
7251 BEGIN
7252 delete from msc_sup_dem_entries sd
7253 where sd.plan_id = -1
7254 and sd.publisher_order_type = G_WORK_ORDER
7255 and sd.last_update_login = G_DELETED;
7256
7257 EXCEPTION
7258 WHEN OTHERS THEN
7259 LOG_MESSAGE(SQLERRM);
7260 END;
7261
7262 -- launch SCEM engine
7263 LOG_MESSAGE('Check to see if need to launch SCEM engine ...');
7264 DECLARE
7265 l_order_type_flag NUMBER;
7266 l_msc_x_auto_scem_mode NUMBER;
7267 l_msc_x_configuration NUMBER;
7268 BEGIN
7269 l_order_type_flag := 0;
7270 l_msc_x_auto_scem_mode := FND_PROFILE.VALUE('MSC_X_AUTO_SCEM_MODE');
7271 l_msc_x_configuration := FND_PROFILE.VALUE('MSC_X_CONFIGURATION');
7272 BEGIN
7273 select 1
7274 into l_order_type_flag
7275 from dual
7276 where exists (
7277 select 'exists'
7278 from msc_supdem_lines_interface ln,
7279 fnd_lookup_values flv
7280 where ln.parent_header_id = p_header_id
7281 and ln.row_status = G_SUCCESS
7282 and flv.lookup_type = 'MSC_X_ORDER_TYPE'
7283 and flv.lookup_code IN (2, 3)
7284 and UPPER(flv.meaning) = UPPER(ln.order_type)
7285 );
7286 EXCEPTION
7287 WHEN OTHERS THEN
7288 l_order_type_flag := 0;
7289 END;
7290
7291 log_debug('flag/profile: ' || l_order_type_flag
7292 || '-' || l_msc_x_auto_scem_mode || '-' || l_msc_x_configuration);
7293
7294 IF ( l_order_type_flag = 1 ) THEN
7295 IF ( ( l_msc_x_auto_scem_mode = 1
7296 OR l_msc_x_auto_scem_mode = 3
7297 ) -- LOAD or ALL
7298 AND (l_msc_x_configuration = 2 OR l_msc_x_configuration = 3) -- APS+CP or CP
7299 ) THEN
7300 LOG_MESSAGE('About to Launching SCEM engine ...');
7301 MSC_X_CP_FLOW.Start_SCEM_Engine_WF;
7302 LOG_MESSAGE('After launching SCEM engine ...');
7303 END IF;
7304 END IF;
7305
7306 EXCEPTION
7307 WHEN OTHERS THEN
7308 LOG_MESSAGE('Error in MSC_X_CP_FLOW.Start_SCEM_Engine_WF');
7309 LOG_MESSAGE(SQLERRM);
7310 END;
7311
7312 --==================================================================
7313 -- Load the Serial Number data
7314 --===================================================================
7315 serial_validation(p_header_id,l_language_code);
7316
7317
7318 -----------------------------------------------------------------------
7319 --- Call the custom validations code to perform custom validations
7320 ----------------------------------------------------------------------
7321
7322 msc_custom_validation_pkg.call_validations_post(p_header_id);
7323
7324 -- added exception handler
7325 EXCEPTION
7326 WHEN OTHERS THEN
7327 LOG_MESSAGE('Error in msc_sce_loads_pkg.validate');
7328 LOG_MESSAGE(SQLERRM);
7329
7330 END validate;
7331
7332
7333
7334 PROCEDURE get_optional_info
7335 (
7336 p_header_id IN Number,
7337 p_language_code IN Varchar2,
7338 t_line_id IN lineidList,
7339 t_end_order_pub IN endordpubList,
7340 t_end_ord_pub_site IN endordpubsiteList,
7341 t_shipfrom IN shipfromList,
7342 t_shipfrom_site IN shipfromsiteList,
7343 t_shipto IN shiptoList,
7344 t_shipto_site IN shiptositeList,
7345 t_end_ot_desc IN endotdescList,
7346 t_posting_party_name IN postingpartyList,
7347 t_cust_id IN OUT NOCOPY custidList,
7348 t_cust_site_id IN OUT NOCOPY custsiteidList,
7349 t_supp_id IN suppidList,
7350 t_supp_site_id IN suppsiteidList,
7351 t_item_id IN itemidList,
7352 t_order_type IN ordertypeList,
7353 t_ship_date IN OUT NOCOPY shipdateList,
7354 t_receipt_date IN OUT NOCOPY receiptdateList,
7355 t_end_order_type IN OUT NOCOPY endordertypeList,
7356 t_end_ord_pub_id IN OUT NOCOPY endordpubidList,
7357 t_end_ord_pub_site_id IN OUT NOCOPY endordpubsidList,
7358 t_shipfrom_id IN OUT NOCOPY shipfromidList,
7359 t_shipfrom_site_id IN OUT NOCOPY shipfromsidList,
7360 t_shipto_id IN OUT NOCOPY shiptoidList,
7361 t_shipto_site_id IN OUT NOCOPY shiptosidList,
7362 t_posting_party_id IN OUT NOCOPY numlist,
7363 t_cust IN OUT NOCOPY customerList,
7364 t_cust_site IN OUT NOCOPY custsitelist,
7365 t_key_date IN OUT NOCOPY keydateList
7366 ) IS
7367
7368 l_conversion_found BOOLEAN;
7369 l_conversion_rate NUMBER;
7370
7371 BEGIN
7372 log_debug('In get_optional_info');
7373 IF t_line_id is not null and t_line_id.COUNT > 0 then
7374 log_debug('Lines fetched by cursor := ' || t_line_id.COUNT);
7375
7376 FOR j in t_line_id.FIRST..t_line_id.LAST LOOP
7377
7378 --=============================================================
7379 -- Figure out modeled org for work orders
7380 --=============================================================
7381 IF (t_order_type(j) = g_work_order) AND (t_supp_id(j) <> 1) AND (t_cust_id(j) is null) AND (t_cust_site_id(j) is null) THEN
7382 BEGIN
7383 SELECT c.company_name,
7384 c.company_id,
7385 cs.company_site_name,
7386 cs.company_site_id
7387 INTO t_cust(j),
7388 t_cust_id(j),
7389 t_cust_site(j),
7390 t_cust_site_id(j)
7391 FROM msc_trading_partners mtp,
7392 msc_trading_partners mtp1,
7393 msc_trading_partner_maps maps,
7394 msc_trading_partner_maps maps1,
7395 msc_trading_partner_maps maps2,
7396 msc_trading_partner_sites mtps,
7397 msc_company_sites cs,
7398 msc_companies c,
7399 msc_company_relationships rel
7400 WHERE rel.relationship_type = 2
7401 AND rel.subject_id = 1
7402 AND rel.object_id = t_supp_id(j)
7403 AND maps.company_key = rel.relationship_id
7404 AND maps.map_type = 1
7405 AND maps.tp_key = mtp.partner_id
7406 AND maps1.company_key = t_supp_site_id(j)
7407 AND maps1.map_type = 3
7408 AND mtps.partner_site_id = maps1.tp_key
7409 AND mtps.partner_id = mtp.partner_id
7410 AND mtp1.partner_type = 3
7411 AND mtp1.modeled_supplier_id = mtp.partner_id
7412 AND mtp1.modeled_supplier_site_id = mtps.partner_site_id
7413 AND maps2.tp_key = mtp1.partner_id
7414 AND maps2.map_type = 2
7415 AND cs.company_site_id = maps2.company_key
7416 AND cs.company_id = c.company_id
7417 AND c.company_id = 1;
7418 EXCEPTION
7419 WHEN OTHERS THEN
7420 t_cust(j) := null;
7421 t_cust_id(j) := null;
7422 t_cust_site(j) := null;
7423 t_cust_site_id(j) := null;
7424 END;
7425 END IF;
7426
7427
7428
7429 if(t_cust_id(j) = 1) /* Customer is OEM */ then
7430
7431
7432 --=============================================================
7433 -- Obtain the ship date
7434 --=============================================================
7435 if t_ship_date(j) is null and t_order_type(j) in (G_SALES_FORECAST, G_SUPPLY_COMMIT,
7436 G_SALES_ORDER, G_ASN, G_PO_ACKNOWLEDGEMENT, G_ORDER_FORECAST, G_PURCHASE_ORDER, G_SHIP_RECEIPT,
7437 G_REQUISITION) then
7438 t_ship_date(j) := msc_x_util.update_ship_rcpt_dates(
7439 t_cust_id(j),
7440 t_cust_site_id(j),
7441 t_supp_id(j),
7442 t_supp_site_id(j),
7443 t_order_type(j),
7444 t_item_id(j),
7445 null,
7446 t_receipt_date(j)
7447 );
7448
7449 if(t_order_type(j) = G_SALES_FORECAST) then
7450
7451 t_key_date(j) := t_ship_date(j);
7452
7453 end if;
7454
7455 end if;
7456
7457
7458 --=============================================================
7459 -- Obtain the receipt date
7460 --=============================================================
7461 if t_receipt_date(j) is null and t_order_type(j) in (G_SALES_FORECAST, G_SUPPLY_COMMIT,
7462 G_SALES_ORDER, G_ASN, G_PO_ACKNOWLEDGEMENT) then
7463 t_receipt_date(j) := msc_x_util.update_ship_rcpt_dates(
7464 t_cust_id(j),
7465 t_cust_site_id(j),
7466 t_supp_id(j),
7467 t_supp_site_id(j),
7468 t_order_type(j),
7469 t_item_id(j),
7470 t_ship_date(j),
7471 null
7472 );
7473
7474 if(t_order_type(j) <> G_SALES_FORECAST) then
7475 t_key_date(j) := t_receipt_date(j);
7476 end if;
7477
7478 end if;
7479
7480
7481 end if; /* Customer is OEM */
7482
7483
7484 --=============================================================
7485 -- Obtain end order type
7486 --=============================================================
7487
7488 t_end_order_type.EXTEND;
7489 IF (j > 1) AND (nvl(t_end_ot_desc(j),-1) = nvl(t_end_ot_desc(j-1),-1)) THEN
7490 t_end_order_type(j) := t_end_order_type(j-1);
7491 ELSIF t_end_ot_desc(j) is null THEN
7492 t_end_order_type(j) := null;
7493 ELSE
7494 SELECT flv.lookup_code
7495 INTO t_end_order_type(j)
7496 FROM fnd_lookup_values flv,
7497 msc_supdem_lines_interface ln
7498 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' and
7499 flv.language = p_language_code and
7500 UPPER(flv.meaning) = UPPER(ln.end_order_type) and
7501 ln.parent_header_id = p_header_id and
7502 ln.line_id = t_line_id(j);
7503 END IF;
7504
7505 --=============================================================
7506 --Obtain end order publisher id
7507 --=============================================================
7508
7509 t_end_ord_pub_id.EXTEND;
7510 IF (j > 1) AND (nvl(t_end_order_pub(j),-1) = nvl(t_end_order_pub(j-1),-1)) THEN
7511 t_end_ord_pub_id(j) := t_end_ord_pub_id(j-1);
7512 ELSE
7513 BEGIN
7514 SELECT c.company_id
7515 INTO t_end_ord_pub_id(j)
7516 FROM msc_companies c,
7517 msc_supdem_lines_interface l
7518 WHERE UPPER(c.company_name) = UPPER(l.end_order_publisher_name) AND
7519 l.parent_header_id = p_header_id and
7520 l.line_id = t_line_id(j);
7521 EXCEPTION
7522 WHEN OTHERS THEN
7523 t_end_ord_pub_id(j) := null;
7524 END;
7525 END IF;
7526
7527 --=============================================================
7528 --Obtain ship from party's id
7529 --=============================================================
7530
7531 t_shipfrom_id.EXTEND;
7532 IF (j > 1) AND (nvl(t_shipfrom(j),-1) = nvl(t_shipfrom(j-1),-1)) THEN
7533 t_shipfrom_id(j) := t_shipfrom_id(j-1);
7534 ELSE
7535 BEGIN
7536 SELECT c.company_id
7537 INTO t_shipfrom_id(j)
7538 FROM msc_companies c,
7539 msc_supdem_lines_interface l
7540 WHERE UPPER(c.company_name) = UPPER(l.ship_from_party_name) AND
7541 l.parent_header_id = p_header_id and
7542 l.line_id = t_line_id(j);
7543 EXCEPTION
7544 WHEN OTHERS THEN
7545 t_shipfrom_id(j) := null;
7546 END;
7547 END IF;
7548
7549 --=============================================================
7550 --Obtain ship to party id
7551 --=============================================================
7552
7553 t_shipto_id.EXTEND;
7554 IF (j > 1) AND (nvl(t_shipto(j),-1) = nvl(t_shipto(j-1),-1)) THEN
7555 t_shipto_id(j) := t_shipto_id(j-1);
7556 ELSE
7557 BEGIN
7558 SELECT c.company_id
7559 INTO t_shipto_id(j)
7560 FROM msc_companies c,
7561 msc_supdem_lines_interface l
7562 WHERE UPPER(c.company_name) = UPPER(l.ship_to_party_name) AND
7563 l.parent_header_id = p_header_id and
7564 l.line_id = t_line_id(j);
7565 EXCEPTION
7566 WHEN OTHERS THEN
7567 t_shipto_id(j) := null;
7568 END;
7569 END IF;
7570
7571 --=============================================================
7572 --Obtain end order publisher's site id
7573 --=============================================================
7574 t_end_ord_pub_site_id.EXTEND;
7575 IF (j > 1) AND (nvl(t_end_ord_pub_site(j),-1) = nvl(t_end_ord_pub_site(j-1),-1)) THEN
7576 t_end_ord_pub_site_id(j) := t_end_ord_pub_site_id(j-1);
7577 ELSE
7578 BEGIN
7579 SELECT s.company_site_id
7580 INTO t_end_ord_pub_site_id(j)
7581 FROM msc_company_sites s,
7582 msc_supdem_lines_interface l
7583 WHERE s.company_id = t_end_ord_pub_id(j) AND
7584 UPPER(s.company_site_name) = UPPER(l.end_order_publisher_site) AND
7585 l.parent_header_id = p_header_id and
7586 l.line_id = t_line_id(j);
7587 EXCEPTION
7588 WHEN OTHERS THEN
7589 t_end_ord_pub_site_id(j) := null;
7590 END;
7591 END IF;
7592
7593
7594 --=============================================================
7595 --Obtain ship from party's site id
7596 --=============================================================
7597
7598 t_shipfrom_site_id.EXTEND;
7599 IF (j > 1) AND (nvl(t_shipfrom_site(j),-1) = nvl(t_shipfrom_site(j-1),-1)) THEN
7600 t_shipfrom_site_id(j) := t_shipfrom_site_id(j-1);
7601 ELSE
7602 BEGIN
7603 SELECT s.company_site_id
7604 INTO t_shipfrom_site_id(j)
7605 FROM msc_company_sites s,
7606 msc_supdem_lines_interface l
7607 WHERE s.company_id = t_shipfrom_id(j) AND
7608 UPPER(s.company_site_name) = UPPER(l.ship_from_party_site) AND
7609 l.parent_header_id = p_header_id and
7610 l.line_id = t_line_id(j);
7611 EXCEPTION
7612 WHEN OTHERS THEN
7613 t_shipfrom_site_id(j) := null;
7614 END;
7615 END IF;
7616
7617 --=============================================================
7618 --Obtain ship to party's site id
7619 --=============================================================
7620
7621 t_shipto_site_id.EXTEND;
7622
7623 IF (j > 1) AND (nvl(t_shipto_site(j),-1) = nvl(t_shipto_site(j-1),-1)) THEN
7624 t_shipto_site_id(j) := t_shipto_site_id(j-1);
7625 ELSE
7626 BEGIN
7627 SELECT s.company_site_id
7628 INTO t_shipto_site_id(j)
7629 FROM msc_company_sites s,
7630 msc_supdem_lines_interface l
7631 WHERE s.company_id = t_shipto_id(j) AND
7632 UPPER(s.company_site_name) = UPPER(l.ship_to_party_site) AND
7633 l.parent_header_id = p_header_id and
7634 l.line_id = t_line_id(j);
7635 EXCEPTION
7636 WHEN OTHERS THEN
7637 t_shipto_site_id(j) := null;
7638 END;
7639 END IF;
7640
7641 t_posting_party_id.EXTEND;
7642
7643 IF (j > 1) AND (nvl(t_posting_party_name(j),-1) = nvl(t_posting_party_name(j-1),-1)) THEN
7644 t_posting_party_id(j) := t_posting_party_id(j-1);
7645 ELSE
7646 SELECT c.company_id
7647 INTO t_posting_party_id(j)
7648 FROM msc_companies c
7649 WHERE c.company_name = t_posting_party_name(j);
7650 --Bug 5116681: there is no need no check the upper as posting party gets itself populated thru msc_companies table.
7651 END IF;
7652
7653 END LOOP;
7654
7655 END IF;
7656
7657 -- added exception handler
7658 EXCEPTION
7659 WHEN OTHERS THEN
7660 LOG_MESSAGE('Error in msc_sce_loads_pkg.get_optional_info');
7661 LOG_MESSAGE(SQLERRM);
7662
7663 END get_optional_info;
7664
7665 PROCEDURE replace_supdem_entries (
7666 p_header_id IN Number,
7667 t_line_id IN lineidList,
7668 t_pub IN publisherList,
7669 t_pub_id IN publishidList,
7670 t_pub_site IN pubsiteList,
7671 t_pub_site_id IN pubsiteidList,
7672 t_pub_addr IN pubaddrList,
7673 t_cust IN customerList,
7674 t_cust_id IN custidList,
7675 t_cust_site IN custsiteList,
7676 t_cust_site_id IN custsiteidList,
7677 t_cust_addr IN custaddrList,
7678 t_supp IN supplierList,
7679 t_supp_id IN suppidList,
7680 t_supp_site IN suppsiteList,
7681 t_supp_site_id IN suppsiteidList,
7682 t_supp_addr IN suppaddrList,
7683 t_shipfrom IN shipfromList,
7684 t_shipfrom_id IN shipfromidList,
7685 t_shipfrom_site IN shipfromsiteList,
7686 t_shipfrom_site_id IN shipfromsidList,
7687 t_shipfrom_addr IN shipfromaddrList,
7688 t_shipto IN shiptoList,
7689 t_shipto_id IN shiptoidList,
7690 t_shipto_site IN shiptositeList,
7691 t_shipto_site_id IN shiptosidList,
7692 t_shipto_party_addr IN shiptopaddrList,
7693 t_shipto_addr IN shiptoaddrList,
7694 t_end_order_pub IN endordpubList,
7695 t_end_ord_pub_id IN endordpubidList,
7696 t_end_ord_pub_site IN endordpubsiteList,
7697 t_end_ord_pub_site_id IN endordpubsidList,
7698 t_order_type IN ordertypeList,
7699 t_ot_desc IN otdescList,
7700 t_end_order_type IN endordertypeList,
7701 t_end_ot_desc IN endotdescList,
7702 t_bkt_type_desc IN bktypedescList,
7703 t_bkt_type IN bktypeList,
7704 t_item_id IN itemidList,
7705 t_ord_num IN ordernumList,
7706 t_line_num IN linenumList,
7707 t_rel_num IN relnumList,
7708 t_end_ord IN endordList,
7709 t_end_line IN endlineList,
7710 t_end_rel IN endrelList,
7711 t_key_date IN keydateList,
7712 t_new_sched_date IN newschedList,
7713 t_ship_date IN shipdateList,
7714 t_receipt_date IN receiptdateList,
7715 t_new_ord_plac_date IN newordplaceList,
7716 t_orig_prom_date IN origpromList,
7717 t_req_date IN reqdateList,
7718 /* Added for work order support */
7719 t_wip_st_date IN wipstdatelist,
7720 t_wip_end_date IN wipenddatelist,
7721 t_uom IN uomList,
7722 t_quantity IN qtyList,
7723 t_comments IN commentList,
7724 t_carrier_code IN carrierList,
7725 t_bill_of_lading IN billofladList,
7726 t_tracking_number IN trackingList,
7727 t_vehicle_number IN vehicleList,
7728 t_container_type IN containerList,
7729 t_container_qty IN contqtyList,
7730 t_serial_number IN serialnumList,
7731 t_attach_url IN attachurlList,
7732 t_version IN versionList,
7733 t_designator IN designatorList,
7734 t_context IN contextList,
7735 t_attribute1 IN attributeList,
7736 t_attribute2 IN attributeList,
7737 t_attribute3 IN attributeList,
7738 t_attribute4 IN attributeList,
7739 t_attribute5 IN attributeList,
7740 t_attribute6 IN attributeList,
7741 t_attribute7 IN attributeList,
7742 t_attribute8 IN attributeList,
7743 t_attribute9 IN attributeList,
7744 t_attribute10 IN attributeList,
7745 t_attribute11 IN attributeList,
7746 t_attribute12 IN attributeList,
7747 t_attribute13 IN attributeList,
7748 t_attribute14 IN attributeList,
7749 t_attribute15 IN attributeList,
7750 --p_posting_party_name IN VARCHAR2,
7751 --p_posting_party_id IN NUMBER,
7752 t_posting_party_name IN postingpartyList,
7753 t_posting_party_id IN numList,
7754 p_user_id IN NUMBER,
7755 p_language_code IN VARCHAR2
7756 ) IS
7757
7758 CURSOR publisher_is_supplier_c(
7759 p_item_id in number,
7760 p_cust_site_id in number,
7761 p_pub_id in number,
7762 p_pub_site_id in number
7763 ) IS
7764 select mis.supplier_item_name,
7765 nvl(mis.description,itm1.description) ,
7766 nvl(mis.uom_code,msi.uom_code),
7767 msi.base_item_id,
7768 itm.item_name,
7769 msi.planner_code
7770 from msc_item_suppliers mis,
7771 msc_system_items msi,
7772 msc_items itm,
7773 msc_items itm1,
7774 msc_trading_partner_maps map,
7775 msc_trading_partner_maps map1,
7776 msc_trading_partner_maps map2,
7777 msc_trading_partners mtp,
7778 msc_company_relationships r
7779 where itm.inventory_item_id (+)= msi.base_item_id and
7780 msi.organization_id = mis.organization_id and
7781 msi.sr_instance_id = mis.sr_instance_id and
7782 msi.inventory_item_id = mis.inventory_item_id and
7783 msi.plan_id = mis.plan_id and
7784 mis.plan_id = -1 and
7785 mis.inventory_item_id = p_item_id and
7786 mis.plan_id = -1 and
7787 mis.organization_id = mtp.sr_tp_id and
7788 mis.sr_instance_id = mtp.sr_instance_id and
7789 itm1.inventory_item_id(+) = mis.inventory_item_id and
7790 mtp.partner_id = map2.tp_key and
7791 mtp.partner_type = 3 and
7792 map2.company_key = p_cust_site_id and
7793 map2.map_type = 2 and
7794 mis.supplier_id = map.tp_key and
7795 --Nvl(mis.supplier_site_id, map1.tp_key) = map1.tp_key and
7796 mis.supplier_site_id = map1.tp_key and
7797 map.map_type = 1 and
7798 map.company_key = r.relationship_id and
7799 r.relationship_type = 2 and
7800 r.subject_id = 1 and
7801 r.object_id = p_pub_id and
7802 map1.map_type = 3 and
7803 map1.company_key = p_pub_site_id
7804 order by mis.using_organization_id desc;
7805
7806 CURSOR supplier_item_c (
7807 p_item_id in number,
7808 p_cust_site_id in number,
7809 p_pub_id in number,
7810 p_pub_site_id in number,
7811 p_supp_id in number,
7812 p_supp_site_id in number
7813 ) IS
7814 select mis.supplier_item_name,
7815 nvl(mis.description,itm.description),
7816 mis.uom_code
7817 from msc_item_suppliers mis,
7818 msc_items itm,
7819 msc_trading_partner_maps map,
7820 msc_trading_partner_maps map1,
7821 msc_trading_partner_maps map2,
7822 msc_trading_partners mtp,
7823 msc_company_relationships r
7824 where mis.inventory_item_id = p_item_id and
7825 mis.plan_id = -1 and
7826 mis.organization_id = mtp.sr_tp_id and
7827 mis.sr_instance_id = mtp.sr_instance_id and
7828 itm.inventory_item_id(+) = mis.inventory_item_id and
7829 mtp.partner_id = map2.tp_key and
7830 mtp.partner_type = 3 and
7831 map2.company_key = nvl(p_cust_site_id, p_pub_site_id) and
7832 map2.map_type = 2 and
7833 mis.supplier_id = map.tp_key and
7834 --Nvl(mis.supplier_site_id, map1.tp_key) = map1.tp_key and
7835 mis.supplier_site_id = map1.tp_key and
7836 map.map_type = 1 and
7837 map.company_key = r.relationship_id and
7838 r.relationship_type = 2 and
7839 r.subject_id = 1 and
7840 r.object_id = nvl(p_supp_id, p_pub_id) and
7841 map1.map_type = 3 and
7842 map1.company_key = nvl(p_supp_site_id, p_pub_site_id)
7843 order by mis.using_organization_id desc;
7844
7845 CURSOR c_vmi_item
7846 (
7847 p_supplier IN VARCHAR2,
7848 p_supplier_site IN VARCHAR2,
7849 p_customer_site IN VARCHAR2,
7850 p_item_id IN NUMBER
7851 ) IS
7852 SELECT mis.vmi_flag,
7853 mis.enable_vmi_auto_replenish_flag
7854 FROM msc_trading_partners mtp,
7855 msc_trading_partner_sites mtps,
7856 msc_trading_partners mtp1,
7857 msc_item_suppliers mis
7858 WHERE Upper(mtp.partner_name) = Upper(p_supplier)
7859 AND mtp.partner_type = 1
7860 AND mtps.partner_id = mtp.partner_id
7861 AND Upper(mtps.tp_site_code) = Upper(p_supplier_site)
7862 AND Upper(mtp1.organization_code) = Upper(p_customer_site)
7863 AND mtp1.partner_type = 3
7864 AND mis.plan_id = -1
7865 AND mis.organization_id = mtp1.sr_tp_id
7866 AND mis.sr_instance_id = mtp1.sr_instance_id
7867 AND mis.supplier_id = mtp.partner_id
7868 AND Nvl(mis.supplier_site_id, -99) = Decode(mis.supplier_site_id, NULL, -99, mtps.partner_site_id)
7869 AND mis.inventory_item_id = p_item_id
7870 ORDER BY mis.using_organization_id DESC;
7871
7872 -- jguo: added cursor below
7873 CURSOR c_shipping_control_meaning
7874 ( p_shipping_control_code IN NUMBER
7875 ) IS
7876 SELECT meaning,to_number(lookup_code)
7877 FROM fnd_lookup_values
7878 WHERE lookup_type = 'MSC_X_SHIPPING_CONTROL'
7879 AND language = p_language_code
7880 AND lookup_code = p_shipping_control_code
7881 ;
7882 l_conversion_found BOOLEAN;
7883 l_conversion_rate NUMBER;
7884 l_item_name VARCHAR2(240);
7885 l_base_item_id NUMBER;
7886 l_base_item_name VARCHAR2(240);
7887 l_desc VARCHAR2(240);
7888 l_uom VARCHAR2(3);
7889 l_vmi_flag NUMBER;
7890 l_vmi_auto_replenish_flag VARCHAR2(100);
7891
7892 l_planner_code VARCHAR2(240);--Bug 4424426
7893
7894
7895 t_insert_id lineidList := lineidList();
7896 t_ins_line_id lineidList := lineidList();
7897 t_ins_pub publisherList := publisherList();
7898 t_ins_pub_id publishidList := publishidList();
7899 t_ins_pub_site pubsiteList := pubsiteList();
7900 t_ins_pub_site_id pubsiteidList := pubsiteidList();
7901 t_ins_pub_addr pubaddrList := pubaddrList();
7902 t_ins_cust customerList := customerList();
7903 t_ins_cust_id custidList := custidList();
7904 t_ins_cust_site custsiteList := custsiteList();
7905 t_ins_cust_site_id custsiteidList := custsiteidList();
7906 t_ins_cust_addr custaddrList := custaddrList();
7907 t_ins_supp supplierList := supplierList();
7908 t_ins_supp_id suppidList := suppidList();
7909 t_ins_supp_site suppsiteList := suppsiteList();
7910 t_ins_supp_site_id suppsiteidList := suppsiteidList();
7911 t_ins_supp_addr suppaddrList := suppaddrList();
7912 t_ins_shipfrom shipfromList := shipfromList();
7913 t_ins_shipfrom_id shipfromidList := shipfromidList();
7914 t_ins_shipfrom_site shipfromsiteList := shipfromsiteList();
7915 t_ins_shipfrom_site_id shipfromsidList := shipfromsidList();
7916 t_ins_shipfrom_addr shipfromaddrList := shipfromaddrList();
7917 t_ins_shipto shiptoList := shiptoList();
7918 t_ins_shipto_id shiptoidList := shiptoidList();
7919 t_ins_shipto_site shiptositeList := shiptositeList();
7920 t_ins_shipto_site_id shiptosidList := shiptosidList();
7921 t_ins_shipto_party_addr shiptopaddrList := shiptopaddrList();
7922 t_ins_shipto_addr shiptoaddrList := shiptoaddrList();
7923 t_ins_end_order_pub endordpubList := endordpubList();
7924 t_ins_end_ord_pub_id endordpubidList := endordpubidList();
7925 t_ins_end_ord_pub_site endordpubsiteList := endordpubsiteList();
7926 t_ins_end_ord_pub_site_id endordpubsidList := endordpubsidList();
7927 t_ins_order_type ordertypeList := ordertypeList();
7928 t_ins_ot_desc otdescList := otdescList();
7929 t_ins_end_order_type endordertypeList := endordertypeList();
7930 t_ins_end_ot_desc endotdescList := endotdescList();
7931 t_ins_bkt_type_desc bktypedescList := bktypedescList();
7932 t_ins_bkt_type bktypeList := bktypeList();
7933 t_ins_item_id itemidList := itemidList();
7934 t_ins_base_item_id itemidList := itemidList();
7935 t_ins_pri_uom uomList := uomList();
7936 t_ins_pri_qty qtyList := qtyList();
7937 t_ins_ref_uom uomList := uomList();
7938 t_ins_ord_num ordernumList := ordernumList();
7939 t_ins_rel_num relnumList := relnumList();
7940 t_ins_line_num linenumList := linenumList();
7941 t_ins_end_ord endordList := endordList();
7942 t_ins_end_line endlineList := endlineList();
7943 t_ins_end_rel endrelList := endrelList();
7944 t_ins_key_date keydateList := keydateList();
7945 t_ins_new_sched_date newschedList := newschedList();
7946 t_ins_ship_date shipdateList := shipdateList();
7947 t_ins_receipt_date receiptdateList := receiptdateList();
7948 t_ins_new_ord_plac_date newordplaceList := newordplaceList();
7949 t_ins_orig_prom_date origpromList := origpromList();
7950 t_ins_req_date reqdateList := reqdateList();
7951 /* Added for work order support */
7952 t_ins_wip_st_date wipstdatelist := wipstdatelist();
7953 t_ins_wip_end_date wipenddatelist := wipenddatelist();
7954 t_ins_uom uomList := uomList();
7955 t_ins_quantity qtyList := qtyList();
7956 t_ins_tp_quantity qtyList := qtyList();
7957 t_ins_comments commentList := commentList();
7958 t_ins_carrier_code carrierList := carrierList();
7959 t_ins_bill_of_lading billofladList := billofladList();
7960 t_ins_tracking_number trackingList := trackingList();
7961 t_ins_vehicle_number vehicleList := vehicleList();
7962 t_ins_container_type containerList := containerList();
7963 t_ins_container_qty contqtyList := contqtyList();
7964 t_ins_serial_number serialnumList := serialnumList();
7965 t_ins_attach_url attachurlList := attachurlList();
7966 t_ins_item_desc itemdescList := itemdescList();
7967 t_ins_cust_item_desc itemdescList := itemdescList();
7968 t_ins_supp_item_desc itemdescList := itemdescList();
7969 t_ins_owner_item_desc itemdescList := itemdescList();
7970 t_ins_item_name itemList := itemList();
7971 t_ins_cust_item_name itemList := itemList();
7972 t_ins_supp_item_name itemList := itemList();
7973 t_ins_owner_item_name itemList := itemList();
7974 t_ins_base_item_name itemList := itemList();
7975 t_ins_version versionList := versionList();
7976 t_ins_designator designatorList := designatorList();
7977 t_ins_context contextList := contextList();
7978 t_ins_attribute1 attributeList := attributeList();
7979 t_ins_attribute2 attributeList := attributeList();
7980 t_ins_attribute3 attributeList := attributeList();
7981 t_ins_attribute4 attributeList := attributeList();
7982 t_ins_attribute5 attributeList := attributeList();
7983 t_ins_attribute6 attributeList := attributeList();
7984 t_ins_attribute7 attributeList := attributeList();
7985 t_ins_attribute8 attributeList := attributeList();
7986 t_ins_attribute9 attributeList := attributeList();
7987 t_ins_attribute10 attributeList := attributeList();
7988 t_ins_attribute11 attributeList := attributeList();
7989 t_ins_attribute12 attributeList := attributeList();
7990 t_ins_attribute13 attributeList := attributeList();
7991 t_ins_attribute14 attributeList := attributeList();
7992 t_ins_attribute15 attributeList := attributeList();
7993 t_ins_posting_party_name postingpartyList := postingpartyList();
7994 t_ins_posting_party_id numList := numList();
7995 t_ins_vmi_flag numlist := numlist();
7996 t_ins_shipping_control shipCtrlList := shipCtrlList();
7997 t_ins_shipping_control_code numlist := numlist();
7998 t_ins_planner_code plannerCode := plannerCode();--Bug 4424426
7999
8000 BEGIN
8001 log_debug('In replace_supdem_entries');
8002 if t_line_id is not null and t_line_id.COUNT > 0 then
8003 log_debug('Records fetched :' || t_line_id.COUNT);
8004 BEGIN
8005 log_debug('At 1');
8006 FORALL j in t_line_id.FIRST..t_line_id.LAST
8007 UPDATE msc_sup_dem_entries
8008 SET number1 = primary_quantity
8009 WHERE ROWID IN
8010 (SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8011 WHERE plan_id = G_PLAN_ID AND
8012 sr_instance_id = G_SR_INSTANCE_ID AND
8013 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8014 publisher_id = t_pub_id(j) AND
8015 publisher_site_id = t_pub_site_id(j) AND
8016 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8017 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8018 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8019 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8020 publisher_order_type = t_order_type(j) AND
8021 inventory_item_id = t_item_id(j) AND
8022 publisher_order_type IN (G_SALES_FORECAST,
8023 G_ORDER_FORECAST,
8024 G_SUPPLY_COMMIT,
8025 G_HIST_SALES,
8026 G_SELL_THRO_FCST,
8027 G_SUPPLIER_CAP,
8028 G_SAFETY_STOCK,
8029 G_INTRANSIT,
8030 g_replenishment,
8031 G_PROJ_AVAI_BAL) AND
8032 NVL(key_date, sysdate) = NVL(t_key_date(j), sysdate) AND
8033 NVL(bucket_type, G_NULL_STRING) = NVL(t_bkt_type(j), G_NULL_STRING)
8034 UNION ALL
8035 SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8036 WHERE plan_id = G_PLAN_ID AND
8037 sr_instance_id = G_SR_INSTANCE_ID AND
8038 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8039 publisher_id = t_pub_id(j) AND
8040 publisher_site_id = t_pub_site_id(j) AND
8041 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8042 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8043 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8044 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8045 publisher_order_type = t_order_type(j) AND
8046 inventory_item_id = t_item_id(j) AND
8047 publisher_order_type IN (G_PURCHASE_ORDER,
8048 G_SALES_ORDER,
8049 G_ASN,
8050 G_SHIP_RECEIPT,
8051 G_REQUISITION,
8052 G_PO_ACKNOWLEDGEMENT,
8053 G_ALLOC_ONHAND,
8054 g_unallocated_onhand,
8055 G_CONS_ADVICE) AND
8056 NVL(order_number, G_NULL_STRING) = NVL(t_ord_num(j), G_NULL_STRING) AND
8057 NVL(line_number, G_NULL_STRING) = NVL(t_line_num(j), G_NULL_STRING) AND
8058 NVL(release_number, G_NULL_STRING) = NVL(t_rel_num(j), G_NULL_STRING) AND
8059 NVL(end_order_number, G_NULL_STRING) = NVL(t_end_ord(j), G_NULL_STRING) AND
8060 NVL(end_order_rel_number, G_NULL_STRING) = NVL(t_end_rel(j), G_NULL_STRING) AND
8061 NVL(end_order_line_number, G_NULL_STRING) = NVL(t_end_line(j), G_NULL_STRING)
8062 UNION ALL
8063 SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8064 WHERE plan_id = G_PLAN_ID AND
8065 sr_instance_id = G_SR_INSTANCE_ID AND
8066 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8067 publisher_id = t_pub_id(j) AND
8068 publisher_site_id = t_pub_site_id(j) AND
8069 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8070 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8071 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8072 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8073 publisher_order_type = t_order_type(j) AND
8074 inventory_item_id = t_item_id(j) AND
8075 publisher_order_type = G_WORK_ORDER AND
8076 NVL(order_number, G_NULL_STRING) = NVL(t_ord_num(j), G_NULL_STRING)
8077 );
8078
8079 log_debug('At 2');
8080 FORALL j in t_line_id.FIRST..t_line_id.LAST
8081 UPDATE msc_sup_dem_entries
8082 SET last_refresh_number = msc_cl_refresh_s.nextval,
8083 ref_header_id = p_header_id,
8084 ref_line_id = t_line_id(j),
8085 quantity = round(nvl(t_quantity(j),0),6),
8086 tp_quantity = get_quantity(t_quantity(j), nvl(t_uom(j),'Ea'), tp_uom_code, inventory_item_id),
8087 primary_quantity = get_quantity(t_quantity(j), nvl(t_uom(j),'Ea'), primary_uom, inventory_item_id),
8088 comments = t_comments(j),
8089 key_date = t_key_date(j),
8090 -- added the following line for bug 3596556
8091 need_by_date = DECODE(t_order_type(j), G_PURCHASE_ORDER, t_key_date(j), NULL),
8092 new_schedule_date = t_new_sched_date(j),
8093 ship_date = t_ship_date(j),
8094 receipt_date = t_receipt_date(j),
8095 new_order_placement_date = t_new_ord_plac_date(j),
8096 original_promised_date = t_orig_prom_date(j),
8097 request_date = t_req_date(j),
8098 posting_party_id = t_posting_party_id(j),
8099 carrier_code = t_carrier_code(j),
8100 vehicle_number = t_vehicle_number(j),
8101 container_type = t_container_type(j),
8102 container_qty = t_container_qty(j),
8103 tracking_number = t_tracking_number(j),
8104 end_order_publisher_id = t_end_ord_pub_id(j),
8105 ship_to_address = t_shipto_addr(j),
8106 ship_from_party_id = t_shipfrom_id(j),
8107 ship_to_party_id = t_shipto_id(j),
8108 ship_to_party_site_id = t_shipto_site_id(j),
8109 ship_to_party_name = t_shipto(j),
8110 ship_to_party_site_name = t_shipto_site(j),
8111 ship_from_party_site_id = t_shipfrom_site_id(j),
8112 ship_from_party_name = t_shipfrom(j),
8113 ship_from_party_site_name = t_shipfrom_site(j),
8114 end_order_publisher_site_id = t_end_ord_pub_site_id(j),
8115 end_order_publisher_site_name = t_end_ord_pub_site(j),
8116 end_order_publisher_name = t_end_order_pub(j),
8117 order_number = t_ord_num(j),
8118 release_number = t_rel_num(j),
8119 line_number = t_line_num(j),
8120 end_order_number = t_end_ord(j),
8121 end_order_rel_number = t_end_rel(j),
8122 end_order_line_number = t_end_line(j),
8123 ship_from_address = t_shipfrom_addr(j),
8124 publisher_address = t_pub_addr(j),
8125 customer_address = t_cust_addr(j),
8126 supplier_address = t_supp_addr(j),
8127 bill_of_lading_number = t_bill_of_lading(j),
8128 serial_number = t_serial_number(j),
8129 attachment_url = t_attach_url(j),
8130 version = t_version(j),
8131 designator = t_designator(j),
8132 context = t_context(j),
8133 attribute1 = t_attribute1(j),
8134 attribute2 = t_attribute2(j),
8135 attribute3 = t_attribute3(j),
8136 attribute4 = t_attribute4(j),
8137 attribute5 = t_attribute5(j),
8138 attribute6 = t_attribute6(j),
8139 attribute7 = t_attribute7(j),
8140 attribute8 = t_attribute8(j),
8141 attribute9 = t_attribute9(j),
8142 attribute10 = t_attribute10(j),
8143 attribute11 = t_attribute11(j),
8144 attribute12 = t_attribute12(j),
8145 attribute13 = t_attribute13(j),
8146 attribute14 = t_attribute14(j),
8147 attribute15 = t_attribute15(j),
8148 posting_party_name = t_posting_party_name(j),
8149 uom_code = nvl(t_uom(j),'Ea'),
8150 last_update_date = sysdate,
8151 last_updated_by = p_user_id
8152 WHERE ROWID IN
8153 (SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8154 WHERE plan_id = G_PLAN_ID AND
8155 sr_instance_id = G_SR_INSTANCE_ID AND
8156 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8157 publisher_id = t_pub_id(j) AND
8158 publisher_site_id = t_pub_site_id(j) AND
8159 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8160 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8161 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8162 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8163 publisher_order_type = t_order_type(j) AND
8164 inventory_item_id = t_item_id(j) AND
8165 publisher_order_type IN (G_SALES_FORECAST,
8166 G_ORDER_FORECAST,
8167 G_SUPPLY_COMMIT,
8168 G_HIST_SALES,
8169 G_SELL_THRO_FCST,
8170 G_SUPPLIER_CAP,
8171 G_SAFETY_STOCK,
8172 G_INTRANSIT,
8173 g_replenishment,
8174 G_PROJ_AVAI_BAL) AND
8175 NVL(key_date, sysdate) = NVL(t_key_date(j), sysdate) AND
8176 NVL(bucket_type, G_NULL_STRING) = NVL(t_bkt_type(j), G_NULL_STRING)
8177 UNION ALL
8178 SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8179 WHERE plan_id = G_PLAN_ID AND
8180 sr_instance_id = G_SR_INSTANCE_ID AND
8181 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8182 publisher_id = t_pub_id(j) AND
8183 publisher_site_id = t_pub_site_id(j) AND
8184 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8185 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8186 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8187 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8188 publisher_order_type = t_order_type(j) AND
8189 inventory_item_id = t_item_id(j) AND
8190 publisher_order_type IN (G_PURCHASE_ORDER,
8191 G_SALES_ORDER,
8192 G_ASN,
8193 G_SHIP_RECEIPT,
8194 G_REQUISITION,
8195 G_PO_ACKNOWLEDGEMENT,
8196 decode(G_CVMI_PROFILE , 'Y' , G_CONS_ADVICE , -1 )) AND
8197 --Consigned CVMI Enh
8198 NVL(order_number, G_NULL_STRING) = NVL(t_ord_num(j), G_NULL_STRING) AND
8199 NVL(line_number, G_NULL_STRING) = NVL(t_line_num(j), G_NULL_STRING) AND
8200 NVL(release_number, G_NULL_STRING) = NVL(t_rel_num(j), G_NULL_STRING) AND
8201 NVL(end_order_number, G_NULL_STRING) = NVL(t_end_ord(j), G_NULL_STRING) AND
8202 NVL(end_order_rel_number, G_NULL_STRING) = NVL(t_end_rel(j), G_NULL_STRING) AND
8203 NVL(end_order_line_number, G_NULL_STRING) = NVL(t_end_line(j), G_NULL_STRING)
8204 UNION ALL
8205 SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8206 WHERE plan_id = G_PLAN_ID AND
8207 sr_instance_id = G_SR_INSTANCE_ID AND
8208 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8209 publisher_id = t_pub_id(j) AND
8210 publisher_site_id = t_pub_site_id(j) AND
8211 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8212 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8213 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8214 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8215 publisher_order_type = t_order_type(j) AND
8216 inventory_item_id = t_item_id(j) AND
8217 publisher_order_type = G_WORK_ORDER AND
8218 NVL(order_number, G_NULL_STRING) = NVL(t_ord_num(j), G_NULL_STRING)
8219 UNION ALL
8220 SELECT ROWID FROM MSC_SUP_DEM_ENTRIES
8221 WHERE plan_id = G_PLAN_ID AND
8222 sr_instance_id = G_SR_INSTANCE_ID AND
8223 (nvl(quantity,0) <> 0 OR (Nvl(quantity,0) = 0 AND t_order_type(j) IN (G_ORDER_FORECAST, G_SUPPLY_COMMIT))) AND
8224 publisher_id = t_pub_id(j) AND
8225 publisher_site_id = t_pub_site_id(j) AND
8226 NVL(customer_id, G_NULL_STRING) = NVL(t_cust_id(j), G_NULL_STRING) AND
8227 NVL(customer_site_id, G_NULL_STRING) = NVL(t_cust_site_id(j), G_NULL_STRING) AND
8228 NVL(supplier_id, G_NULL_STRING) = NVL(t_supp_id(j), G_NULL_STRING) AND
8229 NVL(supplier_site_id, G_NULL_STRING) = NVL(t_supp_site_id(j), G_NULL_STRING) AND
8230 publisher_order_type = t_order_type(j) AND
8231 inventory_item_id = t_item_id(j) AND
8232 publisher_order_type IN (G_ALLOC_ONHAND,
8233 G_UNALLOCATED_ONHAND)
8234 );
8235 END;
8236 /* sbala ADD CA */
8237
8238 --log_debug('At 3');
8239 FOR j in t_line_id.FIRST..t_line_id.LAST LOOP
8240 IF SQL%BULK_ROWCOUNT(j) = 0 THEN
8241 log_debug('j := ' || j);
8242 t_insert_id.EXTEND;
8243 t_ins_line_id.EXTEND;
8244 t_ins_pub.EXTEND;
8245 t_ins_pub_id.EXTEND;
8246 t_ins_pub_site.EXTEND;
8247 t_ins_pub_site_id.EXTEND;
8248 t_ins_pub_addr.EXTEND;
8249 t_ins_cust.EXTEND;
8250 t_ins_cust_id.EXTEND;
8251 t_ins_cust_site.EXTEND;
8252 t_ins_cust_site_id.EXTEND;
8253 t_ins_cust_addr.EXTEND;
8254 t_ins_supp.EXTEND;
8255 t_ins_supp_id.EXTEND;
8256 t_ins_supp_site.EXTEND;
8257 t_ins_supp_site_id.EXTEND;
8258 t_ins_supp_addr.EXTEND;
8259 t_ins_shipfrom.EXTEND;
8260 t_ins_shipfrom_id.EXTEND;
8261 t_ins_shipfrom_site.EXTEND;
8262 t_ins_shipfrom_site_id.EXTEND;
8263 t_ins_shipfrom_addr.EXTEND;
8264 t_ins_shipto.EXTEND;
8265 t_ins_shipto_id.EXTEND;
8266 t_ins_shipto_site.EXTEND;
8267 t_ins_shipto_site_id.EXTEND;
8268 t_ins_shipto_party_addr.EXTEND;
8269 t_ins_shipto_addr.EXTEND;
8270 t_ins_end_order_pub.EXTEND;
8271 t_ins_end_ord_pub_id.EXTEND;
8272 t_ins_end_ord_pub_site.EXTEND;
8273 t_ins_end_ord_pub_site_id.EXTEND;
8274 t_ins_order_type.EXTEND;
8275 t_ins_ot_desc.EXTEND;
8276 t_ins_end_order_type.EXTEND;
8277 t_ins_end_ot_desc.EXTEND;
8278 t_ins_bkt_type_desc.EXTEND;
8279 t_ins_bkt_type.EXTEND;
8280 t_ins_item_id.EXTEND;
8281 t_ins_base_item_id.EXTEND;
8282 t_ins_pri_uom.EXTEND;
8283 t_ins_pri_qty.EXTEND;
8284 t_ins_ref_uom.EXTEND;
8285 t_ins_ord_num.EXTEND;
8286 t_ins_rel_num.EXTEND;
8287 t_ins_line_num.EXTEND;
8288 t_ins_end_ord.EXTEND;
8289 t_ins_end_line.EXTEND;
8290 t_ins_end_rel.EXTEND;
8291 t_ins_key_date.EXTEND;
8292 t_ins_new_sched_date.EXTEND;
8293 t_ins_ship_date.EXTEND;
8294 t_ins_receipt_date.EXTEND;
8295 t_ins_new_ord_plac_date.EXTEND;
8296 t_ins_orig_prom_date.EXTEND;
8297 t_ins_req_date.EXTEND;
8298 t_ins_wip_st_date.extend;
8299 t_ins_wip_end_date.extend;
8300 t_ins_uom.EXTEND;
8301 t_ins_quantity.EXTEND;
8302 t_ins_tp_quantity.EXTEND;
8303 t_ins_comments.EXTEND;
8304 t_ins_carrier_code.EXTEND;
8305 t_ins_bill_of_lading.EXTEND;
8306 t_ins_tracking_number.EXTEND;
8307 t_ins_vehicle_number.EXTEND;
8308 t_ins_container_type.EXTEND;
8309 t_ins_container_qty.EXTEND;
8310 t_ins_serial_number.EXTEND;
8311 t_ins_attach_url.EXTEND;
8312 t_ins_item_desc.EXTEND;
8313 t_ins_cust_item_desc.EXTEND;
8314 t_ins_supp_item_desc.EXTEND;
8315 t_ins_owner_item_desc.EXTEND;
8316 t_ins_item_name.EXTEND;
8317 t_ins_cust_item_name.EXTEND;
8318 t_ins_supp_item_name.EXTEND;
8319 t_ins_owner_item_name.EXTEND;
8320 t_ins_base_item_name.EXTEND;
8321 t_ins_version.EXTEND;
8322 t_ins_designator.EXTEND;
8323 t_ins_context.EXTEND;
8324 t_ins_attribute1.EXTEND;
8325 t_ins_attribute2.EXTEND;
8326 t_ins_attribute3.EXTEND;
8327 t_ins_attribute4.EXTEND;
8328 t_ins_attribute5.EXTEND;
8329 t_ins_attribute6.EXTEND;
8330 t_ins_attribute7.EXTEND;
8331 t_ins_attribute8.EXTEND;
8332 t_ins_attribute9.EXTEND;
8333 t_ins_attribute10.EXTEND;
8334 t_ins_attribute11.EXTEND;
8335 t_ins_attribute12.EXTEND;
8336 t_ins_attribute13.EXTEND;
8337 t_ins_attribute14.EXTEND;
8338 t_ins_attribute15.EXTEND;
8339 t_ins_posting_party_name.EXTEND;
8340 t_ins_posting_party_id.EXTEND;
8341 t_ins_vmi_flag.extend;
8342 t_ins_shipping_control.extend;
8343 t_ins_shipping_control_code.extend;
8344 t_ins_planner_code.extend; --Bug 4424426
8345
8346 t_insert_id(t_insert_id.COUNT) := j;
8347 t_ins_line_id(t_insert_id.COUNT) := t_line_id(j);
8348 t_ins_pub(t_insert_id.COUNT) := t_pub(j);
8349 t_ins_pub_id(t_insert_id.COUNT) := t_pub_id(j);
8350 t_ins_pub_site(t_insert_id.COUNT) := t_pub_site(j);
8351 t_ins_pub_site_id(t_insert_id.COUNT) := t_pub_site_id(j);
8352 t_ins_pub_addr(t_insert_id.COUNT) := t_pub_addr(j);
8353 t_ins_cust(t_insert_id.COUNT) := t_cust(j);
8354 t_ins_cust_id(t_insert_id.COUNT) := t_cust_id(j);
8355 t_ins_cust_site(t_insert_id.COUNT) := t_cust_site(j);
8356 t_ins_cust_site_id(t_insert_id.COUNT) := t_cust_site_id(j);
8357 t_ins_cust_addr(t_insert_id.COUNT) := t_cust_addr(j);
8358 t_ins_supp(t_insert_id.COUNT) := t_supp(j);
8359 t_ins_supp_id(t_insert_id.COUNT) := t_supp_id(j);
8360 t_ins_supp_site(t_insert_id.COUNT) := t_supp_site(j);
8361 t_ins_supp_site_id(t_insert_id.COUNT) := t_supp_site_id(j);
8362 t_ins_supp_addr(t_insert_id.COUNT) := t_supp_addr(j);
8363 t_ins_shipfrom(t_insert_id.COUNT) := t_shipfrom(j);
8364 t_ins_shipfrom_id(t_insert_id.COUNT) := t_shipfrom_id(j);
8365 t_ins_shipfrom_site(t_insert_id.COUNT) := t_shipfrom_site(j);
8366 t_ins_shipfrom_site_id(t_insert_id.COUNT) := t_shipfrom_site_id(j);
8367 t_ins_shipfrom_addr(t_insert_id.COUNT) := t_shipfrom_addr(j);
8368 t_ins_shipto(t_insert_id.COUNT) := t_shipto(j);
8369 t_ins_shipto_id(t_insert_id.COUNT) := t_shipto_id(j);
8370 t_ins_shipto_site(t_insert_id.COUNT) := t_shipto_site(j);
8371 t_ins_shipto_site_id(t_insert_id.COUNT) := t_shipto_site_id(j);
8372 t_ins_shipto_party_addr(t_insert_id.COUNT) := t_shipto_party_addr(j);
8373 t_ins_shipto_addr(t_insert_id.COUNT) := t_shipto_addr(j);
8374 t_ins_end_order_pub(t_insert_id.COUNT) := t_end_order_pub(j);
8375 t_ins_end_ord_pub_id(t_insert_id.COUNT) := t_end_ord_pub_id(j);
8376 t_ins_end_ord_pub_site(t_insert_id.COUNT) := t_end_ord_pub_site(j);
8377 t_ins_end_ord_pub_site_id(t_insert_id.COUNT) := t_end_ord_pub_site_id(j);
8378 t_ins_order_type(t_insert_id.COUNT) := t_order_type(j);
8379 t_ins_ot_desc(t_insert_id.COUNT) := t_ot_desc(j);
8380 t_ins_end_order_type(t_insert_id.COUNT) := t_end_order_type(j);
8381 t_ins_end_ot_desc(t_insert_id.COUNT) := t_end_ot_desc(j);
8382 t_ins_bkt_type_desc(t_insert_id.COUNT) := t_bkt_type_desc(j);
8383 t_ins_bkt_type(t_insert_id.COUNT) := t_bkt_type(j);
8384 log_debug('Bkt Type = ' || t_ins_bkt_type(t_insert_id.COUNT));
8385 t_ins_item_id(t_insert_id.COUNT) := t_item_id(j);
8386 t_ins_ord_num(t_insert_id.COUNT) := t_ord_num(j);
8387 t_ins_rel_num(t_insert_id.COUNT) := t_rel_num(j);
8388 t_ins_line_num(t_insert_id.COUNT) := t_line_num(j);
8389 t_ins_end_ord(t_insert_id.COUNT) := t_end_ord(j);
8390 t_ins_end_line(t_insert_id.COUNT) := t_end_line(j);
8391 t_ins_end_rel(t_insert_id.COUNT) := t_end_rel(j);
8392 t_ins_key_date(t_insert_id.COUNT) := t_key_date(j);
8393 t_ins_new_sched_date(t_insert_id.COUNT) := t_new_sched_date(j);
8394 t_ins_ship_date(t_insert_id.COUNT) := t_ship_date(j);
8395 t_ins_receipt_date(t_insert_id.COUNT) := t_receipt_date(j);
8396 t_ins_new_ord_plac_date(t_insert_id.COUNT) := t_new_ord_plac_date(j);
8397 t_ins_orig_prom_date(t_insert_id.COUNT) := t_orig_prom_date(j);
8398 t_ins_req_date(t_insert_id.COUNT) := t_req_date(j);
8399 /* Added for work order support */
8400 t_ins_wip_st_date(t_insert_id.COUNT) := t_wip_st_date(j);
8401 t_ins_wip_end_date(t_insert_id.COUNT) := t_wip_end_date(j);
8402 t_ins_uom(t_insert_id.COUNT) := nvl(t_uom(j),'Ea');
8403 t_ins_quantity(t_insert_id.COUNT) := t_quantity(j);
8404 t_ins_comments(t_insert_id.COUNT) := t_comments(j);
8405 t_ins_carrier_code(t_insert_id.COUNT) := t_carrier_code(j);
8406 t_ins_bill_of_lading(t_insert_id.COUNT) := t_bill_of_lading(j);
8407 t_ins_tracking_number(t_insert_id.COUNT) := t_tracking_number(j);
8408 t_ins_vehicle_number(t_insert_id.COUNT) := t_vehicle_number(j);
8409 t_ins_container_type(t_insert_id.COUNT) := t_container_type(j);
8410 t_ins_container_qty(t_insert_id.COUNT) := t_container_qty(j);
8411 t_ins_serial_number(t_insert_id.COUNT) := t_serial_number(j);
8412 t_ins_attach_url(t_insert_id.COUNT) := t_attach_url(j);
8413 t_ins_version(t_insert_id.COUNT) := t_version(j);
8414 t_ins_designator(t_insert_id.COUNT) := t_designator(j);
8415 t_ins_context(t_insert_id.COUNT) := t_context(j);
8416 t_ins_attribute1(t_insert_id.COUNT) := t_attribute1(j);
8417 t_ins_attribute2(t_insert_id.COUNT) := t_attribute2(j);
8418 t_ins_attribute3(t_insert_id.COUNT) := t_attribute3(j);
8419 t_ins_attribute4(t_insert_id.COUNT) := t_attribute4(j);
8420 t_ins_attribute5(t_insert_id.COUNT) := t_attribute5(j);
8421 t_ins_attribute6(t_insert_id.COUNT) := t_attribute6(j);
8422 t_ins_attribute7(t_insert_id.COUNT) := t_attribute7(j);
8423 t_ins_attribute8(t_insert_id.COUNT) := t_attribute8(j);
8424 t_ins_attribute9(t_insert_id.COUNT) := t_attribute9(j);
8425 t_ins_attribute10(t_insert_id.COUNT) := t_attribute10(j);
8426 t_ins_attribute11(t_insert_id.COUNT) := t_attribute11(j);
8427 t_ins_attribute12(t_insert_id.COUNT) := t_attribute12(j);
8428 t_ins_attribute13(t_insert_id.COUNT) := t_attribute13(j);
8429 t_ins_attribute14(t_insert_id.COUNT) := t_attribute14(j);
8430 t_ins_attribute15(t_insert_id.COUNT) := t_attribute15(j);
8431 t_ins_posting_party_name(t_insert_id.COUNT) := t_posting_party_name(j);
8432 t_ins_posting_party_id(t_insert_id.COUNT) := t_posting_party_id(j);
8433
8434 --===========================================================
8435 -- Determine if item is VMI enabled for requisitions,
8436 -- purchase orders, allocated onhand, shipment receipts,
8437 -- and ASN's
8438 --===========================================================
8439 log_debug('At 4');
8440 l_vmi_flag := 0;
8441 l_vmi_auto_replenish_flag := 'N';
8442 IF (t_ins_order_type(t_insert_id.COUNT) in (g_purchase_order,
8443 g_requisition,
8444 g_alloc_onhand,
8445 g_ship_receipt,
8446 G_ASN)) THEN
8447 OPEN c_vmi_item(t_supp(j),
8448 t_supp_site(j),
8449 t_cust_site(j),
8450 t_item_id(j));
8451 FETCH c_vmi_item
8452 INTO l_vmi_flag,
8453 l_vmi_auto_replenish_flag;
8454
8455 CLOSE c_vmi_item;
8456
8457 IF (l_vmi_flag = 1)THEN
8458 t_ins_vmi_flag(t_insert_id.COUNT) := 1;
8459 ELSE
8460 t_ins_vmi_flag(t_insert_id.COUNT) := NULL;
8461 END IF;
8462 ELSE
8463 t_ins_vmi_flag(t_insert_id.COUNT) := NULL;
8464 END IF;
8465
8466 log_debug('At 5');
8467 --==========================================================================
8468 -- Obtain master item information
8469 --==========================================================================
8470 select item_name,
8471 description
8472 into l_item_name,
8473 l_desc
8474 from msc_items
8475 where inventory_item_id = t_item_id(j);
8476
8477 t_ins_item_desc(t_insert_id.COUNT) := l_desc;
8478 t_ins_item_name(t_insert_id.COUNT) := l_item_name;
8479
8480 --==========================================================================
8481 -- Obtain owner item information
8482 --==========================================================================
8483 BEGIN
8484 select msi.item_name,
8485 msi.description,
8486 msi.uom_code,
8487 msi.base_item_id,
8488 itm.item_name,
8489 msi.planner_code--Bug 4424426
8490 into l_item_name,
8491 l_desc,
8492 l_uom,
8493 l_base_item_id,
8494 l_base_item_name,
8495 l_planner_code--Bug 4424426
8496 from msc_system_items msi,
8497 msc_items itm,
8498 msc_trading_partners part,
8499 msc_trading_partner_maps map
8500 where msi.inventory_item_id = t_item_id(j) and
8501 msi.organization_id = part.sr_tp_id and
8502 msi.sr_instance_id = part.sr_instance_id and
8503 msi.plan_id = -1 and
8504 itm.inventory_item_id (+)= msi.base_item_id and
8505 part.partner_id = map.tp_key and
8506 map.map_type = 2 and
8507 map.company_key = t_pub_site_id(j) and
8508 nvl(part.company_id,1) = t_pub_id(j);
8509 EXCEPTION
8510 WHEN NO_DATA_FOUND THEN
8511 open publisher_is_supplier_c(
8512 t_item_id(j),
8513 t_cust_site_id(j),
8514 t_pub_id(j),
8515 t_pub_site_id(j)
8516 );
8517 fetch publisher_is_supplier_c
8518 into l_item_name,
8519 l_desc,
8520 l_uom,
8521 l_base_item_id,
8522 l_base_item_name,
8523 l_planner_code;--Bug 4424426
8524
8525 if publisher_is_supplier_c%NOTFOUND then
8526 close publisher_is_supplier_c;
8527 BEGIN
8528 select distinct mic.customer_item_name,
8529 mic.description,
8530 mic.uom_code,
8531 to_number(null),
8532 to_char(null),
8533 mic.planner_code--Bug 4424426
8534 into l_item_name,
8535 l_desc,
8536 l_uom,
8537 l_base_item_id,
8538 l_base_item_name,
8539 l_planner_code--Bug 4424426
8540 from msc_item_customers mic,
8541 msc_trading_partner_maps map,
8542 msc_trading_partner_maps map1,
8543 msc_company_relationships r
8544 where mic.inventory_item_id = t_item_id(j) and
8545 mic.plan_id = -1 and
8546 mic.customer_id = map.tp_key and
8547 --NVL(mic.customer_site_id, map1.tp_key) = map1.tp_key and
8548 mic.customer_site_id = map1.tp_key and
8549 map.map_type = 1 and
8550 map.company_key = r.relationship_id and
8551 r.relationship_type = 1 and
8552 r.subject_id = 1 and
8553 r.object_id = t_pub_id(j) and
8554 map1.map_type = 3 and
8555 map1.company_key = t_pub_site_id(j);
8556 EXCEPTION
8557 WHEN NO_DATA_FOUND THEN
8558 l_item_name := null;
8559 l_base_item_id := null;
8560 l_base_item_name := null;
8561 l_planner_code := null;--Bug 4424426
8562 l_desc := null;
8563 --l_uom := nvl(t_uom(j),'Ea');
8564 begin
8565 select msi.uom_code,
8566 msi.base_item_id,
8567 itm.item_name
8568 into l_uom,
8569 l_base_item_id,
8570 l_base_item_name
8571 from msc_system_items msi,
8572 msc_items itm,
8573 msc_trading_partners part,
8574 msc_trading_partner_maps map
8575 where itm.inventory_item_id (+)=
8576 msi.base_item_id and
8577 msi.inventory_item_id = t_item_id(j) and
8578 msi.organization_id = part.sr_tp_id and
8579 msi.sr_instance_id = part.sr_instance_id and
8580 msi.plan_id = -1 and
8581 part.partner_id = map.tp_key and
8582 map.map_type = 2 and
8583 map.company_key = Decode(t_supp_id(j),
8584 t_pub_id(j), t_cust_site_id(j),
8585 t_supp_site_id(j)) and
8586 nvl(part.company_id,1) = Decode(t_supp_id(j),
8587 t_pub_id(j), t_cust_id(j),
8588 t_supp_id(j));
8589 exception
8590 when others then
8591 l_uom := 'Ea';
8592 end;
8593 END;
8594 else
8595 close publisher_is_supplier_c;
8596 end if;
8597 END;
8598 t_ins_owner_item_name(t_insert_id.COUNT) := l_item_name;
8599 t_ins_owner_item_desc(t_insert_id.COUNT) := l_desc;
8600 t_ins_pri_uom(t_insert_id.COUNT) := l_uom; --NVL(l_uom, nvl(t_uom(j),'Ea'));
8601
8602 t_ins_base_item_name(t_insert_id.COUNT) := l_base_item_name;
8603 t_ins_base_item_id(t_insert_id.COUNT) := l_base_item_id;
8604
8605 t_ins_planner_code(t_insert_id.COUNT) := l_planner_code; --Bug 4424426
8606
8607 log_debug('Planner Code = ' || l_planner_code);--Bug 4424426
8608
8609
8610 if t_ins_order_type(t_insert_id.COUNT) NOT IN (G_UNALLOCATED_ONHAND, g_safety_stock, g_proj_avai_bal) then
8611 --==================================================================================
8612 --Obtain customer item information
8613 --==================================================================================
8614 BEGIN
8615 select msi.item_name,
8616 msi.description,
8617 msi.uom_code
8618 into l_item_name,
8619 l_desc,
8620 l_uom
8621 from msc_system_items msi,
8622 msc_trading_partners part,
8623 msc_trading_partner_maps map
8624 where msi.plan_id = -1 and
8625 msi.inventory_item_id = t_item_id(j) and
8626 msi.organization_id = part.sr_tp_id and
8627 msi.sr_instance_id = part.sr_instance_id and
8628 part.partner_id = map.tp_key and
8629 map.map_type = 2 and
8630 map.company_key = nvl(t_cust_site_id(j), t_pub_site_id(j)) and
8631 nvl(part.company_id,1) = nvl(t_cust_id(j), t_pub_id(j));
8632 EXCEPTION
8633 WHEN NO_DATA_FOUND THEN
8634 BEGIN
8635 select distinct mic.customer_item_name,
8636 mic.description,
8637 mic.uom_code
8638 into l_item_name,
8639 l_desc,
8640 l_uom
8641 from msc_item_customers mic,
8642 msc_trading_partner_maps map,
8643 msc_trading_partner_maps map1,
8644 msc_company_relationships r
8645 where mic.inventory_item_id = t_item_id(j) and
8646 mic.plan_id = -1 and
8647 mic.customer_id = map.tp_key and
8648 --NVL(mic.customer_site_id, map1.tp_key) = map1.tp_key and
8649 mic.customer_site_id = map1.tp_key and
8650 map.map_type = 1 and
8651 map.company_key = r.relationship_id and
8652 r.relationship_type = 1 and
8653 r.subject_id = 1 and
8654 r.object_id = nvl(t_cust_id(j), t_pub_id(j)) and
8655 map1.map_type = 3 and
8656 map1.company_key = nvl(t_cust_site_id(j), t_pub_site_id(j));
8657 EXCEPTION
8658 WHEN NO_DATA_FOUND THEN
8659 l_item_name := null;
8660 l_desc := null;
8661 l_uom := null;
8662 END;
8663 END;
8664 t_ins_cust_item_name(t_insert_id.COUNT) := l_item_name;
8665 t_ins_cust_item_desc(t_insert_id.COUNT) := l_desc;
8666
8667 if t_cust_id(j) <> t_pub_id(j) then
8668 --t_ins_ref_uom(t_insert_id.COUNT) := NVL(l_uom, t_uom(j));
8669 t_ins_ref_uom(t_insert_id.COUNT) := NVL(l_uom, t_ins_pri_uom(t_insert_id.COUNT));
8670 end if;
8671
8672 --=============================================================================
8673 -- Obtain supplier item information
8674 --=============================================================================
8675 BEGIN
8676 select msi.item_name,
8677 msi.description,
8678 msi.uom_code
8679 into l_item_name,
8680 l_desc,
8681 l_uom
8682 from msc_system_items msi,
8683 msc_trading_partners part,
8684 msc_trading_partner_maps map
8685 where msi.plan_id = -1 and
8686 msi.inventory_item_id = t_item_id(j) and
8687 msi.organization_id = part.sr_tp_id and
8688 msi.sr_instance_id = part.sr_instance_id and
8689 part.partner_id = map.tp_key and
8690 map.map_type = 2 and
8691 map.company_key = nvl(t_supp_site_id(j), t_pub_site_id(j)) and
8692 nvl(part.company_id,1) = nvl(t_supp_id(j), t_pub_id(j)) ;
8693 EXCEPTION
8694 WHEN NO_DATA_FOUND THEN
8695 OPEN supplier_item_c (
8696 t_item_id(j),
8697 t_cust_site_id(j),
8698 t_pub_id(j),
8699 t_pub_site_id(j),
8700 t_supp_id(j),
8701 t_supp_site_id(j)
8702 );
8703 FETCH supplier_item_c
8704 INTO l_item_name,
8705 l_desc,
8706 l_uom;
8707
8708 IF supplier_item_c%NOTFOUND then
8709 l_item_name := null;
8710 l_desc := null;
8711 l_uom := null;
8712 END IF;
8713
8714 CLOSE supplier_item_c;
8715 END;
8716 t_ins_supp_item_name(t_insert_id.COUNT) := l_item_name;
8717 t_ins_supp_item_desc(t_insert_id.COUNT) := l_desc;
8718
8719 if t_supp_id(j) <> t_pub_id(j) then
8720 --t_ins_ref_uom(t_insert_id.COUNT) := NVL(l_uom, t_uom(j));
8721 t_ins_ref_uom(t_insert_id.COUNT) := NVL(l_uom, t_ins_pri_uom(t_insert_id.COUNT));
8722 end if;
8723
8724 END IF; --if t_ins_order_type <> Unalloc
8725
8726 --================================================================
8727 --Obtain the tp uom, primary quantity and tp quantity
8728 --================================================================
8729
8730 msc_x_util.get_uom_conversion_rates(t_uom(j),
8731 t_ins_pri_uom(t_insert_id.COUNT),
8732 t_item_id(j),
8733 l_conversion_found,
8734 l_conversion_rate);
8735 IF l_conversion_found THEN
8736 t_ins_pri_qty(t_insert_id.COUNT) := round(t_quantity(j)*l_conversion_rate, 6);
8737 ELSE
8738 t_ins_pri_qty(t_insert_id.COUNT) := round(t_quantity(j), 6);
8739 END IF;
8740
8741 IF t_ins_order_type(t_insert_id.COUNT) NOT IN (g_unallocated_onhand, g_safety_stock, g_proj_avai_bal) THEN
8742 msc_x_util.get_uom_conversion_rates(t_uom(j),
8743 t_ins_ref_uom(t_insert_id.COUNT),
8744 t_item_id(j),
8745 l_conversion_found,
8746 l_conversion_rate);
8747 IF l_conversion_found THEN
8748 t_ins_tp_quantity(t_insert_id.COUNT) := round(t_quantity(j)*l_conversion_rate, 6);
8749 ELSE
8750 t_ins_tp_quantity(t_insert_id.COUNT) := round(t_quantity(j), 6);
8751 END IF;
8752
8753 END IF; --t_ins_order_type <> Unalloc
8754
8755 -- jguo: added code starts here
8756
8757 IF t_ins_order_type(t_insert_id.COUNT) IN ( G_PURCHASE_ORDER
8758 , G_ORDER_FORECAST
8759 , G_REQUISITION
8760 , G_SUPPLY_COMMIT
8761 , G_NEGOTIATED_CAPACITY
8762 , G_PO_ACKNOWLEDGEMENT
8763 , G_SALES_ORDER
8764 , G_SHIP_RECEIPT
8765 , G_ASN
8766 ) THEN
8767 IF ((t_ins_supp_id (t_insert_id.COUNT) = 1) OR -- if OEM is supplier or supplier=publisher
8768 (t_ins_supp_id (t_insert_id.COUNT) = t_ins_pub_id (t_insert_id.COUNT))) THEN --- Bug #6274985
8769 OPEN c_shipping_control_meaning (
8770 MSC_X_UTIL.GET_SHIPPING_CONTROL_ID
8771 ( NVL(t_ins_cust_id(t_insert_id.COUNT), t_ins_pub_id(t_insert_id.COUNT))
8772 , NVL(t_ins_cust_site_id(t_insert_id.COUNT), t_ins_pub_site_id(t_insert_id.COUNT))
8773 , NVL(t_ins_supp_id(t_insert_id.COUNT), t_ins_pub_id(t_insert_id.COUNT))
8774 , NVL(t_ins_supp_site_id(t_insert_id.COUNT), t_ins_pub_site_id(t_insert_id.COUNT))
8775 )
8776 );
8777 FETCH c_shipping_control_meaning INTO t_ins_shipping_control(t_insert_id.COUNT),
8778 t_ins_shipping_control_code(t_insert_id.COUNT);
8779 CLOSE c_shipping_control_meaning;
8780 END IF;
8781 END IF;
8782
8783 -- jguo: added code ends here
8784
8785 END IF;
8786 END LOOP;
8787 end if;
8788
8789 log_debug('Before Insert');
8790 if t_insert_id IS NOT NULL and t_insert_id.COUNT > 0 THEN
8791 log_debug('At 6' || ' t_insert_id.COUNT := ' || t_insert_id.COUNT);
8792 FORALL i in t_insert_id.FIRST..t_insert_id.LAST
8793
8794 INSERT INTO msc_sup_dem_entries (
8795 ref_header_id,
8796 ref_line_id,
8797 transaction_id,
8798 plan_id,
8799 sr_instance_id,
8800 publisher_name,
8801 publisher_id,
8802 publisher_site_name,
8803 publisher_site_id,
8804 publisher_address,
8805 customer_name,
8806 customer_id,
8807 customer_site_name,
8808 customer_site_id,
8809 customer_address,
8810 supplier_name,
8811 supplier_id,
8812 supplier_site_name,
8813 supplier_site_id,
8814 supplier_address,
8815 ship_from_party_name,
8816 ship_from_party_id,
8817 ship_from_party_site_name,
8818 ship_from_party_site_id,
8819 ship_from_address,
8820 ship_to_party_name,
8821 ship_to_party_id,
8822 ship_to_party_site_name,
8823 ship_to_party_site_id,
8824 ship_to_address,
8825 end_order_publisher_name,
8826 end_order_publisher_id,
8827 end_order_publisher_site_name,
8828 end_order_publisher_site_id,
8829 publisher_order_type,
8830 publisher_order_type_desc,
8831 end_order_type,
8832 end_order_type_desc,
8833 tp_order_type_desc,
8834 bucket_type_desc,
8835 bucket_type,
8836 inventory_item_id,
8837 primary_uom,
8838 primary_quantity,
8839 tp_uom_code,
8840 order_number,
8841 release_number,
8842 line_number,
8843 end_order_number,
8844 end_order_line_number,
8845 end_order_rel_number,
8846 key_date,
8847 need_by_date, -- bug 3596556
8848 new_schedule_date,
8849 ship_date,
8850 receipt_date,
8851 new_order_placement_date,
8852 original_promised_date,
8853 request_date,
8854 /* Added for work order support */
8855 wip_start_date,
8856 wip_end_date,
8857 uom_code,
8858 quantity,
8859 tp_quantity,
8860 comments,
8861 carrier_code,
8862 bill_of_lading_number,
8863 tracking_number,
8864 vehicle_number,
8865 container_type,
8866 container_qty,
8867 serial_number,
8868 attachment_url,
8869 last_refresh_number,
8870 posting_party_name,
8871 posting_party_id,
8872 created_by,
8873 creation_date,
8874 last_updated_by,
8875 last_update_date,
8876 item_name,
8877 owner_item_name,
8878 customer_item_name,
8879 supplier_item_name,
8880 item_description,
8881 customer_item_description,
8882 supplier_item_description,
8883 owner_item_description,
8884 version,
8885 designator,
8886 context,
8887 vmi_flag,
8888 attribute1,
8889 attribute2,
8890 attribute3,
8891 attribute4,
8892 attribute5,
8893 attribute6,
8894 attribute7,
8895 attribute8,
8896 attribute9,
8897 attribute10,
8898 attribute11,
8899 attribute12,
8900 attribute13,
8901 attribute14,
8902 attribute15,
8903 base_item_id,
8904 base_item_name
8905 , shipping_control
8906 , shipping_control_code
8907 ,planner_code--Bug 4424426
8908 ) VALUES (
8909 p_header_id,
8910 t_ins_line_id(i),
8911 msc_sup_dem_entries_s.nextval,
8912 G_PLAN_ID,
8913 G_SR_INSTANCE_ID,
8914 t_ins_pub(i),
8915 t_ins_pub_id(i),
8916 t_ins_pub_site(i),
8917 t_ins_pub_site_id(i),
8918 t_ins_pub_addr(i),
8919 t_ins_cust(i),
8920 t_ins_cust_id(i),
8921 t_ins_cust_site(i),
8922 t_ins_cust_site_id(i),
8923 t_ins_cust_addr(i),
8924 t_ins_supp(i),
8925 t_ins_supp_id(i),
8926 t_ins_supp_site(i),
8927 t_ins_supp_site_id(i),
8928 t_ins_supp_addr(i),
8929 t_ins_shipfrom(i),
8930 t_ins_shipfrom_id(i),
8931 t_ins_shipfrom_site(i),
8932 t_ins_shipfrom_site_id(i),
8933 t_ins_shipfrom_addr(i),
8934 t_ins_shipto(i),
8935 t_ins_shipto_id(i),
8936 t_ins_shipto_site(i),
8937 t_ins_shipto_site_id(i),
8938 t_ins_shipto_addr(i),
8939 t_ins_end_order_pub(i),
8940 t_ins_end_ord_pub_id(i),
8941 t_ins_end_ord_pub_site(i),
8942 t_ins_end_ord_pub_site_id(i),
8943 t_ins_order_type(i),
8944 t_ins_ot_desc(i),
8945 t_ins_end_order_type(i),
8946 t_ins_end_ot_desc(i),
8947 t_ins_end_ot_desc(i),
8948 t_ins_bkt_type_desc(i),
8949 t_ins_bkt_type(i),
8950 t_ins_item_id(i),
8951 t_ins_pri_uom(i),
8952 t_ins_pri_qty(i),
8953 t_ins_ref_uom(i),
8954 t_ins_ord_num(i),
8955 t_ins_rel_num(i),
8956 t_ins_line_num(i),
8957 t_ins_end_ord(i),
8958 t_ins_end_line(i),
8959 t_ins_end_rel(i),
8960 t_ins_key_date(i),
8961 DECODE(t_ins_order_type(i), G_PURCHASE_ORDER, t_ins_key_date(i), NULL), -- need_by_date bug 3596556
8962 t_ins_new_sched_date(i),
8963 t_ins_ship_date(i),
8964 t_ins_receipt_date(i),
8965 t_ins_new_ord_plac_date(i),
8966 t_ins_orig_prom_date(i),
8967 t_ins_req_date(i),
8968 /* Added for Work order support */
8969 Nvl(t_ins_wip_st_date(i), t_ins_wip_end_date(i)),
8970 t_ins_wip_end_date(i),
8971 t_ins_uom(i),
8972 nvl(t_ins_quantity(i),0),
8973 t_ins_tp_quantity(i),
8974 t_ins_comments(i),
8975 t_ins_carrier_code(i),
8976 t_ins_bill_of_lading(i),
8977 t_ins_tracking_number(i),
8978 t_ins_vehicle_number(i),
8979 t_ins_container_type(i),
8980 t_ins_container_qty(i),
8981 t_ins_serial_number(i),
8982 t_ins_attach_url(i),
8983 msc_cl_refresh_s.nextval,
8984 t_posting_party_name(i),
8985 t_posting_party_id(i),
8986 p_user_id,
8987 sysdate,
8988 p_user_id,
8989 sysdate,
8990 t_ins_item_name(i),
8991 t_ins_owner_item_name(i),
8992 t_ins_cust_item_name(i),
8993 t_ins_supp_item_name(i),
8994 nvl(t_ins_item_desc(i), t_ins_owner_item_desc(i)),
8995 t_ins_cust_item_desc(i),
8996 t_ins_supp_item_desc(i),
8997 t_ins_owner_item_desc(i),
8998 t_ins_version(i),
8999 t_ins_designator(i),
9000 t_ins_context(i),
9001 t_ins_vmi_flag(i),
9002 t_ins_attribute1(i),
9003 t_ins_attribute2(i),
9004 t_ins_attribute3(i),
9005 t_ins_attribute4(i),
9006 t_ins_attribute5(i),
9007 t_ins_attribute6(i),
9008 t_ins_attribute7(i),
9009 t_ins_attribute8(i),
9010 t_ins_attribute9(i),
9011 t_ins_attribute10(i),
9012 t_ins_attribute11(i),
9013 t_ins_attribute12(i),
9014 t_ins_attribute13(i),
9015 t_ins_attribute14(i),
9016 t_ins_attribute15(i),
9017 t_ins_base_item_id(i),
9018 t_ins_base_item_name(i)
9019 , t_ins_shipping_control(i)
9020 , t_ins_shipping_control_code(i)
9021 , t_ins_planner_code(i)--Bug 4424426
9022 );
9023 end if;
9024
9025 --commit;
9026
9027 END replace_supdem_entries;
9028
9029
9030 PROCEDURE change_date_format (
9031 p_string IN OUT NOCOPY VARCHAR2
9032 ) IS
9033 tmpDate DATE;
9034 BEGIN
9035 SELECT to_date(p_string, 'YYYYMMDD HH24MISS')
9036 INTO tmpDate
9037 FROM dual;
9038
9039 SELECT to_char(tmpDate, 'DD/MM/YYYY HH24:MI:SS')
9040 INTO p_string
9041 FROM dual;
9042
9043 EXCEPTION when others then
9044 LOG_MESSAGE('Error in msc_sce_loads_pkg.change_date_format');
9045 LOG_MESSAGE(SQLERRM);
9046
9047 END change_date_format;
9048
9049
9050 PROCEDURE LOG_MESSAGE(
9051 p_string IN VARCHAR2
9052 ) IS
9053 BEGIN
9054 IF fnd_global.conc_request_id > 0 THEN
9055 FND_FILE.PUT_LINE(FND_FILE.LOG, p_string);
9056 ELSE
9057 --DBMS_OUTPUT.PUT_LINE( p_string);
9058 null;
9059 END IF;
9060 END LOG_MESSAGE;
9061
9062
9063 PROCEDURE POST_PROCESS(
9064 p_header_id IN NUMBER
9065 ) IS
9066
9067 t_pri_qty qtyList;
9068 t_tp_qty qtyList;
9069 t_number1 qtyList;
9070 t_item_id itemidList;
9071 t_end_order_num endordList;
9072 t_end_ord_rel_num endrelList;
9073 t_end_ord_line_num endlineList;
9074 t_end_order_num1 endordList;
9075 t_end_ord_rel_num1 endrelList;
9076 t_end_ord_line_num1 endlineList;
9077 t_extract_date keydateList;
9078 t_pub_id publishidList;
9079 t_pub_site_id pubsiteidList;
9080 t_supp_id suppidList;
9081 t_supp_site_id suppsiteList;
9082 t_cust_id custidList;
9083 t_cust_site_id custsiteidList;
9084 t_last_update_date lastupdatedateList; --Fix for bug 5599903
9085 t_last_updated_by lastupdatedbyList;
9086 t_sync_id syncList; --- Fix for bug 6147298
9087 t_del_qty delqtyList; --- Fix for bug 6147298
9088
9089 --=====================================
9090 --All the ASN's pegged to PO's
9091 --=====================================
9092 cursor c_asn_pegged_to_po(
9093 p_header_id IN NUMBER
9094 ) IS
9095 select sd1.primary_quantity,
9096 sd1.tp_quantity,
9097 sd1.number1,
9098 sd1.inventory_item_id,
9099 sd1.publisher_id,
9100 sd1.publisher_site_id,
9101 sd1.customer_id,
9102 sd1.customer_site_id,
9103 sd1.end_order_number,
9104 sd1.end_order_rel_number,
9105 sd1.end_order_line_number,
9106 sd1.last_update_date, --Fix for bug 5599903
9107 sd1.last_updated_by,
9108 ln.sync_indicator, --Fix for bug 6147298
9109 ln.quantity
9110 from msc_sup_dem_entries sd1,
9111 msc_supdem_lines_interface ln
9112 where sd1.ref_header_id = p_header_id and
9113 sd1.plan_id = -1 and
9114 sd1.publisher_order_type = 15 and --ASN
9115 sd1.end_order_type = 13 and --PO
9116 ln.parent_header_id = p_header_id and
9117 sd1.item_name = ln.item_name and
9118 sd1.end_order_number = ln.pegging_order_identifier and
9119 nvl(sd1.end_order_rel_number, -99) = nvl(ln.ref_release_number, -99) and
9120 nvl(sd1.end_order_line_number, -99) = nvl(ln.ref_line_number, -99) and
9121 nvl(sd1.order_number, -99) = nvl(ln.order_identifier, -99) and
9122 nvl(sd1.release_number, -99) = nvl(ln.release_number, -99) and
9123 nvl(sd1.line_number, -99) = nvl(ln.line_number, -99); --- Fix for bug 6147298
9124
9125
9126 --=====================================
9127 --All the ASN's pegged to SO's
9128 --=====================================
9129 cursor c_asn_pegged_to_so(
9130 p_header_id IN NUMBER
9131 ) IS
9132 select sd1.primary_quantity,
9133 sd1.tp_quantity,
9134 sd1.number1,
9135 sd1.inventory_item_id,
9136 sd1.publisher_id,
9137 sd1.publisher_site_id,
9138 sd1.customer_id,
9139 sd1.customer_site_id,
9140 sd1.end_order_number,
9141 sd1.end_order_rel_number,
9142 sd1.end_order_line_number,
9143 sd2.end_order_number,
9144 sd2.end_order_rel_number,
9145 sd2.end_order_line_number
9146 from msc_sup_dem_entries sd1,
9147 msc_sup_dem_entries sd2
9148 where sd1.ref_header_id = p_header_id and
9149 sd1.plan_id = -1 and
9150 sd1.publisher_order_type = 15 and --ASN
9151 sd1.end_order_type = 14 and --SO pegged to the ASN
9152 sd2.plan_id = sd1.plan_id and
9153 sd2.publisher_order_type = 14 and
9154 sd2.end_order_type = 13 and --PO pegged to the SO
9155 sd2.inventory_item_id = sd1.inventory_item_id and
9156 sd2.publisher_id = sd1.publisher_id and
9157 sd2.publisher_site_id = sd1.publisher_site_id and
9158 sd2.customer_id = sd1.customer_id and
9159 sd2.customer_site_id = sd1.customer_site_id and
9160 sd2.order_number = sd1.end_order_number and
9161 nvl(sd2.release_number, -99) = nvl(sd1.end_order_rel_number, -99) and
9162 nvl(sd2.line_number, -99) = nvl(sd1.end_order_line_number,-99);
9163
9164 --=====================================
9165 --All the Receipt's pegged to ASN's
9166 --=====================================
9167 CURSOR c_receipts_pegged_to_asn(
9168 p_header_id IN Number
9169 ) IS
9170 select sd1.inventory_item_id,
9171 sd1.publisher_id,
9172 sd1.publisher_site_id,
9173 sd1.supplier_id,
9174 sd1.supplier_site_id,
9175 sd1.end_order_number,
9176 sd1.end_order_rel_number,
9177 sd1.end_order_line_number
9178 from msc_sup_dem_entries sd1
9179 where sd1.ref_header_id = p_header_id and
9180 sd1.plan_id = -1 and
9181 sd1.publisher_order_type = 16 and --Shipment Receipt
9182 sd1.end_order_type = 15; --ASN
9183
9184 --=====================================
9185 --All the Receipt's pegged to PO's
9186 --=====================================
9187 CURSOR c_receipts_pegged_to_po(
9188 p_header_id IN Number
9189 ) IS
9190 select sd1.inventory_item_id,
9191 sd1.publisher_id,
9192 sd1.publisher_site_id,
9193 sd1.supplier_id,
9194 sd1.supplier_site_id,
9195 sd1.end_order_number,
9196 sd1.end_order_rel_number,
9197 sd1.end_order_line_number
9198 from msc_sup_dem_entries sd1
9199 where sd1.ref_header_id = p_header_id and
9200 sd1.plan_id = -1 and
9201 sd1.publisher_order_type = 16 and --Shipment Receipt
9202 sd1.end_order_type = 13; --PO
9203
9204 CURSOR c_receipts_pegged_to_po1(
9205 p_header_id IN Number
9206 ) IS
9207 select sd1.inventory_item_id,
9208 sd1.publisher_id,
9209 sd1.publisher_site_id,
9210 sd1.supplier_id,
9211 sd1.supplier_site_id,
9212 sd2.order_number,
9213 sd2.release_number,
9214 sd2.line_number
9215 from msc_sup_dem_entries sd1,
9216 msc_sup_dem_entries sd2
9217 where sd1.ref_header_id = p_header_id and
9218 sd1.plan_id = -1 and
9219 sd1.publisher_order_type = 16 and
9220 sd1.end_order_type = 13 and
9221 sd2.plan_id = sd1.plan_id and
9222 sd2.inventory_item_id = sd1.inventory_item_id and
9223 sd2.publisher_id = sd1.supplier_id and
9224 sd2.publisher_site_id = sd1.supplier_site_id and
9225 sd2.customer_id = sd1.publisher_id and
9226 sd2.customer_site_id = sd1.publisher_site_id and
9227 sd2.publisher_order_type = 14 and
9228 sd2.end_order_type = 13 and
9229 sd2.end_order_number = sd1.end_order_number and
9230 nvl(sd2.end_order_rel_number, -99) = nvl(sd1.end_order_rel_number, -99) and
9231 nvl(sd2.end_order_line_number, -99) = nvl(sd1.end_order_line_number, -99);
9232
9233 --=====================================
9234 --All the Onhand records
9235 --=====================================
9236 CURSOR c_onhand_records(
9237 p_header_id IN Number
9238 ) IS
9239 select sd1.inventory_item_id,
9240 sd1.publisher_id,
9241 sd1.publisher_site_id,
9242 sd1.new_schedule_date
9243 from msc_sup_dem_entries sd1
9244 where sd1.ref_header_id = p_header_id and
9245 sd1.plan_id = -1 and
9246 sd1.publisher_order_type in (9,10); --Allocated + Unallocated onhand
9247
9248 BEGIN
9249 --==================================
9250 --ASN's pegged to PO's
9251 --==================================
9252 --dbms_output.put_line('Opening c_asn_pegged_to_po');
9253 open c_asn_pegged_to_po(p_header_id);
9254 fetch c_asn_pegged_to_po
9255 bulk collect into t_pri_qty,
9256 t_tp_qty,
9257 t_number1,
9258 t_item_id,
9259 t_pub_id,
9260 t_pub_site_id,
9261 t_cust_id,
9262 t_cust_site_id,
9263 t_end_order_num,
9264 t_end_ord_rel_num,
9265 t_end_ord_line_num,
9266 t_last_update_date,
9267 t_last_updated_by, --Fix for bug 5599903
9268 t_sync_id,
9269 t_del_qty; --Fix for bug 6147298
9270
9271 close c_asn_pegged_to_po;
9272
9273 --dbms_output.put_line('Records fetched := ' || t_pri_qty.COUNT);
9274
9275 --==================================
9276 --Consume PO quantity
9277 --==================================
9278 if (t_pri_qty is not null) and (t_pri_qty.COUNT > 0 ) THEN
9279
9280 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9281 update msc_sup_dem_entries sd
9282 set sd.number1 = DECODE(t_sync_id(j),'R',sd.primary_quantity,'D',sd.number1) --Fix for bug 6147298
9283 where sd.publisher_order_type = 13 and --PO
9284 sd.plan_id = -1 and
9285 sd.inventory_item_id = t_item_id(j) and
9286 sd.publisher_id = t_cust_id(j) and
9287 sd.publisher_site_id = t_cust_site_id(j) and
9288 sd.supplier_id = t_pub_id(j) and
9289 sd.supplier_site_id = t_pub_site_id(j) and
9290 sd.order_number = t_end_order_num(j) and
9291 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9292 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9293 sd.quantity > 0;
9294
9295 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9296 update msc_sup_dem_entries sd
9297 set sd.primary_quantity = DECODE(t_sync_id(j),'R',round(sd.primary_quantity - decode(t_number1(j),NULL,t_tp_qty(j),Decode(t_pri_qty(j),0, -t_number1(j), t_tp_qty(j) - (t_number1(j)/Decode(t_pri_qty(j),0,1,t_pri_qty(j)))*t_tp_qty(j))), 6),
9298 'D',round(sd.primary_quantity + t_del_qty(j),6)),
9299 sd.tp_quantity = DECODE(t_sync_id(j),'R',round(sd.tp_quantity - decode(t_number1(j),NULL,t_pri_qty(j),t_pri_qty(j)-t_number1(j)), 6),'D',round(sd.tp_quantity + t_del_qty(j),6)) --Fix for bug 6147298
9300 where sd.publisher_order_type = 13 and --PO
9301 sd.plan_id = -1 and
9302 sd.inventory_item_id = t_item_id(j) and
9303 sd.publisher_id = t_cust_id(j) and
9304 sd.publisher_site_id = t_cust_site_id(j) and
9305 sd.supplier_id = t_pub_id(j) and
9306 sd.supplier_site_id = t_pub_site_id(j) and
9307 sd.order_number = t_end_order_num(j) and
9308 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9309 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9310 sd.quantity > 0;
9311
9312 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9313 update msc_sup_dem_entries sd
9314 set sd.quantity = get_quantity(sd.primary_quantity, sd.primary_uom, sd.uom_code, sd.inventory_item_id),
9315 sd.last_updated_by = t_last_updated_by(j),
9316 sd.last_update_date = t_last_update_date(j) --Fix for bug 5599903
9317 where sd.publisher_order_type = 13 and --PO
9318 sd.plan_id = -1 and
9319 sd.inventory_item_id = t_item_id(j) and
9320 sd.publisher_id = t_cust_id(j) and
9321 sd.publisher_site_id = t_cust_site_id(j) and
9322 sd.supplier_id = t_pub_id(j) and
9323 sd.supplier_site_id = t_pub_site_id(j) and
9324 sd.order_number = t_end_order_num(j) and
9325 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9326 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9327 sd.quantity > 0;
9328
9329
9330
9331 --==================================
9332 --Consume SO quantity
9333 --==================================
9334 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9335 update msc_sup_dem_entries sd
9336 set sd.number1 = sd.primary_quantity
9337 where sd.publisher_order_type = 14 and --SO
9338 sd.plan_id = -1 and
9339 sd.inventory_item_id = t_item_id(j) and
9340 sd.publisher_id = t_pub_id(j) and
9341 sd.publisher_site_id = t_pub_site_id(j) and
9342 sd.customer_id = t_cust_id(j) and
9343 sd.customer_site_id = t_cust_site_id(j) and
9344 sd.end_order_number = t_end_order_num(j) and
9345 nvl(sd.end_order_rel_number, -99) = nvl(t_end_ord_rel_num(j),-99) and
9346 nvl(sd.end_order_line_number, -99) = nvl(t_end_ord_line_num(j), -99) and
9347 sd.quantity > 0;
9348
9349
9350 FORALL j in t_pri_qty.FIRST..t_pri_qty.last
9351 update msc_sup_dem_entries sd
9352 set sd.primary_quantity = round(sd.primary_quantity - decode(t_number1(j),NULL,t_pri_qty(j),t_pri_qty(j)-t_number1(j)), 6),
9353 sd.tp_quantity = round(sd.tp_quantity - decode(t_number1(j), NULL, t_tp_qty(j), Decode(t_pri_qty(j),0,-t_number1(j),t_tp_qty(j) - (t_number1(j)/Decode(t_pri_qty(j),0,1,t_pri_qty(j)))*t_tp_qty(j))), 6)
9354 where sd.publisher_order_type = 14 and --SO
9355 sd.plan_id = -1 and
9356 sd.inventory_item_id = t_item_id(j) and
9357 sd.publisher_id = t_pub_id(j) and
9358 sd.publisher_site_id = t_pub_site_id(j) and
9359 sd.customer_id = t_cust_id(j) and
9360 sd.customer_site_id = t_cust_site_id(j) and
9361 sd.end_order_number = t_end_order_num(j) and
9362 nvl(sd.end_order_rel_number, -99) = nvl(t_end_ord_rel_num(j),-99) and
9363 nvl(sd.end_order_line_number, -99) = nvl(t_end_ord_line_num(j), -99) and
9364 sd.quantity > 0;
9365
9366 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9367 update msc_sup_dem_entries sd
9368 set sd.quantity = get_quantity(sd.primary_quantity, sd.primary_uom, sd.uom_code, sd.inventory_item_id)
9369 where sd.publisher_order_type = 14 and --SO
9370 sd.plan_id = -1 and
9371 sd.inventory_item_id = t_item_id(j) and
9372 sd.publisher_id = t_pub_id(j) and
9373 sd.publisher_site_id = t_pub_site_id(j) and
9374 sd.customer_id = t_cust_id(j) and
9375 sd.customer_site_id = t_cust_site_id(j) and
9376 sd.end_order_number = t_end_order_num(j) and
9377 nvl(sd.end_order_rel_number, -99) = nvl(t_end_ord_rel_num(j),-99) and
9378 nvl(sd.end_order_line_number, -99) = nvl(t_end_ord_line_num(j), -99) and
9379 sd.quantity > 0;
9380
9381
9382 end if;
9383
9384 --==================================
9385 --Open ASN's pegged to SO's
9386 --==================================
9387 --dbms_output.put_line('Opening c_asn_pegged_to_so');
9388 open c_asn_pegged_to_so(p_header_id);
9389 fetch c_asn_pegged_to_so
9390 bulk collect into t_pri_qty,
9391 t_tp_qty,
9392 t_number1,
9393 t_item_id,
9394 t_pub_id,
9395 t_pub_site_id,
9396 t_cust_id,
9397 t_cust_site_id,
9398 t_end_order_num,
9399 t_end_ord_rel_num,
9400 t_end_ord_line_num,
9401 t_end_order_num1,
9402 t_end_ord_rel_num1,
9403 t_end_ord_line_num1;
9404 close c_asn_pegged_to_so;
9405
9406 --dbms_output.put_line('Records fetched := ' || t_pri_qty.COUNT);
9407
9408 --==================================
9409 --Consume SO quantity
9410 --==================================
9411 if (t_pri_qty is not NULL) and (t_pri_qty.COUNT > 0) then
9412 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9413 update msc_sup_dem_entries sd
9414 set sd.number1 = sd.primary_quantity
9415 where sd.inventory_item_id = t_item_id(j) and
9416 sd.plan_id = -1 and
9417 sd.publisher_order_type = 14 and --SO
9418 sd.publisher_id = t_pub_id(j) and
9419 sd.publisher_site_id = t_pub_site_id(j) and
9420 sd.customer_id = t_cust_id(j) and
9421 sd.customer_site_id = t_cust_site_id(j) and
9422 sd.order_number = t_end_order_num(j) and
9423 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9424 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9425 sd.quantity > 0;
9426
9427 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9428 update msc_sup_dem_entries sd
9429 set sd.primary_quantity = round(sd.primary_quantity - decode(t_number1(j),NULL,t_pri_qty(j),t_pri_qty(j)-t_number1(j)), 6),
9430 sd.tp_quantity = round(sd.tp_quantity - decode(t_number1(j), NULL, t_tp_qty(j), Decode(t_pri_qty(j),0, -t_number1(j), t_tp_qty(j) - (t_number1(j)/Decode(t_pri_qty(j),0,1,t_pri_qty(j)))*t_tp_qty(j))), 6)
9431 where sd.inventory_item_id = t_item_id(j) and
9432 sd.plan_id = -1 and
9433 sd.publisher_order_type = 14 and --SO
9434 sd.publisher_id = t_pub_id(j) and
9435 sd.publisher_site_id = t_pub_site_id(j) and
9436 sd.customer_id = t_cust_id(j) and
9437 sd.customer_site_id = t_cust_site_id(j) and
9438 sd.order_number = t_end_order_num(j) and
9439 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9440 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9441 sd.quantity > 0;
9442
9443 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9444 update msc_sup_dem_entries sd
9445 set sd.quantity = get_quantity(sd.primary_quantity, sd.primary_uom, sd.uom_code, sd.inventory_item_id)
9446 where sd.inventory_item_id = t_item_id(j) and
9447 sd.plan_id = -1 and
9448 sd.publisher_order_type = 14 and --SO
9449 sd.publisher_id = t_pub_id(j) and
9450 sd.publisher_site_id = t_pub_site_id(j) and
9451 sd.customer_id = t_cust_id(j) and
9452 sd.customer_site_id = t_cust_site_id(j) and
9453 sd.order_number = t_end_order_num(j) and
9454 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9455 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9456 sd.quantity > 0;
9457
9458
9459
9460 --==================================
9461 --Consume PO quantity
9462 --==================================
9463 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9464 update msc_sup_dem_entries sd
9465 set sd.number1 = sd.primary_quantity
9466 where sd.inventory_item_id = t_item_id(j) and
9467 sd.plan_id = -1 and
9468 sd.publisher_order_type = 13 and --PO
9469 sd.publisher_id = t_cust_id(j) and
9470 sd.publisher_site_id = t_cust_site_id(j) and
9471 sd.supplier_id = t_pub_id(j) and
9472 sd.supplier_site_id = t_pub_site_id(j) and
9473 sd.order_number = t_end_order_num1(j) and
9474 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num1(j),-99) and
9475 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num1(j), -99) and
9476 sd.quantity > 0;
9477
9478 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9479 update msc_sup_dem_entries sd
9480 set sd.primary_quantity = round(sd.primary_quantity - decode(t_number1(j),NULL,t_tp_qty(j), Decode(t_pri_qty(j),0,-t_number1(j), t_tp_qty(j)-(t_number1(j)/Decode(t_pri_qty(j),0,1,t_pri_qty(j)))*t_tp_qty(j))), 6),
9481 sd.tp_quantity = round(sd.tp_quantity - decode(t_number1(j), NULL, t_pri_qty(j), t_pri_qty(j)-t_number1(j)), 6)
9482 where sd.inventory_item_id = t_item_id(j) and
9483 sd.plan_id = -1 and
9484 sd.publisher_order_type = 13 and --PO
9485 sd.publisher_id = t_cust_id(j) and
9486 sd.publisher_site_id = t_cust_site_id(j) and
9487 sd.supplier_id = t_pub_id(j) and
9488 sd.supplier_site_id = t_pub_site_id(j) and
9489 sd.order_number = t_end_order_num1(j) and
9490 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num1(j),-99) and
9491 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num1(j), -99) and
9492 sd.quantity > 0;
9493
9494 FORALL j in t_pri_qty.FIRST..t_pri_qty.LAST
9495 update msc_sup_dem_entries sd
9496 set sd.quantity = get_quantity(sd.primary_quantity, sd.primary_uom, sd.uom_code, sd.inventory_item_id),
9497 sd.last_updated_by = t_last_updated_by(j),
9498 sd.last_update_date = t_last_update_date(j) --Fix for bug 5599903
9499 where sd.inventory_item_id = t_item_id(j) and
9500 sd.plan_id = -1 and
9501 sd.publisher_order_type = 13 and --PO
9502 sd.publisher_id = t_cust_id(j) and
9503 sd.publisher_site_id = t_cust_site_id(j) and
9504 sd.supplier_id = t_pub_id(j) and
9505 sd.supplier_site_id = t_pub_site_id(j) and
9506 sd.order_number = t_end_order_num1(j) and
9507 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num1(j),-99) and
9508 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num1(j), -99) and
9509 sd.quantity > 0;
9510
9511 end if;
9512
9513 --==================================
9514 --Open Receipt's pegged to ASN's
9515 --==================================
9516 OPEN c_receipts_pegged_to_asn(p_header_id);
9517 FETCH c_receipts_pegged_to_asn
9518 BULK COLLECT INTO t_item_id,
9519 t_pub_id,
9520 t_pub_site_id,
9521 t_supp_id,
9522 t_supp_site_id,
9523 t_end_order_num,
9524 t_end_ord_rel_num,
9525 t_end_ord_line_num;
9526 CLOSE c_receipts_pegged_to_asn;
9527
9528 --==================================
9529 --Consume ASN quantity
9530 --==================================
9531 if (t_item_id is not null ) and (t_item_id.COUNT > 0) then
9532 FORALL j in t_item_id.FIRST..t_item_id.LAST
9533 update msc_sup_dem_entries sd
9534 set sd.quantity = 0,
9535 sd.primary_quantity = 0,
9536 sd.tp_quantity = 0,
9537 sd.last_update_login = -99
9538 where sd.inventory_item_id = t_item_id(j) and
9539 sd.plan_id = -1 and
9540 sd.publisher_order_type = 15 and --ASN
9541 sd.publisher_id = t_supp_id(j) and
9542 sd.publisher_site_id = t_supp_site_id(j) and
9543 sd.customer_id = t_pub_id(j) and
9544 sd.customer_site_id = t_pub_site_id(j) and
9545 sd.order_number = t_end_order_num(j) and
9546 nvl(sd.release_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9547 nvl(sd.line_number,-99) = nvl(t_end_ord_line_num(j), -99);
9548 end if;
9549
9550 --==================================
9551 --Open Receipt's pegged to PO's
9552 --==================================
9553 OPEN c_receipts_pegged_to_po(p_header_id);
9554 FETCH c_receipts_pegged_to_po
9555 BULK COLLECT INTO
9556 t_item_id,
9557 t_pub_id,
9558 t_pub_site_id,
9559 t_supp_id,
9560 t_supp_site_id,
9561 t_end_order_num,
9562 t_end_ord_rel_num,
9563 t_end_ord_line_num;
9564 CLOSE c_receipts_pegged_to_po;
9565
9566 --Update ASN's pegged to the PO
9567 if (t_item_id is not null ) and (t_item_id.COUNT > 0) then
9568 FORALL j in t_item_id.FIRST..t_item_id.LAST
9569 update msc_sup_dem_entries sd
9570 set sd.quantity = 0,
9571 sd.primary_quantity = 0,
9572 sd.tp_quantity = 0,
9573 sd.last_update_login = -99
9574 where sd.inventory_item_id = t_item_id(j) and
9575 sd.plan_id = -1 and
9576 sd.publisher_order_type = 15 and --ASN
9577 sd.end_order_type = 13 and --PO
9578 sd.publisher_id = t_supp_id(j) and
9579 sd.publisher_site_id = t_supp_site_id(j) and
9580 sd.customer_id = t_pub_id(j) and
9581 sd.customer_site_id = t_pub_site_id(j) and
9582 sd.end_order_number = t_end_order_num(j) and
9583 nvl(sd.end_order_rel_number,-99) = nvl(t_end_ord_rel_num(j),-99) and
9584 nvl(sd.end_order_line_number,-99) = nvl(t_end_ord_line_num(j), -99) and
9585 sd.quantity > 0;
9586 end if;
9587
9588 --Update ASN's pegged to the SO
9589 OPEN c_receipts_pegged_to_po1(p_header_id);
9590 FETCH c_receipts_pegged_to_po1
9591 BULK COLLECT INTO t_item_id,
9592 t_pub_id,
9593 t_pub_site_id,
9594 t_supp_id,
9595 t_supp_site_id,
9596 t_end_order_num,
9597 t_end_ord_rel_num,
9598 t_end_ord_line_num;
9599 CLOSE c_receipts_pegged_to_po1;
9600 if (t_item_id IS NOT NULL) and (t_item_id.COUNT > 0) then
9601 FORALL j in t_item_id.FIRST..t_item_id.LAST
9602 UPDATE msc_sup_dem_entries sd
9603 SET sd.quantity = 0,
9604 sd.primary_quantity = 0,
9605 sd.tp_quantity = 0,
9606 sd.last_update_login = -99
9607 WHERE sd.publisher_order_type = 15 and --ASN
9608 sd.plan_id = -1 and
9609 sd.inventory_item_id = t_item_id(j) and
9610 sd.end_order_type = 14 and --SO
9611 sd.publisher_id = t_supp_id(j) and
9612 sd.publisher_site_id = t_supp_site_id(j) and
9613 sd.customer_id = t_pub_id(j) and
9614 sd.customer_site_id = t_pub_site_id(j) and
9615 sd.end_order_number = t_end_order_num(j) and
9616 nvl(sd.end_order_rel_number, -99) = nvl(t_end_ord_rel_num(j), -99) and
9617 nvl(sd.end_order_line_number, -99) = nvl(t_end_ord_line_num(j), -99)and
9618 sd.quantity > 0;
9619 end if;
9620
9621
9622 --=====================================
9623 --Logic to delete receipts
9624 --=====================================
9625 OPEN c_onhand_records(p_header_id);
9626 FETCH c_onhand_records
9627 BULK COLLECT INTO t_item_id,
9628 t_pub_id,
9629 t_pub_site_id,
9630 t_extract_date;
9631 CLOSE c_onhand_records;
9632
9633 if (t_item_id is not NULL) and (t_item_id.COUNT > 0) then
9634 FORALL j in t_item_id.FIRST..t_item_id.LAST
9635 update msc_sup_dem_entries sd
9636 set sd.quantity = 0,
9637 sd.primary_quantity = 0,
9638 sd.tp_quantity = 0,
9639 sd.last_update_login = -99
9640 where sd.inventory_item_id = t_item_id(j) and
9641 sd.publisher_order_type = 16 and
9642 sd.plan_id = -1 and
9643 sd.publisher_id = t_pub_id(j) and
9644 sd.publisher_site_id = t_pub_site_id(j) and
9645 sd.quantity > 0 and
9646 sd.new_schedule_date <= t_extract_date(j); --Fix for bug 2308128
9647 end if;
9648
9649 COMMIT;
9650
9651 END POST_PROCESS;
9652
9653
9654 PROCEDURE update_qty_from_ui(
9655 p_item_id IN number,
9656 p_qty IN number,
9657 p_uom IN varchar2,
9658 p_pri_uom IN varchar2,
9659 p_tp_uom IN varchar2,
9660 p_pri_qty OUT NOCOPY number,
9661 p_tp_qty OUT NOCOPY number
9662 ) IS
9663 l_conv_found boolean := NULL;
9664 l_conv_rate1 number;
9665 l_conv_rate2 number;
9666 BEGIN
9667 IF p_pri_uom <> p_uom THEN
9668 msc_x_util.get_uom_conversion_rates(
9669 p_uom,
9670 p_pri_uom,
9671 p_item_id,
9672 l_conv_found,
9673 l_conv_rate1
9674 );
9675 IF NOT l_conv_found THEN
9676 l_conv_rate1 := 1;
9677 p_pri_qty := round(p_qty,6);
9678 ELSE
9679 p_pri_qty := round(l_conv_rate1*p_qty, 6);
9680 END IF;
9681 ELSE
9682 p_pri_qty := round(p_qty,6);
9683 END IF;
9684
9685 IF p_tp_uom <> p_uom THEN
9686 msc_x_util.get_uom_conversion_rates(
9687 p_uom,
9688 p_tp_uom,
9689 p_item_id,
9690 l_conv_found,
9691 l_conv_rate2
9692 );
9693 IF NOT l_conv_found THEN
9694 l_conv_rate2 := 1;
9695 p_tp_qty := round(p_qty, 6);
9696 ELSE
9697 p_tp_qty := round(l_conv_rate2*p_qty, 6);
9698 END IF;
9699 ELSE
9700 p_tp_qty := round(p_qty, 6);
9701 END IF;
9702
9703 END update_qty_from_ui;
9704
9705
9706 FUNCTION GET_QUANTITY(
9707 p_qty IN NUMBER,
9708 p_uom IN VARCHAR2,
9709 p_uom1 IN VARCHAR2,
9710 p_item_id IN NUMBER
9711 ) RETURN NUMBER IS
9712 p_qty1 number;
9713 l_conv_found boolean;
9714 l_conv_rate number;
9715 BEGIN
9716 IF p_uom <> p_uom1 THEN
9717 msc_x_util.get_uom_conversion_rates(
9718 p_uom,
9719 p_uom1,
9720 p_item_id,
9721 l_conv_found,
9722 l_conv_rate
9723 );
9724 IF NOT l_conv_found THEN
9725 l_conv_rate := 1;
9726 p_qty1 := p_qty;
9727 ELSE
9728 p_qty1 := l_conv_rate*p_qty;
9729 END IF;
9730 ELSE
9731 p_qty1 := p_qty;
9732 END IF;
9733 return round(p_qty1,6);
9734 END GET_QUANTITY;
9735
9736 PROCEDURE serial_validation(
9737 p_header_id IN NUMBER,
9738 p_language IN VARCHAR2
9739 ) IS
9740
9741 l_err_msg VARCHAR2(240);
9742 l_min NUMBER;
9743 l_max NUMBER;
9744 l_log_message VARCHAR2(4000);
9745 l_start_line NUMBER;
9746 l_end_line NUMBER;
9747 l_loops_reqd NUMBER;
9748 t_serial_txn_id serialTxnId;
9749 t_serial_number serialNumber;
9750 t_disable_date disableDate;
9751 t_plan_id planid;
9752 t_attachment_url attachmentUrl;
9753 t_sync_indicator syncIndicator;
9754 t_row_status rowStatus;
9755 t_err_msg errMsg;
9756 t_user_defined1 userDefined;
9757 t_user_defined2 userDefined;
9758 t_user_defined3 userDefined;
9759 t_user_defined4 userDefined;
9760 t_user_defined5 userDefined;
9761 t_user_defined6 userDefined;
9762 t_user_defined7 userDefined;
9763 t_user_defined8 userDefined;
9764 t_user_defined9 userDefined;
9765 t_user_defined10 userDefined;
9766 t_creation_date creationDate;
9767 t_created_by createdBy;
9768 t_last_update_date lastUpdateDate;
9769 t_last_updated_by lastUpdatedBy;
9770 t_last_update_login lastUpdateLogin;
9771 t_context context;
9772 t_attribute1 attribute;
9773 t_attribute2 attribute;
9774 t_attribute3 attribute;
9775 t_attribute4 attribute;
9776 t_attribute5 attribute;
9777 t_attribute6 attribute;
9778 t_attribute7 attribute;
9779 t_attribute8 attribute;
9780 t_attribute9 attribute;
9781 t_attribute10 attribute;
9782 t_attribute11 attribute;
9783 t_attribute12 attribute;
9784 t_attribute13 attribute;
9785 t_attribute14 attribute;
9786 t_attribute15 attribute;
9787 t_line_id serialLineId;
9788 t_line_id1 serialLineId;
9789
9790 t_log_line_id serialLineId;
9791 t_log_item_name itemList;
9792 t_log_order_type serialOrderType;
9793 t_log_err_msg serialErrMsg;
9794 t_log_serial_number serialNumber;
9795
9796
9797 lv_dummy1 varchar2(32) := '';
9798 lv_dummy2 varchar2(32) := '';
9799 v_applsys_schema varchar2(32) ;
9800 v_retval boolean ;
9801
9802 CURSOR c_err_msg(
9803 p_header_id IN Number,
9804 p_start_line IN Number,
9805 p_end_line IN Number
9806 ) IS
9807 select line_id, nvl(master_item_name,publisher_item_name), order_type,serial_number, err_msg
9808 from msc_st_serial_numbers
9809 where parent_header_id = p_header_id and
9810 row_status = G_FAILURE AND
9811 line_id BETWEEN p_start_line and p_end_line;
9812
9813
9814 BEGIN
9815 BEGIN
9816 SELECT min(line_id),max(line_id)
9817 INTO l_min,l_max
9818 FROM msc_st_serial_numbers
9819 WHERE parent_header_id = p_header_id;
9820 EXCEPTION
9821 WHEN NO_DATA_FOUND THEN
9822 l_min := 0;
9823 END;
9824
9825
9826
9827 v_retval := FND_INSTALLATION.GET_APP_INFO(
9828 'FND', lv_dummy1,lv_dummy2, v_applsys_schema);
9829
9830
9831
9832 --==============================================================================================================
9833 -- create index on publisher_company,publisher_order_type,publisher_item_name,master_item_name,publisher_site_id
9834 --===============================================================================================================
9835 create_index(v_applsys_schema);
9836
9837
9838 l_loops_reqd := 1 + trunc((l_max - l_min)/G_BATCH_SIZE);
9839
9840 IF l_loops_reqd IS NOT NULL THEN
9841 FOR i IN 1..l_loops_reqd LOOP
9842 l_start_line := l_min + ((i-1)*G_BATCH_SIZE);
9843 IF ((l_min - 1 + i*G_BATCH_SIZE) <= l_max) THEN
9844 l_end_line := l_min - 1 + i*G_BATCH_SIZE;
9845 ELSE
9846 l_end_line := l_max;
9847 END IF;
9848
9849
9850
9851 l_log_message := substrb(get_message('MSC','MSC_X_API_NOW_PROCESSING',p_language),1,500)
9852 || '... ' || to_char(l_start_line - l_min + 1) || ' ' ||
9853 substrb(get_message('MSC','MSC_X_API_THROUGH',p_language),1,500) ||
9854 ' ' || to_char(l_end_line - l_min + 1);
9855 log_message(l_log_message);
9856
9857
9858 SELECT /*+ parallel(mssn,5) */
9859 line_id
9860 BULK COLLECT INTO t_line_id
9861 FROM msc_st_serial_numbers
9862 WHERE parent_header_id = p_header_id AND
9863 line_id BETWEEN l_start_line and l_end_line;
9864
9865
9866
9867 IF t_line_id IS NOT NULL AND t_line_id.COUNT > 0 THEN
9868 --================================================
9869 -- Validation 1: Check for valid sync indicator
9870 --=================================================
9871 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SYNC_INDICATOR', p_language);
9872 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9873 UPDATE /*+ parallel(mssn,5) */
9874 msc_st_serial_numbers mssn
9875 SET mssn.err_msg = substrb(l_err_msg,1,1000),
9876 mssn.row_status = G_FAILURE
9877 WHERE mssn.parent_header_id = p_header_id AND
9878 mssn.line_id = t_line_id(j) AND
9879 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
9880 UPPER(NVL(mssn.sync_indicator, G_NULL_STRING)) NOT IN ('R','D');
9881
9882 --========================================================
9883 --Validation 2: Check for the order type
9884 --======================================================
9885 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ORDER_TYPE', p_language);
9886 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9887 UPDATE /*+ parallel(mssn,5) */
9888 msc_st_serial_numbers mssn
9889 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg ,
9890 -- mssn.err_msg || ' ' || l_err_msg ),
9891 substrb(l_err_msg,1,1000),
9892 mssn.row_status = G_FAILURE
9893 WHERE mssn.parent_header_id = p_header_id AND
9894 mssn.line_id = t_line_id(j) AND
9895 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
9896 NOT EXISTS (SELECT /*+ parallel(l,5) */
9897 l.lookup_code
9898 FROM fnd_lookup_values l
9899 WHERE l.lookup_type = 'MSC_X_ORDER_TYPE' AND
9900 UPPER(l.meaning) = NVL(UPPER(mssn.order_type), G_NULL_STRING) AND
9901 l.language = p_language AND
9902 l.lookup_code = G_UNALLOCATED_ONHAND);
9903
9904 --======================================================================
9905 -- Validation 3: Check for the number of item name is 0
9906 --======================================================================
9907 l_err_msg := get_message('MSC', 'MSC_X_INVALID_NO_ITEM', p_language);
9908 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9909 UPDATE /*+ parallel(mssn,5) */
9910 msc_st_serial_numbers mssn
9911 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg,
9912 -- mssn.err_msg || ' ' || l_err_msg ),
9913 substrb(l_err_msg,1,1000),
9914 mssn.row_status = G_FAILURE
9915 WHERE mssn.parent_header_id = p_header_id AND
9916 mssn.line_id = t_line_id(j) AND
9917 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
9918 mssn.master_item_name IS NULL AND
9919 mssn.publisher_item_name IS NULL;
9920
9921
9922 --===============================================================
9923 -- Validation 4: Check for serial number
9924 --==============================================================
9925 l_err_msg := get_message('MSC', 'MSC_X_NO_SERIAL_NUMBER',p_language);
9926 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9927 UPDATE /*+ parallel(mssn,5) */
9928 msc_st_serial_numbers mssn
9929 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg ,
9930 -- mssn.err_msg || ' ' || l_err_msg),
9931 substrb(l_err_msg,1,1000),
9932 mssn.row_status = G_FAILURE
9933 WHERE mssn.parent_header_id = p_header_id AND
9934 mssn.line_id = t_line_id(j) AND
9935 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
9936 mssn.serial_number IS NULL;
9937
9938
9939 --=============================================================
9940 -- Derive the publisher id
9941 --=============================================================
9942 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9943 UPDATE /*+ parallel(mssn,5) */
9944 msc_st_serial_numbers mssn
9945 SET mssn.publisher_id = (SELECT /*+ parallel(mc,5) */
9946 mc.company_id
9947 FROM msc_companies mc
9948 WHERE UPPER(mssn.publisher_company) = UPPER(mc.company_name)
9949 )
9950 WHERE mssn.parent_header_id = p_header_id AND
9951 mssn.line_id = t_line_id(j) AND
9952 NVL(mssn.row_status, G_PROCESS) = G_PROCESS;
9953
9954 --==============================================================
9955 -- Validation 5: Check for existence of publisher company
9956 --==============================================================
9957 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER', p_language);
9958 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9959 UPDATE /*+ parallel(mssn,5) */
9960 msc_st_serial_numbers mssn
9961 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg,
9962 -- mssn.err_msg || ' ' || l_err_msg),
9963 substrb(l_err_msg,1,1000),
9964 mssn.row_status = G_FAILURE
9965 WHERE mssn.parent_header_id = p_header_id AND
9966 mssn.line_id = t_line_id(j) AND
9967 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
9968 mssn.publisher_id IS NULL;
9969
9970
9971
9972 --=============================================================
9973 --Derive the publisher site id
9974 --==========================================================
9975 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9976 UPDATE /*+ parallel(mssn,5) */
9977 msc_st_serial_numbers mssn
9978 SET mssn.publisher_site_id = (SELECT /*+ parallel(mcs,5) */
9979 mcs.company_site_id
9980 FROM msc_company_sites mcs
9981 WHERE mssn.publisher_id=mcs.company_id AND
9982 UPPER(mssn.publisher_site) = UPPER(mcs.company_site_name)
9983 )
9984 WHERE mssn.parent_header_id = p_header_id AND
9985 mssn.line_id = t_line_id(j) AND
9986 NVL(mssn.row_status, G_PROCESS) = G_PROCESS;
9987
9988
9989 --============================================================
9990 -- Validation 6: Check for existence of publisher site
9991 --============================================================
9992 l_err_msg := get_message('MSC', 'MSC_X_INVALID_PUBLISHER_SITE', p_language);
9993 FORALL j IN t_line_id.FIRST..t_line_id.LAST
9994 UPDATE /*+ parallel(mssn,5) */
9995 msc_st_serial_numbers mssn
9996 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg,
9997 -- mssn.err_msg || ' ' || l_err_msg ),
9998 substrb(l_err_msg,1,1000),
9999 mssn.row_status = G_FAILURE
10000 WHERE mssn.parent_header_id = p_header_id AND
10001 mssn.line_id = t_line_id(j) AND
10002 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10003 mssn.publisher_site_id IS NULL;
10004
10005
10006
10007 --======================================================
10008 -- Derive the inventory_item_id
10009 --====================================================
10010 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10011 UPDATE /*+ parallel(mssn,5) */
10012 msc_st_serial_numbers mssn
10013 SET mssn.inventory_item_id = (SELECT /*+ parallel(mi,5) */
10014 mi.inventory_item_id
10015 FROM msc_items mi
10016 WHERE mi.item_name = mssn.master_item_name AND
10017 mssn.master_item_name IS NOT NULL
10018
10019 UNION ALL
10020 SELECT msi.inventory_item_id
10021 FROM msc_system_items msi,
10022 msc_trading_partners mtp,
10023 msc_trading_partner_maps mtpm,
10024 msc_company_sites mcs,
10025 msc_companies mc
10026 WHERE msi.plan_id = -1 AND
10027 mssn.parent_header_id = p_header_id AND
10028 mssn.line_id = t_line_id(j) AND
10029 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10030 msi.item_name = mssn.publisher_item_name AND
10031 msi.organization_id = mtp.sr_tp_id AND
10032 msi.sr_instance_id = mtp.sr_instance_id AND
10033 mtp.partner_type = 3 AND
10034 mtp.partner_id = mtpm.tp_key AND
10035 mtpm.map_type = 2 AND
10036 mtpm.company_key = mcs.company_site_id AND
10037 mcs.company_site_name = mssn.publisher_site AND
10038 mcs.company_id = mc.company_id AND
10039 mc.company_name = mssn.publisher_company AND
10040 NVL(mtp.company_id,1) = mc.company_id AND
10041 mssn.publisher_item_name IS NOT NULL AND
10042 mssn.master_item_name IS NULL
10043
10044 UNION ALL
10045 SELECT mis.inventory_item_id
10046 FROM msc_item_suppliers mis,
10047 msc_trading_partner_maps map,
10048 msc_trading_partner_maps map1,
10049 msc_company_relationships r,
10050 msc_company_sites cs,
10051 msc_companies c
10052 WHERE mis.plan_id = -1 and
10053 mssn.parent_header_id = p_header_id AND
10054 mssn.line_id = t_line_id(j) AND
10055 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10056 mis.supplier_item_name = mssn.publisher_item_name AND
10057 mis.supplier_id = map.tp_key and
10058 --nvl(mis.supplier_site_id, map1.tp_key) = map1.tp_key and
10059 mis.supplier_site_id = map1.tp_key and
10060 map.map_type = 1 and
10061 map.company_key = r.relationship_id and
10062 r.subject_id = 1 and
10063 r.object_id = c.company_id and
10064 r.relationship_type = 2 and
10065 c.company_name = mssn.publisher_company AND
10066 map1.map_type = 3 and
10067 map1.company_key = cs.company_site_id and
10068 cs.company_site_name = mssn.publisher_site AND
10069 cs.company_id = c.company_id and
10070 mssn.publisher_item_name IS NOT NULL AND
10071 mssn.master_item_name IS NULL
10072
10073 UNION ALL
10074 SELECT mic.inventory_item_id
10075 FROM msc_item_customers mic,
10076 msc_trading_partner_maps map,
10077 msc_trading_partner_maps map1,
10078 msc_company_relationships r,
10079 msc_company_sites cs,
10080 msc_companies c
10081 WHERE mic.plan_id = -1 and
10082 mssn.parent_header_id = p_header_id AND
10083 mssn.line_id = t_line_id(j) AND
10084 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10085 mic.customer_item_name = mssn.publisher_item_name AND
10086 mic.customer_id = map.tp_key and
10087 --nvl(mic.customer_site_id, map1.tp_key) = map1.tp_key and
10088 mic.customer_site_id = map1.tp_key and
10089 map.map_type = 1 and
10090 map.company_key = r.relationship_id and
10091 r.subject_id = 1 and
10092 r.object_id = c.company_id and
10093 r.relationship_type = 1 and
10094 c.company_name = mssn.publisher_company AND
10095 map1.map_type = 3 and
10096 map1.company_key = cs.company_site_id and
10097 cs.company_site_name = mssn.publisher_site AND
10098 cs.company_id = c.company_id and
10099 mssn.publisher_item_name IS NOT NULL AND
10100 mssn.master_item_name IS NULL
10101 )
10102 WHERE mssn.parent_header_id = p_header_id AND
10103 mssn.line_id = t_line_id(j) AND
10104 NVL(mssn.row_status, G_PROCESS) = G_PROCESS;
10105
10106 --============================================================
10107 -- Check if inventory_item_id exist
10108 --=======================================================
10109 l_err_msg := get_message('MSC', 'MSC_X_INVALID_ITEM', p_language);
10110 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10111 UPDATE /*+ parallel(mssn,5) */
10112 msc_st_serial_numbers mssn
10113 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg ,
10114 -- mssn.err_msg || ' ' || l_err_msg),
10115 substrb(l_err_msg,1,1000),
10116 mssn.row_status = G_FAILURE
10117 WHERE mssn.parent_header_id = p_header_id AND
10118 mssn.line_id = t_line_id(j) AND
10119 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10120 mssn.inventory_item_id IS NULL;
10121
10122 --=======================================================
10123 -- Validation 7: check for the serial_number_flag if the profile is
10124 --========================================================
10125 IF NVL(FND_PROFILE.VALUE('MSC_DEFAULT_SERIAL_CONTROL'),'Y') ='Y' THEN
10126 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SERIAL_FLAG', p_language);
10127 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10128 UPDATE /*+ parallel(mssn,5) */
10129 msc_st_serial_numbers mssn
10130 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg ,
10131 -- mssn.err_msg || ' ' || l_err_msg),
10132 substrb(l_err_msg,1,1000),
10133 mssn.row_status = G_FAILURE
10134 WHERE mssn.parent_header_id = p_header_id AND
10135 mssn.line_id = t_line_id(j) AND
10136 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10137 NOT EXISTS (SELECT msi.serial_number_control_code
10138 FROM msc_system_items msi,
10139 msc_trading_partners mtp,
10140 msc_trading_partner_maps mtpm
10141 WHERE msi.plan_id = -1 AND
10142 msi.inventory_item_id = mssn.inventory_item_id AND
10143 msi.sr_instance_id = mtp.sr_instance_id AND
10144 msi.organization_id = mtp.sr_tp_id AND
10145 mtp.partner_type = 3 AND
10146 mtp.partner_id = mtpm.tp_key AND
10147 mtpm.map_type = 2 AND
10148 mtpm.company_key = mssn.publisher_site_id AND
10149 msi.serial_number_control_code = G_SERIAL_ITEM
10150 );
10151 END IF;
10152 --==========================================================
10153 -- Derive transaction id
10154 --===============================================================
10155 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10156 UPDATE /*+ parallel(mssn,5) */
10157 msc_st_serial_numbers mssn
10158 SET mssn.serial_txn_id = (SELECT /*+ parallel(msde,5) */
10159 msde.transaction_id
10160 FROM msc_sup_dem_entries msde
10161 WHERE msde.plan_id = -1 AND
10162 msde.publisher_id = mssn.publisher_id AND
10163 msde.publisher_site_id = mssn.publisher_site_id AND
10164 msde.inventory_item_id = mssn.inventory_item_id AND
10165 msde.publisher_order_type = (SELECT /*+ parallel(flv,5) */
10166 flv.lookup_code
10167 FROM fnd_lookup_values flv
10168 WHERE flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10169 UPPER(flv.meaning) = NVL(UPPER(mssn.order_type), G_NULL_STRING) AND
10170 flv.language = p_language)
10171 )
10172 WHERE mssn.parent_header_id = p_header_id AND
10173 mssn.line_id = t_line_id(j) AND
10174 NVL(mssn.row_status, G_PROCESS) = G_PROCESS ;
10175
10176 --========================================================
10177 -- Validation 8: Check if the serial_txn_id exist
10178 --=======================================================
10179 l_err_msg := get_message('MSC', 'MSC_X_ONHAND_NOT_FOUND', p_language);
10180 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10181 UPDATE /*+ parallel(mssn,5) */
10182 msc_st_serial_numbers mssn
10183 SET mssn.err_msg = --DECODE(mssn.err_msg, NULL, l_err_msg,
10184 -- mssn.err_msg || ' ' || l_err_msg ),
10185 substrb(l_err_msg,1,1000),
10186 mssn.row_status = G_FAILURE
10187 WHERE mssn.parent_header_id = p_header_id AND
10188 mssn.line_id = t_line_id(j) AND
10189 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10190 mssn.serial_txn_id IS NULL;
10191
10192
10193 --========================================================
10194 -- Validation 9: Check if the record exists for the
10195 -- sync_indicator 'D'
10196 --========================================================
10197 l_err_msg := get_message('MSC', 'MSC_X_SERIAL_DATA_NOT_FOUND', p_language);
10198 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10199 UPDATE /*+ parallel(mssn,5) */
10200 msc_st_serial_numbers mssn
10201 SET mssn.err_msg = -- DECODE(mssn.err_msg, NULL, l_err_msg,
10202 -- mssn.err_msg || ' ' || l_err_msg),
10203 substrb(l_err_msg,1,1000),
10204 mssn.row_status = G_FAILURE
10205 WHERE mssn.parent_header_id = p_header_id AND
10206 mssn.line_id = t_line_id(j) AND
10207 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10208 UPPER(NVL(mssn.sync_indicator, G_NULL_STRING))='D' AND
10209 NOT EXISTS (SELECT /*+ parallel(msn,5) */
10210 msn.serial_txn_id
10211 FROM msc_serial_numbers msn
10212 WHERE msn.serial_txn_id = mssn.serial_txn_id AND
10213 msn.serial_number = mssn.serial_number
10214 );
10215
10216 --======================================================
10217 -- Delete the record if the sync_indicator is 'D;
10218 --=====================================================
10219 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10220 UPDATE /*+ parallel(msn,5) */
10221 msc_serial_numbers msn
10222 SET msn.disable_date = sysdate
10223 WHERE (msn.serial_txn_id,msn.serial_number) IN
10224 (SELECT /*+ parallel(mssn,5) */
10225 mssn.serial_txn_id,mssn.serial_number
10226 FROM msc_st_serial_numbers mssn
10227 WHERE mssn.parent_header_id = p_header_id AND
10228 mssn.line_id = t_line_id(j) AND
10229 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10230 UPPER(NVL(mssn.sync_indicator, G_NULL_STRING))='D'
10231 ) AND
10232 NVL(msn.disable_date,sysdate+1) > sysdate ;
10233
10234
10235 --=========================================================
10236 -- Delete the previous record if the sync_indicator is 'R'
10237 --=========================================================
10238 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10239 DELETE FROM msc_serial_numbers msn
10240 WHERE msn.serial_txn_id = (SELECT /*+ parallel(mssn,5) */
10241 mssn.serial_txn_id
10242 FROM msc_st_serial_numbers mssn
10243 WHERE mssn.parent_header_id = p_header_id AND
10244 mssn.line_id = t_line_id(j) AND
10245 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10246 UPPER(NVL(mssn.sync_indicator, G_NULL_STRING))='R'
10247 ) AND
10248 NVL(msn.disable_date,sysdate+1) > sysdate AND
10249 msn.parent_header_id <> p_header_id ;
10250
10251 END IF; --End of validation
10252
10253
10254 SELECT /*+ parallel(mssn,5) */
10255 mssn.line_id,
10256 mssn.serial_txn_id,
10257 mssn.serial_number,
10258 mssn.attachment_url,
10259 mssn.sync_indicator,
10260 mssn.row_status,
10261 mssn.user_defined1,
10262 mssn.user_defined2,
10263 mssn.user_defined3,
10264 mssn.user_defined4,
10265 mssn.user_defined5,
10266 mssn.user_defined6,
10267 mssn.user_defined7,
10268 mssn.user_defined8,
10269 mssn.user_defined9,
10270 mssn.user_defined10,
10271 mssn.creation_date,
10272 mssn.created_by,
10273 mssn.last_update_date,
10274 mssn.last_updated_by,
10275 mssn.last_update_login,
10276 mssn.context,
10277 mssn.attribute1,
10278 mssn.attribute2,
10279 mssn.attribute3,
10280 mssn.attribute4,
10281 mssn.attribute5,
10282 mssn.attribute6,
10283 mssn.attribute7,
10284 mssn.attribute8,
10285 mssn.attribute9,
10286 mssn.attribute10,
10287 mssn.attribute11,
10288 mssn.attribute12,
10289 mssn.attribute13,
10290 mssn.attribute14,
10291 mssn.attribute15
10292 BULK COLLECT INTO
10293 t_line_id1,
10294 t_serial_txn_id,
10295 t_serial_number,
10296 t_attachment_url,
10297 t_sync_indicator,
10298 t_row_status,
10299 t_user_defined1,
10300 t_user_defined2,
10301 t_user_defined3,
10302 t_user_defined4,
10303 t_user_defined5,
10304 t_user_defined6,
10305 t_user_defined7,
10306 t_user_defined8,
10307 t_user_defined9,
10308 t_user_defined10,
10309 t_creation_date,
10310 t_created_by,
10311 t_last_update_date,
10312 t_last_updated_by,
10313 t_last_update_login,
10314 t_context,
10315 t_attribute1,
10316 t_attribute2,
10317 t_attribute3,
10318 t_attribute4,
10319 t_attribute5,
10320 t_attribute6,
10321 t_attribute7,
10322 t_attribute8,
10323 t_attribute9,
10324 t_attribute10,
10325 t_attribute11,
10326 t_attribute12,
10327 t_attribute13,
10328 t_attribute14,
10329 t_attribute15
10330 FROM msc_st_serial_numbers mssn
10331 WHERE mssn.parent_header_id = p_header_id AND
10332 NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10333 UPPER(NVL(mssn.sync_indicator, G_NULL_STRING))='R' AND
10334 mssn.line_id BETWEEN l_start_line and l_end_line;
10335
10336
10337 --====================================================
10338 -- Insert the record if the sync_indicator is 'R'
10339 --===================================================
10340
10341 IF t_serial_number IS NOT NULL AND t_serial_number.COUNT > 0 THEN
10342 FORALL i IN t_serial_number.FIRST..t_serial_number.LAST
10343 INSERT /*+ parallel(msn,5) */
10344 INTO msc_serial_numbers msn
10345 (
10346 serial_txn_id,
10347 serial_number,
10348 plan_id,
10349 attachment_url,
10350 user_defined1,
10351 user_defined2,
10352 user_defined3,
10353 user_defined4,
10354 user_defined5,
10355 user_defined6,
10356 user_defined7,
10357 user_defined8,
10358 user_defined9,
10359 user_defined10,
10360 parent_header_id,
10361 line_id,
10362 creation_date,
10363 created_by,
10364 last_update_date,
10365 last_updated_by,
10366 last_update_login,
10367 context,
10368 attribute1,
10369 attribute2,
10370 attribute3,
10371 attribute4,
10372 attribute5,
10373 attribute6,
10374 attribute7,
10375 attribute8,
10376 attribute9,
10377 attribute10,
10378 attribute11,
10379 attribute12,
10380 attribute13,
10381 attribute14,
10382 attribute15
10383 )
10384 VALUES (
10385 t_serial_txn_id(i),
10386 t_serial_number(i),
10387 -1,
10388 t_attachment_url(i),
10389 t_user_defined1(i),
10390 t_user_defined2(i),
10391 t_user_defined3(i),
10392 t_user_defined4(i),
10393 t_user_defined5(i),
10394 t_user_defined6(i),
10395 t_user_defined7(i),
10396 t_user_defined8(i),
10397 t_user_defined9(i),
10398 t_user_defined10(i),
10399 p_header_id,
10400 t_line_id(i),
10401 t_creation_date(i),
10402 t_created_by(i),
10403 t_last_update_date(i),
10404 t_last_updated_by(i),
10405 t_last_update_login(i),
10406 t_context(i),
10407 t_attribute1(i),
10408 t_attribute2(i),
10409 t_attribute3(i),
10410 t_attribute4(i),
10411 t_attribute5(i),
10412 t_attribute6(i),
10413 t_attribute7(i),
10414 t_attribute8(i),
10415 t_attribute9(i),
10416 t_attribute10(i),
10417 t_attribute11(i),
10418 t_attribute12(i),
10419 t_attribute13(i),
10420 t_attribute14(i),
10421 t_attribute15(i)
10422 );
10423 END IF;
10424 COMMIT;
10425
10426
10427
10428
10429
10430 --=========================================================================
10431 -- Writing error messages to the log file
10432 --=========================================================================
10433 open c_err_msg(p_header_id, l_start_line, l_end_line);
10434 fetch c_err_msg bulk collect
10435 into t_log_line_id,
10436 t_log_item_name,
10437 t_log_order_type,
10438 t_log_serial_number,
10439 t_log_err_msg;
10440 close c_err_msg;
10441
10442 if t_log_line_id is not null and t_log_line_id.COUNT > 0 then
10443 for j in t_log_line_id.FIRST..t_log_line_id.LAST loop
10444 l_log_message :=
10445 substrb(get_message('MSC','MSC_X_UI_VOD_ORD_LINE_NUM',p_language),1,100) ||
10446 ': ' || to_char(t_log_line_id(j) - l_min + 1) || ', ' ||
10447 substrb(get_message('MSC','MSC_X_UI_ITEM',p_language),1,100) ||
10448 ': ' || t_log_item_name(j) || ', ' ||
10449 substrb(get_message('MSC','MSC_X_UI_SDD_ORDER_TYPE',p_language),1,100) ||
10450 ': ' || t_log_order_type(j) || ', ' ||
10451 substrb(get_message('MSC','MSC_X_UI_SERIAL_NUMBER',p_language),1,100) ||
10452 ': ' || t_log_serial_number(j) || ', '||
10453 substrb(get_message('MSC','MSC_X_UI_LSD_ERROR', p_language),1,100) ||
10454 ': ' || t_log_err_msg(j) || fnd_global.local_chr(10) ;
10455
10456 log_message(l_log_message);
10457 END LOOP;
10458 END IF;
10459
10460 END LOOP;
10461 END IF;
10462
10463 --=====================================================
10464 -- drop index
10465 --==================================================
10466 drop_index(v_applsys_schema);
10467
10468 --=====================================================
10469 -- Delete all the record which has not errored out
10470 --=====================================================
10471 DELETE FROM msc_st_serial_numbers mssn
10472 WHERE NVL(mssn.row_status, G_PROCESS) = G_PROCESS AND
10473 mssn.parent_header_id = p_header_id ;
10474
10475
10476 END serial_validation;
10477
10478
10479 PROCEDURE create_index (v_applsys_schema IN VARCHAR2) IS
10480 BEGIN
10481 ad_ddl.do_ddl( applsys_schema => v_applsys_schema,
10482 application_short_name => 'MSC',
10483 statement_type => AD_DDL.CREATE_INDEX,
10484 statement =>
10485 'create index MSC_ST_SERIAL_NUMBER_N1'
10486 ||' on MSC_ST_SERIAL_NUMBERS '
10487 ||'(publisher_company,publisher_site,publisher_item_name,master_item_name,order_type) '
10488 ||' STORAGE (INITIAL 100K NEXT 1M PCTINCREASE 0) ',
10489 object_name =>'MSC_ST_SERIAL_NUMBER_N1'
10490 );
10491 EXCEPTION
10492 WHEN OTHERS THEN
10493 log_message('Error creating Index MSC_ST_SERIAL_NUMBER_N1. Error:'||substr(SQLERRM,1,240));
10494 END create_index;
10495
10496
10497 PROCEDURE drop_index(v_applsys_schema IN VARCHAR2) IS
10498 BEGIN
10499 ad_ddl.do_ddl( applsys_schema => v_applsys_schema,
10500 application_short_name => 'MSC',
10501 statement_type => AD_DDL.DROP_INDEX,
10502 statement =>
10503 'drop index MSC_ST_SERIAL_NUMBER_N1',
10504 object_name =>'MSC_ST_SERIAL_NUMBER_N1'
10505 );
10506 EXCEPTION
10507 WHEN OTHERS THEN
10508 log_message('Error deleting Index MSC_ST_SERIAL_NUMBER_N1. Error:'||substr(SQLERRM,1,240));
10509 END drop_index;
10510
10511 -- jguo: API to validate receipt/ship date for TP as a supplier
10512 PROCEDURE validate_rs_dates_supplier(
10513 t_line_id IN lineidList
10514 , p_header_id IN NUMBER
10515 , p_language IN VARCHAR2
10516 ) IS
10517
10518 l_err_msg VARCHAR2(200);
10519
10520 BEGIN
10521
10522 --======================================================================
10523 -- Validation: Check if receipt date is populated if the order type is
10524 -- PO, Receipt, Order forecast and Requisition
10525 --======================================================================
10526 l_err_msg := get_message('MSC', 'MSC_X_INVALID_RCPT_DATE', p_language);
10527 --dbms_output.put_line( 'In ' || l_err_msg);
10528 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10529 UPDATE msc_supdem_lines_interface ln
10530 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10531 WHERE ln.parent_header_id = p_header_id AND
10532 ln.line_id = t_line_id(j) AND
10533 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10534 G_NULL_STRING = (SELECT NVL(ln1.receipt_date, G_NULL_STRING)
10535 FROM msc_supdem_lines_interface ln1,
10536 fnd_lookup_values flv
10537 WHERE ln1.parent_header_id = ln.parent_header_id and
10538 ln1.line_id = ln.line_id and
10539 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10540 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10541 flv.language = p_language and
10542 flv.lookup_code IN (G_PURCHASE_ORDER,
10543 G_SHIP_RECEIPT,
10544 G_ORDER_FORECAST,
10545 G_REQUISITION,
10546 G_REPLENISHMENT)) -- bug #4070061
10547 AND EXISTS ( SELECT ln.customer_company
10548 FROM msc_companies c
10549 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
10550 AND c.company_id = 1
10551 )
10552 ;
10553
10554 FORALL j in t_line_id.FIRST..t_line_id.LAST
10555 UPDATE msc_supdem_lines_interface ln
10556 SET ln.key_date = ln.receipt_date,
10557 ln.key_end_date = ln.new_schedule_end_date
10558 WHERE ln.parent_header_id = p_header_id AND
10559 ln.line_id = t_line_id(j) AND
10560 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10561 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10562 FROM fnd_lookup_values flv
10563 WHERE flv.language = p_language AND
10564 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10565 flv.lookup_code IN (G_PURCHASE_ORDER,
10566 G_SHIP_RECEIPT,
10567 G_ORDER_FORECAST,
10568 G_REQUISITION,
10569 G_REPLENISHMENT)) -- bug #4070061
10570 AND EXISTS ( SELECT ln.customer_company
10571 FROM msc_companies c
10572 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
10573 AND c.company_id = 1
10574 )
10575 ;
10576
10577 --======================================================================
10578 -- Validation: Check if ship date is populated if the order type is
10579 -- Sales Forecast, Sell through forecast, supplier capacity,
10580 -- projected safety stock and projected available balances.
10581 --======================================================================
10582 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_DATE', p_language);
10583 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10584 UPDATE msc_supdem_lines_interface ln
10585 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10586 WHERE ln.parent_header_id = p_header_id AND
10587 ln.line_id = t_line_id(j) AND
10588 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10589 G_NULL_STRING = (SELECT NVL(ln1.ship_date, G_NULL_STRING)
10590 FROM msc_supdem_lines_interface ln1,
10591 fnd_lookup_values flv
10592 WHERE ln1.parent_header_id = ln.parent_header_id and
10593 ln1.line_id = ln.line_id and
10594 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10595 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10596 flv.language = p_language and
10597 flv.lookup_code IN (G_SELL_THRO_FCST,
10598 G_SUPPLIER_CAP,
10599 G_PROJ_SS,
10600 G_PROJ_ALLOC_AVAIL,
10601 G_PROJ_UNALLOC_AVAIL))
10602 AND EXISTS ( SELECT ln.customer_company
10603 FROM msc_companies c
10604 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
10605 AND c.company_id = 1
10606 )
10607 ;
10608
10609 FORALL j in t_line_id.FIRST..t_line_id.LAST
10610 UPDATE msc_supdem_lines_interface ln
10611 SET ln.key_date = ln.ship_date,
10612 ln.key_end_date = ln.new_schedule_end_date
10613 WHERE ln.parent_header_id = p_header_id AND
10614 ln.line_id = t_line_id(j) AND
10615 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10616 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10617 FROM fnd_lookup_values flv
10618 WHERE flv.language = p_language AND
10619 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10620 flv.lookup_code IN (G_SELL_THRO_FCST,
10621 G_SUPPLIER_CAP,
10622 G_PROJ_SS,
10623 G_PROJ_ALLOC_AVAIL,
10624 G_PROJ_UNALLOC_AVAIL))
10625 AND EXISTS ( SELECT ln.customer_company
10626 FROM msc_companies c
10627 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
10628 AND c.company_id = 1
10629 )
10630 ;
10631
10632 --==============================================================================
10633 -----bug #4070061 -------
10634 -- Validation: Check if either ship date or receipt date is
10635 -- populated if the order type = POA
10636 --==============================================================================
10637 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_RCPT_DATE', p_language);
10638 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10639 UPDATE msc_supdem_lines_interface ln
10640 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10641 WHERE ln.parent_header_id = p_header_id AND
10642 ln.line_id = t_line_id(j) AND
10643 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10644 G_NULL_STRING = (SELECT NVL(ln1.ship_date, G_NULL_STRING)
10645 FROM msc_supdem_lines_interface ln1,
10646 fnd_lookup_values flv
10647 WHERE ln1.parent_header_id = ln.parent_header_id and
10648 ln1.line_id = ln.line_id and
10649 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10650 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10651 flv.language = p_language and
10652 flv.lookup_code = G_PO_ACKNOWLEDGEMENT) AND
10653 G_NULL_STRING = (SELECT NVL(ln1.receipt_date, G_NULL_STRING)
10654 FROM msc_supdem_lines_interface ln1,
10655 fnd_lookup_values flv
10656 WHERE ln1.parent_header_id = ln.parent_header_id and
10657 ln1.line_id = ln.line_id and
10658 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10659 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10660 flv.language = p_language and
10661 flv.lookup_code = G_PO_ACKNOWLEDGEMENT)
10662 AND EXISTS ( SELECT ln.customer_company
10663 FROM msc_companies c
10664 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
10665 AND c.company_id = 1
10666 );
10667
10668 -----------------------------------------------------------------------------------------------------------
10669 ---for order type = POA : if receipt_date is entered via loads , then set key_date = receipt_date
10670 ---else receipt_date gets derived from ship_date in get_optional_info procedure
10671 ---and key_date is populated there
10672 -----------------------------------------------------------------------------------------------------------
10673
10674 FORALL j in t_line_id.FIRST..t_line_id.LAST
10675 UPDATE msc_supdem_lines_interface ln
10676 SET ln.key_date = ln.receipt_date,
10677 ln.key_end_date = ln.new_schedule_end_date
10678 WHERE ln.parent_header_id = p_header_id AND
10679 ln.line_id = t_line_id(j) AND
10680 ln.receipt_date is not null AND
10681 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10682 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10683 FROM fnd_lookup_values flv
10684 WHERE flv.language = p_language AND
10685 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10686 flv.lookup_code = G_PO_ACKNOWLEDGEMENT)
10687 AND EXISTS ( SELECT ln.customer_company
10688 FROM msc_companies c
10689 WHERE UPPER(c.company_name) = UPPER(NVL(ln.customer_company, ln.publisher_company))
10690 AND c.company_id = 1
10691 ) ;
10692
10693 EXCEPTION
10694 WHEN OTHERS THEN
10695 log_message('Error when validating receipt/ship date (validate_rs_dates_supplier). Error:'||substr(SQLERRM,1,240));
10696 END validate_rs_dates_supplier;
10697
10698 -- jguo: API to validate receipt/ship date for TP as a customer
10699 PROCEDURE validate_rs_dates_customer(
10700 t_line_id IN lineidList
10701 , p_header_id IN NUMBER
10702 , p_language IN VARCHAR2
10703 ) IS
10704
10705 l_err_msg VARCHAR2(200);
10706
10707 BEGIN
10708
10709 --======================================================================
10710 -- Validation: Check if receipt date is populated if the order type is
10711 -- PO, Receipt, Order forecast and Requisition
10712 --======================================================================
10713 l_err_msg := get_message('MSC', 'MSC_X_INVALID_RCPT_DATE', p_language);
10714 --dbms_output.put_line( 'In ' || l_err_msg);
10715 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10716 UPDATE msc_supdem_lines_interface ln
10717 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10718 WHERE ln.parent_header_id = p_header_id AND
10719 ln.line_id = t_line_id(j) AND
10720 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10721 G_NULL_STRING = (SELECT NVL(ln1.receipt_date, G_NULL_STRING)
10722 FROM msc_supdem_lines_interface ln1,
10723 fnd_lookup_values flv
10724 WHERE ln1.parent_header_id = ln.parent_header_id and
10725 ln1.line_id = ln.line_id and
10726 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10727 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10728 flv.language = p_language and
10729 flv.lookup_code IN (G_PURCHASE_ORDER,
10730 -- G_SHIP_RECEIPT,
10731 G_ORDER_FORECAST,
10732 G_REQUISITION
10733 , G_SUPPLY_COMMIT
10734 , G_NEGOTIATED_CAPACITY
10735 , G_PO_ACKNOWLEDGEMENT
10736 , G_SALES_ORDER
10737 ))
10738 AND MSC_X_UTIL.GET_SHIPPING_CONTROL
10739 ( NVL(ln.customer_company, ln.publisher_company)
10740 , NVL(ln.customer_site, ln.publisher_site)
10741 , NVL(ln.supplier_company, ln.publisher_company)
10742 , NVL(ln.supplier_site, ln.publisher_site)
10743 ) = 1 -- supplier
10744 AND EXISTS ( SELECT ln.customer_company
10745 FROM msc_companies c
10746 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10747 AND c.company_id = 1
10748 )
10749 ;
10750
10751 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10752 UPDATE msc_supdem_lines_interface ln
10753 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10754 WHERE ln.parent_header_id = p_header_id AND
10755 ln.line_id = t_line_id(j) AND
10756 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10757 G_NULL_STRING = (SELECT NVL(ln1.receipt_date, G_NULL_STRING)
10758 FROM msc_supdem_lines_interface ln1,
10759 fnd_lookup_values flv
10760 WHERE ln1.parent_header_id = ln.parent_header_id and
10761 ln1.line_id = ln.line_id and
10762 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10763 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10764 flv.language = p_language and
10765 flv.lookup_code IN ( G_SHIP_RECEIPT
10766 , G_ASN
10767 ))
10768 AND EXISTS ( SELECT ln.customer_company
10769 FROM msc_companies c
10770 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10771 AND c.company_id = 1
10772 )
10773 ;
10774
10775
10776 FORALL j in t_line_id.FIRST..t_line_id.LAST
10777 UPDATE msc_supdem_lines_interface ln
10778 SET ln.key_date = ln.receipt_date,
10779 ln.key_end_date = ln.new_schedule_end_date
10780 , ln.shipping_control = MSC_X_UTIL.GET_SHIPPING_CONTROL
10781 ( NVL(ln.customer_company, ln.publisher_company)
10782 , NVL(ln.customer_site, ln.publisher_site)
10783 , NVL(ln.supplier_company, ln.publisher_company)
10784 , NVL(ln.supplier_site, ln.publisher_site)
10785 )
10786 WHERE ln.parent_header_id = p_header_id AND
10787 ln.line_id = t_line_id(j) AND
10788 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10789 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10790 FROM fnd_lookup_values flv
10791 WHERE flv.language = p_language AND
10792 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10793 flv.lookup_code IN (G_PURCHASE_ORDER,
10794 -- G_SHIP_RECEIPT,
10795 G_ORDER_FORECAST,
10796 G_REQUISITION
10797 , G_SUPPLY_COMMIT
10798 , G_NEGOTIATED_CAPACITY
10799 , G_PO_ACKNOWLEDGEMENT
10800 , G_SALES_ORDER
10801 ))
10802 AND MSC_X_UTIL.GET_SHIPPING_CONTROL
10803 ( NVL(ln.customer_company, ln.publisher_company)
10804 , NVL(ln.customer_site, ln.publisher_site)
10805 , NVL(ln.supplier_company, ln.publisher_company)
10806 , NVL(ln.supplier_site, ln.publisher_site)
10807 ) = 1 -- supplier
10808 AND EXISTS ( SELECT ln.customer_company
10809 FROM msc_companies c
10810 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10811 AND c.company_id = 1
10812 )
10813 ;
10814
10815 FORALL j in t_line_id.FIRST..t_line_id.LAST
10816 UPDATE msc_supdem_lines_interface ln
10817 SET ln.key_date = ln.receipt_date,
10818 ln.key_end_date = ln.new_schedule_end_date
10819 , ln.shipping_control = MSC_X_UTIL.GET_SHIPPING_CONTROL
10820 ( NVL(ln.customer_company, ln.publisher_company)
10821 , NVL(ln.customer_site, ln.publisher_site)
10822 , NVL(ln.supplier_company, ln.publisher_company)
10823 , NVL(ln.supplier_site, ln.publisher_site)
10824 )
10825 WHERE ln.parent_header_id = p_header_id AND
10826 ln.line_id = t_line_id(j) AND
10827 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10828 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10829 FROM fnd_lookup_values flv
10830 WHERE flv.language = p_language AND
10831 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10832 flv.lookup_code IN ( G_SHIP_RECEIPT
10833 , G_ASN
10834 ))
10835 AND EXISTS ( SELECT ln.customer_company
10836 FROM msc_companies c
10837 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10838 AND c.company_id = 1
10839 )
10840 ;
10841
10842 --======================================================================
10843 -- Validation: Check if ship date is populated if the order type is
10844 -- Sales Forecast, Sell through forecast, supplier capacity,
10845 -- projected safety stock and projected available balances.
10846 --======================================================================
10847 l_err_msg := get_message('MSC', 'MSC_X_INVALID_SHIP_DATE', p_language);
10848 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10849 UPDATE msc_supdem_lines_interface ln
10850 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10851 WHERE ln.parent_header_id = p_header_id AND
10852 ln.line_id = t_line_id(j) AND
10853 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10854 G_NULL_STRING = (SELECT NVL(ln1.ship_date, G_NULL_STRING)
10855 FROM msc_supdem_lines_interface ln1,
10856 fnd_lookup_values flv
10857 WHERE ln1.parent_header_id = ln.parent_header_id and
10858 ln1.line_id = ln.line_id and
10859 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10860 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10861 flv.language = p_language and
10862 flv.lookup_code IN ( -- G_SELL_THRO_FCST,
10863 -- G_SUPPLIER_CAP,
10864 -- G_PROJ_SS,
10865 -- G_PROJ_ALLOC_AVAIL,
10866 -- G_PROJ_UNALLOC_AVAIL
10867 G_PURCHASE_ORDER
10868 , G_ORDER_FORECAST
10869 , G_SUPPLY_COMMIT
10870 , G_NEGOTIATED_CAPACITY
10871 , G_PO_ACKNOWLEDGEMENT
10872 , G_REQUISITION
10873 , G_SALES_ORDER
10874 ))
10875 AND MSC_X_UTIL.GET_SHIPPING_CONTROL
10876 ( NVL(ln.customer_company, ln.publisher_company)
10877 , NVL(ln.customer_site, ln.publisher_site)
10878 , NVL(ln.supplier_company, ln.publisher_company)
10879 , NVL(ln.supplier_site, ln.publisher_site)
10880 ) = 2 -- customer
10881 AND EXISTS ( SELECT ln.customer_company
10882 FROM msc_companies c
10883 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10884 AND c.company_id = 1
10885 )
10886 ;
10887
10888 FORALL j IN t_line_id.FIRST..t_line_id.LAST
10889 UPDATE msc_supdem_lines_interface ln
10890 SET ln.err_msg = substrb(ln.err_msg || ' ' || l_err_msg,1,1000)
10891 WHERE ln.parent_header_id = p_header_id AND
10892 ln.line_id = t_line_id(j) AND
10893 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10894 G_NULL_STRING = (SELECT NVL(ln1.ship_date, G_NULL_STRING)
10895 FROM msc_supdem_lines_interface ln1,
10896 fnd_lookup_values flv
10897 WHERE ln1.parent_header_id = ln.parent_header_id and
10898 ln1.line_id = ln.line_id and
10899 UPPER(flv.meaning) = UPPER(ln1.order_type) and
10900 flv.lookup_type = 'MSC_X_ORDER_TYPE' and
10901 flv.language = p_language and
10902 flv.lookup_code IN ( G_SALES_FORECAST
10903 , G_SELL_THRO_FCST
10904 ))
10905 AND EXISTS ( SELECT ln.customer_company
10906 FROM msc_companies c
10907 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10908 AND c.company_id = 1
10909 )
10910 ;
10911
10912 FORALL j in t_line_id.FIRST..t_line_id.LAST
10913 UPDATE msc_supdem_lines_interface ln
10914 SET ln.key_date = ln.ship_date,
10915 ln.key_end_date = ln.new_schedule_end_date
10916 , ln.shipping_control = MSC_X_UTIL.GET_SHIPPING_CONTROL
10917 ( NVL(ln.customer_company, ln.publisher_company)
10918 , NVL(ln.customer_site, ln.publisher_site)
10919 , NVL(ln.supplier_company, ln.publisher_company)
10920 , NVL(ln.supplier_site, ln.publisher_site)
10921 )
10922 WHERE ln.parent_header_id = p_header_id AND
10923 ln.line_id = t_line_id(j) AND
10924 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10925 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10926 FROM fnd_lookup_values flv
10927 WHERE flv.language = p_language AND
10928 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10929 flv.lookup_code IN ( -- G_SELL_THRO_FCST,
10930 -- G_SUPPLIER_CAP,
10931 -- G_PROJ_SS,
10932 -- G_PROJ_ALLOC_AVAIL,
10933 -- G_PROJ_UNALLOC_AVAIL
10934 G_PURCHASE_ORDER
10935 , G_ORDER_FORECAST
10936 , G_SUPPLY_COMMIT
10937 , G_NEGOTIATED_CAPACITY
10938 , G_PO_ACKNOWLEDGEMENT
10939 , G_REQUISITION
10940 , G_SALES_ORDER
10941 ))
10942 AND MSC_X_UTIL.GET_SHIPPING_CONTROL
10943 ( NVL(ln.customer_company, ln.publisher_company)
10944 , NVL(ln.customer_site, ln.publisher_site)
10945 , NVL(ln.supplier_company, ln.publisher_company)
10946 , NVL(ln.supplier_site, ln.publisher_site)
10947 ) = 2 -- customer
10948 AND EXISTS ( SELECT ln.customer_company
10949 FROM msc_companies c
10950 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10951 AND c.company_id = 1
10952 )
10953 ;
10954
10955 FORALL j in t_line_id.FIRST..t_line_id.LAST
10956 UPDATE msc_supdem_lines_interface ln
10957 SET ln.key_date = ln.ship_date,
10958 ln.key_end_date = ln.new_schedule_end_date
10959 , ln.shipping_control = MSC_X_UTIL.GET_SHIPPING_CONTROL
10960 ( NVL(ln.customer_company, ln.publisher_company)
10961 , NVL(ln.customer_site, ln.publisher_site)
10962 , NVL(ln.supplier_company, ln.publisher_company)
10963 , NVL(ln.supplier_site, ln.publisher_site)
10964 )
10965 WHERE ln.parent_header_id = p_header_id AND
10966 ln.line_id = t_line_id(j) AND
10967 NVL(ln.row_status, G_PROCESS) = G_PROCESS AND
10968 UPPER(ln.order_type) IN (SELECT UPPER(flv.meaning)
10969 FROM fnd_lookup_values flv
10970 WHERE flv.language = p_language AND
10971 flv.lookup_type = 'MSC_X_ORDER_TYPE' AND
10972 flv.lookup_code IN ( G_SALES_FORECAST
10973 , G_SELL_THRO_FCST
10974 ))
10975 AND EXISTS ( SELECT ln.customer_company
10976 FROM msc_companies c
10977 WHERE UPPER(c.company_name) = UPPER(NVL(ln.supplier_company, ln.publisher_company))
10978 AND c.company_id = 1
10979 )
10980 ;
10981
10982
10983 EXCEPTION
10984 WHEN OTHERS THEN
10985 log_message('Error when validating receipt/ship date (validate_rs_dates_customer). Error:'||substr(SQLERRM,1,240));
10986 END validate_rs_dates_customer;
10987
10988 END msc_sce_loads_pkg;