USP_KPI_CAMPAIGNGOAL_GOALAMOUNTTOTAL

Parameters

Parameter Parameter Type Mode Description
@VALUE money INOUT
@ASOFDATE datetime IN
@CAMPAIGNID uniqueidentifier IN
@CAMPAIGNHIERARCHYGOALID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@CURRENCYID uniqueidentifier IN
@CAMPAIGNGOALID uniqueidentifier IN

Definition

Copy


                    CREATE procedure dbo.USP_KPI_CAMPAIGNGOAL_GOALAMOUNTTOTAL (
                        @VALUE money output
                        @ASOFDATE datetime
                        @CAMPAIGNID uniqueidentifier,
                        @CAMPAIGNHIERARCHYGOALID uniqueidentifier,
                        @STARTDATE datetime = null,
                        @ENDDATE datetime = null,
                        @CURRENCYID uniqueidentifier = null,
            @CAMPAIGNGOALID uniqueidentifier = null
                    ) as begin

                        if @STARTDATE is null and @ENDDATE is null
                        begin
                            select
                                @STARTDATE = CAMPAIGNHIERARCHYGOAL.STARTDATE,
                                @ENDDATE = CAMPAIGNHIERARCHYGOAL.ENDDATE
                            from dbo.CAMPAIGNHIERARCHYGOAL
                                inner join dbo.CAMPAIGN on CAMPAIGN.ID = CAMPAIGNHIERARCHYGOAL.CAMPAIGNID
                            where CAMPAIGNHIERARCHYGOAL.ID = @CAMPAIGNHIERARCHYGOALID
                        end

                        if @ENDDATE is null or datediff(day, @ASOFDATE, @ENDDATE) > 0
                        begin
                            set @ENDDATE = @ASOFDATE;
                        end

                        declare @HIERARCHYPATH hierarchyid;
                        select @HIERARCHYPATH = HIERARCHYPATH
                        from dbo.CAMPAIGN
                        where ID = @CAMPAIGNID;

                        declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        declare @TOTALRECEIVED money;
                        select @TOTALRECEIVED = TOTALRECEIVED
                        from dbo.UFN_CAMPAIGN_GETTOTALRECEIVEDINCURRENCY(@HIERARCHYPATH, @STARTDATE, @ENDDATE, @CURRENCYID, @ORGANIZATIONCURRENCYID);

                        declare @PLEDGEBALANCE money;
                        select @PLEDGEBALANCE = PLEDGEBALANCE
                        from dbo.UFN_CAMPAIGN_GETPLEDGEBALANCEINCURRENCY(@HIERARCHYPATH, @STARTDATE, @ENDDATE, @CURRENCYID, @ORGANIZATIONCURRENCYID);

                        set @VALUE = coalesce(@TOTALRECEIVED, 0) + coalesce(@PLEDGEBALANCE, 0);

                    end