USP_DATAFORMTEMPLATE_EDIT_BATCHEVENTREGISTRANTBATCHROW_4

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SEQUENCE int IN
@EVENTID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN
@DATEPURCHASED datetime IN
@EVENTPRICEID uniqueidentifier IN
@REGISTRANTSTATUSCODE tinyint IN
@WAIVEBENEFITS bit IN
@QUANTITY int IN
@GUESTS xml IN
@REGISTRANTLOOKUPID nvarchar(100) IN
@DESIGNATIONID uniqueidentifier IN
@REGISTRATIONTYPECODE tinyint IN
@REGISTRATIONSTATUSCODE tinyint IN
@REGISTRATIONATTENDEDCODE tinyint IN
@EVENT_IMPORTLOOKUPID nvarchar(100) IN
@OPPORTUNITYID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BATCHEVENTREGISTRANTBATCHROW_4
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @SEQUENCE int,
  @EVENTID uniqueidentifier,
  @CONSTITUENTID uniqueidentifier,
  @DATEPURCHASED datetime,
  @EVENTPRICEID uniqueidentifier,
  @REGISTRANTSTATUSCODE tinyint,
  @WAIVEBENEFITS bit,
  @QUANTITY int,
  @GUESTS xml,
  @REGISTRANTLOOKUPID nvarchar(100),
  @DESIGNATIONID uniqueidentifier,
  @REGISTRATIONTYPECODE tinyint,
  @REGISTRATIONSTATUSCODE tinyint ,
  @REGISTRATIONATTENDEDCODE tinyint,
  @EVENT_IMPORTLOOKUPID nvarchar(100),
  @OPPORTUNITYID uniqueidentifier
)
as
set nocount on;

  declare @CURRENTDATE datetime;

  if @CHANGEAGENTID is null
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

  set @CURRENTDATE = getdate();

  begin try
    update dbo.BATCHEVENTREGISTRANT
    set
      [SEQUENCE] = @SEQUENCE,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE,
      [EVENTID] = @EVENTID,
      [CONSTITUENTID] = @CONSTITUENTID,
      [DATEPURCHASED] = @DATEPURCHASED,
      [EVENTPRICEID] = @EVENTPRICEID,
      [REGISTRANTSTATUSCODE] = coalesce(@REGISTRANTSTATUSCODE, 0),
      [WAIVEBENEFITS] = coalesce(@WAIVEBENEFITS, 0),
      [QUANTITY] = coalesce(@QUANTITY, 1),
      [REGISTRANTLOOKUPID] = coalesce(@REGISTRANTLOOKUPID,''),
      [DESIGNATIONID] = @DESIGNATIONID,
      [ISWALKIN] = ISNULL(@REGISTRATIONTYPECODE,0),
      [REGISTRATIONSTATUSCODE] =
        case @REGISTRATIONTYPECODE
          when 1 then 0 --Walkin = registered

          else ISNULL(@REGISTRATIONSTATUSCODE,0)
        end,
      [REGISTRATIONATTENDEDCODE] =
        case
          when @REGISTRATIONTYPECODE = 1 then 1 --Walkin then attended

          when @REGISTRATIONSTATUSCODE in (1,2) then 2 --Will not attend or canceled then not attended

          else ISNULL(@REGISTRATIONATTENDEDCODE,0)
        end,
      [OPPORTUNITYID] = @OPPORTUNITYID
    where ID = @ID;

    declare @UNKNOWNGUESTWELLKNOWNGUID uniqueidentifier;
    set @UNKNOWNGUESTWELLKNOWNGUID = 'C776DAB5-65B2-4258-ADAE-AE396D28E251'; --Well-known GUID for unknown guest


    declare @GUESTTABLE table
    (
      ATTENDED bit,
      CONSTITUENTID uniqueidentifier,
      ID uniqueidentifier,
      WAIVEREGISTRATIONFEE bit
    );

    insert into @GUESTTABLE
    (
      ATTENDED,
      CONSTITUENTID,
      ID,
      WAIVEREGISTRATIONFEE
    )
    select
      ATTENDED,
      CONSTITUENTID,
      ID,
      WAIVEREGISTRATIONFEE
    from dbo.UFN_BATCHEVENTREGISTRANT_GETGUESTS_FROMITEMLISTXML(@GUESTS);

    update @GUESTTABLE
    set CONSTITUENTID = null
    where CONSTITUENTID = @UNKNOWNGUESTWELLKNOWNGUID;

    set @GUESTS =
    (
      select
        [ATTENDED],
        [CONSTITUENTID],
        [ID],
        [WAIVEREGISTRATIONFEE]
      from @GUESTTABLE
      for xml raw('ITEM'),type,elements,root('GUESTS'),BINARY BASE64
    );

    exec dbo.USP_BATCHEVENTREGISTRANT_GETGUESTS_UPDATEFROMXML @ID, @GUESTS, @CHANGEAGENTID;
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;