USP_PROGRAMDISCOUNTDELETE_DISCOUNTGROUP
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_PROGRAMDISCOUNTDELETE_DISCOUNTGROUP
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if not exists (
select DISCOUNTGROUPDETAILPROGRAM.PROGRAMID
from dbo.DISCOUNTGROUPDETAILPROGRAM
inner join dbo.DISCOUNTGROUPDETAIL on DISCOUNTGROUPDETAIL.ID = DISCOUNTGROUPDETAILPROGRAM.ID
where DISCOUNTGROUPDETAIL.DISCOUNTGROUPID = @ID
)
begin
raiserror('BBERR_NOTAPROGRAMDISCOUNT', 13, 1);
return 1;
end
declare @DISCOUNTID uniqueidentifier;
declare @PROGRAMID uniqueidentifier;
select
@DISCOUNTID = DISCOUNTGROUP.DISCOUNTID,
@PROGRAMID = DISCOUNTGROUPDETAILPROGRAM.PROGRAMID
from dbo.DISCOUNTGROUP
inner join dbo.DISCOUNTGROUPDETAIL on DISCOUNTGROUPDETAIL.DISCOUNTGROUPID = DISCOUNTGROUP.ID
inner join dbo.DISCOUNTGROUPDETAILPROGRAM on DISCOUNTGROUPDETAILPROGRAM.ID = DISCOUNTGROUPDETAIL.ID
where DISCOUNTGROUP.ID = @ID;
declare @CLONEID uniqueidentifier;
exec dbo.USP_DISCOUNT_CLONE @DISCOUNTID, @CLONEID output;
-- delete cloned version instead.
set @ID = (
select top 1 DISCOUNTGROUP.ID
from dbo.DISCOUNTGROUP
inner join dbo.DISCOUNTGROUPDETAIL on DISCOUNTGROUPDETAIL.DISCOUNTGROUPID = DISCOUNTGROUP.ID
inner join dbo.DISCOUNTGROUPDETAILPROGRAM on DISCOUNTGROUPDETAILPROGRAM.ID = DISCOUNTGROUPDETAIL.ID
where DISCOUNTGROUP.DISCOUNTID = @CLONEID
and DISCOUNTGROUPDETAILPROGRAM.PROGRAMID = @PROGRAMID
);
exec USP_DISCOUNTGROUP_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
-- Update the DISCOUNT record to invalidate the cache for sales.
update dbo.DISCOUNT
set CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = getdate()
where ID = @DISCOUNTID;
return 0;
end