USP_DATAFORMTEMPLATE_EDIT_DISCOUNTPROGRAM
The save procedure used by the edit dataform template "Discount Program 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. |
@PROGRAMID | uniqueidentifier | IN | Program |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DISCOUNTPROGRAM (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@PROGRAMID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null begin
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
end
declare @CURRENTDATE datetime = getdate();
declare @DISCOUNTID uniqueidentifier = (select DISCOUNTID from dbo.DISCOUNTGROUP where ID = @ID);
begin try
--Trigger a timestamp change on the discount group to prevent concurrency issues
update dbo.DISCOUNTGROUP set
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
update dbo.DISCOUNTGROUPDETAILPROGRAM set
PROGRAMID = @PROGRAMID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID in (
select DGDP.ID
from dbo.DISCOUNTGROUPDETAILPROGRAM DGDP
inner join dbo.DISCOUNTGROUPDETAIL DGD on DGD.ID = DGDP.ID
inner join dbo.DISCOUNTGROUP DG on DG.ID = DGD.DISCOUNTGROUPID
where DG.ID = @ID
);
-- Update the DISCOUNT record to invalidate the cache for sales.
update dbo.DISCOUNT
set CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where ID = @DISCOUNTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;