Beruflich Dokumente
Kultur Dokumente
R BILL No
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_TRUE);
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_FALSE);
end if;
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_TRUE);
END IF;
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_FALSE);
-- go_item('XXNLL_WORK_REQ_HEADERS.area_of_land');
END IF;
Creation Date
When Validate items
Declare
lv_count number;
v_error_message varchar2(200);
begin
select count(1) into lv_count from
GL_PERIOD_STATUSES GS,
hr_operating_units hou
where GS.PERIOD_NAME in (select
to_char(:XXNLL_RA_BILL_HEADERS.CREATION_DATE,'MON-YY') from dual)
and GS.application_id=200
and GS.CLOSING_STATUS='O'
and hou.SET_OF_BOOKS_ID=GS.SET_OF_BOOKS_ID
and ORGANIZATION_ID=:PARAMETER.ORG_ID;
if lv_count=0 then
v_error_message :='The date you entered is not in an open accounting period.
Open the period in the Control Payables Period window' ;
end;
--go_block('HISTORY');
go_block('XXNLL_RA_BILL_LINES');
CLEAR_BLOCK(NO_COMMIT);
:GLOBAL.LOAD := 'UNLOAD';
:GLOBAL.GO := 'GONE';
Cummulative Qty
When Validate Item
begin
IF :XXNLL_RA_BILL_LINES.CUMMULATIVE_QTY <
:XXNLL_RA_BILL_LINES.PREVIOUS_QTY THEN
FND_MESSAGE.DEBUG('Value Should More than Previous Qty');
Raise form_trigger_failure;
end if;
end;
begin
--IF :XXNLL_RA_BILL_LINES.CUMMULATIVE_QTY +
:XXNLL_RA_BILL_LINES.PREVIOUS_QTY >
:XXNLL_RA_BILL_LINES.WORK_ORDER_QTY THEN
IF :XXNLL_RA_BILL_LINES.CUMMULATIVE_QTY >
:XXNLL_RA_BILL_LINES.WORK_ORDER_QTY THEN
FND_MESSAGE.DEBUG('Value Should not More than Work Order Qty');
Raise form_trigger_failure;
end if;
end;
begin
if :CUMMULATIVE_QTY is not null then
select nvl(:CUMMULATIVE_QTY,0)-nvl(:PREVIOUS_QTY,0) into
:CURR_BILL_QTY from dual;
end if;
end;
begin
SELECT (:WORK_ORDER_RATE*:CURR_BILL_QTY)*(100-
nvl(:DISCOUNTRATE,0))/100 INTO :XXNLL_RA_BILL_LINES.AMOUNT FROM
DUAL;
end;
begin
SELECT (:XXNLL_RA_BILL_LINES.AMOUNT*:MVAT_RATE)*(1/100) INTO
:XXNLL_RA_BILL_LINES.MVAT_AMOUNT FROM DUAL;
end;
begin
if :XXNLL_RA_BILL_HEADERS.WO_TYPE='FMI' then
select
(nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)+nvl(:XXNLL_RA_BILL_LINES.MAT
_CHARGES,0))*0.33*(nvl(:XXNLL_RA_BILL_LINES.TAX_RATE,0)/100) into
:XXNLL_RA_BILL_LINES.service_tax_amount from dual;
else
select
nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)*(nvl(:XXNLL_RA_BILL_LINES.TAX_
RATE,0)/100) into :XXNLL_RA_BILL_LINES.service_tax_amount from dual;
end if;
end;
begin
select
NVL(:MVAT_AMOUNT,0)+NVL(:XXNLL_RA_BILL_LINES.AMOUNT,0)+NVL(:S
ERVICE_TAX_AMOUNT,0) into :XXNLL_RA_BILL_LINES.total from dual;
end;
discount Rate
when validate
begin
SELECT (:WORK_ORDER_RATE*:CURR_BILL_QTY)*(100-
nvl(:DISCOUNTRATE,0))/100 INTO :XXNLL_RA_BILL_LINES.AMOUNT FROM
DUAL;
end;
begin
SELECT nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)*nvl(:MVAT_RATE,0)/100
INTO :XXNLL_RA_BILL_LINES.MVAT_AMOUNT FROM DUAL;
end;
begin
if :XXNLL_RA_BILL_HEADERS.WO_TYPE='FMI' then
select
(nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)+nvl(:XXNLL_RA_BILL_LINES.MAT
_CHARGES,0))*0.33*(nvl(:XXNLL_RA_BILL_LINES.TAX_RATE,0)/100) into
:XXNLL_RA_BILL_LINES.service_tax_amount from dual;
else
select
nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)*(nvl(:XXNLL_RA_BILL_LINES.TAX_
RATE,0)/100) into :XXNLL_RA_BILL_LINES.service_tax_amount from dual;
end if;
end;
begin
select
NVL(:MVAT_AMOUNT,0)+NVL(:XXNLL_RA_BILL_LINES.AMOUNT,0)+NVL(:S
ERVICE_TAX_AMOUNT,0) into :XXNLL_RA_BILL_LINES.total from dual;
end;
Mat charges
begin
if :XXNLL_RA_BILL_HEADERS.WO_TYPE='FMI' then
select
(nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)+nvl(:XXNLL_RA_BILL_LINES.MAT
_CHARGES,0))*0.33*(nvl(:XXNLL_RA_BILL_LINES.TAX_RATE,0)/100) into
:XXNLL_RA_BILL_LINES.service_tax_amount from dual;
else
select
nvl(:XXNLL_RA_BILL_LINES.AMOUNT,0)*(nvl(:XXNLL_RA_BILL_LINES.TAX_
RATE,0)/100) into :XXNLL_RA_BILL_LINES.service_tax_amount from dual;
end if;
end;
begin
select
NVL(:MVAT_AMOUNT,0)+NVL(:XXNLL_RA_BILL_LINES.AMOUNT,0)+NVL(:S
ERVICE_TAX_AMOUNT,0) into :XXNLL_RA_BILL_LINES.total from dual;
end;
Amount
When validate item
if :system.trigger_record = 4 then
:XXNLL_RA_BILL_DEDUCTIONS.AMOUNT :=
(:XXNLL_RA_BILL_LINES.AMT)*(NVL(:XXNLL_RA_BILL_HEADERS.WATER,0
)/100);
END IF;
BEGIN
if :system.trigger_record = 1 AND :XXNLL_RA_BILL_DEDUCTIONS.AMOUNT is
not null then
:XXNLL_RA_BILL_DEDUCTIONS.STATUS := 'E';
END IF;
END;
Expenditor type
BEGIN
if :XXNLL_RA_BILL_DEDUCTIONS.EXPEN_TYPE is not null then
SELECT
APPS.XXNLL_MISC_TRANS_COST_ACCT(:XXNLL_RA_BILL_HEADERS.PROJE
CT_ID,:XXNLL_RA_BILL_DEDUCTIONS.EXPEN_TYPE) INTO
:XXNLL_RA_BILL_DEDUCTIONS.GLCODE FROM DUAL;
end if;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
Approve Botton
nll_RAbillwf_pkg.proc_tocallwf(:XXNLL_RA_BILL_HEADERS.PREPARER_ID,:XX
NLL_RA_BILL_HEADERS.RABILL_NO);
END IF;
Invoice
V_USER_ID NUMBER;
v_inv_no number default 0;
begin
v_user_id := fnd_profile.value('USER_ID');
-- v_curr_date:=to_char(sysdate,'DD-MON-YYYY');
-- v_effective_from:=to_char(sysdate,'DD-MON-YYYY');
-- LOOP
IF :XXNLL_RA_BILL_HEADERS.RABILL_NO is not null THEN
:SYSTEM.ME
SSAGE_LEVEL := '5';
---------
------------------------------------------HEADER START
--
fnd_MESSAGE.debug('BEFORE INSERT_hdr');
import.INSERT_AP_INVOICE_HDR(:XXNLL_RA_BILL_HEADERS.RABILL_NO,
:XXNLL_RA_BILL_HEADERS.CONTRACTOR_ID,:XXNLL_RA_BILL_HEADERS.
CONTRACTOR_SITE_ID,v_user_id);
--
fnd_MESSAGE.debug('AFETR INSERT_hdr');
--
fnd_MESSAGE.debug('BEFORE INSERT_ret_cre');
import.INSERT_AP_INVOICE_RET_CRE(:XXNLL_RA_BILL_HEADERS.CONTRA
CTOR_ID);
--
fnd_MESSAGE.debug('AFTER INSERT_ret_cre');
---------------------------------------------------DETAIL START
GO_BLOCK('XXNLL_RA_BILL_LINES');
FIRST_RECORD;
:global.sno := 1;
LOOP
--
fnd_MESSAGE.debug('BEFORE INSERT_det');
import.INSERT_AP_INVOICE_DTL(:XXNLL_RA_BILL_HEADERS.CONTRACTO
R_ID,:XXNLL_RA_BILL_LINES.TASK_ID);
IF
:System.Last_Record = 'TRUE' THEN
EXIT;
END
IF;
NEXT_RECORD;
:global.sno := :global.sno+1;
END LOOP;
--
fnd_MESSAGE.debug('AFTER INSERT_det');
---------
--------------------------------------------------HEADERPART DEDCTION START
GO_BLOCK('XXNLL_RA_BILL_DEDUCTIONS');
FIRST_RECORD;
:global.sno :=
:global.sno+1;
LOOP
--
fnd_MESSAGE.debug('BEFORE INSERT_detUCIONS');
import.INSERT_AP_INVOICE_DEDUCTION(:XXNLL_RA_BILL_HEADERS.CONT
RACTOR_ID,:XXNLL_RA_BILL_DEDUCTIONS.TASK_ID);
IF
:System.Last_Record = 'TRUE' THEN
EXIT;
END
IF;
NEXT_RECORD;
:global.sno := :global.sno+1;
END LOOP;
--
fnd_MESSAGE.debug('AFTER INSERT_detUTIONS');
------------------
----------------------------------------------------
--
:parameter.org_id
commit;
begin
--
fnd_message.debug('submiting the Invoice into request');
app_custom.CONCURRENT_PRG_INVOICE;
exception
end ;
:SYSTEM.MESSAGE_LEVEL := '0';
END IF;
exception
when others then
null;
END;
Header
Pre_insert Triger
fnd_standard.set_who;
:XXNLL_RA_BILL_HEADERS.ORG_ID:=FND_PROFILE.VALUE('ORG_ID');
BEGIN
BEGIN
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_TRUE);
END;
declare
v_header number;
begin
IF :XXNLL_RA_BILL_HEADERS.RABILL_NO IS NULL AND
:XXNLL_RA_BILL_HEADERS.WO_NO IS NOT NULL THEN
select max(RABILL_SNO)
into v_header
from XXNLL_RA_BILL_HEADERS WHERE WO_NO =
:XXNLL_RA_BILL_HEADERS.WO_NO;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
IF :XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID IS NULL AND
:XXNLL_RA_BILL_HEADERS.WO_NO IS NOT NULL THEN
SELECT RABILL_HEADER_ID_SEQ.NEXTVAL INTO
:XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID FROM DUAL;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/*
BEGIN
IF :XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID IS NULL AND
:XXNLL_RA_BILL_HEADERS.WO_NO IS NOT NULL THEN
SELECT 'RA'||
RABILL_HEADER_ID_SEQ.NEXTVAL||'/'||:XXNLL_RA_BILL_HEADERS.WO_NO
INTO :XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID FROM DUAL;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
On populate
--
-- Begin default relation declare section
--
DECLARE
recstat VARCHAR2(20) := :System.record_status;
startitm VARCHAR2(61) := :System.cursor_item;
rel_id Relation;
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
BEGIN
IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN
RETURN;
END IF;
--
-- Begin XXNLL_RA_BILL_LINES detail program section
--
IF ( (:XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID is not null) ) THEN
rel_id :=
Find_Relation('XXNLL_RA_BILL_HEADERS.XXNLL_RA_BILL_H_XXNLL_RA_B
ILL_');
Query_Master_Details(rel_id, 'XXNLL_RA_BILL_LINES');
END IF;
--
-- End XXNLL_RA_BILL_LINES detail program section
--
--
-- Begin XXNLL_RA_BILL_DEDUCTIONS detail program section
--
IF ( (:XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID is not null) ) THEN
rel_id := Find_Relation('XXNLL_RA_BILL_HEADERS.RELATION862');
Query_Master_Details(rel_id, 'XXNLL_RA_BILL_DEDUCTIONS');
END IF;
--
-- End XXNLL_RA_BILL_DEDUCTIONS detail program section
--
Pre-delete
BEGIN
--
-- Begin XXNLL_RA_BILL_LINES detail program section
--
DELETE FROM XXNLL_RA_BILL_LINES X
WHERE X.RABILL_HEADER_ID =
:XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID;
--
-- End XXNLL_RA_BILL_LINES detail program section
--
END;
declare
v_user number;
lv_ap_flag number:=0;
lv_ap_interface_flag number:=0;
begin
begin
fnd_profile.GET('USER_ID',V_USER);
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
end;
BEGIN
IF :XXNLL_RA_BILL_HEADERS.RABILL_NO is not null THEN
IF :XXNLL_RA_BILL_HEADERS.status is not null THEN
if upper(:XXNLL_RA_BILL_HEADERS.status) like 'REJECT%' OR
upper(:XXNLL_RA_BILL_HEADERS.status) LIKE 'INCOMPLETE' then
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_TRUE);
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_FALSE);
end if;
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_TRUE);
END IF;
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_FALSE);
END IF;
-- If it is final Approve then user cant perform DML operations
ENABLE_DISABLE;
if (lv_ap_interface_flag>0) or ( lv_ap_flag>0) or
:XXNLL_RA_BILL_HEADERS.STATUS<>'Approved by second approver' then
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.CREATE_INVOICE',ENAB
LED,PROPERTY_FALSE);
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.CREATE_INVOICE',ENAB
LED,PROPERTY_TRUE);
end if;
end if;
END;
end;
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_FALSE);
end if;
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_TRUE);
END IF;
else
SET_ITEM_PROPERTY('XXNLL_RA_BILL_HEADERS.APPROVE',ENABLED,PR
OPERTY_FALSE);
END IF;
-- If it is final Approve then user cant perform DML operations
ENABLE_DISABLE;
Post query
begin
SELECT distinct full_name INTO
:XXNLL_RA_BILL_HEADERS.PREPARER_NAME FROM HR_EMPLOYEES
WHERE EMPLOYEE_ID = :XXNLL_RA_BILL_HEADERS.PREPARER_ID;
exception
when no_data_found then
null;
Post Delete
--
-- Begin default relation declare section
--
DECLARE
Dummy_Define CHAR(1);
--
-- Begin XXNLL_RA_BILL_DEDUCTIONS detail declare section
--
CURSOR XXNLL_RA_BILL_DEDUCTIONS_cur IS
SELECT 1 FROM XXNLL_RA_BILL_DEDUCTIONS X
WHERE X.RABILL_HEADER_ID =
:XXNLL_RA_BILL_HEADERS.RABILL_HEADER_ID;
--
-- End XXNLL_RA_BILL_DEDUCTIONS detail declare section
--
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
BEGIN
--
-- Begin XXNLL_RA_BILL_DEDUCTIONS detail program section
--
OPEN XXNLL_RA_BILL_DEDUCTIONS_cur;
FETCH XXNLL_RA_BILL_DEDUCTIONS_cur INTO Dummy_Define;
IF ( XXNLL_RA_BILL_DEDUCTIONS_cur%found ) THEN
Message('Cannot delete master record when matching detail records exist.');
CLOSE XXNLL_RA_BILL_DEDUCTIONS_cur;
RAISE Form_Trigger_Failure;
END IF;
CLOSE XXNLL_RA_BILL_DEDUCTIONS_cur;
--
-- End XXNLL_RA_BILL_DEDUCTIONS detail program section
--
END;
--
-- End default relation program section
--
RA bill Details
DECLARE
A NUMBER;
BEGIN
select count(wo_no)INTO A from XXNLL_RA_BILL_headers b where wo_no =
:XXNLL_RA_BILL_HEADERS.WO_NO;
IF A > 0 THEN
BEGIN
-- CLEAR_BLOCK(NO_COMMIT);
FOR I IN C1 LOOP
:XXNLL_RA_BILL_LINES.TASK_NO := I.TASK_NUMBER;
:XXNLL_RA_BILL_LINES.DESCRIPTION := I.DESCRIPTION;
:XXNLL_RA_BILL_LINES.UOM := I.UOM;
:XXNLL_RA_BILL_LINES.WORK_ORDER_QTY := I.QTY;
:XXNLL_RA_BILL_LINES.WORK_ORDER_RATE := I.RATE;
:XXNLL_RA_BILL_LINES.WORK_ORDER_AMOUNT := I.AMOUNT;
:XXNLL_RA_BILL_LINES.EXPENDITURE_TYPE := I.EXPENDITURE_TYPE;
:XXNLL_RA_BILL_LINES.EXPEND_ORGANIZATION :=
I.EXPEND_ORGANIZATION;
:XXNLL_RA_BILL_LINES.EXPENDITURE_DATE :=
:XXNLL_RA_BILL_HEADERS.CREATION_DATE;
:XXNLL_RA_BILL_LINES.TASK_ID := I.TASK_ID;
:XXNLL_RA_BILL_LINES.ITEM_ID := I.ITEM_ID;
:XXNLL_RA_BILL_LINES.LINE_ID := :SYSTEM.CURSOR_RECORD;
:XXNLL_RA_BILL_LINES.PREVIOUS_QTY := I.CQTY;
:XXNLL_RA_BILL_LINES.MVAT_RATE := I.VAT_TAX;
:XXNLL_RA_BILL_LINES.SERVICE_TAX_NAME := I.SERVICE_CAT;
:XXNLL_RA_BILL_LINES.TAX_RATE:=I.TAX_RATE;
NEXT_RECORD;
END LOOP;
:GLOBAL.LOAD := 'LOAD';
FIRST_RECORD;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
-------------------------------------FISRT PART END
ELSE
------------------------SECOND PART START
DECLARE
CURSOR C1 IS
SELECT
DISTINCT p.TASK_NUMBER TASK_NUMBER,
D.LONG_DESC DESCRIPTION,--MSI.DESCRIPTION DESCRIPTION,
D.UOM UOM,
D.QTY QTY,
D.RATE RATE,
D.QTY*D.RATE AMOUNT ,
D.EXPENDITURE_TYPE EXPENDITURE_TYPE,
D.EXPEND_ORGANIZATION EXPEND_ORGANIZATION,
D.EXPECTED_START_DATE EXPECTED_START_DATE,
D.TASK_ID TASK_ID,
D.ITEM_ID ITEM_ID,
D.VAT_TAX VAT_TAX,
D.TAX_CAT SERVICE_CAT,
D.TAX_RATE
/*X.CQTY CQTY,
X.WO_NO WO_NO1,
X.ITEM_ID ITEM_ID1
FROM
(select a.CUMMULATIVE_QTY CQTY,A.WO_NO WO_NO,A.ITEM_ID ITEM_ID
from XXNLL_RA_BILL_LINES a
where rowid in(select max(rowid) from XXNLL_RA_BILL_LINES b
where a.WO_NO = b.wo_no and a.ITEM_ID = b.item_id)) X, */
from
XXWORKORDERDET D,
XXWORKORDERHDR H,
pa_tasks p,
MTL_SYSTEM_ITEMS_FVL MSI
where
p.TASK_ID = d.TASK_ID AND
MSI.INVENTORY_ITEM_ID = D.ITEM_ID AND
H.HEADER_ID = D.HEADER_ID AND
H.OU_ID = :parameter.org_id and
H.WO_NO = :XXNLL_RA_BILL_HEADERS.WO_NO ;
--H.WO_NO = X.WO_NO AND
--D.ITEM_ID = X.ITEM_ID;
BEGIN
-- CLEAR_BLOCK(NO_COMMIT);
FOR I IN C1 LOOP
:XXNLL_RA_BILL_LINES.TASK_NO := I.TASK_NUMBER;
:XXNLL_RA_BILL_LINES.DESCRIPTION := I.DESCRIPTION;
:XXNLL_RA_BILL_LINES.UOM := I.UOM;
:XXNLL_RA_BILL_LINES.WORK_ORDER_QTY := I.QTY;
:XXNLL_RA_BILL_LINES.WORK_ORDER_RATE := I.RATE;
:XXNLL_RA_BILL_LINES.WORK_ORDER_AMOUNT := I.AMOUNT;
:XXNLL_RA_BILL_LINES.EXPENDITURE_TYPE := I.EXPENDITURE_TYPE;
:XXNLL_RA_BILL_LINES.EXPEND_ORGANIZATION :=
I.EXPEND_ORGANIZATION;
:XXNLL_RA_BILL_LINES.EXPENDITURE_DATE
:=:XXNLL_RA_BILL_HEADERS.CREATION_DATE;--
I.EXPECTED_START_DATE;
:XXNLL_RA_BILL_LINES.TASK_ID := I.TASK_ID;
:XXNLL_RA_BILL_LINES.ITEM_ID := I.ITEM_ID;
:XXNLL_RA_BILL_LINES.LINE_ID := :SYSTEM.CURSOR_RECORD;
:XXNLL_RA_BILL_LINES.MVAT_RATE := I.VAT_TAX;
:XXNLL_RA_BILL_LINES.SERVICE_TAX_NAME := I.SERVICE_CAT;
:XXNLL_RA_BILL_LINES.TAX_RATE:=I.TAX_RATE;
--:XXNLL_RA_BILL_LINES.PREVIOUS_QTY := I.CQTY;
NEXT_RECORD;
END LOOP;
:GLOBAL.LOAD := 'LOAD';
FIRST_RECORD;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END IF;
END;
List of Value
RETENSION_SUPPLIER_SITE
SERVICETAX
MVATRATE
WCTRATE
TAX_RATE
APPROVER_NAME
TASK_ELE
PROJECT_INCHARGE
EXP_ORG_MAT
EXP_TYPE_ELE
select EXPENDITURE_TYPE Expenditure_Type_ELECT
from PA_EXPEND_TYP_SYS_LINKS_V
where EXPENDITURE_TYPE_CLASS='Supplier Invoices'
ENABLE_LIST_LAMP
WORKORDERNUM
Group records
Workodernum
SELECT DISTINCT H.WO_NO,H.WO_TYPE WO_TYPE,H.ATTRIBUTE2
NATURE_OF_WORK,H.PROJECT_ID,H.CONTRACTOR_ID,H.CONTRACTOR_SIT
E_ID,POV.VENDOR_NAME
,POVS.VENDOR_SITE_CODE
,NULL
BANK_GURANTEE_STATUS,H.CEMENT_ISSUE,H.REINFORCED_STEEL,H.STR
UCTURAL_STEEL,H.RMC,H.ANY_MATERIAL
,H.ELECTRICITY,H.WATER,H.ANY_OTHER
,POVS.ATTRIBUTE1 VAT_REG,H.ATTRIBUTE4 Retention_pertentage,
H.ATTRIBUTE7 Billing_Cycle,H.ATTRIBUTE6 Defects_Liability_Period
,POVS.ATTRIBUTE7 Retention_Control_Ac
,BOQ.PROJECT_NO,BOQ.PROJECT_NAME,
(select sum(((nvl(QTY,0)+nvl(AMEND_NO,0))*nvl(RATE,0))+
(((nvl(QTY,0)+nvl(AMEND_NO,0))*nvl(RATE,0))*nvl(VAT_TAX,0)/100)+
(((nvl(QTY,0)+nvl(AMEND_NO,0))*nvl(RATE,0))*nvl(TAX_RATE,0)/100)) from
XXWORKORDERDET where HEADER_ID=H.header_id) Total_Aggrement_val,
h.OTHER1 ,
h.OTHER2,
h.OTHER3,
h.OTHER4,
h.OTHER5,
H.RELEASE_AMT MINAMT
FROM XXWORKORDERHDR H
,PO_VENDORS POV
,PO_VENDOR_SITES_ALL POVS
,XXNLL_BOQ_HEADER BOQ
WHERE
POV.VENDOR_ID = H.CONTRACTOR_ID AND
POVS.VENDOR_SITE_ID = H.CONTRACTOR_SITE_ID AND
POV.VENDOR_ID = POVS.VENDOR_ID AND
BOQ.PROJECT_ID = H.PROJECT_ID and
h.OU_ID = :parameter.org_id and
h.STATUS = 'Approved' and
H.WO_NO NOT IN(select wo_no from XXNLL_RA_BILL_headers h WHERE
RABILL_TYPE = 'Final Bill')
Time zone
select timezone_code,name
,to_char(trunc(gmt_offset),'S09') || ':' || to_char(abs(gmt_offset -
trunc(gmt_offset))*60,'FM900') offset
,decode(daylight_savings_flag,'Y','*',null) dst_flag
from fnd_timezones_vl
where enabled_flag = 'Y'
order by gmt_offset
exp_type_n
exp_type
Exp_org
exp_typ_mat
Task
SELECT DISTINCT BOL.SUB_TASK_ID
TASK_ID,P.TASK_NUMBER,P.TASK_NAME
from XXNLL_BOQ_LINES BOL
,PA_TASKS P
WHERE P.TASK_ID = BOL.SUB_TASK_ID
AND P.PROJECT_ID = :XXNLL_RA_BILL_HEADERS.PROJECT_ID
AND BOL.ORG_ID = :PARAMETER.ORG_ID
and CHARGEABLE_FLAG ='Y'
APPROVER
Taxrate
Wcrate
service tax
Retention_Supplier_Site
ENABLE_DISABLE
PROCEDURE ENABLE_DISABLE IS
BEGIN
if upper(:XXNLL_RA_BILL_HEADERS.status) like 'APPROV%' then
set_block_property('XXNLL_RA_BILL_HEADERS',INSERT_ALLOWED,PROPERT
Y_FALSE);
set_block_property('XXNLL_RA_BILL_HEADERS',UPDATE_ALLOWED,PROPERT
Y_FALSE);
set_block_property('XXNLL_RA_BILL_HEADERS',DELETE_ALLOWED,PROPERT
Y_FALSE);
set_block_property('XXNLL_RA_BILL_LINES',INSERT_ALLOWED,PROPERTY_F
ALSE);
set_block_property('XXNLL_RA_BILL_LINES',UPDATE_ALLOWED,PROPERTY_F
ALSE);
set_block_property('XXNLL_RA_BILL_LINES',DELETE_ALLOWED,PROPERTY_F
ALSE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',INSERT_ALLOWED,PROPE
RTY_FALSE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',UPDATE_ALLOWED,PROP
ERTY_FALSE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',DELETE_ALLOWED,PROP
ERTY_FALSE);
ELSE
set_block_property('XXNLL_RA_BILL_HEADERS',INSERT_ALLOWED,PROPERT
Y_TRUE);
set_block_property('XXNLL_RA_BILL_HEADERS',UPDATE_ALLOWED,PROPERT
Y_TRUE);
set_block_property('XXNLL_RA_BILL_HEADERS',DELETE_ALLOWED,PROPERT
Y_TRUE);
set_block_property('XXNLL_RA_BILL_LINES',INSERT_ALLOWED,PROPERTY_T
RUE);
set_block_property('XXNLL_RA_BILL_LINES',UPDATE_ALLOWED,PROPERTY_T
RUE);
set_block_property('XXNLL_RA_BILL_LINES',DELETE_ALLOWED,PROPERTY_T
RUE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',INSERT_ALLOWED,PROPE
RTY_TRUE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',UPDATE_ALLOWED,PROP
ERTY_TRUE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',DELETE_ALLOWED,PROP
ERTY_TRUE);
END IF;
END ENABLE_DISABLE;
App_costum
package app_custom is
procedure close_window(wnd in varchar2);
procedure open_window(wnd in varchar2);
procedure CONCURRENT_PRG_INVOICE;
end;
Other windows that will be referenced into your form rely on the default
code at the beginning and end of this procedure - under no circumstances
should you modify that code.
*/
begin
/*
THE FOLLOWING CODE MUST NOT BE MODIFIED. It prevents windows from
closing
while in enter-query mode.
*/
/*
YOU MUST MODIFY THE FOLLOWING CODE to account for specific behaviors
of your
form, including:
1. identifying the 'first window' of the form and treating
a close window on that window like a close form.
2. deferring master-detail relations for detail blocks that
exist in other windows.
3. closing other related windows.
The default code at the end of this procedure actually closes the window.
If you do that yourself in this code, issue a 'return;' at the end of
your logic for your specific windows.
*/
/*
THE FOLLOWING CODE MUST NOT BE MODIFIED. It ensures the cursor is not
in
the window that will be closed (by moving it to the previous block if
needed), and actually closes the specified window.
*/
if (wnd = get_view_property(get_item_property(:SYSTEM.CURSOR_ITEM,
ITEM_CANVAS), WINDOW_NAME)) then
do_key('PREVIOUS_BLOCK');
end if;
hide_window(wnd);
end close_window;
end open_window;
Procedure Check_Package_Failure IS
BEGIN
IF NOT ( Form_Success ) THEN
RAISE Form_Trigger_Failure;
END IF;
END;
PROCEDURE Clear_All_Master_Details IS
mastblk VARCHAR2(30); -- Initial Master Block Causing Coord
coordop VARCHAR2(30); -- Operation Causing the Coord
trigblk VARCHAR2(30); -- Cur Block On-Clear-Details Fires On
startitm VARCHAR2(61); -- Item in which cursor started
frmstat VARCHAR2(15); -- Form Status
curblk VARCHAR2(30); -- Current Block
currel VARCHAR2(30); -- Current Relation
curdtl VARCHAR2(30); -- Current Detail Block
--
-- No changed blocks were found
--
RETURN NULL;
END First_Changed_Block_Below;
BEGIN
--
-- Init Local Vars
--
mastblk := :System.Master_Block;
coordop := :System.Coordination_Operation;
trigblk := :System.Trigger_Block;
startitm := :System.Cursor_Item;
frmstat := :System.Form_Status;
--
-- If the coordination operation is anything but CLEAR_RECORD or
-- SYNCHRONIZE_BLOCKS, then continue checking.
--
IF coordop NOT IN ('CLEAR_RECORD', 'SYNCHRONIZE_BLOCKS') THEN
--
-- If we're processing the driving master block...
--
IF mastblk = trigblk THEN
--
-- If something in the form is changed, find the
-- first changed block below the master
--
IF frmstat = 'CHANGED' THEN
curblk := First_Changed_Block_Below(mastblk);
--
-- If we find a changed block below, go there
-- and Ask to commit the changes.
--
IF curblk IS NOT NULL THEN
Go_Block(curblk);
Check_Package_Failure;
Clear_Block(ASK_COMMIT);
--
-- If user cancels commit dialog, raise error
--
IF NOT ( :System.Form_Status = 'QUERY'
OR :System.Block_Status = 'NEW' ) THEN
RAISE Form_Trigger_Failure;
END IF;
END IF;
END IF;
END IF;
END IF;
--
-- Clear all the detail blocks for this master without
-- any further asking to commit.
--
currel := Get_Block_Property(trigblk, FIRST_MASTER_RELATION);
WHILE currel IS NOT NULL LOOP
curdtl := Get_Relation_Property(currel, DETAIL_NAME);
IF Get_Block_Property(curdtl, STATUS) <> 'NEW' THEN
Go_Block(curdtl);
Check_Package_Failure;
Clear_Block(NO_VALIDATE);
IF :System.Block_Status <> 'NEW' THEN
RAISE Form_Trigger_Failure;
END IF;
END IF;
currel := Get_Relation_Property(currel, NEXT_MASTER_RELATION);
END LOOP;
--
-- Put cursor back where it started
--
IF :System.Cursor_Item <> startitm THEN
Go_Item(startitm);
Check_Package_Failure;
END IF;
EXCEPTION
WHEN Form_Trigger_Failure THEN
IF :System.Cursor_Item <> startitm THEN
Go_Item(startitm);
END IF;
RAISE;
END Clear_All_Master_Details;
PROCEDURE ENABLE_DISABLE IS
BEGIN
if upper(:XXNLL_RA_BILL_HEADERS.status) like 'APPROV%' then
set_block_property('XXNLL_RA_BILL_HEADERS',INSERT_ALLOWED,PROPERT
Y_FALSE);
set_block_property('XXNLL_RA_BILL_HEADERS',UPDATE_ALLOWED,PROPERT
Y_FALSE);
set_block_property('XXNLL_RA_BILL_HEADERS',DELETE_ALLOWED,PROPERT
Y_FALSE);
set_block_property('XXNLL_RA_BILL_LINES',INSERT_ALLOWED,PROPERTY_F
ALSE);
set_block_property('XXNLL_RA_BILL_LINES',UPDATE_ALLOWED,PROPERTY_F
ALSE);
set_block_property('XXNLL_RA_BILL_LINES',DELETE_ALLOWED,PROPERTY_F
ALSE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',INSERT_ALLOWED,PROPE
RTY_FALSE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',UPDATE_ALLOWED,PROP
ERTY_FALSE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',DELETE_ALLOWED,PROP
ERTY_FALSE);
ELSE
set_block_property('XXNLL_RA_BILL_HEADERS',INSERT_ALLOWED,PROPERT
Y_TRUE);
set_block_property('XXNLL_RA_BILL_HEADERS',UPDATE_ALLOWED,PROPERT
Y_TRUE);
set_block_property('XXNLL_RA_BILL_HEADERS',DELETE_ALLOWED,PROPERT
Y_TRUE);
set_block_property('XXNLL_RA_BILL_LINES',INSERT_ALLOWED,PROPERTY_T
RUE);
set_block_property('XXNLL_RA_BILL_LINES',UPDATE_ALLOWED,PROPERTY_T
RUE);
set_block_property('XXNLL_RA_BILL_LINES',DELETE_ALLOWED,PROPERTY_T
RUE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',INSERT_ALLOWED,PROPE
RTY_TRUE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',UPDATE_ALLOWED,PROP
ERTY_TRUE);
set_block_property('XXNLL_RA_BILL_DEDUCTIONS',DELETE_ALLOWED,PROP
ERTY_TRUE);
END IF;
END ENABLE_DISABLE;
PACKAGE IMPORT IS
END;
PROCEDURE CONCURRENT_PRG_INVOICE
IS
l_res_create number;--varchar2(250);
--v_request_status Boolean;
sql_program constant varchar2(256):= 'APXIIMPT';
application_name constant varchar2(6) := 'SQLAP';
--c_set_process_id constant number := 1;
v_org_id number;
submit_failed EXCEPTION;
v_msg varchar2(1000);
v_stage varchar2(50);
BOOKED_FLAG varchar2(1);
begin
--v_stage:='STAGE10';
v_org_id:=fnd_profile.value('ORG_ID');
--
v_request_status:=fnd_submit.submit_program(application_name,sql_program);--,v_stag
e);--,v_org_id,to_char(1),to_char(1),to_char(1),to_char(1),'',to_char(1));
--fnd_message.debug('Inside teh begin ');
--IF BOOKED_FLAG = 'Y' THEN
l_res_create :=fnd_request.submit_request
(application_name,
sql_program,
NULL,
NULL,
FALSE,
'ERS', --v_org_id,
NULL,
null,--:parameter.p_grp_id,
null,--:parameter.p_grp_id,
CHR(0),
CHR(0),
CHR(0),
'N',
'N', CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0),
CHR(0), CHR(0), CHR(0), CHR(0));
commit_form;
:system.message_level:=5;
fnd_message.debug('Your request # '||l_res_create||' has submitted');
--END IF;
exception
when others then
message('Error '||sqlcode||','||sqlerrm);
END CONCURRENT_PRG_INVOICE;
end app_custom;
v_inv_id number;
v_inv_id_ret number;
v_inv_id_ret_c number;
PROCEDURE INSERT_AP_INVOICE_HDR(p_invoice_id
varchar2,p_vendor_id number,p_vendor_site_id number,p_user_id number)
is
v_pay_mode varchar2(10);
v_grp_id number;
V_ACCTS_PAY_CCID number;
v_terms_id number;
v_dist_comb_id number;
begin
BEGIN
select distinct a.ACCTS_PAY_CCID
,a.TERMS_ID
into V_ACCTS_PAY_CCID
,v_terms_id
from AP_VENDOR_SITES_V a
where VENDOR_ID=p_vendor_id;
exception
when others then
null;
END;
select AP_INVOICES_INTERFACE_S.nextval
into v_inv_id
from dual ;
INVOICE_NUM,
INVOICE_TYPE_LOOKUP_CODE,
INVOICE_DATE,
VENDOR_ID,
VENDOR_SITE_ID,
INVOICE_AMOUNT,
INVOICE_CURRENCY_CODE,
EXCHANGE_RATE_TYPE,
EXCHANGE_RATE,
TERMS_ID,
DESCRIPTION,
SOURCE,
CREATION_DATE,
GOODS_RECEIVED_DATE,
INVOICE_RECEIVED_DATE,
ORG_ID,
EXCHANGE_DATE,
TERMS_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_LOGIN,
LAST_UPDATE_DATE,
CREATED_BY,
GROUP_ID,
GL_DATE,
ACCTS_PAY_CODE_COMBINATION_ID,
PAYMENT_CURRENCY_CODE,
PAYMENT_CROSS_RATE
)
values( v_inv_id,
:XXNLL_RA_BILL_
HEADERS.RABILL_NO,
'STANDARD'
,
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
p_vendor_id,
p_vendor_site_id,
TRUNC((:XXNLL_RA_BILL_LINES.TOT)-
floor(NVL(:XXNLL_RA_BILL_DEDUCTIONS.TOTALDEDUTION_AMOUNT,0)),2)
,
'INR',
'Corporate',
1,
v_terms_id,
:XXNLL_RA
_BILL_HEADERS.REMARKS,
'ERS',
-----------------------------used already DEFINED IN APPS FORM source
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
--
v_pay_mode,
sysdate,
sysdate,
:parameter.org
_id,
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
sysdate,
p_user_id,
373297,
sysdate,
p_user_id,
v_grp_id,
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
V_ACCTS_PAY_CCID,
'INR',
);
------------------FOR
inserting retension record
---
fnd_message.debug('FOR inserting retension record header part');
select
AP_INVOICES_INTERFACE_S.nextval
into
v_inv_id_ret from dual ;
Insert into
AP_INVOICES_INTERFACE(INVOICE_ID,
INVOICE_NUM,
INVOICE_TYPE_LOOKUP_CODE,
INVOICE_DATE,
VENDOR_ID,
VENDOR_SITE_ID,
INVOICE_AMOUNT,
INVOICE_CURRENCY_CODE,
EXCHANGE_RATE_TYPE,
EXCHANGE_RATE,
TERMS_ID,
DESCRIPTION,
SOURCE,
CREATION_DATE,
GOODS_RECEIVED_DATE,
INVOICE_RECEIVED_DATE,
ORG_ID,
EXCHANGE_DATE,
TERMS_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_LOGIN,
LAST_UPDATE_DATE,
CREATED_BY,
GROUP_ID,
GL_DATE,
ACCTS_PAY_CODE_COMBINATION_ID,
PAYMENT_CURRENCY_CODE,
PAYMENT_CROSS_RATE
values( v_inv_id_ret,
:XXNLL_RA_BILL_
HEADERS.RABILL_NO||'/RET' ,
'STANDARD'
,
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
p_vendor_id,
:XXNLL_RA
_BILL_HEADERS.RENTION_SITE_ID,
floor(:XXNLL_RA_BILL_LINES.TOT*(:XXNLL_RA_BILL_HEADERS.RETENTIO
N_PERCENTAGE/100)),
'INR',
'Corporate',
1,
v_terms_id,
:XXNLL_RA
_BILL_HEADERS.REMARKS,
'ERS',
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
--
v_pay_mode,
sysdate,
sysdate,
:parameter.org
_id,
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
sysdate,
p_user_id,
373297,
sysdate,
p_user_id,
v_grp_id,
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
V_ACCTS_PAY_CCID,
'INR',
);
-------------------------------------ret
------------------FOR inserting
retension credit record
--
fnd_message.debug('FOR inserting retension credit proceed');
select
AP_INVOICES_INTERFACE_S.nextval
into
v_inv_id_ret_c from dual ;
Insert into
AP_INVOICES_INTERFACE(INVOICE_ID,
INVOICE_NUM,
INVOICE_TYPE_LOOKUP_CODE,
INVOICE_DATE,
VENDOR_ID,
VENDOR_SITE_ID,
INVOICE_AMOUNT,
INVOICE_CURRENCY_CODE,
EXCHANGE_RATE_TYPE,
EXCHANGE_RATE,
TERMS_ID,
DESCRIPTION,
SOURCE,
CREATION_DATE,
GOODS_RECEIVED_DATE,
INVOICE_RECEIVED_DATE,
ORG_ID,
EXCHANGE_DATE,
TERMS_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_LOGIN,
LAST_UPDATE_DATE,
CREATED_BY,
GROUP_ID,
GL_DATE,
ACCTS_PAY_CODE_COMBINATION_ID,
PAYMENT_CURRENCY_CODE,
PAYMENT_CROSS_RATE
values( v_inv_id_ret_c,
:XXNLL_RA_BILL_
HEADERS.RABILL_NO||'/CM',
'CREDIT',
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
p_vendor_id,
p_vendor_site_id,
'-'||
floor(:XXNLL_RA_BILL_LINES.TOT*(:XXNLL_RA_BILL_HEADERS.RETENTIO
N_PERCENTAGE/100)),
'INR',
'Corporate',
1,
v_terms_id,
:XXNLL_RA
_BILL_HEADERS.REMARKS,
'ERS',
-----------------------------EXTRA RECORD INSERT FOR RETENSION
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
--
v_pay_mode,
sysdate,
sysdate,
:parameter.org
_id,
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
sysdate,
p_user_id,
373297,
sysdate,
p_user_id,
v_grp_id,
:XXNLL_RA
_BILL_HEADERS.CREATION_DATE,
V_ACCTS_PAY_CCID,
'INR',
);
commit;
end INSERT_AP_INVOICE_HDR;
begin
begin
select distinct a.ACCTS_PAY_CCID
into V_ACCTS_PAY_CCID
from AP_VENDOR_SITES_V a
where VENDOR_ID=p_vendor_id;
exception
when others then
null;
end;
begin
select distinct hou.ORGANIZATION_ID into v_exp_id
from hr_operating_units hou where hou.name =
:XXNLL_RA_BILL_LINES.EXPEND_ORGANIZATION;
exception
when others then
null;
end;
Insert
into AP_INVOICE_LINES_INTERFACE(INVOICE_ID,
invoice_line_id,
LINE_NUMBER,
LINE_TYPE_LOOKUP_CODE,
AMOUNT,
ACCOUNTING_DATE,
DESCRIPTION,
QUANTITY_INVOICED,
UNIT_PRICE,
-- DIST_CODE_COMBINATION_ID,
ORG_ID,
DISTRIBUTION_SET_ID
values(
v_inv_id_ret,
ap_invoice_lines_interface_s.nextval,
:XXNLL_RA_BILL_LINES.LINE_ID,
'ITEM',
floor(:XXNLL_RA_BILL_LINES.TOT*(:XXNLL_RA_BILL_HEADERS.RETENTIO
N_PERCENTAGE/100)),
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
NULL,
NULL,
NULL,
:parameter.org_id,
:XXNLL_RA_BILL_HEADERS.RETENSION_CONTROL_ID
);
Insert
into AP_INVOICE_LINES_INTERFACE(INVOICE_ID,
invoice_line_id,
LINE_NUMBER,
LINE_TYPE_LOOKUP_CODE,
AMOUNT,
ACCOUNTING_DATE,
DESCRIPTION,
QUANTITY_INVOICED,
UNIT_PRICE,
-- DIST_CODE_COMBINATION_ID,
ORG_ID,
DISTRIBUTION_SET_ID
values(
v_inv_id_ret_c,
ap_invoice_lines_interface_s.nextval,
:XXNLL_RA_BILL_LINES.LINE_ID,
'ITEM',
'-'||
floor(:XXNLL_RA_BILL_LINES.TOT*(:XXNLL_RA_BILL_HEADERS.RETENTIO
N_PERCENTAGE/100)),
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
NULL,
NULL,
NULL,
:parameter.org_id,
:XXNLL_RA_BILL_HEADERS.RETENSION_CONTROL_ID
);
end INSERT_AP_INVOICE_RET_CRE;
begin
begin
select distinct a.ACCTS_PAY_CCID
into V_ACCTS_PAY_CCID
from AP_VENDOR_SITES_V a
where VENDOR_ID=p_vendor_id;
exception
when others then
null;
end;
begin
select distinct hou.ORGANIZATION_ID into v_exp_id
from hr_operating_units hou where hou.name =
:XXNLL_RA_BILL_LINES.EXPEND_ORGANIZATION;
exception
when others then
null;
end;
-- LOOP
Insert into
AP_INVOICE_LINES_INTERFACE(INVOICE_ID,
invoice_line_id,
LINE_NUMBER,
LINE_TYPE_LOOKUP_CODE,
AMOUNT,
ACCOUNTING_DATE,
DESCRIPTION,
QUANTITY_INVOICED,
UNIT_PRICE,
DIST_CODE_COMBINATION_ID,
ORG_ID,
PROJECT_ID,
TASK_ID,
EXPENDITURE_TYPE,
EXPENDITURE_ITEM_DATE,
EXPENDITURE_ORGANIZATION_ID,
PA_ADDITION_FLAG,
PROJECT_ACCOUNTING_CONTEXT,
ATTRIBUTE1,
ATTRIBUTE2
values(v_inv_id,
ap_invoice_lines_interface_s.nextval,
:global.sno,--:SYSTEM.TRIGGER_RECORD,
'ITEM',
ROUND(:XXNLL_RA_BILL_LINES.TOTAL,2),
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
NULL,
NULL,
NULL,
:parameter.org_id,
:XXNLL_RA_BILL_HEADERS.PROJECT_ID,
P_TASK_ID, --:XXNLL_RA_BILL_LINES.TASK_ID,
:XXNLL_RA_BILL_LINES.EXPENDITURE_TYPE,
:XXNLL_RA_BILL_LINES.EXPENDITURE_DATE,
v_exp_id,
'Y',
'Yes',
:XXNLL_RA_BILL_LINES.TDS_ID,
:XXNLL_RA_BILL_LINES.WCT_ID
);
end INSERT_AP_INVOICE_DTL;
------------------------------------
-----PROCEDURE DEDUCTIONS START
PROCEDURE
INSERT_AP_INVOICE_DEDUCTION(p_VENDOR_id number,P_TASK_ID
NUMBER)
is
v_area number;
V_ACCTS_PAY_CCID number;
v_dist_comb_id number;
v_exp_id number;
l_code_combination_id number(20);
begin
begin
select distinct a.ACCTS_PAY_CCID
into V_ACCTS_PAY_CCID
from AP_VENDOR_SITES_V a
where VENDOR_ID=p_vendor_id;
exception
when others then
null;
end;
begin
select distinct hou.ORGANIZATION_ID into v_exp_id
from hr_operating_units hou where hou.name =
:XXNLL_RA_BILL_DEDUCTIONS.EXPEN_ORG;
exception
when others then
null;
end;
Insert into
AP_INVOICE_LINES_INTERFACE(INVOICE_ID,
invoice_line_id,
LINE_NUMBER,
LINE_TYPE_LOOKUP_CODE,
AMOUNT,
ACCOUNTING_DATE,
DESCRIPTION,
QUANTITY_INVOICED,
UNIT_PRICE,
DIST_CODE_COMBINATION_ID,
ORG_ID,
PROJECT_ID,
TASK_ID,
EXPENDITURE_TYPE,
EXPENDITURE_ITEM_DATE,
EXPENDITURE_ORGANIZATION_ID,
PA_ADDITION_FLAG,
PROJECT_ACCOUNTING_CONTEXT
values(v_inv_id,
ap_invoice_lines_interface_s.nextval,
:global.sno,--:SYSTEM.TRIGGER_RECORD,
'ITEM',
'-'||ROUND(:XXNLL_RA_BILL_DEDUCTIONS.AMOUNT,2),
:XXNLL_RA_BILL_HEADERS.CREATION_DATE,
NULL,
NULL,
NULL,
:parameter.org_id,
:XXNLL_RA_BILL_HEADERS.PROJECT_ID,
:XXNLL_RA_BILL_DEDUCTIONS.TASK_ID,
:XXNLL_RA_BILL_DEDUCTIONS.EXPEN_TYPE,
:XXNLL_RA_BILL_DEDUCTIONS.EXPEN_DATE,
v_exp_id,
'Y',
'Yes'
)
;
exception
when others then
null;
end INSERT_AP_INVOICE_DEDUCTION;
END;
PROCEDURE Set_MDI_Title IS
V_USER NUMBER;
BEGIN
fnd_profile.GET('ORG_ID',:PARAMETER.ORG_ID);
begin
fnd_profile.GET('USER_ID',V_USER);
end;
exception
when others then
null;
end Set_MDI_Title;