0% found this document useful (0 votes)
101 views22 pages

Procedure Query

This procedure generates an expense report by querying various tables to retrieve project and expenditure data based on input parameters. It opens multiple cursors to select relevant data on projects, periods, expenditure categories and types. It then processes the data, performing calculations and formatting it into an XML report output.

Uploaded by

Siddiq Mohammed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views22 pages

Procedure Query

This procedure generates an expense report by querying various tables to retrieve project and expenditure data based on input parameters. It opens multiple cursors to select relevant data on projects, periods, expenditure categories and types. It then processes the data, performing calculations and formatting it into an XML report output.

Uploaded by

Siddiq Mohammed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 22

create or replace procedure XXKCC_EXPENSE_REPORT (

ERRBUF out varchar2,


RETCODE out varchar2,
P_PERIOD_NAME_FROM in varchar2,
P_PERIOD_NAME_TO in varchar2,
P_PROJECT_NUMBER in varchar2,
P_AGREEMENT_NUM in varchar2,
P_MAIN_CATEGORY in varchar2,
P_EXPND_CATEGORY in varchar2,
P_EXPND_TYPE in varchar2
)
as
P_V_PERIOD_NAME_FROM varchar2 (9999) := P_PERIOD_NAME_FROM;
P_V_PERIOD_NAME_TO varchar2 (9999) := P_PERIOD_NAME_TO;
P_V_PROJECT_NUMBER varchar2 (9999) := P_PROJECT_NUMBER;
P_V_AGREEMENT_NUM varchar2 (9999) := P_AGREEMENT_NUM;
P_V_MAIN_CATEGORY varchar2 (9999) := P_MAIN_CATEGORY;
P_V_EXPND_CATEGORY varchar2 (9999) := P_EXPND_CATEGORY;
P_V_EXPND_TYPE varchar2 (9999) := P_EXPND_TYPE;
V_LAST_YEAR number;
V_CURRENT_YEAR number;
V_PROJECT_NAME varchar2 (9999);
V_PROJECT_ID number;
V_MAIN_SUBCONTRACTOR varchar2 (9999);
V_START_DATE varchar2 (9999);
V_COMPLETION_DATE varchar2 (9999);
V_PROJECT_MANAGER varchar2 (9999);
V_AGREEMENT_VALUE number;
V_CUSTOMER_NAME varchar2 (9999);
V_4000100_VALUE number;
V_4000200_VALUE number;
V_PROFIT_LOSS number;
V_PROFIT_LOSS2 number;
V_LAST_YEAR_VALUE number;
V_VARIATION_ORDER_C number;
V_VARIATION_ORDER_P number;
V_CONTRACT_BALANCE number;
V_HEADING_LINE varchar2 (9999);
V_ACCOUNT_LINE varchar2 (9999);
V_4000100_LINE varchar2 (9999);
V_4000200_LINE varchar2 (9999);
V_ACCOUNT_VALUE number;
V_ACCOUNT_SUM number;
L_COUNTER number := 1;
V_AMOUNT number := 0;
V_EXPENDITURE_TYPE varchar2 (9999);

cursor CUR_PERIOD
is
select PERIOD_NAME
from GL_PERIODS
where PERIOD_YEAR = (select PERIOD_YEAR
from GL_PERIODS
where PERIOD_NAME = P_V_PERIOD_NAME_FROM)
and PERIOD_NUM <= (select PERIOD_NUM
from GL_PERIODS
where PERIOD_NAME = P_V_PERIOD_NAME_TO)
order by PERIOD_NUM;
cursor CUR_PERIOD1
is
select PERIOD_NAME
from GL_PERIODS
where PERIOD_YEAR = (select PERIOD_YEAR
from GL_PERIODS
where PERIOD_NAME = P_V_PERIOD_NAME_FROM)
and PERIOD_NAME not like 'ADJ%'
order by PERIOD_NUM;

cursor MAIN_CATEGORY
is
select PEC.ATTRIBUTE1 MAIN_CATEGORY
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA,
PA_PROJECTS_ALL PPA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = PPA.PROJECT_ID
and PPA.SEGMENT1 = NVL (P_V_PROJECT_NUMBER, PPA.SEGMENT1)
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
group by PEC.ATTRIBUTE1
order by MAIN_CATEGORY;

cursor EXPENDITURE_CATEGORY (V_MAIN_CATEGORY varchar2)


is
select PEC.ATTRIBUTE1 MAIN_CATEGORY, PEC.EXPENDITURE_CATEGORY
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA,
PA_PROJECTS_ALL PPA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PEC.ATTRIBUTE1 = V_MAIN_CATEGORY
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = PPA.PROJECT_ID
and PPA.SEGMENT1 = NVL (P_V_PROJECT_NUMBER, PPA.SEGMENT1)
group by PEC.ATTRIBUTE1, PEC.EXPENDITURE_CATEGORY
order by PEC.EXPENDITURE_CATEGORY;

cursor lines (V_MAIN_CATEGORY varchar2, V_EXPENDITURE_CATEGORY varchar2)


is
select PEC.ATTRIBUTE1 MAIN_CATEGORY, PEC.EXPENDITURE_CATEGORY,
PET.EXPENDITURE_TYPE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA,
PA_PROJECTS_ALL PPA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = PPA.PROJECT_ID
and PPA.SEGMENT1 = NVL (P_V_PROJECT_NUMBER, PPA.SEGMENT1)
and PEC.ATTRIBUTE1 = V_MAIN_CATEGORY
and PET.EXPENDITURE_CATEGORY = V_EXPENDITURE_CATEGORY
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
group by PEC.ATTRIBUTE1, PEC.EXPENDITURE_CATEGORY, PET.EXPENDITURE_TYPE
UNION
select PEC.ATTRIBUTE1 MAIN_CATEGORY, PEC.EXPENDITURE_CATEGORY,
PET.EXPENDITURE_TYPE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA,
PA_PROJECTS_ALL PPA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE(+)
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = PPA.PROJECT_ID(+)
-- and PPA.SEGMENT1 = NVL (P_V_PROJECT_NUMBER, PPA.SEGMENT1)
and PEC.ATTRIBUTE1 = V_MAIN_CATEGORY
and PET.EXPENDITURE_CATEGORY = V_EXPENDITURE_CATEGORY
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
-- and PEIA.EXPENDITURE_TYPE =
-- NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
group by PEC.ATTRIBUTE1, PEC.EXPENDITURE_CATEGORY, PET.EXPENDITURE_TYPE
order by 2;
begin
V_HEADING_LINE := 'Project';
V_4000100_LINE := 'LINES';
V_4000200_LINE := 'LINES';

begin
select name, PROJECT_ID, ATTRIBUTE2,
TO_CHAR (START_DATE, 'DD-MON-YYYY'),
TO_CHAR (COMPLETION_DATE, 'DD-MON-YYYY')
into V_PROJECT_NAME, V_PROJECT_ID, V_MAIN_SUBCONTRACTOR,
V_START_DATE,
V_COMPLETION_DATE
from PA_PROJECTS_ALL
where SEGMENT1 = P_V_PROJECT_NUMBER;
exception
when others
then
null;
end;

begin
begin
select PBVB.REVENUE
into V_VARIATION_ORDER_C
from PA_BUDGET_VERSIONS_BASELINED_V PBVB
where PBVB.PROJECT_ID = V_PROJECT_ID
and BUDGET_TYPE_CODE = 'AR'
and CURRENT_FLAG = 'Y'
and rownum = 1;
exception
when others
then
null;
end;

begin
select PBVB.REVENUE
into V_VARIATION_ORDER_P
from PA_BUDGET_VERSIONS_BASELINED_V PBVB
where PBVB.PROJECT_ID = V_PROJECT_ID
and BUDGET_TYPE_CODE = 'AR'
and CURRENT_FLAG = 'N'
and rownum = 1;
exception
when others
then
null;
end;

V_VARIATION_ORDER_C :=
V_VARIATION_ORDER_C - NVL (V_VARIATION_ORDER_P, 0);
end;

begin
select distinct CUSTOMER_NAME, AGREEMENT_NUM, AMOUNT
into V_CUSTOMER_NAME, P_V_AGREEMENT_NUM, V_AGREEMENT_VALUE
from PA_PROJECT_FUNDINGS_V PPFV, PA_AGREEMENTS_V PA
where PPFV.AGREEMENT_ID = PA.AGREEMENT_ID
and PROJECT_NUMBER = P_V_PROJECT_NUMBER
and AGREEMENT_NUM = P_V_AGREEMENT_NUM;
exception
when others
then
null;
end;

begin
begin
select NVL (sum (NVL (INVOICE_AMOUNT, 0)), 0)
into V_CONTRACT_BALANCE
from PA_DRAFT_INVOICES_V
where PROJECT_NUMBER = P_V_PROJECT_NUMBER
and AGREEMENT_NUM = P_V_AGREEMENT_NUM
and INVOICE_STATUS_M = 'Transferred to Receivable';
exception
when others
then
null;
end;

V_CONTRACT_BALANCE :=
NVL (V_AGREEMENT_VALUE, 0)
- NVL (V_CONTRACT_BALANCE, 0);
end;
begin
select PAPF.FULL_NAME
into V_PROJECT_MANAGER
from PA_PROJECT_PLAYERS PPP, PER_ALL_PEOPLE_F PAPF
where PPP.PROJECT_ID = V_PROJECT_ID
and PROJECT_ROLE_TYPE = 'PROJECT MANAGER'
and PPP.END_DATE_ACTIVE is null
and PAPF.PERSON_ID = PPP.PERSON_ID;
exception
when others
then
null;
end;

begin
select PERIOD_YEAR - 1
into V_LAST_YEAR
from GL_PERIODS
where PERIOD_NAME = P_PERIOD_NAME_FROM;
exception
when others
then
null;
end;

begin
select PERIOD_YEAR
into V_CURRENT_YEAR
from GL_PERIODS
where PERIOD_NAME = P_PERIOD_NAME_FROM;
exception
when others
then
null;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<?xml version="1.0" encoding="windows-1252"?>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<EXPENSE_REPORT>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_PERIOD_NAME_FROM>' || P_V_PERIOD_NAME_FROM
|| '</P_PERIOD_NAME_FROM>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_PERIOD_NAME_TO>' || P_V_PERIOD_NAME_TO
|| '</P_PERIOD_NAME_TO>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_PROJECT_NUMBER>'
|| P_V_PROJECT_NUMBER
|| '</P_PROJECT_NUMBER>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_PROJECT_NAME>'
|| replace (V_PROJECT_NAME, '&', 'and')
|| '</P_PROJECT_NAME>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_MAIN_SUBCONTRACTOR>'
|| replace (V_MAIN_SUBCONTRACTOR, '&', 'and')
|| '</P_MAIN_SUBCONTRACTOR>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_VARIATION_ORDER>'
|| V_VARIATION_ORDER_C
|| '</P_VARIATION_ORDER>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_CONTRACT_BALANCE>'
|| V_CONTRACT_BALANCE
|| '</P_CONTRACT_BALANCE>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_START_DATE>' || V_START_DATE || '</P_START_DATE>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_COMPLETION_DATE>'
|| V_COMPLETION_DATE
|| '</P_COMPLETION_DATE>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_PROJECT_MANAGER>'
|| V_PROJECT_MANAGER
|| '</P_PROJECT_MANAGER>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_CUSTOMER_NAME>'
|| replace (V_CUSTOMER_NAME, '&', 'and')
|| '</P_CUSTOMER_NAME>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_AGREEMENT_NUM>'
|| P_V_AGREEMENT_NUM
|| '</P_AGREEMENT_NUM>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_AGREEMENT_VALUE>'
|| V_AGREEMENT_VALUE
|| '</P_AGREEMENT_VALUE>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_MAIN_CATEOGRY>'
|| replace (P_V_MAIN_CATEGORY, '&', 'and')
|| '</P_MAIN_CATEOGRY>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_EXPND_CATEGORY>'
|| replace (P_V_EXPND_CATEGORY, '&', 'and')
|| '</P_EXPND_CATEGORY>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<P_EXPND_TYPE>'
|| replace (P_V_EXPND_TYPE, '&', 'and')
|| '</P_EXPND_TYPE>'
);
----H----------
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<HEADERS>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<H_LAST>'
|| ' Opening Balance '
|| ' '
|| '</H_LAST>'
);

for HRD_REC_PERIOD_1 in CUR_PERIOD1


loop
if V_HEADING_LINE is not null
then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<H_'
|| L_COUNTER
|| '>'
|| ' '
|| HRD_REC_PERIOD_1.PERIOD_NAME
|| ' '
|| '</H_'
|| L_COUNTER
|| '>'
);
end if;
end loop;

if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<H_' || L_COUNTER || '/>');
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<H_14>'
|| ' Total '
|| ' '
|| '</H_14>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<H_TOTAL>' || ' Total ' || '</H_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</HEADERS>');

-----H----
for F_MAIN_CATEGORY in MAIN_CATEGORY
loop
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<MAIN_CATEGORY>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<MAIN_DATA>'
|| replace (F_MAIN_CATEGORY.MAIN_CATEGORY, '&',
'and')
|| '</MAIN_DATA>'
);

for F_EXPENDITURE_CATEGORY in
EXPENDITURE_CATEGORY (F_MAIN_CATEGORY.MAIN_CATEGORY)
loop
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<EXPENDITURE_CATEGORY>');
FND_FILE.PUT_LINE
(FND_FILE.OUTPUT,
'<EXPENDITURE_DATA>'
|| replace (F_EXPENDITURE_CATEGORY.EXPENDITURE_CATEGORY,
'&',
'and'
)
|| '</EXPENDITURE_DATA>'
);

for F_LINES in lines (F_MAIN_CATEGORY.MAIN_CATEGORY,


F_EXPENDITURE_CATEGORY.EXPENDITURE_CATEGORY
)
loop
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<LINES>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_1>'
|| replace (F_LINES.EXPENDITURE_TYPE,
'&',
'and'
)
|| '</L_1>'
);
L_COUNTER := 1;

for HRD_REC_PERIOD in CUR_PERIOD


loop
---------------last year
if L_COUNTER = 1
then
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION =
'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_LAST_YEAR_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY =
PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = F_LINES.MAIN_CATEGORY
and PET.EXPENDITURE_CATEGORY =
F_LINES.EXPENDITURE_CATEGORY
and PEIA.EXPENDITURE_TYPE = F_LINES.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 =
NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY,
PET.EXPENDITURE_CATEGORY
)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
<(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM)
group by PEC.ATTRIBUTE1,
PEC.EXPENDITURE_CATEGORY,
PET.EXPENDITURE_TYPE
order by PET.EXPENDITURE_TYPE;
exception
when others
then
V_LAST_YEAR_VALUE := 0;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_LAST>'
|| V_LAST_YEAR_VALUE
|| '</L_LAST>'
);
end if;

-------------------------------
begin
select PET.EXPENDITURE_TYPE,
NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION =
'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_EXPENDITURE_TYPE,
V_4000100_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = F_LINES.MAIN_CATEGORY
and PET.EXPENDITURE_CATEGORY =
F_LINES.EXPENDITURE_CATEGORY
and PEIA.EXPENDITURE_TYPE = F_LINES.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 =
NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY,
PET.EXPENDITURE_CATEGORY
)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
between (select START_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME)
group by PEC.ATTRIBUTE1,
PEC.EXPENDITURE_CATEGORY,
PET.EXPENDITURE_TYPE
order by PET.EXPENDITURE_TYPE;
exception
when others
then
V_4000100_VALUE := 0;
end;

V_AMOUNT := NVL (V_4000100_VALUE, 0) + V_AMOUNT;

if V_4000100_LINE is not null


then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_'
|| L_COUNTER
|| '>'
|| V_4000100_VALUE
|| '</L_'
|| L_COUNTER
|| '>'
);
end if;
end loop;

if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_' || L_COUNTER || '/>'
);
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_14>' || V_AMOUNT || '</L_14>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_TOTAL>'
|| (V_AMOUNT + V_LAST_YEAR_VALUE)
|| '</L_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</LINES>');
V_AMOUNT := 0;
V_LAST_YEAR_VALUE := 0;
end loop;

--------------------------------------------------
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<TOTAL_SUB_CATEGORY>');
FND_FILE.PUT_LINE
(FND_FILE.OUTPUT,
'<L_1>'
|| 'Total of '
|| replace
(F_EXPENDITURE_CATEGORY.EXPENDITURE_CATEGORY,
'&',
'and'
)
|| '</L_1>'
);
L_COUNTER := 1;

for HRD_REC_PERIOD in CUR_PERIOD


loop
---------------last year
if L_COUNTER = 1
then
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_LAST_YEAR_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = F_MAIN_CATEGORY.MAIN_CATEGORY
and PET.EXPENDITURE_CATEGORY =
F_EXPENDITURE_CATEGORY.EXPENDITURE_CATEGORY
and PEC.ATTRIBUTE1 =
NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
<(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM);
exception
when others
then
V_LAST_YEAR_VALUE := 0;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_LAST>' || V_LAST_YEAR_VALUE
|| '</L_LAST>'
);
end if;

-------------------------------
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_4000100_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = F_MAIN_CATEGORY.MAIN_CATEGORY
and PET.EXPENDITURE_CATEGORY =
F_EXPENDITURE_CATEGORY.EXPENDITURE_CATEGORY
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
between (select START_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME);
exception
when others
then
V_4000100_VALUE := 0;
end;

V_AMOUNT := NVL (V_4000100_VALUE, 0) + V_AMOUNT;

if V_4000100_LINE is not null


then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_'
|| L_COUNTER
|| '>'
|| V_4000100_VALUE
|| '</L_'
|| L_COUNTER
|| '>'
);
end if;
end loop;

if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_' || L_COUNTER || '/>');
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_14>' || V_AMOUNT || '</L_14>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_TOTAL>'
|| (V_AMOUNT + V_LAST_YEAR_VALUE)
|| '</L_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</TOTAL_SUB_CATEGORY>');
V_AMOUNT := 0;
V_LAST_YEAR_VALUE := 0;
--------------------------------------------------
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</EXPENDITURE_CATEGORY>');
end loop;

---------------------------------------
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<TOTAL_MAIN>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_1>'
|| 'Total of '
|| replace (F_MAIN_CATEGORY.MAIN_CATEGORY, '&',
'and')
|| '</L_1>'
);
L_COUNTER := 1;

for HRD_REC_PERIOD in CUR_PERIOD


loop
---------------last year
if L_COUNTER = 1
then
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_LAST_YEAR_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = F_MAIN_CATEGORY.MAIN_CATEGORY
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
<(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM);
exception
when others
then
V_LAST_YEAR_VALUE := 0;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_LAST>' || V_LAST_YEAR_VALUE || '</L_LAST>'
);
end if;

-------------------------------
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_4000100_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = F_MAIN_CATEGORY.MAIN_CATEGORY
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
between (select START_DATE
from GL_PERIODS
where PERIOD_NAME = HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME = HRD_REC_PERIOD.PERIOD_NAME);
exception
when others
then
V_4000100_VALUE := 0;
end;

V_AMOUNT := NVL (V_4000100_VALUE, 0) + V_AMOUNT;

if V_4000100_LINE is not null


then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_'
|| L_COUNTER
|| '>'
|| V_4000100_VALUE
|| '</L_'
|| L_COUNTER
|| '>'
);
end if;
end loop;

if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_' || L_COUNTER || '/>');
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_14>' || V_AMOUNT || '</L_14>');


FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_TOTAL>'
|| (V_AMOUNT + V_LAST_YEAR_VALUE)
|| '</L_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</TOTAL_MAIN>');
V_AMOUNT := 0;
V_LAST_YEAR_VALUE := 0;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</MAIN_CATEGORY>');
end loop;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<TOTAL_EXPENSES>');


FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_1>' || 'Total Expenses' || '</L_1>');
L_COUNTER := 1;

for HRD_REC_PERIOD in CUR_PERIOD


loop
---------------last year
if L_COUNTER = 1
then
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_LAST_YEAR_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
<(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM);
exception
when others
then
V_LAST_YEAR_VALUE := 0;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_LAST>' || V_LAST_YEAR_VALUE || '</L_LAST>'
);
end if;

-------------------------------
begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_4000100_VALUE
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
between (select START_DATE
from GL_PERIODS
where PERIOD_NAME = HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME = HRD_REC_PERIOD.PERIOD_NAME);
exception
when others
then
V_4000100_VALUE := 0;
end;

V_AMOUNT := NVL (V_4000100_VALUE, 0) + V_AMOUNT;

if V_4000100_LINE is not null


then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_'
|| L_COUNTER
|| '>'
|| V_4000100_VALUE
|| '</L_'
|| L_COUNTER
|| '>'
);
end if;
end loop;

if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_' || L_COUNTER || '/>');
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_14>' || V_AMOUNT || '</L_14>');


FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_TOTAL>'
|| (V_AMOUNT + V_LAST_YEAR_VALUE)
|| '</L_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</TOTAL_EXPENSES>');
V_AMOUNT := 0;
V_LAST_YEAR_VALUE := 0;
-------------------------revenue-----------------------
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<TOTAL_REVENUE>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_1>' || 'Total Revenue' || '</L_1>');
L_COUNTER := 1;

for HRD_REC_PERIOD in CUR_PERIOD


loop
---------------last year
if L_COUNTER = 1
then
begin
select NVL (sum (NVL (INVOICE_AMOUNT, 0)), 0)
into V_LAST_YEAR_VALUE
from PA_DRAFT_INVOICES_V
where PROJECT_NUMBER = P_V_PROJECT_NUMBER
and AGREEMENT_NUM = P_V_AGREEMENT_NUM
and INVOICE_STATUS_M = 'Transferred to Receivable'
and INVOICE_DATE <(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM);
exception
when others
then
V_LAST_YEAR_VALUE := 0;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_LAST>' || V_LAST_YEAR_VALUE || '</L_LAST>'
);
end if;

-------------------------------
begin
select NVL (sum (NVL (INVOICE_AMOUNT, 0)), 0)
into V_4000100_VALUE
from PA_DRAFT_INVOICES_V
where PROJECT_NUMBER = P_V_PROJECT_NUMBER
and AGREEMENT_NUM = P_V_AGREEMENT_NUM
and INVOICE_STATUS_M = 'Transferred to Receivable'
and INVOICE_DATE between (select START_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME);
exception
when others
then
V_4000100_VALUE := 0;
end;

V_AMOUNT := NVL (V_4000100_VALUE, 0) + V_AMOUNT;

if V_4000100_LINE is not null


then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_'
|| L_COUNTER
|| '>'
|| V_4000100_VALUE
|| '</L_'
|| L_COUNTER
|| '>'
);
end if;
end loop;
if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_' || L_COUNTER || '/>');
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_14>' || V_AMOUNT || '</L_14>');


FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_TOTAL>'
|| (V_AMOUNT + V_LAST_YEAR_VALUE)
|| '</L_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</TOTAL_REVENUE>');
V_AMOUNT := 0;
V_LAST_YEAR_VALUE := 0;
--------------------------------------------------------profit
loss-----------------------
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<PROFIT_LOST>');
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_1>' || 'Output /+ Profit / - Loss' || '</L_1>'
);
L_COUNTER := 1;

for HRD_REC_PERIOD in CUR_PERIOD


loop
---------------last year
if L_COUNTER = 1
then
begin
select NVL (sum (NVL (INVOICE_AMOUNT, 0)), 0)
into V_LAST_YEAR_VALUE
from PA_DRAFT_INVOICES_V
where PROJECT_NUMBER = P_V_PROJECT_NUMBER
and AGREEMENT_NUM = P_V_AGREEMENT_NUM
and INVOICE_STATUS_M = 'Transferred to Receivable'
and INVOICE_DATE <(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM);

