USP_DATAFORMTEMPLATE_ADD_REVENUEOPPORTUNITYLINK
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@REVENUEID | uniqueidentifier | IN | |
@OPPORTUNITYID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@RESETSOLICITORCREDITS | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_REVENUEOPPORTUNITYLINK
(
@ID uniqueidentifier = null output,
@REVENUEID uniqueidentifier,
@OPPORTUNITYID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@RESETSOLICITORCREDITS bit = null
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime = getdate();
if @RESETSOLICITORCREDITS = 1
begin
delete from dbo.REVENUESOLICITOR where REVENUESOLICITOR.REVENUESPLITID in (select ID from dbo.FINANCIALTRANSACTIONLINEITEM where FINANCIALTRANSACTIONID = @REVENUEID);
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @PROSPECTPLANID uniqueidentifier;
select
@BASECURRENCYID = REVENUE_EXT.NONPOSTABLEBASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID = FINANCIALTRANSACTION.ORGEXCHANGERATEID
from dbo.REVENUE_EXT
inner join dbo.FINANCIALTRANSACTION on REVENUE_EXT.ID = FINANCIALTRANSACTION.ID
where REVENUE_EXT.ID = @REVENUEID;
select
@PROSPECTPLANID = PROSPECTPLANID
from
dbo.OPPORTUNITY
where
ID = @OPPORTUNITYID;
insert into dbo.REVENUESOLICITOR
(
REVENUESPLITID,
CONSTITUENTID,
AMOUNT,
SEQUENCE,
DATEADDED,
DATECHANGED,
ADDEDBYID,
CHANGEDBYID,
BASECURRENCYID,
ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID
)
select
FINANCIALTRANSACTIONLINEITEM.ID,
SOLICITORS.ID,
(SOLICITORS.CREDITPERCENTAGE * FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT) / 100.0,
SOLICITORS.SEQUENCE,
@CURRENTDATE,
@CURRENTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@BASECURRENCYID BASECURRENCYID,
case --Multicurrency - AdamBu 3/30/10 - Calculate organization amount.
when @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
then dbo.UFN_CURRENCY_CONVERT((SOLICITORS.CREDITPERCENTAGE * FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT) / 100.0, @ORGANIZATIONEXCHANGERATEID)
else (SOLICITORS.CREDITPERCENTAGE * FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT) / 100.0
end ORGANIZATIONAMOUNT,
@ORGANIZATIONEXCHANGERATEID ORGANIZATIONEXCHANGERATEID
from FINANCIALTRANSACTIONLINEITEM
cross join dbo.UFN_PROSPECTPLAN_GETFUNDRAISERSANDCREDITS_2(@PROSPECTPLANID, @OPPORTUNITYID) as SOLICITORS
where FINANCIALTRANSACTIONID = @REVENUEID;
end
begin try
insert into dbo.REVENUEOPPORTUNITY
(
ID,
OPPORTUNITYID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
FINANCIALTRANSACTIONLINEITEM.ID,
@OPPORTUNITYID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.FINANCIALTRANSACTIONLINEITEM
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @REVENUEID and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
union all
select
FINANCIALTRANSACTIONLINEITEM.ID,
@OPPORTUNITYID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.FINANCIALTRANSACTIONLINEITEM
left join dbo.FINANCIALTRANSACTIONLINEITEM SOURCE on SOURCE.ID = FINANCIALTRANSACTIONLINEITEM.SOURCELINEITEMID
where FINANCIALTRANSACTIONLINEITEM.SOURCELINEITEMID = SOURCE.ID
and SOURCE.FINANCIALTRANSACTIONID = @REVENUEID and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;