111: IF (l_debug = 1) THEN
112: print_debug('proc_update_mmtt .. l_transfer_cost_group_id: ' ||
113: l_transfer_cost_group_id || ':' );
114: END IF;
115: UPDATE mtl_material_transactions_temp
116: SET cost_group_id = Nvl(p_cost_group_id, cost_group_id),
117: transfer_cost_group_id = Nvl(l_transfer_cost_group_id, transfer_cost_group_id),
118: primary_quantity = Nvl(p_primary_quantity, primary_quantity),
119: transaction_quantity = Nvl(p_transaction_quantity, transaction_quantity)
120: WHERE transaction_temp_id = p_transaction_temp_id;
121: IF (SQL%NOTFOUND )THEN
122: x_return_status := FND_API.G_RET_STS_ERROR ;
123: fnd_message.set_name('INV', 'INV_UPDATE_ERROR');
124: fnd_message.set_token('ENTITY1', 'mtl_material_transactions_temp');
125: -- MESSAGE_TEXT = "Error Updating ENTITY1 "
126: fnd_msg_pub.add;
127: IF (l_debug = 1) THEN
128: print_debug('proc_update_mmtt .. nodatafound OTHERS : ' );
520:
521: END proc_get_default_costgroup;
522:
523: -- Tries to assign the cost group for the material if the material is
524: -- present in MTL_MATERIAL_TRANSACTIONS_TEMP as pending transactions.
525: PROCEDURE proc_get_pending_costgroup(p_organization_id IN NUMBER,
526: p_inventory_item_id IN NUMBER,
527: p_subinventory_code IN VARCHAR2,
528: p_locator_id IN NUMBER,
552: END IF;
553:
554: Select cost_group_id INTO x_cost_group_id FROM (
555: SELECT mmtt.cost_group_id
556: FROM mtl_material_transactions_temp mmtt
557: WHERE mmtt.transfer_organization = p_organization_id
558: AND mmtt.transfer_subinventory = p_subinventory_code
559: AND Nvl(mmtt.transfer_to_location, -1) = Nvl(p_locator_id, -1)
560: AND mmtt.inventory_item_id = p_inventory_item_id
567:
568: -- No control
569:
570: SELECT mmtt.cost_group_id
571: FROM mtl_material_transactions_temp mmtt
572: WHERE mmtt.organization_id = p_organization_id
573: AND mmtt.subinventory_code = p_subinventory_code
574: AND Nvl(mmtt.locator_id, -1) = Nvl(p_locator_id, -1)
575: AND mmtt.inventory_item_id = p_inventory_item_id
591: END IF;
592: -- Lot control
593: Select cost_group_id INTO x_cost_group_id FROM (
594: SELECT mmtt.cost_group_id
595: FROM mtl_material_transactions_temp mmtt,
596: mtl_transaction_lots_temp mtlt
597: WHERE mmtt.transfer_organization = p_organization_id
598: AND mmtt.transfer_subinventory = p_subinventory_code
599: AND Nvl(mmtt.transfer_to_location, -1) = Nvl(p_locator_id, -1)
607:
608: UNION
609:
610: SELECT mmtt.cost_group_id
611: FROM mtl_material_transactions_temp mmtt,
612: mtl_transaction_lots_temp mtlt
613: WHERE mmtt.organization_id = p_organization_id
614: AND mmtt.subinventory_code = p_subinventory_code
615: AND Nvl(mmtt.locator_id, -1) = Nvl(p_locator_id, -1)
641: print_debug('In proc_get_pending_costgroup...Serial Control ');
642: END IF;
643: Select cost_group_id INTO x_cost_group_id FROM (
644: SELECT mmtt.cost_group_id
645: FROM mtl_material_transactions_temp mmtt,
646: mtl_serial_numbers_temp msnt
647: WHERE mmtt.transfer_organization = p_organization_id
648: AND mmtt.transfer_subinventory = p_subinventory_code
649: AND Nvl(mmtt.transfer_to_location, -1) = Nvl(p_locator_id, -1)
658:
659: UNION
660:
661: SELECT mmtt.cost_group_id
662: FROM mtl_material_transactions_temp mmtt,
663: mtl_serial_numbers_temp msnt
664: WHERE mmtt.organization_id = p_organization_id
665: AND mmtt.subinventory_code = p_subinventory_code
666: AND Nvl(mmtt.locator_id, -1) = Nvl(p_locator_id, -1)
686: END IF;
687: -- Lot and serial control
688: Select cost_group_id INTO x_cost_group_id FROM (
689: SELECT mmtt.cost_group_id
690: FROM mtl_material_transactions_temp mmtt,
691: mtl_transaction_lots_temp mtlt,
692: mtl_serial_numbers_temp msnt
693: WHERE mmtt.transfer_organization = p_organization_id
694: AND mmtt.transfer_subinventory = p_subinventory_code
706:
707: UNION
708:
709: SELECT mmtt.cost_group_id
710: FROM mtl_material_transactions_temp mmtt,
711: mtl_transaction_lots_temp mtlt,
712: mtl_serial_numbers_temp msnt
713: WHERE mmtt.organization_id = p_organization_id
714: AND mmtt.subinventory_code = p_subinventory_code
789: END proc_get_pending_costgroup;
790:
791: -- Gets the current cost group for the material given parameters
792: -- First checks the mtl_onhand_quantities for onhand inventory and then the
793: -- mtl_material_transactions_temp for any pending transactions.
794: PROCEDURE proc_get_costgroup(p_organization_id IN NUMBER,
795: p_inventory_item_id IN NUMBER,
796: p_subinventory_code IN VARCHAR2,
797: p_locator_id IN NUMBER,
973: END proc_get_costgroup;
974:
975: -- Gets the current cost group for the material given parameters
976: -- First checks the mtl_onhand_quantities for onhand inventory and then the
977: -- mtl_material_transactions_temp for any pending transactions. If no
978: -- entries are found there then it checks if negative onhand balances are
979: -- allowed. If negative balances are allowed then it assigns the default
980: -- cost group of the subinventory or the organization.
981: PROCEDURE proc_determine_costgroup(p_organization_id IN NUMBER,
1442: ROLLBACK TO sp_proc_insert_mtlt;
1443: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1444: END proc_insert_mtlt;
1445: --
1446: PROCEDURE proc_insert_mmtt(p_mmtt_rec IN mtl_material_transactions_temp%ROWTYPE,
1447: p_transfer_wms_org IN BOOLEAN,
1448: p_fob_point IN NUMBER,
1449: p_tfr_primary_cost_method IN NUMBER,
1450: p_tfr_org_cost_group_id IN NUMBER,
1510: IF (l_debug = 1) THEN
1511: print_debug( 'Begin proc_insert_mmtt: l_Transfer_cost_group_id: ' || l_Transfer_cost_group_id);
1512: END IF;
1513: INSERT INTO
1514: mtl_material_transactions_temp
1515: (
1516: TRANSACTION_HEADER_ID ,
1517: TRANSACTION_TEMP_ID ,
1518: SOURCE_CODE ,
2020: END proc_insert_mmtt;
2021: --
2022:
2023: PROCEDURE proc_process_nocontrol
2024: (p_mmtt_rec IN mtl_material_transactions_temp%ROWTYPE,
2025: p_fob_point IN NUMBER,
2026: p_transfer_wms_org IN BOOLEAN,
2027: p_tfr_primary_cost_method IN NUMBER,
2028: p_tfr_org_cost_group_id IN NUMBER,
2225: -- Processes lot controlled items. This involves splitting
2226: -- MMTT and updating MTLT lines so that each row corresponds to a unique cost
2227: -- group.
2228: PROCEDURE proc_process_lots
2229: (p_mmtt_rec IN mtl_material_transactions_temp%ROWTYPE,
2230: p_fob_point IN NUMBER,
2231: p_transfer_wms_org IN BOOLEAN,
2232: p_tfr_primary_cost_method IN NUMBER,
2233: p_tfr_org_cost_group_id IN NUMBER,
2591: -- MMTT, MTLT and MSNT lines so that each row corresponds to a unique cost
2592: -- group.
2593:
2594: PROCEDURE proc_process_serials
2595: (p_mmtt_rec IN mtl_material_transactions_temp%ROWTYPE,
2596: p_fob_point IN NUMBER,
2597: p_transfer_wms_org IN BOOLEAN,
2598: p_tfr_primary_cost_method IN NUMBER,
2599: p_tfr_org_cost_group_id IN NUMBER,
3097: -- Processes the lot and serial controlled items. This involves splitting
3098: -- MMTT, MTLT and MSNT lines so that each row corresponds to a unique cost
3099: -- group.
3100: PROCEDURE proc_process_lot_serial
3101: (p_mmtt_rec IN mtl_material_transactions_temp%ROWTYPE,
3102: p_fob_point IN NUMBER,
3103: p_transfer_wms_org IN BOOLEAN,
3104: p_tfr_primary_cost_method IN NUMBER,
3105: p_tfr_org_cost_group_id IN NUMBER,
3868:
3869: -- Main Logic
3870:
3871: PROCEDURE cost_group_update
3872: (p_transaction_rec IN mtl_material_transactions_temp%ROWTYPE,
3873: p_fob_point IN mtl_interorg_parameters.fob_point%TYPE DEFAULT NULL,
3874: p_transfer_wms_org IN BOOLEAN DEFAULT TRUE,
3875: p_tfr_primary_cost_method IN NUMBER,
3876: p_tfr_org_cost_group_id IN NUMBER,
3887: l_primary_qty NUMBER := NULL;
3888: l_is_lot_control BOOLEAN := NULL;
3889: l_is_serial_control BOOLEAN := NULL;
3890: l_cost_group_id NUMBER := 0;
3891: l_mmtt_rec mtl_material_transactions_temp%ROWTYPE;
3892: l_lpn_id NUMBER := p_transaction_rec.lpn_id;
3893: l_onhand_exists BOOLEAN := TRUE;
3894: l_is_backflush_txn BOOLEAN := FALSE;
3895: l_lot_number VARCHAR2(80); --- BUG#4291891 Joe DiIorio 04/08/2005
3949:
3950: -- Requery MMTT to get the fresh records
3951: SELECT *
3952: INTO l_mmtt_rec
3953: FROM mtl_material_transactions_temp
3954: WHERE transaction_temp_id = l_mmtt_rec.transaction_temp_id;
3955:
3956: IF (l_debug = 1) THEN
3957: print_debug('CG from RULES engine: ' || l_mmtt_rec.cost_group_id);