8: x_return_status OUT NOCOPY VARCHAR2,
9: x_trx_error_rec OUT NOCOPY CSI_DATASTRUCTURES_PUB.TRANSACTION_ERROR_REC)
10: IS
11:
12: l_mtl_item_tbl CSI_INV_TRXS_PKG.MTL_ITEM_TBL_TYPE;
13: l_api_name VARCHAR2(100) := 'CSI_INV_HZ_PKG.ISSUE_TO_HZ_LOC';
14: l_api_version NUMBER := 1.0;
15: l_commit VARCHAR2(1) := FND_API.G_FALSE;
16: l_init_msg_list VARCHAR2(1) := FND_API.G_TRUE;
48: l_fnd_success VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
49: l_fnd_warning VARCHAR2(1) := 'W';
50: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
51: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
52: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
53: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
54: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
55: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
56: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
49: l_fnd_warning VARCHAR2(1) := 'W';
50: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
51: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
52: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
53: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
54: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
55: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
56: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
57: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
50: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
51: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
52: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
53: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
54: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
55: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
56: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
57: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
58: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
51: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
52: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
53: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
54: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
55: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
56: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
57: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
58: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
59: l_transaction_error_id NUMBER;
52: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
53: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
54: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
55: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
56: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
57: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
58: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
59: l_transaction_error_id NUMBER;
60: l_quantity NUMBER;
53: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
54: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
55: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
56: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
57: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
58: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
59: l_transaction_error_id NUMBER;
60: l_quantity NUMBER;
61: l_mfg_serial_flag VARCHAR2(1);
108:
109: -- This procedure queries all of the Inventory Transaction Records and
110: -- returns them as a table.
111:
112: csi_inv_trxs_pkg.get_transaction_recs(p_transaction_id,
113: l_mtl_item_tbl,
114: l_return_status,
115: l_error_message);
116:
121: END IF;
122:
123: IF NOT l_return_status = l_fnd_success THEN
124: IF (l_debug > 0) THEN
125: csi_t_gen_utility_pvt.add('You have encountered an error in CSI_INV_TRXS_PKG.get_transaction_recs, Transaction ID: '||p_transaction_id);
126: END IF;
127: RAISE fnd_api.g_exc_error;
128: END IF;
129:
127: RAISE fnd_api.g_exc_error;
128: END IF;
129:
130: -- Get the Master Organization ID
131: csi_inv_trxs_pkg.get_master_organization(l_mtl_item_tbl(i).organization_id,
132: l_master_organization_id,
133: l_return_status,
134: l_error_message);
135:
134: l_error_message);
135:
136: IF NOT l_return_status = l_fnd_success THEN
137: IF (l_debug > 0) THEN
138: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_master_organization, Organization ID: '||l_mtl_item_tbl(i).organization_id);
139: END IF;
140: RAISE fnd_api.g_exc_error;
141: END IF;
142:
140: RAISE fnd_api.g_exc_error;
141: END IF;
142:
143: -- Call get_fnd_employee_id and get the employee id
144: l_employee_id := csi_inv_trxs_pkg.get_fnd_employee_id(l_mtl_item_tbl(i).last_updated_by);
145:
146: IF l_employee_id = -1 THEN
147: IF (l_debug > 0) THEN
148: csi_t_gen_utility_pvt.add('The person who last updated this record: '||l_mtl_item_tbl(i).last_updated_by||' does not exist as a valid employee');
152: csi_t_gen_utility_pvt.add('The Employee that is processing this Transaction is: '||l_employee_id);
153: END IF;
154:
155: -- See if this is a depreciable Item to set the status of the transaction record
156: csi_inv_trxs_pkg.check_depreciable(l_mtl_item_tbl(i).inventory_item_id,
157: l_depreciable,
158: l_mtl_item_tbl(i).organization_id); --Added for Bug 13988660
159:
160: IF (l_debug > 0) THEN
175:
176: -- Get the Negative Receipt Code to see if this org allows Negative
177: -- Quantity Records 1 = Yes, 2 = No
178:
179: l_neg_code := csi_inv_trxs_pkg.get_neg_inv_code(
180: l_mtl_item_tbl(i).organization_id);
181:
182: IF l_neg_code = 1 AND l_mtl_item_tbl(i).serial_number is NULL THEN
183: l_instance_status := FND_API.G_FALSE;
220: csi_t_gen_utility_pvt.add('Location ID - Location Type; '||l_mtl_item_tbl(i).ship_to_location_id||'-'||l_location_type);
221: END IF;
222:
223: -- Create CSI Transaction to be used
224: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
225: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
226: l_txn_rec.transaction_date := l_sysdate;
227: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
228: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
223: -- Create CSI Transaction to be used
224: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
225: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
226: l_txn_rec.transaction_date := l_sysdate;
227: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
228: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
229: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
230: l_txn_rec.transacted_by := l_employee_id;
231: l_txn_rec.transaction_action_code := NULL;
228: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
229: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
230: l_txn_rec.transacted_by := l_employee_id;
231: l_txn_rec.transaction_action_code := NULL;
232: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
233: l_txn_rec.message_id := p_message_id;
234: l_txn_rec.inv_material_transaction_id := p_transaction_id;
235: l_txn_rec.object_version_number := l_object_version_number;
236: l_txn_rec.source_group_ref := l_location_type;
236: l_txn_rec.source_group_ref := l_location_type;
237: l_txn_rec.source_header_ref_id := l_mtl_item_tbl(i).transaction_source_id;
238: l_txn_rec.source_line_ref_id := l_mtl_item_tbl(i).move_order_line_id;
239:
240: csi_inv_trxs_pkg.create_csi_txn(l_txn_rec,
241: l_error_message,
242: l_return_status);
243:
244: IF (l_debug > 0) THEN
246: END IF;
247:
248: IF NOT l_return_status = l_fnd_success THEN
249: IF (l_debug > 0) THEN
250: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.create_csi_txn: '||p_transaction_id);
251: END IF;
252: RAISE fnd_api.g_exc_error;
253: END IF;
254:
261: csi_t_gen_utility_pvt.add('Transaction UOM: '||l_mtl_item_tbl(j).transaction_uom);
262: csi_t_gen_utility_pvt.add('Transaction Qty: '||l_mtl_item_tbl(j).transaction_quantity);
263: END IF;
264:
265: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
266: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
267: l_instance_query_rec.lot_number := l_mtl_item_tbl(j).lot_number;
268: l_instance_query_rec.serial_number := l_mtl_item_tbl(j).serial_number;
269: l_instance_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
324: IF (l_debug > 0) THEN
325: csi_t_gen_utility_pvt.add('No Source Records are found but negative qtys are allowed so create a negative qty source record');
326: END IF;
327:
328: l_new_src_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
329: l_new_src_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
330: l_new_src_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
331: l_new_src_instance_rec.inv_master_organization_id := l_master_organization_id;
332: l_new_src_instance_rec.mfg_serial_number_flag := 'N';
337: l_new_src_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
338: l_new_src_instance_rec.instance_usage_code := l_in_inventory;
339: l_new_src_instance_rec.inv_locator_id := l_mtl_item_tbl(j).locator_id;
340: l_new_src_instance_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
341: l_new_src_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
342: l_new_src_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
343: l_new_src_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
344: l_new_src_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
345: l_new_src_instance_rec.customer_view_flag := 'N';
346: l_new_src_instance_rec.merchant_view_flag := 'Y';
347: l_new_src_instance_rec.operational_status_code := 'NOT_USED';
348: l_new_src_instance_rec.object_version_number := l_object_version_number;
349:
350: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
351: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
352: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
353: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
354: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
347: l_new_src_instance_rec.operational_status_code := 'NOT_USED';
348: l_new_src_instance_rec.object_version_number := l_object_version_number;
349:
350: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
351: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
352: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
353: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
354: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
355: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
348: l_new_src_instance_rec.object_version_number := l_object_version_number;
349:
350: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
351: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
352: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
353: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
354: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
355: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
356:
349:
350: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
351: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
352: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
353: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
354: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
355: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
356:
357: IF (l_debug > 0) THEN
350: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
351: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
352: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
353: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
354: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
355: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
356:
357: IF (l_debug > 0) THEN
358: csi_t_gen_utility_pvt.add('Before Create Source Item Instance');
351: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
352: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
353: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
354: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
355: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
356:
357: IF (l_debug > 0) THEN
358: csi_t_gen_utility_pvt.add('Before Create Source Item Instance');
359: END IF;
413: IF (l_debug > 0) THEN
414: csi_t_gen_utility_pvt.add('You will update instance: '||l_src_instance_header_tbl(i).instance_id);
415: END IF;
416:
417: l_update_source_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
418: l_update_source_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
419: l_update_source_instance_rec.quantity := l_src_instance_header_tbl(i).quantity - abs(l_mtl_item_tbl(j).primary_quantity);
420: l_update_source_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
421:
424: l_pricing_attrib_tbl.delete;
425: l_org_assignments_tbl.delete;
426: l_asset_assignment_tbl.delete;
427:
428: l_update_source_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
429:
430:
431: IF (l_debug > 0) THEN
432: csi_t_gen_utility_pvt.add('Before Update Item Instance');
491:
492: END IF; -- End of Source Record IF
493:
494: -- Now query and get the destination record.
495: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
496: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
497: l_instance_query_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
498: --l_instance_query_rec.location_type_code := l_hz_loc_code;
499: l_instance_query_rec.location_type_code := l_location_type;
551: IF (l_debug > 0) THEN
552: csi_t_gen_utility_pvt.add('No Destination Records were found so we will create a new destination Record using the source data');
553: END IF;
554:
555: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
556: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
557: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
558: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
559: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
563: l_new_dest_instance_rec.active_end_date := NULL;
564: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
565: l_new_dest_instance_rec.instance_usage_code := l_in_service;
566: l_new_dest_instance_rec.inv_locator_id := NULL;
567: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
568: --l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
569: l_new_dest_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
570: l_new_dest_instance_rec.inv_organization_id := NULL;
571: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
564: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
565: l_new_dest_instance_rec.instance_usage_code := l_in_service;
566: l_new_dest_instance_rec.inv_locator_id := NULL;
567: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
568: --l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
569: l_new_dest_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
570: l_new_dest_instance_rec.inv_organization_id := NULL;
571: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
572: l_new_dest_instance_rec.pa_project_id := NULL;
575: l_new_dest_instance_rec.merchant_view_flag := 'Y';
576: l_new_dest_instance_rec.operational_status_code := 'IN_SERVICE';
577: l_new_dest_instance_rec.object_version_number := l_object_version_number;
578:
579: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
580: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
581: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
582: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
583: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
576: l_new_dest_instance_rec.operational_status_code := 'IN_SERVICE';
577: l_new_dest_instance_rec.object_version_number := l_object_version_number;
578:
579: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
580: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
581: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
582: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
583: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
584: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
577: l_new_dest_instance_rec.object_version_number := l_object_version_number;
578:
579: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
580: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
581: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
582: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
583: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
584: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
585:
578:
579: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
580: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
581: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
582: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
583: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
584: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
585:
586: IF (l_debug > 0) THEN
579: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
580: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
581: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
582: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
583: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
584: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
585:
586: IF (l_debug > 0) THEN
587: csi_t_gen_utility_pvt.add('Before Create Item Instance - 45');
580: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
581: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
582: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
583: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
584: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
585:
586: IF (l_debug > 0) THEN
587: csi_t_gen_utility_pvt.add('Before Create Item Instance - 45');
588: END IF;
626: IF (l_debug > 0) THEN
627: csi_t_gen_utility_pvt.add('You will update instance: '||l_dest_instance_header_tbl(i).instance_id);
628: END IF;
629:
630: l_update_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
631: l_update_dest_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
632: l_update_dest_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
633: l_update_dest_instance_rec.active_end_date := NULL;
634: l_update_dest_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
638: l_pricing_attrib_tbl.delete;
639: l_org_assignments_tbl.delete;
640: l_asset_assignment_tbl.delete;
641:
642: l_update_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
643:
644: IF (l_debug > 0) THEN
645: csi_t_gen_utility_pvt.add('Before Update Item Instance - Neg Qty');
646: END IF;
706: csi_t_gen_utility_pvt.add('Ship to Location ID Serialized: '||l_mtl_item_tbl(j).ship_to_location_id);
707: csi_t_gen_utility_pvt.add('The Transaction Status Code will be - Complete (C) or Incomplete (I): '||l_txn_rec.transaction_status_code);
708: END IF;
709:
710: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
711: l_update_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
712: l_update_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
713: l_update_instance_rec.inv_subinventory_name := NULL;
714: -- Added for Bug 5975739
716: l_update_instance_rec.inv_organization_id := NULL;
717: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
718: l_update_instance_rec.inv_locator_id := NULL;
719: l_update_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
720: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
721: --l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
722: l_update_instance_rec.pa_project_id := NULL;
723: l_update_instance_rec.pa_project_task_id := NULL;
724: l_update_instance_rec.instance_usage_code := l_in_service;
717: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
718: l_update_instance_rec.inv_locator_id := NULL;
719: l_update_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
720: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
721: --l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
722: l_update_instance_rec.pa_project_id := NULL;
723: l_update_instance_rec.pa_project_task_id := NULL;
724: l_update_instance_rec.instance_usage_code := l_in_service;
725: l_update_instance_rec.operational_status_code := 'IN_SERVICE';
832: x_trx_error_rec.error_text := l_error_message;
833: x_trx_error_rec.transaction_id := NULL;
834: x_trx_error_rec.source_type := 'CSIISUHZ';
835: x_trx_error_rec.source_id := p_transaction_id;
836: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
837: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
838: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
839: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
840:
833: x_trx_error_rec.transaction_id := NULL;
834: x_trx_error_rec.source_type := 'CSIISUHZ';
835: x_trx_error_rec.source_id := p_transaction_id;
836: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
837: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
838: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
839: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
840:
841: WHEN others THEN
835: x_trx_error_rec.source_id := p_transaction_id;
836: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
837: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
838: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
839: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
840:
841: WHEN others THEN
842: IF (l_debug > 0) THEN
843: csi_t_gen_utility_pvt.add('You have encountered a "others" exception');
863: x_trx_error_rec.error_text := fnd_message.get;
864: x_trx_error_rec.transaction_id := NULL;
865: x_trx_error_rec.source_type := 'CSIISUHZ';
866: x_trx_error_rec.source_id := p_transaction_id;
867: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
868: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
869: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
870: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
871:
864: x_trx_error_rec.transaction_id := NULL;
865: x_trx_error_rec.source_type := 'CSIISUHZ';
866: x_trx_error_rec.source_id := p_transaction_id;
867: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
868: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
869: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
870: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
871:
872: END issue_to_hz_loc;
866: x_trx_error_rec.source_id := p_transaction_id;
867: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
868: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('ISSUE_TO_HZ_LOC','INV');
869: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
870: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
871:
872: END issue_to_hz_loc;
873:
874: PROCEDURE misc_receipt_hz_loc(p_transaction_id IN NUMBER,
876: x_return_status OUT NOCOPY VARCHAR2,
877: x_trx_error_rec OUT NOCOPY CSI_DATASTRUCTURES_PUB.TRANSACTION_ERROR_REC)
878: IS
879:
880: l_mtl_item_tbl CSI_INV_TRXS_PKG.MTL_ITEM_TBL_TYPE;
881: l_api_name VARCHAR2(100) := 'CSI_INV_HZ_PKG.MISC_RECEIPT_HZ_LOC';
882: l_api_version NUMBER := 1.0;
883: l_commit VARCHAR2(1) := FND_API.G_FALSE;
884: l_init_msg_list VARCHAR2(1) := FND_API.G_TRUE;
918: l_fnd_success VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
919: l_fnd_warning VARCHAR2(1) := 'W';
920: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
921: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
922: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
923: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
919: l_fnd_warning VARCHAR2(1) := 'W';
920: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
921: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
922: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
923: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
927: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
920: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
921: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
922: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
923: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
927: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
928: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
921: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
922: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
923: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
927: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
928: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
929: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
922: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
923: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
927: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
928: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
929: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
930: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 12536407
923: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
927: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
928: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
929: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
930: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 12536407
931: l_transaction_error_id NUMBER;
924: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
925: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
926: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
927: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
928: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
929: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
930: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 12536407
931: l_transaction_error_id NUMBER;
932: l_quantity NUMBER;
983:
984: -- This procedure queries all of the Inventory Transaction Records
985: -- and returns them as a table.
986:
987: csi_inv_trxs_pkg.get_transaction_recs(p_transaction_id,
988: l_mtl_item_tbl,
989: l_return_status,
990: l_error_message);
991:
996: END IF;
997:
998: IF NOT l_return_status = l_fnd_success THEN
999: IF (l_debug > 0) THEN
1000: csi_t_gen_utility_pvt.add('You have encountered an error in CSI_INV_TRXS_PKG.get_transaction_recs, Transaction ID: '||p_transaction_id);
1001: END IF;
1002: RAISE fnd_api.g_exc_error;
1003: END IF;
1004:
1002: RAISE fnd_api.g_exc_error;
1003: END IF;
1004:
1005: -- Get the Master Organization ID
1006: csi_inv_trxs_pkg.get_master_organization(l_mtl_item_tbl(i).organization_id,
1007: l_master_organization_id,
1008: l_return_status,
1009: l_error_message);
1010:
1009: l_error_message);
1010:
1011: IF NOT l_return_status = l_fnd_success THEN
1012: IF (l_debug > 0) THEN
1013: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_master_organization, Organization ID: '||l_mtl_item_tbl(i).organization_id);
1014: END IF;
1015: RAISE fnd_api.g_exc_error;
1016: END IF;
1017:
1015: RAISE fnd_api.g_exc_error;
1016: END IF;
1017:
1018: -- Call get_fnd_employee_id and get the employee id
1019: l_employee_id := csi_inv_trxs_pkg.get_fnd_employee_id(l_mtl_item_tbl(i).last_updated_by);
1020:
1021: IF l_employee_id = -1 THEN
1022: IF (l_debug > 0) THEN
1023: csi_t_gen_utility_pvt.add('The person who last updated this record: '||l_mtl_item_tbl(i).last_updated_by||' does not exist as a valid employee');
1027: csi_t_gen_utility_pvt.add('The Employee that is processing this Transaction is: '||l_employee_id);
1028: END IF;
1029:
1030: -- See if this is a depreciable Item to set the status of the transaction record
1031: csi_inv_trxs_pkg.check_depreciable(l_mtl_item_tbl(i).inventory_item_id,
1032: l_depreciable,
1033: l_mtl_item_tbl(i).organization_id); --Added for Bug 13988660
1034:
1035: IF (l_debug > 0) THEN
1043: l_quantity := 1;
1044: END IF;
1045:
1046: -- Initialize Transaction Record
1047: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
1048:
1049: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1050:
1051: -- Set Status based on redeployment
1045:
1046: -- Initialize Transaction Record
1047: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
1048:
1049: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1050:
1051: -- Set Status based on redeployment
1052: --IF l_depreciable = 'N' THEN
1053: -- IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
1050:
1051: -- Set Status based on redeployment
1052: --IF l_depreciable = 'N' THEN
1053: -- IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
1054: -- csi_inv_trxs_pkg.get_redeploy_flag(l_mtl_item_tbl(i).inventory_item_id,
1055: -- l_mtl_item_tbl(i).serial_number,
1056: -- p_transaction_id,
1057: -- l_sysdate,
1058: -- l_redeploy_flag,
1059: -- l_return_status,
1060: -- l_error_message);
1061: -- END IF;
1062: -- IF l_redeploy_flag = 'Y' THEN
1063: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1064: -- ELSE
1065: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
1066: -- END IF;
1067: --ELSE
1061: -- END IF;
1062: -- IF l_redeploy_flag = 'Y' THEN
1063: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1064: -- ELSE
1065: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
1066: -- END IF;
1067: --ELSE
1068: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1069: --END IF;
1064: -- ELSE
1065: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
1066: -- END IF;
1067: --ELSE
1068: -- l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1069: --END IF;
1070:
1071: --IF NOT l_return_status = l_fnd_success THEN
1072: -- IF (l_debug > 0) THEN
1070:
1071: --IF NOT l_return_status = l_fnd_success THEN
1072: -- IF (l_debug > 0) THEN
1073: -- csi_t_gen_utility_pvt.add('Redeploy Flag: '||l_redeploy_flag);
1074: -- csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_redeploy_flag: '||l_error_message);
1075: -- END IF;
1076: -- RAISE fnd_api.g_exc_error;
1077: --END IF;
1078:
1110:
1111: -- Create CSI Transaction to be used
1112: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
1113: l_txn_rec.transaction_date := l_sysdate;
1114: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
1115: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
1116: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
1117: l_txn_rec.transacted_by := l_employee_id;
1118: l_txn_rec.transaction_action_code := NULL;
1120: l_txn_rec.inv_material_transaction_id := p_transaction_id;
1121: l_txn_rec.object_version_number := l_object_version_number;
1122: l_txn_rec.source_group_ref := l_location_type;
1123:
1124: csi_inv_trxs_pkg.create_csi_txn(l_txn_rec,
1125: l_error_message,
1126: l_return_status);
1127:
1128: IF (l_debug > 0) THEN
1130: END IF;
1131:
1132: IF NOT l_return_status = l_fnd_success THEN
1133: IF (l_debug > 0) THEN
1134: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.create_csi_txn: '||p_transaction_id);
1135: END IF;
1136: RAISE fnd_api.g_exc_error;
1137: END IF;
1138:
1153: END IF;
1154:
1155: IF l_mtl_item_tbl(j).serial_number IS NOT NULL THEN -- Serialized
1156:
1157: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1158: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1159: --l_instance_query_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
1160: --l_instance_query_rec.location_type_code := l_hz_loc_code;
1161: --l_instance_query_rec.pa_project_id := NULL;
1266: IF (l_debug > 0) THEN
1267: csi_t_gen_utility_pvt.add('Source records found so decide which one to update using get_destination_instance procedure ');
1268: END IF;
1269:
1270: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1271: l_update_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
1272: l_update_instance_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1273: -- Added For Bug 5975739
1274: l_update_instance_rec.inv_master_organization_id := l_master_organization_id;
1282: l_update_instance_rec.pa_project_task_id := NULL;
1283: l_update_instance_rec.install_location_type_code := NULL;
1284: l_update_instance_rec.install_location_id := NULL;
1285: l_update_instance_rec.instance_usage_code := l_in_inventory;
1286: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1287: l_update_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1288: l_update_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
1289:
1290: l_party_tbl.delete;
1352:
1353: ELSIF l_src_instance_header_tbl.count = 0 THEN -- No IB Records found
1354: csi_t_gen_utility_pvt.add('No Serialized Instances are found so we need to create one that we would have received from the HZ/HR Location');
1355:
1356: l_new_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
1357: l_new_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1358: l_new_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1359: l_new_instance_rec.inv_master_organization_id := l_master_organization_id;
1360: l_new_instance_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1364: l_new_instance_rec.quantity := 1;
1365: l_new_instance_rec.active_start_date := l_sysdate;
1366: l_new_instance_rec.active_end_date := NULL;
1367: l_new_instance_rec.unit_of_measure := l_mtl_item_tbl(j).primary_uom_code;
1368: l_new_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1369: l_new_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1370: l_new_instance_rec.instance_usage_code := l_in_inventory;
1371: l_new_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1372: l_new_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
1374: l_new_instance_rec.customer_view_flag := 'N';
1375: l_new_instance_rec.merchant_view_flag := 'Y';
1376: l_new_instance_rec.object_version_number := l_object_version_number;
1377: l_new_instance_rec.operational_status_code := 'NOT_USED';
1378: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1379: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1380: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1375: l_new_instance_rec.merchant_view_flag := 'Y';
1376: l_new_instance_rec.object_version_number := l_object_version_number;
1377: l_new_instance_rec.operational_status_code := 'NOT_USED';
1378: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1379: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1380: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1383: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1376: l_new_instance_rec.object_version_number := l_object_version_number;
1377: l_new_instance_rec.operational_status_code := 'NOT_USED';
1378: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1379: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1380: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1383: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1384:
1377: l_new_instance_rec.operational_status_code := 'NOT_USED';
1378: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1379: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1380: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1383: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1384:
1385: l_new_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1378: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1379: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1380: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1383: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1384:
1385: l_new_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1386:
1379: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1380: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1383: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1384:
1385: l_new_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1386:
1387: csi_t_gen_utility_pvt.add('Instance_status_id Value: '||nvl(l_new_instance_rec.instance_status_id,-1));
1381: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1382: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1383: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1384:
1385: l_new_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1386:
1387: csi_t_gen_utility_pvt.add('Instance_status_id Value: '||nvl(l_new_instance_rec.instance_status_id,-1));
1388: csi_t_gen_utility_pvt.add('You will now Create a new Item Instance Record');
1389: csi_t_gen_utility_pvt.add('Serial Number: '||l_new_instance_rec.serial_number);
1434: END IF; -- Serialized Source IF
1435:
1436: ELSIF l_mtl_item_tbl(j).serial_number IS NULL THEN -- Non Serialized
1437:
1438: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1439: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1440: l_instance_query_rec.pa_project_id := NULL;
1441: l_instance_query_rec.pa_project_task_id := NULL;
1442: l_instance_query_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
1514:
1515:
1516: IF l_src_instance_header_tbl(oos).quantity >= abs(l_mtl_item_tbl(j).primary_quantity) AND l_curr_quantity > 0 THEN
1517: csi_t_gen_utility_pvt.add('Instance found has more available quantity (or Equal) then the current quantity so subtract the entire primary quantity');
1518: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1519: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(oos).instance_id;
1520: l_upd_src_dest_instance_rec.quantity := l_src_instance_header_tbl(oos).quantity - abs(l_mtl_item_tbl(j).primary_quantity);
1521: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(oos).object_version_number;
1522: l_bypass_qty := 'Y';
1523: l_curr_quantity := l_curr_quantity - l_src_instance_header_tbl(oos).quantity;
1524: -- Bug 10650152
1525: ELSIF l_src_instance_header_tbl(oos).quantity < abs(l_mtl_item_tbl(j).primary_quantity) AND l_curr_quantity > 0 THEN
1526: csi_t_gen_utility_pvt.add('Instance found has less available quantity then the current quantity so set the quantity to 0');
1527: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1528: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(oos).instance_id;
1529: l_upd_src_dest_instance_rec.quantity := 0;
1530: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(oos).object_version_number;
1531:
1612: EXIT;
1613: END IF;
1614: IF l_src_instance_header_tbl(ins).quantity >= l_curr_quantity AND l_curr_quantity > 0 THEN
1615: csi_t_gen_utility_pvt.add('Instance found has more available quantity (or Equal) then the current quantity so subtract the entire primary quantity');
1616: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1617: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(ins).instance_id;
1618: l_upd_src_dest_instance_rec.quantity := l_src_instance_header_tbl(ins).quantity - l_curr_quantity;
1619: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(ins).object_version_number;
1620: l_bypass_qty := 'Y';
1622:
1623: -- Bug 10650152
1624: ELSIF l_src_instance_header_tbl(ins).quantity < l_curr_quantity AND l_curr_quantity > 0 THEN
1625: csi_t_gen_utility_pvt.add('Instance found has less available quantity then the current quantity so set the quantity to 0');
1626: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1627: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(ins).instance_id;
1628: l_upd_src_dest_instance_rec.quantity := 0;
1629: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(ins).object_version_number;
1630:
1709: EXIT;
1710: END IF;
1711: IF l_src_instance_header_tbl(inser).quantity >= l_curr_quantity AND l_curr_quantity > 0 THEN
1712: csi_t_gen_utility_pvt.add('Instance found has more available quantity (or Equal) then the current quantity so subtract the entire primary quantity');
1713: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1714: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(inser).instance_id;
1715: l_upd_src_dest_instance_rec.quantity := l_src_instance_header_tbl(inser).quantity - l_curr_quantity;
1716: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(inser).object_version_number;
1717:
1719: l_curr_quantity := l_curr_quantity - l_src_instance_header_tbl(inser).quantity;
1720: -- Bug 10650152
1721: ELSIF l_src_instance_header_tbl(inser).quantity < l_curr_quantity AND l_curr_quantity > 0 THEN
1722: csi_t_gen_utility_pvt.add('Instance found has less available quantity then the current quantity so set the quantity to 0');
1723: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1724: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(inser).instance_id;
1725: l_upd_src_dest_instance_rec.quantity := 0;
1726: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(inser).object_version_number;
1727:
1784: END LOOP; -- In Service
1785: END IF;
1786:
1787: -- Now query and get the destination record.
1788: l_instance_dest_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1789: l_instance_dest_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1790: l_instance_dest_query_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1791: l_instance_dest_query_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1792: l_instance_dest_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1838: END IF;
1839:
1840: IF l_dest_instance_header_tbl.count = 0 THEN
1841:
1842: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
1843: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1844: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1845: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
1846: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
1846: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
1847: l_new_dest_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
1848: l_new_dest_instance_rec.quantity := abs(l_mtl_item_tbl(j).transaction_quantity);
1849: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
1850: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1851: l_new_dest_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1852: l_new_dest_instance_rec.instance_usage_code := l_in_inventory;
1853: l_new_dest_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1854: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
1860: l_new_dest_instance_rec.active_end_date := NULL;
1861: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
1862: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1863:
1864: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1865: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1866: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1861: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
1862: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1863:
1864: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1865: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1866: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1869: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1862: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1863:
1864: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1865: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1866: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1869: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1870:
1863:
1864: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1865: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1866: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1869: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1870:
1871: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1864: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1865: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1866: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1869: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1870:
1871: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1872:
1865: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1866: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1869: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1870:
1871: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1872:
1873: IF (l_debug > 0) THEN
1867: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1868: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1869: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1870:
1871: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1872:
1873: IF (l_debug > 0) THEN
1874: csi_t_gen_utility_pvt.add('Before Create Item Instance');
1875: END IF;
1909: END IF;
1910:
1911: ELSIF l_dest_instance_header_tbl.count = 1 THEN
1912:
1913: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1914: l_update_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
1915: l_update_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
1916: l_update_instance_rec.active_end_date := NULL;
1917: l_update_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
1921: l_pricing_attrib_tbl.delete;
1922: l_org_assignments_tbl.delete;
1923: l_asset_assignment_tbl.delete;
1924:
1925: l_update_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
1926:
1927: IF (l_debug > 0) THEN
1928: csi_t_gen_utility_pvt.add('Before Update Item Instance');
1929: END IF;
2000: ELSIF l_src_instance_header_tbl.count = 0 THEN -- No IB Records found
2001:
2002: csi_t_gen_utility_pvt.add('No Source Records in a HZ/HR Location Exist. Query for the inventory record in the Org to see if it exists. If it does then add to that instance otherwise create a new instance that is located in Inventory');
2003:
2004: l_instance_dest_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
2005: l_instance_dest_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2006: l_instance_dest_query_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
2007: l_instance_dest_query_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
2008: l_instance_dest_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2054: END IF;
2055:
2056: IF l_dest_instance_header_tbl.count = 0 THEN
2057:
2058: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
2059: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2060: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2061: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
2062: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
2062: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
2063: l_new_dest_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
2064: l_new_dest_instance_rec.quantity := abs(l_mtl_item_tbl(j).transaction_quantity);
2065: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
2066: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
2067: l_new_dest_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
2068: l_new_dest_instance_rec.instance_usage_code := l_in_inventory;
2069: l_new_dest_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
2070: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2076: l_new_dest_instance_rec.active_end_date := NULL;
2077: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
2078: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2079:
2080: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2081: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2082: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2077: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
2078: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2079:
2080: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2081: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2082: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2085: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2078: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2079:
2080: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2081: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2082: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2085: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2086:
2079:
2080: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2081: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2082: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2085: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2086:
2087: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2080: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2081: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2082: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2085: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2086:
2087: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2088:
2081: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2082: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2085: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2086:
2087: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2088:
2089: IF (l_debug > 0) THEN
2083: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2084: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2085: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2086:
2087: l_new_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2088:
2089: IF (l_debug > 0) THEN
2090: csi_t_gen_utility_pvt.add('Before Create Item Instance');
2091: END IF;
2125: END IF;
2126:
2127: ELSIF l_dest_instance_header_tbl.count = 1 THEN
2128:
2129: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2130: l_update_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
2131: l_update_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
2132: l_update_instance_rec.active_end_date := NULL;
2133: l_update_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
2137: l_pricing_attrib_tbl.delete;
2138: l_org_assignments_tbl.delete;
2139: l_asset_assignment_tbl.delete;
2140:
2141: l_update_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2142:
2143: IF (l_debug > 0) THEN
2144: csi_t_gen_utility_pvt.add('Before Update Item Instance');
2145: END IF;
2230:
2231: x_trx_error_rec.transaction_id := NULL;
2232: x_trx_error_rec.source_type := 'CSIMSRHZ';
2233: x_trx_error_rec.source_id := p_transaction_id;
2234: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2235: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
2236: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2237: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2238:
2231: x_trx_error_rec.transaction_id := NULL;
2232: x_trx_error_rec.source_type := 'CSIMSRHZ';
2233: x_trx_error_rec.source_id := p_transaction_id;
2234: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2235: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
2236: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2237: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2238:
2239: WHEN others THEN
2233: x_trx_error_rec.source_id := p_transaction_id;
2234: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2235: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
2236: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2237: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2238:
2239: WHEN others THEN
2240: IF (l_debug > 0) THEN
2241: csi_t_gen_utility_pvt.add('You have encountered a "others" exception');
2261: x_trx_error_rec.error_text := fnd_message.get;
2262: x_trx_error_rec.transaction_id := NULL;
2263: x_trx_error_rec.source_type := 'CSIMSRHZ';
2264: x_trx_error_rec.source_id := p_transaction_id;
2265: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2266: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
2267: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2268: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2269:
2262: x_trx_error_rec.transaction_id := NULL;
2263: x_trx_error_rec.source_type := 'CSIMSRHZ';
2264: x_trx_error_rec.source_id := p_transaction_id;
2265: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2266: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
2267: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2268: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2269:
2270: END misc_receipt_hz_loc;
2264: x_trx_error_rec.source_id := p_transaction_id;
2265: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2266: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_HZ_LOC','INV');
2267: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2268: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2269:
2270: END misc_receipt_hz_loc;
2271:
2272: PROCEDURE misc_issue_hz_loc(p_transaction_id IN NUMBER,
2274: x_return_status OUT NOCOPY VARCHAR2,
2275: x_trx_error_rec OUT NOCOPY CSI_DATASTRUCTURES_PUB.TRANSACTION_ERROR_REC)
2276: IS
2277:
2278: l_mtl_item_tbl CSI_INV_TRXS_PKG.MTL_ITEM_TBL_TYPE;
2279: l_api_name VARCHAR2(100) := 'CSI_INV_PROJECT_PKG.MISC_ISSUE_HZ_LOC';
2280: l_api_version NUMBER := 1.0;
2281: l_commit VARCHAR2(1) := FND_API.G_FALSE;
2282: l_init_msg_list VARCHAR2(1) := FND_API.G_TRUE;
2314: l_fnd_success VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2315: l_fnd_warning VARCHAR2(1) := 'W';
2316: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
2317: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2318: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2319: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2320: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2321: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2322: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2315: l_fnd_warning VARCHAR2(1) := 'W';
2316: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
2317: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2318: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2319: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2320: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2321: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2322: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2323: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2316: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
2317: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2318: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2319: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2320: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2321: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2322: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2323: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2324: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
2317: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2318: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2319: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2320: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2321: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2322: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2323: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2324: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
2325: l_transaction_error_id NUMBER;
2318: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2319: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2320: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2321: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2322: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2323: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2324: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
2325: l_transaction_error_id NUMBER;
2326: l_quantity NUMBER;
2319: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2320: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2321: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2322: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2323: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2324: l_hz_loc_code VARCHAR2(25) := 'HZ_LOCATIONS';
2325: l_transaction_error_id NUMBER;
2326: l_quantity NUMBER;
2327: l_mfg_serial_flag VARCHAR2(1);
2374:
2375: -- This procedure queries all of the Inventory Transaction Records
2376: -- and returns them as a table.
2377:
2378: csi_inv_trxs_pkg.get_transaction_recs(p_transaction_id,
2379: l_mtl_item_tbl,
2380: l_return_status,
2381: l_error_message);
2382:
2387: END IF;
2388:
2389: IF NOT l_return_status = l_fnd_success THEN
2390: IF (l_debug > 0) THEN
2391: csi_t_gen_utility_pvt.add('You have encountered an error in CSI_INV_TRXS_PKG.get_transaction_recs, Transaction ID: '||p_transaction_id);
2392: END IF;
2393: RAISE fnd_api.g_exc_error;
2394: END IF;
2395:
2393: RAISE fnd_api.g_exc_error;
2394: END IF;
2395:
2396: -- Get the Master Organization ID
2397: csi_inv_trxs_pkg.get_master_organization(l_mtl_item_tbl(i).organization_id,
2398: l_master_organization_id,
2399: l_return_status,
2400: l_error_message);
2401:
2400: l_error_message);
2401:
2402: IF NOT l_return_status = l_fnd_success THEN
2403: IF (l_debug > 0) THEN
2404: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_master_organization, Organization ID: '||l_mtl_item_tbl(i).organization_id);
2405: END IF;
2406: RAISE fnd_api.g_exc_error;
2407: END IF;
2408:
2406: RAISE fnd_api.g_exc_error;
2407: END IF;
2408:
2409: -- Call get_fnd_employee_id and get the employee id
2410: l_employee_id := csi_inv_trxs_pkg.get_fnd_employee_id(l_mtl_item_tbl(i).last_updated_by);
2411:
2412: IF l_employee_id = -1 THEN
2413: IF (l_debug > 0) THEN
2414: csi_t_gen_utility_pvt.add('The person who last updated this record: '||l_mtl_item_tbl(i).last_updated_by||' does not exist as a valid employee');
2418: csi_t_gen_utility_pvt.add('The Employee that is processing this Transaction is: '||l_employee_id);
2419: END IF;
2420:
2421: -- See if this is a depreciable Item to set the status of the transaction record
2422: csi_inv_trxs_pkg.check_depreciable(l_mtl_item_tbl(i).inventory_item_id,
2423: l_depreciable,
2424: l_mtl_item_tbl(i).organization_id); --Added for Bug 13988660
2425:
2426: IF (l_debug > 0) THEN
2439:
2440: -- Get the Negative Receipt Code to see if this org allows Negative
2441: -- Quantity Records 1 = Yes, 2 = No
2442:
2443: l_neg_code := csi_inv_trxs_pkg.get_neg_inv_code(
2444: l_mtl_item_tbl(i).organization_id);
2445:
2446: IF l_neg_code = 1 AND l_mtl_item_tbl(i).serial_number is NULL THEN
2447: l_instance_status := FND_API.G_FALSE;
2480: csi_t_gen_utility_pvt.add('Location ID - Location Type; '||l_mtl_item_tbl(i).ship_to_location_id||'-'||l_location_type);
2481: END IF;
2482:
2483: -- Create CSI Transaction to be used
2484: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
2485: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
2486: l_txn_rec.transaction_date := l_sysdate;
2487: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
2488: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
2483: -- Create CSI Transaction to be used
2484: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
2485: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
2486: l_txn_rec.transaction_date := l_sysdate;
2487: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
2488: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
2489: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
2490: l_txn_rec.transacted_by := l_employee_id;
2491: l_txn_rec.transaction_action_code := NULL;
2488: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
2489: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
2490: l_txn_rec.transacted_by := l_employee_id;
2491: l_txn_rec.transaction_action_code := NULL;
2492: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
2493: l_txn_rec.message_id := p_message_id;
2494: l_txn_rec.inv_material_transaction_id := p_transaction_id;
2495: l_txn_rec.object_version_number := l_object_version_number;
2496: l_txn_rec.source_group_ref := l_location_type;
2494: l_txn_rec.inv_material_transaction_id := p_transaction_id;
2495: l_txn_rec.object_version_number := l_object_version_number;
2496: l_txn_rec.source_group_ref := l_location_type;
2497:
2498: csi_inv_trxs_pkg.create_csi_txn(l_txn_rec,
2499: l_error_message,
2500: l_return_status);
2501:
2502: IF (l_debug > 0) THEN
2504: END IF;
2505:
2506: IF NOT l_return_status = l_fnd_success THEN
2507: IF (l_debug > 0) THEN
2508: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.create_csi_txn: '||p_transaction_id);
2509: END IF;
2510: RAISE fnd_api.g_exc_error;
2511: END IF;
2512:
2525: csi_t_gen_utility_pvt.add('Transaction UOM: '||l_mtl_item_tbl(j).transaction_uom);
2526: csi_t_gen_utility_pvt.add('Transaction Qty: '||l_mtl_item_tbl(j).transaction_quantity);
2527: END IF;
2528:
2529: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
2530: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2531: l_instance_query_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
2532: l_instance_query_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
2533: l_instance_query_rec.inv_locator_id := l_mtl_item_tbl(j).locator_id;
2589: IF (l_debug > 0) THEN
2590: csi_t_gen_utility_pvt.add('No records were found so create a new Source Instance Record');
2591: END IF;
2592:
2593: l_new_src_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
2594: l_new_src_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2595: l_new_src_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2596: l_new_src_instance_rec.inv_master_organization_id := l_master_organization_id;
2597: l_new_src_instance_rec.mfg_serial_number_flag := 'N';
2598: l_new_src_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
2599: l_new_src_instance_rec.quantity := l_mtl_item_tbl(j).transaction_quantity;
2600: l_new_src_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
2601: l_new_src_instance_rec.instance_usage_code := l_in_inventory;
2602: l_new_src_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
2603: l_new_src_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
2604: l_new_src_instance_rec.inv_locator_id := l_mtl_item_tbl(j).locator_id;
2605: l_new_src_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
2606: l_new_src_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2610: l_new_src_instance_rec.operational_status_code := 'NOT_USED';
2611: l_new_src_instance_rec.object_version_number := l_object_version_number;
2612: l_new_src_instance_rec.active_start_date := l_sysdate;
2613: l_new_src_instance_rec.active_end_date := NULL;
2614: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2615: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2616: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2617: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2618: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2611: l_new_src_instance_rec.object_version_number := l_object_version_number;
2612: l_new_src_instance_rec.active_start_date := l_sysdate;
2613: l_new_src_instance_rec.active_end_date := NULL;
2614: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2615: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2616: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2617: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2618: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2619: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2612: l_new_src_instance_rec.active_start_date := l_sysdate;
2613: l_new_src_instance_rec.active_end_date := NULL;
2614: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2615: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2616: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2617: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2618: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2619: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2620:
2613: l_new_src_instance_rec.active_end_date := NULL;
2614: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2615: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2616: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2617: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2618: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2619: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2620:
2621: IF (l_debug > 0) THEN
2614: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2615: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2616: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2617: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2618: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2619: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2620:
2621: IF (l_debug > 0) THEN
2622: csi_t_gen_utility_pvt.add('Before Create Transaction - Neg Qty');
2615: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2616: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2617: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2618: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2619: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2620:
2621: IF (l_debug > 0) THEN
2622: csi_t_gen_utility_pvt.add('Before Create Transaction - Neg Qty');
2623: END IF;
2673: IF (l_debug > 0) THEN
2674: csi_t_gen_utility_pvt.add('You will update instance: '||l_src_instance_header_tbl(i).instance_id);
2675: END IF;
2676:
2677: l_update_source_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2678: l_update_source_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
2679: l_update_source_instance_rec.quantity := l_src_instance_header_tbl(i).quantity - abs(l_mtl_item_tbl(j).primary_quantity);
2680: l_update_source_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
2681:
2688: IF (l_debug > 0) THEN
2689: csi_t_gen_utility_pvt.add('Before Update Item Instance - 80');
2690: END IF;
2691:
2692: l_update_source_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2693:
2694: IF (l_debug > 0) THEN
2695: csi_t_gen_utility_pvt.add('Instance Status Id: '||l_update_source_instance_rec.instance_status_id);
2696: END IF;
2749:
2750: END IF; -- End of Source Record If
2751:
2752: -- Now query and get the destination record.
2753: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
2754: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2755: l_instance_query_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
2756: l_instance_query_rec.serial_number := NULL;
2757: --l_instance_query_rec.location_type_code := l_hz_loc_code;
2812: IF (l_debug > 0) THEN
2813: csi_t_gen_utility_pvt.add('No Destination Records were found so we will create a new destination Record using the source data');
2814: END IF;
2815:
2816: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
2817: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2818: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2819: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
2820: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
2825: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
2826: l_new_dest_instance_rec.instance_usage_code := l_in_service;
2827: l_new_dest_instance_rec.inv_locator_id := NULL;
2828: l_new_dest_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
2829: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
2830: --l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
2831: l_new_dest_instance_rec.inv_organization_id := NULL;
2832: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2833: l_new_dest_instance_rec.pa_project_id := NULL;
2826: l_new_dest_instance_rec.instance_usage_code := l_in_service;
2827: l_new_dest_instance_rec.inv_locator_id := NULL;
2828: l_new_dest_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
2829: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
2830: --l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
2831: l_new_dest_instance_rec.inv_organization_id := NULL;
2832: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2833: l_new_dest_instance_rec.pa_project_id := NULL;
2834: l_new_dest_instance_rec.pa_project_task_id := NULL;
2835: l_new_dest_instance_rec.customer_view_flag := 'N';
2836: l_new_dest_instance_rec.merchant_view_flag := 'Y';
2837: l_new_dest_instance_rec.operational_status_code := 'IN_SERVICE';
2838: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2839: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2840: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2841: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2842: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2843: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2836: l_new_dest_instance_rec.merchant_view_flag := 'Y';
2837: l_new_dest_instance_rec.operational_status_code := 'IN_SERVICE';
2838: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2839: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2840: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2841: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2842: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2843: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2844: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2837: l_new_dest_instance_rec.operational_status_code := 'IN_SERVICE';
2838: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2839: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2840: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2841: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2842: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2843: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2844: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2845:
2838: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2839: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2840: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2841: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2842: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2843: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2844: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2845:
2846: IF (l_debug > 0) THEN
2839: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2840: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2841: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2842: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2843: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2844: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2845:
2846: IF (l_debug > 0) THEN
2847: csi_t_gen_utility_pvt.add('Before Create Item Instance - Neg Qty');
2840: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2841: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2842: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2843: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2844: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2845:
2846: IF (l_debug > 0) THEN
2847: csi_t_gen_utility_pvt.add('Before Create Item Instance - Neg Qty');
2848: END IF;
2887: IF (l_debug > 0) THEN
2888: csi_t_gen_utility_pvt.add('You will update instance: '||l_dest_instance_header_tbl(i).instance_id);
2889: END IF;
2890:
2891: l_update_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2892: l_update_dest_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
2893: l_update_dest_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
2894: l_update_dest_instance_rec.active_end_date := NULL;
2895: l_update_dest_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
2899: l_pricing_attrib_tbl.delete;
2900: l_org_assignments_tbl.delete;
2901: l_asset_assignment_tbl.delete;
2902:
2903: l_update_dest_instance_rec.instance_status_id := nvl(csi_inv_trxs_pkg.get_default_status_id(l_txn_rec.transaction_type_id),r_id.instance_status_id);
2904:
2905: IF (l_debug > 0) THEN
2906: csi_t_gen_utility_pvt.add('Before Update Transaction - Neg Qty');
2907: END IF;
2963: END IF; -- End of Destination Record If
2964:
2965: ELSIF l_mtl_item_tbl(j).serial_number is NOT NULL THEN
2966: IF l_src_instance_header_tbl.count = 1 THEN -- Installed Base Records Found
2967: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2968: l_update_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
2969: l_update_instance_rec.lot_number := l_src_instance_header_tbl(i).lot_number;
2970: l_update_instance_rec.inv_subinventory_name := NULL;
2971: -- Added for Bug 5975739
2973: l_update_instance_rec.inv_organization_id := NULL;
2974: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2975: l_update_instance_rec.inv_locator_id := NULL;
2976: l_update_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
2977: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
2978: --l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
2979: l_update_instance_rec.pa_project_id := NULL;
2980: l_update_instance_rec.pa_project_task_id := NULL;
2981: l_update_instance_rec.instance_usage_code := l_in_service;
2974: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2975: l_update_instance_rec.inv_locator_id := NULL;
2976: l_update_instance_rec.location_id := l_mtl_item_tbl(j).ship_to_location_id;
2977: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code(l_location_type);
2978: --l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('hz_locations');
2979: l_update_instance_rec.pa_project_id := NULL;
2980: l_update_instance_rec.pa_project_task_id := NULL;
2981: l_update_instance_rec.instance_usage_code := l_in_service;
2982: l_update_instance_rec.operational_status_code := 'IN_SERVICE';
3089: x_trx_error_rec.error_text := l_error_message;
3090: x_trx_error_rec.transaction_id := NULL;
3091: x_trx_error_rec.source_type := 'CSIMSIHZ';
3092: x_trx_error_rec.source_id := p_transaction_id;
3093: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
3094: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
3095: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
3096: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
3097:
3090: x_trx_error_rec.transaction_id := NULL;
3091: x_trx_error_rec.source_type := 'CSIMSIHZ';
3092: x_trx_error_rec.source_id := p_transaction_id;
3093: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
3094: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
3095: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
3096: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
3097:
3098: WHEN others THEN
3092: x_trx_error_rec.source_id := p_transaction_id;
3093: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
3094: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
3095: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
3096: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
3097:
3098: WHEN others THEN
3099: IF (l_debug > 0) THEN
3100: csi_t_gen_utility_pvt.add('You have encountered a "others" exception');
3120: x_trx_error_rec.error_text := fnd_message.get;
3121: x_trx_error_rec.transaction_id := NULL;
3122: x_trx_error_rec.source_type := 'CSIMSIHZ';
3123: x_trx_error_rec.source_id := p_transaction_id;
3124: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
3125: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
3126: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
3127: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
3128:
3121: x_trx_error_rec.transaction_id := NULL;
3122: x_trx_error_rec.source_type := 'CSIMSIHZ';
3123: x_trx_error_rec.source_id := p_transaction_id;
3124: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
3125: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
3126: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
3127: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
3128:
3129: END misc_issue_hz_loc;
3123: x_trx_error_rec.source_id := p_transaction_id;
3124: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
3125: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_HZ_LOC','INV');
3126: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
3127: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
3128:
3129: END misc_issue_hz_loc;
3130:
3131: END CSI_INV_HZ_PKG;