NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

using Lw.Domain.Components.ReceiptPosting;
using Lw.Domain.Project.Extension.Components.ReceiptPosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lw.Domain.Project.Extension.Components.ReceiptPosting
{
class CalculateChargeOffRecoveryAndGainAmountDelegate: CalculateChargeOffRecoveryAndGainAmountBaseDelegate, Domain.Components.ReceiptPosting.Project.ICalculateChargeOffRecoveryAndGainAmountDelegate
{
public void Process()
{
CalculateRecoveryAndGainAmountForReversal();
}

public void CalculateRecoveryAndGainAmountForReversal()
{
if (Input.IsLease)
CalculateRecoveryAndGainAmountForLeaseReversal();
else
CalculateRecoveryAndGainAmountForLoanReversal();
}

public void CalculateRecoveryAndGainAmountForLeaseReversal()
{
if (Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied > default(decimal))
{
if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount = Input.NonLeaseComponentGainAmount >= Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : Input.NonLeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary = Input.NonLeaseComponentGainAmountSecondary >= Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : Input.NonLeaseComponentGainAmountSecondary;
}
}

else if (!Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount = Input.LeaseComponentGainAmount >= Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : Input.LeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmountSecondary = Input.LeaseComponentGainAmountSecondary >= Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : Input.LeaseComponentGainAmountSecondary;
}
}

else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount = Input.OtpGainAmount >= Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : Input.OtpGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmountSecondary = Input.OtpGainAmountSecondary >= Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : Input.OtpGainAmountSecondary;
}
}


if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary;
}
}

else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount = Input.NonLeaseComponentGainAmount >= Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied : Input.NonLeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary = Input.NonLeaseComponentGainAmountSecondary >= Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied : Input.NonLeaseComponentGainAmountSecondary;
}
}


Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount + Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmountSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmountSecondary + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary + Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmountSecondary;
}

if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount = Input.NonLeaseComponentRecoveryAmount >= (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount) : Input.NonLeaseComponentRecoveryAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary = Input.NonLeaseComponentRecoveryAmountSecondary >= (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary) : Input.NonLeaseComponentRecoveryAmountSecondary;
}
}

else if (!Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount = Input.LeaseComponentRecoveryAmount >= (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount) : Input.LeaseComponentRecoveryAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmountSecondary = Input.LeaseComponentRecoveryAmountSecondary >= (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmountSecondary)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmountSecondary) : Input.LeaseComponentRecoveryAmountSecondary;
}
}

else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount = Input.LeaseComponentRecoveryAmount >= (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount) : Input.LeaseComponentRecoveryAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmountSecondary = Input.LeaseComponentRecoveryAmountSecondary >= (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmountSecondary)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmountSecondary) : Input.LeaseComponentRecoveryAmountSecondary;
}
}


if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary;
}
}

else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount = Input.NonLeaseComponentRecoveryAmount >= (Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount)
: Input.NonLeaseComponentRecoveryAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary = Input.NonLeaseComponentRecoveryAmountSecondary >= (Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary)
? (Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary)
: Input.NonLeaseComponentRecoveryAmountSecondary;
}
}


Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmountSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmountSecondary + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary;
}

if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpenseSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary;
}
}

else if (!Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentChargeOffExpenseSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmountSecondary - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmountSecondary;
}
}

else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount - Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentChargeOffExpenseSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmountSecondary - Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmountSecondary;
}
}


if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpense;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpenseSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpenseSecondary;
}
}

else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpenseSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmountSecondary - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmountSecondary;
}
}


Input.ReceiptApplicationChargeoffRecoveryDetail.ChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentChargeOffExpense + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpense;
if (Input.IsUseSecondaryBook)
{
Input.ReceiptApplicationChargeoffRecoveryDetail.ChargeOffExpenseSecondary = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentChargeOffExpenseSecondary + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentChargeOffExpenseSecondary;
}

Input.ReceiptApplicationChargeoffRecoveryDetail.ChargeOffGLTemplateId = Input.GLTemplateId;
}
else
{
if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount = Input.AvailableNonLeaseComponentRecoveryLimit >= (-Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied)
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : -(Input.AvailableNonLeaseComponentRecoveryLimit);
else
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount = Input.AvailableLeaseComponentRecoveryLimit >= (-Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied)
? Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied : -(Input.AvailableLeaseComponentRecoveryLimit);

if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount;
else
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount = Input.AvailableNonLeaseComponentRecoveryLimit >= (-Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied)
? Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied : -(Input.AvailableNonLeaseComponentRecoveryLimit);

Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount;

if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount;
else if (!Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount;
else
Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentRecoveryAmount;

if (Input.ReceiptApplicationChargeoffRecoveryDetail.AccountingStandard.IsASC840_IAS17 && !Input.ReceiptApplicationChargeoffRecoveryDetail.IsOperatingLeaseChargeoff && !Input.ReceiptApplicationChargeoffRecoveryDetail.ReceivableType.IsOverTermRental)
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount;
else
Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentAmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentRecoveryAmount;

Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.LeaseComponentGainAmount + Input.ReceiptApplicationChargeoffRecoveryDetail.NonLeaseComponentGainAmount + Input.ReceiptApplicationChargeoffRecoveryDetail.OTPGainAmount;
}
Output.ReceiptApplicationChargeoffRecoveryDetail = Input.ReceiptApplicationChargeoffRecoveryDetail;
}

private void CalculateRecoveryAndGainAmountForLoanReversal()
{
if (Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied > default(decimal))
{
Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount = Input.GainAmount >= Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied
? Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied
: Input.GainAmount;

Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmount = Input.RecoveryAmount >= Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount
? (Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount)
: Input.RecoveryAmount;

Input.ReceiptApplicationChargeoffRecoveryDetail.ChargeOffExpense = Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmount - Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount;
Input.ReceiptApplicationChargeoffRecoveryDetail.ChargeOffGLTemplateId = Input.GLTemplateId;
}
else
{
Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmount = Input.AvailableRecoveryLimit >= -(Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied)
? Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied
: -(Input.AvailableRecoveryLimit);

Input.ReceiptApplicationChargeoffRecoveryDetail.GainAmount = Input.ReceiptApplicationChargeoffRecoveryDetail.AmountApplied - Input.ReceiptApplicationChargeoffRecoveryDetail.RecoveryAmount;
}
Output.ReceiptApplicationChargeoffRecoveryDetail = Input.ReceiptApplicationChargeoffRecoveryDetail;
}
}
}
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.