USP_DATALIST_GROUPSALESORDERDOCUMENTSTOPRINT

Returns a list of sales documents and prioritized printers to print for a group sales order payment.

Parameters

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

Definition

Copy


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

    declare @WORKSTATIONID uniqueidentifier
    select top(1)
        @WORKSTATIONID = ID 
    from dbo.WORKSTATION 
    where (@WORKSTATIONMACHINENAME = MACHINENAME) 
        or 
        (@WORKSTATIONMACHINENAME = 
            (
                case when charindex('.', MACHINENAME) > 1
                then left(MACHINENAME, charindex('.', MACHINENAME) -1)
                end
            )
        )

    select
        DOCUMENT.ID,
        DOCUMENT.TYPE,
        0 TEMPLATEPRINTORDER,    
        DOCUMENT.REPORTCATALOGID,
        null PROGRAMID,
        WORKSTATIONPRINTER.PRINTERNAME,
        WORKSTATIONPRINTER.SEQUENCE,
        DOCUMENT.TYPECODE TEMPLATETYPECODE,
        CREDITCARDPAYMENTMETHODDETAIL.ID CREDITCARDPAYMENTMETHODDETAILID,
        1 ISMERCHANTCOPY,
        SALESORDERPAYMENT.SALESORDERID SALESORDERID,
        null DOCUMENTPRINTINGHISTORYID,
        null CREDITPAYMENTID,
        null CREDITID,
        DOCUMENT.SEQUENCE DOCUMENTSEQUENCE,
        0 as SHOULDPRINTMERCHANTANDCUSTOMERCOPIES,
        DOCUMENTSVGTEMPLATE.TEMPLATE as SVGTEMPLATE
    from    
    (
        select ID, SALESORDERID, PAYMENTID, PAYMENTDATEWITHTIMEOFFSET, AMOUNT
        from dbo.SALESORDERPAYMENT
        union all 
        select ID, RESERVATIONID as SALESORDERID, PAYMENTID, PAYMENTDATEWITHTIMEOFFSET, AMOUNT
        from dbo.RESERVATIONSECURITYDEPOSITPAYMENT
    ) as SALESORDERPAYMENT 
    inner join dbo.REVENUE on
        SALESORDERPAYMENT.PAYMENTID = REVENUE.ID
    inner join dbo.REVENUEPAYMENTMETHOD on 
        REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID
    inner join dbo.CREDITCARDPAYMENTMETHODDETAIL on
            REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and
            CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
    cross join 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
        DOCUMENT.TYPECODE = 2 and
        SALESORDERPAYMENT.PAYMENTID = @REVENUEID and
        WORKSTATIONPRINTER.WORKSTATIONID = @WORKSTATIONID and
        DOCUMENT.ISACTIVE = 1 and
        DOCUMENT.PRINTFORGROUPSALES = 1

    union

    select
        DOCUMENT.ID,
        DOCUMENT.TYPE,
        0 TEMPLATEPRINTORDER,    
        DOCUMENT.REPORTCATALOGID,
        null PROGRAMID,
        WORKSTATIONPRINTER.PRINTERNAME,
        WORKSTATIONPRINTER.SEQUENCE,
        DOCUMENT.TYPECODE TEMPLATETYPECODE,
        CREDITCARDPAYMENTMETHODDETAIL.ID CREDITCARDPAYMENTMETHODDETAILID,
        0 ISMERCHANTCOPY,
        SALESORDERPAYMENT.SALESORDERID SALESORDERID,
        null DOCUMENTPRINTINGHISTORYID,
        null CREDITPAYMENTID,
        null CREDITID,
        DOCUMENT.SEQUENCE DOCUMENTSEQUENCE,
        0 as SHOULDPRINTMERCHANTANDCUSTOMERCOPIES,
        DOCUMENTSVGTEMPLATE.TEMPLATE as SVGTEMPLATE
    from    
    (select ID, SALESORDERID, PAYMENTID, PAYMENTDATEWITHTIMEOFFSET, AMOUNT, 0 as ISSECURITYDEPOSITPAYMENT
                    from dbo.SALESORDERPAYMENT
                union all 
                select ID, RESERVATIONID as SALESORDERID, PAYMENTID, PAYMENTDATEWITHTIMEOFFSET, AMOUNT, 1 as ISSECURITYDEPOSITPAYMENT
                    from dbo.RESERVATIONSECURITYDEPOSITPAYMENT
    ) as SALESORDERPAYMENT
    inner join dbo.REVENUE on SALESORDERPAYMENT.PAYMENTID = REVENUE.ID
    inner join dbo.REVENUEPAYMENTMETHOD on REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID
    left join dbo.CREDITCARDPAYMENTMETHODDETAIL on
            REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and
            CREDITCARDPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID,
    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
        (DOCUMENT.TYPECODE = 1 and SALESORDERPAYMENT.ISSECURITYDEPOSITPAYMENT = 0) and
        SALESORDERPAYMENT.PAYMENTID = @REVENUEID and
        WORKSTATIONPRINTER.WORKSTATIONID = @WORKSTATIONID and
        DOCUMENT.ISACTIVE = 1 and
        DOCUMENT.PRINTFORGROUPSALES = 1
    order by
        TEMPLATEPRINTORDER, DOCUMENTSEQUENCE, CREDITCARDPAYMENTMETHODDETAILID, ISMERCHANTCOPY desc, REPORTCATALOGID, WORKSTATIONPRINTER.SEQUENCE