spFundraiser_Summary

Parameters

Parameter Parameter Type Mode Description
@FRIDs varchar(8000) IN

Definition

Copy


      CREATE PROCEDURE [dbo].[spFundraiser_Summary]
            (
            @FRIDs varchar(8000)
            )
            AS

            DECLARE @Temp table(FundraiserID int, FundraiserDescription varchar(100), FundraiserGoal money, TotalGoal money, TotalRaised money, TotalTeams int, TotalSolicitors int, TotalDonations int)

            INSERT INTO @Temp (FundraiserID, FundraiserDescription, FundRaiserGoal)
            (
            SELECT
            csv.id , sc.Title, fr.Goal
            FROM dbo.fncsvidstotable(@frids) csv, dbo.Fundraisers fr, dbo.SiteContent sc
            WHERE csv.id = fr.id
            AND
            sc.[id] = fr.SiteContentID
            )

            UPDATE a Set
            a.TotalRaised = b.TotalRaised,
            a.TotalDonations = b.TotalDonations
            FROM @Temp a,
            (select
            csv.id,
            count(distinct frs.id) 'TotalSolicitors' ,
            sum(isnull(donation.amount, 0))  'TotalRaised',
            count(donation.id) 'TotalDonations'
            from dbo.fncsvidstotable(@frids) csv
            inner join  dbo.fundraisersolicitors frs on frs.rootfundraiserid = csv.id
            left outer join dbo.fundraiserdonations donation on donation.solicitorid = frs.id
            inner join dbo.DonationTransactions dt on dt.DonationTransactionsID = donation.DonationTransactionsID
            where
            frs.rootfundraiserid = csv.id
            and
            dt.IsDeleted = 0
            and
            dt.Status = 1
            group by csv.id) b
            WHERE a.FundraiserID = b.ID


            UPDATE a Set 
            a.TotalGoal = b.Goal,
            a.TotalSolicitors = isnull(b.TotalSolicitors, 0)
            FROM @Temp a,
            (SELECT
            csv.ID,
            count(DISTINCT frs.id) 'TotalSolicitors',
            sum(isnull(frs.goal, 0)) 'Goal'
            from dbo.fncsvidstotable(@frids) csv
            inner join dbo.fundraisersolicitors frs on frs.rootfundraiserid = csv.id
            inner join dbo.clientusers cu on frs.clientusersid = cu.id and cu.deleted = 0
            where
            frs.rootfundraiserid = csv.id
            group by csv.id) b
            WHERE a.FundraiserID = b.ID


            UPDATE a Set a.TotalTeams = isnull(b.TotalTeams, 0)
            FROM @Temp a,
            (SELECT
            csv.id,
            count(frt.id) 'TotalTeams'
            from dbo.fncsvidstotable(@frids) csv
            inner join dbo.fundraiserteams frt on frt.rootfundraiserid = csv.id
            where
            frt.rootfundraiserid = csv.id
            group by csv.id) b
            WHERE a.FundraiserID = b.ID


            SELECT FundraiserID, FundraiserDescription, FundraiserGoal, TotalGoal, TotalRaised, TotalTeams, TotalSolicitors, TotalDonations
            FROM @Temp