USP_OTHER_ADDPAYMENT
Adds a payment of other.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@AMOUNT | money | IN | |
@DESIGNATIONID | uniqueidentifier | IN | |
@OTHERTYPECODEID | uniqueidentifier | IN | |
@CAMPAIGNS | xml | IN | |
@RECOGNITIONCREDITS | xml | IN | |
@SOLICITORS | xml | IN | |
@CATEGORYCODEID | uniqueidentifier | IN | |
@CREATIONDATE | datetime | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@BASEAMOUNT | money | IN | |
@ORGANIZATIONAMOUNT | money | IN |
Definition
Copy
CREATE procedure dbo.USP_OTHER_ADDPAYMENT
(
@REVENUEID uniqueidentifier,
@AMOUNT money,
@DESIGNATIONID uniqueidentifier,
@OTHERTYPECODEID uniqueidentifier,
@CAMPAIGNS xml,
@RECOGNITIONCREDITS xml,
@SOLICITORS xml,
@CATEGORYCODEID uniqueidentifier,
@CREATIONDATE datetime = null,
@CHANGEAGENTID uniqueidentifier = null,
@BASEAMOUNT money = null,
@ORGANIZATIONAMOUNT money = null
)
as
set nocount on;
declare @ID uniqueidentifier;
set @ID = newid();
-- Get multicurrency values from the revenue.
declare @TRANSACTIONCURRENCYID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @DATE datetime;
declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @POSTDATE date;
declare @POSTSTATUSCODE tinyint;
select
@TRANSACTIONCURRENCYID = FT.TRANSACTIONCURRENCYID,
@BASECURRENCYID = V.BASECURRENCYID,
@BASEEXCHANGERATEID = FT.BASEEXCHANGERATEID,
@ORGANIZATIONEXCHANGERATEID = FT.ORGEXCHANGERATEID,
@DATE = cast(FT.DATE as datetime),
@POSTDATE = FT.POSTDATE,
@POSTSTATUSCODE = case FT.POSTSTATUSCODE when 2 then 1 else FT.POSTSTATUSCODE end
from dbo.FINANCIALTRANSACTION FT
inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V on V.FINANCIALTRANSACTIONID = FT.ID
where FT.ID = @REVENUEID;
-- Convert the applied amount into base and organization amounts if it is not provided by the caller
if @BASEAMOUNT is null or @ORGANIZATIONAMOUNT is null
exec dbo.USP_CURRENCY_GETCURRENCYVALUES @AMOUNT, @DATE, @BASECURRENCYID, @BASEEXCHANGERATEID output, @TRANSACTIONCURRENCYID output, @BASEAMOUNT output, null, @ORGANIZATIONAMOUNT output, @ORGANIZATIONEXCHANGERATEID output, 0, @BASETOORGANIZATIONEXCHANGERATEID output
else
set @BASETOORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTBASETOORGANIZATIONRATE(@BASECURRENCYID, @DATE, null, @ORGANIZATIONEXCHANGERATEID);
declare @ADJUSTMENTPOSTSTATUSCODE tinyint;
declare @ADJUSTMENTPOSTDATE date;
declare @ADJUSTMENTID uniqueidentifier;
select top 1
@ADJUSTMENTPOSTSTATUSCODE = case A.POSTSTATUSCODE when 2 then 3 else 1 end
,@ADJUSTMENTPOSTDATE = A.POSTDATE
,@ADJUSTMENTID = ALI.ID
from dbo.ADJUSTMENT A
left join dbo.FINANCIALTRANSACTIONLINEITEMADJUSTMENT ALI on A.ID = ALI.ID
where A.REVENUEID = @REVENUEID
order by A.DATEADDED desc;
insert into dbo.FINANCIALTRANSACTIONLINEITEM
(ID
,FINANCIALTRANSACTIONID
,TRANSACTIONAMOUNT
,VISIBLE
,DESCRIPTION
,SEQUENCE
,TYPECODE
,POSTDATE
,POSTSTATUSCODE
,BASEAMOUNT
,ORGAMOUNT
,FINANCIALTRANSACTIONLINEITEMADJUSTMENTID
-- Boilerplate
,ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ID
,@REVENUEID
,@AMOUNT
,1
,''
,1
,0
,isnull(@ADJUSTMENTPOSTDATE, @POSTDATE)
,isnull(@ADJUSTMENTPOSTSTATUSCODE, @POSTSTATUSCODE)
,@BASEAMOUNT
,@ORGANIZATIONAMOUNT
,@ADJUSTMENTID
,@CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE)
merge dbo.REVENUESPLIT_EXT as target
using (select @ID [ID]) as source
on (source.ID = target.ID)
when matched then
update set
DESIGNATIONID = @DESIGNATIONID
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CREATIONDATE
when not matched then
insert
(
ID
,DESIGNATIONID
,TYPECODE
,APPLICATIONCODE
,OVERRIDEBUSINESSUNITS
,REVENUESPLITBUSINESSUNITOVERRIDECODEID
-- boilerplate
,ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@ID
,@DESIGNATIONID
,4
,4
,0
,null
-- boilerplate
,@CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE);
insert into dbo.REVENUESPLITOTHER(ID, OTHERTYPECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @OTHERTYPECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE);
exec dbo.USP_REVENUESPLIT_GETCAMPAIGNS_ADDFROMXML @ID, @CAMPAIGNS, @CHANGEAGENTID;
set @RECOGNITIONCREDITS = dbo.UFN_REVENUERECOGNITION_CONVERTAMOUNTSINXML(@RECOGNITIONCREDITS, @BASECURRENCYID, @BASETOORGANIZATIONEXCHANGERATEID);
exec dbo.USP_REVENUE_GETRECOGNITIONS_2_ADDFROMXML @ID, @RECOGNITIONCREDITS, @CHANGEAGENTID;
set @SOLICITORS = dbo.UFN_REVENUESOLICITOR_CONVERTAMOUNTSINXML(@SOLICITORS, @BASECURRENCYID, @BASETOORGANIZATIONEXCHANGERATEID);
exec dbo.USP_REVENUE_GETSOLICITORS_2_ADDFROMXML @ID, @SOLICITORS, @CHANGEAGENTID;
exec dbo.USP_REVENUECATEGORY_ADDEDIT @ID, @CATEGORYCODEID, @CHANGEAGENTID;