USP_PROGRAMFEE_COPYFEE_UPDATEFROMXML

This program will update a program's fees given a collection of fees.

Parameters

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

Definition

Copy


            CREATE PROCEDURE [dbo].[USP_PROGRAMFEE_COPYFEE_UPDATEFROMXML] 
            (
                @PROGRAMID uniqueidentifier,
                @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()

            declare @contextCache varbinary(128);
            declare @e int;

            -- cache current context information 

            set @contextCache = CONTEXT_INFO();

            -- set CONTEXT_INFO to @CHANGEAGENTID 

            if not @CHANGEAGENTID is null
                set CONTEXT_INFO @CHANGEAGENTID;

            -- delete any items that no longer exist in the XML table

            delete from dbo.[PROGRAMFEE] where [PROGRAMFEE].PROGRAMID=@PROGRAMID

            select @e=@@error;

            -- reset CONTEXT_INFO to previous value 

            if not @contextCache is null
                set CONTEXT_INFO @contextCache;

            if @e <> 0
            return 1;

            -- insert all items from xml into the program fee table

            insert into [PROGRAMFEE] 
            ([PROGRAMID], 
            [FEEID],
            [ID],                
            ADDEDBYID, 
            CHANGEDBYID, 
            DATEADDED, 
            DATECHANGED)
            select @PROGRAMID
            [FEEID],
            newid(), 
            @CHANGEAGENTID
            @CHANGEAGENTID
            @CHANGEDATE
            @CHANGEDATE
            from dbo.UFN_PROGRAMFEE_GETFEE_FROMITEMLISTXML(@XML)

            if @@Error <> 0
            return 2;

            return 0;