164: -- 2.a. Validate all the actions that are for logical transactions.
165: -- Only these should be processed by this API
166:
167: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) NOT IN
168: (INV_GLOBALS.G_ACTION_LOGICALISSUE,INV_GLOBALS.G_ACTION_LOGICALICSALES ,
169: INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALDELADJ,
170: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN,INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
171: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_RETROPRICEUPDATE,
172: INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
165: -- Only these should be processed by this API
166:
167: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) NOT IN
168: (INV_GLOBALS.G_ACTION_LOGICALISSUE,INV_GLOBALS.G_ACTION_LOGICALICSALES ,
169: INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALDELADJ,
170: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN,INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
171: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_RETROPRICEUPDATE,
172: INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
173: IF (l_debug = 1) THEN
166:
167: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) NOT IN
168: (INV_GLOBALS.G_ACTION_LOGICALISSUE,INV_GLOBALS.G_ACTION_LOGICALICSALES ,
169: INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALDELADJ,
170: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN,INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
171: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_RETROPRICEUPDATE,
172: INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
173: IF (l_debug = 1) THEN
174: debug_print('Transaction Action is invalid', 9);
167: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) NOT IN
168: (INV_GLOBALS.G_ACTION_LOGICALISSUE,INV_GLOBALS.G_ACTION_LOGICALICSALES ,
169: INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALDELADJ,
170: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN,INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
171: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_RETROPRICEUPDATE,
172: INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
173: IF (l_debug = 1) THEN
174: debug_print('Transaction Action is invalid', 9);
175: END IF;
168: (INV_GLOBALS.G_ACTION_LOGICALISSUE,INV_GLOBALS.G_ACTION_LOGICALICSALES ,
169: INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALDELADJ,
170: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN,INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
171: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_RETROPRICEUPDATE,
172: INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
173: IF (l_debug = 1) THEN
174: debug_print('Transaction Action is invalid', 9);
175: END IF;
176: fnd_message.set_name('INV', 'INV_INT_TRXACTCODE');
219:
220: l_count := 0;
221:
222: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) IN
223: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
224: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
225: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
226:
227: IF (p_mtl_trx_tbl(i).transfer_organization_id IS NULL) THEN
220: l_count := 0;
221:
222: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) IN
223: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
224: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
225: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
226:
227: IF (p_mtl_trx_tbl(i).transfer_organization_id IS NULL) THEN
228: IF (l_debug = 1) THEN
221:
222: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) IN
223: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
224: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
225: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
226:
227: IF (p_mtl_trx_tbl(i).transfer_organization_id IS NULL) THEN
228: IF (l_debug = 1) THEN
229: debug_print('Transfer Org. is null', 9);
298:
299: l_count := 0;
300:
301: IF (p_mtl_trx_tbl(i).transaction_action_id IN
302: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
303: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
304: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
305: BEGIN
306: SELECT COUNT(1) INTO l_count FROM MTL_SYSTEM_ITEMS MSI
299: l_count := 0;
300:
301: IF (p_mtl_trx_tbl(i).transaction_action_id IN
302: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
303: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
304: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
305: BEGIN
306: SELECT COUNT(1) INTO l_count FROM MTL_SYSTEM_ITEMS MSI
307: WHERE MSI.INVENTORY_ITEM_ID = p_mtl_trx_tbl(i).inventory_item_id
300:
301: IF (p_mtl_trx_tbl(i).transaction_action_id IN
302: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
303: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
304: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
305: BEGIN
306: SELECT COUNT(1) INTO l_count FROM MTL_SYSTEM_ITEMS MSI
307: WHERE MSI.INVENTORY_ITEM_ID = p_mtl_trx_tbl(i).inventory_item_id
308: AND MSI.ORGANIZATION_ID = p_mtl_trx_tbl(i).transfer_organization_id
331: END IF;
332:
333: -- 7. Retroactive Price update specific validations
334: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) =
335: INV_GLOBALS.G_ACTION_RETROPRICEUPDATE AND
336: Nvl(p_mtl_trx_tbl(i).transaction_source_type_id,0) =
337: INV_GLOBALS.G_SOURCETYPE_PURCHASEORDER) THEN
338:
339: IF (p_mtl_trx_tbl(i).CONSUMPTION_RELEASE_ID IS NULL AND
333: -- 7. Retroactive Price update specific validations
334: IF (Nvl(p_mtl_trx_tbl(i).transaction_action_id,0) =
335: INV_GLOBALS.G_ACTION_RETROPRICEUPDATE AND
336: Nvl(p_mtl_trx_tbl(i).transaction_source_type_id,0) =
337: INV_GLOBALS.G_SOURCETYPE_PURCHASEORDER) THEN
338:
339: IF (p_mtl_trx_tbl(i).CONSUMPTION_RELEASE_ID IS NULL AND
340: p_mtl_trx_tbl(i).CONSUMPTION_PO_HEADER_ID IS NULL) THEN
341:
557:
558: --11. Validate transaction source type for sales order tied to drop
559: -- ment transactions.
560: IF (p_logical_trx_type_code = INV_LOGICAL_TRANSACTION_GLOBAL.G_LOGTRXCODE_DSDELIVER AND
561: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_salesorder AND
562: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalissue)) THEN
563: -- drop shipments across multiple OUs
564: -- get the sales order tied to the logical transaction
565: -- get the start active and end active dates and make sure that
558: --11. Validate transaction source type for sales order tied to drop
559: -- ment transactions.
560: IF (p_logical_trx_type_code = INV_LOGICAL_TRANSACTION_GLOBAL.G_LOGTRXCODE_DSDELIVER AND
561: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_salesorder AND
562: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalissue)) THEN
563: -- drop shipments across multiple OUs
564: -- get the sales order tied to the logical transaction
565: -- get the start active and end active dates and make sure that
566: -- transaction date is between them.
617: -- For types
618: /*******
619: IF (p_mtl_trx_tbl(i).transaction_quantity > 0) AND
620: (p_mtl_trx_tbl(i).transaction_action_id in
621: (INV_GLOBALS.G_ACTION_LOGICALISSUE, INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN)) THEN
622: IF (l_debug = 1) THEN
623: debug_print('Invalid transaction quantity : quantity should be negative', 9);
624: END IF;
625: fnd_message.set_name('INV', 'INV_INVALID_QUANTITY');
628: END IF;
629:
630: IF (p_mtl_trx_tbl(i).transaction_quantity < 0) AND
631: (p_mtl_trx_tbl(i).transaction_action_id in
632: (INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
633: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
634: IF (l_debug = 1) THEN
635: debug_print('Invalid transaction quantity : quantity should be positive', 9);
636: END IF;
629:
630: IF (p_mtl_trx_tbl(i).transaction_quantity < 0) AND
631: (p_mtl_trx_tbl(i).transaction_action_id in
632: (INV_GLOBALS.G_ACTION_LOGICALICRECEIPT, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
633: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT, INV_GLOBALS.G_ACTION_LOGICALRECEIPT)) THEN
634: IF (l_debug = 1) THEN
635: debug_print('Invalid transaction quantity : quantity should be positive', 9);
636: END IF;
637: fnd_message.set_name('INV', 'INV_INVALID_QUANTITY');
839: -- 17. Validate cost groups for transfer organziations.
840: -- Cost groups should already be populated before validation.
841:
842: IF (p_mtl_trx_tbl(i).transaction_action_id IN
843: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
844: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
845: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
846:
847: IF (p_mtl_trx_tbl(i).transfer_cost_group_id IS NULL) THEN
840: -- Cost groups should already be populated before validation.
841:
842: IF (p_mtl_trx_tbl(i).transaction_action_id IN
843: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
844: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
845: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
846:
847: IF (p_mtl_trx_tbl(i).transfer_cost_group_id IS NULL) THEN
848: IF (l_debug = 1) THEN
841:
842: IF (p_mtl_trx_tbl(i).transaction_action_id IN
843: (INV_GLOBALS.G_ACTION_LOGICALICSALES, INV_GLOBALS.G_ACTION_LOGICALICRECEIPT,
844: INV_GLOBALS.G_ACTION_LOGICALICRCPTRETURN, INV_GLOBALS.G_ACTION_LOGICALICSALESRETURN,
845: INV_GLOBALS.G_ACTION_LOGICALEXPREQRECEIPT))THEN
846:
847: IF (p_mtl_trx_tbl(i).transfer_cost_group_id IS NULL) THEN
848: IF (l_debug = 1) THEN
849: debug_print('Invalid Cost Group in the Transfer Org.', 9);
961: -- order issue transaction
962:
963: l_count := 0;
964:
965: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_salesorder AND
966: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalissue) OR
967: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_rma AND
968: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt)) THEN
969:
962:
963: l_count := 0;
964:
965: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_salesorder AND
966: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalissue) OR
967: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_rma AND
968: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt)) THEN
969:
970: IF (p_mtl_trx_tbl(i).transaction_source_id IS NULL) THEN
963: l_count := 0;
964:
965: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_salesorder AND
966: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalissue) OR
967: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_rma AND
968: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt)) THEN
969:
970: IF (p_mtl_trx_tbl(i).transaction_source_id IS NULL) THEN
971:
964:
965: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_salesorder AND
966: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalissue) OR
967: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_rma AND
968: p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt)) THEN
969:
970: IF (p_mtl_trx_tbl(i).transaction_source_id IS NULL) THEN
971:
972: IF (l_debug = 1) THEN
1011: -- po receipt or a logical RTV transaction
1012:
1013: l_count := 0;
1014:
1015: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder
1016: AND p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt) OR
1017: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder AND
1018: p_mtl_trx_tbl(i).transaction_action_id =
1019: inv_globals.g_action_logicalissue)) AND
1012:
1013: l_count := 0;
1014:
1015: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder
1016: AND p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt) OR
1017: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder AND
1018: p_mtl_trx_tbl(i).transaction_action_id =
1019: inv_globals.g_action_logicalissue)) AND
1020: (p_logical_trx_type_code = INV_LOGICAL_TRANSACTION_GLOBAL.G_LOGTRXCODE_DSRECEIPT) THEN
1013: l_count := 0;
1014:
1015: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder
1016: AND p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt) OR
1017: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder AND
1018: p_mtl_trx_tbl(i).transaction_action_id =
1019: inv_globals.g_action_logicalissue)) AND
1020: (p_logical_trx_type_code = INV_LOGICAL_TRANSACTION_GLOBAL.G_LOGTRXCODE_DSRECEIPT) THEN
1021:
1015: IF ((p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder
1016: AND p_mtl_trx_tbl(i).transaction_action_id = inv_globals.g_action_logicalreceipt) OR
1017: (p_mtl_trx_tbl(i).transaction_source_type_id = inv_globals.g_sourcetype_purchaseorder AND
1018: p_mtl_trx_tbl(i).transaction_action_id =
1019: inv_globals.g_action_logicalissue)) AND
1020: (p_logical_trx_type_code = INV_LOGICAL_TRANSACTION_GLOBAL.G_LOGTRXCODE_DSRECEIPT) THEN
1021:
1022: IF ((p_mtl_trx_tbl(i).transaction_source_id IS NULL) OR (p_mtl_trx_tbl(i).rcv_transaction_id IS NULL)) THEN
1023:
1111:
1112: END IF;
1113:
1114: IF (p_mtl_trx_tbl(i).transaction_action_id IN
1115: (inv_globals.g_action_logicalicsales,
1116: inv_globals.g_action_logicalicreceipt,
1117: inv_globals.g_action_logicalicrcptreturn,
1118: inv_globals.g_action_logicalicsalesreturn)) THEN
1119:
1112: END IF;
1113:
1114: IF (p_mtl_trx_tbl(i).transaction_action_id IN
1115: (inv_globals.g_action_logicalicsales,
1116: inv_globals.g_action_logicalicreceipt,
1117: inv_globals.g_action_logicalicrcptreturn,
1118: inv_globals.g_action_logicalicsalesreturn)) THEN
1119:
1120: IF (p_mtl_trx_tbl(i).invoiced_flag <> 'N') THEN
1113:
1114: IF (p_mtl_trx_tbl(i).transaction_action_id IN
1115: (inv_globals.g_action_logicalicsales,
1116: inv_globals.g_action_logicalicreceipt,
1117: inv_globals.g_action_logicalicrcptreturn,
1118: inv_globals.g_action_logicalicsalesreturn)) THEN
1119:
1120: IF (p_mtl_trx_tbl(i).invoiced_flag <> 'N') THEN
1121:
1114: IF (p_mtl_trx_tbl(i).transaction_action_id IN
1115: (inv_globals.g_action_logicalicsales,
1116: inv_globals.g_action_logicalicreceipt,
1117: inv_globals.g_action_logicalicrcptreturn,
1118: inv_globals.g_action_logicalicsalesreturn)) THEN
1119:
1120: IF (p_mtl_trx_tbl(i).invoiced_flag <> 'N') THEN
1121:
1122: IF (l_debug = 1) THEN