USP_PROGRAMDISCOUNT_ADD
Link a program and a discount
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@PROGRAMID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@DISCOUNTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_PROGRAMDISCOUNT_ADD
(
@ID uniqueidentifier = null output,
@PROGRAMID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@DISCOUNTID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @DISCOUNTGROUPID uniqueidentifier;
declare @DISCOUNTGROUPDETAILID uniqueidentifier;
declare @DISCOUNTTYPECODE tinyint;
declare @QUALIFYINGITEMTYPECODE tinyint;
declare @DISCOUNTITEMTYPECODE tinyint;
set @DISCOUNTGROUPID = @ID;
set @DISCOUNTGROUPDETAILID = newid();
select top 1
@DISCOUNTTYPECODE = DISCOUNTTYPECODE,
@QUALIFYINGITEMTYPECODE = QUALIFYINGITEMTYPECODE,
@DISCOUNTITEMTYPECODE = DISCOUNTITEMTYPECODE
from dbo.DISCOUNT
where ID = @DISCOUNTID
begin try
insert into dbo.DISCOUNTGROUP (
ID,
DISCOUNTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@DISCOUNTGROUPID,
@DISCOUNTID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
if @DISCOUNTITEMTYPECODE = 0
begin
insert into dbo.DISCOUNTGROUPDETAIL (
ID,
DISCOUNTGROUPID,
DISCOUNTEDITEM,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@DISCOUNTGROUPDETAILID,
@DISCOUNTGROUPID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
insert into dbo.DISCOUNTGROUPDETAILPROGRAM (
ID,
PROGRAMID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@DISCOUNTGROUPDETAILID,
@PROGRAMID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
if (@DISCOUNTTYPECODE = 1) and (@QUALIFYINGITEMTYPECODE = 0) --is a BOGO
begin
declare @UNDISCOUNTEDGROUPDETAILID uniqueidentifier;
set @UNDISCOUNTEDGROUPDETAILID = newid();
insert into dbo.DISCOUNTGROUPDETAIL (
ID,
DISCOUNTGROUPID,
DISCOUNTEDITEM,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@UNDISCOUNTEDGROUPDETAILID,
@DISCOUNTGROUPID,
0,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
insert into dbo.DISCOUNTGROUPDETAILPROGRAM (
ID,
PROGRAMID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@UNDISCOUNTEDGROUPDETAILID,
@PROGRAMID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
-- Update the DISCOUNT record to invalidate the cache for sales.
update dbo.DISCOUNT
set CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = getdate()
where ID = @DISCOUNTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0