USP_R68_SAVEGIFTAIDGLDISTRIBUTION_SINGLECLAIM

Parameters

Parameter Parameter Type Mode Description
@PDACCOUNTSYSTEMID uniqueidentifier IN
@REVENUESPLITID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@LOWEREDID varchar(36) IN
@ID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_R68_SAVEGIFTAIDGLDISTRIBUTION_SINGLECLAIM
(
    @PDACCOUNTSYSTEMID uniqueidentifier,
    @REVENUESPLITID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier,
    @LOWEREDID varchar(36),
    @ID uniqueidentifier
)
as 
set nocount on;

begin try            
    begin tran
        declare @SQL nvarchar(4000),
                    @CHANGEDATE datetime,
                    @CHARITYCLAIMREFERENCENUMBER nvarchar(40),
            @TAXCLAIMNUMBER nvarchar(20);

        select    @CHANGEDATE = getdate()

        -- Retrieve the Charity claim reference number from the archived parameters table

        --    As if user changes this value the process must be restarted to retrieve updated data

        --    If they commit the latest history, data will have been produced using archived Charity claim reference number

        select 
            @CHARITYCLAIMREFERENCENUMBER = REFERENCENUMBER, @TAXCLAIMNUMBER = TAXCLAIMNUMBER
        from dbo.R68ARCHIVEDPARAMETERS
        where ID = @ID;

        -- Update tax claim numbers

        --    after handling refunds as it's possible to refund and claim the same application during the same R68 process...

        set @SQL =
            'update rsga set 
                TAXCLAIMNUMBER = @TAXCLAIMNUMBERIN,
                CHARITYCLAIMREFERENCENUMBER = @CHARITYCLAIMREFERENCENUMBERIN,
                PENDINGR68STATUSID = null,                
                CHANGEDBYID = @CHANGEAGENTIDIN,
                DATECHANGED = @CHANGEDATEIN,
                INCLUDETRANSITIONALAMOUNTCODE = case when dbo.UFN_REVENUESPLITGIFTAID_TRANSITIONALREFLIEFEXPIRED(rsga.ID, 0) = 0 then 1 else 2 end,
                CLAIMEDASSPONSORSHIP = ISSPONSORSHIP
                from dbo.REVENUESPLITGIFTAID rsga 
                inner join dbo.R68Details_' + @LOWEREDID + ' details on rsga.ID = details.REVENUESPLITID'
             + ' where rsga.ID = @REVENUESPLITID;'

        exec sp_executesql @SQL, N'@TAXCLAIMNUMBERIN nvarchar(10), @CHARITYCLAIMREFERENCENUMBERIN nvarchar(20), @CHANGEAGENTIDIN uniqueidentifier, @CHANGEDATEIN datetime, @REVENUESPLITID uniqueidentifier', @TAXCLAIMNUMBERIN = @TAXCLAIMNUMBER, @CHARITYCLAIMREFERENCENUMBERIN = @CHARITYCLAIMREFERENCENUMBER, @CHANGEAGENTIDIN = @CHANGEAGENTID, @CHANGEDATEIN = @CHANGEDATE, @REVENUESPLITID  = @REVENUESPLITID;

        if @@ERROR <> 0
            rollback tran

        -- Create new gift aid GL distributions.

        if dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID) = 1
            exec dbo.USP_SAVE_GIFTAIDGLDISTRIBUTION @REVENUESPLITID, @CHANGEAGENTID;    

if @@ERROR <> 0
        rollback tran
    else
        commit tran
end try

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