1 PACKAGE BODY rcv_default_pkg AS
2 /* $Header: RCVDFLTB.pls 120.58 2012/02/17 13:59:58 ksivasa ship $*/
3 g_debug_flag CONSTANT VARCHAR2(1) := asn_debug.is_debug_on; -- Bug 9152790
4 /* the following marker variables indicate the possibility that the defaulted
5 code does not match the ID's derived from the backing docs */
6 g_rhi_ou_mkr BOOLEAN;
7 g_rhi_cust_party_name_mkr BOOLEAN;
8 g_rhi_cust_acc_num_mkr BOOLEAN;
9 g_rhi_employee_name_mkr BOOLEAN;
10 g_rhi_vendor_site_code_mkr BOOLEAN;
11 g_rti_ou_mkr BOOLEAN;
12 g_rti_cust_party_name_mkr BOOLEAN;
13 g_rti_cust_acc_num_mkr BOOLEAN;
14 g_rti_cust_item_num_mkr BOOLEAN;
15 g_rti_employee_name_mkr BOOLEAN;
16 g_rti_dlvr_to_prsn_name_mkr BOOLEAN;
17 g_rti_vendor_site_code_mkr BOOLEAN;
18 g_rti_locator_mkr BOOLEAN;
19 g_rti_wip_entity_name_mkr BOOLEAN;
20 g_rti_item_description_mkr BOOLEAN;
21 g_rti_item_num_mkr BOOLEAN;
22 g_rti_sub_item_num_mkr BOOLEAN;
23 g_previous_time NUMBER;
24 g_curr_table po_interface_errors.table_name%TYPE;
25 g_curr_group_id NUMBER;
26 g_curr_header_id NUMBER;
27 g_curr_transaction_id NUMBER;
28 g_curr_org_id NUMBER;
29 g_curr_inv_org_id NUMBER;
30 g_subtract_pll_qty_rcv BOOLEAN;
31 g_asn_type rcv_shipment_headers.asn_type%type; --Bug: 5598511
32
33 /******************************************/
34 /* SECTION 1: Helper defaulting functions */
35 /******************************************/
36 /* WDK - EXPIREMENT TESTING SHOWS THAT CALLING PROCEDURES IN PLSQL IS SLOW */
37 /* Therefore, even though using these helper procedures makes the code more */
38 /* readable, the trade-off is too large for a function that must execute */
39 /* quickly */
40 /*
41 PROCEDURE default_and_check(
42 p_src_value IN VARCHAR2, p_dst_value IN OUT NOCOPY VARCHAR2, p_column IN VARCHAR2) IS
43 BEGIN
44 IF (p_dst_value IS NULL) THEN
45 p_dst_value := p_src_value;
46 ELSIF( p_src_value IS NOT NULL
47 AND p_dst_value <> p_src_value) THEN
48 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE');
49 rcv_error_pkg.set_token('COLUMN', p_column);
50 rcv_error_pkg.set_token('ROI_VALUE', p_dst_value);
51 rcv_error_pkg.set_token('SYS_VALUE', p_src_value);
52 rcv_error_pkg.log_interface_error(p_column);
53 END IF;
54 END default_and_check;
55
56 PROCEDURE default_and_check(
57 p_src_value IN NUMBER, p_dst_value IN OUT NOCOPY NUMBER, p_column IN VARCHAR2) IS
58 BEGIN
59 IF (p_dst_value IS NULL) THEN
60 p_dst_value := p_src_value;
61 ELSIF( p_src_value IS NOT NULL
62 AND p_dst_value <> p_src_value) THEN
63 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE');
64 rcv_error_pkg.set_token('COLUMN', p_column);
65 rcv_error_pkg.set_token('ROI_VALUE', p_dst_value);
66 rcv_error_pkg.set_token('SYS_VALUE', p_src_value);
67 rcv_error_pkg.log_interface_error(p_column);
68 END IF;
69 END default_and_check;
70
71 PROCEDURE default_and_check(
72 p_src_value IN DATE, p_dst_value IN OUT NOCOPY DATE, p_column IN VARCHAR2) IS
73 BEGIN
74 IF (p_dst_value IS NULL) THEN
75 p_dst_value := p_src_value;
76 ELSIF( p_src_value IS NOT NULL
77 AND p_dst_value <> p_src_value) THEN
78 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE');
79 rcv_error_pkg.set_token('COLUMN', p_column);
80 rcv_error_pkg.set_token('ROI_VALUE', p_dst_value);
81 rcv_error_pkg.set_token('SYS_VALUE', p_src_value);
82 rcv_error_pkg.log_interface_error(p_column);
83 END IF;
84 END default_and_check;
85
86 PROCEDURE DEFAULT_VALUE(
87 p_src IN VARCHAR2, p_dst IN OUT NOCOPY VARCHAR2) IS
88 BEGIN
89 IF (p_dst IS NULL) THEN
90 p_dst := p_src;
91 END IF;
92 END DEFAULT_VALUE;
93
94 PROCEDURE DEFAULT_VALUE(
95 p_src IN NUMBER, p_dst IN OUT NOCOPY NUMBER) IS
96 BEGIN
97 IF (p_dst IS NULL) THEN
98 p_dst := p_src;
99 END IF;
100 END DEFAULT_VALUE;
101
102 PROCEDURE DEFAULT_VALUE(
103 p_src IN DATE, p_dst IN OUT NOCOPY DATE) IS
104 BEGIN
105 IF (p_dst IS NULL) THEN
106 p_dst := p_src;
107 END IF;
108 END DEFAULT_VALUE;
109
110 PROCEDURE test_is_null(
111 p_value IN VARCHAR2, p_column IN VARCHAR2) IS
112 BEGIN
113 IF (p_value IS NULL) THEN
114 asn_debug.put_line('fail assert test_is_null for column ' || p_column);
115 rcv_error_pkg.set_error_message('PO_PDOI_COLUMN_NOT_NULL');
116 rcv_error_pkg.set_token('COLUMN', p_column);
117 rcv_error_pkg.log_interface_error(p_column);
118 END IF;
119 END test_is_null;
120
121 PROCEDURE test_is_null(
122 p_value IN NUMBER, p_column IN VARCHAR2) IS
123 BEGIN
124 IF (p_value IS NULL) THEN
125 asn_debug.put_line('fail assert test_is_null for column ' || p_column);
126 rcv_error_pkg.set_error_message('PO_PDOI_COLUMN_NOT_NULL');
127 rcv_error_pkg.set_token('COLUMN', p_column);
128 rcv_error_pkg.log_interface_error(p_column);
129 END IF;
130 END test_is_null;
131
132 PROCEDURE test_is_null(
133 p_value IN DATE, p_column IN VARCHAR2) IS
134 BEGIN
135 IF (p_value IS NULL) THEN
136 asn_debug.put_line('fail assert test_is_null for column ' || p_column);
137 rcv_error_pkg.set_error_message('PO_PDOI_COLUMN_NOT_NULL');
138 rcv_error_pkg.set_token('COLUMN', p_column);
139 rcv_error_pkg.log_interface_error(p_column);
140 END IF;
141 END test_is_null;
142 */
143 PROCEDURE invalid_match_value(
144 p_roi_value IN VARCHAR2,
145 p_sys_value IN VARCHAR2,
146 p_column IN VARCHAR2
147 ) IS
148 BEGIN
149 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE');
150 rcv_error_pkg.set_token('COLUMN', p_column);
151 rcv_error_pkg.set_token('ROI_VALUE', p_roi_value);
152 rcv_error_pkg.set_token('SYS_VALUE', p_sys_value);
153 rcv_error_pkg.log_interface_error(g_curr_table,
154 p_column,
155 g_curr_group_id,
156 g_curr_header_id,
157 g_curr_transaction_id
158 );
159 END invalid_match_value;
160
161 PROCEDURE invalid_null_value(
162 p_column IN VARCHAR2
163 ) IS
164 BEGIN
165 rcv_error_pkg.set_error_message('PO_PDOI_COLUMN_NOT_NULL');
166 rcv_error_pkg.set_token('COLUMN', p_column);
167 rcv_error_pkg.log_interface_error(g_curr_table,
168 p_column,
169 g_curr_group_id,
170 g_curr_header_id,
171 g_curr_transaction_id
172 );
173 END invalid_null_value;
174
175 PROCEDURE invalid_value(
176 p_value IN VARCHAR2,
177 p_column IN VARCHAR2
178 ) IS
179 BEGIN
180 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE_NE');
181 rcv_error_pkg.set_token('COLUMN', p_column);
182 rcv_error_pkg.set_token('ROI_VALUE', p_value);
183 rcv_error_pkg.log_interface_error(g_curr_table,
184 p_column,
185 g_curr_group_id,
186 g_curr_header_id,
187 g_curr_transaction_id
188 );
189 END invalid_value;
190
191 PROCEDURE invalid_value(
192 p_value IN NUMBER,
193 p_column IN VARCHAR2
194 ) IS
195 BEGIN
196 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE_NE');
197 rcv_error_pkg.set_token('COLUMN', p_column);
198 rcv_error_pkg.set_token('ROI_VALUE', p_value);
199 rcv_error_pkg.log_interface_error(g_curr_table,
200 p_column,
201 g_curr_group_id,
202 g_curr_header_id,
203 g_curr_transaction_id
204 );
205 END invalid_value;
206
207 PROCEDURE invalid_value(
208 p_value IN DATE,
209 p_column IN VARCHAR2
210 ) IS
211 BEGIN
212 rcv_error_pkg.set_error_message('RCV_INVALID_ROI_VALUE_NE');
213 rcv_error_pkg.set_token('COLUMN', p_column);
214 rcv_error_pkg.set_token('ROI_VALUE', p_value);
215 rcv_error_pkg.log_interface_error(g_curr_table,
216 p_column,
217 g_curr_group_id,
218 g_curr_header_id,
219 g_curr_transaction_id
220 );
221 END invalid_value;
222
223 PROCEDURE elapsed_time(
224 p_comment IN VARCHAR2
225 ) IS
226 x_new_time NUMBER;
227 BEGIN
228 x_new_time := DBMS_UTILITY.get_time;
229
230 IF (g_debug_flag = 'Y') THEN
231 asn_debug.put_line('Elapsed Time:' || LPAD(x_new_time - NVL(g_previous_time, x_new_time),
232 8,
233 ' '
234 ) || ',Absolute Time:' || LPAD(x_new_time,
235 14,
236 ' '
237 ) || ' - ' || p_comment);
238 END IF;
239
240 g_previous_time := x_new_time;
241 END elapsed_time;
242
243 /************************************/
244 /* SECTION 2: Defaulting from codes */
245 /************************************/
246 FUNCTION get_org_id_from_inv_org_id(
247 p_organization_id IN mtl_parameters.organization_id%TYPE
248 )
249 RETURN rcv_headers_interface.org_id%TYPE IS
250 x_org_id rcv_headers_interface.org_id%TYPE;
251 BEGIN
252 IF (p_organization_id IS NULL) THEN
253 RETURN NULL;
254 END IF;
255
256 IF (p_organization_id = g_curr_inv_org_id) THEN
257 RETURN g_curr_org_id;
258 END IF;
259 --perf fix 5217433
260 SELECT DECODE(FPG.MULTI_ORG_FLAG,
261 'Y',
262 DECODE(HOI.ORG_INFORMATION_CONTEXT, 'Accounting Information', TO_NUMBER(HOI.ORG_INFORMATION3), TO_NUMBER(NULL)),
263 TO_NUMBER(NULL)
264 ) OPERATING_UNIT
265 INTO x_org_id
266 FROM HR_ORGANIZATION_INFORMATION HOI,
267 FND_PRODUCT_GROUPS FPG
268 WHERE HOI.ORGANIZATION_ID = p_organization_id
269 AND ( HOI.ORG_INFORMATION_CONTEXT || '') ='Accounting Information';
270
271 g_curr_org_id := x_org_id;
272 g_curr_inv_org_id := p_organization_id;
273 RETURN x_org_id;
274 EXCEPTION
275 WHEN OTHERS THEN
276 RETURN NULL;
277 END get_org_id_from_inv_org_id;
278
279 FUNCTION get_org_id_from_ou(
280 p_ou IN rcv_headers_interface.operating_unit%TYPE,
281 p_column IN VARCHAR2,
282 p_marker IN OUT NOCOPY BOOLEAN
283 )
284 RETURN rcv_headers_interface.org_id%TYPE IS
285 x_org_id rcv_headers_interface.org_id%TYPE;
286 BEGIN
287 p_marker := FALSE;
288
289 IF (p_ou IS NULL) THEN
290 RETURN NULL;
291 END IF;
292
293 SELECT organization_id
294 INTO x_org_id
295 FROM hr_organization_units
296 WHERE NAME = p_ou;
297
298 RETURN x_org_id;
299 EXCEPTION
300 WHEN NO_DATA_FOUND THEN
301 invalid_value(p_ou, p_column);
302 WHEN TOO_MANY_ROWS THEN
303 p_marker := TRUE;
304 RETURN NULL;
305 END get_org_id_from_ou;
306
307 FUNCTION get_ou_from_org_id(
308 p_org_id IN rcv_headers_interface.org_id%TYPE,
309 p_column IN VARCHAR2,
310 p_marker IN OUT NOCOPY BOOLEAN
311 )
312 RETURN rcv_headers_interface.operating_unit%TYPE IS
313 x_ou rcv_headers_interface.operating_unit%TYPE;
314 BEGIN
315 p_marker := FALSE;
316
317 IF (p_org_id IS NULL) THEN
318 RETURN NULL;
319 END IF;
320
321 SELECT NAME
322 INTO x_ou
323 FROM hr_organization_units
324 WHERE organization_id = p_org_id;
325
326 RETURN x_ou;
327 EXCEPTION
328 WHEN NO_DATA_FOUND THEN
329 invalid_value(p_org_id, p_column);
330 WHEN TOO_MANY_ROWS THEN
331 p_marker := TRUE;
332 RETURN NULL;
333 END get_ou_from_org_id;
334
335 FUNCTION get_customer_id_from_name_num(
336 p_customer_party_name IN rcv_headers_interface.customer_party_name%TYPE,
337 p_customer_account_number IN rcv_headers_interface.customer_account_number%TYPE,
338 p_column_name IN VARCHAR2,
339 p_column_num IN VARCHAR2,
340 p_marker_name IN OUT NOCOPY BOOLEAN,
341 p_marker_num IN OUT NOCOPY BOOLEAN
342 )
343 RETURN rcv_headers_interface.customer_id%TYPE IS
344 x_customer_id rcv_headers_interface.customer_id%TYPE;
345 BEGIN
346 p_marker_name := FALSE;
347 p_marker_num := FALSE;
348
349 IF ( p_customer_party_name IS NULL
350 OR p_customer_account_number IS NULL) THEN
351 IF (p_customer_party_name IS NOT NULL) THEN
352 p_marker_name := TRUE;
353 END IF;
354
355 IF (p_customer_account_number IS NOT NULL) THEN
356 p_marker_num := TRUE;
357 END IF;
358
359 RETURN NULL;
360 END IF;
361
362 SELECT acct.cust_account_id
363 INTO x_customer_id
364 FROM hz_parties party,
365 hz_cust_accounts acct
366 WHERE party.party_id = acct.party_id
367 AND party.party_name = p_customer_party_name
368 AND acct.account_number = p_customer_account_number;
369
370 RETURN x_customer_id;
371 EXCEPTION
372 WHEN NO_DATA_FOUND THEN
373 invalid_value(' || p_customer_account_number,p_column_name || ', ' || p_column_num, p_customer_party_name || ');
374 WHEN TOO_MANY_ROWS THEN
375 p_marker_name := TRUE;
376 p_marker_num := TRUE;
377 RETURN NULL;
378 END get_customer_id_from_name_num;
379
380 FUNCTION get_customer_name_from_id(
381 p_customer_id IN rcv_headers_interface.customer_id%TYPE,
382 p_column IN VARCHAR2,
383 p_marker IN OUT NOCOPY BOOLEAN
384 )
385 RETURN rcv_headers_interface.customer_party_name%TYPE IS
386 x_customer_party_name rcv_headers_interface.customer_party_name%TYPE;
387 BEGIN
388 p_marker := FALSE;
389
390 IF (p_customer_id IS NULL) THEN
391 RETURN NULL;
392 END IF;
393
394 SELECT party.party_name
395 INTO x_customer_party_name
396 FROM hz_parties party,
397 hz_cust_accounts acct
398 WHERE party.party_id = acct.party_id
399 AND acct.cust_account_id = p_customer_id;
400
401 RETURN x_customer_party_name;
402 EXCEPTION
403 WHEN NO_DATA_FOUND THEN
404 invalid_value(p_customer_id, p_column);
405 WHEN TOO_MANY_ROWS THEN
406 p_marker := TRUE;
407 RETURN NULL;
408 END get_customer_name_from_id;
409
410 FUNCTION get_customer_num_from_id(
411 p_customer_id IN rcv_headers_interface.customer_id%TYPE,
412 p_column IN VARCHAR2,
413 p_marker IN OUT NOCOPY BOOLEAN
414 )
415 RETURN rcv_headers_interface.customer_account_number%TYPE IS
416 x_customer_account_number rcv_headers_interface.customer_account_number%TYPE;
417 BEGIN
418 p_marker := FALSE;
419
420 IF (p_customer_id IS NULL) THEN
421 RETURN NULL;
422 END IF;
423
424 SELECT acct.account_number
425 INTO x_customer_account_number
426 FROM hz_cust_accounts acct
427 WHERE acct.cust_account_id = p_customer_id;
428
429 RETURN x_customer_account_number;
430 EXCEPTION
431 WHEN NO_DATA_FOUND THEN
432 invalid_value(p_customer_id, p_column);
433 WHEN TOO_MANY_ROWS THEN
434 p_marker := TRUE;
435 RETURN NULL;
436 END get_customer_num_from_id;
437
438 FUNCTION get_employee_id_from_name(
439 p_employee_name IN rcv_headers_interface.employee_name%TYPE,
440 p_column IN VARCHAR2,
441 p_marker IN OUT NOCOPY BOOLEAN
442 )
443 RETURN rcv_headers_interface.employee_id%TYPE IS
444 x_employee_id rcv_headers_interface.employee_id%TYPE;
445 BEGIN
446 p_marker := FALSE;
447
448 IF (p_employee_name IS NULL) THEN
449 RETURN NULL;
450 END IF;
451
452 SELECT employee_id
453 INTO x_employee_id
454 FROM hr_employees
455 WHERE full_name = p_employee_name;
456
457 RETURN x_employee_id;
458 EXCEPTION
459 WHEN NO_DATA_FOUND THEN
460 invalid_value(p_employee_name, p_column);
461 WHEN TOO_MANY_ROWS THEN
462 p_marker := TRUE;
463 RETURN NULL;
464 END get_employee_id_from_name;
465
466 FUNCTION get_employee_name_from_id(
467 p_employee_id IN rcv_headers_interface.employee_id%TYPE,
468 p_column IN VARCHAR2,
469 p_marker IN OUT NOCOPY BOOLEAN
470 )
471 RETURN rcv_headers_interface.employee_name%TYPE IS
472 x_employee_name rcv_headers_interface.employee_name%TYPE;
473 BEGIN
474 p_marker := FALSE;
475
476 IF (p_employee_id IS NULL) THEN
477 RETURN NULL;
478 END IF;
479
480 SELECT full_name
481 INTO x_employee_name
482 FROM hr_employees
483 WHERE employee_id = p_employee_id;
484
485 RETURN x_employee_name;
486 EXCEPTION
487 WHEN NO_DATA_FOUND THEN
488 invalid_value(p_employee_id, p_column);
489 WHEN TOO_MANY_ROWS THEN
490 p_marker := TRUE;
491 RETURN NULL;
492 END get_employee_name_from_id;
493
494 FUNCTION get_org_id_from_code(
495 p_org_code IN rcv_headers_interface.from_organization_code%TYPE,
496 p_column IN VARCHAR2,
497 p_marker IN OUT NOCOPY BOOLEAN
498 )
499 RETURN rcv_headers_interface.from_organization_id%TYPE IS
500 x_org_id rcv_headers_interface.from_organization_id%TYPE;
501 BEGIN
502 p_marker := FALSE;
503
504 IF (p_org_code IS NULL) THEN
505 RETURN NULL;
506 END IF;
507
508 SELECT organization_id
509 INTO x_org_id
510 FROM mtl_parameters
511 WHERE organization_code = p_org_code;
512
513 RETURN x_org_id;
514 EXCEPTION
515 WHEN NO_DATA_FOUND THEN
516 invalid_value(p_org_code, p_column);
517 WHEN TOO_MANY_ROWS THEN
518 p_marker := TRUE;
519 RETURN NULL;
520 END get_org_id_from_code;
521
522 --Bug 7591174 Added a New function to get the to_organization_id from ship_to_location_id
523 FUNCTION get_org_id_from_location_id(
524 p_location_id IN rcv_headers_interface.location_id%TYPE,
525 p_column IN VARCHAR2,
526 p_marker IN OUT NOCOPY BOOLEAN
527 )
528 RETURN rcv_headers_interface.from_organization_id%TYPE IS
529 x_org_id rcv_headers_interface.from_organization_id%TYPE;
530 BEGIN
531 p_marker :=FALSE;
532
533 IF(p_location_id IS NULL) THEN
534 RETURN NULL;
535 END IF;
536
537 SELECT org.organization_id
538 INTO x_org_id
539 FROM hr_locations hl,
540 mtl_parameters org
541 WHERE hl.location_id = p_location_id
542 AND hl.inventory_organization_id = org.organization_id;
543
544 RETURN x_org_id;
545
546 EXCEPTION
547 WHEN NO_DATA_FOUND THEN
548 invalid_value(p_location_id, p_column);
549 WHEN TOO_MANY_ROWS THEN
550 p_marker := TRUE;
551 RETURN NULL;
552 END get_org_id_from_location_id;
553
554 FUNCTION get_location_id_from_code(
555 p_location_code IN rcv_headers_interface.location_code%TYPE,
556 p_column IN VARCHAR2,
557 p_marker IN OUT NOCOPY BOOLEAN
558 )
559 RETURN rcv_headers_interface.location_id%TYPE IS
560 x_location_id rcv_headers_interface.location_id%TYPE;
561 BEGIN
562 p_marker := FALSE;
563
564 IF (p_location_code IS NULL) THEN
565 RETURN NULL;
566 END IF;
567
568 SELECT location_id
569 INTO x_location_id
570 FROM hr_locations_all
571 WHERE location_code = p_location_code
572 AND ( business_group_id = NVL(hr_general.get_business_group_id, business_group_id)
573 OR business_group_id IS NULL);
574
575 RETURN x_location_id;
576 EXCEPTION
577 WHEN NO_DATA_FOUND THEN
578 /* Bug 5056691: No need to error out the transaction, if we are not
579 able to default the location_id. Bypassed the
580 logging of error messages, as it is handled in
581 validation logic. */
582 RETURN NULL;
583 WHEN TOO_MANY_ROWS THEN
584 p_marker := TRUE;
585 RETURN NULL;
586 END get_location_id_from_code;
587
588 FUNCTION get_payment_terms_id_from_name(
589 p_payment_terms_name IN rcv_headers_interface.payment_terms_name%TYPE,
590 p_column IN VARCHAR2,
591 p_marker IN OUT NOCOPY BOOLEAN
592 )
593 RETURN rcv_headers_interface.payment_terms_id%TYPE IS
594 x_payment_terms_id rcv_headers_interface.payment_terms_id%TYPE;
595 BEGIN
596 p_marker := FALSE;
597
598 IF (p_payment_terms_name IS NULL) THEN
599 RETURN NULL;
600 END IF;
601
602 SELECT term_id
603 INTO x_payment_terms_id
604 FROM ap_terms
605 WHERE NAME = p_payment_terms_name;
606
607 RETURN x_payment_terms_id;
608 EXCEPTION
609 WHEN NO_DATA_FOUND THEN
610 invalid_value(p_payment_terms_name, p_column);
611 WHEN TOO_MANY_ROWS THEN
612 p_marker := TRUE;
613 RETURN NULL;
614 END get_payment_terms_id_from_name;
615
616 FUNCTION get_vendor_id_from_name(
617 p_vendor_name IN rcv_headers_interface.vendor_name%TYPE,
618 p_column IN VARCHAR2,
619 p_marker IN OUT NOCOPY BOOLEAN
620 )
621 RETURN rcv_headers_interface.vendor_id%TYPE IS
622 x_vendor_id rcv_headers_interface.vendor_id%TYPE;
623 BEGIN
624 p_marker := FALSE;
625
626 IF (p_vendor_name IS NULL) THEN
627 RETURN NULL;
628 END IF;
629
630 SELECT vendor_id
631 INTO x_vendor_id
632 FROM po_vendors
633 WHERE vendor_name = p_vendor_name;
634
635 RETURN x_vendor_id;
636 EXCEPTION
637 WHEN NO_DATA_FOUND THEN
638 invalid_value(p_vendor_name, p_column);
639 WHEN TOO_MANY_ROWS THEN
640 p_marker := TRUE;
641 RETURN NULL;
642 END get_vendor_id_from_name;
643
644 FUNCTION get_vendor_id_from_num(
645 p_vendor_num IN rcv_headers_interface.vendor_num%TYPE,
646 p_column IN VARCHAR2,
647 p_marker IN OUT NOCOPY BOOLEAN
648 )
649 RETURN rcv_headers_interface.vendor_id%TYPE IS
650 x_vendor_id rcv_headers_interface.vendor_id%TYPE;
651 BEGIN
652 p_marker := FALSE;
653
654 IF (p_vendor_num IS NULL) THEN
655 RETURN NULL;
656 END IF;
657
658 SELECT vendor_id
659 INTO x_vendor_id
660 FROM po_vendors
661 WHERE segment1 = p_vendor_num;
662
663 RETURN x_vendor_id;
664 EXCEPTION
665 WHEN NO_DATA_FOUND THEN
666 invalid_value(p_vendor_num, p_column);
667 WHEN TOO_MANY_ROWS THEN
668 p_marker := TRUE;
669 RETURN NULL;
670 END get_vendor_id_from_num;
671
672 FUNCTION get_vendor_site_id_from_code(
673 p_vendor_site_code IN rcv_headers_interface.vendor_site_code%TYPE,
674 p_vendor_id IN OUT NOCOPY rcv_headers_interface.vendor_id%TYPE,
675 p_org_id IN rcv_headers_interface.org_id%TYPE,
676 p_column IN VARCHAR2,
677 p_marker IN OUT NOCOPY BOOLEAN
678 )
679 RETURN rcv_headers_interface.vendor_site_id%TYPE IS
680 x_vendor_site_id rcv_headers_interface.vendor_site_id%TYPE;
681 x_vendor_id rcv_headers_interface.vendor_id%TYPE;
682 BEGIN
683 p_marker := FALSE;
684
685 IF (p_vendor_site_code IS NULL) THEN
686 RETURN NULL;
687 END IF;
688
689 SELECT vendor_site_id,
690 vendor_id
691 INTO x_vendor_site_id,
692 x_vendor_id
693 FROM po_vendor_sites_all
694 WHERE org_id = NVL(p_org_id, org_id)
695 AND vendor_site_code = p_vendor_site_code
696 AND vendor_id = NVL(p_vendor_id, vendor_id);
697
698 IF (p_vendor_id IS NULL) THEN
699 p_vendor_id := x_vendor_id;
700 END IF;
701
702 RETURN x_vendor_site_id;
703 EXCEPTION
704 WHEN NO_DATA_FOUND THEN
705 invalid_value(p_vendor_site_code, p_column);
706 WHEN TOO_MANY_ROWS THEN
707 p_marker := TRUE;
708 RETURN NULL;
709 END get_vendor_site_id_from_code;
710
711 FUNCTION get_vendor_site_code_from_id(
712 p_vendor_site_id IN OUT NOCOPY rcv_headers_interface.vendor_site_id%TYPE,
713 p_vendor_id IN OUT NOCOPY rcv_headers_interface.vendor_id%TYPE,
714 p_org_id IN rcv_headers_interface.org_id%TYPE,
715 p_column IN VARCHAR2,
716 p_marker IN OUT NOCOPY BOOLEAN
717 )
718 RETURN rcv_headers_interface.vendor_site_code%TYPE IS
719 x_vendor_site_code rcv_headers_interface.vendor_site_code%TYPE;
720 x_vendor_id rcv_headers_interface.vendor_id%TYPE;
721 BEGIN
722 p_marker := FALSE;
723
724 IF (p_vendor_site_id IS NULL) THEN
725 RETURN NULL;
726 END IF;
727
728 SELECT vendor_site_code,
729 vendor_id
730 INTO x_vendor_site_code,
731 x_vendor_id
732 FROM po_vendor_sites
733 WHERE org_id = NVL(p_org_id, org_id)
734 AND vendor_site_id = p_vendor_site_id;
735
736 IF (p_vendor_id IS NULL) THEN
737 p_vendor_id := x_vendor_id;
738 END IF;
739
740 RETURN x_vendor_site_code;
741 EXCEPTION
742 WHEN NO_DATA_FOUND THEN
743 invalid_value(p_vendor_id, p_column);
744 WHEN TOO_MANY_ROWS THEN
745 p_marker := TRUE;
746 RETURN NULL;
747 END get_vendor_site_code_from_id;
748
749 FUNCTION get_sfloc_id_from_code(
750 p_ship_from_location_code IN rcv_headers_interface.ship_from_location_code%TYPE,
751 p_vendor_site_id IN rcv_headers_interface.vendor_site_id%TYPE,
752 p_column IN VARCHAR2,
753 p_marker IN OUT NOCOPY BOOLEAN
754 )
755 RETURN rcv_headers_interface.ship_from_location_id%TYPE IS
756 x_ship_from_location_id rcv_headers_interface.ship_from_location_id%TYPE;
757 BEGIN
758 p_marker := FALSE;
759
760 IF (p_ship_from_location_code IS NULL) THEN
761 RETURN NULL;
762 END IF;
763
764 --Bug 5200786. Performace Issue. Added the last where condition
765 SELECT max(hps.location_id)
766 INTO x_ship_from_location_id
767 FROM hz_party_sites hps,
768 hz_party_site_uses hpsu,
769 po_vendor_sites_all pvs
770 WHERE pvs.vendor_site_id = p_vendor_site_id
771 AND hpsu.party_site_id = hps.party_site_id
772 AND hpsu.site_use_type = 'SUPPLIER_SHIP_FROM'
773 AND hps.party_site_number = p_ship_from_location_code||'|'||hps.party_id
774 AND hps.party_site_number like p_ship_from_location_code||'%'; --Bug 5200786.
775
776 IF (x_ship_from_location_id is null) THEN --bug 5263555
777 invalid_value(p_vendor_site_id, p_column);
778 ELSE
779 RETURN x_ship_from_location_id;
780 END IF;
781
782 EXCEPTION
783 WHEN NO_DATA_FOUND THEN
784 /* Bug 4590642.
785 * Need to use p_vendor_site_id and not p_vendor_id.
786 */
787 invalid_value(p_vendor_site_id, p_column);
788 WHEN OTHERS THEN
789 p_marker := TRUE;
790 RETURN NULL;
791 END get_sfloc_id_from_code;
792
793 FUNCTION get_customer_item_id_from_num(
794 p_customer_item_num IN rcv_transactions_interface.customer_item_num%TYPE,
795 p_customer_id IN rcv_transactions_interface.customer_id%TYPE,
796 p_column IN VARCHAR2,
797 p_marker IN OUT NOCOPY BOOLEAN
798 )
799 RETURN rcv_transactions_interface.customer_item_id%TYPE IS
800 x_customer_item_id rcv_transactions_interface.customer_item_id%TYPE;
801 BEGIN
802 p_marker := FALSE;
803
804 IF ( p_customer_item_num IS NULL
805 OR p_customer_id IS NULL) THEN
806 IF (p_customer_item_num IS NOT NULL) THEN
807 p_marker := TRUE;
808 END IF;
809
810 RETURN NULL;
811 END IF;
812
813 SELECT customer_item_id
814 INTO x_customer_item_id
815 FROM mtl_customer_items
816 WHERE customer_item_number = p_customer_item_num
817 AND customer_id = p_customer_id;
818
819 RETURN x_customer_item_id;
820 EXCEPTION
821 WHEN NO_DATA_FOUND THEN
822 invalid_value(p_customer_item_num, p_column);
823 WHEN TOO_MANY_ROWS THEN
824 p_marker := TRUE;
825 RETURN NULL;
826 END get_customer_item_id_from_num;
827
828 FUNCTION get_customer_item_num_from_id(
829 p_customer_item_id IN rcv_transactions_interface.customer_item_id%TYPE,
830 p_column IN VARCHAR2,
831 p_marker IN OUT NOCOPY BOOLEAN
832 )
833 RETURN rcv_transactions_interface.customer_item_num%TYPE IS
834 x_customer_item_num rcv_transactions_interface.customer_item_num%TYPE;
835 BEGIN
836 p_marker := FALSE;
837
838 IF (p_customer_item_id IS NULL) THEN
839 RETURN NULL;
840 END IF;
841
842 SELECT customer_item_number
843 INTO x_customer_item_num
844 FROM mtl_customer_items
845 WHERE customer_item_id = p_customer_item_id;
846
847 RETURN x_customer_item_num;
848 EXCEPTION
849 WHEN NO_DATA_FOUND THEN
850 invalid_value(p_customer_item_id, p_column);
851 WHEN TOO_MANY_ROWS THEN
852 p_marker := TRUE;
853 RETURN NULL;
854 END get_customer_item_num_from_id;
855
856 /* Bug fix 5383556 : commenting this code as Item ID should not be derived from Item Description, since
857 A. It is possible that more than one item have the same description.
858 B. An One Time Item's description could match a description of a defined Item.
859
860
861 FUNCTION get_item_id_from_description(
862 p_item_description IN rcv_transactions_interface.item_description%TYPE,
863 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
864 p_column IN VARCHAR2,
865 p_marker IN OUT NOCOPY BOOLEAN
866 )
867 RETURN rcv_transactions_interface.item_id%TYPE IS
868 x_item_id rcv_transactions_interface.item_id%TYPE;
869 BEGIN
870 p_marker := FALSE;
871
872 IF ( p_item_description IS NULL
873 OR p_org_id IS NULL) THEN
874 RETURN NULL;
875 END IF;
876
877 SELECT inventory_item_id
878 INTO x_item_id
879 FROM mtl_item_flexfields
880 WHERE organization_id = p_org_id
881 AND description = p_item_description;
882
883 RETURN x_item_id;
884 EXCEPTION
885 WHEN OTHERS THEN --Note that there is no invalid value here because of one-time-items
886 p_marker := TRUE;
887 RETURN NULL;
888 END get_item_id_from_description;
889 */
890 FUNCTION get_item_id_from_num(
891 p_item_num IN rcv_transactions_interface.item_num%TYPE,
892 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
893 p_column IN VARCHAR2,
894 p_marker IN OUT NOCOPY BOOLEAN
895 )
896 RETURN rcv_transactions_interface.item_id%TYPE IS
897 x_item_id rcv_transactions_interface.item_id%TYPE;
898 BEGIN
899 p_marker := FALSE;
900
901 IF ( p_item_num IS NULL
902 OR p_org_id IS NULL) THEN
903 RETURN NULL;
904 END IF;
905
906 SELECT inventory_item_id
907 INTO x_item_id
908 FROM mtl_item_flexfields
909 WHERE organization_id = p_org_id
910 AND item_number = p_item_num;
911
912 RETURN x_item_id;
913 EXCEPTION
914 WHEN NO_DATA_FOUND THEN
915 invalid_value(p_item_num, p_column);
916 WHEN TOO_MANY_ROWS THEN
917 p_marker := TRUE;
918 RETURN NULL;
919 END get_item_id_from_num;
920
921 FUNCTION get_item_description_from_id(
922 p_item_id IN rcv_transactions_interface.item_id%TYPE,
923 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
924 p_column IN VARCHAR2,
925 p_marker IN OUT NOCOPY BOOLEAN
926 )
927 RETURN rcv_transactions_interface.item_description%TYPE IS
928 x_item_description rcv_transactions_interface.item_description%TYPE;
929 BEGIN
930 p_marker := FALSE;
931
932 IF ( p_item_id IS NULL
933 OR p_org_id IS NULL) THEN
934 RETURN NULL;
935 END IF;
936 /** Bug: 5504176
937 * Item description field is MLS(multi lingual support) complaint field.
938 * So, we have to fetch the description from mtl_system_items_vl instead of
939 * mtl_item_flexfields, because mtl_system_items_vl view is based on
940 * mtl_system_items_tl table.
941 */
942 SELECT description
943 INTO x_item_description
944 FROM mtl_system_items_vl --5504176
945 WHERE organization_id = p_org_id
946 AND inventory_item_id = p_item_id;
947
948 RETURN x_item_description;
949 EXCEPTION
950 WHEN NO_DATA_FOUND THEN
951 invalid_value(p_item_id, p_column);
952 WHEN TOO_MANY_ROWS THEN
953 p_marker := TRUE;
954 RETURN NULL;
955 END get_item_description_from_id;
956
957 FUNCTION get_item_num_from_id(
958 p_item_id IN rcv_transactions_interface.item_id%TYPE,
959 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
960 p_column IN VARCHAR2,
961 p_marker IN OUT NOCOPY BOOLEAN
962 )
963 RETURN rcv_transactions_interface.item_num%TYPE IS
964 x_item_num rcv_transactions_interface.item_num%TYPE;
965 BEGIN
966 p_marker := FALSE;
967
968 IF ( p_item_id IS NULL
969 OR p_org_id IS NULL) THEN
970 RETURN NULL;
971 END IF;
972
973 SELECT item_number
974 INTO x_item_num
975 FROM mtl_item_flexfields
976 WHERE organization_id = p_org_id
977 AND inventory_item_id = p_item_id;
978
979 RETURN x_item_num;
980 EXCEPTION
981 WHEN NO_DATA_FOUND THEN
982 invalid_value(p_item_id, p_column);
983 WHEN TOO_MANY_ROWS THEN
984 p_marker := TRUE;
985 RETURN NULL;
986 END get_item_num_from_id;
987
988 FUNCTION get_uom_measure_from_code(
989 p_uom_code IN rcv_transactions_interface.uom_code%TYPE,
990 p_column IN VARCHAR2,
991 p_marker IN OUT NOCOPY BOOLEAN
992 )
993 RETURN rcv_transactions_interface.unit_of_measure%TYPE IS
994 x_unit_of_measure rcv_transactions_interface.unit_of_measure%TYPE;
995 BEGIN
996 p_marker := FALSE;
997
998 IF (p_uom_code IS NULL) THEN
999 RETURN NULL;
1000 END IF;
1001
1002 SELECT unit_of_measure
1003 INTO x_unit_of_measure
1004 FROM mtl_units_of_measure
1005 WHERE uom_code = p_uom_code;
1006
1007 RETURN x_unit_of_measure;
1008 EXCEPTION
1009 WHEN NO_DATA_FOUND THEN
1010 invalid_value(p_uom_code, p_column);
1011 WHEN TOO_MANY_ROWS THEN
1012 p_marker := TRUE;
1013 RETURN NULL;
1014 END get_uom_measure_from_code;
1015
1016 FUNCTION get_uom_code_from_measure(
1017 p_unit_of_measure IN rcv_transactions_interface.unit_of_measure%TYPE,
1018 p_column IN VARCHAR2,
1019 p_marker IN OUT NOCOPY BOOLEAN
1020 )
1021 RETURN rcv_transactions_interface.uom_code%TYPE IS
1022 x_uom_code rcv_transactions_interface.uom_code%TYPE;
1023 BEGIN
1024 p_marker := FALSE;
1025
1026 IF (p_unit_of_measure IS NULL) THEN
1027 RETURN NULL;
1028 END IF;
1029
1030
1031 SELECT uom_code
1032 INTO x_uom_code
1033 FROM mtl_units_of_measure
1034 WHERE unit_of_measure = p_unit_of_measure;
1035
1036 RETURN x_uom_code;
1037 EXCEPTION
1038 WHEN NO_DATA_FOUND THEN
1039 invalid_value(p_unit_of_measure, p_column);
1040 WHEN TOO_MANY_ROWS THEN
1041 p_marker := TRUE;
1042 RETURN NULL;
1043 END get_uom_code_from_measure;
1044
1045 FUNCTION get_locator_id_from_locator(
1046 p_locator IN rcv_transactions_interface.LOCATOR%TYPE,
1047 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
1048 p_subinventory IN rcv_transactions_interface.subinventory%TYPE,
1049 p_column IN VARCHAR2,
1050 p_marker IN OUT NOCOPY BOOLEAN
1051 )
1052 RETURN rcv_transactions_interface.locator_id%TYPE IS
1053 x_locator_id rcv_transactions_interface.locator_id%TYPE;
1054 BEGIN
1055 p_marker := FALSE;
1056
1057 IF ( p_locator IS NULL
1058 OR p_org_id IS NULL) THEN
1059 RETURN NULL;
1060 END IF;
1061
1062 SELECT inventory_location_id
1063 INTO x_locator_id
1064 FROM mtl_item_locations_kfv
1065 WHERE organization_id = p_org_id
1066 AND concatenated_segments = p_locator
1067 AND ( subinventory_code = NVL(p_subinventory, subinventory_code)
1068 OR subinventory_code IS NULL)
1069 AND ( disable_date > SYSDATE
1070 OR disable_date IS NULL);
1071
1072 RETURN x_locator_id;
1073 EXCEPTION
1074 WHEN NO_DATA_FOUND THEN
1075 invalid_value(p_locator, p_column);
1076 WHEN TOO_MANY_ROWS THEN
1077 p_marker := TRUE;
1078 RETURN NULL;
1079 END get_locator_id_from_locator;
1080
1081 FUNCTION get_locator_from_locator_id(
1082 p_locator_id IN rcv_transactions_interface.locator_id%TYPE,
1083 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
1084 p_subinventory IN rcv_transactions_interface.subinventory%TYPE,
1085 p_column IN VARCHAR2,
1086 p_marker IN OUT NOCOPY BOOLEAN
1087 )
1088 RETURN rcv_transactions_interface.LOCATOR%TYPE IS
1089 x_locator rcv_transactions_interface.LOCATOR%TYPE;
1090 BEGIN
1091 p_marker := FALSE;
1092
1093 IF ( p_locator_id IS NULL
1094 OR p_org_id IS NULL) THEN
1095 RETURN NULL;
1096 END IF;
1097
1098 SELECT concatenated_segments
1099 INTO x_locator
1100 FROM mtl_item_locations_kfv
1101 WHERE organization_id = p_org_id
1102 AND inventory_location_id = p_locator_id
1103 AND ( subinventory_code = NVL(p_subinventory, subinventory_code)
1104 OR subinventory_code IS NULL)
1105 AND ( disable_date > SYSDATE
1106 OR disable_date IS NULL);
1107
1108 RETURN x_locator;
1109 EXCEPTION
1110 WHEN NO_DATA_FOUND THEN
1111 invalid_value(p_locator_id, p_column);
1112 WHEN TOO_MANY_ROWS THEN
1113 p_marker := TRUE;
1114 RETURN NULL;
1115 END get_locator_from_locator_id;
1116
1117 FUNCTION get_rtng_header_id_from_code(
1118 p_routing_code IN rcv_transactions_interface.routing_code%TYPE,
1119 p_column IN VARCHAR2,
1120 p_marker IN OUT NOCOPY BOOLEAN
1121 )
1122 RETURN rcv_transactions_interface.routing_header_id%TYPE IS
1123 x_routing_header_id rcv_transactions_interface.routing_header_id%TYPE;
1124 BEGIN
1125 p_marker := FALSE;
1126
1127 IF (p_routing_code IS NULL) THEN
1128 RETURN NULL;
1129 END IF;
1130
1131 SELECT routing_header_id
1132 INTO x_routing_header_id
1133 FROM rcv_routing_headers
1134 WHERE routing_name = p_routing_code;
1135
1136 RETURN x_routing_header_id;
1137 EXCEPTION
1138 WHEN NO_DATA_FOUND THEN
1139 invalid_value(p_routing_code, p_column);
1140 WHEN TOO_MANY_ROWS THEN
1141 p_marker := TRUE;
1142 RETURN NULL;
1143 END get_rtng_header_id_from_code;
1144
1145 FUNCTION get_rtng_step_id_from_code(
1146 p_routing_step IN rcv_transactions_interface.routing_step%TYPE,
1147 p_column IN VARCHAR2,
1148 p_marker IN OUT NOCOPY BOOLEAN
1149 )
1150 RETURN rcv_transactions_interface.routing_step_id%TYPE IS
1151 x_routing_step_id rcv_transactions_interface.routing_step_id%TYPE;
1152 BEGIN
1153 p_marker := FALSE;
1154
1155 IF (p_routing_step IS NULL) THEN
1156 RETURN NULL;
1157 END IF;
1158
1159 SELECT routing_step_id
1160 INTO x_routing_step_id
1161 FROM rcv_routing_steps
1162 WHERE step_name = p_routing_step;
1163
1164 RETURN x_routing_step_id;
1165 EXCEPTION
1166 WHEN NO_DATA_FOUND THEN
1167 invalid_value(p_routing_step, p_column);
1168 WHEN TOO_MANY_ROWS THEN
1169 p_marker := TRUE;
1170 RETURN NULL;
1171 END get_rtng_step_id_from_code;
1172
1173 FUNCTION get_wip_entity_id_from_name(
1174 p_wip_entity_name IN rcv_transactions_interface.wip_entity_name%TYPE,
1175 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
1176 p_column IN VARCHAR2,
1177 p_marker IN OUT NOCOPY BOOLEAN
1178 )
1179 RETURN rcv_transactions_interface.wip_entity_id%TYPE IS
1180 x_wip_entity_id rcv_transactions_interface.wip_entity_id%TYPE;
1181 BEGIN
1182 p_marker := FALSE;
1183
1184 IF ( p_wip_entity_name IS NULL
1185 OR p_org_id IS NULL) THEN
1186 RETURN NULL;
1187 END IF;
1188
1189 SELECT wip_entity_id
1190 INTO x_wip_entity_id
1191 FROM wip_entities
1192 WHERE organization_id = p_org_id
1193 AND wip_entity_name = p_wip_entity_name;
1194
1195 RETURN x_wip_entity_id;
1196 EXCEPTION
1197 WHEN NO_DATA_FOUND THEN
1198 invalid_value(p_wip_entity_name, p_column);
1199 WHEN TOO_MANY_ROWS THEN
1200 p_marker := TRUE;
1201 RETURN NULL;
1202 END get_wip_entity_id_from_name;
1203
1204 FUNCTION get_wip_entity_name_from_id(
1205 p_wip_entity_id IN rcv_transactions_interface.wip_entity_id%TYPE,
1206 p_org_id IN rcv_transactions_interface.to_organization_id%TYPE,
1207 p_column IN VARCHAR2,
1208 p_marker IN OUT NOCOPY BOOLEAN
1209 )
1210 RETURN rcv_transactions_interface.wip_entity_name%TYPE IS
1211 x_wip_entity_name rcv_transactions_interface.wip_entity_name%TYPE;
1212 BEGIN
1213 p_marker := FALSE;
1214
1215 IF ( p_wip_entity_id IS NULL
1216 OR p_org_id IS NULL) THEN
1217 RETURN NULL;
1218 END IF;
1219
1220 SELECT wip_entity_name
1221 INTO x_wip_entity_name
1222 FROM wip_entities
1223 WHERE organization_id = p_org_id
1224 AND wip_entity_id = p_wip_entity_id;
1225
1226 RETURN x_wip_entity_name;
1227 EXCEPTION
1228 WHEN NO_DATA_FOUND THEN
1229 invalid_value(p_wip_entity_id, p_column);
1230 WHEN TOO_MANY_ROWS THEN
1231 p_marker := TRUE;
1232 RETURN NULL;
1233 END get_wip_entity_name_from_id;
1234
1235 /*******************************************************/
1236 /* SECTION 3: Framework for calling default from codes */
1237 /*******************************************************/
1238 PROCEDURE default_rhi_from_code(
1239 rhi IN OUT NOCOPY rcv_headers_interface%ROWTYPE
1240 ) IS
1241 x_dummy_mkr BOOLEAN;
1242 BEGIN
1243 IF (rhi.customer_id IS NULL) THEN
1244 rhi.customer_id := get_customer_id_from_name_num(rhi.customer_party_name,
1245 rhi.customer_account_number,
1246 'CUSTOMER_PARTY_NAME',
1247 'CUSTOMER_ACCOUNT_NUMBER',
1248 g_rhi_cust_party_name_mkr,
1249 g_rhi_cust_acc_num_mkr
1250 );
1251 ELSIF(rhi.customer_id <> get_customer_id_from_name_num(rhi.customer_party_name,
1252 rhi.customer_account_number,
1253 'CUSTOMER_PARTY_NAME',
1254 'CUSTOMER_ACCOUNT_NUMBER',
1255 g_rhi_cust_party_name_mkr,
1256 g_rhi_cust_acc_num_mkr
1257 )) THEN
1258 invalid_match_value(rhi.customer_id,
1259 get_customer_id_from_name_num(rhi.customer_party_name,
1260 rhi.customer_account_number,
1261 'CUSTOMER_PARTY_NAME',
1262 'CUSTOMER_ACCOUNT_NUMBER',
1263 g_rhi_cust_party_name_mkr,
1264 g_rhi_cust_acc_num_mkr
1265 ),
1266 'CUSTOMER_ID'
1267 );
1268 END IF;
1269
1270 IF (rhi.employee_id IS NULL) THEN
1271 rhi.employee_id := get_employee_id_from_name(rhi.employee_name,
1272 'EMPLOYEE_NAME',
1273 g_rhi_employee_name_mkr
1274 );
1275 ELSIF(rhi.employee_id <> get_employee_id_from_name(rhi.employee_name,
1276 'EMPLOYEE_NAME',
1277 g_rhi_employee_name_mkr
1278 )) THEN
1279 invalid_match_value(rhi.employee_id,
1280 get_employee_id_from_name(rhi.employee_name,
1281 'EMPLOYEE_NAME',
1282 g_rhi_employee_name_mkr
1283 ),
1284 'EMPLOYEE_ID'
1285 );
1286 END IF;
1287
1288 IF (rhi.from_organization_id IS NULL) THEN
1289 rhi.from_organization_id := get_org_id_from_code(rhi.from_organization_code,
1290 'ORGANIZATION_CODE',
1291 x_dummy_mkr
1292 );
1293 ELSIF(rhi.from_organization_id <> get_org_id_from_code(rhi.from_organization_code,
1294 'ORGANIZATION_CODE',
1295 x_dummy_mkr
1296 )) THEN
1297 invalid_match_value(rhi.from_organization_id,
1298 get_org_id_from_code(rhi.from_organization_code,
1299 'ORGANIZATION_CODE',
1300 x_dummy_mkr
1301 ),
1302 'FROM_ORGANIZATION_ID'
1303 );
1304 END IF;
1305
1306 IF (rhi.org_id IS NULL) THEN
1307 rhi.org_id := get_org_id_from_ou(rhi.operating_unit,
1308 'OPERATING_UNIT',
1309 g_rhi_ou_mkr
1310 );
1311 ELSIF(rhi.org_id <> get_org_id_from_ou(rhi.operating_unit,
1312 'OPERATING_UNIT',
1313 g_rhi_ou_mkr
1314 )) THEN
1315 invalid_match_value(rhi.org_id,
1316 get_org_id_from_ou(rhi.operating_unit,
1317 'OPERATING_UNIT',
1318 g_rhi_ou_mkr
1319 ),
1320 'ORG_ID'
1321 );
1322 END IF;
1323
1324 IF (rhi.ship_to_organization_id IS NULL) THEN
1325 rhi.ship_to_organization_id := get_org_id_from_code(rhi.ship_to_organization_code,
1326 'SHIP_TO_ORGANIZATION_CODE',
1327 x_dummy_mkr
1328 );
1329 ELSIF(rhi.ship_to_organization_id <> get_org_id_from_code(rhi.ship_to_organization_code,
1330 'SHIP_TO_ORGANIZATION_CODE',
1331 x_dummy_mkr
1332 )) THEN
1333 invalid_match_value(rhi.ship_to_organization_id,
1334 get_org_id_from_code(rhi.ship_to_organization_code,
1335 'SHIP_TO_ORGANIZATION_CODE',
1336 x_dummy_mkr
1337 ),
1338 'SHIP_TO_ORGANIZATION_ID'
1339 );
1340 END IF;
1341
1342 /*
1343 ** Bug#4615534 - Org_id defaulting from inventory organization
1344 ** needs to be done only for In-transit shipments
1345 */
1346 IF(rhi.receipt_source_code IN ('INVENTORY','INTERNAL ORDER')) THEN -- Bug 9706173
1347 /* With the SHIP_TO_ORGANIZATION_ID we need to derive the org_id */
1348 IF (rhi.org_id IS NULL) THEN
1349 rhi.org_id := get_org_id_from_inv_org_id(rhi.ship_to_organization_id);
1350 ELSIF(rhi.org_id <> get_org_id_from_inv_org_id(rhi.ship_to_organization_id)) THEN
1351 invalid_match_value(rhi.org_id,
1352 get_org_id_from_inv_org_id(rhi.ship_to_organization_id),
1353 'ORG_ID'
1354 );
1355 END IF;
1356 END IF;
1357
1358 IF (rhi.location_id IS NULL) THEN
1359 rhi.location_id := get_location_id_from_code(rhi.location_code,
1360 'LOCATION_CODE',
1361 x_dummy_mkr
1362 );
1363 ELSIF(rhi.location_id <> get_location_id_from_code(rhi.location_code,
1364 'LOCATION_CODE',
1365 x_dummy_mkr
1366 )) THEN
1367 invalid_match_value(rhi.location_id,
1368 get_location_id_from_code(rhi.location_code,
1369 'LOCATION_CODE',
1370 x_dummy_mkr
1371 ),
1372 'LOCATION_ID'
1373 );
1374 END IF;
1375
1376 IF (rhi.payment_terms_id IS NULL) THEN
1377 rhi.payment_terms_id := get_payment_terms_id_from_name(rhi.payment_terms_name,
1378 'PAYMENT_TERMS_NAME',
1379 x_dummy_mkr
1380 );
1381 ELSIF(rhi.payment_terms_id <> get_payment_terms_id_from_name(rhi.payment_terms_name,
1382 'PAYMENT_TERMS_NAME',
1383 x_dummy_mkr
1384 )) THEN
1385 invalid_match_value(rhi.payment_terms_id,
1386 get_payment_terms_id_from_name(rhi.payment_terms_name,
1387 'PAYMENT_TERMS_NAME',
1388 x_dummy_mkr
1389 ),
1390 'PAYMENT_TERMS_ID'
1391 );
1392 END IF;
1393 -- Bug 6434823, Bug 6603681, Bug 7651399
1394 asn_debug.put_line('checking for rhi vendor fields');
1395 If (rhi.receipt_source_code = 'VENDOR' and rhi.vendor_id IS NULL AND rhi.vendor_name IS NULL AND rhi.vendor_num IS NULL) Then
1396 rcv_error_pkg.set_error_message('RCV_VENDOR_ALL_NULL');
1397 rcv_error_pkg.log_interface_error('RCV_HEADERS_INTERFACE',
1398 'VENDOR_ID',
1399 g_curr_group_id,
1400 g_curr_header_id,
1401 g_curr_transaction_id);
1402
1403 Else
1404 IF (rhi.vendor_id IS NULL) THEN
1405 rhi.vendor_id := get_vendor_id_from_name(rhi.vendor_name,
1406 'VENDOR_NAME',
1407 x_dummy_mkr
1408 );
1409 ELSIF(rhi.vendor_id <> get_vendor_id_from_name(rhi.vendor_name,
1410 'VENDOR_NAME',
1411 x_dummy_mkr
1412 )) THEN
1413 invalid_match_value(rhi.vendor_id,
1414 get_vendor_id_from_name(rhi.vendor_name,
1415 'VENDOR_NAME',
1416 x_dummy_mkr
1417 ),
1418 'VENDOR_ID'
1419 );
1420 END IF;
1421
1422 IF (rhi.vendor_id IS NULL) THEN
1423 rhi.vendor_id := get_vendor_id_from_num(rhi.vendor_num,
1424 'VENDOR_NUM',
1425 x_dummy_mkr
1426 );
1427 ELSIF(rhi.vendor_id <> get_vendor_id_from_num(rhi.vendor_num,
1428 'VENDOR_NUM',
1429 x_dummy_mkr
1430 )) THEN
1431 invalid_match_value(rhi.vendor_id,
1432 get_vendor_id_from_num(rhi.vendor_num,
1433 'VENDOR_NUM',
1434 x_dummy_mkr
1435 ),
1436 'VENDOR_ID'
1437 );
1438 END IF;
1439 END IF;
1440
1441 IF (rhi.vendor_site_id IS NULL) THEN
1442 rhi.vendor_site_id := get_vendor_site_id_from_code(rhi.vendor_site_code,
1443 rhi.vendor_id,
1444 rhi.org_id,
1445 'VENDOR_SITE_CODE',
1446 g_rhi_vendor_site_code_mkr
1447 );
1448 ELSIF(rhi.vendor_site_id <> get_vendor_site_id_from_code(rhi.vendor_site_code,
1449 rhi.vendor_id,
1450 rhi.org_id,
1451 'VENDOR_SITE_CODE',
1452 g_rhi_vendor_site_code_mkr
1453 )) THEN
1454 invalid_match_value(rhi.vendor_site_id,
1455 get_vendor_site_id_from_code(rhi.vendor_site_code,
1456 rhi.vendor_id,
1457 rhi.org_id,
1458 'VENDOR_SITE_CODE',
1459 g_rhi_vendor_site_code_mkr
1460 ),
1461 'VENDOR_SITE_ID'
1462 );
1463 END IF;
1464
1465 IF (rhi.ship_from_location_id IS NULL) THEN
1466 rhi.ship_from_location_id := get_sfloc_id_from_code(rhi.ship_from_location_code,
1467 rhi.vendor_site_id,
1468 'SHIP_FROM_LOCATION_CODE',
1469 x_dummy_mkr
1470 );
1471 /* Bug 4590642.
1472 * Use rhi.vendor_site_id instead of rhi.vendor_id.
1473 */
1474 ELSIF(rhi.ship_from_location_id <> get_sfloc_id_from_code(rhi.ship_from_location_code,
1475 rhi.vendor_site_id,
1476 'SHIP_FROM_LOCATION_CODE',
1477 x_dummy_mkr
1478 )) THEN
1479 invalid_match_value(rhi.ship_from_location_id,
1480 /* Bug 4590642.
1481 * we should not call with rhi.org_id.
1482 * Also use rhi.vendor_site_id instead
1483 * of rhi.venor_id.
1484 */
1485 get_sfloc_id_from_code(rhi.ship_from_location_code,
1486 rhi.vendor_site_id,
1487 -- rhi.org_id,
1488 'SHIP_FROM_LOCATION_CODE',
1489 x_dummy_mkr
1490 ),
1491 'SHIP_FROM_LOCATION_ID'
1492 );
1493 END IF;
1494 END default_rhi_from_code;
1495
1496 PROCEDURE check_rhi_consistency(
1497 rhi IN OUT NOCOPY rcv_headers_interface%ROWTYPE
1498 ) IS
1499 x_dummy_mkr BOOLEAN;
1500 BEGIN
1501 IF (g_rhi_ou_mkr = TRUE) THEN
1502 IF (rhi.operating_unit IS NULL) THEN
1503 rhi.operating_unit := get_ou_from_org_id(rhi.org_id,
1504 'ORG_ID',
1505 x_dummy_mkr
1506 );
1507 ELSIF(rhi.operating_unit <> get_ou_from_org_id(rhi.org_id,
1508 'ORG_ID',
1509 x_dummy_mkr
1510 )) THEN
1511 invalid_match_value(rhi.operating_unit,
1512 get_ou_from_org_id(rhi.org_id,
1513 'ORG_ID',
1514 x_dummy_mkr
1515 ),
1516 'OPERATING_UNIT'
1517 );
1518 END IF;
1519 END IF;
1520
1521 IF (g_rhi_cust_party_name_mkr = TRUE) THEN
1522 IF (rhi.customer_party_name IS NULL) THEN
1523 rhi.customer_party_name := get_customer_name_from_id(rhi.customer_id,
1524 'CUSTOMER_ID',
1525 x_dummy_mkr
1526 );
1527 ELSIF(rhi.customer_party_name <> get_customer_name_from_id(rhi.customer_id,
1528 'CUSTOMER_ID',
1529 x_dummy_mkr
1530 )) THEN
1531 invalid_match_value(rhi.customer_party_name,
1532 get_customer_name_from_id(rhi.customer_id,
1533 'CUSTOMER_ID',
1534 x_dummy_mkr
1535 ),
1536 'CUSTOMER_PARTY_NAME'
1537 );
1538 END IF;
1539 END IF;
1540
1541 IF (g_rhi_cust_acc_num_mkr = TRUE) THEN
1542 IF (rhi.customer_account_number IS NULL) THEN
1543 rhi.customer_account_number := get_customer_num_from_id(rhi.customer_id,
1544 'CUSTOMER_ID',
1545 x_dummy_mkr
1546 );
1547 ELSIF(rhi.customer_account_number <> get_customer_num_from_id(rhi.customer_id,
1548 'CUSTOMER_ID',
1549 x_dummy_mkr
1550 )) THEN
1551 invalid_match_value(rhi.customer_account_number,
1552 get_customer_num_from_id(rhi.customer_id,
1553 'CUSTOMER_ID',
1554 x_dummy_mkr
1555 ),
1556 'CUSTOMER_ACCOUNT_NUMBER'
1557 );
1558 END IF;
1559 END IF;
1560
1561 IF (g_rhi_employee_name_mkr = TRUE) THEN
1562 IF (rhi.employee_name IS NULL) THEN
1563 rhi.employee_name := get_employee_name_from_id(rhi.employee_id,
1564 'EMPLOYEE_ID',
1565 x_dummy_mkr
1566 );
1567 ELSIF(rhi.employee_name <> get_employee_name_from_id(rhi.employee_id,
1568 'EMPLOYEE_ID',
1569 x_dummy_mkr
1570 )) THEN
1571 invalid_match_value(rhi.employee_name,
1572 get_employee_name_from_id(rhi.employee_id,
1573 'EMPLOYEE_ID',
1574 x_dummy_mkr
1575 ),
1576 'EMPLOYEE_NAME'
1577 );
1578 END IF;
1579 END IF;
1580
1581 IF (g_rhi_vendor_site_code_mkr = TRUE) THEN
1582 IF (rhi.vendor_site_code IS NULL) THEN
1583 rhi.vendor_site_code := get_vendor_site_code_from_id(rhi.vendor_site_id,
1584 rhi.vendor_id,
1585 rhi.org_id,
1586 'VENDOR_SITE_ID',
1587 x_dummy_mkr
1588 );
1589 ELSIF(rhi.vendor_site_code <> get_vendor_site_code_from_id(rhi.vendor_site_id,
1590 rhi.vendor_id,
1591 rhi.org_id,
1592 'VENDOR_SITE_ID',
1593 x_dummy_mkr
1594 )) THEN
1595 invalid_match_value(rhi.vendor_site_code,
1596 get_vendor_site_code_from_id(rhi.vendor_site_id,
1597 rhi.vendor_id,
1598 rhi.org_id,
1599 'VENDOR_SITE_ID',
1600 x_dummy_mkr
1601 ),
1602 'VENDOR_SITE_CODE'
1603 );
1604 END IF;
1605 END IF;
1606 END check_rhi_consistency;
1607
1608 PROCEDURE default_rti_from_code(
1609 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
1610 ) IS
1611 x_dummy_mkr BOOLEAN;
1612 BEGIN
1613 IF (rti.customer_id IS NULL) THEN
1614 rti.customer_id := get_customer_id_from_name_num(rti.customer_party_name,
1615 rti.customer_account_number,
1616 'CUSTOMER_PARTY_NAME',
1617 'CUSTOMER_ACCOUNT_NUMBER',
1618 g_rti_cust_party_name_mkr,
1619 g_rti_cust_acc_num_mkr
1620 );
1621 ELSIF(rti.customer_id <> get_customer_id_from_name_num(rti.customer_party_name,
1622 rti.customer_account_number,
1623 'CUSTOMER_PARTY_NAME',
1624 'CUSTOMER_ACCOUNT_NUMBER',
1625 g_rti_cust_party_name_mkr,
1626 g_rti_cust_acc_num_mkr
1627 )) THEN
1628 invalid_match_value(rti.customer_id,
1629 get_customer_id_from_name_num(rti.customer_party_name,
1630 rti.customer_account_number,
1631 'CUSTOMER_PARTY_NAME',
1632 'CUSTOMER_ACCOUNT_NUMBER',
1633 g_rti_cust_party_name_mkr,
1634 g_rti_cust_acc_num_mkr
1635 ),
1636 'CUSTOMER_ID'
1637 );
1638 END IF;
1639
1640 IF (rti.customer_item_id IS NULL) THEN
1641 rti.customer_item_id := get_customer_item_id_from_num(rti.customer_item_num,
1642 rti.customer_id,
1643 'CUSTOMER_ITEM_NUM',
1644 g_rti_cust_item_num_mkr
1645 );
1646 ELSIF(rti.customer_item_id <> get_customer_item_id_from_num(rti.customer_item_num,
1647 rti.customer_id,
1648 'CUSTOMER_ITEM_NUM',
1649 g_rti_cust_item_num_mkr
1650 )) THEN
1651 invalid_match_value(rti.customer_item_id,
1652 get_customer_item_id_from_num(rti.customer_item_num,
1653 rti.customer_id,
1654 'CUSTOMER_ITEM_NUM',
1655 g_rti_cust_item_num_mkr
1656 ),
1657 'CUSTOMER_ITEM_ID'
1658 );
1659 END IF;
1660
1661 IF (rti.deliver_to_location_id IS NULL) THEN
1662 rti.deliver_to_location_id := get_location_id_from_code(rti.deliver_to_location_code,
1663 'DELIVER_TO_LOCATION_CODE',
1664 x_dummy_mkr
1665 );
1666 ELSIF(rti.deliver_to_location_id <> get_location_id_from_code(rti.deliver_to_location_code,
1667 'DELIVER_TO_LOCATION_CODE',
1668 x_dummy_mkr
1669 )) THEN
1670 invalid_match_value(rti.deliver_to_location_id,
1671 get_location_id_from_code(rti.deliver_to_location_code,
1672 'DELIVER_TO_LOCATION_CODE',
1673 x_dummy_mkr
1674 ),
1675 'DELIVER_TO_LOCATION_ID'
1676 );
1677 END IF;
1678
1679 IF (rti.location_id IS NULL) THEN
1680 rti.location_id := get_location_id_from_code(rti.location_code,
1681 'LOCATION_CODE',
1682 x_dummy_mkr
1683 );
1684 ELSIF(rti.location_id <> get_location_id_from_code(rti.location_code,
1685 'LOCATION_CODE',
1686 x_dummy_mkr
1687 )) THEN
1688 invalid_match_value(rti.location_id,
1689 get_location_id_from_code(rti.location_code,
1690 'LOCATION_CODE',
1691 x_dummy_mkr
1692 ),
1693 'LOCATION_ID'
1694 );
1695 END IF;
1696
1697 IF (rti.ship_to_location_id IS NULL) THEN
1698 rti.ship_to_location_id := get_location_id_from_code(rti.ship_to_location_code,
1699 'SHIP_TO_LOCATION_CODE',
1700 x_dummy_mkr
1701 );
1702 ELSIF(rti.ship_to_location_id <> get_location_id_from_code(rti.ship_to_location_code,
1703 'SHIP_TO_LOCATION_CODE',
1704 x_dummy_mkr
1705 )) THEN
1706 invalid_match_value(rti.ship_to_location_id,
1707 get_location_id_from_code(rti.ship_to_location_code,
1708 'SHIP_TO_LOCATION_CODE',
1709 x_dummy_mkr
1710 ),
1711 'SHIP_TO_LOCATION_ID'
1712 );
1713 END IF;
1714
1715 IF (rti.deliver_to_person_id IS NULL) THEN
1716 rti.deliver_to_person_id := get_employee_id_from_name(rti.deliver_to_person_name,
1717 'DELIVER_TO_PERSON_NAME',
1718 g_rti_dlvr_to_prsn_name_mkr
1719 );
1720 ELSIF(rti.deliver_to_person_id <> get_employee_id_from_name(rti.deliver_to_person_name,
1721 'DELIVER_TO_PERSON_NAME',
1722 g_rti_dlvr_to_prsn_name_mkr
1723 )) THEN
1724 invalid_match_value(rti.deliver_to_person_id,
1725 get_employee_id_from_name(rti.deliver_to_person_name,
1726 'DELIVER_TO_PERSON_NAME',
1727 g_rti_dlvr_to_prsn_name_mkr
1728 ),
1729 'DELIVER_TO_PERSON_ID'
1730 );
1731 END IF;
1732
1733 IF (rti.from_organization_id IS NULL) THEN
1734 rti.from_organization_id := get_org_id_from_code(rti.from_organization_code,
1735 'FROM_ORGANIZATION_CODE',
1736 x_dummy_mkr
1737 );
1738 ELSIF(rti.from_organization_id <> get_org_id_from_code(rti.from_organization_code,
1739 'FROM_ORGANIZATION_CODE',
1740 x_dummy_mkr
1741 )) THEN
1742 invalid_match_value(rti.from_organization_id,
1743 get_org_id_from_code(rti.from_organization_code,
1744 'FROM_ORGANIZATION_CODE',
1745 x_dummy_mkr
1746 ),
1747 'FROM_ORGANIZATION_ID'
1748 );
1749 END IF;
1750
1751 IF (rti.intransit_owning_org_id IS NULL) THEN
1752 rti.intransit_owning_org_id := get_org_id_from_code(rti.intransit_owning_org_code,
1753 'INTRANSIT_OWNING_ORG_CODE',
1754 x_dummy_mkr
1755 );
1756 ELSIF(rti.intransit_owning_org_id <> get_org_id_from_code(rti.intransit_owning_org_code,
1757 'INTRANSIT_OWNING_ORG_CODE',
1758 x_dummy_mkr
1759 )) THEN
1760 invalid_match_value(rti.intransit_owning_org_id,
1761 get_org_id_from_code(rti.intransit_owning_org_code,
1762 'INTRANSIT_OWNING_ORG_CODE',
1763 x_dummy_mkr
1764 ),
1765 'INTRANSIT_OWNING_ORG_ID'
1766 );
1767 END IF;
1768
1769 IF (rti.org_id IS NULL) THEN
1770 rti.org_id := get_org_id_from_ou(rti.operating_unit,
1771 'OPERATING_UNIT',
1772 g_rti_ou_mkr
1773 );
1774 ELSIF(rti.org_id <> get_org_id_from_ou(rti.operating_unit,
1775 'OPERATING_UNIT',
1776 g_rti_ou_mkr
1777 )) THEN
1778 invalid_match_value(rti.org_id,
1779 get_org_id_from_ou(rti.operating_unit,
1780 'OPERATING_UNIT',
1781 g_rti_ou_mkr
1782 ),
1783 'ORG_ID'
1784 );
1785 END IF;
1786
1787 IF (rti.to_organization_id IS NULL) THEN
1788 rti.to_organization_id := get_org_id_from_code(rti.to_organization_code,
1789 'TO_ORGANIZATION_CODE',
1790 x_dummy_mkr
1791 );
1792 ELSIF(rti.to_organization_id <> get_org_id_from_code(rti.to_organization_code,
1793 'TO_ORGANIZATION_CODE',
1794 x_dummy_mkr
1795 )) THEN
1796 invalid_match_value(rti.to_organization_id,
1797 get_org_id_from_code(rti.to_organization_code,
1798 'TO_ORGANIZATION_CODE',
1799 x_dummy_mkr
1800 ),
1801 'TO_ORGANIZATION_ID'
1802 );
1803 END IF;
1804
1805 --Bug 7591174 Added a call to get the organization_id from ship_to_location_id
1806 IF (rti.to_organization_id IS NULL) THEN
1807 rti.to_organization_id := get_org_id_from_location_id(rti.ship_to_location_id,
1808 'SHIP_TO_LOCATION_ID',
1809 x_dummy_mkr
1810 );
1811 END IF;
1812 /*
1813 ** Bug#4615534 - Org_id defaulting from inventory organization
1814 ** needs to be done only for In-transit shipments
1815 */
1816 IF(rti.receipt_source_code IN ('INVENTORY','INTERNAL ORDER')) THEN -- Bug 9706173
1817 /* With the TO_ORGANIZATION_ID we need to derive the org_id */
1818 IF (rti.org_id IS NULL) THEN
1819 rti.org_id := get_org_id_from_inv_org_id(rti.to_organization_id);
1820 ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rti.to_organization_id)) THEN
1821 invalid_match_value(rti.org_id,
1822 get_org_id_from_inv_org_id(rti.to_organization_id),
1823 'ORG_ID'
1824 );
1825 END IF;
1826 END IF;
1827
1828 IF (rti.vendor_id IS NULL) THEN
1829 rti.vendor_id := get_vendor_id_from_name(rti.vendor_name,
1830 'VENDOR_NAME',
1831 x_dummy_mkr
1832 );
1833 ELSIF(rti.vendor_id <> get_vendor_id_from_name(rti.vendor_name,
1834 'VENDOR_NAME',
1835 x_dummy_mkr
1836 )) THEN
1837 invalid_match_value(rti.vendor_id,
1838 get_vendor_id_from_name(rti.vendor_name,
1839 'VENDOR_NAME',
1840 x_dummy_mkr
1841 ),
1842 'VENDOR_ID'
1843 );
1844 END IF;
1845
1846 IF (rti.vendor_id IS NULL) THEN
1847 rti.vendor_id := get_vendor_id_from_num(rti.vendor_num,
1848 'VENDOR_NUM',
1849 x_dummy_mkr
1850 );
1851 ELSIF(rti.vendor_id <> get_vendor_id_from_num(rti.vendor_num,
1852 'VENDOR_NUM',
1853 x_dummy_mkr
1854 )) THEN
1855 invalid_match_value(rti.vendor_id,
1856 get_vendor_id_from_num(rti.vendor_num,
1857 'VENDOR_NUM',
1858 x_dummy_mkr
1859 ),
1860 'VENDOR_ID'
1861 );
1862 END IF;
1863
1864 IF (rti.vendor_site_id IS NULL) THEN
1865 rti.vendor_site_id := get_vendor_site_id_from_code(rti.vendor_site_code,
1866 rti.vendor_id,
1867 rti.org_id,
1868 'VENDOR_SITE_CODE',
1869 g_rti_vendor_site_code_mkr
1870 );
1871 ELSIF(rti.vendor_site_id <> get_vendor_site_id_from_code(rti.vendor_site_code,
1872 rti.vendor_id,
1873 rti.org_id,
1874 'VENDOR_SITE_CODE',
1875 g_rti_vendor_site_code_mkr
1876 )) THEN
1877 invalid_match_value(rti.vendor_site_id,
1878 get_vendor_site_id_from_code(rti.vendor_site_code,
1879 rti.vendor_id,
1880 rti.org_id,
1881 'VENDOR_SITE_CODE',
1882 g_rti_vendor_site_code_mkr
1883 ),
1884 'VENDOR_SITE_ID'
1885 );
1886 END IF;
1887
1888 IF (rti.uom_code IS NULL) THEN
1889 rti.uom_code := get_uom_code_from_measure(rti.unit_of_measure,
1890 'UNIT_OF_MEASURE',
1891 x_dummy_mkr
1892 );
1893 ELSIF(rti.uom_code <> get_uom_code_from_measure(rti.unit_of_measure,
1894 'UNIT_OF_MEASURE',
1895 x_dummy_mkr
1896 )) THEN
1897 invalid_match_value(rti.uom_code,
1898 get_uom_code_from_measure(rti.unit_of_measure,
1899 'UNIT_OF_MEASURE',
1900 x_dummy_mkr
1901 ),
1902 'UOM_CODE'
1903 );
1904 END IF;
1905
1906 IF (rti.unit_of_measure IS NULL) THEN
1907 rti.unit_of_measure := get_uom_measure_from_code(rti.uom_code,
1908 'UOM_CODE',
1909 x_dummy_mkr
1910 );
1911 ELSIF(rti.unit_of_measure <> get_uom_measure_from_code(rti.uom_code,
1912 'UOM_CODE',
1913 x_dummy_mkr
1914 )) THEN
1915 invalid_match_value(rti.unit_of_measure,
1916 get_uom_measure_from_code(rti.uom_code,
1917 'UOM_CODE',
1918 x_dummy_mkr
1919 ),
1920 'UNIT_OF_MEASURE'
1921 );
1922 END IF;
1923
1924 IF (rti.secondary_uom_code IS NULL) THEN
1925 rti.secondary_uom_code := get_uom_code_from_measure(rti.secondary_unit_of_measure,
1926 'SECONDARY_UNIT_OF_MEASURE',
1927 x_dummy_mkr
1928 );
1929 ELSIF(rti.secondary_uom_code <> get_uom_code_from_measure(rti.secondary_unit_of_measure,
1930 'SECONDARY_UNIT_OF_MEASURE',
1931 x_dummy_mkr
1932 )) THEN
1933 invalid_match_value(rti.secondary_uom_code,
1934 get_uom_code_from_measure(rti.secondary_unit_of_measure,
1935 'SECONDARY_UNIT_OF_MEASURE',
1936 x_dummy_mkr
1937 ),
1938 'SECONDARY_UOM_CODE'
1939 );
1940 END IF;
1941
1942 IF (rti.secondary_unit_of_measure IS NULL) THEN
1943 rti.secondary_unit_of_measure := get_uom_measure_from_code(rti.secondary_uom_code,
1944 'SECONDARY_UOM_CODE',
1945 x_dummy_mkr
1946 );
1947 ELSIF(rti.secondary_unit_of_measure <> get_uom_measure_from_code(rti.secondary_uom_code,
1948 'SECONDARY_UOM_CODE',
1949 x_dummy_mkr
1950 )) THEN
1951 invalid_match_value(rti.secondary_unit_of_measure,
1952 get_uom_measure_from_code(rti.secondary_uom_code,
1953 'SECONDARY_UOM_CODE',
1954 x_dummy_mkr
1955 ),
1956 'SECONDARY_UNIT_OF_MEASURE'
1957 );
1958 END IF;
1959
1960 IF (rti.locator_id IS NULL) THEN
1961 rti.locator_id := get_locator_id_from_locator(rti.LOCATOR,
1962 rti.to_organization_id,
1963 rti.subinventory,
1964 'LOCATOR',
1965 g_rti_locator_mkr
1966 );
1967 ELSIF(rti.locator_id <> get_locator_id_from_locator(rti.LOCATOR,
1968 rti.to_organization_id,
1969 rti.subinventory,
1970 'LOCATOR',
1971 g_rti_locator_mkr
1972 )) THEN
1973 invalid_match_value(rti.locator_id,
1974 get_locator_id_from_locator(rti.LOCATOR,
1975 rti.to_organization_id,
1976 rti.subinventory,
1977 'LOCATOR',
1978 g_rti_locator_mkr
1979 ),
1980 'LOCATOR_ID'
1981 );
1982 END IF;
1983
1984 IF (rti.routing_header_id IS NULL) THEN
1985 rti.routing_header_id := get_rtng_header_id_from_code(rti.routing_code,
1986 'ROUTING_CODE',
1987 x_dummy_mkr
1988 );
1989 ELSIF(rti.routing_header_id <> get_rtng_header_id_from_code(rti.routing_code,
1990 'ROUTING_CODE',
1991 x_dummy_mkr
1992 )) THEN
1993 invalid_match_value(rti.routing_header_id,
1994 get_rtng_header_id_from_code(rti.routing_code,
1995 'ROUTING_CODE',
1996 x_dummy_mkr
1997 ),
1998 'ROUTING_HEADER_ID'
1999 );
2000 END IF;
2001
2002 IF (rti.routing_step_id IS NULL) THEN
2003 rti.routing_step_id := get_rtng_step_id_from_code(rti.routing_step,
2004 'ROUTING_STEP',
2005 x_dummy_mkr
2006 );
2007 ELSIF(rti.routing_step_id <> get_rtng_step_id_from_code(rti.routing_step,
2008 'ROUTING_STEP',
2009 x_dummy_mkr
2010 )) THEN
2011 invalid_match_value(rti.routing_step_id,
2012 get_rtng_step_id_from_code(rti.routing_step,
2013 'ROUTING_STEP',
2014 x_dummy_mkr
2015 ),
2016 'ROUTING_STEP_ID'
2017 );
2018 END IF;
2019
2020 IF (rti.wip_entity_id IS NULL) THEN
2021 rti.wip_entity_id := get_wip_entity_id_from_name(rti.wip_entity_name,
2022 rti.to_organization_id,
2023 'WIP_ENTITY_NAME',
2024 g_rti_wip_entity_name_mkr
2025 );
2026 ELSIF(rti.wip_entity_id <> get_wip_entity_id_from_name(rti.wip_entity_name,
2027 rti.to_organization_id,
2028 'WIP_ENTITY_NAME',
2029 g_rti_wip_entity_name_mkr
2030 )) THEN
2031 invalid_match_value(rti.wip_entity_id,
2032 get_wip_entity_id_from_name(rti.wip_entity_name,
2033 rti.to_organization_id,
2034 'WIP_ENTITY_NAME',
2035 g_rti_wip_entity_name_mkr
2036 ),
2037 'WIP_ENTITY_ID'
2038 );
2039 END IF;
2040
2041 /* Bug fix 5383556 : commenting this code as Item ID should not be derived from Item Description, since
2042 A. It is possible that more than one item have the same description.
2043 B. An One Time Item's description could match a description of a defined Item.
2044
2045 IF (rti.item_id IS NULL) THEN
2046 rti.item_id := get_item_id_from_description(rti.item_description,
2047 rti.to_organization_id,
2048 'ITEM_DESCRIPTION',
2049 g_rti_item_description_mkr
2050 );
2051 ELSIF(rti.item_id <> get_item_id_from_description(rti.item_description,
2052 rti.to_organization_id,
2053 'ITEM_DESCRIPTION',
2054 g_rti_item_description_mkr
2055 )) THEN
2056 invalid_match_value(rti.item_id,
2057 get_item_id_from_description(rti.item_description,
2058 rti.to_organization_id,
2059 'ITEM_DESCRIPTION',
2060 g_rti_item_description_mkr
2061 ),
2062 'ITEM_ID'
2063 );
2064 END IF;
2065 */
2066 IF (rti.item_id IS NULL) THEN
2067 rti.item_id := get_item_id_from_num(rti.item_num,
2068 rti.to_organization_id,
2069 'ITEM_NUM',
2070 g_rti_item_num_mkr
2071 );
2072 ELSIF(rti.item_id <> get_item_id_from_num(rti.item_num,
2073 rti.to_organization_id,
2074 'ITEM_NUM',
2075 g_rti_item_num_mkr
2076 )) THEN
2077 invalid_match_value(rti.item_id,
2078 get_item_id_from_num(rti.item_num,
2079 rti.to_organization_id,
2080 'ITEM_NUM',
2081 g_rti_item_num_mkr
2082 ),
2083 'ITEM_ID'
2084 );
2085 END IF;
2086 /** Bug 5516651: Bypassed the item description validation.
2087 * Reason:
2088 * When creating PO we can change the item description and while
2089 * receiving RTI record is populated with the item description
2090 * mentioned in the PO.
2091 * if we validate the RTI.item description with the item description got
2092 * from master item table, validation will fail.
2093 * So, bypassing the item description validation
2094 */
2095 IF (rti.item_description IS NULL) THEN
2096 rti.item_description := get_item_description_from_id(rti.item_id,
2097 rti.to_organization_id,
2098 'ITEM_ID',
2099 x_dummy_mkr
2100 );
2101 /* ELSIF(rti.item_description <> get_item_description_from_id(rti.item_id,
2102 rti.to_organization_id,
2103 'ITEM_ID',
2104 x_dummy_mkr
2105 )) THEN
2106 invalid_match_value(rti.item_description,
2107 get_item_description_from_id(rti.item_id,
2108 rti.to_organization_id,
2109 'ITEM_ID',
2110 x_dummy_mkr
2111 ),
2112 'ITEM_DESCRIPTION'
2113 );*/ --Bug 5516651
2114 END IF;
2115
2116 IF (rti.item_num IS NULL) THEN
2117 rti.item_num := get_item_num_from_id(rti.item_id,
2118 rti.to_organization_id,
2119 'ITEM_ID',
2120 x_dummy_mkr
2121 );
2122 ELSIF(rti.item_num <> get_item_num_from_id(rti.item_id,
2123 rti.to_organization_id,
2124 'ITEM_ID',
2125 x_dummy_mkr
2126 )) THEN
2127 invalid_match_value(rti.item_num,
2128 get_item_num_from_id(rti.item_id,
2129 rti.to_organization_id,
2130 'ITEM_ID',
2131 x_dummy_mkr
2132 ),
2133 'ITEM_NUM'
2134 );
2135 END IF;
2136
2137 IF (rti.substitute_item_id IS NULL) THEN
2138 rti.substitute_item_id := get_item_id_from_num(rti.substitute_item_num,
2139 rti.to_organization_id,
2140 'SUBSTITUTE_ITEM_NUM',
2141 g_rti_sub_item_num_mkr
2142 );
2143 ELSIF(rti.substitute_item_id <> get_item_id_from_num(rti.substitute_item_num,
2144 rti.to_organization_id,
2145 'SUBSTITUTE_ITEM_NUM',
2146 g_rti_sub_item_num_mkr
2147 )) THEN
2148 invalid_match_value(rti.substitute_item_id,
2149 get_item_id_from_num(rti.substitute_item_num,
2150 rti.to_organization_id,
2151 'SUBSTITUTE_ITEM_NUM',
2152 g_rti_sub_item_num_mkr
2153 ),
2154 'SUBSTITUTE_ITEM_ID'
2155 );
2156 END IF;
2157
2158 IF (rti.substitute_item_num IS NULL) THEN
2159 rti.substitute_item_num := get_item_num_from_id(rti.substitute_item_id,
2160 rti.to_organization_id,
2161 'SUBSTITUTE_ITEM_ID',
2162 x_dummy_mkr
2163 );
2164 ELSIF(rti.substitute_item_num <> get_item_num_from_id(rti.substitute_item_id,
2165 rti.to_organization_id,
2166 'SUBSTITUTE_ITEM_ID',
2167 x_dummy_mkr
2168 )) THEN
2169 invalid_match_value(rti.substitute_item_num,
2170 get_item_num_from_id(rti.substitute_item_id,
2171 rti.to_organization_id,
2172 'SUBSTITUTE_ITEM_ID',
2173 x_dummy_mkr
2174 ),
2175 'SUBSTITUTE_ITEM_NUM'
2176 );
2177 END IF;
2178 /* Not processing TRANSFER_LICENSE_PLATE_NUMBER or WIP_LINE_CODE*/
2179 END default_rti_from_code;
2180
2181 PROCEDURE check_rti_consistency(
2182 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
2183 ) IS
2184 x_dummy_mkr BOOLEAN;
2185 BEGIN
2186 IF (g_rti_ou_mkr = TRUE) THEN
2187 IF (rti.operating_unit IS NULL) THEN
2188 rti.operating_unit := get_ou_from_org_id(rti.org_id,
2189 'ORG_ID',
2190 x_dummy_mkr
2191 );
2192 ELSIF(rti.operating_unit <> get_ou_from_org_id(rti.org_id,
2193 'ORG_ID',
2194 x_dummy_mkr
2195 )) THEN
2196 invalid_match_value(rti.operating_unit,
2197 get_ou_from_org_id(rti.org_id,
2198 'ORG_ID',
2199 x_dummy_mkr
2200 ),
2201 'OPERATING_UNIT'
2202 );
2203 END IF;
2204 END IF;
2205
2206 IF (g_rti_cust_party_name_mkr = TRUE) THEN
2207 IF (rti.customer_party_name IS NULL) THEN
2208 rti.customer_party_name := get_customer_name_from_id(rti.customer_id,
2209 'CUSTOMER_ID',
2210 x_dummy_mkr
2211 );
2212 ELSIF(rti.customer_party_name <> get_customer_name_from_id(rti.customer_id,
2213 'CUSTOMER_ID',
2214 x_dummy_mkr
2215 )) THEN
2216 invalid_match_value(rti.customer_party_name,
2217 get_customer_name_from_id(rti.customer_id,
2218 'CUSTOMER_ID',
2219 x_dummy_mkr
2220 ),
2221 'CUSTOMER_PARTY_NAME'
2222 );
2223 END IF;
2224 END IF;
2225
2226 IF (g_rti_cust_acc_num_mkr = TRUE) THEN
2227 IF (rti.customer_account_number IS NULL) THEN
2228 rti.customer_account_number := get_customer_num_from_id(rti.customer_id,
2229 'CUSTOMER_ID',
2230 x_dummy_mkr
2231 );
2232 ELSIF(rti.customer_account_number <> get_customer_num_from_id(rti.customer_id,
2233 'CUSTOMER_ID',
2234 x_dummy_mkr
2235 )) THEN
2236 invalid_match_value(rti.customer_account_number,
2237 get_customer_num_from_id(rti.customer_id,
2238 'CUSTOMER_ID',
2239 x_dummy_mkr
2240 ),
2241 'CUSTOMER_ACCOUNT_NUMBER'
2242 );
2243 END IF;
2244 END IF;
2245
2246 IF (g_rti_cust_item_num_mkr = TRUE) THEN
2247 IF (rti.customer_item_num IS NULL) THEN
2248 rti.customer_item_num := get_customer_item_num_from_id(rti.customer_item_id,
2249 'CUSTOMER_ITEM_ID',
2250 x_dummy_mkr
2251 );
2252 ELSIF(rti.customer_item_num <> get_customer_item_num_from_id(rti.customer_item_id,
2253 'CUSTOMER_ITEM_ID',
2254 x_dummy_mkr
2255 )) THEN
2256 invalid_match_value(rti.customer_item_num,
2257 get_customer_item_num_from_id(rti.customer_item_id,
2258 'CUSTOMER_ITEM_ID',
2259 x_dummy_mkr
2260 ),
2261 'CUSTOMER_ITEM_NUM'
2262 );
2263 END IF;
2264 END IF;
2265
2266 IF (g_rti_employee_name_mkr = TRUE) THEN
2267 IF (rti.deliver_to_person_name IS NULL) THEN
2268 rti.deliver_to_person_name := get_employee_name_from_id(rti.deliver_to_person_id,
2269 'DELIVER_TO_PERSON_ID',
2270 x_dummy_mkr
2271 );
2272 ELSIF(rti.deliver_to_person_name <> get_employee_name_from_id(rti.deliver_to_person_id,
2273 'DELIVER_TO_PERSON_ID',
2274 x_dummy_mkr
2275 )) THEN
2276 invalid_match_value(rti.deliver_to_person_name,
2277 get_employee_name_from_id(rti.deliver_to_person_id,
2278 'DELIVER_TO_PERSON_ID',
2279 x_dummy_mkr
2280 ),
2281 'DELIVER_TO_PERSON_NAME'
2282 );
2283 END IF;
2284 END IF;
2285
2286 IF (g_rti_dlvr_to_prsn_name_mkr = TRUE) THEN
2287 IF (rti.vendor_site_code IS NULL) THEN
2288 rti.vendor_site_code := get_vendor_site_code_from_id(rti.vendor_site_id,
2289 rti.vendor_id,
2290 rti.org_id,
2291 'VENDOR_SITE_ID',
2292 x_dummy_mkr
2293 );
2294 ELSIF(rti.vendor_site_code <> get_vendor_site_code_from_id(rti.vendor_site_id,
2295 rti.vendor_id,
2296 rti.org_id,
2297 'VENDOR_SITE_ID',
2298 x_dummy_mkr
2299 )) THEN
2300 invalid_match_value(rti.vendor_site_code,
2301 get_vendor_site_code_from_id(rti.vendor_site_id,
2302 rti.vendor_id,
2303 rti.org_id,
2304 'VENDOR_SITE_ID',
2305 x_dummy_mkr
2306 ),
2307 'VENDOR_SITE_CODE'
2308 );
2309 END IF;
2310 END IF;
2311
2312 IF (g_rti_vendor_site_code_mkr = TRUE) THEN
2313 IF (rti.vendor_site_code IS NULL) THEN
2314 rti.vendor_site_code := get_vendor_site_code_from_id(rti.vendor_site_id,
2315 rti.vendor_id,
2316 rti.org_id,
2317 'VENDOR_SITE_ID',
2318 x_dummy_mkr
2319 );
2320 ELSIF(rti.vendor_site_code <> get_vendor_site_code_from_id(rti.vendor_site_id,
2321 rti.vendor_id,
2322 rti.org_id,
2323 'VENDOR_SITE_ID',
2324 x_dummy_mkr
2325 )) THEN
2326 invalid_match_value(rti.vendor_site_code,
2327 get_vendor_site_code_from_id(rti.vendor_site_id,
2328 rti.vendor_id,
2329 rti.org_id,
2330 'VENDOR_SITE_ID',
2331 x_dummy_mkr
2332 ),
2333 'VENDOR_SITE_CODE'
2334 );
2335 END IF;
2336 END IF;
2337
2338 IF (g_rti_locator_mkr = TRUE) THEN
2339 IF (rti.LOCATOR IS NULL) THEN
2340 rti.LOCATOR := get_locator_from_locator_id(rti.locator_id,
2341 rti.to_organization_id,
2342 rti.subinventory,
2343 'LOCATOR_ID',
2344 x_dummy_mkr
2345 );
2346 ELSIF(rti.LOCATOR <> get_locator_from_locator_id(rti.locator_id,
2347 rti.to_organization_id,
2348 rti.subinventory,
2349 'LOCATOR_ID',
2350 x_dummy_mkr
2351 )) THEN
2352 invalid_match_value(rti.LOCATOR,
2353 get_locator_from_locator_id(rti.locator_id,
2354 rti.to_organization_id,
2355 rti.subinventory,
2356 'LOCATOR_ID',
2357 x_dummy_mkr
2358 ),
2359 'LOCATOR'
2360 );
2361 END IF;
2362 END IF;
2363
2364 IF (g_rti_wip_entity_name_mkr = TRUE) THEN
2365 IF (rti.wip_entity_name IS NULL) THEN
2366 rti.wip_entity_name := get_wip_entity_name_from_id(rti.wip_entity_id,
2367 rti.to_organization_id,
2368 'WIP_ENTITY_ID',
2369 x_dummy_mkr
2370 );
2371 ELSIF(rti.wip_entity_name <> get_wip_entity_name_from_id(rti.wip_entity_id,
2372 rti.to_organization_id,
2373 'WIP_ENTITY_ID',
2374 x_dummy_mkr
2375 )) THEN
2376 invalid_match_value(rti.wip_entity_name,
2377 get_wip_entity_name_from_id(rti.wip_entity_id,
2378 rti.to_organization_id,
2379 'WIP_ENTITY_ID',
2380 x_dummy_mkr
2381 ),
2382 'WIP_ENTITY_NAME'
2383 );
2384 END IF;
2385 END IF;
2386
2387 IF (g_rti_item_description_mkr = TRUE) THEN
2388 IF (rti.item_description IS NULL) THEN
2389 rti.item_description := get_item_description_from_id(rti.item_id,
2390 rti.to_organization_id,
2391 'ITEM_ID',
2392 x_dummy_mkr
2393 );
2394 /* ELSIF(rti.item_description <> get_item_description_from_id(rti.item_id,
2395 rti.to_organization_id,
2396 'ITEM_ID',
2397 x_dummy_mkr
2398 )) THEN
2399 invalid_match_value(rti.item_description,
2400 get_item_description_from_id(rti.item_id,
2401 rti.to_organization_id,
2402 'ITEM_ID',
2403 x_dummy_mkr
2404 ),
2405 'ITEM_DESCRIPTION'
2406 );*/ --Bug 5516651
2407 END IF;
2408 END IF;
2409
2410 IF (g_rti_item_num_mkr = TRUE) THEN
2411 IF (rti.item_num IS NULL) THEN
2412 rti.item_num := get_item_num_from_id(rti.item_id,
2413 rti.to_organization_id,
2414 'ITEM_ID',
2415 x_dummy_mkr
2416 );
2417 ELSIF(rti.item_num <> get_item_num_from_id(rti.item_id,
2418 rti.to_organization_id,
2419 'ITEM_ID',
2420 x_dummy_mkr
2421 )) THEN
2422 invalid_match_value(rti.item_num,
2423 get_item_num_from_id(rti.item_id,
2424 rti.to_organization_id,
2425 'ITEM_ID',
2426 x_dummy_mkr
2427 ),
2428 'ITEM_NUM'
2429 );
2430 END IF;
2431 END IF;
2432
2433 IF (g_rti_sub_item_num_mkr = TRUE) THEN
2434 IF (rti.substitute_item_num IS NULL) THEN
2435 rti.substitute_item_num := get_item_num_from_id(rti.substitute_item_id,
2436 rti.to_organization_id,
2437 'SUBSTITUTE_ITEM_ID',
2438 x_dummy_mkr
2439 );
2440 ELSIF(rti.substitute_item_num <> get_item_num_from_id(rti.substitute_item_id,
2441 rti.to_organization_id,
2442 'SUBSTITUTE_ITEM_ID',
2443 x_dummy_mkr
2444 )) THEN
2445 invalid_match_value(rti.substitute_item_num,
2446 get_item_num_from_id(rti.substitute_item_id,
2447 rti.to_organization_id,
2448 'SUBSTITUTE_ITEM_ID',
2449 x_dummy_mkr
2450 ),
2451 'SUBSTITUTE_ITEM_NUM'
2452 );
2453 END IF;
2454 END IF;
2455 END check_rti_consistency;
2456
2457 /****************************************/
2458 /* SECTION 4: default from backing docs */
2459 /****************************************/
2460 PROCEDURE default_rhi_from_rsh(
2461 rhi IN OUT NOCOPY rcv_headers_interface%ROWTYPE
2462 ) IS
2463 rsh rcv_shipment_headers%ROWTYPE;
2464 BEGIN
2465 IF (rhi.receipt_header_id IS NOT NULL) THEN
2466 rsh := rcv_table_functions.get_rsh_row_from_id(rhi.receipt_header_id);
2467 ELSIF(rhi.shipment_num IS NOT NULL) THEN
2468 --Bug 9005670 Added receipt_source_code in the below procedre call.
2469 rsh := rcv_table_functions.get_rsh_row_from_num(rhi.shipment_num,
2470 rhi.vendor_id,
2471 rhi.vendor_site_id,
2472 rhi.ship_to_organization_id,
2473 rhi.shipped_date,
2474 rhi.receipt_source_code,
2475 no_data_found_is_error => FALSE
2476 );
2477 END IF;
2478
2479 IF (rsh.shipment_header_id IS NULL) THEN
2480 RETURN;
2481 END IF;
2482
2483 IF (rhi.from_organization_id IS NULL) THEN
2484 rhi.from_organization_id := rsh.organization_id;
2485 ELSIF(rhi.from_organization_id <> rsh.organization_id) THEN
2486 invalid_match_value(rhi.from_organization_id,
2487 rsh.organization_id,
2488 'FROM_ORGANIZATION_ID'
2489 );
2490 END IF;
2491
2492 IF (rhi.receipt_header_id IS NULL) THEN
2493 rhi.receipt_header_id := rsh.shipment_header_id;
2494 ELSIF(rhi.receipt_header_id <> rsh.shipment_header_id) THEN
2495 invalid_match_value(rhi.receipt_header_id,
2496 rsh.shipment_header_id,
2497 'RECEIPT_HEADER_ID'
2498 );
2499 END IF;
2500
2501 IF (rhi.receipt_num IS NULL) THEN
2502 rhi.receipt_num := rsh.receipt_num;
2503 ELSIF(rhi.receipt_num <> rsh.receipt_num) THEN
2504 invalid_match_value(rhi.receipt_num,
2505 rsh.receipt_num,
2506 'RECEIPT_NUM'
2507 );
2508 END IF;
2509
2510 IF (rhi.ship_to_organization_id IS NULL) THEN
2511 rhi.ship_to_organization_id := rsh.ship_to_org_id;
2512 ELSIF(rhi.ship_to_organization_id <> rsh.ship_to_org_id) THEN
2513 invalid_match_value(rhi.ship_to_organization_id,
2514 rsh.ship_to_org_id,
2515 'SHIP_TO_ORGANIZATION_ID'
2516 );
2517 END IF;
2518
2519 /*
2520 ** Bug#4615534 - Org_id defaulting from inventory organization
2521 ** needs to be done only for In-transit shipments
2522 */
2523 IF(rhi.receipt_source_code IN ('INVENTORY','INTERNAL ORDER')) THEN -- Bug 9706173
2524 IF (rhi.org_id IS NULL) THEN
2525 rhi.org_id := get_org_id_from_inv_org_id(rsh.ship_to_org_id);
2526 ELSIF(rhi.org_id <> get_org_id_from_inv_org_id(rsh.ship_to_org_id)) THEN
2527 invalid_match_value(rhi.org_id,
2528 get_org_id_from_inv_org_id(rsh.ship_to_org_id),
2529 'ORG_ID'
2530 );
2531 END IF;
2532 END IF;
2533
2534 IF (rhi.ship_from_location_id IS NULL) THEN
2535 rhi.ship_from_location_id := rsh.ship_from_location_id;
2536 ELSIF(rhi.ship_from_location_id <> rsh.ship_from_location_id) THEN
2537 invalid_match_value(rhi.ship_from_location_id,
2538 rsh.ship_from_location_id,
2539 'SHIP_FROM_LOCATION_ID'
2540 );
2541 END IF;
2542
2543 IF (rhi.attribute1 IS NULL) THEN
2544 rhi.attribute1 := rsh.attribute1;
2545 END IF;
2546
2547 IF (rhi.attribute10 IS NULL) THEN
2548 rhi.attribute10 := rsh.attribute10;
2549 END IF;
2550
2551 IF (rhi.attribute11 IS NULL) THEN
2552 rhi.attribute11 := rsh.attribute11;
2553 END IF;
2554
2555 IF (rhi.attribute12 IS NULL) THEN
2556 rhi.attribute12 := rsh.attribute12;
2557 END IF;
2558
2559 IF (rhi.attribute13 IS NULL) THEN
2560 rhi.attribute13 := rsh.attribute13;
2561 END IF;
2562
2563 IF (rhi.attribute14 IS NULL) THEN
2564 rhi.attribute14 := rsh.attribute14;
2565 END IF;
2566
2567 IF (rhi.attribute15 IS NULL) THEN
2568 rhi.attribute15 := rsh.attribute15;
2569 END IF;
2570
2571 IF (rhi.attribute2 IS NULL) THEN
2572 rhi.attribute2 := rsh.attribute2;
2573 END IF;
2574
2575 IF (rhi.attribute3 IS NULL) THEN
2576 rhi.attribute3 := rsh.attribute3;
2577 END IF;
2578
2579 IF (rhi.attribute4 IS NULL) THEN
2580 rhi.attribute4 := rsh.attribute4;
2581 END IF;
2582
2583 IF (rhi.attribute5 IS NULL) THEN
2584 rhi.attribute5 := rsh.attribute5;
2585 END IF;
2586
2587 IF (rhi.attribute6 IS NULL) THEN
2588 rhi.attribute6 := rsh.attribute6;
2589 END IF;
2590
2591 IF (rhi.attribute7 IS NULL) THEN
2592 rhi.attribute7 := rsh.attribute7;
2593 END IF;
2594
2595 IF (rhi.attribute8 IS NULL) THEN
2596 rhi.attribute8 := rsh.attribute8;
2597 END IF;
2598
2599 IF (rhi.attribute9 IS NULL) THEN
2600 rhi.attribute9 := rsh.attribute9;
2601 END IF;
2602
2603 IF (rhi.attribute_category IS NULL) THEN
2604 rhi.attribute_category := rsh.attribute_category;
2605 END IF;
2606
2607 IF (rhi.bill_of_lading IS NULL) THEN
2608 rhi.bill_of_lading := rsh.bill_of_lading;
2609 END IF;
2610
2611 IF (rhi.carrier_equipment IS NULL) THEN
2612 rhi.carrier_equipment := rsh.carrier_equipment;
2613 END IF;
2614
2615 IF (rhi.carrier_method IS NULL) THEN
2616 rhi.carrier_method := rsh.carrier_method;
2617 END IF;
2618
2619 IF (rhi.comments IS NULL) THEN
2620 rhi.comments := rsh.comments;
2621 END IF;
2622
2623 IF (rhi.conversion_rate IS NULL) THEN
2624 rhi.conversion_rate := TO_NUMBER(rsh.conversion_rate);
2625 END IF;
2626
2627 IF (rhi.conversion_rate_date IS NULL) THEN
2628 rhi.conversion_rate_date := rsh.conversion_date;
2629 END IF;
2630
2631 IF (rhi.conversion_rate_type IS NULL) THEN
2632 rhi.conversion_rate_type := rsh.conversion_rate_type;
2633 END IF;
2634
2635 IF (rhi.currency_code IS NULL) THEN
2636 rhi.currency_code := rsh.currency_code;
2637 END IF;
2638
2639 IF (rhi.customer_id IS NULL) THEN
2640 rhi.customer_id := rsh.customer_id;
2641 END IF;
2642
2643 IF (rhi.customer_site_id IS NULL) THEN
2644 rhi.customer_site_id := rsh.customer_site_id;
2645 END IF;
2646
2647 IF (rhi.edi_control_num IS NULL) THEN
2648 rhi.edi_control_num := rsh.edi_control_num;
2649 END IF;
2650
2651 IF (rhi.employee_id IS NULL) THEN
2652 rhi.employee_id := rsh.employee_id;
2653 END IF;
2654
2655 IF (rhi.expected_receipt_date IS NULL) THEN
2656 rhi.expected_receipt_date := rsh.expected_receipt_date;
2657 END IF;
2658
2659 IF (rhi.freight_amount IS NULL) THEN
2660 rhi.freight_amount := rsh.freight_amount;
2661 END IF;
2662
2663 IF (rhi.freight_bill_number IS NULL) THEN
2664 rhi.freight_bill_number := rsh.freight_bill_number;
2665 END IF;
2666
2667 IF (rhi.freight_carrier_code IS NULL) THEN
2668 rhi.freight_carrier_code := rsh.freight_carrier_code;
2669 END IF;
2670
2671 IF (rhi.freight_terms IS NULL) THEN
2672 rhi.freight_terms := rsh.freight_terms;
2673 END IF;
2674
2675 IF (rhi.gross_weight IS NULL) THEN
2676 rhi.gross_weight := rsh.gross_weight;
2677 END IF;
2678
2679 IF (rhi.gross_weight_uom_code IS NULL) THEN
2680 rhi.gross_weight_uom_code := rsh.gross_weight_uom_code;
2681 END IF;
2682
2683 IF (rhi.hazard_class IS NULL) THEN
2684 rhi.hazard_class := rsh.hazard_class;
2685 END IF;
2686
2687 IF (rhi.hazard_code IS NULL) THEN
2688 rhi.hazard_code := rsh.hazard_code;
2689 END IF;
2690
2691 IF (rhi.hazard_description IS NULL) THEN
2692 rhi.hazard_description := rsh.hazard_description;
2693 END IF;
2694
2695 IF (rhi.invoice_date IS NULL) THEN
2696 rhi.invoice_date := rsh.invoice_date;
2697 END IF;
2698
2699 IF (rhi.invoice_num IS NULL) THEN
2700 rhi.invoice_num := rsh.invoice_num;
2701 END IF;
2702
2703 IF (rhi.invoice_status_code IS NULL) THEN
2704 rhi.invoice_status_code := rsh.invoice_status_code;
2705 END IF;
2706
2707 IF (rhi.location_id IS NULL) THEN
2708 rhi.location_id := rsh.ship_to_location_id;
2709 END IF;
2710
2711 IF (rhi.net_weight IS NULL) THEN
2712 rhi.net_weight := rsh.net_weight;
2713 END IF;
2714
2715 IF (rhi.net_weight_uom_code IS NULL) THEN
2716 rhi.net_weight_uom_code := rsh.net_weight_uom_code;
2717 END IF;
2718
2719 IF (rhi.notice_creation_date IS NULL) THEN
2720 rhi.notice_creation_date := rsh.notice_creation_date;
2721 END IF;
2722
2723 IF (rhi.num_of_containers IS NULL) THEN
2724 rhi.num_of_containers := rsh.num_of_containers;
2725 END IF;
2726
2727 IF (rhi.packaging_code IS NULL) THEN
2728 rhi.packaging_code := rsh.packaging_code;
2729 END IF;
2730
2731 IF (rhi.packing_slip IS NULL) THEN
2732 rhi.packing_slip := rsh.packing_slip;
2733 END IF;
2734
2735 IF (rhi.payment_terms_id IS NULL) THEN
2736 rhi.payment_terms_id := rsh.payment_terms_id;
2737 END IF;
2738
2739 IF (rhi.receipt_source_code IS NULL) THEN
2740 rhi.receipt_source_code := rsh.receipt_source_code;
2741 END IF;
2742
2743 IF (rhi.remit_to_site_id IS NULL) THEN
2744 rhi.remit_to_site_id := rsh.remit_to_site_id;
2745 END IF;
2746
2747 IF (rhi.shipment_num IS NULL) THEN
2748 rhi.shipment_num := rsh.shipment_num;
2749 END IF;
2750
2751 IF (rhi.shipped_date IS NULL) THEN
2752 rhi.shipped_date := rsh.shipped_date;
2753 END IF;
2754
2755 IF (rhi.special_handling_code IS NULL) THEN
2756 rhi.special_handling_code := rsh.special_handling_code;
2757 END IF;
2758
2759 IF (rhi.tar_weight IS NULL) THEN
2760 rhi.tar_weight := rsh.tar_weight;
2761 END IF;
2762
2763 IF (rhi.tar_weight_uom_code IS NULL) THEN
2764 rhi.tar_weight_uom_code := rsh.tar_weight_uom_code;
2765 END IF;
2766
2767 IF (rhi.tax_amount IS NULL) THEN
2768 rhi.tax_amount := rsh.tax_amount;
2769 END IF;
2770
2771 IF (rhi.tax_name IS NULL) THEN
2772 rhi.tax_name := rsh.tax_name;
2773 END IF;
2774
2775 IF (rhi.usggl_transaction_code IS NULL) THEN
2776 rhi.usggl_transaction_code := rsh.ussgl_transaction_code;
2777 END IF;
2778
2779 IF (rhi.vendor_id IS NULL) THEN
2780 rhi.vendor_id := rsh.vendor_id;
2781 END IF;
2782
2783 IF (rhi.vendor_site_id IS NULL) THEN
2784 rhi.vendor_site_id := rsh.vendor_site_id;
2785 END IF;
2786
2787 IF (rhi.waybill_airbill_num IS NULL) THEN
2788 rhi.waybill_airbill_num := rsh.waybill_airbill_num;
2789 END IF;
2790 END default_rhi_from_rsh;
2791
2792 PROCEDURE default_rti_from_rhi(
2793 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
2794 ) IS
2795 rhi rcv_headers_interface%ROWTYPE;
2796 BEGIN
2797 /* If this row does not have a header_interface_id it is possible that the
2798 parent_interface_txn does. This extra query is free because of caching */
2799 IF ( rti.header_interface_id IS NULL
2800 AND rti.parent_interface_txn_id IS NOT NULL) THEN
2801 rti.header_interface_id := rcv_table_functions.get_rti_row_from_id(rti.parent_interface_txn_id).header_interface_id;
2802 END IF;
2803
2804 IF (rti.header_interface_id IS NOT NULL) THEN
2805 rhi := rcv_table_functions.get_rhi_row_from_id(rti.header_interface_id);
2806 END IF;
2807
2808 IF (rhi.header_interface_id IS NULL) THEN
2809 RETURN;
2810 END IF;
2811
2812 /* it is ok if a header has previously been processed. */
2813 IF (rhi.processing_status_code = 'ERROR') THEN
2814 rcv_error_pkg.set_error_message('RCV_HEADER_IS_ERROR');
2815 rcv_error_pkg.set_token('HEADER_INTERFACE_ID', rhi.header_interface_id);
2816 rcv_error_pkg.log_interface_error('HEADER_INTERFACE_ID');
2817 END IF;
2818
2819 IF ( rhi.GROUP_ID IS NULL
2820 AND rti.GROUP_ID IS NOT NULL) THEN
2821 rhi.GROUP_ID := rti.GROUP_ID;
2822 rcv_table_functions.update_rhi_row(rhi);
2823 END IF;
2824
2825 IF (rti.GROUP_ID IS NULL) THEN
2826 rti.GROUP_ID := rhi.GROUP_ID;
2827 ELSIF(rti.GROUP_ID <> rhi.GROUP_ID) THEN
2828 invalid_match_value(rti.GROUP_ID,
2829 rhi.GROUP_ID,
2830 'GROUP_ID'
2831 );
2832 END IF;
2833
2834 IF (rti.header_interface_id IS NULL) THEN
2835 rti.header_interface_id := rhi.header_interface_id;
2836 ELSIF(rti.header_interface_id <> rhi.header_interface_id) THEN
2837 invalid_match_value(rti.header_interface_id,
2838 rhi.header_interface_id,
2839 'HEADER_INTERFACE_ID'
2840 );
2841 END IF;
2842
2843 IF (rti.receipt_source_code IS NULL) THEN
2844 rti.receipt_source_code := rhi.receipt_source_code;
2845 ELSIF(rti.receipt_source_code <> rhi.receipt_source_code) THEN
2846 invalid_match_value(rti.receipt_source_code,
2847 rhi.receipt_source_code,
2848 'RECEIPT_SOURCE_CODE'
2849 );
2850 END IF;
2851
2852 IF (rti.shipment_header_id IS NULL) THEN
2853 rti.shipment_header_id := rhi.receipt_header_id;
2854 ELSIF(rti.shipment_header_id <> rhi.receipt_header_id) THEN
2855 invalid_match_value(rti.shipment_header_id,
2856 rhi.receipt_header_id,
2857 'SHIPMENT_HEADER_ID'
2858 );
2859 END IF;
2860
2861 IF (rti.shipment_num IS NULL) THEN
2862 rti.shipment_num := rhi.shipment_num;
2863 ELSIF(rti.shipment_num <> rhi.shipment_num) THEN
2864 invalid_match_value(rti.shipment_num,
2865 rhi.shipment_num,
2866 'SHIPMENT_NUM'
2867 );
2868 END IF;
2869
2870 /** WDK: Still not sure on what is or isn't allowed with
2871 *** multiple orgs in under the same header. In the meantime
2872 *** I am relaxing this requirement
2873 **/
2874 /*
2875 IF (rti.from_organization_code IS NULL) THEN
2876 rti.from_organization_code := rhi.from_organization_code;
2877 ELSIF(rti.from_organization_code <> rhi.from_organization_code) THEN
2878 invalid_match_value(rti.from_organization_code,
2879 rhi.from_organization_code,
2880 'FROM_ORGANIZATION_CODE'
2881 );
2882 END IF;
2883
2884 IF (rti.from_organization_id IS NULL) THEN
2885 rti.from_organization_id := rhi.from_organization_id;
2886 ELSIF(rti.from_organization_id <> rhi.from_organization_id) THEN
2887 invalid_match_value(rti.from_organization_id,
2888 rhi.from_organization_id,
2889 'FROM_ORGANIZATION_ID'
2890 );
2891 END IF;
2892
2893 IF (rti.to_organization_code IS NULL) THEN
2894 rti.to_organization_code := rhi.ship_to_organization_code;
2895 ELSIF(rti.to_organization_code <> rhi.ship_to_organization_code) THEN
2896 invalid_match_value(rti.to_organization_code,
2897 rhi.ship_to_organization_code,
2898 'TO_ORGANIZATION_CODE'
2899 );
2900 END IF;
2901
2902 IF (rti.to_organization_id IS NULL) THEN
2903 rti.to_organization_id := rhi.ship_to_organization_id;
2904 ELSIF(rti.to_organization_id <> rhi.ship_to_organization_id) THEN
2905 invalid_match_value(rti.to_organization_id,
2906 rhi.ship_to_organization_id,
2907 'TO_ORGANIZATION_ID'
2908 );
2909 END IF;
2910 */
2911 IF (rti.org_id IS NULL) THEN
2912 rti.org_id := rhi.org_id;
2913 ELSIF(rti.org_id <> rhi.org_id) THEN
2914 invalid_match_value(rti.org_id,
2915 rhi.org_id,
2916 'ORG_ID'
2917 );
2918 END IF;
2919
2920 IF (rti.operating_unit IS NULL) THEN
2921 rti.operating_unit := rhi.operating_unit;
2922 ELSIF(rti.operating_unit <> rhi.operating_unit) THEN
2923 invalid_match_value(rti.operating_unit,
2924 rhi.operating_unit,
2925 'OPERATING_UNIT'
2926 );
2927 END IF;
2928
2929 IF (rti.from_organization_code IS NULL) THEN
2930 rti.from_organization_code := rhi.from_organization_code;
2931 END IF;
2932
2933 IF (rti.from_organization_id IS NULL) THEN
2934 rti.from_organization_id := rhi.from_organization_id;
2935 END IF;
2936
2937 IF (rti.to_organization_code IS NULL) THEN
2938 rti.to_organization_code := rhi.ship_to_organization_code;
2939 END IF;
2940
2941 IF (rti.to_organization_id IS NULL) THEN
2942 rti.to_organization_id := rhi.ship_to_organization_id;
2943 END IF;
2944
2945 IF (rti.operating_unit IS NULL) THEN
2946 rti.operating_unit := rhi.operating_unit;
2947 END IF;
2948
2949 IF (rti.org_id IS NULL) THEN
2950 rti.org_id := rhi.org_id;
2951 END IF;
2952
2953 -- bug 9274603
2954 /*
2955 IF (rti.attribute1 IS NULL) THEN
2956 rti.attribute1 := rhi.attribute1;
2957 END IF;
2958
2959 IF (rti.attribute10 IS NULL) THEN
2960 rti.attribute10 := rhi.attribute10;
2961 END IF;
2962
2963 IF (rti.attribute11 IS NULL) THEN
2964 rti.attribute11 := rhi.attribute11;
2965 END IF;
2966
2967 IF (rti.attribute12 IS NULL) THEN
2968 rti.attribute12 := rhi.attribute12;
2969 END IF;
2970
2971 IF (rti.attribute13 IS NULL) THEN
2972 rti.attribute13 := rhi.attribute13;
2973 END IF;
2974
2975 IF (rti.attribute14 IS NULL) THEN
2976 rti.attribute14 := rhi.attribute14;
2977 END IF;
2978
2979 IF (rti.attribute15 IS NULL) THEN
2980 rti.attribute15 := rhi.attribute15;
2981 END IF;
2982
2983 IF (rti.attribute2 IS NULL) THEN
2984 rti.attribute2 := rhi.attribute2;
2985 END IF;
2986
2987 IF (rti.attribute3 IS NULL) THEN
2988 rti.attribute3 := rhi.attribute3;
2989 END IF;
2990
2991 IF (rti.attribute4 IS NULL) THEN
2992 rti.attribute4 := rhi.attribute4;
2993 END IF;
2994
2995 IF (rti.attribute5 IS NULL) THEN
2996 rti.attribute5 := rhi.attribute5;
2997 END IF;
2998
2999 IF (rti.attribute6 IS NULL) THEN
3000 rti.attribute6 := rhi.attribute6;
3001 END IF;
3002
3003 IF (rti.attribute7 IS NULL) THEN
3004 rti.attribute7 := rhi.attribute7;
3005 END IF;
3006
3007 IF (rti.attribute8 IS NULL) THEN
3008 rti.attribute8 := rhi.attribute8;
3009 END IF;
3010
3011 IF (rti.attribute9 IS NULL) THEN
3012 rti.attribute9 := rhi.attribute9;
3013 END IF;
3014
3015 IF (rti.attribute_category IS NULL) THEN
3016 rti.attribute_category := rhi.attribute_category;
3017 END IF;
3018 */
3019
3020 IF (rti.auto_transact_code IS NULL) THEN
3021 rti.auto_transact_code := rhi.auto_transact_code;
3022 END IF;
3023
3024 IF (rti.bill_of_lading IS NULL) THEN
3025 rti.bill_of_lading := rhi.bill_of_lading;
3026 END IF;
3027
3028 IF (rti.currency_code IS NULL) THEN
3029 rti.currency_code := rhi.currency_code;
3030 END IF;
3031
3032 IF (rti.currency_conversion_rate IS NULL) THEN
3033 rti.currency_conversion_rate := rhi.conversion_rate;
3034 END IF;
3035
3036 IF (rti.currency_conversion_date IS NULL) THEN
3037 rti.currency_conversion_date := rhi.conversion_rate_date;
3038 END IF;
3039
3040 IF (rti.currency_conversion_type IS NULL) THEN
3041 rti.currency_conversion_type := rhi.conversion_rate_type;
3042 END IF;
3043
3044 IF (rti.customer_account_number IS NULL) THEN
3045 rti.customer_account_number := rhi.customer_account_number;
3046 END IF;
3047
3048 IF (rti.customer_id IS NULL) THEN
3049 rti.customer_id := rhi.customer_id;
3050 END IF;
3051
3052 IF (rti.customer_party_name IS NULL) THEN
3053 rti.customer_party_name := rhi.customer_party_name;
3054 END IF;
3055
3056 IF (rti.customer_site_id IS NULL) THEN
3057 rti.customer_site_id := rhi.customer_site_id;
3058 END IF;
3059
3060 IF (rti.employee_id IS NULL) THEN
3061 rti.employee_id := rhi.employee_id;
3062 END IF;
3063
3064 IF (rti.expected_receipt_date IS NULL) THEN
3065 rti.expected_receipt_date := rhi.expected_receipt_date;
3066 END IF;
3067
3068 IF (rti.freight_carrier_code IS NULL) THEN
3069 rti.freight_carrier_code := rhi.freight_carrier_code;
3070 END IF;
3071
3072 IF (rti.GROUP_ID IS NULL) THEN
3073 rti.GROUP_ID := rhi.GROUP_ID;
3074 END IF;
3075
3076 IF (rti.location_code IS NULL) THEN
3077 rti.location_code := rhi.location_code;
3078 END IF;
3079
3080 IF (rti.location_id IS NULL) THEN
3081 rti.location_id := rhi.location_id;
3082 END IF;
3083
3084 IF (rti.num_of_containers IS NULL) THEN
3085 rti.num_of_containers := rhi.num_of_containers;
3086 END IF;
3087
3088 IF (rti.packing_slip IS NULL) THEN
3089 rti.packing_slip := rhi.packing_slip;
3090 END IF;
3091
3092 IF (rti.processing_status_code IS NULL) THEN
3093 rti.processing_status_code := rhi.processing_status_code;
3094 END IF;
3095
3096 IF (rti.shipped_date IS NULL) THEN
3097 rti.shipped_date := rhi.shipped_date;
3098 END IF;
3099
3100 IF (rti.tax_amount IS NULL) THEN
3101 rti.tax_amount := rhi.tax_amount;
3102 END IF;
3103
3104 IF (rti.tax_name IS NULL) THEN
3105 rti.tax_name := rhi.tax_name;
3106 END IF;
3107
3108 IF (rti.transaction_type IS NULL) THEN
3109 rti.transaction_type := rhi.transaction_type;
3110 END IF;
3111
3112 IF (rti.ussgl_transaction_code IS NULL) THEN
3113 rti.ussgl_transaction_code := rhi.usggl_transaction_code;
3114 END IF;
3115
3116 IF (rti.validation_flag IS NULL) THEN
3117 rti.validation_flag := rhi.validation_flag;
3118 END IF;
3119
3120 IF (rti.vendor_id IS NULL) THEN
3121 rti.vendor_id := rhi.vendor_id;
3122 END IF;
3123
3124 IF (rti.vendor_name IS NULL) THEN
3125 rti.vendor_name := rhi.vendor_name;
3126 END IF;
3127
3128 IF (rti.vendor_num IS NULL) THEN
3129 rti.vendor_num := rhi.vendor_num;
3130 END IF;
3131
3132 /* Bug 10306164 comment the code related to Vendor site, as RTIs
3133 with same RHI may have differnt vendor site id */
3134
3135 /* IF (rti.vendor_site_code IS NULL) THEN
3136 rti.vendor_site_code := rhi.vendor_site_code;
3137 END IF;
3138
3139 IF (rti.vendor_site_id IS NULL) THEN
3140 rti.vendor_site_id := rhi.vendor_site_id;
3141 END IF;*/
3142
3143 IF (rti.waybill_airbill_num IS NULL) THEN
3144 rti.waybill_airbill_num := rhi.waybill_airbill_num;
3145 END IF;
3146 END default_rti_from_rhi;
3147
3148 PROCEDURE default_rti_from_rti(
3149 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
3150 ) IS
3151 prti rcv_transactions_interface%ROWTYPE;
3152 BEGIN
3153 IF (rti.parent_interface_txn_id IS NOT NULL) THEN
3154 prti := rcv_table_functions.get_rti_row_from_id(rti.parent_interface_txn_id);
3155 END IF;
3156
3157 IF (prti.interface_transaction_id IS NULL) THEN
3158 RETURN;
3159 END IF;
3160
3161 /* PENDING is the only status that's going to get processed, therefore
3162 everything else is an error */
3163 IF (prti.processing_status_code <> 'PENDING') THEN
3164 rcv_error_pkg.set_error_message('RCV_INTERFACE_PARENT_NOT_PENDING');
3165 rcv_error_pkg.set_token('PARENT_INTERFACE_TXN_ID', prti.parent_interface_txn_id);
3166 rcv_error_pkg.log_interface_error('PARENT_INTERFACE_TXN_ID');
3167 END IF;
3168
3169 IF (rti.document_distribution_num IS NULL) THEN
3170 rti.document_distribution_num := prti.document_distribution_num;
3171 ELSIF(rti.document_distribution_num <> prti.document_distribution_num) THEN
3172 invalid_match_value(rti.document_distribution_num,
3173 prti.document_distribution_num,
3174 'DOCUMENT_DISTRIBUTION_NUM'
3175 );
3176 END IF;
3177
3178 IF (rti.document_line_num IS NULL) THEN
3179 rti.document_line_num := prti.document_line_num;
3180 ELSIF(rti.document_line_num <> prti.document_line_num) THEN
3181 invalid_match_value(rti.document_line_num,
3182 prti.document_line_num,
3183 'DOCUMENT_LINE_NUM'
3184 );
3185 END IF;
3186
3187 IF (rti.document_num IS NULL) THEN
3188 rti.document_num := prti.document_num;
3189 ELSIF(rti.document_num <> prti.document_num) THEN
3190 invalid_match_value(rti.document_num,
3191 prti.document_num,
3192 'DOCUMENT_NUM'
3193 );
3194 END IF;
3195
3196 IF (rti.document_shipment_line_num IS NULL) THEN
3197 rti.document_shipment_line_num := prti.document_shipment_line_num;
3198 ELSIF(rti.document_shipment_line_num <> prti.document_shipment_line_num) THEN
3199 invalid_match_value(rti.document_shipment_line_num,
3200 prti.document_shipment_line_num,
3201 'DOCUMENT_SHIPMENT_LINE_NUM'
3202 );
3203 END IF;
3204
3205 IF (rti.from_organization_code IS NULL) THEN
3206 rti.from_organization_code := prti.from_organization_code;
3207 ELSIF(rti.from_organization_code <> prti.from_organization_code) THEN
3208 invalid_match_value(rti.from_organization_code,
3209 prti.from_organization_code,
3210 'FROM_ORGANIZATION_CODE'
3211 );
3212 END IF;
3213
3214 IF (rti.from_organization_id IS NULL) THEN
3215 rti.from_organization_id := prti.from_organization_id;
3216 ELSIF(rti.from_organization_id <> prti.from_organization_id) THEN
3217 invalid_match_value(rti.from_organization_id,
3218 prti.from_organization_id,
3219 'FROM_ORGANIZATION_ID'
3220 );
3221 END IF;
3222
3223 IF (rti.header_interface_id IS NULL) THEN
3224 rti.header_interface_id := prti.header_interface_id;
3225 ELSIF(rti.header_interface_id <> prti.header_interface_id) THEN
3226 invalid_match_value(rti.header_interface_id,
3227 prti.header_interface_id,
3228 'HEADER_INTERFACE_ID'
3229 );
3230 END IF;
3231
3232 IF (rti.item_category IS NULL) THEN
3233 rti.item_category := prti.item_category;
3234 ELSIF(rti.item_category <> prti.item_category) THEN
3235 invalid_match_value(rti.item_category,
3236 prti.item_category,
3237 'ITEM_CATEGORY'
3238 );
3239 END IF;
3240
3241 /*As part of bug 7012051 removed the validation of item_description
3242 and make it defaulted from parent interface transaction*/
3243 rti.item_description := prti.item_description;
3244
3245 /* IF (rti.item_description IS NULL) THEN
3246 rti.item_description := prti.item_description;
3247 ELSIF(rti.item_description <> prti.item_description) THEN
3248 invalid_match_value(rti.item_description,
3249 prti.item_description,
3250 'ITEM_DESCRIPTION'
3251 );
3252 END IF;*/
3253
3254 IF (rti.item_id IS NULL) THEN
3255 rti.item_id := prti.item_id;
3256 ELSIF(rti.item_id <> prti.item_id) THEN
3257 invalid_match_value(rti.item_id,
3258 prti.item_id,
3259 'ITEM_ID'
3260 );
3261 END IF;
3262
3263 IF (rti.item_num IS NULL) THEN
3264 rti.item_num := prti.item_num;
3265 ELSIF(rti.item_num <> prti.item_num) THEN
3266 invalid_match_value(rti.item_num,
3267 prti.item_num,
3268 'ITEM_NUM'
3269 );
3270 END IF;
3271
3272 IF (rti.item_revision IS NULL) THEN
3273 rti.item_revision := prti.item_revision;
3274 /*
3275 Bug 5975270: We can't compare the two revisions right now
3276 as we are not sure if item is revision controlled or not.
3277 ELSIF(rti.item_revision <> prti.item_revision) THEN
3278 invalid_match_value(rti.item_revision,
3279 prti.item_revision,
3280 'ITEM_REVISION'
3281 );
3282 */
3283 END IF;
3284
3285 IF (rti.job_id IS NULL) THEN
3286 rti.job_id := prti.job_id;
3287 ELSIF(rti.job_id <> prti.job_id) THEN
3288 invalid_match_value(rti.job_id,
3289 prti.job_id,
3290 'JOB_ID'
3291 );
3292 END IF;
3293
3294 IF (rti.oe_order_header_id IS NULL) THEN
3295 rti.oe_order_header_id := prti.oe_order_header_id;
3296 ELSIF(rti.oe_order_header_id <> prti.oe_order_header_id) THEN
3297 invalid_match_value(rti.oe_order_header_id,
3298 prti.oe_order_header_id,
3299 'OE_ORDER_HEADER_ID'
3300 );
3301 END IF;
3302
3303 IF (rti.oe_order_line_id IS NULL) THEN
3304 rti.oe_order_line_id := prti.oe_order_line_id;
3305 ELSIF(rti.oe_order_line_id <> prti.oe_order_line_id) THEN
3306 invalid_match_value(rti.oe_order_line_id,
3307 prti.oe_order_line_id,
3308 'OE_ORDER_LINE_ID'
3309 );
3310 END IF;
3311
3312 IF (rti.oe_order_num IS NULL) THEN
3313 rti.oe_order_num := prti.oe_order_num;
3314 ELSIF(rti.oe_order_num <> prti.oe_order_num) THEN
3315 invalid_match_value(rti.oe_order_num,
3316 prti.oe_order_num,
3317 'OE_ORDER_NUM'
3318 );
3319 END IF;
3320
3321 IF (rti.oe_order_line_num IS NULL) THEN
3322 rti.oe_order_line_num := prti.oe_order_line_num;
3323 ELSIF(rti.oe_order_line_num <> prti.oe_order_line_num) THEN
3324 invalid_match_value(rti.oe_order_line_num,
3325 prti.oe_order_line_num,
3326 'OE_ORDER_LINE_NUM'
3327 );
3328 END IF;
3329
3330 IF (rti.org_id IS NULL) THEN
3331 rti.org_id := prti.org_id;
3332 ELSIF(rti.org_id <> prti.org_id) THEN
3333 invalid_match_value(rti.org_id,
3334 prti.org_id,
3335 'ORG_ID'
3336 );
3337 END IF;
3338
3339 IF (rti.parent_interface_txn_id IS NULL) THEN
3340 rti.parent_interface_txn_id := prti.interface_transaction_id;
3341 ELSIF(rti.parent_interface_txn_id <> prti.interface_transaction_id) THEN
3342 invalid_match_value(rti.parent_interface_txn_id,
3343 prti.interface_transaction_id,
3344 'PARENT_INTERFACE_TXN_ID'
3345 );
3346 END IF;
3347
3348 -- Bug 7494637:
3349 -- Removing the code that defaults rti.parent_source_transaction_num from prti.source_transaction_num
3350
3351
3352 IF (rti.po_distribution_id IS NULL) THEN
3353 rti.po_distribution_id := prti.po_distribution_id;
3354 ELSIF(rti.po_distribution_id <> prti.po_distribution_id) THEN
3355 invalid_match_value(rti.po_distribution_id,
3356 prti.po_distribution_id,
3357 'PO_DISTRIBUTION_ID'
3358 );
3359 END IF;
3360
3361 IF (rti.po_header_id IS NULL) THEN
3362 rti.po_header_id := prti.po_header_id;
3363 ELSIF(rti.po_header_id <> prti.po_header_id) THEN
3364 invalid_match_value(rti.po_header_id,
3365 prti.po_header_id,
3366 'PO_HEADER_ID'
3367 );
3368 END IF;
3369
3370 IF (rti.po_line_id IS NULL) THEN
3371 rti.po_line_id := prti.po_line_id;
3372 ELSIF(rti.po_line_id <> prti.po_line_id) THEN
3373 invalid_match_value(rti.po_line_id,
3374 prti.po_line_id,
3375 'PO_LINE_ID'
3376 );
3377 END IF;
3378
3379 IF (rti.po_line_location_id IS NULL) THEN
3380 rti.po_line_location_id := prti.po_line_location_id;
3381 ELSIF(rti.po_line_location_id <> prti.po_line_location_id) THEN
3382 invalid_match_value(rti.po_line_location_id,
3383 prti.po_line_location_id,
3384 'PO_LINE_LOCATION_ID'
3385 );
3386 END IF;
3387
3388 IF (rti.po_release_id IS NULL) THEN
3389 rti.po_release_id := prti.po_release_id;
3390 ELSIF(rti.po_release_id <> prti.po_release_id) THEN
3391 invalid_match_value(rti.po_release_id,
3392 prti.po_release_id,
3393 'PO_RELEASE_ID'
3394 );
3395 END IF;
3396
3397 IF (rti.po_revision_num IS NULL) THEN
3398 rti.po_revision_num := prti.po_revision_num;
3399 ELSIF(rti.po_revision_num <> prti.po_revision_num) THEN
3400 invalid_match_value(rti.po_revision_num,
3401 prti.po_revision_num,
3402 'PO_REVISION_NUM'
3403 );
3404 END IF;
3405
3406 IF (rti.primary_unit_of_measure IS NULL) THEN
3407 rti.primary_unit_of_measure := prti.primary_unit_of_measure;
3408 ELSIF(rti.primary_unit_of_measure <> prti.primary_unit_of_measure) THEN
3409 invalid_match_value(rti.primary_unit_of_measure,
3410 prti.primary_unit_of_measure,
3411 'PRIMARY_UNIT_OF_MEASURE'
3412 );
3413 END IF;
3414
3415 IF (rti.project_id IS NULL) THEN
3416 rti.project_id := prti.project_id;
3417 ELSIF(rti.project_id <> prti.project_id) THEN
3418 invalid_match_value(rti.project_id,
3419 prti.project_id,
3420 'PROJECT_ID'
3421 );
3422 END IF;
3423
3424 IF (rti.release_num IS NULL) THEN
3425 rti.release_num := prti.release_num;
3426 ELSIF(rti.release_num <> prti.release_num) THEN
3427 invalid_match_value(rti.release_num,
3428 prti.release_num,
3429 'RELEASE_NUM'
3430 );
3431 END IF;
3432
3433 IF (rti.requisition_line_id IS NULL) THEN
3434 rti.requisition_line_id := prti.requisition_line_id;
3435 ELSIF(rti.requisition_line_id <> prti.requisition_line_id) THEN
3436 invalid_match_value(rti.requisition_line_id,
3437 prti.requisition_line_id,
3438 'REQUISITION_LINE_ID'
3439 );
3440 END IF;
3441
3442 IF (rti.req_distribution_id IS NULL) THEN
3443 rti.req_distribution_id := prti.req_distribution_id;
3444 ELSIF(rti.req_distribution_id <> prti.req_distribution_id) THEN
3445 invalid_match_value(rti.req_distribution_id,
3446 prti.req_distribution_id,
3447 'REQ_DISTRIBUTION_ID'
3448 );
3449 END IF;
3450
3451 IF (rti.req_distribution_num IS NULL) THEN
3452 rti.req_distribution_num := prti.req_distribution_num;
3453 ELSIF(rti.req_distribution_num <> prti.req_distribution_num) THEN
3454 invalid_match_value(rti.req_distribution_num,
3455 prti.req_distribution_num,
3456 'REQ_DISTRIBUTION_NUM'
3457 );
3458 END IF;
3459
3460 IF (rti.req_line_num IS NULL) THEN
3461 rti.req_line_num := prti.req_line_num;
3462 ELSIF(rti.req_line_num <> prti.req_line_num) THEN
3463 invalid_match_value(rti.req_line_num,
3464 prti.req_line_num,
3465 'REQ_LINE_NUM'
3466 );
3467 END IF;
3468
3469 IF (rti.req_num IS NULL) THEN
3470 rti.req_num := prti.req_num;
3471 ELSIF(rti.req_num <> prti.req_num) THEN
3472 invalid_match_value(rti.req_num,
3473 prti.req_num,
3474 'REQ_NUM'
3475 );
3476 END IF;
3477
3478 IF (rti.shipment_header_id IS NULL) THEN
3479 rti.shipment_header_id := prti.shipment_header_id;
3480 ELSIF(rti.shipment_header_id <> prti.shipment_header_id) THEN
3481 invalid_match_value(rti.shipment_header_id,
3482 prti.shipment_header_id,
3483 'SHIPMENT_HEADER_ID'
3484 );
3485 END IF;
3486
3487 IF (rti.shipment_line_id IS NULL) THEN
3488 rti.shipment_line_id := prti.shipment_line_id;
3489 ELSIF(rti.shipment_line_id <> prti.shipment_line_id) THEN
3490 invalid_match_value(rti.shipment_line_id,
3491 prti.shipment_line_id,
3492 'SHIPMENT_LINE_ID'
3493 );
3494 END IF;
3495
3496 IF (rti.shipment_num IS NULL) THEN
3497 rti.shipment_num := prti.shipment_num;
3498 ELSIF(rti.shipment_num <> prti.shipment_num) THEN
3499 invalid_match_value(rti.shipment_num,
3500 prti.shipment_num,
3501 'SHIPMENT_NUM'
3502 );
3503 END IF;
3504
3505 IF (rti.source_document_code IS NULL) THEN
3506 rti.source_document_code := prti.source_document_code;
3507 ELSIF(rti.source_document_code <> prti.source_document_code) THEN
3508 invalid_match_value(rti.source_document_code,
3509 prti.source_document_code,
3510 'SOURCE_DOCUMENT_CODE'
3511 );
3512 END IF;
3513
3514 IF (rti.to_organization_code IS NULL) THEN
3515 rti.to_organization_code := prti.to_organization_code;
3516 ELSIF(rti.to_organization_code <> prti.to_organization_code) THEN
3517 invalid_match_value(rti.to_organization_code,
3518 prti.to_organization_code,
3519 'TO_ORGANIZATION_CODE'
3520 );
3521 END IF;
3522
3523 IF (rti.to_organization_id IS NULL) THEN
3524 rti.to_organization_id := prti.to_organization_id;
3525 ELSIF(rti.to_organization_id <> prti.to_organization_id) THEN
3526 invalid_match_value(rti.to_organization_id,
3527 prti.to_organization_id,
3528 'TO_ORGANIZATION_ID'
3529 );
3530 END IF;
3531
3532 IF (rti.wip_entity_id IS NULL) THEN
3533 rti.wip_entity_id := prti.wip_entity_id;
3534 ELSIF(rti.wip_entity_id <> prti.wip_entity_id) THEN
3535 invalid_match_value(rti.wip_entity_id,
3536 prti.wip_entity_id,
3537 'WIP_ENTITY_ID'
3538 );
3539 END IF;
3540
3541 IF (rti.wip_entity_name IS NULL) THEN
3542 rti.wip_entity_name := prti.wip_entity_name;
3543 ELSIF(rti.wip_entity_name <> prti.wip_entity_name) THEN
3544 invalid_match_value(rti.wip_entity_name,
3545 prti.wip_entity_name,
3546 'WIP_ENTITY_NAME'
3547 );
3548 END IF;
3549
3550 IF (rti.wip_line_code IS NULL) THEN
3551 rti.wip_line_code := prti.wip_line_code;
3552 ELSIF(rti.wip_line_code <> prti.wip_line_code) THEN
3553 invalid_match_value(rti.wip_line_code,
3554 prti.wip_line_code,
3555 'WIP_LINE_CODE'
3556 );
3557 END IF;
3558
3559 IF (rti.wip_line_id IS NULL) THEN
3560 rti.wip_line_id := prti.wip_line_id;
3561 ELSIF(rti.wip_line_id <> prti.wip_line_id) THEN
3562 invalid_match_value(rti.wip_line_id,
3563 prti.wip_line_id,
3564 'WIP_LINE_ID'
3565 );
3566 END IF;
3567
3568 IF (rti.wip_operation_seq_num IS NULL) THEN
3569 rti.wip_operation_seq_num := prti.wip_operation_seq_num;
3570 ELSIF(rti.wip_operation_seq_num <> prti.wip_operation_seq_num) THEN
3571 invalid_match_value(rti.wip_operation_seq_num,
3572 prti.wip_operation_seq_num,
3573 'WIP_OPERATION_SEQ_NUM'
3574 );
3575 END IF;
3576
3577 IF (rti.wip_repetitive_schedule_id IS NULL) THEN
3578 rti.wip_repetitive_schedule_id := prti.wip_repetitive_schedule_id;
3579 ELSIF(rti.wip_repetitive_schedule_id <> prti.wip_repetitive_schedule_id) THEN
3580 invalid_match_value(rti.wip_repetitive_schedule_id,
3581 prti.wip_repetitive_schedule_id,
3582 'WIP_REPETITIVE_SCHEDULE_ID'
3583 );
3584 END IF;
3585
3586 IF (rti.wip_resource_seq_num IS NULL) THEN
3587 rti.wip_resource_seq_num := prti.wip_resource_seq_num;
3588 ELSIF(rti.wip_resource_seq_num <> prti.wip_resource_seq_num) THEN
3589 invalid_match_value(rti.wip_resource_seq_num,
3590 prti.wip_resource_seq_num,
3591 'WIP_RESOURCE_SEQ_NUM'
3592 );
3593 END IF;
3594
3595 IF (rti.accrual_status_code IS NULL) THEN
3596 rti.accrual_status_code := prti.accrual_status_code;
3597 END IF;
3598
3599 IF (rti.actual_cost IS NULL) THEN
3600 rti.actual_cost := prti.actual_cost;
3601 END IF;
3602
3603 /* Bug 5299177
3604 * We expect customers to give the amount. We do not default but error out
3605 * if it is not given. Commenting out the foll code.
3606 IF (rti.amount IS NULL) THEN
3607 rti.amount := prti.amount;
3608
3609 END IF;
3610 * 5299177 */
3611
3612 IF (rti.asn_attach_id IS NULL) THEN
3613 rti.asn_attach_id := prti.asn_attach_id;
3614 END IF;
3615
3616 IF (rti.attribute1 IS NULL) THEN
3617 rti.attribute1 := prti.attribute1;
3618 END IF;
3619
3620 IF (rti.attribute10 IS NULL) THEN
3621 rti.attribute10 := prti.attribute10;
3622 END IF;
3623
3624 IF (rti.attribute11 IS NULL) THEN
3625 rti.attribute11 := prti.attribute11;
3626 END IF;
3627
3628 IF (rti.attribute12 IS NULL) THEN
3629 rti.attribute12 := prti.attribute12;
3630 END IF;
3631
3632 IF (rti.attribute13 IS NULL) THEN
3633 rti.attribute13 := prti.attribute13;
3634 END IF;
3635
3636 IF (rti.attribute14 IS NULL) THEN
3637 rti.attribute14 := prti.attribute14;
3638 END IF;
3639
3640 IF (rti.attribute15 IS NULL) THEN
3641 rti.attribute15 := prti.attribute15;
3642 END IF;
3643
3644 IF (rti.attribute2 IS NULL) THEN
3645 rti.attribute2 := prti.attribute2;
3646 END IF;
3647
3648 IF (rti.attribute3 IS NULL) THEN
3649 rti.attribute3 := prti.attribute3;
3650 END IF;
3651
3652 IF (rti.attribute4 IS NULL) THEN
3653 rti.attribute4 := prti.attribute4;
3654 END IF;
3655
3656 IF (rti.attribute5 IS NULL) THEN
3657 rti.attribute5 := prti.attribute5;
3658 END IF;
3659
3660 IF (rti.attribute6 IS NULL) THEN
3661 rti.attribute6 := prti.attribute6;
3662 END IF;
3663
3664 IF (rti.attribute7 IS NULL) THEN
3665 rti.attribute7 := prti.attribute7;
3666 END IF;
3667
3668 IF (rti.attribute8 IS NULL) THEN
3669 rti.attribute8 := prti.attribute8;
3670 END IF;
3671
3672 IF (rti.attribute9 IS NULL) THEN
3673 rti.attribute9 := prti.attribute9;
3674 END IF;
3675
3676 IF (rti.attribute_category IS NULL) THEN
3677 rti.attribute_category := prti.attribute_category;
3678 END IF;
3679
3680 IF (rti.auto_transact_code IS NULL) THEN
3681 rti.auto_transact_code := prti.auto_transact_code;
3682 END IF;
3683
3684 IF (rti.barcode_label IS NULL) THEN
3685 rti.barcode_label := prti.barcode_label;
3686 END IF;
3687
3688 IF (rti.bill_of_lading IS NULL) THEN
3689 rti.bill_of_lading := prti.bill_of_lading;
3690 END IF;
3691
3692 IF (rti.bom_resource_id IS NULL) THEN
3693 rti.bom_resource_id := prti.bom_resource_id;
3694 END IF;
3695
3696 IF (rti.category_id IS NULL) THEN
3697 rti.category_id := prti.category_id;
3698 END IF;
3699
3700 IF (rti.charge_account_id IS NULL) THEN
3701 rti.charge_account_id := prti.charge_account_id;
3702 END IF;
3703
3704 IF (rti.container_num IS NULL) THEN
3705 rti.container_num := prti.container_num;
3706 END IF;
3707
3708 IF (rti.cost_group_id IS NULL) THEN
3709 rti.cost_group_id := prti.cost_group_id;
3710 END IF;
3711
3712 IF (rti.country_of_origin_code IS NULL) THEN
3713 rti.country_of_origin_code := prti.country_of_origin_code;
3714 END IF;
3715
3716 IF (rti.create_debit_memo_flag IS NULL) THEN
3717 rti.create_debit_memo_flag := prti.create_debit_memo_flag;
3718 END IF;
3719
3720 IF (rti.currency_code IS NULL) THEN
3721 rti.currency_code := prti.currency_code;
3722 END IF;
3723
3724 IF (rti.currency_conversion_date IS NULL) THEN
3725 rti.currency_conversion_date := prti.currency_conversion_date;
3726 END IF;
3727
3728 IF (rti.currency_conversion_rate IS NULL) THEN
3729 rti.currency_conversion_rate := prti.currency_conversion_rate;
3730 END IF;
3731
3732 IF (rti.currency_conversion_type IS NULL) THEN
3733 rti.currency_conversion_type := prti.currency_conversion_type;
3734 END IF;
3735
3736 IF (rti.customer_account_number IS NULL) THEN
3737 rti.customer_account_number := prti.customer_account_number;
3738 END IF;
3739
3740 IF (rti.customer_id IS NULL) THEN
3741 rti.customer_id := prti.customer_id;
3742 END IF;
3743
3744 IF (rti.customer_item_id IS NULL) THEN
3745 rti.customer_item_id := prti.customer_item_id;
3746 END IF;
3747
3748 IF (rti.customer_item_num IS NULL) THEN
3749 rti.customer_item_num := prti.customer_item_num;
3750 END IF;
3751
3752 IF (rti.customer_party_name IS NULL) THEN
3753 rti.customer_party_name := prti.customer_party_name;
3754 END IF;
3755
3756 IF (rti.customer_site_id IS NULL) THEN
3757 rti.customer_site_id := prti.customer_site_id;
3758 END IF;
3759
3760 IF (rti.deliver_to_location_code IS NULL) THEN
3761 rti.deliver_to_location_code := prti.deliver_to_location_code;
3762 END IF;
3763
3764 IF (rti.deliver_to_location_id IS NULL) THEN
3765 rti.deliver_to_location_id := prti.deliver_to_location_id;
3766 END IF;
3767
3768 IF (rti.deliver_to_person_id IS NULL) THEN
3769 rti.deliver_to_person_id := prti.deliver_to_person_id;
3770 END IF;
3771
3772 IF (rti.deliver_to_person_name IS NULL) THEN
3773 rti.deliver_to_person_name := prti.deliver_to_person_name;
3774 END IF;
3775
3776 IF (rti.department_code IS NULL) THEN
3777 rti.department_code := prti.department_code;
3778 END IF;
3779
3780 IF (rti.destination_context IS NULL) THEN
3781 rti.destination_context := prti.destination_context;
3782 END IF;
3783
3784 IF (rti.destination_type_code IS NULL) THEN
3785 rti.destination_type_code := prti.destination_type_code;
3786 END IF;
3787
3788 IF (rti.employee_id IS NULL) THEN
3789 rti.employee_id := prti.employee_id;
3790 END IF;
3791
3792 IF (rti.erecord_id IS NULL) THEN
3793 rti.erecord_id := prti.erecord_id;
3794 END IF;
3795
3796 IF (rti.expected_receipt_date IS NULL) THEN
3797 rti.expected_receipt_date := prti.expected_receipt_date;
3798 END IF;
3799
3800 IF (rti.freight_carrier_code IS NULL) THEN
3801 rti.freight_carrier_code := prti.freight_carrier_code;
3802 END IF;
3803
3804 IF (rti.from_locator IS NULL) THEN
3805 rti.from_locator := prti.from_locator;
3806 END IF;
3807
3808 IF (rti.from_locator_id IS NULL) THEN
3809 rti.from_locator_id := prti.from_locator_id;
3810 END IF;
3811
3812 /* Bug 5584736.
3813 * We have a detailed defaulting routine for defaulting
3814 * subinventory and locator later. Commenting out this code
3815 * here since this is creating problems later.
3816 IF (rti.from_subinventory IS NULL) THEN
3817 rti.from_subinventory := prti.from_subinventory;
3818 END IF;
3819 */
3820
3821 IF (rti.government_context IS NULL) THEN
3822 rti.government_context := prti.government_context;
3823 END IF;
3824
3825 IF (rti.GROUP_ID IS NULL) THEN
3826 rti.GROUP_ID := prti.GROUP_ID;
3827 END IF;
3828
3829 IF (rti.inspection_quality_code IS NULL) THEN
3830 rti.inspection_quality_code := prti.inspection_quality_code;
3831 END IF;
3832
3833 IF (rti.inspection_status_code IS NULL) THEN
3834 rti.inspection_status_code := prti.inspection_status_code;
3835 END IF;
3836
3837 IF (rti.interface_available_amt IS NULL) THEN
3838 rti.interface_available_amt := prti.interface_available_amt;
3839 END IF;
3840
3841 IF (rti.interface_available_qty IS NULL) THEN
3842 rti.interface_available_qty := prti.interface_available_qty;
3843 END IF;
3844
3845 IF (rti.interface_source_code IS NULL) THEN
3846 rti.interface_source_code := prti.interface_source_code;
3847 END IF;
3848
3849 IF (rti.interface_source_line_id IS NULL) THEN
3850 rti.interface_source_line_id := prti.interface_source_line_id;
3851 END IF;
3852
3853 IF (rti.interface_transaction_amt IS NULL) THEN
3854 rti.interface_transaction_amt := prti.interface_transaction_amt;
3855 END IF;
3856
3857 IF (rti.interface_transaction_id IS NULL) THEN
3858 rti.interface_transaction_id := prti.interface_transaction_id;
3859 END IF;
3860
3861 IF (rti.interface_transaction_qty IS NULL) THEN
3862 rti.interface_transaction_qty := prti.interface_transaction_qty;
3863 END IF;
3864
3865 IF (rti.intransit_owning_org_code IS NULL) THEN
3866 rti.intransit_owning_org_code := prti.intransit_owning_org_code;
3867 END IF;
3868
3869 IF (rti.intransit_owning_org_id IS NULL) THEN
3870 rti.intransit_owning_org_id := prti.intransit_owning_org_id;
3871 END IF;
3872
3873 IF (rti.inv_transaction_id IS NULL) THEN
3874 rti.inv_transaction_id := prti.inv_transaction_id;
3875 END IF;
3876
3877 /*
3878 IF (rti.license_plate_number IS NULL) THEN
3879 rti.license_plate_number := prti.license_plate_number;
3880 END IF;
3881 */
3882 IF (rti.location_code IS NULL) THEN
3883 rti.location_code := prti.location_code;
3884 END IF;
3885
3886 IF (rti.location_id IS NULL) THEN
3887 rti.location_id := prti.location_id;
3888 END IF;
3889
3890 IF (rti.LOCATOR IS NULL) THEN
3891 rti.LOCATOR := prti.LOCATOR;
3892 END IF;
3893
3894 IF (rti.locator_id IS NULL) THEN
3895 rti.locator_id := prti.locator_id;
3896 END IF;
3897
3898 /*
3899 IF (rti.lpn_group_id IS NULL) THEN
3900 rti.lpn_group_id := prti.lpn_group_id;
3901 END IF;
3902
3903 IF (rti.lpn_id IS NULL) THEN
3904 rti.lpn_id := prti.lpn_id;
3905 END IF;
3906 */
3907 IF (rti.mmtt_temp_id IS NULL) THEN
3908 rti.mmtt_temp_id := prti.mmtt_temp_id;
3909 END IF;
3910
3911 IF (rti.mobile_txn IS NULL) THEN
3912 rti.mobile_txn := prti.mobile_txn;
3913 END IF;
3914
3915 IF (rti.movement_id IS NULL) THEN
3916 rti.movement_id := prti.movement_id;
3917 END IF;
3918
3919 IF (rti.notice_unit_price IS NULL) THEN
3920 rti.notice_unit_price := prti.notice_unit_price;
3921 END IF;
3922
3923 IF (rti.num_of_containers IS NULL) THEN
3924 rti.num_of_containers := prti.num_of_containers;
3925 END IF;
3926
3927 IF (rti.packing_slip IS NULL) THEN
3928 rti.packing_slip := prti.packing_slip;
3929 END IF;
3930
3931 IF (rti.po_unit_price IS NULL) THEN
3932 rti.po_unit_price := prti.po_unit_price;
3933 END IF;
3934
3935 IF (rti.processing_mode_code IS NULL) THEN
3936 rti.processing_mode_code := prti.processing_mode_code;
3937 END IF;
3938
3939 IF (rti.processing_status_code IS NULL) THEN
3940 rti.processing_status_code := prti.processing_status_code;
3941 END IF;
3942
3943 IF (rti.program_application_id IS NULL) THEN
3944 rti.program_application_id := prti.program_application_id;
3945 END IF;
3946
3947 IF (rti.program_id IS NULL) THEN
3948 rti.program_id := prti.program_id;
3949 END IF;
3950
3951 IF (rti.program_update_date IS NULL) THEN
3952 rti.program_update_date := prti.program_update_date;
3953 END IF;
3954
3955 IF (rti.put_away_rule_id IS NULL) THEN
3956 rti.put_away_rule_id := prti.put_away_rule_id;
3957 END IF;
3958
3959 IF (rti.put_away_strategy_id IS NULL) THEN
3960 rti.put_away_strategy_id := prti.put_away_strategy_id;
3961 END IF;
3962
3963 IF (rti.qa_collection_id IS NULL) THEN
3964 rti.qa_collection_id := prti.qa_collection_id;
3965 END IF;
3966
3967 IF (rti.qc_grade IS NULL) THEN
3968 rti.qc_grade := prti.qc_grade;
3969 END IF;
3970
3971 IF (rti.reason_id IS NULL) THEN
3972 rti.reason_id := prti.reason_id;
3973 END IF;
3974
3975 IF (rti.reason_name IS NULL) THEN
3976 rti.reason_name := prti.reason_name;
3977 END IF;
3978
3979 IF (rti.receipt_exception_flag IS NULL) THEN
3980 rti.receipt_exception_flag := prti.receipt_exception_flag;
3981 END IF;
3982
3983 IF (rti.receipt_source_code IS NULL) THEN
3984 rti.receipt_source_code := prti.receipt_source_code;
3985 END IF;
3986
3987 IF (rti.request_id IS NULL) THEN
3988 rti.request_id := prti.request_id;
3989 END IF;
3990
3991 IF (rti.resource_code IS NULL) THEN
3992 rti.resource_code := prti.resource_code;
3993 END IF;
3994
3995 IF (rti.rma_reference IS NULL) THEN
3996 rti.rma_reference := prti.rma_reference;
3997 END IF;
3998
3999 IF (rti.routing_code IS NULL) THEN
4000 rti.routing_code := prti.routing_code;
4001 END IF;
4002
4003 IF (rti.routing_header_id IS NULL) THEN
4004 rti.routing_header_id := prti.routing_header_id;
4005 END IF;
4006
4007 IF (rti.routing_step IS NULL) THEN
4008 rti.routing_step := prti.routing_step;
4009 END IF;
4010
4011 IF (rti.routing_step_id IS NULL) THEN
4012 rti.routing_step_id := prti.routing_step_id;
4013 END IF;
4014
4015 IF (rti.secondary_unit_of_measure IS NULL) THEN
4016 rti.secondary_unit_of_measure := prti.secondary_unit_of_measure;
4017 END IF;
4018
4019 IF (rti.secondary_uom_code IS NULL) THEN
4020 rti.secondary_uom_code := prti.secondary_uom_code;
4021 END IF;
4022
4023 IF (rti.shipment_line_status_code IS NULL) THEN
4024 rti.shipment_line_status_code := prti.shipment_line_status_code;
4025 END IF;
4026
4027 IF (rti.shipped_date IS NULL) THEN
4028 rti.shipped_date := prti.shipped_date;
4029 END IF;
4030
4031 IF (rti.ship_head_attribute1 IS NULL) THEN
4032 rti.ship_head_attribute1 := prti.ship_head_attribute1;
4033 END IF;
4034
4035 IF (rti.ship_head_attribute10 IS NULL) THEN
4036 rti.ship_head_attribute10 := prti.ship_head_attribute10;
4037 END IF;
4038
4039 IF (rti.ship_head_attribute11 IS NULL) THEN
4040 rti.ship_head_attribute11 := prti.ship_head_attribute11;
4041 END IF;
4042
4043 IF (rti.ship_head_attribute12 IS NULL) THEN
4044 rti.ship_head_attribute12 := prti.ship_head_attribute12;
4045 END IF;
4046
4047 IF (rti.ship_head_attribute13 IS NULL) THEN
4048 rti.ship_head_attribute13 := prti.ship_head_attribute13;
4049 END IF;
4050
4051 IF (rti.ship_head_attribute14 IS NULL) THEN
4052 rti.ship_head_attribute14 := prti.ship_head_attribute14;
4053 END IF;
4054
4055 IF (rti.ship_head_attribute15 IS NULL) THEN
4056 rti.ship_head_attribute15 := prti.ship_head_attribute15;
4057 END IF;
4058
4059 IF (rti.ship_head_attribute2 IS NULL) THEN
4060 rti.ship_head_attribute2 := prti.ship_head_attribute2;
4061 END IF;
4062
4063 IF (rti.ship_head_attribute3 IS NULL) THEN
4064 rti.ship_head_attribute3 := prti.ship_head_attribute3;
4065 END IF;
4066
4067 IF (rti.ship_head_attribute4 IS NULL) THEN
4068 rti.ship_head_attribute4 := prti.ship_head_attribute4;
4069 END IF;
4070
4071 IF (rti.ship_head_attribute5 IS NULL) THEN
4072 rti.ship_head_attribute5 := prti.ship_head_attribute5;
4073 END IF;
4074
4075 IF (rti.ship_head_attribute6 IS NULL) THEN
4076 rti.ship_head_attribute6 := prti.ship_head_attribute6;
4077 END IF;
4078
4079 IF (rti.ship_head_attribute7 IS NULL) THEN
4080 rti.ship_head_attribute7 := prti.ship_head_attribute7;
4081 END IF;
4082
4083 IF (rti.ship_head_attribute8 IS NULL) THEN
4084 rti.ship_head_attribute8 := prti.ship_head_attribute8;
4085 END IF;
4086
4087 IF (rti.ship_head_attribute9 IS NULL) THEN
4088 rti.ship_head_attribute9 := prti.ship_head_attribute9;
4089 END IF;
4090
4091 IF (rti.ship_head_attribute_category IS NULL) THEN
4092 rti.ship_head_attribute_category := prti.ship_head_attribute_category;
4093 END IF;
4094
4095 IF (rti.ship_line_attribute1 IS NULL) THEN
4096 rti.ship_line_attribute1 := prti.ship_line_attribute1;
4097 END IF;
4098
4099 IF (rti.ship_line_attribute10 IS NULL) THEN
4100 rti.ship_line_attribute10 := prti.ship_line_attribute10;
4101 END IF;
4102
4103 IF (rti.ship_line_attribute11 IS NULL) THEN
4104 rti.ship_line_attribute11 := prti.ship_line_attribute11;
4105 END IF;
4106
4107 IF (rti.ship_line_attribute12 IS NULL) THEN
4108 rti.ship_line_attribute12 := prti.ship_line_attribute12;
4109 END IF;
4110
4111 IF (rti.ship_line_attribute13 IS NULL) THEN
4112 rti.ship_line_attribute13 := prti.ship_line_attribute13;
4113 END IF;
4114
4115 IF (rti.ship_line_attribute14 IS NULL) THEN
4116 rti.ship_line_attribute14 := prti.ship_line_attribute14;
4117 END IF;
4118
4119 IF (rti.ship_line_attribute15 IS NULL) THEN
4120 rti.ship_line_attribute15 := prti.ship_line_attribute15;
4121 END IF;
4122
4123 IF (rti.ship_line_attribute2 IS NULL) THEN
4124 rti.ship_line_attribute2 := prti.ship_line_attribute2;
4125 END IF;
4126
4127 IF (rti.ship_line_attribute3 IS NULL) THEN
4128 rti.ship_line_attribute3 := prti.ship_line_attribute3;
4129 END IF;
4130
4131 IF (rti.ship_line_attribute4 IS NULL) THEN
4132 rti.ship_line_attribute4 := prti.ship_line_attribute4;
4133 END IF;
4134
4135 IF (rti.ship_line_attribute5 IS NULL) THEN
4136 rti.ship_line_attribute5 := prti.ship_line_attribute5;
4137 END IF;
4138
4139 IF (rti.ship_line_attribute6 IS NULL) THEN
4140 rti.ship_line_attribute6 := prti.ship_line_attribute6;
4141 END IF;
4142
4143 IF (rti.ship_line_attribute7 IS NULL) THEN
4144 rti.ship_line_attribute7 := prti.ship_line_attribute7;
4145 END IF;
4146
4147 IF (rti.ship_line_attribute8 IS NULL) THEN
4148 rti.ship_line_attribute8 := prti.ship_line_attribute8;
4149 END IF;
4150
4151 IF (rti.ship_line_attribute9 IS NULL) THEN
4152 rti.ship_line_attribute9 := prti.ship_line_attribute9;
4153 END IF;
4154
4155 IF (rti.ship_line_attribute_category IS NULL) THEN
4156 rti.ship_line_attribute_category := prti.ship_line_attribute_category;
4157 END IF;
4158
4159 IF (rti.ship_to_location_code IS NULL) THEN
4160 rti.ship_to_location_code := prti.ship_to_location_code;
4161 END IF;
4162
4163 IF (rti.ship_to_location_id IS NULL) THEN
4164 rti.ship_to_location_id := prti.ship_to_location_id;
4165 END IF;
4166
4167 IF (rti.source_doc_unit_of_measure IS NULL) THEN
4168 rti.source_doc_unit_of_measure := prti.source_doc_unit_of_measure;
4169 END IF;
4170
4171 IF (rti.source_transaction_num IS NULL) THEN
4172 rti.source_transaction_num := prti.source_transaction_num;
4173 END IF;
4174
4175 /* Bug 5584736.
4176 * We have a detailed defaulting routine for defaulting
4177 * subinventory and locator later. Commenting out this code
4178 * here since this is creating problems later.
4179 IF (rti.subinventory IS NULL) THEN
4180 rti.subinventory := prti.subinventory;
4181 END IF;
4182 */
4183
4184 IF (rti.substitute_item_id IS NULL) THEN
4185 rti.substitute_item_id := prti.substitute_item_id;
4186 END IF;
4187
4188 IF (rti.substitute_item_num IS NULL) THEN
4189 rti.substitute_item_num := prti.substitute_item_num;
4190 END IF;
4191
4192 IF (rti.substitute_unordered_code IS NULL) THEN
4193 rti.substitute_unordered_code := prti.substitute_unordered_code;
4194 END IF;
4195
4196 IF (rti.task_id IS NULL) THEN
4197 rti.task_id := prti.task_id;
4198 END IF;
4199
4200 IF (rti.tax_amount IS NULL) THEN
4201 rti.tax_amount := prti.tax_amount;
4202 END IF;
4203
4204 IF (rti.tax_name IS NULL) THEN
4205 rti.tax_name := prti.tax_name;
4206 END IF;
4207
4208 IF (rti.timecard_id IS NULL) THEN
4209 rti.timecard_id := prti.timecard_id;
4210 END IF;
4211
4212 IF (rti.timecard_ovn IS NULL) THEN
4213 rti.timecard_ovn := prti.timecard_ovn;
4214 END IF;
4215
4216 IF (rti.transaction_date IS NULL) THEN
4217 rti.transaction_date := prti.transaction_date;
4218 END IF;
4219
4220 IF (rti.transaction_status_code IS NULL) THEN
4221 rti.transaction_status_code := prti.transaction_status_code;
4222 END IF;
4223
4224 IF (rti.transaction_type IS NULL) THEN
4225 rti.transaction_type := prti.transaction_type;
4226 END IF;
4227
4228 IF (rti.transfer_cost IS NULL) THEN
4229 rti.transfer_cost := prti.transfer_cost;
4230 END IF;
4231
4232 IF (rti.transfer_cost_group_id IS NULL) THEN
4233 rti.transfer_cost_group_id := prti.transfer_cost_group_id;
4234 END IF;
4235
4236 /*
4237 IF (rti.transfer_license_plate_number IS NULL) THEN
4238 rti.transfer_license_plate_number := prti.transfer_license_plate_number;
4239 END IF;
4240
4241 IF (rti.transfer_lpn_id IS NULL) THEN
4242 rti.transfer_lpn_id := prti.transfer_lpn_id;
4243 END IF;
4244 */
4245 IF (rti.transfer_percentage IS NULL) THEN
4246 rti.transfer_percentage := prti.transfer_percentage;
4247 END IF;
4248
4249 IF (rti.transportation_account_id IS NULL) THEN
4250 rti.transportation_account_id := prti.transportation_account_id;
4251 END IF;
4252
4253 IF (rti.transportation_cost IS NULL) THEN
4254 rti.transportation_cost := prti.transportation_cost;
4255 END IF;
4256
4257 IF (rti.truck_num IS NULL) THEN
4258 rti.truck_num := prti.truck_num;
4259 END IF;
4260
4261 IF (rti.unit_of_measure IS NULL) THEN
4262 rti.unit_of_measure := prti.unit_of_measure;
4263 END IF;
4264
4265 IF (rti.uom_code IS NULL) THEN
4266 rti.uom_code := prti.uom_code;
4267 END IF;
4268
4269 IF (rti.use_mtl_lot IS NULL) THEN
4270 rti.use_mtl_lot := prti.use_mtl_lot;
4271 END IF;
4272
4273 IF (rti.use_mtl_serial IS NULL) THEN
4274 rti.use_mtl_serial := prti.use_mtl_serial;
4275 END IF;
4276
4277 IF (rti.ussgl_transaction_code IS NULL) THEN
4278 rti.ussgl_transaction_code := prti.ussgl_transaction_code;
4279 END IF;
4280
4281 IF (rti.validation_flag IS NULL) THEN
4282 rti.validation_flag := prti.validation_flag;
4283 END IF;
4284
4285 IF (rti.vendor_cum_shipped_qty IS NULL) THEN
4286 rti.vendor_cum_shipped_qty := prti.vendor_cum_shipped_qty;
4287 END IF;
4288
4289 IF (rti.vendor_id IS NULL) THEN
4290 rti.vendor_id := prti.vendor_id;
4291 END IF;
4292
4293 IF (rti.vendor_item_num IS NULL) THEN
4294 rti.vendor_item_num := prti.vendor_item_num;
4295 END IF;
4296
4297 IF (rti.vendor_lot_num IS NULL) THEN
4298 rti.vendor_lot_num := prti.vendor_lot_num;
4299 END IF;
4300
4301 IF (rti.vendor_name IS NULL) THEN
4302 rti.vendor_name := prti.vendor_name;
4303 END IF;
4304
4305 IF (rti.vendor_num IS NULL) THEN
4306 rti.vendor_num := prti.vendor_num;
4307 END IF;
4308
4309 IF (rti.vendor_site_code IS NULL) THEN
4310 rti.vendor_site_code := prti.vendor_site_code;
4311 END IF;
4312
4313 IF (rti.vendor_site_id IS NULL) THEN
4314 rti.vendor_site_id := prti.vendor_site_id;
4315 END IF;
4316
4317 IF (rti.waybill_airbill_num IS NULL) THEN
4318 rti.waybill_airbill_num := prti.waybill_airbill_num;
4319 END IF;
4320
4321 --Quantity code
4322 /* Bug 5299177
4323 * We expect customers to give the quantity. We do not default but error out
4324 * if it is not given. Commenting out the foll code.
4325 IF (rti.quantity IS NULL) THEN
4326 rti.quantity := prti.quantity;
4327
4328 IF (rti.primary_quantity IS NULL) THEN
4329 rti.primary_quantity := prti.primary_quantity;
4330 END IF;
4331
4332 IF (rti.secondary_quantity IS NULL) THEN
4333 rti.secondary_quantity := prti.secondary_quantity;
4334 END IF;
4335
4336 IF (rti.source_doc_quantity IS NULL) THEN
4337 rti.source_doc_quantity := prti.source_doc_quantity;
4338 END IF;
4339 END IF;
4340
4341 IF (rti.quantity_invoiced IS NULL) THEN
4342 rti.quantity_invoiced := prti.quantity_invoiced;
4343 END IF;
4344
4345 IF (rti.quantity_shipped IS NULL) THEN
4346 rti.quantity_shipped := prti.quantity_shipped;
4347 END IF;
4348 * 5299177 */
4349 END default_rti_from_rti;
4350
4351 PROCEDURE default_rti_from_rt(
4352 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
4353 ) IS
4354 rt rcv_transactions%ROWTYPE;
4355 BEGIN
4356 IF (rti.parent_transaction_id IS NOT NULL) THEN
4357 rt := rcv_table_functions.get_rt_row_from_id(rti.parent_transaction_id);
4358 END IF;
4359
4360 IF (rt.transaction_id IS NULL) THEN
4361 RETURN;
4362 END IF;
4363
4364 IF (rti.job_id IS NULL) THEN
4365 rti.job_id := rt.job_id;
4366 ELSIF(rti.job_id <> rt.job_id) THEN
4367 invalid_match_value(rti.job_id,
4368 rt.job_id,
4369 'JOB_ID'
4370 );
4371 END IF;
4372
4373 IF (rti.oe_order_header_id IS NULL) THEN
4374 rti.oe_order_header_id := rt.oe_order_header_id;
4375 ELSIF(rti.oe_order_header_id <> rt.oe_order_header_id) THEN
4376 invalid_match_value(rti.oe_order_header_id,
4377 rt.oe_order_header_id,
4378 'OE_ORDER_HEADER_ID'
4379 );
4380 END IF;
4381
4382 IF (rti.oe_order_line_id IS NULL) THEN
4383 rti.oe_order_line_id := rt.oe_order_line_id;
4384 ELSIF(rti.oe_order_line_id <> rt.oe_order_line_id) THEN
4385 invalid_match_value(rti.oe_order_line_id,
4386 rt.oe_order_line_id,
4387 'OE_ORDER_LINE_ID'
4388 );
4389 END IF;
4390
4391 /*
4392 ** Bug#4615534 - Org_id defaulting from inventory organization
4393 ** needs to be done only for In-transit shipments
4394 */
4395 IF(rti.receipt_source_code IN ('INVENTORY','INTERNAL ORDER')) THEN -- Bug 9706173
4396 IF (rti.org_id IS NULL) THEN
4397 rti.org_id := get_org_id_from_inv_org_id(rt.organization_id);
4398 ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rt.organization_id)) THEN
4399 invalid_match_value(rti.org_id,
4400 get_org_id_from_inv_org_id(rt.organization_id),
4401 'ORG_ID'
4402 );
4403 END IF;
4404 END IF;
4405
4406 IF (rti.parent_transaction_id IS NULL) THEN
4407 rti.parent_transaction_id := rt.transaction_id;
4408 ELSIF(rti.parent_transaction_id <> rt.transaction_id) THEN
4409 invalid_match_value(rti.parent_transaction_id,
4410 rt.transaction_id,
4411 'PARENT_TRANSACTION_ID'
4412 );
4413 END IF;
4414
4415 IF (rti.po_distribution_id IS NULL) THEN
4416 rti.po_distribution_id := rt.po_distribution_id;
4417 ELSIF(rti.po_distribution_id <> rt.po_distribution_id) THEN
4418 invalid_match_value(rti.po_distribution_id,
4419 rt.po_distribution_id,
4420 'PO_DISTRIBUTION_ID'
4421 );
4422 END IF;
4423
4424 IF (rti.po_header_id IS NULL) THEN
4425 rti.po_header_id := rt.po_header_id;
4426 ELSIF(rti.po_header_id <> rt.po_header_id) THEN
4427 invalid_match_value(rti.po_header_id,
4428 rt.po_header_id,
4429 'PO_HEADER_ID'
4430 );
4431 END IF;
4432
4433 IF (rti.po_line_id IS NULL) THEN
4434 rti.po_line_id := rt.po_line_id;
4435 ELSIF(rti.po_line_id <> rt.po_line_id) THEN
4436 invalid_match_value(rti.po_line_id,
4437 rt.po_line_id,
4438 'PO_LINE_ID'
4439 );
4440 END IF;
4441
4442 IF (rti.po_line_location_id IS NULL) THEN
4443 rti.po_line_location_id := rt.po_line_location_id;
4444 ELSIF(rti.po_line_location_id <> rt.po_line_location_id) THEN
4445 invalid_match_value(rti.po_line_location_id,
4446 rt.po_line_location_id,
4447 'PO_LINE_LOCATION_ID'
4448 );
4449 END IF;
4450
4451 IF (rti.po_release_id IS NULL) THEN
4452 rti.po_release_id := rt.po_release_id;
4453 ELSIF(rti.po_release_id <> rt.po_release_id) THEN
4454 invalid_match_value(rti.po_release_id,
4455 rt.po_release_id,
4456 'PO_RELEASE_ID'
4457 );
4458 END IF;
4459
4460 IF (rti.po_revision_num IS NULL) THEN
4461 rti.po_revision_num := rt.po_revision_num;
4462 ELSIF(rti.po_revision_num <> rt.po_revision_num) THEN
4463 invalid_match_value(rti.po_revision_num,
4464 rt.po_revision_num,
4465 'PO_REVISION_NUM'
4466 );
4467 END IF;
4468
4469 IF (rti.primary_unit_of_measure IS NULL) THEN
4470 rti.primary_unit_of_measure := rt.primary_unit_of_measure;
4471 ELSIF(rti.primary_unit_of_measure <> rt.primary_unit_of_measure) THEN
4472 invalid_match_value(rti.primary_unit_of_measure,
4473 rt.primary_unit_of_measure,
4474 'PRIMARY_UNIT_OF_MEASURE'
4475 );
4476 END IF;
4477
4478 IF (rti.project_id IS NULL) THEN
4479 rti.project_id := rt.project_id;
4480 ELSIF(rti.project_id <> rt.project_id) THEN
4481 invalid_match_value(rti.project_id,
4482 rt.project_id,
4483 'PROJECT_ID'
4484 );
4485 END IF;
4486
4487 IF (rti.requisition_line_id IS NULL) THEN
4488 rti.requisition_line_id := rt.requisition_line_id;
4489 ELSIF(rti.requisition_line_id <> rt.requisition_line_id) THEN
4490 invalid_match_value(rti.requisition_line_id,
4491 rt.requisition_line_id,
4492 'REQUISITION_LINE_ID'
4493 );
4494 END IF;
4495
4496 IF (rti.req_distribution_id IS NULL) THEN
4497 rti.req_distribution_id := rt.req_distribution_id;
4498 ELSIF(rti.req_distribution_id <> rt.req_distribution_id) THEN
4499 invalid_match_value(rti.req_distribution_id,
4500 rt.req_distribution_id,
4501 'REQ_DISTRIBUTION_ID'
4502 );
4503 END IF;
4504
4505 IF (rti.shipment_header_id IS NULL) THEN
4506 rti.shipment_header_id := rt.shipment_header_id;
4507 ELSIF(rti.shipment_header_id <> rt.shipment_header_id) THEN
4508 invalid_match_value(rti.shipment_header_id,
4509 rt.shipment_header_id,
4510 'SHIPMENT_HEADER_ID'
4511 );
4512 END IF;
4513
4514 IF (rti.shipment_line_id IS NULL) THEN
4515 rti.shipment_line_id := rt.shipment_line_id;
4516 ELSIF(rti.shipment_line_id <> rt.shipment_line_id) THEN
4517 invalid_match_value(rti.shipment_line_id,
4518 rt.shipment_line_id,
4519 'SHIPMENT_LINE_ID'
4520 );
4521 END IF;
4522
4523 IF (rti.source_document_code IS NULL) THEN
4524 rti.source_document_code := rt.source_document_code;
4525 ELSIF(rti.source_document_code <> rt.source_document_code) THEN
4526 invalid_match_value(rti.source_document_code,
4527 rt.source_document_code,
4528 'SOURCE_DOCUMENT_CODE'
4529 );
4530 END IF;
4531
4532 IF (rti.to_organization_id IS NULL) THEN
4533 rti.to_organization_id := rt.organization_id;
4534 ELSIF(rti.to_organization_id <> rt.organization_id) THEN
4535 invalid_match_value(rti.to_organization_id,
4536 rt.organization_id,
4537 'TO_ORGANIZATION_ID'
4538 );
4539 END IF;
4540
4541 IF (rti.wip_entity_id IS NULL) THEN
4542 rti.wip_entity_id := rt.wip_entity_id;
4543 ELSIF(rti.wip_entity_id <> rt.wip_entity_id) THEN
4544 invalid_match_value(rti.wip_entity_id,
4545 rt.wip_entity_id,
4546 'WIP_ENTITY_ID'
4547 );
4548 END IF;
4549
4550 IF (rti.wip_line_id IS NULL) THEN
4551 rti.wip_line_id := rt.wip_line_id;
4552 ELSIF(rti.wip_line_id <> rt.wip_line_id) THEN
4553 invalid_match_value(rti.wip_line_id,
4554 rt.wip_line_id,
4555 'WIP_LINE_ID'
4556 );
4557 END IF;
4558
4559 IF (rti.wip_operation_seq_num IS NULL) THEN
4560 rti.wip_operation_seq_num := rt.wip_operation_seq_num;
4561 ELSIF(rti.wip_operation_seq_num <> rt.wip_operation_seq_num) THEN
4562 invalid_match_value(rti.wip_operation_seq_num,
4563 rt.wip_operation_seq_num,
4564 'WIP_OPERATION_SEQ_NUM'
4565 );
4566 END IF;
4567
4568 IF (rti.wip_repetitive_schedule_id IS NULL) THEN
4569 rti.wip_repetitive_schedule_id := rt.wip_repetitive_schedule_id;
4570 ELSIF(rti.wip_repetitive_schedule_id <> rt.wip_repetitive_schedule_id) THEN
4571 invalid_match_value(rti.wip_repetitive_schedule_id,
4572 rt.wip_repetitive_schedule_id,
4573 'WIP_REPETITIVE_SCHEDULE_ID'
4574 );
4575 END IF;
4576
4577 IF (rti.wip_resource_seq_num IS NULL) THEN
4578 rti.wip_resource_seq_num := rt.wip_resource_seq_num;
4579 ELSIF(rti.wip_resource_seq_num <> rt.wip_resource_seq_num) THEN
4580 invalid_match_value(rti.wip_resource_seq_num,
4581 rt.wip_resource_seq_num,
4582 'WIP_RESOURCE_SEQ_NUM'
4583 );
4584 END IF;
4585
4586 --Bug 13725088 lcm_shipment_line_id and unit_landed_cost should be defaulted from RT for all the
4587 --subsequent transactions after receipt if it is not populated.
4588
4589 IF(rcv_table_functions.is_lcm_shipment (rti.po_line_location_id)='Y') THEN
4590 IF (rti.transaction_type not in ('SHIP','RECEIVE')) THEN
4591 IF(rti.lcm_shipment_line_id IS NULL) THEN
4592 rti.lcm_shipment_line_id:=rt.lcm_shipment_line_id;
4593 END IF;
4594
4595 IF(rti.unit_landed_cost IS NULL) THEN
4596 rti.unit_landed_cost:=rt.unit_landed_cost;
4597 END IF;
4598 END IF;
4599 END IF;
4600
4601
4602 IF (rti.accrual_status_code IS NULL) THEN
4603 rti.accrual_status_code := rt.accrual_status_code;
4604 END IF;
4605
4606 /* Bug 5299177
4607 * We expect customers to give the amount. We do not default but error out
4608 * if it is not given. Commenting out the foll code.
4609 IF (rti.amount IS NULL) THEN
4610 rti.amount := rt.amount;
4611 END IF;
4612 * 5299177 */
4613
4614 IF (rti.attribute1 IS NULL) THEN
4615 rti.attribute1 := rt.attribute1;
4616 END IF;
4617
4618 IF (rti.attribute10 IS NULL) THEN
4619 rti.attribute10 := rt.attribute10;
4620 END IF;
4621
4622 IF (rti.attribute11 IS NULL) THEN
4623 rti.attribute11 := rt.attribute11;
4624 END IF;
4625
4626 IF (rti.attribute12 IS NULL) THEN
4627 rti.attribute12 := rt.attribute12;
4628 END IF;
4629
4630 IF (rti.attribute13 IS NULL) THEN
4631 rti.attribute13 := rt.attribute13;
4632 END IF;
4633
4634 IF (rti.attribute14 IS NULL) THEN
4635 rti.attribute14 := rt.attribute14;
4636 END IF;
4637
4638 IF (rti.attribute15 IS NULL) THEN
4639 rti.attribute15 := rt.attribute15;
4640 END IF;
4641
4642 IF (rti.attribute2 IS NULL) THEN
4643 rti.attribute2 := rt.attribute2;
4644 END IF;
4645
4646 IF (rti.attribute3 IS NULL) THEN
4647 rti.attribute3 := rt.attribute3;
4648 END IF;
4649
4650 IF (rti.attribute4 IS NULL) THEN
4651 rti.attribute4 := rt.attribute4;
4652 END IF;
4653
4654 IF (rti.attribute5 IS NULL) THEN
4655 rti.attribute5 := rt.attribute5;
4656 END IF;
4657
4658 IF (rti.attribute6 IS NULL) THEN
4659 rti.attribute6 := rt.attribute6;
4660 END IF;
4661
4662 IF (rti.attribute7 IS NULL) THEN
4663 rti.attribute7 := rt.attribute7;
4664 END IF;
4665
4666 IF (rti.attribute8 IS NULL) THEN
4667 rti.attribute8 := rt.attribute8;
4668 END IF;
4669
4670 IF (rti.attribute9 IS NULL) THEN
4671 rti.attribute9 := rt.attribute9;
4672 END IF;
4673
4674 IF (rti.attribute_category IS NULL) THEN
4675 rti.attribute_category := rt.attribute_category;
4676 END IF;
4677
4678 IF (rti.bom_resource_id IS NULL) THEN
4679 rti.bom_resource_id := rt.bom_resource_id;
4680 END IF;
4681
4682 IF (rti.country_of_origin_code IS NULL) THEN
4683 rti.country_of_origin_code := rt.country_of_origin_code;
4684 END IF;
4685
4686 IF (rti.currency_code IS NULL) THEN
4687 rti.currency_code := rt.currency_code;
4688 END IF;
4689
4690 IF (rti.currency_conversion_date IS NULL) THEN
4691 rti.currency_conversion_date := rt.currency_conversion_date;
4692 END IF;
4693
4694 IF (rti.currency_conversion_rate IS NULL) THEN
4695 rti.currency_conversion_rate := rt.currency_conversion_rate;
4696 END IF;
4697
4698 IF (rti.currency_conversion_type IS NULL) THEN
4699 rti.currency_conversion_type := rt.currency_conversion_type;
4700 END IF;
4701
4702 IF (rti.customer_id IS NULL) THEN
4703 rti.customer_id := rt.customer_id;
4704 END IF;
4705
4706 IF (rti.customer_site_id IS NULL) THEN
4707 rti.customer_site_id := rt.customer_site_id;
4708 END IF;
4709
4710 IF (rti.deliver_to_location_id IS NULL) THEN
4711 rti.deliver_to_location_id := rt.deliver_to_location_id;
4712 END IF;
4713
4714 IF (rti.deliver_to_person_id IS NULL) THEN
4715 rti.deliver_to_person_id := rt.deliver_to_person_id;
4716 END IF;
4717
4718 IF (rti.department_code IS NULL) THEN
4719 rti.department_code := rt.department_code;
4720 END IF;
4721
4722 IF (rti.destination_context IS NULL) THEN
4723 rti.destination_context := rt.destination_context;
4724 END IF;
4725
4726 IF (rti.destination_type_code IS NULL) THEN
4727 rti.destination_type_code := rt.destination_type_code;
4728 END IF;
4729
4730 IF (rti.employee_id IS NULL) THEN
4731 rti.employee_id := rt.employee_id;
4732 END IF;
4733
4734 IF (rti.from_locator_id IS NULL) THEN
4735 rti.from_locator_id := rt.from_locator_id;
4736 END IF;
4737
4738 /* Bug 5584736.
4739 * We have a detailed defaulting routine for defaulting
4740 * subinventory and locator later. Commenting out this code
4741 * here since this is creating problems later.
4742 IF (rti.from_subinventory IS NULL) THEN
4743 rti.from_subinventory := rt.from_subinventory;
4744 END IF;
4745 */
4746
4747 IF (rti.inspection_quality_code IS NULL) THEN
4748 rti.inspection_quality_code := rt.inspection_quality_code;
4749 END IF;
4750
4751 IF (rti.inspection_status_code IS NULL) THEN
4752 rti.inspection_status_code := rt.inspection_status_code;
4753 END IF;
4754
4755 IF (rti.interface_source_code IS NULL) THEN
4756 rti.interface_source_code := rt.interface_source_code;
4757 END IF;
4758
4759 IF (rti.interface_source_line_id IS NULL) THEN
4760 rti.interface_source_line_id := rt.interface_source_line_id;
4761 END IF;
4762
4763 IF (rti.interface_transaction_id IS NULL) THEN
4764 rti.interface_transaction_id := rt.interface_transaction_id;
4765 END IF;
4766
4767 IF (rti.inv_transaction_id IS NULL) THEN
4768 rti.inv_transaction_id := rt.inv_transaction_id;
4769 END IF;
4770
4771 IF (rti.location_id IS NULL) THEN
4772 rti.location_id := rt.location_id;
4773 END IF;
4774
4775 IF (rti.locator_id IS NULL) THEN
4776 IF (rti.subinventory IS NOT NULL AND
4777 rt.subinventory IS NOT NULL AND
4778 rti.subinventory = rt.subinventory ) THEN --Bug 13445044
4779 rti.locator_id := rt.locator_id;
4780 END IF;
4781 END IF;
4782
4783 /*
4784 IF (rti.lpn_group_id IS NULL) THEN
4785 rti.lpn_group_id := rt.lpn_group_id;
4786 END IF;
4787
4788 IF (rti.lpn_id IS NULL) THEN
4789 rti.lpn_id := rt.lpn_id;
4790 END IF;
4791 */
4792 IF (rti.mobile_txn IS NULL) THEN
4793 rti.mobile_txn := rt.mobile_txn;
4794 END IF;
4795
4796 IF (rti.movement_id IS NULL) THEN
4797 rti.movement_id := rt.movement_id;
4798 END IF;
4799
4800 IF (rti.po_unit_price IS NULL) THEN
4801 rti.po_unit_price := rt.po_unit_price;
4802 END IF;
4803
4804 IF (rti.qa_collection_id IS NULL) THEN
4805 rti.qa_collection_id := rt.qa_collection_id;
4806 END IF;
4807
4808 IF (rti.qc_grade IS NULL) THEN
4809 rti.qc_grade := rt.qc_grade;
4810 END IF;
4811
4812 IF (rti.reason_id IS NULL) THEN
4813 rti.reason_id := rt.reason_id;
4814 END IF;
4815
4816 IF (rti.receipt_exception_flag IS NULL) THEN
4817 rti.receipt_exception_flag := rt.receipt_exception_flag;
4818 END IF;
4819
4820 IF (rti.request_id IS NULL) THEN
4821 rti.request_id := rt.request_id;
4822 END IF;
4823
4824 IF (rti.rma_reference IS NULL) THEN
4825 rti.rma_reference := rt.rma_reference;
4826 END IF;
4827
4828 IF (rti.routing_header_id IS NULL) THEN
4829 rti.routing_header_id := rt.routing_header_id;
4830 END IF;
4831
4832 IF (rti.routing_step_id IS NULL) THEN
4833 rti.routing_step_id := rt.routing_step_id;
4834 END IF;
4835
4836 IF (rti.secondary_unit_of_measure IS NULL) THEN
4837 rti.secondary_unit_of_measure := rt.secondary_unit_of_measure;
4838 END IF;
4839
4840 IF (rti.secondary_uom_code IS NULL) THEN
4841 rti.secondary_uom_code := rt.secondary_uom_code;
4842 END IF;
4843
4844 IF (rti.source_doc_unit_of_measure IS NULL) THEN
4845 rti.source_doc_unit_of_measure := rt.source_doc_unit_of_measure;
4846 END IF;
4847
4848 IF (rti.source_transaction_num IS NULL) THEN
4849 rti.source_transaction_num := rt.source_transaction_num;
4850 END IF;
4851
4852 /* Bug 5584736.
4853 * We have a detailed defaulting routine for defaulting
4854 * subinventory and locator later. Commenting out this code
4855 * here since this is creating problems later.
4856 IF (rti.subinventory IS NULL) THEN
4857 rti.subinventory := rt.subinventory;
4858 END IF;
4859 */
4860
4861 IF (rti.substitute_unordered_code IS NULL) THEN
4862 rti.substitute_unordered_code := rt.substitute_unordered_code;
4863 END IF;
4864
4865 IF (rti.task_id IS NULL) THEN
4866 rti.task_id := rt.task_id;
4867 END IF;
4868
4869 IF (rti.timecard_id IS NULL) THEN
4870 rti.timecard_id := rt.timecard_id;
4871 END IF;
4872
4873 IF (rti.timecard_ovn IS NULL) THEN
4874 rti.timecard_ovn := rt.timecard_ovn;
4875 END IF;
4876
4877 IF (rti.transaction_date IS NULL) THEN
4878 rti.transaction_date := rt.transaction_date;
4879 END IF;
4880
4881 IF (rti.transaction_type IS NULL) THEN
4882 rti.transaction_type := rt.transaction_type;
4883 END IF;
4884
4885 /*
4886 IF (rti.transfer_lpn_id IS NULL) THEN
4887 rti.transfer_lpn_id := rt.transfer_lpn_id;
4888 END IF;
4889 */
4890 IF (rti.unit_of_measure IS NULL) THEN
4891 rti.unit_of_measure := rt.unit_of_measure;
4892 END IF;
4893
4894 IF (rti.uom_code IS NULL) THEN
4895 rti.uom_code := rt.uom_code;
4896 END IF;
4897
4898 IF (rti.vendor_id IS NULL) THEN
4899 rti.vendor_id := rt.vendor_id;
4900 END IF;
4901
4902 IF (rti.vendor_lot_num IS NULL) THEN
4903 rti.vendor_lot_num := rt.vendor_lot_num;
4904 END IF;
4905
4906 IF (rti.vendor_site_id IS NULL) THEN
4907 rti.vendor_site_id := rt.vendor_site_id;
4908 END IF;
4909
4910 --Quantity
4911 /* Bug 5299177
4912 * We expect customers to give the quantity. We do not default but error out
4913 * if it is not given. Commenting out the foll code.
4914 IF (rti.quantity IS NULL) THEN
4915 rti.quantity := rt.quantity;
4916
4917 IF (rti.primary_quantity IS NULL) THEN
4918 rti.primary_quantity := rt.primary_quantity;
4919 END IF;
4920
4921 IF (rti.secondary_quantity IS NULL) THEN
4922 rti.secondary_quantity := rt.secondary_quantity;
4923 END IF;
4924
4925 IF (rti.source_doc_quantity IS NULL) THEN
4926 rti.source_doc_quantity := rt.source_doc_quantity;
4927 END IF;
4928 END IF;
4929 * 5299177 */
4930 END default_rti_from_rt;
4931
4932 PROCEDURE default_rti_from_rsl(
4933 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
4934 ) IS
4935 rsl rcv_shipment_lines%ROWTYPE;
4936 /** Bug: 5502427
4937 * For Internal Orders, oe_order_line_id is getting stamped in RTI
4938 * by the cursor get_oe_order_line_id_from_mmt. If oe_order_line_id is
4939 * stamped, defaulting will be done based on the Sales Order for Internal orders.
4940 * But, we should not defalut based on SO for the Internal Orders.
4941 * So, commenting the logic of defaulting oe_order_line_id using the
4942 * cursor get_oe_order_line_id_from_mmt
4943 */
4944 /* CURSOR get_oe_order_line_id_from_mmt(
4945 p_mmt_transaction_id IN rcv_shipment_lines.mmt_transaction_id%TYPE
4946 ) IS
4947 SELECT source_line_id
4948 FROM mtl_material_transactions
4949 WHERE source_code = 'ORDER ENTRY'
4950 AND transaction_id = p_mmt_transaction_id;*/
4951 BEGIN
4952 IF (rti.shipment_line_id IS NOT NULL) THEN
4953 rsl := rcv_table_functions.get_rsl_row_from_id(rti.shipment_line_id);
4954 END IF;
4955
4956 IF (rsl.shipment_line_id IS NULL) THEN
4957 RETURN;
4958 END IF;
4959
4960 /* This one is problematic
4961 IF (rti.document_line_num IS NULL) THEN
4962 rti.document_line_num := rsl.line_num;
4963 ELSIF(rti.document_line_num <> rsl.line_num) THEN
4964 invalid_match_value(rti.document_line_num,
4965 rsl.line_num,
4966 'DOCUMENT_LINE_NUM'
4967 );
4968 END IF;
4969 */
4970 IF (rti.from_organization_id IS NULL) THEN
4971 rti.from_organization_id := rsl.from_organization_id;
4972 ELSIF(rti.from_organization_id <> rsl.from_organization_id) THEN
4973 invalid_match_value(rti.from_organization_id,
4974 rsl.from_organization_id,
4975 'FROM_ORGANIZATION_ID'
4976 );
4977 END IF;
4978
4979 IF (rti.job_id IS NULL) THEN
4980 rti.job_id := rsl.job_id;
4981 ELSIF(rti.job_id <> rsl.job_id) THEN
4982 invalid_match_value(rti.job_id,
4983 rsl.job_id,
4984 'JOB_ID'
4985 );
4986 END IF;
4987
4988 IF (rti.oe_order_header_id IS NULL) THEN
4989 rti.oe_order_header_id := rsl.oe_order_header_id;
4990 ELSIF(rti.oe_order_header_id <> rsl.oe_order_header_id) THEN
4991 invalid_match_value(rti.oe_order_header_id,
4992 rsl.oe_order_header_id,
4993 'OE_ORDER_HEADER_ID'
4994 );
4995 END IF;
4996
4997 IF (rti.oe_order_line_id IS NULL) THEN
4998 rti.oe_order_line_id := rsl.oe_order_line_id;
4999 ELSIF(rti.oe_order_line_id <> rsl.oe_order_line_id) THEN
5000 invalid_match_value(rti.oe_order_line_id,
5001 rsl.oe_order_line_id,
5002 'OE_ORDER_LINE_ID'
5003 );
5004 END IF;
5005
5006 /*
5007 ** Bug#4615534 - Org_id defaulting from inventory organization
5008 ** needs to be done only for In-transit shipments
5009 */
5010 IF(rti.receipt_source_code IN ('INVENTORY','INTERNAL ORDER')) THEN -- Bug 9706173
5011 IF (rti.org_id IS NULL) THEN
5012 rti.org_id := get_org_id_from_inv_org_id(rsl.to_organization_id);
5013 ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rsl.to_organization_id)) THEN
5014 invalid_match_value(rti.org_id,
5015 get_org_id_from_inv_org_id(rsl.to_organization_id),
5016 'ORG_ID'
5017 );
5018 END IF;
5019 END IF;
5020
5021 IF (rti.po_distribution_id IS NULL) THEN
5022 rti.po_distribution_id := rsl.po_distribution_id;
5023 ELSIF(rti.po_distribution_id <> rsl.po_distribution_id) THEN
5024 invalid_match_value(rti.po_distribution_id,
5025 rsl.po_distribution_id,
5026 'PO_DISTRIBUTION_ID'
5027 );
5028 END IF;
5029
5030 IF (rti.po_header_id IS NULL) THEN
5031 rti.po_header_id := rsl.po_header_id;
5032 ELSIF(rti.po_header_id <> rsl.po_header_id) THEN
5033 invalid_match_value(rti.po_header_id,
5034 rsl.po_header_id,
5035 'PO_HEADER_ID'
5036 );
5037 END IF;
5038
5039 IF (rti.po_line_id IS NULL) THEN
5040 rti.po_line_id := rsl.po_line_id;
5041 ELSIF(rti.po_line_id <> rsl.po_line_id) THEN
5042 invalid_match_value(rti.po_line_id,
5043 rsl.po_line_id,
5044 'PO_LINE_ID'
5045 );
5046 END IF;
5047
5048 IF (rti.po_line_location_id IS NULL) THEN
5049 rti.po_line_location_id := rsl.po_line_location_id;
5050 ELSIF(rti.po_line_location_id <> rsl.po_line_location_id) THEN
5051 invalid_match_value(rti.po_line_location_id,
5052 rsl.po_line_location_id,
5053 'PO_LINE_LOCATION_ID'
5054 );
5055 END IF;
5056
5057 IF (rti.po_release_id IS NULL) THEN
5058 rti.po_release_id := rsl.po_release_id;
5059 ELSIF(rti.po_release_id <> rsl.po_release_id) THEN
5060 invalid_match_value(rti.po_release_id,
5061 rsl.po_release_id,
5062 'PO_RELEASE_ID'
5063 );
5064 END IF;
5065
5066 IF (rti.requisition_line_id IS NULL) THEN
5067 rti.requisition_line_id := rsl.requisition_line_id;
5068 ELSIF(rti.requisition_line_id <> rsl.requisition_line_id) THEN
5069 invalid_match_value(rti.requisition_line_id,
5070 rsl.requisition_line_id,
5071 'REQUISITION_LINE_ID'
5072 );
5073 END IF;
5074
5075 IF (rti.req_distribution_id IS NULL) THEN
5076 rti.req_distribution_id := rsl.req_distribution_id;
5077 ELSIF(rti.req_distribution_id <> rsl.req_distribution_id) THEN
5078 invalid_match_value(rti.req_distribution_id,
5079 rsl.req_distribution_id,
5080 'REQ_DISTRIBUTION_ID'
5081 );
5082 END IF;
5083
5084 IF (rti.shipment_header_id IS NULL) THEN
5085 rti.shipment_header_id := rsl.shipment_header_id;
5086 ELSIF(rti.shipment_header_id <> rsl.shipment_header_id) THEN
5087 invalid_match_value(rti.shipment_header_id,
5088 rsl.shipment_header_id,
5089 'SHIPMENT_HEADER_ID'
5090 );
5091 END IF;
5092
5093 IF (rti.shipment_line_id IS NULL) THEN
5094 rti.shipment_line_id := rsl.shipment_line_id;
5095 ELSIF(rti.shipment_line_id <> rsl.shipment_line_id) THEN
5096 invalid_match_value(rti.shipment_line_id,
5097 rsl.shipment_line_id,
5098 'SHIPMENT_LINE_ID'
5099 );
5100 END IF;
5101
5102 IF (rti.source_document_code IS NULL) THEN
5103 rti.source_document_code := rsl.source_document_code;
5104 ELSIF(rti.source_document_code <> rsl.source_document_code) THEN
5105 invalid_match_value(rti.source_document_code,
5106 rsl.source_document_code,
5107 'SOURCE_DOCUMENT_CODE'
5108 );
5109 END IF;
5110
5111 IF (rti.to_organization_id IS NULL) THEN
5112 rti.to_organization_id := rsl.to_organization_id;
5113 ELSIF(rti.to_organization_id <> rsl.to_organization_id) THEN
5114 invalid_match_value(rti.to_organization_id,
5115 rsl.to_organization_id,
5116 'TO_ORGANIZATION_ID'
5117 );
5118 END IF;
5119
5120 /* Bug 5299177
5121 * We expect customers to give the amount. We do not default but error out
5122 * if it is not given. Commenting out the foll code.
5123 IF (rti.amount IS NULL) THEN
5124 rti.amount := rsl.amount;
5125 END IF;
5126 * 5299177 */
5127
5128 IF (rti.barcode_label IS NULL) THEN
5129 rti.barcode_label := rsl.bar_code_label;
5130 END IF;
5131
5132 IF (rti.category_id IS NULL) THEN
5133 rti.category_id := rsl.category_id;
5134 END IF;
5135
5136 IF (rti.charge_account_id IS NULL) THEN
5137 rti.charge_account_id := rsl.charge_account_id;
5138 END IF;
5139
5140 IF (rti.container_num IS NULL) THEN
5141 rti.container_num := rsl.container_num;
5142 END IF;
5143
5144 /* Bug 5999801. We should not default cost_group_id from RSL
5145 * as it will be appropriately derived by the cost group engine
5146 IF (rti.cost_group_id IS NULL) THEN
5147 rti.cost_group_id := rsl.cost_group_id;
5148 END IF;
5149 */
5150 IF (rti.country_of_origin_code IS NULL) THEN
5151 rti.country_of_origin_code := rsl.country_of_origin_code;
5152 END IF;
5153
5154 IF (rti.customer_item_num IS NULL) THEN
5155 rti.customer_item_num := rsl.customer_item_num;
5156 END IF;
5157
5158 IF (rti.deliver_to_location_id IS NULL) THEN
5159 rti.deliver_to_location_id := rsl.deliver_to_location_id;
5160 END IF;
5161
5162 IF (rti.deliver_to_person_id IS NULL) THEN
5163 rti.deliver_to_person_id := rsl.deliver_to_person_id;
5164 END IF;
5165
5166 IF (rti.destination_context IS NULL) THEN
5167 rti.destination_context := rsl.destination_context;
5168 END IF;
5169
5170 IF (rti.destination_type_code IS NULL) THEN
5171 rti.destination_type_code := rsl.destination_type_code;
5172 END IF;
5173
5174 IF (rti.employee_id IS NULL) THEN
5175 rti.employee_id := rsl.employee_id;
5176 END IF;
5177
5178 IF (rti.government_context IS NULL) THEN
5179 rti.government_context := rsl.government_context;
5180 END IF;
5181
5182 IF (rti.item_description IS NULL) THEN
5183 rti.item_description := rsl.item_description;
5184 END IF;
5185
5186 IF (rti.item_id IS NULL) THEN
5187 rti.item_id := rsl.item_id;
5188 END IF;
5189
5190 IF (rti.item_revision IS NULL) THEN
5191 rti.item_revision := rsl.item_revision;
5192 END IF;
5193
5194 IF (rti.locator_id IS NULL) THEN
5195 rti.locator_id := rsl.locator_id;
5196 END IF;
5197
5198 IF (rti.notice_unit_price IS NULL) THEN
5199 rti.notice_unit_price := rsl.notice_unit_price;
5200 END IF;
5201
5202 IF (rti.packing_slip IS NULL) THEN
5203 rti.packing_slip := rsl.packing_slip;
5204 END IF;
5205
5206 IF (rti.primary_unit_of_measure IS NULL) THEN
5207 rti.primary_unit_of_measure := rsl.primary_unit_of_measure;
5208 END IF;
5209
5210 IF (rti.qc_grade IS NULL) THEN
5211 rti.qc_grade := rsl.qc_grade;
5212 END IF;
5213
5214 IF (rti.reason_id IS NULL) THEN
5215 rti.reason_id := rsl.reason_id;
5216 END IF;
5217
5218 IF (rti.request_id IS NULL) THEN
5219 rti.request_id := rsl.request_id;
5220 END IF;
5221
5222 IF (rti.routing_header_id IS NULL) THEN
5223 rti.routing_header_id := rsl.routing_header_id;
5224 END IF;
5225
5226 IF (rti.secondary_unit_of_measure IS NULL) THEN
5227 rti.secondary_unit_of_measure := rsl.secondary_unit_of_measure;
5228 END IF;
5229
5230 IF (rti.shipment_line_status_code IS NULL) THEN
5231 rti.shipment_line_status_code := rsl.shipment_line_status_code;
5232 END IF;
5233
5234 IF (rti.ship_line_attribute1 IS NULL) THEN
5235 rti.ship_line_attribute1 := rsl.attribute1;
5236 END IF;
5237
5238 IF (rti.ship_line_attribute10 IS NULL) THEN
5239 rti.ship_line_attribute10 := rsl.attribute10;
5240 END IF;
5241
5242 IF (rti.ship_line_attribute11 IS NULL) THEN
5243 rti.ship_line_attribute11 := rsl.attribute11;
5244 END IF;
5245
5246 IF (rti.ship_line_attribute12 IS NULL) THEN
5247 rti.ship_line_attribute12 := rsl.attribute12;
5248 END IF;
5249
5250 IF (rti.ship_line_attribute13 IS NULL) THEN
5251 rti.ship_line_attribute13 := rsl.attribute13;
5252 END IF;
5253
5254 IF (rti.ship_line_attribute14 IS NULL) THEN
5255 rti.ship_line_attribute14 := rsl.attribute14;
5256 END IF;
5257
5258 IF (rti.ship_line_attribute15 IS NULL) THEN
5259 rti.ship_line_attribute15 := rsl.attribute15;
5260 END IF;
5261
5262 IF (rti.ship_line_attribute2 IS NULL) THEN
5263 rti.ship_line_attribute2 := rsl.attribute2;
5264 END IF;
5265
5266 IF (rti.ship_line_attribute3 IS NULL) THEN
5267 rti.ship_line_attribute3 := rsl.attribute3;
5268 END IF;
5269
5270 IF (rti.ship_line_attribute4 IS NULL) THEN
5271 rti.ship_line_attribute4 := rsl.attribute4;
5272 END IF;
5273
5274 IF (rti.ship_line_attribute5 IS NULL) THEN
5275 rti.ship_line_attribute5 := rsl.attribute5;
5276 END IF;
5277
5278 IF (rti.ship_line_attribute6 IS NULL) THEN
5279 rti.ship_line_attribute6 := rsl.attribute6;
5280 END IF;
5281
5282 IF (rti.ship_line_attribute7 IS NULL) THEN
5283 rti.ship_line_attribute7 := rsl.attribute7;
5284 END IF;
5285
5286 IF (rti.ship_line_attribute8 IS NULL) THEN
5287 rti.ship_line_attribute8 := rsl.attribute8;
5288 END IF;
5289
5290 IF (rti.ship_line_attribute9 IS NULL) THEN
5291 rti.ship_line_attribute9 := rsl.attribute9;
5292 END IF;
5293
5294 IF (rti.ship_line_attribute_category IS NULL) THEN
5295 rti.ship_line_attribute_category := rsl.attribute_category;
5296 END IF;
5297
5298 IF (rti.ship_to_location_id IS NULL) THEN
5299 rti.ship_to_location_id := rsl.ship_to_location_id;
5300 END IF;
5301
5302 /* Bug 5584736.
5303 * We have a detailed defaulting routine for defaulting
5304 * subinventory and locator later. Commenting out this code
5305 * here since this is creating problems later.
5306 IF (rti.subinventory IS NULL) THEN
5307 rti.subinventory := rsl.to_subinventory;
5308 END IF;
5309 */
5310
5311 IF (rti.tax_amount IS NULL) THEN
5312 rti.tax_amount := rsl.tax_amount;
5313 END IF;
5314
5315 IF (rti.tax_name IS NULL) THEN
5316 rti.tax_name := rsl.tax_name;
5317 END IF;
5318
5319 IF (rti.timecard_id IS NULL) THEN
5320 rti.timecard_id := rsl.timecard_id;
5321 END IF;
5322
5323 IF (rti.timecard_ovn IS NULL) THEN
5324 rti.timecard_ovn := rsl.timecard_ovn;
5325 END IF;
5326
5327 IF (rti.transfer_cost IS NULL) THEN
5328 rti.transfer_cost := rsl.transfer_cost;
5329 END IF;
5330
5331 IF (rti.transfer_percentage IS NULL) THEN
5332 rti.transfer_percentage := rsl.transfer_percentage;
5333 END IF;
5334
5335 IF (rti.transportation_account_id IS NULL) THEN
5336 rti.transportation_account_id := rsl.transportation_account_id;
5337 END IF;
5338
5339 IF (rti.transportation_cost IS NULL) THEN
5340 rti.transportation_cost := rsl.transportation_cost;
5341 END IF;
5342
5343 IF (rti.truck_num IS NULL) THEN
5344 rti.truck_num := rsl.truck_num;
5345 END IF;
5346
5347 IF (rti.unit_of_measure IS NULL) THEN
5348 rti.unit_of_measure := rsl.unit_of_measure;
5349 END IF;
5350
5351 IF (rti.ussgl_transaction_code IS NULL) THEN
5352 rti.ussgl_transaction_code := rsl.ussgl_transaction_code;
5353 END IF;
5354
5355 IF (rti.vendor_cum_shipped_qty IS NULL) THEN
5356 rti.vendor_cum_shipped_qty := rsl.vendor_cum_shipped_quantity;
5357 END IF;
5358
5359 IF (rti.vendor_item_num IS NULL) THEN
5360 rti.vendor_item_num := rsl.vendor_item_num;
5361 END IF;
5362
5363 IF (rti.vendor_lot_num IS NULL) THEN
5364 rti.vendor_lot_num := rsl.vendor_lot_num;
5365 END IF;
5366
5367 --Quantity
5368 /* Bug 5299177
5369 * We expect customers to give the quantity. We do not default but error out
5370 * if it is not given. Commenting out the foll code.
5371 IF (rti.quantity_shipped IS NULL) THEN
5372 rti.quantity_shipped := rsl.quantity_shipped;
5373 END IF;
5374 * 5299177 */
5375
5376 --Necessary for internal orders
5377 /* Bug:5502427 */
5378 /* IF (rsl.mmt_transaction_id IS NOT NULL) THEN
5379 OPEN get_oe_order_line_id_from_mmt(rsl.mmt_transaction_id);
5380 FETCH get_oe_order_line_id_from_mmt INTO rti.oe_order_line_id;
5381 CLOSE get_oe_order_line_id_from_mmt;
5382 END IF;*/
5383 END default_rti_from_rsl;
5384
5385 PROCEDURE default_rti_from_rsh(
5386 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
5387 ) IS
5388 rsh rcv_shipment_headers%ROWTYPE;
5389 BEGIN
5390 IF (rti.shipment_header_id IS NOT NULL) THEN
5391 rsh := rcv_table_functions.get_rsh_row_from_id(rti.shipment_header_id);
5392 END IF;
5393
5394 IF (rsh.shipment_header_id IS NULL) THEN
5395 RETURN;
5396 END IF;
5397
5398 IF (rti.from_organization_id IS NULL) THEN
5399 rti.from_organization_id := rsh.organization_id;
5400 ELSIF(rti.from_organization_id <> rsh.organization_id) THEN
5401 invalid_match_value(rti.from_organization_id,
5402 rsh.organization_id,
5403 'FROM_ORGANIZATION_ID'
5404 );
5405 END IF;
5406
5407 /*
5408 ** Bug#4615534 - Org_id defaulting from inventory organization
5409 ** needs to be done only for In-transit shipments
5410 */
5411 IF(rti.receipt_source_code IN ('INVENTORY','INTERNAL ORDER')) THEN -- Bug 9706173
5412 IF (rti.org_id IS NULL) THEN
5413 rti.org_id := get_org_id_from_inv_org_id(rsh.ship_to_org_id);
5414 ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rsh.ship_to_org_id)) THEN
5415 invalid_match_value(rti.org_id,
5416 get_org_id_from_inv_org_id(rsh.ship_to_org_id),
5417 'ORG_ID'
5418 );
5419 END IF;
5420 END IF;
5421
5422 IF (rti.shipment_header_id IS NULL) THEN
5423 rti.shipment_header_id := rsh.shipment_header_id;
5424 ELSIF(rti.shipment_header_id <> rsh.shipment_header_id) THEN
5425 invalid_match_value(rti.shipment_header_id,
5426 rsh.shipment_header_id,
5427 'SHIPMENT_HEADER_ID'
5428 );
5429 END IF;
5430
5431 IF (rti.shipment_num IS NULL) THEN
5432 rti.shipment_num := rsh.shipment_num;
5433 ELSIF(rti.shipment_num <> rsh.shipment_num) THEN
5434 invalid_match_value(rti.shipment_num,
5435 rsh.shipment_num,
5436 'SHIPMENT_NUM'
5437 );
5438 END IF;
5439
5440 IF (rti.to_organization_id IS NULL) THEN
5441 rti.to_organization_id := rsh.ship_to_org_id;
5442 ELSIF(rti.to_organization_id <> rsh.ship_to_org_id) THEN
5443 invalid_match_value(rti.to_organization_id,
5444 rsh.ship_to_org_id,
5445 'TO_ORGANIZATION_ID'
5446 );
5447 END IF;
5448
5449 IF (rti.bill_of_lading IS NULL) THEN
5450 rti.bill_of_lading := rsh.bill_of_lading;
5451 END IF;
5452
5453 IF (rti.currency_code IS NULL) THEN
5454 rti.currency_code := rsh.currency_code;
5455 END IF;
5456
5457 IF (rti.currency_conversion_date IS NULL) THEN
5458 rti.currency_conversion_date := rsh.conversion_date;
5459 END IF;
5460
5461 IF (rti.currency_conversion_rate IS NULL) THEN
5462 rti.currency_conversion_rate := TO_NUMBER(rsh.conversion_rate);
5463 END IF;
5464
5465 IF (rti.currency_conversion_type IS NULL) THEN
5466 rti.currency_conversion_type := rsh.conversion_rate_type;
5467 END IF;
5468
5469 IF (rti.customer_id IS NULL) THEN
5470 rti.customer_id := rsh.customer_id;
5471 END IF;
5472
5473 IF (rti.customer_site_id IS NULL) THEN
5474 rti.customer_site_id := rsh.customer_site_id;
5475 END IF;
5476
5477 IF (rti.employee_id IS NULL) THEN
5478 rti.employee_id := rsh.employee_id;
5479 END IF;
5480
5481 IF (rti.expected_receipt_date IS NULL) THEN
5482 rti.expected_receipt_date := rsh.expected_receipt_date;
5483 END IF;
5484
5485 IF (rti.freight_carrier_code IS NULL) THEN
5486 rti.freight_carrier_code := rsh.freight_carrier_code;
5487 END IF;
5488
5489 IF (rti.government_context IS NULL) THEN
5490 rti.government_context := rsh.government_context;
5491 END IF;
5492
5493 IF (rti.num_of_containers IS NULL) THEN
5494 rti.num_of_containers := rsh.num_of_containers;
5495 END IF;
5496
5497 IF (rti.packing_slip IS NULL) THEN
5498 rti.packing_slip := rsh.packing_slip;
5499 END IF;
5500
5501 IF (rti.receipt_source_code IS NULL) THEN
5502 rti.receipt_source_code := rsh.receipt_source_code;
5503 END IF;
5504
5505 IF (rti.request_id IS NULL) THEN
5506 rti.request_id := rsh.request_id;
5507 END IF;
5508
5509 IF (rti.shipped_date IS NULL) THEN
5510 rti.shipped_date := rsh.shipped_date;
5511 END IF;
5512
5513 IF (rti.ship_line_attribute1 IS NULL) THEN
5514 rti.ship_line_attribute1 := rsh.attribute1;
5515 END IF;
5516
5517 IF (rti.ship_line_attribute10 IS NULL) THEN
5518 rti.ship_line_attribute10 := rsh.attribute10;
5519 END IF;
5520
5521 IF (rti.ship_line_attribute11 IS NULL) THEN
5522 rti.ship_line_attribute11 := rsh.attribute11;
5523 END IF;
5524
5525 IF (rti.ship_line_attribute12 IS NULL) THEN
5526 rti.ship_line_attribute12 := rsh.attribute12;
5527 END IF;
5528
5529 IF (rti.ship_line_attribute13 IS NULL) THEN
5530 rti.ship_line_attribute13 := rsh.attribute13;
5531 END IF;
5532
5533 IF (rti.ship_line_attribute14 IS NULL) THEN
5534 rti.ship_line_attribute14 := rsh.attribute14;
5535 END IF;
5536
5537 IF (rti.ship_line_attribute15 IS NULL) THEN
5538 rti.ship_line_attribute15 := rsh.attribute15;
5539 END IF;
5540
5541 IF (rti.ship_line_attribute2 IS NULL) THEN
5542 rti.ship_line_attribute2 := rsh.attribute2;
5543 END IF;
5544
5545 IF (rti.ship_line_attribute3 IS NULL) THEN
5546 rti.ship_line_attribute3 := rsh.attribute3;
5547 END IF;
5548
5549 IF (rti.ship_line_attribute4 IS NULL) THEN
5550 rti.ship_line_attribute4 := rsh.attribute4;
5551 END IF;
5552
5553 IF (rti.ship_line_attribute5 IS NULL) THEN
5554 rti.ship_line_attribute5 := rsh.attribute5;
5555 END IF;
5556
5557 IF (rti.ship_line_attribute6 IS NULL) THEN
5558 rti.ship_line_attribute6 := rsh.attribute6;
5559 END IF;
5560
5561 IF (rti.ship_line_attribute7 IS NULL) THEN
5562 rti.ship_line_attribute7 := rsh.attribute7;
5563 END IF;
5564
5565 IF (rti.ship_line_attribute8 IS NULL) THEN
5566 rti.ship_line_attribute8 := rsh.attribute8;
5567 END IF;
5568
5569 IF (rti.ship_line_attribute9 IS NULL) THEN
5570 rti.ship_line_attribute9 := rsh.attribute9;
5571 END IF;
5572
5573 IF (rti.ship_line_attribute_category IS NULL) THEN
5574 rti.ship_line_attribute_category := rsh.attribute_category;
5575 END IF;
5576
5577 IF (rti.ship_to_location_id IS NULL) THEN
5578 rti.ship_to_location_id := rsh.ship_to_location_id;
5579 END IF;
5580
5581 IF (rti.tax_amount IS NULL) THEN
5582 rti.tax_amount := rsh.tax_amount;
5583 END IF;
5584
5585 IF (rti.tax_name IS NULL) THEN
5586 rti.tax_name := rsh.tax_name;
5587 END IF;
5588
5589 IF (rti.ussgl_transaction_code IS NULL) THEN
5590 rti.ussgl_transaction_code := rsh.ussgl_transaction_code;
5591 END IF;
5592
5593 IF (rti.vendor_id IS NULL) THEN
5594 rti.vendor_id := rsh.vendor_id;
5595 END IF;
5596
5597 /* Bug 10306164 comment the code related to Vendor site , as RTIs
5598 with same RSH may have differnt vendor site id */
5599
5600 /* IF (rti.vendor_site_id IS NULL) THEN
5601 rti.vendor_site_id := rsh.vendor_site_id;
5602 END IF;*/
5603
5604 IF (rti.waybill_airbill_num IS NULL) THEN
5605 rti.waybill_airbill_num := rsh.waybill_airbill_num;
5606 END IF;
5607 END default_rti_from_rsh;
5608
5609 PROCEDURE default_rti_from_pod(
5610 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
5611 ) IS
5612 pod po_distributions_all%ROWTYPE;
5613 x_quantity NUMBER;
5614 BEGIN
5615 IF (rti.po_distribution_id IS NOT NULL) THEN
5616 pod := rcv_table_functions.get_pod_row_from_id(rti.po_distribution_id);
5617 END IF;
5618
5619 IF (pod.po_distribution_id IS NULL) THEN
5620 RETURN;
5621 END IF;
5622
5623 IF (rti.document_distribution_num IS NULL) THEN
5624 rti.document_distribution_num := pod.distribution_num;
5625 ELSIF(rti.document_distribution_num <> pod.distribution_num) THEN
5626 invalid_match_value(rti.document_distribution_num,
5627 pod.distribution_num,
5628 'DOCUMENT_DISTRIBUTION_NUM'
5629 );
5630 END IF;
5631
5632 IF (rti.org_id IS NULL) THEN
5633 rti.org_id := pod.org_id;
5634 ELSIF(rti.org_id <> pod.org_id) THEN
5635 invalid_match_value(rti.org_id,
5636 pod.org_id,
5637 'ORG_ID'
5638 );
5639 END IF;
5640
5641 IF (rti.po_distribution_id IS NULL) THEN
5642 rti.po_distribution_id := pod.po_distribution_id;
5643 ELSIF(rti.po_distribution_id <> pod.po_distribution_id) THEN
5644 invalid_match_value(rti.po_distribution_id,
5645 pod.po_distribution_id,
5646 'PO_DISTRIBUTION_ID'
5647 );
5648 END IF;
5649
5650 IF (rti.po_header_id IS NULL) THEN
5651 rti.po_header_id := pod.po_header_id;
5652 ELSIF(rti.po_header_id <> pod.po_header_id) THEN
5653 invalid_match_value(rti.po_header_id,
5654 pod.po_header_id,
5655 'PO_HEADER_ID'
5656 );
5657 END IF;
5658
5659 IF (rti.po_line_id IS NULL) THEN
5660 rti.po_line_id := pod.po_line_id;
5661 ELSIF(rti.po_line_id <> pod.po_line_id) THEN
5662 invalid_match_value(rti.po_line_id,
5663 pod.po_line_id,
5664 'PO_LINE_ID'
5665 );
5666 END IF;
5667
5668 IF (rti.po_line_location_id IS NULL) THEN
5669 rti.po_line_location_id := pod.line_location_id;
5670 ELSIF(rti.po_line_location_id <> pod.line_location_id) THEN
5671 invalid_match_value(rti.po_line_location_id,
5672 pod.line_location_id,
5673 'PO_LINE_LOCATION_ID'
5674 );
5675 END IF;
5676
5677 IF (rti.po_release_id IS NULL) THEN
5678 rti.po_release_id := pod.po_release_id;
5679 ELSIF(rti.po_release_id <> pod.po_release_id) THEN
5680 invalid_match_value(rti.po_release_id,
5681 pod.po_release_id,
5682 'PO_RELEASE_ID'
5683 );
5684 END IF;
5685
5686 IF (rti.req_distribution_id IS NULL) THEN
5687 rti.req_distribution_id := pod.req_distribution_id;
5688 ELSIF(rti.req_distribution_id <> pod.req_distribution_id) THEN
5689 invalid_match_value(rti.req_distribution_id,
5690 pod.req_distribution_id,
5691 'REQ_DISTRIBUTION_ID'
5692 );
5693 END IF;
5694
5695 IF (rti.to_organization_id IS NULL) THEN
5696 rti.to_organization_id := pod.destination_organization_id;
5697 ELSIF(rti.to_organization_id <> pod.destination_organization_id) THEN
5698 invalid_match_value(rti.to_organization_id,
5699 pod.destination_organization_id,
5700 'TO_ORGANIZATION_ID'
5701 );
5702 END IF;
5703
5704 IF (rti.wip_entity_id IS NULL) THEN
5705 rti.wip_entity_id := pod.wip_entity_id;
5706 ELSIF(rti.wip_entity_id <> pod.wip_entity_id) THEN
5707 invalid_match_value(rti.wip_entity_id,
5708 pod.wip_entity_id,
5709 'WIP_ENTITY_ID'
5710 );
5711 END IF;
5712
5713 IF (rti.wip_line_id IS NULL) THEN
5714 rti.wip_line_id := pod.wip_line_id;
5715 ELSIF(rti.wip_line_id <> pod.wip_line_id) THEN
5716 invalid_match_value(rti.wip_line_id,
5717 pod.wip_line_id,
5718 'WIP_LINE_ID'
5719 );
5720 END IF;
5721
5722 IF (rti.wip_operation_seq_num IS NULL) THEN
5723 rti.wip_operation_seq_num := pod.wip_operation_seq_num;
5724 ELSIF(rti.wip_operation_seq_num <> pod.wip_operation_seq_num) THEN
5725 invalid_match_value(rti.wip_operation_seq_num,
5726 pod.wip_operation_seq_num,
5727 'WIP_OPERATION_SEQ_NUM'
5728 );
5729 END IF;
5730
5731 IF (rti.wip_repetitive_schedule_id IS NULL) THEN
5732 rti.wip_repetitive_schedule_id := pod.wip_repetitive_schedule_id;
5733 ELSIF(rti.wip_repetitive_schedule_id <> pod.wip_repetitive_schedule_id) THEN
5734 invalid_match_value(rti.wip_repetitive_schedule_id,
5735 pod.wip_repetitive_schedule_id,
5736 'WIP_REPETITIVE_SCHEDULE_ID'
5737 );
5738 END IF;
5739
5740 IF (rti.wip_resource_seq_num IS NULL) THEN
5741 rti.wip_resource_seq_num := pod.wip_resource_seq_num;
5742 ELSIF(rti.wip_resource_seq_num <> pod.wip_resource_seq_num) THEN
5743 invalid_match_value(rti.wip_resource_seq_num,
5744 pod.wip_resource_seq_num,
5745 'WIP_RESOURCE_SEQ_NUM'
5746 );
5747 END IF;
5748
5749 IF (rti.actual_cost IS NULL) THEN
5750 rti.actual_cost := pod.amount_billed;
5751 END IF;
5752
5753 /* Bug 5299177
5754 * We expect customers to give the amount. We do not default but error out
5755 * if it is not given. Commenting out the foll code.
5756 IF (rti.amount IS NULL) THEN
5757 rti.amount := pod.amount_ordered - pod.amount_cancelled;
5758 END IF;
5759 * 5299177 */
5760 /* Start of Bug 6487455 */
5761
5762 /* IF (rti.attribute1 IS NULL) THEN
5763 rti.attribute1 := pod.attribute1;
5764 END IF;
5765
5766 IF (rti.attribute10 IS NULL) THEN
5767 rti.attribute10 := pod.attribute10;
5768 END IF;
5769
5770 IF (rti.attribute11 IS NULL) THEN
5771 rti.attribute11 := pod.attribute11;
5772 END IF;
5773
5774 IF (rti.attribute12 IS NULL) THEN
5775 rti.attribute12 := pod.attribute12;
5776 END IF;
5777
5778 IF (rti.attribute13 IS NULL) THEN
5779 rti.attribute13 := pod.attribute13;
5780 END IF;
5781
5782 IF (rti.attribute14 IS NULL) THEN
5783 rti.attribute14 := pod.attribute14;
5784 END IF;
5785
5786 IF (rti.attribute15 IS NULL) THEN
5787 rti.attribute15 := pod.attribute15;
5788 END IF;
5789
5790 IF (rti.attribute2 IS NULL) THEN
5791 rti.attribute2 := pod.attribute2;
5792 END IF;
5793
5794 IF (rti.attribute3 IS NULL) THEN
5795 rti.attribute3 := pod.attribute3;
5796 END IF;
5797
5798 IF (rti.attribute4 IS NULL) THEN
5799 rti.attribute4 := pod.attribute4;
5800 END IF;
5801
5802 IF (rti.attribute5 IS NULL) THEN
5803 rti.attribute5 := pod.attribute5;
5804 END IF;
5805
5806 IF (rti.attribute6 IS NULL) THEN
5807 rti.attribute6 := pod.attribute6;
5808 END IF;
5809
5810 IF (rti.attribute7 IS NULL) THEN
5811 rti.attribute7 := pod.attribute7;
5812 END IF;
5813
5814 IF (rti.attribute8 IS NULL) THEN
5815 rti.attribute8 := pod.attribute8;
5816 END IF;
5817
5818 IF (rti.attribute9 IS NULL) THEN
5819 rti.attribute9 := pod.attribute9;
5820 END IF;
5821
5822 IF (rti.attribute_category IS NULL) THEN
5823 rti.attribute_category := pod.attribute_category;
5824 END IF; */
5825
5826 /* End Bug 6487455 */
5827
5828 IF (rti.bom_resource_id IS NULL) THEN
5829 rti.bom_resource_id := pod.bom_resource_id;
5830 END IF;
5831
5832 IF (rti.charge_account_id IS NULL) THEN
5833 rti.charge_account_id := NVL(pod.dest_charge_account_id, pod.code_combination_id);
5834 END IF;
5835
5836 /* Begin Bug 13013727, if match option is receipt, we should default this
5837 from transaction date*/
5838 /* IF (rti.currency_conversion_date IS NULL) THEN
5839 rti.currency_conversion_date := pod.rate_date;
5840 END IF;
5841
5842 IF (rti.currency_conversion_rate IS NULL) THEN
5843 rti.currency_conversion_rate := pod.rate;
5844 END IF; */
5845 /* End Bug 13013727 */
5846
5847 IF (rti.deliver_to_location_id IS NULL) THEN
5848 rti.deliver_to_location_id := pod.deliver_to_location_id;
5849 END IF;
5850
5851 IF (rti.deliver_to_person_id IS NULL) THEN
5852 rti.deliver_to_person_id := pod.deliver_to_person_id;
5853 END IF;
5854
5855 IF (rti.destination_context IS NULL) THEN
5856 rti.destination_context := pod.destination_context;
5857 END IF;
5858
5859 IF (rti.destination_type_code IS NULL) THEN
5860 rti.destination_type_code := pod.destination_type_code;
5861 END IF;
5862
5863 IF (rti.government_context IS NULL) THEN
5864 rti.government_context := pod.government_context;
5865 END IF;
5866
5867 IF (rti.project_id IS NULL) THEN
5868 rti.project_id := pod.project_id;
5869 END IF;
5870
5871 /* Bug 5584736.
5872 * We have a detailed defaulting routine for defaulting
5873 * subinventory and locator later. Commenting out this code
5874 * here since this is creating problems later.
5875 IF (rti.subinventory IS NULL) THEN
5876 rti.subinventory := pod.destination_subinventory;
5877 END IF;
5878 */
5879
5880 IF (rti.task_id IS NULL) THEN
5881 rti.task_id := pod.task_id;
5882 END IF;
5883
5884 IF (rti.ussgl_transaction_code IS NULL) THEN
5885 rti.ussgl_transaction_code := pod.ussgl_transaction_code;
5886 END IF;
5887
5888 --Quantity
5889 /* Bug 5299177
5890 * We expect customers to give the quantity. We do not default but error out
5891 * if it is not given. Commenting out the foll code.
5892 IF (rti.quantity IS NULL) THEN
5893 x_quantity := pod.quantity_billed;
5894
5895 IF ( x_quantity = 0
5896 OR x_quantity IS NULL) THEN
5897 x_quantity := pod.quantity_ordered - NVL(pod.quantity_cancelled, 0);
5898 END IF;
5899
5900 rti.quantity := x_quantity;
5901 g_subtract_pll_qty_rcv := TRUE;
5902 END IF;
5903 * 5299177 */
5904 END default_rti_from_pod;
5905
5906 PROCEDURE default_rti_from_pll(
5907 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
5908 ) IS
5909 pll po_line_locations_all%ROWTYPE;
5910 x_quantity NUMBER;
5911 BEGIN
5912 IF (rti.po_line_location_id IS NOT NULL) THEN
5913 pll := rcv_table_functions.get_pll_row_from_id(rti.po_line_location_id);
5914 END IF;
5915
5916 IF (pll.line_location_id IS NULL) THEN
5917 RETURN;
5918 END IF;
5919
5920 IF (rti.document_shipment_line_num IS NULL) THEN
5921 rti.document_shipment_line_num := pll.shipment_num;
5922 ELSIF(rti.document_shipment_line_num <> pll.shipment_num) THEN
5923 invalid_match_value(rti.document_shipment_line_num,
5924 pll.shipment_num,
5925 'DOCUMENT_SHIPMENT_LINE_NUM'
5926 );
5927 END IF;
5928
5929 IF (rti.org_id IS NULL) THEN
5930 rti.org_id := pll.org_id;
5931 ELSIF(rti.org_id <> pll.org_id) THEN
5932 invalid_match_value(rti.org_id,
5933 pll.org_id,
5934 'ORG_ID'
5935 );
5936 END IF;
5937
5938 IF (rti.po_header_id IS NULL) THEN
5939 rti.po_header_id := pll.po_header_id;
5940 ELSIF(rti.po_header_id <> pll.po_header_id) THEN
5941 invalid_match_value(rti.po_header_id,
5942 pll.po_header_id,
5943 'PO_HEADER_ID'
5944 );
5945 END IF;
5946 /* Complex work.
5947 * Get nvl(pll.price_override,pl.unit_price.
5948 */
5949
5950 select nvl(poll.price_override,pol.unit_price)
5951 into pll.price_override
5952 from po_line_locations_all poll,
5953 po_lines_all pol
5954 where poll.line_location_id = pll.line_location_id
5955 and pol.po_line_id = poll.po_line_id;
5956
5957 IF (rti.po_unit_price IS NULL) THEN
5958 rti.po_unit_price := pll.price_override;
5959 end if;
5960
5961 IF (rti.po_line_id IS NULL) THEN
5962 rti.po_line_id := pll.po_line_id;
5963 ELSIF(rti.po_line_id <> pll.po_line_id) THEN
5964 invalid_match_value(rti.po_line_id,
5965 pll.po_line_id,
5966 'PO_LINE_ID'
5967 );
5968 END IF;
5969
5970 IF (rti.po_line_location_id IS NULL) THEN
5971 rti.po_line_location_id := pll.line_location_id;
5972 ELSIF(rti.po_line_location_id <> pll.line_location_id) THEN
5973 invalid_match_value(rti.po_line_location_id,
5974 pll.line_location_id,
5975 'PO_LINE_LOCATION_ID'
5976 );
5977 END IF;
5978
5979 IF (rti.po_release_id IS NULL) THEN
5980 rti.po_release_id := pll.po_release_id;
5981 ELSIF(rti.po_release_id <> pll.po_release_id) THEN
5982 invalid_match_value(rti.po_release_id,
5983 pll.po_release_id,
5984 'PO_RELEASE_ID'
5985 );
5986 END IF;
5987
5988 IF (rti.to_organization_id IS NULL) THEN
5989 rti.to_organization_id := pll.ship_to_organization_id;
5990 ELSIF(rti.to_organization_id <> pll.ship_to_organization_id) THEN
5991 invalid_match_value(rti.to_organization_id,
5992 pll.ship_to_organization_id,
5993 'TO_ORGANIZATION_ID'
5994 );
5995 END IF;
5996
5997 /* Complex Work.
5998 * Item_description is at the shipment level for
5999 * complex work POs and at the line level
6000 * for non-complex work POs.
6001 */
6002 select nvl(poll.description,pol.item_description)
6003 into pll.description
6004 from po_line_locations_all poll,
6005 po_lines_all pol
6006 where poll.line_location_id = pll.line_location_id
6007 and pol.po_line_id = poll.po_line_id;
6008
6009
6010 IF (rti.item_description IS NULL) THEN
6011
6012 /* Bug 4753230 : Item description should not be defaulted for rti rows
6013 ** populated for OTL retrieval
6014 */
6015 IF ( rti.timecard_id IS NULL ) THEN
6016 rti.item_description := pll.description;
6017 END IF;
6018
6019 ELSIF(rti.item_description <> pll.description) THEN
6020 /** Bug: 5598511
6021 * For ASN created with substitution item, item description and item id of rti
6022 * won't match with the item description and item id of pol or poll.
6023 * So, bypassing the item description and item id validation for ASN.
6024 */
6025 /* IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6026 invalid_match_value(rti.item_description,
6027 pll.description,
6028 'ITEM_DESCRIPTION'
6029 );
6030 END IF;*/
6031 rti.item_description := pll.description;
6032 /* Bug 7012051: Made the item_description to be defaulted from
6033 Pll.description so that transaction should not fail when invalid
6034 item description is entered*/
6035 END IF;
6036
6037
6038 IF (rti.substitute_unordered_code IS NULL) THEN
6039 IF (rti.item_description IS NULL) THEN
6040
6041 /* Bug 4753230 : Item description should not be defaulted for rti rows
6042 ** populated for OTL retrieval
6043 */
6044 IF ( rti.timecard_id IS NULL ) THEN
6045 rti.item_description := pll.description;
6046 END IF;
6047
6048 ELSIF(rti.item_description <> pll.description) THEN
6049 /* IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6050 invalid_match_value(rti.item_description,
6051 pll.description,
6052 'ITEM_DESCRIPTION'
6053 );
6054 END IF;*/
6055 rti.item_description := pll.description;
6056 /* Bug 7012051: Made the item_description to be defaulted from
6057 Pll.description so that transaction should not fail when invalid
6058 item description is entered*/
6059 END IF;
6060 END IF;
6061
6062 /* Complex Work. We should not default amount since it should
6063 * be done by the user.
6064 IF (rti.amount IS NULL) THEN
6065 rti.amount := pll.amount;
6066 END IF;
6067 */
6068
6069 IF (rti.attribute1 IS NULL) THEN
6070 rti.attribute1 := pll.attribute1;
6071 END IF;
6072
6073 IF (rti.attribute10 IS NULL) THEN
6074 rti.attribute10 := pll.attribute10;
6075 END IF;
6076
6077 IF (rti.attribute11 IS NULL) THEN
6078 rti.attribute11 := pll.attribute11;
6079 END IF;
6080
6081 IF (rti.attribute12 IS NULL) THEN
6082 rti.attribute12 := pll.attribute12;
6083 END IF;
6084
6085 IF (rti.attribute13 IS NULL) THEN
6086 rti.attribute13 := pll.attribute13;
6087 END IF;
6088
6089 IF (rti.attribute14 IS NULL) THEN
6090 rti.attribute14 := pll.attribute14;
6091 END IF;
6092
6093 IF (rti.attribute15 IS NULL) THEN
6094 rti.attribute15 := pll.attribute15;
6095 END IF;
6096
6097 IF (rti.attribute2 IS NULL) THEN
6098 rti.attribute2 := pll.attribute2;
6099 END IF;
6100
6101 IF (rti.attribute3 IS NULL) THEN
6102 rti.attribute3 := pll.attribute3;
6103 END IF;
6104
6105 IF (rti.attribute4 IS NULL) THEN
6106 rti.attribute4 := pll.attribute4;
6107 END IF;
6108
6109 IF (rti.attribute5 IS NULL) THEN
6110 rti.attribute5 := pll.attribute5;
6111 END IF;
6112
6113 IF (rti.attribute6 IS NULL) THEN
6114 rti.attribute6 := pll.attribute6;
6115 END IF;
6116
6117 IF (rti.attribute7 IS NULL) THEN
6118 rti.attribute7 := pll.attribute7;
6119 END IF;
6120
6121 IF (rti.attribute8 IS NULL) THEN
6122 rti.attribute8 := pll.attribute8;
6123 END IF;
6124
6125 IF (rti.attribute9 IS NULL) THEN
6126 rti.attribute9 := pll.attribute9;
6127 END IF;
6128
6129 IF (rti.attribute_category IS NULL) THEN
6130 rti.attribute_category := pll.attribute_category;
6131 END IF;
6132
6133 IF (rti.country_of_origin_code IS NULL) THEN
6134 rti.country_of_origin_code := pll.country_of_origin_code;
6135 END IF;
6136
6137 IF (rti.government_context IS NULL) THEN
6138 rti.government_context := pll.government_context;
6139 END IF;
6140
6141 IF (rti.routing_header_id IS NULL) THEN
6142 rti.routing_header_id := pll.receiving_routing_id;
6143 END IF;
6144
6145 IF (rti.secondary_unit_of_measure IS NULL) THEN
6146 rti.secondary_unit_of_measure := pll.secondary_unit_of_measure;
6147 END IF;
6148
6149 IF (rti.ship_to_location_id IS NULL) THEN
6150 rti.ship_to_location_id := pll.ship_to_location_id;
6151 END IF;
6152
6153 IF (rti.source_doc_unit_of_measure IS NULL) THEN
6154 rti.source_doc_unit_of_measure := pll.unit_meas_lookup_code;
6155 END IF;
6156
6157 IF (rti.tax_name IS NULL) THEN
6158 rti.tax_name := pll.tax_name;
6159 END IF;
6160
6161 IF (rti.unit_of_measure IS NULL) THEN
6162 rti.unit_of_measure := pll.unit_meas_lookup_code;
6163 END IF;
6164
6165 IF (rti.ussgl_transaction_code IS NULL) THEN
6166 rti.ussgl_transaction_code := pll.ussgl_transaction_code;
6167 END IF;
6168
6169 /* Complex work. */
6170
6171 IF (rti.po_unit_price IS NULL) THEN
6172 rti.po_unit_price := pll.price_override;
6173 END IF;
6174 --Quantity
6175 /* Complex Work. We should not default quantity since it should
6176 * be done by the user.
6177 IF (rti.quantity IS NULL) THEN
6178 x_quantity := pll.quantity_billed;
6179
6180 IF ( x_quantity = 0
6181 OR x_quantity IS NULL) THEN
6182 x_quantity := pll.quantity - NVL(pll.quantity_cancelled, 0);
6183 END IF;
6184
6185 rti.quantity := x_quantity - NVL(pll.quantity_received, 0);
6186
6187 IF ( rti.secondary_quantity IS NULL
6188 AND rti.quantity = pll.quantity) THEN
6189 rti.secondary_quantity := pll.secondary_quantity;
6190 END IF;
6191 ELSIF(g_subtract_pll_qty_rcv = TRUE) THEN
6192 rti.quantity := rti.quantity - NVL(pll.quantity_received, 0);
6193 END IF;
6194 */
6195 END default_rti_from_pll;
6196
6197 PROCEDURE default_rti_from_pol(
6198 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6199 ) IS
6200 pol po_lines_all%ROWTYPE;
6201 BEGIN
6202 asn_debug.put_line('Enter default_rti_from_pol');
6203 IF (rti.po_line_id IS NOT NULL) THEN
6204 pol := rcv_table_functions.get_pol_row_from_id(rti.po_line_id);
6205 END IF;
6206 asn_debug.put_line('Afte get_pol_row_from_id');
6207
6208 IF (pol.po_line_id IS NULL) THEN
6209 asn_debug.put_line('pol.po_line_id is: '||pol.po_line_id);
6210 RETURN;
6211 END IF;
6212
6213 IF (rti.document_line_num IS NULL) THEN
6214 rti.document_line_num := pol.line_num;
6215 ELSIF(rti.document_line_num <> pol.line_num) THEN
6216 invalid_match_value(rti.document_line_num,
6217 pol.line_num,
6218 'DOCUMENT_LINE_NUM'
6219 );
6220 END IF;
6221
6222 IF (rti.substitute_unordered_code IS NULL) THEN
6223 /* Complex Work.
6224 * Item_description is at the shipment level for
6225 * Complex work. For non complex work POs it is at
6226 * the line level. So the check for item_description
6227 * is done at the shipment_level itself. Commented
6228 * out the code here.
6229
6230 IF (rti.item_description IS NULL) THEN
6231 rti.item_description := pol.item_description;
6232 ELSIF(rti.item_description <> pol.item_description) THEN
6233 invalid_match_value(rti.item_description,
6234 pol.item_description,
6235 'ITEM_DESCRIPTION'
6236 );
6237 END IF;
6238
6239 */
6240 IF (rti.item_id IS NULL) THEN
6241 rti.item_id := pol.item_id;
6242 ELSIF(rti.item_id <> pol.item_id) THEN
6243 IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6244 invalid_match_value(rti.item_id,
6245 pol.item_id,
6246 'ITEM_ID'
6247 );
6248 END IF;
6249 END IF;
6250
6251 IF (rti.item_revision IS NULL) THEN
6252 rti.item_revision := pol.item_revision;
6253 /*
6254 Bug 5975270: We can't compare the two revisions right now
6255 as we are not sure if item is revision controlled or not.
6256 ELSIF(rti.item_revision <> pol.item_revision) THEN
6257 IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6258 invalid_match_value(rti.item_revision,
6259 pol.item_revision,
6260 'ITEM_REVISION'
6261 );
6262 END IF;
6263 */
6264 END IF;
6265 END IF;
6266
6267 IF (rti.job_id IS NULL) THEN
6268 rti.job_id := pol.job_id;
6269 ELSIF(rti.job_id <> pol.job_id) THEN
6270 invalid_match_value(rti.job_id,
6271 pol.job_id,
6272 'JOB_ID'
6273 );
6274 END IF;
6275
6276 IF (rti.org_id IS NULL) THEN
6277 rti.org_id := pol.org_id;
6278 ELSIF(rti.org_id <> pol.org_id) THEN
6279 invalid_match_value(rti.org_id,
6280 pol.org_id,
6281 'ORG_ID'
6282 );
6283 END IF;
6284
6285 IF (rti.po_header_id IS NULL) THEN
6286 rti.po_header_id := pol.po_header_id;
6287 ELSIF(rti.po_header_id <> pol.po_header_id) THEN
6288 invalid_match_value(rti.po_header_id,
6289 pol.po_header_id,
6290 'PO_HEADER_ID'
6291 );
6292 END IF;
6293
6294 asn_debug.put_line('Before po_line_id');
6295 IF (rti.po_line_id IS NULL) THEN
6296 rti.po_line_id := pol.po_line_id;
6297 ELSIF(rti.po_line_id <> pol.po_line_id) THEN
6298 invalid_match_value(rti.po_line_id,
6299 pol.po_line_id,
6300 'PO_LINE_ID'
6301 );
6302 END IF;
6303
6304 IF (rti.project_id IS NULL) THEN
6305 rti.project_id := pol.project_id;
6306 ELSIF(rti.project_id <> pol.project_id) THEN
6307 invalid_match_value(rti.project_id,
6308 pol.project_id,
6309 'PROJECT_ID'
6310 );
6311 END IF;
6312
6313 IF (rti.task_id IS NULL) THEN
6314 rti.task_id := pol.task_id;
6315 ELSIF(rti.task_id <> pol.task_id) THEN
6316 invalid_match_value(rti.task_id,
6317 pol.task_id,
6318 'TASK_ID'
6319 );
6320 END IF;
6321
6322 /* Complex Work.
6323 * We should not pick up amount from po_lines.
6324 * It should be populated by the user.
6325
6326 IF (rti.amount IS NULL) THEN
6327 rti.amount := pol.amount;
6328 END IF;
6329 */
6330
6331 /* Start of Bug 6487455 */
6332
6333 /* IF (rti.attribute1 IS NULL) THEN
6334 rti.attribute1 := pol.attribute1;
6335 END IF;
6336
6337 IF (rti.attribute10 IS NULL) THEN
6338 rti.attribute10 := pol.attribute10;
6339 END IF;
6340
6341 IF (rti.attribute11 IS NULL) THEN
6342 rti.attribute11 := pol.attribute11;
6343 END IF;
6344
6345 IF (rti.attribute12 IS NULL) THEN
6346 rti.attribute12 := pol.attribute12;
6347 END IF;
6348
6349 IF (rti.attribute13 IS NULL) THEN
6350 rti.attribute13 := pol.attribute13;
6351 END IF;
6352
6353 IF (rti.attribute14 IS NULL) THEN
6354 rti.attribute14 := pol.attribute14;
6355 END IF;
6356
6357 IF (rti.attribute15 IS NULL) THEN
6358 rti.attribute15 := pol.attribute15;
6359 END IF;
6360
6361 IF (rti.attribute2 IS NULL) THEN
6362 rti.attribute2 := pol.attribute2;
6363 END IF;
6364
6365 IF (rti.attribute3 IS NULL) THEN
6366 rti.attribute3 := pol.attribute3;
6367 END IF;
6368
6369 IF (rti.attribute4 IS NULL) THEN
6370 rti.attribute4 := pol.attribute4;
6371 END IF;
6372
6373 IF (rti.attribute5 IS NULL) THEN
6374 rti.attribute5 := pol.attribute5;
6375 END IF;
6376
6377 IF (rti.attribute6 IS NULL) THEN
6378 rti.attribute6 := pol.attribute6;
6379 END IF;
6380
6381 IF (rti.attribute7 IS NULL) THEN
6382 rti.attribute7 := pol.attribute7;
6383 END IF;
6384
6385 IF (rti.attribute8 IS NULL) THEN
6386 rti.attribute8 := pol.attribute8;
6387 END IF;
6388
6389 IF (rti.attribute9 IS NULL) THEN
6390 rti.attribute9 := pol.attribute9;
6391 END IF;
6392
6393 IF (rti.attribute_category IS NULL) THEN
6394 rti.attribute_category := pol.attribute_category;
6395 END IF; */
6396
6397 /* End Bug 6487455 */
6398
6399 IF (rti.category_id IS NULL) THEN
6400 rti.category_id := pol.category_id;
6401 END IF;
6402
6403 IF (rti.government_context IS NULL) THEN
6404 rti.government_context := pol.government_context;
6405 END IF;
6406
6407 /* Complex Work. */
6408 IF (rti.po_unit_price IS NULL) THEN
6409 rti.po_unit_price := pol.unit_price;
6410 END IF;
6411
6412 IF (rti.qc_grade IS NULL) THEN
6413 rti.qc_grade := pol.qc_grade;
6414 END IF;
6415
6416 IF (rti.secondary_unit_of_measure IS NULL) THEN
6417 rti.secondary_unit_of_measure := pol.secondary_unit_of_measure;
6418 END IF;
6419
6420 IF (rti.source_doc_unit_of_measure IS NULL) THEN
6421 rti.source_doc_unit_of_measure := pol.unit_meas_lookup_code;
6422 END IF;
6423
6424 IF (rti.tax_name IS NULL) THEN
6425 rti.tax_name := pol.tax_name;
6426 END IF;
6427
6428 IF (rti.unit_of_measure IS NULL) THEN
6429 rti.unit_of_measure := pol.unit_meas_lookup_code;
6430 END IF;
6431
6432 IF (rti.ussgl_transaction_code IS NULL) THEN
6433 rti.ussgl_transaction_code := pol.ussgl_transaction_code;
6434 END IF;
6435
6436 --Quantity
6437 /* Complex Work.
6438 * User should enter quantity. Should not be defaulted.
6439
6440 IF (rti.quantity IS NULL) THEN
6441 rti.quantity := pol.quantity;
6442
6443 IF (rti.secondary_quantity IS NULL) THEN
6444 rti.secondary_quantity := pol.secondary_quantity;
6445 END IF;
6446 END IF;
6447 */
6448 asn_debug.put_line('Leave default_rti_from_pol');
6449 END default_rti_from_pol;
6450
6451 PROCEDURE default_rti_from_poh(
6452 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6453 ) IS
6454 poh po_headers_all%ROWTYPE;
6455 BEGIN
6456 IF (rti.po_header_id IS NOT NULL) THEN
6457 poh := rcv_table_functions.get_poh_row_from_id(rti.po_header_id);
6458 END IF;
6459
6460 IF (poh.po_header_id IS NULL) THEN
6461 RETURN;
6462 END IF;
6463
6464 IF (rti.document_num IS NULL) THEN
6465 rti.document_num := poh.segment1;
6466 ELSIF(rti.document_num <> poh.segment1) THEN
6467 invalid_match_value(rti.document_num,
6468 poh.segment1,
6469 'DOCUMENT_NUM'
6470 );
6471 END IF;
6472
6473 IF (rti.org_id IS NULL) THEN
6474 rti.org_id := poh.org_id;
6475 ELSIF(rti.org_id <> poh.org_id) THEN
6476 invalid_match_value(rti.org_id,
6477 poh.org_id,
6478 'ORG_ID'
6479 );
6480 END IF;
6481
6482 IF (rti.po_header_id IS NULL) THEN
6483 rti.po_header_id := poh.po_header_id;
6484 ELSIF(rti.po_header_id <> poh.po_header_id) THEN
6485 invalid_match_value(rti.po_header_id,
6486 poh.po_header_id,
6487 'PO_HEADER_ID'
6488 );
6489 END IF;
6490
6491 /* Start of Bug 6487455 */
6492
6493 /* IF (rti.attribute1 IS NULL) THEN
6494 rti.attribute1 := poh.attribute1;
6495 END IF;
6496
6497 IF (rti.attribute10 IS NULL) THEN
6498 rti.attribute10 := poh.attribute10;
6499 END IF;
6500
6501 IF (rti.attribute11 IS NULL) THEN
6502 rti.attribute11 := poh.attribute11;
6503 END IF;
6504
6505 IF (rti.attribute12 IS NULL) THEN
6506 rti.attribute12 := poh.attribute12;
6507 END IF;
6508
6509 IF (rti.attribute13 IS NULL) THEN
6510 rti.attribute13 := poh.attribute13;
6511 END IF;
6512
6513 IF (rti.attribute14 IS NULL) THEN
6514 rti.attribute14 := poh.attribute14;
6515 END IF;
6516
6517 IF (rti.attribute15 IS NULL) THEN
6518 rti.attribute15 := poh.attribute15;
6519 END IF;
6520
6521 IF (rti.attribute2 IS NULL) THEN
6522 rti.attribute2 := poh.attribute2;
6523 END IF;
6524
6525 IF (rti.attribute3 IS NULL) THEN
6526 rti.attribute3 := poh.attribute3;
6527 END IF;
6528
6529 IF (rti.attribute4 IS NULL) THEN
6530 rti.attribute4 := poh.attribute4;
6531 END IF;
6532
6533 IF (rti.attribute5 IS NULL) THEN
6534 rti.attribute5 := poh.attribute5;
6535 END IF;
6536
6537 IF (rti.attribute6 IS NULL) THEN
6538 rti.attribute6 := poh.attribute6;
6539 END IF;
6540
6541 IF (rti.attribute7 IS NULL) THEN
6542 rti.attribute7 := poh.attribute7;
6543 END IF;
6544
6545 IF (rti.attribute8 IS NULL) THEN
6546 rti.attribute8 := poh.attribute8;
6547 END IF;
6548
6549 IF (rti.attribute9 IS NULL) THEN
6550 rti.attribute9 := poh.attribute9;
6551 END IF;
6552
6553 IF (rti.attribute_category IS NULL) THEN
6554 rti.attribute_category := poh.attribute_category;
6555 END IF; */
6556
6557 /* End Bug 6487455 */
6558
6559 IF (rti.currency_code IS NULL) THEN
6560 rti.currency_code := poh.currency_code;
6561 END IF;
6562
6563 /* Begin Bug 13013727, if match option is receipt,
6564 we should default this from transaction date*/
6565 /* IF (rti.currency_conversion_date IS NULL) THEN
6566 rti.currency_conversion_date := poh.rate_date;
6567 END IF;
6568
6569 IF (rti.currency_conversion_rate IS NULL) THEN
6570 rti.currency_conversion_rate := poh.rate;
6571 END IF; */
6572 /* End Bug 13013727. */
6573
6574 IF (rti.currency_conversion_type IS NULL) THEN
6575 rti.currency_conversion_type := poh.rate_type;
6576 END IF;
6577
6578 IF (rti.employee_id IS NULL) THEN
6579 rti.employee_id := poh.agent_id;
6580 END IF;
6581
6582 IF (rti.government_context IS NULL) THEN
6583 rti.government_context := poh.government_context;
6584 END IF;
6585
6586 IF (rti.interface_source_code IS NULL) THEN
6587 rti.interface_source_code := poh.interface_source_code;
6588 END IF;
6589
6590 IF (rti.ship_to_location_id IS NULL) THEN
6591 rti.ship_to_location_id := poh.ship_to_location_id;
6592 END IF;
6593
6594 IF (rti.ussgl_transaction_code IS NULL) THEN
6595 rti.ussgl_transaction_code := poh.ussgl_transaction_code;
6596 END IF;
6597
6598 IF (rti.vendor_id IS NULL) THEN
6599 rti.vendor_id := poh.vendor_id;
6600 END IF;
6601 -- Bug 6520985
6602 -- Bug 10306164 revert commented code in bug 6520985
6603 IF (rti.vendor_site_id IS NULL) THEN
6604 rti.vendor_site_id := poh.vendor_site_id;
6605 END IF;
6606 END default_rti_from_poh;
6607
6608 PROCEDURE default_rti_from_oel(
6609 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6610 ) IS
6611 oel oe_order_lines_all%ROWTYPE;
6612 BEGIN
6613 IF (rti.oe_order_line_id IS NOT NULL) THEN
6614 oel := rcv_table_functions.get_oel_row_from_id(rti.oe_order_line_id);
6615 END IF;
6616
6617 IF (oel.line_id IS NULL) THEN
6618 RETURN;
6619 END IF;
6620 /** Bug:5502427
6621 * default_rti_from_oel() procedure will get invoked only for RMAs
6622 * as per the fix done through this bug. So no need to handle
6623 * the Internal Order case in this procedure
6624 */
6625 -- IF (rti.source_document_code = 'RMA') THEN
6626 IF (rti.to_organization_id IS NULL) THEN
6627 rti.to_organization_id := oel.ship_from_org_id;
6628 ELSIF(rti.to_organization_id <> oel.ship_from_org_id) THEN
6629 invalid_match_value(rti.to_organization_id,
6630 oel.ship_from_org_id,
6631 'TO_ORGANIZATION_ID'
6632 );
6633 END IF;
6634 /* WDK - This appears to cause a problem
6635 IF (rti.from_organization_id IS NULL) THEN
6636 rti.from_organization_id := oel.ship_to_org_id;
6637 END IF;
6638 */
6639 /* ELSE --RTI.SOURCE_CODE_CODE = 'REQ'
6640 IF (rti.from_organization_id IS NULL) THEN
6641 rti.from_organization_id := oel.ship_from_org_id;
6642 ELSIF(rti.from_organization_id <> oel.ship_from_org_id) THEN
6643 invalid_match_value(rti.from_organization_id,
6644 oel.ship_from_org_id,
6645 'FROM_ORGANIZATION_ID'
6646 );
6647 END IF;
6648
6649 IF (rti.to_organization_id IS NULL) THEN
6650 rti.to_organization_id := oel.ship_to_org_id;
6651 END IF;
6652 END IF;*/
6653
6654 IF (rti.substitute_unordered_code IS NULL) THEN
6655 IF (rti.item_id IS NULL) THEN
6656 rti.item_id := oel.inventory_item_id;
6657 ELSIF(rti.item_id <> oel.inventory_item_id) THEN
6658 invalid_match_value(rti.item_id,
6659 oel.inventory_item_id,
6660 'ITEM_ID'
6661 );
6662 END IF;
6663 END IF;
6664
6665 IF (rti.oe_order_header_id IS NULL) THEN
6666 rti.oe_order_header_id := oel.header_id;
6667 ELSIF(rti.oe_order_header_id <> oel.header_id) THEN
6668 invalid_match_value(rti.oe_order_header_id,
6669 oel.header_id,
6670 'OE_ORDER_HEADER_ID'
6671 );
6672 END IF;
6673
6674 IF (rti.oe_order_line_id IS NULL) THEN
6675 rti.oe_order_line_id := oel.line_id;
6676 ELSIF(rti.oe_order_line_id <> oel.line_id) THEN
6677 invalid_match_value(rti.oe_order_line_id,
6678 oel.line_id,
6679 'OE_ORDER_LINE_ID'
6680 );
6681 END IF;
6682
6683 IF (rti.oe_order_line_num IS NULL) THEN
6684 rti.oe_order_line_num := oel.line_number;
6685 ELSIF(rti.oe_order_line_num <> oel.line_number) THEN
6686 invalid_match_value(rti.oe_order_line_num,
6687 oel.line_number,
6688 'OE_ORDER_LINE_NUM'
6689 );
6690 END IF;
6691
6692 IF (rti.document_line_num IS NULL) THEN
6693 rti.document_line_num := oel.line_number;
6694 ELSIF(rti.document_line_num <> oel.line_number) THEN
6695 invalid_match_value(rti.document_line_num,
6696 oel.line_number,
6697 'DOCUMENT_LINE_NUM'
6698 );
6699 END IF;
6700
6701 IF (rti.org_id IS NULL) THEN
6702 rti.org_id := oel.org_id;
6703 ELSIF(rti.org_id <> oel.org_id) THEN
6704 invalid_match_value(rti.org_id,
6705 oel.org_id,
6706 'ORG_ID'
6707 );
6708 END IF;
6709
6710 IF (rti.project_id IS NULL) THEN
6711 rti.project_id := oel.project_id;
6712 ELSIF(rti.project_id <> oel.project_id) THEN
6713 invalid_match_value(rti.project_id,
6714 oel.project_id,
6715 'PROJECT_ID'
6716 );
6717 END IF;
6718
6719 IF (rti.task_id IS NULL) THEN
6720 rti.task_id := oel.task_id;
6721 ELSIF(rti.task_id <> oel.task_id) THEN
6722 invalid_match_value(rti.task_id,
6723 oel.task_id,
6724 'TASK_ID'
6725 );
6726 END IF;
6727
6728 IF (rti.attribute1 IS NULL) THEN
6729 rti.attribute1 := oel.return_attribute1;
6730 END IF;
6731
6732 IF (rti.attribute10 IS NULL) THEN
6733 rti.attribute10 := oel.return_attribute10;
6734 END IF;
6735
6736 IF (rti.attribute11 IS NULL) THEN
6737 rti.attribute11 := oel.return_attribute11;
6738 END IF;
6739
6740 IF (rti.attribute12 IS NULL) THEN
6741 rti.attribute12 := oel.return_attribute12;
6742 END IF;
6743
6744 IF (rti.attribute13 IS NULL) THEN
6745 rti.attribute13 := oel.return_attribute13;
6746 END IF;
6747
6748 IF (rti.attribute14 IS NULL) THEN
6749 rti.attribute14 := oel.return_attribute14;
6750 END IF;
6751
6752 IF (rti.attribute15 IS NULL) THEN
6753 rti.attribute15 := oel.return_attribute15;
6754 END IF;
6755
6756 IF (rti.attribute2 IS NULL) THEN
6757 rti.attribute2 := oel.return_attribute2;
6758 END IF;
6759
6760 IF (rti.attribute3 IS NULL) THEN
6761 rti.attribute3 := oel.return_attribute3;
6762 END IF;
6763
6764 IF (rti.attribute4 IS NULL) THEN
6765 rti.attribute4 := oel.return_attribute4;
6766 END IF;
6767
6768 IF (rti.attribute5 IS NULL) THEN
6769 rti.attribute5 := oel.return_attribute5;
6770 END IF;
6771
6772 IF (rti.attribute6 IS NULL) THEN
6773 rti.attribute6 := oel.return_attribute6;
6774 END IF;
6775
6776 IF (rti.attribute7 IS NULL) THEN
6777 rti.attribute7 := oel.return_attribute7;
6778 END IF;
6779
6780 IF (rti.attribute8 IS NULL) THEN
6781 rti.attribute8 := oel.return_attribute8;
6782 END IF;
6783
6784 IF (rti.attribute9 IS NULL) THEN
6785 rti.attribute9 := oel.return_attribute9;
6786 END IF;
6787
6788 IF (rti.attribute_category IS NULL) THEN
6789 rti.attribute_category := oel.return_context;
6790 END IF;
6791
6792 IF (rti.customer_id IS NULL) THEN
6793 rti.customer_id := oel.end_customer_id;
6794 END IF;
6795
6796 IF (rti.customer_item_num IS NULL) THEN
6797 rti.customer_item_num := oel.end_item_unit_number;
6798 END IF;
6799
6800 IF (rti.customer_site_id IS NULL) THEN
6801 rti.customer_site_id := oel.end_customer_site_use_id;
6802 END IF;
6803
6804 IF (rti.freight_carrier_code IS NULL) THEN
6805 rti.freight_carrier_code := oel.freight_carrier_code;
6806 END IF;
6807
6808 IF (rti.item_num IS NULL) THEN
6809 rti.item_num := oel.ordered_item;
6810 END IF;
6811
6812 IF (rti.item_revision IS NULL) THEN
6813 rti.item_revision := oel.item_revision;
6814 END IF;
6815
6816 IF (rti.po_unit_price IS NULL) THEN
6817 rti.po_unit_price := oel.unit_selling_price;
6818 END IF;
6819
6820 IF (rti.secondary_uom_code IS NULL) THEN
6821 rti.secondary_uom_code := NVL(oel.shipping_quantity_uom2, oel.ordered_quantity_uom2);
6822 END IF;
6823
6824 /* Bug 5584736.
6825 * We have a detailed defaulting routine for defaulting
6826 * subinventory and locator later. Commenting out this code
6827 * here since this is creating problems later.
6828 IF (rti.subinventory IS NULL) THEN
6829 rti.subinventory := oel.subinventory;
6830 END IF;
6831 */
6832
6833 IF (rti.tax_amount IS NULL) THEN
6834 rti.tax_amount := oel.tax_value;
6835 END IF;
6836
6837 IF (rti.tax_name IS NULL) THEN
6838 rti.tax_name := oel.tax_code;
6839 END IF;
6840
6841 IF (rti.uom_code IS NULL) THEN
6842 rti.uom_code := NVL(oel.shipping_quantity_uom, oel.order_quantity_uom);
6843 END IF;
6844
6845 /* Bug 7196654
6846 * Made the item_description to be defaulted from
6847 * oel.user_item_description so that transaction should not fail
6848 * when invalid item description is entered*/
6849
6850 rti.item_description := oel.user_item_description;
6851
6852 /* end Bug 7196654 */
6853
6854 --Quantity
6855 /* Bug 5299177
6856 * We expect customers to give the quantity. We do not default but error out
6857 * if it is not given. Commenting out the foll code.
6858 IF (rti.quantity IS NULL) THEN
6859 rti.quantity := NVL(oel.shipped_quantity, oel.ordered_quantity);
6860
6861 IF (rti.secondary_quantity IS NULL) THEN
6862 rti.secondary_quantity := NVL(oel.shipped_quantity2, oel.ordered_quantity2);
6863 END IF;
6864 END IF;
6865 * 5299177 */
6866 END default_rti_from_oel;
6867
6868 PROCEDURE default_rti_from_oeh(
6869 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6870 ) IS
6871 oeh oe_order_headers_all%ROWTYPE;
6872 BEGIN
6873 IF (rti.oe_order_header_id IS NOT NULL) THEN
6874 oeh := rcv_table_functions.get_oeh_row_from_id(rti.oe_order_header_id);
6875 END IF;
6876
6877 IF (oeh.header_id IS NULL) THEN
6878 RETURN;
6879 END IF;
6880
6881 IF (rti.oe_order_num IS NULL) THEN
6882 rti.oe_order_num := oeh.order_number;
6883 ELSIF(rti.oe_order_num <> oeh.order_number) THEN
6884 invalid_match_value(rti.oe_order_num,
6885 oeh.order_number,
6886 'OE_ORDER_NUM'
6887 );
6888 END IF;
6889
6890 IF (rti.document_num IS NULL) THEN
6891 rti.document_num := oeh.order_number;
6892 ELSIF(rti.document_num <> oeh.order_number) THEN
6893 invalid_match_value(rti.document_num,
6894 oeh.order_number,
6895 'DOCUMENT_NUM'
6896 );
6897 END IF;
6898
6899 IF (rti.org_id IS NULL) THEN
6900 rti.org_id := oeh.org_id;
6901 ELSIF(rti.org_id <> oeh.org_id) THEN
6902 invalid_match_value(rti.org_id,
6903 oeh.org_id,
6904 'ORG_ID'
6905 );
6906 END IF;
6907 /** Bug:5502427
6908 * default_rti_from_oeh() procedure will get invoked only for RMAs
6909 * as per the fix done through this bug. So no need to handle
6910 * the Internal Order case in this procedure
6911 */
6912 -- IF (rti.source_document_code = 'RMA') THEN
6913 IF (rti.to_organization_id IS NULL) THEN
6914 rti.to_organization_id := oeh.ship_from_org_id;
6915 END IF;
6916 /* WDK - This appears to cause a problem
6917 IF (rti.from_organization_id IS NULL) THEN
6918 rti.from_organization_id := oeh.ship_to_org_id;
6919 END IF;
6920 */
6921 /* ELSE --RTI.SOURCE_CODE_CODE = 'REQ'
6922 IF (rti.from_organization_id IS NULL) THEN
6923 rti.from_organization_id := oeh.ship_from_org_id;
6924 END IF;
6925
6926 IF (rti.to_organization_id IS NULL) THEN
6927 rti.to_organization_id := oeh.ship_to_org_id;
6928 END IF;
6929 END IF;*/
6930
6931 IF (rti.currency_conversion_date IS NULL) THEN
6932 rti.currency_conversion_date := oeh.conversion_rate_date;
6933 END IF;
6934
6935 IF (rti.currency_conversion_rate IS NULL) THEN
6936 rti.currency_conversion_rate := oeh.conversion_rate;
6937 END IF;
6938
6939 IF (rti.currency_conversion_type IS NULL) THEN
6940 rti.currency_conversion_type := oeh.conversion_type_code;
6941 END IF;
6942
6943 IF (rti.customer_id IS NULL) THEN
6944 rti.customer_id := oeh.end_customer_id;
6945 END IF;
6946
6947 IF (rti.customer_site_id IS NULL) THEN
6948 rti.customer_site_id := oeh.end_customer_site_use_id;
6949 END IF;
6950
6951 IF (rti.freight_carrier_code IS NULL) THEN
6952 rti.freight_carrier_code := oeh.freight_carrier_code;
6953 END IF;
6954
6955 IF (rti.oe_order_header_id IS NULL) THEN
6956 rti.oe_order_header_id := oeh.header_id;
6957 END IF;
6958
6959 IF (rti.oe_order_num IS NULL) THEN
6960 rti.oe_order_num := oeh.order_number;
6961 END IF;
6962 END default_rti_from_oeh;
6963
6964 /************************************/
6965 /* SECTION 5: default row framework */
6966 /************************************/
6967 PROCEDURE create_rhi_from_rti(
6968 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6969 ) IS
6970 x_receipt_num rcv_headers_interface.receipt_num%TYPE;
6971 BEGIN
6972 IF (rti.header_interface_id IS NOT NULL) THEN
6973 RETURN;
6974 END IF;
6975
6976 SELECT rcv_headers_interface_s.NEXTVAL
6977 INTO rti.header_interface_id
6978 FROM DUAL;
6979
6980 IF (rti.expected_receipt_date IS NULL) THEN
6981 rti.expected_receipt_date := SYSDATE;
6982 END IF;
6983
6984 x_receipt_num := rcv_table_functions.get_rsh_row_from_id(rti.shipment_header_id).receipt_num;
6985
6986 INSERT INTO rcv_headers_interface
6987 (created_by,
6988 creation_date,
6989 last_updated_by,
6990 last_update_date,
6991 last_update_login,
6992 attribute_category,
6993 attribute1,
6994 attribute10,
6995 attribute11,
6996 attribute12,
6997 attribute13,
6998 attribute14,
6999 attribute15,
7000 attribute2,
7001 attribute3,
7002 attribute4,
7003 attribute5,
7004 attribute6,
7005 attribute7,
7006 attribute8,
7007 attribute9,
7008 auto_transact_code,
7009 bill_of_lading,
7010 comments,
7011 currency_code,
7012 conversion_rate_date,
7013 conversion_rate,
7014 conversion_rate_type,
7015 customer_account_number,
7016 customer_id,
7017 customer_party_name,
7018 customer_site_id,
7019 employee_id,
7020 expected_receipt_date,
7021 freight_carrier_code,
7022 from_organization_code,
7023 from_organization_id,
7024 GROUP_ID,
7025 header_interface_id,
7026 location_code,
7027 location_id,
7028 num_of_containers,
7029 packing_slip,
7030 processing_request_id,
7031 processing_status_code,
7032 receipt_source_code,
7033 receipt_header_id,
7034 receipt_num,
7035 shipment_num,
7036 shipped_date,
7037 tax_amount,
7038 tax_name,
7039 ship_to_organization_code,
7040 ship_to_organization_id,
7041 org_id,
7042 operating_unit,
7043 transaction_type,
7044 test_flag,
7045 usggl_transaction_code,
7046 validation_flag,
7047 vendor_id,
7048 vendor_name,
7049 vendor_num,
7050 vendor_site_code,
7051 vendor_site_id,
7052 waybill_airbill_num
7053 )
7054 VALUES (rti.created_by,
7055 rti.creation_date,
7056 rti.last_updated_by,
7057 rti.last_update_date,
7058 rti.last_update_login,
7059 rti.attribute_category,
7060 rti.attribute1,
7061 rti.attribute10,
7062 rti.attribute11,
7063 rti.attribute12,
7064 rti.attribute13,
7065 rti.attribute14,
7066 rti.attribute15,
7067 rti.attribute2,
7068 rti.attribute3,
7069 rti.attribute4,
7070 rti.attribute5,
7071 rti.attribute6,
7072 rti.attribute7,
7073 rti.attribute8,
7074 rti.attribute9,
7075 rti.auto_transact_code,
7076 rti.bill_of_lading,
7077 rti.comments,
7078 rti.currency_code,
7079 rti.currency_conversion_date,
7080 rti.currency_conversion_rate,
7081 rti.currency_conversion_type,
7082 rti.customer_account_number,
7083 rti.customer_id,
7084 rti.customer_party_name,
7085 rti.customer_site_id,
7086 rti.employee_id,
7087 rti.expected_receipt_date,
7088 rti.freight_carrier_code,
7089 rti.from_organization_code,
7090 rti.from_organization_id,
7091 rti.GROUP_ID,
7092 rti.header_interface_id,
7093 rti.location_code,
7094 rti.location_id,
7095 rti.num_of_containers,
7096 rti.packing_slip,
7097 rti.processing_request_id,
7098 rti.processing_status_code,
7099 rti.receipt_source_code,
7100 rti.shipment_header_id,
7101 x_receipt_num,
7102 rti.shipment_num,
7103 rti.shipped_date,
7104 rti.tax_amount,
7105 rti.tax_name,
7106 rti.to_organization_code,
7107 rti.to_organization_id,
7108 rti.org_id,
7109 rti.operating_unit,
7110 'NEW',
7111 'Y',
7112 rti.ussgl_transaction_code,
7113 rti.validation_flag,
7114 rti.vendor_id,
7115 rti.vendor_name,
7116 rti.vendor_num,
7117 rti.vendor_site_code,
7118 rti.vendor_site_id,
7119 rti.waybill_airbill_num
7120 );
7121 EXCEPTION
7122 WHEN OTHERS THEN
7123 NULL;
7124 END create_rhi_from_rti;
7125
7126 /*Bug: 4735484
7127 Defaulting the use_mtl_lot and use_mtl_serial column using
7128 lot control code and serial control code of the item in the
7129 given inventory org.
7130 */
7131 PROCEDURE default_lot_serial_control(
7132 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
7133 )IS
7134 BEGIN
7135 /*
7136 NOTE: For one time item the item_id would be null and hence there is
7137 no need to populate the lot and serial control code. This case is
7138 taken care by the help of follwoing if condition.
7139 */
7140 IF (rti.item_id IS NOT NULL) THEN
7141 asn_debug.put_line ('Defaulting use_mtl_lot and use_mtl_serial');
7142 SELECT lot_control_code,
7143 serial_number_control_code
7144 INTO rti.use_mtl_lot,
7145 rti.use_mtl_serial
7146 FROM mtl_system_items
7147 WHERE mtl_system_items.inventory_item_id = rti.item_id
7148 AND mtl_system_items.organization_id = rti.to_organization_id;
7149 END IF;
7150 EXCEPTION
7151 WHEN OTHERS THEN
7152 asn_debug.put_line ('Unable to default use_mtl_lot and use_mtl_serial');
7153 NULL;
7154 END default_lot_serial_control;
7155
7156 PROCEDURE default_header(
7157 rhi IN OUT NOCOPY rcv_headers_interface%ROWTYPE
7158 ) IS
7159 BEGIN
7160 g_curr_table := 'RCV_HEADERS_INTERFACE';
7161 g_curr_group_id := rhi.GROUP_ID;
7162 g_curr_header_id := rhi.header_interface_id;
7163 g_curr_transaction_id := rhi.header_interface_id;
7164 rhi.processing_status_code := 'PENDING';
7165 rhi.validation_flag := 'Y';
7166 default_rhi_from_code(rhi);
7167 default_rhi_from_rsh(rhi);
7168 check_rhi_consistency(rhi);
7169
7170 IF (rhi.transaction_type IS NULL) THEN
7171 rhi.transaction_type := 'NEW';
7172 END IF;
7173
7174 IF (rhi.expected_receipt_date IS NULL) THEN
7175 rhi.expected_receipt_date := SYSDATE;
7176 END IF;
7177 EXCEPTION
7178 WHEN rcv_table_functions.e_fatal_error THEN
7179 rcv_error_pkg.log_interface_error(g_curr_table,
7180 rcv_table_functions.g_error_column,
7181 g_curr_group_id,
7182 g_curr_header_id,
7183 g_curr_transaction_id
7184 );
7185 WHEN rcv_error_pkg.e_fatal_error THEN
7186 RAISE rcv_error_pkg.e_fatal_error;
7187 WHEN OTHERS THEN
7188 rcv_error_pkg.set_sql_error_message('default_header', '000');
7189 rcv_error_pkg.log_interface_error('INTERFACE_TRANSACTION_ID');
7190 END default_header;
7191
7192 PROCEDURE default_transaction(
7193 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
7194 ) IS
7195 x_dummy_mkr BOOLEAN;
7196 x_temp_subinv rcv_transactions_interface.subinventory%TYPE;
7197 x_temp_primary_uom rcv_transactions_interface.primary_unit_of_measure%TYPE;
7198 x_subinv_starts_null BOOLEAN;
7199 BEGIN
7200 elapsed_time('BEGIN default_transaction');
7201 asn_debug.put_line('rti.interface_transaction_id = ' || rti.interface_transaction_id);
7202 g_curr_table := 'RCV_HEADERS_INTERFACE';
7203 g_curr_group_id := rti.GROUP_ID;
7204 g_curr_header_id := rti.header_interface_id;
7205 g_curr_transaction_id := rti.interface_transaction_id;
7206 g_subtract_pll_qty_rcv := FALSE;
7207 x_subinv_starts_null := FALSE;
7208 /* Bug 5584736.
7209 * We have a detailed defaulting routine for defaulting
7210 * subinventory and locator later. Commenting out this code
7211 * here since this is creating problems later.
7212
7213 IF ( rti.subinventory IS NULL
7214 AND rti.LOCATOR IS NULL
7215 AND rti.locator_id IS NULL) THEN
7216 x_subinv_starts_null := TRUE;
7217 END IF;
7218
7219 IF (SUBSTR(rti.transaction_type,
7220 1,
7221 6
7222 ) = 'RETURN') THEN
7223 --The following code reverses the roles of the subinventories for
7224 --RETURNs because it was easier to keep a consistent model this way
7225 --The matching reversal is found at the end and in the error section
7226 x_temp_subinv := rti.subinventory;
7227 rti.subinventory := rti.from_subinventory;
7228 rti.from_subinventory := x_temp_subinv;
7229 END IF;
7230 */
7231
7232 default_rti_from_code(rti);
7233 elapsed_time('default_rti_from_code');
7234 default_rti_from_rhi(rti);
7235 elapsed_time('default_rti_from_rhi');
7236
7237 IF ( rti.parent_interface_txn_id IS NOT NULL
7238 AND rti.parent_transaction_id IS NOT NULL) THEN
7239 rcv_error_pkg.set_error_message('RCV_CANNOT_HAVE_2_PARENT');
7240 rcv_error_pkg.log_interface_error('PARENT_TRANSACTION_ID');
7241 END IF;
7242
7243 default_rti_from_rti(rti);
7244 elapsed_time('default_rti_from_rti');
7245 default_rti_from_rt(rti);
7246 elapsed_time('default_rti_from_rt');
7247 rti.processing_status_code := 'PENDING';
7248 rti.transaction_status_code := 'PENDING';
7249 rti.validation_flag := 'Y';
7250 rti.order_transaction_id := rti.interface_transaction_id;
7251
7252 IF (rti.transaction_type IS NULL) THEN
7253 rti.transaction_type := 'RECEIVE';
7254 END IF;
7255
7256 IF (rti.transaction_date IS NULL) THEN
7257 rti.transaction_date := SYSDATE;
7258 END IF;
7259
7260 IF (rti.interface_source_code IS NULL) THEN
7261 rti.interface_source_code := 'RCV';
7262 END IF;
7263
7264 IF ( rti.receipt_source_code IS NULL
7265 AND rti.source_document_code IS NULL) THEN
7266 rti.receipt_source_code := 'VENDOR';
7267 rti.source_document_code := 'PO';
7268 END IF;
7269
7270 IF (rti.receipt_source_code = 'VENDOR') THEN
7271 IF (rti.source_document_code IS NULL) THEN
7272 rti.source_document_code := 'PO';
7273 ELSIF(rti.source_document_code <> 'PO') THEN
7274 invalid_match_value(rti.source_document_code,
7275 'PO',
7276 'SOURCE_DOCUMENT_CODE'
7277 );
7278 END IF;
7279 ELSIF(rti.receipt_source_code = 'INVENTORY') THEN
7280 IF (rti.source_document_code IS NULL) THEN
7281 rti.source_document_code := 'INVENTORY';
7282 ELSIF(rti.source_document_code <> 'INVENTORY') THEN
7283 invalid_match_value(rti.source_document_code,
7284 'INVENTORY',
7285 'SOURCE_DOCUMENT_CODE'
7286 );
7287 END IF;
7288 ELSIF(rti.receipt_source_code = 'INTERNAL ORDER') THEN
7289 IF (rti.source_document_code IS NULL) THEN
7290 rti.source_document_code := 'REQ';
7291 ELSIF(rti.source_document_code <> 'REQ') THEN
7292 invalid_match_value(rti.source_document_code,
7293 'REQ',
7294 'SOURCE_DOCUMENT_CODE'
7295 );
7296 END IF;
7297 ELSIF(rti.receipt_source_code = 'CUSTOMER') THEN
7298 IF (rti.source_document_code IS NULL) THEN
7299 rti.source_document_code := 'RMA';
7300 ELSIF(rti.source_document_code <> 'RMA') THEN
7301 invalid_match_value(rti.source_document_code,
7302 'RMA',
7303 'SOURCE_DOCUMENT_CODE'
7304 );
7305 END IF;
7306 ELSIF(rti.receipt_source_code IS NOT NULL) THEN
7307 invalid_value(rti.receipt_source_code, 'RECEIPT_SOURCE_CODE');
7308 END IF;
7309
7310 IF (rti.source_document_code = 'PO') THEN
7311 IF (rti.receipt_source_code IS NULL) THEN
7312 rti.receipt_source_code := 'VENDOR';
7313 ELSIF(rti.receipt_source_code <> 'VENDOR') THEN
7314 invalid_match_value(rti.receipt_source_code,
7315 'VENDOR',
7316 'RECEIPT_SOURCE_CODE '
7317 );
7318 END IF;
7319 ELSIF(rti.source_document_code = 'INVENTORY') THEN
7320 IF (rti.receipt_source_code IS NULL) THEN
7321 rti.receipt_source_code := 'INVENTORY';
7322 ELSIF(rti.receipt_source_code <> 'INVENTORY') THEN
7323 invalid_match_value(rti.receipt_source_code,
7324 'INVENTORY',
7325 'RECEIPT_SOURCE_CODE '
7326 );
7327 END IF;
7328 ELSIF(rti.source_document_code = 'REQ') THEN
7329 IF (rti.receipt_source_code IS NULL) THEN
7330 rti.receipt_source_code := 'INTERNAL ORDER';
7331 ELSIF(rti.receipt_source_code <> 'INTERNAL ORDER') THEN
7332 invalid_match_value(rti.receipt_source_code,
7333 'INTERNAL ORDER',
7334 'RECEIPT_SOURCE_CODE '
7335 );
7336 END IF;
7337 ELSIF(rti.source_document_code = 'RMA') THEN
7338 IF (rti.receipt_source_code IS NULL) THEN
7339 rti.receipt_source_code := 'CUSTOMER';
7340 ELSIF(rti.receipt_source_code <> 'CUSTOMER') THEN
7341 invalid_match_value(rti.receipt_source_code,
7342 'CUSTOMER',
7343 'RECEIPT_SOURCE_CODE '
7344 );
7345 END IF;
7346 ELSIF(rti.source_document_code IS NOT NULL) THEN
7347 invalid_value(rti.source_document_code, 'SOURCE_DOCUMENT_CODE');
7348 END IF;
7349
7350 IF (rti.receipt_source_code IS NULL) THEN
7351 invalid_null_value('RECEIPT_SOURCE_CODE');
7352 END IF;
7353
7354 IF (rti.source_document_code IS NULL) THEN
7355 invalid_null_value('SOURCE_DOCUMENT_CODE');
7356 END IF;
7357
7358 IF (rti.source_document_code = 'INVENTORY') THEN
7359 IF (rti.document_num IS NULL) THEN
7360 rti.document_num := rti.shipment_num;
7361 ELSIF(rti.document_num <> rti.shipment_num) THEN
7362 invalid_match_value(rti.document_num,
7363 rti.shipment_num,
7364 'DOCUMENT_NUM'
7365 );
7366 END IF;
7367
7368 IF (rti.shipment_num IS NULL) THEN
7369 rti.shipment_num := rti.document_num;
7370 ELSIF(rti.shipment_num <> rti.document_num) THEN
7371 invalid_match_value(rti.shipment_num,
7372 rti.document_num,
7373 'SHIPMENT_NUM'
7374 );
7375 END IF;
7376 END IF;
7377
7378 elapsed_time('general defaulting');
7379
7380 IF ( rti.shipment_header_id IS NULL
7381 AND rti.shipment_num IS NOT NULL) THEN
7382 --Bug 9005670 Added receipt_source_code in the below procedre call.
7383 rti.shipment_header_id := rcv_table_functions.get_rsh_row_from_num(rti.shipment_num,
7384 rti.vendor_id,
7385 rti.vendor_site_id,
7386 rti.to_organization_id,
7387 rti.shipped_date,
7388 rti.receipt_source_code,
7389 no_data_found_is_error => FALSE
7390 ).shipment_header_id;
7391 elapsed_time('get_rsh_row_from_num');
7392 END IF;
7393
7394 IF ( rti.shipment_line_id IS NULL
7395 AND rti.shipment_header_id IS NOT NULL
7396 AND rti.document_shipment_line_num IS NOT NULL) THEN
7397 rti.shipment_line_id := rcv_table_functions.get_rsl_row_from_num(rti.document_shipment_line_num, rti.shipment_header_id).shipment_line_id; --Bug 8514736
7398 elapsed_time('get_rsl_row_from_num');
7399 END IF;
7400
7401 IF ( rti.shipment_header_id IS NULL
7402 AND rti.shipment_line_id IS NOT NULL) THEN
7403 rti.shipment_header_id := rcv_table_functions.get_rsl_row_from_id(rti.shipment_line_id).shipment_header_id;
7404 END IF;
7405
7406 IF (rti.source_document_code in ('INVENTORY','REQ')) THEN -- BUG 8514736 add 'REQ'(Interal Order) to verify
7407 IF (rti.shipment_header_id IS NULL) THEN
7408 invalid_null_value('SHIPMENT_HEADER_ID');
7409 END IF;
7410
7411 IF (rti.shipment_line_id IS NULL) THEN
7412 invalid_null_value('SHIPMENT_LINE_ID');
7413 END IF;
7414 END IF;
7415
7416 default_rti_from_rsl(rti);
7417 elapsed_time('default_rti_from_rsl');
7418 default_rti_from_rsh(rti);
7419 elapsed_time('default_rti_from_rsh');
7420
7421 --The following defaults up the chain if a lower level id is provided
7422 IF ( rti.po_line_location_id IS NULL
7423 AND rti.po_distribution_id IS NOT NULL) THEN
7424 rti.po_line_location_id := rcv_table_functions.get_pod_row_from_id(rti.po_distribution_id).line_location_id;
7425 END IF;
7426
7427 IF ( rti.po_line_id IS NULL
7428 AND rti.po_line_location_id IS NOT NULL) THEN
7429 rti.po_line_id := rcv_table_functions.get_pll_row_from_id(rti.po_line_location_id).po_line_id;
7430 END IF;
7431
7432 /* Bug 5299177
7433 * We were populating the value of po_header_id to rti.po_line_location_id instead
7434 * of rti.po_header_id. Changed it.
7435 */
7436 IF ( rti.po_header_id IS NULL
7437 AND rti.po_line_id IS NOT NULL) THEN
7438 rti.po_header_id := rcv_table_functions.get_pol_row_from_id(rti.po_line_id).po_header_id;
7439 END IF;
7440
7441 IF ( rti.oe_order_header_id IS NULL
7442 AND rti.oe_order_line_id IS NOT NULL) THEN
7443 rti.oe_order_header_id := rcv_table_functions.get_oel_row_from_id(rti.oe_order_line_id).header_id;
7444 END IF;
7445
7446 IF (rti.transaction_type IN('UNORDERED', 'MATCH')) THEN
7447 rti.validation_flag := 'N';
7448 RETURN; --End of the line. No backing docs to worry about
7449 END IF;
7450
7451 IF (rti.source_document_code = 'PO') THEN
7452 IF ( rti.po_header_id IS NULL
7453 AND rti.document_num IS NOT NULL) THEN
7454 rti.po_header_id := rcv_table_functions.get_poh_row_from_num(rti.document_num, rti.org_id).po_header_id;
7455 END IF;
7456
7457 IF (rti.po_header_id IS NULL) THEN
7458 invalid_null_value('PO_HEADER_ID');
7459 END IF;
7460
7461 IF (rti.po_line_id IS NULL) THEN
7462 rti.po_line_id := rcv_table_functions.get_pol_row_from_num(rti.document_line_num,
7463 rti.po_header_id,
7464 rti.item_description,
7465 rti.vendor_item_num,
7466 rti.item_id
7467 ).po_line_id;
7468 --Bug 7591174 Added item_id in the above call to get the po line num.
7469 END IF;
7470
7471 IF (rti.po_line_id IS NULL) THEN
7472 invalid_null_value('PO_LINE_ID');
7473 END IF;
7474
7475 /*Bug 12618848 Do not error out the RTI if it fetches more than one PO line.
7476 In preprocessor, it will be decided*/
7477 IF rti.po_line_id = -99 THEN
7478 rti.po_line_id := NULL;
7479 END IF;
7480 /*End of Bug 12618848 */
7481
7482 IF (rti.po_line_location_id IS NULL) THEN
7483 rti.po_line_location_id := rcv_table_functions.get_pll_row_from_num(rti.document_shipment_line_num, rti.po_line_id).line_location_id;
7484 END IF;
7485
7486 /* It is OK not to have a shipment yet, this will get decided in the preprocessor
7487 IF (rti.po_line_location_id IS NULL) THEN
7488 invalid_null_value('PO_LINE_LOCATION_ID');
7489 END IF;
7490 */
7491
7492 IF (rti.po_distribution_id IS NULL) THEN
7493 rti.po_distribution_id := rcv_table_functions.get_pod_row_from_num(rti.document_distribution_num, rti.po_line_location_id).po_distribution_id;
7494 END IF;
7495
7496 /* It is OK not to have a distribution yet, this will get decided in the preprocessor
7497 IF (rti.po_distribution_id IS NULL) THEN
7498 invalid_null_value('PO_DISTRIBUTION_ID');
7499 END IF;
7500 */
7501
7502 elapsed_time('po source doc defaulting');
7503 /** Bug:5502427
7504 * For Internal Order case, Sales Order contains the information pertaining
7505 * to the Source organisation. Receiving is done in the destination org.
7506 * So, we shouldn't default based on SO for the Internal Orders.
7507 * For Iternal Orders defaulting is handled in default_rti_from_rsh() and
7508 * default_rti_from_rsl() procedures.
7509 */
7510 ELSIF(rti.source_document_code = 'RMA') THEN
7511 IF (rti.document_num IS NULL) THEN
7512 rti.document_num := rti.oe_order_num;
7513 ELSIF(rti.document_num <> rti.oe_order_num) THEN
7514 invalid_match_value(rti.document_num,
7515 rti.oe_order_num,
7516 'DOCUMENT_NUM'
7517 );
7518 END IF;
7519
7520 IF (rti.document_line_num IS NULL) THEN
7521 rti.document_line_num := rti.oe_order_line_num;
7522 ELSIF(rti.document_line_num <> rti.oe_order_line_num) THEN
7523 invalid_match_value(rti.document_line_num,
7524 rti.oe_order_line_num,
7525 'DOCUMENT_LINE_NUM'
7526 );
7527 END IF;
7528
7529 IF ( rti.oe_order_header_id IS NULL
7530 AND rti.document_num IS NOT NULL) THEN
7531 /* WDK: NOTICE THE REVISION HACK FOR OE IS OVERLOADING PO_REVISION_NUM COLUMN */
7532 rti.oe_order_header_id := rcv_table_functions.get_oeh_row_from_num(rti.document_num,
7533 NULL, --WDK, not sure what should be here
7534 rti.po_revision_num,
7535 rti.org_id
7536 ).header_id;
7537 END IF;
7538
7539 IF (rti.oe_order_header_id IS NULL) THEN
7540 invalid_null_value('OE_ORDER_HEADER_ID');
7541 END IF;
7542
7543 IF (rti.oe_order_line_id IS NULL) THEN
7544 rti.oe_order_line_id := rcv_table_functions.get_oel_row_from_num(rti.document_line_num, rti.oe_order_header_id).line_id;
7545 END IF;
7546
7547 /* Bug 5158457. It is ok not to have line number. It will be
7548 * decided in the preprocessor code.
7549 IF (rti.oe_order_line_id IS NULL) THEN
7550 invalid_null_value('OE_ORDER_LINE_ID');
7551 END IF;
7552 */
7553
7554 elapsed_time('rma/req source doc defaulting');
7555 END IF;
7556
7557 g_asn_type := nvl(rcv_table_functions.get_rsh_row_from_id(rti.shipment_header_id).asn_type,'@@@'); --Bug: 5598511
7558
7559 default_rti_from_pod(rti);
7560 elapsed_time('default_rti_from_pod');
7561 default_rti_from_pll(rti);
7562 elapsed_time('default_rti_from_pll');
7563 default_rti_from_pol(rti);
7564 elapsed_time('default_rti_from_pol');
7565 default_rti_from_poh(rti);
7566 elapsed_time('default_rti_from_poh');
7567
7568 IF (rti.uom_code IS NULL) THEN
7569 rti.uom_code := get_uom_code_from_measure(rti.unit_of_measure,
7570 'UNIT_OF_MEASURE',
7571 x_dummy_mkr
7572 );
7573 ELSIF(rti.uom_code <> get_uom_code_from_measure(rti.unit_of_measure,
7574 'UNIT_OF_MEASURE',
7575 x_dummy_mkr
7576 )) THEN
7577 invalid_match_value(rti.uom_code,
7578 get_uom_code_from_measure(rti.unit_of_measure,
7579 'UNIT_OF_MEASURE',
7580 x_dummy_mkr
7581 ),
7582 'UOM_CODE'
7583 );
7584 END IF;
7585
7586 IF (rti.secondary_uom_code IS NULL) THEN
7587 rti.secondary_uom_code := get_uom_code_from_measure(rti.secondary_unit_of_measure,
7588 'SECONDARY_UNIT_OF_MEASURE',
7589 x_dummy_mkr
7590 );
7591 ELSIF(rti.secondary_uom_code <> get_uom_code_from_measure(rti.secondary_unit_of_measure,
7592 'SECONDARY_UNIT_OF_MEASURE',
7593 x_dummy_mkr
7594 )) THEN
7595 invalid_match_value(rti.secondary_uom_code,
7596 get_uom_code_from_measure(rti.secondary_unit_of_measure,
7597 'SECONDARY_UNIT_OF_MEASURE',
7598 x_dummy_mkr
7599 ),
7600 'SECONDARY_UOM_CODE'
7601 );
7602 END IF;
7603 /*Bug 5592084: Incase the PRIMARY_UNIT_OF_MEASURE has invalid value
7604 we error out the record.
7605 */
7606 x_temp_primary_uom := get_uom_code_from_measure(rti.primary_unit_of_measure,
7607 'PRIMARY_UNIT_OF_MEASURE',
7608 x_dummy_mkr
7609 );
7610 default_rti_from_oel(rti);
7611 elapsed_time('default_rti_from_oel');
7612 default_rti_from_oeh(rti);
7613 elapsed_time('default_rti_from_oeh');
7614
7615 IF (rti.unit_of_measure IS NULL) THEN
7616 rti.unit_of_measure := get_uom_measure_from_code(rti.uom_code,
7617 'UOM_CODE',
7618 x_dummy_mkr
7619 );
7620 ELSIF(rti.unit_of_measure <> get_uom_measure_from_code(rti.uom_code,
7621 'UOM_CODE',
7622 x_dummy_mkr
7623 )) THEN
7624 invalid_match_value(rti.unit_of_measure,
7625 get_uom_measure_from_code(rti.uom_code,
7626 'UOM_CODE',
7627 x_dummy_mkr
7628 ),
7629 'UNIT_OF_MEASURE'
7630 );
7631 END IF;
7632
7633 IF (rti.secondary_unit_of_measure IS NULL) THEN
7634 rti.secondary_unit_of_measure := get_uom_measure_from_code(rti.secondary_uom_code,
7635 'SECONDARY_UOM_CODE',
7636 x_dummy_mkr
7637 );
7638 ELSIF(rti.secondary_unit_of_measure <> get_uom_measure_from_code(rti.secondary_uom_code,
7639 'SECONDARY_UOM_CODE',
7640 x_dummy_mkr
7641 )) THEN
7642 invalid_match_value(rti.secondary_unit_of_measure,
7643 get_uom_measure_from_code(rti.secondary_uom_code,
7644 'SECONDARY_UOM_CODE',
7645 x_dummy_mkr
7646 ),
7647 'SECONDARY_UNIT_OF_MEASURE'
7648 );
7649 END IF;
7650
7651 check_rti_consistency(rti);
7652 elapsed_time('check_rti_consistency');
7653
7654 IF (rti.destination_type_code IS NULL) THEN
7655 IF (rti.transaction_type = 'DELIVER') THEN
7656 rti.destination_type_code := 'INVENTORY';
7657 ELSE
7658 rti.destination_type_code := 'RECEIVING';
7659 END IF;
7660 END IF;
7661
7662 IF (rti.auto_transact_code IS NULL) THEN
7663 IF (rti.routing_header_id = 3) THEN
7664 rti.auto_transact_code := 'DELIVER';
7665 ELSE
7666 rti.auto_transact_code := 'RECEIVE';
7667 END IF;
7668 END IF;
7669
7670 IF (rti.transaction_type IN('RECEIVE', 'SHIP')) THEN
7671 create_rhi_from_rti(rti);
7672 elapsed_time('create_rhi_from_rti');
7673 END IF;
7674
7675 /* Bug 5584736.
7676 * We have a detailed defaulting routine for defaulting
7677 * subinventory and locator later. Commenting out this code
7678 * here since this is creating problems later.
7679 IF (SUBSTR(rti.transaction_type,
7680 1,
7681 6
7682 ) = 'RETURN') THEN
7683 x_temp_subinv := rti.subinventory;
7684 rti.subinventory := rti.from_subinventory;
7685 rti.from_subinventory := x_temp_subinv;
7686 END IF;
7687
7688 IF ( rti.transaction_type = 'RECEIVE'
7689 AND rti.auto_transact_code <> 'DELIVER'
7690 AND x_subinv_starts_null = TRUE) THEN
7691 rti.subinventory := NULL;
7692 rti.LOCATOR := NULL;
7693 rti.locator_id := NULL;
7694 END IF;
7695 */
7696
7697 /*Bug: 4735484
7698 Defaulting the use_mtl_lot and use_mtl_serial column using
7699 lot control code and serial control code of the item in the
7700 given inventory org.
7701 */
7702 default_lot_serial_control(rti);
7703
7704 asn_debug.put_line('org_id = ' || rti.org_id);
7705 elapsed_time('END default_transaction');
7706 EXCEPTION
7707 WHEN rcv_table_functions.e_fatal_error THEN
7708 /* Bug 5584736.
7709 * We have a detailed defaulting routine for defaulting
7710 * subinventory and locator later. Commenting out this code
7711 * here since this is creating problems later.
7712 IF (SUBSTR(rti.transaction_type,
7713 1,
7714 6
7715 ) = 'RETURN') THEN
7716 x_temp_subinv := rti.subinventory;
7717 rti.subinventory := rti.from_subinventory;
7718 rti.from_subinventory := x_temp_subinv;
7719 END IF;
7720 */
7721
7722 rcv_error_pkg.log_interface_error(g_curr_table,
7723 rcv_table_functions.g_error_column,
7724 g_curr_group_id,
7725 g_curr_header_id,
7726 g_curr_transaction_id
7727 );
7728 WHEN rcv_error_pkg.e_fatal_error THEN
7729 /* Bug 5584736.
7730 * We have a detailed defaulting routine for defaulting
7731 * subinventory and locator later. Commenting out this code
7732 * here since this is creating problems later.
7733 IF (SUBSTR(rti.transaction_type,
7734 1,
7735 6
7736 ) = 'RETURN') THEN
7737 x_temp_subinv := rti.subinventory;
7738 rti.subinventory := rti.from_subinventory;
7739 rti.from_subinventory := x_temp_subinv;
7740 END IF;
7741 */
7742
7743 RAISE rcv_error_pkg.e_fatal_error;
7744 WHEN OTHERS THEN
7745 /* Bug 5584736.
7746 * We have a detailed defaulting routine for defaulting
7747 * subinventory and locator later. Commenting out this code
7748 * here since this is creating problems later.
7749 IF (SUBSTR(rti.transaction_type,
7750 1,
7751 6
7752 ) = 'RETURN') THEN
7753 x_temp_subinv := rti.subinventory;
7754 rti.subinventory := rti.from_subinventory;
7755 rti.from_subinventory := x_temp_subinv;
7756 END IF;
7757 */
7758
7759 rcv_error_pkg.set_sql_error_message('deafault_transaction', '000');
7760 rcv_error_pkg.log_interface_error('INTERFACE_TRANSACTION_ID');
7761 END default_transaction;
7762
7763 PROCEDURE default_from_parent(
7764 rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
7765 ) IS
7766 BEGIN
7767 default_rti_from_rti(rti);
7768 END default_from_parent;
7769 END rcv_default_pkg;