API For Cost Adjsutment
/* Formatted on 2013/05/06 13:01 (Formatter Plus v4.8.8) */
declare
l_trans_rec fa_api_types.trans_rec_type;
l_asset_hdr_rec fa_api_types.asset_hdr_rec_type;
l_asset_fin_rec_adj fa_api_types.asset_fin_rec_type;
l_asset_fin_rec_new fa_api_types.asset_fin_rec_type;
l_asset_fin_mrc_tbl_new fa_api_types.asset_fin_tbl_type;
l_inv_trans_rec fa_api_types.inv_trans_rec_type;
l_inv_tbl fa_api_types.inv_tbl_type;
l_inv_rate_tbl fa_api_types.inv_rate_tbl_type;
l_asset_deprn_rec_adj fa_api_types.asset_deprn_rec_type;
l_asset_deprn_rec_new fa_api_types.asset_deprn_rec_type;
l_asset_deprn_mrc_tbl_new fa_api_types.asset_deprn_tbl_type;
l_inv_rec fa_api_types.inv_rec_type;
l_group_reclass_options_rec fa_api_types.group_reclass_options_rec_type;
l_return_status varchar2(1);
l_mesg_count number := 0;
l_mesg_len number;
l_mesg varchar2(4000);
l_asset_id number;
--l_new_life FA_API_TYPES.asset_hr_attr_rec_type;
cursor cur_fa_addition is
select a.asset_number, b.cost
from fa_additions_b a, fa_books_v b
where a.asset_id = b.asset_id
and b.cost not in (0)
and a.asset_number = '5612960'
and a.attribute4 = '0000002526'
and not exists (select 1 from fa_retirements fr where fr.asset_id=a.asset_id)
;
begin
for c1 in cur_fa_addition loop
begin
select asset_id
into l_asset_id
from fa_additions_b
where asset_number = c1.asset_number;
exception
when others then
dbms_output.put_line(' Asset number does not exit' ||
c1.asset_number);
end;
fnd_profile.put('PRINT_DEBUG', 'Y');
dbms_output.enable(1000000);
fa_srvr_msg.init_server_message;
fa_debug_pkg.initialize;
--asset header info
l_asset_hdr_rec.asset_id := l_asset_id;
l_asset_hdr_rec.book_type_code := 'CORPORATE BOOK';
-- fin info
l_asset_fin_rec_adj.cost := -c1.cost;---c1.asset_cost;
--l_new_life.life_in_months:=100;
fa_adjustment_pub.do_adjustment(p_api_version => 1.0,
p_init_msg_list => fnd_api.g_false,
p_commit => fnd_api.g_false,
p_validation_level => fnd_api.g_valid_level_full,
x_return_status => l_return_status,
x_msg_count => l_mesg_count,
x_msg_data => l_mesg,
p_calling_fn => 'ADJ_TEST_SCRIPT',
px_trans_rec => l_trans_rec,
px_asset_hdr_rec => l_asset_hdr_rec,
p_asset_fin_rec_adj => l_asset_fin_rec_adj,
x_asset_fin_rec_new => l_asset_fin_rec_new,
x_asset_fin_mrc_tbl_new => l_asset_fin_mrc_tbl_new,
px_inv_trans_rec => l_inv_trans_rec,
px_inv_tbl => l_inv_tbl,
-- px_inv_rate_tbl => l_inv_rate_tbl,
p_asset_deprn_rec_adj => l_asset_deprn_rec_adj,
x_asset_deprn_rec_new => l_asset_deprn_rec_new,
x_asset_deprn_mrc_tbl_new => l_asset_deprn_mrc_tbl_new,
p_group_reclass_options_rec => l_group_reclass_options_rec);
dbms_output.put_line(l_return_status);
if (l_return_status <> fnd_api.g_ret_sts_success) then
fa_debug_pkg.dump_debug_messages(max_mesgs => 0);
l_mesg_count := fnd_msg_pub.count_msg;
if l_mesg_count > 0 then
l_mesg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first,
fnd_api.g_false),
1,
512);
dbms_output.put_line(substr(l_mesg, 1, 255));
for i in 1 .. l_mesg_count - 1 loop
l_mesg := substr(fnd_msg_pub.get(fnd_msg_pub.g_next,
fnd_api.g_false),
1,
512);
dbms_output.put_line(substr(l_mesg, 1, 255));
end loop;
fnd_msg_pub.delete_msg();
end if;
else
dbms_output.put_line('SUCCESS');
commit;
dbms_output.put_line('THID' ||
to_char(l_trans_rec.transaction_header_id));
end if;
end loop;
end;
--------------------------------------------------------------------
API for Asset Retirement after making cost to zero
declare
/* define local record types */
l_trans_rec FA_API_TYPES.trans_rec_type;
l_dist_trans_rec FA_API_TYPES.trans_rec_type;
l_asset_hdr_rec FA_API_TYPES.asset_hdr_rec_type;
l_asset_retire_rec FA_API_TYPES.asset_retire_rec_type;
l_asset_dist_tbl FA_API_TYPES.asset_dist_tbl_type;
l_subcomp_tbl FA_API_TYPES.subcomp_tbl_type;
l_inv_tbl FA_API_TYPES.inv_tbl_type;
/* misc info */
l_api_version number := 1;
l_init_msg_list varchar2(1) := FND_API.G_FALSE;
l_commit varchar2(1) := FND_API.G_FALSE;
l_validation_level number := FND_API.G_VALID_LEVEL_FULL;
l_calling_fn varchar2(80) := 'Retirement test wrapper';
l_return_status VARCHAR2(1);
l_mesg_count number := 0;
l_mesg_len number;
l_mesg varchar2(4000);
l_source_line_id number ;
l_cost_retired number ;
cursor cur_fa_addition is
select a.asset_number,a.asset_id, b.cost
from fa_additions_b a, fa_books_v b
where a.asset_id = b.asset_id
and b.cost in (0)
and a.asset_number = '5612960'
and a.attribute4 = '0000002526'
and not exists
(select 1 from fa_retirements fr where fr.asset_id = a.asset_id);
begin
l_source_line_id :=null ;
l_cost_retired := 0;
dbms_output.disable;
dbms_output.enable(1000000);
dbms_output.put_line('begin');
fnd_profile.put('PRINT_DEBUG', 'Y');
dbms_output.enable(1000000);
FA_SRVR_MSG.Init_Server_Message;
FA_DEBUG_PKG.Initialize;
for i in cur_fa_addition loop
-- Get standard who info
l_asset_hdr_rec.asset_id := i.asset_id;
l_asset_hdr_rec.book_type_code :='&book_type_code';
l_asset_retire_rec.calculate_gain_loss := FND_API.G_FALSE;
l_asset_dist_tbl.delete;
l_inv_tbl(1).source_line_id := l_source_line_id;
l_inv_tbl(1).fixed_assets_cost := l_cost_retired;
FA_RETIREMENT_PUB.do_retirement (p_api_version => l_api_version
,p_init_msg_list => l_init_msg_list
,p_commit => l_commit
,p_validation_level => l_validation_level
,p_calling_fn => l_calling_fn
,x_return_status => l_return_status
,x_msg_count => l_mesg_count
,x_msg_data => l_mesg
,px_trans_rec => l_trans_rec
,px_dist_trans_rec => l_dist_trans_rec
,px_asset_hdr_rec => l_asset_hdr_rec
,px_asset_retire_rec => l_asset_retire_rec
,p_asset_dist_tbl => l_asset_dist_tbl
,p_subcomp_tbl => l_subcomp_tbl
,p_inv_tbl => l_inv_tbl
);
dbms_output.put_line('Return Status: ' || l_return_status);
if (fa_cache_pkg.fa_print_debug) then
fa_debug_pkg.dump_debug_messages(max_mesgs => 0);
end if;
l_mesg_count := fnd_msg_pub.count_msg;
if l_mesg_count > 0 then
l_mesg := chr(10) || substr(fnd_msg_pub.get
(fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
1, 512);
dbms_output.put_line(l_mesg);
for i in 1..(l_mesg_count - 1) loop
l_mesg :=
substr(fnd_msg_pub.get
(fnd_msg_pub.G_NEXT,
fnd_api.G_FALSE), 1, 512);
dbms_output.put_line(l_mesg);
end loop;
fnd_msg_pub.delete_msg();
end if;
if l_return_status = FND_API.G_FALSE then
dbms_output.put_line('FAILURE');
rollback;
else
dbms_output.put_line('SUCCESS');
dbms_output.put_line('test wrapper: retirement_id: '||l_asset_retire_rec.retirement_id);
end if;
end loop ;
end;