USP_ORDERPAYMENT_PRELOAD_ADD

Returns parameters for the order payment form.

Parameters

Parameter Parameter Type Mode Description
@SALESORDERID uniqueidentifier IN
@BALANCE money INOUT
@CONSTITUENTID uniqueidentifier INOUT
@ADDRESS nvarchar(150) INOUT
@CITY nvarchar(50) INOUT
@STATEID uniqueidentifier INOUT
@POSTCODE nvarchar(12) INOUT
@SALESMETHODID uniqueidentifier INOUT
@SALESMETHODTYPECODE tinyint INOUT
@COUNTRYID uniqueidentifier INOUT

Definition

Copy


        CREATE procedure dbo.USP_ORDERPAYMENT_PRELOAD_ADD
            (
                @SALESORDERID uniqueidentifier,
                @BALANCE money = null output,
                @CONSTITUENTID uniqueidentifier = null output,
                @ADDRESS nvarchar(150) = null output,
                @CITY nvarchar(50) = null output,
                @STATEID uniqueidentifier = null output,
                @POSTCODE nvarchar(12) = null output,
                @SALESMETHODID uniqueidentifier = null output,
                @SALESMETHODTYPECODE tinyint = null output,
                @COUNTRYID uniqueidentifier = null output
            )
        as
        set nocount on;


            -- Confirm delivery method is set and is not blocked

            declare @DELIVERYMETHODID uniqueidentifier;

            select @DELIVERYMETHODID = DELIVERYMETHODID,
                @CONSTITUENTID = CONSTITUENTID,
                @SALESMETHODID = (select top 1 ID from dbo.SALESMETHOD where SALESMETHOD.TYPECODE = SALESORDER.SALESMETHODTYPECODE),
                @SALESMETHODTYPECODE = SALESMETHODTYPECODE
            from dbo.SALESORDER
            where SALESORDER.ID = @SALESORDERID;

            if @SALESMETHODTYPECODE in (0, 1)
            begin

                if @DELIVERYMETHODID is null
                    begin
                        raiserror('BBERR_DELIVERYMETHODREQUIRED', 13, 1);
                        return 1;
                    end

                if dbo.UFN_DELIVERYMETHOD_VALIDFORORDER(@DELIVERYMETHODID, @SALESORDERID) = 0
                    begin
                        raiserror('BBERR_INVALIDDELIVERYMETHOD', 13, 1);
                        return 1;
                    end

                -- Confirm required fields for delivery method are set

                -- We have to ensure the address actually has an address!

                if 0 = dbo.UFN_SALESORDER_VALIDATEDELIVERY(@SALESORDERID)
                begin
                    raiserror('BBERR_RECIPIENTINFOMISSING', 13, 1);
                    return 1;
                end

                --See if a membership on the order is invalid

                declare @MEMBERSHIPERRORCODE tinyint =  dbo.UFN_SALESORDER_EXISTSINVALIDMEMBERSHIP_CODE(@SALESORDERID)

                --Code 1: No primary member. Doesn't matter here... This won't affect pricing

                if @MEMBERSHIPERRORCODE = 2
                    raiserror('BBERR_MEMBERSHIPWITHINACTIVELEVEL', 13, 1);
                else if @MEMBERSHIPERRORCODE = 3
                    raiserror('BBERR_MEMBERSHIPWITHINACTIVETERM', 13, 1);
                else if @MEMBERSHIPERRORCODE = 4
                    raiserror('BBERR_MEMBERSHIP_INACTIVELEVELANDTERM', 13, 1);
            end

            -- Taking this out of the load because it raises the error even for security deposit payments.

            -- This can be added back in once security deposit has its own add form and preload.

            --else

            --begin

            --    if isnull((select PRICINGCODE from dbo.RESERVATION where ID = @SALESORDERID),0) = 1 and 

            --       dbo.UFN_RESERVATIONRATESCALE_ISAPPLIED(@SALESORDERID) = 0

            --    begin

            --        raiserror('BBERR_RESERVATIONNOTAPPLIED', 13, 1);

            --        return 1;

            --    end

            --end


            set @BALANCE = dbo.UFN_SALESORDER_GETAMOUNTDUE(@SALESORDERID);

            select @ADDRESS = ADDRESSBLOCK,
                @CITY = CITY,
                @STATEID = STATEID,
                @POSTCODE = POSTCODE,
        @COUNTRYID = COUNTRYID
            from dbo.ADDRESS
            where CONSTITUENTID = @CONSTITUENTID and ISPRIMARY = 1;

    if @COUNTRYID is null
            set @COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT()