USP_DATAFORMTEMPLATE_EDIT_REGISTRATIONPACKAGE
The save procedure used by the edit dataform template "Registration Package Edit 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 |
@PRICES | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REGISTRATIONPACKAGE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@PRICES xml,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
begin try
declare @ALLPRICES table(
ID uniqueidentifier,
EVENTPRICEID uniqueidentifier,
SEQUENCE int
)
insert into @ALLPRICES
select
PRICES.ID,
PRICES.EVENTPRICEID,
PRICES.SEQUENCE
from
dbo.UFN_REGISTRATIONPACKAGEPRICE_GETPRICES_FROMITEMLISTXML(@PRICES) as PRICES
inner join dbo.EVENTPRICE on EVENTPRICE.ID = PRICES.EVENTPRICEID
where
dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENTPRICE.EVENTID) = 1
declare @NEXTSEQUENCE int = (select max(SEQUENCE) from @ALLPRICES) + 1
insert into @ALLPRICES
select
REGISTRATIONPACKAGEPRICE.ID,
REGISTRATIONPACKAGEPRICE.EVENTPRICEID,
REGISTRATIONPACKAGEPRICE.SEQUENCE
from
dbo.REGISTRATIONPACKAGEPRICE
inner join dbo.EVENTPRICE on EVENTPRICE.ID = REGISTRATIONPACKAGEPRICE.EVENTPRICEID
where
REGISTRATIONPACKAGEPRICE.REGISTRATIONPACKAGEID = @ID
and dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENTPRICE.EVENTID) = 0
set @PRICES = (
select ID, EVENTPRICEID, SEQUENCE
from @ALLPRICES
for xml raw('ITEM'),type,elements,root('PRICES'),BINARY BASE64);
exec dbo.USP_REGISTRATIONPACKAGEPRICE_VALIDATEPRICES @PRICES;
update
dbo.REGISTRATIONPACKAGE
set
NAME = @NAME,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
exec dbo.USP_REGISTRATIONPACKAGEPRICE_GETPRICES_UPDATEFROMXML @ID, @PRICES, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;