USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEADJUST_4
The load procedure used by the edit dataform template "Posted Pledge Edit Form 4"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@CONSTITUENTID | uniqueidentifier | INOUT | |
@CONSTITUENTNAME | nvarchar(255) | INOUT | Constituent |
@DATE | datetime | INOUT | Date |
@AMOUNT | money | INOUT | Amount |
@POSTSTATUSCODE | tinyint | INOUT | Post status |
@POSTDATE | datetime | INOUT | Post date |
@SENDPLEDGEREMINDER | bit | INOUT | Send pledge reminders |
@SPLITS | xml | INOUT | Designations |
@FREQUENCYCODE | tinyint | INOUT | Frequency |
@NUMBEROFINSTALLMENTS | int | INOUT | No. installments remaining |
@NEXTTRANSACTIONDATE | datetime | INOUT | Next installment date |
@AMOUNTPAID | money | INOUT | Amount paid |
@INSTALLMENTS | xml | INOUT | |
@FINDERNUMBER | bigint | INOUT | Finder number |
@SOURCECODE | nvarchar(50) | INOUT | Source code |
@APPEALID | uniqueidentifier | INOUT | Appeal |
@BENEFITS | xml | INOUT | Benefits |
@BENEFITSWAIVED | bit | INOUT | Benefits waived |
@GIVENANONYMOUSLY | bit | INOUT | Pledge is anonymous |
@MAILINGID | uniqueidentifier | INOUT | Mailing |
@CHANNELCODEID | uniqueidentifier | INOUT | Inbound channel |
@DONOTACKNOWLEDGE | bit | INOUT | Do not acknowledge |
@PLEDGESUBTYPEID | uniqueidentifier | INOUT | Subtype |
@MAXSOFTCREDITAMOUNT | money | INOUT | Max soft credit amount |
@MAXSOLICITORAMOUNT | money | INOUT | Max solicitor amount |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@MAINSINGLEDESIGNATIONID | uniqueidentifier | INOUT | Designation |
@FINDERNUMBERVALID | bit | INOUT | FINDERNUMBERVALID |
@OPPORTUNITYID | uniqueidentifier | INOUT | Opportunity |
@OPPORTUNITYCONSTITUENTNAME | nvarchar(154) | INOUT | |
@OPPORTUNITYASKDATE | datetime | INOUT | |
@OPPORTUNITYASKAMOUNT | money | INOUT | |
@LASTPAYMENTSEQUENCE | int | INOUT | Installment sequence of last payment |
@REFERENCE | nvarchar(255) | INOUT | Reference |
@CATEGORYCODEID | uniqueidentifier | INOUT | Revenue category |
@ADJUSTMENTDATE | datetime | INOUT | Adjusted date |
@ADJUSTMENTPOSTDATE | datetime | INOUT | Adjusted post date |
@ADJUSTMENTPOSTSTATUSCODE | tinyint | INOUT | Post status code |
@ADJUSTMENTREASON | nvarchar(300) | INOUT | Adjustment description |
@ADJUSTMENTREASONCODEID | uniqueidentifier | INOUT | Adjustment reason |
@HASPOSTEDPAYMENTS | bit | INOUT | Pledge has posted payments |
@ADJPAYMENT_DATE | datetime | INOUT | Adjustment date |
@ADJPAYMENT_POSTDATE | datetime | INOUT | Adjustment post date |
@ADJPAYMENT_REASONCODEID | uniqueidentifier | INOUT | Adjustment reason |
@ADJPAYMENT_DETAILS | nvarchar(255) | INOUT | Adjustment details |
@PERCENTAGEBENEFITS | xml | INOUT | Benefits |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@HADSPOTRATE | bit | INOUT | Had spot rate |
@RATECHANGED | bit | INOUT | Rate changed |
@BASEDECIMALDIGITS | tinyint | INOUT | Decimal digits |
@BASEROUNDINGTYPECODE | tinyint | INOUT | Rounding type |
@TRANSACTIONCURRENCYDESCRIPTION | nvarchar(110) | INOUT | Transaction currency description |
@HASRECOGNITIONCREDIT | bit | INOUT | Has recognition credits |
@UPDATERECOGNITIONOPTION | tinyint | INOUT | Update recognition option |
@UPDATETRIBUTEOPTION | tinyint | INOUT | Tribute update option |
@HASTRIBUTE | bit | INOUT | Has tribute |
@VALIDATETRIBUTES | bit | INOUT | Validate tributes |
@ALLOWGLDISTRIBUTIONS | bit | INOUT | |
@ISMEMBERSHIPPLEDGE | bit | INOUT | |
@HASPAYMENTS | bit | INOUT | |
@PROMPTONADJUSTMENTDATECHANGE | bit | INOUT | |
@ADJPAYMENT_POSTDATEDEPOSIT | datetime | INOUT | |
@INSTALLMENTAMOUNT | money | INOUT | |
@ORIGINALINSTALLMENTAMOUNT | money | INOUT | |
@TOTALAMOUNTWRITTENOFF | money | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEADJUST_4 (
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@CONSTITUENTID uniqueidentifier = null output
,@CONSTITUENTNAME nvarchar(255) = null output
,@DATE datetime = null output
,@AMOUNT money = null output
,@POSTSTATUSCODE tinyint = null output
,@POSTDATE datetime = null output
,@SENDPLEDGEREMINDER bit = null output
,@SPLITS xml = null output
,@FREQUENCYCODE tinyint = null output
,@NUMBEROFINSTALLMENTS int = null output
,@NEXTTRANSACTIONDATE datetime = null output
,@AMOUNTPAID money = null output
,@INSTALLMENTS xml = null output
,@FINDERNUMBER bigint = null output
,@SOURCECODE nvarchar(50) = null output
,@APPEALID uniqueidentifier = null output
,@BENEFITS xml = null output
,@BENEFITSWAIVED bit = null output
,@GIVENANONYMOUSLY bit = null output
,@MAILINGID uniqueidentifier = null output
,@CHANNELCODEID uniqueidentifier = null output
,@DONOTACKNOWLEDGE bit = null output
,@PLEDGESUBTYPEID uniqueidentifier = null output
,@MAXSOFTCREDITAMOUNT money = null output
,@MAXSOLICITORAMOUNT money = null output
,@TSLONG bigint = 0 output
,@MAINSINGLEDESIGNATIONID uniqueidentifier = null output
,@FINDERNUMBERVALID bit = null output
,@OPPORTUNITYID uniqueidentifier = null output
,@OPPORTUNITYCONSTITUENTNAME nvarchar(154) = null output
,@OPPORTUNITYASKDATE datetime = null output
,@OPPORTUNITYASKAMOUNT money = null output
,@LASTPAYMENTSEQUENCE int = null output
,@REFERENCE nvarchar(255) = null output
,@CATEGORYCODEID uniqueidentifier = null output
,@ADJUSTMENTDATE datetime = null output
,@ADJUSTMENTPOSTDATE datetime = null output
,@ADJUSTMENTPOSTSTATUSCODE tinyint = null output
,@ADJUSTMENTREASON nvarchar(300) = null output
,@ADJUSTMENTREASONCODEID uniqueidentifier = null output
,@HASPOSTEDPAYMENTS bit = null output
,@ADJPAYMENT_DATE datetime = null output
,@ADJPAYMENT_POSTDATE datetime = null output
,@ADJPAYMENT_REASONCODEID uniqueidentifier = null output
,@ADJPAYMENT_DETAILS nvarchar(255) = null output
,@PERCENTAGEBENEFITS xml = null output
,@BASECURRENCYID uniqueidentifier = null output
,@TRANSACTIONCURRENCYID uniqueidentifier = null output
,@BASEEXCHANGERATEID uniqueidentifier = null output
,@EXCHANGERATE decimal(20, 8) = null output
,@HADSPOTRATE bit = null output
,@RATECHANGED bit = null output
,@BASEDECIMALDIGITS tinyint = null output
,@BASEROUNDINGTYPECODE tinyint = null output
,@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output
,@HASRECOGNITIONCREDIT bit = null output
,@UPDATERECOGNITIONOPTION tinyint = null output
,@UPDATETRIBUTEOPTION tinyint = null output
,@HASTRIBUTE bit = null output
,@VALIDATETRIBUTES bit = null output
,@ALLOWGLDISTRIBUTIONS bit = null output
,@ISMEMBERSHIPPLEDGE bit = null output
,@HASPAYMENTS bit = null output
,@PROMPTONADJUSTMENTDATECHANGE bit = null output
,@ADJPAYMENT_POSTDATEDEPOSIT datetime = null output
,@INSTALLMENTAMOUNT money = null output
,@ORIGINALINSTALLMENTAMOUNT money = null output
,@TOTALAMOUNTWRITTENOFF money = null output
)
as
begin
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
declare @LASTINSTALLMENT uniqueidentifier;
declare @LASTUNPAIDINSTALLMENTSEQUENCE int;
declare @FIRSTUNPAIDINSTALLMENTSEQUENCE int;
declare @MAXINSTALLMENTSEQUENCE int;
select @ADJUSTMENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate())
,@ADJUSTMENTPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate())
,@ADJUSTMENTPOSTSTATUSCODE = 0
select @DATALOADED = 1
,@CONSTITUENTID = CONSTITUENT.ID
,@CONSTITUENTNAME = CONSTITUENT.name
,@DATE = REVENUE.[DATE]
,@AMOUNT = REVENUE.TRANSACTIONAMOUNT
,@POSTSTATUSCODE = 0
,@MAXSOFTCREDITAMOUNT = 0
,@MAXSOLICITORAMOUNT = coalesce((
select max(AMOUNT)
from dbo.REVENUESOLICITOR
where REVENUESPLITID = REVENUE.ID
), 0)
,@POSTDATE = REVENUE.POSTDATE
,@SENDPLEDGEREMINDER = REVENUESCHEDULE.SENDPLEDGEREMINDER
,@FREQUENCYCODE = REVENUESCHEDULE.FREQUENCYCODE
,@NUMBEROFINSTALLMENTS = REVENUESCHEDULE.NUMBEROFINSTALLMENTS
,@NEXTTRANSACTIONDATE = coalesce(REVENUESCHEDULE.NEXTTRANSACTIONDATE, REVENUESCHEDULE.STARTDATE)
,@TSLONG = REVENUE.TSLONG
,@FINDERNUMBER = REVENUE_EXT.FINDERNUMBER
,@SOURCECODE = REVENUE_EXT.SOURCECODE
,@APPEALID = REVENUE_EXT.APPEALID
,@BENEFITSWAIVED = REVENUE_EXT.BENEFITSWAIVED
,@GIVENANONYMOUSLY = REVENUE_EXT.GIVENANONYMOUSLY
,@MAILINGID = REVENUE_EXT.MAILINGID
,@CHANNELCODEID = REVENUE_EXT.CHANNELCODEID
,@DONOTACKNOWLEDGE = REVENUE_EXT.DONOTACKNOWLEDGE
,@PLEDGESUBTYPEID = PLEDGESUBTYPEID
,@REFERENCE = REVENUEREFERENCE.REFERENCE
,@CATEGORYCODEID = (
select top 1 GLREVENUECATEGORYMAPPINGID
from dbo.REVENUECATEGORY
inner join dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT on REVENUECATEGORY.ID = REVENUESPLIT.ID
where REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
and (REVENUESPLIT.DELETEDON is null)
and (REVENUESPLIT.TYPECODE <> 1)
)
,@BASECURRENCYID = BASECURRENCY.ID
,@TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
,@BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID
,@EXCHANGERATE = CURRENCYEXCHANGERATE.RATE
,@HADSPOTRATE = case
when CURRENCYEXCHANGERATE.TYPECODE = 2
then 1
else 0
end
,@RATECHANGED = 0
,@BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS
,@BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
,@TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(REVENUE.TRANSACTIONCURRENCYID)
,@ISMEMBERSHIPPLEDGE = case REVENUE.TYPECODE when 15 then 1 else 0 end
from dbo.FINANCIALTRANSACTION as REVENUE
inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
inner join dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
left outer join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I with (noexpand) on REVENUE.ID = V_BASECURRENCYFORFINANCIALTRANSACTION_I.FINANCIALTRANSACTIONID
cross apply (
select case when REVENUE.DELETEDON is null then isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, V_BASECURRENCYFORFINANCIALTRANSACTION_I.BASECURRENCYID) else null end as ID
) as BASECURRENCY
inner join dbo.CURRENCY on CURRENCY.ID = BASECURRENCY.ID
left join dbo.REVENUEREFERENCE on REVENUE.ID = REVENUEREFERENCE.ID
left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = REVENUE.BASEEXCHANGERATEID
where REVENUE.ID = @ID
and REVENUE.TYPECODE in (1,15);
if @DATALOADED = 1
begin
select @ADJUSTMENTDATE = [DATE]
,@ADJUSTMENTPOSTDATE = POSTDATE
,@ADJUSTMENTPOSTSTATUSCODE = 1
,@ADJUSTMENTREASON = REASON
,@ADJUSTMENTREASONCODEID = REASONCODEID
from dbo.ADJUSTMENT
where REVENUEID = @ID
and POSTSTATUSCODE = 1
select top 1 @ADJPAYMENT_DATE = ADJ.[DATE]
,@ADJPAYMENT_POSTDATE = ADJ.POSTDATE
,@ADJPAYMENT_DETAILS = ADJ.REASON
,@ADJPAYMENT_REASONCODEID = ADJ.REASONCODEID
from (
select A.[DATE]
,A.POSTDATE
,A.REASON
,A.REASONCODEID
from dbo.ADJUSTMENT A
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTL on A.ID = FTL.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID
inner join dbo.INSTALLMENTPAYMENT I on FTL.ID = I.PAYMENTID
where I.PLEDGEID = @ID
and A.POSTSTATUSCODE = 1
and FTL.DELETEDON is null
union all
select A.[DATE]
,A.POSTDATE
,A.REASON
,A.REASONCODEID
from dbo.WRITEOFFADJUSTMENT A
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTL on A.ID = FTL.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID
inner join dbo.FINANCIALTRANSACTION FT on FTL.FINANCIALTRANSACTIONID=FT.ID
where FT.PARENTID=@ID
and A.POSTSTATUSCODE = 1
and FTL.DELETEDON is null
) ADJ
order by ADJ.[DATE] desc
if @ADJUSTMENTREASONCODEID is null
begin
select @ADJUSTMENTDATE = [DATE]
,@ADJUSTMENTPOSTDATE = POSTDATE
,@ADJUSTMENTPOSTSTATUSCODE = 1
,@ADJUSTMENTREASON = REASON
,@ADJUSTMENTREASONCODEID = REASONCODEID
from dbo.BENEFITADJUSTMENT
where REVENUEID = @ID
and POSTSTATUSCODE = 1
end
select top 1 @OPPORTUNITYID = RO.OPPORTUNITYID
,@OPPORTUNITYCONSTITUENTNAME = OC.name
,@OPPORTUNITYASKDATE = O.ASKDATE
,@OPPORTUNITYASKAMOUNT = O.ASKAMOUNT
from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
inner join dbo.FINANCIALTRANSACTION on REVENUESPLIT.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
left join dbo.REVENUEOPPORTUNITY RO on RO.ID = REVENUESPLIT.ID
left join dbo.OPPORTUNITY O on O.ID = RO.OPPORTUNITYID
left join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
left join dbo.CONSTITUENT OC on OC.ID = PP.PROSPECTID
where REVENUESPLIT.FINANCIALTRANSACTIONID = @ID
and FINANCIALTRANSACTION.TYPECODE in (
0
,1
,2
,3
,4
,5
,6
,7
,8
,9
)
and (REVENUESPLIT.DELETEDON is null)
and (REVENUESPLIT.TYPECODE <> 1);
set @AMOUNTPAID = @AMOUNT - dbo.UFN_PLEDGE_GETBALANCE(@ID);
set @MAXINSTALLMENTSEQUENCE = @NUMBEROFINSTALLMENTS;
--Find the first and last installment that have a balance/no payments
select @LASTPAYMENTSEQUENCE = COALESCE(MAX(INSTALLMENT.SEQUENCE), 0)
,@NUMBEROFINSTALLMENTS = COUNT(INSTALLMENT.ID)
from dbo.UFN_INSTALLMENT_GETINSTALLMENTS_2(@ID) INSTALLMENT
where INSTALLMENT.BALANCE > 0;
select @INSTALLMENTAMOUNT = PLEDGEINSTALLMENTOPTION.INSTALLMENTAMOUNT
from dbo.FINANCIALTRANSACTION
left outer join dbo.PLEDGEINSTALLMENTOPTION on FINANCIALTRANSACTION.ID = PLEDGEINSTALLMENTOPTION.ID
where FINANCIALTRANSACTION.ID = @ID and FINANCIALTRANSACTION.DELETEDON is null;
set @ORIGINALINSTALLMENTAMOUNT = @INSTALLMENTAMOUNT;
select @TOTALAMOUNTWRITTENOFF = isnull(SUM(I.AMOUNTWRITTENOFF) ,0)
from dbo.UFN_INSTALLMENT_GETINFO_BULK() I
where I.REVENUEID = @ID
--Bug 70059 - AdamBu 12/8/09 - Ordering the list of splits so that it will be consistent with the list of
-- installment splits, which is important when using "Distribute evenly" on the form. This change was made
-- here instead of in the GETSPLITS function due to performance concerns.
set @SPLITS = (
select SPLITS.TRANSACTIONAMOUNT AMOUNT
,SPLITS.APPLICATIONCODE
,SPLITS.CATEGORYCODEID
,SPLITS.DECLINESGIFTAID
,SPLITS.DESIGNATIONID
,SPLITS.ID
,SPLITS.TYPECODE
,SPLITS.TRANSACTIONCURRENCYID
,SPLITS.BASEEXCHANGERATEID
from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLITS
left join dbo.DESIGNATION on DESIGNATION.ID = SPLITS.DESIGNATIONID
order by DESIGNATION.VANITYNAME
for xml raw('ITEM')
,type
,elements
,root('SPLITS')
,binary BASE64
);
set @INSTALLMENTS = (
select I.ID
,I.[DATE]
,I.TRANSACTIONAMOUNT AMOUNT
,I.TRANSACTIONRECEIPTAMOUNT RECEIPTAMOUNT
,(I.TRANSACTIONAMOUNT - (I.AMOUNTPAID + I.AMOUNTWRITTENOFF)) as BALANCE
,(I.AMOUNTPAID + I.AMOUNTWRITTENOFF) as APPLIED
,I.SEQUENCE
,I.PAYMENTCOUNT
,I.WRITEOFFCOUNT
,I.AMOUNTWRITTENOFF
,(
select SPLITINFO.ID
,SPLITINFO.DESIGNATIONID
,SPLITINFO.TRANSACTIONAMOUNT AMOUNT
,(SPLITINFO.AMOUNTPAID + SPLITINFO.AMOUNTWRITTENOFF) APPLIED
,SPLITINFO.TRANSACTIONCURRENCYID
,SPLITINFO.REVENUESPLITID
,SPLITINFO.PAYMENTCOUNT
,SPLITINFO.WRITEOFFCOUNT
,(
select SPLITPAYMENT.ID
,SPLITPAYMENT.AMOUNT
,I.REVENUEID as TRANSACTIONID
,SPLITINFO.REVENUESPLITID as LINEITEMID
from dbo.INSTALLMENTSPLITPAYMENT SPLITPAYMENT
where SPLITPAYMENT.INSTALLMENTSPLITID = SPLITINFO.ID
for xml raw('ITEM')
,type
,elements
,binary BASE64
) as INSTALLMENTSPLITPAYMENTS
,(
select SPLITWRITEOFF.ID
,SPLITWRITEOFF.TRANSACTIONAMOUNT as AMOUNT
,I.REVENUEID as TRANSACTIONID
,SPLITINFO.REVENUESPLITID as LINEITEMID
from dbo.INSTALLMENTSPLITWRITEOFF SPLITWRITEOFF
where SPLITWRITEOFF.INSTALLMENTSPLITID = SPLITINFO.ID
for xml raw('ITEM')
,type
,elements
,binary BASE64
) as INSTALLMENTSPLITWRITEOFFS
from dbo.UFN_INSTALLMENT_GETINSTALLMENTSPLITINFO_BULK() SPLITINFO
left join dbo.DESIGNATION on DESIGNATION.ID = SPLITINFO.DESIGNATIONID
where SPLITINFO.INSTALLMENTID = I.ID
order by DESIGNATION.VANITYNAME
for xml raw('ITEM')
,type
,elements
,binary BASE64
) as INSTALLMENTSPLITS
,I.BASECURRENCYID
,I.ORGANIZATIONAMOUNT
,I.ORGANIZATIONEXCHANGERATEID
,I.TRANSACTIONCURRENCYID
,I.BASEEXCHANGERATEID
from dbo.UFN_INSTALLMENT_GETINFO_BULK() I
where I.REVENUEID = @ID
order by I.[DATE]
for xml raw('ITEM')
,type
,elements
,root('INSTALLMENTS')
,binary BASE64
);
exec dbo.USP_REVENUE_GETBENEFITSSPLIT @ID
,@BENEFITS output
,@PERCENTAGEBENEFITS output
if @FINDERNUMBER = 0
set @FINDERNUMBER = null;
if (not @FINDERNUMBER is null)
set @FINDERNUMBERVALID = 1;
else
set @FINDERNUMBERVALID = 0;
end
-- PBI 40790
set @HASPOSTEDPAYMENTS = dbo.UFN_PLEDGEHASPOSTEDPAYMENTS(@ID)
set @HASPAYMENTS = dbo.UFN_PLEDGE_PAYMENTSEXIST(@ID);
if exists (
select 1
from dbo.REVENUERECOGNITION
inner join dbo.REVENUESPLIT on REVENUERECOGNITION.REVENUESPLITID = REVENUESPLIT.ID
where REVENUESPLIT.REVENUEID = @ID
)
set @HASRECOGNITIONCREDIT = 1
else
set @HASRECOGNITIONCREDIT = 0
set @UPDATERECOGNITIONOPTION = 0
if exists (
select 1
from dbo.REVENUETRIBUTE
where REVENUETRIBUTE.REVENUEID = @ID
)
set @HASTRIBUTE = 1
else
set @HASTRIBUTE = 0
set @UPDATETRIBUTEOPTION = 0;
set @VALIDATETRIBUTES = 1;
-- Check GL business rule for this account system and set to 'Do not post' if needed.
declare @PDACCOUNTSYSTEMID uniqueidentifier;
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID
from dbo.PDACCOUNTSYSTEMFORREVENUE
where ID = @ID;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
if @ALLOWGLDISTRIBUTIONS = 0
set @ADJUSTMENTPOSTDATE = null;
select
@ADJPAYMENT_POSTDATEDEPOSIT = case when count(distinct Deposit.POSTDATE) = 1 then max(Deposit.POSTDATE) else null end,
@PROMPTONADJUSTMENTDATECHANGE = case when count(*) > 0 then 1 else 0 end
from dbo.FINANCIALTRANSACTIONLINEITEM as Pledge inner join dbo.FINANCIALTRANSACTIONLINEITEM as Payment on Pledge.ID = Payment.SourceLineItemID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT on Payment.FINANCIALTRANSACTIONID = BANKACCOUNTDEPOSITPAYMENT.ID
inner join dbo.FINANCIALTRANSACTION as Deposit on BANKACCOUNTDEPOSITPAYMENT.DEPOSITID = Deposit.ID
where Pledge.FINANCIALTRANSACTIONID = @ID
and Pledge.DELETEDON is null
and Pledge.TYPECODE = 0
and Payment.DELETEDON is null
and Payment.TYPECODE = 0
return 0;
end