USP_MEMBERSHIP_GETMEMBERSHIPCARDS_ADDFROMXML

Inserts membership card information from a collection into MEMBERSHIPCARD table.

Parameters

Parameter Parameter Type Mode Description
@XML xml IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            create procedure [dbo].[USP_MEMBERSHIP_GETMEMBERSHIPCARDS_ADDFROMXML] 
            (
                @XML xml,
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null
            )

            as

                set nocount on;

                if @CHANGEAGENTID is null
                    exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                if @CHANGEDATE is null
                    set @CHANGEDATE = getdate()

                -- build a temporary table containing the values from the XML

                declare @TempTbl table (
                   [ID] uniqueidentifier,
                   [NAMEONCARD] nvarchar(700),
                   [EXPIRATIONDATE] datetime,
                   [MEMBERID] uniqueidentifier)

                insert into @TempTbl select 
                    [ID],
                    [NAMEONCARD],
                    [EXPIRATIONDATE],
                    [MEMBERID]
                from dbo.UFN_MEMBERSHIP_GETMEMBERSHIPCARDS_FROMITEMLISTXML(@XML)

                update @TempTbl set ID = newid() where (ID is null) or (ID = '00000000-0000-0000-0000-000000000000');

                if @@Error <> 0
                    return 1;

                -- insert new items

                insert into [MEMBERSHIPCARD] 
                    ([ID], 
                    [MEMBERID],
                    [NAMEONCARD],
                    [EXPIRATIONDATE],                
                    COMMENTS,
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED)
                select [ID], 
                    [MEMBERID],
                    [NAMEONCARD],
                    [EXPIRATIONDATE],
                    '',
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CHANGEDATE
                    @CHANGEDATE
                from @TempTbl as [temp]

                if @@Error <> 0
                    return 2;

                return 0;