DBA Data[Home] [Help]

PACKAGE BODY: APPS.RCV_DEFAULT_PKG

Source


1 PACKAGE BODY rcv_default_pkg AS
2 /* $Header: RCVDFLTB.pls 120.38.12010000.8 2008/12/24 18:04:38 vthevark ship $*/
3    g_debug_flag       CONSTANT VARCHAR2(1)                           := NVL(fnd_profile.VALUE('RCV_DEBUG_MODE'), 'N');
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 = 'INVENTORY') THEN
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 = 'INVENTORY') THEN
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          rsh  := rcv_table_functions.get_rsh_row_from_num(rhi.shipment_num,
2469                                                           rhi.vendor_id,
2470                                                           rhi.vendor_site_id,
2471                                                           rhi.ship_to_organization_id,
2472                                                           rhi.shipped_date,
2473                                                           no_data_found_is_error    => FALSE
2474                                                          );
2475       END IF;
2476 
2477       IF (rsh.shipment_header_id IS NULL) THEN
2478          RETURN;
2479       END IF;
2480 
2481       IF (rhi.from_organization_id IS NULL) THEN
2482          rhi.from_organization_id  := rsh.organization_id;
2483       ELSIF(rhi.from_organization_id <> rsh.organization_id) THEN
2484          invalid_match_value(rhi.from_organization_id,
2485                              rsh.organization_id,
2486                              'FROM_ORGANIZATION_ID'
2487                             );
2488       END IF;
2489 
2490       IF (rhi.receipt_header_id IS NULL) THEN
2491          rhi.receipt_header_id  := rsh.shipment_header_id;
2492       ELSIF(rhi.receipt_header_id <> rsh.shipment_header_id) THEN
2493          invalid_match_value(rhi.receipt_header_id,
2494                              rsh.shipment_header_id,
2495                              'RECEIPT_HEADER_ID'
2496                             );
2497       END IF;
2498 
2499       IF (rhi.receipt_num IS NULL) THEN
2500          rhi.receipt_num  := rsh.receipt_num;
2501       ELSIF(rhi.receipt_num <> rsh.receipt_num) THEN
2502          invalid_match_value(rhi.receipt_num,
2503                              rsh.receipt_num,
2504                              'RECEIPT_NUM'
2505                             );
2506       END IF;
2507 
2508       IF (rhi.ship_to_organization_id IS NULL) THEN
2509          rhi.ship_to_organization_id  := rsh.ship_to_org_id;
2510       ELSIF(rhi.ship_to_organization_id <> rsh.ship_to_org_id) THEN
2511          invalid_match_value(rhi.ship_to_organization_id,
2512                              rsh.ship_to_org_id,
2513                              'SHIP_TO_ORGANIZATION_ID'
2514                             );
2515       END IF;
2516 
2517       /*
2518       ** Bug#4615534 - Org_id defaulting from inventory organization
2519       ** needs to be done only for In-transit shipments
2520       */
2521       IF(rhi.receipt_source_code = 'INVENTORY') THEN
2522           IF (rhi.org_id IS NULL) THEN
2523              rhi.org_id  := get_org_id_from_inv_org_id(rsh.ship_to_org_id);
2524           ELSIF(rhi.org_id <> get_org_id_from_inv_org_id(rsh.ship_to_org_id)) THEN
2525              invalid_match_value(rhi.org_id,
2526                                  get_org_id_from_inv_org_id(rsh.ship_to_org_id),
2527                                  'ORG_ID'
2528                                 );
2529           END IF;
2530       END IF;
2531 
2532       IF (rhi.ship_from_location_id IS NULL) THEN
2533          rhi.ship_from_location_id  := rsh.ship_from_location_id;
2534       ELSIF(rhi.ship_from_location_id <> rsh.ship_from_location_id) THEN
2535          invalid_match_value(rhi.ship_from_location_id,
2536                              rsh.ship_from_location_id,
2537                              'SHIP_FROM_LOCATION_ID'
2538                             );
2539       END IF;
2540 
2541       IF (rhi.attribute1 IS NULL) THEN
2542          rhi.attribute1  := rsh.attribute1;
2543       END IF;
2544 
2545       IF (rhi.attribute10 IS NULL) THEN
2546          rhi.attribute10  := rsh.attribute10;
2547       END IF;
2548 
2549       IF (rhi.attribute11 IS NULL) THEN
2550          rhi.attribute11  := rsh.attribute11;
2551       END IF;
2552 
2553       IF (rhi.attribute12 IS NULL) THEN
2554          rhi.attribute12  := rsh.attribute12;
2555       END IF;
2556 
2557       IF (rhi.attribute13 IS NULL) THEN
2558          rhi.attribute13  := rsh.attribute13;
2559       END IF;
2560 
2561       IF (rhi.attribute14 IS NULL) THEN
2562          rhi.attribute14  := rsh.attribute14;
2563       END IF;
2564 
2565       IF (rhi.attribute15 IS NULL) THEN
2566          rhi.attribute15  := rsh.attribute15;
2567       END IF;
2568 
2569       IF (rhi.attribute2 IS NULL) THEN
2570          rhi.attribute2  := rsh.attribute2;
2571       END IF;
2572 
2573       IF (rhi.attribute3 IS NULL) THEN
2574          rhi.attribute3  := rsh.attribute3;
2575       END IF;
2576 
2577       IF (rhi.attribute4 IS NULL) THEN
2578          rhi.attribute4  := rsh.attribute4;
2579       END IF;
2580 
2581       IF (rhi.attribute5 IS NULL) THEN
2582          rhi.attribute5  := rsh.attribute5;
2583       END IF;
2584 
2585       IF (rhi.attribute6 IS NULL) THEN
2586          rhi.attribute6  := rsh.attribute6;
2587       END IF;
2588 
2589       IF (rhi.attribute7 IS NULL) THEN
2590          rhi.attribute7  := rsh.attribute7;
2591       END IF;
2592 
2593       IF (rhi.attribute8 IS NULL) THEN
2594          rhi.attribute8  := rsh.attribute8;
2595       END IF;
2596 
2597       IF (rhi.attribute9 IS NULL) THEN
2598          rhi.attribute9  := rsh.attribute9;
2599       END IF;
2600 
2601       IF (rhi.attribute_category IS NULL) THEN
2602          rhi.attribute_category  := rsh.attribute_category;
2603       END IF;
2604 
2605       IF (rhi.bill_of_lading IS NULL) THEN
2606          rhi.bill_of_lading  := rsh.bill_of_lading;
2607       END IF;
2608 
2609       IF (rhi.carrier_equipment IS NULL) THEN
2610          rhi.carrier_equipment  := rsh.carrier_equipment;
2611       END IF;
2612 
2613       IF (rhi.carrier_method IS NULL) THEN
2614          rhi.carrier_method  := rsh.carrier_method;
2615       END IF;
2616 
2617       IF (rhi.comments IS NULL) THEN
2618          rhi.comments  := rsh.comments;
2619       END IF;
2620 
2621       IF (rhi.conversion_rate IS NULL) THEN
2622          rhi.conversion_rate  := TO_NUMBER(rsh.conversion_rate);
2623       END IF;
2624 
2625       IF (rhi.conversion_rate_date IS NULL) THEN
2626          rhi.conversion_rate_date  := rsh.conversion_date;
2627       END IF;
2628 
2629       IF (rhi.conversion_rate_type IS NULL) THEN
2630          rhi.conversion_rate_type  := rsh.conversion_rate_type;
2631       END IF;
2632 
2633       IF (rhi.currency_code IS NULL) THEN
2634          rhi.currency_code  := rsh.currency_code;
2635       END IF;
2636 
2637       IF (rhi.customer_id IS NULL) THEN
2638          rhi.customer_id  := rsh.customer_id;
2639       END IF;
2640 
2641       IF (rhi.customer_site_id IS NULL) THEN
2642          rhi.customer_site_id  := rsh.customer_site_id;
2643       END IF;
2644 
2645       IF (rhi.edi_control_num IS NULL) THEN
2646          rhi.edi_control_num  := rsh.edi_control_num;
2647       END IF;
2648 
2649       IF (rhi.employee_id IS NULL) THEN
2650          rhi.employee_id  := rsh.employee_id;
2651       END IF;
2652 
2653       IF (rhi.expected_receipt_date IS NULL) THEN
2654          rhi.expected_receipt_date  := rsh.expected_receipt_date;
2655       END IF;
2656 
2657       IF (rhi.freight_amount IS NULL) THEN
2658          rhi.freight_amount  := rsh.freight_amount;
2659       END IF;
2660 
2661       IF (rhi.freight_bill_number IS NULL) THEN
2662          rhi.freight_bill_number  := rsh.freight_bill_number;
2663       END IF;
2664 
2665       IF (rhi.freight_carrier_code IS NULL) THEN
2666          rhi.freight_carrier_code  := rsh.freight_carrier_code;
2667       END IF;
2668 
2669       IF (rhi.freight_terms IS NULL) THEN
2670          rhi.freight_terms  := rsh.freight_terms;
2671       END IF;
2672 
2673       IF (rhi.gross_weight IS NULL) THEN
2674          rhi.gross_weight  := rsh.gross_weight;
2675       END IF;
2676 
2677       IF (rhi.gross_weight_uom_code IS NULL) THEN
2678          rhi.gross_weight_uom_code  := rsh.gross_weight_uom_code;
2679       END IF;
2680 
2681       IF (rhi.hazard_class IS NULL) THEN
2682          rhi.hazard_class  := rsh.hazard_class;
2683       END IF;
2684 
2685       IF (rhi.hazard_code IS NULL) THEN
2686          rhi.hazard_code  := rsh.hazard_code;
2687       END IF;
2688 
2689       IF (rhi.hazard_description IS NULL) THEN
2690          rhi.hazard_description  := rsh.hazard_description;
2691       END IF;
2692 
2693       IF (rhi.invoice_date IS NULL) THEN
2694          rhi.invoice_date  := rsh.invoice_date;
2695       END IF;
2696 
2697       IF (rhi.invoice_num IS NULL) THEN
2698          rhi.invoice_num  := rsh.invoice_num;
2699       END IF;
2700 
2701       IF (rhi.invoice_status_code IS NULL) THEN
2702          rhi.invoice_status_code  := rsh.invoice_status_code;
2703       END IF;
2704 
2705       IF (rhi.location_id IS NULL) THEN
2706          rhi.location_id  := rsh.ship_to_location_id;
2707       END IF;
2708 
2709       IF (rhi.net_weight IS NULL) THEN
2710          rhi.net_weight  := rsh.net_weight;
2711       END IF;
2712 
2713       IF (rhi.net_weight_uom_code IS NULL) THEN
2714          rhi.net_weight_uom_code  := rsh.net_weight_uom_code;
2715       END IF;
2716 
2717       IF (rhi.notice_creation_date IS NULL) THEN
2718          rhi.notice_creation_date  := rsh.notice_creation_date;
2719       END IF;
2720 
2721       IF (rhi.num_of_containers IS NULL) THEN
2722          rhi.num_of_containers  := rsh.num_of_containers;
2723       END IF;
2724 
2725       IF (rhi.packaging_code IS NULL) THEN
2726          rhi.packaging_code  := rsh.packaging_code;
2727       END IF;
2728 
2729       IF (rhi.packing_slip IS NULL) THEN
2730          rhi.packing_slip  := rsh.packing_slip;
2731       END IF;
2732 
2733       IF (rhi.payment_terms_id IS NULL) THEN
2734          rhi.payment_terms_id  := rsh.payment_terms_id;
2735       END IF;
2736 
2737       IF (rhi.receipt_source_code IS NULL) THEN
2738          rhi.receipt_source_code  := rsh.receipt_source_code;
2739       END IF;
2740 
2741       IF (rhi.remit_to_site_id IS NULL) THEN
2742          rhi.remit_to_site_id  := rsh.remit_to_site_id;
2743       END IF;
2744 
2745       IF (rhi.shipment_num IS NULL) THEN
2746          rhi.shipment_num  := rsh.shipment_num;
2747       END IF;
2748 
2749       IF (rhi.shipped_date IS NULL) THEN
2750          rhi.shipped_date  := rsh.shipped_date;
2751       END IF;
2752 
2753       IF (rhi.special_handling_code IS NULL) THEN
2754          rhi.special_handling_code  := rsh.special_handling_code;
2755       END IF;
2756 
2757       IF (rhi.tar_weight IS NULL) THEN
2758          rhi.tar_weight  := rsh.tar_weight;
2759       END IF;
2760 
2761       IF (rhi.tar_weight_uom_code IS NULL) THEN
2762          rhi.tar_weight_uom_code  := rsh.tar_weight_uom_code;
2763       END IF;
2764 
2765       IF (rhi.tax_amount IS NULL) THEN
2766          rhi.tax_amount  := rsh.tax_amount;
2767       END IF;
2768 
2769       IF (rhi.tax_name IS NULL) THEN
2770          rhi.tax_name  := rsh.tax_name;
2771       END IF;
2772 
2773       IF (rhi.usggl_transaction_code IS NULL) THEN
2774          rhi.usggl_transaction_code  := rsh.ussgl_transaction_code;
2775       END IF;
2776 
2777       IF (rhi.vendor_id IS NULL) THEN
2778          rhi.vendor_id  := rsh.vendor_id;
2779       END IF;
2780 
2781       IF (rhi.vendor_site_id IS NULL) THEN
2782          rhi.vendor_site_id  := rsh.vendor_site_id;
2783       END IF;
2784 
2785       IF (rhi.waybill_airbill_num IS NULL) THEN
2786          rhi.waybill_airbill_num  := rsh.waybill_airbill_num;
2787       END IF;
2788    END default_rhi_from_rsh;
2789 
2790    PROCEDURE default_rti_from_rhi(
2791       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
2792    ) IS
2793       rhi rcv_headers_interface%ROWTYPE;
2794    BEGIN
2795       /* If this row does not have a header_interface_id it is possible that the
2796          parent_interface_txn does.  This extra query is free because of caching */
2797       IF (    rti.header_interface_id IS NULL
2798           AND rti.parent_interface_txn_id IS NOT NULL) THEN
2799          rti.header_interface_id  := rcv_table_functions.get_rti_row_from_id(rti.parent_interface_txn_id).header_interface_id;
2800       END IF;
2801 
2802       IF (rti.header_interface_id IS NOT NULL) THEN
2803          rhi  := rcv_table_functions.get_rhi_row_from_id(rti.header_interface_id);
2804       END IF;
2805 
2806       IF (rhi.header_interface_id IS NULL) THEN
2807          RETURN;
2808       END IF;
2809 
2810       /* it is ok if a header has previously been processed. */
2811       IF (rhi.processing_status_code = 'ERROR') THEN
2812          rcv_error_pkg.set_error_message('RCV_HEADER_IS_ERROR');
2813          rcv_error_pkg.set_token('HEADER_INTERFACE_ID', rhi.header_interface_id);
2814          rcv_error_pkg.log_interface_error('HEADER_INTERFACE_ID');
2815       END IF;
2816 
2817       IF (    rhi.GROUP_ID IS NULL
2818           AND rti.GROUP_ID IS NOT NULL) THEN
2819          rhi.GROUP_ID  := rti.GROUP_ID;
2820          rcv_table_functions.update_rhi_row(rhi);
2821       END IF;
2822 
2823       IF (rti.GROUP_ID IS NULL) THEN
2824          rti.GROUP_ID  := rhi.GROUP_ID;
2825       ELSIF(rti.GROUP_ID <> rhi.GROUP_ID) THEN
2826          invalid_match_value(rti.GROUP_ID,
2827                              rhi.GROUP_ID,
2828                              'GROUP_ID'
2829                             );
2830       END IF;
2831 
2832       IF (rti.header_interface_id IS NULL) THEN
2833          rti.header_interface_id  := rhi.header_interface_id;
2834       ELSIF(rti.header_interface_id <> rhi.header_interface_id) THEN
2835          invalid_match_value(rti.header_interface_id,
2836                              rhi.header_interface_id,
2837                              'HEADER_INTERFACE_ID'
2838                             );
2839       END IF;
2840 
2841       IF (rti.receipt_source_code IS NULL) THEN
2842          rti.receipt_source_code  := rhi.receipt_source_code;
2843       ELSIF(rti.receipt_source_code <> rhi.receipt_source_code) THEN
2844          invalid_match_value(rti.receipt_source_code,
2845                              rhi.receipt_source_code,
2846                              'RECEIPT_SOURCE_CODE'
2847                             );
2848       END IF;
2849 
2850       IF (rti.shipment_header_id IS NULL) THEN
2851          rti.shipment_header_id  := rhi.receipt_header_id;
2852       ELSIF(rti.shipment_header_id <> rhi.receipt_header_id) THEN
2853          invalid_match_value(rti.shipment_header_id,
2854                              rhi.receipt_header_id,
2855                              'SHIPMENT_HEADER_ID'
2856                             );
2857       END IF;
2858 
2859       IF (rti.shipment_num IS NULL) THEN
2860          rti.shipment_num  := rhi.shipment_num;
2861       ELSIF(rti.shipment_num <> rhi.shipment_num) THEN
2862          invalid_match_value(rti.shipment_num,
2863                              rhi.shipment_num,
2864                              'SHIPMENT_NUM'
2865                             );
2866       END IF;
2867 
2868       /** WDK: Still not sure on what is or isn't allowed with
2869       *** multiple orgs in under the same header. In the meantime
2870       *** I am relaxing this requirement
2871       **/
2872       /*
2873       IF (rti.from_organization_code IS NULL) THEN
2874          rti.from_organization_code  := rhi.from_organization_code;
2875       ELSIF(rti.from_organization_code <> rhi.from_organization_code) THEN
2876          invalid_match_value(rti.from_organization_code,
2877                              rhi.from_organization_code,
2878                              'FROM_ORGANIZATION_CODE'
2879                             );
2880       END IF;
2881 
2882       IF (rti.from_organization_id IS NULL) THEN
2883          rti.from_organization_id  := rhi.from_organization_id;
2884       ELSIF(rti.from_organization_id <> rhi.from_organization_id) THEN
2885          invalid_match_value(rti.from_organization_id,
2886                              rhi.from_organization_id,
2887                              'FROM_ORGANIZATION_ID'
2888                             );
2889       END IF;
2890 
2891       IF (rti.to_organization_code IS NULL) THEN
2892          rti.to_organization_code  := rhi.ship_to_organization_code;
2893       ELSIF(rti.to_organization_code <> rhi.ship_to_organization_code) THEN
2894          invalid_match_value(rti.to_organization_code,
2895                              rhi.ship_to_organization_code,
2896                              'TO_ORGANIZATION_CODE'
2897                             );
2898       END IF;
2899 
2900       IF (rti.to_organization_id IS NULL) THEN
2901          rti.to_organization_id  := rhi.ship_to_organization_id;
2902       ELSIF(rti.to_organization_id <> rhi.ship_to_organization_id) THEN
2903          invalid_match_value(rti.to_organization_id,
2904                              rhi.ship_to_organization_id,
2905                              'TO_ORGANIZATION_ID'
2906                             );
2907       END IF;
2908       */
2909       IF (rti.org_id IS NULL) THEN
2910          rti.org_id  := rhi.org_id;
2911       ELSIF(rti.org_id <> rhi.org_id) THEN
2912          invalid_match_value(rti.org_id,
2913                              rhi.org_id,
2914                              'ORG_ID'
2915                             );
2916       END IF;
2917 
2918       IF (rti.operating_unit IS NULL) THEN
2919          rti.operating_unit  := rhi.operating_unit;
2920       ELSIF(rti.operating_unit <> rhi.operating_unit) THEN
2921          invalid_match_value(rti.operating_unit,
2922                              rhi.operating_unit,
2923                              'OPERATING_UNIT'
2924                             );
2925       END IF;
2926 
2927       IF (rti.from_organization_code IS NULL) THEN
2928          rti.from_organization_code  := rhi.from_organization_code;
2929       END IF;
2930 
2931       IF (rti.from_organization_id IS NULL) THEN
2932          rti.from_organization_id  := rhi.from_organization_id;
2933       END IF;
2934 
2935       IF (rti.to_organization_code IS NULL) THEN
2936          rti.to_organization_code  := rhi.ship_to_organization_code;
2937       END IF;
2938 
2939       IF (rti.to_organization_id IS NULL) THEN
2940          rti.to_organization_id  := rhi.ship_to_organization_id;
2941       END IF;
2942 
2943       IF (rti.operating_unit IS NULL) THEN
2944          rti.operating_unit  := rhi.operating_unit;
2945       END IF;
2946 
2947       IF (rti.org_id IS NULL) THEN
2948          rti.org_id  := rhi.org_id;
2949       END IF;
2950 
2951       IF (rti.attribute1 IS NULL) THEN
2952          rti.attribute1  := rhi.attribute1;
2953       END IF;
2954 
2955       IF (rti.attribute10 IS NULL) THEN
2956          rti.attribute10  := rhi.attribute10;
2957       END IF;
2958 
2959       IF (rti.attribute11 IS NULL) THEN
2960          rti.attribute11  := rhi.attribute11;
2961       END IF;
2962 
2963       IF (rti.attribute12 IS NULL) THEN
2964          rti.attribute12  := rhi.attribute12;
2965       END IF;
2966 
2967       IF (rti.attribute13 IS NULL) THEN
2968          rti.attribute13  := rhi.attribute13;
2969       END IF;
2970 
2971       IF (rti.attribute14 IS NULL) THEN
2972          rti.attribute14  := rhi.attribute14;
2973       END IF;
2974 
2975       IF (rti.attribute15 IS NULL) THEN
2976          rti.attribute15  := rhi.attribute15;
2977       END IF;
2978 
2979       IF (rti.attribute2 IS NULL) THEN
2980          rti.attribute2  := rhi.attribute2;
2981       END IF;
2982 
2983       IF (rti.attribute3 IS NULL) THEN
2984          rti.attribute3  := rhi.attribute3;
2985       END IF;
2986 
2987       IF (rti.attribute4 IS NULL) THEN
2988          rti.attribute4  := rhi.attribute4;
2989       END IF;
2990 
2991       IF (rti.attribute5 IS NULL) THEN
2992          rti.attribute5  := rhi.attribute5;
2993       END IF;
2994 
2995       IF (rti.attribute6 IS NULL) THEN
2996          rti.attribute6  := rhi.attribute6;
2997       END IF;
2998 
2999       IF (rti.attribute7 IS NULL) THEN
3000          rti.attribute7  := rhi.attribute7;
3001       END IF;
3002 
3003       IF (rti.attribute8 IS NULL) THEN
3004          rti.attribute8  := rhi.attribute8;
3005       END IF;
3006 
3007       IF (rti.attribute9 IS NULL) THEN
3008          rti.attribute9  := rhi.attribute9;
3009       END IF;
3010 
3011       IF (rti.attribute_category IS NULL) THEN
3012          rti.attribute_category  := rhi.attribute_category;
3013       END IF;
3014 
3015       IF (rti.auto_transact_code IS NULL) THEN
3016          rti.auto_transact_code  := rhi.auto_transact_code;
3017       END IF;
3018 
3019       IF (rti.bill_of_lading IS NULL) THEN
3020          rti.bill_of_lading  := rhi.bill_of_lading;
3021       END IF;
3022 
3023       IF (rti.currency_code IS NULL) THEN
3024          rti.currency_code  := rhi.currency_code;
3025       END IF;
3026 
3027       IF (rti.currency_conversion_rate IS NULL) THEN
3028          rti.currency_conversion_rate  := rhi.conversion_rate;
3029       END IF;
3030 
3031       IF (rti.currency_conversion_date IS NULL) THEN
3032          rti.currency_conversion_date  := rhi.conversion_rate_date;
3033       END IF;
3034 
3035       IF (rti.currency_conversion_type IS NULL) THEN
3036          rti.currency_conversion_type  := rhi.conversion_rate_type;
3037       END IF;
3038 
3039       IF (rti.customer_account_number IS NULL) THEN
3040          rti.customer_account_number  := rhi.customer_account_number;
3041       END IF;
3042 
3043       IF (rti.customer_id IS NULL) THEN
3044          rti.customer_id  := rhi.customer_id;
3045       END IF;
3046 
3047       IF (rti.customer_party_name IS NULL) THEN
3048          rti.customer_party_name  := rhi.customer_party_name;
3049       END IF;
3050 
3051       IF (rti.customer_site_id IS NULL) THEN
3052          rti.customer_site_id  := rhi.customer_site_id;
3053       END IF;
3054 
3055       IF (rti.employee_id IS NULL) THEN
3056          rti.employee_id  := rhi.employee_id;
3057       END IF;
3058 
3059       IF (rti.expected_receipt_date IS NULL) THEN
3060          rti.expected_receipt_date  := rhi.expected_receipt_date;
3061       END IF;
3062 
3063       IF (rti.freight_carrier_code IS NULL) THEN
3064          rti.freight_carrier_code  := rhi.freight_carrier_code;
3065       END IF;
3066 
3067       IF (rti.GROUP_ID IS NULL) THEN
3068          rti.GROUP_ID  := rhi.GROUP_ID;
3069       END IF;
3070 
3071       IF (rti.location_code IS NULL) THEN
3072          rti.location_code  := rhi.location_code;
3073       END IF;
3074 
3075       IF (rti.location_id IS NULL) THEN
3076          rti.location_id  := rhi.location_id;
3077       END IF;
3078 
3079       IF (rti.num_of_containers IS NULL) THEN
3080          rti.num_of_containers  := rhi.num_of_containers;
3081       END IF;
3082 
3083       IF (rti.packing_slip IS NULL) THEN
3084          rti.packing_slip  := rhi.packing_slip;
3085       END IF;
3086 
3087       IF (rti.processing_status_code IS NULL) THEN
3088          rti.processing_status_code  := rhi.processing_status_code;
3089       END IF;
3090 
3091       IF (rti.shipped_date IS NULL) THEN
3092          rti.shipped_date  := rhi.shipped_date;
3093       END IF;
3094 
3095       IF (rti.tax_amount IS NULL) THEN
3096          rti.tax_amount  := rhi.tax_amount;
3097       END IF;
3098 
3099       IF (rti.tax_name IS NULL) THEN
3100          rti.tax_name  := rhi.tax_name;
3101       END IF;
3102 
3103       IF (rti.transaction_type IS NULL) THEN
3104          rti.transaction_type  := rhi.transaction_type;
3105       END IF;
3106 
3107       IF (rti.ussgl_transaction_code IS NULL) THEN
3108          rti.ussgl_transaction_code  := rhi.usggl_transaction_code;
3109       END IF;
3110 
3111       IF (rti.validation_flag IS NULL) THEN
3112          rti.validation_flag  := rhi.validation_flag;
3113       END IF;
3114 
3115       IF (rti.vendor_id IS NULL) THEN
3116          rti.vendor_id  := rhi.vendor_id;
3117       END IF;
3118 
3119       IF (rti.vendor_name IS NULL) THEN
3120          rti.vendor_name  := rhi.vendor_name;
3121       END IF;
3122 
3123       IF (rti.vendor_num IS NULL) THEN
3124          rti.vendor_num  := rhi.vendor_num;
3125       END IF;
3126 
3127       IF (rti.vendor_site_code IS NULL) THEN
3128          rti.vendor_site_code  := rhi.vendor_site_code;
3129       END IF;
3130 
3131       IF (rti.vendor_site_id IS NULL) THEN
3132          rti.vendor_site_id  := rhi.vendor_site_id;
3133       END IF;
3134 
3135       IF (rti.waybill_airbill_num IS NULL) THEN
3136          rti.waybill_airbill_num  := rhi.waybill_airbill_num;
3137       END IF;
3138    END default_rti_from_rhi;
3139 
3140    PROCEDURE default_rti_from_rti(
3141       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
3142    ) IS
3143       prti rcv_transactions_interface%ROWTYPE;
3144    BEGIN
3145       IF (rti.parent_interface_txn_id IS NOT NULL) THEN
3146          prti  := rcv_table_functions.get_rti_row_from_id(rti.parent_interface_txn_id);
3147       END IF;
3148 
3149       IF (prti.interface_transaction_id IS NULL) THEN
3150          RETURN;
3151       END IF;
3152 
3153       /* PENDING is the only status that's going to get processed, therefore
3154          everything else is an error */
3155       IF (prti.processing_status_code <> 'PENDING') THEN
3156          rcv_error_pkg.set_error_message('RCV_INTERFACE_PARENT_NOT_PENDING');
3157          rcv_error_pkg.set_token('PARENT_INTERFACE_TXN_ID', prti.parent_interface_txn_id);
3158          rcv_error_pkg.log_interface_error('PARENT_INTERFACE_TXN_ID');
3159       END IF;
3160 
3161       IF (rti.document_distribution_num IS NULL) THEN
3162          rti.document_distribution_num  := prti.document_distribution_num;
3163       ELSIF(rti.document_distribution_num <> prti.document_distribution_num) THEN
3164          invalid_match_value(rti.document_distribution_num,
3165                              prti.document_distribution_num,
3166                              'DOCUMENT_DISTRIBUTION_NUM'
3167                             );
3168       END IF;
3169 
3170       IF (rti.document_line_num IS NULL) THEN
3171          rti.document_line_num  := prti.document_line_num;
3172       ELSIF(rti.document_line_num <> prti.document_line_num) THEN
3173          invalid_match_value(rti.document_line_num,
3174                              prti.document_line_num,
3175                              'DOCUMENT_LINE_NUM'
3176                             );
3177       END IF;
3178 
3179       IF (rti.document_num IS NULL) THEN
3180          rti.document_num  := prti.document_num;
3181       ELSIF(rti.document_num <> prti.document_num) THEN
3182          invalid_match_value(rti.document_num,
3183                              prti.document_num,
3184                              'DOCUMENT_NUM'
3185                             );
3186       END IF;
3187 
3188       IF (rti.document_shipment_line_num IS NULL) THEN
3189          rti.document_shipment_line_num  := prti.document_shipment_line_num;
3190       ELSIF(rti.document_shipment_line_num <> prti.document_shipment_line_num) THEN
3191          invalid_match_value(rti.document_shipment_line_num,
3192                              prti.document_shipment_line_num,
3193                              'DOCUMENT_SHIPMENT_LINE_NUM'
3194                             );
3195       END IF;
3196 
3197       IF (rti.from_organization_code IS NULL) THEN
3198          rti.from_organization_code  := prti.from_organization_code;
3199       ELSIF(rti.from_organization_code <> prti.from_organization_code) THEN
3200          invalid_match_value(rti.from_organization_code,
3201                              prti.from_organization_code,
3202                              'FROM_ORGANIZATION_CODE'
3203                             );
3204       END IF;
3205 
3206       IF (rti.from_organization_id IS NULL) THEN
3207          rti.from_organization_id  := prti.from_organization_id;
3208       ELSIF(rti.from_organization_id <> prti.from_organization_id) THEN
3209          invalid_match_value(rti.from_organization_id,
3210                              prti.from_organization_id,
3211                              'FROM_ORGANIZATION_ID'
3212                             );
3213       END IF;
3214 
3215       IF (rti.header_interface_id IS NULL) THEN
3216          rti.header_interface_id  := prti.header_interface_id;
3217       ELSIF(rti.header_interface_id <> prti.header_interface_id) THEN
3218          invalid_match_value(rti.header_interface_id,
3219                              prti.header_interface_id,
3220                              'HEADER_INTERFACE_ID'
3221                             );
3222       END IF;
3223 
3224       IF (rti.item_category IS NULL) THEN
3225          rti.item_category  := prti.item_category;
3226       ELSIF(rti.item_category <> prti.item_category) THEN
3227          invalid_match_value(rti.item_category,
3228                              prti.item_category,
3229                              'ITEM_CATEGORY'
3230                             );
3231       END IF;
3232 
3233       /*As part of bug 7012051 removed the validation of item_description
3234         and make it defaulted from parent interface transaction*/
3235       rti.item_description  := prti.item_description;
3236 
3237      /* IF (rti.item_description IS NULL) THEN
3238          rti.item_description  := prti.item_description;
3239       ELSIF(rti.item_description <> prti.item_description) THEN
3240          invalid_match_value(rti.item_description,
3241                              prti.item_description,
3242                              'ITEM_DESCRIPTION'
3243                             );
3244       END IF;*/
3245 
3246       IF (rti.item_id IS NULL) THEN
3247          rti.item_id  := prti.item_id;
3248       ELSIF(rti.item_id <> prti.item_id) THEN
3249          invalid_match_value(rti.item_id,
3250                              prti.item_id,
3251                              'ITEM_ID'
3252                             );
3253       END IF;
3254 
3255       IF (rti.item_num IS NULL) THEN
3256          rti.item_num  := prti.item_num;
3257       ELSIF(rti.item_num <> prti.item_num) THEN
3258          invalid_match_value(rti.item_num,
3259                              prti.item_num,
3260                              'ITEM_NUM'
3261                             );
3262       END IF;
3263 
3264       IF (rti.item_revision IS NULL) THEN
3265          rti.item_revision  := prti.item_revision;
3266       /*
3267       Bug 5975270: We can't compare the two revisions right now
3268       as we are not sure if item is revision controlled or not.
3269       ELSIF(rti.item_revision <> prti.item_revision) THEN
3270          invalid_match_value(rti.item_revision,
3271                              prti.item_revision,
3272                              'ITEM_REVISION'
3273                             );
3274       */
3275       END IF;
3276 
3277       IF (rti.job_id IS NULL) THEN
3278          rti.job_id  := prti.job_id;
3279       ELSIF(rti.job_id <> prti.job_id) THEN
3280          invalid_match_value(rti.job_id,
3281                              prti.job_id,
3282                              'JOB_ID'
3283                             );
3284       END IF;
3285 
3286       IF (rti.oe_order_header_id IS NULL) THEN
3287          rti.oe_order_header_id  := prti.oe_order_header_id;
3288       ELSIF(rti.oe_order_header_id <> prti.oe_order_header_id) THEN
3289          invalid_match_value(rti.oe_order_header_id,
3290                              prti.oe_order_header_id,
3291                              'OE_ORDER_HEADER_ID'
3292                             );
3293       END IF;
3294 
3295       IF (rti.oe_order_line_id IS NULL) THEN
3296          rti.oe_order_line_id  := prti.oe_order_line_id;
3297       ELSIF(rti.oe_order_line_id <> prti.oe_order_line_id) THEN
3298          invalid_match_value(rti.oe_order_line_id,
3299                              prti.oe_order_line_id,
3300                              'OE_ORDER_LINE_ID'
3301                             );
3302       END IF;
3303 
3304       IF (rti.oe_order_num IS NULL) THEN
3305          rti.oe_order_num  := prti.oe_order_num;
3306       ELSIF(rti.oe_order_num <> prti.oe_order_num) THEN
3307          invalid_match_value(rti.oe_order_num,
3308                              prti.oe_order_num,
3309                              'OE_ORDER_NUM'
3310                             );
3311       END IF;
3312 
3313       IF (rti.oe_order_line_num IS NULL) THEN
3314          rti.oe_order_line_num  := prti.oe_order_line_num;
3315       ELSIF(rti.oe_order_line_num <> prti.oe_order_line_num) THEN
3316          invalid_match_value(rti.oe_order_line_num,
3317                              prti.oe_order_line_num,
3318                              'OE_ORDER_LINE_NUM'
3319                             );
3320       END IF;
3321 
3322       IF (rti.org_id IS NULL) THEN
3323          rti.org_id  := prti.org_id;
3324       ELSIF(rti.org_id <> prti.org_id) THEN
3325          invalid_match_value(rti.org_id,
3326                              prti.org_id,
3327                              'ORG_ID'
3328                             );
3329       END IF;
3330 
3331       IF (rti.parent_interface_txn_id IS NULL) THEN
3332          rti.parent_interface_txn_id  := prti.interface_transaction_id;
3333       ELSIF(rti.parent_interface_txn_id <> prti.interface_transaction_id) THEN
3334          invalid_match_value(rti.parent_interface_txn_id,
3335                              prti.interface_transaction_id,
3336                              'PARENT_INTERFACE_TXN_ID'
3337                             );
3338       END IF;
3339 
3340       -- Bug 7494637:
3341       -- Removing the code that defaults rti.parent_source_transaction_num from prti.source_transaction_num
3342 
3343 
3344       IF (rti.po_distribution_id IS NULL) THEN
3345          rti.po_distribution_id  := prti.po_distribution_id;
3346       ELSIF(rti.po_distribution_id <> prti.po_distribution_id) THEN
3347          invalid_match_value(rti.po_distribution_id,
3348                              prti.po_distribution_id,
3349                              'PO_DISTRIBUTION_ID'
3350                             );
3351       END IF;
3352 
3353       IF (rti.po_header_id IS NULL) THEN
3354          rti.po_header_id  := prti.po_header_id;
3355       ELSIF(rti.po_header_id <> prti.po_header_id) THEN
3356          invalid_match_value(rti.po_header_id,
3357                              prti.po_header_id,
3358                              'PO_HEADER_ID'
3359                             );
3360       END IF;
3361 
3362       IF (rti.po_line_id IS NULL) THEN
3363          rti.po_line_id  := prti.po_line_id;
3364       ELSIF(rti.po_line_id <> prti.po_line_id) THEN
3365          invalid_match_value(rti.po_line_id,
3366                              prti.po_line_id,
3367                              'PO_LINE_ID'
3368                             );
3369       END IF;
3370 
3371       IF (rti.po_line_location_id IS NULL) THEN
3372          rti.po_line_location_id  := prti.po_line_location_id;
3373       ELSIF(rti.po_line_location_id <> prti.po_line_location_id) THEN
3374          invalid_match_value(rti.po_line_location_id,
3375                              prti.po_line_location_id,
3376                              'PO_LINE_LOCATION_ID'
3377                             );
3378       END IF;
3379 
3380       IF (rti.po_release_id IS NULL) THEN
3381          rti.po_release_id  := prti.po_release_id;
3382       ELSIF(rti.po_release_id <> prti.po_release_id) THEN
3383          invalid_match_value(rti.po_release_id,
3384                              prti.po_release_id,
3385                              'PO_RELEASE_ID'
3386                             );
3387       END IF;
3388 
3389       IF (rti.po_revision_num IS NULL) THEN
3390          rti.po_revision_num  := prti.po_revision_num;
3391       ELSIF(rti.po_revision_num <> prti.po_revision_num) THEN
3392          invalid_match_value(rti.po_revision_num,
3393                              prti.po_revision_num,
3394                              'PO_REVISION_NUM'
3395                             );
3396       END IF;
3397 
3398       IF (rti.primary_unit_of_measure IS NULL) THEN
3399          rti.primary_unit_of_measure  := prti.primary_unit_of_measure;
3400       ELSIF(rti.primary_unit_of_measure <> prti.primary_unit_of_measure) THEN
3401          invalid_match_value(rti.primary_unit_of_measure,
3402                              prti.primary_unit_of_measure,
3403                              'PRIMARY_UNIT_OF_MEASURE'
3404                             );
3405       END IF;
3406 
3407       IF (rti.project_id IS NULL) THEN
3408          rti.project_id  := prti.project_id;
3409       ELSIF(rti.project_id <> prti.project_id) THEN
3410          invalid_match_value(rti.project_id,
3411                              prti.project_id,
3412                              'PROJECT_ID'
3413                             );
3414       END IF;
3415 
3416       IF (rti.release_num IS NULL) THEN
3417          rti.release_num  := prti.release_num;
3418       ELSIF(rti.release_num <> prti.release_num) THEN
3419          invalid_match_value(rti.release_num,
3420                              prti.release_num,
3421                              'RELEASE_NUM'
3422                             );
3423       END IF;
3424 
3425       IF (rti.requisition_line_id IS NULL) THEN
3426          rti.requisition_line_id  := prti.requisition_line_id;
3427       ELSIF(rti.requisition_line_id <> prti.requisition_line_id) THEN
3428          invalid_match_value(rti.requisition_line_id,
3429                              prti.requisition_line_id,
3430                              'REQUISITION_LINE_ID'
3431                             );
3432       END IF;
3433 
3434       IF (rti.req_distribution_id IS NULL) THEN
3435          rti.req_distribution_id  := prti.req_distribution_id;
3436       ELSIF(rti.req_distribution_id <> prti.req_distribution_id) THEN
3437          invalid_match_value(rti.req_distribution_id,
3438                              prti.req_distribution_id,
3439                              'REQ_DISTRIBUTION_ID'
3440                             );
3441       END IF;
3442 
3443       IF (rti.req_distribution_num IS NULL) THEN
3444          rti.req_distribution_num  := prti.req_distribution_num;
3445       ELSIF(rti.req_distribution_num <> prti.req_distribution_num) THEN
3446          invalid_match_value(rti.req_distribution_num,
3447                              prti.req_distribution_num,
3448                              'REQ_DISTRIBUTION_NUM'
3449                             );
3450       END IF;
3451 
3452       IF (rti.req_line_num IS NULL) THEN
3453          rti.req_line_num  := prti.req_line_num;
3454       ELSIF(rti.req_line_num <> prti.req_line_num) THEN
3455          invalid_match_value(rti.req_line_num,
3456                              prti.req_line_num,
3457                              'REQ_LINE_NUM'
3458                             );
3459       END IF;
3460 
3461       IF (rti.req_num IS NULL) THEN
3462          rti.req_num  := prti.req_num;
3463       ELSIF(rti.req_num <> prti.req_num) THEN
3464          invalid_match_value(rti.req_num,
3465                              prti.req_num,
3466                              'REQ_NUM'
3467                             );
3468       END IF;
3469 
3470       IF (rti.shipment_header_id IS NULL) THEN
3471          rti.shipment_header_id  := prti.shipment_header_id;
3472       ELSIF(rti.shipment_header_id <> prti.shipment_header_id) THEN
3473          invalid_match_value(rti.shipment_header_id,
3474                              prti.shipment_header_id,
3475                              'SHIPMENT_HEADER_ID'
3476                             );
3477       END IF;
3478 
3479       IF (rti.shipment_line_id IS NULL) THEN
3480          rti.shipment_line_id  := prti.shipment_line_id;
3481       ELSIF(rti.shipment_line_id <> prti.shipment_line_id) THEN
3482          invalid_match_value(rti.shipment_line_id,
3483                              prti.shipment_line_id,
3484                              'SHIPMENT_LINE_ID'
3485                             );
3486       END IF;
3487 
3488       IF (rti.shipment_num IS NULL) THEN
3489          rti.shipment_num  := prti.shipment_num;
3490       ELSIF(rti.shipment_num <> prti.shipment_num) THEN
3491          invalid_match_value(rti.shipment_num,
3492                              prti.shipment_num,
3493                              'SHIPMENT_NUM'
3494                             );
3495       END IF;
3496 
3497       IF (rti.source_document_code IS NULL) THEN
3498          rti.source_document_code  := prti.source_document_code;
3499       ELSIF(rti.source_document_code <> prti.source_document_code) THEN
3500          invalid_match_value(rti.source_document_code,
3501                              prti.source_document_code,
3502                              'SOURCE_DOCUMENT_CODE'
3503                             );
3504       END IF;
3505 
3506       IF (rti.to_organization_code IS NULL) THEN
3507          rti.to_organization_code  := prti.to_organization_code;
3508       ELSIF(rti.to_organization_code <> prti.to_organization_code) THEN
3509          invalid_match_value(rti.to_organization_code,
3510                              prti.to_organization_code,
3511                              'TO_ORGANIZATION_CODE'
3512                             );
3513       END IF;
3514 
3515       IF (rti.to_organization_id IS NULL) THEN
3516          rti.to_organization_id  := prti.to_organization_id;
3517       ELSIF(rti.to_organization_id <> prti.to_organization_id) THEN
3518          invalid_match_value(rti.to_organization_id,
3519                              prti.to_organization_id,
3520                              'TO_ORGANIZATION_ID'
3521                             );
3522       END IF;
3523 
3524       IF (rti.wip_entity_id IS NULL) THEN
3525          rti.wip_entity_id  := prti.wip_entity_id;
3526       ELSIF(rti.wip_entity_id <> prti.wip_entity_id) THEN
3527          invalid_match_value(rti.wip_entity_id,
3528                              prti.wip_entity_id,
3529                              'WIP_ENTITY_ID'
3530                             );
3531       END IF;
3532 
3533       IF (rti.wip_entity_name IS NULL) THEN
3534          rti.wip_entity_name  := prti.wip_entity_name;
3535       ELSIF(rti.wip_entity_name <> prti.wip_entity_name) THEN
3536          invalid_match_value(rti.wip_entity_name,
3537                              prti.wip_entity_name,
3538                              'WIP_ENTITY_NAME'
3539                             );
3540       END IF;
3541 
3542       IF (rti.wip_line_code IS NULL) THEN
3543          rti.wip_line_code  := prti.wip_line_code;
3544       ELSIF(rti.wip_line_code <> prti.wip_line_code) THEN
3545          invalid_match_value(rti.wip_line_code,
3546                              prti.wip_line_code,
3547                              'WIP_LINE_CODE'
3548                             );
3549       END IF;
3550 
3551       IF (rti.wip_line_id IS NULL) THEN
3552          rti.wip_line_id  := prti.wip_line_id;
3553       ELSIF(rti.wip_line_id <> prti.wip_line_id) THEN
3554          invalid_match_value(rti.wip_line_id,
3555                              prti.wip_line_id,
3556                              'WIP_LINE_ID'
3557                             );
3558       END IF;
3559 
3560       IF (rti.wip_operation_seq_num IS NULL) THEN
3561          rti.wip_operation_seq_num  := prti.wip_operation_seq_num;
3562       ELSIF(rti.wip_operation_seq_num <> prti.wip_operation_seq_num) THEN
3563          invalid_match_value(rti.wip_operation_seq_num,
3564                              prti.wip_operation_seq_num,
3565                              'WIP_OPERATION_SEQ_NUM'
3566                             );
3567       END IF;
3568 
3569       IF (rti.wip_repetitive_schedule_id IS NULL) THEN
3570          rti.wip_repetitive_schedule_id  := prti.wip_repetitive_schedule_id;
3571       ELSIF(rti.wip_repetitive_schedule_id <> prti.wip_repetitive_schedule_id) THEN
3572          invalid_match_value(rti.wip_repetitive_schedule_id,
3573                              prti.wip_repetitive_schedule_id,
3574                              'WIP_REPETITIVE_SCHEDULE_ID'
3575                             );
3576       END IF;
3577 
3578       IF (rti.wip_resource_seq_num IS NULL) THEN
3579          rti.wip_resource_seq_num  := prti.wip_resource_seq_num;
3580       ELSIF(rti.wip_resource_seq_num <> prti.wip_resource_seq_num) THEN
3581          invalid_match_value(rti.wip_resource_seq_num,
3582                              prti.wip_resource_seq_num,
3583                              'WIP_RESOURCE_SEQ_NUM'
3584                             );
3585       END IF;
3586 
3587       IF (rti.accrual_status_code IS NULL) THEN
3588          rti.accrual_status_code  := prti.accrual_status_code;
3589       END IF;
3590 
3591       IF (rti.actual_cost IS NULL) THEN
3592          rti.actual_cost  := prti.actual_cost;
3593       END IF;
3594 
3595 	/* Bug 5299177
3596 	 * We expect customers to give the amount. We do not default but error out
3597 	 * if it is not given. Commenting out the foll code.
3598       IF (rti.amount IS NULL) THEN
3599          rti.amount  := prti.amount;
3600 
3601       END IF;
3602 	* 5299177 */
3603 
3604       IF (rti.asn_attach_id IS NULL) THEN
3605          rti.asn_attach_id  := prti.asn_attach_id;
3606       END IF;
3607 
3608       IF (rti.attribute1 IS NULL) THEN
3609          rti.attribute1  := prti.attribute1;
3610       END IF;
3611 
3612       IF (rti.attribute10 IS NULL) THEN
3613          rti.attribute10  := prti.attribute10;
3614       END IF;
3615 
3616       IF (rti.attribute11 IS NULL) THEN
3617          rti.attribute11  := prti.attribute11;
3618       END IF;
3619 
3620       IF (rti.attribute12 IS NULL) THEN
3621          rti.attribute12  := prti.attribute12;
3622       END IF;
3623 
3624       IF (rti.attribute13 IS NULL) THEN
3625          rti.attribute13  := prti.attribute13;
3626       END IF;
3627 
3628       IF (rti.attribute14 IS NULL) THEN
3629          rti.attribute14  := prti.attribute14;
3630       END IF;
3631 
3632       IF (rti.attribute15 IS NULL) THEN
3633          rti.attribute15  := prti.attribute15;
3634       END IF;
3635 
3636       IF (rti.attribute2 IS NULL) THEN
3637          rti.attribute2  := prti.attribute2;
3638       END IF;
3639 
3640       IF (rti.attribute3 IS NULL) THEN
3641          rti.attribute3  := prti.attribute3;
3642       END IF;
3643 
3644       IF (rti.attribute4 IS NULL) THEN
3645          rti.attribute4  := prti.attribute4;
3646       END IF;
3647 
3648       IF (rti.attribute5 IS NULL) THEN
3649          rti.attribute5  := prti.attribute5;
3650       END IF;
3651 
3652       IF (rti.attribute6 IS NULL) THEN
3653          rti.attribute6  := prti.attribute6;
3654       END IF;
3655 
3656       IF (rti.attribute7 IS NULL) THEN
3657          rti.attribute7  := prti.attribute7;
3658       END IF;
3659 
3660       IF (rti.attribute8 IS NULL) THEN
3661          rti.attribute8  := prti.attribute8;
3662       END IF;
3663 
3664       IF (rti.attribute9 IS NULL) THEN
3665          rti.attribute9  := prti.attribute9;
3666       END IF;
3667 
3668       IF (rti.attribute_category IS NULL) THEN
3669          rti.attribute_category  := prti.attribute_category;
3670       END IF;
3671 
3672       IF (rti.auto_transact_code IS NULL) THEN
3673          rti.auto_transact_code  := prti.auto_transact_code;
3674       END IF;
3675 
3676       IF (rti.barcode_label IS NULL) THEN
3677          rti.barcode_label  := prti.barcode_label;
3678       END IF;
3679 
3680       IF (rti.bill_of_lading IS NULL) THEN
3681          rti.bill_of_lading  := prti.bill_of_lading;
3682       END IF;
3683 
3684       IF (rti.bom_resource_id IS NULL) THEN
3685          rti.bom_resource_id  := prti.bom_resource_id;
3686       END IF;
3687 
3688       IF (rti.category_id IS NULL) THEN
3689          rti.category_id  := prti.category_id;
3690       END IF;
3691 
3692       IF (rti.charge_account_id IS NULL) THEN
3693          rti.charge_account_id  := prti.charge_account_id;
3694       END IF;
3695 
3696       IF (rti.container_num IS NULL) THEN
3697          rti.container_num  := prti.container_num;
3698       END IF;
3699 
3700       IF (rti.cost_group_id IS NULL) THEN
3701          rti.cost_group_id  := prti.cost_group_id;
3702       END IF;
3703 
3704       IF (rti.country_of_origin_code IS NULL) THEN
3705          rti.country_of_origin_code  := prti.country_of_origin_code;
3706       END IF;
3707 
3708       IF (rti.create_debit_memo_flag IS NULL) THEN
3709          rti.create_debit_memo_flag  := prti.create_debit_memo_flag;
3710       END IF;
3711 
3712       IF (rti.currency_code IS NULL) THEN
3713          rti.currency_code  := prti.currency_code;
3714       END IF;
3715 
3716       IF (rti.currency_conversion_date IS NULL) THEN
3717          rti.currency_conversion_date  := prti.currency_conversion_date;
3718       END IF;
3719 
3720       IF (rti.currency_conversion_rate IS NULL) THEN
3721          rti.currency_conversion_rate  := prti.currency_conversion_rate;
3722       END IF;
3723 
3724       IF (rti.currency_conversion_type IS NULL) THEN
3725          rti.currency_conversion_type  := prti.currency_conversion_type;
3726       END IF;
3727 
3728       IF (rti.customer_account_number IS NULL) THEN
3729          rti.customer_account_number  := prti.customer_account_number;
3730       END IF;
3731 
3732       IF (rti.customer_id IS NULL) THEN
3733          rti.customer_id  := prti.customer_id;
3734       END IF;
3735 
3736       IF (rti.customer_item_id IS NULL) THEN
3737          rti.customer_item_id  := prti.customer_item_id;
3738       END IF;
3739 
3740       IF (rti.customer_item_num IS NULL) THEN
3741          rti.customer_item_num  := prti.customer_item_num;
3742       END IF;
3743 
3744       IF (rti.customer_party_name IS NULL) THEN
3745          rti.customer_party_name  := prti.customer_party_name;
3746       END IF;
3747 
3748       IF (rti.customer_site_id IS NULL) THEN
3749          rti.customer_site_id  := prti.customer_site_id;
3750       END IF;
3751 
3752       IF (rti.deliver_to_location_code IS NULL) THEN
3753          rti.deliver_to_location_code  := prti.deliver_to_location_code;
3754       END IF;
3755 
3756       IF (rti.deliver_to_location_id IS NULL) THEN
3757          rti.deliver_to_location_id  := prti.deliver_to_location_id;
3758       END IF;
3759 
3760       IF (rti.deliver_to_person_id IS NULL) THEN
3761          rti.deliver_to_person_id  := prti.deliver_to_person_id;
3762       END IF;
3763 
3764       IF (rti.deliver_to_person_name IS NULL) THEN
3765          rti.deliver_to_person_name  := prti.deliver_to_person_name;
3766       END IF;
3767 
3768       IF (rti.department_code IS NULL) THEN
3769          rti.department_code  := prti.department_code;
3770       END IF;
3771 
3772       IF (rti.destination_context IS NULL) THEN
3773          rti.destination_context  := prti.destination_context;
3774       END IF;
3775 
3776       IF (rti.destination_type_code IS NULL) THEN
3777          rti.destination_type_code  := prti.destination_type_code;
3778       END IF;
3779 
3780       IF (rti.employee_id IS NULL) THEN
3781          rti.employee_id  := prti.employee_id;
3782       END IF;
3783 
3784       IF (rti.erecord_id IS NULL) THEN
3785          rti.erecord_id  := prti.erecord_id;
3786       END IF;
3787 
3788       IF (rti.expected_receipt_date IS NULL) THEN
3789          rti.expected_receipt_date  := prti.expected_receipt_date;
3790       END IF;
3791 
3792       IF (rti.freight_carrier_code IS NULL) THEN
3793          rti.freight_carrier_code  := prti.freight_carrier_code;
3794       END IF;
3795 
3796       IF (rti.from_locator IS NULL) THEN
3797          rti.from_locator  := prti.from_locator;
3798       END IF;
3799 
3800       IF (rti.from_locator_id IS NULL) THEN
3801          rti.from_locator_id  := prti.from_locator_id;
3802       END IF;
3803 
3804 	/* Bug 5584736.
3805 	 * We have a detailed defaulting routine for defaulting
3806 	 * subinventory and locator later. Commenting out this code
3807 	 * here since this is creating problems later.
3808       IF (rti.from_subinventory IS NULL) THEN
3809          rti.from_subinventory  := prti.from_subinventory;
3810       END IF;
3811 	*/
3812 
3813       IF (rti.government_context IS NULL) THEN
3814          rti.government_context  := prti.government_context;
3815       END IF;
3816 
3817       IF (rti.GROUP_ID IS NULL) THEN
3818          rti.GROUP_ID  := prti.GROUP_ID;
3819       END IF;
3820 
3821       IF (rti.inspection_quality_code IS NULL) THEN
3822          rti.inspection_quality_code  := prti.inspection_quality_code;
3823       END IF;
3824 
3825       IF (rti.inspection_status_code IS NULL) THEN
3826          rti.inspection_status_code  := prti.inspection_status_code;
3827       END IF;
3828 
3829       IF (rti.interface_available_amt IS NULL) THEN
3830          rti.interface_available_amt  := prti.interface_available_amt;
3831       END IF;
3832 
3833       IF (rti.interface_available_qty IS NULL) THEN
3834          rti.interface_available_qty  := prti.interface_available_qty;
3835       END IF;
3836 
3837       IF (rti.interface_source_code IS NULL) THEN
3838          rti.interface_source_code  := prti.interface_source_code;
3839       END IF;
3840 
3841       IF (rti.interface_source_line_id IS NULL) THEN
3842          rti.interface_source_line_id  := prti.interface_source_line_id;
3843       END IF;
3844 
3845       IF (rti.interface_transaction_amt IS NULL) THEN
3846          rti.interface_transaction_amt  := prti.interface_transaction_amt;
3847       END IF;
3848 
3849       IF (rti.interface_transaction_id IS NULL) THEN
3850          rti.interface_transaction_id  := prti.interface_transaction_id;
3851       END IF;
3852 
3853       IF (rti.interface_transaction_qty IS NULL) THEN
3854          rti.interface_transaction_qty  := prti.interface_transaction_qty;
3855       END IF;
3856 
3857       IF (rti.intransit_owning_org_code IS NULL) THEN
3858          rti.intransit_owning_org_code  := prti.intransit_owning_org_code;
3859       END IF;
3860 
3861       IF (rti.intransit_owning_org_id IS NULL) THEN
3862          rti.intransit_owning_org_id  := prti.intransit_owning_org_id;
3863       END IF;
3864 
3865       IF (rti.inv_transaction_id IS NULL) THEN
3866          rti.inv_transaction_id  := prti.inv_transaction_id;
3867       END IF;
3868 
3869       /*
3870       IF (rti.license_plate_number IS NULL) THEN
3871          rti.license_plate_number  := prti.license_plate_number;
3872       END IF;
3873       */
3874       IF (rti.location_code IS NULL) THEN
3875          rti.location_code  := prti.location_code;
3876       END IF;
3877 
3878       IF (rti.location_id IS NULL) THEN
3879          rti.location_id  := prti.location_id;
3880       END IF;
3881 
3882       IF (rti.LOCATOR IS NULL) THEN
3883          rti.LOCATOR  := prti.LOCATOR;
3884       END IF;
3885 
3886       IF (rti.locator_id IS NULL) THEN
3887          rti.locator_id  := prti.locator_id;
3888       END IF;
3889 
3890       /*
3891       IF (rti.lpn_group_id IS NULL) THEN
3892          rti.lpn_group_id  := prti.lpn_group_id;
3893       END IF;
3894 
3895       IF (rti.lpn_id IS NULL) THEN
3896          rti.lpn_id  := prti.lpn_id;
3897       END IF;
3898       */
3899       IF (rti.mmtt_temp_id IS NULL) THEN
3900          rti.mmtt_temp_id  := prti.mmtt_temp_id;
3901       END IF;
3902 
3903       IF (rti.mobile_txn IS NULL) THEN
3904          rti.mobile_txn  := prti.mobile_txn;
3905       END IF;
3906 
3907       IF (rti.movement_id IS NULL) THEN
3908          rti.movement_id  := prti.movement_id;
3909       END IF;
3910 
3911       IF (rti.notice_unit_price IS NULL) THEN
3912          rti.notice_unit_price  := prti.notice_unit_price;
3913       END IF;
3914 
3915       IF (rti.num_of_containers IS NULL) THEN
3916          rti.num_of_containers  := prti.num_of_containers;
3917       END IF;
3918 
3919       IF (rti.packing_slip IS NULL) THEN
3920          rti.packing_slip  := prti.packing_slip;
3921       END IF;
3922 
3923       IF (rti.po_unit_price IS NULL) THEN
3924          rti.po_unit_price  := prti.po_unit_price;
3925       END IF;
3926 
3927       IF (rti.processing_mode_code IS NULL) THEN
3928          rti.processing_mode_code  := prti.processing_mode_code;
3929       END IF;
3930 
3931       IF (rti.processing_status_code IS NULL) THEN
3932          rti.processing_status_code  := prti.processing_status_code;
3933       END IF;
3934 
3935       IF (rti.program_application_id IS NULL) THEN
3936          rti.program_application_id  := prti.program_application_id;
3937       END IF;
3938 
3939       IF (rti.program_id IS NULL) THEN
3940          rti.program_id  := prti.program_id;
3941       END IF;
3942 
3943       IF (rti.program_update_date IS NULL) THEN
3944          rti.program_update_date  := prti.program_update_date;
3945       END IF;
3946 
3947       IF (rti.put_away_rule_id IS NULL) THEN
3948          rti.put_away_rule_id  := prti.put_away_rule_id;
3949       END IF;
3950 
3951       IF (rti.put_away_strategy_id IS NULL) THEN
3952          rti.put_away_strategy_id  := prti.put_away_strategy_id;
3953       END IF;
3954 
3955       IF (rti.qa_collection_id IS NULL) THEN
3956          rti.qa_collection_id  := prti.qa_collection_id;
3957       END IF;
3958 
3959       IF (rti.qc_grade IS NULL) THEN
3960          rti.qc_grade  := prti.qc_grade;
3961       END IF;
3962 
3963       IF (rti.reason_id IS NULL) THEN
3964          rti.reason_id  := prti.reason_id;
3965       END IF;
3966 
3967       IF (rti.reason_name IS NULL) THEN
3968          rti.reason_name  := prti.reason_name;
3969       END IF;
3970 
3971       IF (rti.receipt_exception_flag IS NULL) THEN
3972          rti.receipt_exception_flag  := prti.receipt_exception_flag;
3973       END IF;
3974 
3975       IF (rti.receipt_source_code IS NULL) THEN
3976          rti.receipt_source_code  := prti.receipt_source_code;
3977       END IF;
3978 
3979       IF (rti.request_id IS NULL) THEN
3980          rti.request_id  := prti.request_id;
3981       END IF;
3982 
3983       IF (rti.resource_code IS NULL) THEN
3984          rti.resource_code  := prti.resource_code;
3985       END IF;
3986 
3987       IF (rti.rma_reference IS NULL) THEN
3988          rti.rma_reference  := prti.rma_reference;
3989       END IF;
3990 
3991       IF (rti.routing_code IS NULL) THEN
3992          rti.routing_code  := prti.routing_code;
3993       END IF;
3994 
3995       IF (rti.routing_header_id IS NULL) THEN
3996          rti.routing_header_id  := prti.routing_header_id;
3997       END IF;
3998 
3999       IF (rti.routing_step IS NULL) THEN
4000          rti.routing_step  := prti.routing_step;
4001       END IF;
4002 
4003       IF (rti.routing_step_id IS NULL) THEN
4004          rti.routing_step_id  := prti.routing_step_id;
4005       END IF;
4006 
4007       IF (rti.secondary_unit_of_measure IS NULL) THEN
4008          rti.secondary_unit_of_measure  := prti.secondary_unit_of_measure;
4009       END IF;
4010 
4011       IF (rti.secondary_uom_code IS NULL) THEN
4012          rti.secondary_uom_code  := prti.secondary_uom_code;
4013       END IF;
4014 
4015       IF (rti.shipment_line_status_code IS NULL) THEN
4016          rti.shipment_line_status_code  := prti.shipment_line_status_code;
4017       END IF;
4018 
4019       IF (rti.shipped_date IS NULL) THEN
4020          rti.shipped_date  := prti.shipped_date;
4021       END IF;
4022 
4023       IF (rti.ship_head_attribute1 IS NULL) THEN
4024          rti.ship_head_attribute1  := prti.ship_head_attribute1;
4025       END IF;
4026 
4027       IF (rti.ship_head_attribute10 IS NULL) THEN
4028          rti.ship_head_attribute10  := prti.ship_head_attribute10;
4029       END IF;
4030 
4031       IF (rti.ship_head_attribute11 IS NULL) THEN
4032          rti.ship_head_attribute11  := prti.ship_head_attribute11;
4033       END IF;
4034 
4035       IF (rti.ship_head_attribute12 IS NULL) THEN
4036          rti.ship_head_attribute12  := prti.ship_head_attribute12;
4037       END IF;
4038 
4039       IF (rti.ship_head_attribute13 IS NULL) THEN
4040          rti.ship_head_attribute13  := prti.ship_head_attribute13;
4041       END IF;
4042 
4043       IF (rti.ship_head_attribute14 IS NULL) THEN
4044          rti.ship_head_attribute14  := prti.ship_head_attribute14;
4045       END IF;
4046 
4047       IF (rti.ship_head_attribute15 IS NULL) THEN
4048          rti.ship_head_attribute15  := prti.ship_head_attribute15;
4049       END IF;
4050 
4051       IF (rti.ship_head_attribute2 IS NULL) THEN
4052          rti.ship_head_attribute2  := prti.ship_head_attribute2;
4053       END IF;
4054 
4055       IF (rti.ship_head_attribute3 IS NULL) THEN
4056          rti.ship_head_attribute3  := prti.ship_head_attribute3;
4057       END IF;
4058 
4059       IF (rti.ship_head_attribute4 IS NULL) THEN
4060          rti.ship_head_attribute4  := prti.ship_head_attribute4;
4061       END IF;
4062 
4063       IF (rti.ship_head_attribute5 IS NULL) THEN
4064          rti.ship_head_attribute5  := prti.ship_head_attribute5;
4065       END IF;
4066 
4067       IF (rti.ship_head_attribute6 IS NULL) THEN
4068          rti.ship_head_attribute6  := prti.ship_head_attribute6;
4069       END IF;
4070 
4071       IF (rti.ship_head_attribute7 IS NULL) THEN
4072          rti.ship_head_attribute7  := prti.ship_head_attribute7;
4073       END IF;
4074 
4075       IF (rti.ship_head_attribute8 IS NULL) THEN
4076          rti.ship_head_attribute8  := prti.ship_head_attribute8;
4077       END IF;
4078 
4079       IF (rti.ship_head_attribute9 IS NULL) THEN
4080          rti.ship_head_attribute9  := prti.ship_head_attribute9;
4081       END IF;
4082 
4083       IF (rti.ship_head_attribute_category IS NULL) THEN
4084          rti.ship_head_attribute_category  := prti.ship_head_attribute_category;
4085       END IF;
4086 
4087       IF (rti.ship_line_attribute1 IS NULL) THEN
4088          rti.ship_line_attribute1  := prti.ship_line_attribute1;
4089       END IF;
4090 
4091       IF (rti.ship_line_attribute10 IS NULL) THEN
4092          rti.ship_line_attribute10  := prti.ship_line_attribute10;
4093       END IF;
4094 
4095       IF (rti.ship_line_attribute11 IS NULL) THEN
4096          rti.ship_line_attribute11  := prti.ship_line_attribute11;
4097       END IF;
4098 
4099       IF (rti.ship_line_attribute12 IS NULL) THEN
4100          rti.ship_line_attribute12  := prti.ship_line_attribute12;
4101       END IF;
4102 
4103       IF (rti.ship_line_attribute13 IS NULL) THEN
4104          rti.ship_line_attribute13  := prti.ship_line_attribute13;
4105       END IF;
4106 
4107       IF (rti.ship_line_attribute14 IS NULL) THEN
4108          rti.ship_line_attribute14  := prti.ship_line_attribute14;
4109       END IF;
4110 
4111       IF (rti.ship_line_attribute15 IS NULL) THEN
4112          rti.ship_line_attribute15  := prti.ship_line_attribute15;
4113       END IF;
4114 
4115       IF (rti.ship_line_attribute2 IS NULL) THEN
4116          rti.ship_line_attribute2  := prti.ship_line_attribute2;
4117       END IF;
4118 
4119       IF (rti.ship_line_attribute3 IS NULL) THEN
4120          rti.ship_line_attribute3  := prti.ship_line_attribute3;
4121       END IF;
4122 
4123       IF (rti.ship_line_attribute4 IS NULL) THEN
4124          rti.ship_line_attribute4  := prti.ship_line_attribute4;
4125       END IF;
4126 
4127       IF (rti.ship_line_attribute5 IS NULL) THEN
4128          rti.ship_line_attribute5  := prti.ship_line_attribute5;
4129       END IF;
4130 
4131       IF (rti.ship_line_attribute6 IS NULL) THEN
4132          rti.ship_line_attribute6  := prti.ship_line_attribute6;
4133       END IF;
4134 
4135       IF (rti.ship_line_attribute7 IS NULL) THEN
4136          rti.ship_line_attribute7  := prti.ship_line_attribute7;
4137       END IF;
4138 
4139       IF (rti.ship_line_attribute8 IS NULL) THEN
4140          rti.ship_line_attribute8  := prti.ship_line_attribute8;
4141       END IF;
4142 
4143       IF (rti.ship_line_attribute9 IS NULL) THEN
4144          rti.ship_line_attribute9  := prti.ship_line_attribute9;
4145       END IF;
4146 
4147       IF (rti.ship_line_attribute_category IS NULL) THEN
4148          rti.ship_line_attribute_category  := prti.ship_line_attribute_category;
4149       END IF;
4150 
4151       IF (rti.ship_to_location_code IS NULL) THEN
4152          rti.ship_to_location_code  := prti.ship_to_location_code;
4153       END IF;
4154 
4155       IF (rti.ship_to_location_id IS NULL) THEN
4156          rti.ship_to_location_id  := prti.ship_to_location_id;
4157       END IF;
4158 
4159       IF (rti.source_doc_unit_of_measure IS NULL) THEN
4160          rti.source_doc_unit_of_measure  := prti.source_doc_unit_of_measure;
4161       END IF;
4162 
4163       IF (rti.source_transaction_num IS NULL) THEN
4164          rti.source_transaction_num  := prti.source_transaction_num;
4165       END IF;
4166 
4167 	/* Bug 5584736.
4168 	 * We have a detailed defaulting routine for defaulting
4169 	 * subinventory and locator later. Commenting out this code
4170 	 * here since this is creating problems later.
4171       IF (rti.subinventory IS NULL) THEN
4172          rti.subinventory  := prti.subinventory;
4173       END IF;
4174 	*/
4175 
4176       IF (rti.substitute_item_id IS NULL) THEN
4177          rti.substitute_item_id  := prti.substitute_item_id;
4178       END IF;
4179 
4180       IF (rti.substitute_item_num IS NULL) THEN
4181          rti.substitute_item_num  := prti.substitute_item_num;
4182       END IF;
4183 
4184       IF (rti.substitute_unordered_code IS NULL) THEN
4185          rti.substitute_unordered_code  := prti.substitute_unordered_code;
4186       END IF;
4187 
4188       IF (rti.task_id IS NULL) THEN
4189          rti.task_id  := prti.task_id;
4190       END IF;
4191 
4192       IF (rti.tax_amount IS NULL) THEN
4193          rti.tax_amount  := prti.tax_amount;
4194       END IF;
4195 
4196       IF (rti.tax_name IS NULL) THEN
4197          rti.tax_name  := prti.tax_name;
4198       END IF;
4199 
4200       IF (rti.timecard_id IS NULL) THEN
4201          rti.timecard_id  := prti.timecard_id;
4202       END IF;
4203 
4204       IF (rti.timecard_ovn IS NULL) THEN
4205          rti.timecard_ovn  := prti.timecard_ovn;
4206       END IF;
4207 
4208       IF (rti.transaction_date IS NULL) THEN
4209          rti.transaction_date  := prti.transaction_date;
4210       END IF;
4211 
4212       IF (rti.transaction_status_code IS NULL) THEN
4213          rti.transaction_status_code  := prti.transaction_status_code;
4214       END IF;
4215 
4216       IF (rti.transaction_type IS NULL) THEN
4217          rti.transaction_type  := prti.transaction_type;
4218       END IF;
4219 
4220       IF (rti.transfer_cost IS NULL) THEN
4221          rti.transfer_cost  := prti.transfer_cost;
4222       END IF;
4223 
4224       IF (rti.transfer_cost_group_id IS NULL) THEN
4225          rti.transfer_cost_group_id  := prti.transfer_cost_group_id;
4226       END IF;
4227 
4228       /*
4229       IF (rti.transfer_license_plate_number IS NULL) THEN
4230          rti.transfer_license_plate_number  := prti.transfer_license_plate_number;
4231       END IF;
4232 
4233       IF (rti.transfer_lpn_id IS NULL) THEN
4234          rti.transfer_lpn_id  := prti.transfer_lpn_id;
4235       END IF;
4236       */
4237       IF (rti.transfer_percentage IS NULL) THEN
4238          rti.transfer_percentage  := prti.transfer_percentage;
4239       END IF;
4240 
4241       IF (rti.transportation_account_id IS NULL) THEN
4242          rti.transportation_account_id  := prti.transportation_account_id;
4243       END IF;
4244 
4245       IF (rti.transportation_cost IS NULL) THEN
4246          rti.transportation_cost  := prti.transportation_cost;
4247       END IF;
4248 
4249       IF (rti.truck_num IS NULL) THEN
4250          rti.truck_num  := prti.truck_num;
4251       END IF;
4252 
4253       IF (rti.unit_of_measure IS NULL) THEN
4254          rti.unit_of_measure  := prti.unit_of_measure;
4255       END IF;
4256 
4257       IF (rti.uom_code IS NULL) THEN
4258          rti.uom_code  := prti.uom_code;
4259       END IF;
4260 
4261       IF (rti.use_mtl_lot IS NULL) THEN
4262          rti.use_mtl_lot  := prti.use_mtl_lot;
4263       END IF;
4264 
4265       IF (rti.use_mtl_serial IS NULL) THEN
4266          rti.use_mtl_serial  := prti.use_mtl_serial;
4267       END IF;
4268 
4269       IF (rti.ussgl_transaction_code IS NULL) THEN
4270          rti.ussgl_transaction_code  := prti.ussgl_transaction_code;
4271       END IF;
4272 
4273       IF (rti.validation_flag IS NULL) THEN
4274          rti.validation_flag  := prti.validation_flag;
4275       END IF;
4276 
4277       IF (rti.vendor_cum_shipped_qty IS NULL) THEN
4278          rti.vendor_cum_shipped_qty  := prti.vendor_cum_shipped_qty;
4279       END IF;
4280 
4281       IF (rti.vendor_id IS NULL) THEN
4282          rti.vendor_id  := prti.vendor_id;
4283       END IF;
4284 
4285       IF (rti.vendor_item_num IS NULL) THEN
4286          rti.vendor_item_num  := prti.vendor_item_num;
4287       END IF;
4288 
4289       IF (rti.vendor_lot_num IS NULL) THEN
4290          rti.vendor_lot_num  := prti.vendor_lot_num;
4291       END IF;
4292 
4293       IF (rti.vendor_name IS NULL) THEN
4294          rti.vendor_name  := prti.vendor_name;
4295       END IF;
4296 
4297       IF (rti.vendor_num IS NULL) THEN
4298          rti.vendor_num  := prti.vendor_num;
4299       END IF;
4300 
4301       IF (rti.vendor_site_code IS NULL) THEN
4302          rti.vendor_site_code  := prti.vendor_site_code;
4303       END IF;
4304 
4305       IF (rti.vendor_site_id IS NULL) THEN
4306          rti.vendor_site_id  := prti.vendor_site_id;
4307       END IF;
4308 
4309       IF (rti.waybill_airbill_num IS NULL) THEN
4310          rti.waybill_airbill_num  := prti.waybill_airbill_num;
4311       END IF;
4312 
4313       --Quantity code
4314 	/* Bug 5299177
4315 	 * We expect customers to give the quantity. We do not default but error out
4316 	 * if it is not given. Commenting out the foll code.
4317       IF (rti.quantity IS NULL) THEN
4318          rti.quantity  := prti.quantity;
4319 
4320          IF (rti.primary_quantity IS NULL) THEN
4321             rti.primary_quantity  := prti.primary_quantity;
4322          END IF;
4323 
4324          IF (rti.secondary_quantity IS NULL) THEN
4325             rti.secondary_quantity  := prti.secondary_quantity;
4326          END IF;
4327 
4328          IF (rti.source_doc_quantity IS NULL) THEN
4329             rti.source_doc_quantity  := prti.source_doc_quantity;
4330          END IF;
4331       END IF;
4332 
4333       IF (rti.quantity_invoiced IS NULL) THEN
4334          rti.quantity_invoiced  := prti.quantity_invoiced;
4335       END IF;
4336 
4337       IF (rti.quantity_shipped IS NULL) THEN
4338          rti.quantity_shipped  := prti.quantity_shipped;
4339       END IF;
4340 	* 5299177 */
4341    END default_rti_from_rti;
4342 
4343    PROCEDURE default_rti_from_rt(
4344       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
4345    ) IS
4346       rt rcv_transactions%ROWTYPE;
4347    BEGIN
4348       IF (rti.parent_transaction_id IS NOT NULL) THEN
4349          rt  := rcv_table_functions.get_rt_row_from_id(rti.parent_transaction_id);
4350       END IF;
4351 
4352       IF (rt.transaction_id IS NULL) THEN
4353          RETURN;
4354       END IF;
4355 
4356       IF (rti.job_id IS NULL) THEN
4357          rti.job_id  := rt.job_id;
4358       ELSIF(rti.job_id <> rt.job_id) THEN
4359          invalid_match_value(rti.job_id,
4360                              rt.job_id,
4361                              'JOB_ID'
4362                             );
4363       END IF;
4364 
4365       IF (rti.oe_order_header_id IS NULL) THEN
4366          rti.oe_order_header_id  := rt.oe_order_header_id;
4367       ELSIF(rti.oe_order_header_id <> rt.oe_order_header_id) THEN
4368          invalid_match_value(rti.oe_order_header_id,
4369                              rt.oe_order_header_id,
4370                              'OE_ORDER_HEADER_ID'
4371                             );
4372       END IF;
4373 
4374       IF (rti.oe_order_line_id IS NULL) THEN
4375          rti.oe_order_line_id  := rt.oe_order_line_id;
4376       ELSIF(rti.oe_order_line_id <> rt.oe_order_line_id) THEN
4377          invalid_match_value(rti.oe_order_line_id,
4378                              rt.oe_order_line_id,
4379                              'OE_ORDER_LINE_ID'
4380                             );
4381       END IF;
4382 
4383       /*
4384       ** Bug#4615534 - Org_id defaulting from inventory organization
4385       ** needs to be done only for In-transit shipments
4386       */
4387       IF(rti.receipt_source_code = 'INVENTORY') THEN
4388           IF (rti.org_id IS NULL) THEN
4389              rti.org_id  := get_org_id_from_inv_org_id(rt.organization_id);
4390           ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rt.organization_id)) THEN
4391              invalid_match_value(rti.org_id,
4392                                  get_org_id_from_inv_org_id(rt.organization_id),
4393                                  'ORG_ID'
4394                                 );
4395           END IF;
4396       END IF;
4397 
4398       IF (rti.parent_transaction_id IS NULL) THEN
4399          rti.parent_transaction_id  := rt.transaction_id;
4400       ELSIF(rti.parent_transaction_id <> rt.transaction_id) THEN
4401          invalid_match_value(rti.parent_transaction_id,
4402                              rt.transaction_id,
4403                              'PARENT_TRANSACTION_ID'
4404                             );
4405       END IF;
4406 
4407       IF (rti.po_distribution_id IS NULL) THEN
4408          rti.po_distribution_id  := rt.po_distribution_id;
4409       ELSIF(rti.po_distribution_id <> rt.po_distribution_id) THEN
4410          invalid_match_value(rti.po_distribution_id,
4411                              rt.po_distribution_id,
4412                              'PO_DISTRIBUTION_ID'
4413                             );
4414       END IF;
4415 
4416       IF (rti.po_header_id IS NULL) THEN
4417          rti.po_header_id  := rt.po_header_id;
4418       ELSIF(rti.po_header_id <> rt.po_header_id) THEN
4419          invalid_match_value(rti.po_header_id,
4420                              rt.po_header_id,
4421                              'PO_HEADER_ID'
4422                             );
4423       END IF;
4424 
4425       IF (rti.po_line_id IS NULL) THEN
4426          rti.po_line_id  := rt.po_line_id;
4427       ELSIF(rti.po_line_id <> rt.po_line_id) THEN
4428          invalid_match_value(rti.po_line_id,
4429                              rt.po_line_id,
4430                              'PO_LINE_ID'
4431                             );
4432       END IF;
4433 
4434       IF (rti.po_line_location_id IS NULL) THEN
4435          rti.po_line_location_id  := rt.po_line_location_id;
4436       ELSIF(rti.po_line_location_id <> rt.po_line_location_id) THEN
4437          invalid_match_value(rti.po_line_location_id,
4438                              rt.po_line_location_id,
4439                              'PO_LINE_LOCATION_ID'
4440                             );
4441       END IF;
4442 
4443       IF (rti.po_release_id IS NULL) THEN
4444          rti.po_release_id  := rt.po_release_id;
4445       ELSIF(rti.po_release_id <> rt.po_release_id) THEN
4446          invalid_match_value(rti.po_release_id,
4447                              rt.po_release_id,
4448                              'PO_RELEASE_ID'
4449                             );
4450       END IF;
4451 
4452       IF (rti.po_revision_num IS NULL) THEN
4453          rti.po_revision_num  := rt.po_revision_num;
4454       ELSIF(rti.po_revision_num <> rt.po_revision_num) THEN
4455          invalid_match_value(rti.po_revision_num,
4456                              rt.po_revision_num,
4457                              'PO_REVISION_NUM'
4458                             );
4459       END IF;
4460 
4461       IF (rti.primary_unit_of_measure IS NULL) THEN
4462          rti.primary_unit_of_measure  := rt.primary_unit_of_measure;
4463       ELSIF(rti.primary_unit_of_measure <> rt.primary_unit_of_measure) THEN
4464          invalid_match_value(rti.primary_unit_of_measure,
4465                              rt.primary_unit_of_measure,
4466                              'PRIMARY_UNIT_OF_MEASURE'
4467                             );
4468       END IF;
4469 
4470       IF (rti.project_id IS NULL) THEN
4471          rti.project_id  := rt.project_id;
4472       ELSIF(rti.project_id <> rt.project_id) THEN
4473          invalid_match_value(rti.project_id,
4474                              rt.project_id,
4475                              'PROJECT_ID'
4476                             );
4477       END IF;
4478 
4479       IF (rti.requisition_line_id IS NULL) THEN
4480          rti.requisition_line_id  := rt.requisition_line_id;
4481       ELSIF(rti.requisition_line_id <> rt.requisition_line_id) THEN
4482          invalid_match_value(rti.requisition_line_id,
4483                              rt.requisition_line_id,
4484                              'REQUISITION_LINE_ID'
4485                             );
4486       END IF;
4487 
4488       IF (rti.req_distribution_id IS NULL) THEN
4489          rti.req_distribution_id  := rt.req_distribution_id;
4490       ELSIF(rti.req_distribution_id <> rt.req_distribution_id) THEN
4491          invalid_match_value(rti.req_distribution_id,
4492                              rt.req_distribution_id,
4493                              'REQ_DISTRIBUTION_ID'
4494                             );
4495       END IF;
4496 
4497       IF (rti.shipment_header_id IS NULL) THEN
4498          rti.shipment_header_id  := rt.shipment_header_id;
4499       ELSIF(rti.shipment_header_id <> rt.shipment_header_id) THEN
4500          invalid_match_value(rti.shipment_header_id,
4501                              rt.shipment_header_id,
4502                              'SHIPMENT_HEADER_ID'
4503                             );
4504       END IF;
4505 
4506       IF (rti.shipment_line_id IS NULL) THEN
4507          rti.shipment_line_id  := rt.shipment_line_id;
4508       ELSIF(rti.shipment_line_id <> rt.shipment_line_id) THEN
4509          invalid_match_value(rti.shipment_line_id,
4510                              rt.shipment_line_id,
4511                              'SHIPMENT_LINE_ID'
4512                             );
4513       END IF;
4514 
4515       IF (rti.source_document_code IS NULL) THEN
4516          rti.source_document_code  := rt.source_document_code;
4517       ELSIF(rti.source_document_code <> rt.source_document_code) THEN
4518          invalid_match_value(rti.source_document_code,
4519                              rt.source_document_code,
4520                              'SOURCE_DOCUMENT_CODE'
4521                             );
4522       END IF;
4523 
4524       IF (rti.to_organization_id IS NULL) THEN
4525          rti.to_organization_id  := rt.organization_id;
4526       ELSIF(rti.to_organization_id <> rt.organization_id) THEN
4527          invalid_match_value(rti.to_organization_id,
4528                              rt.organization_id,
4529                              'TO_ORGANIZATION_ID'
4530                             );
4531       END IF;
4532 
4533       IF (rti.wip_entity_id IS NULL) THEN
4534          rti.wip_entity_id  := rt.wip_entity_id;
4535       ELSIF(rti.wip_entity_id <> rt.wip_entity_id) THEN
4536          invalid_match_value(rti.wip_entity_id,
4537                              rt.wip_entity_id,
4538                              'WIP_ENTITY_ID'
4539                             );
4540       END IF;
4541 
4542       IF (rti.wip_line_id IS NULL) THEN
4543          rti.wip_line_id  := rt.wip_line_id;
4544       ELSIF(rti.wip_line_id <> rt.wip_line_id) THEN
4545          invalid_match_value(rti.wip_line_id,
4546                              rt.wip_line_id,
4547                              'WIP_LINE_ID'
4548                             );
4549       END IF;
4550 
4551       IF (rti.wip_operation_seq_num IS NULL) THEN
4552          rti.wip_operation_seq_num  := rt.wip_operation_seq_num;
4553       ELSIF(rti.wip_operation_seq_num <> rt.wip_operation_seq_num) THEN
4554          invalid_match_value(rti.wip_operation_seq_num,
4555                              rt.wip_operation_seq_num,
4556                              'WIP_OPERATION_SEQ_NUM'
4557                             );
4558       END IF;
4559 
4560       IF (rti.wip_repetitive_schedule_id IS NULL) THEN
4561          rti.wip_repetitive_schedule_id  := rt.wip_repetitive_schedule_id;
4562       ELSIF(rti.wip_repetitive_schedule_id <> rt.wip_repetitive_schedule_id) THEN
4563          invalid_match_value(rti.wip_repetitive_schedule_id,
4564                              rt.wip_repetitive_schedule_id,
4565                              'WIP_REPETITIVE_SCHEDULE_ID'
4566                             );
4567       END IF;
4568 
4569       IF (rti.wip_resource_seq_num IS NULL) THEN
4570          rti.wip_resource_seq_num  := rt.wip_resource_seq_num;
4571       ELSIF(rti.wip_resource_seq_num <> rt.wip_resource_seq_num) THEN
4572          invalid_match_value(rti.wip_resource_seq_num,
4573                              rt.wip_resource_seq_num,
4574                              'WIP_RESOURCE_SEQ_NUM'
4575                             );
4576       END IF;
4577 
4578       IF (rti.accrual_status_code IS NULL) THEN
4579          rti.accrual_status_code  := rt.accrual_status_code;
4580       END IF;
4581 
4582 	/* Bug 5299177
4583 	 * We expect customers to give the amount. We do not default but error out
4584 	 * if it is not given. Commenting out the foll code.
4585       IF (rti.amount IS NULL) THEN
4586          rti.amount  := rt.amount;
4587       END IF;
4588 	* 5299177 */
4589 
4590       IF (rti.attribute1 IS NULL) THEN
4591          rti.attribute1  := rt.attribute1;
4592       END IF;
4593 
4594       IF (rti.attribute10 IS NULL) THEN
4595          rti.attribute10  := rt.attribute10;
4596       END IF;
4597 
4598       IF (rti.attribute11 IS NULL) THEN
4599          rti.attribute11  := rt.attribute11;
4600       END IF;
4601 
4602       IF (rti.attribute12 IS NULL) THEN
4603          rti.attribute12  := rt.attribute12;
4604       END IF;
4605 
4606       IF (rti.attribute13 IS NULL) THEN
4607          rti.attribute13  := rt.attribute13;
4608       END IF;
4609 
4610       IF (rti.attribute14 IS NULL) THEN
4611          rti.attribute14  := rt.attribute14;
4612       END IF;
4613 
4614       IF (rti.attribute15 IS NULL) THEN
4615          rti.attribute15  := rt.attribute15;
4616       END IF;
4617 
4618       IF (rti.attribute2 IS NULL) THEN
4619          rti.attribute2  := rt.attribute2;
4620       END IF;
4621 
4622       IF (rti.attribute3 IS NULL) THEN
4623          rti.attribute3  := rt.attribute3;
4624       END IF;
4625 
4626       IF (rti.attribute4 IS NULL) THEN
4627          rti.attribute4  := rt.attribute4;
4628       END IF;
4629 
4630       IF (rti.attribute5 IS NULL) THEN
4631          rti.attribute5  := rt.attribute5;
4632       END IF;
4633 
4634       IF (rti.attribute6 IS NULL) THEN
4635          rti.attribute6  := rt.attribute6;
4636       END IF;
4637 
4638       IF (rti.attribute7 IS NULL) THEN
4639          rti.attribute7  := rt.attribute7;
4640       END IF;
4641 
4642       IF (rti.attribute8 IS NULL) THEN
4643          rti.attribute8  := rt.attribute8;
4644       END IF;
4645 
4646       IF (rti.attribute9 IS NULL) THEN
4647          rti.attribute9  := rt.attribute9;
4648       END IF;
4649 
4650       IF (rti.attribute_category IS NULL) THEN
4651          rti.attribute_category  := rt.attribute_category;
4652       END IF;
4653 
4654       IF (rti.bom_resource_id IS NULL) THEN
4655          rti.bom_resource_id  := rt.bom_resource_id;
4656       END IF;
4657 
4658       IF (rti.country_of_origin_code IS NULL) THEN
4659          rti.country_of_origin_code  := rt.country_of_origin_code;
4660       END IF;
4661 
4662       IF (rti.currency_code IS NULL) THEN
4663          rti.currency_code  := rt.currency_code;
4664       END IF;
4665 
4666       IF (rti.currency_conversion_date IS NULL) THEN
4667          rti.currency_conversion_date  := rt.currency_conversion_date;
4668       END IF;
4669 
4670       IF (rti.currency_conversion_rate IS NULL) THEN
4671          rti.currency_conversion_rate  := rt.currency_conversion_rate;
4672       END IF;
4673 
4674       IF (rti.currency_conversion_type IS NULL) THEN
4675          rti.currency_conversion_type  := rt.currency_conversion_type;
4676       END IF;
4677 
4678       IF (rti.customer_id IS NULL) THEN
4679          rti.customer_id  := rt.customer_id;
4680       END IF;
4681 
4682       IF (rti.customer_site_id IS NULL) THEN
4683          rti.customer_site_id  := rt.customer_site_id;
4684       END IF;
4685 
4686       IF (rti.deliver_to_location_id IS NULL) THEN
4687          rti.deliver_to_location_id  := rt.deliver_to_location_id;
4688       END IF;
4689 
4690       IF (rti.deliver_to_person_id IS NULL) THEN
4691          rti.deliver_to_person_id  := rt.deliver_to_person_id;
4692       END IF;
4693 
4694       IF (rti.department_code IS NULL) THEN
4695          rti.department_code  := rt.department_code;
4696       END IF;
4697 
4698       IF (rti.destination_context IS NULL) THEN
4699          rti.destination_context  := rt.destination_context;
4700       END IF;
4701 
4702       IF (rti.destination_type_code IS NULL) THEN
4703          rti.destination_type_code  := rt.destination_type_code;
4704       END IF;
4705 
4706       IF (rti.employee_id IS NULL) THEN
4707          rti.employee_id  := rt.employee_id;
4708       END IF;
4709 
4710       IF (rti.from_locator_id IS NULL) THEN
4711          rti.from_locator_id  := rt.from_locator_id;
4712       END IF;
4713 
4714 	/* Bug 5584736.
4715 	 * We have a detailed defaulting routine for defaulting
4716 	 * subinventory and locator later. Commenting out this code
4717 	 * here since this is creating problems later.
4718       IF (rti.from_subinventory IS NULL) THEN
4719          rti.from_subinventory  := rt.from_subinventory;
4720       END IF;
4721 	*/
4722 
4723       IF (rti.inspection_quality_code IS NULL) THEN
4724          rti.inspection_quality_code  := rt.inspection_quality_code;
4725       END IF;
4726 
4727       IF (rti.inspection_status_code IS NULL) THEN
4728          rti.inspection_status_code  := rt.inspection_status_code;
4729       END IF;
4730 
4731       IF (rti.interface_source_code IS NULL) THEN
4732          rti.interface_source_code  := rt.interface_source_code;
4733       END IF;
4734 
4735       IF (rti.interface_source_line_id IS NULL) THEN
4736          rti.interface_source_line_id  := rt.interface_source_line_id;
4737       END IF;
4738 
4739       IF (rti.interface_transaction_id IS NULL) THEN
4740          rti.interface_transaction_id  := rt.interface_transaction_id;
4741       END IF;
4742 
4743       IF (rti.inv_transaction_id IS NULL) THEN
4744          rti.inv_transaction_id  := rt.inv_transaction_id;
4745       END IF;
4746 
4747       IF (rti.location_id IS NULL) THEN
4748          rti.location_id  := rt.location_id;
4749       END IF;
4750 
4751       IF (rti.locator_id IS NULL) THEN
4752          rti.locator_id  := rt.locator_id;
4753       END IF;
4754 
4755       /*
4756       IF (rti.lpn_group_id IS NULL) THEN
4757          rti.lpn_group_id  := rt.lpn_group_id;
4758       END IF;
4759 
4760       IF (rti.lpn_id IS NULL) THEN
4761          rti.lpn_id  := rt.lpn_id;
4762       END IF;
4763       */
4764       IF (rti.mobile_txn IS NULL) THEN
4765          rti.mobile_txn  := rt.mobile_txn;
4766       END IF;
4767 
4768       IF (rti.movement_id IS NULL) THEN
4769          rti.movement_id  := rt.movement_id;
4770       END IF;
4771 
4772       IF (rti.po_unit_price IS NULL) THEN
4773          rti.po_unit_price  := rt.po_unit_price;
4774       END IF;
4775 
4776       IF (rti.qa_collection_id IS NULL) THEN
4777          rti.qa_collection_id  := rt.qa_collection_id;
4778       END IF;
4779 
4780       IF (rti.qc_grade IS NULL) THEN
4781          rti.qc_grade  := rt.qc_grade;
4782       END IF;
4783 
4784       IF (rti.reason_id IS NULL) THEN
4785          rti.reason_id  := rt.reason_id;
4786       END IF;
4787 
4788       IF (rti.receipt_exception_flag IS NULL) THEN
4789          rti.receipt_exception_flag  := rt.receipt_exception_flag;
4790       END IF;
4791 
4792       IF (rti.request_id IS NULL) THEN
4793          rti.request_id  := rt.request_id;
4794       END IF;
4795 
4796       IF (rti.rma_reference IS NULL) THEN
4797          rti.rma_reference  := rt.rma_reference;
4798       END IF;
4799 
4800       IF (rti.routing_header_id IS NULL) THEN
4801          rti.routing_header_id  := rt.routing_header_id;
4802       END IF;
4803 
4804       IF (rti.routing_step_id IS NULL) THEN
4805          rti.routing_step_id  := rt.routing_step_id;
4806       END IF;
4807 
4808       IF (rti.secondary_unit_of_measure IS NULL) THEN
4809          rti.secondary_unit_of_measure  := rt.secondary_unit_of_measure;
4810       END IF;
4811 
4812       IF (rti.secondary_uom_code IS NULL) THEN
4813          rti.secondary_uom_code  := rt.secondary_uom_code;
4814       END IF;
4815 
4816       IF (rti.source_doc_unit_of_measure IS NULL) THEN
4817          rti.source_doc_unit_of_measure  := rt.source_doc_unit_of_measure;
4818       END IF;
4819 
4820       IF (rti.source_transaction_num IS NULL) THEN
4821          rti.source_transaction_num  := rt.source_transaction_num;
4822       END IF;
4823 
4824 	/* Bug 5584736.
4825 	 * We have a detailed defaulting routine for defaulting
4826 	 * subinventory and locator later. Commenting out this code
4827 	 * here since this is creating problems later.
4828       IF (rti.subinventory IS NULL) THEN
4829          rti.subinventory  := rt.subinventory;
4830       END IF;
4831 	*/
4832 
4833       IF (rti.substitute_unordered_code IS NULL) THEN
4834          rti.substitute_unordered_code  := rt.substitute_unordered_code;
4835       END IF;
4836 
4837       IF (rti.task_id IS NULL) THEN
4838          rti.task_id  := rt.task_id;
4839       END IF;
4840 
4841       IF (rti.timecard_id IS NULL) THEN
4842          rti.timecard_id  := rt.timecard_id;
4843       END IF;
4844 
4845       IF (rti.timecard_ovn IS NULL) THEN
4846          rti.timecard_ovn  := rt.timecard_ovn;
4847       END IF;
4848 
4849       IF (rti.transaction_date IS NULL) THEN
4850          rti.transaction_date  := rt.transaction_date;
4851       END IF;
4852 
4853       IF (rti.transaction_type IS NULL) THEN
4854          rti.transaction_type  := rt.transaction_type;
4855       END IF;
4856 
4857       /*
4858       IF (rti.transfer_lpn_id IS NULL) THEN
4859          rti.transfer_lpn_id  := rt.transfer_lpn_id;
4860       END IF;
4861       */
4862       IF (rti.unit_of_measure IS NULL) THEN
4863          rti.unit_of_measure  := rt.unit_of_measure;
4864       END IF;
4865 
4866       IF (rti.uom_code IS NULL) THEN
4867          rti.uom_code  := rt.uom_code;
4868       END IF;
4869 
4870       IF (rti.vendor_id IS NULL) THEN
4871          rti.vendor_id  := rt.vendor_id;
4872       END IF;
4873 
4874       IF (rti.vendor_lot_num IS NULL) THEN
4875          rti.vendor_lot_num  := rt.vendor_lot_num;
4876       END IF;
4877 
4878       IF (rti.vendor_site_id IS NULL) THEN
4879          rti.vendor_site_id  := rt.vendor_site_id;
4880       END IF;
4881 
4882       --Quantity
4883 	/* Bug 5299177
4884 	 * We expect customers to give the quantity. We do not default but error out
4885 	 * if it is not given. Commenting out the foll code.
4886       IF (rti.quantity IS NULL) THEN
4887          rti.quantity  := rt.quantity;
4888 
4889          IF (rti.primary_quantity IS NULL) THEN
4890             rti.primary_quantity  := rt.primary_quantity;
4891          END IF;
4892 
4893          IF (rti.secondary_quantity IS NULL) THEN
4894             rti.secondary_quantity  := rt.secondary_quantity;
4895          END IF;
4896 
4897          IF (rti.source_doc_quantity IS NULL) THEN
4898             rti.source_doc_quantity  := rt.source_doc_quantity;
4899          END IF;
4900       END IF;
4901 	* 5299177 */
4902    END default_rti_from_rt;
4903 
4904    PROCEDURE default_rti_from_rsl(
4905       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
4906    ) IS
4907       rsl rcv_shipment_lines%ROWTYPE;
4908 /** Bug: 5502427
4909   * For Internal Orders, oe_order_line_id is getting stamped in RTI
4910   * by the cursor get_oe_order_line_id_from_mmt. If oe_order_line_id is
4911   * stamped, defaulting will be done based on the Sales Order for Internal orders.
4912   * But, we should not defalut based on SO for the Internal Orders.
4913   * So, commenting the logic of defaulting oe_order_line_id using the
4914   * cursor get_oe_order_line_id_from_mmt
4915   */
4916 /*      CURSOR get_oe_order_line_id_from_mmt(
4917          p_mmt_transaction_id IN rcv_shipment_lines.mmt_transaction_id%TYPE
4918       ) IS
4919          SELECT source_line_id
4920          FROM   mtl_material_transactions
4921          WHERE  source_code = 'ORDER ENTRY'
4922          AND    transaction_id = p_mmt_transaction_id;*/
4923    BEGIN
4924       IF (rti.shipment_line_id IS NOT NULL) THEN
4925          rsl  := rcv_table_functions.get_rsl_row_from_id(rti.shipment_line_id);
4926       END IF;
4927 
4928       IF (rsl.shipment_line_id IS NULL) THEN
4929          RETURN;
4930       END IF;
4931 
4932       /* This one is problematic
4933       IF (rti.document_line_num IS NULL) THEN
4934          rti.document_line_num  := rsl.line_num;
4935       ELSIF(rti.document_line_num <> rsl.line_num) THEN
4936          invalid_match_value(rti.document_line_num,
4937                              rsl.line_num,
4938                              'DOCUMENT_LINE_NUM'
4939                             );
4940       END IF;
4941       */
4942       IF (rti.from_organization_id IS NULL) THEN
4943          rti.from_organization_id  := rsl.from_organization_id;
4944       ELSIF(rti.from_organization_id <> rsl.from_organization_id) THEN
4945          invalid_match_value(rti.from_organization_id,
4946                              rsl.from_organization_id,
4947                              'FROM_ORGANIZATION_ID'
4948                             );
4949       END IF;
4950 
4951       IF (rti.job_id IS NULL) THEN
4952          rti.job_id  := rsl.job_id;
4953       ELSIF(rti.job_id <> rsl.job_id) THEN
4954          invalid_match_value(rti.job_id,
4955                              rsl.job_id,
4956                              'JOB_ID'
4957                             );
4958       END IF;
4959 
4960       IF (rti.oe_order_header_id IS NULL) THEN
4961          rti.oe_order_header_id  := rsl.oe_order_header_id;
4962       ELSIF(rti.oe_order_header_id <> rsl.oe_order_header_id) THEN
4963          invalid_match_value(rti.oe_order_header_id,
4964                              rsl.oe_order_header_id,
4965                              'OE_ORDER_HEADER_ID'
4966                             );
4967       END IF;
4968 
4969       IF (rti.oe_order_line_id IS NULL) THEN
4970          rti.oe_order_line_id  := rsl.oe_order_line_id;
4971       ELSIF(rti.oe_order_line_id <> rsl.oe_order_line_id) THEN
4972          invalid_match_value(rti.oe_order_line_id,
4973                              rsl.oe_order_line_id,
4974                              'OE_ORDER_LINE_ID'
4975                             );
4976       END IF;
4977 
4978       /*
4979       ** Bug#4615534 - Org_id defaulting from inventory organization
4980       ** needs to be done only for In-transit shipments
4981       */
4982       IF(rti.receipt_source_code = 'INVENTORY') THEN
4983           IF (rti.org_id IS NULL) THEN
4984              rti.org_id  := get_org_id_from_inv_org_id(rsl.to_organization_id);
4985           ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rsl.to_organization_id)) THEN
4986              invalid_match_value(rti.org_id,
4987                                  get_org_id_from_inv_org_id(rsl.to_organization_id),
4988                                  'ORG_ID'
4989                                 );
4990           END IF;
4991       END IF;
4992 
4993       IF (rti.po_distribution_id IS NULL) THEN
4994          rti.po_distribution_id  := rsl.po_distribution_id;
4995       ELSIF(rti.po_distribution_id <> rsl.po_distribution_id) THEN
4996          invalid_match_value(rti.po_distribution_id,
4997                              rsl.po_distribution_id,
4998                              'PO_DISTRIBUTION_ID'
4999                             );
5000       END IF;
5001 
5002       IF (rti.po_header_id IS NULL) THEN
5003          rti.po_header_id  := rsl.po_header_id;
5004       ELSIF(rti.po_header_id <> rsl.po_header_id) THEN
5005          invalid_match_value(rti.po_header_id,
5006                              rsl.po_header_id,
5007                              'PO_HEADER_ID'
5008                             );
5009       END IF;
5010 
5011       IF (rti.po_line_id IS NULL) THEN
5012          rti.po_line_id  := rsl.po_line_id;
5013       ELSIF(rti.po_line_id <> rsl.po_line_id) THEN
5014          invalid_match_value(rti.po_line_id,
5015                              rsl.po_line_id,
5016                              'PO_LINE_ID'
5017                             );
5018       END IF;
5019 
5020       IF (rti.po_line_location_id IS NULL) THEN
5021          rti.po_line_location_id  := rsl.po_line_location_id;
5022       ELSIF(rti.po_line_location_id <> rsl.po_line_location_id) THEN
5023          invalid_match_value(rti.po_line_location_id,
5024                              rsl.po_line_location_id,
5025                              'PO_LINE_LOCATION_ID'
5026                             );
5027       END IF;
5028 
5029       IF (rti.po_release_id IS NULL) THEN
5030          rti.po_release_id  := rsl.po_release_id;
5031       ELSIF(rti.po_release_id <> rsl.po_release_id) THEN
5032          invalid_match_value(rti.po_release_id,
5033                              rsl.po_release_id,
5034                              'PO_RELEASE_ID'
5035                             );
5036       END IF;
5037 
5038       IF (rti.requisition_line_id IS NULL) THEN
5039          rti.requisition_line_id  := rsl.requisition_line_id;
5040       ELSIF(rti.requisition_line_id <> rsl.requisition_line_id) THEN
5041          invalid_match_value(rti.requisition_line_id,
5042                              rsl.requisition_line_id,
5043                              'REQUISITION_LINE_ID'
5044                             );
5045       END IF;
5046 
5047       IF (rti.req_distribution_id IS NULL) THEN
5048          rti.req_distribution_id  := rsl.req_distribution_id;
5049       ELSIF(rti.req_distribution_id <> rsl.req_distribution_id) THEN
5050          invalid_match_value(rti.req_distribution_id,
5051                              rsl.req_distribution_id,
5052                              'REQ_DISTRIBUTION_ID'
5053                             );
5054       END IF;
5055 
5056       IF (rti.shipment_header_id IS NULL) THEN
5057          rti.shipment_header_id  := rsl.shipment_header_id;
5058       ELSIF(rti.shipment_header_id <> rsl.shipment_header_id) THEN
5059          invalid_match_value(rti.shipment_header_id,
5060                              rsl.shipment_header_id,
5061                              'SHIPMENT_HEADER_ID'
5062                             );
5063       END IF;
5064 
5065       IF (rti.shipment_line_id IS NULL) THEN
5066          rti.shipment_line_id  := rsl.shipment_line_id;
5067       ELSIF(rti.shipment_line_id <> rsl.shipment_line_id) THEN
5068          invalid_match_value(rti.shipment_line_id,
5069                              rsl.shipment_line_id,
5070                              'SHIPMENT_LINE_ID'
5071                             );
5072       END IF;
5073 
5074       IF (rti.source_document_code IS NULL) THEN
5075          rti.source_document_code  := rsl.source_document_code;
5076       ELSIF(rti.source_document_code <> rsl.source_document_code) THEN
5077          invalid_match_value(rti.source_document_code,
5078                              rsl.source_document_code,
5079                              'SOURCE_DOCUMENT_CODE'
5080                             );
5081       END IF;
5082 
5083       IF (rti.to_organization_id IS NULL) THEN
5084          rti.to_organization_id  := rsl.to_organization_id;
5085       ELSIF(rti.to_organization_id <> rsl.to_organization_id) THEN
5086          invalid_match_value(rti.to_organization_id,
5087                              rsl.to_organization_id,
5088                              'TO_ORGANIZATION_ID'
5089                             );
5090       END IF;
5091 
5092 	/* Bug 5299177
5093 	 * We expect customers to give the amount. We do not default but error out
5094 	 * if it is not given. Commenting out the foll code.
5095       IF (rti.amount IS NULL) THEN
5096          rti.amount  := rsl.amount;
5097       END IF;
5098 	* 5299177 */
5099 
5100       IF (rti.barcode_label IS NULL) THEN
5101          rti.barcode_label  := rsl.bar_code_label;
5102       END IF;
5103 
5104       IF (rti.category_id IS NULL) THEN
5105          rti.category_id  := rsl.category_id;
5106       END IF;
5107 
5108       IF (rti.charge_account_id IS NULL) THEN
5109          rti.charge_account_id  := rsl.charge_account_id;
5110       END IF;
5111 
5112       IF (rti.container_num IS NULL) THEN
5113          rti.container_num  := rsl.container_num;
5114       END IF;
5115 
5116 /*    Bug 5999801. We should not default cost_group_id from RSL
5117  *    as it will be appropriately derived by the cost group engine
5118       IF (rti.cost_group_id IS NULL) THEN
5119          rti.cost_group_id  := rsl.cost_group_id;
5120       END IF;
5121 */
5122       IF (rti.country_of_origin_code IS NULL) THEN
5123          rti.country_of_origin_code  := rsl.country_of_origin_code;
5124       END IF;
5125 
5126       IF (rti.customer_item_num IS NULL) THEN
5127          rti.customer_item_num  := rsl.customer_item_num;
5128       END IF;
5129 
5130       IF (rti.deliver_to_location_id IS NULL) THEN
5131          rti.deliver_to_location_id  := rsl.deliver_to_location_id;
5132       END IF;
5133 
5134       IF (rti.deliver_to_person_id IS NULL) THEN
5135          rti.deliver_to_person_id  := rsl.deliver_to_person_id;
5136       END IF;
5137 
5138       IF (rti.destination_context IS NULL) THEN
5139          rti.destination_context  := rsl.destination_context;
5140       END IF;
5141 
5142       IF (rti.destination_type_code IS NULL) THEN
5143          rti.destination_type_code  := rsl.destination_type_code;
5144       END IF;
5145 
5146       IF (rti.employee_id IS NULL) THEN
5147          rti.employee_id  := rsl.employee_id;
5148       END IF;
5149 
5150       IF (rti.government_context IS NULL) THEN
5151          rti.government_context  := rsl.government_context;
5152       END IF;
5153 
5154       IF (rti.item_description IS NULL) THEN
5155          rti.item_description  := rsl.item_description;
5156       END IF;
5157 
5158       IF (rti.item_id IS NULL) THEN
5159          rti.item_id  := rsl.item_id;
5160       END IF;
5161 
5162       IF (rti.item_revision IS NULL) THEN
5163          rti.item_revision  := rsl.item_revision;
5164       END IF;
5165 
5166       IF (rti.locator_id IS NULL) THEN
5167          rti.locator_id  := rsl.locator_id;
5168       END IF;
5169 
5170       IF (rti.notice_unit_price IS NULL) THEN
5171          rti.notice_unit_price  := rsl.notice_unit_price;
5172       END IF;
5173 
5174       IF (rti.packing_slip IS NULL) THEN
5175          rti.packing_slip  := rsl.packing_slip;
5176       END IF;
5177 
5178       IF (rti.primary_unit_of_measure IS NULL) THEN
5179          rti.primary_unit_of_measure  := rsl.primary_unit_of_measure;
5180       END IF;
5181 
5182       IF (rti.qc_grade IS NULL) THEN
5183          rti.qc_grade  := rsl.qc_grade;
5184       END IF;
5185 
5186       IF (rti.reason_id IS NULL) THEN
5187          rti.reason_id  := rsl.reason_id;
5188       END IF;
5189 
5190       IF (rti.request_id IS NULL) THEN
5191          rti.request_id  := rsl.request_id;
5192       END IF;
5193 
5194       IF (rti.routing_header_id IS NULL) THEN
5195          rti.routing_header_id  := rsl.routing_header_id;
5196       END IF;
5197 
5198       IF (rti.secondary_unit_of_measure IS NULL) THEN
5199          rti.secondary_unit_of_measure  := rsl.secondary_unit_of_measure;
5200       END IF;
5201 
5202       IF (rti.shipment_line_status_code IS NULL) THEN
5203          rti.shipment_line_status_code  := rsl.shipment_line_status_code;
5204       END IF;
5205 
5206       IF (rti.ship_line_attribute1 IS NULL) THEN
5207          rti.ship_line_attribute1  := rsl.attribute1;
5208       END IF;
5209 
5210       IF (rti.ship_line_attribute10 IS NULL) THEN
5211          rti.ship_line_attribute10  := rsl.attribute10;
5212       END IF;
5213 
5214       IF (rti.ship_line_attribute11 IS NULL) THEN
5215          rti.ship_line_attribute11  := rsl.attribute11;
5216       END IF;
5217 
5218       IF (rti.ship_line_attribute12 IS NULL) THEN
5219          rti.ship_line_attribute12  := rsl.attribute12;
5220       END IF;
5221 
5222       IF (rti.ship_line_attribute13 IS NULL) THEN
5223          rti.ship_line_attribute13  := rsl.attribute13;
5224       END IF;
5225 
5226       IF (rti.ship_line_attribute14 IS NULL) THEN
5227          rti.ship_line_attribute14  := rsl.attribute14;
5228       END IF;
5229 
5230       IF (rti.ship_line_attribute15 IS NULL) THEN
5231          rti.ship_line_attribute15  := rsl.attribute15;
5232       END IF;
5233 
5234       IF (rti.ship_line_attribute2 IS NULL) THEN
5235          rti.ship_line_attribute2  := rsl.attribute2;
5236       END IF;
5237 
5238       IF (rti.ship_line_attribute3 IS NULL) THEN
5239          rti.ship_line_attribute3  := rsl.attribute3;
5240       END IF;
5241 
5242       IF (rti.ship_line_attribute4 IS NULL) THEN
5243          rti.ship_line_attribute4  := rsl.attribute4;
5244       END IF;
5245 
5246       IF (rti.ship_line_attribute5 IS NULL) THEN
5247          rti.ship_line_attribute5  := rsl.attribute5;
5248       END IF;
5249 
5250       IF (rti.ship_line_attribute6 IS NULL) THEN
5251          rti.ship_line_attribute6  := rsl.attribute6;
5252       END IF;
5253 
5254       IF (rti.ship_line_attribute7 IS NULL) THEN
5255          rti.ship_line_attribute7  := rsl.attribute7;
5256       END IF;
5257 
5258       IF (rti.ship_line_attribute8 IS NULL) THEN
5259          rti.ship_line_attribute8  := rsl.attribute8;
5260       END IF;
5261 
5262       IF (rti.ship_line_attribute9 IS NULL) THEN
5263          rti.ship_line_attribute9  := rsl.attribute9;
5264       END IF;
5265 
5266       IF (rti.ship_line_attribute_category IS NULL) THEN
5267          rti.ship_line_attribute_category  := rsl.attribute_category;
5268       END IF;
5269 
5270       IF (rti.ship_to_location_id IS NULL) THEN
5271          rti.ship_to_location_id  := rsl.ship_to_location_id;
5272       END IF;
5273 
5274 	/* Bug 5584736.
5275 	 * We have a detailed defaulting routine for defaulting
5276 	 * subinventory and locator later. Commenting out this code
5277 	 * here since this is creating problems later.
5278       IF (rti.subinventory IS NULL) THEN
5279          rti.subinventory  := rsl.to_subinventory;
5280       END IF;
5281 	*/
5282 
5283       IF (rti.tax_amount IS NULL) THEN
5284          rti.tax_amount  := rsl.tax_amount;
5285       END IF;
5286 
5287       IF (rti.tax_name IS NULL) THEN
5288          rti.tax_name  := rsl.tax_name;
5289       END IF;
5290 
5291       IF (rti.timecard_id IS NULL) THEN
5292          rti.timecard_id  := rsl.timecard_id;
5293       END IF;
5294 
5295       IF (rti.timecard_ovn IS NULL) THEN
5296          rti.timecard_ovn  := rsl.timecard_ovn;
5297       END IF;
5298 
5299       IF (rti.transfer_cost IS NULL) THEN
5300          rti.transfer_cost  := rsl.transfer_cost;
5301       END IF;
5302 
5303       IF (rti.transfer_percentage IS NULL) THEN
5304          rti.transfer_percentage  := rsl.transfer_percentage;
5305       END IF;
5306 
5307       IF (rti.transportation_account_id IS NULL) THEN
5308          rti.transportation_account_id  := rsl.transportation_account_id;
5309       END IF;
5310 
5311       IF (rti.transportation_cost IS NULL) THEN
5312          rti.transportation_cost  := rsl.transportation_cost;
5313       END IF;
5314 
5315       IF (rti.truck_num IS NULL) THEN
5316          rti.truck_num  := rsl.truck_num;
5317       END IF;
5318 
5319       IF (rti.unit_of_measure IS NULL) THEN
5320          rti.unit_of_measure  := rsl.unit_of_measure;
5321       END IF;
5322 
5323       IF (rti.ussgl_transaction_code IS NULL) THEN
5324          rti.ussgl_transaction_code  := rsl.ussgl_transaction_code;
5325       END IF;
5326 
5327       IF (rti.vendor_cum_shipped_qty IS NULL) THEN
5328          rti.vendor_cum_shipped_qty  := rsl.vendor_cum_shipped_quantity;
5329       END IF;
5330 
5331       IF (rti.vendor_item_num IS NULL) THEN
5332          rti.vendor_item_num  := rsl.vendor_item_num;
5333       END IF;
5334 
5335       IF (rti.vendor_lot_num IS NULL) THEN
5336          rti.vendor_lot_num  := rsl.vendor_lot_num;
5337       END IF;
5338 
5339       --Quantity
5340 	/* Bug 5299177
5341 	 * We expect customers to give the quantity. We do not default but error out
5342 	 * if it is not given. Commenting out the foll code.
5343       IF (rti.quantity_shipped IS NULL) THEN
5344          rti.quantity_shipped  := rsl.quantity_shipped;
5345       END IF;
5346 	* 5299177 */
5347 
5348       --Necessary for internal orders
5349 /* Bug:5502427 */
5350 /*      IF (rsl.mmt_transaction_id IS NOT NULL) THEN
5351          OPEN get_oe_order_line_id_from_mmt(rsl.mmt_transaction_id);
5352          FETCH get_oe_order_line_id_from_mmt INTO rti.oe_order_line_id;
5353          CLOSE get_oe_order_line_id_from_mmt;
5354       END IF;*/
5355    END default_rti_from_rsl;
5356 
5357    PROCEDURE default_rti_from_rsh(
5358       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
5359    ) IS
5360       rsh rcv_shipment_headers%ROWTYPE;
5361    BEGIN
5362       IF (rti.shipment_header_id IS NOT NULL) THEN
5363          rsh  := rcv_table_functions.get_rsh_row_from_id(rti.shipment_header_id);
5364       END IF;
5365 
5366       IF (rsh.shipment_header_id IS NULL) THEN
5367          RETURN;
5368       END IF;
5369 
5370       IF (rti.from_organization_id IS NULL) THEN
5371          rti.from_organization_id  := rsh.organization_id;
5372       ELSIF(rti.from_organization_id <> rsh.organization_id) THEN
5373          invalid_match_value(rti.from_organization_id,
5374                              rsh.organization_id,
5375                              'FROM_ORGANIZATION_ID'
5376                             );
5377       END IF;
5378 
5379       /*
5380       ** Bug#4615534 - Org_id defaulting from inventory organization
5381       ** needs to be done only for In-transit shipments
5382       */
5383       IF(rti.receipt_source_code = 'INVENTORY') THEN
5384           IF (rti.org_id IS NULL) THEN
5385              rti.org_id  := get_org_id_from_inv_org_id(rsh.ship_to_org_id);
5386           ELSIF(rti.org_id <> get_org_id_from_inv_org_id(rsh.ship_to_org_id)) THEN
5387              invalid_match_value(rti.org_id,
5388                                  get_org_id_from_inv_org_id(rsh.ship_to_org_id),
5389                                  'ORG_ID'
5390                                 );
5391           END IF;
5392       END IF;
5393 
5394       IF (rti.shipment_header_id IS NULL) THEN
5395          rti.shipment_header_id  := rsh.shipment_header_id;
5396       ELSIF(rti.shipment_header_id <> rsh.shipment_header_id) THEN
5397          invalid_match_value(rti.shipment_header_id,
5398                              rsh.shipment_header_id,
5399                              'SHIPMENT_HEADER_ID'
5400                             );
5401       END IF;
5402 
5403       IF (rti.shipment_num IS NULL) THEN
5404          rti.shipment_num  := rsh.shipment_num;
5405       ELSIF(rti.shipment_num <> rsh.shipment_num) THEN
5406          invalid_match_value(rti.shipment_num,
5407                              rsh.shipment_num,
5408                              'SHIPMENT_NUM'
5409                             );
5410       END IF;
5411 
5412       IF (rti.to_organization_id IS NULL) THEN
5413          rti.to_organization_id  := rsh.ship_to_org_id;
5414       ELSIF(rti.to_organization_id <> rsh.ship_to_org_id) THEN
5415          invalid_match_value(rti.to_organization_id,
5416                              rsh.ship_to_org_id,
5417                              'TO_ORGANIZATION_ID'
5418                             );
5419       END IF;
5420 
5421       IF (rti.bill_of_lading IS NULL) THEN
5422          rti.bill_of_lading  := rsh.bill_of_lading;
5423       END IF;
5424 
5425       IF (rti.currency_code IS NULL) THEN
5426          rti.currency_code  := rsh.currency_code;
5427       END IF;
5428 
5429       IF (rti.currency_conversion_date IS NULL) THEN
5430          rti.currency_conversion_date  := rsh.conversion_date;
5431       END IF;
5432 
5433       IF (rti.currency_conversion_rate IS NULL) THEN
5434          rti.currency_conversion_rate  := TO_NUMBER(rsh.conversion_rate);
5435       END IF;
5436 
5437       IF (rti.currency_conversion_type IS NULL) THEN
5438          rti.currency_conversion_type  := rsh.conversion_rate_type;
5439       END IF;
5440 
5441       IF (rti.customer_id IS NULL) THEN
5442          rti.customer_id  := rsh.customer_id;
5443       END IF;
5444 
5445       IF (rti.customer_site_id IS NULL) THEN
5446          rti.customer_site_id  := rsh.customer_site_id;
5447       END IF;
5448 
5449       IF (rti.employee_id IS NULL) THEN
5450          rti.employee_id  := rsh.employee_id;
5451       END IF;
5452 
5453       IF (rti.expected_receipt_date IS NULL) THEN
5454          rti.expected_receipt_date  := rsh.expected_receipt_date;
5455       END IF;
5456 
5457       IF (rti.freight_carrier_code IS NULL) THEN
5458          rti.freight_carrier_code  := rsh.freight_carrier_code;
5459       END IF;
5460 
5461       IF (rti.government_context IS NULL) THEN
5462          rti.government_context  := rsh.government_context;
5463       END IF;
5464 
5465       IF (rti.num_of_containers IS NULL) THEN
5466          rti.num_of_containers  := rsh.num_of_containers;
5467       END IF;
5468 
5469       IF (rti.packing_slip IS NULL) THEN
5470          rti.packing_slip  := rsh.packing_slip;
5471       END IF;
5472 
5473       IF (rti.receipt_source_code IS NULL) THEN
5474          rti.receipt_source_code  := rsh.receipt_source_code;
5475       END IF;
5476 
5477       IF (rti.request_id IS NULL) THEN
5478          rti.request_id  := rsh.request_id;
5479       END IF;
5480 
5481       IF (rti.shipped_date IS NULL) THEN
5482          rti.shipped_date  := rsh.shipped_date;
5483       END IF;
5484 
5485       IF (rti.ship_line_attribute1 IS NULL) THEN
5486          rti.ship_line_attribute1  := rsh.attribute1;
5487       END IF;
5488 
5489       IF (rti.ship_line_attribute10 IS NULL) THEN
5490          rti.ship_line_attribute10  := rsh.attribute10;
5491       END IF;
5492 
5493       IF (rti.ship_line_attribute11 IS NULL) THEN
5494          rti.ship_line_attribute11  := rsh.attribute11;
5495       END IF;
5496 
5497       IF (rti.ship_line_attribute12 IS NULL) THEN
5498          rti.ship_line_attribute12  := rsh.attribute12;
5499       END IF;
5500 
5501       IF (rti.ship_line_attribute13 IS NULL) THEN
5502          rti.ship_line_attribute13  := rsh.attribute13;
5503       END IF;
5504 
5505       IF (rti.ship_line_attribute14 IS NULL) THEN
5506          rti.ship_line_attribute14  := rsh.attribute14;
5507       END IF;
5508 
5509       IF (rti.ship_line_attribute15 IS NULL) THEN
5510          rti.ship_line_attribute15  := rsh.attribute15;
5511       END IF;
5512 
5513       IF (rti.ship_line_attribute2 IS NULL) THEN
5514          rti.ship_line_attribute2  := rsh.attribute2;
5515       END IF;
5516 
5517       IF (rti.ship_line_attribute3 IS NULL) THEN
5518          rti.ship_line_attribute3  := rsh.attribute3;
5519       END IF;
5520 
5521       IF (rti.ship_line_attribute4 IS NULL) THEN
5522          rti.ship_line_attribute4  := rsh.attribute4;
5523       END IF;
5524 
5525       IF (rti.ship_line_attribute5 IS NULL) THEN
5526          rti.ship_line_attribute5  := rsh.attribute5;
5527       END IF;
5528 
5529       IF (rti.ship_line_attribute6 IS NULL) THEN
5530          rti.ship_line_attribute6  := rsh.attribute6;
5531       END IF;
5532 
5533       IF (rti.ship_line_attribute7 IS NULL) THEN
5534          rti.ship_line_attribute7  := rsh.attribute7;
5535       END IF;
5536 
5537       IF (rti.ship_line_attribute8 IS NULL) THEN
5538          rti.ship_line_attribute8  := rsh.attribute8;
5539       END IF;
5540 
5541       IF (rti.ship_line_attribute9 IS NULL) THEN
5542          rti.ship_line_attribute9  := rsh.attribute9;
5543       END IF;
5544 
5545       IF (rti.ship_line_attribute_category IS NULL) THEN
5546          rti.ship_line_attribute_category  := rsh.attribute_category;
5547       END IF;
5548 
5549       IF (rti.ship_to_location_id IS NULL) THEN
5550          rti.ship_to_location_id  := rsh.ship_to_location_id;
5551       END IF;
5552 
5553       IF (rti.tax_amount IS NULL) THEN
5554          rti.tax_amount  := rsh.tax_amount;
5555       END IF;
5556 
5557       IF (rti.tax_name IS NULL) THEN
5558          rti.tax_name  := rsh.tax_name;
5559       END IF;
5560 
5561       IF (rti.ussgl_transaction_code IS NULL) THEN
5562          rti.ussgl_transaction_code  := rsh.ussgl_transaction_code;
5563       END IF;
5564 
5565       IF (rti.vendor_id IS NULL) THEN
5566          rti.vendor_id  := rsh.vendor_id;
5567       END IF;
5568 
5569       IF (rti.vendor_site_id IS NULL) THEN
5570          rti.vendor_site_id  := rsh.vendor_site_id;
5571       END IF;
5572 
5573       IF (rti.waybill_airbill_num IS NULL) THEN
5574          rti.waybill_airbill_num  := rsh.waybill_airbill_num;
5575       END IF;
5576    END default_rti_from_rsh;
5577 
5578    PROCEDURE default_rti_from_pod(
5579       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
5580    ) IS
5581       pod        po_distributions_all%ROWTYPE;
5582       x_quantity NUMBER;
5583    BEGIN
5584       IF (rti.po_distribution_id IS NOT NULL) THEN
5585          pod  := rcv_table_functions.get_pod_row_from_id(rti.po_distribution_id);
5586       END IF;
5587 
5588       IF (pod.po_distribution_id IS NULL) THEN
5589          RETURN;
5590       END IF;
5591 
5592       IF (rti.document_distribution_num IS NULL) THEN
5593          rti.document_distribution_num  := pod.distribution_num;
5594       ELSIF(rti.document_distribution_num <> pod.distribution_num) THEN
5595          invalid_match_value(rti.document_distribution_num,
5596                              pod.distribution_num,
5597                              'DOCUMENT_DISTRIBUTION_NUM'
5598                             );
5599       END IF;
5600 
5601       IF (rti.org_id IS NULL) THEN
5602          rti.org_id  := pod.org_id;
5603       ELSIF(rti.org_id <> pod.org_id) THEN
5604          invalid_match_value(rti.org_id,
5605                              pod.org_id,
5606                              'ORG_ID'
5607                             );
5608       END IF;
5609 
5610       IF (rti.po_distribution_id IS NULL) THEN
5611          rti.po_distribution_id  := pod.po_distribution_id;
5612       ELSIF(rti.po_distribution_id <> pod.po_distribution_id) THEN
5613          invalid_match_value(rti.po_distribution_id,
5614                              pod.po_distribution_id,
5615                              'PO_DISTRIBUTION_ID'
5616                             );
5617       END IF;
5618 
5619       IF (rti.po_header_id IS NULL) THEN
5620          rti.po_header_id  := pod.po_header_id;
5621       ELSIF(rti.po_header_id <> pod.po_header_id) THEN
5622          invalid_match_value(rti.po_header_id,
5623                              pod.po_header_id,
5624                              'PO_HEADER_ID'
5625                             );
5626       END IF;
5627 
5628       IF (rti.po_line_id IS NULL) THEN
5629          rti.po_line_id  := pod.po_line_id;
5630       ELSIF(rti.po_line_id <> pod.po_line_id) THEN
5631          invalid_match_value(rti.po_line_id,
5632                              pod.po_line_id,
5633                              'PO_LINE_ID'
5634                             );
5635       END IF;
5636 
5637       IF (rti.po_line_location_id IS NULL) THEN
5638          rti.po_line_location_id  := pod.line_location_id;
5639       ELSIF(rti.po_line_location_id <> pod.line_location_id) THEN
5640          invalid_match_value(rti.po_line_location_id,
5641                              pod.line_location_id,
5642                              'PO_LINE_LOCATION_ID'
5643                             );
5644       END IF;
5645 
5646       IF (rti.po_release_id IS NULL) THEN
5647          rti.po_release_id  := pod.po_release_id;
5648       ELSIF(rti.po_release_id <> pod.po_release_id) THEN
5649          invalid_match_value(rti.po_release_id,
5650                              pod.po_release_id,
5651                              'PO_RELEASE_ID'
5652                             );
5653       END IF;
5654 
5655       IF (rti.req_distribution_id IS NULL) THEN
5656          rti.req_distribution_id  := pod.req_distribution_id;
5657       ELSIF(rti.req_distribution_id <> pod.req_distribution_id) THEN
5658          invalid_match_value(rti.req_distribution_id,
5659                              pod.req_distribution_id,
5660                              'REQ_DISTRIBUTION_ID'
5661                             );
5662       END IF;
5663 
5664       IF (rti.to_organization_id IS NULL) THEN
5665          rti.to_organization_id  := pod.destination_organization_id;
5666       ELSIF(rti.to_organization_id <> pod.destination_organization_id) THEN
5667          invalid_match_value(rti.to_organization_id,
5668                              pod.destination_organization_id,
5669                              'TO_ORGANIZATION_ID'
5670                             );
5671       END IF;
5672 
5673       IF (rti.wip_entity_id IS NULL) THEN
5674          rti.wip_entity_id  := pod.wip_entity_id;
5675       ELSIF(rti.wip_entity_id <> pod.wip_entity_id) THEN
5676          invalid_match_value(rti.wip_entity_id,
5677                              pod.wip_entity_id,
5678                              'WIP_ENTITY_ID'
5679                             );
5680       END IF;
5681 
5682       IF (rti.wip_line_id IS NULL) THEN
5683          rti.wip_line_id  := pod.wip_line_id;
5684       ELSIF(rti.wip_line_id <> pod.wip_line_id) THEN
5685          invalid_match_value(rti.wip_line_id,
5686                              pod.wip_line_id,
5687                              'WIP_LINE_ID'
5688                             );
5689       END IF;
5690 
5691       IF (rti.wip_operation_seq_num IS NULL) THEN
5692          rti.wip_operation_seq_num  := pod.wip_operation_seq_num;
5693       ELSIF(rti.wip_operation_seq_num <> pod.wip_operation_seq_num) THEN
5694          invalid_match_value(rti.wip_operation_seq_num,
5695                              pod.wip_operation_seq_num,
5696                              'WIP_OPERATION_SEQ_NUM'
5697                             );
5698       END IF;
5699 
5700       IF (rti.wip_repetitive_schedule_id IS NULL) THEN
5701          rti.wip_repetitive_schedule_id  := pod.wip_repetitive_schedule_id;
5702       ELSIF(rti.wip_repetitive_schedule_id <> pod.wip_repetitive_schedule_id) THEN
5703          invalid_match_value(rti.wip_repetitive_schedule_id,
5704                              pod.wip_repetitive_schedule_id,
5705                              'WIP_REPETITIVE_SCHEDULE_ID'
5706                             );
5707       END IF;
5708 
5709       IF (rti.wip_resource_seq_num IS NULL) THEN
5710          rti.wip_resource_seq_num  := pod.wip_resource_seq_num;
5711       ELSIF(rti.wip_resource_seq_num <> pod.wip_resource_seq_num) THEN
5712          invalid_match_value(rti.wip_resource_seq_num,
5713                              pod.wip_resource_seq_num,
5714                              'WIP_RESOURCE_SEQ_NUM'
5715                             );
5716       END IF;
5717 
5718       IF (rti.actual_cost IS NULL) THEN
5719          rti.actual_cost  := pod.amount_billed;
5720       END IF;
5721 
5722 	/* Bug 5299177
5723 	 * We expect customers to give the amount. We do not default but error out
5724 	 * if it is not given. Commenting out the foll code.
5725       IF (rti.amount IS NULL) THEN
5726          rti.amount  := pod.amount_ordered - pod.amount_cancelled;
5727       END IF;
5728 	* 5299177 */
5729       /* Start of Bug 6487455 */
5730 
5731       /* IF (rti.attribute1 IS NULL) THEN
5732          rti.attribute1  := pod.attribute1;
5733       END IF;
5734 
5735       IF (rti.attribute10 IS NULL) THEN
5736          rti.attribute10  := pod.attribute10;
5737       END IF;
5738 
5739       IF (rti.attribute11 IS NULL) THEN
5740          rti.attribute11  := pod.attribute11;
5741       END IF;
5742 
5743       IF (rti.attribute12 IS NULL) THEN
5744          rti.attribute12  := pod.attribute12;
5745       END IF;
5746 
5747       IF (rti.attribute13 IS NULL) THEN
5748          rti.attribute13  := pod.attribute13;
5749       END IF;
5750 
5751       IF (rti.attribute14 IS NULL) THEN
5752          rti.attribute14  := pod.attribute14;
5753       END IF;
5754 
5755       IF (rti.attribute15 IS NULL) THEN
5756          rti.attribute15  := pod.attribute15;
5757       END IF;
5758 
5759       IF (rti.attribute2 IS NULL) THEN
5760          rti.attribute2  := pod.attribute2;
5761       END IF;
5762 
5763       IF (rti.attribute3 IS NULL) THEN
5764          rti.attribute3  := pod.attribute3;
5765       END IF;
5766 
5767       IF (rti.attribute4 IS NULL) THEN
5768          rti.attribute4  := pod.attribute4;
5769       END IF;
5770 
5771       IF (rti.attribute5 IS NULL) THEN
5772          rti.attribute5  := pod.attribute5;
5773       END IF;
5774 
5775       IF (rti.attribute6 IS NULL) THEN
5776          rti.attribute6  := pod.attribute6;
5777       END IF;
5778 
5779       IF (rti.attribute7 IS NULL) THEN
5780          rti.attribute7  := pod.attribute7;
5781       END IF;
5782 
5783       IF (rti.attribute8 IS NULL) THEN
5784          rti.attribute8  := pod.attribute8;
5785       END IF;
5786 
5787       IF (rti.attribute9 IS NULL) THEN
5788          rti.attribute9  := pod.attribute9;
5789       END IF;
5790 
5791       IF (rti.attribute_category IS NULL) THEN
5792          rti.attribute_category  := pod.attribute_category;
5793       END IF; */
5794 
5795       /* End Bug 6487455 */
5796 
5797       IF (rti.bom_resource_id IS NULL) THEN
5798          rti.bom_resource_id  := pod.bom_resource_id;
5799       END IF;
5800 
5801       IF (rti.charge_account_id IS NULL) THEN
5802          rti.charge_account_id  := NVL(pod.dest_charge_account_id, pod.code_combination_id);
5803       END IF;
5804 
5805       IF (rti.currency_conversion_date IS NULL) THEN
5806          rti.currency_conversion_date  := pod.rate_date;
5807       END IF;
5808 
5809       IF (rti.currency_conversion_rate IS NULL) THEN
5810          rti.currency_conversion_rate  := pod.rate;
5811       END IF;
5812 
5813       IF (rti.deliver_to_location_id IS NULL) THEN
5814          rti.deliver_to_location_id  := pod.deliver_to_location_id;
5815       END IF;
5816 
5817       IF (rti.deliver_to_person_id IS NULL) THEN
5818          rti.deliver_to_person_id  := pod.deliver_to_person_id;
5819       END IF;
5820 
5821       IF (rti.destination_context IS NULL) THEN
5822          rti.destination_context  := pod.destination_context;
5823       END IF;
5824 
5825       IF (rti.destination_type_code IS NULL) THEN
5826          rti.destination_type_code  := pod.destination_type_code;
5827       END IF;
5828 
5829       IF (rti.government_context IS NULL) THEN
5830          rti.government_context  := pod.government_context;
5831       END IF;
5832 
5833       IF (rti.project_id IS NULL) THEN
5834          rti.project_id  := pod.project_id;
5835       END IF;
5836 
5837 	/* Bug 5584736.
5838 	 * We have a detailed defaulting routine for defaulting
5839 	 * subinventory and locator later. Commenting out this code
5840 	 * here since this is creating problems later.
5841       IF (rti.subinventory IS NULL) THEN
5842          rti.subinventory  := pod.destination_subinventory;
5843       END IF;
5844 	*/
5845 
5846       IF (rti.task_id IS NULL) THEN
5847          rti.task_id  := pod.task_id;
5848       END IF;
5849 
5850       IF (rti.ussgl_transaction_code IS NULL) THEN
5851          rti.ussgl_transaction_code  := pod.ussgl_transaction_code;
5852       END IF;
5853 
5854       --Quantity
5855 	/* Bug 5299177
5856 	 * We expect customers to give the quantity. We do not default but error out
5857 	 * if it is not given. Commenting out the foll code.
5858       IF (rti.quantity IS NULL) THEN
5859          x_quantity              := pod.quantity_billed;
5860 
5861          IF (   x_quantity = 0
5862              OR x_quantity IS NULL) THEN
5863             x_quantity  := pod.quantity_ordered - NVL(pod.quantity_cancelled, 0);
5864          END IF;
5865 
5866          rti.quantity            := x_quantity;
5867          g_subtract_pll_qty_rcv  := TRUE;
5868       END IF;
5869 	* 5299177 */
5870    END default_rti_from_pod;
5871 
5872    PROCEDURE default_rti_from_pll(
5873       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
5874    ) IS
5875       pll        po_line_locations_all%ROWTYPE;
5876       x_quantity NUMBER;
5877    BEGIN
5878       IF (rti.po_line_location_id IS NOT NULL) THEN
5879          pll  := rcv_table_functions.get_pll_row_from_id(rti.po_line_location_id);
5880       END IF;
5881 
5882       IF (pll.line_location_id IS NULL) THEN
5883          RETURN;
5884       END IF;
5885 
5886       IF (rti.document_shipment_line_num IS NULL) THEN
5887          rti.document_shipment_line_num  := pll.shipment_num;
5888       ELSIF(rti.document_shipment_line_num <> pll.shipment_num) THEN
5889          invalid_match_value(rti.document_shipment_line_num,
5890                              pll.shipment_num,
5891                              'DOCUMENT_SHIPMENT_LINE_NUM'
5892                             );
5893       END IF;
5894 
5895       IF (rti.org_id IS NULL) THEN
5896          rti.org_id  := pll.org_id;
5897       ELSIF(rti.org_id <> pll.org_id) THEN
5898          invalid_match_value(rti.org_id,
5899                              pll.org_id,
5900                              'ORG_ID'
5901                             );
5902       END IF;
5903 
5904       IF (rti.po_header_id IS NULL) THEN
5905          rti.po_header_id  := pll.po_header_id;
5906       ELSIF(rti.po_header_id <> pll.po_header_id) THEN
5907          invalid_match_value(rti.po_header_id,
5908                              pll.po_header_id,
5909                              'PO_HEADER_ID'
5910                             );
5911       END IF;
5912       /* Complex work.
5913        * Get nvl(pll.price_override,pl.unit_price.
5914       */
5915 
5916       select nvl(poll.price_override,pol.unit_price)
5917       into pll.price_override
5918       from po_line_locations_all poll,
5919            po_lines_all pol
5920       where poll.line_location_id = pll.line_location_id
5921       and pol.po_line_id = poll.po_line_id;
5922 
5923       IF (rti.po_unit_price IS NULL) THEN
5924             rti.po_unit_price  := pll.price_override;
5925       end if;
5926 
5927       IF (rti.po_line_id IS NULL) THEN
5928          rti.po_line_id  := pll.po_line_id;
5929       ELSIF(rti.po_line_id <> pll.po_line_id) THEN
5930          invalid_match_value(rti.po_line_id,
5931                              pll.po_line_id,
5932                              'PO_LINE_ID'
5933                             );
5934       END IF;
5935 
5936       IF (rti.po_line_location_id IS NULL) THEN
5937          rti.po_line_location_id  := pll.line_location_id;
5938       ELSIF(rti.po_line_location_id <> pll.line_location_id) THEN
5939          invalid_match_value(rti.po_line_location_id,
5940                              pll.line_location_id,
5941                              'PO_LINE_LOCATION_ID'
5942                             );
5943       END IF;
5944 
5945       IF (rti.po_release_id IS NULL) THEN
5946          rti.po_release_id  := pll.po_release_id;
5947       ELSIF(rti.po_release_id <> pll.po_release_id) THEN
5948          invalid_match_value(rti.po_release_id,
5949                              pll.po_release_id,
5950                              'PO_RELEASE_ID'
5951                             );
5952       END IF;
5953 
5954       IF (rti.to_organization_id IS NULL) THEN
5955          rti.to_organization_id  := pll.ship_to_organization_id;
5956       ELSIF(rti.to_organization_id <> pll.ship_to_organization_id) THEN
5957          invalid_match_value(rti.to_organization_id,
5958                              pll.ship_to_organization_id,
5959                              'TO_ORGANIZATION_ID'
5960                             );
5961       END IF;
5962 
5963      /* Complex Work.
5964       * Item_description is at the shipment level for
5965       * complex work POs and at the line level
5966       * for non-complex work POs.
5967       */
5968       select nvl(poll.description,pol.item_description)
5969       into pll.description
5970       from po_line_locations_all poll,
5971            po_lines_all pol
5972       where poll.line_location_id = pll.line_location_id
5973       and pol.po_line_id = poll.po_line_id;
5974 
5975 
5976          IF (rti.item_description IS NULL) THEN
5977 
5978            /* Bug 4753230 : Item description should not be defaulted for rti rows
5979            **               populated for OTL retrieval
5980            */
5981            IF ( rti.timecard_id IS NULL ) THEN
5982              rti.item_description  := pll.description;
5983            END IF;
5984 
5985          ELSIF(rti.item_description <> pll.description) THEN
5986          /** Bug: 5598511
5987           * For ASN created with substitution item, item description and item id of rti
5988           * won't match with the item description and item id of pol or poll.
5989           * So, bypassing the item description and item id validation for ASN.
5990           */
5991           /* IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
5992             invalid_match_value(rti.item_description,
5993                                 pll.description,
5994                                 'ITEM_DESCRIPTION'
5995                                );
5996             END IF;*/
5997 	    rti.item_description  := pll.description;
5998 	    /* Bug 7012051: Made the item_description to be defaulted  from
5999 	       Pll.description so that transaction should not fail when invalid
6000 	       item description is entered*/
6001          END IF;
6002 
6003 
6004       IF (rti.substitute_unordered_code IS NULL) THEN
6005          IF (rti.item_description IS NULL) THEN
6006 
6007            /* Bug 4753230 : Item description should not be defaulted for rti rows
6008            **               populated for OTL retrieval
6009            */
6010            IF ( rti.timecard_id IS NULL ) THEN
6011              rti.item_description  := pll.description;
6012            END IF;
6013 
6014          ELSIF(rti.item_description <> pll.description) THEN
6015           /* IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6016             invalid_match_value(rti.item_description,
6017                                 pll.description,
6018                                 'ITEM_DESCRIPTION'
6019                                );
6020            END IF;*/
6021 	   rti.item_description  := pll.description;
6022 	    /* Bug 7012051: Made the item_description to be defaulted  from
6023 	       Pll.description so that transaction should not fail when invalid
6024 	       item description is entered*/
6025          END IF;
6026       END IF;
6027 
6028       /* Complex Work. We should not default amount since it should
6029        * be done by the user.
6030       IF (rti.amount IS NULL) THEN
6031          rti.amount  := pll.amount;
6032       END IF;
6033       */
6034 
6035       IF (rti.attribute1 IS NULL) THEN
6036          rti.attribute1  := pll.attribute1;
6037       END IF;
6038 
6039       IF (rti.attribute10 IS NULL) THEN
6040          rti.attribute10  := pll.attribute10;
6041       END IF;
6042 
6043       IF (rti.attribute11 IS NULL) THEN
6044          rti.attribute11  := pll.attribute11;
6045       END IF;
6046 
6047       IF (rti.attribute12 IS NULL) THEN
6048          rti.attribute12  := pll.attribute12;
6049       END IF;
6050 
6051       IF (rti.attribute13 IS NULL) THEN
6052          rti.attribute13  := pll.attribute13;
6053       END IF;
6054 
6055       IF (rti.attribute14 IS NULL) THEN
6056          rti.attribute14  := pll.attribute14;
6057       END IF;
6058 
6059       IF (rti.attribute15 IS NULL) THEN
6060          rti.attribute15  := pll.attribute15;
6061       END IF;
6062 
6063       IF (rti.attribute2 IS NULL) THEN
6064          rti.attribute2  := pll.attribute2;
6065       END IF;
6066 
6067       IF (rti.attribute3 IS NULL) THEN
6068          rti.attribute3  := pll.attribute3;
6069       END IF;
6070 
6071       IF (rti.attribute4 IS NULL) THEN
6072          rti.attribute4  := pll.attribute4;
6073       END IF;
6074 
6075       IF (rti.attribute5 IS NULL) THEN
6076          rti.attribute5  := pll.attribute5;
6077       END IF;
6078 
6079       IF (rti.attribute6 IS NULL) THEN
6080          rti.attribute6  := pll.attribute6;
6081       END IF;
6082 
6083       IF (rti.attribute7 IS NULL) THEN
6084          rti.attribute7  := pll.attribute7;
6085       END IF;
6086 
6087       IF (rti.attribute8 IS NULL) THEN
6088          rti.attribute8  := pll.attribute8;
6089       END IF;
6090 
6091       IF (rti.attribute9 IS NULL) THEN
6092          rti.attribute9  := pll.attribute9;
6093       END IF;
6094 
6095       IF (rti.attribute_category IS NULL) THEN
6096          rti.attribute_category  := pll.attribute_category;
6097       END IF;
6098 
6099       IF (rti.country_of_origin_code IS NULL) THEN
6100          rti.country_of_origin_code  := pll.country_of_origin_code;
6101       END IF;
6102 
6103       IF (rti.government_context IS NULL) THEN
6104          rti.government_context  := pll.government_context;
6105       END IF;
6106 
6107       IF (rti.routing_header_id IS NULL) THEN
6108          rti.routing_header_id  := pll.receiving_routing_id;
6109       END IF;
6110 
6111       IF (rti.secondary_unit_of_measure IS NULL) THEN
6112          rti.secondary_unit_of_measure  := pll.secondary_unit_of_measure;
6113       END IF;
6114 
6115       IF (rti.ship_to_location_id IS NULL) THEN
6116          rti.ship_to_location_id  := pll.ship_to_location_id;
6117       END IF;
6118 
6119       IF (rti.source_doc_unit_of_measure IS NULL) THEN
6120          rti.source_doc_unit_of_measure  := pll.unit_meas_lookup_code;
6121       END IF;
6122 
6123       IF (rti.tax_name IS NULL) THEN
6124          rti.tax_name  := pll.tax_name;
6125       END IF;
6126 
6127       IF (rti.unit_of_measure IS NULL) THEN
6128          rti.unit_of_measure  := pll.unit_meas_lookup_code;
6129       END IF;
6130 
6131       IF (rti.ussgl_transaction_code IS NULL) THEN
6132          rti.ussgl_transaction_code  := pll.ussgl_transaction_code;
6133       END IF;
6134 
6135       /* Complex work. */
6136 
6137       IF (rti.po_unit_price IS NULL) THEN
6138             rti.po_unit_price  := pll.price_override;
6139       END IF;
6140       --Quantity
6141       /* Complex Work. We should not default quantity since it should
6142        * be done by the user.
6143       IF (rti.quantity IS NULL) THEN
6144          x_quantity    := pll.quantity_billed;
6145 
6146          IF (   x_quantity = 0
6147              OR x_quantity IS NULL) THEN
6148             x_quantity  := pll.quantity - NVL(pll.quantity_cancelled, 0);
6149          END IF;
6150 
6151          rti.quantity  := x_quantity - NVL(pll.quantity_received, 0);
6152 
6153          IF (    rti.secondary_quantity IS NULL
6154              AND rti.quantity = pll.quantity) THEN
6155             rti.secondary_quantity  := pll.secondary_quantity;
6156          END IF;
6157       ELSIF(g_subtract_pll_qty_rcv = TRUE) THEN
6158          rti.quantity  := rti.quantity - NVL(pll.quantity_received, 0);
6159       END IF;
6160       */
6161    END default_rti_from_pll;
6162 
6163    PROCEDURE default_rti_from_pol(
6164       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6165    ) IS
6166       pol po_lines_all%ROWTYPE;
6167    BEGIN
6168       asn_debug.put_line('Enter default_rti_from_pol');
6169       IF (rti.po_line_id IS NOT NULL) THEN
6170          pol  := rcv_table_functions.get_pol_row_from_id(rti.po_line_id);
6171       END IF;
6172       asn_debug.put_line('Afte  get_pol_row_from_id');
6173 
6174       IF (pol.po_line_id IS NULL) THEN
6175          asn_debug.put_line('pol.po_line_id  is: '||pol.po_line_id);
6176          RETURN;
6177       END IF;
6178 
6179       IF (rti.document_line_num IS NULL) THEN
6180          rti.document_line_num  := pol.line_num;
6181       ELSIF(rti.document_line_num <> pol.line_num) THEN
6182          invalid_match_value(rti.document_line_num,
6183                              pol.line_num,
6184                              'DOCUMENT_LINE_NUM'
6185                             );
6186       END IF;
6187 
6188       IF (rti.substitute_unordered_code IS NULL) THEN
6189      /* Complex Work.
6190       * Item_description is at the shipment level for
6191       * Complex work. For non complex work POs it is at
6192       * the line level. So the check for item_description
6193       * is done at the shipment_level itself. Commented
6194       * out the code here.
6195 
6196          IF (rti.item_description IS NULL) THEN
6197             rti.item_description  := pol.item_description;
6198          ELSIF(rti.item_description <> pol.item_description) THEN
6199             invalid_match_value(rti.item_description,
6200                                 pol.item_description,
6201                                 'ITEM_DESCRIPTION'
6202                                );
6203          END IF;
6204 
6205        */
6206          IF (rti.item_id IS NULL) THEN
6207             rti.item_id  := pol.item_id;
6208          ELSIF(rti.item_id <> pol.item_id) THEN
6209            IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6210              invalid_match_value(rti.item_id,
6211                                 pol.item_id,
6212                                 'ITEM_ID'
6213                                );
6214            END IF;
6215          END IF;
6216 
6217          IF (rti.item_revision IS NULL) THEN
6218             rti.item_revision  := pol.item_revision;
6219          /*
6220          Bug 5975270: We can't compare the two revisions right now
6221          as we are not sure if item is revision controlled or not.
6222          ELSIF(rti.item_revision <> pol.item_revision) THEN
6223            IF g_asn_type NOT IN ('ASN','ASBN') THEN --Bug: 5598511
6224              invalid_match_value(rti.item_revision,
6225                                 pol.item_revision,
6226                                 'ITEM_REVISION'
6227                                );
6228              END IF;
6229             */
6230          END IF;
6231       END IF;
6232 
6233       IF (rti.job_id IS NULL) THEN
6234          rti.job_id  := pol.job_id;
6235       ELSIF(rti.job_id <> pol.job_id) THEN
6236          invalid_match_value(rti.job_id,
6237                              pol.job_id,
6238                              'JOB_ID'
6239                             );
6240       END IF;
6241 
6242       IF (rti.org_id IS NULL) THEN
6243          rti.org_id  := pol.org_id;
6244       ELSIF(rti.org_id <> pol.org_id) THEN
6245          invalid_match_value(rti.org_id,
6246                              pol.org_id,
6247                              'ORG_ID'
6248                             );
6249       END IF;
6250 
6251       IF (rti.po_header_id IS NULL) THEN
6252          rti.po_header_id  := pol.po_header_id;
6253       ELSIF(rti.po_header_id <> pol.po_header_id) THEN
6254          invalid_match_value(rti.po_header_id,
6255                              pol.po_header_id,
6256                              'PO_HEADER_ID'
6257                             );
6258       END IF;
6259 
6260       asn_debug.put_line('Before  po_line_id');
6261       IF (rti.po_line_id IS NULL) THEN
6262          rti.po_line_id  := pol.po_line_id;
6263       ELSIF(rti.po_line_id <> pol.po_line_id) THEN
6264          invalid_match_value(rti.po_line_id,
6265                              pol.po_line_id,
6266                              'PO_LINE_ID'
6267                             );
6268       END IF;
6269 
6270       IF (rti.project_id IS NULL) THEN
6271          rti.project_id  := pol.project_id;
6272       ELSIF(rti.project_id <> pol.project_id) THEN
6273          invalid_match_value(rti.project_id,
6274                              pol.project_id,
6275                              'PROJECT_ID'
6276                             );
6277       END IF;
6278 
6279       IF (rti.task_id IS NULL) THEN
6280          rti.task_id  := pol.task_id;
6281       ELSIF(rti.task_id <> pol.task_id) THEN
6282          invalid_match_value(rti.task_id,
6283                              pol.task_id,
6284                              'TASK_ID'
6285                             );
6286       END IF;
6287 
6288       /* Complex Work.
6289        * We should not pick up amount from po_lines.
6290        * It should be populated by the user.
6291 
6292       IF (rti.amount IS NULL) THEN
6293          rti.amount  := pol.amount;
6294       END IF;
6295      */
6296 
6297      /* Start of Bug 6487455 */
6298 
6299       /* IF (rti.attribute1 IS NULL) THEN
6300          rti.attribute1  := pol.attribute1;
6301       END IF;
6302 
6303       IF (rti.attribute10 IS NULL) THEN
6304          rti.attribute10  := pol.attribute10;
6305       END IF;
6306 
6307       IF (rti.attribute11 IS NULL) THEN
6308          rti.attribute11  := pol.attribute11;
6309       END IF;
6310 
6311       IF (rti.attribute12 IS NULL) THEN
6312          rti.attribute12  := pol.attribute12;
6313       END IF;
6314 
6315       IF (rti.attribute13 IS NULL) THEN
6316          rti.attribute13  := pol.attribute13;
6317       END IF;
6318 
6319       IF (rti.attribute14 IS NULL) THEN
6320          rti.attribute14  := pol.attribute14;
6321       END IF;
6322 
6323       IF (rti.attribute15 IS NULL) THEN
6324          rti.attribute15  := pol.attribute15;
6325       END IF;
6326 
6327       IF (rti.attribute2 IS NULL) THEN
6328          rti.attribute2  := pol.attribute2;
6329       END IF;
6330 
6331       IF (rti.attribute3 IS NULL) THEN
6332          rti.attribute3  := pol.attribute3;
6333       END IF;
6334 
6335       IF (rti.attribute4 IS NULL) THEN
6336          rti.attribute4  := pol.attribute4;
6337       END IF;
6338 
6339       IF (rti.attribute5 IS NULL) THEN
6340          rti.attribute5  := pol.attribute5;
6341       END IF;
6342 
6343       IF (rti.attribute6 IS NULL) THEN
6344          rti.attribute6  := pol.attribute6;
6345       END IF;
6346 
6347       IF (rti.attribute7 IS NULL) THEN
6348          rti.attribute7  := pol.attribute7;
6349       END IF;
6350 
6351       IF (rti.attribute8 IS NULL) THEN
6352          rti.attribute8  := pol.attribute8;
6353       END IF;
6354 
6355       IF (rti.attribute9 IS NULL) THEN
6356          rti.attribute9  := pol.attribute9;
6357       END IF;
6358 
6359       IF (rti.attribute_category IS NULL) THEN
6360          rti.attribute_category  := pol.attribute_category;
6361       END IF; */
6362 
6363       /* End Bug 6487455 */
6364 
6365       IF (rti.category_id IS NULL) THEN
6366          rti.category_id  := pol.category_id;
6367       END IF;
6368 
6369       IF (rti.government_context IS NULL) THEN
6370          rti.government_context  := pol.government_context;
6371       END IF;
6372 
6373       /* Complex Work. */
6374       IF (rti.po_unit_price IS NULL) THEN
6375          rti.po_unit_price  := pol.unit_price;
6376       END IF;
6377 
6378       IF (rti.qc_grade IS NULL) THEN
6379          rti.qc_grade  := pol.qc_grade;
6380       END IF;
6381 
6382       IF (rti.secondary_unit_of_measure IS NULL) THEN
6383          rti.secondary_unit_of_measure  := pol.secondary_unit_of_measure;
6384       END IF;
6385 
6386       IF (rti.source_doc_unit_of_measure IS NULL) THEN
6387          rti.source_doc_unit_of_measure  := pol.unit_meas_lookup_code;
6388       END IF;
6389 
6390       IF (rti.tax_name IS NULL) THEN
6391          rti.tax_name  := pol.tax_name;
6392       END IF;
6393 
6394       IF (rti.unit_of_measure IS NULL) THEN
6395          rti.unit_of_measure  := pol.unit_meas_lookup_code;
6396       END IF;
6397 
6398       IF (rti.ussgl_transaction_code IS NULL) THEN
6399          rti.ussgl_transaction_code  := pol.ussgl_transaction_code;
6400       END IF;
6401 
6402       --Quantity
6403       /* Complex Work.
6404        * User should enter quantity. Should not be defaulted.
6405 
6406       IF (rti.quantity IS NULL) THEN
6407          rti.quantity  := pol.quantity;
6408 
6409          IF (rti.secondary_quantity IS NULL) THEN
6410             rti.secondary_quantity  := pol.secondary_quantity;
6411          END IF;
6412       END IF;
6413       */
6414       asn_debug.put_line('Leave default_rti_from_pol');
6415    END default_rti_from_pol;
6416 
6417    PROCEDURE default_rti_from_poh(
6418       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6419    ) IS
6420       poh po_headers_all%ROWTYPE;
6421    BEGIN
6422       IF (rti.po_header_id IS NOT NULL) THEN
6423          poh  := rcv_table_functions.get_poh_row_from_id(rti.po_header_id);
6424       END IF;
6425 
6426       IF (poh.po_header_id IS NULL) THEN
6427          RETURN;
6428       END IF;
6429 
6430       IF (rti.document_num IS NULL) THEN
6431          rti.document_num  := poh.segment1;
6432       ELSIF(rti.document_num <> poh.segment1) THEN
6433          invalid_match_value(rti.document_num,
6434                              poh.segment1,
6435                              'DOCUMENT_NUM'
6436                             );
6437       END IF;
6438 
6439       IF (rti.org_id IS NULL) THEN
6440          rti.org_id  := poh.org_id;
6441       ELSIF(rti.org_id <> poh.org_id) THEN
6442          invalid_match_value(rti.org_id,
6443                              poh.org_id,
6444                              'ORG_ID'
6445                             );
6446       END IF;
6447 
6448       IF (rti.po_header_id IS NULL) THEN
6449          rti.po_header_id  := poh.po_header_id;
6450       ELSIF(rti.po_header_id <> poh.po_header_id) THEN
6451          invalid_match_value(rti.po_header_id,
6452                              poh.po_header_id,
6453                              'PO_HEADER_ID'
6454                             );
6455       END IF;
6456 
6457       /* Start of Bug 6487455 */
6458 
6459       /* IF (rti.attribute1 IS NULL) THEN
6460          rti.attribute1  := poh.attribute1;
6461       END IF;
6462 
6463       IF (rti.attribute10 IS NULL) THEN
6464          rti.attribute10  := poh.attribute10;
6465       END IF;
6466 
6467       IF (rti.attribute11 IS NULL) THEN
6468          rti.attribute11  := poh.attribute11;
6469       END IF;
6470 
6471       IF (rti.attribute12 IS NULL) THEN
6472          rti.attribute12  := poh.attribute12;
6473       END IF;
6474 
6475       IF (rti.attribute13 IS NULL) THEN
6476          rti.attribute13  := poh.attribute13;
6477       END IF;
6478 
6479       IF (rti.attribute14 IS NULL) THEN
6480          rti.attribute14  := poh.attribute14;
6481       END IF;
6482 
6483       IF (rti.attribute15 IS NULL) THEN
6484          rti.attribute15  := poh.attribute15;
6485       END IF;
6486 
6487       IF (rti.attribute2 IS NULL) THEN
6488          rti.attribute2  := poh.attribute2;
6489       END IF;
6490 
6491       IF (rti.attribute3 IS NULL) THEN
6492          rti.attribute3  := poh.attribute3;
6493       END IF;
6494 
6495       IF (rti.attribute4 IS NULL) THEN
6496          rti.attribute4  := poh.attribute4;
6497       END IF;
6498 
6499       IF (rti.attribute5 IS NULL) THEN
6500          rti.attribute5  := poh.attribute5;
6501       END IF;
6502 
6503       IF (rti.attribute6 IS NULL) THEN
6504          rti.attribute6  := poh.attribute6;
6505       END IF;
6506 
6507       IF (rti.attribute7 IS NULL) THEN
6508          rti.attribute7  := poh.attribute7;
6509       END IF;
6510 
6511       IF (rti.attribute8 IS NULL) THEN
6512          rti.attribute8  := poh.attribute8;
6513       END IF;
6514 
6515       IF (rti.attribute9 IS NULL) THEN
6516          rti.attribute9  := poh.attribute9;
6517       END IF;
6518 
6519       IF (rti.attribute_category IS NULL) THEN
6520          rti.attribute_category  := poh.attribute_category;
6521       END IF; */
6522 
6523       /* End Bug 6487455 */
6524 
6525       IF (rti.currency_code IS NULL) THEN
6526          rti.currency_code  := poh.currency_code;
6527       END IF;
6528 
6529       IF (rti.currency_conversion_date IS NULL) THEN
6530          rti.currency_conversion_date  := poh.rate_date;
6531       END IF;
6532 
6533       IF (rti.currency_conversion_rate IS NULL) THEN
6534          rti.currency_conversion_rate  := poh.rate;
6535       END IF;
6536 
6537       IF (rti.currency_conversion_type IS NULL) THEN
6538          rti.currency_conversion_type  := poh.rate_type;
6539       END IF;
6540 
6541       IF (rti.employee_id IS NULL) THEN
6542          rti.employee_id  := poh.agent_id;
6543       END IF;
6544 
6545       IF (rti.government_context IS NULL) THEN
6546          rti.government_context  := poh.government_context;
6547       END IF;
6548 
6549       IF (rti.interface_source_code IS NULL) THEN
6550          rti.interface_source_code  := poh.interface_source_code;
6551       END IF;
6552 
6553       IF (rti.ship_to_location_id IS NULL) THEN
6554          rti.ship_to_location_id  := poh.ship_to_location_id;
6555       END IF;
6556 
6557       IF (rti.ussgl_transaction_code IS NULL) THEN
6558          rti.ussgl_transaction_code  := poh.ussgl_transaction_code;
6559       END IF;
6560 
6561       IF (rti.vendor_id IS NULL) THEN
6562          rti.vendor_id  := poh.vendor_id;
6563       END IF;
6564       -- Bug 6520985
6565       -- IF (rti.vendor_site_id IS NULL) THEN
6566          rti.vendor_site_id  := poh.vendor_site_id;
6567       -- END IF;
6568    END default_rti_from_poh;
6569 
6570    PROCEDURE default_rti_from_oel(
6571       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6572    ) IS
6573       oel oe_order_lines_all%ROWTYPE;
6574    BEGIN
6575       IF (rti.oe_order_line_id IS NOT NULL) THEN
6576          oel  := rcv_table_functions.get_oel_row_from_id(rti.oe_order_line_id);
6577       END IF;
6578 
6579       IF (oel.line_id IS NULL) THEN
6580          RETURN;
6581       END IF;
6582 /** Bug:5502427
6583   *  default_rti_from_oel() procedure will get invoked only for RMAs
6584   *  as per the fix done through this bug. So no need to handle
6585   *  the Internal Order case in this procedure
6586   */
6587 --      IF (rti.source_document_code = 'RMA') THEN
6588          IF (rti.to_organization_id IS NULL) THEN
6589             rti.to_organization_id  := oel.ship_from_org_id;
6590          ELSIF(rti.to_organization_id <> oel.ship_from_org_id) THEN
6591             invalid_match_value(rti.to_organization_id,
6592                                 oel.ship_from_org_id,
6593                                 'TO_ORGANIZATION_ID'
6594                                );
6595          END IF;
6596       /* WDK - This appears to cause a problem
6597       IF (rti.from_organization_id IS NULL) THEN
6598          rti.from_organization_id  := oel.ship_to_org_id;
6599       END IF;
6600       */
6601 /*      ELSE --RTI.SOURCE_CODE_CODE = 'REQ'
6602          IF (rti.from_organization_id IS NULL) THEN
6603             rti.from_organization_id  := oel.ship_from_org_id;
6604          ELSIF(rti.from_organization_id <> oel.ship_from_org_id) THEN
6605             invalid_match_value(rti.from_organization_id,
6606                                 oel.ship_from_org_id,
6607                                 'FROM_ORGANIZATION_ID'
6608                                );
6609          END IF;
6610 
6611          IF (rti.to_organization_id IS NULL) THEN
6612             rti.to_organization_id  := oel.ship_to_org_id;
6613          END IF;
6614       END IF;*/
6615 
6616       IF (rti.substitute_unordered_code IS NULL) THEN
6617          IF (rti.item_id IS NULL) THEN
6618             rti.item_id  := oel.inventory_item_id;
6619          ELSIF(rti.item_id <> oel.inventory_item_id) THEN
6620             invalid_match_value(rti.item_id,
6621                                 oel.inventory_item_id,
6622                                 'ITEM_ID'
6623                                );
6624          END IF;
6625       END IF;
6626 
6627       IF (rti.oe_order_header_id IS NULL) THEN
6628          rti.oe_order_header_id  := oel.header_id;
6629       ELSIF(rti.oe_order_header_id <> oel.header_id) THEN
6630          invalid_match_value(rti.oe_order_header_id,
6631                              oel.header_id,
6632                              'OE_ORDER_HEADER_ID'
6633                             );
6634       END IF;
6635 
6636       IF (rti.oe_order_line_id IS NULL) THEN
6637          rti.oe_order_line_id  := oel.line_id;
6638       ELSIF(rti.oe_order_line_id <> oel.line_id) THEN
6639          invalid_match_value(rti.oe_order_line_id,
6640                              oel.line_id,
6641                              'OE_ORDER_LINE_ID'
6642                             );
6643       END IF;
6644 
6645       IF (rti.oe_order_line_num IS NULL) THEN
6646          rti.oe_order_line_num  := oel.line_number;
6647       ELSIF(rti.oe_order_line_num <> oel.line_number) THEN
6648          invalid_match_value(rti.oe_order_line_num,
6649                              oel.line_number,
6650                              'OE_ORDER_LINE_NUM'
6651                             );
6652       END IF;
6653 
6654       IF (rti.document_line_num IS NULL) THEN
6655          rti.document_line_num  := oel.line_number;
6656       ELSIF(rti.document_line_num <> oel.line_number) THEN
6657          invalid_match_value(rti.document_line_num,
6658                              oel.line_number,
6659                              'DOCUMENT_LINE_NUM'
6660                             );
6661       END IF;
6662 
6663       IF (rti.org_id IS NULL) THEN
6664          rti.org_id  := oel.org_id;
6665       ELSIF(rti.org_id <> oel.org_id) THEN
6666          invalid_match_value(rti.org_id,
6667                              oel.org_id,
6668                              'ORG_ID'
6669                             );
6670       END IF;
6671 
6672       IF (rti.project_id IS NULL) THEN
6673          rti.project_id  := oel.project_id;
6674       ELSIF(rti.project_id <> oel.project_id) THEN
6675          invalid_match_value(rti.project_id,
6676                              oel.project_id,
6677                              'PROJECT_ID'
6678                             );
6679       END IF;
6680 
6681       IF (rti.task_id IS NULL) THEN
6682          rti.task_id  := oel.task_id;
6683       ELSIF(rti.task_id <> oel.task_id) THEN
6684          invalid_match_value(rti.task_id,
6685                              oel.task_id,
6686                              'TASK_ID'
6687                             );
6688       END IF;
6689 
6690       IF (rti.attribute1 IS NULL) THEN
6691          rti.attribute1  := oel.return_attribute1;
6692       END IF;
6693 
6694       IF (rti.attribute10 IS NULL) THEN
6695          rti.attribute10  := oel.return_attribute10;
6696       END IF;
6697 
6698       IF (rti.attribute11 IS NULL) THEN
6699          rti.attribute11  := oel.return_attribute11;
6700       END IF;
6701 
6702       IF (rti.attribute12 IS NULL) THEN
6703          rti.attribute12  := oel.return_attribute12;
6704       END IF;
6705 
6706       IF (rti.attribute13 IS NULL) THEN
6707          rti.attribute13  := oel.return_attribute13;
6708       END IF;
6709 
6710       IF (rti.attribute14 IS NULL) THEN
6711          rti.attribute14  := oel.return_attribute14;
6712       END IF;
6713 
6714       IF (rti.attribute15 IS NULL) THEN
6715          rti.attribute15  := oel.return_attribute15;
6716       END IF;
6717 
6718       IF (rti.attribute2 IS NULL) THEN
6719          rti.attribute2  := oel.return_attribute2;
6720       END IF;
6721 
6722       IF (rti.attribute3 IS NULL) THEN
6723          rti.attribute3  := oel.return_attribute3;
6724       END IF;
6725 
6726       IF (rti.attribute4 IS NULL) THEN
6727          rti.attribute4  := oel.return_attribute4;
6728       END IF;
6729 
6730       IF (rti.attribute5 IS NULL) THEN
6731          rti.attribute5  := oel.return_attribute5;
6732       END IF;
6733 
6734       IF (rti.attribute6 IS NULL) THEN
6735          rti.attribute6  := oel.return_attribute6;
6736       END IF;
6737 
6738       IF (rti.attribute7 IS NULL) THEN
6739          rti.attribute7  := oel.return_attribute7;
6740       END IF;
6741 
6742       IF (rti.attribute8 IS NULL) THEN
6743          rti.attribute8  := oel.return_attribute8;
6744       END IF;
6745 
6746       IF (rti.attribute9 IS NULL) THEN
6747          rti.attribute9  := oel.return_attribute9;
6748       END IF;
6749 
6750       IF (rti.attribute_category IS NULL) THEN
6751          rti.attribute_category  := oel.return_context;
6752       END IF;
6753 
6754       IF (rti.customer_id IS NULL) THEN
6755          rti.customer_id  := oel.end_customer_id;
6756       END IF;
6757 
6758       IF (rti.customer_item_num IS NULL) THEN
6759          rti.customer_item_num  := oel.end_item_unit_number;
6760       END IF;
6761 
6762       IF (rti.customer_site_id IS NULL) THEN
6763          rti.customer_site_id  := oel.end_customer_site_use_id;
6764       END IF;
6765 
6766       IF (rti.freight_carrier_code IS NULL) THEN
6767          rti.freight_carrier_code  := oel.freight_carrier_code;
6768       END IF;
6769 
6770       IF (rti.item_num IS NULL) THEN
6771          rti.item_num  := oel.ordered_item;
6772       END IF;
6773 
6774       IF (rti.item_revision IS NULL) THEN
6775          rti.item_revision  := oel.item_revision;
6776       END IF;
6777 
6778       IF (rti.po_unit_price IS NULL) THEN
6779          rti.po_unit_price  := oel.unit_selling_price;
6780       END IF;
6781 
6782       IF (rti.secondary_uom_code IS NULL) THEN
6783          rti.secondary_uom_code  := NVL(oel.shipping_quantity_uom2, oel.ordered_quantity_uom2);
6784       END IF;
6785 
6786 	/* Bug 5584736.
6787 	 * We have a detailed defaulting routine for defaulting
6788 	 * subinventory and locator later. Commenting out this code
6789 	 * here since this is creating problems later.
6790       IF (rti.subinventory IS NULL) THEN
6791          rti.subinventory  := oel.subinventory;
6792       END IF;
6793 	*/
6794 
6795       IF (rti.tax_amount IS NULL) THEN
6796          rti.tax_amount  := oel.tax_value;
6797       END IF;
6798 
6799       IF (rti.tax_name IS NULL) THEN
6800          rti.tax_name  := oel.tax_code;
6801       END IF;
6802 
6803       IF (rti.uom_code IS NULL) THEN
6804          rti.uom_code  := NVL(oel.shipping_quantity_uom, oel.order_quantity_uom);
6805       END IF;
6806 
6807     /* Bug 7196654
6808     * Made the item_description to be defaulted  from
6809     * oel.user_item_description so that transaction should not fail
6810     * when invalid item description is entered*/
6811 
6812       rti.item_description := oel.user_item_description;
6813 
6814     /* end Bug 7196654 */
6815 
6816       --Quantity
6817 	/* Bug 5299177
6818 	 * We expect customers to give the quantity. We do not default but error out
6819 	 * if it is not given. Commenting out the foll code.
6820       IF (rti.quantity IS NULL) THEN
6821          rti.quantity  := NVL(oel.shipped_quantity, oel.ordered_quantity);
6822 
6823          IF (rti.secondary_quantity IS NULL) THEN
6824             rti.secondary_quantity  := NVL(oel.shipped_quantity2, oel.ordered_quantity2);
6825          END IF;
6826       END IF;
6827 	* 5299177 */
6828    END default_rti_from_oel;
6829 
6830    PROCEDURE default_rti_from_oeh(
6831       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6832    ) IS
6833       oeh oe_order_headers_all%ROWTYPE;
6834    BEGIN
6835       IF (rti.oe_order_header_id IS NOT NULL) THEN
6836          oeh  := rcv_table_functions.get_oeh_row_from_id(rti.oe_order_header_id);
6837       END IF;
6838 
6839       IF (oeh.header_id IS NULL) THEN
6840          RETURN;
6841       END IF;
6842 
6843       IF (rti.oe_order_num IS NULL) THEN
6844          rti.oe_order_num  := oeh.order_number;
6845       ELSIF(rti.oe_order_num <> oeh.order_number) THEN
6846          invalid_match_value(rti.oe_order_num,
6847                              oeh.order_number,
6848                              'OE_ORDER_NUM'
6849                             );
6850       END IF;
6851 
6852       IF (rti.document_num IS NULL) THEN
6853          rti.document_num  := oeh.order_number;
6854       ELSIF(rti.document_num <> oeh.order_number) THEN
6855          invalid_match_value(rti.document_num,
6856                              oeh.order_number,
6857                              'DOCUMENT_NUM'
6858                             );
6859       END IF;
6860 
6861       IF (rti.org_id IS NULL) THEN
6862          rti.org_id  := oeh.org_id;
6863       ELSIF(rti.org_id <> oeh.org_id) THEN
6864          invalid_match_value(rti.org_id,
6865                              oeh.org_id,
6866                              'ORG_ID'
6867                             );
6868       END IF;
6869 /** Bug:5502427
6870   *  default_rti_from_oeh() procedure will get invoked only for RMAs
6871   *  as per the fix done through this bug. So no need to handle
6872   *  the Internal Order case in this procedure
6873   */
6874 --      IF (rti.source_document_code = 'RMA') THEN
6875          IF (rti.to_organization_id IS NULL) THEN
6876             rti.to_organization_id  := oeh.ship_from_org_id;
6877          END IF;
6878       /* WDK - This appears to cause a problem
6879       IF (rti.from_organization_id IS NULL) THEN
6880          rti.from_organization_id  := oeh.ship_to_org_id;
6881       END IF;
6882       */
6883 /*      ELSE --RTI.SOURCE_CODE_CODE = 'REQ'
6884          IF (rti.from_organization_id IS NULL) THEN
6885             rti.from_organization_id  := oeh.ship_from_org_id;
6886          END IF;
6887 
6888          IF (rti.to_organization_id IS NULL) THEN
6889             rti.to_organization_id  := oeh.ship_to_org_id;
6890          END IF;
6891       END IF;*/
6892 
6893       IF (rti.currency_conversion_date IS NULL) THEN
6894          rti.currency_conversion_date  := oeh.conversion_rate_date;
6895       END IF;
6896 
6897       IF (rti.currency_conversion_rate IS NULL) THEN
6898          rti.currency_conversion_rate  := oeh.conversion_rate;
6899       END IF;
6900 
6901       IF (rti.currency_conversion_type IS NULL) THEN
6902          rti.currency_conversion_type  := oeh.conversion_type_code;
6903       END IF;
6904 
6905       IF (rti.customer_id IS NULL) THEN
6906          rti.customer_id  := oeh.end_customer_id;
6907       END IF;
6908 
6909       IF (rti.customer_site_id IS NULL) THEN
6910          rti.customer_site_id  := oeh.end_customer_site_use_id;
6911       END IF;
6912 
6913       IF (rti.freight_carrier_code IS NULL) THEN
6914          rti.freight_carrier_code  := oeh.freight_carrier_code;
6915       END IF;
6916 
6917       IF (rti.oe_order_header_id IS NULL) THEN
6918          rti.oe_order_header_id  := oeh.header_id;
6919       END IF;
6920 
6921       IF (rti.oe_order_num IS NULL) THEN
6922          rti.oe_order_num  := oeh.order_number;
6923       END IF;
6924    END default_rti_from_oeh;
6925 
6926 /************************************/
6927 /* SECTION 5: default row framework */
6928 /************************************/
6929    PROCEDURE create_rhi_from_rti(
6930       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
6931    ) IS
6932       x_receipt_num rcv_headers_interface.receipt_num%TYPE;
6933    BEGIN
6934       IF (rti.header_interface_id IS NOT NULL) THEN
6935          RETURN;
6936       END IF;
6937 
6938       SELECT rcv_headers_interface_s.NEXTVAL
6939       INTO   rti.header_interface_id
6940       FROM   DUAL;
6941 
6942       IF (rti.expected_receipt_date IS NULL) THEN
6943          rti.expected_receipt_date  := SYSDATE;
6944       END IF;
6945 
6946       x_receipt_num  := rcv_table_functions.get_rsh_row_from_id(rti.shipment_header_id).receipt_num;
6947 
6948       INSERT INTO rcv_headers_interface
6949                   (created_by,
6950                    creation_date,
6951                    last_updated_by,
6952                    last_update_date,
6953                    last_update_login,
6954                    attribute_category,
6955                    attribute1,
6956                    attribute10,
6957                    attribute11,
6958                    attribute12,
6959                    attribute13,
6960                    attribute14,
6961                    attribute15,
6962                    attribute2,
6963                    attribute3,
6964                    attribute4,
6965                    attribute5,
6966                    attribute6,
6967                    attribute7,
6968                    attribute8,
6969                    attribute9,
6970                    auto_transact_code,
6971                    bill_of_lading,
6972                    comments,
6973                    currency_code,
6974                    conversion_rate_date,
6975                    conversion_rate,
6976                    conversion_rate_type,
6977                    customer_account_number,
6978                    customer_id,
6979                    customer_party_name,
6980                    customer_site_id,
6981                    employee_id,
6982                    expected_receipt_date,
6983                    freight_carrier_code,
6984                    from_organization_code,
6985                    from_organization_id,
6986                    GROUP_ID,
6987                    header_interface_id,
6988                    location_code,
6989                    location_id,
6990                    num_of_containers,
6991                    packing_slip,
6992                    processing_request_id,
6993                    processing_status_code,
6994                    receipt_source_code,
6995                    receipt_header_id,
6996                    receipt_num,
6997                    shipment_num,
6998                    shipped_date,
6999                    tax_amount,
7000                    tax_name,
7001                    ship_to_organization_code,
7002                    ship_to_organization_id,
7003                    org_id,
7004                    operating_unit,
7005                    transaction_type,
7006                    test_flag,
7007                    usggl_transaction_code,
7008                    validation_flag,
7009                    vendor_id,
7010                    vendor_name,
7011                    vendor_num,
7012                    vendor_site_code,
7013                    vendor_site_id,
7014                    waybill_airbill_num
7015                   )
7016            VALUES (rti.created_by,
7017                    rti.creation_date,
7018                    rti.last_updated_by,
7019                    rti.last_update_date,
7020                    rti.last_update_login,
7021                    rti.attribute_category,
7022                    rti.attribute1,
7023                    rti.attribute10,
7024                    rti.attribute11,
7025                    rti.attribute12,
7026                    rti.attribute13,
7027                    rti.attribute14,
7028                    rti.attribute15,
7029                    rti.attribute2,
7030                    rti.attribute3,
7031                    rti.attribute4,
7032                    rti.attribute5,
7033                    rti.attribute6,
7034                    rti.attribute7,
7035                    rti.attribute8,
7036                    rti.attribute9,
7037                    rti.auto_transact_code,
7038                    rti.bill_of_lading,
7039                    rti.comments,
7040                    rti.currency_code,
7041                    rti.currency_conversion_date,
7042                    rti.currency_conversion_rate,
7043                    rti.currency_conversion_type,
7044                    rti.customer_account_number,
7045                    rti.customer_id,
7046                    rti.customer_party_name,
7047                    rti.customer_site_id,
7048                    rti.employee_id,
7049                    rti.expected_receipt_date,
7050                    rti.freight_carrier_code,
7051                    rti.from_organization_code,
7052                    rti.from_organization_id,
7053                    rti.GROUP_ID,
7054                    rti.header_interface_id,
7055                    rti.location_code,
7056                    rti.location_id,
7057                    rti.num_of_containers,
7058                    rti.packing_slip,
7059                    rti.processing_request_id,
7060                    rti.processing_status_code,
7061                    rti.receipt_source_code,
7062                    rti.shipment_header_id,
7063                    x_receipt_num,
7064                    rti.shipment_num,
7065                    rti.shipped_date,
7066                    rti.tax_amount,
7067                    rti.tax_name,
7068                    rti.to_organization_code,
7069                    rti.to_organization_id,
7070                    rti.org_id,
7071                    rti.operating_unit,
7072                    'NEW',
7073                    'Y',
7074                    rti.ussgl_transaction_code,
7075                    rti.validation_flag,
7076                    rti.vendor_id,
7077                    rti.vendor_name,
7078                    rti.vendor_num,
7079                    rti.vendor_site_code,
7080                    rti.vendor_site_id,
7081                    rti.waybill_airbill_num
7082                   );
7083    EXCEPTION
7084       WHEN OTHERS THEN
7085          NULL;
7086    END create_rhi_from_rti;
7087 
7088    /*Bug: 4735484
7089 	Defaulting the use_mtl_lot and use_mtl_serial column using
7090 	lot control code and serial control code of the item in the
7091 	given inventory org.
7092    */
7093    PROCEDURE default_lot_serial_control(
7094       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
7095    )IS
7096    BEGIN
7097    /*
7098     NOTE: For one time item the item_id would be null and hence there is
7099     no need to populate the lot and serial control code. This case is
7100     taken care by the help of follwoing if condition.
7101    */
7102    IF (rti.item_id IS NOT NULL) THEN
7103            asn_debug.put_line ('Defaulting use_mtl_lot and use_mtl_serial');
7104            SELECT   lot_control_code,
7105                     serial_number_control_code
7106             INTO   rti.use_mtl_lot,
7107                    rti.use_mtl_serial
7108             FROM   mtl_system_items
7109             WHERE  mtl_system_items.inventory_item_id = rti.item_id
7110             AND    mtl_system_items.organization_id = rti.to_organization_id;
7111    END IF;
7112    EXCEPTION
7113    WHEN OTHERS THEN
7114       asn_debug.put_line ('Unable to default use_mtl_lot and use_mtl_serial');
7115       NULL;
7116    END default_lot_serial_control;
7117 
7118    PROCEDURE default_header(
7119       rhi IN OUT NOCOPY rcv_headers_interface%ROWTYPE
7120    ) IS
7121    BEGIN
7122       g_curr_table                := 'RCV_HEADERS_INTERFACE';
7123       g_curr_group_id             := rhi.GROUP_ID;
7124       g_curr_header_id            := rhi.header_interface_id;
7125       g_curr_transaction_id       := rhi.header_interface_id;
7126       rhi.processing_status_code  := 'PENDING';
7127       rhi.validation_flag         := 'Y';
7128       default_rhi_from_code(rhi);
7129       default_rhi_from_rsh(rhi);
7130       check_rhi_consistency(rhi);
7131 
7132       IF (rhi.transaction_type IS NULL) THEN
7133          rhi.transaction_type  := 'NEW';
7134       END IF;
7135 
7136       IF (rhi.expected_receipt_date IS NULL) THEN
7137          rhi.expected_receipt_date  := SYSDATE;
7138       END IF;
7139    EXCEPTION
7140       WHEN rcv_table_functions.e_fatal_error THEN
7141          rcv_error_pkg.log_interface_error(g_curr_table,
7142                                            rcv_table_functions.g_error_column,
7143                                            g_curr_group_id,
7144                                            g_curr_header_id,
7145                                            g_curr_transaction_id
7146                                           );
7147       WHEN rcv_error_pkg.e_fatal_error THEN
7148          RAISE rcv_error_pkg.e_fatal_error;
7149       WHEN OTHERS THEN
7150          rcv_error_pkg.set_sql_error_message('default_header', '000');
7151          rcv_error_pkg.log_interface_error('INTERFACE_TRANSACTION_ID');
7152    END default_header;
7153 
7154    PROCEDURE default_transaction(
7155       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
7156    ) IS
7157       x_dummy_mkr          BOOLEAN;
7158       x_temp_subinv        rcv_transactions_interface.subinventory%TYPE;
7159       x_temp_primary_uom   rcv_transactions_interface.primary_unit_of_measure%TYPE;
7160       x_subinv_starts_null BOOLEAN;
7161    BEGIN
7162       elapsed_time('BEGIN default_transaction');
7163       asn_debug.put_line('rti.interface_transaction_id = ' || rti.interface_transaction_id);
7164       g_curr_table                 := 'RCV_HEADERS_INTERFACE';
7165       g_curr_group_id              := rti.GROUP_ID;
7166       g_curr_header_id             := rti.header_interface_id;
7167       g_curr_transaction_id        := rti.interface_transaction_id;
7168       g_subtract_pll_qty_rcv       := FALSE;
7169       x_subinv_starts_null         := FALSE;
7170 	/* Bug 5584736.
7171 	 * We have a detailed defaulting routine for defaulting
7172 	 * subinventory and locator later. Commenting out this code
7173 	 * here since this is creating problems later.
7174 
7175       IF (    rti.subinventory IS NULL
7176           AND rti.LOCATOR IS NULL
7177           AND rti.locator_id IS NULL) THEN
7178          x_subinv_starts_null  := TRUE;
7179       END IF;
7180 
7181       IF (SUBSTR(rti.transaction_type,
7182                  1,
7183                  6
7184                 ) = 'RETURN') THEN
7185          --The following code reverses the roles of the subinventories for
7186          --RETURNs because it was easier to keep a consistent model this way
7187          --The matching reversal is found at the end and in the error section
7188          x_temp_subinv          := rti.subinventory;
7189          rti.subinventory       := rti.from_subinventory;
7190          rti.from_subinventory  := x_temp_subinv;
7191       END IF;
7192 	*/
7193 
7194       default_rti_from_code(rti);
7195       elapsed_time('default_rti_from_code');
7196       default_rti_from_rhi(rti);
7197       elapsed_time('default_rti_from_rhi');
7198 
7199       IF (    rti.parent_interface_txn_id IS NOT NULL
7200           AND rti.parent_transaction_id IS NOT NULL) THEN
7201          rcv_error_pkg.set_error_message('RCV_CANNOT_HAVE_2_PARENT');
7202          rcv_error_pkg.log_interface_error('PARENT_TRANSACTION_ID');
7203       END IF;
7204 
7205       default_rti_from_rti(rti);
7206       elapsed_time('default_rti_from_rti');
7207       default_rti_from_rt(rti);
7208       elapsed_time('default_rti_from_rt');
7209       rti.processing_status_code   := 'PENDING';
7210       rti.transaction_status_code  := 'PENDING';
7211       rti.validation_flag          := 'Y';
7212       rti.order_transaction_id     := rti.interface_transaction_id;
7213 
7214       IF (rti.transaction_type IS NULL) THEN
7215          rti.transaction_type  := 'RECEIVE';
7216       END IF;
7217 
7218       IF (rti.transaction_date IS NULL) THEN
7219          rti.transaction_date  := SYSDATE;
7220       END IF;
7221 
7222       IF (rti.interface_source_code IS NULL) THEN
7223          rti.interface_source_code  := 'RCV';
7224       END IF;
7225 
7226       IF (    rti.receipt_source_code IS NULL
7227           AND rti.source_document_code IS NULL) THEN
7228          rti.receipt_source_code   := 'VENDOR';
7229          rti.source_document_code  := 'PO';
7230       END IF;
7231 
7232       IF (rti.receipt_source_code = 'VENDOR') THEN
7233          IF (rti.source_document_code IS NULL) THEN
7234             rti.source_document_code  := 'PO';
7235          ELSIF(rti.source_document_code <> 'PO') THEN
7236             invalid_match_value(rti.source_document_code,
7237                                 'PO',
7238                                 'SOURCE_DOCUMENT_CODE'
7239                                );
7240          END IF;
7241       ELSIF(rti.receipt_source_code = 'INVENTORY') THEN
7242          IF (rti.source_document_code IS NULL) THEN
7243             rti.source_document_code  := 'INVENTORY';
7244          ELSIF(rti.source_document_code <> 'INVENTORY') THEN
7245             invalid_match_value(rti.source_document_code,
7246                                 'INVENTORY',
7247                                 'SOURCE_DOCUMENT_CODE'
7248                                );
7249          END IF;
7250       ELSIF(rti.receipt_source_code = 'INTERNAL ORDER') THEN
7251          IF (rti.source_document_code IS NULL) THEN
7252             rti.source_document_code  := 'REQ';
7253          ELSIF(rti.source_document_code <> 'REQ') THEN
7254             invalid_match_value(rti.source_document_code,
7255                                 'REQ',
7256                                 'SOURCE_DOCUMENT_CODE'
7257                                );
7258          END IF;
7259       ELSIF(rti.receipt_source_code = 'CUSTOMER') THEN
7260          IF (rti.source_document_code IS NULL) THEN
7261             rti.source_document_code  := 'RMA';
7262          ELSIF(rti.source_document_code <> 'RMA') THEN
7263             invalid_match_value(rti.source_document_code,
7264                                 'RMA',
7265                                 'SOURCE_DOCUMENT_CODE'
7266                                );
7267          END IF;
7268       ELSIF(rti.receipt_source_code IS NOT NULL) THEN
7269          invalid_value(rti.receipt_source_code, 'RECEIPT_SOURCE_CODE');
7270       END IF;
7271 
7272       IF (rti.source_document_code = 'PO') THEN
7273          IF (rti.receipt_source_code IS NULL) THEN
7274             rti.receipt_source_code  := 'VENDOR';
7275          ELSIF(rti.receipt_source_code <> 'VENDOR') THEN
7276             invalid_match_value(rti.receipt_source_code,
7277                                 'VENDOR',
7278                                 'RECEIPT_SOURCE_CODE '
7279                                );
7280          END IF;
7281       ELSIF(rti.source_document_code = 'INVENTORY') THEN
7282          IF (rti.receipt_source_code IS NULL) THEN
7283             rti.receipt_source_code  := 'INVENTORY';
7284          ELSIF(rti.receipt_source_code <> 'INVENTORY') THEN
7285             invalid_match_value(rti.receipt_source_code,
7286                                 'INVENTORY',
7287                                 'RECEIPT_SOURCE_CODE '
7288                                );
7289          END IF;
7290       ELSIF(rti.source_document_code = 'REQ') THEN
7291          IF (rti.receipt_source_code IS NULL) THEN
7292             rti.receipt_source_code  := 'INTERNAL ORDER';
7293          ELSIF(rti.receipt_source_code <> 'INTERNAL ORDER') THEN
7294             invalid_match_value(rti.receipt_source_code,
7295                                 'INTERNAL ORDER',
7296                                 'RECEIPT_SOURCE_CODE '
7297                                );
7298          END IF;
7299       ELSIF(rti.source_document_code = 'RMA') THEN
7300          IF (rti.receipt_source_code IS NULL) THEN
7301             rti.receipt_source_code  := 'CUSTOMER';
7302          ELSIF(rti.receipt_source_code <> 'CUSTOMER') THEN
7303             invalid_match_value(rti.receipt_source_code,
7304                                 'CUSTOMER',
7305                                 'RECEIPT_SOURCE_CODE '
7306                                );
7307          END IF;
7308       ELSIF(rti.source_document_code IS NOT NULL) THEN
7309          invalid_value(rti.source_document_code, 'SOURCE_DOCUMENT_CODE');
7310       END IF;
7311 
7312       IF (rti.receipt_source_code IS NULL) THEN
7313          invalid_null_value('RECEIPT_SOURCE_CODE');
7314       END IF;
7315 
7316       IF (rti.source_document_code IS NULL) THEN
7317          invalid_null_value('SOURCE_DOCUMENT_CODE');
7318       END IF;
7319 
7320       IF (rti.source_document_code = 'INVENTORY') THEN
7321          IF (rti.document_num IS NULL) THEN
7322             rti.document_num  := rti.shipment_num;
7323          ELSIF(rti.document_num <> rti.shipment_num) THEN
7324             invalid_match_value(rti.document_num,
7325                                 rti.shipment_num,
7326                                 'DOCUMENT_NUM'
7327                                );
7328          END IF;
7329 
7330          IF (rti.shipment_num IS NULL) THEN
7331             rti.shipment_num  := rti.document_num;
7332          ELSIF(rti.shipment_num <> rti.document_num) THEN
7333             invalid_match_value(rti.shipment_num,
7334                                 rti.document_num,
7335                                 'SHIPMENT_NUM'
7336                                );
7337          END IF;
7338       END IF;
7339 
7340       elapsed_time('general defaulting');
7341 
7342       IF (    rti.shipment_header_id IS NULL
7343           AND rti.shipment_num IS NOT NULL) THEN
7344          rti.shipment_header_id  := rcv_table_functions.get_rsh_row_from_num(rti.shipment_num,
7345                                                                              rti.vendor_id,
7346                                                                              rti.vendor_site_id,
7347                                                                              rti.to_organization_id,
7348                                                                              rti.shipped_date,
7349                                                                              no_data_found_is_error    => FALSE
7350                                                                             ).shipment_header_id;
7351          elapsed_time('get_rsh_row_from_num');
7352       END IF;
7353 
7354       IF (    rti.shipment_line_id IS NULL
7355           AND rti.shipment_header_id IS NOT NULL
7356           AND rti.document_shipment_line_num IS NOT NULL) THEN
7357          rti.shipment_line_id  := rcv_table_functions.get_rsl_row_from_num(rti.document_line_num, rti.shipment_header_id).shipment_line_id;
7358          elapsed_time('get_rsl_row_from_num');
7359       END IF;
7360 
7361       IF (    rti.shipment_header_id IS NULL
7362           AND rti.shipment_line_id IS NOT NULL) THEN
7363          rti.shipment_header_id  := rcv_table_functions.get_rsl_row_from_id(rti.shipment_line_id).shipment_header_id;
7364       END IF;
7365 
7366       IF (rti.source_document_code = 'INVENTORY') THEN
7367          IF (rti.shipment_header_id IS NULL) THEN
7368             invalid_null_value('SHIPMENT_HEADER_ID');
7369          END IF;
7370 
7371          IF (rti.shipment_line_id IS NULL) THEN
7372             invalid_null_value('SHIPMENT_LINE_ID');
7373          END IF;
7374       END IF;
7375 
7376       default_rti_from_rsl(rti);
7377       elapsed_time('default_rti_from_rsl');
7378       default_rti_from_rsh(rti);
7379       elapsed_time('default_rti_from_rsh');
7380 
7381       --The following defaults up the chain if a lower level id is provided
7382       IF (    rti.po_line_location_id IS NULL
7383           AND rti.po_distribution_id IS NOT NULL) THEN
7384          rti.po_line_location_id  := rcv_table_functions.get_pod_row_from_id(rti.po_distribution_id).line_location_id;
7385       END IF;
7386 
7387       IF (    rti.po_line_id IS NULL
7388           AND rti.po_line_location_id IS NOT NULL) THEN
7389          rti.po_line_id  := rcv_table_functions.get_pll_row_from_id(rti.po_line_location_id).po_line_id;
7390       END IF;
7391 
7392 	/* Bug 5299177
7393 	 * We were populating the value of po_header_id to rti.po_line_location_id instead
7394 	 * of rti.po_header_id. Changed it.
7395 	*/
7396       IF (    rti.po_header_id IS NULL
7397           AND rti.po_line_id IS NOT NULL) THEN
7398          rti.po_header_id  := rcv_table_functions.get_pol_row_from_id(rti.po_line_id).po_header_id;
7399       END IF;
7400 
7401       IF (    rti.oe_order_header_id IS NULL
7402           AND rti.oe_order_line_id IS NOT NULL) THEN
7403          rti.oe_order_header_id  := rcv_table_functions.get_oel_row_from_id(rti.oe_order_line_id).header_id;
7404       END IF;
7405 
7406       IF (rti.transaction_type IN('UNORDERED', 'MATCH')) THEN
7407          rti.validation_flag  := 'N';
7408          RETURN; --End of the line. No backing docs to worry about
7409       END IF;
7410 
7411       IF (rti.source_document_code = 'PO') THEN
7412          IF (    rti.po_header_id IS NULL
7413              AND rti.document_num IS NOT NULL) THEN
7414             rti.po_header_id  := rcv_table_functions.get_poh_row_from_num(rti.document_num, rti.org_id).po_header_id;
7415          END IF;
7416 
7417          IF (rti.po_header_id IS NULL) THEN
7418             invalid_null_value('PO_HEADER_ID');
7419          END IF;
7420 
7421          IF (rti.po_line_id IS NULL) THEN
7422             rti.po_line_id  := rcv_table_functions.get_pol_row_from_num(rti.document_line_num,
7423                                                                         rti.po_header_id,
7424                                                                         rti.item_description,
7425                                                                         rti.vendor_item_num,
7426                                                                         rti.item_id
7427                                                                        ).po_line_id;
7428         --Bug 7591174 Added item_id in the above call to get the po line num.
7429          END IF;
7430 
7431          IF (rti.po_line_id IS NULL) THEN
7432             invalid_null_value('PO_LINE_ID');
7433          END IF;
7434 
7435          IF (rti.po_line_location_id IS NULL) THEN
7436             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;
7437          END IF;
7438 
7439          /* It is OK not to have a shipment yet, this will get decided in the preprocessor
7440          IF (rti.po_line_location_id IS NULL) THEN
7441             invalid_null_value('PO_LINE_LOCATION_ID');
7442          END IF;
7443          */
7444 
7445          IF (rti.po_distribution_id IS NULL) THEN
7446             rti.po_distribution_id  := rcv_table_functions.get_pod_row_from_num(rti.document_distribution_num, rti.po_line_location_id).po_distribution_id;
7447          END IF;
7448 
7449          /* It is OK not to have a distribution yet, this will get decided in the preprocessor
7450          IF (rti.po_distribution_id IS NULL) THEN
7451             invalid_null_value('PO_DISTRIBUTION_ID');
7452          END IF;
7453          */
7454 
7455          elapsed_time('po source doc defaulting');
7456 /** Bug:5502427
7457   * For Internal Order case, Sales Order contains the information pertaining
7458   * to the Source organisation. Receiving is done in the destination org.
7459   * So, we shouldn't default based on SO for the Internal Orders.
7460   * For Iternal Orders defaulting is handled in default_rti_from_rsh() and
7461   * default_rti_from_rsl() procedures.
7462   */
7463       ELSIF(rti.source_document_code = 'RMA') THEN
7464          IF (rti.document_num IS NULL) THEN
7465             rti.document_num  := rti.oe_order_num;
7466          ELSIF(rti.document_num <> rti.oe_order_num) THEN
7467             invalid_match_value(rti.document_num,
7468                                 rti.oe_order_num,
7469                                 'DOCUMENT_NUM'
7470                                );
7471          END IF;
7472 
7473          IF (rti.document_line_num IS NULL) THEN
7474             rti.document_line_num  := rti.oe_order_line_num;
7475          ELSIF(rti.document_line_num <> rti.oe_order_line_num) THEN
7476             invalid_match_value(rti.document_line_num,
7477                                 rti.oe_order_line_num,
7478                                 'DOCUMENT_LINE_NUM'
7479                                );
7480          END IF;
7481 
7482          IF (    rti.oe_order_header_id IS NULL
7483              AND rti.document_num IS NOT NULL) THEN
7484             /* WDK: NOTICE THE REVISION HACK FOR OE IS OVERLOADING PO_REVISION_NUM COLUMN */
7485             rti.oe_order_header_id  := rcv_table_functions.get_oeh_row_from_num(rti.document_num,
7486                                                                                 NULL, --WDK, not sure what should be here
7487                                                                                 rti.po_revision_num,
7488                                                                                 rti.org_id
7489                                                                                ).header_id;
7490          END IF;
7491 
7492          IF (rti.oe_order_header_id IS NULL) THEN
7493             invalid_null_value('OE_ORDER_HEADER_ID');
7494          END IF;
7495 
7496          IF (rti.oe_order_line_id IS NULL) THEN
7497             rti.oe_order_line_id  := rcv_table_functions.get_oel_row_from_num(rti.document_line_num, rti.oe_order_header_id).line_id;
7498          END IF;
7499 
7500 	/* Bug 5158457. It is ok not to have line number. It will be
7501          * decided in the preprocessor code.
7502          IF (rti.oe_order_line_id IS NULL) THEN
7503             invalid_null_value('OE_ORDER_LINE_ID');
7504          END IF;
7505 	*/
7506 
7507          elapsed_time('rma/req source doc defaulting');
7508       END IF;
7509 
7510       g_asn_type := nvl(rcv_table_functions.get_rsh_row_from_id(rti.shipment_header_id).asn_type,'@@@'); --Bug: 5598511
7511 
7512       default_rti_from_pod(rti);
7513       elapsed_time('default_rti_from_pod');
7514       default_rti_from_pll(rti);
7515       elapsed_time('default_rti_from_pll');
7516       default_rti_from_pol(rti);
7517       elapsed_time('default_rti_from_pol');
7518       default_rti_from_poh(rti);
7519       elapsed_time('default_rti_from_poh');
7520 
7521       IF (rti.uom_code IS NULL) THEN
7522          rti.uom_code  := get_uom_code_from_measure(rti.unit_of_measure,
7523                                                     'UNIT_OF_MEASURE',
7524                                                     x_dummy_mkr
7525                                                    );
7526       ELSIF(rti.uom_code <> get_uom_code_from_measure(rti.unit_of_measure,
7527                                                       'UNIT_OF_MEASURE',
7528                                                       x_dummy_mkr
7529                                                      )) THEN
7530          invalid_match_value(rti.uom_code,
7531                              get_uom_code_from_measure(rti.unit_of_measure,
7532                                                        'UNIT_OF_MEASURE',
7533                                                        x_dummy_mkr
7534                                                       ),
7535                              'UOM_CODE'
7536                             );
7537       END IF;
7538 
7539       IF (rti.secondary_uom_code IS NULL) THEN
7540          rti.secondary_uom_code  := get_uom_code_from_measure(rti.secondary_unit_of_measure,
7541                                                               'SECONDARY_UNIT_OF_MEASURE',
7542                                                               x_dummy_mkr
7543                                                              );
7544       ELSIF(rti.secondary_uom_code <> get_uom_code_from_measure(rti.secondary_unit_of_measure,
7545                                                                 'SECONDARY_UNIT_OF_MEASURE',
7546                                                                 x_dummy_mkr
7547                                                                )) THEN
7548          invalid_match_value(rti.secondary_uom_code,
7549                              get_uom_code_from_measure(rti.secondary_unit_of_measure,
7550                                                        'SECONDARY_UNIT_OF_MEASURE',
7551                                                        x_dummy_mkr
7552                                                       ),
7553                              'SECONDARY_UOM_CODE'
7554                             );
7555       END IF;
7556       /*Bug 5592084: Incase the PRIMARY_UNIT_OF_MEASURE has invalid value
7557       we error out the record.
7558       */
7559       x_temp_primary_uom := get_uom_code_from_measure(rti.primary_unit_of_measure,
7560                                                      'PRIMARY_UNIT_OF_MEASURE',
7561                                                       x_dummy_mkr
7562                                                      );
7563       default_rti_from_oel(rti);
7564       elapsed_time('default_rti_from_oel');
7565       default_rti_from_oeh(rti);
7566       elapsed_time('default_rti_from_oeh');
7567 
7568       IF (rti.unit_of_measure IS NULL) THEN
7569          rti.unit_of_measure  := get_uom_measure_from_code(rti.uom_code,
7570                                                            'UOM_CODE',
7571                                                            x_dummy_mkr
7572                                                           );
7573       ELSIF(rti.unit_of_measure <> get_uom_measure_from_code(rti.uom_code,
7574                                                              'UOM_CODE',
7575                                                              x_dummy_mkr
7576                                                             )) THEN
7577          invalid_match_value(rti.unit_of_measure,
7578                              get_uom_measure_from_code(rti.uom_code,
7579                                                        'UOM_CODE',
7580                                                        x_dummy_mkr
7581                                                       ),
7582                              'UNIT_OF_MEASURE'
7583                             );
7584       END IF;
7585 
7586       IF (rti.secondary_unit_of_measure IS NULL) THEN
7587          rti.secondary_unit_of_measure  := get_uom_measure_from_code(rti.secondary_uom_code,
7588                                                                      'SECONDARY_UOM_CODE',
7589                                                                      x_dummy_mkr
7590                                                                     );
7591       ELSIF(rti.secondary_unit_of_measure <> get_uom_measure_from_code(rti.secondary_uom_code,
7592                                                                        'SECONDARY_UOM_CODE',
7593                                                                        x_dummy_mkr
7594                                                                       )) THEN
7595          invalid_match_value(rti.secondary_unit_of_measure,
7596                              get_uom_measure_from_code(rti.secondary_uom_code,
7597                                                        'SECONDARY_UOM_CODE',
7598                                                        x_dummy_mkr
7599                                                       ),
7600                              'SECONDARY_UNIT_OF_MEASURE'
7601                             );
7602       END IF;
7603 
7604       check_rti_consistency(rti);
7605       elapsed_time('check_rti_consistency');
7606 
7607       IF (rti.destination_type_code IS NULL) THEN
7608          IF (rti.transaction_type = 'DELIVER') THEN
7609             rti.destination_type_code  := 'INVENTORY';
7610          ELSE
7611             rti.destination_type_code  := 'RECEIVING';
7612          END IF;
7613       END IF;
7614 
7615       IF (rti.auto_transact_code IS NULL) THEN
7616          IF (rti.routing_header_id = 3) THEN
7617             rti.auto_transact_code  := 'DELIVER';
7618          ELSE
7619             rti.auto_transact_code  := 'RECEIVE';
7620          END IF;
7621       END IF;
7622 
7623       IF (rti.transaction_type IN('RECEIVE', 'SHIP')) THEN
7624          create_rhi_from_rti(rti);
7625          elapsed_time('create_rhi_from_rti');
7626       END IF;
7627 
7628 	/* Bug 5584736.
7629 	 * We have a detailed defaulting routine for defaulting
7630 	 * subinventory and locator later. Commenting out this code
7631 	 * here since this is creating problems later.
7632       IF (SUBSTR(rti.transaction_type,
7633                  1,
7634                  6
7635                 ) = 'RETURN') THEN
7636          x_temp_subinv          := rti.subinventory;
7637          rti.subinventory       := rti.from_subinventory;
7638          rti.from_subinventory  := x_temp_subinv;
7639       END IF;
7640 
7641       IF (    rti.transaction_type = 'RECEIVE'
7642           AND rti.auto_transact_code <> 'DELIVER'
7643           AND x_subinv_starts_null = TRUE) THEN
7644          rti.subinventory  := NULL;
7645          rti.LOCATOR       := NULL;
7646          rti.locator_id    := NULL;
7647       END IF;
7648 	*/
7649 
7650       /*Bug: 4735484
7651 	Defaulting the use_mtl_lot and use_mtl_serial column using
7652 	lot control code and serial control code of the item in the
7653 	given inventory org.
7654       */
7655       default_lot_serial_control(rti);
7656 
7657       asn_debug.put_line('org_id = ' || rti.org_id);
7658       elapsed_time('END default_transaction');
7659    EXCEPTION
7660       WHEN rcv_table_functions.e_fatal_error THEN
7661 	/* Bug 5584736.
7662 	 * We have a detailed defaulting routine for defaulting
7663 	 * subinventory and locator later. Commenting out this code
7664 	 * here since this is creating problems later.
7665          IF (SUBSTR(rti.transaction_type,
7666                     1,
7667                     6
7668                    ) = 'RETURN') THEN
7669             x_temp_subinv          := rti.subinventory;
7670             rti.subinventory       := rti.from_subinventory;
7671             rti.from_subinventory  := x_temp_subinv;
7672          END IF;
7673 	*/
7674 
7675          rcv_error_pkg.log_interface_error(g_curr_table,
7676                                            rcv_table_functions.g_error_column,
7677                                            g_curr_group_id,
7678                                            g_curr_header_id,
7679                                            g_curr_transaction_id
7680                                           );
7681       WHEN rcv_error_pkg.e_fatal_error THEN
7682 	/* Bug 5584736.
7683 	 * We have a detailed defaulting routine for defaulting
7684 	 * subinventory and locator later. Commenting out this code
7685 	 * here since this is creating problems later.
7686          IF (SUBSTR(rti.transaction_type,
7687                     1,
7688                     6
7689                    ) = 'RETURN') THEN
7690             x_temp_subinv          := rti.subinventory;
7691             rti.subinventory       := rti.from_subinventory;
7692             rti.from_subinventory  := x_temp_subinv;
7693          END IF;
7694 	*/
7695 
7696          RAISE rcv_error_pkg.e_fatal_error;
7697       WHEN OTHERS THEN
7698 	/* Bug 5584736.
7699 	 * We have a detailed defaulting routine for defaulting
7700 	 * subinventory and locator later. Commenting out this code
7701 	 * here since this is creating problems later.
7702          IF (SUBSTR(rti.transaction_type,
7703                     1,
7704                     6
7705                    ) = 'RETURN') THEN
7706             x_temp_subinv          := rti.subinventory;
7707             rti.subinventory       := rti.from_subinventory;
7708             rti.from_subinventory  := x_temp_subinv;
7709          END IF;
7710 	*/
7711 
7712          rcv_error_pkg.set_sql_error_message('deafault_transaction', '000');
7713          rcv_error_pkg.log_interface_error('INTERFACE_TRANSACTION_ID');
7714    END default_transaction;
7715 
7716    PROCEDURE default_from_parent(
7717       rti IN OUT NOCOPY rcv_transactions_interface%ROWTYPE
7718    ) IS
7719    BEGIN
7720       default_rti_from_rti(rti);
7721    END default_from_parent;
7722 END rcv_default_pkg;