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;