USP_DATALIST_WORKSTATIONCASHDRAWERTOOPEN

Returns whether the cash drawer should open for a workstation and sales order payments.

Parameters

Parameter Parameter Type Mode Description
@SALESORDERID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CREDITID uniqueidentifier IN Credit
@WORKSTATIONID uniqueidentifier IN Workstation
@WORKSTATIONMACHINENAME nvarchar(255) IN Workstation machine name

Definition

Copy


CREATE procedure dbo.USP_DATALIST_WORKSTATIONCASHDRAWERTOOPEN(
    @SALESORDERID uniqueidentifier,
    @CREDITID uniqueidentifier = null,
    @WORKSTATIONID uniqueidentifier = null,
    @WORKSTATIONMACHINENAME nvarchar(255) = null
    )
as
    set nocount on;

    if @WORKSTATIONID is null
    begin
        set @WORKSTATIONID = dbo.UFN_WORKSTATION_GETIDBYMACHINENAME(@WORKSTATIONMACHINENAME);
    end

    if @CREDITID is null
    begin
        if exists(
            select 1
            from dbo.SALESORDERPAYMENT
            inner join dbo.REVENUEPAYMENTMETHOD
                on REVENUEPAYMENTMETHOD.REVENUEID = SALESORDERPAYMENT.PAYMENTID
            left outer join dbo.OTHERPAYMENTMETHODDETAIL 
                on OTHERPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
            inner join dbo.UFN_WORKSTATION_GETCASHDRAWERPAYMENTMETHODS(@WORKSTATIONID) as WORKSTATIONPAYMENTMETHOD
                on 
                    REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = WORKSTATIONPAYMENTMETHOD.PAYMENTTYPECODE and
                    (
                        --Other payment method special handling -- not just on matching on typecode

                        REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE <> 10 or
                        WORKSTATIONPAYMENTMETHOD.PAYMENTMETHODID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID
                    )
            where [SALESORDERPAYMENT].[SALESORDERID] = @SALESORDERID
        )
        begin
            select 
                1 OPENDRAWER,
                WORKSTATIONPRINTER.PRINTERNAME,
                WORKSTATION.CASHDRAWEROPENCOMMAND
            from dbo.WORKSTATION 
            left outer join dbo.WORKSTATIONPRINTER
                on WORKSTATION.CASHDRAWERPRINTERID = WORKSTATIONPRINTER.ID    
            where WORKSTATION.ID = @WORKSTATIONID
        end
        else
        begin
            select 
                0 OPENDRAWER,
                '' PRINTERNAME,
                '' CASHDRAWEROPENCOMMAND
        end
    end
    else
    begin
        if exists(
            select 1
            from dbo.CREDITPAYMENT
            inner join dbo.UFN_WORKSTATION_GETCASHDRAWERPAYMENTMETHODS(@WORKSTATIONID) as WORKSTATIONPAYMENTMETHOD
                on 
                    CREDITPAYMENT.PAYMENTMETHODCODE = WORKSTATIONPAYMENTMETHOD.PAYMENTTYPECODE and
                    (
                        --Other payment method special handling -- not just on matching on typecode

                        CREDITPAYMENT.PAYMENTMETHODCODE <> 10 or
                        WORKSTATIONPAYMENTMETHOD.PAYMENTMETHODID = CREDITPAYMENT.OTHERPAYMENTMETHODCODEID
                    )
            where [CREDITPAYMENT].[CREDITID] = @CREDITID
        )    
        begin
            select 
                1 OPENDRAWER,
                WORKSTATIONPRINTER.PRINTERNAME,
                WORKSTATION.CASHDRAWEROPENCOMMAND
            from dbo.WORKSTATION 
            left outer join dbo.WORKSTATIONPRINTER
                on WORKSTATION.CASHDRAWERPRINTERID = WORKSTATIONPRINTER.ID
            where WORKSTATION.ID = @WORKSTATIONID
        end
        else
        begin
            select 
                0 OPENDRAWER,
                '' PRINTERNAME,
                '' CASHDRAWEROPENCOMMAND
        end
    end