USP_UPDATEEVENTPREFERENCE

Parameters

Parameter Parameter Type Mode Description
@PREFERENCEXML xml IN
@REGISTRANTID uniqueidentifier IN
@CHANGEDATE datetime IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE PROCEDURE dbo.USP_UPDATEEVENTPREFERENCE
(
    @PREFERENCEXML as xml,
    @REGISTRANTID as uniqueIdentifier,
    @CHANGEDATE as datetime,
    @CHANGEAGENTID as uniqueidentifier 
)
as
set nocount on;
begin

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

    declare @PREFERENCEOPTIONS table
    (
        ID uniqueidentifier default newid(),
        PREFERENCEGROUPID  uniqueidentifier,
        PREFERENCEOPTIONID  uniqueidentifier
    )

    insert into @PREFERENCEOPTIONS (PREFERENCEGROUPID,PREFERENCEOPTIONID)
    select
        T.c.value('(PREFERENCEID)[1]', 'uniqueidentifier') as 'PREFERENCEGROUPID',
        T.c.value('(PREFERENCEOPTIONID)[1]', 'uniqueidentifier') as 'PREFERENCEOPTIONID'
    from @preferenceXml.nodes('/PREFERENCES/ITEM') T(c)

    insert into dbo.REGISTRANTPREFERENCE
    (
        ID,
        REGISTRANTID,
        EVENTPREFERENCEID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
    )
    select
        PO.ID,
        @REGISTRANTID,
        PO.PREFERENCEOPTIONID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CHANGEDATE,
        @CHANGEDATE
    from
    @PREFERENCEOPTIONS as PO
    inner join dbo.REGISTRANTREGISTRATIONMAP as RRM on RRM.REGISTRANTID = @REGISTRANTID


    insert into dbo.REGISTRANTPREFERENCEMAP
    (
        ID,
        REGISTRANTREGISTRATIONMAPID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
    )
    select
        PO.ID,
        RRM.ID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CHANGEDATE,
        @CHANGEDATE
        from  @PREFERENCEOPTIONS as PO
    inner join dbo.REGISTRANTREGISTRATIONMAP as RRM on RRM.REGISTRANTID = @REGISTRANTID
end