23: FOR l_ind IN 1..l_msg_count
24: LOOP
25: fnd_msg_pub.get(
26: p_msg_index => l_ind,
27: p_encoded => fnd_api.g_false,
28: p_data => l_msg_data,
29: p_msg_index_out => l_msg_index_out);
30:
31: x_msg_data := ltrim(x_msg_data||' '||l_msg_data);
109: BEGIN
110:
111: debug('validate_inst_asset');
112:
113: x_return_status := fnd_api.g_ret_sts_success;
114:
115: IF nvl(px_inst_asset_rec.instance_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
116: SELECT accounting_class_code,
117: location_type_code,
111: debug('validate_inst_asset');
112:
113: x_return_status := fnd_api.g_ret_sts_success;
114:
115: IF nvl(px_inst_asset_rec.instance_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
116: SELECT accounting_class_code,
117: location_type_code,
118: inventory_item_id,
119: last_vld_organization_id,
132: fnd_message.set_name('CSI', 'CSI_INST_ASSET_AC_INVALID');
133: fnd_message.set_token('INST_NUM', l_inst_num);
134: fnd_message.set_token('AC_CODE', l_acct_class_code);
135: fnd_msg_pub.add;
136: RAISE fnd_api.g_exc_error;
137: END IF;
138:
139: IF l_location_type_code in ('WIP', 'PROJECT', 'IN_TRANSIT') THEN
140: fnd_message.set_name('CSI', 'CSI_INST_ASSET_LOC_INVALID');
140: fnd_message.set_name('CSI', 'CSI_INST_ASSET_LOC_INVALID');
141: fnd_message.set_token('INST_NUM', l_inst_num);
142: fnd_message.set_token('LOC_CODE', l_location_type_code);
143: fnd_msg_pub.add;
144: RAISE fnd_api.g_exc_error;
145: END IF;
146:
147: SELECT asset_creation_code,
148: segment1,
167: IF l_pending_txn THEN
168: fnd_message.set_name('CSI', 'CSI_DEPR_ADD_PENDING_TXN');
169: fnd_message.set_token('TXN_ID', l_pending_txn_id);
170: fnd_msg_pub.add;
171: RAISE fnd_api.g_exc_error;
172: END IF;
173:
174: l_pending_mass_add := FALSE;
175: FOR pending_mass_add_rec IN pending_mass_add_cur(px_inst_asset_rec.instance_id)
182: IF l_pending_mass_add THEN
183: fnd_message.set_name('CSI', 'CSI_DEPR_ADD_PENDING_MASSADD');
184: fnd_message.set_token('MASS_ADD_ID', l_fa_mass_add_id);
185: fnd_msg_pub.add;
186: RAISE fnd_api.g_exc_error;
187: END IF;
188:
189: END IF;
190:
194: debug('fa_asset_id : '||px_inst_asset_rec.fa_asset_id);
195:
196: IF l_serial_code in (2, 5) or l_serial_number is not null THEN
197:
198: IF nvl(px_inst_asset_rec.instance_asset_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
199: -- create case
200: FOR uniq_fa_rec IN uniq_fa_cur(px_inst_asset_rec.instance_id)
201: LOOP
202: fnd_message.set_name('CSI', 'CSI_SRL_DUP_FA_ERROR');
202: fnd_message.set_name('CSI', 'CSI_SRL_DUP_FA_ERROR');
203: fnd_message.set_token('INST_ID', px_inst_asset_rec.instance_id);
204: fnd_message.set_token('ASSET_ID', uniq_fa_rec.fa_asset_id);
205: fnd_msg_pub.add;
206: raise fnd_api.g_exc_error;
207: END LOOP;
208:
209: ELSE
210: null;
221:
222: END IF;
223:
224: EXCEPTION
225: WHEN fnd_api.g_exc_error THEN
226: x_return_status := fnd_api.g_ret_sts_error;
227: END validate_inst_asset;
228:
229: PROCEDURE derive_fa_missing_values(
222: END IF;
223:
224: EXCEPTION
225: WHEN fnd_api.g_exc_error THEN
226: x_return_status := fnd_api.g_ret_sts_error;
227: END validate_inst_asset;
228:
229: PROCEDURE derive_fa_missing_values(
230: p_instance_rec IN csi_datastructures_pub.instance_rec,
274: ORDER BY date_effective desc; -- latest one first
275:
276: BEGIN
277:
278: x_return_status := fnd_api.g_ret_sts_success;
279:
280: debug('derive fa loc');
281:
282: IF nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
278: x_return_status := fnd_api.g_ret_sts_success;
279:
280: debug('derive fa loc');
281:
282: IF nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
283: l_fa_book_type_code := p_fixed_asset_rec.book_type_code;
284: ELSE
285: FOR btc_rec IN btc_cur(p_fixed_asset_rec.asset_id)
286: LOOP
290: END IF;
291:
292: l_location_table := null;
293:
294: IF nvl(p_instance_rec.instance_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
295: SELECT location_type_code,
296: location_id,
297: quantity
298: INTO l_location_type_code,
304: l_location_type_code := p_instance_rec.location_type_code;
305: l_location_id := p_instance_rec.location_id;
306: END IF;
307:
308: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
309: l_fa_location_id := p_fixed_asset_rec.asset_location_id;
310: ELSE
311:
312: l_location_table := null;
385: l_fa_location_id number;
386: l_fa_quantity number;
387: l_fa_book_type_code varchar2(30);
388:
389: l_miss_num number := fnd_api.g_miss_num;
390: l_miss_char varchar2(200) := fnd_api.g_miss_char;
391:
392: l_serial_control_code number;
393: l_eam_item_type number;
386: l_fa_quantity number;
387: l_fa_book_type_code varchar2(30);
388:
389: l_miss_num number := fnd_api.g_miss_num;
390: l_miss_char varchar2(200) := fnd_api.g_miss_char;
391:
392: l_serial_control_code number;
393: l_eam_item_type number;
394: l_eam_item boolean := FALSE;
404: l_csi_txn_tbl csi_datastructures_pub.transaction_tbl;
405: l_grp_error_tbl csi_datastructures_pub.grp_error_tbl;
406:
407:
408: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
409: l_msg_count number;
410: l_msg_data varchar2(2000);
411: l_error_message varchar2(2000);
412: l_warning_flag varchar2(1) := 'N';
418: g_ia_ind binary_integer := 0;
419:
420: BEGIN
421:
422: x_return_status := fnd_api.g_ret_sts_success;
423:
424: savepoint fa_grp_create_instance;
425:
426: -- validate mandatory fields
461: p_param_name => 'px_csi_txn_rec.transaction_type_id',
462: p_api_name => 'csi_fa_instance_grp.create_item_instance');
463:
464: -- derive eam_item_type
465: IF nvl(p_instance_rec.inventory_item_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
466: AND
467: nvl(p_instance_rec.vld_organization_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
468: THEN
469:
463:
464: -- derive eam_item_type
465: IF nvl(p_instance_rec.inventory_item_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
466: AND
467: nvl(p_instance_rec.vld_organization_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
468: THEN
469:
470: SELECT eam_item_type,
471: serial_number_control_code
480: END IF;
481:
482: END IF;
483:
484: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
485:
486: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
487: OR
488: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
482: END IF;
483:
484: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
485:
486: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
487: OR
488: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
489: OR
490: nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) = fnd_api.g_miss_char
484: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
485:
486: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
487: OR
488: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
489: OR
490: nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) = fnd_api.g_miss_char
491: THEN
492:
486: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
487: OR
488: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
489: OR
490: nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) = fnd_api.g_miss_char
491: THEN
492:
493: derive_fa_missing_values(
494: p_instance_rec => p_instance_rec,
497: x_fa_quantity => l_fa_quantity,
498: x_fa_book_type_code => l_fa_book_type_code,
499: x_return_status => l_return_status);
500:
501: IF l_return_status <> fnd_api.g_ret_sts_success THEN
502: RAISE fnd_api.g_exc_error;
503: END IF;
504: END IF;
505: END IF;
498: x_fa_book_type_code => l_fa_book_type_code,
499: x_return_status => l_return_status);
500:
501: IF l_return_status <> fnd_api.g_ret_sts_success THEN
502: RAISE fnd_api.g_exc_error;
503: END IF;
504: END IF;
505: END IF;
506:
505: END IF;
506:
507: csi_transactions_pvt.create_transaction(
508: p_api_version => 1.0,
509: p_commit => fnd_api.g_false,
510: p_init_msg_list => fnd_api.g_true,
511: p_validation_level => fnd_api.g_valid_level_full,
512: p_success_if_exists_flag => 'Y',
513: p_transaction_rec => px_csi_txn_rec,
506:
507: csi_transactions_pvt.create_transaction(
508: p_api_version => 1.0,
509: p_commit => fnd_api.g_false,
510: p_init_msg_list => fnd_api.g_true,
511: p_validation_level => fnd_api.g_valid_level_full,
512: p_success_if_exists_flag => 'Y',
513: p_transaction_rec => px_csi_txn_rec,
514: x_return_status => l_return_status,
507: csi_transactions_pvt.create_transaction(
508: p_api_version => 1.0,
509: p_commit => fnd_api.g_false,
510: p_init_msg_list => fnd_api.g_true,
511: p_validation_level => fnd_api.g_valid_level_full,
512: p_success_if_exists_flag => 'Y',
513: p_transaction_rec => px_csi_txn_rec,
514: x_return_status => l_return_status,
515: x_msg_count => l_msg_count,
514: x_return_status => l_return_status,
515: x_msg_count => l_msg_count,
516: x_msg_data => l_msg_data);
517:
518: IF l_return_status <> fnd_api.g_ret_sts_success THEN
519: RAISE fnd_api.g_exc_error;
520: END IF;
521:
522: IF p_instance_serial_tbl.COUNT > 0 THEN
515: x_msg_count => l_msg_count,
516: x_msg_data => l_msg_data);
517:
518: IF l_return_status <> fnd_api.g_ret_sts_success THEN
519: RAISE fnd_api.g_exc_error;
520: END IF;
521:
522: IF p_instance_serial_tbl.COUNT > 0 THEN
523: FOR srl_ind IN p_instance_serial_tbl.FIRST .. p_instance_serial_tbl.LAST
577:
578: END LOOP;
579: END IF;
580:
581: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
582: g_ia_ind := g_ia_ind + 1;
583: l_instance_asset_tbl(g_ia_ind).parent_tbl_index := g_inst_ind;
584: l_instance_asset_tbl(g_ia_ind).fa_asset_id := p_fixed_asset_rec.asset_id;
585: l_instance_asset_tbl(g_ia_ind).fa_book_type_code := l_fa_book_type_code;
587: l_instance_asset_tbl(g_ia_ind).asset_quantity := 1; -- for serialized
588: l_instance_asset_tbl(g_ia_ind).update_status := 'IN_SERVICE';
589: l_instance_asset_tbl(g_ia_ind).fa_sync_flag := p_fixed_asset_rec.fa_sync_flag;
590: l_instance_asset_tbl(g_ia_ind).fa_sync_validation_reqd :=
591: nvl(p_fixed_asset_rec.fa_sync_validation_reqd, fnd_api.g_false);
592:
593: validate_inst_asset(
594: px_inst_asset_rec => l_instance_asset_tbl(g_ia_ind),
595: x_return_status => l_return_status);
593: validate_inst_asset(
594: px_inst_asset_rec => l_instance_asset_tbl(g_ia_ind),
595: x_return_status => l_return_status);
596:
597: IF l_return_status <> fnd_api.g_ret_sts_success THEN
598: RAISE fnd_api.g_exc_error;
599: END IF;
600:
601: END IF;
594: px_inst_asset_rec => l_instance_asset_tbl(g_ia_ind),
595: x_return_status => l_return_status);
596:
597: IF l_return_status <> fnd_api.g_ret_sts_success THEN
598: RAISE fnd_api.g_exc_error;
599: END IF;
600:
601: END IF;
602:
634:
635: END LOOP;
636: END IF;
637:
638: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
639: g_ia_ind := g_ia_ind + 1;
640: l_instance_asset_tbl(g_ia_ind).parent_tbl_index := g_inst_ind;
641: l_instance_asset_tbl(g_ia_ind).fa_asset_id := p_fixed_asset_rec.asset_id;
642: l_instance_asset_tbl(g_ia_ind).fa_book_type_code := l_fa_book_type_code;
644: l_instance_asset_tbl(g_ia_ind).asset_quantity := p_instance_rec.quantity;
645: l_instance_asset_tbl(g_ia_ind).update_status := 'IN_SERVICE';
646: l_instance_asset_tbl(g_ia_ind).fa_sync_flag := p_fixed_asset_rec.fa_sync_flag;
647: l_instance_asset_tbl(g_ia_ind).fa_sync_validation_reqd :=
648: nvl(p_fixed_asset_rec.fa_sync_validation_reqd, fnd_api.g_false);
649:
650: validate_inst_asset(
651: px_inst_asset_rec => l_instance_asset_tbl(g_ia_ind),
652: x_return_status => l_return_status);
650: validate_inst_asset(
651: px_inst_asset_rec => l_instance_asset_tbl(g_ia_ind),
652: x_return_status => l_return_status);
653:
654: IF l_return_status <> fnd_api.g_ret_sts_success THEN
655: RAISE fnd_api.g_exc_error;
656: END IF;
657:
658: END IF;
651: px_inst_asset_rec => l_instance_asset_tbl(g_ia_ind),
652: x_return_status => l_return_status);
653:
654: IF l_return_status <> fnd_api.g_ret_sts_success THEN
655: RAISE fnd_api.g_exc_error;
656: END IF;
657:
658: END IF;
659:
663: debug('instance_asset_tbl.count : '||l_instance_asset_tbl.count);
664:
665: csi_item_instance_grp.create_item_instance (
666: p_api_version => 1.0,
667: p_commit => fnd_api.g_false,
668: p_init_msg_list => fnd_api.g_true,
669: p_validation_level => fnd_api.g_valid_level_full,
670: p_instance_tbl => l_instance_tbl,
671: p_ext_attrib_values_tbl => l_ext_attrib_values_tbl,
664:
665: csi_item_instance_grp.create_item_instance (
666: p_api_version => 1.0,
667: p_commit => fnd_api.g_false,
668: p_init_msg_list => fnd_api.g_true,
669: p_validation_level => fnd_api.g_valid_level_full,
670: p_instance_tbl => l_instance_tbl,
671: p_ext_attrib_values_tbl => l_ext_attrib_values_tbl,
672: p_party_tbl => l_party_tbl,
665: csi_item_instance_grp.create_item_instance (
666: p_api_version => 1.0,
667: p_commit => fnd_api.g_false,
668: p_init_msg_list => fnd_api.g_true,
669: p_validation_level => fnd_api.g_valid_level_full,
670: p_instance_tbl => l_instance_tbl,
671: p_ext_attrib_values_tbl => l_ext_attrib_values_tbl,
672: p_party_tbl => l_party_tbl,
673: p_account_tbl => l_account_tbl,
680: x_return_status => l_return_status,
681: x_msg_count => l_msg_count,
682: x_msg_data => l_msg_data);
683:
684: IF l_return_status <> fnd_api.g_ret_sts_success THEN
685: RAISE fnd_api.g_exc_error;
686: END IF;
687:
688: IF l_grp_error_tbl.COUNT > 0 THEN
681: x_msg_count => l_msg_count,
682: x_msg_data => l_msg_data);
683:
684: IF l_return_status <> fnd_api.g_ret_sts_success THEN
685: RAISE fnd_api.g_exc_error;
686: END IF;
687:
688: IF l_grp_error_tbl.COUNT > 0 THEN
689: -- errors should be passes out as error.
690: FOR err_ind IN l_grp_error_tbl.FIRST ..l_grp_error_tbl.LAST
691: LOOP
692: IF l_grp_error_tbl(err_ind).process_status = 'E' THEN
693: l_error_message := l_grp_error_tbl(err_ind).error_message;
694: RAISE fnd_api.g_exc_error;
695: END IF;
696: END LOOP;
697:
698: END IF;
704: IF l_eam_item THEN
705: -- to be uncommented later
706: eam_maint_attributes_pub.create_maint_attributes(
707: p_api_version => 1.0,
708: p_init_msg_list => fnd_api.g_true,
709: p_commit => fnd_api.g_false,
710: p_validation_level => fnd_api.g_valid_level_full,
711: p_instance_id => l_instance_tbl(inst_ind).instance_id,
712: p_owning_department_id => p_eam_rec.owning_department_id,
705: -- to be uncommented later
706: eam_maint_attributes_pub.create_maint_attributes(
707: p_api_version => 1.0,
708: p_init_msg_list => fnd_api.g_true,
709: p_commit => fnd_api.g_false,
710: p_validation_level => fnd_api.g_valid_level_full,
711: p_instance_id => l_instance_tbl(inst_ind).instance_id,
712: p_owning_department_id => p_eam_rec.owning_department_id,
713: p_accounting_class_code => p_eam_rec.wip_accounting_class_code,
706: eam_maint_attributes_pub.create_maint_attributes(
707: p_api_version => 1.0,
708: p_init_msg_list => fnd_api.g_true,
709: p_commit => fnd_api.g_false,
710: p_validation_level => fnd_api.g_valid_level_full,
711: p_instance_id => l_instance_tbl(inst_ind).instance_id,
712: p_owning_department_id => p_eam_rec.owning_department_id,
713: p_accounting_class_code => p_eam_rec.wip_accounting_class_code,
714: p_area_id => p_eam_rec.area_id,
716: x_return_status => l_return_status,
717: x_msg_count => l_msg_count,
718: x_msg_data => l_msg_data);
719:
720: IF l_return_status <> fnd_api.g_ret_sts_success THEN
721: RAISE fnd_api.g_exc_error;
722: END IF;
723: END IF;
724:
717: x_msg_count => l_msg_count,
718: x_msg_data => l_msg_data);
719:
720: IF l_return_status <> fnd_api.g_ret_sts_success THEN
721: RAISE fnd_api.g_exc_error;
722: END IF;
723: END IF;
724:
725: END LOOP;
745: x_error_message := dump_error_stack;
746: END IF;
747:
748: EXCEPTION
749: WHEN fnd_api.g_exc_error THEN
750: rollback to fa_grp_create_instance;
751: x_return_status := fnd_api.g_ret_sts_error;
752: x_error_message := dump_error_stack;
753: WHEN others THEN
747:
748: EXCEPTION
749: WHEN fnd_api.g_exc_error THEN
750: rollback to fa_grp_create_instance;
751: x_return_status := fnd_api.g_ret_sts_error;
752: x_error_message := dump_error_stack;
753: WHEN others THEN
754: rollback to fa_grp_create_instance;
755: x_return_status := fnd_api.g_ret_sts_unexp_error;
751: x_return_status := fnd_api.g_ret_sts_error;
752: x_error_message := dump_error_stack;
753: WHEN others THEN
754: rollback to fa_grp_create_instance;
755: x_return_status := fnd_api.g_ret_sts_unexp_error;
756: fnd_message.set_name('CSI','CSI_UNEXP_SQL_ERROR');
757: fnd_message.set_token('API_NAME','csi_fa_instance_grp.create_item_instance');
758: fnd_message.set_token('SQL_ERROR',SQLERRM);
759: fnd_msg_pub.add;
793: l_fa_flow varchar2(1);
794: l_copy_flags_rec copy_flags_rec;
795: l_instance_rec csi_datastructures_pub.instance_rec;
796:
797: l_miss_num number := fnd_api.g_miss_num;
798: l_miss_char varchar2(200) := fnd_api.g_miss_char;
799:
800: l_instance_tbl csi_datastructures_pub.instance_tbl;
801:
794: l_copy_flags_rec copy_flags_rec;
795: l_instance_rec csi_datastructures_pub.instance_rec;
796:
797: l_miss_num number := fnd_api.g_miss_num;
798: l_miss_char varchar2(200) := fnd_api.g_miss_char;
799:
800: l_instance_tbl csi_datastructures_pub.instance_tbl;
801:
802: o_ind binary_integer := 0;
804:
805: ia_ind binary_integer := 0;
806: l_instance_asset_tbl csi_datastructures_pub.instance_asset_tbl;
807:
808: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
809: l_msg_count number;
810: l_msg_data varchar2(4000);
811: l_error_message varchar2(2000);
812:
837: l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
838: l_org_units_tbl csi_datastructures_pub.organization_units_tbl;
839: l_inst_id_lst csi_datastructures_pub.id_tbl;
840:
841: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
842: l_msg_count number;
843: l_msg_data varchar2(4000);
844: BEGIN
845:
842: l_msg_count number;
843: l_msg_data varchar2(4000);
844: BEGIN
845:
846: x_return_status := fnd_api.g_ret_sts_success;
847:
848: csi_item_instance_pvt.copy_item_instance(
849: p_api_version => 1.0,
850: p_commit => fnd_api.g_false,
846: x_return_status := fnd_api.g_ret_sts_success;
847:
848: csi_item_instance_pvt.copy_item_instance(
849: p_api_version => 1.0,
850: p_commit => fnd_api.g_false,
851: p_init_msg_list => fnd_api.g_true,
852: p_validation_level => fnd_api.g_valid_level_full,
853: p_source_instance_rec => p_instance_rec,
854: p_copy_ext_attribs => p_copy_flags_rec.copy_ext_attribs,
847:
848: csi_item_instance_pvt.copy_item_instance(
849: p_api_version => 1.0,
850: p_commit => fnd_api.g_false,
851: p_init_msg_list => fnd_api.g_true,
852: p_validation_level => fnd_api.g_valid_level_full,
853: p_source_instance_rec => p_instance_rec,
854: p_copy_ext_attribs => p_copy_flags_rec.copy_ext_attribs,
855: p_copy_org_assignments => p_copy_flags_rec.copy_org_assignments,
848: csi_item_instance_pvt.copy_item_instance(
849: p_api_version => 1.0,
850: p_commit => fnd_api.g_false,
851: p_init_msg_list => fnd_api.g_true,
852: p_validation_level => fnd_api.g_valid_level_full,
853: p_source_instance_rec => p_instance_rec,
854: p_copy_ext_attribs => p_copy_flags_rec.copy_ext_attribs,
855: p_copy_org_assignments => p_copy_flags_rec.copy_org_assignments,
856: p_copy_parties => p_copy_flags_rec.copy_parties,
858: p_copy_accounts => p_copy_flags_rec.copy_accounts,
859: p_copy_asset_assignments => p_copy_flags_rec.copy_asset_assignments,
860: p_copy_pricing_attribs => p_copy_flags_rec.copy_pricing_attribs,
861: p_copy_inst_children => p_copy_flags_rec.copy_inst_children,
862: p_call_from_split => fnd_api.g_false,
863: p_txn_rec => px_csi_txn_rec,
864: x_new_instance_tbl => l_instance_tbl,
865: x_return_status => l_return_status,
866: x_msg_count => l_msg_count,
865: x_return_status => l_return_status,
866: x_msg_count => l_msg_count,
867: x_msg_data => l_msg_data);
868:
869: IF l_return_status <> fnd_api.g_ret_sts_success THEN
870: RAISE fnd_api.g_exc_error;
871: END IF;
872:
873: IF nvl(p_fa_flow, 'N') = 'Y' THEN
866: x_msg_count => l_msg_count,
867: x_msg_data => l_msg_data);
868:
869: IF l_return_status <> fnd_api.g_ret_sts_success THEN
870: RAISE fnd_api.g_exc_error;
871: END IF;
872:
873: IF nvl(p_fa_flow, 'N') = 'Y' THEN
874:
900:
901: -- change the owner to internal
902: csi_item_instance_pub.update_item_instance(
903: p_api_version => 1.0,
904: p_commit => fnd_api.g_false,
905: p_init_msg_list => fnd_api.g_true,
906: p_validation_level => fnd_api.g_valid_level_full,
907: p_instance_rec => l_instance_rec,
908: p_ext_attrib_values_tbl => l_eav_tbl,
901: -- change the owner to internal
902: csi_item_instance_pub.update_item_instance(
903: p_api_version => 1.0,
904: p_commit => fnd_api.g_false,
905: p_init_msg_list => fnd_api.g_true,
906: p_validation_level => fnd_api.g_valid_level_full,
907: p_instance_rec => l_instance_rec,
908: p_ext_attrib_values_tbl => l_eav_tbl,
909: p_party_tbl => l_party_tbl,
902: csi_item_instance_pub.update_item_instance(
903: p_api_version => 1.0,
904: p_commit => fnd_api.g_false,
905: p_init_msg_list => fnd_api.g_true,
906: p_validation_level => fnd_api.g_valid_level_full,
907: p_instance_rec => l_instance_rec,
908: p_ext_attrib_values_tbl => l_eav_tbl,
909: p_party_tbl => l_party_tbl,
910: p_account_tbl => l_party_acct_tbl,
916: x_return_status => l_return_status,
917: x_msg_count => l_msg_count,
918: x_msg_data => l_msg_data);
919:
920: IF l_return_status <> fnd_api.g_ret_sts_success THEN
921: RAISE fnd_api.g_exc_error;
922: END IF;
923:
924: END IF;
917: x_msg_count => l_msg_count,
918: x_msg_data => l_msg_data);
919:
920: IF l_return_status <> fnd_api.g_ret_sts_success THEN
921: RAISE fnd_api.g_exc_error;
922: END IF;
923:
924: END IF;
925:
927:
928: x_instance_tbl := l_instance_tbl;
929:
930: EXCEPTION
931: WHEN fnd_api.g_exc_error THEN
932: x_return_status := fnd_api.g_ret_sts_error;
933: END do_copy;
934:
935: BEGIN
928: x_instance_tbl := l_instance_tbl;
929:
930: EXCEPTION
931: WHEN fnd_api.g_exc_error THEN
932: x_return_status := fnd_api.g_ret_sts_error;
933: END do_copy;
934:
935: BEGIN
936:
933: END do_copy;
934:
935: BEGIN
936:
937: x_return_status := fnd_api.g_ret_sts_success;
938:
939: savepoint fa_grp_copy_instance;
940:
941: csi_item_instance_vld_pvt.check_reqd_param_num (
944: p_api_name => 'csi_fa_instance_rec.copy_item_instance');
945:
946: csi_transactions_pvt.create_transaction(
947: p_api_version => 1.0,
948: p_commit => fnd_api.g_false,
949: p_init_msg_list => fnd_api.g_true,
950: p_validation_level => fnd_api.g_valid_level_full,
951: p_success_if_exists_flag => 'Y',
952: p_transaction_rec => px_csi_txn_rec,
945:
946: csi_transactions_pvt.create_transaction(
947: p_api_version => 1.0,
948: p_commit => fnd_api.g_false,
949: p_init_msg_list => fnd_api.g_true,
950: p_validation_level => fnd_api.g_valid_level_full,
951: p_success_if_exists_flag => 'Y',
952: p_transaction_rec => px_csi_txn_rec,
953: x_return_status => l_return_status,
946: csi_transactions_pvt.create_transaction(
947: p_api_version => 1.0,
948: p_commit => fnd_api.g_false,
949: p_init_msg_list => fnd_api.g_true,
950: p_validation_level => fnd_api.g_valid_level_full,
951: p_success_if_exists_flag => 'Y',
952: p_transaction_rec => px_csi_txn_rec,
953: x_return_status => l_return_status,
954: x_msg_count => l_msg_count,
953: x_return_status => l_return_status,
954: x_msg_count => l_msg_count,
955: x_msg_data => l_msg_data);
956:
957: IF l_return_status <> fnd_api.g_ret_sts_success THEN
958: RAISE fnd_api.g_exc_error;
959: END IF;
960:
961: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
954: x_msg_count => l_msg_count,
955: x_msg_data => l_msg_data);
956:
957: IF l_return_status <> fnd_api.g_ret_sts_success THEN
958: RAISE fnd_api.g_exc_error;
959: END IF;
960:
961: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
962: l_fa_flow := 'Y';
957: IF l_return_status <> fnd_api.g_ret_sts_success THEN
958: RAISE fnd_api.g_exc_error;
959: END IF;
960:
961: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
962: l_fa_flow := 'Y';
963: l_copy_flags_rec.copy_parties := fnd_api.g_false;
964: l_copy_flags_rec.copy_accounts := fnd_api.g_false;
965: l_copy_flags_rec.copy_contacts := fnd_api.g_false;
959: END IF;
960:
961: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
962: l_fa_flow := 'Y';
963: l_copy_flags_rec.copy_parties := fnd_api.g_false;
964: l_copy_flags_rec.copy_accounts := fnd_api.g_false;
965: l_copy_flags_rec.copy_contacts := fnd_api.g_false;
966: ELSE
967: l_fa_flow := 'N';
960:
961: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
962: l_fa_flow := 'Y';
963: l_copy_flags_rec.copy_parties := fnd_api.g_false;
964: l_copy_flags_rec.copy_accounts := fnd_api.g_false;
965: l_copy_flags_rec.copy_contacts := fnd_api.g_false;
966: ELSE
967: l_fa_flow := 'N';
968: l_copy_flags_rec.copy_parties := p_copy_parties;
961: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
962: l_fa_flow := 'Y';
963: l_copy_flags_rec.copy_parties := fnd_api.g_false;
964: l_copy_flags_rec.copy_accounts := fnd_api.g_false;
965: l_copy_flags_rec.copy_contacts := fnd_api.g_false;
966: ELSE
967: l_fa_flow := 'N';
968: l_copy_flags_rec.copy_parties := p_copy_parties;
969: l_copy_flags_rec.copy_accounts := p_copy_accounts;
976: l_copy_flags_rec.copy_asset_assignments := p_copy_asset_assignments;
977: l_copy_flags_rec.copy_inst_children := p_copy_inst_children;
978:
979: -- derive eam_item_type
980: IF nvl(p_instance_rec.inventory_item_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
981: AND
982: nvl(p_instance_rec.vld_organization_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
983: THEN
984:
978:
979: -- derive eam_item_type
980: IF nvl(p_instance_rec.inventory_item_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
981: AND
982: nvl(p_instance_rec.vld_organization_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num
983: THEN
984:
985: SELECT eam_item_type,
986: serial_number_control_code
1034: px_csi_txn_rec => px_csi_txn_rec,
1035: x_instance_tbl => l_instance_tbl,
1036: x_return_status => l_return_status);
1037:
1038: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1039: l_error_message := dump_error_stack;
1040: RAISE fnd_api.g_exc_error;
1041: END IF;
1042:
1036: x_return_status => l_return_status);
1037:
1038: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1039: l_error_message := dump_error_stack;
1040: RAISE fnd_api.g_exc_error;
1041: END IF;
1042:
1043: IF l_instance_tbl.COUNT > 0 THEN
1044: FOR inst_ind IN l_instance_tbl.FIRST .. l_instance_tbl.LAST
1065: px_csi_txn_rec => px_csi_txn_rec,
1066: x_instance_tbl => l_instance_tbl,
1067: x_return_status => l_return_status);
1068:
1069: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1070: l_error_message := dump_error_stack;
1071: RAISE fnd_api.g_exc_error;
1072: END IF;
1073:
1067: x_return_status => l_return_status);
1068:
1069: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1070: l_error_message := dump_error_stack;
1071: RAISE fnd_api.g_exc_error;
1072: END IF;
1073:
1074: IF l_instance_tbl.COUNT > 0 THEN
1075: FOR inst_ind IN l_instance_tbl.FIRST .. l_instance_tbl.LAST
1084: IF o_instance_tbl.COUNT > 0 THEN
1085: FOR inst_ind IN o_instance_tbl.FIRST .. o_instance_tbl.LAST
1086: LOOP
1087:
1088: IF nvl(p_fixed_asset_rec.asset_id, fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
1089: ia_ind := ia_ind + 1;
1090: l_instance_asset_tbl(ia_ind).instance_id := o_instance_tbl(inst_ind).instance_id;
1091: l_instance_asset_tbl(ia_ind).fa_asset_id := p_fixed_asset_rec.asset_id;
1092: l_instance_asset_tbl(ia_ind).fa_book_type_code := p_fixed_asset_rec.book_type_code;
1100:
1101: IF l_eam_item THEN
1102:
1103: /*Need to flip the EAM attributes.*/
1104: IF p_eam_rec.owning_department_id = FND_API.G_MISS_NUM THEN
1105: l_owning_department_id := NULL;
1106: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1107: l_owning_department_id := FND_API.G_MISS_NUM;
1108: END IF;
1103: /*Need to flip the EAM attributes.*/
1104: IF p_eam_rec.owning_department_id = FND_API.G_MISS_NUM THEN
1105: l_owning_department_id := NULL;
1106: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1107: l_owning_department_id := FND_API.G_MISS_NUM;
1108: END IF;
1109:
1110: IF p_eam_rec.wip_accounting_class_code = FND_API.G_MISS_CHAR THEN
1111: l_wip_accounting_class_code := NULL;
1106: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1107: l_owning_department_id := FND_API.G_MISS_NUM;
1108: END IF;
1109:
1110: IF p_eam_rec.wip_accounting_class_code = FND_API.G_MISS_CHAR THEN
1111: l_wip_accounting_class_code := NULL;
1112: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1113: l_wip_accounting_class_code := FND_API.G_MISS_CHAR;
1114: END IF;
1109:
1110: IF p_eam_rec.wip_accounting_class_code = FND_API.G_MISS_CHAR THEN
1111: l_wip_accounting_class_code := NULL;
1112: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1113: l_wip_accounting_class_code := FND_API.G_MISS_CHAR;
1114: END IF;
1115:
1116: IF p_eam_rec.area_id = FND_API.G_MISS_NUM THEN
1117: l_area_id := NULL;
1112: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1113: l_wip_accounting_class_code := FND_API.G_MISS_CHAR;
1114: END IF;
1115:
1116: IF p_eam_rec.area_id = FND_API.G_MISS_NUM THEN
1117: l_area_id := NULL;
1118: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1119: l_area_id := FND_API.G_MISS_NUM;
1120: END IF;
1115:
1116: IF p_eam_rec.area_id = FND_API.G_MISS_NUM THEN
1117: l_area_id := NULL;
1118: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1119: l_area_id := FND_API.G_MISS_NUM;
1120: END IF;
1121:
1122: IF p_eam_rec.parent_instance_id = FND_API.G_MISS_NUM THEN
1123: l_parent_instance_id := NULL;
1118: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1119: l_area_id := FND_API.G_MISS_NUM;
1120: END IF;
1121:
1122: IF p_eam_rec.parent_instance_id = FND_API.G_MISS_NUM THEN
1123: l_parent_instance_id := NULL;
1124: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1125: l_parent_instance_id := FND_API.G_MISS_NUM;
1126: END IF;
1121:
1122: IF p_eam_rec.parent_instance_id = FND_API.G_MISS_NUM THEN
1123: l_parent_instance_id := NULL;
1124: ELSIF p_eam_rec.owning_department_id IS NULL THEN
1125: l_parent_instance_id := FND_API.G_MISS_NUM;
1126: END IF;
1127:
1128: eam_maint_attributes_pub.create_maint_attributes(
1129: p_api_version => 1.0,
1126: END IF;
1127:
1128: eam_maint_attributes_pub.create_maint_attributes(
1129: p_api_version => 1.0,
1130: p_init_msg_list => fnd_api.g_true,
1131: p_commit => fnd_api.g_false,
1132: p_validation_level => fnd_api.g_valid_level_full,
1133: p_instance_id => l_instance_tbl(inst_ind).instance_id,
1134: p_owning_department_id => l_owning_department_id,
1127:
1128: eam_maint_attributes_pub.create_maint_attributes(
1129: p_api_version => 1.0,
1130: p_init_msg_list => fnd_api.g_true,
1131: p_commit => fnd_api.g_false,
1132: p_validation_level => fnd_api.g_valid_level_full,
1133: p_instance_id => l_instance_tbl(inst_ind).instance_id,
1134: p_owning_department_id => l_owning_department_id,
1135: p_accounting_class_code => l_wip_accounting_class_code,
1128: eam_maint_attributes_pub.create_maint_attributes(
1129: p_api_version => 1.0,
1130: p_init_msg_list => fnd_api.g_true,
1131: p_commit => fnd_api.g_false,
1132: p_validation_level => fnd_api.g_valid_level_full,
1133: p_instance_id => l_instance_tbl(inst_ind).instance_id,
1134: p_owning_department_id => l_owning_department_id,
1135: p_accounting_class_code => l_wip_accounting_class_code,
1136: p_area_id => l_area_id,
1138: x_return_status => l_return_status,
1139: x_msg_count => l_msg_count,
1140: x_msg_data => l_msg_data);
1141:
1142: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1143: RAISE fnd_api.g_exc_error;
1144: END IF;
1145: END IF;
1146:
1139: x_msg_count => l_msg_count,
1140: x_msg_data => l_msg_data);
1141:
1142: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1143: RAISE fnd_api.g_exc_error;
1144: END IF;
1145: END IF;
1146:
1147: END LOOP;
1154: px_csi_txn_rec => px_csi_txn_rec,
1155: x_return_status => l_return_status,
1156: x_error_message => l_error_message);
1157:
1158: IF l_return_status IN (fnd_api.g_ret_sts_success, 'W') THEN
1159: x_return_status := l_return_status;
1160: x_error_message := l_error_message;
1161: ELSE
1162: RAISE fnd_api.g_exc_error;
1158: IF l_return_status IN (fnd_api.g_ret_sts_success, 'W') THEN
1159: x_return_status := l_return_status;
1160: x_error_message := l_error_message;
1161: ELSE
1162: RAISE fnd_api.g_exc_error;
1163: END IF;
1164:
1165: END IF;
1166:
1167: x_instance_tbl := o_instance_tbl;
1168: x_instance_asset_tbl := l_instance_asset_tbl;
1169:
1170: EXCEPTION
1171: WHEN fnd_api.g_exc_error THEN
1172: rollback to fa_grp_copy_instance;
1173: x_return_status := fnd_api.g_ret_sts_error;
1174: x_error_message := dump_error_stack;
1175: WHEN others THEN
1169:
1170: EXCEPTION
1171: WHEN fnd_api.g_exc_error THEN
1172: rollback to fa_grp_copy_instance;
1173: x_return_status := fnd_api.g_ret_sts_error;
1174: x_error_message := dump_error_stack;
1175: WHEN others THEN
1176: rollback to fa_grp_copy_instance;
1177: x_return_status := fnd_api.g_ret_sts_unexp_error;
1173: x_return_status := fnd_api.g_ret_sts_error;
1174: x_error_message := dump_error_stack;
1175: WHEN others THEN
1176: rollback to fa_grp_copy_instance;
1177: x_return_status := fnd_api.g_ret_sts_unexp_error;
1178: fnd_message.set_name('CSI','CSI_UNEXP_SQL_ERROR');
1179: fnd_message.set_token('API_NAME','csi_fa_instance_grp.copy_item_instance');
1180: fnd_message.set_token('SQL_ERROR',SQLERRM);
1181: fnd_msg_pub.add;
1203: l_asset_loc_tbl csi_asset_pvt.asset_loc_tbl;
1204:
1205: g_ia_ind binary_integer := 0;
1206:
1207: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1208: l_msg_count number;
1209: l_msg_data varchar2(2000);
1210:
1211: l_error_message varchar2(2000);
1210:
1211: l_error_message varchar2(2000);
1212:
1213: BEGIN
1214: x_return_status := fnd_api.g_ret_sts_success;
1215:
1216: debug('associate_item_isntance');
1217:
1218: IF p_instance_tbl.COUNT > 0 THEN
1227: l_instance_asset_tbl(g_ia_ind).fa_location_id := p_fixed_asset_rec.asset_location_id;
1228: l_instance_asset_tbl(g_ia_ind).asset_quantity := p_instance_tbl(inst_ind).quantity;
1229: l_instance_asset_tbl(g_ia_ind).update_status := 'IN_SERVICE';
1230:
1231: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1232: OR
1233: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
1234: OR
1235: nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) = fnd_api.g_miss_char
1229: l_instance_asset_tbl(g_ia_ind).update_status := 'IN_SERVICE';
1230:
1231: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1232: OR
1233: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
1234: OR
1235: nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) = fnd_api.g_miss_char
1236: THEN
1237:
1231: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1232: OR
1233: nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
1234: OR
1235: nvl(p_fixed_asset_rec.book_type_code, fnd_api.g_miss_char) = fnd_api.g_miss_char
1236: THEN
1237:
1238: derive_fa_missing_values(
1239: p_instance_rec => p_instance_tbl(inst_ind),
1242: x_fa_quantity => l_fa_quantity,
1243: x_fa_book_type_code => l_fa_book_type_code,
1244: x_return_status => l_return_status);
1245:
1246: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1247: RAISE fnd_api.g_exc_error;
1248: END IF;
1249:
1250: debug('location_id :'||l_fa_location_id);
1243: x_fa_book_type_code => l_fa_book_type_code,
1244: x_return_status => l_return_status);
1245:
1246: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1247: RAISE fnd_api.g_exc_error;
1248: END IF;
1249:
1250: debug('location_id :'||l_fa_location_id);
1251:
1248: END IF;
1249:
1250: debug('location_id :'||l_fa_location_id);
1251:
1252: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1253: l_instance_asset_tbl(g_ia_ind).fa_location_id := l_fa_location_id;
1254: END IF;
1255:
1256: IF nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1252: IF nvl(p_fixed_asset_rec.asset_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1253: l_instance_asset_tbl(g_ia_ind).fa_location_id := l_fa_location_id;
1254: END IF;
1255:
1256: IF nvl(p_fixed_asset_rec.asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1257: l_instance_asset_tbl(g_ia_ind).asset_quantity := l_fa_quantity;
1258: END IF;
1259:
1260: l_instance_asset_tbl(g_ia_ind).fa_book_type_code := l_fa_book_type_code;
1259:
1260: l_instance_asset_tbl(g_ia_ind).fa_book_type_code := l_fa_book_type_code;
1261: l_instance_asset_tbl(g_ia_ind).fa_sync_flag := p_fixed_asset_rec.fa_sync_flag;
1262: l_instance_asset_tbl(g_ia_ind).fa_sync_validation_reqd :=
1263: nvl(p_fixed_asset_rec.fa_sync_validation_reqd, fnd_api.g_false);
1264:
1265: END IF;
1266:
1267: END LOOP;
1270: IF l_instance_asset_tbl.COUNT > 0 THEN
1271:
1272: csi_transactions_pvt.create_transaction(
1273: p_api_version => 1.0,
1274: p_commit => fnd_api.g_false,
1275: p_init_msg_list => fnd_api.g_true,
1276: p_validation_level => fnd_api.g_valid_level_full,
1277: p_success_if_exists_flag => 'Y',
1278: p_transaction_rec => px_csi_txn_rec,
1271:
1272: csi_transactions_pvt.create_transaction(
1273: p_api_version => 1.0,
1274: p_commit => fnd_api.g_false,
1275: p_init_msg_list => fnd_api.g_true,
1276: p_validation_level => fnd_api.g_valid_level_full,
1277: p_success_if_exists_flag => 'Y',
1278: p_transaction_rec => px_csi_txn_rec,
1279: x_return_status => l_return_status,
1272: csi_transactions_pvt.create_transaction(
1273: p_api_version => 1.0,
1274: p_commit => fnd_api.g_false,
1275: p_init_msg_list => fnd_api.g_true,
1276: p_validation_level => fnd_api.g_valid_level_full,
1277: p_success_if_exists_flag => 'Y',
1278: p_transaction_rec => px_csi_txn_rec,
1279: x_return_status => l_return_status,
1280: x_msg_count => l_msg_count,
1279: x_return_status => l_return_status,
1280: x_msg_count => l_msg_count,
1281: x_msg_data => l_msg_data);
1282:
1283: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1284: RAISE fnd_api.g_exc_error;
1285: END IF;
1286:
1287: create_instance_assets(
1280: x_msg_count => l_msg_count,
1281: x_msg_data => l_msg_data);
1282:
1283: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1284: RAISE fnd_api.g_exc_error;
1285: END IF;
1286:
1287: create_instance_assets(
1288: px_instance_asset_tbl => l_instance_asset_tbl,
1289: px_csi_txn_rec => px_csi_txn_rec,
1290: x_return_status => l_return_status,
1291: x_error_message => l_error_message);
1292:
1293: IF l_return_status IN (fnd_api.g_ret_sts_success, 'W') THEN
1294: x_return_status := l_return_status;
1295: x_error_message := l_error_message;
1296: ELSE
1297: RAISE fnd_api.g_exc_error;
1293: IF l_return_status IN (fnd_api.g_ret_sts_success, 'W') THEN
1294: x_return_status := l_return_status;
1295: x_error_message := l_error_message;
1296: ELSE
1297: RAISE fnd_api.g_exc_error;
1298: END IF;
1299:
1300: END IF;
1301:
1299:
1300: END IF;
1301:
1302: EXCEPTION
1303: WHEN fnd_api.g_exc_error THEN
1304: x_return_status := fnd_api.g_ret_sts_error;
1305: x_error_message := dump_error_stack;
1306: WHEN others THEN
1307: x_return_status := fnd_api.g_ret_sts_unexp_error;
1300: END IF;
1301:
1302: EXCEPTION
1303: WHEN fnd_api.g_exc_error THEN
1304: x_return_status := fnd_api.g_ret_sts_error;
1305: x_error_message := dump_error_stack;
1306: WHEN others THEN
1307: x_return_status := fnd_api.g_ret_sts_unexp_error;
1308: fnd_message.set_name('CSI','CSI_UNEXP_SQL_ERROR');
1303: WHEN fnd_api.g_exc_error THEN
1304: x_return_status := fnd_api.g_ret_sts_error;
1305: x_error_message := dump_error_stack;
1306: WHEN others THEN
1307: x_return_status := fnd_api.g_ret_sts_unexp_error;
1308: fnd_message.set_name('CSI','CSI_UNEXP_SQL_ERROR');
1309: fnd_message.set_token('API_NAME','csi_fa_instance_grp.associate_item_instance');
1310: fnd_message.set_token('SQL_ERROR',SQLERRM);
1311: fnd_msg_pub.add;
1325: l_asset_id_tbl csi_asset_pvt.asset_id_tbl;
1326: l_asset_loc_tbl csi_asset_pvt.asset_loc_tbl;
1327: l_warning_flag varchar2(1) := 'N';
1328:
1329: l_return_status varchar2(2000) := fnd_api.g_ret_sts_success;
1330: l_msg_count number;
1331: l_msg_data varchar2(2000);
1332:
1333: BEGIN
1331: l_msg_data varchar2(2000);
1332:
1333: BEGIN
1334:
1335: x_return_status := fnd_api.g_ret_sts_success;
1336: IF p_instance_asset_tbl.count > 0 THEN
1337:
1338: csi_transactions_pvt.create_transaction(
1339: p_api_version => 1.0,
1336: IF p_instance_asset_tbl.count > 0 THEN
1337:
1338: csi_transactions_pvt.create_transaction(
1339: p_api_version => 1.0,
1340: p_commit => fnd_api.g_false,
1341: p_init_msg_list => fnd_api.g_true,
1342: p_validation_level => fnd_api.g_valid_level_full,
1343: p_success_if_exists_flag => 'Y',
1344: p_transaction_rec => px_csi_txn_rec,
1337:
1338: csi_transactions_pvt.create_transaction(
1339: p_api_version => 1.0,
1340: p_commit => fnd_api.g_false,
1341: p_init_msg_list => fnd_api.g_true,
1342: p_validation_level => fnd_api.g_valid_level_full,
1343: p_success_if_exists_flag => 'Y',
1344: p_transaction_rec => px_csi_txn_rec,
1345: x_return_status => l_return_status,
1338: csi_transactions_pvt.create_transaction(
1339: p_api_version => 1.0,
1340: p_commit => fnd_api.g_false,
1341: p_init_msg_list => fnd_api.g_true,
1342: p_validation_level => fnd_api.g_valid_level_full,
1343: p_success_if_exists_flag => 'Y',
1344: p_transaction_rec => px_csi_txn_rec,
1345: x_return_status => l_return_status,
1346: x_msg_count => l_msg_count,
1345: x_return_status => l_return_status,
1346: x_msg_count => l_msg_count,
1347: x_msg_data => l_msg_data);
1348:
1349: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1350: RAISE fnd_api.g_exc_error;
1351: END IF;
1352:
1353: FOR l_ind IN p_instance_asset_tbl.FIRST .. p_instance_asset_tbl.LAST
1346: x_msg_count => l_msg_count,
1347: x_msg_data => l_msg_data);
1348:
1349: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1350: RAISE fnd_api.g_exc_error;
1351: END IF;
1352:
1353: FOR l_ind IN p_instance_asset_tbl.FIRST .. p_instance_asset_tbl.LAST
1354: LOOP
1356: l_instance_asset_rec := p_instance_asset_tbl(l_ind);
1357:
1358: csi_asset_pvt.update_instance_asset (
1359: p_api_version => 1.0,
1360: p_commit => fnd_api.g_false,
1361: p_init_msg_list => fnd_api.g_true,
1362: p_validation_level => fnd_api.g_valid_level_full,
1363: p_instance_asset_rec => l_instance_asset_rec,
1364: p_txn_rec => px_csi_txn_rec,
1357:
1358: csi_asset_pvt.update_instance_asset (
1359: p_api_version => 1.0,
1360: p_commit => fnd_api.g_false,
1361: p_init_msg_list => fnd_api.g_true,
1362: p_validation_level => fnd_api.g_valid_level_full,
1363: p_instance_asset_rec => l_instance_asset_rec,
1364: p_txn_rec => px_csi_txn_rec,
1365: x_return_status => l_return_status,
1358: csi_asset_pvt.update_instance_asset (
1359: p_api_version => 1.0,
1360: p_commit => fnd_api.g_false,
1361: p_init_msg_list => fnd_api.g_true,
1362: p_validation_level => fnd_api.g_valid_level_full,
1363: p_instance_asset_rec => l_instance_asset_rec,
1364: p_txn_rec => px_csi_txn_rec,
1365: x_return_status => l_return_status,
1366: x_msg_count => l_msg_count,
1369: p_asset_count_rec => l_asset_count_rec,
1370: p_asset_id_tbl => l_asset_id_tbl,
1371: p_asset_loc_tbl => l_asset_loc_tbl);
1372:
1373: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1374: RAISE fnd_api.g_exc_error;
1375: END IF;
1376:
1377: IF l_instance_asset_rec.fa_sync_flag = 'N' THEN
1370: p_asset_id_tbl => l_asset_id_tbl,
1371: p_asset_loc_tbl => l_asset_loc_tbl);
1372:
1373: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1374: RAISE fnd_api.g_exc_error;
1375: END IF;
1376:
1377: IF l_instance_asset_rec.fa_sync_flag = 'N' THEN
1378: l_warning_flag := 'Y';
1389: x_error_message := dump_error_stack;
1390: END IF;
1391:
1392: EXCEPTION
1393: WHEN fnd_api.g_exc_error THEN
1394: x_return_status := fnd_api.g_ret_sts_error;
1395: x_error_message := dump_error_stack;
1396: WHEN others THEN
1397: x_return_status := fnd_api.g_ret_sts_unexp_error;
1390: END IF;
1391:
1392: EXCEPTION
1393: WHEN fnd_api.g_exc_error THEN
1394: x_return_status := fnd_api.g_ret_sts_error;
1395: x_error_message := dump_error_stack;
1396: WHEN others THEN
1397: x_return_status := fnd_api.g_ret_sts_unexp_error;
1398: fnd_message.set_name('CSI','CSI_UNEXP_SQL_ERROR');
1393: WHEN fnd_api.g_exc_error THEN
1394: x_return_status := fnd_api.g_ret_sts_error;
1395: x_error_message := dump_error_stack;
1396: WHEN others THEN
1397: x_return_status := fnd_api.g_ret_sts_unexp_error;
1398: fnd_message.set_name('CSI','CSI_UNEXP_SQL_ERROR');
1399: fnd_message.set_token('API_NAME','csi_fa_instance_grp.update_asset_association');
1400: fnd_message.set_token('SQL_ERROR',SQLERRM);
1401: fnd_msg_pub.add;
1418:
1419: l_asset_quantity number;
1420: l_asset_location_id number;
1421:
1422: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1423: l_msg_count number;
1424: l_msg_data varchar2(2000);
1425:
1426: l_warning_flag varchar2(1) := 'N';
1427:
1428:
1429: BEGIN
1430:
1431: x_return_status := fnd_api.g_ret_sts_success;
1432:
1433: debug('create_instance_assets');
1434:
1435: savepoint create_instance_assets;
1438:
1439: FOR ia_ind IN px_instance_asset_tbl.FIRST .. px_instance_asset_tbl.LAST
1440: LOOP
1441:
1442: IF nvl(px_instance_asset_tbl(ia_ind).fa_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1443: OR
1444: nvl(px_instance_asset_tbl(ia_ind).asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
1445: THEN
1446:
1440: LOOP
1441:
1442: IF nvl(px_instance_asset_tbl(ia_ind).fa_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1443: OR
1444: nvl(px_instance_asset_tbl(ia_ind).asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
1445: THEN
1446:
1447: l_instance_rec.instance_id := px_instance_asset_tbl(ia_ind).instance_id;
1448: l_fixed_asset_rec.asset_id := px_instance_asset_tbl(ia_ind).fa_asset_id;
1456: x_fa_quantity => l_asset_quantity,
1457: x_fa_book_type_code => px_instance_asset_tbl(ia_ind).fa_book_type_code,
1458: x_return_status => l_return_status);
1459:
1460: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1461: RAISE fnd_api.g_exc_error;
1462: END IF;
1463:
1464: IF nvl(px_instance_asset_tbl(ia_ind).fa_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1457: x_fa_book_type_code => px_instance_asset_tbl(ia_ind).fa_book_type_code,
1458: x_return_status => l_return_status);
1459:
1460: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1461: RAISE fnd_api.g_exc_error;
1462: END IF;
1463:
1464: IF nvl(px_instance_asset_tbl(ia_ind).fa_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1465: THEN
1460: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1461: RAISE fnd_api.g_exc_error;
1462: END IF;
1463:
1464: IF nvl(px_instance_asset_tbl(ia_ind).fa_location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num
1465: THEN
1466: px_instance_asset_tbl(ia_ind).fa_location_id := l_asset_location_id;
1467: END IF;
1468:
1465: THEN
1466: px_instance_asset_tbl(ia_ind).fa_location_id := l_asset_location_id;
1467: END IF;
1468:
1469: IF nvl(px_instance_asset_tbl(ia_ind).asset_quantity, fnd_api.g_miss_num) = fnd_api.g_miss_num
1470: THEN
1471: px_instance_asset_tbl(ia_ind).asset_quantity := l_asset_quantity;
1472: END IF;
1473:
1476: validate_inst_asset(
1477: px_inst_asset_rec => px_instance_asset_tbl(ia_ind),
1478: x_return_status => l_return_status);
1479:
1480: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1481: RAISE fnd_api.g_exc_error;
1482: END IF;
1483:
1484: IF nvl(px_instance_asset_tbl(ia_ind).instance_asset_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1477: px_inst_asset_rec => px_instance_asset_tbl(ia_ind),
1478: x_return_status => l_return_status);
1479:
1480: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1481: RAISE fnd_api.g_exc_error;
1482: END IF;
1483:
1484: IF nvl(px_instance_asset_tbl(ia_ind).instance_asset_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1485:
1480: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1481: RAISE fnd_api.g_exc_error;
1482: END IF;
1483:
1484: IF nvl(px_instance_asset_tbl(ia_ind).instance_asset_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1485:
1486: csi_asset_pvt.create_instance_asset(
1487: p_api_version => 1.0,
1488: p_commit => fnd_api.g_false,
1484: IF nvl(px_instance_asset_tbl(ia_ind).instance_asset_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
1485:
1486: csi_asset_pvt.create_instance_asset(
1487: p_api_version => 1.0,
1488: p_commit => fnd_api.g_false,
1489: p_init_msg_list => fnd_api.g_true,
1490: p_validation_level => fnd_api.g_valid_level_full,
1491: p_instance_asset_rec => px_instance_asset_tbl(ia_ind),
1492: p_txn_rec => px_csi_txn_rec,
1485:
1486: csi_asset_pvt.create_instance_asset(
1487: p_api_version => 1.0,
1488: p_commit => fnd_api.g_false,
1489: p_init_msg_list => fnd_api.g_true,
1490: p_validation_level => fnd_api.g_valid_level_full,
1491: p_instance_asset_rec => px_instance_asset_tbl(ia_ind),
1492: p_txn_rec => px_csi_txn_rec,
1493: p_lookup_tbl => l_lookup_tbl,
1486: csi_asset_pvt.create_instance_asset(
1487: p_api_version => 1.0,
1488: p_commit => fnd_api.g_false,
1489: p_init_msg_list => fnd_api.g_true,
1490: p_validation_level => fnd_api.g_valid_level_full,
1491: p_instance_asset_rec => px_instance_asset_tbl(ia_ind),
1492: p_txn_rec => px_csi_txn_rec,
1493: p_lookup_tbl => l_lookup_tbl,
1494: p_asset_count_rec => l_asset_count_rec,
1497: x_return_status => l_return_status,
1498: x_msg_count => l_msg_count,
1499: x_msg_data => l_msg_data);
1500:
1501: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1502: RAISE fnd_api.g_exc_error;
1503: END IF;
1504:
1505: ELSE
1498: x_msg_count => l_msg_count,
1499: x_msg_data => l_msg_data);
1500:
1501: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1502: RAISE fnd_api.g_exc_error;
1503: END IF;
1504:
1505: ELSE
1506: null;
1519: fnd_msg_pub.add;
1520: x_return_status := 'W';
1521: x_error_message := dump_error_stack;
1522: ELSE
1523: x_return_status := fnd_api.g_ret_sts_success;
1524: END IF;
1525:
1526: EXCEPTION
1527: WHEN fnd_api.g_exc_error THEN
1523: x_return_status := fnd_api.g_ret_sts_success;
1524: END IF;
1525:
1526: EXCEPTION
1527: WHEN fnd_api.g_exc_error THEN
1528: rollback to create_instance_assets;
1529: x_return_status := fnd_api.g_ret_sts_error;
1530: x_error_message := dump_error_stack;
1531: WHEN others THEN
1525:
1526: EXCEPTION
1527: WHEN fnd_api.g_exc_error THEN
1528: rollback to create_instance_assets;
1529: x_return_status := fnd_api.g_ret_sts_error;
1530: x_error_message := dump_error_stack;
1531: WHEN others THEN
1532: rollback to create_instance_assets;
1533: x_return_status := fnd_api.g_ret_sts_unexp_error ;
1529: x_return_status := fnd_api.g_ret_sts_error;
1530: x_error_message := dump_error_stack;
1531: WHEN others THEN
1532: rollback to create_instance_assets;
1533: x_return_status := fnd_api.g_ret_sts_unexp_error ;
1534: x_error_message := substr(sqlerrm, 1, 2000);
1535: END create_instance_assets;
1536:
1537: END csi_fa_instance_grp;