USP_DATAFORMTEMPLATE_EDIT_COPYPROGRAMFEE

The save procedure used by the edit dataform template "Copy Program Fees Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@SOURCEPROGRAMID uniqueidentifier IN Copy from

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_COPYPROGRAMFEE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @SOURCEPROGRAMID uniqueidentifier
                    )
                as
                begin

                    set nocount on;

                    declare @CURRENTDATE datetime;
                    set @CURRENTDATE = getdate();

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

                        declare @FEES xml;
                        set @FEES=dbo.UFN_PROGRAMFEE_GETFEE_TOITEMLISTXML(@SOURCEPROGRAMID);
                        if @FEES is null 
                        begin
                            raiserror('Fees cannot be copied. The source program does not contain any fees.', 13, 1)
                            return 1
                        end

                        update dbo.[PROGRAM] with (rowlock)
                        set 
                            [DATECHANGED] = @CURRENTDATE,
                            [CHANGEDBYID] = @CHANGEAGENTID
                        where [ID] = @ID

                        exec dbo.USP_PROGRAMFEE_COPYFEE_UPDATEFROMXML @ID, @FEES, @CHANGEAGENTID, @CURRENTDATE;

                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;
                end