The following lines contain the word 'select', 'insert', 'update' or 'delete':
LINE_INSERT_TRX creates a transaction_temp_id for a transaction.
X_TRANSACTION_HEADER_ID is an IN/OUT parameter representing the
transaction header id used for the transaction.
When X_TRANSACTION_HEADER_ID is passed as null, LINE_INSERT_TRX
uses the newly created transaction_temp_id as the transaction header id
for the transaction.
When X_TRANSACTION_HEADER_ID is passed a value, LINE_INSERT_TRX
uses this value as the transaction header id for the transaction.
So for the first transaction in the group, X_TRANSACTION_HEADER_ID is
passed as null to LINE_INSERT_TRX. For subsequent calls, the value is
available and is used.
*/
SAVEPOINT TRX_BEGIN;
L_RETURN_STATUS := INV_TRX_UTIL_PUB.INSERT_LINE_TRX(
p_trx_hdr_id => X_TRANSACTION_HEADER_ID,
p_item_id => P_INVENTORY_ITEM_ID,
p_revision => P_REVISION,
p_org_id => P_ORG_ID,
p_trx_action_id => L_TRANSACTION_ACTION_ID,
p_subinv_code => P_SUBINVENTORY ,
p_tosubinv_code => NULL,
p_locator_id => P_LOCATOR_ID,
p_tolocator_id => NULL,
p_xfr_org_id => NULL,
p_trx_type_id => L_TRANSACTION_TYPE_ID,
p_trx_src_type_id => L_TRANSACTION_SOURCE_TYPE_ID,
p_trx_qty => L_ONHAND,
p_pri_qty => L_PRIMARY_QUANTITY,
p_uom => P_UOM,
p_date => SYSDATE,
p_reason_id => NULL,
p_user_id => P_USER_ID,
p_frt_code => NULL,
p_ship_num => NULL,
p_dist_id => NULL,
p_way_bill => NULL,
p_exp_arr => NULL,
p_cost_group => P_COSTGROUP_ID,
p_from_lpn_id => P_LPN_ID,
p_cnt_lpn_id => NULL,
p_xfr_lpn_id => P_LPN_ID,
p_trx_src_id => NULL,
x_trx_tmp_id => L_TRANSACTION_TEMP_ID,
x_proc_msg => L_PROC_MSG,
p_xfr_cost_group => P_XFR_COSTGROUP_ID,
p_completion_trx_id => NULL,
p_flow_schedule => NULL,
p_trx_cost => NULL
);
SELECT EXPIRATION_DATE
INTO L_EXP_DATE
FROM MTL_LOT_NUMBERS_ALL_V
WHERE ORGANIZATION_ID = P_ORG_ID
AND INVENTORY_ITEM_ID = P_INVENTORY_ITEM_ID
AND LOT_NUMBER = P_LOT_NUMBER;
L_RETURN_STATUS := INV_TRX_UTIL_PUB.INSERT_LOT_TRX(
p_trx_tmp_id => L_TRANSACTION_TEMP_ID,
p_user_id => P_USER_ID,
p_lot_number => P_LOT_NUMBER,
p_trx_qty => L_ONHAND,
p_pri_qty => L_PRIMARY_QUANTITY,
x_ser_trx_id => L_SERIAL_TRANSACTION_TEMP_ID,
x_proc_msg => L_PROC_MSG,
p_exp_date => L_EXP_DATE
);
L_RETURN_STATUS := INV_TRX_UTIL_PUB.INSERT_LOT_TRX(
p_trx_tmp_id => L_TRANSACTION_TEMP_ID,
p_user_id => P_USER_ID,
p_lot_number => P_LOT_NUMBER,
p_trx_qty => 1,
p_pri_qty => 1,
x_ser_trx_id => L_SERIAL_TRANSACTION_TEMP_ID,
x_proc_msg => L_PROC_MSG,
p_exp_date => NULL
);
L_RETURN_STATUS := INV_TRX_UTIL_PUB.INSERT_SER_TRX(
p_trx_tmp_id => L_SERIAL_TRANSACTION_TEMP_ID,
p_user_id => P_USER_ID,
p_fm_ser_num => P_SERIAL_NUMBER,
p_to_ser_num => P_SERIAL_NUMBER,
x_proc_msg => L_PROC_MSG
);
L_RETURN_STATUS := INV_TRX_UTIL_PUB.INSERT_SER_TRX(
p_trx_tmp_id => L_TRANSACTION_TEMP_ID,
p_user_id => P_USER_ID,
p_fm_ser_num => P_SERIAL_NUMBER,
p_to_ser_num => P_SERIAL_NUMBER,
x_proc_msg => L_PROC_MSG
);
SELECT segment19 INTO L_PROJ_ID FROM MTL_ITEM_LOCATIONS
WHERE INVENTORY_LOCATION_ID=p_locator_id;
PROCEDURE UPDATE_QUANTITY_TREE(
X_RETURN_STATUS OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
X_MSG_COUNT OUT NOCOPY /* file.sql.39 change */ NUMBER,
X_MSG_DATA OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
P_IS_LOT_CONTROLLED IN VARCHAR2,
P_IS_SERIAL_CONTROLLED IN VARCHAR2,
P_IS_LPN_REQUIRED IN VARCHAR2,
P_ORG_ID IN NUMBER,
P_INVENTORY_ITEM_ID IN NUMBER,
P_REVISION IN VARCHAR2,
P_SUBINVENTORY IN VARCHAR2,
P_LOCATOR_ID IN NUMBER,
P_LOT_NUMBER IN VARCHAR2,
P_ONHAND IN NUMBER,
P_UOM IN VARCHAR2,
P_PRIMARY_UOM IN VARCHAR2,
P_COSTGROUP_ID IN NUMBER,
P_XFR_COSTGROUP_ID IN NUMBER
) IS
L_MSG_COUNT NUMBER;
INV_ITEM_INQ.UPDATE_QUANTITY(
P_ORGANIZATION_ID => P_ORG_ID,
P_INVENTORY_ITEM_ID => P_INVENTORY_ITEM_ID,
P_REVISION => P_REVISION,
P_LOT_NUMBER => L_LOT_NUMBER,
P_SUBINVENTORY_CODE => P_SUBINVENTORY ,
P_LOCATOR_ID => P_LOCATOR_ID,
P_COST_GROUP_ID => P_COSTGROUP_ID,
P_PRIMARY_QUANTITY => ( -1 * L_PRIMARY_QUANTITY ),
P_CONTAINERIZED => L_CONTAINERIZED,
X_QOH => L_QOH,
X_ATT => L_ATT,
X_RETURN_STATUS => L_RETURN_STATUS,
X_MSG_DATA => L_MSG_DATA,
X_MSG_COUNT => L_MSG_COUNT
);
INV_ITEM_INQ.UPDATE_QUANTITY(
P_ORGANIZATION_ID => P_ORG_ID,
P_INVENTORY_ITEM_ID => P_INVENTORY_ITEM_ID,
P_REVISION => P_REVISION,
P_LOT_NUMBER => L_LOT_NUMBER,
P_SUBINVENTORY_CODE => P_SUBINVENTORY ,
P_LOCATOR_ID => P_LOCATOR_ID,
P_COST_GROUP_ID => P_XFR_COSTGROUP_ID,
P_PRIMARY_QUANTITY => L_PRIMARY_QUANTITY,
P_CONTAINERIZED => L_CONTAINERIZED,
X_QOH => L_QOH,
X_ATT => L_ATT,
X_RETURN_STATUS => L_RETURN_STATUS,
X_MSG_DATA => L_MSG_DATA,
X_MSG_COUNT => L_MSG_COUNT
);
END UPDATE_QUANTITY_TREE;