USP_DATAFORMTEMPLATE_EDITLOAD_MATCHINGGIFTPAYMENTADJUST
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@TSLONG | bigint | INOUT | |
@CONSTITUENTID | uniqueidentifier | INOUT | |
@CONSTITUENTNAME | nvarchar(255) | INOUT | |
@AMOUNT | money | INOUT | |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | |
@PAYMENTDATE | date | INOUT | |
@BASECURRENCYID | uniqueidentifier | INOUT | |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | |
@REVENUESTREAMS | xml | INOUT | |
@REMOVEDREVENUESTREAMS | xml | INOUT | |
@MATCHINGGIFTCLAIMSPLITS | xml | INOUT | |
@PAYMENTMETHODCODE | tinyint | INOUT | |
@ADJUSTMENTDATE | datetime | INOUT | |
@ADJUSTMENTPOSTDATE | datetime | INOUT | |
@ADJUSTMENTREASON | nvarchar(300) | INOUT | |
@ADJUSTMENTREASONCODEID | uniqueidentifier | INOUT | |
@ADJUSTMENTPOSTSTATUSCODE | tinyint | INOUT | |
@PENDINGADJUSTMENTCODE | tinyint | INOUT | |
@POSTDATE | datetime | INOUT | |
@ADJUSTMENTID | uniqueidentifier | INOUT | |
@DISABLEADJUSTMENTPOSTSTATUS | bit | INOUT | |
@ALLOWGLDISTRIBUTION | bit | INOUT | |
@PDACCOUNTSYSTEMID | uniqueidentifier | INOUT | |
@REQUIREDEPOSIT | bit | INOUT | |
@DEPOSITID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_MATCHINGGIFTPAYMENTADJUST
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@CONSTITUENTID uniqueidentifier = null output,
@CONSTITUENTNAME nvarchar(255) = null output,
@AMOUNT money = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@PAYMENTDATE date = null output,
@BASECURRENCYID uniqueidentifier = null output,
@BASEEXCHANGERATEID uniqueidentifier = null output,
@REVENUESTREAMS xml = null output,
@REMOVEDREVENUESTREAMS xml = null output,
@MATCHINGGIFTCLAIMSPLITS xml = null output,
@PAYMENTMETHODCODE tinyint = null output,
@ADJUSTMENTDATE datetime = null output,
@ADJUSTMENTPOSTDATE datetime = null output,
@ADJUSTMENTREASON nvarchar(300) = null output,
@ADJUSTMENTREASONCODEID uniqueidentifier = null output,
@ADJUSTMENTPOSTSTATUSCODE tinyint = null output,
@PENDINGADJUSTMENTCODE tinyint = null output,
@POSTDATE datetime = null output,
@ADJUSTMENTID uniqueidentifier = null output,
@DISABLEADJUSTMENTPOSTSTATUS bit = null output,
@ALLOWGLDISTRIBUTION bit = null output,
@PDACCOUNTSYSTEMID uniqueidentifier = null output,
@REQUIREDEPOSIT bit = null output,
@DEPOSITID uniqueidentifier = null output
)
as
set nocount on;
set @DATALOADED = 0;
select
@DATALOADED = 1,
@AMOUNT = sum(FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT)
from
dbo.FINANCIALTRANSACTION
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
--Get only applications paying a matching gift claim by inner joining to dbo.INSTALLMENTSPLITPAYMENT.
-- Unapplied matching gift payments would not have an installment split payment row because there is
-- no commitment being paid.
inner join dbo.INSTALLMENTSPLITPAYMENT on REVENUESPLIT_EXT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where
FINANCIALTRANSACTION.ID = @ID
and FINANCIALTRANSACTION.TYPECODE = 0 --Payment
and REVENUESPLIT_EXT.TYPECODE = 0 --Gift
and REVENUESPLIT_EXT.APPLICATIONCODE = 7; --Matching gift
if @DATALOADED = 1
begin
select
@TSLONG = FINANCIALTRANSACTION.TSLONG,
@CONSTITUENTID = FINANCIALTRANSACTION.CONSTITUENTID,
@CONSTITUENTNAME = NF.NAME,
@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
@PAYMENTDATE = FINANCIALTRANSACTION.DATE,
@BASECURRENCYID = CURRENCYSET.BASECURRENCYID,
@BASEEXCHANGERATEID = FINANCIALTRANSACTION.BASEEXCHANGERATEID,
@POSTDATE = FINANCIALTRANSACTION.POSTDATE
from
dbo.FINANCIALTRANSACTION
inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(FINANCIALTRANSACTION.CONSTITUENTID) as NF
where
FINANCIALTRANSACTION.ID = @ID;
select
@PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE
from dbo.REVENUEPAYMENTMETHOD
where REVENUEPAYMENTMETHOD.REVENUEID = @ID;
select
@ADJUSTMENTDATE = getdate(),
@ADJUSTMENTPOSTSTATUSCODE = 0;
select top 1
@ADJUSTMENTDATE = ADJUSTMENT.DATE,
@ADJUSTMENTPOSTDATE = ADJUSTMENT.POSTDATE,
@ADJUSTMENTPOSTSTATUSCODE = ADJUSTMENT.POSTSTATUSCODE,
@ADJUSTMENTREASON = ADJUSTMENT.REASON,
@ADJUSTMENTREASONCODEID = ADJUSTMENT.REASONCODEID,
@ADJUSTMENTID = ADJUSTMENT.ID,
@DISABLEADJUSTMENTPOSTSTATUS = case when (ADJUSTMENT.POSTSTATUSCODE <> 0 and ADJUSTMENT.ADJUSTMENTCODE <> 0) then 1 else 0 end
from dbo.ADJUSTMENT
where ADJUSTMENT.REVENUEID = @ID
order by dateadded desc;
if @ADJUSTMENTREASONCODEID is null
begin
select
@ADJUSTMENTDATE = DATE,
@ADJUSTMENTPOSTDATE = POSTDATE,
@ADJUSTMENTPOSTSTATUSCODE = 1,
@ADJUSTMENTREASON = REASON,
@ADJUSTMENTREASONCODEID = REASONCODEID,
@ADJUSTMENTID = ID
from dbo.BENEFITADJUSTMENT
where REVENUEID = @ID and POSTSTATUSCODE = 1
end
declare @REVENUEPAYMENTMETHODID uniqueidentifier
select @REVENUEPAYMENTMETHODID = ID
from dbo.REVENUEPAYMENTMETHOD
where REVENUEID = @ID;
set @PENDINGADJUSTMENTCODE = 0;
if @PENDINGADJUSTMENTCODE = 0
begin
if ((select count(STOCKSALEADJUSTMENT.ID) from dbo.STOCKSALEADJUSTMENT
inner join dbo.STOCKSALE on STOCKSALEADJUSTMENT.STOCKSALEID = STOCKSALE.ID
where STOCKSALE.STOCKDETAILID = @REVENUEPAYMENTMETHODID and STOCKSALEADJUSTMENT.POSTSTATUSCODE <> 0) > 0)
set @PENDINGADJUSTMENTCODE = 1;
end
if @PENDINGADJUSTMENTCODE = 0
begin
if ((select count(GIFTINKINDSALEADJUSTMENT.ID) from dbo.GIFTINKINDSALEADJUSTMENT
inner join dbo.GIFTINKINDSALE on GIFTINKINDSALEADJUSTMENT.GIFTINKINDSALEID = GIFTINKINDSALE.ID
where GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = @REVENUEPAYMENTMETHODID and GIFTINKINDSALEADJUSTMENT.POSTSTATUSCODE <> 0) > 0)
set @PENDINGADJUSTMENTCODE = 1;
end
if @PENDINGADJUSTMENTCODE = 0
begin
if ((select count(PROPERTYDETAILADJUSTMENT.ID) from dbo.PROPERTYDETAILADJUSTMENT
where PROPERTYDETAILADJUSTMENT.PROPERTYDETAILID = @REVENUEPAYMENTMETHODID and PROPERTYDETAILADJUSTMENT.POSTSTATUSCODE <> 0) > 0)
set @PENDINGADJUSTMENTCODE = 1;
end
select @DEPOSITID = DEPOSITID
from dbo.BANKACCOUNTDEPOSITPAYMENT
where ID = @ID;
if @ADJUSTMENTPOSTDATE is null
begin
if not @DEPOSITID is null
select @ADJUSTMENTPOSTDATE = POSTDATE
from dbo.BANKACCOUNTDEPOSITPAYMENT
inner join dbo.BANKACCOUNTDEPOSIT on BANKACCOUNTDEPOSITPAYMENT.DEPOSITID = BANKACCOUNTDEPOSIT.ID
inner join dbo.BANKACCOUNTTRANSACTION on BANKACCOUNTDEPOSIT.ID = BANKACCOUNTTRANSACTION.ID
where BANKACCOUNTDEPOSITPAYMENT.ID = @ID;
else
select @ADJUSTMENTPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
end
-- Check GL business rule for this account system and set to 'Do not post' if needed.
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID, @REQUIREDEPOSIT = PDACCOUNTSYSTEM.REQUIREDPOSIT
from dbo.PDACCOUNTSYSTEMFORREVENUE
inner join dbo.PDACCOUNTSYSTEM on PDACCOUNTSYSTEMFORREVENUE.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
where PDACCOUNTSYSTEMFORREVENUE.ID = @ID;
set @ALLOWGLDISTRIBUTION = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
end
return 0;