0% found this document useful (0 votes)
3 views

Latest Script 1

The document contains SQL commands to truncate a partition in a database table and insert data into it using complex queries involving multiple Common Table Expressions (CTEs). It aggregates invoice and receipt amounts based on various conditions, including due dates and tenant codes. The queries are structured to calculate prior billing and collections, as well as future accounts receivable data.

Uploaded by

manoranjan_hota
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)
3 views

Latest Script 1

The document contains SQL commands to truncate a partition in a database table and insert data into it using complex queries involving multiple Common Table Expressions (CTEs). It aggregates invoice and receipt amounts based on various conditions, including due dates and tenant codes. The queries are structured to calculate prior billing and collections, as well as future accounts receivable data.

Uploaded by

manoranjan_hota
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/ 14

alter table bidm.

smm_f_yardi_collection_billing truncate partition (p_2024) cascade


update indexes;
insert into bidm.smm_f_yardi_collection_billing
WITH INV AS
(SELECT A.T_TYPE,
A.CALENDAR_DATE,
A.P_CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE,
(A.P_CALENDAR_DATE - CHG.DUE_DATE) AS DUE_DAYS,
CHG.DEFACT,
SUM(INV_AMT) AS INV_AMT_LC
--SUM(INV_AMT * NVL(EXR.Avg_Rate,1)) AS INV_AMT_AED
FROM (
/*Monthly*/
SELECT T_TYPE,
D.Calendar_Date,
ADD_MONTHS(D.Calendar_Date, -1) AS P_CALENDAR_DATE,
T.PERSON_CODE
FROM (SELECT DISTINCT TRIM(LEASE_CODE) AS PERSON_CODE
FROM bidm.smm_f_yardi_ar_charge
where POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11)
) T,
(SELECT TO_CHAR(CALENDAR_DATE, 'MON-YY') T_TYPE,

MAX(CALENDAR_DATE) CALENDAR_DATE
FROM bidm.w_day_d d
Where d.CAL_YEAR >= to_char(sysdate-1, 'YYYY')
and d.CAL_YEAR <= TO_NUMBER(TO_CHAR(sysdate, 'YYYY'))
AND TO_CHAR(CALENDAR_DATE, 'MON-YY') is not null
Group By TO_CHAR(CALENDAR_DATE, 'MON-YY')) d) A
LEFT JOIN (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHARGE_NO AS INVOICE_NO,
CHARGE_LINE_ID,
POST_DATE,
DUE_DATE,
DEFACT,
ROUND(NVL(SUM(CHG.INV_AMT_W_VAT - CHG.DN_AMT_W_VAT), 0),
2) AS INV_AMT
From bidm.smm_f_yardi_ar_charge CHG
where CHG.POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11)
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
CHG.TENANT_CODE,
CHARGE_NO,
CHARGE_LINE_ID,
POST_DATE,
DUE_DATE,
DEFACT) CHG
ON A.PERSON_CODE = CHG.PERSON_CODE
AND CHG.POST_DATE <= A.P_CALENDAR_DATE
--LEFT JOIN bidm.smm_d_yardi_avg_exch_rate exr
--ON EXR.Property_Id = CHG.Mall_Id
--AND EXR.YEAR = TO_CHAR(A.P_CALENDAR_DATE,'YYYY')
--AND EXR.MONTH = TO_CHAR(A.P_CALENDAR_DATE,'MM')
Group By A.T_TYPE,
A.CALENDAR_DATE,
A.P_CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE),
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE,
CHG.DEFACT)
, RCT as
(SELECT A.T_TYPE,
A.CALENDAR_DATE,
A.P_CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE,
SUM(CHQ_AMT) RECEIPT_AMT_LC
--SUM(CHQ_AMT * NVL(EXR.Avg_Rate,1)) AS RECEIPT_AMT_AED
FROM (SELECT T_TYPE,
D.Calendar_Date,
ADD_MONTHS(D.Calendar_Date, -1) AS P_CALENDAR_DATE,
T.PERSON_CODE
FROM (SELECT DISTINCT TRIM(LEASE_CODE) AS PERSON_CODE
FROM bidm.smm_f_yardi_ar_charge
where POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11))
T,
(SELECT TO_CHAR(CALENDAR_DATE, 'MON-YY') T_TYPE,
MAX(CALENDAR_DATE) CALENDAR_DATE

FROM bidm.w_day_d d
Where d.CAL_YEAR >= to_char(sysdate-1, 'YYYY')
and d.CAL_YEAR <= TO_NUMBER(TO_CHAR(sysdate, 'YYYY'))
AND TO_CHAR(CALENDAR_DATE, 'MON-YY') is not null
Group By TO_CHAR(CALENDAR_DATE, 'MON-YY')) d) A
LEFT JOIN (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHARGE_NO AS INVOICE_NO,
DUE_DATE,
CHARGE_LINE_ID,
POST_DATE,
ROUND(NVL(SUM(CHG.INV_AMT_W_VAT - CHG.DN_AMT_W_VAT), 0),
2) AS INV_AMT
From bidm.smm_f_yardi_ar_charge CHG
where CHG.POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11)
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
CHG.TENANT_CODE,
CHARGE_NO,
DUE_DATE,
CHARGE_LINE_ID,
POST_DATE) CHG
ON A.PERSON_CODE = CHG.PERSON_CODE
AND CHG.POST_DATE <= A.P_CALENDAR_DATE
INNER JOIN (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
CHARGE_LINE_ID,
CHQ_POST_DATE,
ROUND(NVL(SUM(CHK.Transaction_Amt_w_Vat_Conv), 0), 2) AS
CHQ_AMT
From bidm.smm_f_yardi_ar_checks CHK
where CHK.CHQ_POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -
11)
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
CHARGE_LINE_ID,
CHQ_POST_DATE) CHK
ON CHG.CHARGE_LINE_ID = CHK.CHARGE_LINE_ID
AND CHK.CHQ_POST_DATE <= A.P_CALENDAR_DATE
--LEFT JOIN bidm.smm_d_yardi_avg_exch_rate exr
--ON EXR.Property_Id = CHG.Mall_Id
--AND EXR.YEAR = TO_CHAR(A.P_CALENDAR_DATE,'YYYY')
--AND EXR.MONTH = TO_CHAR(A.P_CALENDAR_DATE,'MM')
Group By A.T_TYPE,
A.CALENDAR_DATE,

A.P_CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE),
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE)
,
MPB AS
(SELECT MALL_ID,
PERSON_CODE,
CALENDAR_DATE,
TRUNC(CALENDAR_DATE, 'MM') AS F_CALENDAR_DATE,
(SUM(NVL(PRIOR_BILLING_LC, 0)) - SUM(NVL(PRIOR_COLLECTION_LC, 0))) AS
PRIOR_BILLING_LC
--(SUM(NVL(PRIOR_BILLING_AED,0))-SUM(NVL(PRIOR_COLLECTION_AED,0))) AS
PRIOR_BILLING_AED
FROM (SELECT INV.MALL_ID,
INV.CALENDAR_DATE,
INV.PERSON_CODE,
CASE
WHEN INV.DUE_DAYS < 0 and NVL(INV.DEFACT, 0) <> 0 THEN
SUM(INV.INV_AMT_LC)
ELSE
0
END PRIOR_BILLING_LC,
CASE
WHEN INV.DUE_DAYS < 0 and NVL(INV.DEFACT, 0) <> 0 THEN
SUM(NVL(RCT.RECEIPT_AMT_LC, 0))
ELSE
0
END PRIOR_COLLECTION_LC
-- CASE WHEN INV.DUE_DAYS<0 and NVL(INV.DEFACT,0) <> 0 THEN
SUM(INV.INV_AMT_AED) ELSE 0 END PRIOR_BILLING_AED,
-- CASE WHEN INV.DUE_DAYS<0 and NVL(INV.DEFACT,0) <> 0 THEN
SUM(NVL(RCT.RECEIPT_AMT_AED,0)) ELSE 0 END PRIOR_COLLECTION_AED
FROM INV INV
LEFT JOIN RCT RCT
ON INV.CALENDAR_DATE = RCT.CALENDAR_DATE
AND INV.MALL_ID = RCT.MALL_ID
AND INV.CHARGE_LINE_ID = RCT.CHARGE_LINE_ID
GROUP BY INV.MALL_ID,
INV.PERSON_CODE,
INV.CALENDAR_DATE,
INV.DUE_DAYS,
INV.DEFACT)
GROUP BY MALL_ID, PERSON_CODE, CALENDAR_DATE, TRUNC(CALENDAR_DATE, 'MM'))
, FARINV AS
(SELECT A.T_TYPE,
A.CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE,
CHG.DEFACT,
(A.CALENDAR_DATE - CHG.DUE_DATE) AS DUE_DAYS,
SUM(INV_AMT) AS INV_AMT_LC
--SUM(INV_AMT * NVL(EXR.Avg_Rate,1)) AS INV_AMT_AED
FROM (
/*Monthly*/
SELECT T_TYPE,
D.Calendar_Date,
ADD_MONTHS(D.Calendar_Date, -1) AS P_CALENDAR_DATE,
T.PERSON_CODE
FROM (SELECT DISTINCT TRIM(LEASE_CODE) AS PERSON_CODE
FROM bidm.smm_f_yardi_ar_charge
where POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11)
) T,
(SELECT TO_CHAR(CALENDAR_DATE, 'MON-YY') T_TYPE,
MAX(CALENDAR_DATE) CALENDAR_DATE
FROM bidm.w_day_d d
Where d.CAL_YEAR >= to_char(ADD_MONTHS(trunc(sysdate-1,
'YYYY'), -11), 'YYYY')
and d.CAL_YEAR <= TO_NUMBER(TO_CHAR(sysdate, 'YYYY'))
AND TO_CHAR(CALENDAR_DATE, 'MON-YY') is not null
Group By TO_CHAR(CALENDAR_DATE, 'MON-YY')) d) A
LEFT JOIN (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHARGE_NO AS INVOICE_NO,
CHARGE_LINE_ID,
POST_DATE,
DUE_DATE,
DEFACT,
ROUND(NVL(SUM(CHG.INV_AMT_W_VAT - CHG.DN_AMT_W_VAT), 0),
2) AS INV_AMT
From bidm.smm_f_yardi_ar_charge CHG
-- where CHG.POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11)
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
CHG.TENANT_CODE,
CHARGE_NO,
CHARGE_LINE_ID,
POST_DATE,
DUE_DATE,
DEFACT) CHG
ON A.PERSON_CODE = CHG.PERSON_CODE
AND CHG.POST_DATE <= A.CALENDAR_DATE
--LEFT JOIN bidm.smm_d_yardi_avg_exch_rate exr
--ON EXR.Property_Id = CHG.Mall_Id
--AND EXR.YEAR = TO_CHAR(A.P_CALENDAR_DATE,'YYYY')
--AND EXR.MONTH = TO_CHAR(A.P_CALENDAR_DATE,'MM')
Group By A.T_TYPE,
A.CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE),
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE,
CHG.DEFACT)
,
FARRCT AS
(SELECT A.T_TYPE,
A.CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE,
SUM(CHQ_AMT) RECEIPT_AMT_LC
--SUM(CHQ_AMT * NVL(EXR.Avg_Rate,1)) AS RECEIPT_AMT_AED
FROM (SELECT T_TYPE,
D.Calendar_Date,
ADD_MONTHS(D.Calendar_Date, -1) AS P_CALENDAR_DATE,
T.PERSON_CODE
FROM (SELECT DISTINCT TRIM(LEASE_CODE) AS PERSON_CODE
FROM bidm.smm_f_yardi_ar_charge
where POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11))
T,
(SELECT TO_CHAR(CALENDAR_DATE, 'MON-YY') T_TYPE,
MAX(CALENDAR_DATE) CALENDAR_DATE
FROM bidm.w_day_d d
Where d.CAL_YEAR >= to_char(ADD_MONTHS(trunc(sysdate-1, 'YYYY'),
-11), 'YYYY')
and d.CAL_YEAR <= TO_NUMBER(TO_CHAR(sysdate, 'YYYY'))
AND TO_CHAR(CALENDAR_DATE, 'MON-YY') is not null
Group By TO_CHAR(CALENDAR_DATE, 'MON-YY')) d) A
LEFT JOIN (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
CHG.TENANT_CODE,
CHARGE_NO AS INVOICE_NO,
DUE_DATE,
CHARGE_LINE_ID,
POST_DATE,
ROUND(NVL(SUM(CHG.INV_AMT_W_VAT - CHG.DN_AMT_W_VAT), 0),
2) AS INV_AMT
From bidm.smm_f_yardi_ar_charge CHG
-- where CHG.POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -11)
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
CHG.TENANT_CODE,
CHARGE_NO,
DUE_DATE,
CHARGE_LINE_ID,
POST_DATE) CHG
ON A.PERSON_CODE = CHG.PERSON_CODE
AND CHG.POST_DATE <= A.CALENDAR_DATE
INNER JOIN (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
CHARGE_LINE_ID,
CHQ_POST_DATE,
ROUND(NVL(SUM(CHK.Transaction_Amt_w_Vat_Conv), 0), 2) AS
CHQ_AMT
From bidm.smm_f_yardi_ar_checks CHK
-- where CHK.CHQ_POST_DATE >= ADD_MONTHS(trunc(sysdate-1, 'YYYY'), -
11)
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
CHARGE_LINE_ID,
CHQ_POST_DATE) CHK
ON CHG.CHARGE_LINE_ID = CHK.CHARGE_LINE_ID
AND CHK.CHQ_POST_DATE <= A.CALENDAR_DATE
--LEFT JOIN bidm.smm_d_yardi_avg_exch_rate exr
--ON EXR.Property_Id = CHG.Mall_Id
--AND EXR.YEAR = TO_CHAR(A.CALENDAR_DATE,'YYYY')
--AND EXR.MONTH = TO_CHAR(A.CALENDAR_DATE,'MM')
Group By A.T_TYPE,
A.CALENDAR_DATE,
CHG.MALL_ID,
TRIM(CHG.PERSON_CODE),
CHG.TENANT_CODE,
CHG.INVOICE_NO,
CHG.CHARGE_LINE_ID,
CHG.DUE_DATE)
,
FUAR AS
(SELECT MALL_ID,
PERSON_CODE,
CALENDAR_DATE,
TRUNC(CALENDAR_DATE, 'MM') AS F_CALENDAR_DATE,
--DEFACT,DUE_DAYS,
SUM(AR_NOT_YET_DUE_LC) AS AR_NOT_YET_DUE_LC,
SUM(FUTURE_LC) AS FUTURE_LC
--SUM(AR_NOT_YET_DUE_AED) AS AR_NOT_YET_DUE_AED,
--SUM(FUTURE_AED) AS FUTURE_AED
/*,SUM(BILLING) AS BILLING,
SUM(COLLECTION) AS COLLECTION*/
FROM (SELECT FARINV.MALL_ID,
FARINV.CALENDAR_DATE,
FARINV.PERSON_CODE,
--FARINV.DUE_DAYS,FARINV.DEFACT,SUM(FARINV.INV_AMT_LC) AS
BILLING,SUM(NVL(FARRCT.RECEIPT_AMT_LC,0)) AS COLLECTION,
CASE
WHEN FARINV.DUE_DAYS < 0 AND NVL(FARINV.DEFACT, 0) <> 0 THEN
SUM(FARINV.INV_AMT_LC) -
SUM(NVL(FARRCT.RECEIPT_AMT_LC, 0))
ELSE
0
END FUTURE_LC,
CASE
WHEN FARINV.DUE_DAYS < 0 AND NVL(FARINV.DEFACT, 0) = 0 THEN
SUM(FARINV.INV_AMT_LC) -
SUM(NVL(FARRCT.RECEIPT_AMT_LC, 0))
ELSE
0
END AR_NOT_YET_DUE_LC
-- CASE WHEN FARINV.DUE_DAYS <0 AND NVL(FARINV.DEFACT,0) <> 0 THEN
SUM(FARINV.INV_AMT_AED)-SUM(NVL(FARRCT.RECEIPT_AMT_AED,0)) ELSE 0 END FUTURE_AED,
-- CASE WHEN FARINV.DUE_DAYS < 0 AND NVL(FARINV.DEFACT,0) = 0
THEN SUM(FARINV.INV_AMT_AED)-SUM(NVL(FARRCT.RECEIPT_AMT_AED,0)) ELSE 0 END
AR_NOT_YET_DUE_AED
FROM FARINV FARINV
LEFT JOIN FARRCT FARRCT
ON FARINV.CALENDAR_DATE = FARRCT.CALENDAR_DATE
AND FARINV.MALL_ID = FARRCT.MALL_ID
AND FARINV.CHARGE_LINE_ID = FARRCT.CHARGE_LINE_ID
--where FARINV.CALENDAR_DATE >= trunc(sysdate-1, 'YYYY')
GROUP BY FARINV.MALL_ID,
FARINV.PERSON_CODE,
FARINV.CALENDAR_DATE,
FARINV.DUE_DAYS,
FARINV.DEFACT)
/*WHERE TO_CHAR(CALENDAR_DATE,'MM-YYYY') = '11-2020'
AND PERSON_CODE='t0067462'
AND MALL_ID=248*/
Group By MALL_ID, PERSON_CODE, CALENDAR_DATE, TRUNC(CALENDAR_DATE, 'MM')
)
/*Main Query*/
select tmp.MALL_ID,
tmp.PERSON_CODE,
MAX(tmp.TENANT_CODE) TENANT_CODE,
tmp.POST_DATE,
tmp.AS_OF_DATE,
sum(tmp.BILLING_AMOUNT_LC) BILLING_AMOUNT_LC,
sum(tmp.BILLING_AMOUNT_AED) BILLING_AMOUNT_AED,
sum(tmp.COLLECTION_AMOUNT_LC) COLLECTION_AMOUNT_LC,
sum(tmp.COLLECTION_AMOUNT_AED) COLLECTION_AMOUNT_AED,
sum(tmp.FUTURE_AMOUNT_LC) FUTURE_AMOUNT_LC,
sum(tmp.FUTURE_AMOUNT_AED) FUTURE_AMOUNT_AED,
sum(tmp.AR_NOT_YET_DUE_LC) AR_NOT_YET_DUE_LC,
sum(tmp.AR_NOT_YET_DUE_AED) AR_NOT_YET_DUE_AED,
sum(tmp.PRIOR_BILLING_LC) PRIOR_BILLING_LC,
sum(tmp.PRIOR_BILLING_AED) PRIOR_BILLING_AED,
CAST(CURRENT_TIMESTAMP AS DATE) AS W_INSERT_DATE,
CAST(CURRENT_TIMESTAMP AS DATE) AS W_UPDATE_DATE,
round(sum((tmp.future_amount_lc / (vat.drate + 100)) * vat.drate), 2) as
VAT_FUTURE_AMOUNT_LC,
round(sum((tmp.future_amount_aed / (vat.drate + 100)) * vat.drate),
2) as VAT_FUTURE_AMOUNT_AED,
round(sum((tmp.prior_billing_lc / (vat.drate + 100)) * vat.drate), 2) as
VAT_PRIOR_BILLING_LC,
round(sum((tmp.PRIOR_BILLING_AED / (vat.drate + 100)) * vat.drate),
2) as VAT_PRIOR_BILLING_AED
/* start: added by Khalid Mahmood as on 12-05-2022 for JE amounts*/,
max(JE_VAT_REV.JEAmt) VAT_FUTURE_ADJ_LC,
max(JE_VAT_REV.JERAmt) VAT_FUTURE_REV_ADJ_LC,
max(JE_VAT_REV.JEAmt * (CASE
WHEN 1 = 1 THEN
round(NVL(exr_je.avg_rate, 1), 4)
ELSE
1
END)) VAT_FUTURE_ADJ_AED,

max(JE_VAT_REV.JERAmt * (CASE
WHEN 1 = 1 THEN
round(NVL(exr_je.avg_rate, 1), 4)
ELSE
1
END)) VAT_FUTURE_REV_ADJ_AED
/* end: added by Khalid Mahmood as on 12-05-2022 for JE amounts*/
from (SELECT MALL_ID,
TRIM(PERSON_CODE) AS PERSON_CODE,
TENANT_CODE,
POST_DATE,
AS_OF_DATE,
NVL(SUM(BILLING_AMOUNT_LC), 0) AS BILLING_AMOUNT_LC,
--NVL(SUM(BILLING_AMOUNT_AED),0) AS BILLING_AMOUNT_AED,
ROUND(NVL(SUM(BILLING_AMOUNT_LC * NVL(exrate.avg_rate, 1)), 0),
2) as BILLING_AMOUNT_AED,
NVL(SUM(COLLECTION_AMOUNT_LC), 0) AS COLLECTION_AMOUNT_LC,
NVL(SUM(COLLECTION_AMOUNT_AED), 0) AS COLLECTION_AMOUNT_AED,
SUM(FUTURE_LC) AS FUTURE_AMOUNT_LC,
--SUM(FUTURE_AED) FUTURE_AMOUNT_AED,
ROUND(NVL(SUM(FUTURE_LC * NVL(exrate.avg_rate, 1)), 0), 2) as
FUTURE_AMOUNT_AED,
SUM(AR_NOT_YET_DUE_LC) AS AR_NOT_YET_DUE_LC,
--SUM(AR_NOT_YET_DUE_AED) AS AR_NOT_YET_DUE_AED,
ROUND(NVL(SUM(AR_NOT_YET_DUE_LC * NVL(exrate.avg_rate, 1)), 0),
2) as AR_NOT_YET_DUE_AED,
SUM(PRIOR_BILLING_LC) AS PRIOR_BILLING_LC,
--SUM(PRIOR_BILLING_AED) AS PRIOR_BILLING_AED,
ROUND(NVL(SUM(PRIOR_BILLING_LC * NVL(exrate.avg_rate, 1)), 0),
2) as PRIOR_BILLING_AED
FROM (SELECT MALL_ID,
TRIM(PERSON_CODE) AS PERSON_CODE,
NULL TENANT_CODE,
F_CALENDAR_DATE AS POST_DATE,
F_CALENDAR_DATE AS AS_OF_DATE,
0 AS BILLING_AMOUNT_LC,
0 AS BILLING_AMOUNT_AED,
0 AS COLLECTION_AMOUNT_LC,
0 AS COLLECTION_AMOUNT_AED,
SUM(FUTURE_LC) AS FUTURE_LC,
--SUM(FUTURE_AED) AS FUTURE_AED,
0 as FUTURE_AED,
SUM(AR_NOT_YET_DUE_LC) AS AR_NOT_YET_DUE_LC,
--SUM(AR_NOT_YET_DUE_AED) AS AR_NOT_YET_DUE_AED,
0 as AR_NOT_YET_DUE_AED,
0 AS PRIOR_BILLING_LC,
0 AS PRIOR_BILLING_AED
FROM FUAR FAR
where F_CALENDAR_DATE >= trunc(sysdate-1, 'YYYY')
GROUP BY MALL_ID, TRIM(PERSON_CODE), F_CALENDAR_DATE
UNION ALL
SELECT MALL_ID,
TRIM(PERSON_CODE) AS PERSON_CODE,
TENANT_CODE,
POST_DATE,
AS_OF_DATE,

SUM(BILLING_AMOUNT_LC) AS BILLING_AMOUNT_LC,
--SUM(BILLING_AMOUNT_AED) AS BILLING_AMOUNT_AED,
0 as BILLING_AMOUNT_AED,
SUM(COLLECTION_AMOUNT_LC) AS COLLECTION_AMOUNT_LC,
SUM(COLLECTION_AMOUNT_AED) AS COLLECTION_AMOUNT_AED,
0 AS FUTURE_LC,
0 AS FUTURE_AED,
0 AS AR_NOT_YET_DUE_LC,
0 AS AR_NOT_YET_DUE_AED,
0 AS PRIOR_BILLING_LC,
0 AS PRIOR_BILLING_AED
FROM (SELECT POST_DATE,
CASE
WHEN TO_CHAR(AS_OF_DATE, 'MM') >
TO_CHAR(POST_DATE, 'MM') THEN
LAST_DAY(POST_DATE)
WHEN TO_CHAR(AS_OF_DATE, 'MM') <
TO_CHAR(POST_DATE, 'MM') THEN
TRUNC((POST_DATE), 'month')
WHEN TO_CHAR(AS_OF_DATE, 'MM') =

TO_CHAR(POST_DATE, 'MM') THEN


TRUNC(AS_OF_DATE)
ELSE
TRUNC(AS_OF_DATE)
END AS AS_OF_DATE,
MALL_ID,
TRIM(PERSON_CODE) AS PERSON_CODE,
TENANT_CODE,
SUM(BILLING_AMOUNT_LC) AS BILLING_AMOUNT_LC,
--SUM(BILLING_AMOUNT_AED) AS BILLING_AMOUNT_AED,
0 as BILLING_AMOUNT_AED,
SUM(COLLECTION_AMOUNT_LC) AS COLLECTION_AMOUNT_LC,
SUM(COLLECTION_AMOUNT_AED) AS COLLECTION_AMOUNT_AED
FROM (SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
TENANT_CODE,
TRUNC(CHG.POST_DATE) AS POST_DATE,
TRUNC(CHG.POST_DATE) AS AS_OF_DATE,
--
NVL(NVL(TRUNC(CHG.BATCH_POST_DATE),TRUNC(CHG.MODIFIED_DATE)),CHG.CREATED_DATE) AS
AS_OF_DATE,
ROUND(NVL(SUM(CHG.INV_AMT_W_VAT), 0), 2) AS
BILLING_AMOUNT_LC,
--ROUND(NVL(SUM(CHG.INV_AMT_W_VAT *
NVL(exr.avg_rate,1)),0),2) AS BILLING_AMOUNT_AED,
0 as BILLING_AMOUNT_AED,
0 AS COLLECTION_AMOUNT_LC,
0 AS COLLECTION_AMOUNT_AED
From bidm.SMM_F_YARDI_AR_CHARGE CHG
where CHG.POST_DATE >= ADD_MONTHS(trunc(sysdate-
1, 'YYYY'), 0)
--LEFT JOIN
--smbustg.stg_d_yardi_avg_exch_rate exr
--ON EXR.Property_Id = CHG.Mall_Id
--AND EXR.YEAR = TO_CHAR(CHG.POST_DATE,'YYYY')
--AND EXR.MONTH = TO_CHAR(CHG.POST_DATE,'MM')
--WHERE CHG.MALL_ID = 248
--TRIM(LEASE_CODE)= 't0037446' AND
--AND TO_CHAR(CHG.POST_DATE,'MM')='09'
--AND TO_CHAR(CHG.POST_DATE,'YYYY')='2020'
--AND
TO_CHAR(NVL(TRUNC(CHG.MODIFIED_DATE),TRUNC(CHG.CREATED_DATE)),'MM')='09'
--AND
TO_CHAR(NVL(TRUNC(CHG.MODIFIED_DATE),TRUNC(CHG.CREATED_DATE)),'YYYY')='2020'
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
TENANT_CODE,
TRUNC(CHG.POST_DATE)
--
NVL(NVL(TRUNC(CHG.BATCH_POST_DATE),TRUNC(CHG.MODIFIED_DATE)),CHG.CREATED_DATE)
UNION ALL
SELECT MALL_ID,
TRIM(LEASE_CODE) AS PERSON_CODE,
TENANT_CODE,
TRUNC(CHK.CHQ_POST_DATE) AS POST_DATE,
NVL(NVL(TRUNC(CHK.BATCH_POST_DATE),
TRUNC(CHK.MODIFIED_DATE)),
CHK.CREATED_DATE) AS AS_OF_DATE,
0 BILLING_AMOUNT_LC,
0 BILLING_AMOUNT_AED,
ROUND(NVL(SUM(CHK.APPLIED_AMT), 0), 2) AS
COLLECTION_AMOUNT_LC,
ROUND(NVL(SUM(CHK.APPLIED_AMT *
NVL(Exr.Avg_Rate, 1)),
0),
2) AS COLLECTION_AMOUNT_AED
From bidm.SMM_F_YARDI_AR_COLLECTION CHK
LEFT JOIN bidm.smm_d_yardi_avg_exch_rate exr
ON EXR.Property_Id = CHK.Mall_Id
AND EXR.YEAR =
TO_CHAR(CHK.CHQ_POST_DATE, 'YYYY')
AND EXR.MONTH =
TO_CHAR(CHK.CHQ_POST_DATE, 'MM')
where CHK.CHQ_POST_DATE >=
ADD_MONTHS(trunc(sysdate-1, 'YYYY'), 0)
--WHERE CHK.Mall_ID=248
--AND TO_CHAR(CHK.CHQ_POST_DATE,'MM')='09'
--AND TO_CHAR(CHK.CHQ_POST_DATE,'YYYY')='2020'
--AND
TO_CHAR(NVL(TRUNC(CHK.MODIFIED_DATE),TRUNC(CHK.CREATED_DATE)),'MM')='09'
--AND
TO_CHAR(NVL(TRUNC(CHK.MODIFIED_DATE),TRUNC(CHK.CREATED_DATE)),'YYYY')='2020'
GROUP BY MALL_ID,
TRIM(LEASE_CODE),
TENANT_CODE,
TRUNC(CHK.CHQ_POST_DATE),
NVL(NVL(TRUNC(CHK.BATCH_POST_DATE),
TRUNC(CHK.MODIFIED_DATE)),
CHK.CREATED_DATE))
GROUP BY POST_DATE,
AS_OF_DATE,
MALL_ID,
TRIM(PERSON_CODE),
TENANT_CODE)
GROUP BY MALL_ID,
TRIM(PERSON_CODE),
TENANT_CODE,
POST_DATE,
AS_OF_DATE
UNION ALL
Select MALL_ID,
TRIM(PERSON_CODE) AS PERSON_CODE,
NULL TENANT_CODE,
F_CALENDAR_DATE AS POST_DATE,

F_CALENDAR_DATE AS AS_OF_DATE,
0 AS BILLING_AMOUNT_LC,
0 AS BILLING_AMOUNT_AED,
0 AS COLLECTION_AMOUNT_LC,
0 AS COLLECTION_AMOUNT_AED,
0 AS FUTURE_LC,
0 AS FUTURE_AED,
0 AS AR_NOT_YET_DUE_LC,

0 AS AR_NOT_YET_DUE_AED,
SUM(PRIOR_BILLING_LC) AS PRIOR_BILLING_LC,
--SUM(PRIOR_BILLING_AED) AS PRIOR_BILLING_AED
0 as PRIOR_BILLING_AED
FROM MPB
GROUP BY MALL_ID, TRIM(PERSON_CODE), F_CALENDAR_DATE)
billing_collection
/*WHERE MALL_ID = 37
--AND TRIM(FAR.PERSON_CODE) IN
('c0003816','t0119619','t0120308','t0121247','t0121575','t0122102')
AND TO_CHAR(POST_DATE,'MM-YYYY') IN ('10-2020')*/
left join bidm.smm_d_yardi_avg_exch_rate exrate
on exrate.property_id = billing_collection.mall_id
and exrate.year = to_char(as_of_Date, 'YYYY')
and exrate.month = to_char(as_of_date, 'MM')
--where as_of_Date between '01-MAR-21' AND '31-MAR-21'
--and person_code='t0071013'
GROUP BY MALL_ID,
TRIM(PERSON_CODE),
TENANT_CODE,
POST_DATE,
AS_OF_DATE) tmp
left join bidm.smm_d_yardi_property p
on p.hmy = tmp.mall_id
left join SMBUSTG.stg_f_yardi_intvatrate vat
on vat.hcountry = p.hcountry
AND AS_OF_DATE BETWEEN TRUNC(VAT.DTFROM) AND
NVL(VAT.DTTO, TO_DATE('31-DEC-2030', 'DD-MON-YYYY'))
/* start: added by Khalid Mahmood as on 12-05-2022 for JE amounts*/
LEFT JOIN (Select Ctry,
PHmy,
prHmy,
ltrim(rtrim(scode)) scode,
dtPost AS TDATE,
sum(JEAmt) JEAmt,
sum(JERAmt) JERAmt
From (SELECT co.hmy Ctry,
p.hmy PHmy,
t.hmy prHmy,
t.ucode scode,
0 JERAmt,
(gld.damount) JEAmt,
gld.dtPost dtPost
FROM SMBUSTG.STG_YARDI_TRANS TR
INNER JOIN SMBUSTG.STG_YARDI_GLDETAIL gld
on tr.hmy = gld.htran
and gld.ibook = 1
INNER JOIN SMBUSTG.STG_YARDI_acct ac
on ac.hmy = gld.hacct
INNER JOIN SMBUSTG.STG_YARDI_Person t
on ltrim(rtrim(t.ucode)) =

ltrim(rtrim(case
when instr(TR.uref,
' ',
decode(regexp_instr(TR.uref,
'-'),
0,
1,
regexp_instr(TR.uref,
'-'))) = 0 then
substr(TR.uref,
regexp_instr(TR.uref, '-', 1) +
1)
else
substr(tr.uref,
regexp_instr(TR.uref, '-', 1) +
1,
instr(TR.uref, ' ') -
regexp_instr(TR.uref, '-', 1) -
1)
--else substr(TR.uref,1,5)
end))
INNER JOIN smbustg.STG_D_YARDI_PROPERTY P
ON tr.hProp = p.hMy
INNER Join smbustg.STG_D_YARDI_COUNTRY_INFO CO
on CO.hmy = p.hcountry
WHERE 1 = 1
AND gld.hacct in (8159, 7218)
/*and gld.dtPost >= to_date('01'||to_char(sysdate,
'MONYYYY'), 'DDMONYYYY')
AND gld.dtPost < LAST_DAY(TRUNC(SYSDATE))+1*/
AND gld.ibook = 1
AND gld.itype = 10
and gld.sNotes = 'Reversal of Future billing'
AND NVL(tr.STRANFIELDS2, '') = 'UIREV'
--AND p.hmy IN (#Property#)
union all
select co.hmy Ctry,
p.hmy PHmy,
t.hmy prHmy,
t.ucode scode,
gld.damount JERAmt,
0 JEAmt,
gld.dtPost dtPost
FROM SMBUSTG.STG_YARDI_TRANS tr
INNER join SMBUSTG.STG_YARDI_TRANS tr1
on tr1.hmy = tr.hparent1
INNER JOIN SMBUSTG.STG_YARDI_GLDETAIL gld
on tr.hmy = gld.htran
and gld.ibook = 1
INNER JOIN SMBUSTG.STG_YARDI_acct ac
on ac.hmy = gld.hacct
INNER JOIN SMBUSTG.STG_YARDI_Person t
on ltrim(rtrim(t.ucode)) =
ltrim(rtrim(case
when instr(TR1.uref,
' ',
decode(regexp_instr(TR1.uref,
'-'),
0,
1,
regexp_instr(TR1.uref,
'-'))) = 0 then
substr(TR1.uref,
regexp_instr(TR1.uref, '-', 1) +
1)
else
substr(tr1.uref,
regexp_instr(TR1.uref, '-', 1) +
1,
instr(TR1.uref, ' ') -
regexp_instr(TR1.uref, '-', 1) -
1)
--else substr(TR.uref,1,5)
end))
INNER JOIN smbustg.STG_D_YARDI_PROPERTY P
ON tr.hProp = p.hMy
INNER Join smbustg.stg_d_yardi_COUNTRY_INFO CO
on CO.hmy = p.hcountry
WHERE tr.iTYPE in (10)
AND p.iType = 3
AND gld.hacct in (8159, 7218)
/*and gld.dtPost >= to_date('01'||to_char(sysdate,
'MONYYYY'), 'DDMONYYYY')
AND gld.dtPost < LAST_DAY(TRUNC(SYSDATE))+1*/
and gld.ibook = 1
and gld.sNotes = 'Reversal of Future billing'
AND NVL(tr1.STRANFIELDS2, '') = 'UIREV'
--AND p.hmy IN (#Property#)
) Tot
Group by Ctry, PHmy, prHmy, scode, dtPost) JE_VAT_REV
on JE_VAT_REV.phmy = tmp.MALL_ID
and JE_VAT_REV.scode = tmp.PERSON_CODE
and JE_VAT_REV.tdate = tmp.as_of_date
LEFT OUTER JOIN smbustg.stg_d_yardi_avg_exch_rate exr_je
ON exr_je.property_id = JE_VAT_REV.phmy
AND exr_je.YEAR = TO_CHAR(LAST_DAY(JE_VAT_REV.tdate), 'YYYY')
AND exr_je.MONTH = TO_CHAR(LAST_DAY(JE_VAT_REV.tdate), 'MM')
/* end: added by Khalid Mahmood as on 12-05-2022 for JE amounts*/
where 1=1
and post_date >= trunc(sysdate, 'YYYY')
--and PERSON_CODE = 't0117171'
group by tmp.MALL_ID,
tmp.PERSON_CODE,

-- tmp.TENANT_CODE,
tmp.POST_DATE,
tmp.AS_OF_DATE
;

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