UFN_DOCUMENT_GETPRINTINGHISTORY
Returns sales document printing history for a sales order.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESORDERID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_DOCUMENT_GETPRINTINGHISTORY(@SALESORDERID uniqueidentifier)
returns table
as return
-- This CTE looks overly complicated, but it is useful for finding
-- the proper DOCUMENTPRINTINGHISTORY records only using indexes for SALESORDERID
with PRINTEDDOCUMENTSFORSALESORDER_CTE as (
select ID from dbo.DOCUMENTPRINTINGHISTORY where SALESORDERID = @SALESORDERID
union
select DOCUMENTPRINTINGHISTORY.ID
from dbo.DOCUMENTPRINTINGHISTORY
inner join UFN_SALESORDER_REFUNDS(@SALESORDERID) as REFUNDTRANSACTIONS on REFUNDTRANSACTIONS.ID = DOCUMENTPRINTINGHISTORY.CREDITID
)
select
DOCUMENTPRINTINGHISTORY.ID,
DOCUMENTPRINTINGHISTORY.TYPECODE,
DOCUMENTPRINTINGHISTORY.CREDITCARDPAYMENTMETHODDETAILID,
DOCUMENTPRINTINGHISTORY.CREDITID,
DOCUMENTPRINTINGHISTORY.CREDITPAYMENTID,
case DOCUMENTPRINTINGHISTORY.TYPECODE
when 2 then -- Credit Card Receipt
DOCUMENTPRINTINGHISTORY.TYPE + ': ' + CURRENCY.CURRENCYSYMBOL +
cast(SALESORDERPAYMENT.AMOUNT as nvarchar) + ' *' +
CREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER + ' ' +
dbo.UFN_CREDITTYPECODE_GETDESCRIPTION(CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID)
when 5 then -- Refund Itemized Receipt
DOCUMENTPRINTINGHISTORY.TYPE + ': (' + CURRENCY.CURRENCYSYMBOL +
cast(FT.TRANSACTIONAMOUNT as nvarchar) + ') ' +
convert(nvarchar, FT.DATEADDED, 101)
when 6 then -- Refund Credit Card Receipt
DOCUMENTPRINTINGHISTORY.TYPE + ': (' + CURRENCY.CURRENCYSYMBOL +
cast(CREDITPAYMENT.AMOUNT as nvarchar) + ') ' + ' *' +
CREDITCREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER + ' ' +
dbo.UFN_CREDITTYPECODE_GETDESCRIPTION(CREDITCREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID) + ' ' +
convert(nvarchar, FT.DATEADDED, 101)
else
DOCUMENTPRINTINGHISTORY.TYPE
end as [TYPE],
DOCUMENTPRINTINGHISTORY.PRINTDATEWITHTIMEOFFSET PRINTEDDATE,
convert(nvarchar, cast(DOCUMENTPRINTINGHISTORY.PRINTDATEWITHTIMEOFFSET as time), 100) PRINTEDTIME,
APPUSER.DISPLAYNAME APPUSER,
WORKSTATION.NAME WORKSTATION
from
PRINTEDDOCUMENTSFORSALESORDER_CTE
inner join
dbo.DOCUMENTPRINTINGHISTORY on DOCUMENTPRINTINGHISTORY.ID = PRINTEDDOCUMENTSFORSALESORDER_CTE.ID
inner join
dbo.APPUSER on DOCUMENTPRINTINGHISTORY.APPUSERID = APPUSER.ID
left outer join
dbo.WORKSTATION on DOCUMENTPRINTINGHISTORY.WORKSTATIONID = WORKSTATION.ID
left outer join
dbo.CREDITCARDPAYMENTMETHODDETAIL on DOCUMENTPRINTINGHISTORY.CREDITCARDPAYMENTMETHODDETAILID = CREDITCARDPAYMENTMETHODDETAIL.ID
left outer join
dbo.REVENUEPAYMENTMETHOD on CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
left outer join (
select ID, SALESORDERID, PAYMENTID, AMOUNT from dbo.SALESORDERPAYMENT
union all
select ID, RESERVATIONID as SALESORDERID, PAYMENTID, AMOUNT from dbo.RESERVATIONSECURITYDEPOSITPAYMENT
) as SALESORDERPAYMENT on SALESORDERPAYMENT.PAYMENTID = REVENUEPAYMENTMETHOD.REVENUEID
left outer join
dbo.FINANCIALTRANSACTION as FT on FT.ID = DOCUMENTPRINTINGHISTORY.CREDITID
left outer join
dbo.CREDITPAYMENT on DOCUMENTPRINTINGHISTORY.CREDITPAYMENTID = CREDITPAYMENT.ID
left outer join
dbo.REVENUEPAYMENTMETHOD CREDITREVENUEPAYMENTMETHOD on CREDITREVENUEPAYMENTMETHOD.REVENUEID = CREDITPAYMENT.REVENUEID
left outer join
dbo.CREDITCARDPAYMENTMETHODDETAIL CREDITCREDITCARDPAYMENTMETHODDETAIL on CREDITREVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and CREDITCREDITCARDPAYMENTMETHODDETAIL.ID = CREDITREVENUEPAYMENTMETHOD.ID
outer apply
(select top 1 CURRENCYSYMBOL from dbo.CURRENCY where ISORGANIZATIONCURRENCY = 1) as CURRENCY