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 |
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;