USP_DATAFORMTEMPLATE_EDIT_ORDERDELIVERYMETHOD
The save procedure used by the edit dataform template "Order Delivery Method Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@DELIVERYMETHODID | uniqueidentifier | IN | Method |
@RECIPIENTID | uniqueidentifier | IN | Recipient |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ADDRESSID | uniqueidentifier | IN | Address |
@PHONEID | uniqueidentifier | IN | Phone number |
@EMAILADDRESSID | uniqueidentifier | IN | Email address |
@SAMEASPATRON | bit | IN | Use patron primary information |
@CONSTITUENTSELECTED | bit | IN | Constituent Selected |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ORDERDELIVERYMETHOD
(
@ID uniqueidentifier,
@DELIVERYMETHODID uniqueidentifier,
@RECIPIENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@ADDRESSID uniqueidentifier,
@PHONEID uniqueidentifier,
@EMAILADDRESSID uniqueidentifier,
@SAMEASPATRON bit,
@CONSTITUENTSELECTED bit
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @ID, @EXCLUDEGROUPSALES = 1;
-- validate required fields
declare @ADDRESSREQUIRED bit
declare @PHONEREQUIRED bit
declare @EMAILREQUIRED bit
select
@ADDRESSREQUIRED = ADDRESSREQUIRED,
@PHONEREQUIRED = PHONEREQUIRED,
@EMAILREQUIRED = EMAILREQUIRED
from dbo.DELIVERYMETHOD where ID = @DELIVERYMETHODID
if @ADDRESSID is null and @ADDRESSREQUIRED = 1 raiserror('ADDRESSMISSING', 13, 1);
if @PHONEID is null and @PHONEREQUIRED = 1 raiserror('PHONEMISSING', 13, 1);
if @EMAILADDRESSID is null and @EMAILREQUIRED = 1 raiserror('EMAILMISSING', 13, 1);
-- validate address for completeness
declare @ADDRESSBLOCK nvarchar(150)
declare @CITY nvarchar(50)
declare @STATEID uniqueidentifier
declare @POSTCODE nvarchar(12)
if @ADDRESSID is not null and @ADDRESSREQUIRED = 1
begin
select
@ADDRESSBLOCK = ADDRESSBLOCK,
@CITY = CITY,
@STATEID = STATEID,
@POSTCODE = POSTCODE
from dbo.ADDRESS where ID = @ADDRESSID
if @ADDRESSBLOCK is null or @ADDRESSBLOCK = '' or @CITY is null or @CITY = '' or @STATEID is null or @POSTCODE is null or @POSTCODE = ''
raiserror('ADDRESSINVALID', 13, 1)
end
/* REMOVING - DON'T NEED
declare @CONSTITUENTPHONEID uniqueidentifier;
declare @CONSTITUENTEMAILID uniqueidentifier;
declare @CONSTITUENTADDRESSID uniqueidentifier;
declare @CONSTITUENTID uniqueidentifier;
select
@CONSTITUENTPHONEID = P.ID,
@CONSTITUENTADDRESSID = A.ID,
@CONSTITUENTEMAILID = E.ID,
@CONSTITUENTID = S.CONSTITUENTID
from dbo.SALESORDER as S
left join dbo.PHONE as P on S.CONSTITUENTID = P.CONSTITUENTID
left join dbo.ADDRESS as A on S.CONSTITUENTID = A.CONSTITUENTID
left join dbo.EMAILADDRESS as E on S.CONSTITUENTID = E.CONSTITUENTID
where S.ID = @ID;
*/
if (select CONSTITUENTID from dbo.SALESORDER where ID = @ID) is null and @SAMEASPATRON = 1
begin
update dbo.SALESORDER
set
CONSTITUENTID = @RECIPIENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
end
update dbo.SALESORDER
set
DELIVERYMETHODID = @DELIVERYMETHODID,
RECIPIENTID = @RECIPIENTID,
ADDRESSID = @ADDRESSID,
PHONEID = @PHONEID,
EMAILADDRESSID = @EMAILADDRESSID,
SAMEASPATRON = @SAMEASPATRON,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
exec dbo.USP_SALESORDER_CALCULATEFEES @ID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATETAXES @ID, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0