140: l_msg_count NUMBER;
141: l_msg_data VARCHAR2(1000);
142: l_count NUMBER;
143: l_return_status VARCHAR2(1);
144: l_po_session_gt_key PO_SESSION_GT.key%TYPE;
145: l_transaction_line_rec_type ZX_API_PUB.transaction_line_rec_type;
146: BEGIN
147: -- PO_SESSION_GT mappings:
148: --------------------------------------------------
143: l_return_status VARCHAR2(1);
144: l_po_session_gt_key PO_SESSION_GT.key%TYPE;
145: l_transaction_line_rec_type ZX_API_PUB.transaction_line_rec_type;
146: BEGIN
147: -- PO_SESSION_GT mappings:
148: --------------------------------------------------
149: -- / INDEX_NUM1 = trx_id \
150: -- / NUM1 = trx_line_id \
151: -- / NUM2 = trx_line_dist_id \
175: initialize_zx_gt_tables(); -- Wipe ZX GT tables clean
176: d_progress := 20;
177: initialize_global_error_record();
178: d_progress := 30;
179: SELECT po_session_gt_s.NEXTVAL INTO l_po_session_gt_key FROM dual;
180:
181: IF PO_LOG.d_stmt THEN
182: PO_LOG.stmt(d_module_base,d_progress,'l_po_session_gt_key='||l_po_session_gt_key);
183: END IF;
178: d_progress := 30;
179: SELECT po_session_gt_s.NEXTVAL INTO l_po_session_gt_key FROM dual;
180:
181: IF PO_LOG.d_stmt THEN
182: PO_LOG.stmt(d_module_base,d_progress,'l_po_session_gt_key='||l_po_session_gt_key);
183: END IF;
184:
185: d_progress := 40;
186: IF PO_LOG.d_stmt THEN
329: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
330: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
331: END IF;
332:
333: -- If expected errors, store error details in po_session_gt temporarily
334: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
335: d_progress := 140;
336: x_return_status := l_return_status;
337: INSERT INTO po_session_gt(
333: -- If expected errors, store error details in po_session_gt temporarily
334: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
335: d_progress := 140;
336: x_return_status := l_return_status;
337: INSERT INTO po_session_gt(
338: key
339: ,index_num1
340: ,num1
341: ,num2
344: ,char3
345: ,char4
346: )
347: SELECT
348: l_po_session_gt_key
349: ,zxvegt.trx_id
350: ,zxvegt.trx_line_id
351: ,null
352: ,zxvegt.event_class_code
357: WHERE zxvegt.event_class_code = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
358: AND zxvegt.trx_id = ph.po_header_id;
359:
360: d_progress := 150;
361: INSERT INTO po_session_gt(
362: key
363: ,index_num1
364: ,num1
365: ,num2
368: ,char3
369: ,char4
370: )
371: SELECT
372: l_po_session_gt_key
373: ,zxvegt.trx_id
374: ,zxvegt.trx_line_id
375: ,null
376: ,zxvegt.event_class_code
403:
404: d_progress := 160;
405: -- Delete data from zx gt tables for which defaulting/redefaulting failed
406: DELETE FROM zx_trx_headers_gt
407: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
408: WHERE psgt.key = l_po_session_gt_key
409: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE);
410: d_progress := 170;
411: DELETE FROM zx_transaction_lines_gt
404: d_progress := 160;
405: -- Delete data from zx gt tables for which defaulting/redefaulting failed
406: DELETE FROM zx_trx_headers_gt
407: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
408: WHERE psgt.key = l_po_session_gt_key
409: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE);
410: d_progress := 170;
411: DELETE FROM zx_transaction_lines_gt
412: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
408: WHERE psgt.key = l_po_session_gt_key
409: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE);
410: d_progress := 170;
411: DELETE FROM zx_transaction_lines_gt
412: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
413: WHERE psgt.key = l_po_session_gt_key
414: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE);
415:
416: ELSIF (p_calling_program <> 'COPY_DOCUMENT') THEN
409: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE);
410: d_progress := 170;
411: DELETE FROM zx_transaction_lines_gt
412: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
413: WHERE psgt.key = l_po_session_gt_key
414: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE);
415:
416: ELSIF (p_calling_program <> 'COPY_DOCUMENT') THEN
417: d_progress := 180;
513: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
514: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
515: END IF;
516:
517: -- If expected errors, store error details in po_session_gt temporarily
518: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
519: x_return_status := l_return_status;
520: d_progress := 230;
521: INSERT INTO po_session_gt(
517: -- If expected errors, store error details in po_session_gt temporarily
518: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
519: x_return_status := l_return_status;
520: d_progress := 230;
521: INSERT INTO po_session_gt(
522: key
523: ,index_num1
524: ,num1
525: ,num2
528: ,char3
529: ,char4
530: )
531: SELECT
532: l_po_session_gt_key
533: ,zxegt.trx_id
534: ,zxegt.trx_line_id
535: ,zxegt.trx_line_dist_id
536: ,zxegt.event_class_code
541: WHERE zxegt.event_class_code = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
542: AND zxegt.trx_id = ph.po_header_id;
543:
544: d_progress := 240;
545: INSERT INTO po_session_gt(
546: key
547: ,index_num1
548: ,num1
549: ,num2
552: ,char3
553: ,char4
554: )
555: SELECT
556: l_po_session_gt_key
557: ,zxegt.trx_id
558: ,zxegt.trx_line_id
559: ,zxegt.trx_line_dist_id
560: ,zxegt.event_class_code
591:
592: d_progress := 250;
593: -- Delete data from zx gt tables for which defaulting/redefaulting failed
594: DELETE FROM zx_trx_headers_gt
595: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
596: WHERE psgt.key = l_po_session_gt_key
597: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
598: AND psgt.char3 = 'CALCULATE_TAX');
599: d_progress := 260;
592: d_progress := 250;
593: -- Delete data from zx gt tables for which defaulting/redefaulting failed
594: DELETE FROM zx_trx_headers_gt
595: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
596: WHERE psgt.key = l_po_session_gt_key
597: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
598: AND psgt.char3 = 'CALCULATE_TAX');
599: d_progress := 260;
600: DELETE FROM zx_trx_headers_gt
597: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
598: AND psgt.char3 = 'CALCULATE_TAX');
599: d_progress := 260;
600: DELETE FROM zx_trx_headers_gt
601: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
602: WHERE psgt.key = l_po_session_gt_key
603: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
604: AND psgt.char3 = 'CALCULATE_TAX');
605: d_progress := 270;
598: AND psgt.char3 = 'CALCULATE_TAX');
599: d_progress := 260;
600: DELETE FROM zx_trx_headers_gt
601: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
602: WHERE psgt.key = l_po_session_gt_key
603: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
604: AND psgt.char3 = 'CALCULATE_TAX');
605: d_progress := 270;
606: DELETE FROM zx_transaction_lines_gt
603: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
604: AND psgt.char3 = 'CALCULATE_TAX');
605: d_progress := 270;
606: DELETE FROM zx_transaction_lines_gt
607: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
608: WHERE psgt.key = l_po_session_gt_key
609: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
610: AND psgt.char3 = 'CALCULATE_TAX');
611: d_progress := 280;
604: AND psgt.char3 = 'CALCULATE_TAX');
605: d_progress := 270;
606: DELETE FROM zx_transaction_lines_gt
607: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
608: WHERE psgt.key = l_po_session_gt_key
609: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
610: AND psgt.char3 = 'CALCULATE_TAX');
611: d_progress := 280;
612: DELETE FROM zx_transaction_lines_gt
609: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
610: AND psgt.char3 = 'CALCULATE_TAX');
611: d_progress := 280;
612: DELETE FROM zx_transaction_lines_gt
613: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
614: WHERE psgt.key = l_po_session_gt_key
615: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
616: AND psgt.char3 = 'CALCULATE_TAX');
617:
610: AND psgt.char3 = 'CALCULATE_TAX');
611: d_progress := 280;
612: DELETE FROM zx_transaction_lines_gt
613: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
614: WHERE psgt.key = l_po_session_gt_key
615: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
616: AND psgt.char3 = 'CALCULATE_TAX');
617:
618: END IF; -- IF (l_count <> 0)
705: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
706: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
707: END IF;
708:
709: -- If expected errors, store error details in po_session_gt temporarily
710: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
711: x_return_status := l_return_status;
712: d_progress := 350;
713: INSERT INTO po_session_gt(
709: -- If expected errors, store error details in po_session_gt temporarily
710: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
711: x_return_status := l_return_status;
712: d_progress := 350;
713: INSERT INTO po_session_gt(
714: key
715: ,index_num1
716: ,num1
717: ,num2
720: ,char3
721: ,char4
722: )
723: SELECT
724: l_po_session_gt_key
725: ,zxegt.trx_id
726: ,zxegt.trx_line_id
727: ,zxegt.trx_line_dist_id
728: ,zxegt.event_class_code
733: WHERE zxegt.event_class_code = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
734: AND zxegt.trx_id = ph.po_header_id;
735:
736: d_progress := 360;
737: INSERT INTO po_session_gt(
738: key
739: ,index_num1
740: ,num1
741: ,num2
744: ,char3
745: ,char4
746: )
747: SELECT
748: l_po_session_gt_key
749: ,zxegt.trx_id
750: ,zxegt.trx_line_id
751: ,zxegt.trx_line_dist_id
752: ,zxegt.event_class_code
781: -- get passed as CREATE in the next tax calculation (ie at the time of
782: -- approve)
783: d_progress := 380;
784: DELETE FROM zx_itm_distributions_gt
785: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
786: WHERE psgt.key = l_po_session_gt_key
787: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
788: AND psgt.char3 = 'DETERMINE_RECOVERY');
789: d_progress := 390;
782: -- approve)
783: d_progress := 380;
784: DELETE FROM zx_itm_distributions_gt
785: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
786: WHERE psgt.key = l_po_session_gt_key
787: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
788: AND psgt.char3 = 'DETERMINE_RECOVERY');
789: d_progress := 390;
790: DELETE FROM zx_itm_distributions_gt
787: AND psgt.char1 = PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE
788: AND psgt.char3 = 'DETERMINE_RECOVERY');
789: d_progress := 390;
790: DELETE FROM zx_itm_distributions_gt
791: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
792: WHERE psgt.key = l_po_session_gt_key
793: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
794: AND psgt.char3 = 'DETERMINE_RECOVERY');
795:
788: AND psgt.char3 = 'DETERMINE_RECOVERY');
789: d_progress := 390;
790: DELETE FROM zx_itm_distributions_gt
791: WHERE trx_id IN (SELECT DISTINCT index_num1 FROM po_session_gt psgt
792: WHERE psgt.key = l_po_session_gt_key
793: AND psgt.char1 = PO_CONSTANTS_SV.REL_EVENT_CLASS_CODE
794: AND psgt.char3 = 'DETERMINE_RECOVERY');
795:
796: d_progress := 400;
800: -- place despite determine_recovery erroring out for some of them
801: UPDATE po_distributions_all
802: SET tax_attribute_update_code = 'NO_ACTION'
803: WHERE tax_attribute_update_code IS NULL
804: AND po_distribution_id IN (SELECT psgt.NUM2 FROM po_session_gt psgt
805: WHERE psgt.key = l_po_session_gt_key
806: AND psgt.char3 = 'DETERMINE_RECOVERY');
807:
808: --Bug 12907158
801: UPDATE po_distributions_all
802: SET tax_attribute_update_code = 'NO_ACTION'
803: WHERE tax_attribute_update_code IS NULL
804: AND po_distribution_id IN (SELECT psgt.NUM2 FROM po_session_gt psgt
805: WHERE psgt.key = l_po_session_gt_key
806: AND psgt.char3 = 'DETERMINE_RECOVERY');
807:
808: --Bug 12907158
809: RAISE FND_API.G_EXC_ERROR;
948: pll.line_location_id IN (SELECT trx_line_id FROM zx_transaction_lines_gt);
949:
950:
951: d_progress := 520;
952: -- Pour all errors in po_session_gt into global tax error record
953: SELECT
954: psgt.char3 --error_level
955: ,decode(psgt.char1,--document_type_code
956: PO_CONSTANTS_SV.PO_EVENT_CLASS_CODE, PO_CONSTANTS_SV.PO,
965: ,pd.po_distribution_id --distribution_id
966: ,pd.distribution_num --distribution_num
967: ,psgt.char2 --message_text
968: BULK COLLECT INTO G_TAX_ERRORS_TBL
969: FROM po_session_gt psgt, po_line_locations_all pll, po_distributions_all pd
970: WHERE psgt.num1 = pll.line_location_id
971: AND psgt.num2 = pd.po_distribution_id(+)
972: AND psgt.key = l_po_session_gt_key;
973:
968: BULK COLLECT INTO G_TAX_ERRORS_TBL
969: FROM po_session_gt psgt, po_line_locations_all pll, po_distributions_all pd
970: WHERE psgt.num1 = pll.line_location_id
971: AND psgt.num2 = pd.po_distribution_id(+)
972: AND psgt.key = l_po_session_gt_key;
973:
974: IF PO_LOG.d_stmt THEN
975: PO_LOG.stmt(d_module_base,d_progress,'Number of error records collected '||G_TAX_ERRORS_TBL.error_level.COUNT);
976: log_global_error_record(d_module_base, d_progress);
1009: ,pd.po_distribution_id --distribution_id
1010: ,pd.distribution_num --distribution_num
1011: ,psgt.char2 --message_text
1012: BULK COLLECT INTO G_TAX_ERRORS_TBL
1013: FROM po_session_gt psgt, po_line_locations_all pll, po_distributions_all pd
1014: WHERE psgt.index_num1 = pll.po_header_id
1015: AND pll.line_location_id = pd.line_location_id
1016: AND psgt.key = l_po_session_gt_key;
1017:
1012: BULK COLLECT INTO G_TAX_ERRORS_TBL
1013: FROM po_session_gt psgt, po_line_locations_all pll, po_distributions_all pd
1014: WHERE psgt.index_num1 = pll.po_header_id
1015: AND pll.line_location_id = pd.line_location_id
1016: AND psgt.key = l_po_session_gt_key;
1017:
1018: IF PO_LOG.d_stmt THEN
1019: PO_LOG.stmt(d_module_base,d_progress,'Number of error records collected '||G_TAX_ERRORS_TBL.error_level.COUNT);
1020: log_global_error_record(d_module_base, d_progress);
1921: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1922: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1923: END IF;
1924:
1925: -- If expected errors, store error details in po_session_gt temporarily
1926: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1927: x_return_status := l_return_status;
1928: -- Read validation errors from zx_errors_gt into the global
1929: -- error record defined in the spec
2155: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2156: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2157: END IF;
2158:
2159: -- If expected errors, store error details in po_session_gt temporarily
2160: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2161: x_return_status := l_return_status;
2162: -- Read validation errors from zx_errors_gt into the global
2163: -- error record defined in the spec