USP_BBNC_COMMITFUNDRAISERTEAMFUNDRAISERUPDATE
Updates a team fundraiser's information from a fundraiser Blackbaud Internet Solutions transaction to the system from a given batch.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@GOAL | money | IN | |
@CONSTITUENCYCODEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN | |
@ISOCODE | nvarchar(3) | IN |
Definition
Copy
CREATE procedure dbo.USP_BBNC_COMMITFUNDRAISERTEAMFUNDRAISERUPDATE
(
@ID uniqueidentifier,
@GOAL money,
@CONSTITUENCYCODEID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null,
@ISOCODE nvarchar(3) = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHANGEDATE is null
set @CHANGEDATE = getdate();
set @CURRENTDATE = getdate();
--Multicurrency Info Grab
declare @TRANSACTIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETCURRENCYFROMISO(@ISOCODE)
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID,dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),@CHANGEDATE,1,null)
declare @ORGANIZATIONAMOUNT money = dbo.UFN_CURRENCY_CONVERT(@GOAL,@ORGANIZATIONEXCHANGERATEID)
if dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY() <> @TRANSACTIONCURRENCYID
begin
set @GOAL = dbo.UFN_CURRENCY_CONVERT(@GOAL,@ORGANIZATIONEXCHANGERATEID)
end
begin try
update dbo.TEAMFUNDRAISER set
[GOAL] = @GOAL,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CHANGEDATE,
[ORGANIZATIONGOAL] = @ORGANIZATIONAMOUNT,
[ORGANIZATIONEXCHANGERATEID] = @ORGANIZATIONEXCHANGERATEID
where
[ID] = @ID;
if @CONSTITUENCYCODEID is not null
begin
declare @CONSTITUENTID uniqueidentifier;
select
@CONSTITUENTID = [TEAMFUNDRAISER].[CONSTITUENTID]
from
dbo.TEAMFUNDRAISER
where
[TEAMFUNDRAISER].[ID] = @ID;
if not exists
(
select
1
from
dbo.CONSTITUENCY
where
[CONSTITUENTID] = @CONSTITUENTID
and [CONSTITUENCYCODEID] = @CONSTITUENCYCODEID
and
(
([DATEFROM] is null and [DATETO] is null)
or ([DATEFROM] <= dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE) and [DATETO] is null)
or ([DATEFROM] is null and dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE) <= [DATETO])
or (dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE) between [DATEFROM] and [DATETO])
)
)
begin
declare @CONSTITUENCYDATETO datetime;
select top (1)
@CONSTITUENCYDATETO = dateadd(day, -1, [CONSTITUENCY].[DATEFROM])
from
dbo.CONSTITUENCY
where
[CONSTITUENCY].[CONSTITUENTID] = @CONSTITUENTID
and [CONSTITUENCY].[CONSTITUENCYCODEID] = @CONSTITUENCYCODEID
and [CONSTITUENCY].[DATEFROM] > dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE)
order by
[DATETO];
insert into dbo.CONSTITUENCY
(
[CONSTITUENTID],
[CONSTITUENCYCODEID],
[DATEFROM],
[DATETO],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@CONSTITUENTID,
@CONSTITUENCYCODEID,
dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE),
dbo.UFN_DATE_GETEARLIESTTIME(@CONSTITUENCYDATETO),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
);
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;