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_PROJECT_PKG.ISSUE_TO_PROJECT';
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_transaction_error_id NUMBER;
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_transaction_error_id NUMBER;
59: l_quantity 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_transaction_error_id NUMBER;
59: l_quantity NUMBER;
60: l_mfg_serial_flag VARCHAR2(1);
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_transaction_error_id NUMBER;
59: l_quantity NUMBER;
60: l_mfg_serial_flag VARCHAR2(1);
61: l_trans_status_code VARCHAR2(15);
86:
87: x_return_status := l_fnd_success;
88:
89: IF (l_debug > 0) THEN
90: csi_t_gen_utility_pvt.add('*****Start of csi_inv_trxs_pkg.issue_to_project Transaction procedure*****');
91: csi_t_gen_utility_pvt.add('Transaction You are Processing is: '||p_transaction_id);
92: END IF;
93:
94: -- This procedure queries all of the Inventory Transaction Records and returns them
92: END IF;
93:
94: -- This procedure queries all of the Inventory Transaction Records and returns them
95: -- as a table.
96: csi_inv_trxs_pkg.get_transaction_recs(p_transaction_id,
97: l_mtl_item_tbl,
98: l_return_status,
99: l_error_message);
100:
105: END IF;
106:
107: IF NOT l_return_status = l_fnd_success THEN
108: IF (l_debug > 0) THEN
109: csi_t_gen_utility_pvt.add('You have encountered an error in CSI_INV_TRXS_PKG.get_transaction_recs, Transaction ID: '||p_transaction_id);
110: END IF;
111: RAISE fnd_api.g_exc_error;
112: END IF;
113:
111: RAISE fnd_api.g_exc_error;
112: END IF;
113:
114: -- Get the Master Organization ID
115: csi_inv_trxs_pkg.get_master_organization(l_mtl_item_tbl(i).organization_id,
116: l_master_organization_id,
117: l_return_status,
118: l_error_message);
119:
118: l_error_message);
119:
120: IF NOT l_return_status = l_fnd_success THEN
121: IF (l_debug > 0) THEN
122: 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);
123: END IF;
124: RAISE fnd_api.g_exc_error;
125: END IF;
126:
124: RAISE fnd_api.g_exc_error;
125: END IF;
126:
127: -- Call get_fnd_employee_id and get the employee id
128: l_employee_id := csi_inv_trxs_pkg.get_fnd_employee_id(l_mtl_item_tbl(i).last_updated_by);
129:
130: IF l_employee_id = -1 THEN
131: IF (l_debug > 0) THEN
132: 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');
136: csi_t_gen_utility_pvt.add('The Employee that is processing this Transaction is: '||l_employee_id);
137: END IF;
138:
139: -- See if this is a depreciable Item to set the status of the transaction record
140: csi_inv_trxs_pkg.check_depreciable(l_mtl_item_tbl(i).inventory_item_id,
141: l_depreciable,
142: l_mtl_item_tbl(i).organization_id); --Added for Bug 13988660
143:
144: IF (l_debug > 0) THEN
159:
160: -- Get the Negative Receipt Code to see if this org allows Negative
161: -- Quantity Records 1 = Yes, 2 = No
162:
163: l_neg_code := csi_inv_trxs_pkg.get_neg_inv_code(
164: l_mtl_item_tbl(i).organization_id);
165:
166: IF l_neg_code = 1 AND l_mtl_item_tbl(i).serial_number is NULL THEN
167: l_instance_status := FND_API.G_FALSE;
177: csi_t_gen_utility_pvt.add('Starting to loop through Material Transaction Records');
178: END IF;
179:
180: -- Initialize Transaction Record
181: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
182:
183: -- Set Status based on redeployment
184: IF l_depreciable = 'N' THEN
185: IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
182:
183: -- Set Status based on redeployment
184: IF l_depreciable = 'N' THEN
185: IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
186: csi_inv_trxs_pkg.get_redeploy_flag(l_mtl_item_tbl(i).inventory_item_id,
187: l_mtl_item_tbl(i).serial_number,
188: l_sysdate,
189: l_redeploy_flag,
190: l_return_status,
190: l_return_status,
191: l_error_message);
192: END IF;
193: IF l_redeploy_flag = 'Y' THEN
194: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
195: ELSE
196: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
197: END IF;
198: ELSE
192: END IF;
193: IF l_redeploy_flag = 'Y' THEN
194: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
195: ELSE
196: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
197: END IF;
198: ELSE
199: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
200: END IF;
195: ELSE
196: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
197: END IF;
198: ELSE
199: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
200: END IF;
201:
202: IF NOT l_return_status = l_fnd_success THEN
203: IF (l_debug > 0) THEN
201:
202: IF NOT l_return_status = l_fnd_success THEN
203: IF (l_debug > 0) THEN
204: csi_t_gen_utility_pvt.add('Redeploy Flag: '||l_redeploy_flag);
205: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_redeploy_flag: '||l_error_message);
206: END IF;
207: RAISE fnd_api.g_exc_error;
208: END IF;
209:
219:
220: -- Create CSI Transaction to be used
221: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
222: l_txn_rec.transaction_date := l_sysdate;
223: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
224: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
225: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
226: l_txn_rec.transacted_by := l_employee_id;
227: l_txn_rec.transaction_action_code := NULL;
230: l_txn_rec.object_version_number := l_object_version_number;
231: l_txn_rec.source_header_ref_id := l_mtl_item_tbl(i).transaction_source_id;
232: l_txn_rec.source_line_ref_id := l_mtl_item_tbl(i).move_order_line_id;
233:
234: csi_inv_trxs_pkg.create_csi_txn(l_txn_rec,
235: l_error_message,
236: l_return_status);
237:
238: IF (l_debug > 0) THEN
240: END IF;
241:
242: IF NOT l_return_status = l_fnd_success THEN
243: IF (l_debug > 0) THEN
244: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.create_csi_txn: '||p_transaction_id);
245: END IF;
246: RAISE fnd_api.g_exc_error;
247: END IF;
248:
254: csi_t_gen_utility_pvt.add('Transaction UOM: '||l_mtl_item_tbl(j).transaction_uom);
255: csi_t_gen_utility_pvt.add('Transaction Qty: '||l_mtl_item_tbl(j).transaction_quantity);
256: END IF;
257:
258: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
259: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
260: l_instance_query_rec.lot_number := l_mtl_item_tbl(j).lot_number;
261: l_instance_query_rec.serial_number := l_mtl_item_tbl(j).serial_number;
262: l_instance_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
315: IF (l_debug > 0) THEN
316: csi_t_gen_utility_pvt.add('No records were found so create a new Source Instance Record');
317: END IF;
318:
319: l_new_src_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
320: l_new_src_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
321: l_new_src_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
322: l_new_src_instance_rec.inv_master_organization_id := l_master_organization_id;
323: l_new_src_instance_rec.mfg_serial_number_flag := 'N';
328: l_new_src_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
329: l_new_src_instance_rec.instance_usage_code := l_in_inventory;
330: l_new_src_instance_rec.inv_locator_id := l_mtl_item_tbl(j).locator_id;
331: l_new_src_instance_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
332: l_new_src_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
333: l_new_src_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
334: l_new_src_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
335: l_new_src_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
336: l_new_src_instance_rec.customer_view_flag := 'N';
337: l_new_src_instance_rec.merchant_view_flag := 'Y';
338: l_new_src_instance_rec.operational_status_code := 'NOT_USED';
339: l_new_src_instance_rec.object_version_number := l_object_version_number;
340:
341: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
342: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
343: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
344: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
345: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
338: l_new_src_instance_rec.operational_status_code := 'NOT_USED';
339: l_new_src_instance_rec.object_version_number := l_object_version_number;
340:
341: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
342: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
343: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
344: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
345: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
346: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
339: l_new_src_instance_rec.object_version_number := l_object_version_number;
340:
341: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
342: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
343: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
344: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
345: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
346: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
347:
340:
341: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
342: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
343: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
344: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
345: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
346: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
347:
348: IF (l_debug > 0) THEN
341: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
342: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
343: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
344: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
345: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
346: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
347:
348: IF (l_debug > 0) THEN
349: csi_t_gen_utility_pvt.add('Before Create Source Item Instance');
342: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
343: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
344: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
345: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
346: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
347:
348: IF (l_debug > 0) THEN
349: csi_t_gen_utility_pvt.add('Before Create Source Item Instance');
350: END IF;
403: IF (l_debug > 0) THEN
404: csi_t_gen_utility_pvt.add('You will update instance: '||l_src_instance_header_tbl(i).instance_id);
405: csi_t_gen_utility_pvt.add('End Date is: '||l_src_instance_header_tbl(i).active_end_date);
406: END IF;
407: l_update_source_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
408: l_update_source_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
409: l_update_source_instance_rec.quantity := l_src_instance_header_tbl(i).quantity - abs(l_mtl_item_tbl(j).primary_quantity);
410: l_update_source_instance_rec.active_end_date := NULL;
411: l_update_source_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
415: l_pricing_attrib_tbl.delete;
416: l_org_assignments_tbl.delete;
417: l_asset_assignment_tbl.delete;
418:
419: 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);
420:
421: IF (l_debug > 0) THEN
422: csi_t_gen_utility_pvt.add('Before Update Item Instance');
423: END IF;
479:
480: END IF; -- End of Source Record IF
481:
482: -- Now query and get the destination record.
483: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
484: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
485: l_instance_query_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
486: l_instance_query_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
487: l_instance_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
534: IF (l_debug > 0) THEN
535: csi_t_gen_utility_pvt.add('No Destination Records were found so we will create a new destination Record using the source data');
536: END IF;
537:
538: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
539: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
540: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
541: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
542: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
546: l_new_dest_instance_rec.active_end_date := NULL;
547: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
548: l_new_dest_instance_rec.instance_usage_code := l_in_process;
549: l_new_dest_instance_rec.inv_locator_id := NULL;
550: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
551: l_new_dest_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
552: l_new_dest_instance_rec.inv_organization_id := NULL;
553: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
554: l_new_dest_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
547: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
548: l_new_dest_instance_rec.instance_usage_code := l_in_process;
549: l_new_dest_instance_rec.inv_locator_id := NULL;
550: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
551: l_new_dest_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
552: l_new_dest_instance_rec.inv_organization_id := NULL;
553: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
554: l_new_dest_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
555: l_new_dest_instance_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
557: l_new_dest_instance_rec.merchant_view_flag := 'Y';
558: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
559: l_new_dest_instance_rec.object_version_number := l_object_version_number;
560:
561: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
562: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
563: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
564: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
565: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
558: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
559: l_new_dest_instance_rec.object_version_number := l_object_version_number;
560:
561: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
562: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
563: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
564: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
565: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
566: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
559: l_new_dest_instance_rec.object_version_number := l_object_version_number;
560:
561: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
562: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
563: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
564: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
565: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
566: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
567:
560:
561: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
562: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
563: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
564: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
565: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
566: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
567:
568: IF (l_debug > 0) THEN
561: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
562: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
563: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
564: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
565: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
566: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
567:
568: IF (l_debug > 0) THEN
569: csi_t_gen_utility_pvt.add('Before Create Item Instance - Neg Qty');
562: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
563: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
564: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
565: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
566: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
567:
568: IF (l_debug > 0) THEN
569: csi_t_gen_utility_pvt.add('Before Create Item Instance - Neg Qty');
570: END IF;
609: IF (l_debug > 0) THEN
610: csi_t_gen_utility_pvt.add('You will update instance: '||l_dest_instance_header_tbl(i).instance_id);
611: END IF;
612:
613: l_update_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
614: l_update_dest_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
615: l_update_dest_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
616: l_update_dest_instance_rec.active_end_date := NULL;
617: l_update_dest_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
621: l_pricing_attrib_tbl.delete;
622: l_org_assignments_tbl.delete;
623: l_asset_assignment_tbl.delete;
624:
625: 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);
626:
627: IF (l_debug > 0) THEN
628: csi_t_gen_utility_pvt.add('Before Update Item Instance - Neg Qty');
629: END IF;
688: csi_t_gen_utility_pvt.add('You are updating a Serialized Item: '||l_src_instance_header_tbl(i).instance_id);
689: csi_t_gen_utility_pvt.add('The Transaction Status Code will be - Complete (C) or Incomplete (I): '||l_trans_status_code);
690: END IF;
691:
692: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
693: l_update_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
694: l_update_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
695: l_update_instance_rec.inv_subinventory_name := NULL;
696: -- Added for Bug 5975739
697: l_update_instance_rec.inv_master_organization_id := l_master_organization_id;
698: l_update_instance_rec.inv_organization_id := NULL;
699: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
700: l_update_instance_rec.inv_locator_id := NULL;
701: l_update_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
702: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
703: l_update_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
704: l_update_instance_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
705: l_update_instance_rec.instance_usage_code := l_in_process;
698: l_update_instance_rec.inv_organization_id := NULL;
699: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
700: l_update_instance_rec.inv_locator_id := NULL;
701: l_update_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
702: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
703: l_update_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
704: l_update_instance_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
705: l_update_instance_rec.instance_usage_code := l_in_process;
706: l_update_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
781: END IF; -- End of Serial Number If
782: END LOOP; -- End of For Loop
783:
784: IF (l_debug > 0) THEN
785: csi_t_gen_utility_pvt.add('*****End of csi_inv_trxs_pkg.issue_to_project Transaction procedure*****');
786: END IF;
787:
788: EXCEPTION
789: WHEN fnd_api.g_exc_error THEN
808: x_trx_error_rec.error_text := l_error_message;
809: x_trx_error_rec.transaction_id := NULL;
810: x_trx_error_rec.source_type := 'CSIISUPT';
811: x_trx_error_rec.source_id := p_transaction_id;
812: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
813: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
814: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
815: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
816:
809: x_trx_error_rec.transaction_id := NULL;
810: x_trx_error_rec.source_type := 'CSIISUPT';
811: x_trx_error_rec.source_id := p_transaction_id;
812: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
813: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
814: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
815: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
816:
817: WHEN others THEN
811: x_trx_error_rec.source_id := p_transaction_id;
812: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
813: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
814: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
815: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
816:
817: WHEN others THEN
818: IF (l_debug > 0) THEN
819: csi_t_gen_utility_pvt.add('You have encountered a "others" exception');
839: x_trx_error_rec.error_text := fnd_message.get;
840: x_trx_error_rec.transaction_id := NULL;
841: x_trx_error_rec.source_type := 'CSIISUPT';
842: x_trx_error_rec.source_id := p_transaction_id;
843: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
844: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
845: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
846: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
847: END issue_to_project;
840: x_trx_error_rec.transaction_id := NULL;
841: x_trx_error_rec.source_type := 'CSIISUPT';
842: x_trx_error_rec.source_id := p_transaction_id;
843: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
844: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
845: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
846: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
847: END issue_to_project;
848:
842: x_trx_error_rec.source_id := p_transaction_id;
843: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
844: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MOVE_ORDER_ISSUE_TO_PROJECT','INV');
845: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
846: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
847: END issue_to_project;
848:
849: PROCEDURE misc_receipt_projtask(p_transaction_id IN NUMBER,
850: p_message_id IN NUMBER,
851: x_return_status OUT NOCOPY VARCHAR2,
852: x_trx_error_rec OUT NOCOPY CSI_DATASTRUCTURES_PUB.TRANSACTION_ERROR_REC)
853: IS
854:
855: l_mtl_item_tbl CSI_INV_TRXS_PKG.MTL_ITEM_TBL_TYPE;
856: l_api_name VARCHAR2(100) := 'CSI_INV_PROJECT_PKG.MISC_RECEIPT_PROJTASK';
857: l_api_version NUMBER := 1.0;
858: l_commit VARCHAR2(1) := FND_API.G_FALSE;
859: l_init_msg_list VARCHAR2(1) := FND_API.G_TRUE;
893: l_fnd_success VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
894: l_fnd_warning VARCHAR2(1) := 'W';
895: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
896: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
897: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
898: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
894: l_fnd_warning VARCHAR2(1) := 'W';
895: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
896: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
897: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
898: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
902: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
895: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
896: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
897: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
898: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
902: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
903: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
896: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
897: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
898: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
902: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
903: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
904: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 13801081
897: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
898: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
902: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
903: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
904: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 13801081
905: l_transaction_error_id NUMBER;
898: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
902: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
903: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
904: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 13801081
905: l_transaction_error_id NUMBER;
906: l_quantity NUMBER;
899: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
900: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
901: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
902: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
903: l_in_wip VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_WIP;
904: l_in_relationship VARCHAR2(25) := 'IN_RELATIONSHIP'; --Added for bug 13801081
905: l_transaction_error_id NUMBER;
906: l_quantity NUMBER;
907: l_mfg_serial_flag VARCHAR2(1);
931:
932: x_return_status := l_fnd_success;
933:
934: IF (l_debug > 0) THEN
935: csi_t_gen_utility_pvt.add('*****Start of csi_inv_trxs_pkg.misc_receipt_projtask Transaction procedure*****');
936: csi_t_gen_utility_pvt.add('Transaction You are Processing is: '||p_transaction_id);
937: END IF;
938:
939: -- This procedure queries all of the Inventory Transaction Records and returns them
937: END IF;
938:
939: -- This procedure queries all of the Inventory Transaction Records and returns them
940: -- as a table.
941: csi_inv_trxs_pkg.get_transaction_recs(p_transaction_id,
942: l_mtl_item_tbl,
943: l_return_status,
944: l_error_message);
945:
950: END IF;
951:
952: IF NOT l_return_status = l_fnd_success THEN
953: IF (l_debug > 0) THEN
954: csi_t_gen_utility_pvt.add('You have encountered an error in CSI_INV_TRXS_PKG.get_transaction_recs, Transaction ID: '||p_transaction_id);
955: END IF;
956: RAISE fnd_api.g_exc_error;
957: END IF;
958:
956: RAISE fnd_api.g_exc_error;
957: END IF;
958:
959: -- Get the Master Organization ID
960: csi_inv_trxs_pkg.get_master_organization(l_mtl_item_tbl(i).organization_id,
961: l_master_organization_id,
962: l_return_status,
963: l_error_message);
964:
963: l_error_message);
964:
965: IF NOT l_return_status = l_fnd_success THEN
966: IF (l_debug > 0) THEN
967: 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);
968: END IF;
969: RAISE fnd_api.g_exc_error;
970: END IF;
971:
969: RAISE fnd_api.g_exc_error;
970: END IF;
971:
972: -- Call get_fnd_employee_id and get the employee id
973: l_employee_id := csi_inv_trxs_pkg.get_fnd_employee_id(l_mtl_item_tbl(i).last_updated_by);
974:
975: IF l_employee_id = -1 THEN
976: IF (l_debug > 0) THEN
977: 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');
981: csi_t_gen_utility_pvt.add('The Employee that is processing this Transaction is: '||l_employee_id);
982: END IF;
983:
984: -- See if this is a depreciable Item to set the status of the transaction record
985: csi_inv_trxs_pkg.check_depreciable(l_mtl_item_tbl(i).inventory_item_id,
986: l_depreciable,
987: l_mtl_item_tbl(i).organization_id); --Added for Bug 13988660
988:
989: IF (l_debug > 0) THEN
997: l_quantity := 1;
998: END IF;
999:
1000: -- Initialize Transaction Record
1001: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
1002:
1003: -- Set Status based on redeployment
1004: IF l_depreciable = 'N' THEN
1005: IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
1002:
1003: -- Set Status based on redeployment
1004: IF l_depreciable = 'N' THEN
1005: IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
1006: csi_inv_trxs_pkg.get_redeploy_flag(l_mtl_item_tbl(i).inventory_item_id,
1007: l_mtl_item_tbl(i).serial_number,
1008: l_sysdate,
1009: l_redeploy_flag,
1010: l_return_status,
1010: l_return_status,
1011: l_error_message);
1012: END IF;
1013: IF l_redeploy_flag = 'Y' THEN
1014: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1015: ELSE
1016: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
1017: END IF;
1018: ELSE
1012: END IF;
1013: IF l_redeploy_flag = 'Y' THEN
1014: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1015: ELSE
1016: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
1017: END IF;
1018: ELSE
1019: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1020: END IF;
1015: ELSE
1016: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
1017: END IF;
1018: ELSE
1019: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
1020: END IF;
1021:
1022: IF NOT l_return_status = l_fnd_success THEN
1023: IF (l_debug > 0) THEN
1021:
1022: IF NOT l_return_status = l_fnd_success THEN
1023: IF (l_debug > 0) THEN
1024: csi_t_gen_utility_pvt.add('Redeploy Flag: '||l_redeploy_flag);
1025: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_redeploy_flag: '||l_error_message);
1026: END IF;
1027: RAISE fnd_api.g_exc_error;
1028: END IF;
1029:
1039:
1040: -- Create CSI Transaction to be used
1041: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
1042: l_txn_rec.transaction_date := l_sysdate;
1043: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1044: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
1045: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
1046: l_txn_rec.transacted_by := l_employee_id;
1047: l_txn_rec.transaction_action_code := NULL;
1048: l_txn_rec.message_id := p_message_id;
1049: l_txn_rec.inv_material_transaction_id := p_transaction_id;
1050: l_txn_rec.object_version_number := l_object_version_number;
1051:
1052: csi_inv_trxs_pkg.create_csi_txn(l_txn_rec,
1053: l_error_message,
1054: l_return_status);
1055:
1056: IF (l_debug > 0) THEN
1058: END IF;
1059:
1060: IF NOT l_return_status = l_fnd_success THEN
1061: IF (l_debug > 0) THEN
1062: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.create_csi_txn: '||p_transaction_id);
1063: END IF;
1064: RAISE fnd_api.g_exc_error;
1065: END IF;
1066:
1081: END IF;
1082:
1083: IF l_mtl_item_tbl(j).serial_number IS NOT NULL THEN -- Serialized
1084:
1085: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1086: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1087: --l_instance_query_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
1088: --l_instance_query_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
1089: l_instance_query_rec.serial_number := l_mtl_item_tbl(j).serial_number;
1178: IF (l_debug > 0) THEN
1179: csi_t_gen_utility_pvt.add('Source records found so decide which one to update');
1180: END IF;
1181:
1182: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1183: l_update_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
1184: l_update_instance_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1185: l_update_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1186: l_update_instance_rec.quantity := 1;
1194: l_update_instance_rec.pa_project_task_id := NULL;
1195: l_update_instance_rec.install_location_type_code := NULL;
1196: l_update_instance_rec.install_location_id := NULL;
1197: l_update_instance_rec.instance_usage_code := l_in_inventory;
1198: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1199: l_update_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1200: l_update_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
1201:
1202: l_party_tbl.delete;
1264: ELSIF l_src_instance_header_tbl.count = 0 THEN
1265:
1266: csi_t_gen_utility_pvt.add('No Serialized Instances are found so we need to create one that we would have received from the project and task');
1267:
1268: l_new_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
1269: l_new_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1270: l_new_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1271: l_new_instance_rec.inv_master_organization_id := l_master_organization_id;
1272: l_new_instance_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1276: l_new_instance_rec.quantity := 1;
1277: l_new_instance_rec.active_start_date := l_sysdate;
1278: l_new_instance_rec.active_end_date := NULL;
1279: l_new_instance_rec.unit_of_measure := l_mtl_item_tbl(j).primary_uom_code;
1280: l_new_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1281: l_new_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1282: l_new_instance_rec.instance_usage_code := l_in_inventory;
1283: l_new_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1284: l_new_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
1286: l_new_instance_rec.customer_view_flag := 'N';
1287: l_new_instance_rec.merchant_view_flag := 'Y';
1288: l_new_instance_rec.operational_status_code := 'NOT_USED';
1289: l_new_instance_rec.object_version_number := l_object_version_number;
1290: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1291: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1292: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1287: l_new_instance_rec.merchant_view_flag := 'Y';
1288: l_new_instance_rec.operational_status_code := 'NOT_USED';
1289: l_new_instance_rec.object_version_number := l_object_version_number;
1290: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1291: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1292: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1295: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1288: l_new_instance_rec.operational_status_code := 'NOT_USED';
1289: l_new_instance_rec.object_version_number := l_object_version_number;
1290: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1291: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1292: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1295: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1296:
1289: l_new_instance_rec.object_version_number := l_object_version_number;
1290: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1291: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1292: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1295: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1296:
1297: 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);
1290: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1291: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1292: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1295: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1296:
1297: 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);
1298:
1291: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1292: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1295: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1296:
1297: 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);
1298:
1299: csi_t_gen_utility_pvt.add('Instance_status_id Value: '||nvl(l_new_instance_rec.instance_status_id,-1));
1293: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1294: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1295: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1296:
1297: 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);
1298:
1299: csi_t_gen_utility_pvt.add('Instance_status_id Value: '||nvl(l_new_instance_rec.instance_status_id,-1));
1300: csi_t_gen_utility_pvt.add('You will now Create a new Item Instance Record');
1301: csi_t_gen_utility_pvt.add('Serial Number: '||l_new_instance_rec.serial_number);
1356: END IF; -- No Records Found
1357:
1358: ELSIF l_mtl_item_tbl(j).serial_number IS NULL THEN -- Non Serialized
1359:
1360: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1361: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1362: l_instance_query_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
1363: l_instance_query_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
1364: l_instance_query_rec.lot_number := l_mtl_item_tbl(j).lot_number;
1410: END IF;
1411:
1412: IF l_src_instance_header_tbl.count = 1 THEN -- Records found so update either Serialized or Non Serialized
1413:
1414: l_upd_src_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1415: l_upd_src_dest_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
1416: l_upd_src_dest_instance_rec.quantity := l_src_instance_header_tbl(i).quantity - abs(l_mtl_item_tbl(j).primary_quantity);
1417: l_upd_src_dest_instance_rec.active_end_date := NULL;
1418: l_upd_src_dest_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
1466: RAISE fnd_api.g_exc_error;
1467: END IF;
1468:
1469: -- Now query and get the destination record.
1470: l_instance_dest_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1471: l_instance_dest_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1472: l_instance_dest_query_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1473: l_instance_dest_query_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1474: l_instance_dest_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1520: END IF;
1521:
1522: IF l_dest_instance_header_tbl.count = 0 THEN
1523:
1524: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
1525: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1526: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1527: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
1528: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
1529: l_new_dest_instance_rec.serial_number := NULL;
1530: l_new_dest_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
1531: l_new_dest_instance_rec.quantity := abs(l_mtl_item_tbl(j).transaction_quantity);
1532: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
1533: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1534: l_new_dest_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1535: l_new_dest_instance_rec.instance_usage_code := l_in_inventory;
1536: l_new_dest_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1537: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
1543: l_new_dest_instance_rec.active_end_date := NULL;
1544: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
1545: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1546:
1547: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1548: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1549: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1544: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
1545: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1546:
1547: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1548: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1549: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1552: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1545: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1546:
1547: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1548: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1549: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1552: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1553:
1546:
1547: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1548: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1549: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1552: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1553:
1554: 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);
1547: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1548: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1549: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1552: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1553:
1554: 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);
1555:
1548: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1549: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1552: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1553:
1554: 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);
1555:
1556: IF (l_debug > 0) THEN
1550: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1551: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1552: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1553:
1554: 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);
1555:
1556: IF (l_debug > 0) THEN
1557: csi_t_gen_utility_pvt.add('Before Create Item Instance');
1558: END IF;
1593: END IF;
1594:
1595: ELSIF l_dest_instance_header_tbl.count = 1 THEN
1596:
1597: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1598: l_update_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
1599: l_update_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
1600: l_update_instance_rec.active_end_date := NULL;
1601: l_update_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
1605: l_pricing_attrib_tbl.delete;
1606: l_org_assignments_tbl.delete;
1607: l_asset_assignment_tbl.delete;
1608:
1609: 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);
1610:
1611: IF (l_debug > 0) THEN
1612: csi_t_gen_utility_pvt.add('Before Update Item Instance');
1613: END IF;
1670:
1671: csi_t_gen_utility_pvt.add('No Source Records in a Project and Task 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');
1672:
1673: -- No Project and Task Records exist so check if there are any in Inventory. If not we will create otherwise update
1674: l_instance_dest_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
1675: l_instance_dest_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1676: l_instance_dest_query_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
1677: l_instance_dest_query_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1678: l_instance_dest_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1726: IF l_dest_instance_header_tbl.count = 0 THEN
1727:
1728: csi_t_gen_utility_pvt.add('No Records existed so we will create a new one in Inventory that is Non Serialized');
1729:
1730: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
1731: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
1732: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
1733: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
1734: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
1735: l_new_dest_instance_rec.serial_number := NULL;
1736: l_new_dest_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
1737: l_new_dest_instance_rec.quantity := abs(l_mtl_item_tbl(j).transaction_quantity);
1738: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
1739: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
1740: l_new_dest_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
1741: l_new_dest_instance_rec.instance_usage_code := l_in_inventory;
1742: l_new_dest_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
1743: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
1749: l_new_dest_instance_rec.active_end_date := NULL;
1750: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
1751: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1752:
1753: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1754: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1755: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1750: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
1751: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1752:
1753: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1754: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1755: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1758: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1751: l_new_dest_instance_rec.object_version_number := l_object_version_number;
1752:
1753: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1754: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1755: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1758: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1759:
1752:
1753: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1754: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1755: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1758: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1759:
1760: 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);
1753: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
1754: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1755: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1758: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1759:
1760: 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);
1761:
1754: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
1755: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1758: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1759:
1760: 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);
1761:
1762: IF (l_debug > 0) THEN
1756: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
1757: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
1758: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
1759:
1760: 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);
1761:
1762: IF (l_debug > 0) THEN
1763: csi_t_gen_utility_pvt.add('Before Create Item Instance');
1764: END IF;
1801: ELSIF l_dest_instance_header_tbl.count = 1 THEN
1802:
1803: csi_t_gen_utility_pvt.add('Records existed so we will update the existing Instance: '||l_dest_instance_header_tbl(i).instance_id);
1804:
1805: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
1806: l_update_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
1807: l_update_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
1808: l_update_instance_rec.active_end_date := NULL;
1809: l_update_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
1813: l_pricing_attrib_tbl.delete;
1814: l_org_assignments_tbl.delete;
1815: l_asset_assignment_tbl.delete;
1816:
1817: 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);
1818:
1819: IF (l_debug > 0) THEN
1820: csi_t_gen_utility_pvt.add('Before Update Item Instance');
1821: END IF;
1901: END IF; -- End of Serial Number If
1902: END LOOP; -- End of For Loop
1903:
1904: IF (l_debug > 0) THEN
1905: csi_t_gen_utility_pvt.add('*****End of csi_inv_trxs_pkg.misc_receipt_projtask Transaction procedure*****');
1906: END IF;
1907:
1908: EXCEPTION
1909: WHEN fnd_api.g_exc_error THEN
1928: x_trx_error_rec.error_text := l_error_message;
1929: x_trx_error_rec.transaction_id := NULL;
1930: x_trx_error_rec.source_type := 'CSIMSRPT';
1931: x_trx_error_rec.source_id := p_transaction_id;
1932: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
1933: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1934: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
1935: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
1936:
1929: x_trx_error_rec.transaction_id := NULL;
1930: x_trx_error_rec.source_type := 'CSIMSRPT';
1931: x_trx_error_rec.source_id := p_transaction_id;
1932: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
1933: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1934: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
1935: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
1936:
1937: WHEN others THEN
1931: x_trx_error_rec.source_id := p_transaction_id;
1932: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
1933: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1934: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
1935: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
1936:
1937: WHEN others THEN
1938: IF (l_debug > 0) THEN
1939: csi_t_gen_utility_pvt.add('You have encountered a "others" exception');
1959: x_trx_error_rec.error_text := fnd_message.get;
1960: x_trx_error_rec.transaction_id := NULL;
1961: x_trx_error_rec.source_type := 'CSIMSRPT';
1962: x_trx_error_rec.source_id := p_transaction_id;
1963: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
1964: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1965: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
1966: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
1967:
1960: x_trx_error_rec.transaction_id := NULL;
1961: x_trx_error_rec.source_type := 'CSIMSRPT';
1962: x_trx_error_rec.source_id := p_transaction_id;
1963: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
1964: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1965: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
1966: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
1967:
1968: END misc_receipt_projtask;
1962: x_trx_error_rec.source_id := p_transaction_id;
1963: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
1964: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_RECEIPT_FROM_PROJECT','INV');
1965: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
1966: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
1967:
1968: END misc_receipt_projtask;
1969:
1970: PROCEDURE misc_issue_projtask(p_transaction_id IN NUMBER,
1972: x_return_status OUT NOCOPY VARCHAR2,
1973: x_trx_error_rec OUT NOCOPY CSI_DATASTRUCTURES_PUB.TRANSACTION_ERROR_REC)
1974: IS
1975:
1976: l_mtl_item_tbl CSI_INV_TRXS_PKG.MTL_ITEM_TBL_TYPE;
1977: l_api_name VARCHAR2(100) := 'CSI_INV_PROJECT_PKG.MISC_ISSUE_PROJTASK';
1978: l_api_version NUMBER := 1.0;
1979: l_commit VARCHAR2(1) := FND_API.G_FALSE;
1980: l_init_msg_list VARCHAR2(1) := FND_API.G_TRUE;
2012: l_fnd_success VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2013: l_fnd_warning VARCHAR2(1) := 'W';
2014: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
2015: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2016: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2017: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2018: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2019: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2020: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2013: l_fnd_warning VARCHAR2(1) := 'W';
2014: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
2015: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2016: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2017: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2018: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2019: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2020: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2021: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2014: l_fnd_error VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
2015: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2016: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2017: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2018: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2019: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2020: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2021: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2022: l_transaction_error_id NUMBER;
2015: l_fnd_unexpected VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
2016: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2017: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2018: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2019: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2020: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2021: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2022: l_transaction_error_id NUMBER;
2023: l_quantity NUMBER;
2016: l_in_inventory VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_INVENTORY;
2017: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2018: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2019: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2020: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2021: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2022: l_transaction_error_id NUMBER;
2023: l_quantity NUMBER;
2024: l_mfg_serial_flag VARCHAR2(1);
2017: l_in_process VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_PROCESS;
2018: l_out_of_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_OUT_OF_SERVICE;
2019: l_in_service VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_SERVICE;
2020: l_in_transit VARCHAR2(25) := CSI_INV_TRXS_PKG.G_IN_TRANSIT;
2021: l_installed VARCHAR2(25) := CSI_INV_TRXS_PKG.G_INSTALLED;
2022: l_transaction_error_id NUMBER;
2023: l_quantity NUMBER;
2024: l_mfg_serial_flag VARCHAR2(1);
2025: l_trans_status_code VARCHAR2(15);
2050:
2051: x_return_status := l_fnd_success;
2052:
2053: IF (l_debug > 0) THEN
2054: csi_t_gen_utility_pvt.add('*****Start of csi_inv_trxs_pkg.misc_issue_projtask Transaction procedure*****');
2055: csi_t_gen_utility_pvt.add('Transaction You are Processing is: '||p_transaction_id);
2056: END IF;
2057:
2058: -- This procedure queries all of the Inventory Transaction Records and returns them
2056: END IF;
2057:
2058: -- This procedure queries all of the Inventory Transaction Records and returns them
2059: -- as a table.
2060: csi_inv_trxs_pkg.get_transaction_recs(p_transaction_id,
2061: l_mtl_item_tbl,
2062: l_return_status,
2063: l_error_message);
2064:
2069: END IF;
2070:
2071: IF NOT l_return_status = l_fnd_success THEN
2072: IF (l_debug > 0) THEN
2073: csi_t_gen_utility_pvt.add('You have encountered an error in CSI_INV_TRXS_PKG.get_transaction_recs, Transaction ID: '||p_transaction_id);
2074: END IF;
2075: RAISE fnd_api.g_exc_error;
2076: END IF;
2077:
2075: RAISE fnd_api.g_exc_error;
2076: END IF;
2077:
2078: -- Get the Master Organization ID
2079: csi_inv_trxs_pkg.get_master_organization(l_mtl_item_tbl(i).organization_id,
2080: l_master_organization_id,
2081: l_return_status,
2082: l_error_message);
2083:
2082: l_error_message);
2083:
2084: IF NOT l_return_status = l_fnd_success THEN
2085: IF (l_debug > 0) THEN
2086: 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);
2087: END IF;
2088: RAISE fnd_api.g_exc_error;
2089: END IF;
2090:
2088: RAISE fnd_api.g_exc_error;
2089: END IF;
2090:
2091: -- Call get_fnd_employee_id and get the employee id
2092: l_employee_id := csi_inv_trxs_pkg.get_fnd_employee_id(l_mtl_item_tbl(i).last_updated_by);
2093:
2094: IF l_employee_id = -1 THEN
2095: IF (l_debug > 0) THEN
2096: 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');
2100: csi_t_gen_utility_pvt.add('The Employee that is processing this Transaction is: '||l_employee_id);
2101: END IF;
2102:
2103: -- See if this is a depreciable Item to set the status of the transaction record
2104: csi_inv_trxs_pkg.check_depreciable(l_mtl_item_tbl(i).inventory_item_id,
2105: l_depreciable,
2106: l_mtl_item_tbl(i).organization_id); --Added for Bug 13988660
2107:
2108: IF (l_debug > 0) THEN
2121:
2122: -- Get the Negative Receipt Code to see if this org allows Negative
2123: -- Quantity Records 1 = Yes, 2 = No
2124:
2125: l_neg_code := csi_inv_trxs_pkg.get_neg_inv_code(
2126: l_mtl_item_tbl(i).organization_id);
2127:
2128: IF l_neg_code = 1 AND l_mtl_item_tbl(i).serial_number is NULL THEN
2129: l_instance_status := FND_API.G_FALSE;
2135: csi_t_gen_utility_pvt.add('Negative Code is - 1 = Yes, 2 = No: '||l_neg_code);
2136: END IF;
2137:
2138: -- Initialize Transaction Record
2139: l_txn_rec := csi_inv_trxs_pkg.init_txn_rec;
2140:
2141: -- Set Status based on redeployment
2142: IF l_depreciable = 'N' THEN
2143: IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
2140:
2141: -- Set Status based on redeployment
2142: IF l_depreciable = 'N' THEN
2143: IF l_mtl_item_tbl(i).serial_number is NOT NULL THEN
2144: csi_inv_trxs_pkg.get_redeploy_flag(l_mtl_item_tbl(i).inventory_item_id,
2145: l_mtl_item_tbl(i).serial_number,
2146: l_sysdate,
2147: l_redeploy_flag,
2148: l_return_status,
2148: l_return_status,
2149: l_error_message);
2150: END IF;
2151: IF l_redeploy_flag = 'Y' THEN
2152: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
2153: ELSE
2154: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
2155: END IF;
2156: ELSE
2150: END IF;
2151: IF l_redeploy_flag = 'Y' THEN
2152: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
2153: ELSE
2154: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
2155: END IF;
2156: ELSE
2157: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
2158: END IF;
2153: ELSE
2154: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_complete;
2155: END IF;
2156: ELSE
2157: l_txn_rec.transaction_status_code := csi_inv_trxs_pkg.g_pending;
2158: END IF;
2159:
2160: IF NOT l_return_status = l_fnd_success THEN
2161: IF (l_debug > 0) THEN
2159:
2160: IF NOT l_return_status = l_fnd_success THEN
2161: IF (l_debug > 0) THEN
2162: csi_t_gen_utility_pvt.add('Redeploy Flag: '||l_redeploy_flag);
2163: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.get_redeploy_flag: '||l_error_message);
2164: END IF;
2165: RAISE fnd_api.g_exc_error;
2166: END IF;
2167:
2177:
2178: -- Create CSI Transaction to be used
2179: l_txn_rec.source_transaction_date := l_mtl_item_tbl(i).transaction_date;
2180: l_txn_rec.transaction_date := l_sysdate;
2181: l_txn_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2182: l_txn_rec.transaction_quantity := l_mtl_item_tbl(i).transaction_quantity;
2183: l_txn_rec.transaction_uom_code := l_mtl_item_tbl(i).transaction_uom;
2184: l_txn_rec.transacted_by := l_employee_id;
2185: l_txn_rec.transaction_action_code := NULL;
2186: l_txn_rec.message_id := p_message_id;
2187: l_txn_rec.inv_material_transaction_id := p_transaction_id;
2188: l_txn_rec.object_version_number := l_object_version_number;
2189:
2190: csi_inv_trxs_pkg.create_csi_txn(l_txn_rec,
2191: l_error_message,
2192: l_return_status);
2193:
2194: IF (l_debug > 0) THEN
2196: END IF;
2197:
2198: IF NOT l_return_status = l_fnd_success THEN
2199: IF (l_debug > 0) THEN
2200: csi_t_gen_utility_pvt.add('You have encountered an error in csi_inv_trxs_pkg.create_csi_txn: '||p_transaction_id);
2201: END IF;
2202: RAISE fnd_api.g_exc_error;
2203: END IF;
2204:
2217: csi_t_gen_utility_pvt.add('Transaction UOM: '||l_mtl_item_tbl(j).transaction_uom);
2218: csi_t_gen_utility_pvt.add('Transaction Qty: '||l_mtl_item_tbl(j).transaction_quantity);
2219: END IF;
2220:
2221: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
2222: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2223: l_instance_query_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
2224: l_instance_query_rec.inv_subinventory_name := l_mtl_item_tbl(j).subinventory_code;
2225: l_instance_query_rec.inv_locator_id := l_mtl_item_tbl(j).locator_id;
2279: IF (l_debug > 0) THEN
2280: csi_t_gen_utility_pvt.add('No records were found so create a new Source Instance Record');
2281: END IF;
2282:
2283: l_new_src_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
2284: l_new_src_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2285: l_new_src_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2286: l_new_src_instance_rec.inv_master_organization_id := l_master_organization_id;
2287: l_new_src_instance_rec.mfg_serial_number_flag := 'N';
2288: l_new_src_instance_rec.lot_number := l_mtl_item_tbl(j).lot_number;
2289: l_new_src_instance_rec.quantity := l_mtl_item_tbl(j).transaction_quantity;
2290: l_new_src_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
2291: l_new_src_instance_rec.instance_usage_code := l_in_inventory;
2292: l_new_src_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Inventory');
2293: l_new_src_instance_rec.location_id := nvl(l_mtl_item_tbl(j).subinv_location_id,l_mtl_item_tbl(j).hr_location_id);
2294: l_new_src_instance_rec.inv_locator_id := l_mtl_item_tbl(j).locator_id;
2295: l_new_src_instance_rec.inv_organization_id := l_mtl_item_tbl(j).organization_id;
2296: l_new_src_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2301: l_new_src_instance_rec.object_version_number := l_object_version_number;
2302: l_new_src_instance_rec.active_start_date := l_sysdate;
2303: l_new_src_instance_rec.active_end_date := NULL;
2304:
2305: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2306: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2307: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2308: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2309: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2302: l_new_src_instance_rec.active_start_date := l_sysdate;
2303: l_new_src_instance_rec.active_end_date := NULL;
2304:
2305: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2306: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2307: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2308: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2309: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2310: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2303: l_new_src_instance_rec.active_end_date := NULL;
2304:
2305: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2306: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2307: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2308: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2309: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2310: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2311:
2304:
2305: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2306: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2307: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2308: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2309: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2310: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2311:
2312: IF (l_debug > 0) THEN
2305: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2306: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2307: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2308: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2309: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2310: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2311:
2312: IF (l_debug > 0) THEN
2313: csi_t_gen_utility_pvt.add('Before Create Transaction - Neg Qty');
2306: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2307: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2308: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2309: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2310: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2311:
2312: IF (l_debug > 0) THEN
2313: csi_t_gen_utility_pvt.add('Before Create Transaction - Neg Qty');
2314: END IF;
2367: csi_t_gen_utility_pvt.add('You will update instance: '||l_src_instance_header_tbl(i).instance_id);
2368: csi_t_gen_utility_pvt.add('End Date is: '||l_src_instance_header_tbl(i).active_end_date);
2369: END IF;
2370:
2371: l_update_source_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2372: l_update_source_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
2373: l_update_source_instance_rec.quantity := l_src_instance_header_tbl(i).quantity - abs(l_mtl_item_tbl(j).primary_quantity);
2374: l_update_source_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
2375:
2382: IF (l_debug > 0) THEN
2383: csi_t_gen_utility_pvt.add('Before Update Item Instance - Neg Qty');
2384: END IF;
2385:
2386: 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);
2387:
2388: IF (l_debug > 0) THEN
2389: csi_t_gen_utility_pvt.add('Instance Status Id: '||l_update_source_instance_rec.instance_status_id);
2390: END IF;
2442:
2443: END IF; -- End of Source Record If
2444:
2445: -- Now query and get the destination record.
2446: l_instance_query_rec := csi_inv_trxs_pkg.init_instance_query_rec;
2447: l_instance_query_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2448: l_instance_query_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
2449: l_instance_query_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
2450: l_instance_query_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2499: IF (l_debug > 0) THEN
2500: csi_t_gen_utility_pvt.add('No Destination Records were found so we will create a new destination Record using the source data');
2501: END IF;
2502:
2503: l_new_dest_instance_rec := csi_inv_trxs_pkg.init_instance_create_rec;
2504: l_new_dest_instance_rec.inventory_item_id := l_mtl_item_tbl(j).inventory_item_id;
2505: l_new_dest_instance_rec.inventory_revision := l_mtl_item_tbl(j).revision;
2506: l_new_dest_instance_rec.inv_master_organization_id := l_master_organization_id;
2507: l_new_dest_instance_rec.mfg_serial_number_flag := 'N';
2511: l_new_dest_instance_rec.active_end_date := NULL;
2512: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
2513: l_new_dest_instance_rec.instance_usage_code := l_in_process;
2514: l_new_dest_instance_rec.inv_locator_id := NULL;
2515: l_new_dest_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
2516: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
2517: l_new_dest_instance_rec.inv_organization_id := NULL;
2518: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2519: l_new_dest_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
2512: l_new_dest_instance_rec.unit_of_measure := l_mtl_item_tbl(j).transaction_uom;
2513: l_new_dest_instance_rec.instance_usage_code := l_in_process;
2514: l_new_dest_instance_rec.inv_locator_id := NULL;
2515: l_new_dest_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
2516: l_new_dest_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
2517: l_new_dest_instance_rec.inv_organization_id := NULL;
2518: l_new_dest_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2519: l_new_dest_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
2520: l_new_dest_instance_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
2522: l_new_dest_instance_rec.merchant_view_flag := 'Y';
2523: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
2524: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2525:
2526: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2527: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2528: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2529: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2530: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2523: l_new_dest_instance_rec.operational_status_code := 'NOT_USED';
2524: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2525:
2526: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2527: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2528: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2529: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2530: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2531: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2524: l_new_dest_instance_rec.object_version_number := l_object_version_number;
2525:
2526: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2527: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2528: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2529: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2530: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2531: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2532:
2525:
2526: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2527: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2528: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2529: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2530: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2531: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2532:
2533: IF (l_debug > 0) THEN
2526: l_ext_attrib_values_tbl := csi_inv_trxs_pkg.init_ext_attrib_values_tbl;
2527: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2528: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2529: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2530: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2531: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2532:
2533: IF (l_debug > 0) THEN
2534: csi_t_gen_utility_pvt.add('Before Create Item Instance - Neg Qty');
2527: l_party_tbl := csi_inv_trxs_pkg.init_party_tbl;
2528: l_account_tbl := csi_inv_trxs_pkg.init_account_tbl;
2529: l_pricing_attrib_tbl := csi_inv_trxs_pkg.init_pricing_attribs_tbl;
2530: l_org_assignments_tbl := csi_inv_trxs_pkg.init_org_assignments_tbl;
2531: l_asset_assignment_tbl := csi_inv_trxs_pkg.init_asset_assignment_tbl;
2532:
2533: IF (l_debug > 0) THEN
2534: csi_t_gen_utility_pvt.add('Before Create Item Instance - Neg Qty');
2535: END IF;
2576: IF (l_debug > 0) THEN
2577: csi_t_gen_utility_pvt.add('You will update instance: '||l_dest_instance_header_tbl(i).instance_id);
2578: END IF;
2579:
2580: l_update_dest_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2581: l_update_dest_instance_rec.instance_id := l_dest_instance_header_tbl(i).instance_id;
2582: l_update_dest_instance_rec.quantity := l_dest_instance_header_tbl(i).quantity + abs(l_mtl_item_tbl(j).primary_quantity);
2583: l_update_dest_instance_rec.active_end_date := NULL;
2584: l_update_dest_instance_rec.object_version_number := l_dest_instance_header_tbl(i).object_version_number;
2588: l_pricing_attrib_tbl.delete;
2589: l_org_assignments_tbl.delete;
2590: l_asset_assignment_tbl.delete;
2591:
2592: 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);
2593:
2594: IF (l_debug > 0) THEN
2595: csi_t_gen_utility_pvt.add('Before Update Transaction - 101');
2596: END IF;
2650: END IF; -- End of Destination Record If
2651:
2652: ELSIF l_mtl_item_tbl(j).serial_number is NOT NULL THEN
2653: IF l_src_instance_header_tbl.count = 1 THEN -- Installed Base Records Found
2654: l_update_instance_rec := csi_inv_trxs_pkg.init_instance_update_rec;
2655: l_update_instance_rec.instance_id := l_src_instance_header_tbl(i).instance_id;
2656: l_update_instance_rec.lot_number := l_src_instance_header_tbl(i).lot_number;
2657: l_update_instance_rec.inv_subinventory_name := NULL;
2658: -- Added fro bug 5975739
2659: l_update_instance_rec.inv_master_organization_id := l_master_organization_id;
2660: l_update_instance_rec.inv_organization_id := NULL;
2661: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2662: l_update_instance_rec.inv_locator_id := NULL;
2663: l_update_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
2664: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
2665: l_update_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
2666: l_update_instance_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
2667: l_update_instance_rec.instance_usage_code := l_in_process;
2660: l_update_instance_rec.inv_organization_id := NULL;
2661: l_update_instance_rec.vld_organization_id := l_mtl_item_tbl(j).organization_id;
2662: l_update_instance_rec.inv_locator_id := NULL;
2663: l_update_instance_rec.location_id := csi_inv_trxs_pkg.get_dflt_project_location_id;
2664: l_update_instance_rec.location_type_code := csi_inv_trxs_pkg.get_location_type_code('Project');
2665: l_update_instance_rec.pa_project_id := l_mtl_item_tbl(j).source_project_id;
2666: l_update_instance_rec.pa_project_task_id := l_mtl_item_tbl(j).source_task_id;
2667: l_update_instance_rec.instance_usage_code := l_in_process;
2668: l_update_instance_rec.object_version_number := l_src_instance_header_tbl(i).object_version_number;
2743: END IF; -- End of Serial Number If
2744: END LOOP; -- End of For Loop
2745:
2746: IF (l_debug > 0) THEN
2747: csi_t_gen_utility_pvt.add('*****End of csi_inv_trxs_pkg.misc_issue_projtask Transaction procedure*****');
2748: END IF;
2749:
2750: EXCEPTION
2751: WHEN fnd_api.g_exc_error THEN
2770: x_trx_error_rec.error_text := l_error_message;
2771: x_trx_error_rec.transaction_id := NULL;
2772: x_trx_error_rec.source_type := 'CSIMSIPT';
2773: x_trx_error_rec.source_id := p_transaction_id;
2774: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2775: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2776: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2777: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2778:
2771: x_trx_error_rec.transaction_id := NULL;
2772: x_trx_error_rec.source_type := 'CSIMSIPT';
2773: x_trx_error_rec.source_id := p_transaction_id;
2774: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2775: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2776: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2777: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2778:
2779: WHEN others THEN
2773: x_trx_error_rec.source_id := p_transaction_id;
2774: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2775: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2776: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2777: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2778:
2779: WHEN others THEN
2780: IF (l_debug > 0) THEN
2781: csi_t_gen_utility_pvt.add('You have encountered a "others" exception');
2801: x_trx_error_rec.error_text := fnd_message.get;
2802: x_trx_error_rec.transaction_id := NULL;
2803: x_trx_error_rec.source_type := 'CSIMSIPT';
2804: x_trx_error_rec.source_id := p_transaction_id;
2805: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2806: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2807: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2808: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2809:
2802: x_trx_error_rec.transaction_id := NULL;
2803: x_trx_error_rec.source_type := 'CSIMSIPT';
2804: x_trx_error_rec.source_id := p_transaction_id;
2805: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2806: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2807: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2808: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2809:
2810: END misc_issue_projtask;
2804: x_trx_error_rec.source_id := p_transaction_id;
2805: x_trx_error_rec.processed_flag := csi_inv_trxs_pkg.g_txn_error;
2806: x_trx_error_rec.transaction_type_id := csi_inv_trxs_pkg.get_txn_type_id('MISC_ISSUE_TO_PROJECT','INV');
2807: x_trx_error_rec.inv_material_transaction_id := p_transaction_id;
2808: x_trx_error_rec.error_stage := csi_inv_trxs_pkg.g_ib_update;
2809:
2810: END misc_issue_projtask;
2811: END csi_inv_project_pkg;