199: wip_logger.log('uom conversion failed.', l_returnStatus);
200: wip_logger.log('l_convPriQty' || l_convPriQty, l_returnStatus);
201: wip_logger.log('l_convOverCplPriQty' || l_convOverCplPriQty, l_returnStatus);
202: end if;
203: fnd_message.set_name('INV', 'INV_INT_UOMEXP');
204: l_errExp := fnd_message.get;
205: update mtl_transactions_interface
206: set last_update_date = sysdate,
207: last_updated_by = fnd_global.user_id,
200: wip_logger.log('l_convPriQty' || l_convPriQty, l_returnStatus);
201: wip_logger.log('l_convOverCplPriQty' || l_convOverCplPriQty, l_returnStatus);
202: end if;
203: fnd_message.set_name('INV', 'INV_INT_UOMEXP');
204: l_errExp := fnd_message.get;
205: update mtl_transactions_interface
206: set last_update_date = sysdate,
207: last_updated_by = fnd_global.user_id,
208: last_update_login = fnd_global.login_id,
441: if(x_returnStatus <> fnd_api.g_ret_sts_success) then
442: raise fnd_api.g_exc_error;
443: end if;
444: if(l_lsRequired = wip_constants.yes) then
445: fnd_message.set_name('WIP', 'WIP_NO_LOT_SER_COMP_BKGND');
446: fnd_msg_pub.add;
447: raise fnd_api.g_exc_error;
448: end if;
449:
695:
696: end if;
697:
698: if ( not l_success ) then
699: fnd_message.set_name('INV', 'INV_INT_LOCSEGCODE');
700: setMtiError(pt_rec.transaction_interface_id,
701: 'locator_id',
702: fnd_message.get);
703: end if;
698: if ( not l_success ) then
699: fnd_message.set_name('INV', 'INV_INT_LOCSEGCODE');
700: setMtiError(pt_rec.transaction_interface_id,
701: 'locator_id',
702: fnd_message.get);
703: end if;
704:
705: end if;
706: end loop;
762: -- for the parent record. We don't do that for scrap
763: validateLocatorForProject(p_txnHeaderID);
764:
765: -- check if it is an assembly completion/return for lot based job. If so error out
766: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
767: fnd_message.set_token('ENTITY', 'Transactions');
768: l_errMsg := substrb(fnd_message.get, 1, 240);
769: update mtl_transactions_interface mti
770: set last_update_date = sysdate,
763: validateLocatorForProject(p_txnHeaderID);
764:
765: -- check if it is an assembly completion/return for lot based job. If so error out
766: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
767: fnd_message.set_token('ENTITY', 'Transactions');
768: l_errMsg := substrb(fnd_message.get, 1, 240);
769: update mtl_transactions_interface mti
770: set last_update_date = sysdate,
771: last_updated_by = fnd_global.user_id,
764:
765: -- check if it is an assembly completion/return for lot based job. If so error out
766: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
767: fnd_message.set_token('ENTITY', 'Transactions');
768: l_errMsg := substrb(fnd_message.get, 1, 240);
769: update mtl_transactions_interface mti
770: set last_update_date = sysdate,
771: last_updated_by = fnd_global.user_id,
772: last_update_login = fnd_global.login_id,
784: and transaction_type_id in (44, 17)
785: and wip_entity_type = 5;
786:
787: -- check existence of line for repetitive schedules, job and flow schedule
788: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
789: fnd_message.set_token('ENTITY', 'line');
790: l_errMsg := substrb(fnd_message.get, 1, 240);
791: update mtl_transactions_interface mti
792: set last_update_date = sysdate,
785: and wip_entity_type = 5;
786:
787: -- check existence of line for repetitive schedules, job and flow schedule
788: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
789: fnd_message.set_token('ENTITY', 'line');
790: l_errMsg := substrb(fnd_message.get, 1, 240);
791: update mtl_transactions_interface mti
792: set last_update_date = sysdate,
793: last_updated_by = fnd_global.user_id,
786:
787: -- check existence of line for repetitive schedules, job and flow schedule
788: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
789: fnd_message.set_token('ENTITY', 'line');
790: l_errMsg := substrb(fnd_message.get, 1, 240);
791: update mtl_transactions_interface mti
792: set last_update_date = sysdate,
793: last_updated_by = fnd_global.user_id,
794: last_update_login = fnd_global.login_id,
815: where wl.line_id = mti.repetitive_line_id
816: and wl.organization_id = mti.organization_id)));
817:
818: -- check valid line for assembly
819: fnd_message.set_name('WIP', 'WIP_INVALID_LINE');
820: l_errMsg := substrb(fnd_message.get, 1, 240);
821: update mtl_transactions_interface mti
822: set last_update_date = sysdate,
823: last_updated_by = fnd_global.user_id,
816: and wl.organization_id = mti.organization_id)));
817:
818: -- check valid line for assembly
819: fnd_message.set_name('WIP', 'WIP_INVALID_LINE');
820: l_errMsg := substrb(fnd_message.get, 1, 240);
821: update mtl_transactions_interface mti
822: set last_update_date = sysdate,
823: last_updated_by = fnd_global.user_id,
824: last_update_login = fnd_global.login_id,
841: and wri.organization_id = mti.organization_id);
842:
843:
844: -- check that job/schedule, etc. is transactable, flow is checked before
845: fnd_message.set_name('WIP', 'WIP_NO_CHARGES_ALLOWED');
846: l_errMsg := substrb(fnd_message.get, 1, 240);
847: update mtl_transactions_interface mti
848: set last_update_date = sysdate,
849: last_updated_by = fnd_global.user_id,
842:
843:
844: -- check that job/schedule, etc. is transactable, flow is checked before
845: fnd_message.set_name('WIP', 'WIP_NO_CHARGES_ALLOWED');
846: l_errMsg := substrb(fnd_message.get, 1, 240);
847: update mtl_transactions_interface mti
848: set last_update_date = sysdate,
849: last_updated_by = fnd_global.user_id,
850: last_update_login = fnd_global.login_id,
876:
877:
878: -- check to see if job/flow has an assembly associated with it
879: -- validate this only for completion transactions
880: fnd_message.set_name('WIP', 'WIP_NO_ASSY_NO_TXN');
881: l_errMsg := substrb(fnd_message.get, 1, 240);
882: update mtl_transactions_interface mti
883: set last_update_date = sysdate,
884: last_updated_by = fnd_global.user_id,
877:
878: -- check to see if job/flow has an assembly associated with it
879: -- validate this only for completion transactions
880: fnd_message.set_name('WIP', 'WIP_NO_ASSY_NO_TXN');
881: l_errMsg := substrb(fnd_message.get, 1, 240);
882: update mtl_transactions_interface mti
883: set last_update_date = sysdate,
884: last_updated_by = fnd_global.user_id,
885: last_update_login = fnd_global.login_id,
985: WIP_CONSTANTS.RETCOMP_ACTION);
986:
987:
988: -- validate operation seq num
989: fnd_message.set_name('WIP', 'WIP_INVALID_OPERATION');
990: l_errMsg := substrb(fnd_message.get, 1, 240);
991: update mtl_transactions_interface mti
992: set last_update_date = sysdate,
993: last_updated_by = fnd_global.user_id,
986:
987:
988: -- validate operation seq num
989: fnd_message.set_name('WIP', 'WIP_INVALID_OPERATION');
990: l_errMsg := substrb(fnd_message.get, 1, 240);
991: update mtl_transactions_interface mti
992: set last_update_date = sysdate,
993: last_updated_by = fnd_global.user_id,
994: last_update_login = fnd_global.login_id,
1028: and wo.repetitive_schedule_id = mti.schedule_id)));
1029:
1030:
1031: -- check item transactable
1032: fnd_message.set_name('WIP', 'WIP_ITEM_NOT_TRANSACTABLE');
1033: l_errMsg := substrb(fnd_message.get, 1, 240);
1034: begin
1035: l_engItemFlag := to_number(fnd_profile.value('WIP_SEE_ENG_ITEMS'));
1036: exception
1029:
1030:
1031: -- check item transactable
1032: fnd_message.set_name('WIP', 'WIP_ITEM_NOT_TRANSACTABLE');
1033: l_errMsg := substrb(fnd_message.get, 1, 240);
1034: begin
1035: l_engItemFlag := to_number(fnd_profile.value('WIP_SEE_ENG_ITEMS'));
1036: exception
1037: when others then
1088: and wrs.status_type in (3,4))));
1089:
1090:
1091: -- check for shop floor status
1092: fnd_message.set_name('WIP', 'WIP_STATUS_NO_TXN2');
1093: l_errMsg := substrb(fnd_message.get, 1, 240);
1094: update mtl_transactions_interface mti
1095: set last_update_date = sysdate,
1096: last_updated_by = fnd_global.user_id,
1089:
1090:
1091: -- check for shop floor status
1092: fnd_message.set_name('WIP', 'WIP_STATUS_NO_TXN2');
1093: l_errMsg := substrb(fnd_message.get, 1, 240);
1094: update mtl_transactions_interface mti
1095: set last_update_date = sysdate,
1096: last_updated_by = fnd_global.user_id,
1097: last_update_login = fnd_global.login_id,
1123: and nvl(wsfsc.disable_date, sysdate+1) > sysdate);
1124:
1125:
1126: -- check for valid final completion flag, this is not required for flow schedules
1127: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
1128: fnd_message.set_token('ENTITY', 'final_completion_flag');
1129: l_errMsg := substrb(fnd_message.get, 1, 240);
1130: update mtl_transactions_interface mti
1131: set last_update_date = sysdate,
1124:
1125:
1126: -- check for valid final completion flag, this is not required for flow schedules
1127: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
1128: fnd_message.set_token('ENTITY', 'final_completion_flag');
1129: l_errMsg := substrb(fnd_message.get, 1, 240);
1130: update mtl_transactions_interface mti
1131: set last_update_date = sysdate,
1132: last_updated_by = fnd_global.user_id,
1125:
1126: -- check for valid final completion flag, this is not required for flow schedules
1127: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
1128: fnd_message.set_token('ENTITY', 'final_completion_flag');
1129: l_errMsg := substrb(fnd_message.get, 1, 240);
1130: update mtl_transactions_interface mti
1131: set last_update_date = sysdate,
1132: last_updated_by = fnd_global.user_id,
1133: last_update_login = fnd_global.login_id,
1250: and flow_schedule = 'Y';
1251:
1252:
1253: -- validate revision for completion/return/scrap
1254: fnd_message.set_name('WIP', 'WIP_BOM_ITEM_REVISION');
1255: l_errMsg := substrb(fnd_message.get, 1, 240);
1256: update mtl_transactions_interface mti
1257: set last_update_date = sysdate,
1258: last_updated_by = fnd_global.user_id,
1251:
1252:
1253: -- validate revision for completion/return/scrap
1254: fnd_message.set_name('WIP', 'WIP_BOM_ITEM_REVISION');
1255: l_errMsg := substrb(fnd_message.get, 1, 240);
1256: update mtl_transactions_interface mti
1257: set last_update_date = sysdate,
1258: last_updated_by = fnd_global.user_id,
1259: last_update_login = fnd_global.login_id,
1327: /* Fixed Performance bug 4890679 -
1328: Replaced bom_bill_released_revisions_v with base tables
1329: by removing the group by clauses
1330: which was causing non mergeable views */
1331: fnd_message.set_name('WIP', 'INV_INT_REVCODE');
1332: l_errMsg := substrb(fnd_message.get, 1, 240);
1333: update mtl_transactions_interface mti
1334: set last_update_date = sysdate,
1335: last_updated_by = fnd_global.user_id,
1328: Replaced bom_bill_released_revisions_v with base tables
1329: by removing the group by clauses
1330: which was causing non mergeable views */
1331: fnd_message.set_name('WIP', 'INV_INT_REVCODE');
1332: l_errMsg := substrb(fnd_message.get, 1, 240);
1333: update mtl_transactions_interface mti
1334: set last_update_date = sysdate,
1335: last_updated_by = fnd_global.user_id,
1336: last_update_login = fnd_global.login_id,
1402: -- validate transaction qty for wip completions.
1403: -- if there is no routing, then can over complete
1404: -- we do allow overcomplete for flow schedules, so we don't need to validation
1405: -- it for flow.
1406: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1407: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1408: fnd_message.set_token('ENTITY2', 'qty avail to complete');
1409: l_errMsg := substrb(fnd_message.get, 1, 240);
1410: update mtl_transactions_interface mti
1403: -- if there is no routing, then can over complete
1404: -- we do allow overcomplete for flow schedules, so we don't need to validation
1405: -- it for flow.
1406: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1407: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1408: fnd_message.set_token('ENTITY2', 'qty avail to complete');
1409: l_errMsg := substrb(fnd_message.get, 1, 240);
1410: update mtl_transactions_interface mti
1411: set last_update_date = sysdate,
1404: -- we do allow overcomplete for flow schedules, so we don't need to validation
1405: -- it for flow.
1406: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1407: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1408: fnd_message.set_token('ENTITY2', 'qty avail to complete');
1409: l_errMsg := substrb(fnd_message.get, 1, 240);
1410: update mtl_transactions_interface mti
1411: set last_update_date = sysdate,
1412: last_updated_by = fnd_global.user_id,
1405: -- it for flow.
1406: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1407: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1408: fnd_message.set_token('ENTITY2', 'qty avail to complete');
1409: l_errMsg := substrb(fnd_message.get, 1, 240);
1410: update mtl_transactions_interface mti
1411: set last_update_date = sysdate,
1412: last_updated_by = fnd_global.user_id,
1413: last_update_login = fnd_global.login_id,
1446: -- validate transaction qty for returns against jobs.
1447: -- 1. This is done only for scheduled flow completions
1448: -- 2. according to the comments in inltwv, mmodi, jgu, nsyed, dssosai decided to
1449: -- drive the completed qty negative for flow schedules
1450: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1451: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1452: fnd_message.set_token('ENTITY2', 'job compelete quantity');
1453: l_errMsg := substrb(fnd_message.get, 1, 240);
1454: update mtl_transactions_interface mti
1447: -- 1. This is done only for scheduled flow completions
1448: -- 2. according to the comments in inltwv, mmodi, jgu, nsyed, dssosai decided to
1449: -- drive the completed qty negative for flow schedules
1450: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1451: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1452: fnd_message.set_token('ENTITY2', 'job compelete quantity');
1453: l_errMsg := substrb(fnd_message.get, 1, 240);
1454: update mtl_transactions_interface mti
1455: set last_update_date = sysdate,
1448: -- 2. according to the comments in inltwv, mmodi, jgu, nsyed, dssosai decided to
1449: -- drive the completed qty negative for flow schedules
1450: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1451: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1452: fnd_message.set_token('ENTITY2', 'job compelete quantity');
1453: l_errMsg := substrb(fnd_message.get, 1, 240);
1454: update mtl_transactions_interface mti
1455: set last_update_date = sysdate,
1456: last_updated_by = fnd_global.user_id,
1449: -- drive the completed qty negative for flow schedules
1450: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1451: fnd_message.set_token('ENTITY1', 'total txn qty-cap');
1452: fnd_message.set_token('ENTITY2', 'job compelete quantity');
1453: l_errMsg := substrb(fnd_message.get, 1, 240);
1454: update mtl_transactions_interface mti
1455: set last_update_date = sysdate,
1456: last_updated_by = fnd_global.user_id,
1457: last_update_login = fnd_global.login_id,
1481: exception
1482: when others then
1483: l_poExpToAssetTnsf := 2;
1484: end;
1485: fnd_message.set_name('WIP', 'WIP_NO_ASSET_ITEM_MOVE');
1486: l_errMsg := substrb(fnd_message.get, 1, 240);
1487: update mtl_transactions_interface mti
1488: set last_update_date = sysdate,
1489: last_updated_by = fnd_global.user_id,
1482: when others then
1483: l_poExpToAssetTnsf := 2;
1484: end;
1485: fnd_message.set_name('WIP', 'WIP_NO_ASSET_ITEM_MOVE');
1486: l_errMsg := substrb(fnd_message.get, 1, 240);
1487: update mtl_transactions_interface mti
1488: set last_update_date = sysdate,
1489: last_updated_by = fnd_global.user_id,
1490: last_update_login = fnd_global.login_id,
1521: and sub.quantity_tracked = 1 )));
1522:
1523:
1524: -- transaction must occure after job/schedule is released.
1525: fnd_message.set_name('WIP', 'WIP_RELEASE_DATE');
1526: l_errMsg := substrb(fnd_message.get, 1, 240);
1527: update mtl_transactions_interface mti
1528: set last_update_date = sysdate,
1529: last_updated_by = fnd_global.user_id,
1522:
1523:
1524: -- transaction must occure after job/schedule is released.
1525: fnd_message.set_name('WIP', 'WIP_RELEASE_DATE');
1526: l_errMsg := substrb(fnd_message.get, 1, 240);
1527: update mtl_transactions_interface mti
1528: set last_update_date = sysdate,
1529: last_updated_by = fnd_global.user_id,
1530: last_update_login = fnd_global.login_id,
1557:
1558:
1559: -- validate sales order demand for completions and returns
1560: -- **** do we need to do that for flow? ****
1561: fnd_message.set_name('WIP', 'WIP_INVALID_SO');
1562: l_errMsg := substrb(fnd_message.get, 1, 240);
1563: update mtl_transactions_interface mti
1564: set last_update_date = sysdate,
1565: last_updated_by = fnd_global.user_id,
1558:
1559: -- validate sales order demand for completions and returns
1560: -- **** do we need to do that for flow? ****
1561: fnd_message.set_name('WIP', 'WIP_INVALID_SO');
1562: l_errMsg := substrb(fnd_message.get, 1, 240);
1563: update mtl_transactions_interface mti
1564: set last_update_date = sysdate,
1565: last_updated_by = fnd_global.user_id,
1566: last_update_login = fnd_global.login_id,
1594: and subinventory_code = mti.subinventory_code
1595: and nvl(locator_id, -1) = nvl(mti.locator_id, -1) )));
1596:
1597: -- validate demand so line
1598: fnd_message.set_name('WIP', 'WIP_INVALID_SO_LINE');
1599: l_errMsg := substrb(fnd_message.get, 1, 240);
1600: update mtl_transactions_interface mti
1601: set last_update_date = sysdate,
1602: last_updated_by = fnd_global.user_id,
1595: and nvl(locator_id, -1) = nvl(mti.locator_id, -1) )));
1596:
1597: -- validate demand so line
1598: fnd_message.set_name('WIP', 'WIP_INVALID_SO_LINE');
1599: l_errMsg := substrb(fnd_message.get, 1, 240);
1600: update mtl_transactions_interface mti
1601: set last_update_date = sysdate,
1602: last_updated_by = fnd_global.user_id,
1603: last_update_login = fnd_global.login_id,
1635: and nvl(locator_id, -1) = nvl(mti.locator_id, -1) )));
1636:
1637:
1638: -- validate demand so shipment number for completions
1639: fnd_message.set_name('WIP', 'WIP_INVALID_SO_SHIPNO_COMP');
1640: l_errMsg := substrb(fnd_message.get, 1, 240);
1641: update mtl_transactions_interface mti
1642: set last_update_date = sysdate,
1643: last_updated_by = fnd_global.user_id,
1636:
1637:
1638: -- validate demand so shipment number for completions
1639: fnd_message.set_name('WIP', 'WIP_INVALID_SO_SHIPNO_COMP');
1640: l_errMsg := substrb(fnd_message.get, 1, 240);
1641: update mtl_transactions_interface mti
1642: set last_update_date = sysdate,
1643: last_updated_by = fnd_global.user_id,
1644: last_update_login = fnd_global.login_id,
1672: and primary_reservation_quantity >= mti.primary_quantity);
1673:
1674:
1675: -- validate demand so shipment number for returns
1676: fnd_message.set_name('WIP', 'WIP_INVALID_SO_SHIPNO_RET');
1677: l_errMsg := substrb(fnd_message.get, 1, 240);
1678: update mtl_transactions_interface mti
1679: set last_update_date = sysdate,
1680: last_updated_by = fnd_global.user_id,
1673:
1674:
1675: -- validate demand so shipment number for returns
1676: fnd_message.set_name('WIP', 'WIP_INVALID_SO_SHIPNO_RET');
1677: l_errMsg := substrb(fnd_message.get, 1, 240);
1678: update mtl_transactions_interface mti
1679: set last_update_date = sysdate,
1680: last_updated_by = fnd_global.user_id,
1681: last_update_login = fnd_global.login_id,
1712:
1713: -- validate the kanban card
1714: -- check that a completion txn does not have both, a kanban card and a sales
1715: -- order attached. Also only a completion txn can have a kanban card attached
1716: fnd_message.set_name('WIP', 'WIP_KB_ILLEGAL_CARD');
1717: l_errMsg := substrb(fnd_message.get, 1, 240);
1718: update mtl_transactions_interface mti
1719: set last_update_date = sysdate,
1720: last_updated_by = fnd_global.user_id,
1713: -- validate the kanban card
1714: -- check that a completion txn does not have both, a kanban card and a sales
1715: -- order attached. Also only a completion txn can have a kanban card attached
1716: fnd_message.set_name('WIP', 'WIP_KB_ILLEGAL_CARD');
1717: l_errMsg := substrb(fnd_message.get, 1, 240);
1718: update mtl_transactions_interface mti
1719: set last_update_date = sysdate,
1720: last_updated_by = fnd_global.user_id,
1721: last_update_login = fnd_global.login_id,
1739:
1740: -- validate the kanban card
1741: -- check that the completion subinv, locator, inventory_item_id of the
1742: -- completion txn against the kanban card
1743: fnd_message.set_name('WIP', 'WIP_KB_CPL_SUB_LOC_MISMATCH');
1744: l_errMsg := substrb(fnd_message.get, 1, 240);
1745: update mtl_transactions_interface mti
1746: set last_update_date = sysdate,
1747: last_updated_by = fnd_global.user_id,
1740: -- validate the kanban card
1741: -- check that the completion subinv, locator, inventory_item_id of the
1742: -- completion txn against the kanban card
1743: fnd_message.set_name('WIP', 'WIP_KB_CPL_SUB_LOC_MISMATCH');
1744: l_errMsg := substrb(fnd_message.get, 1, 240);
1745: update mtl_transactions_interface mti
1746: set last_update_date = sysdate,
1747: last_updated_by = fnd_global.user_id,
1748: last_update_login = fnd_global.login_id,
1770:
1771:
1772: -- validate the kanban card.
1773: -- check the status of the kanban card
1774: fnd_message.set_name('WIP', 'WIP_KB_CPL_STATUS_ILLEGAL');
1775: l_errMsg := substrb(fnd_message.get, 1, 240);
1776: update mtl_transactions_interface mti
1777: set last_update_date = sysdate,
1778: last_updated_by = fnd_global.user_id,
1771:
1772: -- validate the kanban card.
1773: -- check the status of the kanban card
1774: fnd_message.set_name('WIP', 'WIP_KB_CPL_STATUS_ILLEGAL');
1775: l_errMsg := substrb(fnd_message.get, 1, 240);
1776: update mtl_transactions_interface mti
1777: set last_update_date = sysdate,
1778: last_updated_by = fnd_global.user_id,
1779: last_update_login = fnd_global.login_id,
1805: mti.transaction_source_id))));
1806:
1807: -- validate negative requirement flag for rep scheds
1808: -- this is not required for flow
1809: fnd_message.set_name('WIP', 'WIP_INVALID_NEG_REQ_FLAG');
1810: l_errMsg := substrb(fnd_message.get, 1, 240);
1811: update mtl_transactions_interface mti
1812: set last_update_date = sysdate,
1813: last_updated_by = fnd_global.user_id,
1806:
1807: -- validate negative requirement flag for rep scheds
1808: -- this is not required for flow
1809: fnd_message.set_name('WIP', 'WIP_INVALID_NEG_REQ_FLAG');
1810: l_errMsg := substrb(fnd_message.get, 1, 240);
1811: update mtl_transactions_interface mti
1812: set last_update_date = sysdate,
1813: last_updated_by = fnd_global.user_id,
1814: last_update_login = fnd_global.login_id,
1834: end if;
1835:
1836: -- for discrete job, we do not support background transactions for
1837: -- serialized job
1838: fnd_message.set_name('WIP', 'WIP_NO_SERIALIZED_JOB_ALLOW');
1839: l_errMsg := substrb(fnd_message.get, 1, 240);
1840: update mtl_transactions_interface mti
1841: set last_update_date = sysdate,
1842: last_updated_by = fnd_global.user_id,
1835:
1836: -- for discrete job, we do not support background transactions for
1837: -- serialized job
1838: fnd_message.set_name('WIP', 'WIP_NO_SERIALIZED_JOB_ALLOW');
1839: l_errMsg := substrb(fnd_message.get, 1, 240);
1840: update mtl_transactions_interface mti
1841: set last_update_date = sysdate,
1842: last_updated_by = fnd_global.user_id,
1843: last_update_login = fnd_global.login_id,
2108: and transaction_source_type_id = 5;
2109:
2110:
2111: -- validate organization id
2112: fnd_message.set_name('INV', 'INV_INT_ORGCODE');
2113: l_errCode := substrb(fnd_message.get, 1, 240);
2114: fnd_message.set_name('INV', 'INV_INT_ORGEXP');
2115: l_errMsg := substrb(fnd_message.get, 1, 240);
2116: update mtl_transactions_interface mti
2109:
2110:
2111: -- validate organization id
2112: fnd_message.set_name('INV', 'INV_INT_ORGCODE');
2113: l_errCode := substrb(fnd_message.get, 1, 240);
2114: fnd_message.set_name('INV', 'INV_INT_ORGEXP');
2115: l_errMsg := substrb(fnd_message.get, 1, 240);
2116: update mtl_transactions_interface mti
2117: set last_update_date = sysdate,
2110:
2111: -- validate organization id
2112: fnd_message.set_name('INV', 'INV_INT_ORGCODE');
2113: l_errCode := substrb(fnd_message.get, 1, 240);
2114: fnd_message.set_name('INV', 'INV_INT_ORGEXP');
2115: l_errMsg := substrb(fnd_message.get, 1, 240);
2116: update mtl_transactions_interface mti
2117: set last_update_date = sysdate,
2118: last_updated_by = fnd_global.user_id,
2111: -- validate organization id
2112: fnd_message.set_name('INV', 'INV_INT_ORGCODE');
2113: l_errCode := substrb(fnd_message.get, 1, 240);
2114: fnd_message.set_name('INV', 'INV_INT_ORGEXP');
2115: l_errMsg := substrb(fnd_message.get, 1, 240);
2116: update mtl_transactions_interface mti
2117: set last_update_date = sysdate,
2118: last_updated_by = fnd_global.user_id,
2119: last_update_login = fnd_global.login_id,
2134: and nvl(ood.disable_date, sysdate+1) > sysdate);
2135:
2136:
2137: --validate scheduled_flag
2138: fnd_message.set_name('WIP', 'WIP_INVALID_FLOW_SCHED_FLAG');
2139: l_errMsg := substrb(fnd_message.get, 1, 240);
2140: update mtl_transactions_interface mti
2141: set last_update_date = sysdate,
2142: last_updated_by = fnd_global.user_id,
2135:
2136:
2137: --validate scheduled_flag
2138: fnd_message.set_name('WIP', 'WIP_INVALID_FLOW_SCHED_FLAG');
2139: l_errMsg := substrb(fnd_message.get, 1, 240);
2140: update mtl_transactions_interface mti
2141: set last_update_date = sysdate,
2142: last_updated_by = fnd_global.user_id,
2143: last_update_login = fnd_global.login_id,
2160:
2161:
2162: -- validate transaction source name if provided, we won't do
2163: -- the validation for that if id is provided since id overrides name anyway
2164: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
2165: fnd_message.set_token('ENTITY', 'transaction_source_name');
2166: l_errMsg := substrb(fnd_message.get, 1, 240);
2167: update mtl_transactions_interface mti
2168: set last_update_date = sysdate,
2161:
2162: -- validate transaction source name if provided, we won't do
2163: -- the validation for that if id is provided since id overrides name anyway
2164: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
2165: fnd_message.set_token('ENTITY', 'transaction_source_name');
2166: l_errMsg := substrb(fnd_message.get, 1, 240);
2167: update mtl_transactions_interface mti
2168: set last_update_date = sysdate,
2169: last_updated_by = fnd_global.user_id,
2162: -- validate transaction source name if provided, we won't do
2163: -- the validation for that if id is provided since id overrides name anyway
2164: fnd_message.set_name('WIP', 'WIP_NOT_VALID');
2165: fnd_message.set_token('ENTITY', 'transaction_source_name');
2166: l_errMsg := substrb(fnd_message.get, 1, 240);
2167: update mtl_transactions_interface mti
2168: set last_update_date = sysdate,
2169: last_updated_by = fnd_global.user_id,
2170: last_update_login = fnd_global.login_id,
2207: and transaction_source_id is null;
2208:
2209:
2210: -- validate transaction action
2211: fnd_message.set_name('INV', 'INV_INT_TRXACTCODE');
2212: l_errCode := substrb(fnd_message.get, 1, 240);
2213: fnd_message.set_name('INV', 'INV_INT_TRXACTEXP');
2214: l_errMsg := substrb(fnd_message.get, 1, 240);
2215: update mtl_transactions_interface mti
2208:
2209:
2210: -- validate transaction action
2211: fnd_message.set_name('INV', 'INV_INT_TRXACTCODE');
2212: l_errCode := substrb(fnd_message.get, 1, 240);
2213: fnd_message.set_name('INV', 'INV_INT_TRXACTEXP');
2214: l_errMsg := substrb(fnd_message.get, 1, 240);
2215: update mtl_transactions_interface mti
2216: set last_update_date = sysdate,
2209:
2210: -- validate transaction action
2211: fnd_message.set_name('INV', 'INV_INT_TRXACTCODE');
2212: l_errCode := substrb(fnd_message.get, 1, 240);
2213: fnd_message.set_name('INV', 'INV_INT_TRXACTEXP');
2214: l_errMsg := substrb(fnd_message.get, 1, 240);
2215: update mtl_transactions_interface mti
2216: set last_update_date = sysdate,
2217: last_updated_by = fnd_global.user_id,
2210: -- validate transaction action
2211: fnd_message.set_name('INV', 'INV_INT_TRXACTCODE');
2212: l_errCode := substrb(fnd_message.get, 1, 240);
2213: fnd_message.set_name('INV', 'INV_INT_TRXACTEXP');
2214: l_errMsg := substrb(fnd_message.get, 1, 240);
2215: update mtl_transactions_interface mti
2216: set last_update_date = sysdate,
2217: last_updated_by = fnd_global.user_id,
2218: last_update_login = fnd_global.login_id,
2231: and upper(nvl(flow_schedule, 'N')) <> 'Y';
2232:
2233:
2234: -- validate transaction source id
2235: fnd_message.set_name('INV', 'INV_INT_SRCCODE');
2236: l_errCode := substrb(fnd_message.get, 1, 240);
2237: fnd_message.set_name('INV', 'INV_INT_SRCWIPEXP');
2238: l_errMsg := substrb(fnd_message.get, 1, 240);
2239: update mtl_transactions_interface mti
2232:
2233:
2234: -- validate transaction source id
2235: fnd_message.set_name('INV', 'INV_INT_SRCCODE');
2236: l_errCode := substrb(fnd_message.get, 1, 240);
2237: fnd_message.set_name('INV', 'INV_INT_SRCWIPEXP');
2238: l_errMsg := substrb(fnd_message.get, 1, 240);
2239: update mtl_transactions_interface mti
2240: set last_update_date = sysdate,
2233:
2234: -- validate transaction source id
2235: fnd_message.set_name('INV', 'INV_INT_SRCCODE');
2236: l_errCode := substrb(fnd_message.get, 1, 240);
2237: fnd_message.set_name('INV', 'INV_INT_SRCWIPEXP');
2238: l_errMsg := substrb(fnd_message.get, 1, 240);
2239: update mtl_transactions_interface mti
2240: set last_update_date = sysdate,
2241: last_updated_by = fnd_global.user_id,
2234: -- validate transaction source id
2235: fnd_message.set_name('INV', 'INV_INT_SRCCODE');
2236: l_errCode := substrb(fnd_message.get, 1, 240);
2237: fnd_message.set_name('INV', 'INV_INT_SRCWIPEXP');
2238: l_errMsg := substrb(fnd_message.get, 1, 240);
2239: update mtl_transactions_interface mti
2240: set last_update_date = sysdate,
2241: last_updated_by = fnd_global.user_id,
2242: last_update_login = fnd_global.login_id,
2267: /* Fix for Bug#4893215 . Make sure that Flow and Work Order-less transaction
2268: * is processed as one batch - parent+components
2269: * */
2270:
2271: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2272: l_errCode := substrb(fnd_message.get, 1, 240);
2273:
2274: fnd_message.set_name('WIP', 'WIP_NO_PARENT_TRANSACTION');
2275: l_errMsg := substrb(fnd_message.get, 1, 240);
2268: * is processed as one batch - parent+components
2269: * */
2270:
2271: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2272: l_errCode := substrb(fnd_message.get, 1, 240);
2273:
2274: fnd_message.set_name('WIP', 'WIP_NO_PARENT_TRANSACTION');
2275: l_errMsg := substrb(fnd_message.get, 1, 240);
2276:
2270:
2271: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2272: l_errCode := substrb(fnd_message.get, 1, 240);
2273:
2274: fnd_message.set_name('WIP', 'WIP_NO_PARENT_TRANSACTION');
2275: l_errMsg := substrb(fnd_message.get, 1, 240);
2276:
2277: update mtl_transactions_interface mti
2278: set last_update_date = sysdate,
2271: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2272: l_errCode := substrb(fnd_message.get, 1, 240);
2273:
2274: fnd_message.set_name('WIP', 'WIP_NO_PARENT_TRANSACTION');
2275: l_errMsg := substrb(fnd_message.get, 1, 240);
2276:
2277: update mtl_transactions_interface mti
2278: set last_update_date = sysdate,
2279: last_updated_by = fnd_global.user_id,
2301: ) ;
2302:
2303: /* Bug 5306902 - Parent WOLC resubmitted without all child component transactions. */
2304:
2305: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2306: l_errCode := substrb(fnd_message.get, 1, 240);
2307:
2308: fnd_message.set_name('WIP', 'WIP_PENDING_CHILD_TRANSACTION');
2309: l_errMsg := substrb(fnd_message.get, 1, 240);
2302:
2303: /* Bug 5306902 - Parent WOLC resubmitted without all child component transactions. */
2304:
2305: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2306: l_errCode := substrb(fnd_message.get, 1, 240);
2307:
2308: fnd_message.set_name('WIP', 'WIP_PENDING_CHILD_TRANSACTION');
2309: l_errMsg := substrb(fnd_message.get, 1, 240);
2310:
2304:
2305: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2306: l_errCode := substrb(fnd_message.get, 1, 240);
2307:
2308: fnd_message.set_name('WIP', 'WIP_PENDING_CHILD_TRANSACTION');
2309: l_errMsg := substrb(fnd_message.get, 1, 240);
2310:
2311: update mtl_transactions_interface mti
2312: set last_update_date = sysdate,
2305: fnd_message.set_name('INV', 'INV_INT_PROCCODE');
2306: l_errCode := substrb(fnd_message.get, 1, 240);
2307:
2308: fnd_message.set_name('WIP', 'WIP_PENDING_CHILD_TRANSACTION');
2309: l_errMsg := substrb(fnd_message.get, 1, 240);
2310:
2311: update mtl_transactions_interface mti
2312: set last_update_date = sysdate,
2313: last_updated_by = fnd_global.user_id,
2462: and process_flag = wip_constants.mti_inventory;
2463: */
2464:
2465: -- validate inventory item id
2466: fnd_message.set_name('INV', 'INV_INT_ITMCODE');
2467: l_errCode := substrb(fnd_message.get, 1, 240);
2468: fnd_message.set_name('INV', 'INV_INT_ITMEXP');
2469: l_errMsg := substrb(fnd_message.get, 1, 240);
2470: update mtl_transactions_interface mti
2463: */
2464:
2465: -- validate inventory item id
2466: fnd_message.set_name('INV', 'INV_INT_ITMCODE');
2467: l_errCode := substrb(fnd_message.get, 1, 240);
2468: fnd_message.set_name('INV', 'INV_INT_ITMEXP');
2469: l_errMsg := substrb(fnd_message.get, 1, 240);
2470: update mtl_transactions_interface mti
2471: set last_update_date = sysdate,
2464:
2465: -- validate inventory item id
2466: fnd_message.set_name('INV', 'INV_INT_ITMCODE');
2467: l_errCode := substrb(fnd_message.get, 1, 240);
2468: fnd_message.set_name('INV', 'INV_INT_ITMEXP');
2469: l_errMsg := substrb(fnd_message.get, 1, 240);
2470: update mtl_transactions_interface mti
2471: set last_update_date = sysdate,
2472: last_updated_by = fnd_global.user_id,
2465: -- validate inventory item id
2466: fnd_message.set_name('INV', 'INV_INT_ITMCODE');
2467: l_errCode := substrb(fnd_message.get, 1, 240);
2468: fnd_message.set_name('INV', 'INV_INT_ITMEXP');
2469: l_errMsg := substrb(fnd_message.get, 1, 240);
2470: update mtl_transactions_interface mti
2471: set last_update_date = sysdate,
2472: last_updated_by = fnd_global.user_id,
2473: last_update_login = fnd_global.login_id,
2553:
2554:
2555: -- make sure that flow_schedule flag is 'N' or NULL for job/repetitive and
2556: -- is Y for flow schedules
2557: fnd_message.set_name('WIP', 'WIP_FLOW_FLAG_ERROR');
2558: l_errMsg := substrb(fnd_message.get, 1, 240);
2559: update mtl_transactions_interface mti
2560: set last_update_date = sysdate,
2561: last_updated_by = fnd_global.user_id,
2554:
2555: -- make sure that flow_schedule flag is 'N' or NULL for job/repetitive and
2556: -- is Y for flow schedules
2557: fnd_message.set_name('WIP', 'WIP_FLOW_FLAG_ERROR');
2558: l_errMsg := substrb(fnd_message.get, 1, 240);
2559: update mtl_transactions_interface mti
2560: set last_update_date = sysdate,
2561: last_updated_by = fnd_global.user_id,
2562: last_update_login = fnd_global.login_id,
2576: or ( wip_entity_type = 4
2577: and upper(nvl(flow_schedule, 'N')) <> 'Y') );
2578:
2579: -- for flow schedule, we can't do complete/scrap against a closed schedule
2580: fnd_message.set_name('WIP', 'WIP_NO_CHARGES_ALLOWED');
2581: l_errMsg := substrb(fnd_message.get, 1, 240);
2582: update mtl_transactions_interface mti
2583: set last_update_date = sysdate,
2584: last_updated_by = fnd_global.user_id,
2577: and upper(nvl(flow_schedule, 'N')) <> 'Y') );
2578:
2579: -- for flow schedule, we can't do complete/scrap against a closed schedule
2580: fnd_message.set_name('WIP', 'WIP_NO_CHARGES_ALLOWED');
2581: l_errMsg := substrb(fnd_message.get, 1, 240);
2582: update mtl_transactions_interface mti
2583: set last_update_date = sysdate,
2584: last_updated_by = fnd_global.user_id,
2585: last_update_login = fnd_global.login_id,