UFN_REVENUERECOGNITIONWITHGIFTAID_GETAMOUNTSINCURRENCY_BULK_2

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENCYID uniqueidentifier IN
@ORGANIZATIONCURRENCYID uniqueidentifier IN
@DECIMALDIGITS tinyint IN
@ROUNDINGTYPECODE tinyint IN
@ISUK bit IN
@CONSTITUENTID uniqueidentifier IN

Definition

Copy


            CREATE function [dbo].[UFN_REVENUERECOGNITIONWITHGIFTAID_GETAMOUNTSINCURRENCY_BULK_2]
            (
                @CURRENCYID uniqueidentifier,
                @ORGANIZATIONCURRENCYID uniqueidentifier,
                @DECIMALDIGITS tinyint,
                @ROUNDINGTYPECODE tinyint,
                @ISUK bit,
                @CONSTITUENTID uniqueidentifier
            )
            returns @REVENUERECOGNITIONWITHGIFTAIDDATA table(
                    ID uniqueidentifier,
                    AMOUNTINCURRENCY decimal,
                    DATEAMOUNTCHANGED datetime,
                    REVENUESPLITID uniqueidentifier,
                    CONSTITUENTID uniqueidentifier,
                    EFFECTIVEDATE datetime,
                    DATEADDED datetime,
                    REVENUERECOGNITIONTYPECODEID uniqueidentifier,
                    TSLONG bigint,
                    REVENUEID uniqueidentifier,
                    TRANSACTIONTYPECODE tinyint,
                    REVENUECONSTITUENTID uniqueidentifier,
                    DATE datetime,
                    REVENUEDATEADDED datetime,
                    APPLICATIONCODE tinyint,
                    REVENUESPLITTYPECODE tinyint,
                    DESIGNATIONID uniqueidentifier,
                    REVENUESPLITTSLONG bigint,
                    TRANSACTIONTYPE nvarchar(200),
                    ORGANIZATIONEXCHANGERATEID uniqueidentifier,
                    ORGANIZATIONAMOUNT decimal
            )
            as
                begin
                declare @TMP_DATA_REVENUERECOGNITIONSUMMARYWITHGIFTAID table    
                (    
                     ID uniqueidentifier,    
                     AMOUNTINCURRENCY decimal,    
                     REVENUESPLITID uniqueidentifier,    
                     CONSTITUENTID uniqueidentifier,    
                     EFFECTIVEDATE datetime,    
                     DATEADDED datetime,    
                     REVENUERECOGNITIONTYPECODEID uniqueidentifier,    
                     TSLONG bigint,    
                     REVENUEID uniqueidentifier,    
                     TRANSACTIONTYPECODE tinyint,    
                     REVENUECONSTITUENTID uniqueidentifier,    
                     DATE datetime,    
                     REVENUEDATEADDED datetime,    
                     APPLICATIONCODE tinyint,    
                     REVENUESPLITTYPECODE tinyint,    
                     DESIGNATIONID uniqueidentifier,    
                     REVENUESPLITTSLONG bigint,    
                     TRANSACTIONTYPE nvarchar(200),    
                     ORGANIZATIONEXCHANGERATEID uniqueidentifier,    
                     ORGANIZATIONAMOUNT decimal,    
                     REVENUESPLITREVENUEID uniqueidentifier,    
                     DELETEDON datetime,    
                     TYPECODE tinyint,    
                     DATEAMOUNTCHANGED datetime,    
                     TAXCLAIMAMOUNTINCURRENCY decimal,    
                     DATETAXDECLARATIONCHANGED datetime,    
                     ELIGIBLEGIFTAIDID uniqueidentifier    
                );    
                declare @TMP_INTERMEDIATE_DATA_REVENUERECOGNITIONSUMMARYWITHGIFTAID table    
                (    
                     ID uniqueidentifier,    
                     AMOUNTINCURRENCY decimal,    
                     REVENUESPLITID uniqueidentifier,    
                     CONSTITUENTID uniqueidentifier,    
                     EFFECTIVEDATE datetime,    
                     DATEADDED datetime,    
                     REVENUERECOGNITIONTYPECODEID uniqueidentifier,    
                     TSLONG bigint,    
                     REVENUEID uniqueidentifier,    
                     TRANSACTIONTYPECODE tinyint,    
                     REVENUECONSTITUENTID uniqueidentifier,    
                     DATE datetime,    
                     REVENUEDATEADDED datetime,    
                     APPLICATIONCODE tinyint,    
                     REVENUESPLITTYPECODE tinyint,    
                     DESIGNATIONID uniqueidentifier,    
                     REVENUESPLITTSLONG bigint,    
                     TRANSACTIONTYPE nvarchar(200),    
                     ORGANIZATIONEXCHANGERATEID uniqueidentifier,    
                     ORGANIZATIONAMOUNT decimal,    
                     REVENUESPLITREVENUEID uniqueidentifier,      
                     DATEAMOUNTCHANGED datetime,    
                     TAXCLAIMAMOUNTINCURRENCY decimal,    
                     DATETAXDECLARATIONCHANGED datetime,    
                     ELIGIBLEGIFTAIDID uniqueidentifier    
                ); 

                if @ISUK = 1
                begin
                        insert into @TMP_INTERMEDIATE_DATA_REVENUERECOGNITIONSUMMARYWITHGIFTAID 
                        select    
                                REVENUERECOGNITION.ID,    
                                REVENUERECOGNITION.AMOUNTINCURRENCY,    
                                REVENUERECOGNITION.REVENUESPLITID,    
                                REVENUERECOGNITION.CONSTITUENTID,    
                                REVENUERECOGNITION.EFFECTIVEDATE,    
                                REVENUERECOGNITION.DATEADDED,    
                                REVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID,    
                                REVENUERECOGNITION.TSLONG,    
                                REVENUERECOGNITION.REVENUEID,    
                                REVENUERECOGNITION.TRANSACTIONTYPECODE,    
                                REVENUERECOGNITION.REVENUECONSTITUENTID,    
                                REVENUERECOGNITION.DATE,    
                                REVENUERECOGNITION.REVENUEDATEADDED,    
                                REVENUERECOGNITION.APPLICATIONCODE,    
                                REVENUERECOGNITION.REVENUESPLITTYPECODE,    
                                REVENUERECOGNITION.DESIGNATIONID,    
                                REVENUERECOGNITION.REVENUESPLITTSLONG,    
                                REVENUERECOGNITION.TRANSACTIONTYPE,    
                                REVENUERECOGNITION.ORGANIZATIONEXCHANGERATEID,    
                                REVENUERECOGNITION.ORGANIZATIONAMOUNT,    
                                REVENUESPLIT.REVENUEID REVENUESPLITREVENUEID,    
                                REVENUESPLITGIFTAID.DATEAMOUNTCHANGED,    
                                REVENUESPLITGIFTAID.TAXCLAIMAMOUNTINCURRENCY,    
                                ELIGIBLEGIFTAID.DATETAXDECLARATIONCHANGED,    
                                ELIGIBLEGIFTAID.ID ELIGIBLEGIFTAIDID    
                            from    
                                dbo.UFN_REVENUERECOGNITION_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUERECOGNITION    
                                inner join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUESPLIT on REVENUESPLIT.ID = REVENUERECOGNITION.REVENUESPLITID     
                                left join dbo.UFN_REVENUESPLITGIFTAID_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUESPLITGIFTAID on REVENUESPLITGIFTAID.ID = REVENUESPLIT.ID    
                                left join dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE(1) ELIGIBLEGIFTAID on ELIGIBLEGIFTAID.ID = REVENUESPLITGIFTAID.ID    
                            where    
                                REVENUERECOGNITION.CONSTITUENTID = @CONSTITUENTID 
                            option(RECOMPILE);
                end

                insert into @TMP_DATA_REVENUERECOGNITIONSUMMARYWITHGIFTAID     
                    select     
                     RECOGNITIONDETAIL.ID,    
                     RECOGNITIONDETAIL.AMOUNTINCURRENCY,    
                     RECOGNITIONDETAIL.REVENUESPLITID,    
                     RECOGNITIONDETAIL.CONSTITUENTID,    
                     RECOGNITIONDETAIL.EFFECTIVEDATE,    
                     RECOGNITIONDETAIL.DATEADDED,    
                     RECOGNITIONDETAIL.REVENUERECOGNITIONTYPECODEID,    
                     RECOGNITIONDETAIL.TSLONG,    
                     RECOGNITIONDETAIL.REVENUEID,    
                     RECOGNITIONDETAIL.TRANSACTIONTYPECODE,    
                     RECOGNITIONDETAIL.REVENUECONSTITUENTID,    
                     RECOGNITIONDETAIL.DATE,    
                     RECOGNITIONDETAIL.REVENUEDATEADDED,    
                     RECOGNITIONDETAIL.APPLICATIONCODE,    
                     RECOGNITIONDETAIL.REVENUESPLITTYPECODE,    
                     RECOGNITIONDETAIL.DESIGNATIONID,    
                     RECOGNITIONDETAIL.REVENUESPLITTSLONG,    
                     RECOGNITIONDETAIL.TRANSACTIONTYPE,    
                     RECOGNITIONDETAIL.ORGANIZATIONEXCHANGERATEID,    
                     RECOGNITIONDETAIL.ORGANIZATIONAMOUNT,    
                     RECOGNITIONDETAIL.REVENUESPLITREVENUEID,    
                     FINANCIALTRANSACTION.DELETEDON,    
                     FINANCIALTRANSACTION.TYPECODE,    
                     RECOGNITIONDETAIL.DATEAMOUNTCHANGED,    
                     RECOGNITIONDETAIL.TAXCLAIMAMOUNTINCURRENCY,    
                     RECOGNITIONDETAIL.DATETAXDECLARATIONCHANGED,    
                     RECOGNITIONDETAIL.ELIGIBLEGIFTAIDID    
                    from    
                     @TMP_INTERMEDIATE_DATA_REVENUERECOGNITIONSUMMARYWITHGIFTAID RECOGNITIONDETAIL    
                     inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = REVENUESPLITREVENUEID;    

                    insert into @REVENUERECOGNITIONWITHGIFTAIDDATA    
                    select     
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.ID,    
                     case    
                        when dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID, @CURRENCYID) > 0 then    
                         case TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.TYPECODE    
                         when 0 then    
                            case    
                            when TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY > dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID, @CURRENCYID) then case when TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.ELIGIBLEGIFTAIDID is not null then TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.TAXCLAIMAMOUNTINCURRENCY else 0 end + TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY    
                            else TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY/dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID, @CURRENCYID) * (case when TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.ELIGIBLEGIFTAIDID is not null then TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.TAXCLAIMAMOUNTINCURRENCY else 0 end) + TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY    
                         end    
                         when 1 then    
                         case    
                            when TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY > dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID, @CURRENCYID)    
                            then coalesce(PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT.TAXCLAIMAMOUNTINCURRENCY,0)    
                            + TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY    
                            else TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY/dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID, @CURRENCYID) * coalesce(PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT.TAXCLAIMAMOUNTINCURRENCY,0)    
                            + TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY    
                         end    
                         else TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.AMOUNTINCURRENCY    
                         end    
                        else dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID, @CURRENCYID)    
                     end [AMOUNTINCURRENCY],    
                     --Returns the date when amount changed    

                     -- considers when the net revenue changes and when the gift aid eligibility changes    

                     case    
                        when TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.ELIGIBLEGIFTAIDID is not null    
                        then     
                         case    
                            when TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATETAXDECLARATIONCHANGED >= TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATEAMOUNTCHANGED    
                            then TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATETAXDECLARATIONCHANGED    
                            else TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATEAMOUNTCHANGED    
                         end    
                        else TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATEAMOUNTCHANGED    
                     end as DATEGROSSAMOUNTCHANGED,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.CONSTITUENTID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.EFFECTIVEDATE,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATEADDED,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUERECOGNITIONTYPECODEID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.TSLONG,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUEID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.TRANSACTIONTYPECODE,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUECONSTITUENTID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DATE,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUEDATEADDED,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.APPLICATIONCODE,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITTYPECODE,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.DESIGNATIONID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITTSLONG,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.TRANSACTIONTYPE,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.ORGANIZATIONEXCHANGERATEID,    
                     TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.ORGANIZATIONAMOUNT    
                    from     
                     @TMP_DATA_REVENUERECOGNITIONSUMMARYWITHGIFTAID TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID    
                     left join dbo.UFN_PLEDGEINSTALLMENTSPLIT_CALCULATETAXCLAIMAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT    
                     on PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT.REVENUESPLITID = TMPDATAREVENUERECOGNITIONSUMMARYWITHGIFTAID.REVENUESPLITID    
                    where    
                     DELETEDON is NULL and ((TYPECODE between 0 and 9) or (TYPECODE = 15));    
                    return;
            end