USP_REPORT_RECEIPTFORMISCELLANEOUSPAYMENT
Returns the data necessary for the receipt for miscellaneous payment report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_RECEIPTFORMISCELLANEOUSPAYMENT
(
@ID uniqueidentifier = null
)
as
set nocount on;
/* First time we run the receipt report, we need to set receipt date and receipt number fields in the
RevenueReceipt table
*/
declare @CHANGEAGENTID uniqueidentifier
declare @CURRENTDATE datetime
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = getdate()
if not exists(select ID from dbo.REVENUERECEIPT where REVENUEID = @ID)
begin
declare @REVENUERECEIPTID uniqueidentifier
declare @RECEIPTNUMBER int
set @REVENUERECEIPTID = newid()
--select @RECEIPTNUMBER = max(RECEIPTNUMBER) + 1 from dbo.REVENUERECEIPT
select @RECEIPTNUMBER = dbo.UFN_REVENUE_NEXTAVAILABLERECEIPTNUMBER()
begin try
insert into dbo.REVENUERECEIPT
(ID,RECEIPTNUMBER,RECEIPTDATE,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED,REVENUEID)
values
(@REVENUERECEIPTID,@RECEIPTNUMBER,@CURRENTDATE,@CHANGEAGENTID,@CHANGEAGENTID,
@CURRENTDATE,@CURRENTDATE,@ID)
declare @NEXTRECEIPTNUMBER int = @RECEIPTNUMBER + 1
declare @STACKID uniqueidentifier = dbo.UFN_RECEIPTSTACKINFO_GETDEFAULTRECEIPTSTACKID()
exec dbo.USP_REVENUE_SETNEXTRECEIPTNUMBER @STACKID, @NEXTRECEIPTNUMBER
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end
if exists(select ID from dbo.REVENUE where ID = @ID and NEEDSRERECEIPT<>0)
begin
begin try
/* cmc
update dbo.FINANCIALTRANSACTION set CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE where ID = @ID
update dbo.REVENUE_EXT set NEEDSRERECEIPT = 0 where ID = @ID
*/
update dbo.REVENUE set NEEDSRERECEIPT = 0, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE where
ID = @ID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end
select
REVENUE.ID,
REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
IsNull(REVENUE.TRANSACTIONAMOUNT, REVENUE.AMOUNT) as AMOUNT,
REVENUE.DATE,
isnull(REVENUEREFERENCE.REFERENCE, '') as [PAYMENTSOURCE],
case when [CHECK].CHECKDATE ='00000000' then NULL else cast([CHECK].CHECKDATE as date) end as CHECKDATE,
[CHECK].CHECKNUMBER,
case when [CASH].REFERENCEDATE = '00000000' then NULL else cast([CASH].REFERENCEDATE as date) end as [CASHREFERENCEDATE],
[CASH].REFERENCENUMBER as [CASHREFERENCENUMBER],
[CREDIT].CARDHOLDERNAME,
CREDITTYPECODE.DESCRIPTION as [CREDITTYPE],
case when [CREDIT].EXPIRESON = '00000000' then NULL else cast([CREDIT].EXPIRESON as date) end as [EXPIRESON],
[CREDIT].AUTHORIZATIONCODE,
case when len(coalesce([CREDIT].CREDITCARDPARTIALNUMBER, '')) = 0 then ''
else replicate('*', 16 - len([CREDIT].CREDITCARDPARTIALNUMBER)) + [CREDIT].CREDITCARDPARTIALNUMBER end as [CREDITCARDPARTIALNUMBER],
[OTHERPAYCODE].DESCRIPTION as [OTHERPAYMETHODDESCRIPTION],
case when [OTHERPAY].REFERENCEDATE = '00000000' then NULL else cast([OTHERPAY].REFERENCEDATE as date) end as [OTHERPAYREFERENCEDATE],
[OTHERPAY].REFERENCENUMBER as [OTHERPAYREFERENCENUMBER],
REVENUERECEIPT.RECEIPTDATE,
REVENUERECEIPT.RECEIPTNUMBER,
CURRENCYPROPERTIES.ID as CURRENCYID,
CURRENCYPROPERTIES.ISO4217 as CURRENCYISO,
CURRENCYPROPERTIES.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
CURRENCYPROPERTIES.CURRENCYSYMBOL as CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from dbo.REVENUE
inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
inner join dbo.REVENUESPLIT on REVENUESPLIT.REVENUEID = REVENUE.ID and REVENUESPLIT.APPLICATIONCODE=11 and
REVENUESPLIT.TYPECODE=8
left join dbo.REVENUEREFERENCE on REVENUEREFERENCE.ID = REVENUE.ID
left join dbo.REVENUERECEIPT on REVENUERECEIPT.REVENUEID = REVENUE.ID
left join dbo.CASHPAYMENTMETHODDETAIL as [CASH] on [CASH].ID = REVENUEPAYMENTMETHOD.ID
left join dbo.CHECKPAYMENTMETHODDETAIL as [CHECK] on [CHECK].ID = REVENUEPAYMENTMETHOD.ID
left join dbo.CREDITCARDPAYMENTMETHODDETAIL as [CREDIT] on [CREDIT].ID = REVENUEPAYMENTMETHOD.ID
left join dbo.OTHERPAYMENTMETHODDETAIL as [OTHERPAY] on [OTHERPAY].ID = REVENUEPAYMENTMETHOD.ID
left join dbo.OTHERPAYMENTMETHODCODE as [OTHERPAYCODE] on [OTHERPAYCODE].ID = [OTHERPAY].OTHERPAYMENTMETHODCODEID
left join dbo.CREDITTYPECODE on CREDITTYPECODE.ID = [CREDIT].CREDITTYPECODEID
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(REVENUE.TRANSACTIONCURRENCYID) as CURRENCYPROPERTIES
where
(REVENUE.ID = @ID)
order by DATE desc;