Professional Documents
Culture Documents
MCN_AP_DIVEST_OU(947, 66474);
/*
This API will do the follows:
*/
/*
To-Do:
*/
--/*-------------------------------------
-- Variables --
-----------------------------------------
-- Local
lv_invoice_source varchar2(100);
lv_invoice_id number;
lv_ou_currency varchar2(100);
lv_exc_rate number;
lv_invoice_type varchar2(100);
v_request_id NUMBER;
l_boolean BOOLEAN;
l_phase VARCHAR2 (200);
l_status VARCHAR2 (200);
l_dev_phase VARCHAR2 (200);
l_dev_status VARCHAR2 (200);
l_message VARCHAR2 (200);
g_invalid_ex EXCEPTION;
l_error_seq VARCHAR2 (200);
l_error_msg VARCHAR2 (4000);
/*--------------------------------------------------------------
-- Cursor for Open Supplier Transaction Balances --
--------------------------------------------------------------*/
CURSOR unset_trans is
select *
from APPS.MCN_SUPPLIER_BALANCES
where 1=1
and org_id = p_org_id
and vendor_id = p_vend_id
;
BEGIN
/*
Begining of Cursor
- Creation of Invoice for each line in cursor
*/
for rec in unset_trans
LOOP
SELECT gs.currency_code
into lv_ou_currency
FROM gl_sets_of_books gs,
financials_system_params_all os,
hr_operating_units ho
WHERE os.set_of_books_id = gs.set_of_books_id
AND ho.organization_id = os.org_id
AND ho.organization_id = rec.org_id
;
exception when others then EXIT;
END;
THEN
BEGIN
select conversion_rate
into lv_exc_rate
from gl_daily_rates
where conversion_type = 'Corporate'
and from_currency = rec.invoice_currency_code
and to_currency = lv_ou_currency
and conversion_date = trunc(sysdate)
;
END;
END IF;
IF
rec.balance >= 0
END IF;
END;
BEGIN
/*
Insertion of Lines in Interface
*/
VALUES (lv_invoice_id
,'Divestiture Invoice -' ||
lv_invoice_id
,rec.vendor_id
,rec.vendor_site_id
,rec.balance*-1 --
Reversing Balance
,rec.invoice_currency_code
,trunc(sysdate)
,'This invoice is created
for Divestiture purposes for this Operating Unit'
,'DIVEST'
,rec.org_id
,rec.payment_method_code
,
CASE
WHEN
REC.invoice_currency_code = lv_ou_currency
THEN NULL
WHEN
REC.invoice_currency_code <> lv_ou_currency
THEN 'User'
END
,
CASE
WHEN
REC.invoice_currency_code = lv_ou_currency
THEN NULL
WHEN
REC.invoice_currency_code <> lv_ou_currency
THEN lv_exc_rate
END
,lv_invoice_type
);
END;
BEGIN
line_type_lookup_code,
amount,
accounting_date,
dist_code_combination_id
)
VALUES( lv_invoice_id,
1,
'ITEM',
rec.balance*-1,
--Reversing Balance
trunc(sysdate),
1173088 --Dubai
MCN SWAP Account -- COnfig via request parameters
);
END;
END LOOP;
/*
Run concurrent request to import payables lines
*/
BEGIN
mo_global.init ('SQLAP');
fnd_global.apps_initialize (user_id => 18981, resp_id => 20639,
resp_appl_id => 200); ---Make Dynamic
-- fnd_request.set_org_id (204);
-- mo_global.set_policy_context ('S', 204);
v_request_id :=
dbms_output.put_line ('********************************');
END;
dbms_output.put_line ('********************************');
EXCEPTION
END;
END ;