19: /* Bug# 1548597 */
20: x_secondary_available_qty NUMBER := 0;
21: x_error_status VARCHAR2(1);
22: BEGIN
23: x_error_status := rcv_error_pkg.g_ret_sts_error;
24:
25: IF (x_quantity_shipped_record.quantity_shipped IS NULL) THEN
26: rcv_error_pkg.set_error_message('RCV_ITEM_NO_SHIP_QTY');
27: RAISE e_validation_error;
22: BEGIN
23: x_error_status := rcv_error_pkg.g_ret_sts_error;
24:
25: IF (x_quantity_shipped_record.quantity_shipped IS NULL) THEN
26: rcv_error_pkg.set_error_message('RCV_ITEM_NO_SHIP_QTY');
27: RAISE e_validation_error;
28: END IF;
29:
30: IF (x_quantity_shipped_record.quantity_shipped < 0) THEN
27: RAISE e_validation_error;
28: END IF;
29:
30: IF (x_quantity_shipped_record.quantity_shipped < 0) THEN
31: rcv_error_pkg.set_error_message('RCV_ITEM_SUBZERO_SHIP_QTY');
32: RAISE e_validation_error;
33: END IF;
34:
35: -- get the tolerable quantity first
46: x_secondary_available_qty
47: );
48:
49: IF (x_quantity_shipped_record.quantity_shipped > x_tolerable_qty) THEN
50: x_error_status := rcv_error_pkg.g_ret_sts_warning;
51: rcv_error_pkg.set_error_message('RCV_ALL_QTY_OVER_TOLERANCE');
52: RAISE e_validation_error;
53: END IF;
54: EXCEPTION
47: );
48:
49: IF (x_quantity_shipped_record.quantity_shipped > x_tolerable_qty) THEN
50: x_error_status := rcv_error_pkg.g_ret_sts_warning;
51: rcv_error_pkg.set_error_message('RCV_ALL_QTY_OVER_TOLERANCE');
52: RAISE e_validation_error;
53: END IF;
54: EXCEPTION
55: WHEN e_validation_error THEN
53: END IF;
54: EXCEPTION
55: WHEN e_validation_error THEN
56: x_quantity_shipped_record.error_record.error_status := x_error_status;
57: x_quantity_shipped_record.error_record.error_message := rcv_error_pkg.get_last_message;
58:
59: IF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_NO_SHIP_QTY' THEN
60: rcv_error_pkg.set_token('ITEM', x_quantity_shipped_record.item_id);
61: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_SUBZERO_SHIP_QTY' THEN
56: x_quantity_shipped_record.error_record.error_status := x_error_status;
57: x_quantity_shipped_record.error_record.error_message := rcv_error_pkg.get_last_message;
58:
59: IF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_NO_SHIP_QTY' THEN
60: rcv_error_pkg.set_token('ITEM', x_quantity_shipped_record.item_id);
61: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_SUBZERO_SHIP_QTY' THEN
62: rcv_error_pkg.set_token('QTY_SHIPPED', x_quantity_shipped_record.quantity_shipped);
63: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ALL_QTY_OVER_TOLERANCE' THEN
64: rcv_error_pkg.set_token('QTY_A', x_quantity_shipped_record.quantity_shipped);
58:
59: IF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_NO_SHIP_QTY' THEN
60: rcv_error_pkg.set_token('ITEM', x_quantity_shipped_record.item_id);
61: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_SUBZERO_SHIP_QTY' THEN
62: rcv_error_pkg.set_token('QTY_SHIPPED', x_quantity_shipped_record.quantity_shipped);
63: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ALL_QTY_OVER_TOLERANCE' THEN
64: rcv_error_pkg.set_token('QTY_A', x_quantity_shipped_record.quantity_shipped);
65: rcv_error_pkg.set_token('QTY_B', x_tolerable_qty);
66: END IF;
60: rcv_error_pkg.set_token('ITEM', x_quantity_shipped_record.item_id);
61: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_SUBZERO_SHIP_QTY' THEN
62: rcv_error_pkg.set_token('QTY_SHIPPED', x_quantity_shipped_record.quantity_shipped);
63: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ALL_QTY_OVER_TOLERANCE' THEN
64: rcv_error_pkg.set_token('QTY_A', x_quantity_shipped_record.quantity_shipped);
65: rcv_error_pkg.set_token('QTY_B', x_tolerable_qty);
66: END IF;
67: END validate_quantity_shipped;
68:
61: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ITEM_SUBZERO_SHIP_QTY' THEN
62: rcv_error_pkg.set_token('QTY_SHIPPED', x_quantity_shipped_record.quantity_shipped);
63: ELSIF x_quantity_shipped_record.error_record.error_message = 'RCV_ALL_QTY_OVER_TOLERANCE' THEN
64: rcv_error_pkg.set_token('QTY_A', x_quantity_shipped_record.quantity_shipped);
65: rcv_error_pkg.set_token('QTY_B', x_tolerable_qty);
66: END IF;
67: END validate_quantity_shipped;
68:
69: /*===========================================================================
76: ) IS
77: x_progress VARCHAR2(3);
78: x_error_status VARCHAR2(1);
79: BEGIN
80: x_error_status := rcv_error_pkg.g_ret_sts_error;
81:
82: -- in RCVTXDAB.pls
83: IF NOT(rcv_dates_s.val_receipt_date_tolerance(x_expected_receipt_rec.line_location_id, x_expected_receipt_rec.expected_receipt_date)) THEN
84: x_error_status := rcv_error_pkg.g_ret_sts_warning;
80: x_error_status := rcv_error_pkg.g_ret_sts_error;
81:
82: -- in RCVTXDAB.pls
83: IF NOT(rcv_dates_s.val_receipt_date_tolerance(x_expected_receipt_rec.line_location_id, x_expected_receipt_rec.expected_receipt_date)) THEN
84: x_error_status := rcv_error_pkg.g_ret_sts_warning;
85: rcv_error_pkg.set_error_message('RCV_ASN_DATE_OUT_TOL');
86: RAISE e_validation_error;
87: END IF;
88: EXCEPTION
81:
82: -- in RCVTXDAB.pls
83: IF NOT(rcv_dates_s.val_receipt_date_tolerance(x_expected_receipt_rec.line_location_id, x_expected_receipt_rec.expected_receipt_date)) THEN
84: x_error_status := rcv_error_pkg.g_ret_sts_warning;
85: rcv_error_pkg.set_error_message('RCV_ASN_DATE_OUT_TOL');
86: RAISE e_validation_error;
87: END IF;
88: EXCEPTION
89: WHEN e_validation_error THEN
87: END IF;
88: EXCEPTION
89: WHEN e_validation_error THEN
90: x_expected_receipt_rec.error_record.error_status := x_error_status;
91: x_expected_receipt_rec.error_record.error_message := rcv_error_pkg.get_last_message;
92:
93: IF x_expected_receipt_rec.error_record.error_message = 'RCV_ASN_DATE_OUT_TOL' THEN
94: rcv_error_pkg.set_token('DELIVERY DATE', x_expected_receipt_rec.expected_receipt_date);
95: END IF;
90: x_expected_receipt_rec.error_record.error_status := x_error_status;
91: x_expected_receipt_rec.error_record.error_message := rcv_error_pkg.get_last_message;
92:
93: IF x_expected_receipt_rec.error_record.error_message = 'RCV_ASN_DATE_OUT_TOL' THEN
94: rcv_error_pkg.set_token('DELIVERY DATE', x_expected_receipt_rec.expected_receipt_date);
95: END IF;
96: END validate_expected_receipt_date;
97:
98: /*===========================================================================
105: ) IS
106: x_progress VARCHAR2(3);
107: x_error_status VARCHAR2(1);
108: BEGIN
109: x_error_status := rcv_error_pkg.g_ret_sts_error;
110:
111: IF (x_quantity_invoiced_record.quantity_invoiced < 0) THEN
112: rcv_error_pkg.set_error_message('RCV_ITEM_INVOICE_QTY');
113: RAISE e_validation_error;
108: BEGIN
109: x_error_status := rcv_error_pkg.g_ret_sts_error;
110:
111: IF (x_quantity_invoiced_record.quantity_invoiced < 0) THEN
112: rcv_error_pkg.set_error_message('RCV_ITEM_INVOICE_QTY');
113: RAISE e_validation_error;
114: END IF;
115: EXCEPTION
116: WHEN e_validation_error THEN
114: END IF;
115: EXCEPTION
116: WHEN e_validation_error THEN
117: x_quantity_invoiced_record.error_record.error_status := x_error_status;
118: x_quantity_invoiced_record.error_record.error_message := rcv_error_pkg.get_last_message;
119:
120: IF x_quantity_invoiced_record.error_record.error_message = 'RCV_ITEM_INVOICE_QTY' THEN
121: NULL;
122: END IF;
141: x_primary_unit_of_measure mtl_system_items.primary_unit_of_measure%TYPE := NULL;
142: x_error_status VARCHAR2(1);
143: BEGIN
144: -- check that the uom is valid
145: x_error_status := rcv_error_pkg.g_ret_sts_error;
146:
147: SELECT NVL(MAX(unit_of_measure), 'notfound')
148: INTO x_unit_of_measure
149: FROM mtl_units_of_measure
149: FROM mtl_units_of_measure
150: WHERE unit_of_measure = x_uom_record.unit_of_measure;
151:
152: IF (x_unit_of_measure = 'notfound') THEN
153: rcv_error_pkg.set_error_message('PO_PDOI_INVALID_UOM_CODE');
154: RAISE e_validation_error;
155: END IF;
156:
157: -- check that system date is less than the disabled_date
156:
157: -- check that system date is less than the disabled_date
158:
159: IF (NOT(po_uom_s.val_unit_of_measure(x_uom_record.unit_of_measure))) THEN
160: rcv_error_pkg.set_error_message('PO_PDOI_INVALID_UOM_CODE');
161: RAISE e_validation_error;
162: END IF;
163:
164: -- one-time purchase item
173: AND organization_id = NVL(x_uom_record.to_organization_id, organization_id); -- Raj added as org_id is part of uk
174:
175: IF (NVL(x_uom_record.primary_unit_of_measure, x_primary_unit_of_measure) <> x_primary_unit_of_measure) THEN
176: x_uom_record.error_record.error_status := 'W';
177: rcv_error_pkg.set_error_message('RCV_UOM_NOT_PRIMARY');
178: RAISE e_validation_error;
179: END IF;
180:
181: x_new_conversion := 0;
195: x_new_conversion
196: );
197:
198: IF (x_new_conversion = 0) THEN
199: rcv_error_pkg.set_error_message('RCV_UOM_NO_CONV_PRIMARY');
200: RAISE e_validation_error;
201: ELSIF(x_new_conversion <> x_uom_record.primary_quantity) THEN
202: rcv_error_pkg.set_error_message('RCV_QTY_NOT_PRIMARY');
203: RAISE e_validation_error;
198: IF (x_new_conversion = 0) THEN
199: rcv_error_pkg.set_error_message('RCV_UOM_NO_CONV_PRIMARY');
200: RAISE e_validation_error;
201: ELSIF(x_new_conversion <> x_uom_record.primary_quantity) THEN
202: rcv_error_pkg.set_error_message('RCV_QTY_NOT_PRIMARY');
203: RAISE e_validation_error;
204: END IF;
205: END IF;
206:
219: x_new_conversion
220: );
221:
222: IF (x_new_conversion = 0) THEN
223: rcv_error_pkg.set_error_message('RCV_UOM_NO_CONV_PO');
224: RAISE e_validation_error;
225: END IF;
226: END IF;
227:
253: x_new_conversion
254: );
255:
256: IF (x_new_conversion = 0) THEN
257: rcv_error_pkg.set_error_message('RCV_UOM_NO_CONV_ASL');
258: RAISE e_validation_error;
259: END IF;
260: END IF;
261: END IF;
261: END IF;
262: EXCEPTION
263: WHEN e_validation_error THEN
264: x_uom_record.error_record.error_status := x_error_status;
265: x_uom_record.error_record.error_message := rcv_error_pkg.get_last_message;
266:
267: IF x_uom_record.error_record.error_message = 'PO_PDOI_INVALID_UOM_CODE' THEN
268: rcv_error_pkg.set_token('VALUE', x_uom_record.unit_of_measure);
269: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NOT_PRIMARY' THEN
264: x_uom_record.error_record.error_status := x_error_status;
265: x_uom_record.error_record.error_message := rcv_error_pkg.get_last_message;
266:
267: IF x_uom_record.error_record.error_message = 'PO_PDOI_INVALID_UOM_CODE' THEN
268: rcv_error_pkg.set_token('VALUE', x_uom_record.unit_of_measure);
269: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NOT_PRIMARY' THEN
270: NULL;
271: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
272: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
268: rcv_error_pkg.set_token('VALUE', x_uom_record.unit_of_measure);
269: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NOT_PRIMARY' THEN
270: NULL;
271: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
272: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
273: rcv_error_pkg.set_token('PRIMARY_UNIT', x_primary_unit_of_measure);
274: ELSIF x_uom_record.error_record.error_message = 'RCV_QTY_NOT_PRIMARY' THEN
275: NULL;
276: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PO' THEN
269: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NOT_PRIMARY' THEN
270: NULL;
271: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
272: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
273: rcv_error_pkg.set_token('PRIMARY_UNIT', x_primary_unit_of_measure);
274: ELSIF x_uom_record.error_record.error_message = 'RCV_QTY_NOT_PRIMARY' THEN
275: NULL;
276: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PO' THEN
277: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
273: rcv_error_pkg.set_token('PRIMARY_UNIT', x_primary_unit_of_measure);
274: ELSIF x_uom_record.error_record.error_message = 'RCV_QTY_NOT_PRIMARY' THEN
275: NULL;
276: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PO' THEN
277: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
278: rcv_error_pkg.set_token('PO_UNIT', x_unit_meas_lookup_code_lines);
279: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_ASL' THEN
280: rcv_error_pkg.set_token('UNIT', x_uom_record.unit_of_measure);
281: END IF;
274: ELSIF x_uom_record.error_record.error_message = 'RCV_QTY_NOT_PRIMARY' THEN
275: NULL;
276: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PO' THEN
277: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
278: rcv_error_pkg.set_token('PO_UNIT', x_unit_meas_lookup_code_lines);
279: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_ASL' THEN
280: rcv_error_pkg.set_token('UNIT', x_uom_record.unit_of_measure);
281: END IF;
282: END validate_uom;
276: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_PO' THEN
277: rcv_error_pkg.set_token('SHIPMENT_UNIT', x_uom_record.unit_of_measure);
278: rcv_error_pkg.set_token('PO_UNIT', x_unit_meas_lookup_code_lines);
279: ELSIF x_uom_record.error_record.error_message = 'RCV_UOM_NO_CONV_ASL' THEN
280: rcv_error_pkg.set_token('UNIT', x_uom_record.unit_of_measure);
281: END IF;
282: END validate_uom;
283:
284: /*===========================================================================
295: x_organization_id mtl_system_items.organization_id%TYPE := NULL;
296: x_item_id_po po_lines.item_id%TYPE := NULL;
297: x_error_status VARCHAR2(1);
298: BEGIN
299: x_error_status := rcv_error_pkg.g_ret_sts_error;
300:
301: SELECT NVL(MAX(inventory_item_id), -9999)
302: INTO x_inventory_item
303: FROM mtl_system_items
303: FROM mtl_system_items
304: WHERE inventory_item_id = x_item_id_record.item_id;
305:
306: IF (x_inventory_item = -9999) THEN
307: rcv_error_pkg.set_error_message('RCV_ITEM_ID');
308: RAISE e_validation_error;
309: END IF;
310:
311: SELECT NVL(MAX(inventory_item_id), -9999)
314: WHERE SYSDATE BETWEEN NVL(start_date_active, SYSDATE - 1) AND NVL(end_date_active, SYSDATE + 1)
315: AND inventory_item_id = x_item_id_record.item_id;
316:
317: IF (x_inventory_item = -9999) THEN
318: rcv_error_pkg.set_error_message('RCV_ITEM_NOT_ACTIVE');
319: RAISE e_validation_error;
320: END IF;
321:
322: /* Bug 2160314.
333: WHERE inventory_item_id = x_item_id_record.item_id
334: AND organization_id = NVL(x_item_id_record.to_organization_id, organization_id);
335:
336: IF (x_organization_id = -9999) THEN
337: rcv_error_pkg.set_error_message('RCV_ITEM_NOT_IN_ORG');
338: RAISE e_validation_error;
339: END IF;
340:
341: SELECT NVL(MAX(item_id), -9999)
344: WHERE po_line_id = x_item_id_record.po_line_id
345: AND item_id = x_item_id_record.item_id;
346:
347: IF (x_item_id_po = -9999) THEN
348: rcv_error_pkg.set_error_message('RCV_ITEM_NOT_ON_PO');
349: RAISE e_validation_error;
350: END IF;
351:
352: /* Bug 2898324 The non-purchasable items were allowed to be
369: WHERE po_line_id = x_item_id_record.po_line_id
370: AND item_id = x_item_id_record.item_id;
371:
372: IF (x_item_id_po <> x_item_id_record.item_id) THEN
373: rcv_error_pkg.set_error_message('RCV_NOT_PO_LINE_NUM');
374: RAISE e_validation_error;
375: END IF;
376:
377: IF (g_asn_debug = 'Y') THEN
381: END IF;
382: EXCEPTION
383: WHEN e_validation_error THEN
384: x_item_id_record.error_record.error_status := x_error_status;
385: x_item_id_record.error_record.error_message := rcv_error_pkg.get_last_message;
386:
387: IF x_item_id_record.error_record.error_message = 'RCV_ITEM_ID' THEN
388: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
389: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ACTIVE' THEN
384: x_item_id_record.error_record.error_status := x_error_status;
385: x_item_id_record.error_record.error_message := rcv_error_pkg.get_last_message;
386:
387: IF x_item_id_record.error_record.error_message = 'RCV_ITEM_ID' THEN
388: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
389: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ACTIVE' THEN
390: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
391: ELSIF x_item_id_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
392: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
386:
387: IF x_item_id_record.error_record.error_message = 'RCV_ITEM_ID' THEN
388: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
389: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ACTIVE' THEN
390: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
391: ELSIF x_item_id_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
392: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
393: rcv_error_pkg.set_token('ORGANIZATION', x_item_id_record.to_organization_id);
394: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ON_PO' THEN
388: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
389: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ACTIVE' THEN
390: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
391: ELSIF x_item_id_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
392: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
393: rcv_error_pkg.set_token('ORGANIZATION', x_item_id_record.to_organization_id);
394: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ON_PO' THEN
395: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
396: rcv_error_pkg.set_token('PO_NUMBER', x_item_id_record.po_line_id);
389: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ACTIVE' THEN
390: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
391: ELSIF x_item_id_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
392: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
393: rcv_error_pkg.set_token('ORGANIZATION', x_item_id_record.to_organization_id);
394: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ON_PO' THEN
395: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
396: rcv_error_pkg.set_token('PO_NUMBER', x_item_id_record.po_line_id);
397: ELSIF x_item_id_record.error_record.error_message = 'RCV_NOT_PO_LINE_NUM' THEN
391: ELSIF x_item_id_record.error_record.error_message = 'RCV_UOM_NO_CONV_PRIMARY' THEN
392: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
393: rcv_error_pkg.set_token('ORGANIZATION', x_item_id_record.to_organization_id);
394: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ON_PO' THEN
395: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
396: rcv_error_pkg.set_token('PO_NUMBER', x_item_id_record.po_line_id);
397: ELSIF x_item_id_record.error_record.error_message = 'RCV_NOT_PO_LINE_NUM' THEN
398: rcv_error_pkg.set_token('PO_ITEM', x_item_id_po);
399: rcv_error_pkg.set_token('SHIPMENT_ITEM', x_item_id_record.item_id);
392: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
393: rcv_error_pkg.set_token('ORGANIZATION', x_item_id_record.to_organization_id);
394: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ON_PO' THEN
395: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
396: rcv_error_pkg.set_token('PO_NUMBER', x_item_id_record.po_line_id);
397: ELSIF x_item_id_record.error_record.error_message = 'RCV_NOT_PO_LINE_NUM' THEN
398: rcv_error_pkg.set_token('PO_ITEM', x_item_id_po);
399: rcv_error_pkg.set_token('SHIPMENT_ITEM', x_item_id_record.item_id);
400: END IF;
394: ELSIF x_item_id_record.error_record.error_message = 'RCV_ITEM_NOT_ON_PO' THEN
395: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
396: rcv_error_pkg.set_token('PO_NUMBER', x_item_id_record.po_line_id);
397: ELSIF x_item_id_record.error_record.error_message = 'RCV_NOT_PO_LINE_NUM' THEN
398: rcv_error_pkg.set_token('PO_ITEM', x_item_id_po);
399: rcv_error_pkg.set_token('SHIPMENT_ITEM', x_item_id_record.item_id);
400: END IF;
401: END validate_item;
402:
395: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
396: rcv_error_pkg.set_token('PO_NUMBER', x_item_id_record.po_line_id);
397: ELSIF x_item_id_record.error_record.error_message = 'RCV_NOT_PO_LINE_NUM' THEN
398: rcv_error_pkg.set_token('PO_ITEM', x_item_id_po);
399: rcv_error_pkg.set_token('SHIPMENT_ITEM', x_item_id_record.item_id);
400: END IF;
401: END validate_item;
402:
403: /*===========================================================================
410: ) IS
411: x_progress VARCHAR2(3);
412: x_error_status VARCHAR2(1);
413: BEGIN
414: x_error_status := rcv_error_pkg.g_ret_sts_error;
415:
416: IF (x_item_id_record.item_description IS NULL) THEN
417: rcv_error_pkg.set_error_message('RCV_ITEM_NO_DESCRIPTION');
418: RAISE e_validation_error;
413: BEGIN
414: x_error_status := rcv_error_pkg.g_ret_sts_error;
415:
416: IF (x_item_id_record.item_description IS NULL) THEN
417: rcv_error_pkg.set_error_message('RCV_ITEM_NO_DESCRIPTION');
418: RAISE e_validation_error;
419: END IF;
420: EXCEPTION
421: WHEN e_validation_error THEN
419: END IF;
420: EXCEPTION
421: WHEN e_validation_error THEN
422: x_item_id_record.error_record.error_status := x_error_status;
423: x_item_id_record.error_record.error_message := rcv_error_pkg.get_last_message;
424:
425: IF x_item_id_record.error_record.error_message = 'RCV_ITEM_NO_DESCRIPTION' THEN
426: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
427: END IF;
422: x_item_id_record.error_record.error_status := x_error_status;
423: x_item_id_record.error_record.error_message := rcv_error_pkg.get_last_message;
424:
425: IF x_item_id_record.error_record.error_message = 'RCV_ITEM_NO_DESCRIPTION' THEN
426: rcv_error_pkg.set_token('ITEM', x_item_id_record.item_id);
427: END IF;
428: END validate_item_description;
429:
430: /*===========================================================================
439: x_progress VARCHAR2(3);
440: x_vendor_id po_vendors.vendor_id%TYPE := NULL;
441: x_error_status VARCHAR2(1);
442: BEGIN
443: x_error_status := rcv_error_pkg.g_ret_sts_error;
444:
445: SELECT NVL(MAX(inventory_item_id), 0)
446: INTO x_inventory_item
447: FROM mtl_system_items
448: WHERE inventory_item_id = x_sub_item_id_record.substitute_item_id
449: AND organization_id = NVL(x_sub_item_id_record.to_organization_id, organization_id);
450:
451: IF (x_inventory_item = 0) THEN
452: rcv_error_pkg.set_error_message('RCV_ITEM_SUB_ID');
453: RAISE e_validation_error;
454: END IF;
455:
456: SELECT NVL(MAX(inventory_item_id), 0)
460: AND inventory_item_id = x_sub_item_id_record.substitute_item_id
461: AND organization_id = NVL(x_sub_item_id_record.to_organization_id, organization_id);
462:
463: IF (x_inventory_item = 0) THEN
464: rcv_error_pkg.set_error_message('RCV_ITEM_SUB_NOT_ACTIVE');
465: RAISE e_validation_error;
466: END IF;
467:
468: /* Bug 3009663- Commented the check on allow_substitute_receipts_flag at the item level.
474: WHERE inventory_item_id = x_sub_item_id_record.substitute_item_id
475: AND organization_id = NVL(x_sub_item_id_record.to_organization_id, organization_id);
476:
477: IF (x_inventory_item = 0) THEN
478: rcv_error_pkg.set_error_message('RCV_ITEM_SUB_NOT_IN_ORG');
479: RAISE e_validation_error;
480: END IF;
481:
482: SELECT NVL(MAX(inventory_item_id), 0)
486: AND organization_id = NVL(x_sub_item_id_record.to_organization_id, organization_id)
487: AND purchasing_item_flag = 'Y';
488:
489: IF (x_inventory_item = 0) THEN
490: rcv_error_pkg.set_error_message('RCV_ITEM_SUB_NOT_PO_ENABLED');
491: RAISE e_validation_error;
492: END IF;
493:
494: SELECT NVL(MAX(inventory_item_id), 0)
498: AND organization_id = NVL(x_sub_item_id_record.to_organization_id, organization_id)
499: AND purchasing_enabled_flag = 'Y';
500:
501: IF (x_inventory_item = 0) THEN
502: rcv_error_pkg.set_error_message('RCV_ITEM_SUB_NOT_PO_ENABLED');
503: RAISE e_validation_error;
504: END IF;
505:
506: /* Bug 3009663- Commented the check on the allow_substitute_receipt flag at the supplier level */
538:
539: END IF;
540:
541: IF (x_inventory_item = 0) THEN
542: rcv_error_pkg.set_error_message('RCV_ITEM_SUB_NOT_RELATED');
543: RAISE e_validation_error;
544: END IF;
545: EXCEPTION
546: WHEN e_validation_error THEN
544: END IF;
545: EXCEPTION
546: WHEN e_validation_error THEN
547: x_sub_item_id_record.error_record.error_status := x_error_status;
548: x_sub_item_id_record.error_record.error_message := rcv_error_pkg.get_last_message;
549:
550: IF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_ID' THEN
551: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
552: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ACTIVE' THEN
547: x_sub_item_id_record.error_record.error_status := x_error_status;
548: x_sub_item_id_record.error_record.error_message := rcv_error_pkg.get_last_message;
549:
550: IF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_ID' THEN
551: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
552: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ACTIVE' THEN
553: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
554: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ALLOWED' THEN
555: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
549:
550: IF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_ID' THEN
551: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
552: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ACTIVE' THEN
553: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
554: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ALLOWED' THEN
555: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
556: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_IN_ORG' THEN
557: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
551: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
552: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ACTIVE' THEN
553: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
554: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ALLOWED' THEN
555: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
556: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_IN_ORG' THEN
557: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
558: rcv_error_pkg.set_token('ORGANIZATION', x_sub_item_id_record.to_organization_id);
559: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_VEN_NOT_ALLOWED' THEN
553: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
554: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ALLOWED' THEN
555: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
556: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_IN_ORG' THEN
557: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
558: rcv_error_pkg.set_token('ORGANIZATION', x_sub_item_id_record.to_organization_id);
559: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_VEN_NOT_ALLOWED' THEN
560: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
561: rcv_error_pkg.set_token('SUPPLIER', x_sub_item_id_record.vendor_id);
554: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_ALLOWED' THEN
555: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
556: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_IN_ORG' THEN
557: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
558: rcv_error_pkg.set_token('ORGANIZATION', x_sub_item_id_record.to_organization_id);
559: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_VEN_NOT_ALLOWED' THEN
560: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
561: rcv_error_pkg.set_token('SUPPLIER', x_sub_item_id_record.vendor_id);
562: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_PO_ENABLED' THEN
556: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_IN_ORG' THEN
557: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
558: rcv_error_pkg.set_token('ORGANIZATION', x_sub_item_id_record.to_organization_id);
559: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_VEN_NOT_ALLOWED' THEN
560: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
561: rcv_error_pkg.set_token('SUPPLIER', x_sub_item_id_record.vendor_id);
562: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_PO_ENABLED' THEN
563: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
564: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_RELATED' THEN
557: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
558: rcv_error_pkg.set_token('ORGANIZATION', x_sub_item_id_record.to_organization_id);
559: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_VEN_NOT_ALLOWED' THEN
560: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
561: rcv_error_pkg.set_token('SUPPLIER', x_sub_item_id_record.vendor_id);
562: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_PO_ENABLED' THEN
563: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
564: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_RELATED' THEN
565: rcv_error_pkg.set_token('SUB_ITEM', x_sub_item_id_record.substitute_item_id);
559: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_VEN_NOT_ALLOWED' THEN
560: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
561: rcv_error_pkg.set_token('SUPPLIER', x_sub_item_id_record.vendor_id);
562: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_PO_ENABLED' THEN
563: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
564: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_RELATED' THEN
565: rcv_error_pkg.set_token('SUB_ITEM', x_sub_item_id_record.substitute_item_id);
566: rcv_error_pkg.set_token('ITEM', x_inventory_item);
567: END IF;
561: rcv_error_pkg.set_token('SUPPLIER', x_sub_item_id_record.vendor_id);
562: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_PO_ENABLED' THEN
563: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
564: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_RELATED' THEN
565: rcv_error_pkg.set_token('SUB_ITEM', x_sub_item_id_record.substitute_item_id);
566: rcv_error_pkg.set_token('ITEM', x_inventory_item);
567: END IF;
568: END validate_substitute_item;
569:
562: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_PO_ENABLED' THEN
563: rcv_error_pkg.set_token('ITEM', x_sub_item_id_record.substitute_item_id);
564: ELSIF x_sub_item_id_record.error_record.error_message = 'RCV_ITEM_SUB_NOT_RELATED' THEN
565: rcv_error_pkg.set_token('SUB_ITEM', x_sub_item_id_record.substitute_item_id);
566: rcv_error_pkg.set_token('ITEM', x_inventory_item);
567: END IF;
568: END validate_substitute_item;
569:
570: /*===========================================================================
579: x_progress VARCHAR2(3);
580: x_revision_control_flag VARCHAR2(1);
581: x_error_status VARCHAR2(1);
582: BEGIN
583: x_error_status := rcv_error_pkg.g_ret_sts_error;
584:
585: -- check whether the item is under revision control
586: -- If it is not then item should not have any revisions
587:
613: IF (g_asn_debug = 'Y') THEN
614: asn_debug.put_line('Item is not under revision control');
615: END IF;
616:
617: rcv_error_pkg.set_error_message('RCV_ITEM_REV_NOT_ALLOWED');
618: RAISE e_validation_error;
619: END IF;
620:
621: -- Check whether the revision number exists
631: AND organization_id = NVL(x_item_revision_record.to_organization_id, organization_id)
632: AND revision = x_item_revision_record.item_revision;
633:
634: IF (x_inventory_item = 0) THEN
635: rcv_error_pkg.set_error_message('PO_RI_INVALID_ITEM_REVISION');
636: RAISE e_validation_error;
637: END IF;
638:
639: -- Check whether revision is still active
645: AND mir.organization_id = NVL(x_item_revision_record.to_organization_id, mir.organization_id)
646: AND mir.revision = x_item_revision_record.item_revision;
647:
648: IF (x_inventory_item = 0) THEN
649: rcv_error_pkg.set_error_message('PO_RI_INVALID_ITEM_REVISION');
650: RAISE e_validation_error;
651: END IF;
652:
653: -- Check whether po_revision matches this revision if po_revision is not null
658: WHERE po_line_id = x_item_revision_record.po_line_id
659: AND NVL(item_revision, x_item_revision_record.item_revision) = x_item_revision_record.item_revision;
660:
661: IF (x_inventory_item = 0) THEN
662: x_error_status := rcv_error_pkg.g_ret_sts_warning;
663: rcv_error_pkg.set_error_message('RCV_NOT_PO_REVISION');
664: RAISE e_validation_error;
665: END IF;
666: EXCEPTION
659: AND NVL(item_revision, x_item_revision_record.item_revision) = x_item_revision_record.item_revision;
660:
661: IF (x_inventory_item = 0) THEN
662: x_error_status := rcv_error_pkg.g_ret_sts_warning;
663: rcv_error_pkg.set_error_message('RCV_NOT_PO_REVISION');
664: RAISE e_validation_error;
665: END IF;
666: EXCEPTION
667: WHEN e_validation_error THEN
665: END IF;
666: EXCEPTION
667: WHEN e_validation_error THEN
668: x_item_revision_record.error_record.error_status := x_error_status;
669: x_item_revision_record.error_record.error_message := rcv_error_pkg.get_last_message;
670:
671: IF x_item_revision_record.error_record.error_message = 'RCV_ITEM_REV_NOT_ALLOWED' THEN
672: rcv_error_pkg.set_token('ITEM', x_item_revision_record.item_id);
673: ELSIF x_item_revision_record.error_record.error_message = 'PO_RI_INVALID_ITEM_REVISION' THEN
668: x_item_revision_record.error_record.error_status := x_error_status;
669: x_item_revision_record.error_record.error_message := rcv_error_pkg.get_last_message;
670:
671: IF x_item_revision_record.error_record.error_message = 'RCV_ITEM_REV_NOT_ALLOWED' THEN
672: rcv_error_pkg.set_token('ITEM', x_item_revision_record.item_id);
673: ELSIF x_item_revision_record.error_record.error_message = 'PO_RI_INVALID_ITEM_REVISION' THEN
674: NULL;
675: ELSIF x_item_revision_record.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
676: rcv_error_pkg.set_token('PO_REV', '');
672: rcv_error_pkg.set_token('ITEM', x_item_revision_record.item_id);
673: ELSIF x_item_revision_record.error_record.error_message = 'PO_RI_INVALID_ITEM_REVISION' THEN
674: NULL;
675: ELSIF x_item_revision_record.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
676: rcv_error_pkg.set_token('PO_REV', '');
677: rcv_error_pkg.set_token('SHIPMENT_REV', x_item_revision_record.item_revision);
678: END IF;
679: END validate_item_revision;
680:
673: ELSIF x_item_revision_record.error_record.error_message = 'PO_RI_INVALID_ITEM_REVISION' THEN
674: NULL;
675: ELSIF x_item_revision_record.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
676: rcv_error_pkg.set_token('PO_REV', '');
677: rcv_error_pkg.set_token('SHIPMENT_REV', x_item_revision_record.item_revision);
678: END IF;
679: END validate_item_revision;
680:
681: /*===========================================================================
692: x_po_vendor_site_id po_headers.vendor_site_id%TYPE := NULL;
693: x_progress VARCHAR2(3);
694: x_error_status VARCHAR2(1);
695: BEGIN
696: x_error_status := rcv_error_pkg.g_ret_sts_error;
697:
698: IF (x_ref_integrity_rec.vendor_item_num IS NOT NULL) THEN
699: SELECT NVL(MAX(po_line_id), 0)
700: INTO x_po_line_id
702: WHERE po_line_id = x_ref_integrity_rec.po_line_id
703: AND vendor_product_num = x_ref_integrity_rec.vendor_item_num;
704:
705: IF (x_po_line_id = 0) THEN
706: rcv_error_pkg.set_error_message('RCV_NOT_PO_VEN_ITEM');
707: RAISE e_validation_error;
708: END IF;
709: END IF;
710:
720: WHERE po_header_id = x_ref_integrity_rec.po_header_id
721: AND vendor_id = x_ref_integrity_rec.vendor_id;
722:
723: IF (x_po_vendor_id = 0) THEN
724: rcv_error_pkg.set_error_message('RCV_NOT_PO_VEN');
725: RAISE e_validation_error;
726: END IF;
727: END IF;
728:
729: -- Check for header.vendor = lines.vendor
730:
731: IF v_header_record.header_record.vendor_id IS NOT NULL THEN
732: IF v_header_record.header_record.vendor_id <> NVL(x_ref_integrity_rec.vendor_id, v_header_record.header_record.vendor_id) THEN
733: rcv_error_pkg.set_error_message('RCV_ERC_MISMATCH_PO_VENDOR');
734: RAISE e_validation_error;
735: END IF;
736: END IF;
737:
742: WHERE po_header_id = x_ref_integrity_rec.po_header_id
743: AND vendor_site_id = x_ref_integrity_rec.vendor_site_id;
744:
745: IF (x_po_vendor_site_id = 0) THEN
746: rcv_error_pkg.set_error_message('RCV_NOT_PO_VEN_SITE');
747: RAISE e_validation_error;
748: END IF;
749: END IF;
750:
755: WHERE po_header_id = x_ref_integrity_rec.po_header_id
756: AND revision_num = x_ref_integrity_rec.po_revision_num;
757:
758: IF (x_po_vendor_site_id = 0) THEN
759: rcv_error_pkg.set_error_message('RCV_NOT_PO_REVISION');
760: RAISE e_validation_error;
761: END IF;
762: END IF;
763: EXCEPTION
762: END IF;
763: EXCEPTION
764: WHEN e_validation_error THEN
765: x_ref_integrity_rec.error_record.error_status := x_error_status;
766: x_ref_integrity_rec.error_record.error_message := rcv_error_pkg.get_last_message;
767:
768: IF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN_ITEM' THEN
769: rcv_error_pkg.set_token('PO_SUPPLIER_ITEM', '');
770: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER_ITEM', x_ref_integrity_rec.vendor_item_num);
765: x_ref_integrity_rec.error_record.error_status := x_error_status;
766: x_ref_integrity_rec.error_record.error_message := rcv_error_pkg.get_last_message;
767:
768: IF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN_ITEM' THEN
769: rcv_error_pkg.set_token('PO_SUPPLIER_ITEM', '');
770: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER_ITEM', x_ref_integrity_rec.vendor_item_num);
771: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN' THEN
772: rcv_error_pkg.set_token('PO_SUPPLIER', x_po_vendor_id);
773: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER', x_ref_integrity_rec.vendor_id);
766: x_ref_integrity_rec.error_record.error_message := rcv_error_pkg.get_last_message;
767:
768: IF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN_ITEM' THEN
769: rcv_error_pkg.set_token('PO_SUPPLIER_ITEM', '');
770: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER_ITEM', x_ref_integrity_rec.vendor_item_num);
771: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN' THEN
772: rcv_error_pkg.set_token('PO_SUPPLIER', x_po_vendor_id);
773: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER', x_ref_integrity_rec.vendor_id);
774: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_ERC_MISMATCH_PO_VENDOR' THEN
768: IF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN_ITEM' THEN
769: rcv_error_pkg.set_token('PO_SUPPLIER_ITEM', '');
770: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER_ITEM', x_ref_integrity_rec.vendor_item_num);
771: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN' THEN
772: rcv_error_pkg.set_token('PO_SUPPLIER', x_po_vendor_id);
773: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER', x_ref_integrity_rec.vendor_id);
774: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_ERC_MISMATCH_PO_VENDOR' THEN
775: NULL;
776: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
769: rcv_error_pkg.set_token('PO_SUPPLIER_ITEM', '');
770: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER_ITEM', x_ref_integrity_rec.vendor_item_num);
771: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_VEN' THEN
772: rcv_error_pkg.set_token('PO_SUPPLIER', x_po_vendor_id);
773: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER', x_ref_integrity_rec.vendor_id);
774: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_ERC_MISMATCH_PO_VENDOR' THEN
775: NULL;
776: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
777: rcv_error_pkg.set_token('PO_REV', '');
773: rcv_error_pkg.set_token('SHIPMENT_SUPPLIER', x_ref_integrity_rec.vendor_id);
774: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_ERC_MISMATCH_PO_VENDOR' THEN
775: NULL;
776: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
777: rcv_error_pkg.set_token('PO_REV', '');
778: rcv_error_pkg.set_token('SHIPMENT_REV', x_ref_integrity_rec.po_revision_num);
779: END IF;
780: END validate_ref_integ;
781:
774: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_ERC_MISMATCH_PO_VENDOR' THEN
775: NULL;
776: ELSIF x_ref_integrity_rec.error_record.error_message = 'RCV_NOT_PO_REVISION' THEN
777: rcv_error_pkg.set_token('PO_REV', '');
778: rcv_error_pkg.set_token('SHIPMENT_REV', x_ref_integrity_rec.po_revision_num);
779: END IF;
780: END validate_ref_integ;
781:
782: /*===========================================================================
790: x_freight_code org_freight_code_val_v.freight_code%TYPE;
791: x_progress VARCHAR2(3);
792: x_error_status VARCHAR2(1);
793: BEGIN
794: x_error_status := rcv_error_pkg.g_ret_sts_error;
795:
796: SELECT NVL(MAX(freight_code), 'notfound')
797: INTO x_freight_code
798: FROM org_freight_code_val_v
799: WHERE freight_code = x_freight_carrier_record.freight_carrier_code
800: AND organization_id = NVL(x_freight_carrier_record.to_organization_id, organization_id);
801:
802: IF (x_freight_code = 'notfound') THEN
803: rcv_error_pkg.set_error_message('RCV_CARRIER_DISABLED');
804: RAISE e_validation_error;
805: END IF;
806:
807: SELECT NVL(MAX(freight_code), 'notfound')
811: AND freight_code = x_freight_carrier_record.freight_carrier_code
812: AND NVL(disable_date, SYSDATE + 1) > SYSDATE;
813:
814: IF (x_freight_code = 'notfound') THEN
815: rcv_error_pkg.set_error_message('RCV_CARRIER_DISABLED');
816: RAISE e_validation_error;
817: END IF;
818: EXCEPTION
819: WHEN e_validation_error THEN
817: END IF;
818: EXCEPTION
819: WHEN e_validation_error THEN
820: x_freight_carrier_record.error_record.error_status := x_error_status;
821: x_freight_carrier_record.error_record.error_message := rcv_error_pkg.get_last_message;
822:
823: IF x_freight_carrier_record.error_record.error_message = 'RCV_NOT_PO_VEN_ITEM' THEN
824: rcv_error_pkg.set_token('CARRIER', x_freight_carrier_record.freight_carrier_code);
825: END IF;
820: x_freight_carrier_record.error_record.error_status := x_error_status;
821: x_freight_carrier_record.error_record.error_message := rcv_error_pkg.get_last_message;
822:
823: IF x_freight_carrier_record.error_record.error_message = 'RCV_NOT_PO_VEN_ITEM' THEN
824: rcv_error_pkg.set_token('CARRIER', x_freight_carrier_record.freight_carrier_code);
825: END IF;
826: END validate_freight_carrier;
827:
828: /*===========================================================================
836: x_name ap_tax_codes.NAME%TYPE := NULL;
837: x_progress VARCHAR2(3);
838: x_error_status VARCHAR2(1);
839: BEGIN
840: x_error_status := rcv_error_pkg.g_ret_sts_error;
841:
842: SELECT NVL(MAX(NAME), 'notfound')
843: INTO x_name
844: FROM ap_tax_codes
844: FROM ap_tax_codes
845: WHERE NAME = x_tax_name_record.tax_name;
846:
847: IF (x_name = 'notfound') THEN
848: rcv_error_pkg.set_error_message('RCV_ASBN_ITEM_TAX_CODE_DISABLE');
849: RAISE e_validation_error;
850: END IF;
851:
852: SELECT NVL(MAX(NAME), 'notfound')
855: WHERE NAME = x_tax_name_record.tax_name
856: AND NVL(inactive_date, SYSDATE + 1) > SYSDATE;
857:
858: IF (x_name = 'notfound') THEN
859: rcv_error_pkg.set_error_message('RCV_ASBN_ITEM_TAX_CODE_DISABLE');
860: RAISE e_validation_error;
861: END IF;
862: EXCEPTION
863: WHEN e_validation_error THEN
861: END IF;
862: EXCEPTION
863: WHEN e_validation_error THEN
864: x_tax_name_record.error_record.error_status := x_error_status;
865: x_tax_name_record.error_record.error_message := rcv_error_pkg.get_last_message;
866:
867: IF x_tax_name_record.error_record.error_message = 'RCV_ASBN_ITEM_TAX_CODE_DISABLE' THEN
868: rcv_error_pkg.set_token('TAX_CODE', x_tax_name_record.tax_name);
869: END IF;
864: x_tax_name_record.error_record.error_status := x_error_status;
865: x_tax_name_record.error_record.error_message := rcv_error_pkg.get_last_message;
866:
867: IF x_tax_name_record.error_record.error_message = 'RCV_ASBN_ITEM_TAX_CODE_DISABLE' THEN
868: rcv_error_pkg.set_token('TAX_CODE', x_tax_name_record.tax_name);
869: END IF;
870: WHEN OTHERS THEN
871: x_tax_name_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
872: rcv_error_pkg.set_sql_error_message('validate_tax_code', 000);
867: IF x_tax_name_record.error_record.error_message = 'RCV_ASBN_ITEM_TAX_CODE_DISABLE' THEN
868: rcv_error_pkg.set_token('TAX_CODE', x_tax_name_record.tax_name);
869: END IF;
870: WHEN OTHERS THEN
871: x_tax_name_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
872: rcv_error_pkg.set_sql_error_message('validate_tax_code', 000);
873: x_tax_name_record.error_record.error_status := rcv_error_pkg.get_last_message;
874: END validate_tax_code;
875:
868: rcv_error_pkg.set_token('TAX_CODE', x_tax_name_record.tax_name);
869: END IF;
870: WHEN OTHERS THEN
871: x_tax_name_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
872: rcv_error_pkg.set_sql_error_message('validate_tax_code', 000);
873: x_tax_name_record.error_record.error_status := rcv_error_pkg.get_last_message;
874: END validate_tax_code;
875:
876: /*===========================================================================
869: END IF;
870: WHEN OTHERS THEN
871: x_tax_name_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
872: rcv_error_pkg.set_sql_error_message('validate_tax_code', 000);
873: x_tax_name_record.error_record.error_status := rcv_error_pkg.get_last_message;
874: END validate_tax_code;
875:
876: /*===========================================================================
877:
885: x_success VARCHAR2(10) := NULL;
886: x_progress VARCHAR2(3);
887: x_error_status VARCHAR2(1);
888: BEGIN
889: x_error_status := rcv_error_pkg.g_ret_sts_error;
890:
891: -- first check if the po from the shipment is a supply agreement blanket purchase
892:
893: IF (g_asn_debug = 'Y') THEN
920: asn_debug.put_line('PO Approved supplier list ' || x_success);
921: END IF;
922:
923: IF (x_success = 'notfound') THEN
924: rcv_error_pkg.set_error_message('RCV_ASL_NOT_FOUND');
925: RAISE e_validation_error;
926: END IF;
927: EXCEPTION
928: WHEN e_validation_error THEN
926: END IF;
927: EXCEPTION
928: WHEN e_validation_error THEN
929: x_asl_record.error_record.error_status := x_error_status;
930: x_asl_record.error_record.error_message := rcv_error_pkg.get_last_message;
931:
932: IF x_asl_record.error_record.error_message = 'RCV_ASL_NOT_FOUND' THEN
933: rcv_error_pkg.set_token('ITEM', x_asl_record.item_id);
934: END IF;
929: x_asl_record.error_record.error_status := x_error_status;
930: x_asl_record.error_record.error_message := rcv_error_pkg.get_last_message;
931:
932: IF x_asl_record.error_record.error_message = 'RCV_ASL_NOT_FOUND' THEN
933: rcv_error_pkg.set_token('ITEM', x_asl_record.item_id);
934: END IF;
935: END validate_asl;
936:
937: /*===========================================================================
954: x_total_cum_shipped NUMBER;
955: x_new_conversion NUMBER := 0;
956: x_error_status VARCHAR2(1);
957: BEGIN
958: x_error_status := rcv_error_pkg.g_ret_sts_error;
959:
960: -- first check if the po from the shipment is a supply agreement blanket purchase
961:
962: IF (g_asn_debug = 'Y') THEN
985: END IF;
986:
987: IF (x_success = 'Y') THEN
988: IF (x_cum_quantity_record.vendor_cum_shipped_qty < 0) THEN
989: rcv_error_pkg.set_error_message('RCV_ASL_NO_CUM_QTY');
990: RAISE e_validation_error;
991: END IF;
992: END IF;
993: END IF;
1075: asn_debug.put_line('Derived Cum Quantity ' || TO_CHAR(NVL(x_total_cum_shipped, -999)));
1076: END IF;
1077:
1078: IF (x_total_cum_shipped <> NVL(x_cum_quantity_record.vendor_cum_shipped_qty, 0)) THEN
1079: rcv_error_pkg.set_error_message('RCV_RCV_NO_MATCH_ASN_CUM');
1080: RAISE e_validation_error;
1081: END IF;
1082: END IF;
1083: END IF;
1083: END IF;
1084: EXCEPTION
1085: WHEN e_validation_error THEN
1086: x_cum_quantity_record.error_record.error_status := x_error_status;
1087: x_cum_quantity_record.error_record.error_message := rcv_error_pkg.get_last_message;
1088:
1089: IF x_cum_quantity_record.error_record.error_message = 'RCV_ASL_NO_CUM_QTY' THEN
1090: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1091: ELSIF x_cum_quantity_record.error_record.error_message = 'RCV_RCV_NO_MATCH_ASN_CUM' THEN
1086: x_cum_quantity_record.error_record.error_status := x_error_status;
1087: x_cum_quantity_record.error_record.error_message := rcv_error_pkg.get_last_message;
1088:
1089: IF x_cum_quantity_record.error_record.error_message = 'RCV_ASL_NO_CUM_QTY' THEN
1090: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1091: ELSIF x_cum_quantity_record.error_record.error_message = 'RCV_RCV_NO_MATCH_ASN_CUM' THEN
1092: rcv_error_pkg.set_token('SHIPMENT', '');
1093: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1094: END IF;
1088:
1089: IF x_cum_quantity_record.error_record.error_message = 'RCV_ASL_NO_CUM_QTY' THEN
1090: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1091: ELSIF x_cum_quantity_record.error_record.error_message = 'RCV_RCV_NO_MATCH_ASN_CUM' THEN
1092: rcv_error_pkg.set_token('SHIPMENT', '');
1093: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1094: END IF;
1095: END validate_cum_quantity_shipped;
1096:
1089: IF x_cum_quantity_record.error_record.error_message = 'RCV_ASL_NO_CUM_QTY' THEN
1090: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1091: ELSIF x_cum_quantity_record.error_record.error_message = 'RCV_RCV_NO_MATCH_ASN_CUM' THEN
1092: rcv_error_pkg.set_token('SHIPMENT', '');
1093: rcv_error_pkg.set_token('ITEM', x_cum_quantity_record.item_id);
1094: END IF;
1095: END validate_cum_quantity_shipped;
1096:
1097: /*===========================================================================
1105: x_progress VARCHAR2(3) := NULL;
1106: x_lookup_code VARCHAR2(25) := NULL;
1107: x_error_status VARCHAR2(1);
1108: BEGIN
1109: x_error_status := rcv_error_pkg.g_ret_sts_error;
1110: x_progress := '005';
1111:
1112: SELECT NVL(MAX(pol.lookup_code), 'notfound')
1113: INTO x_lookup_code
1116: AND pol.lookup_type = x_po_lookup_code_record.lookup_type;
1117:
1118: IF ( x_lookup_code = 'notfound'
1119: AND x_po_lookup_code_record.lookup_type = 'RCV DESTINATION TYPE') THEN
1120: rcv_error_pkg.set_error_message('RCV_DEST_TYPE_CODE_INVALID');
1121: RAISE e_validation_error;
1122: END IF;
1123: EXCEPTION
1124: WHEN e_validation_error THEN
1122: END IF;
1123: EXCEPTION
1124: WHEN e_validation_error THEN
1125: x_po_lookup_code_record.error_record.error_status := x_error_status;
1126: x_po_lookup_code_record.error_record.error_message := rcv_error_pkg.get_last_message;
1127:
1128: IF x_po_lookup_code_record.error_record.error_message = 'RCV_DEST_TYPE_CODE_INVALID' THEN
1129: NULL;
1130: END IF;
1128: IF x_po_lookup_code_record.error_record.error_message = 'RCV_DEST_TYPE_CODE_INVALID' THEN
1129: NULL;
1130: END IF;
1131: WHEN OTHERS THEN
1132: x_po_lookup_code_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1133: rcv_error_pkg.set_sql_error_message('validate_po_lookup_code', 000);
1134: x_po_lookup_code_record.error_record.error_status := rcv_error_pkg.get_last_message;
1135: END validate_po_lookup_code;
1136:
1129: NULL;
1130: END IF;
1131: WHEN OTHERS THEN
1132: x_po_lookup_code_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1133: rcv_error_pkg.set_sql_error_message('validate_po_lookup_code', 000);
1134: x_po_lookup_code_record.error_record.error_status := rcv_error_pkg.get_last_message;
1135: END validate_po_lookup_code;
1136:
1137: /*===========================================================================
1130: END IF;
1131: WHEN OTHERS THEN
1132: x_po_lookup_code_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1133: rcv_error_pkg.set_sql_error_message('validate_po_lookup_code', 000);
1134: x_po_lookup_code_record.error_record.error_status := rcv_error_pkg.get_last_message;
1135: END validate_po_lookup_code;
1136:
1137: /*===========================================================================
1138:
1145: x_progress VARCHAR2(3) := NULL;
1146: x_subinventory VARCHAR2(10) := NULL;
1147: x_error_status VARCHAR2(1);
1148: BEGIN
1149: x_error_status := rcv_error_pkg.g_ret_sts_error;
1150: x_progress := '005';
1151:
1152: /*
1153: ** Only go through these validation routines if the destination type
1158: RETURN;
1159: END IF;
1160:
1161: IF (x_subinventory_record.subinventory IS NULL) THEN
1162: rcv_error_pkg.set_error_message('RCV_DEST_SUB_NA');
1163: RAISE e_validation_error;
1164: END IF;
1165:
1166: /*
1187: )
1188: );
1189:
1190: IF (x_subinventory = 'notfound') THEN
1191: rcv_error_pkg.set_error_message('RCV_DEST_SUB_INVALID');
1192: RAISE e_validation_error;
1193: END IF;
1194: EXCEPTION
1195: WHEN e_validation_error THEN
1193: END IF;
1194: EXCEPTION
1195: WHEN e_validation_error THEN
1196: x_subinventory_record.error_record.error_status := x_error_status;
1197: x_subinventory_record.error_record.error_message := rcv_error_pkg.get_last_message;
1198:
1199: IF x_subinventory_record.error_record.error_message = 'RCV_DEST_SUB_NA' THEN
1200: NULL;
1201: ELSIF x_subinventory_record.error_record.error_message = 'RCV_DEST_SUB_INVALID' THEN
1201: ELSIF x_subinventory_record.error_record.error_message = 'RCV_DEST_SUB_INVALID' THEN
1202: NULL;
1203: END IF;
1204: WHEN OTHERS THEN
1205: x_subinventory_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1206: rcv_error_pkg.set_sql_error_message('validate_subinventory', x_progress);
1207: x_subinventory_record.error_record.error_status := rcv_error_pkg.get_last_message;
1208: END validate_subinventory;
1209:
1202: NULL;
1203: END IF;
1204: WHEN OTHERS THEN
1205: x_subinventory_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1206: rcv_error_pkg.set_sql_error_message('validate_subinventory', x_progress);
1207: x_subinventory_record.error_record.error_status := rcv_error_pkg.get_last_message;
1208: END validate_subinventory;
1209:
1210: /*===========================================================================
1203: END IF;
1204: WHEN OTHERS THEN
1205: x_subinventory_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1206: rcv_error_pkg.set_sql_error_message('validate_subinventory', x_progress);
1207: x_subinventory_record.error_record.error_status := rcv_error_pkg.get_last_message;
1208: END validate_subinventory;
1209:
1210: /*===========================================================================
1211:
1218: x_progress VARCHAR2(3) := NULL;
1219: x_location NUMBER;
1220: x_error_status VARCHAR2(1);
1221: BEGIN
1222: x_error_status := rcv_error_pkg.g_ret_sts_error;
1223: x_progress := '005';
1224:
1225: /*
1226: ** The location id must be set if you're delivering items to either an
1230: */
1231: IF ( x_location_record.location_id IS NULL
1232: AND x_location_record.destination_type_code IN('EXPENSE', 'SHOP FLOOR')
1233: AND x_location_record.location_type_code = 'DELIVER_TO') THEN
1234: rcv_error_pkg.set_error_message('RCV_DELIVER_TO_LOC_NA');
1235: RAISE e_validation_error;
1236: ELSIF( x_location_record.location_id IS NULL
1237: AND x_location_record.location_type_code = 'SHIP_TO') THEN
1238: rcv_error_pkg.set_error_message('RCV_SHIP_TO_LOC_NA');
1234: rcv_error_pkg.set_error_message('RCV_DELIVER_TO_LOC_NA');
1235: RAISE e_validation_error;
1236: ELSIF( x_location_record.location_id IS NULL
1237: AND x_location_record.location_type_code = 'SHIP_TO') THEN
1238: rcv_error_pkg.set_error_message('RCV_SHIP_TO_LOC_NA');
1239: RAISE e_validation_error;
1240: ELSIF(x_location_record.location_id IS NULL) THEN
1241: RETURN;
1242: END IF;
1271: AND (hz.location_id = x_location_record.location_id);
1272: EXCEPTION
1273: WHEN NO_DATA_FOUND THEN
1274: IF (x_location_record.location_type_code = 'DELIVER_TO') THEN
1275: rcv_error_pkg.set_error_message('RCV_DELIVER_TO_LOC_INVALID');
1276: RAISE e_validation_error;
1277: ELSE
1278: rcv_error_pkg.set_error_message('RCV_SHIP_TO_LOC_NA');
1279: RAISE e_validation_error;
1274: IF (x_location_record.location_type_code = 'DELIVER_TO') THEN
1275: rcv_error_pkg.set_error_message('RCV_DELIVER_TO_LOC_INVALID');
1276: RAISE e_validation_error;
1277: ELSE
1278: rcv_error_pkg.set_error_message('RCV_SHIP_TO_LOC_NA');
1279: RAISE e_validation_error;
1280: END IF;
1281: END;
1282: END;
1282: END;
1283: EXCEPTION
1284: WHEN e_validation_error THEN
1285: x_location_record.error_record.error_status := x_error_status;
1286: x_location_record.error_record.error_message := rcv_error_pkg.get_last_message;
1287:
1288: IF x_location_record.error_record.error_message = 'RCV_DELIVER_TO_LOC_NA' THEN
1289: NULL;
1290: ELSIF x_location_record.error_record.error_message = 'RCV_SHIP_TO_LOC_NA' THEN
1292: ELSIF x_location_record.error_record.error_message = 'RCV_DELIVER_TO_LOC_INVALID' THEN
1293: NULL;
1294: END IF;
1295: WHEN OTHERS THEN
1296: x_location_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1297: rcv_error_pkg.set_sql_error_message('validate_location', x_progress);
1298: x_location_record.error_record.error_status := rcv_error_pkg.get_last_message;
1299: END validate_location;
1300:
1293: NULL;
1294: END IF;
1295: WHEN OTHERS THEN
1296: x_location_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1297: rcv_error_pkg.set_sql_error_message('validate_location', x_progress);
1298: x_location_record.error_record.error_status := rcv_error_pkg.get_last_message;
1299: END validate_location;
1300:
1301: /*===========================================================================
1294: END IF;
1295: WHEN OTHERS THEN
1296: x_location_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1297: rcv_error_pkg.set_sql_error_message('validate_location', x_progress);
1298: x_location_record.error_record.error_status := rcv_error_pkg.get_last_message;
1299: END validate_location;
1300:
1301: /*===========================================================================
1302:
1309: x_progress VARCHAR2(3) := NULL;
1310: x_full_name VARCHAR2(240) := NULL;
1311: x_error_status VARCHAR2(1);
1312: BEGIN
1313: x_error_status := rcv_error_pkg.g_ret_sts_error;
1314: x_progress := '005';
1315:
1316: IF (x_employee_record.employee_id IS NULL) THEN
1317: RETURN;
1332: IF (x_full_name = 'notfound') THEN
1333: /*
1334: ** DEBUG: Need another message for an invalid person
1335: */
1336: rcv_error_pkg.set_error_message('RCV_ALL_MISSING_DELIVER_PERSON');
1337: RAISE e_validation_error;
1338: END IF;
1339: EXCEPTION
1340: WHEN e_validation_error THEN
1338: END IF;
1339: EXCEPTION
1340: WHEN e_validation_error THEN
1341: x_employee_record.error_record.error_status := x_error_status;
1342: x_employee_record.error_record.error_message := rcv_error_pkg.get_last_message;
1343:
1344: IF x_employee_record.error_record.error_message = 'RCV_ALL_MISSING_DELIVER_PERSON' THEN
1345: NULL;
1346: END IF;
1344: IF x_employee_record.error_record.error_message = 'RCV_ALL_MISSING_DELIVER_PERSON' THEN
1345: NULL;
1346: END IF;
1347: WHEN OTHERS THEN
1348: x_employee_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1349: rcv_error_pkg.set_sql_error_message('validate_employee', x_progress);
1350: x_employee_record.error_record.error_status := rcv_error_pkg.get_last_message;
1351: END validate_employee;
1352:
1345: NULL;
1346: END IF;
1347: WHEN OTHERS THEN
1348: x_employee_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1349: rcv_error_pkg.set_sql_error_message('validate_employee', x_progress);
1350: x_employee_record.error_record.error_status := rcv_error_pkg.get_last_message;
1351: END validate_employee;
1352:
1353: /*===========================================================================
1346: END IF;
1347: WHEN OTHERS THEN
1348: x_employee_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1349: rcv_error_pkg.set_sql_error_message('validate_employee', x_progress);
1350: x_employee_record.error_record.error_status := rcv_error_pkg.get_last_message;
1351: END validate_employee;
1352:
1353: /*===========================================================================
1354:
1361: x_progress VARCHAR2(3) := NULL;
1362: x_locator VARCHAR2(81) := NULL;
1363: x_error_status VARCHAR2(1);
1364: BEGIN
1365: x_error_status := rcv_error_pkg.g_ret_sts_error;
1366: x_progress := '005';
1367:
1368: /*
1369: ** Only go through these validation routines if the destination type
1401: IF (x_locator_record.locator_id IS NOT NULL) THEN
1402: IF (g_asn_debug = 'Y') THEN
1403: asn_debug.put_line('Error: Subinventory is not locator controlled, but locator info is given');
1404: END IF;
1405: rcv_error_pkg.set_error_message('RCV_NO_LOCATOR_CONTROL');
1406: RAISE e_validation_error;
1407: END IF;
1408: return;
1409: /* end changes for bug 7488437*/
1475: IF (g_asn_debug = 'Y') THEN
1476: asn_debug.put_line('In locator Errors');
1477: END IF;
1478:
1479: rcv_error_pkg.set_error_message('RCV_ALL_REQUIRED_LOCATOR');
1480: RAISE e_validation_error;
1481: END IF;
1482: EXCEPTION
1483: WHEN e_validation_error THEN
1481: END IF;
1482: EXCEPTION
1483: WHEN e_validation_error THEN
1484: x_locator_record.error_record.error_status := x_error_status;
1485: x_locator_record.error_record.error_message := rcv_error_pkg.get_last_message;
1486:
1487: IF x_locator_record.error_record.error_message = 'RCV_ALL_REQUIRED_LOCATOR' THEN
1488: NULL;
1489: END IF;
1487: IF x_locator_record.error_record.error_message = 'RCV_ALL_REQUIRED_LOCATOR' THEN
1488: NULL;
1489: END IF;
1490: WHEN OTHERS THEN
1491: x_locator_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1492: rcv_error_pkg.set_sql_error_message('validate_locator', x_progress);
1493: x_locator_record.error_record.error_status := rcv_error_pkg.get_last_message;
1494: END validate_locator;
1495:
1488: NULL;
1489: END IF;
1490: WHEN OTHERS THEN
1491: x_locator_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1492: rcv_error_pkg.set_sql_error_message('validate_locator', x_progress);
1493: x_locator_record.error_record.error_status := rcv_error_pkg.get_last_message;
1494: END validate_locator;
1495:
1496:
1489: END IF;
1490: WHEN OTHERS THEN
1491: x_locator_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1492: rcv_error_pkg.set_sql_error_message('validate_locator', x_progress);
1493: x_locator_record.error_record.error_status := rcv_error_pkg.get_last_message;
1494: END validate_locator;
1495:
1496:
1497: /*===========================================================================
1514: L_RETURN_STATUS VARCHAR2(1);
1515: L_MODE VARCHAR2(10) := 'SPECIFIC'; --BUG 9742249
1516: L_REQUIRED_FLAG VARCHAR2(10) := 'Y'; --BUG 9742249
1517: BEGIN
1518: X_ERROR_STATUS := RCV_ERROR_PKG.G_RET_STS_ERROR;
1519: X_PROGRESS := '005';
1520:
1521: IF X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS NOT IN ('S','W') THEN
1522: RETURN;
1596:
1597:
1598: IF (NVL(X_LOCATOR_RECORD.PROJECT_ID, X_PROJECT_ID) <> X_PROJECT_ID OR
1599: NVL(X_LOCATOR_RECORD.TASK_ID, X_TASK_ID) <> X_TASK_ID) THEN
1600: RCV_ERROR_PKG.SET_ERROR_MESSAGE('RCV_ALL_INVALID_LOCATOR');
1601: RCV_ERROR_PKG.SET_TOKEN('LOCATOR',X_LOCATOR_RECORD.LOCATOR);
1602: ASN_DEBUG.PUT_LINE('ROI PROJECT TASK ID <> POD PROJECT TASK ID');
1603: ASN_DEBUG.PUT_LINE('INVALID PROJECT TASK ID FOR PROJECT ENABLED LOCATOR');
1604:
1597:
1598: IF (NVL(X_LOCATOR_RECORD.PROJECT_ID, X_PROJECT_ID) <> X_PROJECT_ID OR
1599: NVL(X_LOCATOR_RECORD.TASK_ID, X_TASK_ID) <> X_TASK_ID) THEN
1600: RCV_ERROR_PKG.SET_ERROR_MESSAGE('RCV_ALL_INVALID_LOCATOR');
1601: RCV_ERROR_PKG.SET_TOKEN('LOCATOR',X_LOCATOR_RECORD.LOCATOR);
1602: ASN_DEBUG.PUT_LINE('ROI PROJECT TASK ID <> POD PROJECT TASK ID');
1603: ASN_DEBUG.PUT_LINE('INVALID PROJECT TASK ID FOR PROJECT ENABLED LOCATOR');
1604:
1605: RAISE E_VALIDATION_ERROR;
1606:
1607: END IF;
1608:
1609: IF (NOT VALID_LOCATOR) THEN
1610: RCV_ERROR_PKG.SET_ERROR_MESSAGE('RCV_ALL_INVALID_LOCATOR');
1611: RCV_ERROR_PKG.SET_TOKEN('LOCATOR',X_LOCATOR_RECORD.LOCATOR);
1612: ASN_DEBUG.PUT_LINE('INVALID PROJECT TASK LOCATOR FOR PROJECT ENABLED LOCATOR ');
1613: RAISE E_VALIDATION_ERROR;
1614: ELSE
1607: END IF;
1608:
1609: IF (NOT VALID_LOCATOR) THEN
1610: RCV_ERROR_PKG.SET_ERROR_MESSAGE('RCV_ALL_INVALID_LOCATOR');
1611: RCV_ERROR_PKG.SET_TOKEN('LOCATOR',X_LOCATOR_RECORD.LOCATOR);
1612: ASN_DEBUG.PUT_LINE('INVALID PROJECT TASK LOCATOR FOR PROJECT ENABLED LOCATOR ');
1613: RAISE E_VALIDATION_ERROR;
1614: ELSE
1615: ASN_DEBUG.PUT_LINE('VALID PROJECT TASK LOCATOR ');
1617:
1618: EXCEPTION
1619: WHEN E_VALIDATION_ERROR THEN
1620: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := X_ERROR_STATUS;
1621: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_MESSAGE := RCV_ERROR_PKG.GET_LAST_MESSAGE;
1622:
1623: WHEN OTHERS THEN
1624: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.G_RET_STS_UNEXP_ERROR;
1625: RCV_ERROR_PKG.SET_SQL_ERROR_MESSAGE('VALIDATE_PRO_TASK_LOCATOR',
1620: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := X_ERROR_STATUS;
1621: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_MESSAGE := RCV_ERROR_PKG.GET_LAST_MESSAGE;
1622:
1623: WHEN OTHERS THEN
1624: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.G_RET_STS_UNEXP_ERROR;
1625: RCV_ERROR_PKG.SET_SQL_ERROR_MESSAGE('VALIDATE_PRO_TASK_LOCATOR',
1626: X_PROGRESS);
1627: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.GET_LAST_MESSAGE;
1628:
1621: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_MESSAGE := RCV_ERROR_PKG.GET_LAST_MESSAGE;
1622:
1623: WHEN OTHERS THEN
1624: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.G_RET_STS_UNEXP_ERROR;
1625: RCV_ERROR_PKG.SET_SQL_ERROR_MESSAGE('VALIDATE_PRO_TASK_LOCATOR',
1626: X_PROGRESS);
1627: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.GET_LAST_MESSAGE;
1628:
1629: END;
1623: WHEN OTHERS THEN
1624: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.G_RET_STS_UNEXP_ERROR;
1625: RCV_ERROR_PKG.SET_SQL_ERROR_MESSAGE('VALIDATE_PRO_TASK_LOCATOR',
1626: X_PROGRESS);
1627: X_LOCATOR_RECORD.ERROR_RECORD.ERROR_STATUS := RCV_ERROR_PKG.GET_LAST_MESSAGE;
1628:
1629: END;
1630:
1631: END IF;
1647: x_code fnd_territories_vl.territory_code%TYPE := NULL;
1648: x_progress VARCHAR2(3);
1649: x_error_status VARCHAR2(1);
1650: BEGIN
1651: x_error_status := rcv_error_pkg.g_ret_sts_error;
1652:
1653: SELECT NVL(MAX(territory_code), 'FF')
1654: INTO x_code
1655: FROM fnd_territories_vl
1655: FROM fnd_territories_vl
1656: WHERE territory_code = x_country_of_origin_record.country_of_origin_code;
1657:
1658: IF (x_code = 'FF') THEN
1659: rcv_error_pkg.set_error_message('RCV_ASN_ORIGIN_COUNTRY_INVALID');
1660: RAISE e_validation_error;
1661: END IF;
1662: EXCEPTION
1663: WHEN e_validation_error THEN
1661: END IF;
1662: EXCEPTION
1663: WHEN e_validation_error THEN
1664: x_country_of_origin_record.error_record.error_status := x_error_status;
1665: x_country_of_origin_record.error_record.error_message := rcv_error_pkg.get_last_message;
1666:
1667: IF x_country_of_origin_record.error_record.error_message = 'RCV_ASN_ORIGIN_COUNTRY_INVALID' THEN
1668: rcv_error_pkg.set_token('COUNTRY_OF_ORIGIN_CODE', x_country_of_origin_record.country_of_origin_code);
1669: rcv_error_pkg.set_token('SHIPMENT', '');
1664: x_country_of_origin_record.error_record.error_status := x_error_status;
1665: x_country_of_origin_record.error_record.error_message := rcv_error_pkg.get_last_message;
1666:
1667: IF x_country_of_origin_record.error_record.error_message = 'RCV_ASN_ORIGIN_COUNTRY_INVALID' THEN
1668: rcv_error_pkg.set_token('COUNTRY_OF_ORIGIN_CODE', x_country_of_origin_record.country_of_origin_code);
1669: rcv_error_pkg.set_token('SHIPMENT', '');
1670: END IF;
1671: WHEN OTHERS THEN
1672: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1665: x_country_of_origin_record.error_record.error_message := rcv_error_pkg.get_last_message;
1666:
1667: IF x_country_of_origin_record.error_record.error_message = 'RCV_ASN_ORIGIN_COUNTRY_INVALID' THEN
1668: rcv_error_pkg.set_token('COUNTRY_OF_ORIGIN_CODE', x_country_of_origin_record.country_of_origin_code);
1669: rcv_error_pkg.set_token('SHIPMENT', '');
1670: END IF;
1671: WHEN OTHERS THEN
1672: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1673: rcv_error_pkg.set_sql_error_message('validate_country_of_origin', x_progress);
1668: rcv_error_pkg.set_token('COUNTRY_OF_ORIGIN_CODE', x_country_of_origin_record.country_of_origin_code);
1669: rcv_error_pkg.set_token('SHIPMENT', '');
1670: END IF;
1671: WHEN OTHERS THEN
1672: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1673: rcv_error_pkg.set_sql_error_message('validate_country_of_origin', x_progress);
1674: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.get_last_message;
1675: END validate_country_of_origin;
1676:
1669: rcv_error_pkg.set_token('SHIPMENT', '');
1670: END IF;
1671: WHEN OTHERS THEN
1672: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1673: rcv_error_pkg.set_sql_error_message('validate_country_of_origin', x_progress);
1674: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.get_last_message;
1675: END validate_country_of_origin;
1676:
1677: /*
1670: END IF;
1671: WHEN OTHERS THEN
1672: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1673: rcv_error_pkg.set_sql_error_message('validate_country_of_origin', x_progress);
1674: x_country_of_origin_record.error_record.error_status := rcv_error_pkg.get_last_message;
1675: END validate_country_of_origin;
1676:
1677: /*
1678:
1684: ) IS
1685: l_consigned_po_flag po_line_locations_all.consigned_flag%TYPE;
1686: x_error_status VARCHAR2(1);
1687: BEGIN
1688: x_error_status := rcv_error_pkg.g_ret_sts_error;
1689:
1690: SELECT consigned_flag
1691: INTO l_consigned_po_flag
1692: FROM po_line_locations
1696: IF (g_asn_debug = 'Y') THEN
1697: asn_debug.put_line('in RCVTIS2B.pls' || l_consigned_po_flag);
1698: END IF;
1699:
1700: rcv_error_pkg.set_error_message('RCV_REJECT_ASBN_CONSIGNED_PO');
1701: RAISE e_validation_error;
1702: END IF;
1703: EXCEPTION
1704: WHEN e_validation_error THEN
1702: END IF;
1703: EXCEPTION
1704: WHEN e_validation_error THEN
1705: x_consigned_po_rec.error_record.error_status := x_error_status;
1706: x_consigned_po_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1707:
1708: IF x_consigned_po_rec.error_record.error_message = 'RCV_REJECT_ASBN_CONSIGNED_PO' THEN
1709: NULL;
1710: END IF;
1708: IF x_consigned_po_rec.error_record.error_message = 'RCV_REJECT_ASBN_CONSIGNED_PO' THEN
1709: NULL;
1710: END IF;
1711: WHEN OTHERS THEN
1712: x_consigned_po_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1713: rcv_error_pkg.set_sql_error_message('validate_consigned_po', '000');
1714: x_consigned_po_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1715: END validate_consigned_po;
1716:
1709: NULL;
1710: END IF;
1711: WHEN OTHERS THEN
1712: x_consigned_po_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1713: rcv_error_pkg.set_sql_error_message('validate_consigned_po', '000');
1714: x_consigned_po_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1715: END validate_consigned_po;
1716:
1717: /*===========================================================================
1710: END IF;
1711: WHEN OTHERS THEN
1712: x_consigned_po_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1713: rcv_error_pkg.set_sql_error_message('validate_consigned_po', '000');
1714: x_consigned_po_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1715: END validate_consigned_po;
1716:
1717: /*===========================================================================
1718: PROCEDURE NAME: validate_consumption_po()
1722: ) IS
1723: l_consumption_po_flag po_headers_all.consigned_consumption_flag%TYPE;
1724: x_error_status VARCHAR2(1);
1725: BEGIN
1726: x_error_status := rcv_error_pkg.g_ret_sts_error;
1727:
1728: SELECT consigned_consumption_flag
1729: INTO l_consumption_po_flag
1730: FROM po_headers
1734: IF (g_asn_debug = 'Y') THEN
1735: asn_debug.put_line('in RCVTIS2B.pls' || l_consumption_po_flag);
1736: END IF;
1737:
1738: rcv_error_pkg.set_error_message('RCV_REJECT_CONSUMPTION_PO');
1739: RAISE e_validation_error;
1740: END IF;
1741: EXCEPTION
1742: WHEN e_validation_error THEN
1740: END IF;
1741: EXCEPTION
1742: WHEN e_validation_error THEN
1743: x_consumption_po_rec.error_record.error_status := x_error_status;
1744: x_consumption_po_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1745:
1746: IF x_consumption_po_rec.error_record.error_message = 'RCV_REJECT_CONSUMPTION_PO' THEN
1747: NULL;
1748: END IF;
1746: IF x_consumption_po_rec.error_record.error_message = 'RCV_REJECT_CONSUMPTION_PO' THEN
1747: NULL;
1748: END IF;
1749: WHEN OTHERS THEN
1750: x_consumption_po_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1751: rcv_error_pkg.set_sql_error_message('validate_consumption_po', '000');
1752: x_consumption_po_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1753: END validate_consumption_po;
1754:
1747: NULL;
1748: END IF;
1749: WHEN OTHERS THEN
1750: x_consumption_po_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1751: rcv_error_pkg.set_sql_error_message('validate_consumption_po', '000');
1752: x_consumption_po_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1753: END validate_consumption_po;
1754:
1755: /*===========================================================================
1748: END IF;
1749: WHEN OTHERS THEN
1750: x_consumption_po_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1751: rcv_error_pkg.set_sql_error_message('validate_consumption_po', '000');
1752: x_consumption_po_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1753: END validate_consumption_po;
1754:
1755: /*===========================================================================
1756: PROCEDURE NAME: validate_consumption_release()
1760: ) IS
1761: l_consumption_release_flag po_releases_all.consigned_consumption_flag%TYPE;
1762: x_error_status VARCHAR2(1);
1763: BEGIN
1764: x_error_status := rcv_error_pkg.g_ret_sts_error;
1765:
1766: SELECT consigned_consumption_flag
1767: INTO l_consumption_release_flag
1768: FROM po_releases
1772: IF (g_asn_debug = 'Y') THEN
1773: asn_debug.put_line('in RCVTIS2B.pls, consumption release' || l_consumption_release_flag);
1774: END IF;
1775:
1776: rcv_error_pkg.set_error_message('RCV_REJECT_CONSUMPTION_RELEASE');
1777: RAISE e_validation_error;
1778: END IF;
1779: EXCEPTION
1780: WHEN e_validation_error THEN
1778: END IF;
1779: EXCEPTION
1780: WHEN e_validation_error THEN
1781: x_consumption_release_rec.error_record.error_status := x_error_status;
1782: x_consumption_release_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1783:
1784: IF x_consumption_release_rec.error_record.error_message = 'RCV_REJECT_CONSUMPTION_RELEASE' THEN
1785: NULL;
1786: END IF;
1784: IF x_consumption_release_rec.error_record.error_message = 'RCV_REJECT_CONSUMPTION_RELEASE' THEN
1785: NULL;
1786: END IF;
1787: WHEN OTHERS THEN
1788: x_consumption_release_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1789: rcv_error_pkg.set_sql_error_message('validate_consumption_release', '000');
1790: x_consumption_release_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1791: END validate_consumption_release;
1792:
1785: NULL;
1786: END IF;
1787: WHEN OTHERS THEN
1788: x_consumption_release_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1789: rcv_error_pkg.set_sql_error_message('validate_consumption_release', '000');
1790: x_consumption_release_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1791: END validate_consumption_release;
1792:
1793:
1786: END IF;
1787: WHEN OTHERS THEN
1788: x_consumption_release_rec.error_record.error_status := rcv_error_pkg.g_ret_sts_unexp_error;
1789: rcv_error_pkg.set_sql_error_message('validate_consumption_release', '000');
1790: x_consumption_release_rec.error_record.error_status := rcv_error_pkg.get_last_message;
1791: END validate_consumption_release;
1792:
1793:
1794: /*##########################################################################
1947: asn_debug.put_line('Dual UOM check failed:' || l_progress);
1948: END IF;
1949:
1950: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
1951: rcv_error_pkg.set_sql_error_message('Unexpected Exception in validate_secondary_parameters', l_progress);
1952: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1953:
1954: RETURN;
1955:
1948: END IF;
1949:
1950: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
1951: rcv_error_pkg.set_sql_error_message('Unexpected Exception in validate_secondary_parameters', l_progress);
1952: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1953:
1954: RETURN;
1955:
1956: END;
1964:
1965: /*Error out if secondary parameters are specified and item is not dual uom controlled*/
1966: IF x_att_rec.secondary_uom_code IS NOT NULL THEN
1967: /*
1968: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1969: RAISE e_validation_error;
1970: */
1971: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1972: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1968: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1969: RAISE e_validation_error;
1970: */
1971: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1972: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1973: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1974:
1975: RETURN;
1976:
1969: RAISE e_validation_error;
1970: */
1971: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1972: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1973: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1974:
1975: RETURN;
1976:
1977:
1976:
1977:
1978: ELSIF x_att_rec.secondary_unit_of_measure IS NOT NULL THEN
1979: /*
1980: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1981: RAISE e_validation_error;
1982: */
1983: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1984: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1980: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1981: RAISE e_validation_error;
1982: */
1983: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1984: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1985: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1986:
1987: RETURN;
1988:
1981: RAISE e_validation_error;
1982: */
1983: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1984: rcv_error_pkg.set_error_message('PO_SECONDARY_UOM_NOT_REQUIRED');
1985: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1986:
1987: RETURN;
1988:
1989:
1988:
1989:
1990: ELSIF x_att_rec.secondary_quantity IS NOT NULL THEN
1991: /*
1992: rcv_error_pkg.set_error_message('PO_SECONDARY_QTY_NOT_REQUIRED');
1993: RAISE e_validation_error;
1994: */
1995: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1996: rcv_error_pkg.set_error_message('PO_SECONDARY_QTY_NOT_REQUIRED');
1992: rcv_error_pkg.set_error_message('PO_SECONDARY_QTY_NOT_REQUIRED');
1993: RAISE e_validation_error;
1994: */
1995: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1996: rcv_error_pkg.set_error_message('PO_SECONDARY_QTY_NOT_REQUIRED');
1997: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1998:
1999: RETURN;
2000:
1993: RAISE e_validation_error;
1994: */
1995: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
1996: rcv_error_pkg.set_error_message('PO_SECONDARY_QTY_NOT_REQUIRED');
1997: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
1998:
1999: RETURN;
2000:
2001:
2032: END IF;
2033:
2034: /*Log error into po_interface_error*/
2035: /*
2036: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2037: RAISE e_validation_error;
2038: */
2039: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2040: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2036: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2037: RAISE e_validation_error;
2038: */
2039: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2040: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2041: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2042:
2043: RETURN;
2044:
2037: RAISE e_validation_error;
2038: */
2039: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2040: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2041: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2042:
2043: RETURN;
2044:
2045: ELSE
2059: IF g_asn_debug = 'Y' THEN
2060: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2061: END IF;
2062: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2063: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2064: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2065:
2066: RETURN;
2067: END;
2060: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2061: END IF;
2062: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2063: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2064: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2065:
2066: RETURN;
2067: END;
2068:
2100: END IF;
2101:
2102: /*Log error into po_interface_error*/
2103: /*
2104: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2105: RAISE e_validation_error;
2106: */
2107: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2108: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2104: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2105: RAISE e_validation_error;
2106: */
2107: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2108: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2109: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2110:
2111: RETURN;
2112:
2105: RAISE e_validation_error;
2106: */
2107: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2108: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2109: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2110:
2111: RETURN;
2112:
2113: END IF;
2117: IF g_asn_debug = 'Y' THEN
2118: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2119: END IF;
2120: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2121: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2122: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2123:
2124: RETURN;
2125: END;
2118: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2119: END IF;
2120: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2121: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2122: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2123:
2124: RETURN;
2125: END;
2126:
2155: IF g_asn_debug = 'Y' THEN
2156: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2157: END IF;
2158: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2159: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2160: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2161:
2162: RETURN;
2163: END;
2156: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2157: END IF;
2158: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2159: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2160: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2161:
2162: RETURN;
2163: END;
2164:
2185: END IF;
2186:
2187: /*Log error into po_interface_error*/
2188: /*
2189: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2190: RAISE e_validation_error;
2191: */
2192: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2193: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2189: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2190: RAISE e_validation_error;
2191: */
2192: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2193: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2194: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2195:
2196: RETURN;
2197:
2190: RAISE e_validation_error;
2191: */
2192: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2193: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2194: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2195:
2196: RETURN;
2197:
2198:
2219: END IF;
2220:
2221: /*Log error into po_interface_error*/
2222: /*
2223: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2224: RAISE e_validation_error;
2225: */
2226: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2227: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2223: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2224: RAISE e_validation_error;
2225: */
2226: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2227: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2228: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2229:
2230: RETURN;
2231:
2224: RAISE e_validation_error;
2225: */
2226: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2227: rcv_error_pkg.set_error_message('PO_INCORRECT_SECONDARY_UOM');
2228: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2229:
2230: RETURN;
2231:
2232:
2239: IF g_asn_debug = 'Y' THEN
2240: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2241: END IF;
2242: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2243: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2244: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2245:
2246: RETURN;
2247: END;
2240: asn_debug.put_line('SQL in validate_secondary_parameters failed:' || l_progress);
2241: END IF;
2242: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2243: rcv_error_pkg.set_sql_error_message('Unexpected Exception:validate_secondary_parameters', l_progress);
2244: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2245:
2246: RETURN;
2247: END;
2248:
2279: asn_debug.put_line('within deviation check failed in VALIDATE_SECONDARY_PARAMETERS:' || l_progress);
2280: END IF;
2281: /*Log error into po_interface_error */
2282: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2283: rcv_error_pkg.set_error_message('PO_SRCE_ORG_OUT_OF_DEV');
2284: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2285:
2286: RETURN;
2287: END IF;
2280: END IF;
2281: /*Log error into po_interface_error */
2282: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2283: rcv_error_pkg.set_error_message('PO_SRCE_ORG_OUT_OF_DEV');
2284: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2285:
2286: RETURN;
2287: END IF;
2288:
2323: asn_debug.put_line('fetch secondary quantity failed in VALIDATE_SECONDARY_PARAMETERS:' || l_progress);
2324: END IF;
2325: /*Log error into po_interface_error */
2326: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2327: rcv_error_pkg.set_sql_error_message('Unexpected exception :fetch secondary quantity failed in validate_secondary_parameters', l_progress);
2328: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2329:
2330: RETURN;
2331: END IF;
2324: END IF;
2325: /*Log error into po_interface_error */
2326: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2327: rcv_error_pkg.set_sql_error_message('Unexpected exception :fetch secondary quantity failed in validate_secondary_parameters', l_progress);
2328: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2329:
2330: RETURN;
2331: END IF;
2332:
2386: asn_debug.put_line('within deviation check failed in VALIDATE_SECONDARY_PARAMETERS:' || l_progress);
2387: END IF;
2388: /*Log error into po_interface_error */
2389: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2390: rcv_error_pkg.set_error_message('PO_SRCE_ORG_OUT_OF_DEV');
2391: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2392:
2393: RETURN;
2394: END IF;
2387: END IF;
2388: /*Log error into po_interface_error */
2389: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2390: rcv_error_pkg.set_error_message('PO_SRCE_ORG_OUT_OF_DEV');
2391: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2392:
2393: RETURN;
2394: END IF;
2395:
2450:
2451: EXCEPTION
2452: WHEN e_validation_error THEN
2453: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_error;
2454: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2455:
2456: WHEN OTHERS THEN
2457: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2458: rcv_error_pkg.set_sql_error_message('Unexpected exception:validate_secondary_parameters', l_progress);
2454: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2455:
2456: WHEN OTHERS THEN
2457: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2458: rcv_error_pkg.set_sql_error_message('Unexpected exception:validate_secondary_parameters', l_progress);
2459: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2460:
2461:
2462: END VALIDATE_SECONDARY_PARAMETERS;
2455:
2456: WHEN OTHERS THEN
2457: x_att_rec.error_record.error_status := fnd_api.g_ret_sts_unexp_error;
2458: rcv_error_pkg.set_sql_error_message('Unexpected exception:validate_secondary_parameters', l_progress);
2459: x_att_rec.error_record.error_message := rcv_error_pkg.get_last_message;
2460:
2461:
2462: END VALIDATE_SECONDARY_PARAMETERS;
2463: