USP_DONORCHALLENGE_ADDLUMPSUM
This stored procedure is used by the donor challenge to create a lump sum record
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DONORCHALLENGE_ADDLUMPSUM
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on
begin try
declare @CURRENTDATE datetime = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @REVID uniqueidentifier;
declare @SPONSORID uniqueidentifier;
declare @REVENUERECOGNITIONTYPECODEID uniqueidentifier;
declare @DONORCHALLENGETYPECODE int;
declare @DATE datetime;
declare @AMOUNT money;
declare @REVENUESPLITID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @BASEAMOUNT money;
declare @ORGANIZATIONAMOUNT money;
set @DATE = dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE);
select
@SPONSORID = DONORCHALLENGE.EXTERNALSPONSORID,
@REVENUERECOGNITIONTYPECODEID = DONORCHALLENGE.REVENUERECOGNITIONTYPECODEID,
@DONORCHALLENGETYPECODE = DONORCHALLENGE.TYPECODE,
@AMOUNT = DONORCHALLENGE.TOTALFUNDS,
@REVID = DONORCHALLENGE.LUMPSUMMATCHREVENUEID,
@BASECURRENCYID = DONORCHALLENGE.BASECURRENCYID
from dbo.DONORCHALLENGE
where DONORCHALLENGE.ID = @ID;
exec dbo.USP_CURRENCY_GETCURRENCYVALUES @AMOUNT,
@CURRENTDATE,
@BASECURRENCYID,
@BASEEXCHANGERATEID output,
@BASECURRENCYID,
@BASEAMOUNT output,
@ORGANIZATIONCURRENCYID,
@ORGANIZATIONAMOUNT output,
@ORGANIZATIONEXCHANGERATEID output;
if @DONORCHALLENGETYPECODE <> 1
begin
raiserror('BBERR_DONORCHALLENGE_NOTLUMPSUM', 13, 1);
return 0;
end
if @REVID is not null
begin
raiserror('BBERR_DONORCHALLENGE_LUMPSUMREVENUEEXISTS', 13, 1);
return 0;
end
if @SPONSORID is not null
begin
set @REVID = newid();
--Add Revenue
insert into dbo.REVENUE (
ID,
CONSTITUENTID,
DATE,
DONOTPOST,
POSTDATE,
DONOTRECEIPT,
AMOUNT,
TRANSACTIONTYPECODE,
RECEIPTAMOUNT,
BASECURRENCYID,
TRANSACTIONCURRENCYID,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID,
BASEEXCHANGERATEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@REVID,
@SPONSORID,
@DATE,
1,
null,
1,
@AMOUNT,
8,
0,
@BASECURRENCYID,
@BASECURRENCYID,
@AMOUNT,
@ORGANIZATIONAMOUNT,
@ORGANIZATIONEXCHANGERATEID,
@BASEEXCHANGERATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
--Add origination source
exec dbo.USP_REVENUE_ADDORIGIN @REVID, @SPONSORID, @CHANGEAGENTID, @CURRENTDATE;
--Add applications
insert into dbo.REVENUESPLIT(
REVENUEID,
TYPECODE,
APPLICATIONCODE,
AMOUNT,
DESIGNATIONID,
BASECURRENCYID,
TRANSACTIONCURRENCYID,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID,
BASEEXCHANGERATEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@REVID,
0,
0,
DONORCHALLENGESPLIT.AMOUNT,
DONORCHALLENGESPLIT.DESIGNATIONID,
@BASECURRENCYID,
@BASECURRENCYID,
@AMOUNT,
@ORGANIZATIONAMOUNT,
@ORGANIZATIONEXCHANGERATEID,
@BASEEXCHANGERATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.DONORCHALLENGESPLIT
where
DONORCHALLENGEID = @ID;
exec dbo.USP_REVENUE_ADDCAMPAIGNS @REVID, @CHANGEAGENTID, @CURRENTDATE;
--Add Payment method
insert into dbo.REVENUEPAYMENTMETHOD (REVENUEID, PAYMENTMETHODCODE, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@REVID, 9, @AMOUNT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE ,@CURRENTDATE);
insert into dbo.REVENUESCHEDULE (ID, STARTDATE, FREQUENCYCODE, NUMBEROFINSTALLMENTS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@REVID, @DATE, 5, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
insert into dbo.INSTALLMENT (
ID,
REVENUEID,
AMOUNT,
DATE,
SEQUENCE,
BASECURRENCYID,
TRANSACTIONCURRENCYID,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID,
BASEEXCHANGERATEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
newid(),
@REVID,
@AMOUNT,
@DATE,
1,
@BASECURRENCYID,
@BASECURRENCYID,
@AMOUNT,
@ORGANIZATIONAMOUNT,
@ORGANIZATIONEXCHANGERATEID,
@BASEEXCHANGERATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_PLEDGE_GENERATEINSTALLMENTSPLITS @REVID, @CHANGEAGENTID, @CURRENTDATE;
--Add default Recognition Credits
declare CSR_REVENUESPLITS cursor local fast_forward for
select ID
from dbo.REVENUESPLIT
where REVENUEID = @REVID;
open CSR_REVENUESPLITS
fetch next from CSR_REVENUESPLITS into @REVENUESPLITID;
while (@@FETCH_STATUS = 0)
begin
exec dbo.USP_REVENUEDETAIL_CREATERECOGNITIONS @REVENUESPLITID, @CHANGEAGENTID, @CURRENTDATE, null;
fetch next from CSR_REVENUESPLITS into @REVENUESPLITID;
end
close CSR_REVENUESPLITS
deallocate CSR_REVENUESPLITS
update dbo.DONORCHALLENGE set
LUMPSUMMATCHREVENUEID = @REVID,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
from dbo.DONORCHALLENGE
where ID = @ID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch