USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMEVENTREGISTRATION_FROMREGISTRANT
The save procedure used by the add dataform template "Sales Order Item Event Registration From Registrant Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@SALESORDERID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@REGISTRANTID | uniqueidentifier | IN | Registrant ID |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMEVENTREGISTRATION_FROMREGISTRANT
(
@ID uniqueidentifier = null output,
@SALESORDERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@REGISTRANTID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID, @EXCLUDEGROUPSALES = 1;
declare @EVENTID uniqueidentifier
declare @CONSTITUENTID uniqueidentifier
select
@EVENTID = [EVENTID],
@CONSTITUENTID = [CONSTITUENTID]
from dbo.[REGISTRANT]
where [ID] = @REGISTRANTID
--Build registrants to sell
declare @MAINEVENTID uniqueidentifier
select @MAINEVENTID = [EVENT].[MAINEVENTID]
from dbo.[EVENT]
where [EVENT].[ID] = @EVENTID
declare @ORDERREGISTRANTS xml
set @ORDERREGISTRANTS = (
select
cast(1 as bit) as [ISSELECTED],
[REGISTRANT].[ID] as [REGISTRANTID],
[BALANCE].[AMOUNT]
from dbo.[REGISTRANT]
cross apply (select dbo.UFN_EVENTREGISTRANT_GETBALANCE([REGISTRANT].[ID]) as [AMOUNT]) [BALANCE]
where
[REGISTRANT].[GUESTOFREGISTRANTID] is null and
(
[REGISTRANT].[CONSTITUENTID] = @CONSTITUENTID or
exists (
select 1
from dbo.[REGISTRANT] as [GUESTREGISTRANT]
where
[GUESTREGISTRANT].[GUESTOFREGISTRANTID] = [REGISTRANT].[ID] and
[GUESTREGISTRANT].[CONSTITUENTID] = @CONSTITUENTID
)
) and
exists (
select 1
from dbo.[EVENT]
where
[REGISTRANT].[EVENTID] = [EVENT].[ID] and
(
[EVENT].[ID] = @EVENTID or
[EVENT].[MAINEVENTID] = @EVENTID or
[EVENT].[MAINEVENTID] = @MAINEVENTID or
[EVENT].[ID] = @MAINEVENTID
)
)
for xml raw('ITEM'), type, elements, root('REGISTRATIONS'), binary base64
)
exec dbo.USP_SALESORDERITEMEVENTREGISTRATION_ADD @ID output, @SALESORDERID, @ORDERREGISTRANTS, @CURRENTDATE, @CHANGEAGENTID;
if @ID is null
set @ID = '00000000-0000-0000-0000-000000000000';
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0