382: PO_PDOI_UTL.reject_lines_intf
383: (
384: p_id_param_type => PO_PDOI_CONSTANTS.g_INTERFACE_LINE_ID,
385: p_id_tbl => l_dup_intf_line_id_tbl,
386: p_cascade => FND_API.g_TRUE
387: );
388:
389: d_position := 50;
390:
451: PO_PDOI_UTL.reject_lines_intf
452: (
453: p_id_param_type => PO_PDOI_CONSTANTS.g_INTERFACE_LINE_ID,
454: p_id_tbl => l_dup_intf_line_id_tbl,
455: p_cascade => FND_API.g_TRUE
456: );
457:
458: d_position := 110;
459:
571: PO_PDOI_UTL.reject_lines_intf
572: (
573: p_id_param_type => PO_PDOI_CONSTANTS.g_INTERFACE_LINE_ID,
574: p_id_tbl => l_rej_intf_line_id_tbl,
575: p_cascade => FND_API.g_TRUE
576: );
577:
578: d_position := 50;
579:
746: NULL, -- tax_attribute_update_code
747:
748: DECODE(intf_lines.process_code,
749: PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
750: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
751: FND_API.g_FALSE, -- need_to_reject_flag_tbl
752: FND_API.g_FALSE, -- create_line_loc_tbl
753: -1, -- group_num
754: NULL, -- origin_line_num
747:
748: DECODE(intf_lines.process_code,
749: PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
750: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
751: FND_API.g_FALSE, -- need_to_reject_flag_tbl
752: FND_API.g_FALSE, -- create_line_loc_tbl
753: -1, -- group_num
754: NULL, -- origin_line_num
755: FND_API.g_FALSE, -- match_line_found
748: DECODE(intf_lines.process_code,
749: PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
750: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
751: FND_API.g_FALSE, -- need_to_reject_flag_tbl
752: FND_API.g_FALSE, -- create_line_loc_tbl
753: -1, -- group_num
754: NULL, -- origin_line_num
755: FND_API.g_FALSE, -- match_line_found
756: NULL -- allow_desc_update_flag_tbl
751: FND_API.g_FALSE, -- need_to_reject_flag_tbl
752: FND_API.g_FALSE, -- create_line_loc_tbl
753: -1, -- group_num
754: NULL, -- origin_line_num
755: FND_API.g_FALSE, -- match_line_found
756: NULL -- allow_desc_update_flag_tbl
757: FROM po_lines_interface intf_lines,
758: po_headers_interface intf_headers,
759: po_headers_draft_all draft_headers
879: NULL, -- quantity_committed
880: NULL, -- tax_attribute_update_code
881:
882: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
883: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
884: FND_API.G_FALSE, -- need_to_reject_flag_tbl
885: FND_API.g_FALSE, -- create_line_loc_tbl
886: -1, -- group_num
887: NULL, -- origin_line_num
880: NULL, -- tax_attribute_update_code
881:
882: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
883: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
884: FND_API.G_FALSE, -- need_to_reject_flag_tbl
885: FND_API.g_FALSE, -- create_line_loc_tbl
886: -1, -- group_num
887: NULL, -- origin_line_num
888: FND_API.g_FALSE, -- match_line_found
881:
882: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
883: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
884: FND_API.G_FALSE, -- need_to_reject_flag_tbl
885: FND_API.g_FALSE, -- create_line_loc_tbl
886: -1, -- group_num
887: NULL, -- origin_line_num
888: FND_API.g_FALSE, -- match_line_found
889: NULL -- allow_desc_update_flag_tbl
884: FND_API.G_FALSE, -- need_to_reject_flag_tbl
885: FND_API.g_FALSE, -- create_line_loc_tbl
886: -1, -- group_num
887: NULL, -- origin_line_num
888: FND_API.g_FALSE, -- match_line_found
889: NULL -- allow_desc_update_flag_tbl
890: FROM po_lines_interface intf_lines,
891: po_headers_interface intf_headers,
892: po_headers txn_headers
1013: NULL, -- quantity_committed
1014: NULL, -- tax_attribute_update_code
1015:
1016: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1017: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1018: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1019: FND_API.g_FALSE, -- create_line_loc_tbl
1020: -1, -- group_num
1021: NULL, -- origin_line_num
1014: NULL, -- tax_attribute_update_code
1015:
1016: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1017: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1018: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1019: FND_API.g_FALSE, -- create_line_loc_tbl
1020: -1, -- group_num
1021: NULL, -- origin_line_num
1022: FND_API.g_FALSE, -- match_line_found
1015:
1016: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1017: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1018: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1019: FND_API.g_FALSE, -- create_line_loc_tbl
1020: -1, -- group_num
1021: NULL, -- origin_line_num
1022: FND_API.g_FALSE, -- match_line_found
1023: NULL -- allow_desc_update_flag_tbl
1018: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1019: FND_API.g_FALSE, -- create_line_loc_tbl
1020: -1, -- group_num
1021: NULL, -- origin_line_num
1022: FND_API.g_FALSE, -- match_line_found
1023: NULL -- allow_desc_update_flag_tbl
1024: FROM po_lines_interface intf_lines,
1025: po_headers_interface intf_headers,
1026: po_headers txn_headers
1150: NULL, -- quantity_committed
1151: NULL, -- tax_attribute_update_code
1152:
1153: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1154: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1155: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1156: FND_API.g_FALSE, -- create_line_loc_tbl
1157: -1, -- group_num
1158: NULL, -- origin_line_num
1151: NULL, -- tax_attribute_update_code
1152:
1153: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1154: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1155: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1156: FND_API.g_FALSE, -- create_line_loc_tbl
1157: -1, -- group_num
1158: NULL, -- origin_line_num
1159: FND_API.g_FALSE, -- match_line_found
1152:
1153: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1154: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1155: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1156: FND_API.g_FALSE, -- create_line_loc_tbl
1157: -1, -- group_num
1158: NULL, -- origin_line_num
1159: FND_API.g_FALSE, -- match_line_found
1160: NULL -- allow_desc_update_flag_tbl
1155: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1156: FND_API.g_FALSE, -- create_line_loc_tbl
1157: -1, -- group_num
1158: NULL, -- origin_line_num
1159: FND_API.g_FALSE, -- match_line_found
1160: NULL -- allow_desc_update_flag_tbl
1161: FROM po_lines_interface intf_lines,
1162: po_headers_interface intf_headers,
1163: po_headers txn_headers
1291: NULL, -- quantity_committed
1292: NULL, -- tax_attribute_update_code
1293:
1294: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1295: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1296: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1297: FND_API.g_FALSE, -- create_line_loc_tbl
1298: -1, -- group_num
1299: NULL, -- origin_line_num
1292: NULL, -- tax_attribute_update_code
1293:
1294: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1295: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1296: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1297: FND_API.g_FALSE, -- create_line_loc_tbl
1298: -1, -- group_num
1299: NULL, -- origin_line_num
1300: FND_API.g_FALSE, -- match_line_found
1293:
1294: DECODE(intf_lines.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_VAL_AND_REJECT,
1295: FND_API.g_TRUE, FND_API.g_FALSE), -- error_flag_tbl
1296: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1297: FND_API.g_FALSE, -- create_line_loc_tbl
1298: -1, -- group_num
1299: NULL, -- origin_line_num
1300: FND_API.g_FALSE, -- match_line_found
1301: NULL -- allow_desc_update_flag_tbl
1296: FND_API.G_FALSE, -- need_to_reject_flag_tbl
1297: FND_API.g_FALSE, -- create_line_loc_tbl
1298: -1, -- group_num
1299: NULL, -- origin_line_num
1300: FND_API.g_FALSE, -- match_line_found
1301: NULL -- allow_desc_update_flag_tbl
1302: FROM po_lines_interface intf_lines,
1303: po_headers_interface intf_headers,
1304: po_headers txn_headers
1733: p_validation_id => PO_VAL_CONSTANTS.c_part_num_derv,
1734: p_lines => x_lines
1735: );
1736:
1737: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1738: END IF;
1739:
1740: -- derivation error for job_business_group_id
1741: IF (x_lines.job_business_group_name_tbl(i) IS NOT NULL AND
1759: p_token2_name => 'VALUE',
1760: p_token2_value => x_lines.job_business_group_name_tbl(i)
1761: );
1762:
1763: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1764: ELSIF (x_lines.job_name_tbl(i) IS NOT NULL AND -- derivation error for job_id
1765: x_lines.job_id_tbl(i) IS NULL) THEN
1766: IF (PO_LOG.d_stmt) THEN
1767: PO_LOG.stmt(d_module, d_position, 'job id derivation failed');
1784: p_validation_id => PO_VAL_CONSTANTS.c_job_name_derv,
1785: p_lines => x_lines
1786: );
1787:
1788: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1789: END IF;
1790:
1791: -- derivation error for category_id
1792: IF (x_lines.category_tbl(i) IS NOT NULL AND
1812: p_validation_id => PO_VAL_CONSTANTS.c_category_derv,
1813: p_lines => x_lines
1814: );
1815:
1816: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1817: END IF;
1818:
1819: -- derivation error for ip_category_id
1820: IF (PO_PDOI_PARAMS.g_request.document_type IN
1843: p_validation_id => PO_VAL_CONSTANTS.c_ip_category_derv,
1844: p_lines => x_lines
1845: );
1846:
1847: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1848: END IF;
1849: END IF;
1850:
1851: -- derivation error for unit_of_measure
1872: p_validation_id => PO_VAL_CONSTANTS.c_uom_code_derv,
1873: p_lines => x_lines
1874: );
1875:
1876: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1877: END IF;
1878:
1879: -- derivation error for line_type_id
1880: IF (x_lines.line_type_tbl(i) IS NOT NULL AND
1900: p_validation_id => PO_VAL_CONSTANTS.c_line_type_derv,
1901: p_lines => x_lines
1902: );
1903:
1904: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1905: END IF;
1906:
1907: -- derivation error for un_number_id
1908: IF (x_lines.un_number_tbl(i) IS NOT NULL AND
1926: p_token2_name => 'VALUE',
1927: p_token2_value => x_lines.un_number_tbl(i)
1928: );
1929:
1930: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1931: END IF;
1932:
1933: -- derivation error for hazard_class_id
1934: IF (x_lines.hazard_class_tbl(i) IS NOT NULL AND
1952: p_token2_name => 'VALUE',
1953: p_token2_value => x_lines.hazard_class_tbl(i)
1954: );
1955:
1956: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1957: END IF;
1958:
1959: -- derivation error for template_id
1960: IF (x_lines.template_name_tbl(i) IS NOT NULL AND
1978: p_token2_name => 'VALUE',
1979: p_token2_value => x_lines.template_name_tbl(i)
1980: );
1981:
1982: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1983: END IF;
1984: END LOOP;
1985:
1986: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2136: p_token2_name => 'VALUE',
2137: p_token2_value => x_lines.category_tbl(i)
2138: );
2139:
2140: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
2141: END IF;
2142:
2143: -- derivation error for ip_category_id
2144: IF (PO_PDOI_PARAMS.g_request.document_type IN
2165: p_token2_name => 'VALUE',
2166: p_token2_value => x_lines.ip_category_tbl(i)
2167: );
2168:
2169: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
2170: END IF;
2171: END IF;
2172:
2173: -- derivation error for unit_of_measure
2192: p_token2_name => 'VALUE',
2193: p_token2_value => x_lines.uom_code_tbl(i)
2194: );
2195:
2196: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
2197: END IF;
2198: END LOOP;
2199:
2200: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2899: l_update_lines.create_line_loc_tbl(i));
2900:
2901: END IF;
2902:
2903: IF (l_update_lines.create_line_loc_tbl(i) = FND_API.g_FALSE) THEN
2904: PO_PDOI_ERR_UTL.add_fatal_error
2905: (
2906: p_interface_header_id => l_update_lines.intf_header_id_tbl(i),
2907: p_interface_line_id => l_update_lines.intf_line_id_tbl(i),
2930: PO_PDOI_UTL.reject_lines_intf
2931: (
2932: p_id_param_type => PO_PDOI_CONSTANTS.g_INTERFACE_LINE_ID,
2933: p_id_tbl => l_rej_intf_line_id_tbl,
2934: p_cascade => FND_API.g_TRUE
2935: );
2936:
2937: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_MATCH);
2938:
3020: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
3021: IF (x_lines.order_type_lookup_code_tbl(i) IN ('QUANTITY', 'RATE') AND
3022: x_lines.action_tbl(i) = PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
3023: (x_lines.quantity_tbl(i) > 0 OR x_lines.shipment_num_tbl(i) IS NOT NULL)) THEN
3024: x_lines.create_line_loc_tbl(i) := FND_API.g_TRUE;
3025: END IF;
3026: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3027: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD) THEN
3028: IF (x_lines.order_type_lookup_code_tbl(i) IN ('FIXED PRICE', 'RATE') OR
3026: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3027: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD) THEN
3028: IF (x_lines.order_type_lookup_code_tbl(i) IN ('FIXED PRICE', 'RATE') OR
3029: x_lines.quantity_tbl(i) > 0) THEN
3030: x_lines.create_line_loc_tbl(i) := FND_API.g_TRUE;
3031: END IF;
3032: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3033: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
3034: IF (x_lines.order_type_lookup_code_tbl(i) = 'QUANTITY' AND
3032: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3033: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
3034: IF (x_lines.order_type_lookup_code_tbl(i) = 'QUANTITY' AND
3035: (x_lines.quantity_tbl(i) > 0 OR x_lines.shipment_num_tbl(i) IS NOT NULL)) THEN
3036: x_lines.create_line_loc_tbl(i) := FND_API.g_TRUE;
3037: END IF;
3038: END IF;
3039:
3040: IF (PO_LOG.d_stmt) THEN
3045: d_position := 20;
3046:
3047: -- mark down locations that need to be obsoleted after the looping
3048:
3049: IF (x_lines.create_line_loc_tbl(i) = FND_API.g_FALSE) THEN
3050: l_obsolete_rec_count := l_obsolete_rec_count + 1;
3051: l_obsoleted_loc_tbl(l_obsolete_rec_count) := x_lines.intf_line_id_tbl(i);
3052: END IF;
3053:
3070: PO_PDOI_UTL.reject_line_locations_intf
3071: (
3072: p_id_param_type => PO_PDOI_CONSTANTS.g_INTERFACE_LINE_ID,
3073: p_id_tbl => l_obsoleted_loc_tbl,
3074: p_cascade => FND_API.g_TRUE
3075: );
3076: */
3077: IF (PO_LOG.d_proc) THEN
3078: PO_LOG.proc_end (d_module);
3130: = PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING AND
3131: NVL(PO_PDOI_PARAMS.g_request.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING) =
3132: PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED) THEN
3133:
3134: IF (x_lines.error_flag_tbl(i) = FND_API.g_FALSE AND
3135: x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE) THEN
3136: IF (PO_LOG.d_stmt) THEN
3137: PO_LOG.stmt(d_module, d_position, 'update line process code to ACCEPTED. Index = ', i);
3138: END IF;
3131: NVL(PO_PDOI_PARAMS.g_request.process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING) =
3132: PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED) THEN
3133:
3134: IF (x_lines.error_flag_tbl(i) = FND_API.g_FALSE AND
3135: x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE) THEN
3136: IF (PO_LOG.d_stmt) THEN
3137: PO_LOG.stmt(d_module, d_position, 'update line process code to ACCEPTED. Index = ', i);
3138: END IF;
3139:
3149: SET po_line_id = x_lines.po_line_id_tbl(i),
3150: price_update_tolerance = x_lines.price_update_tolerance_tbl(i),
3151: action = x_lines.action_tbl(i),
3152: price_break_flag = DECODE(x_lines.action_tbl(i), 'UPDATE',
3153: DECODE(x_lines.create_line_loc_tbl(i), FND_API.g_TRUE, 'Y', NULL), NULL),
3154: process_code = x_lines.process_code_tbl(i),
3155: parent_interface_line_id = x_lines.parent_interface_line_id_tbl(i) -- bug5149827
3156: WHERE interface_line_id = x_lines.intf_line_id_tbl(i);
3157: --AND x_lines.error_flag_tbl(i) = FND_API.g_FALSE
3153: DECODE(x_lines.create_line_loc_tbl(i), FND_API.g_TRUE, 'Y', NULL), NULL),
3154: process_code = x_lines.process_code_tbl(i),
3155: parent_interface_line_id = x_lines.parent_interface_line_id_tbl(i) -- bug5149827
3156: WHERE interface_line_id = x_lines.intf_line_id_tbl(i);
3157: --AND x_lines.error_flag_tbl(i) = FND_API.g_FALSE
3158: --AND x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE;
3159:
3160: IF (PO_LOG.d_proc) THEN
3161: PO_LOG.proc_end (d_module);
3154: process_code = x_lines.process_code_tbl(i),
3155: parent_interface_line_id = x_lines.parent_interface_line_id_tbl(i) -- bug5149827
3156: WHERE interface_line_id = x_lines.intf_line_id_tbl(i);
3157: --AND x_lines.error_flag_tbl(i) = FND_API.g_FALSE
3158: --AND x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE;
3159:
3160: IF (PO_LOG.d_proc) THEN
3161: PO_LOG.proc_end (d_module);
3162: END IF;
3399: x_expire_line_id_tbl(l_count) := x_lines.po_line_id_tbl(l_index);
3400: x_lines.po_line_id_tbl(l_index) :=
3401: PO_PDOI_MAINPROC_UTL_PVT.get_next_po_line_id;
3402: IF (x_lines.origin_line_num_tbl(l_index) IS NULL OR
3403: x_lines.line_num_unique_tbl(l_index) = FND_API.g_FALSE) THEN
3404: x_lines.line_num_tbl(l_index) :=
3405: PO_PDOI_MAINPROC_UTL_PVT.get_next_line_num
3406: (
3407: p_po_header_id => x_lines.hd_po_header_id_tbl(i)
3547: -- x_lines
3548: -- record which stores all the line rows within the batch;
3549: -- If there is error(s) on any attribute of the location row,
3550: -- corresponding value in error_flag_tbl will be set with value
3551: -- FND_API.g_TRUE.
3552: --OUT:
3553: --End of Comments
3554: ------------------------------------------------------------------------
3555: PROCEDURE validate_lines
3697: IF (PO_LOG.d_stmt) THEN
3698: PO_LOG.stmt(d_module, d_position, 'vaidate lines return fatal');
3699: END IF;
3700:
3701: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3702: END IF;
3703:
3704: d_position := 70;
3705:
3883: IF (x_item_id_tbl(l_index) IS NULL) THEN
3884: x_item_id_tbl(l_index) := l_result_tbl(i);
3885: ELSE
3886: x_item_id_tbl(l_index) := NULL;
3887: x_error_flag_tbl(l_index) := FND_API.G_TRUE;
3888: l_error_exist_tbl(l_index) := l_index;
3889: -- insert error
3890: PO_PDOI_ERR_UTL.add_fatal_error
3891: (
5905:
5906: -- First, get lines qualified. The qualified lines must satisfy the following conditions:
5907: -- 1. x_lines.line_num_tbl(i) IS NULL
5908: -- 2. x_lines.hd_actions(i) <> 'UPDATE'
5909: -- 3. x_lines.error_flag_tbl(i) = FND_API.G_FALSE
5910: -- 4. document is not AMOUNT based BLANKET
5911: FOR i IN 1..x_lines.rec_count
5912: LOOP
5913: IF (x_lines.line_num_tbl(i) IS NULL) THEN
5911: FOR i IN 1..x_lines.rec_count
5912: LOOP
5913: IF (x_lines.line_num_tbl(i) IS NULL) THEN
5914: IF (x_lines.hd_action_tbl(i) <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
5915: x_lines.error_flag_tbl(i) = FND_API.g_FALSE AND
5916: NOT (x_lines.order_type_lookup_code_tbl(i) = 'AMOUNT' AND
5917: PO_PDOI_PARAMS.g_request.document_type =
5918: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET)) THEN
5919: IF (PO_LOG.d_stmt) THEN
6539: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6540: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6541: x_processing_row_tbl.DELETE(l_index);
6542: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
6543: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6544: END IF;
6545: ELSE
6546: IF (PO_LOG.d_stmt) THEN
6547: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6559: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
6560: -- record matching line_num is found
6561: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6562: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6563: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6564: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
6565: -- need to do nothing, record with matching line num is found before
6566: NULL;
6567: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
6560: -- record matching line_num is found
6561: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6562: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6563: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6564: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
6565: -- need to do nothing, record with matching line num is found before
6566: NULL;
6567: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
6568: -- try to update line with maximum line num if exact match can not be found
6631: set_action_add
6632: ( p_key => p_key,
6633: p_group_num => p_group_num,
6634: p_target_lines_index_tbl => l_index_tbl,
6635: p_check_line_num_assign => FND_API.G_TRUE,
6636: x_processing_row_tbl => x_processing_row_tbl,
6637: x_lines => x_lines
6638: );
6639:
6755: NVL(draft_lines.item_revision, -99)
6756: AND NVL(x_lines.vendor_product_num_tbl(i), NVL(draft_lines.vendor_product_num, -99)) =
6757: NVL(draft_lines.vendor_product_num, -99)
6758: AND NVL(x_lines.supplier_part_auxid_tbl(i),
6759: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR))=
6760: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR);
6761:
6762: d_position := 10;
6763:
6756: AND NVL(x_lines.vendor_product_num_tbl(i), NVL(draft_lines.vendor_product_num, -99)) =
6757: NVL(draft_lines.vendor_product_num, -99)
6758: AND NVL(x_lines.supplier_part_auxid_tbl(i),
6759: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR))=
6760: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR);
6761:
6762: d_position := 10;
6763:
6764: -- check matching on txn table
6792: NVL(txn_lines.item_revision, -99)
6793: AND NVL(x_lines.vendor_product_num_tbl(i), NVL(txn_lines.vendor_product_num, -99)) =
6794: NVL(txn_lines.vendor_product_num, -99)
6795: AND NVL(x_lines.supplier_part_auxid_tbl(i),
6796: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR)) =
6797: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR)
6798: AND NVL(txn_lines.expiration_date, TRUNC(sysdate)) >= TRUNC(sysdate)
6799: AND NVL(txn_lines.closed_code, 'OPEN') <> 'FINALLY CLOSED'
6800: AND NVL(txn_lines.cancel_flag, 'N') <> 'Y';
6793: AND NVL(x_lines.vendor_product_num_tbl(i), NVL(txn_lines.vendor_product_num, -99)) =
6794: NVL(txn_lines.vendor_product_num, -99)
6795: AND NVL(x_lines.supplier_part_auxid_tbl(i),
6796: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR)) =
6797: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR)
6798: AND NVL(txn_lines.expiration_date, TRUNC(sysdate)) >= TRUNC(sysdate)
6799: AND NVL(txn_lines.closed_code, 'OPEN') <> 'FINALLY CLOSED'
6800: AND NVL(txn_lines.cancel_flag, 'N') <> 'Y';
6801:
6829: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6830: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6831: x_processing_row_tbl.DELETE(l_index);
6832: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
6833: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6834: END IF;
6835: ELSE
6836: IF (PO_LOG.d_stmt) THEN
6837: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6849: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
6850: -- record matching line_num is found
6851: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6852: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6853: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6854: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
6855: -- need to do nothing, record with matching line num is found before
6856: NULL;
6857: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
6850: -- record matching line_num is found
6851: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6852: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6853: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6854: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
6855: -- need to do nothing, record with matching line num is found before
6856: NULL;
6857: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
6858: -- try to update line with maximum line num if exact match can not be found
6919: NVL(gt.char2, -99)
6920: AND NVL(x_lines.vendor_product_num_tbl(i), NVL(gt.char3, -99)) =
6921: NVL(gt.char3, -99)
6922: AND NVL(x_lines.supplier_part_auxid_tbl(i),
6923: NVL(gt.char4, FND_API.g_NULL_CHAR))=
6924: NVL(gt.char4, FND_API.g_NULL_CHAR));
6925:
6926: d_position := 50;
6927:
6920: AND NVL(x_lines.vendor_product_num_tbl(i), NVL(gt.char3, -99)) =
6921: NVL(gt.char3, -99)
6922: AND NVL(x_lines.supplier_part_auxid_tbl(i),
6923: NVL(gt.char4, FND_API.g_NULL_CHAR))=
6924: NVL(gt.char4, FND_API.g_NULL_CHAR));
6925:
6926: d_position := 50;
6927:
6928: DELETE FROM po_session_gt
6934: set_action_add
6935: ( p_key => p_key,
6936: p_group_num => p_group_num,
6937: p_target_lines_index_tbl => l_index_tbl,
6938: p_check_line_num_assign => FND_API.G_TRUE,
6939: x_processing_row_tbl => x_processing_row_tbl,
6940: x_lines => x_lines
6941: );
6942:
7029: AND draft_lines.draft_id = x_lines.draft_id_tbl(i)
7030: AND NVL(draft_lines.expiration_date, TRUNC(sysdate)) >= TRUNC(sysdate)
7031: AND draft_lines.vendor_product_num = x_lines.vendor_product_num_tbl(i)
7032: AND NVL(x_lines.supplier_part_auxid_tbl(i),
7033: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR))=
7034: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR);
7035:
7036: d_position := 10;
7037:
7030: AND NVL(draft_lines.expiration_date, TRUNC(sysdate)) >= TRUNC(sysdate)
7031: AND draft_lines.vendor_product_num = x_lines.vendor_product_num_tbl(i)
7032: AND NVL(x_lines.supplier_part_auxid_tbl(i),
7033: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR))=
7034: NVL(draft_lines.supplier_part_auxid, FND_API.g_NULL_CHAR);
7035:
7036: d_position := 10;
7037:
7038: -- check matching on txn table
7058: WHERE draft_lines.po_line_id = txn_lines.po_line_id
7059: AND draft_lines.draft_id = x_lines.draft_id_tbl(i))
7060: AND txn_lines.vendor_product_num = x_lines.vendor_product_num_tbl(i)
7061: AND NVL(x_lines.supplier_part_auxid_tbl(i),
7062: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR))=
7063: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR)
7064: AND NVL(txn_lines.expiration_date, TRUNC(sysdate)) >= TRUNC(sysdate)
7065: AND NVL(txn_lines.closed_code, 'OPEN') <> 'FINALLY CLOSED'
7066: AND NVL(txn_lines.cancel_flag, 'N') <> 'Y';
7059: AND draft_lines.draft_id = x_lines.draft_id_tbl(i))
7060: AND txn_lines.vendor_product_num = x_lines.vendor_product_num_tbl(i)
7061: AND NVL(x_lines.supplier_part_auxid_tbl(i),
7062: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR))=
7063: NVL(txn_lines.supplier_part_auxid, FND_API.g_NULL_CHAR)
7064: AND NVL(txn_lines.expiration_date, TRUNC(sysdate)) >= TRUNC(sysdate)
7065: AND NVL(txn_lines.closed_code, 'OPEN') <> 'FINALLY CLOSED'
7066: AND NVL(txn_lines.cancel_flag, 'N') <> 'Y';
7067:
7095: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7096: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
7097: x_processing_row_tbl.DELETE(l_index);
7098: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
7099: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7100: END IF;
7101: ELSE
7102: IF (PO_LOG.d_stmt) THEN
7103: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7115: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
7116: -- record matching line_num is found
7117: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7118: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
7119: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7120: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
7121: -- need to do nothing, record with matching line num is found before
7122: NULL;
7123: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
7116: -- record matching line_num is found
7117: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7118: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
7119: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7120: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
7121: -- need to do nothing, record with matching line num is found before
7122: NULL;
7123: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
7124: -- try to update line with maximum line num if exact match can not be found
7175: AND gt.num1 < x_lines.intf_line_id_tbl(i)
7176: AND gt.num2 = x_lines.hd_po_header_id_tbl(i)
7177: AND gt.char1 = x_lines.vendor_product_num_tbl(i)
7178: AND NVL(x_lines.supplier_part_auxid_tbl(i),
7179: NVL(gt.char2, FND_API.g_NULL_CHAR))=
7180: NVL(gt.char2, FND_API.g_NULL_CHAR));
7181:
7182: d_position := 50;
7183:
7176: AND gt.num2 = x_lines.hd_po_header_id_tbl(i)
7177: AND gt.char1 = x_lines.vendor_product_num_tbl(i)
7178: AND NVL(x_lines.supplier_part_auxid_tbl(i),
7179: NVL(gt.char2, FND_API.g_NULL_CHAR))=
7180: NVL(gt.char2, FND_API.g_NULL_CHAR));
7181:
7182: d_position := 50;
7183:
7184: DELETE FROM po_session_gt
7192: set_action_add
7193: ( p_key => p_key,
7194: p_group_num => p_group_num,
7195: p_target_lines_index_tbl => l_index_tbl,
7196: p_check_line_num_assign => FND_API.G_TRUE,
7197: x_processing_row_tbl => x_processing_row_tbl,
7198: x_lines => x_lines
7199: );
7200:
7356: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7357: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
7358: x_processing_row_tbl.DELETE(l_index);
7359: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
7360: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7361: END IF;
7362: ELSE
7363: IF (PO_LOG.d_stmt) THEN
7364: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7376: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
7377: -- record matching line_num is found
7378: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7379: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
7380: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7381: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
7382: -- need to do nothing, record with matching line num is found before
7383: NULL;
7384: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
7377: -- record matching line_num is found
7378: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7379: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
7380: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7381: ELSIF (x_lines.match_line_found_tbl(l_index) = FND_API.g_TRUE) THEN
7382: -- need to do nothing, record with matching line num is found before
7383: NULL;
7384: ELSIF (x_lines.line_num_tbl(l_index) < l_line_num_tbl(i)) THEN
7385: -- try to update line with maximum line num if exact match can not be found
7447: set_action_add
7448: ( p_key => p_key,
7449: p_group_num => p_group_num,
7450: p_target_lines_index_tbl => l_index_tbl,
7451: p_check_line_num_assign => FND_API.G_TRUE,
7452: x_processing_row_tbl => x_processing_row_tbl,
7453: x_lines => x_lines
7454: );
7455:
7658: set_action_add
7659: ( p_key => p_key,
7660: p_group_num => p_group_num,
7661: p_target_lines_index_tbl => l_index_tbl,
7662: p_check_line_num_assign => FND_API.G_FALSE,
7663: x_processing_row_tbl => x_processing_row_tbl,
7664: x_lines => x_lines
7665: );
7666:
7702: -- p_target_line_index_tbl
7703: -- Table containing indexes for the lines to be assigned with action
7704: -- 'ADD'
7705: -- p_check_line_num_assign
7706: -- If FND_API.G_TRUE, then it checks whether a new line number needs
7707: -- to be assigned to the record. FND_API.G_FALSE otherwise.
7708: --IN OUT:
7709: -- x_processing_row_tbl
7710: -- index table of rows that are going to be processed
7703: -- Table containing indexes for the lines to be assigned with action
7704: -- 'ADD'
7705: -- p_check_line_num_assign
7706: -- If FND_API.G_TRUE, then it checks whether a new line number needs
7707: -- to be assigned to the record. FND_API.G_FALSE otherwise.
7708: --IN OUT:
7709: -- x_processing_row_tbl
7710: -- index table of rows that are going to be processed
7711: -- x_lines
7747: x_lines.action_tbl(l_index) := PO_PDOI_CONSTANTS.g_ACTION_ADD;
7748: x_lines.group_num_tbl(l_index) := p_group_num;
7749: x_lines.po_line_id_tbl(l_index) := PO_PDOI_MAINPROC_UTL_PVT.get_next_po_line_id;
7750:
7751: IF (p_check_line_num_assign = FND_API.G_TRUE) THEN
7752:
7753:
7754: IF (x_lines.line_num_tbl(l_index) IS NULL OR
7755: x_lines.line_num_unique_tbl(l_index) = FND_API.g_FALSE) THEN
7751: IF (p_check_line_num_assign = FND_API.G_TRUE) THEN
7752:
7753:
7754: IF (x_lines.line_num_tbl(l_index) IS NULL OR
7755: x_lines.line_num_unique_tbl(l_index) = FND_API.g_FALSE) THEN
7756:
7757: d_position := 20;
7758:
7759: x_lines.line_num_tbl(l_index) :=
7901: p_validation_id => PO_VAL_CONSTANTS.c_language,
7902: p_lines => x_lines
7903: );
7904:
7905: x_lines.error_flag_tbl(l_index) := FND_API.g_TRUE;
7906: END LOOP;
7907:
7908: IF (PO_LOG.d_proc) THEN
7909: PO_LOG.proc_end(d_module);
7922: -----------------------------------------------------------------------
7923: --Start of Comments
7924: --Name: populate_error_flag
7925: --Function:
7926: -- corresponding value in error_flag_tbl will be set with value FND_API.G_FALSE.
7927: --Parameters:
7928: --IN:
7929: --x_results
7930: -- The validation results that contains the errored line information.
7932: --x_lines
7933: -- The record contains the values to be validated.
7934: -- If there is error(s) on any attribute of the price differential row,
7935: -- corresponding value in error_flag_tbl will be set with value
7936: -- FND_API.G_FALSE.
7937: --OUT:
7938: --End of Comments
7939: ------------------------------------------------------------------------
7940: PROCEDURE populate_error_flag
7970: PO_LOG.stmt(d_module, d_position, 'error on index',
7971: l_index_tbl(x_results.entity_id(i)));
7972: END IF;
7973:
7974: x_lines.error_flag_tbl(l_index_tbl(x_results.entity_id(i))) := FND_API.g_TRUE;
7975: END IF;
7976: END LOOP;
7977:
7978: IF (PO_LOG.d_proc) THEN
8048:
8049: d_position := 10;
8050:
8051: IF (PO_PDOI_PARAMS.g_request.calling_module = PO_PDOI_CONSTANTS.g_call_mod_CATALOG_UPLOAD AND
8052: PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).err_tolerance_exceeded = FND_API.G_TRUE ) THEN
8053: x_lines.need_to_reject_flag_tbl(i) := FND_API.g_TRUE;
8054:
8055: -- bug 5215781:
8056: -- collect ids of lines for which errors on them would be removed from error interface
8049: d_position := 10;
8050:
8051: IF (PO_PDOI_PARAMS.g_request.calling_module = PO_PDOI_CONSTANTS.g_call_mod_CATALOG_UPLOAD AND
8052: PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).err_tolerance_exceeded = FND_API.G_TRUE ) THEN
8053: x_lines.need_to_reject_flag_tbl(i) := FND_API.g_TRUE;
8054:
8055: -- bug 5215781:
8056: -- collect ids of lines for which errors on them would be removed from error interface
8057: -- table since error tolerance threshold is hit before them
8066: END IF;
8067:
8068: d_position := 20;
8069:
8070: IF x_lines.error_flag_tbl(i) = FND_API.g_TRUE THEN
8071: l_num_errored_lines := PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).number_of_errored_lines + 1;
8072: PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).number_of_errored_lines := l_num_errored_lines;
8073:
8074: -- set corresponding line to ERROR
8083: IF (PO_PDOI_PARAMS.g_request.calling_module =
8084: PO_PDOI_CONSTANTS.g_call_mod_CATALOG_UPLOAD AND
8085: l_num_errored_lines = l_err_lines_tolerance) THEN
8086:
8087: PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).err_tolerance_exceeded := FND_API.g_TRUE;
8088: END IF;
8089:
8090: d_position := 40;
8091: ELSE