USP_GLOBALCHANGE_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT

Parameters

Parameter Parameter Type Mode Description
@IDSETREGISTERID uniqueidentifier IN
@AUTOCALCULATEREALIZEDAMOUNT bit IN
@CHANGEAGENTID uniqueidentifier IN
@ASOF datetime IN
@NUMBERADDED int INOUT
@NUMBEREDITED int INOUT
@NUMBERDELETED int INOUT
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_GLOBALCHANGE_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT
            (

                @IDSETREGISTERID uniqueidentifier, 
                @AUTOCALCULATEREALIZEDAMOUNT bit,
                @CHANGEAGENTID uniqueidentifier = null,
                @ASOF as datetime = null,
                @NUMBERADDED int = 0 output,
                @NUMBEREDITED int = 0 output,
                @NUMBERDELETED int = 0 output,
                @CURRENTAPPUSERID uniqueidentifier = null
            )
            as
                set nocount off;

                declare @CURRENTDATE datetime

                set @CURRENTDATE = getdate();
                set @NUMBERADDED = 0;
                set @NUMBEREDITED = 0;
                set @NUMBERDELETED = 0

                declare @BYPASSSECURITY bit;
                declare @BPID uniqueidentifier;
                declare @BYPASSSITESECURITY bit;
                declare @USERHASSITEACCESS bit;

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

                begin try

                    update
                        dbo.PLANNEDGIFT
                    set
                        AUTOCALCULATEREALIZEDAMOUNT = @AUTOCALCULATEREALIZEDAMOUNT,    

                        REALIZEDVALUE = case (@AUTOCALCULATEREALIZEDAMOUNT & ~PLANNEDGIFT.AUTOCALCULATEREALIZEDAMOUNT)
                                            when 1 then dbo.UFN_PLANNEDGIFT_GETREALIZEDAMOUNT(PLANNEDGIFT.ID)
                                            when 0 then PLANNEDGIFT.REALIZEDVALUE
                                        end,        
                        TRANSACTIONREALIZEDVALUE = case (@AUTOCALCULATEREALIZEDAMOUNT & ~PLANNEDGIFT.AUTOCALCULATEREALIZEDAMOUNT)
                                            when 1 then dbo.UFN_PLANNEDGIFT_GETTRANSACTIONREALIZEDAMOUNT(PLANNEDGIFT.ID)
                                            when 0 then PLANNEDGIFT.TRANSACTIONREALIZEDVALUE
                                        end,        
                        ORGANIZATIONREALIZEDVALUE = case (@AUTOCALCULATEREALIZEDAMOUNT & ~PLANNEDGIFT.AUTOCALCULATEREALIZEDAMOUNT)
                                            when 1 then dbo.UFN_PLANNEDGIFT_GETORGANIZATIONREALIZEDAMOUNT(PLANNEDGIFT.ID)
                                            when 0 then PLANNEDGIFT.ORGANIZATIONREALIZEDVALUE
                                        end,        
                        CHANGEDBYID = @CHANGEAGENTID,
                        DATECHANGED = @CURRENTDATE
                    from 
                        dbo.PLANNEDGIFT 
                        inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@IDSETREGISTERID) as SELECTION on 
                            SELECTION.ID = PLANNEDGIFT.ID
                        left join dbo.PLANNEDGIFTVEHICLEOPTIONS on
                            PLANNEDGIFTVEHICLEOPTIONS.VEHICLECODE = PLANNEDGIFT.VEHICLECODE
                    where 
                        (PLANNEDGIFTVEHICLEOPTIONS.AUTOCALCULATEREALIZEDAMOUNT = 1 or @AUTOCALCULATEREALIZEDAMOUNT = 0)
                        and (
                            dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
                            or exists
                            (
                                select 
                                    1
                                from 
                                    dbo.UFN_SITEID_MAPFROM_PLANNEDGIFTID(PLANNEDGIFT.ID) PLANNEDGIFTSITES
                                where 
                                    dbo.UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESS_FORSITE(@CURRENTAPPUSERID, '3269A1D1-31CB-4D28-945C-B7623A3EFCCA', PLANNEDGIFTSITES.SITEID) = 1
                            )
                        )

                    set @NUMBEREDITED = @@ROWCOUNT;

                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch