You are on page 1of 6

CREATE OR REPLACE PROCEDURE APPS.

Q_asset_pc (p_ID varchar2 )


AS
l_trans_rec apps.fa_api_types.trans_rec_type;
l_dist_trans_rec apps.fa_api_types.trans_rec_type;
l_asset_hdr_rec apps.fa_api_types.asset_hdr_rec_type;
l_asset_desc_rec apps.fa_api_types.asset_desc_rec_type;
l_asset_cat_rec apps.fa_api_types.asset_cat_rec_type;
l_asset_type_rec apps.fa_api_types.asset_type_rec_type;
l_asset_hierarchy_rec apps.fa_api_types.asset_hierarchy_rec_type;
l_asset_fin_rec apps.fa_api_types.asset_fin_rec_type;
l_asset_deprn_rec apps.fa_api_types.asset_deprn_rec_type;
l_asset_dist_rec apps.fa_api_types.asset_dist_rec_type;
l_asset_dist_tbl apps.fa_api_types.asset_dist_tbl_type;
l_inv_tbl apps.fa_api_types.inv_tbl_type;
l_asset_retire apps.fa_api_types.asset_retire_det_rec_type;
l_inv_rate_tbl apps.fa_api_types.inv_rate_tbl_type;
l_inv_rec apps.fa_api_types.inv_rec_type;
l_return_status VARCHAR2 (1);
l_mesg_count NUMBER := 0;
l_mesg_len NUMBER;
l_mesg VARCHAR2 (4000);

