USP_DATAFORMTEMPLATE_VIEW_PLANNEDGIFTPAGEDATA

The load procedure used by the view dataform template "Planned Gift Page Expression View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@PROSPECTID uniqueidentifier INOUT PROSPECTID
@PROSPECTPLANID uniqueidentifier INOUT PROSPECTPLANID
@PROSPECT nvarchar(700) INOUT PROSPECT
@PROSPECTPLAN nvarchar(100) INOUT PROSPECTPLAN
@ISACTIVEPROSPECT bit INOUT ISACTIVEPROSPECT
@VEHICLECODE tinyint INOUT VEHICLECODE
@STATUSCODE tinyint INOUT STATUSCODE
@DATE datetime INOUT DATE
@GIFTAMOUNT money INOUT GIFTAMOUNT
@VEHICLETRANSLATION nvarchar(100) INOUT VEHICLETRANSLATION
@CANADDREVENUE bit INOUT CANADDREVENUE
@CANADDPAYMENT bit INOUT CANADDPAYMENT
@HASREVENUE bit INOUT HASREVENUE
@REVENUEID uniqueidentifier INOUT REVENUEID
@ATTRIBUTEDEFINED bit INOUT ATTRIBUTEDEFINED
@VEHICLEAUTOCALCULATEREALIZEDAMOUNT bit INOUT VEHICLEAUTOCALCULATEREALIZEDAMOUNT
@AUTOCALCULATEREALIZEDAMOUNT bit INOUT AUTOCALCULATEREALIZEDAMOUNT
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@TRANSACTIONGIFTAMOUNT money INOUT TRANSACTIONGIFTAMOUNT
@TRANSACTIONCURRENCYID uniqueidentifier INOUT TRANSACTIONCURRENCYID
@ISELIGIBLEFORADDITIONS bit INOUT ISELIGIBLEFORADDITIONS
@TRANSACTIONTOTALGIFTAMOUNT money INOUT TRANSACTIONTOTALGIFTAMOUNT

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_PLANNEDGIFTPAGEDATA(
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @PROSPECTID uniqueidentifier = null output,
                    @PROSPECTPLANID uniqueidentifier = null output,
                    @PROSPECT nvarchar(700) = null output,
                    @PROSPECTPLAN nvarchar(100) = null output,
                    @ISACTIVEPROSPECT bit = null output,
                    @VEHICLECODE tinyint = null output,
                    @STATUSCODE tinyint = null output,
                    @DATE datetime = null output,
                    @GIFTAMOUNT money = null output,
                    @VEHICLETRANSLATION nvarchar(100) = null output,
                    @CANADDREVENUE bit = null output,
                    @CANADDPAYMENT bit = null output,
                    @HASREVENUE bit = null output,
                    @REVENUEID uniqueidentifier = null output,
                    @ATTRIBUTEDEFINED bit = null output,
                    @VEHICLEAUTOCALCULATEREALIZEDAMOUNT bit = null output,
                    @AUTOCALCULATEREALIZEDAMOUNT bit = null output,
                    @CURRENTAPPUSERID uniqueidentifier = null,
                    @TRANSACTIONGIFTAMOUNT money = null output,
                    @TRANSACTIONCURRENCYID uniqueidentifier = null output,
                    @ISELIGIBLEFORADDITIONS bit = null output,
                    @TRANSACTIONTOTALGIFTAMOUNT money = null output
                ) as

                    set nocount on;

                    set @DATALOADED = 0;

                    select
                        @DATALOADED = 1,
                        @PROSPECTID = PG.CONSTITUENTID,
                        @PROSPECTPLANID = PG.PROSPECTPLANID,
                        @PROSPECT = NF.NAME,
                        @PROSPECTPLAN = dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID),
                        @ISACTIVEPROSPECT = dbo.UFN_CONSTITUENT_ISPROSPECT(PG.CONSTITUENTID),
                        @VEHICLECODE = PG.VEHICLECODE,
                        @STATUSCODE = STATUSCODE,
                        @DATE = PG.GIFTDATE,
                        @GIFTAMOUNT = PG.GIFTAMOUNT,
                        @ATTRIBUTEDEFINED = dbo.UFN_ATTRIBUTECATEGORY_DEFINEDFORRECORDTYPE_FORAPPUSER('PLANNED GIFT',@CURRENTAPPUSERID),
                        @VEHICLETRANSLATION = case PG.VEHICLECODE
                            when 0 then 'Charitable gift annuity' 
                            when 1 then 'Charitable remainder unitrust' 
                            when 2 then 'Charitable remainder annuity trust' 
                            when 3 then 'Charitable lead unitrust' 
                            when 4 then 'Charitable lead annuity trust' 
                            when 5 then 'Pooled income fund' 
                            when 6 then 'Life insurance' 
                            when 7 then 'Retained life estate' 
                            when 8 then 'Bargain sale' 
                            when 9 then 'Outright gift' 
                            when 10 then 'Bequest' 
                            when 11 then 'Retirement plan assets'
                            when 12 then 'Testamentary charitable trust'
                            when 13 then 'Other'
                            when 14 then 'Living trust' end,
                        @VEHICLEAUTOCALCULATEREALIZEDAMOUNT = isnull(PGVO.AUTOCALCULATEREALIZEDAMOUNT, 0),
                        @AUTOCALCULATEREALIZEDAMOUNT = PG.AUTOCALCULATEREALIZEDAMOUNT,
                        @TRANSACTIONGIFTAMOUNT = PG.TRANSACTIONGIFTAMOUNT,
                        @TRANSACTIONCURRENCYID = PG.TRANSACTIONCURRENCYID,
                        @TRANSACTIONTOTALGIFTAMOUNT = dbo.UFN_PLANNEDGIFT_GETTOTALAMOUNT(@ID, 2, PG.TRANSACTIONCURRENCYID)

                    from
                        dbo.PLANNEDGIFT PG
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PG.CONSTITUENTID) NF
                        left outer join dbo.PROSPECTPLAN PP on PP.ID=PG.PROSPECTPLANID
                        left join dbo.PLANNEDGIFTVEHICLEOPTIONS PGVO on PGVO.VEHICLECODE = PG.VEHICLECODE

                    where
                        PG.ID = @ID;

                    set @CANADDREVENUE = 0

                    if @VEHICLECODE = 0 or @VEHICLECODE = 1 or @VEHICLECODE = 2 
                        select    @CANADDREVENUE = case when count(*) > 0 then 1 else 0 end 
                        from dbo.PLANNEDGIFT PG
                        where PG.ID = @ID
                            and not PG.TRANSACTIONREMAINDERVALUE = 0
                            and PG.STATUSCODE = 2
                            and (select count(*) from dbo.PLANNEDGIFTDESIGNATION pgd
                                where pgd.PLANNEDGIFTID = PG.ID) > 0
                            and not exists (select ID from dbo.PLANNEDGIFTREVENUE pgr
                                                where pgr.ID = @ID);

                    if @VEHICLECODE = 3 or @VEHICLECODE = 4
                        select    @CANADDREVENUE = case when count(*) > 0 then 1 else 0 end 
                        from dbo.PLANNEDGIFT PG
                        where PG.ID = @ID
                            and not PG.TRANSACTIONPAYOUTAMOUNT = 0
                            and PG.STATUSCODE = 2
                            and (select count(*) from dbo.PLANNEDGIFTDESIGNATION pgd
                                where pgd.PLANNEDGIFTID = PG.ID) > 0
                            and not exists (select ID from dbo.PLANNEDGIFTREVENUE pgr
                                                where pgr.ID = @ID);

                    if @VEHICLECODE = 5 
                        select    @CANADDREVENUE = case when count(*) > 0 then 1 else 0 end 
                        from dbo.PLANNEDGIFT PG
                        where PG.ID = @ID
                            and not PG.TRANSACTIONGIFTAMOUNT = 0
                            and not PG.TRANSACTIONREMAINDERVALUE = 0
                            and PG.STATUSCODE = 2
                            and (select count(*) from dbo.PLANNEDGIFTDESIGNATION pgd
                                where pgd.PLANNEDGIFTID = PG.ID) > 0
                            and not exists (select ID from dbo.PLANNEDGIFTREVENUE pgr
                                                where pgr.ID = @ID);

                    if @VEHICLECODE = 6  or @VEHICLECODE = 7 or @VEHICLECODE = 10 or @VEHICLECODE = 11 or @VEHICLECODE = 12 or @VEHICLECODE = 13 or @VEHICLECODE = 14
                        select    @CANADDREVENUE = case when count(*) > 0 then 1 else 0 end 
                        from dbo.PLANNEDGIFT PG
                        where PG.ID = @ID
                            and not PG.TRANSACTIONGIFTAMOUNT = 0
                            and PG.STATUSCODE = 2
                            and (select count(*) from dbo.PLANNEDGIFTDESIGNATION pgd
                                where pgd.PLANNEDGIFTID = PG.ID) > 0
                            and not exists (select ID from dbo.PLANNEDGIFTREVENUE pgr
                                                where pgr.ID = @ID);

                    if @VEHICLECODE = 6 and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0E85C527-E6E9-4C5F-A8E8-105FD0E18FE7') = 1 
                        select    @CANADDREVENUE = case when count(*) > 0 then 1 else 0 end 
                        from dbo.PLANNEDGIFT PG
                        where PG.ID = @ID
                            and not PG.TRANSACTIONGIFTAMOUNT = 0
                            and not PG.TRANSACTIONLIFEINSURANCEPREMIUM = 0
                            and PG.STATUSCODE = 2
                            and (select count(*) from dbo.PLANNEDGIFTDESIGNATION pgd
                                where pgd.PLANNEDGIFTID = PG.ID) > 0
                            and not exists (select ID from dbo.PLANNEDGIFTREVENUE pgr
                                                where pgr.ID = @ID);                

                    if (@VEHICLECODE = 0 or @VEHICLECODE = 5) and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0E85C527-E6E9-4C5F-A8E8-105FD0E18FE7') = 1 
                        select    @CANADDREVENUE = case when count(*) > 0 then 1 else 0 end 
                        from dbo.PLANNEDGIFT PG
                        where PG.ID = @ID
                            and not PG.TRANSACTIONPAYOUTAMOUNT = 0
                            and PG.STATUSCODE = 2
                            and (select count(*) from dbo.PLANNEDGIFTDESIGNATION pgd
                                where pgd.PLANNEDGIFTID = PG.ID) > 0
                            and not exists (select ID from dbo.PLANNEDGIFTREVENUE pgr
                                                where pgr.ID = @ID);                                                

                    set @CANADDPAYMENT = 0;

                    -- Make sure the planned gift is either an Outright Gift or a Bargain Sale
                    -- and that it has a designation
                    if (@VEHICLECODE = 8 or @VEHICLECODE = 9
                    begin
                        if exists (select 1 from dbo.PLANNEDGIFTDESIGNATION where PLANNEDGIFTID = @ID) and
                            not exists (select ID from dbo.PLANNEDGIFTREVENUESPLIT where PLANNEDGIFTID = @ID) and
              exists (select 1 from dbo.plannedgift pg where pg.id=@ID and pg.statuscode=2)
                        begin
                            set @CANADDPAYMENT = 1;
                        end

                        select top 1
                            @REVENUEID = REVENUESPLIT.REVENUEID,
                            @HASREVENUE = 1
                        from dbo.PLANNEDGIFTREVENUESPLIT
                        inner join dbo.REVENUESPLIT on PLANNEDGIFTREVENUESPLIT.REVENUESPLITID = REVENUESPLIT.ID
                        where PLANNEDGIFTREVENUESPLIT.PLANNEDGIFTID = @ID
                    end
                    else
                        select @REVENUEID = REVENUEID,
                            @HASREVENUE = case when count(*) > 0 then 1 else 0 end
                        from dbo.PLANNEDGIFTREVENUE pgr
                        where pgr.ID = @ID
                        group by REVENUEID;

                    if (@VEHICLECODE in (1,3,5,6,10,11,12,13,14))
                      set @ISELIGIBLEFORADDITIONS = 1

                    return 0;