AR customer transactions or opening balance query
Q1 for ar customer transaction lines
SELECT
distinct
hca.account_number client_number,
hp.party_name client_name,
rctt.name TRX_TYPE1,
rct.trx_number trx_number,
rct.PURCHASE_ORDER,
TO_CHAR(rct.creation_date,'DD-MON-YY') TRX_DATE,
TO_CHAR(rctg.gl_date,'DD-MON-YY') GL_DATE,
apsa.TAX_REMAINING VAT_AMOUNT,
ROUND(NVL(XAL.ACCOUNTED_DR,0),2) DEBIT,
ROUND(NVL(ACCOUNTED_CR,0),2) CREDIT ,
ROUND((NVL(XAL.ACCOUNTED_DR,0)),2) -
ROUND((NVL(ACCOUNTED_CR,0)),2) balance,
xal.CURRENCY_CODE CURRENCY,
rtt.name payment_term,
TO_CHAR(apsa.due_date,'DD-MON-YY') DUE_DATE,
xal.description DESCRIPTION
FROM
XLA.XLA_AE_LINES XAL,
XLA.XLA_AE_HEADERS XAH,
XLA.XLA_TRANSACTION_ENTITIES XTE,
ra_customer_trx_all rct,
ra_customer_trx_lines_all rcl,
RA_CUST_TRX_LINE_GL_DIST_ALL rctg,
ra_cust_trx_types_all rctt,
ra_terms_tl rtt,
ar_payment_schedules_all apsa,
hz_cust_accounts hca,
hz_parties hp
WHERE 1=1
and rct.customer_trx_id = rcl.customer_trx_id
and rct.CUST_TRX_TYPE_ID = rctt.CUST_TRX_TYPE_ID
and rcl.customer_trx_line_id = rctg.customer_trx_line_id
and hp.PARTY_ID = hca.PARTY_ID
and rct.bill_to_customer_id = hca.cust_account_id
and rct.customer_trx_id = apsa.customer_trx_id
AND XTE.SOURCE_ID_INT_1(+)=rct.customer_trx_id
and rct.TERM_ID = rtt.TERM_ID
AND XAH.AE_HEADER_ID = XAL.AE_HEADER_ID
AND XAH.APPLICATION_ID = XAL.APPLICATION_ID
AND XAL.APPLICATION_ID = XTE.APPLICATION_ID
AND XAH.ENTITY_ID = XTE.ENTITY_ID
AND rctg.GL_DATE BETWEEN (
SELECT
MIN(A.START_DATE)
FROM
GL_PERIODS A
WHERE
A.PERIOD_NAME = NVL(:P_FROM_DATE, A.PERIOD_NAME)
)
AND
(SELECT
MAX(A.END_DATE)
FROM
GL_PERIODS A
WHERE
A.PERIOD_NAME = NVL(:P_TO_DATE, A.PERIOD_NAME)
)
AND (XTE.ENTITY_CODE ='TRANSACTIONS')
and hca.account_number between nvl(:P_NUM_FROM,hca.account_number) and nvl(:P_NUM_TO,hca.account_number)
and rct.org_id = nvl(:P_ORG_ID,rct.org_id)
Q2 for opeining balance and details
with a as(
select
ROUND(SUM(NVL(XAL.ACCOUNTED_DR,0)),2) -
ROUND(SUM(NVL(ACCOUNTED_CR,0)),2) OPENING_BALANCE
FROM
XLA.XLA_AE_LINES XAL,
XLA.XLA_AE_HEADERS XAH,
XLA.XLA_TRANSACTION_ENTITIES XTE,
ra_customer_trx_all rct,
ra_customer_trx_lines_all rcl,
RA_CUST_TRX_LINE_GL_DIST_ALL rctg,
ra_cust_trx_types_all rctt,
ra_terms_tl rtt,
ar_payment_schedules_all apsa,
hz_cust_accounts hca,
hz_parties hp
WHERE 1=1
and rct.customer_trx_id = rcl.customer_trx_id
and rct.CUST_TRX_TYPE_ID = rctt.CUST_TRX_TYPE_ID
and rcl.customer_trx_line_id = rctg.customer_trx_line_id
and hp.PARTY_ID = hca.PARTY_ID
and rct.bill_to_customer_id = hca.cust_account_id
and rct.customer_trx_id = apsa.customer_trx_id
AND XTE.SOURCE_ID_INT_1(+)=rct.customer_trx_id
and rct.TERM_ID = rtt.TERM_ID
AND XAH.AE_HEADER_ID = XAL.AE_HEADER_ID
AND XAH.APPLICATION_ID = XAL.APPLICATION_ID
AND XAL.APPLICATION_ID = XTE.APPLICATION_ID
AND XAH.ENTITY_ID = XTE.ENTITY_ID
AND rctg.GL_DATE <= (
SELECT
MIN(A.START_DATE)
FROM
GL_PERIODS A
WHERE
A.PERIOD_NAME = NVL(:P_FROM_DATE, A.PERIOD_NAME)
)
AND (XTE.ENTITY_CODE ='TRANSACTIONS')
and hca.account_number between nvl(:P_NUM_FROM,hca.account_number) and nvl(:P_NUM_TO,hca.account_number)
and rct.org_id = nvl(:P_ORG_ID,rct.org_id)
order by XAL.creation_date),
b as (select sum(INVOICE_AMOUNT) INVOICE_AMOUNT,sum(PAID_AMOUNT) PAID_AMOUNT,sum(INVOICE_AMOUNT-PAID_AMOUNT) DUE_AMOUNT from (
SELECT
max(inv.inv_Amt ) INVOICE_AMOUNT,
max(XAL.ACCOUNTED_DR) PAID_AMOUNT
FROM
XLA.XLA_AE_LINES XAL,
XLA.XLA_AE_HEADERS XAH,
XLA.XLA_TRANSACTION_ENTITIES XTE,
ra_customer_trx_all rct,
ra_customer_trx_lines_all rcl,
RA_CUST_TRX_LINE_GL_DIST_ALL rctg,
ra_cust_trx_types_all rctt,
ra_terms_tl rtt,
ar_payment_schedules_all apsa,
hz_cust_accounts hca,
hz_parties hp,
(select sum(extended_amount) inv_Amt , a.customer_trx_id
from apps.ra_customer_trx_lines_all b ,apps.ra_customer_trx_all a where 1=1
and a.customer_trx_id = b.customer_trx_id
group by a.customer_trx_id
) inv
WHERE 1=1
and inv.customer_trx_id = rct.customer_trx_id
and rct.customer_trx_id = rcl.customer_trx_id
and rct.CUST_TRX_TYPE_ID = rctt.CUST_TRX_TYPE_ID
and rcl.customer_trx_line_id = rctg.customer_trx_line_id
and hp.PARTY_ID = hca.PARTY_ID
and rct.bill_to_customer_id = hca.cust_account_id
and rct.customer_trx_id = apsa.customer_trx_id
AND XTE.SOURCE_ID_INT_1(+)=rct.customer_trx_id
and rct.TERM_ID = rtt.TERM_ID
AND XAH.AE_HEADER_ID = XAL.AE_HEADER_ID
AND XAH.APPLICATION_ID = XAL.APPLICATION_ID
AND XAL.APPLICATION_ID = XTE.APPLICATION_ID
AND XAH.ENTITY_ID = XTE.ENTITY_ID
AND rctg.GL_DATE BETWEEN (
SELECT
MIN(A.START_DATE)
FROM
GL_PERIODS A
WHERE
A.PERIOD_NAME = NVL(:P_FROM_DATE, A.PERIOD_NAME)
)
AND
(SELECT
MAX(A.END_DATE)
FROM
GL_PERIODS A
WHERE
A.PERIOD_NAME = NVL(:P_TO_DATE, A.PERIOD_NAME)
)
AND (XTE.ENTITY_CODE ='TRANSACTIONS')
and hca.account_number between nvl(:P_NUM_FROM,hca.account_number) and nvl(:P_NUM_TO,hca.account_number)
and rct.org_id = nvl(:P_ORG_ID,rct.org_id)
group by rct.customer_trx_id)
)
select OPENING_BALANCE,INVOICE_AMOUNT,PAID_AMOUNT,DUE_AMOUNT from a,b
Comments
Post a Comment