CURSOR cur_fa
IS
SELECT TO_CHAR (ass.date_placed_in_service, 'DD-MON-YYYY') date_serv,
ass.*,
(SELECT LOCATION_ID
-- INTO V_LOCATION_CCID
FROM FA_LOCATIONS_KFV
WHERE (
UPPER (
SEGMENT1
|| '.'
|| SEGMENT2
|| '.'
|| SEGMENT3
|| '.'
|| SEGMENT4
|| '.'
|| SEGMENT5)) =
(
UPPER (
ass.REGION
|| '.'
|| ass.DEPARTMENT
|| '.'
|| ass.BUILDING
|| '.'
|| ass.FLOOR
|| '.'
|| ass.ROOM)))
LOCATION_ID_acc,
(SELECT FCBK.CATEGORY_ID
--INTO V_CATEGORY_ID
FROM FA_CATEGORIES_B_KFV FCBK, FA_CATEGORY_BOOK_DEFAULTS FCBD
WHERE FCBK.CATEGORY_ID = FCBD.CATEGORY_ID
AND ( --TRIM (UPPER (CONCATENATED_SEGMENTS)) =
--TRIM (UPPER (I.ASSET_CATEGORY))
(TRIM (UPPER (SEGMENT1 || '.' || SEGMENT2))) =
TRIM (
UPPER (ass.MAJOR_CATEGORY || '.' || ass.MINOR_CATEGORY)))
AND TRIM (UPPER (FCBD.BOOK_TYPE_CODE)) =
TRIM (UPPER ('02 SMG_BOOK')))
CATEGORY_ID_acc,
(SELECT CODE_COMBINATION_ID
-- INTO V_EXPENSE_CCID
FROM GL_CODE_COMBINATIONS_KFV GCC, FA_BOOK_CONTROLS FBC
WHERE (UPPER (
SEGMENT1
|| '.'
|| SEGMENT2
|| '.'
|| SEGMENT3
|| '.'
|| SEGMENT4
|| '.'
|| SEGMENT5
|| '.'
|| SEGMENT6
|| '.'
|| SEGMENT7
|| '.'
|| SEGMENT8
|| '.'
|| SEGMENT9
|| '.'
|| SEGMENT10)) =
(UPPER (
ass.Company
|| '.'
|| ass.Devision
|| '.'
|| ass.Department_acc
|| '.'
|| ass.Location
|| '.'
|| ass.PRODUCT
|| '.'
|| ass.ACCOUNT
|| '.'
|| ass.INTERCOMPANY
|| '.'
|| ass.BUSINESS_DEAL
|| '.'
|| ass.FUTURE_1
|| '.'
|| ass.FUTURE_2))
AND TRIM (UPPER (FBC.BOOK_TYPE_CODE)) =
TRIM (UPPER ('02 SMG_BOOK'))
AND FBC.ACCOUNTING_FLEX_STRUCTURE = GCC.CHART_OF_ACCOUNTS_ID)
CODE_COMBINATION_ID_acc,
(SELECT DISTINCT person_id

FROM per_all_people_f
WHERE employee_number=USER_CODE
and trunc(sysdate) between effective_start_date and
effective_end_date)person_id,DECODE (Y_NO ,'Y', 'YES','N','NO')YY
FROM q_ASSET_all ass
WHERE ass.ID = p_ID
--AND ID BETWEEN 1545 AND 1545
and flag IS NULL;
-- and ass.ASSET_NUMBER=254 ;
-- WHERE serial = c_serial AND flag_from_api IS NULL ;
BEGIN
FOR rec_fa IN cur_fa
LOOP -- START LOOP
fnd_profile.put ('PRINT_DEBUG', 'Y');
DBMS_OUTPUT.ENABLE (1000000);
fa_srvr_msg.init_server_message;
fa_debug_pkg.initialize;
-- desc info
l_asset_desc_rec.description := rec_fa.description;
--l_asset_desc_rec.ASSET_NUMBER := rec_fa.SERIAL_NUMBER;
L_ASSET_DESC_REC.TAG_NUMBER := rec_fa. TAG_number;
L_ASSET_DESC_REC.SERIAL_NUMBER := rec_fa.SERIAL_NUMBER;
-- l_asset_desc_rec.asset_key_ccid := 1;
-- cat info *** NEED TO CHANGE BASED ON CATEGORY SETUP FOR YOUR BOOK ***
l_asset_cat_rec.category_id := rec_fa.CATEGORY_ID_acc;
--type info
l_asset_type_rec.asset_type := rec_fa.ASSET_TYPE;
-- fin info
l_asset_fin_rec.COST := rec_fa.cost_value;
l_asset_fin_rec.salvage_value := rec_fa.salvage_value;
-- l_asset_fin_rec.deprn_method_code ='STL';
l_asset_fin_rec.date_placed_in_service := rec_fa.date_serv;
l_asset_fin_rec.depreciate_flag := rec_fa.YY; --DECODE (rec_fa.Y_NO ,'Y',
'YES','N','NO');
l_asset_fin_rec.deprn_method_code := 'STL';
-- l_asset_fin_rec.prorate_convention_code := 'ME PRORATE CONVENTION' ;---
rec_fa.prorate_convention_code ;
l_asset_fin_rec.life_in_months := rec_fa.life_mounth*12;
-- l_asset_fin_rec.deprn_start_date := rec_fa.date_serv;
-- l_asset_fin_rec.ytd_proceeds := rec_fa.YTD_DEPRN; ---------
-- l_asset_fin_rec.ltd_proceeds := rec_fa.depreciation_amount; -----------
--to_char(sysdate,'DD-MON-YYYY');
-- deprn info
-- l_asset_deprn_rec.deprn_amount := rec_fa.depreciation_amount; ---------
l_asset_deprn_rec.ytd_deprn := rec_fa.YTD_DEPRN;
------ l_asset_deprn_rec.ltd_production := rec_fa.YTD_DEPRN;
-- l_asset_deprn_rec.ytd_production := rec_fa.depreciation_amount;
--DEPRN_AMOUNT
l_asset_deprn_rec.deprn_reserve := rec_fa.YTD_DEPRN; --���� �������
l_asset_deprn_rec.bonus_ytd_deprn := 0;
l_asset_deprn_rec.bonus_deprn_reserve := 0;
-- book / trans info
l_asset_hdr_rec.book_type_code := '02 SMG_BOOK';
l_trans_rec.transaction_date_entered := rec_fa.transaction_date_entered;
-- TO_CHAR (SYSDATE, 'DD-MON-YYYY');
-- TO_date (SYSDATE, 'DD-MON-YYYY');
l_trans_rec.who_info.last_updated_by := -1; --fnd_global.user_id;
-- distribution info
l_asset_dist_rec.units_assigned := rec_fa.units;
l_asset_dist_rec.expense_ccid := rec_fa.CODE_COMBINATION_ID_acc;
l_asset_dist_rec.location_ccid := rec_fa.LOCATION_ID_acc;
-- l_asset_dist_rec.code_combination_id := rec_fa.compination_id;
--l_asset_dist_rec.assigned_to := rec_fa.person_id;
--rec_fa.person_id;
--NULL; --person_id
-- l_asset_dist_rec.transaction_units := 20;
l_asset_dist_tbl (1) := l_asset_dist_rec;
--l_asset_desc_rec.asset_number :=
--l_asset_desc_rec.property_type_code := 'REAL';
--l_asset_desc_rec.property_1245_1250_code := '1245';
l_asset_desc_rec.in_use_flag := 'YES';
l_asset_desc_rec.owned_leased := 'OWNED';
l_asset_desc_rec.new_used := 'NEW';
l_asset_desc_rec.inventorial := 'YES';
--l_asset_desc_rec.manufacturer_name :=
--l_asset_desc_rec.serial_number :=
--l_asset_desc_rec.model_number :=
--l_asset_desc_rec.tag_number :=
--l_asset_desc_rec.parent_asset_id :=
--l_asset_desc_rec.warranty_id :=
--l_asset_desc_rec.lease_id :=

--supplier info
-- l_inv_rec.po_vendor_id := 59;
-- For tax addition, will need existing asset_id
--l_asset_hdr_rec.asset_id :=
-- l_asset_fin_rec.salvage_value := 50;
--l_asset_fin_rec.unrevalued_cost :=
--l_asset_fin_rec.short_fiscal_year_flag :=
--l_asset_fin_rec.conversion_date :=
--l_asset_fin_rec.orig_deprn_start_date :=
--l_asset_fin_rec.unit_of_measure :=

--l_asset_deprn_rec.reval_deprn_reserve :=
--l_asset_deprn_rec.reval_amortization_basis :=

-- Accept amort start date for amortize NBV additions


---l_trans_rec.amortization_start_date := rec_fa.date_serv;
--- l_asset_hdr_rec.AMORTIZE_FLAG := 'Y';

-- call the api


fa_addition_pub.do_addition
(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 => NULL,
px_trans_rec => l_trans_rec,
px_dist_trans_rec => l_dist_trans_rec,
px_asset_hdr_rec => l_asset_hdr_rec,
px_asset_desc_rec => l_asset_desc_rec,
px_asset_type_rec => l_asset_type_rec,
px_asset_cat_rec => l_asset_cat_rec,
px_asset_hierarchy_rec => l_asset_hierarchy_rec,
px_asset_fin_rec => l_asset_fin_rec,
px_asset_deprn_rec => l_asset_deprn_rec,
px_asset_dist_tbl => l_asset_dist_tbl,
px_inv_tbl => l_inv_tbl
-- px_inv_rate_tbl => l_inv_rate_tbl
);
COMMIT;
END LOOP;

DBMS_OUTPUT.put_line (l_return_status);

IF (l_return_status <> fnd_api.g_ret_sts_success)


THEN
DBMS_OUTPUT.put_line ('FAILED');
-- DBMS_OUTPUT.put_line (rec_fa.serial);
-- INSERT INTO xx_final_fa_upload_failed
-- (SELECT *
-- FROM xx_final_fa_upload
-- WHERE serial = rec_fa.serial);

-- dbms_output.put_line(to_char(sqlerr));
DBMS_OUTPUT.put_line (SQLERRM);
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
);

FOR i IN 1 .. 2
LOOP -- (l_mesg_count - 1) loop
l_mesg :=
l_mesg
|| CHR (10)
|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_next,
fnd_api.g_false),
1,
512
);
END LOOP;

fnd_msg_pub.delete_msg ();
l_mesg_len := LENGTH (l_mesg);

FOR i IN 1 .. CEIL (l_mesg_len / 255)


LOOP
DBMS_OUTPUT.put_line (SUBSTR (l_mesg, ((i * 255) - 254), 255));
END LOOP;
END IF;
ELSE
DBMS_OUTPUT.put_line ('SUCCESS');
DBMS_OUTPUT.put_line ( 'THID'
|| TO_CHAR (l_trans_rec.transaction_header_id)
);
DBMS_OUTPUT.put_line ('ASSET_ID' || TO_CHAR (l_asset_hdr_rec.asset_id));
DBMS_OUTPUT.put_line ('ASSET_NUMBER' || l_asset_desc_rec.asset_number);

-- DBMS_OUTPUT.put_line (rec_fa.serial);
UPDATE q_asset_all
SET flag = 'Y'
,ASSET_NUM = l_asset_desc_rec.asset_number
,ASSET_NUMBER = l_asset_desc_rec.asset_number
WHERE ID = p_ID;
END IF;

-- DBMS_OUTPUT.put_line (rec_fa.serial);
COMMIT;
COMMIT;
-- END LOOP
COMMIT;
END;
/

You might also like