exception
when others
then
V_LAST_YEAR_VALUE := 0;
end;

begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_PROFIT_LOSS2
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
<(select start_date from gl_periods where
period_name=P_PERIOD_NAME_FROM);
exception
when others
then
V_PROFIT_LOSS := 0;
end;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_LAST>'
|| (V_PROFIT_LOSS2 - V_LAST_YEAR_VALUE)
|| '</L_LAST>'
);
end if;

-------------------------------
begin
select NVL (sum (NVL (INVOICE_AMOUNT, 0)), 0)
into V_4000100_VALUE
from PA_DRAFT_INVOICES_V
where PROJECT_NUMBER = P_V_PROJECT_NUMBER
and AGREEMENT_NUM = P_V_AGREEMENT_NUM
and INVOICE_STATUS_M = 'Transferred to Receivable'
and INVOICE_DATE between (select START_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME =
HRD_REC_PERIOD.PERIOD_NAME);
exception
when others
then
V_4000100_VALUE := 0;
end;

begin
select NVL
(sum
(case
when PEIA.SYSTEM_LINKAGE_FUNCTION = 'USG'
then NVL (PEIA.RAW_COST, 0)
else NVL (PEIA.QUANTITY, 0)
end
),
0
)
into V_PROFIT_LOSS
from PA_EXPENDITURE_CATEGORIES PEC,
PA_EXPENDITURE_TYPES PET,
PA_EXPENDITURE_ITEMS_ALL PEIA
where PEC.EXPENDITURE_CATEGORY = PET.EXPENDITURE_CATEGORY
and PET.EXPENDITURE_TYPE = PEIA.EXPENDITURE_TYPE
and PEC.ATTRIBUTE1 is not null
and PEIA.PROJECT_ID = V_PROJECT_ID
and PEC.ATTRIBUTE1 = NVL (P_V_MAIN_CATEGORY, PEC.ATTRIBUTE1)
and PET.EXPENDITURE_CATEGORY =
NVL (P_V_EXPND_CATEGORY, PET.EXPENDITURE_CATEGORY)
and PEIA.EXPENDITURE_TYPE =
NVL (P_V_EXPND_TYPE, PEIA.EXPENDITURE_TYPE)
and PEIA.EXPENDITURE_ITEM_DATE
between (select START_DATE
from GL_PERIODS
where PERIOD_NAME = HRD_REC_PERIOD.PERIOD_NAME)
and (select END_DATE
from GL_PERIODS
where PERIOD_NAME = HRD_REC_PERIOD.PERIOD_NAME);
exception
when others
then
V_PROFIT_LOSS := 0;
end;

V_AMOUNT :=
(NVL (V_PROFIT_LOSS, 0) - NVL (V_4000100_VALUE, 0))
+ V_AMOUNT;

if V_4000100_LINE is not null


then
L_COUNTER := L_COUNTER + 1;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_'
|| L_COUNTER
|| '>'
|| (V_PROFIT_LOSS - V_4000100_VALUE)
|| '</L_'
|| L_COUNTER
|| '>'
);
end if;
end loop;

if L_COUNTER < 14
then
loop
L_COUNTER := L_COUNTER + 1;
exit when L_COUNTER = 14;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_' || L_COUNTER || '/>');
end loop;
end if;

FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '<L_14>' || V_AMOUNT || '</L_14>');


FND_FILE.PUT_LINE (FND_FILE.OUTPUT,
'<L_TOTAL>'
|| (V_AMOUNT + (V_PROFIT_LOSS2 - V_LAST_YEAR_VALUE))
|| '</L_TOTAL>'
);
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</PROFIT_LOST>');
V_AMOUNT := 0;
V_PROFIT_LOSS := 0;
V_PROFIT_LOSS2 := 0;
V_LAST_YEAR_VALUE := 0;
FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '</EXPENSE_REPORT>');
end;

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy