USP_DATAFORMTEMPLATE_EDITSAVE_CHARITYCLAIMREFERENCENUMBER

The save procedure used by the edit dataform template "Charity Claim Information 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.
@REFERENCENUMBER nvarchar(20) IN Reference number
@DESCRIPTION nvarchar(50) IN Description
@CLASSIFICATIONCODE tinyint IN Classification
@WAITINGPERIOD smallint IN Days to wait
@SITES xml IN Sites
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


            CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITSAVE_CHARITYCLAIMREFERENCENUMBER
            (
                @ID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier,    
                @REFERENCENUMBER nvarchar(20),
                @DESCRIPTION nvarchar(50),
                @CLASSIFICATIONCODE tinyint,
                @WAITINGPERIOD smallint,
                @SITES xml,
                @CURRENTAPPUSERID uniqueidentifier
            )
            as
            begin
                set nocount on;

                declare @CURRENTDATE datetime                                        

                IF @ID is null
                    set @ID = newid()

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

                set @CURRENTDATE = getdate()

                declare @SITECOUNT int;
                select @SITECOUNT = COUNT(SITEID) from dbo.UFN_CHARITYCLAIMREFERENCENUMBER_GETSITES_FROMITEMLISTXML(@SITES)

                if @SITECOUNT = 0 or @SITES is null
                    begin 
                    if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
                        begin
                          raiserror('BBERR_SITEREQUIRED',13,1);
                          return;
                        end

                    declare @COUNT int;
                    select @COUNT = count(ID) from dbo.CHARITYCLAIMREFERENCENUMBER where ID not in (select CHARITYCLAIMREFERENCENUMBERID from dbo.CHARITYCLAIMREFERENCENUMBERSITE) and not ID = @ID

                    if @COUNT > 0 
                        begin
                          raiserror('BBERR_CCRNSITEREQUIRED',13,1);
                          return;
                        end
                    end  

                if @WAITINGPERIOD is null
                set @WAITINGPERIOD = 0

                begin try                                   
                    update dbo.CHARITYCLAIMREFERENCENUMBER set
                        ID = @ID,
                        REFERENCENUMBER = @REFERENCENUMBER,
                        DESCRIPTION = @DESCRIPTION,
                        CLASSIFICATIONCODE = @CLASSIFICATIONCODE,
                        WAITINGPERIOD = @WAITINGPERIOD,
                        CHANGEDBYID = @CHANGEAGENTID,
                        DATECHANGED = @CURRENTDATE
                    where ID = @ID

                    exec dbo.USP_CHARITYCLAIMREFERENCENUMBER_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE
                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch

                return 0

            end