USP_DATAFORMTEMPLATE_EDITSAVE_DELIVERYMETHOD
The save procedure used by the edit dataform template "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. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@NAMEREQUIRED | bit | IN | Require name |
@ADDRESSREQUIRED | bit | IN | Require address |
@PHONEREQUIRED | bit | IN | Require phone number |
@EMAILREQUIRED | bit | IN | Require e-mail address |
@BLOCKDELIVERY | bit | IN | Block this delivery type |
@BLOCKTIMEVALUE | smallint | IN | Block this delivery time |
@BLOCKTIMEUNITCODE | tinyint | IN | Unit of time |
@PRINTCODE | tinyint | IN | Print sales documents |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITSAVE_DELIVERYMETHOD
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@NAMEREQUIRED bit,
@ADDRESSREQUIRED bit,
@PHONEREQUIRED bit,
@EMAILREQUIRED bit,
@BLOCKDELIVERY bit,
@BLOCKTIMEVALUE smallint,
@BLOCKTIMEUNITCODE tinyint,
@PRINTCODE tinyint
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
if
@PRINTCODE = 2 and
exists (
select 1
from dbo.SALESMETHODDELIVERYMETHOD
inner join dbo.SALESMETHOD
on SALESMETHODDELIVERYMETHOD.SALESMETHODID = SALESMETHOD.ID
where
DELIVERYMETHODID = @ID and
SALESMETHOD.TYPECODE in (0,1)
)
begin
raiserror('BBERR_DELIVERYMETHOD_INVALIDSALESMETHOD_PRINTATHOME', 13, 1);
end
else if
@PRINTCODE = 2 and
exists (
select 1
from dbo.DOCUMENTPRINTINGRULE
where DELIVERYMETHODID = @ID
)
begin
raiserror('BBERR_DELIVERYMETHOD_SALESDOCUMENTRULES_PRINTATHOME', 13, 1);
end
--Don't count on the UI to set this. Print at home requires an e-mail address.
if @PRINTCODE = 2
set @EMAILREQUIRED = 1
update
dbo.DELIVERYMETHOD
set
NAME = @NAME,
NAMEREQUIRED = @NAMEREQUIRED,
ADDRESSREQUIRED = @ADDRESSREQUIRED,
PHONEREQUIRED = @PHONEREQUIRED,
EMAILREQUIRED = @EMAILREQUIRED,
BLOCKDELIVERY = @BLOCKDELIVERY,
BLOCKTIMEVALUE = @BLOCKTIMEVALUE,
BLOCKTIMEUNITCODE = @BLOCKTIMEUNITCODE,
PRINTCODE = @PRINTCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;