USP_DATAFORMTEMPLATE_VIEW_ADVANCESALES

The load procedure used by the view dataform template "Advance sales view data form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SALESORDERID uniqueidentifier INOUT SALESORDERID
@CONSTITUENTID uniqueidentifier INOUT CONSTITUENTID
@ORDERSTATUSCODE tinyint INOUT Order status
@DELIVERYMETHODTEXT nvarchar(100) INOUT Method
@RECIPIENTNAME nvarchar(154) INOUT Recipient
@ITEMS xml INOUT ITEMS
@SUBTOTAL money INOUT Subtotal
@TAXES money INOUT Taxes
@TOTAL money INOUT Total
@TENDERED money INOUT Tendered
@CHANGEDUE money INOUT Change due
@BALANCE money INOUT Balance
@AVAILABLEPAYMENTMETHODS xml INOUT AVAILABLEPAYMENTMETHODS
@DELIVERYADDRESS nvarchar(300) INOUT DELIVERYADDRESS
@DELIVERYPHONENUMBER nvarchar(100) INOUT DELIVERYPHONENUMBER
@DELIVERYEMAILADDRESS UDT_EMAILADDRESS INOUT DELIVERYEMAILADDRESS
@MATCHFINDERONLINERECORDID int INOUT MATCHFINDERONLINERECORDID
@MEMBERID uniqueidentifier INOUT MEMBERID
@ORDERNUMBER nvarchar(10) INOUT ORDERNUMBER
@UNRESOLVEDORDERNOTEID uniqueidentifier INOUT Unresolved order sales order note ID
@PATRONHASMIDTERMUPGRADE bit INOUT PATRONHASMIDTERMUPGRADE
@CONSTITUENCYORDER xml INOUT CONSTITUENCYORDER
@SALESMETHODTYPECODE tinyint INOUT
@MEMBERSHIPID uniqueidentifier INOUT
@ISTAXEXEMPT bit INOUT

Definition

Copy

            CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_ADVANCESALES
            (
                @ID uniqueidentifier,
                @DATALOADED bit = 0 output,
                @CURRENTAPPUSERID uniqueidentifier = null,
                @SALESORDERID uniqueidentifier = null output,
                @CONSTITUENTID uniqueidentifier = null output,
                @ORDERSTATUSCODE tinyint = null output,
                @DELIVERYMETHODTEXT nvarchar(100) = null output,
                @RECIPIENTNAME nvarchar(154) = null output,
                @ITEMS xml = null output,
                @SUBTOTAL money = null output,
                @TAXES money = null output,
                @TOTAL money = null output,
                @TENDERED money = null output,
                @CHANGEDUE money = null output,
                @BALANCE money = null output,
                @AVAILABLEPAYMENTMETHODS xml = null output,
                @DELIVERYADDRESS nvarchar(300) = null output,
                @DELIVERYPHONENUMBER nvarchar(100) = null output,
                @DELIVERYEMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
                @MATCHFINDERONLINERECORDID int = null output,
                @MEMBERID uniqueidentifier = null output,
                @ORDERNUMBER nvarchar(10) = null output,
                @UNRESOLVEDORDERNOTEID uniqueidentifier = null output,
                @PATRONHASMIDTERMUPGRADE bit = null output,
                @CONSTITUENCYORDER xml = null output,
                @SALESMETHODTYPECODE tinyint = null output,
                @MEMBERSHIPID uniqueidentifier = null output,
                @ISTAXEXEMPT bit = null output
            )
            as
                set nocount on;

                set @DATALOADED = 0;

                set @MATCHFINDERONLINERECORDID = 0;

                declare @DELIVERYMETHODID uniqueidentifier;

                declare @DELIVERYADDRESSID uniqueidentifier;
                declare @DELIVERYPHONENUMBERID uniqueidentifier;
                declare @DELIVERYEMAILADDRESSID uniqueidentifier;

                declare @RECIPIENTID uniqueidentifier;

                select 
                    @DATALOADED = 1,
                    @CONSTITUENTID = CONSTITUENTID,
                    @ORDERSTATUSCODE = STATUSCODE,
                    @DELIVERYMETHODID = DELIVERYMETHODID,
                    @RECIPIENTID = RECIPIENTID,
                    @DELIVERYADDRESSID = ADDRESSID,
                    @DELIVERYPHONENUMBERID = PHONEID,
                    @DELIVERYEMAILADDRESS = EMAILADDRESSID,
                    @ORDERNUMBER = SEQUENCEID,
                    @SALESMETHODTYPECODE = SALESMETHODTYPECODE
                from dbo.SALESORDER
                where ID = @ID

                if @SALESMETHODTYPECODE = 3
                begin
                    raiserror('You cannot open a group sales order from here.  Please select the Sales Order Page to open this record or create a Group Sales Reservations query for other browsing options.', 13, 1);
                    return 0;
                end

                declare @CHANGEAGENTID uniqueidentifier
                exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate();

                if @ORDERSTATUSCODE = 6
                    exec dbo.USP_RESERVEDORDERRECALCULATE_UPDATE @ID, @CHANGEAGENTID;

                if @SALESMETHODTYPECODE = 2
                begin
                    select @UNRESOLVEDORDERNOTEID = [ID]
                    from dbo.[SALESORDERNOTE]
                    where [SALESORDERID] = @ID

                    --Set delivery method if it has not been
                    if @DELIVERYMETHODID is null and @ORDERSTATUSCODE = 7
                    begin
                        declare @DEFAULTDELIVERYMETHODID uniqueidentifier
                        select @DEFAULTDELIVERYMETHODID = [SALESMETHODDELIVERYMETHOD].[DELIVERYMETHODID]
                        from dbo.[SALESMETHODDELIVERYMETHOD]
                        inner join dbo.[SALESMETHOD]
                            on [SALESMETHODDELIVERYMETHOD].[SALESMETHODID] = [SALESMETHOD].[ID]
                        where 
                            [SALESMETHOD].[TYPECODE] = (select [SALESMETHODTYPECODE] from dbo.[SALESORDER] where [ID] = @ID) and
                            [SALESMETHODDELIVERYMETHOD].[ISDEFAULT] = 1

                        update dbo.[SALESORDER]
                        set 
                            [DELIVERYMETHODID] = @DEFAULTDELIVERYMETHODID,
                            [CHANGEDBYID] = @CHANGEAGENTID,
                            [DATECHANGED] = @CURRENTDATE
                        where [ID] = @ID

                        set @DELIVERYMETHODID = @DEFAULTDELIVERYMETHODID
                    end
                end

                set @DELIVERYMETHODTEXT = (select NAME from dbo.DELIVERYMETHOD where ID = @DELIVERYMETHODID);

                set @DELIVERYADDRESS = (select DESCRIPTION from dbo.ADDRESS where ID = @DELIVERYADDRESSID);
                set @DELIVERYPHONENUMBER = (select NUMBER from dbo.PHONE where ID = @DELIVERYPHONENUMBERID);
                set @DELIVERYEMAILADDRESS = (select EMAILADDRESS from dbo.EMAILADDRESS where ID = @DELIVERYEMAILADDRESSID);

                set @RECIPIENTNAME = (select NAME from dbo.CONSTITUENT where ID = @RECIPIENTID);

                exec dbo.USP_DATAFORMTEMPLATE_VIEW_DAILYSALESORDER_2 
                    @ID
                    null
                    @ITEMS output
                    @SUBTOTAL output
                    @TAXES output
                    @TOTAL output
                    @TENDERED output
                    @CHANGEDUE output
                    @BALANCE output,
                    @SALESORDERID output,
                    @AVAILABLEPAYMENTMETHODS output,
                    @CONSTITUENTID output,
                    @ISTAXEXEMPT = @ISTAXEXEMPT output;

                set @PATRONHASMIDTERMUPGRADE = dbo.UFN_SALESORDER_PATRONHASUPGRADE(@ID);

                set @CONSTITUENCYORDER = (
                    select 
                        V_CONSTITUENCYDISPLAYORDER.DESCRIPTION,
                        V_CONSTITUENCYDISPLAYORDER.SEQUENCE,
                        V_CONSTITUENCYDISPLAYORDER.ISSYSTEM
                    from
                        dbo.V_CONSTITUENCYDISPLAYORDER
                        inner join dbo.CONSTITUENCYDEFINITION
                            on CONSTITUENCYDEFINITION.ID = V_CONSTITUENCYDISPLAYORDER.ID
                    where
                        CONSTITUENCYDEFINITION.ISACTIVE = 1
                    order by
                        V_CONSTITUENCYDISPLAYORDER.SEQUENCE
                    for xml raw ('ITEM'), type, elements, root('CONSTITUENCYORDER'), binary base64
                )

                return 0;