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