56: x_sub_type_id OUT NOCOPY number,
57: x_return_status OUT NOCOPY varchar2)
58: IS
59: BEGIN
60: x_return_status := fnd_api.g_ret_sts_success;
61: api_log('get_default_sub_type_id');
62:
63: BEGIN
64: SELECT sub_type_id
70: WHEN no_data_found THEN
71: fnd_message.set_name('CSI', 'CSI_DFLT_SUB_TYPE_MISSING');
72: fnd_message.set_token('TXN_TYPE_ID',p_transaction_type_id);
73: fnd_msg_pub.add;
74: RAISE fnd_api.g_exc_error;
75: WHEN too_many_rows THEN
76: fnd_message.set_name('CSI', 'CSI_MANY_DFLT_SUB_TYPES');
77: fnd_message.set_token('TXN_TYPE_ID',p_transaction_type_id);
78: fnd_msg_pub.add;
75: WHEN too_many_rows THEN
76: fnd_message.set_name('CSI', 'CSI_MANY_DFLT_SUB_TYPES');
77: fnd_message.set_token('TXN_TYPE_ID',p_transaction_type_id);
78: fnd_msg_pub.add;
79: RAISE fnd_api.g_exc_error;
80: END;
81: EXCEPTION
82: WHEN fnd_api.g_exc_error THEN
83: x_return_status := fnd_api.g_ret_sts_error;
78: fnd_msg_pub.add;
79: RAISE fnd_api.g_exc_error;
80: END;
81: EXCEPTION
82: WHEN fnd_api.g_exc_error THEN
83: x_return_status := fnd_api.g_ret_sts_error;
84: END get_default_sub_type_id;
85:
86: /* this routine gets the first trackable parent (order line record) from the
79: RAISE fnd_api.g_exc_error;
80: END;
81: EXCEPTION
82: WHEN fnd_api.g_exc_error THEN
83: x_return_status := fnd_api.g_ret_sts_error;
84: END get_default_sub_type_id;
85:
86: /* this routine gets the first trackable parent (order line record) from the
87: sales order tree for the current processing order line */
100: l_next_parent_line_id number;
101: l_inventory_item_id number;
102: l_ib_trackable_flag varchar2(1) := 'N';
103:
104: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
105:
106: BEGIN
107:
108: x_return_status := fnd_api.g_ret_sts_success;
104: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
105:
106: BEGIN
107:
108: x_return_status := fnd_api.g_ret_sts_success;
109: api_log('get_ib_trackable_parent');
110:
111: x_parent_found := FALSE;
112:
140: x_source_header_rec => l_parent_hdr_rec,
141: x_source_line_rec => x_parent_line_rec,
142: x_return_status => l_return_status);
143:
144: IF l_return_status <> fnd_api.g_ret_sts_success THEN
145: RAISE fnd_api.g_exc_error;
146: END IF;
147:
148: x_parent_found := TRUE;
141: x_source_line_rec => x_parent_line_rec,
142: x_return_status => l_return_status);
143:
144: IF l_return_status <> fnd_api.g_ret_sts_success THEN
145: RAISE fnd_api.g_exc_error;
146: END IF;
147:
148: x_parent_found := TRUE;
149: exit;
158:
159: END IF;
160: END LOOP;
161: EXCEPTION
162: WHEN fnd_api.g_exc_error THEN
163: x_return_status := fnd_api.g_ret_sts_error;
164: END get_ib_trackable_parent;
165:
166:
159: END IF;
160: END LOOP;
161: EXCEPTION
162: WHEN fnd_api.g_exc_error THEN
163: x_return_status := fnd_api.g_ret_sts_error;
164: END get_ib_trackable_parent;
165:
166:
167: /* this routine gets the first trackable parent (order line record) that has the
178: l_parent_line_rec source_line_rec;
179: l_current_line_rec source_line_rec;
180: l_txn_line_rec csi_t_datastructures_grp.txn_line_rec;
181: l_td_found boolean := FALSE;
182: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
183: BEGIN
184:
185: x_return_status := fnd_api.g_ret_sts_success;
186:
181: l_td_found boolean := FALSE;
182: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
183: BEGIN
184:
185: x_return_status := fnd_api.g_ret_sts_success;
186:
187: api_log('get_parent_with_txn_detail');
188:
189: l_current_line_rec := p_source_line_rec;
195: x_parent_found => l_trackable_parent_found,
196: x_parent_line_rec => l_parent_line_rec,
197: x_return_status => l_return_status);
198:
199: IF l_return_status <> fnd_api.g_ret_sts_success THEN
200: RAISE fnd_api.g_exc_error;
201: END IF;
202:
203: IF NOT(l_trackable_parent_found) THEN
196: x_parent_line_rec => l_parent_line_rec,
197: x_return_status => l_return_status);
198:
199: IF l_return_status <> fnd_api.g_ret_sts_success THEN
200: RAISE fnd_api.g_exc_error;
201: END IF;
202:
203: IF NOT(l_trackable_parent_found) THEN
204: x_parent_found := FALSE;
231:
232: x_parent_line_rec := l_parent_line_rec;
233:
234: EXCEPTION
235: WHEN fnd_api.g_exc_error THEN
236: x_return_status := fnd_api.g_ret_sts_error;
237: END get_parent_with_txn_detail;
238:
239: PROCEDURE query_immediate_children (
232: x_parent_line_rec := l_parent_line_rec;
233:
234: EXCEPTION
235: WHEN fnd_api.g_exc_error THEN
236: x_return_status := fnd_api.g_ret_sts_error;
237: END get_parent_with_txn_detail;
238:
239: PROCEDURE query_immediate_children (
240: p_parent_line_id IN number,
244:
245: l_hdr_rec source_header_rec;
246: l_line_rec source_line_rec;
247:
248: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
249:
250: CURSOR op_cur is
251: SELECT line_id
252: FROM oe_order_lines_all
254: ORDER BY line_number, shipment_number;
255:
256: BEGIN
257:
258: x_return_status := fnd_api.g_ret_sts_success;
259: api_log('query_immediate_children');
260:
261: debug(' Getting children for Line ID :'||p_parent_line_id);
262:
279:
280: debug(' Children count :'||x_line_tbl.COUNT);
281:
282: EXCEPTION
283: WHEN fnd_api.g_exc_error THEN
284: x_return_status := fnd_api.g_ret_sts_error;
285: END query_immediate_children;
286:
287: PROCEDURE get_ib_trackable_children(
280: debug(' Children count :'||x_line_tbl.COUNT);
281:
282: EXCEPTION
283: WHEN fnd_api.g_exc_error THEN
284: x_return_status := fnd_api.g_ret_sts_error;
285: END query_immediate_children;
286:
287: PROCEDURE get_ib_trackable_children(
288: p_current_line_id IN number,
302: l_final_ind binary_integer;
303:
304: l_ib_trackable_flag varchar2(1);
305: l_config_found boolean := FALSE;
306: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
307:
308: BEGIN
309:
310: api_log('get_ib_trackable_children');
308: BEGIN
309:
310: api_log('get_ib_trackable_children');
311:
312: x_return_status := fnd_api.g_ret_sts_success;
313:
314: l_final_ind := 0;
315:
316: query_immediate_children (
394: END IF;
395: debug(' Trackable children count :'||x_trackable_line_tbl.count);
396:
397: EXCEPTION
398: WHEN fnd_api.g_exc_error THEN
399: x_return_status := fnd_api.g_ret_sts_success;
400: END get_ib_trackable_children;
401:
402: --
395: debug(' Trackable children count :'||x_trackable_line_tbl.count);
396:
397: EXCEPTION
398: WHEN fnd_api.g_exc_error THEN
399: x_return_status := fnd_api.g_ret_sts_success;
400: END get_ib_trackable_children;
401:
402: --
403: --
435: l_pty_dtl_tbl csi_t_datastructures_grp.txn_party_detail_tbl;
436: l_pty_acct_tbl csi_t_datastructures_grp.txn_pty_acct_detail_tbl;
437: l_org_assgn_tbl csi_t_datastructures_grp.txn_org_assgn_tbl;
438:
439: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
440: l_msg_data varchar2(512);
441: l_msg_count number;
442:
443: BEGIN
441: l_msg_count number;
442:
443: BEGIN
444:
445: x_return_status := fnd_api.g_ret_sts_success;
446:
447: api_log('cascade_txn_detail');
448:
449: l_txn_line_query_rec.source_transaction_table := g_om_source_table;
452: l_txn_line_detail_query_rec.source_transaction_flag := 'Y';
453:
454: csi_t_txn_details_grp.get_transaction_details(
455: p_api_version => 1.0,
456: p_commit => fnd_api.g_false,
457: p_init_msg_list => fnd_api.g_true,
458: p_validation_level => fnd_api.g_valid_level_full,
459: p_txn_line_query_rec => l_txn_line_query_rec,
460: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
453:
454: csi_t_txn_details_grp.get_transaction_details(
455: p_api_version => 1.0,
456: p_commit => fnd_api.g_false,
457: p_init_msg_list => fnd_api.g_true,
458: p_validation_level => fnd_api.g_valid_level_full,
459: p_txn_line_query_rec => l_txn_line_query_rec,
460: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
461: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
454: csi_t_txn_details_grp.get_transaction_details(
455: p_api_version => 1.0,
456: p_commit => fnd_api.g_false,
457: p_init_msg_list => fnd_api.g_true,
458: p_validation_level => fnd_api.g_valid_level_full,
459: p_txn_line_query_rec => l_txn_line_query_rec,
460: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
461: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
462: p_get_parties_flag => fnd_api.g_true,
458: p_validation_level => fnd_api.g_valid_level_full,
459: p_txn_line_query_rec => l_txn_line_query_rec,
460: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
461: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
462: p_get_parties_flag => fnd_api.g_true,
463: x_txn_party_detail_tbl => l_g_pty_dtl_tbl,
464: p_get_pty_accts_flag => fnd_api.g_true,
465: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
466: p_get_ii_rltns_flag => fnd_api.g_false,
460: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
461: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
462: p_get_parties_flag => fnd_api.g_true,
463: x_txn_party_detail_tbl => l_g_pty_dtl_tbl,
464: p_get_pty_accts_flag => fnd_api.g_true,
465: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
466: p_get_ii_rltns_flag => fnd_api.g_false,
467: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
468: p_get_org_assgns_flag => fnd_api.g_true,
462: p_get_parties_flag => fnd_api.g_true,
463: x_txn_party_detail_tbl => l_g_pty_dtl_tbl,
464: p_get_pty_accts_flag => fnd_api.g_true,
465: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
466: p_get_ii_rltns_flag => fnd_api.g_false,
467: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
468: p_get_org_assgns_flag => fnd_api.g_true,
469: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
470: p_get_ext_attrib_vals_flag => fnd_api.g_false,
464: p_get_pty_accts_flag => fnd_api.g_true,
465: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
466: p_get_ii_rltns_flag => fnd_api.g_false,
467: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
468: p_get_org_assgns_flag => fnd_api.g_true,
469: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
470: p_get_ext_attrib_vals_flag => fnd_api.g_false,
471: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
472: p_get_csi_attribs_flag => fnd_api.g_false,
466: p_get_ii_rltns_flag => fnd_api.g_false,
467: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
468: p_get_org_assgns_flag => fnd_api.g_true,
469: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
470: p_get_ext_attrib_vals_flag => fnd_api.g_false,
471: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
472: p_get_csi_attribs_flag => fnd_api.g_false,
473: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
474: p_get_csi_iea_values_flag => fnd_api.g_false,
468: p_get_org_assgns_flag => fnd_api.g_true,
469: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
470: p_get_ext_attrib_vals_flag => fnd_api.g_false,
471: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
472: p_get_csi_attribs_flag => fnd_api.g_false,
473: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
474: p_get_csi_iea_values_flag => fnd_api.g_false,
475: x_csi_iea_values_tbl => l_g_csi_eav_tbl,
476: p_get_txn_systems_flag => fnd_api.g_false,
470: p_get_ext_attrib_vals_flag => fnd_api.g_false,
471: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
472: p_get_csi_attribs_flag => fnd_api.g_false,
473: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
474: p_get_csi_iea_values_flag => fnd_api.g_false,
475: x_csi_iea_values_tbl => l_g_csi_eav_tbl,
476: p_get_txn_systems_flag => fnd_api.g_false,
477: x_txn_systems_tbl => l_g_txn_systems_tbl,
478: x_return_status => l_return_status,
472: p_get_csi_attribs_flag => fnd_api.g_false,
473: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
474: p_get_csi_iea_values_flag => fnd_api.g_false,
475: x_csi_iea_values_tbl => l_g_csi_eav_tbl,
476: p_get_txn_systems_flag => fnd_api.g_false,
477: x_txn_systems_tbl => l_g_txn_systems_tbl,
478: x_return_status => l_return_status,
479: x_msg_count => l_msg_count,
480: x_msg_data => l_msg_data);
478: x_return_status => l_return_status,
479: x_msg_count => l_msg_count,
480: x_msg_data => l_msg_data);
481:
482: IF l_return_status <> fnd_api.g_ret_sts_success THEN
483: RAISE fnd_api.g_exc_error;
484: END IF;
485:
486: l_c_td_ind := 0;
479: x_msg_count => l_msg_count,
480: x_msg_data => l_msg_data);
481:
482: IF l_return_status <> fnd_api.g_ret_sts_success THEN
483: RAISE fnd_api.g_exc_error;
484: END IF;
485:
486: l_c_td_ind := 0;
487: l_c_pt_ind := 0;
501: l_line_dtl_tbl(l_c_td_ind) := l_g_line_dtl_tbl(l_td_ind);
502: l_line_dtl_tbl(l_c_td_ind).quantity := p_child_line_rec.source_quantity/
503: p_parent_line_rec.source_quantity;
504:
505: l_line_dtl_tbl(l_c_td_ind).transaction_line_id := fnd_api.g_miss_num;
506: l_line_dtl_tbl(l_c_td_ind).txn_line_detail_id := fnd_api.g_miss_num;
507: l_line_dtl_tbl(l_c_td_ind).inventory_item_id := p_child_line_rec.inventory_item_id;
508: l_line_dtl_tbl(l_c_td_ind).unit_of_measure := p_child_line_rec.uom_code;
509: l_line_dtl_tbl(l_c_td_ind).inventory_revision := p_child_line_rec.item_revision;
502: l_line_dtl_tbl(l_c_td_ind).quantity := p_child_line_rec.source_quantity/
503: p_parent_line_rec.source_quantity;
504:
505: l_line_dtl_tbl(l_c_td_ind).transaction_line_id := fnd_api.g_miss_num;
506: l_line_dtl_tbl(l_c_td_ind).txn_line_detail_id := fnd_api.g_miss_num;
507: l_line_dtl_tbl(l_c_td_ind).inventory_item_id := p_child_line_rec.inventory_item_id;
508: l_line_dtl_tbl(l_c_td_ind).unit_of_measure := p_child_line_rec.uom_code;
509: l_line_dtl_tbl(l_c_td_ind).inventory_revision := p_child_line_rec.item_revision;
510: l_line_dtl_tbl(l_c_td_ind).csi_transaction_id := fnd_api.g_miss_num;
506: l_line_dtl_tbl(l_c_td_ind).txn_line_detail_id := fnd_api.g_miss_num;
507: l_line_dtl_tbl(l_c_td_ind).inventory_item_id := p_child_line_rec.inventory_item_id;
508: l_line_dtl_tbl(l_c_td_ind).unit_of_measure := p_child_line_rec.uom_code;
509: l_line_dtl_tbl(l_c_td_ind).inventory_revision := p_child_line_rec.item_revision;
510: l_line_dtl_tbl(l_c_td_ind).csi_transaction_id := fnd_api.g_miss_num;
511: l_line_dtl_tbl(l_c_td_ind).processing_status := 'SUBMIT';
512: l_line_dtl_tbl(l_c_td_ind).instance_exists_flag := 'N';
513: l_line_dtl_tbl(l_c_td_ind).instance_id := fnd_api.g_miss_num;
514: l_line_dtl_tbl(l_c_td_ind).source_txn_line_detail_id :=
509: l_line_dtl_tbl(l_c_td_ind).inventory_revision := p_child_line_rec.item_revision;
510: l_line_dtl_tbl(l_c_td_ind).csi_transaction_id := fnd_api.g_miss_num;
511: l_line_dtl_tbl(l_c_td_ind).processing_status := 'SUBMIT';
512: l_line_dtl_tbl(l_c_td_ind).instance_exists_flag := 'N';
513: l_line_dtl_tbl(l_c_td_ind).instance_id := fnd_api.g_miss_num;
514: l_line_dtl_tbl(l_c_td_ind).source_txn_line_detail_id :=
515: l_g_line_dtl_tbl(l_td_ind).txn_line_detail_id;
516:
517: -- derive the item related attributes here
525:
526: l_c_pt_ind := l_c_pt_ind + 1;
527:
528: l_pty_dtl_tbl(l_c_pt_ind) := l_g_pty_dtl_tbl(l_pt_ind);
529: l_pty_dtl_tbl(l_c_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
530: l_pty_dtl_tbl(l_c_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
531: l_pty_dtl_tbl(l_c_pt_ind).txn_line_details_index := l_c_td_ind;
532: l_pty_dtl_tbl(l_c_pt_ind).instance_party_id := fnd_api.g_miss_num;
533:
526: l_c_pt_ind := l_c_pt_ind + 1;
527:
528: l_pty_dtl_tbl(l_c_pt_ind) := l_g_pty_dtl_tbl(l_pt_ind);
529: l_pty_dtl_tbl(l_c_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
530: l_pty_dtl_tbl(l_c_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
531: l_pty_dtl_tbl(l_c_pt_ind).txn_line_details_index := l_c_td_ind;
532: l_pty_dtl_tbl(l_c_pt_ind).instance_party_id := fnd_api.g_miss_num;
533:
534: IF l_g_pty_acct_tbl.COUNT > 0 THEN
528: l_pty_dtl_tbl(l_c_pt_ind) := l_g_pty_dtl_tbl(l_pt_ind);
529: l_pty_dtl_tbl(l_c_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
530: l_pty_dtl_tbl(l_c_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
531: l_pty_dtl_tbl(l_c_pt_ind).txn_line_details_index := l_c_td_ind;
532: l_pty_dtl_tbl(l_c_pt_ind).instance_party_id := fnd_api.g_miss_num;
533:
534: IF l_g_pty_acct_tbl.COUNT > 0 THEN
535:
536: FOR l_pa_ind IN l_g_pty_acct_tbl.FIRST .. l_g_pty_acct_tbl.LAST
540:
541: l_c_pa_ind := l_c_pa_ind + 1;
542:
543: l_pty_acct_tbl(l_c_pa_ind) := l_g_pty_acct_tbl(l_pa_ind);
544: l_pty_acct_tbl(l_c_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
545: l_pty_acct_tbl(l_c_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
546: l_pty_acct_tbl(l_c_pa_ind).txn_party_details_index := l_c_pt_ind;
547: l_pty_acct_tbl(l_c_pa_ind).ip_account_id := fnd_api.g_miss_num;
548:
541: l_c_pa_ind := l_c_pa_ind + 1;
542:
543: l_pty_acct_tbl(l_c_pa_ind) := l_g_pty_acct_tbl(l_pa_ind);
544: l_pty_acct_tbl(l_c_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
545: l_pty_acct_tbl(l_c_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
546: l_pty_acct_tbl(l_c_pa_ind).txn_party_details_index := l_c_pt_ind;
547: l_pty_acct_tbl(l_c_pa_ind).ip_account_id := fnd_api.g_miss_num;
548:
549: END IF; -- pty acct detail id chk
543: l_pty_acct_tbl(l_c_pa_ind) := l_g_pty_acct_tbl(l_pa_ind);
544: l_pty_acct_tbl(l_c_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
545: l_pty_acct_tbl(l_c_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
546: l_pty_acct_tbl(l_c_pa_ind).txn_party_details_index := l_c_pt_ind;
547: l_pty_acct_tbl(l_c_pa_ind).ip_account_id := fnd_api.g_miss_num;
548:
549: END IF; -- pty acct detail id chk
550:
551: END LOOP; -- party acct table loop
565: l_g_line_dtl_tbl(l_td_ind).txn_line_detail_id THEN
566:
567: l_c_oa_ind := l_c_oa_ind + 1;
568: l_org_assgn_tbl(l_c_oa_ind) := l_g_org_assgn_tbl(l_oa_ind);
569: l_org_assgn_tbl(l_c_oa_ind).txn_line_detail_id := fnd_api.g_miss_num;
570: l_org_assgn_tbl(l_c_oa_ind).txn_operating_unit_id := fnd_api.g_miss_num;
571: l_org_assgn_tbl(l_c_oa_ind).txn_line_details_index := l_c_td_ind;
572: l_org_assgn_tbl(l_c_oa_ind).instance_ou_id := fnd_api.g_miss_num;
573:
566:
567: l_c_oa_ind := l_c_oa_ind + 1;
568: l_org_assgn_tbl(l_c_oa_ind) := l_g_org_assgn_tbl(l_oa_ind);
569: l_org_assgn_tbl(l_c_oa_ind).txn_line_detail_id := fnd_api.g_miss_num;
570: l_org_assgn_tbl(l_c_oa_ind).txn_operating_unit_id := fnd_api.g_miss_num;
571: l_org_assgn_tbl(l_c_oa_ind).txn_line_details_index := l_c_td_ind;
572: l_org_assgn_tbl(l_c_oa_ind).instance_ou_id := fnd_api.g_miss_num;
573:
574: END IF;
568: l_org_assgn_tbl(l_c_oa_ind) := l_g_org_assgn_tbl(l_oa_ind);
569: l_org_assgn_tbl(l_c_oa_ind).txn_line_detail_id := fnd_api.g_miss_num;
570: l_org_assgn_tbl(l_c_oa_ind).txn_operating_unit_id := fnd_api.g_miss_num;
571: l_org_assgn_tbl(l_c_oa_ind).txn_line_details_index := l_c_td_ind;
572: l_org_assgn_tbl(l_c_oa_ind).instance_ou_id := fnd_api.g_miss_num;
573:
574: END IF;
575: END LOOP;
576: END IF;
583: x_txn_party_acct_tbl := l_pty_acct_tbl;
584: x_txn_org_assgn_tbl := l_org_assgn_tbl;
585:
586: EXCEPTION
587: WHEN fnd_api.g_exc_error THEN
588: x_return_status := fnd_api.g_ret_sts_error;
589: END cascade_txn_detail;
590:
591: PROCEDURE get_item_attributes(
584: x_txn_org_assgn_tbl := l_org_assgn_tbl;
585:
586: EXCEPTION
587: WHEN fnd_api.g_exc_error THEN
588: x_return_status := fnd_api.g_ret_sts_error;
589: END cascade_txn_detail;
590:
591: PROCEDURE get_item_attributes(
592: p_transaction_id IN number,-- Added for bug#14835893
601: l_status VARCHAR2(1);
602: l_industry VARCHAR2(1);
603: l_oracle_schema VARCHAR2(30);
604: BEGIN
605: x_return_status := fnd_api.g_ret_sts_success;
606: api_log('get_item_attributes');
607:
608: -- get item based attributes
609: SELECT serial_number_control_code,
644:
645: IF NOT l_return THEN
646: fnd_message.set_name('CSI','CSI_FND_INVALID_SCHEMA_ERROR');
647: fnd_msg_pub.add;
648: RAISE fnd_api.g_exc_error;
649: END IF;
650: -- End fix for Bug 3431768
651:
652: Begin
745: debug(' shippable_flag : '||x_item_attrib_rec.shippable_flag);
746: debug(' primary_uom_code : '||x_item_attrib_rec.primary_uom_code);
747:
748: EXCEPTION
749: WHEN fnd_api.g_exc_error THEN
750: x_return_status := fnd_api.g_ret_sts_error;
751: END get_item_attributes;
752:
753:
746: debug(' primary_uom_code : '||x_item_attrib_rec.primary_uom_code);
747:
748: EXCEPTION
749: WHEN fnd_api.g_exc_error THEN
750: x_return_status := fnd_api.g_ret_sts_error;
751: END get_item_attributes;
752:
753:
754: --
869: WHERE line_id = p_line_id ;
870:
871: BEGIN
872:
873: x_return_status := fnd_api.g_ret_sts_success;
874:
875: api_log('get_pricing_attributes');
876:
877: -- Build the pricing attribute table
986:
987: x_pricing_attribs_tbl := l_pa_tbl;
988:
989: EXCEPTION
990: WHEN fnd_api.g_exc_error THEN
991: x_return_status := fnd_api.g_ret_sts_error;
992: END get_pricing_attributes;
993:
994:
987: x_pricing_attribs_tbl := l_pa_tbl;
988:
989: EXCEPTION
990: WHEN fnd_api.g_exc_error THEN
991: x_return_status := fnd_api.g_ret_sts_error;
992: END get_pricing_attributes;
993:
994:
995: PROCEDURE build_td_from_source(
1009: x_return_status OUT NOCOPY varchar2)
1010: IS
1011:
1012: l_default_sub_type_id number;
1013: l_split_flag varchar2(1) := fnd_api.g_false;
1014: l_split_quantity number;
1015: l_split_loop number;
1016:
1017: l_td_ind binary_integer := 0;
1024: -- for partner ordering Bug 3443175
1025: l_partner_rec oe_install_base_util.partner_order_rec;
1026:
1027: l_item_attributes_rec item_attributes_rec;
1028: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1029:
1030: BEGIN
1031:
1032: x_return_status := fnd_api.g_ret_sts_success;
1028: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1029:
1030: BEGIN
1031:
1032: x_return_status := fnd_api.g_ret_sts_success;
1033:
1034: api_log('build_td_from_source');
1035:
1036: -- get the default sub_type_id
1040: x_return_status => l_return_status);
1041:
1042: x_txn_line_rec.source_transaction_type_id := p_transaction_type_id;
1043:
1044: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1045: RAISE fnd_api.g_exc_error;
1046: END IF;
1047:
1048: -- for partner ordering MRK
1041:
1042: x_txn_line_rec.source_transaction_type_id := p_transaction_type_id;
1043:
1044: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1045: RAISE fnd_api.g_exc_error;
1046: END IF;
1047:
1048: -- for partner ordering MRK
1049: -- Included the If condition for Bug 3893279, Don't call this for project Contracts
1055:
1056:
1057: l_split_flag := p_split_flag;
1058:
1059: IF l_split_flag = fnd_api.g_false THEN
1060:
1061: get_item_attributes(
1062: p_transaction_id => p_csi_txn_rec.inv_material_transaction_id,--Added for bug# 14835893
1063: p_inventory_item_id => p_source_line_rec.inventory_item_id,
1064: p_organization_id => p_source_line_rec.organization_id,
1065: x_item_attrib_rec => l_item_attributes_rec,
1066: x_return_status => l_return_status);
1067:
1068: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1069: RAISE fnd_api.g_exc_error;
1070: END IF;
1071:
1072: IF l_item_attributes_rec.serial_control_code <> 1 then
1065: x_item_attrib_rec => l_item_attributes_rec,
1066: x_return_status => l_return_status);
1067:
1068: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1069: RAISE fnd_api.g_exc_error;
1070: END IF;
1071:
1072: IF l_item_attributes_rec.serial_control_code <> 1 then
1073: l_split_flag := fnd_api.g_true;
1069: RAISE fnd_api.g_exc_error;
1070: END IF;
1071:
1072: IF l_item_attributes_rec.serial_control_code <> 1 then
1073: l_split_flag := fnd_api.g_true;
1074: l_split_quantity := 1;
1075: l_split_loop := p_source_line_rec.source_quantity;
1076: END IF;
1077:
1074: l_split_quantity := 1;
1075: l_split_loop := p_source_line_rec.source_quantity;
1076: END IF;
1077:
1078: IF l_split_flag = fnd_api.g_false THEN
1079: l_split_quantity := p_source_line_rec.source_quantity;
1080: l_split_loop := 1;
1081: END IF;
1082:
1094: LOOP
1095:
1096: l_td_ind := i;
1097:
1098: x_txn_line_detail_tbl(l_td_ind).transaction_line_id := fnd_api.g_miss_num;
1099: x_txn_line_detail_tbl(l_td_ind).txn_line_detail_id := fnd_api.g_miss_num;
1100: x_txn_line_detail_tbl(l_td_ind).sub_type_id := l_default_sub_type_id;
1101: x_txn_line_detail_tbl(l_td_ind).inventory_item_id := p_source_line_rec.inventory_item_id;
1102: x_txn_line_detail_tbl(l_td_ind).source_transaction_flag := 'Y';
1095:
1096: l_td_ind := i;
1097:
1098: x_txn_line_detail_tbl(l_td_ind).transaction_line_id := fnd_api.g_miss_num;
1099: x_txn_line_detail_tbl(l_td_ind).txn_line_detail_id := fnd_api.g_miss_num;
1100: x_txn_line_detail_tbl(l_td_ind).sub_type_id := l_default_sub_type_id;
1101: x_txn_line_detail_tbl(l_td_ind).inventory_item_id := p_source_line_rec.inventory_item_id;
1102: x_txn_line_detail_tbl(l_td_ind).source_transaction_flag := 'Y';
1103: x_txn_line_detail_tbl(l_td_ind).inv_organization_id := p_source_line_rec.organization_id;
1107:
1108: -- Added IF condition for Bug 4314464
1109: IF l_partner_rec.IB_CURRENT_LOCATION = 'INSTALL_BASE'
1110: THEN
1111: x_txn_line_detail_tbl(l_td_ind).location_type_code := fnd_api.g_miss_char;
1112: x_txn_line_detail_tbl(l_td_ind).location_id := fnd_api.g_miss_num;
1113: ELSE
1114: x_txn_line_detail_tbl(l_td_ind).location_type_code := 'HZ_PARTY_SITES';
1115: x_txn_line_detail_tbl(l_td_ind).location_id := p_source_line_rec.ship_to_party_site_id;
1108: -- Added IF condition for Bug 4314464
1109: IF l_partner_rec.IB_CURRENT_LOCATION = 'INSTALL_BASE'
1110: THEN
1111: x_txn_line_detail_tbl(l_td_ind).location_type_code := fnd_api.g_miss_char;
1112: x_txn_line_detail_tbl(l_td_ind).location_id := fnd_api.g_miss_num;
1113: ELSE
1114: x_txn_line_detail_tbl(l_td_ind).location_type_code := 'HZ_PARTY_SITES';
1115: x_txn_line_detail_tbl(l_td_ind).location_id := p_source_line_rec.ship_to_party_site_id;
1116: END IF;
1118: -- Added for partner ordering
1119: -- Added IF condition for Bug 4314464
1120: IF l_partner_rec.IB_INSTALLED_AT_LOCATION = 'INSTALL_BASE'
1121: THEN
1122: x_txn_line_detail_tbl(l_td_ind).install_location_type_code := fnd_api.g_miss_char;
1123: x_txn_line_detail_tbl(l_td_ind).install_location_id := fnd_api.g_miss_num;
1124: ELSE
1125: x_txn_line_detail_tbl(l_td_ind).install_location_type_code := 'HZ_PARTY_SITES';
1126: x_txn_line_detail_tbl(l_td_ind).install_location_id := p_source_line_rec.install_to_party_site_id;
1119: -- Added IF condition for Bug 4314464
1120: IF l_partner_rec.IB_INSTALLED_AT_LOCATION = 'INSTALL_BASE'
1121: THEN
1122: x_txn_line_detail_tbl(l_td_ind).install_location_type_code := fnd_api.g_miss_char;
1123: x_txn_line_detail_tbl(l_td_ind).install_location_id := fnd_api.g_miss_num;
1124: ELSE
1125: x_txn_line_detail_tbl(l_td_ind).install_location_type_code := 'HZ_PARTY_SITES';
1126: x_txn_line_detail_tbl(l_td_ind).install_location_id := p_source_line_rec.install_to_party_site_id;
1127: END IF;
1134: -- build owner party record
1135: l_pt_ind := l_pt_ind + 1;
1136: l_owner_pt_ind := l_pt_ind;
1137:
1138: x_txn_party_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1139: x_txn_party_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1140: x_txn_party_tbl(l_pt_ind).txn_line_details_index := l_td_ind;
1141: x_txn_party_tbl(l_pt_ind).party_source_table := 'HZ_PARTIES';
1142:
1135: l_pt_ind := l_pt_ind + 1;
1136: l_owner_pt_ind := l_pt_ind;
1137:
1138: x_txn_party_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1139: x_txn_party_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1140: x_txn_party_tbl(l_pt_ind).txn_line_details_index := l_td_ind;
1141: x_txn_party_tbl(l_pt_ind).party_source_table := 'HZ_PARTIES';
1142:
1143: -- For Bug 3443175.
1142:
1143: -- For Bug 3443175.
1144: IF l_partner_rec.IB_OWNER = 'INSTALL_BASE'
1145: THEN
1146: x_txn_party_tbl(l_pt_ind).party_source_id := fnd_api.g_miss_num;
1147: ELSE
1148: x_txn_party_tbl(l_pt_ind).party_source_id := p_source_line_rec.owner_party_id;
1149: END IF;
1150:
1153: x_txn_party_tbl(l_pt_ind).object_version_number := 1.0;
1154:
1155: -- build owner party account record
1156: l_pa_ind := l_pa_ind + 1;
1157: x_txn_party_acct_tbl(l_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
1158: x_txn_party_acct_tbl(l_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
1159: x_txn_party_acct_tbl(l_pa_ind).txn_party_details_index := l_owner_pt_ind;
1160:
1161: -- For Bug 3443175.
1154:
1155: -- build owner party account record
1156: l_pa_ind := l_pa_ind + 1;
1157: x_txn_party_acct_tbl(l_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
1158: x_txn_party_acct_tbl(l_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
1159: x_txn_party_acct_tbl(l_pa_ind).txn_party_details_index := l_owner_pt_ind;
1160:
1161: -- For Bug 3443175.
1162: IF l_partner_rec.IB_OWNER = 'INSTALL_BASE'
1160:
1161: -- For Bug 3443175.
1162: IF l_partner_rec.IB_OWNER = 'INSTALL_BASE'
1163: THEN
1164: x_txn_party_acct_tbl(l_pa_ind).account_id := fnd_api.g_miss_num;
1165: ELSE
1166: x_txn_party_acct_tbl(l_pa_ind).account_id := p_source_line_rec.owner_party_account_id;
1167: END IF;
1168:
1181: IF p_source_line_rec.ship_to_contact_party_id is not null THEN
1182:
1183: l_pt_ind := l_pt_ind + 1;
1184:
1185: x_txn_party_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1186: x_txn_party_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1187: x_txn_party_tbl(l_pt_ind).txn_line_details_index := l_td_ind;
1188: x_txn_party_tbl(l_pt_ind).party_source_table := 'HZ_PARTIES';
1189: x_txn_party_tbl(l_pt_ind).party_source_id :=
1182:
1183: l_pt_ind := l_pt_ind + 1;
1184:
1185: x_txn_party_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1186: x_txn_party_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1187: x_txn_party_tbl(l_pt_ind).txn_line_details_index := l_td_ind;
1188: x_txn_party_tbl(l_pt_ind).party_source_table := 'HZ_PARTIES';
1189: x_txn_party_tbl(l_pt_ind).party_source_id :=
1190: p_source_line_rec.ship_to_contact_party_id;
1199: IF p_source_line_rec.bill_to_contact_party_id is not null THEN
1200:
1201: l_pt_ind := l_pt_ind + 1;
1202:
1203: x_txn_party_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1204: x_txn_party_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1205: x_txn_party_tbl(l_pt_ind).txn_line_details_index := l_td_ind;
1206: x_txn_party_tbl(l_pt_ind).party_source_table := 'HZ_PARTIES';
1207: x_txn_party_tbl(l_pt_ind).party_source_id :=
1200:
1201: l_pt_ind := l_pt_ind + 1;
1202:
1203: x_txn_party_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1204: x_txn_party_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1205: x_txn_party_tbl(l_pt_ind).txn_line_details_index := l_td_ind;
1206: x_txn_party_tbl(l_pt_ind).party_source_table := 'HZ_PARTIES';
1207: x_txn_party_tbl(l_pt_ind).party_source_id :=
1208: p_source_line_rec.bill_to_contact_party_id;
1215:
1216: -- build org units
1217: IF p_source_line_rec.sold_from_org_id is not null THEN
1218: l_oa_ind := l_oa_ind + 1;
1219: x_txn_org_assgn_tbl(l_oa_ind).txn_line_detail_id := fnd_api.g_miss_num;
1220: x_txn_org_assgn_tbl(l_oa_ind).txn_line_details_index := l_td_ind;
1221: x_txn_org_assgn_tbl(l_oa_ind).operating_unit_id :=
1222: p_source_line_rec.sold_from_org_id;
1223: x_txn_org_assgn_tbl(l_oa_ind).relationship_type_code := 'SOLD_FROM';
1282: l_csi_ea_tbl csi_t_datastructures_grp.csi_ext_attribs_tbl;
1283: l_csi_eav_tbl csi_t_datastructures_grp.csi_ext_attrib_vals_tbl;
1284: l_txn_systems_tbl csi_t_datastructures_grp.txn_systems_tbl;
1285:
1286: l_split_flag varchar2(1) := fnd_api.g_false;
1287: l_split_quantity number := 1;
1288: l_split_loop number := 1;
1289:
1290: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1286: l_split_flag varchar2(1) := fnd_api.g_false;
1287: l_split_quantity number := 1;
1288: l_split_loop number := 1;
1289:
1290: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1291: l_msg_count number;
1292: l_msg_data varchar2(2000);
1293: l_transaction_type_id number;
1294:
1293: l_transaction_type_id number;
1294:
1295: BEGIN
1296:
1297: x_return_status := fnd_api.g_ret_sts_success;
1298:
1299: api_log('build_default_txn_detail');
1300:
1301: IF p_source_table = g_om_source_table THEN
1303: px_txn_line_rec.source_transaction_id := p_source_line_rec.source_line_id;
1304: px_txn_line_rec.source_transaction_table := g_om_source_table;
1305:
1306: --IF condition added for bug 5194812--
1307: IF nvl(px_txn_line_rec.source_transaction_type_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1308: px_txn_line_rec.source_transaction_type_id := g_om_txn_type_id;
1309: END IF;
1310:
1311: px_txn_line_rec.processing_status := 'SUBMIT';
1320: x_parent_found => l_parent_td_found,
1321: x_parent_line_rec => l_parent_td_line_rec,
1322: x_return_status => l_return_status);
1323:
1324: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1325: RAISE fnd_api.g_exc_error;
1326: END IF;
1327:
1328: IF l_parent_td_found THEN
1321: x_parent_line_rec => l_parent_td_line_rec,
1322: x_return_status => l_return_status);
1323:
1324: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1325: RAISE fnd_api.g_exc_error;
1326: END IF;
1327:
1328: IF l_parent_td_found THEN
1329: debug(' Parent with transaction detail found. Line ID :'||l_parent_td_line_rec.source_line_id);
1336: x_txn_party_acct_tbl => l_pty_acct_tbl,
1337: x_txn_org_assgn_tbl => l_org_assgn_tbl,
1338: x_return_status => l_return_status);
1339:
1340: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1341: RAISE fnd_api.g_exc_error;
1342: END IF;
1343:
1344: l_cascade_flag := TRUE;
1337: x_txn_org_assgn_tbl => l_org_assgn_tbl,
1338: x_return_status => l_return_status);
1339:
1340: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1341: RAISE fnd_api.g_exc_error;
1342: END IF;
1343:
1344: l_cascade_flag := TRUE;
1345:
1368: px_txn_org_assgn_tbl => x_txn_org_assgn_tbl,
1369: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1370: x_return_status => l_return_status);
1371:
1372: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1373: RAISE fnd_api.g_exc_error;
1374: END IF;
1375:
1376: ELSE -- not(l_cascade_flag) not cascaded from the parent
1369: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1370: x_return_status => l_return_status);
1371:
1372: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1373: RAISE fnd_api.g_exc_error;
1374: END IF;
1375:
1376: ELSE -- not(l_cascade_flag) not cascaded from the parent
1377:
1385: x_parent_found => l_trackable_parent_found,
1386: x_parent_line_rec => l_parent_line_rec,
1387: x_return_status => l_return_status);
1388:
1389: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1390: RAISE fnd_api.g_exc_error;
1391: END IF;
1392:
1393: IF l_trackable_parent_found THEN
1386: x_parent_line_rec => l_parent_line_rec,
1387: x_return_status => l_return_status);
1388:
1389: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1390: RAISE fnd_api.g_exc_error;
1391: END IF;
1392:
1393: IF l_trackable_parent_found THEN
1394: l_split_flag := fnd_api.g_true;
1390: RAISE fnd_api.g_exc_error;
1391: END IF;
1392:
1393: IF l_trackable_parent_found THEN
1394: l_split_flag := fnd_api.g_true;
1395: l_split_quantity := p_source_line_rec.source_quantity/l_parent_line_rec.source_quantity;
1396: l_split_loop := l_parent_line_rec.source_quantity;
1397: END IF;
1398:
1404: p_current_line_id => p_source_line_rec.source_line_id,
1405: x_trackable_line_tbl => l_child_order_line_tbl,
1406: x_return_status => l_return_status);
1407:
1408: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1409: RAISE fnd_api.g_exc_error;
1410: END IF;
1411:
1412: IF l_child_order_line_tbl.COUNT > 0 THEN
1405: x_trackable_line_tbl => l_child_order_line_tbl,
1406: x_return_status => l_return_status);
1407:
1408: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1409: RAISE fnd_api.g_exc_error;
1410: END IF;
1411:
1412: IF l_child_order_line_tbl.COUNT > 0 THEN
1413: l_split_flag := fnd_api.g_true;
1409: RAISE fnd_api.g_exc_error;
1410: END IF;
1411:
1412: IF l_child_order_line_tbl.COUNT > 0 THEN
1413: l_split_flag := fnd_api.g_true;
1414: l_split_quantity := 1;
1415: l_split_loop := p_source_line_rec.source_quantity;
1416: END IF;
1417:
1435: x_txn_org_assgn_tbl => x_txn_org_assgn_tbl,
1436: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1437: x_return_status => l_return_status);
1438:
1439: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1440: RAISE fnd_api.g_exc_error;
1441: END IF;
1442:
1443: END IF; -- cascade check
1436: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1437: x_return_status => l_return_status);
1438:
1439: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1440: RAISE fnd_api.g_exc_error;
1441: END IF;
1442:
1443: END IF; -- cascade check
1444: --
1443: END IF; -- cascade check
1444: --
1445: ELSIF p_source_table = g_oke_source_table THEN
1446:
1447: l_split_flag := fnd_api.g_false;
1448: l_split_quantity := p_source_line_rec.source_quantity;
1449: l_split_loop := 1;
1450:
1451: build_td_from_source(
1463: x_txn_org_assgn_tbl => x_txn_org_assgn_tbl,
1464: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1465: x_return_status => l_return_status);
1466:
1467: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1468: RAISE fnd_api.g_exc_error;
1469: END IF;
1470:
1471: END IF;
1464: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1465: x_return_status => l_return_status);
1466:
1467: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1468: RAISE fnd_api.g_exc_error;
1469: END IF;
1470:
1471: END IF;
1472:
1475: p_line_id => p_source_line_rec.source_line_id,
1476: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1477: x_return_status => l_return_status);
1478:
1479: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1480: RAISE fnd_api.g_exc_error;
1481: END IF;
1482:
1483: EXCEPTION
1476: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1477: x_return_status => l_return_status);
1478:
1479: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1480: RAISE fnd_api.g_exc_error;
1481: END IF;
1482:
1483: EXCEPTION
1484: WHEN fnd_api.g_exc_error THEN
1480: RAISE fnd_api.g_exc_error;
1481: END IF;
1482:
1483: EXCEPTION
1484: WHEN fnd_api.g_exc_error THEN
1485: x_return_status := fnd_api.g_ret_sts_error;
1486: END build_default_txn_detail;
1487:
1488:
1481: END IF;
1482:
1483: EXCEPTION
1484: WHEN fnd_api.g_exc_error THEN
1485: x_return_status := fnd_api.g_ret_sts_error;
1486: END build_default_txn_detail;
1487:
1488:
1489: /* ------------------------------------------------------------------- */
1531: l_n_pa_ind binary_integer := 0;
1532: l_oa_n_ind binary_integer := 0;
1533:
1534: BEGIN
1535: x_return_status := fnd_api.g_ret_sts_success;
1536: api_log('rebuild_txn_detail');
1537:
1538: -- convert all the ids to indexes
1539:
1644: THEN
1645:
1646: l_n_pt_ind := l_pty_tbl.count + 1;
1647:
1648: l_pty_tbl(l_n_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1649: l_pty_tbl(l_n_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1650: l_pty_tbl(l_n_pt_ind).txn_line_details_index := l_ind;
1651: l_pty_tbl(l_n_pt_ind).party_source_table := 'HZ_PARTIES';
1652: l_pty_tbl(l_n_pt_ind).party_source_id := p_source_line_rec.ship_to_contact_party_id;
1645:
1646: l_n_pt_ind := l_pty_tbl.count + 1;
1647:
1648: l_pty_tbl(l_n_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1649: l_pty_tbl(l_n_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1650: l_pty_tbl(l_n_pt_ind).txn_line_details_index := l_ind;
1651: l_pty_tbl(l_n_pt_ind).party_source_table := 'HZ_PARTIES';
1652: l_pty_tbl(l_n_pt_ind).party_source_id := p_source_line_rec.ship_to_contact_party_id;
1653: l_pty_tbl(l_n_pt_ind).relationship_type_code := 'SHIP_TO';
1659: IF NOT (l_bill_to_contact_found)
1660: AND
1661: p_source_line_rec.bill_to_contact_party_id is not null
1662: THEN
1663: l_pty_tbl(l_n_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1664: l_pty_tbl(l_n_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1665: l_pty_tbl(l_n_pt_ind).txn_line_details_index := l_ind;
1666: l_pty_tbl(l_n_pt_ind).party_source_table := 'HZ_PARTIES';
1667: l_pty_tbl(l_n_pt_ind).party_source_id := p_source_line_rec.bill_to_contact_party_id;
1660: AND
1661: p_source_line_rec.bill_to_contact_party_id is not null
1662: THEN
1663: l_pty_tbl(l_n_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
1664: l_pty_tbl(l_n_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
1665: l_pty_tbl(l_n_pt_ind).txn_line_details_index := l_ind;
1666: l_pty_tbl(l_n_pt_ind).party_source_table := 'HZ_PARTIES';
1667: l_pty_tbl(l_n_pt_ind).party_source_id := p_source_line_rec.bill_to_contact_party_id;
1668: l_pty_tbl(l_n_pt_ind).relationship_type_code := 'BILL_TO';
1676: IF NOT(l_org_assignment_found) THEN
1677:
1678: l_oa_n_ind := l_oa_tbl.COUNT + 1;
1679:
1680: l_oa_tbl(l_oa_n_ind).txn_line_detail_id := fnd_api.g_miss_num;
1681: l_oa_tbl(l_oa_n_ind).txn_line_details_index := l_ind;
1682: l_oa_tbl(l_oa_n_ind).operating_unit_id := p_source_line_rec.sold_from_org_id;
1683: l_oa_tbl(l_oa_n_ind).relationship_type_code := 'SOLD_FROM';
1684: l_oa_tbl(l_oa_n_ind).preserve_detail_flag := 'Y';
1701: p_line_id => px_txn_line_rec.source_transaction_id,
1702: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1703: x_return_status => l_return_status);
1704:
1705: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1706: RAISE fnd_api.g_exc_error;
1707: END IF;
1708:
1709: END IF;
1702: x_pricing_attribs_tbl => x_pricing_attribs_tbl,
1703: x_return_status => l_return_status);
1704:
1705: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1706: RAISE fnd_api.g_exc_error;
1707: END IF;
1708:
1709: END IF;
1710:
1709: END IF;
1710:
1711:
1712: EXCEPTION
1713: WHEN fnd_api.g_exc_error THEN
1714: x_return_status := fnd_api.g_ret_sts_error;
1715: END rebuild_txn_detail;
1716:
1717: --
1710:
1711:
1712: EXCEPTION
1713: WHEN fnd_api.g_exc_error THEN
1714: x_return_status := fnd_api.g_ret_sts_error;
1715: END rebuild_txn_detail;
1716:
1717: --
1718: --
1741: l_g_csi_ea_tbl csi_t_datastructures_grp.csi_ext_attribs_tbl;
1742: l_g_csi_eav_tbl csi_t_datastructures_grp.csi_ext_attrib_vals_tbl;
1743: l_g_txn_systems_tbl csi_t_datastructures_grp.txn_systems_tbl;
1744:
1745: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1746: l_msg_data varchar2(512);
1747: l_msg_count number;
1748:
1749: BEGIN
1747: l_msg_count number;
1748:
1749: BEGIN
1750:
1751: x_return_status := fnd_api.g_ret_sts_success;
1752:
1753: api_log('get_cz_txn_details');
1754:
1755: --l_txn_line_query_rec.source_transaction_type_id := 401;
1759: l_txn_line_query_rec.config_session_rev_num := p_config_session_key.session_rev_num;
1760:
1761: csi_t_txn_details_grp.get_transaction_details(
1762: p_api_version => 1.0,
1763: p_commit => fnd_api.g_false,
1764: p_init_msg_list => fnd_api.g_true,
1765: p_validation_level => fnd_api.g_valid_level_full,
1766: p_txn_line_query_rec => l_txn_line_query_rec,
1767: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
1760:
1761: csi_t_txn_details_grp.get_transaction_details(
1762: p_api_version => 1.0,
1763: p_commit => fnd_api.g_false,
1764: p_init_msg_list => fnd_api.g_true,
1765: p_validation_level => fnd_api.g_valid_level_full,
1766: p_txn_line_query_rec => l_txn_line_query_rec,
1767: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
1768: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
1761: csi_t_txn_details_grp.get_transaction_details(
1762: p_api_version => 1.0,
1763: p_commit => fnd_api.g_false,
1764: p_init_msg_list => fnd_api.g_true,
1765: p_validation_level => fnd_api.g_valid_level_full,
1766: p_txn_line_query_rec => l_txn_line_query_rec,
1767: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
1768: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
1769: p_get_parties_flag => fnd_api.g_false,
1765: p_validation_level => fnd_api.g_valid_level_full,
1766: p_txn_line_query_rec => l_txn_line_query_rec,
1767: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
1768: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
1769: p_get_parties_flag => fnd_api.g_false,
1770: x_txn_party_detail_tbl => l_g_pty_dtl_tbl,
1771: p_get_pty_accts_flag => fnd_api.g_false,
1772: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
1773: p_get_ii_rltns_flag => fnd_api.g_true,
1767: p_txn_line_detail_query_rec => l_txn_line_detail_query_rec,
1768: x_txn_line_detail_tbl => l_g_line_dtl_tbl,
1769: p_get_parties_flag => fnd_api.g_false,
1770: x_txn_party_detail_tbl => l_g_pty_dtl_tbl,
1771: p_get_pty_accts_flag => fnd_api.g_false,
1772: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
1773: p_get_ii_rltns_flag => fnd_api.g_true,
1774: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
1775: p_get_org_assgns_flag => fnd_api.g_false,
1769: p_get_parties_flag => fnd_api.g_false,
1770: x_txn_party_detail_tbl => l_g_pty_dtl_tbl,
1771: p_get_pty_accts_flag => fnd_api.g_false,
1772: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
1773: p_get_ii_rltns_flag => fnd_api.g_true,
1774: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
1775: p_get_org_assgns_flag => fnd_api.g_false,
1776: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
1777: p_get_ext_attrib_vals_flag => fnd_api.g_true,
1771: p_get_pty_accts_flag => fnd_api.g_false,
1772: x_txn_pty_acct_detail_tbl => l_g_pty_acct_tbl,
1773: p_get_ii_rltns_flag => fnd_api.g_true,
1774: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
1775: p_get_org_assgns_flag => fnd_api.g_false,
1776: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
1777: p_get_ext_attrib_vals_flag => fnd_api.g_true,
1778: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
1779: p_get_csi_attribs_flag => fnd_api.g_false,
1773: p_get_ii_rltns_flag => fnd_api.g_true,
1774: x_txn_ii_rltns_tbl => l_g_ii_rltns_tbl,
1775: p_get_org_assgns_flag => fnd_api.g_false,
1776: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
1777: p_get_ext_attrib_vals_flag => fnd_api.g_true,
1778: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
1779: p_get_csi_attribs_flag => fnd_api.g_false,
1780: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
1781: p_get_csi_iea_values_flag => fnd_api.g_false,
1775: p_get_org_assgns_flag => fnd_api.g_false,
1776: x_txn_org_assgn_tbl => l_g_org_assgn_tbl,
1777: p_get_ext_attrib_vals_flag => fnd_api.g_true,
1778: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
1779: p_get_csi_attribs_flag => fnd_api.g_false,
1780: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
1781: p_get_csi_iea_values_flag => fnd_api.g_false,
1782: x_csi_iea_values_tbl => l_g_csi_eav_tbl,
1783: p_get_txn_systems_flag => fnd_api.g_false,
1777: p_get_ext_attrib_vals_flag => fnd_api.g_true,
1778: x_txn_ext_attrib_vals_tbl => l_g_ext_attrib_tbl,
1779: p_get_csi_attribs_flag => fnd_api.g_false,
1780: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
1781: p_get_csi_iea_values_flag => fnd_api.g_false,
1782: x_csi_iea_values_tbl => l_g_csi_eav_tbl,
1783: p_get_txn_systems_flag => fnd_api.g_false,
1784: x_txn_systems_tbl => l_g_txn_systems_tbl,
1785: x_return_status => l_return_status,
1779: p_get_csi_attribs_flag => fnd_api.g_false,
1780: x_csi_ext_attribs_tbl => l_g_csi_ea_tbl,
1781: p_get_csi_iea_values_flag => fnd_api.g_false,
1782: x_csi_iea_values_tbl => l_g_csi_eav_tbl,
1783: p_get_txn_systems_flag => fnd_api.g_false,
1784: x_txn_systems_tbl => l_g_txn_systems_tbl,
1785: x_return_status => l_return_status,
1786: x_msg_count => l_msg_count,
1787: x_msg_data => l_msg_data);
1785: x_return_status => l_return_status,
1786: x_msg_count => l_msg_count,
1787: x_msg_data => l_msg_data);
1788:
1789: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1790: RAISE fnd_api.g_exc_error;
1791: END IF;
1792:
1793: IF l_g_line_dtl_tbl.COUNT > 0 THEN
1786: x_msg_count => l_msg_count,
1787: x_msg_data => l_msg_data);
1788:
1789: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1790: RAISE fnd_api.g_exc_error;
1791: END IF;
1792:
1793: IF l_g_line_dtl_tbl.COUNT > 0 THEN
1794:
1832: debug(' txn_ii_rltns_tbl :'||x_txn_ii_rltns_tbl.COUNT);
1833: debug(' txn_eav_tbl :'||x_txn_eav_tbl.COUNT);
1834:
1835: EXCEPTION
1836: WHEN fnd_api.g_exc_error THEN
1837: x_return_status := fnd_api.g_ret_sts_error;
1838: END get_cz_txn_details;
1839:
1840: --
1833: debug(' txn_eav_tbl :'||x_txn_eav_tbl.COUNT);
1834:
1835: EXCEPTION
1836: WHEN fnd_api.g_exc_error THEN
1837: x_return_status := fnd_api.g_ret_sts_error;
1838: END get_cz_txn_details;
1839:
1840: --
1841: --
1859: l_msg_count number;
1860: l_msg_data varchar2(2000);
1861:
1862: BEGIN
1863: x_return_status := fnd_api.g_ret_sts_success;
1864: api_log('get_config_keys_for_order');
1865:
1866: FOR keys_rec IN keys_cur
1867: LOOP
1874:
1875: END LOOP;
1876:
1877: EXCEPTION
1878: WHEN fnd_api.g_exc_error THEN
1879: x_return_status := fnd_api.g_ret_sts_error;
1880: END get_config_keys_for_order;
1881:
1882: --
1875: END LOOP;
1876:
1877: EXCEPTION
1878: WHEN fnd_api.g_exc_error THEN
1879: x_return_status := fnd_api.g_ret_sts_error;
1880: END get_config_keys_for_order;
1881:
1882: --
1883: --
1897: l_txn_ii_rltns_tbl csi_t_datastructures_grp.txn_ii_rltns_tbl;
1898: l_txn_eav_tbl csi_t_datastructures_grp.txn_ext_attrib_vals_tbl;
1899:
1900: l_order_session_keys csi_utility_grp.config_session_keys;
1901: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1902:
1903: x_ind binary_integer := 0;
1904:
1905: BEGIN
1903: x_ind binary_integer := 0;
1904:
1905: BEGIN
1906:
1907: x_return_status := fnd_api.g_ret_sts_success;
1908: api_log('get_all_txn_rltns_for_order');
1909:
1910: -- get all the session keys for the order using the header_id
1911: get_config_keys_for_order(
1912: p_header_id => p_header_id,
1913: x_config_session_keys => l_order_session_keys,
1914: x_return_status => l_return_status);
1915:
1916: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1917: RAISE fnd_api.g_exc_error;
1918: END IF;
1919:
1920: IF l_order_session_keys.COUNT > 0 THEN
1913: x_config_session_keys => l_order_session_keys,
1914: x_return_status => l_return_status);
1915:
1916: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1917: RAISE fnd_api.g_exc_error;
1918: END IF;
1919:
1920: IF l_order_session_keys.COUNT > 0 THEN
1921: FOR l_ind IN l_order_session_keys.FIRST .. l_order_session_keys.LAST
1931: x_txn_ii_rltns_tbl => l_txn_ii_rltns_tbl,
1932: x_txn_eav_tbl => l_txn_eav_tbl,
1933: x_return_status => l_return_status);
1934:
1935: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1936: RAISE fnd_api.g_exc_error;
1937: END IF;
1938:
1939: IF l_txn_ii_rltns_tbl.COUNT > 0 THEN
1932: x_txn_eav_tbl => l_txn_eav_tbl,
1933: x_return_status => l_return_status);
1934:
1935: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1936: RAISE fnd_api.g_exc_error;
1937: END IF;
1938:
1939: IF l_txn_ii_rltns_tbl.COUNT > 0 THEN
1940: FOR l_ii_ind IN l_txn_ii_rltns_tbl.FIRST .. l_txn_ii_rltns_tbl.LAST
1949: END LOOP;
1950: END IF;
1951:
1952: EXCEPTION
1953: WHEN fnd_api.g_exc_error THEN
1954: x_return_status := fnd_api.g_ret_sts_error;
1955: END get_all_txn_rltns_for_order;
1956:
1957: --
1950: END IF;
1951:
1952: EXCEPTION
1953: WHEN fnd_api.g_exc_error THEN
1954: x_return_status := fnd_api.g_ret_sts_error;
1955: END get_all_txn_rltns_for_order;
1956:
1957: --
1958: --
1973: l_already_processed boolean := FALSE;
1974: l_processing_status varchar2(30);
1975:
1976: l_dummy varchar2(1);
1977: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1978:
1979: BEGIN
1980:
1981: x_return_status := fnd_api.g_ret_sts_success;
1977: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1978:
1979: BEGIN
1980:
1981: x_return_status := fnd_api.g_ret_sts_success;
1982: api_log('filter_relations');
1983:
1984: l_rltns_tbl := px_txn_ii_rltns_tbl;
1985:
2126: END IF;
2127:
2128: px_txn_ii_rltns_tbl := l_new_rltns_tbl;
2129: EXCEPTION
2130: WHEN fnd_api.g_exc_error THEN
2131: x_return_status := fnd_api.g_ret_sts_error;
2132: END filter_relations;
2133:
2134: --
2127:
2128: px_txn_ii_rltns_tbl := l_new_rltns_tbl;
2129: EXCEPTION
2130: WHEN fnd_api.g_exc_error THEN
2131: x_return_status := fnd_api.g_ret_sts_error;
2132: END filter_relations;
2133:
2134: --
2135: --
2174: l_msg_data varchar2(2000);
2175:
2176: BEGIN
2177:
2178: x_return_status := fnd_api.g_ret_sts_success;
2179: api_log('get_cz_relations');
2180:
2181: l_tld_tbl := px_txn_line_dtl_tbl;
2182:
2187: x_config_session_key => l_line_session_key,
2188: x_return_status => l_return_status,
2189: x_return_message => l_return_message);
2190:
2191: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2192: RAISE fnd_api.g_exc_error;
2193: END IF;
2194:
2195: get_cz_txn_details(
2188: x_return_status => l_return_status,
2189: x_return_message => l_return_message);
2190:
2191: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2192: RAISE fnd_api.g_exc_error;
2193: END IF;
2194:
2195: get_cz_txn_details(
2196: p_config_session_key => l_line_session_key,
2202: x_txn_ii_rltns_tbl => l_txn_ii_rltns_tbl,
2203: x_txn_eav_tbl => l_txn_eav_tbl,
2204: x_return_status => l_return_status);
2205:
2206: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2207: RAISE fnd_api.g_exc_error;
2208: END IF;
2209:
2210: -- identify the txn line detail record that matches the current om line
2203: x_txn_eav_tbl => l_txn_eav_tbl,
2204: x_return_status => l_return_status);
2205:
2206: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2207: RAISE fnd_api.g_exc_error;
2208: END IF;
2209:
2210: -- identify the txn line detail record that matches the current om line
2211: IF l_txn_line_dtl_tbl.COUNT > 0 THEN
2249:
2250: IF NOT(l_source_identified) THEN
2251: -- message source could not identified in the cz_txn_detail
2252: debug('source is not identified...');
2253: RAISE fnd_api.g_exc_error;
2254: END IF;
2255:
2256: dump_instance_key(l_src_instance_key);
2257:
2263: p_transaction_line_id => l_txn_line_rec.transaction_line_id,
2264: px_txn_ii_rltns_tbl => l_filtered_rltns_tbl,
2265: x_return_status => l_return_status);
2266:
2267: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2268: RAISE fnd_api.g_exc_error;
2269: END IF;
2270:
2271: -- return the filtered txn_ii_relation src_line detail and
2264: px_txn_ii_rltns_tbl => l_filtered_rltns_tbl,
2265: x_return_status => l_return_status);
2266:
2267: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2268: RAISE fnd_api.g_exc_error;
2269: END IF;
2270:
2271: -- return the filtered txn_ii_relation src_line detail and
2272:
2293: -- coming from build_shtd_tbl.
2294: -- Following instance_id assignment should be made based on instance_id value.
2295: --
2296: IF l_tld_tbl(l_ind).instance_id IS NULL OR
2297: l_tld_tbl(l_ind).instance_id = FND_API.G_MISS_NUM THEN
2298: IF l_src_tld_rec.instance_id IS NOT NULL
2299: AND
2300: l_src_tld_rec.instance_id <> FND_API.G_MISS_NUM
2301: THEN
2296: IF l_tld_tbl(l_ind).instance_id IS NULL OR
2297: l_tld_tbl(l_ind).instance_id = FND_API.G_MISS_NUM THEN
2298: IF l_src_tld_rec.instance_id IS NOT NULL
2299: AND
2300: l_src_tld_rec.instance_id <> FND_API.G_MISS_NUM
2301: THEN
2302: l_tld_tbl(l_ind).instance_id := l_src_tld_rec.instance_id;
2303: l_tld_tbl(l_ind).instance_exists_flag := 'Y';
2304: ELSE
2311: AND config_inst_item_id = l_tld_tbl(l_ind).config_inst_item_id;
2312: l_tld_tbl(l_ind).instance_exists_flag := 'Y';
2313: EXCEPTION
2314: WHEN no_data_found THEN
2315: l_tld_tbl(l_ind).instance_id := fnd_api.g_miss_num;
2316: l_tld_tbl(l_ind).instance_exists_flag := 'N';
2317: END;
2318: END IF;
2319: END IF;
2321: -- Fixed for Bug 4381930, Moved the Instance_id Query to above
2322: -- and assign the cz values if instance_id is existing, re-configuration case
2323: -- else take the values build from order or user entered.
2324:
2325: IF nvl(l_tld_tbl(l_ind).instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
2326:
2327: l_tld_tbl(l_ind).location_type_code := l_src_tld_rec.location_type_code;
2328: l_tld_tbl(l_ind).location_id := l_src_tld_rec.location_id;
2329: -- Added for partner ordering
2333: -- Bug 4633376 CZ always passes the location info for re-configuration. Hence, inorder to
2334: -- distinguish between first time configuration and re-configuration, we use the instance_id.
2335: --
2336: ELSE
2337: IF nvl(l_src_tld_rec.location_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
2338: AND
2339: nvl(l_src_tld_rec.location_type_code,fnd_api.g_miss_char) <> fnd_api.g_miss_char
2340: THEN
2341: l_tld_tbl(l_ind).location_type_code := l_src_tld_rec.location_type_code;
2335: --
2336: ELSE
2337: IF nvl(l_src_tld_rec.location_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
2338: AND
2339: nvl(l_src_tld_rec.location_type_code,fnd_api.g_miss_char) <> fnd_api.g_miss_char
2340: THEN
2341: l_tld_tbl(l_ind).location_type_code := l_src_tld_rec.location_type_code;
2342: l_tld_tbl(l_ind).location_id := l_src_tld_rec.location_id;
2343: END IF;
2341: l_tld_tbl(l_ind).location_type_code := l_src_tld_rec.location_type_code;
2342: l_tld_tbl(l_ind).location_id := l_src_tld_rec.location_id;
2343: END IF;
2344: --
2345: IF nvl(l_src_tld_rec.install_location_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
2346: AND
2347: nvl(l_src_tld_rec.install_location_type_code,fnd_api.g_miss_char) <> fnd_api.g_miss_char
2348: THEN
2349: l_tld_tbl(l_ind).install_location_type_code := l_src_tld_rec.install_location_type_code;
2343: END IF;
2344: --
2345: IF nvl(l_src_tld_rec.install_location_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
2346: AND
2347: nvl(l_src_tld_rec.install_location_type_code,fnd_api.g_miss_char) <> fnd_api.g_miss_char
2348: THEN
2349: l_tld_tbl(l_ind).install_location_type_code := l_src_tld_rec.install_location_type_code;
2350: l_tld_tbl(l_ind).install_location_id := l_src_tld_rec.install_location_id;
2351: END IF;
2354: -- srramakr Bug 4665537 TSO with Equipment.
2355: -- Inventory Revision and organization_id could come from WSH which is what we need to take.
2356: --
2357: IF l_tld_tbl(l_ind).inventory_revision IS NOT NULL AND
2358: l_tld_tbl(l_ind).inventory_revision = fnd_api.g_miss_char THEN
2359: l_tld_tbl(l_ind).inventory_revision := l_src_tld_rec.inventory_revision;
2360: END IF;
2361: --
2362: IF nvl(l_tld_tbl(l_ind).inv_organization_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
2358: l_tld_tbl(l_ind).inventory_revision = fnd_api.g_miss_char THEN
2359: l_tld_tbl(l_ind).inventory_revision := l_src_tld_rec.inventory_revision;
2360: END IF;
2361: --
2362: IF nvl(l_tld_tbl(l_ind).inv_organization_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
2363: l_tld_tbl(l_ind).inv_organization_id := l_src_tld_rec.inv_organization_id;
2364: END IF;
2365: --
2366: l_tld_tbl(l_ind).source_txn_line_detail_id := l_src_tld_rec.txn_line_detail_id;
2370: LOOP
2371: IF l_txn_eav_tbl(l_eav_ind).txn_line_detail_id = l_src_tld_rec.txn_line_detail_id
2372: THEN
2373: l_txn_eav_tbl(l_eav_ind).txn_line_details_index := l_ind;
2374: l_txn_eav_tbl(l_eav_ind).txn_line_detail_id := fnd_api.g_miss_num;
2375: l_txn_eav_tbl(l_eav_ind).txn_attrib_detail_id := fnd_api.g_miss_num;
2376: END IF;
2377: END LOOP;
2378: END IF;
2371: IF l_txn_eav_tbl(l_eav_ind).txn_line_detail_id = l_src_tld_rec.txn_line_detail_id
2372: THEN
2373: l_txn_eav_tbl(l_eav_ind).txn_line_details_index := l_ind;
2374: l_txn_eav_tbl(l_eav_ind).txn_line_detail_id := fnd_api.g_miss_num;
2375: l_txn_eav_tbl(l_eav_ind).txn_attrib_detail_id := fnd_api.g_miss_num;
2376: END IF;
2377: END LOOP;
2378: END IF;
2379: /* Begin fix for Bug 3502896 */
2387: AND config_inst_item_id = l_tld_tbl(l_ind).config_inst_item_id;
2388: l_tld_tbl(l_ind).instance_exists_flag := 'Y';
2389: EXCEPTION
2390: WHEN no_data_found THEN
2391: l_tld_tbl(l_ind).instance_id := fnd_api.g_miss_num;
2392: l_tld_tbl(l_ind).instance_exists_flag := 'N';
2393: fnd_message.set_name('CSI','CSI_TXN_CZ_INVALID_DATA');
2394: fnd_message.set_token('INST_HDR_ID',l_tld_tbl(l_ind).config_inst_hdr_id);
2395: fnd_message.set_token('INST_REV_NBR',l_tld_tbl(l_ind).config_inst_rev_num);
2394: fnd_message.set_token('INST_HDR_ID',l_tld_tbl(l_ind).config_inst_hdr_id);
2395: fnd_message.set_token('INST_REV_NBR',l_tld_tbl(l_ind).config_inst_rev_num);
2396: fnd_message.set_token('CONFIG_ITEM_ID',l_tld_tbl(l_ind).config_inst_item_id);
2397: fnd_msg_pub.add;
2398: RAISE fnd_api.g_exc_error;
2399: END;
2400: /* End fix for Bug 3502896 */
2401: END IF;
2402: END LOOP;
2407: x_txn_ii_rltns_tbl := l_filtered_rltns_tbl;
2408: x_txn_eav_tbl := l_txn_eav_tbl;
2409:
2410: EXCEPTION
2411: WHEN fnd_api.g_exc_error THEN
2412: x_return_status := fnd_api.g_ret_sts_error;
2413: END get_cz_relations;
2414: --
2415: --
2408: x_txn_eav_tbl := l_txn_eav_tbl;
2409:
2410: EXCEPTION
2411: WHEN fnd_api.g_exc_error THEN
2412: x_return_status := fnd_api.g_ret_sts_error;
2413: END get_cz_relations;
2414: --
2415: --
2416: --
2424: l_party_query_rec csi_datastructures_pub.party_query_rec;
2425: l_pty_acct_query_rec csi_datastructures_pub.party_account_query_rec;
2426:
2427: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
2428: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2429: l_msg_count number;
2430: l_msg_data varchar2(2000);
2431:
2432: BEGIN
2430: l_msg_data varchar2(2000);
2431:
2432: BEGIN
2433:
2434: x_return_status := fnd_api.g_ret_sts_success;
2435: api_log('get_instances_for_source');
2436:
2437: l_inst_query_rec.inventory_item_id := p_source_line_rec.inventory_item_id;
2438: l_inst_query_rec.last_oe_order_line_id := p_source_line_rec.source_line_id;
2445: p_pkg_name => 'csi_item_instance_pub');
2446:
2447: csi_item_instance_pub.get_item_instances(
2448: p_api_version => 1.0,
2449: p_commit => fnd_api.g_false,
2450: p_init_msg_list => fnd_api.g_true,
2451: p_validation_level => fnd_api.g_valid_level_full,
2452: p_instance_query_rec => l_inst_query_rec,
2453: p_party_query_rec => l_party_query_rec,
2446:
2447: csi_item_instance_pub.get_item_instances(
2448: p_api_version => 1.0,
2449: p_commit => fnd_api.g_false,
2450: p_init_msg_list => fnd_api.g_true,
2451: p_validation_level => fnd_api.g_valid_level_full,
2452: p_instance_query_rec => l_inst_query_rec,
2453: p_party_query_rec => l_party_query_rec,
2454: p_account_query_rec => l_pty_acct_query_rec,
2447: csi_item_instance_pub.get_item_instances(
2448: p_api_version => 1.0,
2449: p_commit => fnd_api.g_false,
2450: p_init_msg_list => fnd_api.g_true,
2451: p_validation_level => fnd_api.g_valid_level_full,
2452: p_instance_query_rec => l_inst_query_rec,
2453: p_party_query_rec => l_party_query_rec,
2454: p_account_query_rec => l_pty_acct_query_rec,
2455: p_transaction_id => null,
2452: p_instance_query_rec => l_inst_query_rec,
2453: p_party_query_rec => l_party_query_rec,
2454: p_account_query_rec => l_pty_acct_query_rec,
2455: p_transaction_id => null,
2456: p_resolve_id_columns => fnd_api.g_false,
2457: p_active_instance_only => fnd_api.g_true,
2458: x_instance_header_tbl => l_instance_hdr_tbl,
2459: x_return_status => l_return_status,
2460: x_msg_count => l_msg_count,
2453: p_party_query_rec => l_party_query_rec,
2454: p_account_query_rec => l_pty_acct_query_rec,
2455: p_transaction_id => null,
2456: p_resolve_id_columns => fnd_api.g_false,
2457: p_active_instance_only => fnd_api.g_true,
2458: x_instance_header_tbl => l_instance_hdr_tbl,
2459: x_return_status => l_return_status,
2460: x_msg_count => l_msg_count,
2461: x_msg_data => l_msg_data);
2459: x_return_status => l_return_status,
2460: x_msg_count => l_msg_count,
2461: x_msg_data => l_msg_data);
2462:
2463: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2464: RAISE fnd_api.g_exc_error;
2465: END IF;
2466:
2467: -- call get item instances here
2460: x_msg_count => l_msg_count,
2461: x_msg_data => l_msg_data);
2462:
2463: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2464: RAISE fnd_api.g_exc_error;
2465: END IF;
2466:
2467: -- call get item instances here
2468: csi_utl_pkg.make_non_header_tbl(
2469: p_instance_header_tbl => l_instance_hdr_tbl,
2470: x_instance_tbl => x_instance_tbl,
2471: x_return_status => l_return_status);
2472:
2473: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2474: RAISE fnd_api.g_exc_error;
2475: END IF;
2476:
2477: EXCEPTION
2470: x_instance_tbl => x_instance_tbl,
2471: x_return_status => l_return_status);
2472:
2473: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2474: RAISE fnd_api.g_exc_error;
2475: END IF;
2476:
2477: EXCEPTION
2478: WHEN fnd_api.g_exc_error THEN
2474: RAISE fnd_api.g_exc_error;
2475: END IF;
2476:
2477: EXCEPTION
2478: WHEN fnd_api.g_exc_error THEN
2479: x_return_status := fnd_api.g_ret_sts_error;
2480: END get_instances_for_source;
2481:
2482:
2475: END IF;
2476:
2477: EXCEPTION
2478: WHEN fnd_api.g_exc_error THEN
2479: x_return_status := fnd_api.g_ret_sts_error;
2480: END get_instances_for_source;
2481:
2482:
2483: --
2493: l_parent_found boolean := FALSE;
2494: l_parent_line_rec source_line_rec;
2495:
2496: l_parent_instance_tbl csi_datastructures_pub.instance_tbl;
2497: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2498:
2499: BEGIN
2500:
2501: x_return_status := fnd_api.g_ret_sts_success;
2497: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2498:
2499: BEGIN
2500:
2501: x_return_status := fnd_api.g_ret_sts_success;
2502: api_log('get_om_relations');
2503:
2504: -- get the ib trackable parent
2505: get_ib_trackable_parent(
2507: x_parent_found => l_parent_found,
2508: x_parent_line_rec => l_parent_line_rec,
2509: x_return_status => l_return_status);
2510:
2511: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2512: RAISE fnd_api.g_exc_error;
2513: END IF;
2514:
2515: IF l_parent_found THEN
2508: x_parent_line_rec => l_parent_line_rec,
2509: x_return_status => l_return_status);
2510:
2511: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2512: RAISE fnd_api.g_exc_error;
2513: END IF;
2514:
2515: IF l_parent_found THEN
2516:
2518: p_source_line_rec => l_parent_line_rec,
2519: x_instance_tbl => l_parent_instance_tbl,
2520: x_return_status => l_return_status);
2521:
2522: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2523: RAISE fnd_api.g_exc_error;
2524: END IF;
2525:
2526: IF l_parent_instance_tbl.count > 0 THEN
2519: x_instance_tbl => l_parent_instance_tbl,
2520: x_return_status => l_return_status);
2521:
2522: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2523: RAISE fnd_api.g_exc_error;
2524: END IF;
2525:
2526: IF l_parent_instance_tbl.count > 0 THEN
2527: null;
2538: --if not then do not worry about building relations
2539:
2540:
2541: EXCEPTION
2542: WHEN fnd_api.g_exc_error THEN
2543: x_return_status := fnd_api.g_ret_sts_error;
2544: END get_om_relations;
2545:
2546:
2539:
2540:
2541: EXCEPTION
2542: WHEN fnd_api.g_exc_error THEN
2543: x_return_status := fnd_api.g_ret_sts_error;
2544: END get_om_relations;
2545:
2546:
2547: /* this routine takes the source line info and the current entered source txn
2578: l_msg_data varchar2(2000);
2579:
2580: BEGIN
2581:
2582: x_return_status := fnd_api.g_ret_sts_success;
2583: api_log('get_relations');
2584:
2585: -- change to an appropriate condition
2586: IF p_source_line_rec.config_header_id is not null THEN
2600: x_txn_ii_rltns_tbl => l_txn_ii_rltns_tbl,
2601: x_txn_eav_tbl => x_txn_eav_tbl,
2602: x_return_status => l_return_status);
2603:
2604: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2605: RAISE fnd_api.g_exc_error;
2606: END IF;
2607:
2608: ELSE
2601: x_txn_eav_tbl => x_txn_eav_tbl,
2602: x_return_status => l_return_status);
2603:
2604: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2605: RAISE fnd_api.g_exc_error;
2606: END IF;
2607:
2608: ELSE
2609:
2612: px_txn_line_dtl_tbl => px_txn_line_dtl_tbl,
2613: x_txn_ii_rltns_tbl => l_txn_ii_rltns_tbl,
2614: x_return_status => l_return_status);
2615:
2616: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2617: RAISE fnd_api.g_exc_error;
2618: END IF;
2619:
2620: END IF;
2613: x_txn_ii_rltns_tbl => l_txn_ii_rltns_tbl,
2614: x_return_status => l_return_status);
2615:
2616: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2617: RAISE fnd_api.g_exc_error;
2618: END IF;
2619:
2620: END IF;
2621:
2621:
2622: x_txn_ii_rltns_tbl := l_txn_ii_rltns_tbl;
2623:
2624: EXCEPTION
2625: WHEN fnd_api.g_exc_error THEN
2626: x_return_status := fnd_api.g_ret_sts_error;
2627: END get_relations;
2628:
2629: PROCEDURE get_extended_attrib_values(
2622: x_txn_ii_rltns_tbl := l_txn_ii_rltns_tbl;
2623:
2624: EXCEPTION
2625: WHEN fnd_api.g_exc_error THEN
2626: x_return_status := fnd_api.g_ret_sts_error;
2627: END get_relations;
2628:
2629: PROCEDURE get_extended_attrib_values(
2630: p_source_id IN number,
2635: x_txn_eav_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
2636: x_return_status OUT NOCOPY varchar2)
2637: IS
2638: BEGIN
2639: x_return_status := fnd_api.g_ret_sts_success;
2640: api_log('get_extended_attrib_values');
2641: EXCEPTION
2642: WHEN fnd_api.g_exc_error THEN
2643: x_return_status := fnd_api.g_ret_sts_error;
2638: BEGIN
2639: x_return_status := fnd_api.g_ret_sts_success;
2640: api_log('get_extended_attrib_values');
2641: EXCEPTION
2642: WHEN fnd_api.g_exc_error THEN
2643: x_return_status := fnd_api.g_ret_sts_error;
2644: END get_extended_attrib_values;
2645:
2646: PROCEDURE get_order_line_source_info(
2639: x_return_status := fnd_api.g_ret_sts_success;
2640: api_log('get_extended_attrib_values');
2641: EXCEPTION
2642: WHEN fnd_api.g_exc_error THEN
2643: x_return_status := fnd_api.g_ret_sts_error;
2644: END get_extended_attrib_values;
2645:
2646: PROCEDURE get_order_line_source_info(
2647: p_order_line_id IN number,
2662: l_drop_ship_txn_type_id number := 30;
2663:
2664:
2665: BEGIN
2666: x_return_status := fnd_api.g_ret_sts_success;
2667: api_log('get_order_line_source_info');
2668:
2669: BEGIN
2670: SELECT * INTO l_line_rec
2680:
2681: EXCEPTION
2682: WHEN no_data_found THEN
2683: -- stack error message
2684: RAISE fnd_api.g_exc_error;
2685: END;
2686:
2687: x_source_header_rec.source_header_id := l_hdr_rec.header_id;
2688: x_source_header_rec.source_header_ref := l_hdr_rec.order_number;
2760: IF l_partner_rec.IB_OWNER = 'END_CUSTOMER' THEN
2761: IF l_partner_rec.END_CUSTOMER_ID is null Then
2762: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2763: fnd_msg_pub.add;
2764: raise fnd_api.g_exc_error;
2765: ELSE
2766: l_ib_owner := l_partner_rec.ib_owner;
2767: x_source_line_rec.owner_party_account_id := l_partner_rec.end_customer_id;
2768: END IF;
2768: END IF;
2769: ELSIF l_partner_rec.IB_OWNER = 'INSTALL_BASE'
2770: THEN
2771: l_ib_owner := l_partner_rec.ib_owner;
2772: x_source_line_rec.owner_party_account_id := fnd_api.g_miss_num;
2773: ELSE
2774: x_source_line_rec.owner_party_account_id := x_source_line_rec.owner_party_account_id;
2775: END IF;
2776:
2782: IF l_partner_rec.end_customer_site_use_id is null
2783: THEN
2784: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2785: fnd_msg_pub.add;
2786: raise fnd_api.g_exc_error;
2787: ELSE
2788: x_source_line_rec.ib_install_loc_id := l_partner_rec.end_customer_site_use_id;
2789: END IF;
2790: ELSIF x_source_line_rec.ib_install_loc = 'SHIP_TO'
2792: IF x_source_line_rec.ship_to_address_id is null
2793: THEN
2794: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2795: fnd_msg_pub.add;
2796: raise fnd_api.g_exc_error;
2797: ELSE
2798: x_source_line_rec.ib_install_loc_id := x_source_line_rec.ship_to_address_id;
2799: END IF;
2800: ELSIF x_source_line_rec.ib_install_loc = 'SOLD_TO'
2802: IF l_partner_rec.SOLD_TO_SITE_USE_ID is null -- 3412544 x_source_line_rec.sold_to_org_id is null
2803: THEN
2804: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2805: fnd_msg_pub.add;
2806: raise fnd_api.g_exc_error;
2807: ELSE
2808: x_source_line_rec.ib_install_loc_id := l_partner_rec.SOLD_TO_SITE_USE_ID; -- 3412544 x_source_line_rec.sold_to_org_id;
2809: END IF;
2810: ELSIF x_source_line_rec.ib_install_loc = 'DELIVER_TO'
2812: IF x_source_line_rec.deliver_to_org_id is null
2813: THEN
2814: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2815: fnd_msg_pub.add;
2816: raise fnd_api.g_exc_error;
2817: ELSE
2818: x_source_line_rec.ib_install_loc_id := x_source_line_rec.deliver_to_org_id;
2819: END IF;
2820: ELSIF x_source_line_rec.ib_install_loc = 'BILL_TO'
2822: IF x_source_line_rec.bill_to_address_id is null
2823: THEN
2824: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2825: fnd_msg_pub.add;
2826: raise fnd_api.g_exc_error;
2827: ELSE
2828: x_source_line_rec.ib_install_loc_id := x_source_line_rec.bill_to_address_id;
2829: END IF;
2830: ELSIF x_source_line_rec.ib_install_loc = 'INSTALL_BASE'
2828: x_source_line_rec.ib_install_loc_id := x_source_line_rec.bill_to_address_id;
2829: END IF;
2830: ELSIF x_source_line_rec.ib_install_loc = 'INSTALL_BASE'
2831: THEN
2832: x_source_line_rec.ib_install_loc_id := fnd_api.g_miss_num;
2833: END IF;
2834: ELSE
2835: x_source_line_rec.ib_install_loc_id := x_source_line_rec.ship_to_address_id;
2836: END IF;
2843: IF l_partner_rec.end_customer_site_use_id is null
2844: THEN
2845: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2846: fnd_msg_pub.add;
2847: raise fnd_api.g_exc_error;
2848: ELSE
2849: x_source_line_rec.ib_current_loc_id := l_partner_rec.end_customer_site_use_id;
2850: END IF;
2851: ELSIF x_source_line_rec.ib_current_loc = 'SHIP_TO'
2853: IF x_source_line_rec.ship_to_address_id is null
2854: THEN
2855: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2856: fnd_msg_pub.add;
2857: raise fnd_api.g_exc_error;
2858: ELSE
2859: x_source_line_rec.ib_current_loc_id := x_source_line_rec.ship_to_address_id;
2860: END IF;
2861: ELSIF x_source_line_rec.ib_current_loc = 'SOLD_TO'
2863: IF l_partner_rec.SOLD_TO_SITE_USE_ID is null -- 3412544 x_source_line_rec.sold_to_org_id is null
2864: THEN
2865: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2866: fnd_msg_pub.add;
2867: raise fnd_api.g_exc_error;
2868: ELSE
2869: x_source_line_rec.ib_current_loc_id := l_partner_rec.SOLD_TO_SITE_USE_ID; -- 3412544 x_source_line_rec.sold_to_org_id;
2870: END IF;
2871: ELSIF x_source_line_rec.ib_current_loc = 'DELIVER_TO'
2873: IF x_source_line_rec.deliver_to_org_id is null
2874: THEN
2875: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2876: fnd_msg_pub.add;
2877: raise fnd_api.g_exc_error;
2878: ELSE
2879: x_source_line_rec.ib_current_loc_id := x_source_line_rec.deliver_to_org_id;
2880: END IF;
2881: ELSIF x_source_line_rec.ib_current_loc = 'BILL_TO'
2883: IF x_source_line_rec.bill_to_address_id is null
2884: THEN
2885: fnd_message.set_name('CSI','CSI_PARTNER_VAL_MISSING');
2886: fnd_msg_pub.add;
2887: raise fnd_api.g_exc_error;
2888: ELSE
2889: x_source_line_rec.ib_current_loc_id := x_source_line_rec.bill_to_address_id;
2890: END IF;
2891: ELSIF x_source_line_rec.ib_current_loc = 'INSTALL_BASE'
2889: x_source_line_rec.ib_current_loc_id := x_source_line_rec.bill_to_address_id;
2890: END IF;
2891: ELSIF x_source_line_rec.ib_current_loc = 'INSTALL_BASE'
2892: THEN
2893: x_source_line_rec.ib_current_loc_id := fnd_api.g_miss_num;
2894: END IF;
2895: ELSE
2896: x_source_line_rec.ib_current_loc_id := x_source_line_rec.ship_to_address_id;
2897: END IF;
2958: AND hzr.object_table_name = 'HZ_PARTIES'
2959: AND hzr.directional_flag = 'F';
2960: END IF;
2961: EXCEPTION
2962: WHEN fnd_api.g_exc_error THEN
2963: x_return_status := fnd_api.g_ret_sts_error;
2964: END get_order_line_source_info;
2965:
2966:
2959: AND hzr.directional_flag = 'F';
2960: END IF;
2961: EXCEPTION
2962: WHEN fnd_api.g_exc_error THEN
2963: x_return_status := fnd_api.g_ret_sts_error;
2964: END get_order_line_source_info;
2965:
2966:
2967: PROCEDURE get_wsh_source_info(
2996: FROM wsh_delivery_details_ob_grp_v
2997: WHERE delivery_detail_id = p_src_line_id;
2998:
2999: BEGIN
3000: x_return_status := fnd_api.g_ret_sts_success;
3001: api_log('get_wsh_source_info');
3002:
3003: FOR wsh_rec IN wsh_cur (p_source_line_id)
3004: LOOP
3071: debug(' owner_account_id : '||x_source_line_rec.owner_party_account_id);
3072: debug(' owner_party_id : '||x_source_line_rec.owner_party_id);
3073:
3074: EXCEPTION
3075: WHEN fnd_api.g_exc_error THEN
3076: x_return_status := fnd_api.g_ret_sts_error;
3077: END get_wsh_source_info;
3078:
3079: --
3072: debug(' owner_party_id : '||x_source_line_rec.owner_party_id);
3073:
3074: EXCEPTION
3075: WHEN fnd_api.g_exc_error THEN
3076: x_return_status := fnd_api.g_ret_sts_error;
3077: END get_wsh_source_info;
3078:
3079: --
3080: --
3086: x_source_line_rec OUT NOCOPY source_line_rec,
3087: x_return_status OUT NOCOPY varchar)
3088: IS
3089:
3090: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3091: l_source_header_rec source_header_rec;
3092: l_source_line_rec source_line_rec;
3093:
3094: BEGIN
3092: l_source_line_rec source_line_rec;
3093:
3094: BEGIN
3095:
3096: x_return_status := fnd_api.g_ret_sts_success;
3097: api_log('get_source_info');
3098:
3099: IF p_source_table = g_om_source_table THEN
3100:
3103: x_source_header_rec => l_source_header_rec,
3104: x_source_line_rec => l_source_line_rec,
3105: x_return_status => l_return_status);
3106:
3107: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3108: RAISE fnd_api.g_exc_error;
3109: END IF;
3110:
3111: l_source_line_rec.source_table := g_om_source_table;
3104: x_source_line_rec => l_source_line_rec,
3105: x_return_status => l_return_status);
3106:
3107: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3108: RAISE fnd_api.g_exc_error;
3109: END IF;
3110:
3111: l_source_line_rec.source_table := g_om_source_table;
3112:
3117: x_source_header_rec => l_source_header_rec,
3118: x_source_line_rec => l_source_line_rec,
3119: x_return_status => l_return_status);
3120:
3121: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3122: RAISE fnd_api.g_exc_error;
3123: END IF;
3124:
3125: l_source_line_rec.source_table := g_oke_source_table;
3118: x_source_line_rec => l_source_line_rec,
3119: x_return_status => l_return_status);
3120:
3121: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3122: RAISE fnd_api.g_exc_error;
3123: END IF;
3124:
3125: l_source_line_rec.source_table := g_oke_source_table;
3126:
3129: x_source_header_rec := l_source_header_rec;
3130: x_source_line_rec := l_source_line_rec;
3131:
3132: EXCEPTION
3133: WHEN fnd_api.g_exc_error THEN
3134: x_return_status := fnd_api.g_ret_sts_error;
3135: END get_source_info;
3136:
3137: /* This routine derives the location information for a NETWORK_LINK */
3130: x_source_line_rec := l_source_line_rec;
3131:
3132: EXCEPTION
3133: WHEN fnd_api.g_exc_error THEN
3134: x_return_status := fnd_api.g_ret_sts_error;
3135: END get_source_info;
3136:
3137: /* This routine derives the location information for a NETWORK_LINK */
3138: /* A partner is identified from the connected to relationship info */
3166: l_location_id number := null;
3167: l_location_type_code varchar2(30);
3168:
3169: BEGIN
3170: x_return_status := fnd_api.g_ret_sts_success;
3171: api_log('get_network_link_location');
3172:
3173: FOR partner_rec IN partner_cur
3174: LOOP
3213: fnd_message.set_token('INST_HDR_ID', p_instance_key.inst_hdr_id);
3214: fnd_message.set_token('INST_ITEM_ID', p_instance_key.inst_item_id);
3215: fnd_message.set_token('INST_REV_NUM', p_instance_key.inst_rev_num);
3216: fnd_msg_pub.add;
3217: RAISE fnd_api.g_exc_error;
3218: END IF;
3219:
3220: debug(' location_type_code :'||l_location_type_code);
3221: debug(' location_id :'||l_location_id);
3223: x_location_type_code := l_location_type_code;
3224: x_location_id := l_location_id;
3225:
3226: EXCEPTION
3227: WHEN fnd_api.g_exc_error THEN
3228: x_return_status := fnd_api.g_ret_sts_error;
3229: END get_network_link_location;
3230:
3231:
3224: x_location_id := l_location_id;
3225:
3226: EXCEPTION
3227: WHEN fnd_api.g_exc_error THEN
3228: x_return_status := fnd_api.g_ret_sts_error;
3229: END get_network_link_location;
3230:
3231:
3232: --
3262: pa_ind binary_integer := 0;
3263: eav_ind binary_integer := 0;
3264: ou_ind binary_integer := 0;
3265:
3266: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3267:
3268: -- Added as part of fix for Bug 2960049
3269: l_instance_usage_code varchar2(30);
3270: l_vld_organization_id number;
3272:
3273: BEGIN
3274: api_log('build_instance_set');
3275:
3276: x_return_status := fnd_api.g_ret_sts_success;
3277:
3278: IF p_index is not null THEN
3279:
3280: /*
3286: WHERE instance_id = p_txn_line_dtl_rec.instance_id;
3287:
3288: EXCEPTION
3289: WHEN no_data_found THEN
3290: l_vld_organization_id := fnd_api.g_miss_num;
3291: END;
3292: BEGIN
3293: SELECT inv_master_organization_id
3294: INTO l_inv_master_organization_id
3301: END;
3302: -- End bug fix for 9900096 (HYONLEE)
3303: */
3304:
3305: -- Added the nvl, fnd_api g_miss values to the p_txn_line_dtl_rec for Bug 3783088
3306: l_i_rec.instance_id := p_txn_line_dtl_rec.instance_id;
3307: l_i_rec.instance_number := fnd_api.g_miss_char;
3308: l_i_rec.external_reference := nvl(p_txn_line_dtl_rec.external_reference,fnd_api.g_miss_char);
3309: l_i_rec.inventory_item_id := p_txn_line_dtl_rec.inventory_item_id;
3303: */
3304:
3305: -- Added the nvl, fnd_api g_miss values to the p_txn_line_dtl_rec for Bug 3783088
3306: l_i_rec.instance_id := p_txn_line_dtl_rec.instance_id;
3307: l_i_rec.instance_number := fnd_api.g_miss_char;
3308: l_i_rec.external_reference := nvl(p_txn_line_dtl_rec.external_reference,fnd_api.g_miss_char);
3309: l_i_rec.inventory_item_id := p_txn_line_dtl_rec.inventory_item_id;
3310: l_i_rec.inventory_revision := nvl(p_txn_line_dtl_rec.inventory_revision,fnd_api.g_miss_char);
3311: -- Bug 9900096
3304:
3305: -- Added the nvl, fnd_api g_miss values to the p_txn_line_dtl_rec for Bug 3783088
3306: l_i_rec.instance_id := p_txn_line_dtl_rec.instance_id;
3307: l_i_rec.instance_number := fnd_api.g_miss_char;
3308: l_i_rec.external_reference := nvl(p_txn_line_dtl_rec.external_reference,fnd_api.g_miss_char);
3309: l_i_rec.inventory_item_id := p_txn_line_dtl_rec.inventory_item_id;
3310: l_i_rec.inventory_revision := nvl(p_txn_line_dtl_rec.inventory_revision,fnd_api.g_miss_char);
3311: -- Bug 9900096
3312: -- Only for configuratior use inv_organization_id in l_i_rec.inv_master_organization_id parameter
3306: l_i_rec.instance_id := p_txn_line_dtl_rec.instance_id;
3307: l_i_rec.instance_number := fnd_api.g_miss_char;
3308: l_i_rec.external_reference := nvl(p_txn_line_dtl_rec.external_reference,fnd_api.g_miss_char);
3309: l_i_rec.inventory_item_id := p_txn_line_dtl_rec.inventory_item_id;
3310: l_i_rec.inventory_revision := nvl(p_txn_line_dtl_rec.inventory_revision,fnd_api.g_miss_char);
3311: -- Bug 9900096
3312: -- Only for configuratior use inv_organization_id in l_i_rec.inv_master_organization_id parameter
3313: -- Other wise use pre existing code(before bug 8811152)
3314: IF ( p_csi_txn_rec.transaction_type_id=401 and p_csi_txn_rec.txn_sub_type_id=101 and p_source_line_rec.fulfilled_date is null) THEN
3312: -- Only for configuratior use inv_organization_id in l_i_rec.inv_master_organization_id parameter
3313: -- Other wise use pre existing code(before bug 8811152)
3314: IF ( p_csi_txn_rec.transaction_type_id=401 and p_csi_txn_rec.txn_sub_type_id=101 and p_source_line_rec.fulfilled_date is null) THEN
3315:
3316: l_i_rec.vld_organization_id := fnd_api.g_miss_num; -- Bug 8811152-Inv org ID passed by Configurator is Master org ID
3317: l_i_rec.inv_master_organization_id := p_txn_line_dtl_rec.inv_organization_id; -- Bug 8811152-Inv org ID passed by Configurator is Master org ID
3318:
3319: ELSE
3320:
3318:
3319: ELSE
3320:
3321: l_i_rec.vld_organization_id := p_txn_line_dtl_rec.inv_organization_id; -- Bug 8811152-Inv org ID passed by Configurator is Master org ID; EDITED: Bug 9900096 (no longer set to g_miss_num)
3322: l_i_rec.inv_master_organization_id := fnd_api.g_miss_num; -- Bug 8811152-Inv org ID passed by Configurator is Master org ID; EDITED: Bug 9900096 (queries value)
3323:
3324: END IF;
3325:
3326: l_i_rec.serial_number := p_txn_line_dtl_rec.serial_number;
3323:
3324: END IF;
3325:
3326: l_i_rec.serial_number := p_txn_line_dtl_rec.serial_number;
3327: l_i_rec.mfg_serial_number_flag := nvl(p_txn_line_dtl_rec.mfg_serial_number_flag,fnd_api.g_miss_char);
3328: l_i_rec.lot_number := nvl(p_txn_line_dtl_rec.lot_number,fnd_api.g_miss_char);
3329: l_i_rec.quantity := p_txn_line_dtl_rec.quantity;
3330: l_i_rec.unit_of_measure := p_txn_line_dtl_rec.unit_of_measure;
3331: l_i_rec.accounting_class_code := 'CUST_PROD';
3324: END IF;
3325:
3326: l_i_rec.serial_number := p_txn_line_dtl_rec.serial_number;
3327: l_i_rec.mfg_serial_number_flag := nvl(p_txn_line_dtl_rec.mfg_serial_number_flag,fnd_api.g_miss_char);
3328: l_i_rec.lot_number := nvl(p_txn_line_dtl_rec.lot_number,fnd_api.g_miss_char);
3329: l_i_rec.quantity := p_txn_line_dtl_rec.quantity;
3330: l_i_rec.unit_of_measure := p_txn_line_dtl_rec.unit_of_measure;
3331: l_i_rec.accounting_class_code := 'CUST_PROD';
3332: l_i_rec.instance_condition_id := nvl(p_txn_line_dtl_rec.item_condition_id,fnd_api.g_miss_num);
3328: l_i_rec.lot_number := nvl(p_txn_line_dtl_rec.lot_number,fnd_api.g_miss_char);
3329: l_i_rec.quantity := p_txn_line_dtl_rec.quantity;
3330: l_i_rec.unit_of_measure := p_txn_line_dtl_rec.unit_of_measure;
3331: l_i_rec.accounting_class_code := 'CUST_PROD';
3332: l_i_rec.instance_condition_id := nvl(p_txn_line_dtl_rec.item_condition_id,fnd_api.g_miss_num);
3333: l_i_rec.customer_view_flag := 'Y';
3334: l_i_rec.merchant_view_flag := 'Y';
3335: l_i_rec.sellable_flag := nvl(p_txn_line_dtl_rec.sellable_flag,fnd_api.g_miss_char);
3336: l_i_rec.system_id := nvl(p_txn_line_dtl_rec.csi_system_id,fnd_api.g_miss_num);
3331: l_i_rec.accounting_class_code := 'CUST_PROD';
3332: l_i_rec.instance_condition_id := nvl(p_txn_line_dtl_rec.item_condition_id,fnd_api.g_miss_num);
3333: l_i_rec.customer_view_flag := 'Y';
3334: l_i_rec.merchant_view_flag := 'Y';
3335: l_i_rec.sellable_flag := nvl(p_txn_line_dtl_rec.sellable_flag,fnd_api.g_miss_char);
3336: l_i_rec.system_id := nvl(p_txn_line_dtl_rec.csi_system_id,fnd_api.g_miss_num);
3337: l_i_rec.instance_type_code := nvl(p_txn_line_dtl_rec.instance_type_code,fnd_api.g_miss_char);
3338: l_i_rec.active_start_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3339: l_i_rec.active_end_date := nvl(p_txn_line_dtl_rec.active_end_date,fnd_api.g_miss_date);
3332: l_i_rec.instance_condition_id := nvl(p_txn_line_dtl_rec.item_condition_id,fnd_api.g_miss_num);
3333: l_i_rec.customer_view_flag := 'Y';
3334: l_i_rec.merchant_view_flag := 'Y';
3335: l_i_rec.sellable_flag := nvl(p_txn_line_dtl_rec.sellable_flag,fnd_api.g_miss_char);
3336: l_i_rec.system_id := nvl(p_txn_line_dtl_rec.csi_system_id,fnd_api.g_miss_num);
3337: l_i_rec.instance_type_code := nvl(p_txn_line_dtl_rec.instance_type_code,fnd_api.g_miss_char);
3338: l_i_rec.active_start_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3339: l_i_rec.active_end_date := nvl(p_txn_line_dtl_rec.active_end_date,fnd_api.g_miss_date);
3340: --Start - added for bug 8586745 FP for 8490723
3333: l_i_rec.customer_view_flag := 'Y';
3334: l_i_rec.merchant_view_flag := 'Y';
3335: l_i_rec.sellable_flag := nvl(p_txn_line_dtl_rec.sellable_flag,fnd_api.g_miss_char);
3336: l_i_rec.system_id := nvl(p_txn_line_dtl_rec.csi_system_id,fnd_api.g_miss_num);
3337: l_i_rec.instance_type_code := nvl(p_txn_line_dtl_rec.instance_type_code,fnd_api.g_miss_char);
3338: l_i_rec.active_start_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3339: l_i_rec.active_end_date := nvl(p_txn_line_dtl_rec.active_end_date,fnd_api.g_miss_date);
3340: --Start - added for bug 8586745 FP for 8490723
3341: IF(l_i_rec.active_start_date=fnd_api.g_miss_date AND l_i_rec.active_end_date<>fnd_api.g_miss_date) THEN
3334: l_i_rec.merchant_view_flag := 'Y';
3335: l_i_rec.sellable_flag := nvl(p_txn_line_dtl_rec.sellable_flag,fnd_api.g_miss_char);
3336: l_i_rec.system_id := nvl(p_txn_line_dtl_rec.csi_system_id,fnd_api.g_miss_num);
3337: l_i_rec.instance_type_code := nvl(p_txn_line_dtl_rec.instance_type_code,fnd_api.g_miss_char);
3338: l_i_rec.active_start_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3339: l_i_rec.active_end_date := nvl(p_txn_line_dtl_rec.active_end_date,fnd_api.g_miss_date);
3340: --Start - added for bug 8586745 FP for 8490723
3341: IF(l_i_rec.active_start_date=fnd_api.g_miss_date AND l_i_rec.active_end_date<>fnd_api.g_miss_date) THEN
3342: IF(to_date(l_i_rec.active_end_date,'DD-MM-YY HH24:MI')
3335: l_i_rec.sellable_flag := nvl(p_txn_line_dtl_rec.sellable_flag,fnd_api.g_miss_char);
3336: l_i_rec.system_id := nvl(p_txn_line_dtl_rec.csi_system_id,fnd_api.g_miss_num);
3337: l_i_rec.instance_type_code := nvl(p_txn_line_dtl_rec.instance_type_code,fnd_api.g_miss_char);
3338: l_i_rec.active_start_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3339: l_i_rec.active_end_date := nvl(p_txn_line_dtl_rec.active_end_date,fnd_api.g_miss_date);
3340: --Start - added for bug 8586745 FP for 8490723
3341: IF(l_i_rec.active_start_date=fnd_api.g_miss_date AND l_i_rec.active_end_date<>fnd_api.g_miss_date) THEN
3342: IF(to_date(l_i_rec.active_end_date,'DD-MM-YY HH24:MI')
3337: l_i_rec.instance_type_code := nvl(p_txn_line_dtl_rec.instance_type_code,fnd_api.g_miss_char);
3338: l_i_rec.active_start_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3339: l_i_rec.active_end_date := nvl(p_txn_line_dtl_rec.active_end_date,fnd_api.g_miss_date);
3340: --Start - added for bug 8586745 FP for 8490723
3341: IF(l_i_rec.active_start_date=fnd_api.g_miss_date AND l_i_rec.active_end_date<>fnd_api.g_miss_date) THEN
3342: IF(to_date(l_i_rec.active_end_date,'DD-MM-YY HH24:MI')
3344: END IF;
3345: l_i_rec.active_start_date :=l_i_rec.active_end_date;
3344: END IF;
3345: l_i_rec.active_start_date :=l_i_rec.active_end_date;
3346: end IF;
3347: --End - added for bug 8586745 FP for 8490723
3348: l_i_rec.location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3349: l_i_rec.location_id := nvl(p_txn_line_dtl_rec.location_id,fnd_api.g_miss_num);
3350: -- Added for partner ordering
3351: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.install_location_type_code,fnd_api.g_miss_char);
3352: l_i_rec.install_location_id := nvl(p_txn_line_dtl_rec.install_location_id,fnd_api.g_miss_num);
3345: l_i_rec.active_start_date :=l_i_rec.active_end_date;
3346: end IF;
3347: --End - added for bug 8586745 FP for 8490723
3348: l_i_rec.location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3349: l_i_rec.location_id := nvl(p_txn_line_dtl_rec.location_id,fnd_api.g_miss_num);
3350: -- Added for partner ordering
3351: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.install_location_type_code,fnd_api.g_miss_char);
3352: l_i_rec.install_location_id := nvl(p_txn_line_dtl_rec.install_location_id,fnd_api.g_miss_num);
3353:
3347: --End - added for bug 8586745 FP for 8490723
3348: l_i_rec.location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3349: l_i_rec.location_id := nvl(p_txn_line_dtl_rec.location_id,fnd_api.g_miss_num);
3350: -- Added for partner ordering
3351: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.install_location_type_code,fnd_api.g_miss_char);
3352: l_i_rec.install_location_id := nvl(p_txn_line_dtl_rec.install_location_id,fnd_api.g_miss_num);
3353:
3354: IF p_source_line_rec.source_table = g_om_source_table THEN
3355: l_i_rec.last_oe_order_line_id := p_source_line_rec.source_line_id;
3348: l_i_rec.location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3349: l_i_rec.location_id := nvl(p_txn_line_dtl_rec.location_id,fnd_api.g_miss_num);
3350: -- Added for partner ordering
3351: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.install_location_type_code,fnd_api.g_miss_char);
3352: l_i_rec.install_location_id := nvl(p_txn_line_dtl_rec.install_location_id,fnd_api.g_miss_num);
3353:
3354: IF p_source_line_rec.source_table = g_om_source_table THEN
3355: l_i_rec.last_oe_order_line_id := p_source_line_rec.source_line_id;
3356: ELSIF p_source_line_rec.source_table = 'CONFIGURATOR' THEN
3354: IF p_source_line_rec.source_table = g_om_source_table THEN
3355: l_i_rec.last_oe_order_line_id := p_source_line_rec.source_line_id;
3356: ELSIF p_source_line_rec.source_table = 'CONFIGURATOR' THEN
3357: IF p_source_line_rec.batch_validate_flag = 'N' THEN
3358: l_i_rec.call_batch_validation := fnd_api.g_false;
3359: END IF;
3360:
3361: END IF;
3362:
3360:
3361: END IF;
3362:
3363: l_i_rec.last_txn_line_detail_id := p_txn_line_dtl_rec.txn_line_detail_id;
3364: l_i_rec.install_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3365: l_i_rec.manually_created_flag := 'N';
3366: l_i_rec.return_by_date := nvl(p_txn_line_dtl_rec.return_by_date,fnd_api.g_miss_date);
3367: l_i_rec.creation_complete_flag := fnd_api.g_miss_char;
3368: l_i_rec.completeness_flag := fnd_api.g_miss_char;
3362:
3363: l_i_rec.last_txn_line_detail_id := p_txn_line_dtl_rec.txn_line_detail_id;
3364: l_i_rec.install_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3365: l_i_rec.manually_created_flag := 'N';
3366: l_i_rec.return_by_date := nvl(p_txn_line_dtl_rec.return_by_date,fnd_api.g_miss_date);
3367: l_i_rec.creation_complete_flag := fnd_api.g_miss_char;
3368: l_i_rec.completeness_flag := fnd_api.g_miss_char;
3369: l_i_rec.instance_usage_code := 'OUT_OF_ENTERPRISE';
3370:
3363: l_i_rec.last_txn_line_detail_id := p_txn_line_dtl_rec.txn_line_detail_id;
3364: l_i_rec.install_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3365: l_i_rec.manually_created_flag := 'N';
3366: l_i_rec.return_by_date := nvl(p_txn_line_dtl_rec.return_by_date,fnd_api.g_miss_date);
3367: l_i_rec.creation_complete_flag := fnd_api.g_miss_char;
3368: l_i_rec.completeness_flag := fnd_api.g_miss_char;
3369: l_i_rec.instance_usage_code := 'OUT_OF_ENTERPRISE';
3370:
3371: -- Begin Fix for Bug 2960049
3364: l_i_rec.install_date := nvl(p_txn_line_dtl_rec.active_start_date,fnd_api.g_miss_date);
3365: l_i_rec.manually_created_flag := 'N';
3366: l_i_rec.return_by_date := nvl(p_txn_line_dtl_rec.return_by_date,fnd_api.g_miss_date);
3367: l_i_rec.creation_complete_flag := fnd_api.g_miss_char;
3368: l_i_rec.completeness_flag := fnd_api.g_miss_char;
3369: l_i_rec.instance_usage_code := 'OUT_OF_ENTERPRISE';
3370:
3371: -- Begin Fix for Bug 2960049
3372: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
3368: l_i_rec.completeness_flag := fnd_api.g_miss_char;
3369: l_i_rec.instance_usage_code := 'OUT_OF_ENTERPRISE';
3370:
3371: -- Begin Fix for Bug 2960049
3372: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
3373: BEGIN
3374: SELECT instance_usage_code
3375: INTO l_instance_usage_code
3376: FROM csi_item_instances
3377: WHERE instance_id = l_i_rec.instance_id;
3378:
3379: EXCEPTION
3380: WHEN no_data_found THEN
3381: l_i_rec.instance_id := fnd_api.g_miss_num;
3382: END;
3383: IF l_instance_usage_code = 'IN_RELATIONSHIP' THEN
3384: l_i_rec.instance_usage_code := l_instance_usage_code;
3385: END IF;
3389: l_i_rec.last_oe_agreement_id := p_source_line_rec.agreement_id;
3390: l_i_rec.config_inst_hdr_id := p_txn_line_dtl_rec.config_inst_hdr_id;
3391: l_i_rec.config_inst_rev_num := p_txn_line_dtl_rec.config_inst_rev_num;
3392: l_i_rec.config_inst_item_id := p_txn_line_dtl_rec.config_inst_item_id;
3393: l_i_rec.instance_description := nvl(p_txn_line_dtl_rec.instance_description,fnd_api.g_miss_char);
3394: l_i_rec.last_txn_line_detail_id := p_txn_line_dtl_rec.source_txn_line_detail_id;
3395:
3396: IF p_item_attrib_rec.ib_item_instance_class = 'LINK' THEN
3397:
3408: x_location_id => l_i_rec.location_id,
3409: x_return_status => l_return_status);
3410:
3411: -- Bug 9023449 if the instance is in relationship then Location change is not allowed
3412: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
3413: AND NVL(l_i_rec.instance_usage_code, fnd_api.g_miss_char) = 'IN_RELATIONSHIP' THEN
3414: debug('instance_usage_code - ' || l_i_rec.instance_usage_code);
3415: l_i_rec.install_location_type_code := nvl(l_i_rec.install_location_type_code,fnd_api.g_miss_char);
3416: l_i_rec.install_location_id := nvl(l_i_rec.install_location_id,fnd_api.g_miss_num);
3409: x_return_status => l_return_status);
3410:
3411: -- Bug 9023449 if the instance is in relationship then Location change is not allowed
3412: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
3413: AND NVL(l_i_rec.instance_usage_code, fnd_api.g_miss_char) = 'IN_RELATIONSHIP' THEN
3414: debug('instance_usage_code - ' || l_i_rec.instance_usage_code);
3415: l_i_rec.install_location_type_code := nvl(l_i_rec.install_location_type_code,fnd_api.g_miss_char);
3416: l_i_rec.install_location_id := nvl(l_i_rec.install_location_id,fnd_api.g_miss_num);
3417: l_i_rec.location_type_code := nvl(l_i_rec.location_type_code,fnd_api.g_miss_char);
3411: -- Bug 9023449 if the instance is in relationship then Location change is not allowed
3412: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
3413: AND NVL(l_i_rec.instance_usage_code, fnd_api.g_miss_char) = 'IN_RELATIONSHIP' THEN
3414: debug('instance_usage_code - ' || l_i_rec.instance_usage_code);
3415: l_i_rec.install_location_type_code := nvl(l_i_rec.install_location_type_code,fnd_api.g_miss_char);
3416: l_i_rec.install_location_id := nvl(l_i_rec.install_location_id,fnd_api.g_miss_num);
3417: l_i_rec.location_type_code := nvl(l_i_rec.location_type_code,fnd_api.g_miss_char);
3418: l_i_rec.location_id := nvl(l_i_rec.location_id,fnd_api.g_miss_num);
3419: END IF;
3412: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
3413: AND NVL(l_i_rec.instance_usage_code, fnd_api.g_miss_char) = 'IN_RELATIONSHIP' THEN
3414: debug('instance_usage_code - ' || l_i_rec.instance_usage_code);
3415: l_i_rec.install_location_type_code := nvl(l_i_rec.install_location_type_code,fnd_api.g_miss_char);
3416: l_i_rec.install_location_id := nvl(l_i_rec.install_location_id,fnd_api.g_miss_num);
3417: l_i_rec.location_type_code := nvl(l_i_rec.location_type_code,fnd_api.g_miss_char);
3418: l_i_rec.location_id := nvl(l_i_rec.location_id,fnd_api.g_miss_num);
3419: END IF;
3420:
3413: AND NVL(l_i_rec.instance_usage_code, fnd_api.g_miss_char) = 'IN_RELATIONSHIP' THEN
3414: debug('instance_usage_code - ' || l_i_rec.instance_usage_code);
3415: l_i_rec.install_location_type_code := nvl(l_i_rec.install_location_type_code,fnd_api.g_miss_char);
3416: l_i_rec.install_location_id := nvl(l_i_rec.install_location_id,fnd_api.g_miss_num);
3417: l_i_rec.location_type_code := nvl(l_i_rec.location_type_code,fnd_api.g_miss_char);
3418: l_i_rec.location_id := nvl(l_i_rec.location_id,fnd_api.g_miss_num);
3419: END IF;
3420:
3421: ELSE
3414: debug('instance_usage_code - ' || l_i_rec.instance_usage_code);
3415: l_i_rec.install_location_type_code := nvl(l_i_rec.install_location_type_code,fnd_api.g_miss_char);
3416: l_i_rec.install_location_id := nvl(l_i_rec.install_location_id,fnd_api.g_miss_num);
3417: l_i_rec.location_type_code := nvl(l_i_rec.location_type_code,fnd_api.g_miss_char);
3418: l_i_rec.location_id := nvl(l_i_rec.location_id,fnd_api.g_miss_num);
3419: END IF;
3420:
3421: ELSE
3422: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3418: l_i_rec.location_id := nvl(l_i_rec.location_id,fnd_api.g_miss_num);
3419: END IF;
3420:
3421: ELSE
3422: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3423: l_i_rec.install_location_id := nvl(p_txn_line_dtl_rec.location_id,fnd_api.g_miss_num);
3424: END IF;
3425:
3426: -- contact switch parse
3419: END IF;
3420:
3421: ELSE
3422: l_i_rec.install_location_type_code := nvl(p_txn_line_dtl_rec.location_type_code,fnd_api.g_miss_char);
3423: l_i_rec.install_location_id := nvl(p_txn_line_dtl_rec.location_id,fnd_api.g_miss_num);
3424: END IF;
3425:
3426: -- contact switch parse
3427: IF p_txn_party_tbl.COUNT > 0 THEN
3442: p_txn_party_tbl(l_pc_ind).contact_party_id = l_p_ind
3443: THEN
3444: --p_txn_party_tbl(l_pc_ind).contact_party_id := p_ind;
3445: -- commented the above statement and added the below IF for bug 4945025
3446: IF nvl(l_i_rec.instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num Then
3447: BEGIN
3448: SELECT instance_party_id
3449: INTO p_txn_party_tbl(l_pc_ind).contact_party_id
3450: FROM csi_i_parties
3458: fnd_message.set_token('INSTANCE_ID',l_i_rec.instance_id);
3459: fnd_message.set_token('RELATIONSHIP_TYPE_CODE',p_txn_party_tbl(l_p_ind).relationship_type_code);
3460: fnd_msg_pub.add;
3461: IF p_txn_party_tbl(l_p_ind).relationship_type_code = 'OWNER' THEN
3462: x_return_status := fnd_api.g_ret_sts_error;
3463: raise fnd_api.g_exc_error;
3464: ELSE
3465: p_txn_party_tbl(l_pc_ind).contact_party_id := p_ind;
3466: debug('relationship_type_code :'||p_txn_party_tbl(l_p_ind).relationship_type_code);
3459: fnd_message.set_token('RELATIONSHIP_TYPE_CODE',p_txn_party_tbl(l_p_ind).relationship_type_code);
3460: fnd_msg_pub.add;
3461: IF p_txn_party_tbl(l_p_ind).relationship_type_code = 'OWNER' THEN
3462: x_return_status := fnd_api.g_ret_sts_error;
3463: raise fnd_api.g_exc_error;
3464: ELSE
3465: p_txn_party_tbl(l_pc_ind).contact_party_id := p_ind;
3466: debug('relationship_type_code :'||p_txn_party_tbl(l_p_ind).relationship_type_code);
3467: END IF;
3469: fnd_message.set_name('CSI','CSI_INT_MANY_INSTA_PTY_FOUND');
3470: fnd_message.set_token('INSTANCE_ID',l_i_rec.instance_id);
3471: fnd_message.set_token('RELATIONSHIP_TYPE_CODE',p_txn_party_tbl(l_p_ind).relationship_type_code);
3472: fnd_msg_pub.add;
3473: x_return_status := fnd_api.g_ret_sts_error;
3474: raise fnd_api.g_exc_error;
3475: END;
3476: ELSE
3477: p_txn_party_tbl(l_pc_ind).contact_party_id := p_ind;
3470: fnd_message.set_token('INSTANCE_ID',l_i_rec.instance_id);
3471: fnd_message.set_token('RELATIONSHIP_TYPE_CODE',p_txn_party_tbl(l_p_ind).relationship_type_code);
3472: fnd_msg_pub.add;
3473: x_return_status := fnd_api.g_ret_sts_error;
3474: raise fnd_api.g_exc_error;
3475: END;
3476: ELSE
3477: p_txn_party_tbl(l_pc_ind).contact_party_id := p_ind;
3478: END IF;
3621: IF p_txn_eav_tbl(l_eav_ind).attrib_source_table = 'CSI_IEA_VALUES' THEN
3622: l_eav_tbl(eav_ind).attribute_value_id := p_txn_eav_tbl(l_eav_ind).attribute_source_id;
3623: ELSIF p_txn_eav_tbl(l_eav_ind).attrib_source_table = 'CSI_I_EXTENDED_ATTRIBS' THEN
3624: l_eav_tbl(eav_ind).attribute_id := p_txn_eav_tbl(l_eav_ind).attribute_source_id;
3625: IF l_i_rec.instance_id = fnd_api.g_miss_num THEN
3626: l_eav_tbl(eav_ind).attribute_value_id := fnd_api.g_miss_num;
3627: ELSE
3628: BEGIN
3629: SELECT attribute_value_id
3622: l_eav_tbl(eav_ind).attribute_value_id := p_txn_eav_tbl(l_eav_ind).attribute_source_id;
3623: ELSIF p_txn_eav_tbl(l_eav_ind).attrib_source_table = 'CSI_I_EXTENDED_ATTRIBS' THEN
3624: l_eav_tbl(eav_ind).attribute_id := p_txn_eav_tbl(l_eav_ind).attribute_source_id;
3625: IF l_i_rec.instance_id = fnd_api.g_miss_num THEN
3626: l_eav_tbl(eav_ind).attribute_value_id := fnd_api.g_miss_num;
3627: ELSE
3628: BEGIN
3629: SELECT attribute_value_id
3630: INTO l_eav_tbl(eav_ind).attribute_value_id
3632: WHERE attribute_id = p_txn_eav_tbl(l_eav_ind).attribute_source_id
3633: AND instance_id = l_i_rec.instance_id;
3634: EXCEPTION
3635: WHEN no_data_found THEN
3636: l_eav_tbl(eav_ind).attribute_value_id := fnd_api.g_miss_num;
3637: END;
3638: END IF;
3639: END IF;
3640:
3667: IF px_pricing_tbl.COUNT > 0 THEN
3668: FOR l_pr_ind IN px_pricing_tbl.FIRST .. px_pricing_tbl.LAST
3669: LOOP
3670: IF px_pricing_tbl(l_pr_ind).parent_tbl_index = p_index
3671: AND px_pricing_tbl(l_pr_ind).instance_id = fnd_api.g_miss_num
3672: THEN
3673: px_pricing_tbl(l_pr_ind).instance_id := l_i_rec.instance_id; -- bug 5093707
3674: END IF;
3675: END LOOP; -- pricing attribs loop
3683:
3684: END IF; -- p_index is not null
3685:
3686: EXCEPTION
3687: WHEN fnd_api.g_exc_error THEN
3688: x_return_status := fnd_api.g_ret_sts_error;
3689: END build_instance_set;
3690:
3691: PROCEDURE sub_type_specific_vldns(
3684: END IF; -- p_index is not null
3685:
3686: EXCEPTION
3687: WHEN fnd_api.g_exc_error THEN
3688: x_return_status := fnd_api.g_ret_sts_error;
3689: END build_instance_set;
3690:
3691: PROCEDURE sub_type_specific_vldns(
3692: p_source_flag IN varchar2,
3701: IS
3702: l_csi_param_rec csi_install_parameters%rowtype;
3703: BEGIN
3704:
3705: x_return_status := fnd_api.g_ret_sts_success;
3706:
3707: api_log('sub_type_specific_vldns');
3708: /* commenting this for bug 4028827 . since we do not seem to have any usage currently for this Query
3709: SELECT * INTO l_csi_param_rec
3717: -- check for multiple owner error
3718: -- for non source check if an instance ref is specified
3719:
3720: EXCEPTION
3721: WHEN fnd_api.g_exc_error THEN
3722: x_return_status := fnd_api.g_ret_sts_error;
3723: END sub_type_specific_vldns;
3724:
3725:
3718: -- for non source check if an instance ref is specified
3719:
3720: EXCEPTION
3721: WHEN fnd_api.g_exc_error THEN
3722: x_return_status := fnd_api.g_ret_sts_error;
3723: END sub_type_specific_vldns;
3724:
3725:
3726: --
3736: x_return_status OUT NOCOPY varchar2)
3737: IS
3738: l_active_end_date date;
3739: BEGIN
3740: x_return_status := fnd_api.g_ret_sts_success;
3741: api_log('validate_and_derive_ids');
3742:
3743: -- srramakr TSO with equipment. During DISCONNECT of Tangible item instance, we need to remove the config keys.
3744: -- In order to identify whether the item is tangible or not, we use the serial number of the item instance.
3753: l_active_end_date
3754: FROM csi_item_instances
3755: WHERE instance_id = px_instance_rec.instance_id;
3756:
3757: px_instance_rec.active_start_date := fnd_api.g_miss_date;
3758:
3759: -- 4946227 okeship of srlsoi returned for good fails
3760: IF nvl(l_active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date THEN
3761: IF px_instance_rec.active_end_date = fnd_api.g_miss_date THEN
3756:
3757: px_instance_rec.active_start_date := fnd_api.g_miss_date;
3758:
3759: -- 4946227 okeship of srlsoi returned for good fails
3760: IF nvl(l_active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date THEN
3761: IF px_instance_rec.active_end_date = fnd_api.g_miss_date THEN
3762: px_instance_rec.active_end_date := null;
3763: END IF;
3764: END IF;
3757: px_instance_rec.active_start_date := fnd_api.g_miss_date;
3758:
3759: -- 4946227 okeship of srlsoi returned for good fails
3760: IF nvl(l_active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date THEN
3761: IF px_instance_rec.active_end_date = fnd_api.g_miss_date THEN
3762: px_instance_rec.active_end_date := null;
3763: END IF;
3764: END IF;
3765:
3767: FOR l_p_ind IN px_party_tbl.FIRST .. px_party_tbl.LAST
3768: LOOP
3769:
3770: px_party_tbl(l_p_ind).instance_id := px_instance_rec.instance_id;
3771: px_party_tbl(l_p_ind).active_start_date := fnd_api.g_miss_date;
3772:
3773: IF nvl(px_party_tbl(l_p_ind).instance_party_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
3774: BEGIN
3775: SELECT instance_party_id,
3769:
3770: px_party_tbl(l_p_ind).instance_id := px_instance_rec.instance_id;
3771: px_party_tbl(l_p_ind).active_start_date := fnd_api.g_miss_date;
3772:
3773: IF nvl(px_party_tbl(l_p_ind).instance_party_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
3774: BEGIN
3775: SELECT instance_party_id,
3776: object_version_number
3777: INTO px_party_tbl(l_p_ind).instance_party_id,
3781: AND party_source_table = px_party_tbl(l_p_ind).party_source_table
3782: AND relationship_type_code = px_party_tbl(l_p_ind).relationship_type_code;
3783: EXCEPTION
3784: WHEN no_data_found THEN
3785: px_party_tbl(l_p_ind).instance_party_id := fnd_api.g_miss_num;
3786: px_party_tbl(l_p_ind).object_version_number := 1.0;
3787: WHEN too_many_rows THEN
3788: BEGIN
3789: SELECT instance_party_id,
3796: AND party_source_table = px_party_tbl(l_p_ind).party_source_table
3797: AND relationship_type_code = px_party_tbl(l_p_ind).relationship_type_code;
3798: EXCEPTION
3799: WHEN no_data_found THEN
3800: px_party_tbl(l_p_ind).instance_party_id := fnd_api.g_miss_num;
3801: px_party_tbl(l_p_ind).object_version_number := 1.0;
3802: END;
3803: END;
3804:
3807: FOR l_pa_ind IN px_party_acct_tbl.FIRST .. px_party_acct_tbl.LAST
3808: LOOP
3809: IF px_party_acct_tbl(l_pa_ind).parent_tbl_index = l_p_ind THEN
3810: px_party_acct_tbl(l_pa_ind).instance_party_id := px_party_tbl(l_p_ind).instance_party_id;
3811: px_party_acct_tbl(l_pa_ind).active_start_date := fnd_api.g_miss_date;
3812:
3813: IF nvl(px_party_acct_tbl(l_pa_ind).ip_account_id , fnd_api.g_miss_num) = fnd_api.g_miss_num
3814: THEN
3815: BEGIN
3809: IF px_party_acct_tbl(l_pa_ind).parent_tbl_index = l_p_ind THEN
3810: px_party_acct_tbl(l_pa_ind).instance_party_id := px_party_tbl(l_p_ind).instance_party_id;
3811: px_party_acct_tbl(l_pa_ind).active_start_date := fnd_api.g_miss_date;
3812:
3813: IF nvl(px_party_acct_tbl(l_pa_ind).ip_account_id , fnd_api.g_miss_num) = fnd_api.g_miss_num
3814: THEN
3815: BEGIN
3816:
3817: SELECT ip_account_id,
3823: AND relationship_type_code = px_party_acct_tbl(l_pa_ind).relationship_type_code;
3824:
3825: EXCEPTION
3826: WHEN no_data_found THEN
3827: px_party_acct_tbl(l_pa_ind).ip_account_id := fnd_api.g_miss_num;
3828: px_party_acct_tbl(l_pa_ind).object_version_number := 1.0;
3829: WHEN too_many_rows THEN
3830: BEGIN
3831: SELECT ip_account_id,
3837: AND party_account_id = px_party_acct_tbl(l_pa_ind).party_account_id
3838: AND relationship_type_code = px_party_acct_tbl(l_pa_ind).relationship_type_code;
3839: EXCEPTION
3840: WHEN no_data_found THEN
3841: px_party_acct_tbl(l_pa_ind).ip_account_id := fnd_api.g_miss_num;
3842: px_party_acct_tbl(l_pa_ind).object_version_number := 1.0;
3843: END;
3844: END;
3845: ELSE
3866: IF px_org_units_tbl.COUNT > 0 THEN
3867: FOR l_ind IN px_org_units_tbl.FIRST .. px_org_units_tbl.LAST
3868: LOOP
3869: px_org_units_tbl(l_ind).instance_id := px_instance_rec.instance_id;
3870: px_org_units_tbl(l_ind).active_start_date := fnd_api.g_miss_date;
3871: IF nvl(px_org_units_tbl(l_ind).instance_ou_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
3872: BEGIN
3873: SELECT instance_ou_id,
3874: object_version_number
3867: FOR l_ind IN px_org_units_tbl.FIRST .. px_org_units_tbl.LAST
3868: LOOP
3869: px_org_units_tbl(l_ind).instance_id := px_instance_rec.instance_id;
3870: px_org_units_tbl(l_ind).active_start_date := fnd_api.g_miss_date;
3871: IF nvl(px_org_units_tbl(l_ind).instance_ou_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
3872: BEGIN
3873: SELECT instance_ou_id,
3874: object_version_number
3875: INTO px_org_units_tbl(l_ind).instance_ou_id,
3879: AND operating_unit_id = px_org_units_tbl(l_ind).operating_unit_id
3880: AND relationship_type_code = px_org_units_tbl(l_ind).relationship_type_code;
3881: EXCEPTION
3882: WHEN no_data_found THEN
3883: px_org_units_tbl(l_ind).instance_ou_id := fnd_api.g_miss_num;
3884: px_org_units_tbl(l_ind).object_version_number := 1.0;
3885: END;
3886: ELSE
3887: SELECT object_version_number
3896: IF px_eav_tbl.COUNT > 0 THEN
3897: FOR l_ind IN px_eav_tbl.FIRST .. px_eav_tbl.LAST
3898: LOOP
3899: px_eav_tbl(l_ind).instance_id := px_instance_rec.instance_id;
3900: IF nvl(px_eav_tbl(l_ind).attribute_value_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
3901: BEGIN
3902: null;
3903: EXCEPTION
3904: WHEN no_data_found THEN
3918: IF px_pricing_tbl.COUNT > 0 THEN
3919: FOR l_ind IN px_pricing_tbl.FIRST .. px_pricing_tbl.LAST
3920: LOOP
3921: px_pricing_tbl(l_ind).instance_id := px_instance_rec.instance_id;
3922: IF nvl(px_pricing_tbl(l_ind).pricing_attribute_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
3923:
3924: BEGIN
3925: SELECT pricing_attribute_id ,
3926: object_version_number
3947: -- end pricing attribs
3948:
3949:
3950: EXCEPTION
3951: WHEN fnd_api.g_exc_error THEN
3952: x_return_status := fnd_api.g_ret_sts_error;
3953: END validate_and_derive_ids;
3954:
3955: PROCEDURE build_relationship_tbl(
3948:
3949:
3950: EXCEPTION
3951: WHEN fnd_api.g_exc_error THEN
3952: x_return_status := fnd_api.g_ret_sts_error;
3953: END validate_and_derive_ids;
3954:
3955: PROCEDURE build_relationship_tbl(
3956: p_txn_ii_rltns_tbl IN csi_t_datastructures_grp.txn_ii_rltns_tbl,
3977:
3978: skip_the_relation exception;
3979:
3980: BEGIN
3981: x_return_status := fnd_api.g_ret_sts_success;
3982: api_log('build_relationship_tbl');
3983:
3984: debug(' ii_rltns_tbl :'||p_txn_ii_rltns_tbl.count);
3985:
4061: WHERE subject_id = l_sub_instance_id
4062: AND object_id = l_obj_instance_id;
4063: EXCEPTION
4064: WHEN no_data_found THEN
4065: l_r_tbl(l_ii_ind).csi_inst_relationship_id := fnd_api.g_miss_num;
4066: END;
4067:
4068: IF nvl(l_r_tbl(l_ii_ind).csi_inst_relationship_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4069: IF l_r_tbl(l_ii_ind).active_end_date IS NULL AND l_obj_end_date IS NULL --Fix for bug 5956280
4064: WHEN no_data_found THEN
4065: l_r_tbl(l_ii_ind).csi_inst_relationship_id := fnd_api.g_miss_num;
4066: END;
4067:
4068: IF nvl(l_r_tbl(l_ii_ind).csi_inst_relationship_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4069: IF l_r_tbl(l_ii_ind).active_end_date IS NULL AND l_obj_end_date IS NULL --Fix for bug 5956280
4070: AND l_sub_end_date IS NULL THEN
4071: l_c_ind := l_c_ind + 1;
4072: x_c_ii_rltns_tbl(l_c_ind).relationship_id := fnd_api.g_miss_num;
4068: IF nvl(l_r_tbl(l_ii_ind).csi_inst_relationship_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4069: IF l_r_tbl(l_ii_ind).active_end_date IS NULL AND l_obj_end_date IS NULL --Fix for bug 5956280
4070: AND l_sub_end_date IS NULL THEN
4071: l_c_ind := l_c_ind + 1;
4072: x_c_ii_rltns_tbl(l_c_ind).relationship_id := fnd_api.g_miss_num;
4073: x_c_ii_rltns_tbl(l_c_ind).subject_id := l_sub_instance_id;
4074: x_c_ii_rltns_tbl(l_c_ind).relationship_type_code := l_r_tbl(l_ii_ind).relationship_type_code;
4075: x_c_ii_rltns_tbl(l_c_ind).object_id := l_obj_instance_id;
4076: x_c_ii_rltns_tbl(l_c_ind).display_order := l_r_tbl(l_ii_ind).display_order;
4111: debug(' create_ii_rltns :'||x_c_ii_rltns_tbl.count);
4112: debug(' update_ii_rltns :'||x_u_ii_rltns_tbl.count);
4113:
4114: EXCEPTION
4115: WHEN fnd_api.g_exc_error THEN
4116: x_return_status := fnd_api.g_ret_sts_success;
4117: END build_relationship_tbl;
4118:
4119: PROCEDURE update_td_status(
4112: debug(' update_ii_rltns :'||x_u_ii_rltns_tbl.count);
4113:
4114: EXCEPTION
4115: WHEN fnd_api.g_exc_error THEN
4116: x_return_status := fnd_api.g_ret_sts_success;
4117: END build_relationship_tbl;
4118:
4119: PROCEDURE update_td_status(
4120: p_txn_line_rec IN csi_t_datastructures_grp.txn_line_rec,
4130: l_oa_tbl csi_t_datastructures_grp.txn_org_assgn_tbl;
4131: l_ea_tbl csi_t_datastructures_grp.txn_ext_attrib_vals_tbl;
4132: l_ir_tbl csi_t_datastructures_grp.txn_ii_rltns_tbl;
4133:
4134: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4135: l_msg_count number;
4136: l_msg_data varchar2(2000);
4137:
4138: BEGIN
4135: l_msg_count number;
4136: l_msg_data varchar2(2000);
4137:
4138: BEGIN
4139: x_return_status := fnd_api.g_ret_sts_success;
4140: api_log('update_td_status');
4141:
4142: --l_tl_rec := p_txn_line_rec;
4143: IF nvl(p_txn_line_rec.transaction_line_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
4139: x_return_status := fnd_api.g_ret_sts_success;
4140: api_log('update_td_status');
4141:
4142: --l_tl_rec := p_txn_line_rec;
4143: IF nvl(p_txn_line_rec.transaction_line_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
4144: l_tl_rec.transaction_line_id := p_txn_line_rec.transaction_line_id;
4145: l_tl_rec.processing_status := p_processing_status;
4146: l_tl_rec.api_caller_identity := 'CONFIG';
4147:
4160: END IF;
4161:
4162: csi_t_txn_details_grp.update_txn_line_dtls(
4163: p_api_version => 1.0,
4164: p_commit => fnd_api.g_false,
4165: p_init_msg_list => fnd_api.g_true,
4166: p_validation_level => fnd_api.g_valid_level_full,
4167: p_txn_line_rec => l_tl_rec,
4168: p_txn_line_detail_tbl => l_td_tbl,
4161:
4162: csi_t_txn_details_grp.update_txn_line_dtls(
4163: p_api_version => 1.0,
4164: p_commit => fnd_api.g_false,
4165: p_init_msg_list => fnd_api.g_true,
4166: p_validation_level => fnd_api.g_valid_level_full,
4167: p_txn_line_rec => l_tl_rec,
4168: p_txn_line_detail_tbl => l_td_tbl,
4169: px_txn_party_detail_tbl => l_pd_tbl,
4162: csi_t_txn_details_grp.update_txn_line_dtls(
4163: p_api_version => 1.0,
4164: p_commit => fnd_api.g_false,
4165: p_init_msg_list => fnd_api.g_true,
4166: p_validation_level => fnd_api.g_valid_level_full,
4167: p_txn_line_rec => l_tl_rec,
4168: p_txn_line_detail_tbl => l_td_tbl,
4169: px_txn_party_detail_tbl => l_pd_tbl,
4170: px_txn_pty_acct_detail_tbl => l_pa_tbl,
4174: x_return_status => l_return_status,
4175: x_msg_count => l_msg_count,
4176: x_msg_data => l_msg_data);
4177:
4178: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4179: RAISE fnd_api.g_exc_error;
4180: END IF;
4181: END IF;
4182:
4175: x_msg_count => l_msg_count,
4176: x_msg_data => l_msg_data);
4177:
4178: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4179: RAISE fnd_api.g_exc_error;
4180: END IF;
4181: END IF;
4182:
4183: EXCEPTION
4180: END IF;
4181: END IF;
4182:
4183: EXCEPTION
4184: WHEN fnd_api.g_exc_error THEN
4185: x_return_status := fnd_api.g_ret_sts_error;
4186: END update_td_status;
4187: --
4188: --
4181: END IF;
4182:
4183: EXCEPTION
4184: WHEN fnd_api.g_exc_error THEN
4185: x_return_status := fnd_api.g_ret_sts_error;
4186: END update_td_status;
4187: --
4188: --
4189: --
4246: l_comp_relation_tbl csi_datastructures_pub.ii_relationship_tbl;
4247: l_bom_explode_flag BOOLEAN := FALSE;
4248:
4249: l_create_flag boolean := FALSE;
4250: l_call_contracts varchar2(1) := fnd_api.g_true;
4251:
4252: --4327207
4253: l_fulfilled_date date := fnd_api.g_miss_date;
4254: l_rlt_active_end_date date := fnd_api.g_miss_date;
4249: l_create_flag boolean := FALSE;
4250: l_call_contracts varchar2(1) := fnd_api.g_true;
4251:
4252: --4327207
4253: l_fulfilled_date date := fnd_api.g_miss_date;
4254: l_rlt_active_end_date date := fnd_api.g_miss_date;
4255: l_parent_line_rec oe_order_pub.line_rec_type;
4256: om_vld_org_id NUMBER;
4257: l_csi_order_line_rec csi_order_ship_pub.order_line_rec;
4250: l_call_contracts varchar2(1) := fnd_api.g_true;
4251:
4252: --4327207
4253: l_fulfilled_date date := fnd_api.g_miss_date;
4254: l_rlt_active_end_date date := fnd_api.g_miss_date;
4255: l_parent_line_rec oe_order_pub.line_rec_type;
4256: om_vld_org_id NUMBER;
4257: l_csi_order_line_rec csi_order_ship_pub.order_line_rec;
4258: l_child_line_tbl oe_order_pub.line_tbl_type;
4262:
4263: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
4264: l_rel_ctr NUMBER;
4265:
4266: l_active_end_date date := fnd_api.g_miss_date;
4267: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4268: l_rel_type_code varchar2(30) := 'COMPONENT-OF';
4269: l_msg_count number;
4270: l_msg_data varchar2(2000);
4263: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
4264: l_rel_ctr NUMBER;
4265:
4266: l_active_end_date date := fnd_api.g_miss_date;
4267: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4268: l_rel_type_code varchar2(30) := 'COMPONENT-OF';
4269: l_msg_count number;
4270: l_msg_data varchar2(2000);
4271:
4274: BEGIN
4275:
4276: api_log('interface_ib');
4277:
4278: x_return_status := fnd_api.g_ret_sts_success;
4279:
4280: debug(' input record count for interface_ib :-');
4281: debug(' txn_line_dtl_tbl :'||px_txn_line_dtl_tbl.count);
4282: debug(' txn_party_tbl :'||px_txn_party_tbl.count);
4286: debug(' txn_ii_rltns_tbl :'||px_txn_ii_rltns_tbl.count);
4287: debug(' pricing_attribs_tbl :'||px_pricing_attribs_tbl.count);
4288:
4289: --4327207
4290: l_fulfilled_date := nvl(p_source_line_rec.fulfilled_date,fnd_api.g_miss_date);
4291:
4292: -- get_item_attributes
4293: get_item_attributes(
4294: p_transaction_id => px_csi_txn_rec.inv_material_transaction_id, --Added for bug# 14835893
4296: p_organization_id => p_source_line_rec.organization_id,
4297: x_item_attrib_rec => l_item_attrib_rec,
4298: x_return_status => l_return_status);
4299:
4300: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4301: RAISE fnd_api.g_exc_error;
4302: END IF;
4303:
4304: IF p_source_line_rec.org_id is not null THEN
4297: x_item_attrib_rec => l_item_attrib_rec,
4298: x_return_status => l_return_status);
4299:
4300: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4301: RAISE fnd_api.g_exc_error;
4302: END IF;
4303:
4304: IF p_source_line_rec.org_id is not null THEN
4305: om_vld_org_id := oe_sys_parameters.value(
4365: p_om_vld_org_id => om_vld_org_id,
4366: x_parent_line_rec => l_parent_line_rec,
4367: x_return_status => l_return_status);
4368:
4369: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4370: RAISE fnd_api.g_exc_error;
4371: END IF;
4372:
4373: IF l_parent_line_rec.fulfillment_date IS NOT NULL
4366: x_parent_line_rec => l_parent_line_rec,
4367: x_return_status => l_return_status);
4368:
4369: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4370: RAISE fnd_api.g_exc_error;
4371: END IF;
4372:
4373: IF l_parent_line_rec.fulfillment_date IS NOT NULL
4374: AND
4397: fnd_message.set_name('CSI', 'CSI_INT_SUB_TYPE_REC_MISSING');
4398: fnd_message.set_token('SUB_TYPE_ID', px_txn_line_dtl_tbl(l_td_ind).sub_type_id);
4399: fnd_message.set_token('TRANSACTION_TYPE_ID',px_txn_line_rec.source_transaction_type_id);
4400: fnd_msg_pub.add;
4401: RAISE fnd_api.g_exc_error;
4402: END;
4403:
4404: debug('src_status_id :'||l_sub_type_rec.src_status_id);
4405:
4402: END;
4403:
4404: debug('src_status_id :'||l_sub_type_rec.src_status_id);
4405:
4406: IF nvl(px_csi_txn_rec.transaction_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
4407: l_csi_txn_rec := px_csi_txn_rec;
4408: ELSE
4409: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
4410: l_csi_txn_rec.transaction_type_id := px_txn_line_rec.source_transaction_type_id;
4405:
4406: IF nvl(px_csi_txn_rec.transaction_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
4407: l_csi_txn_rec := px_csi_txn_rec;
4408: ELSE
4409: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
4410: l_csi_txn_rec.transaction_type_id := px_txn_line_rec.source_transaction_type_id;
4411: l_csi_txn_rec.txn_sub_type_id := px_txn_line_dtl_tbl(l_td_ind).sub_type_id;
4412: l_csi_txn_rec.transaction_date := sysdate;
4413: l_csi_txn_rec.source_header_ref_id := p_source_header_rec.source_header_id;
4443: x_c_ii_rltns_tbl => l_c_ii_rltns_tbl,
4444: x_u_ii_rltns_tbl => l_u_ii_rltns_tbl,
4445: x_return_status => l_return_status);
4446:
4447: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4448: RAISE fnd_api.g_exc_error;
4449: END IF;
4450:
4451: /* update the existing relationships */
4444: x_u_ii_rltns_tbl => l_u_ii_rltns_tbl,
4445: x_return_status => l_return_status);
4446:
4447: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4448: RAISE fnd_api.g_exc_error;
4449: END IF;
4450:
4451: /* update the existing relationships */
4452: IF l_u_ii_rltns_tbl.COUNT > 0 THEN
4455: FOR l_ind IN l_u_ii_rltns_tbl.FIRST .. l_u_ii_rltns_tbl.LAST
4456: LOOP
4457: debug(' Relationship_ID :'|| l_u_ii_rltns_tbl(l_ind).relationship_id);
4458: debug(' Relationship_End_Date:'|| l_u_ii_rltns_tbl(l_ind).active_end_date);
4459: IF nvl(l_u_ii_rltns_tbl(l_ind).active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date
4460: THEN
4461: l_u_ii_rltns_tbl(l_ind).active_end_date := l_csi_txn_rec.source_transaction_date;
4462: END IF;
4463: debug(' Source_txn_date :'|| l_u_ii_rltns_tbl(l_ind).active_end_date);
4470: p_api_name => 'update_relationship');
4471:
4472: csi_ii_relationships_pub.update_relationship(
4473: p_api_version => 1.0,
4474: p_commit => fnd_api.g_false,
4475: p_init_msg_list => fnd_api.g_true,
4476: p_validation_level => fnd_api.g_valid_level_full,
4477: p_relationship_tbl => l_u_ii_rltns_tbl,
4478: p_txn_rec => l_csi_txn_rec,
4471:
4472: csi_ii_relationships_pub.update_relationship(
4473: p_api_version => 1.0,
4474: p_commit => fnd_api.g_false,
4475: p_init_msg_list => fnd_api.g_true,
4476: p_validation_level => fnd_api.g_valid_level_full,
4477: p_relationship_tbl => l_u_ii_rltns_tbl,
4478: p_txn_rec => l_csi_txn_rec,
4479: x_return_status => l_return_status,
4472: csi_ii_relationships_pub.update_relationship(
4473: p_api_version => 1.0,
4474: p_commit => fnd_api.g_false,
4475: p_init_msg_list => fnd_api.g_true,
4476: p_validation_level => fnd_api.g_valid_level_full,
4477: p_relationship_tbl => l_u_ii_rltns_tbl,
4478: p_txn_rec => l_csi_txn_rec,
4479: x_return_status => l_return_status,
4480: x_msg_count => l_msg_count,
4479: x_return_status => l_return_status,
4480: x_msg_count => l_msg_count,
4481: x_msg_data => l_msg_data);
4482:
4483: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4484: RAISE fnd_api.g_exc_error;
4485: END IF;
4486:
4487: record_time('End');
4480: x_msg_count => l_msg_count,
4481: x_msg_data => l_msg_data);
4482:
4483: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4484: RAISE fnd_api.g_exc_error;
4485: END IF;
4486:
4487: record_time('End');
4488:
4508: x_org_units_tbl => l_org_units_tbl,
4509: x_eav_tbl => l_eav_tbl,
4510: x_return_status => l_return_status);
4511:
4512: IF x_return_status <> fnd_api.g_ret_sts_success THEN
4513: RAISE fnd_api.g_exc_error;
4514: END IF;
4515:
4516: debug('source_transaction_flag :'||px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag);
4509: x_eav_tbl => l_eav_tbl,
4510: x_return_status => l_return_status);
4511:
4512: IF x_return_status <> fnd_api.g_ret_sts_success THEN
4513: RAISE fnd_api.g_exc_error;
4514: END IF;
4515:
4516: debug('source_transaction_flag :'||px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag);
4517: IF px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag = 'Y' THEN
4514: END IF;
4515:
4516: debug('source_transaction_flag :'||px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag);
4517: IF px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag = 'Y' THEN
4518: l_instance_rec.instance_status_id := nvl(l_sub_type_rec.src_status_id, fnd_api.g_miss_num);
4519: ELSE
4520: l_instance_rec.instance_status_id := nvl(l_sub_type_rec.non_src_status_id, fnd_api.g_miss_num);
4521: END IF;
4522:
4516: debug('source_transaction_flag :'||px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag);
4517: IF px_txn_line_dtl_tbl(l_td_ind).source_transaction_flag = 'Y' THEN
4518: l_instance_rec.instance_status_id := nvl(l_sub_type_rec.src_status_id, fnd_api.g_miss_num);
4519: ELSE
4520: l_instance_rec.instance_status_id := nvl(l_sub_type_rec.non_src_status_id, fnd_api.g_miss_num);
4521: END IF;
4522:
4523: debug(' processing record count for instance :-');
4524: debug(' instance_id :'||l_instance_rec.instance_id);
4541: p_org_units_tbl => l_org_units_tbl,
4542: p_pricing_tbl => l_pricing_tbl,
4543: x_return_status => l_return_status);
4544:
4545: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4546: RAISE fnd_api.g_exc_error;
4547: END IF;
4548:
4549: IF nvl(l_instance_rec.instance_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4542: p_pricing_tbl => l_pricing_tbl,
4543: x_return_status => l_return_status);
4544:
4545: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4546: RAISE fnd_api.g_exc_error;
4547: END IF;
4548:
4549: IF nvl(l_instance_rec.instance_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4550: l_create_flag := TRUE;
4545: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4546: RAISE fnd_api.g_exc_error;
4547: END IF;
4548:
4549: IF nvl(l_instance_rec.instance_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4550: l_create_flag := TRUE;
4551: END IF;
4552:
4553: IF l_create_flag THEN
4576: p_api_name => 'create_item_instance');
4577:
4578: csi_item_instance_pub.create_item_instance(
4579: p_api_version => 1.0,
4580: p_commit => fnd_api.g_false,
4581: p_init_msg_list => fnd_api.g_true,
4582: p_validation_level => fnd_api.g_valid_level_full,
4583: p_txn_rec => l_csi_txn_rec,
4584: p_instance_rec => l_c_instance_rec,
4577:
4578: csi_item_instance_pub.create_item_instance(
4579: p_api_version => 1.0,
4580: p_commit => fnd_api.g_false,
4581: p_init_msg_list => fnd_api.g_true,
4582: p_validation_level => fnd_api.g_valid_level_full,
4583: p_txn_rec => l_csi_txn_rec,
4584: p_instance_rec => l_c_instance_rec,
4585: p_party_tbl => l_c_party_tbl,
4578: csi_item_instance_pub.create_item_instance(
4579: p_api_version => 1.0,
4580: p_commit => fnd_api.g_false,
4581: p_init_msg_list => fnd_api.g_true,
4582: p_validation_level => fnd_api.g_valid_level_full,
4583: p_txn_rec => l_csi_txn_rec,
4584: p_instance_rec => l_c_instance_rec,
4585: p_party_tbl => l_c_party_tbl,
4586: p_account_tbl => l_c_party_acct_tbl,
4592: x_msg_count => l_msg_count,
4593: x_msg_data => l_msg_data );
4594:
4595: -- For Bug 4057183
4596: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
4597: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
4598: raise fnd_api.g_exc_error;
4599: END IF;
4600:
4593: x_msg_data => l_msg_data );
4594:
4595: -- For Bug 4057183
4596: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
4597: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
4598: raise fnd_api.g_exc_error;
4599: END IF;
4600:
4601: record_time('End');
4594:
4595: -- For Bug 4057183
4596: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
4597: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
4598: raise fnd_api.g_exc_error;
4599: END IF;
4600:
4601: record_time('End');
4602:
4626: px_eav_tbl => l_eav_tbl,
4627: px_pricing_tbl => l_pricing_tbl,
4628: x_return_status => l_return_status);
4629:
4630: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4631: RAISE fnd_api.g_exc_error;
4632: END IF;
4633:
4634: -- validations based on the baseline rev num ##
4627: px_pricing_tbl => l_pricing_tbl,
4628: x_return_status => l_return_status);
4629:
4630: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4631: RAISE fnd_api.g_exc_error;
4632: END IF;
4633:
4634: -- validations based on the baseline rev num ##
4635:
4637: -- For Tangible item, since DISCONNECT is the only possible operation, we need to remove the config keys.
4638: -- Hence nullifying them.
4639: --
4640: IF l_instance_rec.serial_number IS NOT NULL AND
4641: l_instance_rec.serial_number <> FND_API.G_MISS_CHAR THEN
4642: l_instance_rec.config_inst_hdr_id := NULL;
4643: l_instance_rec.config_inst_rev_num := NULL;
4644: l_instance_rec.config_inst_item_id := NULL;
4645: END IF;
4655: csi_t_gen_utility_pvt.dump_csi_account_tbl(l_u_party_acct_tbl);
4656: csi_t_gen_utility_pvt.dump_eav_tbl(l_u_eav_tbl);
4657:
4658:
4659: IF nvl(l_u_instance_rec.active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date
4660: THEN
4661: l_u_instance_rec.active_end_date := l_csi_txn_rec.source_transaction_date;
4662: END IF;
4663:
4673: l_item_instance_expired := 'Y';
4674: END;
4675:
4676: IF l_item_instance_expired = 'Y' AND
4677: (nvl(l_u_instance_rec.active_end_date, fnd_api.g_miss_date) <> fnd_api.g_miss_date) THEN
4678: debug('Item instance ('||l_u_instance_rec.instance_id||') already expired, no need to expire again.');
4679: ELSE
4680: -- End adding code for FP of bug 6755897 - Reconcilation changes
4681: record_time('Start');
4685: p_api_name => 'update_item_instance');
4686:
4687: csi_item_instance_pub.update_item_instance(
4688: p_api_version => 1.0,
4689: p_commit => fnd_api.g_false,
4690: p_init_msg_list => fnd_api.g_true,
4691: p_validation_level => fnd_api.g_valid_level_full,
4692: p_txn_rec => l_csi_txn_rec,
4693: p_instance_rec => l_u_instance_rec,
4686:
4687: csi_item_instance_pub.update_item_instance(
4688: p_api_version => 1.0,
4689: p_commit => fnd_api.g_false,
4690: p_init_msg_list => fnd_api.g_true,
4691: p_validation_level => fnd_api.g_valid_level_full,
4692: p_txn_rec => l_csi_txn_rec,
4693: p_instance_rec => l_u_instance_rec,
4694: p_party_tbl => l_u_party_tbl,
4687: csi_item_instance_pub.update_item_instance(
4688: p_api_version => 1.0,
4689: p_commit => fnd_api.g_false,
4690: p_init_msg_list => fnd_api.g_true,
4691: p_validation_level => fnd_api.g_valid_level_full,
4692: p_txn_rec => l_csi_txn_rec,
4693: p_instance_rec => l_u_instance_rec,
4694: p_party_tbl => l_u_party_tbl,
4695: p_account_tbl => l_u_party_acct_tbl,
4704:
4705: record_time('End');
4706:
4707: -- For Bug 4057183
4708: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
4709: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
4710: RAISE fnd_api.g_exc_error;
4711: END IF;
4712: END IF; -- Added for FP of bug 6755897 - Reconcilation changes
4705: record_time('End');
4706:
4707: -- For Bug 4057183
4708: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
4709: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
4710: RAISE fnd_api.g_exc_error;
4711: END IF;
4712: END IF; -- Added for FP of bug 6755897 - Reconcilation changes
4713:
4706:
4707: -- For Bug 4057183
4708: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
4709: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
4710: RAISE fnd_api.g_exc_error;
4711: END IF;
4712: END IF; -- Added for FP of bug 6755897 - Reconcilation changes
4713:
4714: px_txn_line_dtl_tbl(l_td_ind).instance_id := l_u_instance_rec.instance_id;
4774: p_api_name => 'explode_bom');
4775:
4776: csi_item_instance_pvt.explode_bom(
4777: p_api_version => 1.0,
4778: p_commit => fnd_api.g_false,
4779: p_init_msg_list => fnd_api.g_true,
4780: p_validation_level => fnd_api.g_valid_level_full,
4781: p_source_instance_rec => l_bom_std_item_rec,
4782: p_explosion_level => fnd_api.g_miss_num,
4775:
4776: csi_item_instance_pvt.explode_bom(
4777: p_api_version => 1.0,
4778: p_commit => fnd_api.g_false,
4779: p_init_msg_list => fnd_api.g_true,
4780: p_validation_level => fnd_api.g_valid_level_full,
4781: p_source_instance_rec => l_bom_std_item_rec,
4782: p_explosion_level => fnd_api.g_miss_num,
4783: p_item_tbl => l_comp_instance_tbl,
4776: csi_item_instance_pvt.explode_bom(
4777: p_api_version => 1.0,
4778: p_commit => fnd_api.g_false,
4779: p_init_msg_list => fnd_api.g_true,
4780: p_validation_level => fnd_api.g_valid_level_full,
4781: p_source_instance_rec => l_bom_std_item_rec,
4782: p_explosion_level => fnd_api.g_miss_num,
4783: p_item_tbl => l_comp_instance_tbl,
4784: p_item_relation_tbl => l_comp_relation_tbl,
4778: p_commit => fnd_api.g_false,
4779: p_init_msg_list => fnd_api.g_true,
4780: p_validation_level => fnd_api.g_valid_level_full,
4781: p_source_instance_rec => l_bom_std_item_rec,
4782: p_explosion_level => fnd_api.g_miss_num,
4783: p_item_tbl => l_comp_instance_tbl,
4784: p_item_relation_tbl => l_comp_relation_tbl,
4785: p_create_instance => fnd_api.g_true,
4786: p_txn_rec => l_csi_txn_rec,
4781: p_source_instance_rec => l_bom_std_item_rec,
4782: p_explosion_level => fnd_api.g_miss_num,
4783: p_item_tbl => l_comp_instance_tbl,
4784: p_item_relation_tbl => l_comp_relation_tbl,
4785: p_create_instance => fnd_api.g_true,
4786: p_txn_rec => l_csi_txn_rec,
4787: x_return_status => l_return_status,
4788: x_msg_count => l_msg_count,
4789: x_msg_data => l_msg_data);
4789: x_msg_data => l_msg_data);
4790:
4791: record_time('End');
4792:
4793: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4794: debug('Failed csi_item_instance_pvt.explode_bom');
4795: RAISE fnd_api.g_exc_error;
4796: END IF;
4797:
4791: record_time('End');
4792:
4793: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4794: debug('Failed csi_item_instance_pvt.explode_bom');
4795: RAISE fnd_api.g_exc_error;
4796: END IF;
4797:
4798: debug(' Trackable components :'||l_comp_instance_tbl.count);
4799: debug(' Component-Of Relationships :'||l_comp_relation_tbl.count);
4811: x_c_ii_rltns_tbl => l_c_ii_rltns_tbl,
4812: x_u_ii_rltns_tbl => l_u_ii_rltns_tbl,
4813: x_return_status => l_return_status);
4814:
4815: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4816: RAISE fnd_api.g_exc_error;
4817: END IF;
4818: END IF; -- px_txn_ii_rltns_tbl.COUNT check
4819: --
4812: x_u_ii_rltns_tbl => l_u_ii_rltns_tbl,
4813: x_return_status => l_return_status);
4814:
4815: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4816: RAISE fnd_api.g_exc_error;
4817: END IF;
4818: END IF; -- px_txn_ii_rltns_tbl.COUNT check
4819: --
4820: -- srramakr TSO with Equipment
4825: -- order line and finally get the item instances.
4826: --
4827: IF p_source_line_rec.item_type_code = 'KIT' AND
4828: l_bom_std_item_rec.instance_id IS NOT NULL AND -- Ensure that KIT Qty = 1
4829: l_bom_std_item_rec.instance_id <> FND_API.G_MISS_NUM THEN
4830: csi_order_fulfill_pub.get_ib_trackable_children
4831: ( p_current_line_id => p_source_line_rec.source_line_id,
4832: p_om_vld_org_id => om_vld_org_id,
4833: x_trackable_line_tbl => l_child_line_tbl,
4832: p_om_vld_org_id => om_vld_org_id,
4833: x_trackable_line_tbl => l_child_line_tbl,
4834: x_return_status => l_return_status);
4835:
4836: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4837: debug('Failed csi_order_fulfill_pub.get_ib_trackable_children');
4838: RAISE fnd_api.g_exc_error;
4839: END IF;
4840: END IF;
4834: x_return_status => l_return_status);
4835:
4836: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4837: debug('Failed csi_order_fulfill_pub.get_ib_trackable_children');
4838: RAISE fnd_api.g_exc_error;
4839: END IF;
4840: END IF;
4841: --
4842: IF l_child_line_tbl.count > 0 THEN
4854: p_pkg_name => 'csi_item_instance_pub');
4855:
4856: csi_item_instance_pub.get_item_instances(
4857: p_api_version => 1.0,
4858: p_commit => fnd_api.g_false,
4859: p_init_msg_list => fnd_api.g_true,
4860: p_validation_level => fnd_api.g_valid_level_full,
4861: p_instance_query_rec => l_inst_query_rec,
4862: p_party_query_rec => l_party_query_rec,
4855:
4856: csi_item_instance_pub.get_item_instances(
4857: p_api_version => 1.0,
4858: p_commit => fnd_api.g_false,
4859: p_init_msg_list => fnd_api.g_true,
4860: p_validation_level => fnd_api.g_valid_level_full,
4861: p_instance_query_rec => l_inst_query_rec,
4862: p_party_query_rec => l_party_query_rec,
4863: p_account_query_rec => l_pty_acct_query_rec,
4856: csi_item_instance_pub.get_item_instances(
4857: p_api_version => 1.0,
4858: p_commit => fnd_api.g_false,
4859: p_init_msg_list => fnd_api.g_true,
4860: p_validation_level => fnd_api.g_valid_level_full,
4861: p_instance_query_rec => l_inst_query_rec,
4862: p_party_query_rec => l_party_query_rec,
4863: p_account_query_rec => l_pty_acct_query_rec,
4864: p_transaction_id => null,
4861: p_instance_query_rec => l_inst_query_rec,
4862: p_party_query_rec => l_party_query_rec,
4863: p_account_query_rec => l_pty_acct_query_rec,
4864: p_transaction_id => null,
4865: p_resolve_id_columns => fnd_api.g_false,
4866: /* Modified the next line for bug 4865052*/
4867: p_active_instance_only => fnd_api.g_false,
4868: x_instance_header_tbl => l_instance_hdr_tbl,
4869: x_return_status => l_return_status,
4863: p_account_query_rec => l_pty_acct_query_rec,
4864: p_transaction_id => null,
4865: p_resolve_id_columns => fnd_api.g_false,
4866: /* Modified the next line for bug 4865052*/
4867: p_active_instance_only => fnd_api.g_false,
4868: x_instance_header_tbl => l_instance_hdr_tbl,
4869: x_return_status => l_return_status,
4870: x_msg_count => l_msg_count,
4871: x_msg_data => l_msg_data);
4869: x_return_status => l_return_status,
4870: x_msg_count => l_msg_count,
4871: x_msg_data => l_msg_data);
4872:
4873: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4874: RAISE fnd_api.g_exc_error;
4875: END IF;
4876: --
4877: IF l_instance_hdr_tbl.count > 0 THEN
4870: x_msg_count => l_msg_count,
4871: x_msg_data => l_msg_data);
4872:
4873: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4874: RAISE fnd_api.g_exc_error;
4875: END IF;
4876: --
4877: IF l_instance_hdr_tbl.count > 0 THEN
4878: FOR inst_hdr IN l_instance_hdr_tbl.FIRST .. l_instance_hdr_tbl.LAST LOOP
4896:
4897: -- create relationship
4898: csi_ii_relationships_pub.create_relationship(
4899: p_api_version => 1.0,
4900: p_commit => fnd_api.g_false,
4901: p_init_msg_list => fnd_api.g_true,
4902: p_validation_level => fnd_api.g_valid_level_full,
4903: p_relationship_tbl => l_c_ii_rltns_tbl,
4904: p_txn_rec => l_csi_txn_rec,
4897: -- create relationship
4898: csi_ii_relationships_pub.create_relationship(
4899: p_api_version => 1.0,
4900: p_commit => fnd_api.g_false,
4901: p_init_msg_list => fnd_api.g_true,
4902: p_validation_level => fnd_api.g_valid_level_full,
4903: p_relationship_tbl => l_c_ii_rltns_tbl,
4904: p_txn_rec => l_csi_txn_rec,
4905: x_return_status => l_return_status,
4898: csi_ii_relationships_pub.create_relationship(
4899: p_api_version => 1.0,
4900: p_commit => fnd_api.g_false,
4901: p_init_msg_list => fnd_api.g_true,
4902: p_validation_level => fnd_api.g_valid_level_full,
4903: p_relationship_tbl => l_c_ii_rltns_tbl,
4904: p_txn_rec => l_csi_txn_rec,
4905: x_return_status => l_return_status,
4906: x_msg_count => l_msg_count,
4905: x_return_status => l_return_status,
4906: x_msg_count => l_msg_count,
4907: x_msg_data => l_msg_data);
4908:
4909: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4910: RAISE fnd_api.g_exc_error;
4911: END IF;
4912: record_time('End');
4913:
4906: x_msg_count => l_msg_count,
4907: x_msg_data => l_msg_data);
4908:
4909: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4910: RAISE fnd_api.g_exc_error;
4911: END IF;
4912: record_time('End');
4913:
4914: FOR l_ind IN l_c_ii_rltns_tbl.FIRST .. l_c_ii_rltns_tbl.LAST
4933: p_txn_line_dtl_tbl => px_txn_line_dtl_tbl,
4934: p_processing_status => 'PROCESSED',
4935: x_return_status => l_return_status);
4936:
4937: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4938: RAISE fnd_api.g_exc_error;
4939: END IF;
4940:
4941: debug('Transaction details interfaced to IB successfully.');
4934: p_processing_status => 'PROCESSED',
4935: x_return_status => l_return_status);
4936:
4937: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4938: RAISE fnd_api.g_exc_error;
4939: END IF;
4940:
4941: debug('Transaction details interfaced to IB successfully.');
4942:
4941: debug('Transaction details interfaced to IB successfully.');
4942:
4943: EXCEPTION
4944:
4945: WHEN fnd_api.g_exc_error THEN
4946: x_return_status := fnd_api.g_ret_sts_error ;
4947: x_return_message := csi_t_gen_utility_pvt.dump_error_stack;
4948: debug('Error in Interface_IB: '||x_return_message);
4949: WHEN others THEN
4942:
4943: EXCEPTION
4944:
4945: WHEN fnd_api.g_exc_error THEN
4946: x_return_status := fnd_api.g_ret_sts_error ;
4947: x_return_message := csi_t_gen_utility_pvt.dump_error_stack;
4948: debug('Error in Interface_IB: '||x_return_message);
4949: WHEN others THEN
4950:
4951: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
4952: fnd_message.set_token('MESSAGE', substr(sqlerrm, 1, 240));
4953: fnd_msg_pub.add;
4954:
4955: x_return_status := fnd_api.g_ret_sts_unexp_error ;
4956: x_return_message := csi_t_gen_utility_pvt.dump_error_stack;
4957: debug('Error in Interface_IB: '||x_return_message);
4958:
4959: END interface_ib;
4974: l_MACD_processing boolean := TRUE;
4975:
4976: BEGIN
4977:
4978: x_return_status := fnd_api.g_ret_sts_success;
4979:
4980: IF p_config_session_key.session_hdr_id is not null
4981: AND
4982: p_config_session_key.session_rev_num is not null
5032:
5033: RETURN l_MACD_processing;
5034:
5035: EXCEPTION
5036: WHEN fnd_api.g_exc_error THEN
5037: x_return_status := fnd_api.g_ret_sts_error;
5038: END check_MACD_processing;
5039:
5040: --
5033: RETURN l_MACD_processing;
5034:
5035: EXCEPTION
5036: WHEN fnd_api.g_exc_error THEN
5037: x_return_status := fnd_api.g_ret_sts_error;
5038: END check_MACD_processing;
5039:
5040: --
5041: --
5115:
5116: EXCEPTION
5117: WHEN no_explosion THEN
5118: RETURN FALSE;
5119: WHEN fnd_api.g_exc_error THEN
5120: RETURN FALSE;
5121:
5122: END check_standard_bom_pc;
5123:
5186: AND msi.inventory_item_id = mmt.inventory_item_id
5187: AND msi.lot_control_code = 2; -- lot control case
5188: BEGIN
5189:
5190: x_return_status := fnd_api.g_ret_sts_success;
5191:
5192: FOR mtl_txn_rec IN mtl_txn_cur(p_mtl_txn_id)
5193: LOOP
5194:
5194:
5195: l_mtl_rec.trx_source_line_id := mtl_txn_rec.trx_source_line_id;
5196: l_mtl_rec.inventory_item_id := mtl_txn_rec.inventory_item_id;
5197: l_mtl_rec.organization_id := mtl_txn_rec.organization_id;
5198: l_mtl_rec.revision := nvl(mtl_txn_rec.revision,fnd_api.g_miss_char);
5199: l_mtl_rec.subinventory_code := mtl_txn_rec.subinventory_code;
5200: l_mtl_rec.locator_id := mtl_txn_rec.locator_id;
5201: l_mtl_rec.lot_number := nvl(mtl_txn_rec.lot_number,fnd_api.g_miss_char);
5202: l_mtl_rec.serial_number := nvl(mtl_txn_rec.serial_number,fnd_api.g_miss_char);
5197: l_mtl_rec.organization_id := mtl_txn_rec.organization_id;
5198: l_mtl_rec.revision := nvl(mtl_txn_rec.revision,fnd_api.g_miss_char);
5199: l_mtl_rec.subinventory_code := mtl_txn_rec.subinventory_code;
5200: l_mtl_rec.locator_id := mtl_txn_rec.locator_id;
5201: l_mtl_rec.lot_number := nvl(mtl_txn_rec.lot_number,fnd_api.g_miss_char);
5202: l_mtl_rec.serial_number := nvl(mtl_txn_rec.serial_number,fnd_api.g_miss_char);
5203: l_mtl_rec.transaction_quantity := mtl_txn_rec.transaction_quantity;
5204: l_mtl_rec.transaction_uom := mtl_txn_rec.transaction_uom;
5205: l_mtl_rec.transaction_date := mtl_txn_rec.transaction_date;
5198: l_mtl_rec.revision := nvl(mtl_txn_rec.revision,fnd_api.g_miss_char);
5199: l_mtl_rec.subinventory_code := mtl_txn_rec.subinventory_code;
5200: l_mtl_rec.locator_id := mtl_txn_rec.locator_id;
5201: l_mtl_rec.lot_number := nvl(mtl_txn_rec.lot_number,fnd_api.g_miss_char);
5202: l_mtl_rec.serial_number := nvl(mtl_txn_rec.serial_number,fnd_api.g_miss_char);
5203: l_mtl_rec.transaction_quantity := mtl_txn_rec.transaction_quantity;
5204: l_mtl_rec.transaction_uom := mtl_txn_rec.transaction_uom;
5205: l_mtl_rec.transaction_date := mtl_txn_rec.transaction_date;
5206: l_mtl_rec.lot_control_code := mtl_txn_rec.lot_control_code;
5216:
5217: x_mtl_txn_tbl := l_mtl_tbl;
5218:
5219: EXCEPTION
5220: WHEN fnd_api.g_exc_error THEN
5221: x_return_status := fnd_api.g_ret_sts_error;
5222: END get_mtl_txn_tbl;
5223:
5224: PROCEDURE get_inventory_instances(
5217: x_mtl_txn_tbl := l_mtl_tbl;
5218:
5219: EXCEPTION
5220: WHEN fnd_api.g_exc_error THEN
5221: x_return_status := fnd_api.g_ret_sts_error;
5222: END get_mtl_txn_tbl;
5223:
5224: PROCEDURE get_inventory_instances(
5225: p_item_attrib_rec IN item_attributes_rec,
5233: l_party_query_rec csi_datastructures_pub.party_query_rec;
5234: l_pty_acct_query_rec csi_datastructures_pub.party_account_query_rec;
5235: l_inst_hdr_tbl csi_datastructures_pub.instance_header_tbl;
5236:
5237: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5238: l_msg_count number;
5239: l_msg_data varchar2(2000);
5240:
5241: BEGIN
5239: l_msg_data varchar2(2000);
5240:
5241: BEGIN
5242:
5243: x_return_status := fnd_api.g_ret_sts_success;
5244:
5245: api_log('get_inventory_instances');
5246:
5247: l_mtl_tbl := px_mtl_txn_tbl;
5283: p_api_name => 'get_item_instances');
5284:
5285: csi_item_instance_pub.get_item_instances(
5286: p_api_version => 1.0,
5287: p_commit => fnd_api.g_false,
5288: p_init_msg_list => fnd_api.g_true,
5289: p_validation_level => fnd_api.g_valid_level_full,
5290: p_instance_query_rec => l_inst_query_rec,
5291: p_party_query_rec => l_party_query_rec,
5284:
5285: csi_item_instance_pub.get_item_instances(
5286: p_api_version => 1.0,
5287: p_commit => fnd_api.g_false,
5288: p_init_msg_list => fnd_api.g_true,
5289: p_validation_level => fnd_api.g_valid_level_full,
5290: p_instance_query_rec => l_inst_query_rec,
5291: p_party_query_rec => l_party_query_rec,
5292: p_account_query_rec => l_pty_acct_query_rec,
5285: csi_item_instance_pub.get_item_instances(
5286: p_api_version => 1.0,
5287: p_commit => fnd_api.g_false,
5288: p_init_msg_list => fnd_api.g_true,
5289: p_validation_level => fnd_api.g_valid_level_full,
5290: p_instance_query_rec => l_inst_query_rec,
5291: p_party_query_rec => l_party_query_rec,
5292: p_account_query_rec => l_pty_acct_query_rec,
5293: p_transaction_id => null,
5290: p_instance_query_rec => l_inst_query_rec,
5291: p_party_query_rec => l_party_query_rec,
5292: p_account_query_rec => l_pty_acct_query_rec,
5293: p_transaction_id => null,
5294: p_resolve_id_columns => fnd_api.g_false,
5295: p_active_instance_only => fnd_api.g_false,
5296: x_instance_header_tbl => l_inst_hdr_tbl,
5297: x_return_status => l_return_status,
5298: x_msg_count => l_msg_count,
5291: p_party_query_rec => l_party_query_rec,
5292: p_account_query_rec => l_pty_acct_query_rec,
5293: p_transaction_id => null,
5294: p_resolve_id_columns => fnd_api.g_false,
5295: p_active_instance_only => fnd_api.g_false,
5296: x_instance_header_tbl => l_inst_hdr_tbl,
5297: x_return_status => l_return_status,
5298: x_msg_count => l_msg_count,
5299: x_msg_data => l_msg_data);
5297: x_return_status => l_return_status,
5298: x_msg_count => l_msg_count,
5299: x_msg_data => l_msg_data);
5300:
5301: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5302: RAISE fnd_api.g_exc_error;
5303: END IF;
5304:
5305: IF l_inst_hdr_tbl.count = 0 THEN
5298: x_msg_count => l_msg_count,
5299: x_msg_data => l_msg_data);
5300:
5301: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5302: RAISE fnd_api.g_exc_error;
5303: END IF;
5304:
5305: IF l_inst_hdr_tbl.count = 0 THEN
5306:
5318: fnd_message.set_token('INV_ORG_ID', l_mtl_tbl(l_ind).organization_id);
5319: fnd_message.set_token('SUBINV', l_mtl_tbl(l_ind).subinventory_code);
5320: fnd_message.set_token('LOCATOR', l_mtl_tbl(l_ind).locator_id);
5321: fnd_msg_pub.add;
5322: RAISE fnd_api.g_exc_error;
5323: END IF;
5324: ELSE
5325: IF l_inst_hdr_tbl.count = 1 THEN
5326: l_mtl_tbl(l_ind).instance_id := l_inst_hdr_tbl(1).instance_id;
5333: fnd_message.set_token('INV_ORG_ID', l_mtl_tbl(l_ind).organization_id);
5334: fnd_message.set_token('SUBINV', l_mtl_tbl(l_ind).subinventory_code);
5335: fnd_message.set_token('LOCATOR', l_mtl_tbl(l_ind).locator_id);
5336: fnd_msg_pub.add;
5337: RAISE fnd_api.g_exc_error;
5338: END IF;
5339: END IF;
5340:
5341: <
5346:
5347: px_mtl_txn_tbl := l_mtl_tbl;
5348:
5349: EXCEPTION
5350: WHEN fnd_api.g_exc_error THEN
5351: x_return_status := fnd_api.g_ret_sts_error;
5352: END get_inventory_instances;
5353:
5354: PROCEDURE pre_process_mtl_txn_tbl(
5347: px_mtl_txn_tbl := l_mtl_tbl;
5348:
5349: EXCEPTION
5350: WHEN fnd_api.g_exc_error THEN
5351: x_return_status := fnd_api.g_ret_sts_error;
5352: END get_inventory_instances;
5353:
5354: PROCEDURE pre_process_mtl_txn_tbl(
5355: p_item_attrib_rec IN item_attributes_rec,
5360: l_dest_serial_flag varchar2(1);
5361: l_create_update_flag varchar2(1);
5362: BEGIN
5363:
5364: x_return_status := fnd_api.g_ret_sts_success;
5365: api_log('pre_process_mtl_txn_tbl');
5366:
5367: IF p_item_attrib_rec.serial_control_code in (2,5) THEN
5368: l_src_serial_flag := 'Y';
5391: END LOOP;
5392: END IF;
5393:
5394: EXCEPTION
5395: WHEN fnd_api.g_exc_error THEN
5396: x_return_status := fnd_api.g_ret_sts_error;
5397: END pre_process_mtl_txn_tbl;
5398:
5399:
5392: END IF;
5393:
5394: EXCEPTION
5395: WHEN fnd_api.g_exc_error THEN
5396: x_return_status := fnd_api.g_ret_sts_error;
5397: END pre_process_mtl_txn_tbl;
5398:
5399:
5400: PROCEDURE get_dflt_inv_location(
5417: fnd_message.set_name('CSI','CSI_INT_DEST_SUBINV_INVALID');
5418: fnd_message.set_token('INV_ORG_ID',p_organization_id);
5419: fnd_message.set_token('SUBINV_ID',p_subinventory_code);
5420: fnd_msg_pub.add;
5421: RAISE fnd_api.g_exc_error;
5422: END;
5423:
5424: IF l_location_id is null THEN
5425: BEGIN
5431: WHEN no_data_found THEN
5432: fnd_message.set_name('CSI','CSI_INT_DEST_ORG_ID_INVALID');
5433: fnd_message.set_token('INV_ORG_ID',p_organization_id);
5434: fnd_msg_pub.add;
5435: RAISE fnd_api.g_exc_error;
5436: END;
5437: END IF;
5438:
5439: x_location_id := l_location_id;
5438:
5439: x_location_id := l_location_id;
5440:
5441: EXCEPTION
5442: WHEN fnd_api.g_exc_error THEN
5443: x_return_status := fnd_api.g_ret_sts_error;
5444: END get_dflt_inv_location;
5445:
5446: PROCEDURE create_inv_negative_instance(
5439: x_location_id := l_location_id;
5440:
5441: EXCEPTION
5442: WHEN fnd_api.g_exc_error THEN
5443: x_return_status := fnd_api.g_ret_sts_error;
5444: END get_dflt_inv_location;
5445:
5446: PROCEDURE create_inv_negative_instance(
5447: px_mtl_txn_rec IN OUT NOCOPY mtl_txn_rec,
5458: l_assets_tbl csi_datastructures_pub.instance_asset_tbl;
5459:
5460: l_internal_party_id number;
5461:
5462: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5463: l_msg_count number;
5464: l_msg_data varchar2(2000);
5465:
5466: BEGIN
5464: l_msg_data varchar2(2000);
5465:
5466: BEGIN
5467:
5468: x_return_status := fnd_api.g_ret_sts_success;
5469:
5470: api_log('create_inv_negative_instance');
5471:
5472: l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
5474: l_instance_rec.inventory_item_id := px_mtl_txn_rec.inventory_item_id;
5475: l_instance_rec.inventory_revision := px_mtl_txn_rec.revision;
5476: l_instance_rec.inv_subinventory_name := px_mtl_txn_rec.subinventory_code;
5477: -- this is always a non serial instance
5478: l_instance_rec.serial_number := fnd_api.g_miss_char;
5479: l_instance_rec.lot_number := px_mtl_txn_rec.lot_number;
5480: l_instance_rec.quantity := p_quantity;
5481: l_instance_rec.active_start_date := sysdate;
5482: l_instance_rec.active_end_date := null;
5508:
5509: -- creation of negative quantity inventory instance
5510: csi_item_instance_pub.create_item_instance(
5511: p_api_version => 1.0,
5512: p_commit => fnd_api.g_false,
5513: p_init_msg_list => fnd_api.g_true,
5514: p_validation_level => fnd_api.g_valid_level_full,
5515: p_instance_rec => l_instance_rec,
5516: p_party_tbl => l_parties_tbl,
5509: -- creation of negative quantity inventory instance
5510: csi_item_instance_pub.create_item_instance(
5511: p_api_version => 1.0,
5512: p_commit => fnd_api.g_false,
5513: p_init_msg_list => fnd_api.g_true,
5514: p_validation_level => fnd_api.g_valid_level_full,
5515: p_instance_rec => l_instance_rec,
5516: p_party_tbl => l_parties_tbl,
5517: p_account_tbl => l_pty_accts_tbl,
5510: csi_item_instance_pub.create_item_instance(
5511: p_api_version => 1.0,
5512: p_commit => fnd_api.g_false,
5513: p_init_msg_list => fnd_api.g_true,
5514: p_validation_level => fnd_api.g_valid_level_full,
5515: p_instance_rec => l_instance_rec,
5516: p_party_tbl => l_parties_tbl,
5517: p_account_tbl => l_pty_accts_tbl,
5518: p_org_assignments_tbl => l_org_units_tbl,
5523: x_return_status => l_return_status,
5524: x_msg_count => l_msg_count,
5525: x_msg_data => l_msg_data );
5526:
5527: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
5528: raise fnd_api.g_exc_error;
5529: END IF;
5530:
5531: px_mtl_txn_rec.instance_id := l_instance_rec.instance_id;
5524: x_msg_count => l_msg_count,
5525: x_msg_data => l_msg_data );
5526:
5527: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
5528: raise fnd_api.g_exc_error;
5529: END IF;
5530:
5531: px_mtl_txn_rec.instance_id := l_instance_rec.instance_id;
5532: px_mtl_txn_rec.object_version_num := l_instance_rec.object_version_number;
5531: px_mtl_txn_rec.instance_id := l_instance_rec.instance_id;
5532: px_mtl_txn_rec.object_version_num := l_instance_rec.object_version_number;
5533:
5534: EXCEPTION
5535: WHEN fnd_api.g_exc_error THEN
5536: x_return_status := fnd_api.g_ret_sts_error;
5537: END create_inv_negative_instance;
5538:
5539:
5532: px_mtl_txn_rec.object_version_num := l_instance_rec.object_version_number;
5533:
5534: EXCEPTION
5535: WHEN fnd_api.g_exc_error THEN
5536: x_return_status := fnd_api.g_ret_sts_error;
5537: END create_inv_negative_instance;
5538:
5539:
5540: PROCEDURE decrement_inventory_instnace(
5552: l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
5553: l_org_units_tbl csi_datastructures_pub.organization_units_tbl;
5554: l_inst_id_lst csi_datastructures_pub.id_tbl;
5555:
5556: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5557: l_msg_count number;
5558: l_msg_data varchar2(2000);
5559:
5560: BEGIN
5558: l_msg_data varchar2(2000);
5559:
5560: BEGIN
5561:
5562: x_return_status := fnd_api.g_ret_sts_success;
5563:
5564: api_log('decrement_inventory_instnace');
5565:
5566: l_instance_rec.instance_id := p_instance_id;
5601:
5602: /* decrement the inventory source instance */
5603: csi_item_instance_pub.update_item_instance(
5604: p_api_version => 1.0,
5605: p_commit => fnd_api.g_false,
5606: p_init_msg_list => fnd_api.g_true,
5607: p_validation_level => fnd_api.g_valid_level_full,
5608: p_instance_rec => l_instance_rec,
5609: p_ext_attrib_values_tbl => l_ext_attrib_val_tbl,
5602: /* decrement the inventory source instance */
5603: csi_item_instance_pub.update_item_instance(
5604: p_api_version => 1.0,
5605: p_commit => fnd_api.g_false,
5606: p_init_msg_list => fnd_api.g_true,
5607: p_validation_level => fnd_api.g_valid_level_full,
5608: p_instance_rec => l_instance_rec,
5609: p_ext_attrib_values_tbl => l_ext_attrib_val_tbl,
5610: p_party_tbl => l_party_tbl,
5603: csi_item_instance_pub.update_item_instance(
5604: p_api_version => 1.0,
5605: p_commit => fnd_api.g_false,
5606: p_init_msg_list => fnd_api.g_true,
5607: p_validation_level => fnd_api.g_valid_level_full,
5608: p_instance_rec => l_instance_rec,
5609: p_ext_attrib_values_tbl => l_ext_attrib_val_tbl,
5610: p_party_tbl => l_party_tbl,
5611: p_account_tbl => l_party_acct_tbl,
5618: x_msg_count => l_msg_count,
5619: x_msg_data => l_msg_data);
5620:
5621: -- For Bug 4057183
5622: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
5623: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
5624: raise fnd_api.g_exc_error;
5625: END IF;
5626:
5619: x_msg_data => l_msg_data);
5620:
5621: -- For Bug 4057183
5622: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
5623: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
5624: raise fnd_api.g_exc_error;
5625: END IF;
5626:
5627: record_time('End');
5620:
5621: -- For Bug 4057183
5622: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
5623: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
5624: raise fnd_api.g_exc_error;
5625: END IF;
5626:
5627: record_time('End');
5628:
5626:
5627: record_time('End');
5628:
5629: EXCEPTION
5630: WHEN fnd_api.g_exc_error THEN
5631: x_return_status := fnd_api.g_ret_sts_error;
5632: END decrement_inventory_instnace;
5633:
5634: PROCEDURE decrement_inventory_instances(
5627: record_time('End');
5628:
5629: EXCEPTION
5630: WHEN fnd_api.g_exc_error THEN
5631: x_return_status := fnd_api.g_ret_sts_error;
5632: END decrement_inventory_instnace;
5633:
5634: PROCEDURE decrement_inventory_instances(
5635: p_item_attrib_rec IN item_attributes_rec,
5636: p_mtl_txn_tbl IN OUT NOCOPY mtl_txn_tbl,
5637: px_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
5638: x_return_status OUT NOCOPY varchar2)
5639: IS
5640: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5641: BEGIN
5642: x_return_status := fnd_api.g_ret_sts_success;
5643: api_log('decrement_inventory_instances');
5644:
5638: x_return_status OUT NOCOPY varchar2)
5639: IS
5640: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5641: BEGIN
5642: x_return_status := fnd_api.g_ret_sts_success;
5643: api_log('decrement_inventory_instances');
5644:
5645: IF p_mtl_txn_tbl.count > 0 THEN
5646:
5645: IF p_mtl_txn_tbl.count > 0 THEN
5646:
5647: IF p_item_attrib_rec.serial_control_code = 6 THEN
5648:
5649: IF nvl(p_mtl_txn_tbl(1).instance_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
5650: decrement_inventory_instnace(
5651: p_instance_id => p_mtl_txn_tbl(1).instance_id,
5652: p_quantity => px_txn_rec.transaction_quantity,
5653: px_txn_rec => px_txn_rec,
5651: p_instance_id => p_mtl_txn_tbl(1).instance_id,
5652: p_quantity => px_txn_rec.transaction_quantity,
5653: px_txn_rec => px_txn_rec,
5654: x_return_status => l_return_status);
5655: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5656: raise fnd_api.g_exc_error;
5657: END IF;
5658: ELSE
5659: IF p_mtl_txn_tbl(1).negative_instance_flag = 'Y' THEN
5652: p_quantity => px_txn_rec.transaction_quantity,
5653: px_txn_rec => px_txn_rec,
5654: x_return_status => l_return_status);
5655: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5656: raise fnd_api.g_exc_error;
5657: END IF;
5658: ELSE
5659: IF p_mtl_txn_tbl(1).negative_instance_flag = 'Y' THEN
5660:
5663: p_quantity => (-1)*(px_txn_rec.transaction_quantity),
5664: px_txn_rec => px_txn_rec,
5665: x_return_status => l_return_status);
5666:
5667: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5668: RAISE fnd_api.g_exc_error;
5669: END IF;
5670:
5671: END IF;
5664: px_txn_rec => px_txn_rec,
5665: x_return_status => l_return_status);
5666:
5667: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5668: RAISE fnd_api.g_exc_error;
5669: END IF;
5670:
5671: END IF;
5672: END IF;
5675: FOR l_ind IN p_mtl_txn_tbl.FIRST .. p_mtl_txn_tbl.LAST
5676: LOOP
5677: IF p_mtl_txn_tbl(l_ind).create_update_flag = 'C' THEN
5678:
5679: IF nvl(p_mtl_txn_tbl(l_ind).instance_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
5680: decrement_inventory_instnace(
5681: p_instance_id => p_mtl_txn_tbl(l_ind).instance_id,
5682: p_quantity => p_mtl_txn_tbl(l_ind).primary_quantity,
5683: px_txn_rec => px_txn_rec,
5682: p_quantity => p_mtl_txn_tbl(l_ind).primary_quantity,
5683: px_txn_rec => px_txn_rec,
5684: x_return_status => l_return_status);
5685:
5686: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5687: RAISE fnd_api.g_exc_error;
5688: END IF;
5689: ELSE
5690: IF p_mtl_txn_tbl(1).negative_instance_flag = 'Y' THEN
5683: px_txn_rec => px_txn_rec,
5684: x_return_status => l_return_status);
5685:
5686: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5687: RAISE fnd_api.g_exc_error;
5688: END IF;
5689: ELSE
5690: IF p_mtl_txn_tbl(1).negative_instance_flag = 'Y' THEN
5691:
5694: p_quantity => (-1)*(p_mtl_txn_tbl(l_ind).primary_quantity),
5695: px_txn_rec => px_txn_rec,
5696: x_return_status => l_return_status);
5697:
5698: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5699: RAISE fnd_api.g_exc_error;
5700: END IF;
5701:
5702: END IF;
5695: px_txn_rec => px_txn_rec,
5696: x_return_status => l_return_status);
5697:
5698: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5699: RAISE fnd_api.g_exc_error;
5700: END IF;
5701:
5702: END IF;
5703: END IF;
5707: END IF;
5708: END IF;
5709:
5710: EXCEPTION
5711: WHEN fnd_api.g_exc_error THEN
5712: x_return_status := fnd_api.g_ret_sts_error;
5713: END decrement_inventory_instances;
5714:
5715: PROCEDURE initialize_txn_details(
5708: END IF;
5709:
5710: EXCEPTION
5711: WHEN fnd_api.g_exc_error THEN
5712: x_return_status := fnd_api.g_ret_sts_error;
5713: END decrement_inventory_instances;
5714:
5715: PROCEDURE initialize_txn_details(
5716: px_txn_line_rec IN OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
5746: x_return_status OUT NOCOPY varchar2)
5747: IS
5748: l_tld_tbl csi_t_datastructures_grp.txn_line_detail_tbl;
5749: BEGIN
5750: x_return_status := fnd_api.g_ret_sts_success;
5751: api_log('pre_process_txn_line_dtl');
5752: l_tld_tbl := px_txn_line_dtl_tbl;
5753:
5754: IF l_tld_tbl.COUNT > 0 THEN
5759:
5760: -- source_txn_line_details -- to match with the children
5761: l_tld_tbl(l_ind).source_txn_line_detail_id := l_ind;
5762:
5763: IF nvl(l_tld_tbl(l_ind).instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
5764: -- derive all the information (serial, lot, locator, rev etc ).
5765: null;
5766: ELSE
5767: IF nvl(l_tld_tbl(l_ind).serial_number, fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
5763: IF nvl(l_tld_tbl(l_ind).instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
5764: -- derive all the information (serial, lot, locator, rev etc ).
5765: null;
5766: ELSE
5767: IF nvl(l_tld_tbl(l_ind).serial_number, fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
5768: -- get the instance_id for the item serial comb
5769: null;
5770: END IF;
5771: END IF;
5774:
5775: px_txn_line_dtl_tbl := l_tld_tbl;
5776:
5777: EXCEPTION
5778: WHEN fnd_api.g_exc_error THEN
5779: x_return_status := fnd_api.g_ret_sts_error;
5780: END pre_process_txn_line_dtl;
5781:
5782: PROCEDURE split_tld_one_each(
5775: px_txn_line_dtl_tbl := l_tld_tbl;
5776:
5777: EXCEPTION
5778: WHEN fnd_api.g_exc_error THEN
5779: x_return_status := fnd_api.g_ret_sts_error;
5780: END pre_process_txn_line_dtl;
5781:
5782: PROCEDURE split_tld_one_each(
5783: px_txn_line_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
5809: l_eav_ind binary_integer := 0;
5810: l_iir_ind binary_integer := 0;
5811:
5812: BEGIN
5813: x_return_status := fnd_api.g_ret_sts_success;
5814: api_log('split_tld_one_each');
5815:
5816: l_tld_tbl := px_txn_line_dtl_tbl;
5817: l_pd_tbl := px_txn_party_dtl_tbl;
5861: END LOOP; -- tld_tbl loop
5862: END IF;
5863:
5864: EXCEPTION
5865: WHEN fnd_api.g_exc_error THEN
5866: x_return_status := fnd_api.g_ret_sts_error;
5867: END split_tld_one_each;
5868:
5869: PROCEDURE sync_serials(
5862: END IF;
5863:
5864: EXCEPTION
5865: WHEN fnd_api.g_exc_error THEN
5866: x_return_status := fnd_api.g_ret_sts_error;
5867: END split_tld_one_each;
5868:
5869: PROCEDURE sync_serials(
5870: p_mtl_txn_tbl IN mtl_txn_tbl,
5875: l_tld_tbl csi_t_datastructures_grp.txn_line_detail_tbl;
5876: l_m_tld_tbl csi_t_datastructures_grp.txn_line_detail_tbl;
5877: l_m_ind binary_integer := 0;
5878: BEGIN
5879: x_return_status := fnd_api.g_ret_sts_success;
5880: api_log('sync_serials');
5881:
5882: l_mtl_tbl := p_mtl_txn_tbl;
5883: l_tld_tbl := px_txn_line_dtl_tbl;
5967:
5968: px_txn_line_dtl_tbl := l_m_tld_tbl;
5969:
5970: EXCEPTION
5971: WHEN fnd_api.g_exc_error THEN
5972: x_return_status := fnd_api.g_ret_sts_error;
5973: END sync_serials;
5974:
5975: PROCEDURE sync_lots(
5968: px_txn_line_dtl_tbl := l_m_tld_tbl;
5969:
5970: EXCEPTION
5971: WHEN fnd_api.g_exc_error THEN
5972: x_return_status := fnd_api.g_ret_sts_error;
5973: END sync_serials;
5974:
5975: PROCEDURE sync_lots(
5976: p_mtl_txn_tbl IN mtl_txn_tbl,
5985: t_n_ind binary_integer := 0;
5986: l_remain_qty number := 0;
5987:
5988: BEGIN
5989: x_return_status := fnd_api.g_ret_sts_success;
5990: api_log('sync_lots');
5991:
5992: l_mtl_tbl := p_mtl_txn_tbl;
5993: l_tld_tbl := px_txn_line_dtl_tbl;
6050:
6051: l_tld_tbl(t_ind).error_code := 'Y';
6052: l_mtl_tbl(m_ind).match_flag := 'Y';
6053: l_tld_tbl(t_ind).lot_number := l_mtl_tbl(m_ind).lot_number;
6054: l_tld_tbl(t_ind).instance_id := fnd_api.g_miss_num;
6055: l_tld_tbl(t_ind).instance_exists_flag := 'N';
6056:
6057: exit;
6058:
6074: l_tld_tbl(t_ind).error_code := 'Y';
6075: l_mtl_tbl(m_ind).match_flag := 'Y';
6076: l_tld_tbl(t_ind).lot_number := l_mtl_tbl(m_ind).lot_number;
6077: l_tld_tbl(t_ind).quantity := l_mtl_tbl(m_ind).primary_quantity;
6078: l_tld_tbl(t_ind).instance_id := fnd_api.g_miss_num;
6079: l_tld_tbl(t_ind).instance_exists_flag := 'N';
6080:
6081: exit;
6082:
6106: px_txn_line_dtl_tbl := l_m_tld_tbl;
6107:
6108:
6109: EXCEPTION
6110: WHEN fnd_api.g_exc_error THEN
6111: x_return_status := fnd_api.g_ret_sts_error;
6112: END sync_lots;
6113:
6114: PROCEDURE sync_txn_dtl_and_mtl_txn(
6107:
6108:
6109: EXCEPTION
6110: WHEN fnd_api.g_exc_error THEN
6111: x_return_status := fnd_api.g_ret_sts_error;
6112: END sync_lots;
6113:
6114: PROCEDURE sync_txn_dtl_and_mtl_txn(
6115: p_mtl_txn_tbl IN mtl_txn_tbl,
6127: l_pa_tbl csi_t_datastructures_grp.txn_pty_acct_detail_tbl;
6128: l_oa_tbl csi_t_datastructures_grp.txn_org_assgn_tbl;
6129: l_eav_tbl csi_t_datastructures_grp.txn_ext_attrib_vals_tbl;
6130: l_iir_tbl csi_t_datastructures_grp.txn_ii_rltns_tbl;
6131: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6132: BEGIN
6133: x_return_status := fnd_api.g_ret_sts_success;
6134: api_log('sync_txn_dtl_and_mtl_txn');
6135:
6129: l_eav_tbl csi_t_datastructures_grp.txn_ext_attrib_vals_tbl;
6130: l_iir_tbl csi_t_datastructures_grp.txn_ii_rltns_tbl;
6131: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6132: BEGIN
6133: x_return_status := fnd_api.g_ret_sts_success;
6134: api_log('sync_txn_dtl_and_mtl_txn');
6135:
6136: l_tld_tbl := px_txn_line_dtl_tbl;
6137: l_pd_tbl := px_txn_party_dtl_tbl;
6144: px_txn_line_dtl_tbl => l_tld_tbl,
6145: p_item_attrib_rec => p_item_attrib_rec,
6146: x_return_status => l_return_status);
6147:
6148: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6149: RAISE fnd_api.g_exc_error;
6150: END IF;
6151:
6152: IF p_mtl_txn_tbl.COUNT > 0 THEN
6145: p_item_attrib_rec => p_item_attrib_rec,
6146: x_return_status => l_return_status);
6147:
6148: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6149: RAISE fnd_api.g_exc_error;
6150: END IF;
6151:
6152: IF p_mtl_txn_tbl.COUNT > 0 THEN
6153:
6194: px_txn_eav_tbl := l_eav_tbl;
6195: px_txn_ii_rltns_tbl := l_iir_tbl;
6196:
6197: EXCEPTION
6198: WHEN fnd_api.g_exc_error THEN
6199: x_return_status := fnd_api.g_ret_sts_error;
6200: END sync_txn_dtl_and_mtl_txn;
6201:
6202:
6195: px_txn_ii_rltns_tbl := l_iir_tbl;
6196:
6197: EXCEPTION
6198: WHEN fnd_api.g_exc_error THEN
6199: x_return_status := fnd_api.g_ret_sts_error;
6200: END sync_txn_dtl_and_mtl_txn;
6201:
6202:
6203: PROCEDURE default_owner_pty_and_acct(
6216:
6217: BEGIN
6218:
6219: api_log('default_owner_pty_and_acct');
6220: x_return_status := fnd_api.g_ret_sts_success;
6221:
6222: IF px_txn_line_dtl_tbl.COUNT > 0 THEN
6223:
6224: SELECT owner_party_account_id,
6242:
6243: -- check if owner is there
6244: l_pt_ind := px_txn_party_dtl_tbl.COUNT + 1;
6245:
6246: px_txn_party_dtl_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
6247: px_txn_party_dtl_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
6248: px_txn_party_dtl_tbl(l_pt_ind).party_source_table := l_party_source_table;
6249: px_txn_party_dtl_tbl(l_pt_ind).party_source_id := l_owner_party_id;
6250: px_txn_party_dtl_tbl(l_pt_ind).relationship_type_code := 'OWNER';
6243: -- check if owner is there
6244: l_pt_ind := px_txn_party_dtl_tbl.COUNT + 1;
6245:
6246: px_txn_party_dtl_tbl(l_pt_ind).txn_party_detail_id := fnd_api.g_miss_num;
6247: px_txn_party_dtl_tbl(l_pt_ind).txn_line_detail_id := fnd_api.g_miss_num;
6248: px_txn_party_dtl_tbl(l_pt_ind).party_source_table := l_party_source_table;
6249: px_txn_party_dtl_tbl(l_pt_ind).party_source_id := l_owner_party_id;
6250: px_txn_party_dtl_tbl(l_pt_ind).relationship_type_code := 'OWNER';
6251: px_txn_party_dtl_tbl(l_pt_ind).contact_flag := 'N';
6254: IF l_owner_party_acct_id IS NOT null THEN
6255:
6256: l_pa_ind := px_txn_party_acct_tbl.COUNT + 1;
6257:
6258: px_txn_party_acct_tbl(l_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
6259: px_txn_party_acct_tbl(l_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
6260: px_txn_party_acct_tbl(l_pa_ind).account_id := l_owner_party_acct_id;
6261: px_txn_party_acct_tbl(l_pa_ind).relationship_type_code := 'OWNER';
6262: px_txn_party_acct_tbl(l_pa_ind).txn_party_details_index := l_pt_ind;
6255:
6256: l_pa_ind := px_txn_party_acct_tbl.COUNT + 1;
6257:
6258: px_txn_party_acct_tbl(l_pa_ind).txn_account_detail_id := fnd_api.g_miss_num;
6259: px_txn_party_acct_tbl(l_pa_ind).txn_party_detail_id := fnd_api.g_miss_num;
6260: px_txn_party_acct_tbl(l_pa_ind).account_id := l_owner_party_acct_id;
6261: px_txn_party_acct_tbl(l_pa_ind).relationship_type_code := 'OWNER';
6262: px_txn_party_acct_tbl(l_pa_ind).txn_party_details_index := l_pt_ind;
6263:
6267: END IF;
6268: END IF;
6269:
6270: EXCEPTION
6271: WHEN fnd_api.g_exc_error THEN
6272: x_return_status := fnd_api.g_ret_sts_error;
6273: END default_owner_pty_and_acct;
6274:
6275: --
6268: END IF;
6269:
6270: EXCEPTION
6271: WHEN fnd_api.g_exc_error THEN
6272: x_return_status := fnd_api.g_ret_sts_error;
6273: END default_owner_pty_and_acct;
6274:
6275: --
6276: --
6297: l_ir_tbl csi_t_datastructures_grp.txn_ii_rltns_tbl;
6298: l_pr_tbl csi_datastructures_pub.pricing_attribs_tbl;
6299: l_sy_tbl csi_t_datastructures_grp.txn_systems_tbl;
6300:
6301: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6302: l_return_message varchar2(2000);
6303:
6304: BEGIN
6305: x_return_status := fnd_api.g_ret_sts_success;
6301: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6302: l_return_message varchar2(2000);
6303:
6304: BEGIN
6305: x_return_status := fnd_api.g_ret_sts_success;
6306:
6307: api_log('process_cz_txn_details');
6308:
6309: IF p_config_session_keys.COUNT > 0 THEN
6330: x_txn_eav_tbl => l_ea_tbl,
6331: x_txn_ii_rltns_tbl => l_ir_tbl,
6332: x_return_status => l_return_status);
6333:
6334: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6335: RAISE fnd_api.g_exc_error;
6336: END IF;
6337:
6338: IF l_td_tbl.COUNT > 0 THEN
6331: x_txn_ii_rltns_tbl => l_ir_tbl,
6332: x_return_status => l_return_status);
6333:
6334: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6335: RAISE fnd_api.g_exc_error;
6336: END IF;
6337:
6338: IF l_td_tbl.COUNT > 0 THEN
6339:
6367: l_td_tbl(l_td_ind).instance_exists_flag := 'Y';
6368:
6369: EXCEPTION
6370: WHEN no_data_found THEN
6371: l_td_tbl(l_td_ind).instance_id := fnd_api.g_miss_num;
6372: l_td_tbl(l_td_ind).instance_exists_flag := 'N';
6373: END;
6374: /* End of fix for Bug 2730573 */
6375:
6382: p_transaction_line_id => l_tl_rec.transaction_line_id,
6383: px_txn_ii_rltns_tbl => l_ir_tbl,
6384: x_return_status => l_return_status);
6385:
6386: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6387: RAISE fnd_api.g_exc_error;
6388: END IF;
6389:
6390: csi_t_utilities_pvt.convert_ids_to_index(
6383: px_txn_ii_rltns_tbl => l_ir_tbl,
6384: x_return_status => l_return_status);
6385:
6386: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6387: RAISE fnd_api.g_exc_error;
6388: END IF;
6389:
6390: csi_t_utilities_pvt.convert_ids_to_index(
6391: px_line_dtl_tbl => l_td_tbl,
6403: px_txn_party_dtl_tbl => l_pd_tbl,
6404: px_txn_party_acct_tbl => l_pa_tbl,
6405: x_return_status => l_return_status);
6406:
6407: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6408: RAISE fnd_api.g_exc_error;
6409: END IF;
6410:
6411: l_source_line_rec.fulfilled_date := sysdate;
6404: px_txn_party_acct_tbl => l_pa_tbl,
6405: x_return_status => l_return_status);
6406:
6407: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6408: RAISE fnd_api.g_exc_error;
6409: END IF;
6410:
6411: l_source_line_rec.fulfilled_date := sysdate;
6412: l_source_hdr_rec.source_header_id := l_src_instance_key.inst_hdr_id;
6430: px_pricing_attribs_tbl => l_pr_tbl,
6431: x_return_status => l_return_status,
6432: x_return_message => l_return_message);
6433:
6434: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6435: RAISE fnd_api.g_exc_error;
6436: END IF;
6437:
6438: END IF;
6431: x_return_status => l_return_status,
6432: x_return_message => l_return_message);
6433:
6434: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6435: RAISE fnd_api.g_exc_error;
6436: END IF;
6437:
6438: END IF;
6439:
6440: END LOOP;
6441: END IF;
6442:
6443: EXCEPTION
6444: WHEN fnd_api.g_exc_error THEN
6445: x_return_status := fnd_api.g_ret_sts_error;
6446: END process_cz_txn_details;
6447: END csi_interface_pkg;
6441: END IF;
6442:
6443: EXCEPTION
6444: WHEN fnd_api.g_exc_error THEN
6445: x_return_status := fnd_api.g_ret_sts_error;
6446: END process_cz_txn_details;
6447: END csi_interface_pkg;