USP_DATAFORMTEMPLATE_EDIT_SALESORDERONLINESHIPPINGADDRESS

The save procedure used by the edit dataform template "SalesOrderOnlineShippingAddress Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CONSTITUENTID uniqueidentifier IN Constituent ID
@ADDRESSID uniqueidentifier IN Address ID
@RECIPIENTID uniqueidentifier IN Recipient ID
@SAMEASPATRON bit IN
@PHONE nvarchar(100) IN Phone Number
@EMAIL nvarchar(100) IN Email Address
@PHONEID uniqueidentifier IN
@EMAILID uniqueidentifier IN
@COUNTRYID uniqueidentifier IN Country ID
@STATEID uniqueidentifier IN State ID
@ADDRESSBLOCK nvarchar(150) IN Address block
@CITY nvarchar(50) IN City
@POSTCODE nvarchar(12) IN Post code
@TITLECODEID uniqueidentifier IN TITLECODEID
@FIRSTNAME nvarchar(50) IN Firstname
@KEYNAME nvarchar(100) IN Keyname

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SALESORDERONLINESHIPPINGADDRESS (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @CONSTITUENTID uniqueidentifier,
                        @ADDRESSID uniqueidentifier,
                        @RECIPIENTID uniqueidentifier,    
                        @SAMEASPATRON bit,
                        @PHONE nvarchar(100),
                        @EMAIL nvarchar(100),
                        @PHONEID uniqueidentifier,
                        @EMAILID uniqueidentifier,
                        @COUNTRYID uniqueidentifier,
                        @STATEID uniqueidentifier,
                        @ADDRESSBLOCK nvarchar(150),
                        @CITY nvarchar(50),
                        @POSTCODE nvarchar(12),
                        @TITLECODEID uniqueidentifier,
                        @FIRSTNAME nvarchar(50),
                        @KEYNAME nvarchar(100)
                    )
                    as
                        set nocount on;

                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                        if @SAMEASPATRON is null
                            set @SAMEASPATRON = 0

                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()

                        select @FIRSTNAME = coalesce(ltrim(rtrim(@FIRSTNAME)),'')
                        select @KEYNAME = coalesce(ltrim(rtrim(@KEYNAME)),'')

                        --If Address, Phone, Or Email IDs are passed in, we want to use them without question
                        --Remove conditions to create new contact artifacts if we have these passed in
                        --Starting with address
                        declare @PASSEDINADDRESSID uniqueidentifier = @ADDRESSID
                        if @ADDRESSID is not null and @ADDRESSID <> '00000000-0000-0000-0000-000000000000'
                        begin
                            set @ADDRESSBLOCK = ''

                            --We should only have an address ID if the constituent was logged in, we'll set recipient so we know we're dealing with the right guy
                            select @RECIPIENTID = [ADDRESS].[CONSTITUENTID]
                            from dbo.[ADDRESS]
                            where [ID] = @ADDRESSID
                        end

                        declare @PASSEDINPHONEID uniqueidentifier = @PHONEID
                        if @PHONEID is not null and @PHONEID <> '00000000-0000-0000-0000-000000000000'
                        begin
                            set @PHONE = ''
                        end

                        declare @PASSEDINEMAILID uniqueidentifier = @EMAILID
                        if @EMAILID is not null and @EMAILID <> '00000000-0000-0000-0000-000000000000'
                        begin
                            set @EMAIL = ''
                        end

                        begin try    
                            exec dbo.USP_WEBFORMS_CONSTITUENT_ADDRESSINFORMATION_AUTOMATCHORCREATE
                                @RECIPIENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @TITLECODEID,
                                @FIRSTNAME,
                                @KEYNAME,
                                @PHONE,
                                @EMAIL,
                                @COUNTRYID,
                                @STATEID,
                                @ADDRESSBLOCK,
                                @CITY,
                                @POSTCODE,
                                @ADDRESSID output,
                                @PHONEID output
                                @EMAILID output,
                                1, --@ORIGINCODE: Web Forms
                                null, --@INFOSOURCECODEID
                                null, --@ADDRESSTYPECODEID
                                null, --@EMAILADDRESSTYPECODEID
                                null --@PHONETYPECODEID

                            --If we passed in contact information, we still want to use that
                            set @ADDRESSID = isnull(@PASSEDINADDRESSID, @ADDRESSID)
                            set @PHONEID = isnull(@PASSEDINPHONEID, @PHONEID)
                            set @EMAILID = isnull(@PASSEDINEMAILID, @EMAILID)

                            --Set Origin Code, Revenue Source
                            declare @HASORIGINROW bit = 0;
                            declare @CURRENTSOURCECODEID uniqueidentifier;
                            declare @CURRENTREVENUEID uniqueidentifier;
                            declare @CURRENTORIGINCODE tinyint;

                            select 
                                @HASORIGINROW = 1,
                                @CURRENTSOURCECODEID = INFOSOURCECODEID,
                                @CURRENTREVENUEID = REVENUEID,
                                @CURRENTORIGINCODE = ORIGINCODE
                            from dbo.CONSTITUENTORIGINATION
                            where ID = @RECIPIENTID;

                            if @HASORIGINROW = 0
                                insert into dbo.CONSTITUENTORIGINATION(ID, ORIGINCODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                                values(@RECIPIENTID, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
                            else if @CURRENTSOURCECODEID is null and @CURRENTREVENUEID is null and (@CURRENTORIGINCODE is null or @CURRENTORIGINCODE = 0)
                            begin
                                update dbo.CONSTITUENTORIGINATION
                                set 
                                    ORIGINCODE = 1,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE
                                where ID = @RECIPIENTID;
                            end

                            update [dbo].[SALESORDER] 
                            set
                                [CONSTITUENTID] = @CONSTITUENTID,
                                [ADDRESSID] = @ADDRESSID,
                                [PHONEID] = @PHONEID,
                                [EMAILADDRESSID] = @EMAILID,
                                [RECIPIENTID] = @RECIPIENTID,
                                [SAMEASPATRON] = @SAMEASPATRON,
                                [CHANGEDBYID] = @CHANGEAGENTID,
                                [DATECHANGED] = @CURRENTDATE
                            where [ID] = @ID

                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0;