USP_DATAFORMTEMPLATE_ADD_REVENUETRIBUTE
The save procedure used by the add dataform template "Revenue Tribute Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@REVENUEID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@TRIBUTEID | uniqueidentifier | IN | Tribute |
@AMOUNT | money | IN | Amount |
@DESIGNATIONID | uniqueidentifier | IN | Default designation |
@APPLYDEFAULTDESIGNATION | bit | IN | Apply default designation to revenue |
@ISTRIBUTEANONYMOUS | bit | IN | Do not display on website |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_REVENUETRIBUTE
(
@ID uniqueidentifier = null output,
@REVENUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@TRIBUTEID uniqueidentifier,
@AMOUNT money,
@DESIGNATIONID uniqueidentifier = null,
@APPLYDEFAULTDESIGNATION bit = 0,
@ISTRIBUTEANONYMOUS bit = 0
)
as
set nocount on;
declare @CURRENTDATE datetime;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
declare @ORGANIZATIONAMOUNT money;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
select @BASECURRENCYID = BASECURRENCYID from REVENUE where REVENUE.ID = @REVENUEID
exec dbo.USP_CURRENCY_GETCURRENCYVALUES @AMOUNT, @CURRENTDATE, @BASECURRENCYID, null, null, null, null, @ORGANIZATIONAMOUNT output, @ORGANIZATIONEXCHANGERATEID output, 1;
begin try
if dbo.UFN_REVENUETRIBUTE_VALIDAMOUNT(@ID, @REVENUEID, @AMOUNT) = 0
raiserror('The sum of the tribute amounts cannot be greater than the revenue amount.', 13, 1)
insert into dbo.REVENUETRIBUTE
(ID, REVENUEID, TRIBUTEID, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, BASECURRENCYID, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, ISTRIBUTEANONYMOUS)
values
(@ID, @REVENUEID, @TRIBUTEID, @AMOUNT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @BASECURRENCYID, @ORGANIZATIONAMOUNT, @ORGANIZATIONEXCHANGERATEID, @ISTRIBUTEANONYMOUS);
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1
begin
exec dbo.USP_REVENUETRIBUTETAXCLAIMAMOUNT_ADDUPDATE @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
end
insert into dbo.REVENUETRIBUTELETTER(ID,REVENUETRIBUTEID,CONSTITUENTID,TRIBUTELETTERCODEID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
select newid(),@ID,TA.CONSTITUENTID,TA.TRIBUTELETTERCODEID,@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.REVENUETRIBUTE RT
inner join dbo.TRIBUTEACKNOWLEDGEE TA on RT.TRIBUTEID = TA.TRIBUTEID
where TA.TRIBUTELETTERCODEID is not null and
RT.ID not in (select RTL.REVENUETRIBUTEID from dbo.REVENUETRIBUTELETTER RTL) and
RT.REVENUEID = @REVENUEID;
if (@APPLYDEFAULTDESIGNATION = 1) and (@DESIGNATIONID is not null)
begin
--Cache CONTEXT INFO
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
declare @REVENUEBASEAMOUNT money;
declare @REVENUEBASECURRENCYID uniqueidentifier;
declare @REVENUEBASEEXCHANGERATEID uniqueidentifier;
declare @REVENUEORGANIZATIONAMOUNT money;
declare @REVENUETRANSACTIONAMOUNT money;
declare @REVENUETRANSACTIONCURRENCYID uniqueidentifier;
declare @REVENUEORGANIZATIONEXCHANGERATEID uniqueidentifier;
select
@REVENUEBASEAMOUNT = AMOUNT,
@REVENUEBASECURRENCYID = BASECURRENCYID,
@REVENUEBASEEXCHANGERATEID = BASEEXCHANGERATEID,
@REVENUEORGANIZATIONAMOUNT = ORGANIZATIONAMOUNT,
@REVENUETRANSACTIONAMOUNT = TRANSACTIONAMOUNT,
@REVENUETRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID,
@REVENUEORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID
from
dbo.REVENUE
where
ID = @REVENUEID;
delete from dbo.REVENUESPLIT where REVENUEID = @REVENUEID;
insert into dbo.REVENUESPLIT(ID,REVENUEID,DESIGNATIONID,AMOUNT,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED, BASECURRENCYID, BASEEXCHANGERATEID, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, TRANSACTIONAMOUNT, TRANSACTIONCURRENCYID)
values(newid(),@REVENUEID,@DESIGNATIONID,@REVENUEBASEAMOUNT,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE, @REVENUEBASECURRENCYID, @REVENUEBASEEXCHANGERATEID, @REVENUEORGANIZATIONAMOUNT, @REVENUEORGANIZATIONEXCHANGERATEID, @REVENUETRANSACTIONAMOUNT, @REVENUETRANSACTIONCURRENCYID);
--Reset installments if needed;
delete from dbo.INSTALLMENTSPLIT where PLEDGEID = @REVENUEID;
exec dbo.USP_PLEDGE_GENERATEINSTALLMENTSPLITS @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
-- Add new GL distributions
if exists(select top 1 ID from dbo.REVENUE where ID = @REVENUEID and DONOTPOST = 0)
begin
-- Clear GL
delete from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @REVENUEID and OUTDATED = 0;
--reload GL
exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
end
--Restore CONTEXT INFO
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;