UFN_RECONCILIATION_GETOTHERRECEIPTS
Returns other receipts of a reconciliation
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@RECONCILIATIONID | uniqueidentifier | IN | |
@APPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_RECONCILIATION_GETOTHERRECEIPTS
(
@RECONCILIATIONID uniqueidentifier,
@APPUSERID uniqueidentifier = null
) returns table
as
return
select
isnull(EXPECTED.ID, ACTUAL.ID) as ID,
isnull(EXPECTED.PAYMENTMETHODCODE, ACTUAL.PAYMENTMETHODCODE) as PAYMENTMETHODCODE,
case when isnull(EXPECTED.PAYMENTMETHODCODE, ACTUAL.PAYMENTMETHODCODE) in (0,1) then coalesce(EXPECTED.PAYMENTMETHOD, ACTUAL.PAYMENTMETHOD) end [PAYMENTMETHOD],
isnull(EXPECTED.CREDITTYPECODEID, ACTUAL.CREDITTYPECODEID) as CREDITTYPECODEID,
isnull(EXPECTED.OTHERPAYMENTMETHODCODEID, ACTUAL.OTHERPAYMENTMETHODCODEID) as OTHERPAYMENTMETHODCODEID,
ACTUAL.QUANTITY as QUANTITY,
EXPECTED.EXPECTED as EXPECTED,
isnull(EXPECTED.ISREFUND, ACTUAL.ISREFUND) ISREFUND,
cast(0 as bit) as ISLABEL,
EXPECTED.TOTALAMOUNT
from
(
select
ID,
PAYMENTMETHODCODE,
PAYMENTMETHOD,
CREDITTYPECODEID,
OTHERPAYMENTMETHODCODEID,
count(1) as EXPECTED,
ISREFUND as ISREFUND,
sum(TOTALAMOUNT) as TOTALAMOUNT
from dbo.UFN_RECONCILIATION_GETOTHERRECEIPTS_FULL(@RECONCILIATIONID, @APPUSERID, null)
group by
PAYMENTMETHODCODE,
ISREFUND,
PAYMENTMETHOD,
CREDITTYPECODEID,
OTHERPAYMENTMETHODCODEID,
ID
) as EXPECTED
full outer join
(
select
ID,
PAYMENTMETHODCODE,
PAYMENTMETHOD,
CREDITTYPECODEID,
OTHERPAYMENTMETHODCODEID,
QUANTITY,
0 AS [TOTALAMOUNT],
0 as ISREFUND
from dbo.RECONCILIATIONDETAIL RD
where RECONCILIATIONID = @RECONCILIATIONID
union all
select
ID
,null PAYMENTMETHODCODE
,null PAYMENTMETHOD
,null CREDITTYPECODEID
,null OTHERPAYMENTMETHODCODEID
,QUANTITY
,0 AS [TOTALAMOUNT]
,1 as ISREFUND
from dbo.RECONCILIATIONCREDITDETAIL RD
where RD.ID = @RECONCILIATIONID
) as ACTUAL
on EXPECTED.ID = ACTUAL.ID
and ((EXPECTED.PAYMENTMETHODCODE = ACTUAL.PAYMENTMETHODCODE
and (
EXPECTED.PAYMENTMETHODCODE = 1 or
(EXPECTED.PAYMENTMETHODCODE = 2 and EXPECTED.CREDITTYPECODEID = ACTUAL.CREDITTYPECODEID) or
(EXPECTED.PAYMENTMETHODCODE = 10 and EXPECTED.OTHERPAYMENTMETHODCODEID = ACTUAL.OTHERPAYMENTMETHODCODEID)
))
or (EXPECTED.PAYMENTMETHODCODE is null and ACTUAL.PAYMENTMETHODCODE is null))