USP_WEALTHCAPACITY_UPDATECOMMON

Updates the information in the WEALTHCAPACITY table given an ID

Parameters

Parameter Parameter Type Mode Description
@WEALTHID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_WEALTHCAPACITY_UPDATECOMMON (
                @WEALTHID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null
            ) as begin
                set nocount on;

                if @WEALTHID is not null begin
                    begin try
                        declare @ESTIMATEDWEALTHVALUE money;
                        declare @MAJORGIVINGCAPACITYVALUE money;
                        declare @ESTIMATEDWEALTHID uniqueidentifier;
                        declare @MAJORGIVINGCAPACITYID uniqueidentifier;
                        declare @MAJORGIVINGCAPACITYBASISVALUE nvarchar(250);

                        set @ESTIMATEDWEALTHVALUE = 0;
                        set @MAJORGIVINGCAPACITYVALUE = 0;
                        set @ESTIMATEDWEALTHID = null;
                        set @MAJORGIVINGCAPACITYID = null;
                        set @MAJORGIVINGCAPACITYBASISVALUE = '';

                        begin try
                            -- Check if the constituent is a group/household or individual

                            declare @ISGROUP bit;
                            select @ISGROUP = ISGROUP from dbo.CONSTITUENT where ID = @WEALTHID;

                            if @ISGROUP = 0 begin
                                --get wealth capacity for the individual

                                declare @WEALTHCAPACITYFORMULAID uniqueidentifier;

                                select
                                    @WEALTHCAPACITYFORMULAID = WC.WEALTHCAPACITYFORMULAID
                                from
                                    dbo.WEALTHCAPACITY WC
                                where
                                    WC.ID = @WEALTHID;

                                if @WEALTHCAPACITYFORMULAID is null begin
                                    select
                                        @WEALTHCAPACITYFORMULAID = WCF.ID
                                    from
                                        dbo.WEALTHCAPACITYFORMULA WCF
                                    where
                                        WCF.ISDEFAULT = 1;
                                end

                                exec dbo.USP_CONSTITUENT_WEALTHCAPACITY_FROMFORMULA_2
                                    @WEALTHID,
                                    @WEALTHCAPACITYFORMULAID,
                                    @ESTIMATEDWEALTHVALUE output,
                                    @ESTIMATEDWEALTHID output,
                                    @MAJORGIVINGCAPACITYVALUE output,
                                    @MAJORGIVINGCAPACITYID output,
                                    @MAJORGIVINGCAPACITYBASISVALUE output;

                                update dbo.WEALTHCAPACITY
                                set MAJORGIVINGCAPACITYBASISVALUE = @MAJORGIVINGCAPACITYBASISVALUE
                                where ID = @WEALTHID;
                            end
                            else begin
                                --get wealth capacity for the group

                                exec dbo.USP_GROUP_GETWEALTHCAPACITY
                                    @WEALTHID,
                                    @ESTIMATEDWEALTHVALUE output,
                                    @ESTIMATEDWEALTHID output,
                                    @MAJORGIVINGCAPACITYVALUE output,
                                    @MAJORGIVINGCAPACITYID output;
                            end
                        end try
                        begin catch
                            set @ESTIMATEDWEALTHVALUE = 0;
                            set @MAJORGIVINGCAPACITYVALUE = 0;
                            set @ESTIMATEDWEALTHID = null;
                            set @MAJORGIVINGCAPACITYID = null;
                        end catch

                        -- Update the WEALTHCAPACITY table.

                        if @CHANGEAGENTID is null
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

                        if (select count(ID) from dbo.[WEALTHCAPACITY] where WEALTHCAPACITY.[ID] = @WEALTHID) = 1 begin                        
                            update
                                dbo.[WEALTHCAPACITY]
                            set
                                [WEALTHCAPACITYFORMULAID] = @WEALTHCAPACITYFORMULAID,
                                [ESTIMATEDWEALTHVALUE] = @ESTIMATEDWEALTHVALUE,
                                [ESTIMATEDWEALTHID] = @ESTIMATEDWEALTHID,
                                [MAJORGIVINGCAPACITYID] = @MAJORGIVINGCAPACITYID,
                                [MAJORGIVINGCAPACITYVALUE] = @MAJORGIVINGCAPACITYVALUE,
                                [SYSTEMCALCULATED] = 1,
                                [CHANGEDBYID] = @CHANGEAGENTID,
                                [DATECHANGED] = @CURRENTDATE                   
                            where
                                WEALTHCAPACITY.[ID] = @WEALTHID and
                                WEALTHCAPACITY.[CONFIRMED] = 0;
                        end
                        else begin
                            insert into    dbo.[WEALTHCAPACITY] (
                                [ID],
                                [WEALTHCAPACITYFORMULAID],
                                [ESTIMATEDWEALTHVALUE],
                                [ESTIMATEDWEALTHID],
                                [MAJORGIVINGCAPACITYID],
                                [MAJORGIVINGCAPACITYVALUE],
                                [CONFIRMED],
                                [SYSTEMCALCULATED],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            ) values (
                                @WEALTHID,
                                @WEALTHCAPACITYFORMULAID,
                                @ESTIMATEDWEALTHVALUE,
                                @ESTIMATEDWEALTHID,
                                @MAJORGIVINGCAPACITYID,
                                @MAJORGIVINGCAPACITYVALUE,
                                0,
                                1,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE                            
                            );                                                            
                        end
                    end try
                    begin catch
                    end catch
                end;
                return 0;
            end;