USP_DATALIST_CREDITSALESDOCUMENTSTOPRINT

Returns a list of documents and prioritized printers to print for a refund.

Parameters

Parameter Parameter Type Mode Description
@CREDITID uniqueidentifier IN Credit ID
@WORKSTATIONMACHINENAME nvarchar(255) IN Workstation machine name

Definition

Copy


CREATE procedure dbo.USP_DATALIST_CREDITSALESDOCUMENTSTOPRINT(
    @CREDITID uniqueidentifier,
    @WORKSTATIONMACHINENAME nvarchar(255)
)
as
    set nocount on;

    declare @WORKSTATIONID uniqueidentifier = dbo.UFN_WORKSTATION_GETIDBYMACHINENAME(@WORKSTATIONMACHINENAME);

    declare @SALESORDERID uniqueidentifier
    declare @SALESMETHODTYPECODE tinyint

    select
        @SALESORDERID = isnull(SALESORDER.ID, EXT.SALESORDERID),
        @SALESMETHODTYPECODE = SALESORDER.SALESMETHODTYPECODE
    from
        dbo.FINANCIALTRANSACTION as FT
    inner join
        dbo.CREDIT_EXT as EXT on EXT.ID = FT.ID
    left outer join
        dbo.SALESORDER on SALESORDER.REVENUEID = FT.PARENTID
    where
        FT.ID = @CREDITID;

    if @SALESMETHODTYPECODE is null begin
        select @SALESMETHODTYPECODE = SALESMETHODTYPECODE from dbo.SALESORDER where ID = @SALESORDERID;
    end

    select
        DOCUMENT.ID,
        DOCUMENT.TYPE,
        0 TEMPLATEPRINTORDER,    
        DOCUMENT.REPORTCATALOGID,
        null PROGRAMID,
        WORKSTATIONPRINTER.PRINTERNAME,
        WORKSTATIONPRINTER.SEQUENCE,
        DOCUMENT.TYPECODE TEMPLATETYPECODE,
        CREDITCARDPAYMENTMETHODDETAIL.ID CREDITCARDPAYMENTMETHODDETAILID,
        1 as ISMERCHANTCOPY,
        @SALESORDERID SALESORDERID,
        null DOCUMENTPRINTINGHISTORYID,
        CREDITPAYMENT.ID CREDITPAYMENTID,
        @CREDITID CREDITID,
        DOCUMENT.SEQUENCE DOCUMENTSEQUENCE,
        0 as SHOULDPRINTMERCHANTANDCUSTOMERCOPIES,
        DOCUMENTSVGTEMPLATE.TEMPLATE as SVGTEMPLATE
    from
        dbo.CREDITPAYMENT
    inner join
        dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = CREDITPAYMENT.REVENUEID
    inner join
        dbo.CREDITCARDPAYMENTMETHODDETAIL on REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
    outer apply
        dbo.DOCUMENT
    inner join
        dbo.PRINTERLIST on DOCUMENT.PRINTERLISTID = PRINTERLIST.ID
    inner join
        dbo.PRINTERLISTITEM on PRINTERLIST.ID = PRINTERLISTITEM.PRINTERLISTID
    inner join
        dbo.WORKSTATIONPRINTER on PRINTERLISTITEM.PRINTERNAME = WORKSTATIONPRINTER.PRINTERNAME
    left outer join
        dbo.DOCUMENTSVGTEMPLATE on DOCUMENT.ID = DOCUMENTSVGTEMPLATE.ID
    where
        CREDITPAYMENT.PAYMENTMETHODCODE = 2 and                    -- Credit card refund method

        CREDITPAYMENT.CREDITID = @CREDITID and
        DOCUMENT.TYPECODE = 6 and                
        WORKSTATIONPRINTER.WORKSTATIONID = @WORKSTATIONID and
        DOCUMENT.ISACTIVE = 1

    union
    select
        DOCUMENT.ID,
        DOCUMENT.TYPE,
        1 TEMPLATEPRINTORDER,    
        DOCUMENT.REPORTCATALOGID,
        null PROGRAMID,
        WORKSTATIONPRINTER.PRINTERNAME,
        WORKSTATIONPRINTER.SEQUENCE,
        DOCUMENT.TYPECODE TEMPLATETYPECODE,
        null CREDITCARDPAYMENTMETHODDETAILID,
        ISMERCHANTCOPY.ISMERCHANTCOPY,
        @SALESORDERID SALESORDERID,
        null DOCUMENTPRINTINGHISTORYID,
        CREDITPAYMENT.ID CREDITPAYMENTID,
        @CREDITID CREDITID,
        DOCUMENT.SEQUENCE DOCUMENTSEQUENCE,
        0 as SHOULDPRINTMERCHANTANDCUSTOMERCOPIES,
        DOCUMENTSVGTEMPLATE.TEMPLATE as SVGTEMPLATE
    from 
        dbo.DOCUMENT
    inner join
        dbo.PRINTERLIST on DOCUMENT.PRINTERLISTID = PRINTERLIST.ID
    inner join
        dbo.PRINTERLISTITEM on PRINTERLIST.ID = PRINTERLISTITEM.PRINTERLISTID
    inner join
        dbo.WORKSTATIONPRINTER on PRINTERLISTITEM.PRINTERNAME = WORKSTATIONPRINTER.PRINTERNAME
    left join
        dbo.CREDITPAYMENT on CREDITPAYMENT.CREDITID = @CREDITID and @SALESMETHODTYPECODE = 3
    left outer join
        dbo.DOCUMENTSVGTEMPLATE on DOCUMENT.ID = DOCUMENTSVGTEMPLATE.ID
    outer apply (
        select 0 as ISMERCHANTCOPY
        union all
        select 1 as ISMERCHANTCOPY
    ) as ISMERCHANTCOPY
    where
        DOCUMENT.TYPECODE = 5 and                
        WORKSTATIONPRINTER.WORKSTATIONID = @WORKSTATIONID and
        DOCUMENT.ISACTIVE = 1

    order by
        TEMPLATEPRINTORDER, DOCUMENTSEQUENCE, CREDITCARDPAYMENTMETHODDETAILID, CREDITPAYMENTID, ISMERCHANTCOPY desc, REPORTCATALOGID, WORKSTATIONPRINTER.SEQUENCE;

    return 0;