USP_DATAFORMTEMPLATE_EDIT_PROGRAMGROUP
The save procedure used by the edit dataform template "Program Group 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 |
@USESELECTION | bit | IN | Get programs from selection |
@IDSETREGISTERID | uniqueidentifier | IN | Selection |
@PROGRAMS | xml | IN | Programs |
@PRICES | xml | IN | Prices |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PROGRAMGROUP (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@USESELECTION bit,
@IDSETREGISTERID uniqueidentifier,
@PROGRAMS xml,
@PRICES xml
)
as
set nocount on;
if @CHANGEAGENTID is null begin
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
end
declare @CURRENTDATE datetime = getdate();
declare @COMBINATIONID uniqueidentifier;
select @COMBINATIONID = COMBINATIONID from dbo.PROGRAMGROUP where ID = @ID;
begin try
if dbo.UFN_COMBINATION_HASONLINEAVAILABILITY(@COMBINATIONID) = 1 and (
@USESELECTION = 1
or (select count(*) from dbo.UFN_PROGRAMGROUP_GETPROGRAMS_FROMITEMLISTXML(@PROGRAMS)) > 1
) begin
raiserror('BBERR_PROGRAMGROUP_ONLYONEPROGRAMALLOWED', 13, 1);
end
update dbo.PROGRAMGROUP set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
IDSETREGISTERID = case @USESELECTION when 1 then @IDSETREGISTERID else null end,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
-- Update into program group programs
if @USESELECTION = 1 and @IDSETREGISTERID is not null begin
-- User choose the selection, so delete any manually input programs in the program group
declare @contextCache varbinary(128) = CONTEXT_INFO();
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.PROGRAMGROUPPROGRAM
where PROGRAMGROUPID = @ID;
/* reset CONTEXT_INFO to previous value */
if not @contextCache is null begin
set CONTEXT_INFO @contextCache;
end
end else begin
-- Update the programs in the program group
exec dbo.USP_PROGRAMGROUP_GETPROGRAMS_UPDATEFROMXML @ID, @PROGRAMS, @CHANGEAGENTID, @CURRENTDATE;
end
-- Update into program group price
exec dbo.USP_PROGRAMGROUP_GETPRICES_UPDATEFROMXML @ID, @PRICES, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;