USP_DATAFORMTEMPLATE_EDIT_DISCOUNTGENERAL
The save procedure used by the edit dataform template "Discount General 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. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@DISCOUNTTYPECODE | tinyint | IN | Discount type code |
@APPLIESTOCODE | tinyint | IN | Applies to code |
@APPLICATIONTYPECODE | tinyint | IN | Selected for use |
@CALCULATIONTYPECODE | tinyint | IN | Calculation type |
@PERCENT | decimal(5, 2) | IN | Value |
@AMOUNT | money | IN | Value |
@LIMITDISCOUNTSPERORDER | bit | IN | Limit the number of times this discount may be applied |
@NUMBEROFDISCOUNTSPERORDER | int | IN | Uses allowed |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DISCOUNTGENERAL
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@DISCOUNTTYPECODE tinyint,
@APPLIESTOCODE tinyint,
@APPLICATIONTYPECODE tinyint,
@CALCULATIONTYPECODE tinyint,
@PERCENT decimal(5,2),
@AMOUNT money,
@LIMITDISCOUNTSPERORDER bit,
@NUMBEROFDISCOUNTSPERORDER int
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @APPLICATIONTYPECODE = 0 and exists(select 1 from dbo.DAILYSALEITEMDISCOUNT where DISCOUNTID = @ID)
raiserror('BBERR_DISCOUNT_IN_USE_DAILYSALEBUTTON',13,1)
if @CALCULATIONTYPECODE = 0
set @PERCENT = 0.0
else
set @AMOUNT = 0
if @APPLIESTOCODE = 0
begin
set @LIMITDISCOUNTSPERORDER = 0
set @NUMBEROFDISCOUNTSPERORDER = 1
end
if @APPLIESTOCODE = 1
begin
if @LIMITDISCOUNTSPERORDER = 0
set @NUMBEROFDISCOUNTSPERORDER = 1
end
begin try
if @DISCOUNTTYPECODE = 0
begin
-- Clone before updating, because these changes may affect discount amount calculations for old sales orders.
declare @CLONEID uniqueidentifier;
exec dbo.USP_DISCOUNT_CLONE @ID, @CLONEID output;
set @ID = @CLONEID;
if @APPLIESTOCODE = 1
begin
update dbo.DISCOUNT set
NAME = @NAME,
[DESCRIPTION] = @DESCRIPTION,
APPLICATIONTYPECODE = @APPLICATIONTYPECODE,
CALCULATIONTYPECODE = @CALCULATIONTYPECODE,
AMOUNT = 0,
[PERCENT] = 0,
LIMITDISCOUNTSPERORDER = @LIMITDISCOUNTSPERORDER,
NUMBEROFDISCOUNTSPERORDER = @NUMBEROFDISCOUNTSPERORDER,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
end
else
begin
update dbo.DISCOUNT set
NAME = @NAME,
[DESCRIPTION] = @DESCRIPTION,
APPLICATIONTYPECODE = @APPLICATIONTYPECODE,
CALCULATIONTYPECODE = @CALCULATIONTYPECODE,
AMOUNT = @AMOUNT,
[PERCENT] = @PERCENT,
LIMITDISCOUNTSPERORDER = @LIMITDISCOUNTSPERORDER,
NUMBEROFDISCOUNTSPERORDER = @NUMBEROFDISCOUNTSPERORDER,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
end
end
else
begin
update dbo.DISCOUNT set
NAME = @NAME,
[DESCRIPTION] = @DESCRIPTION,
APPLICATIONTYPECODE = @APPLICATIONTYPECODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
end
if @APPLICATIONTYPECODE<>2
exec dbo.USP_DISCOUNT_GETPROMOTIONALCODES_UPDATEFROMXML @ID, null, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;