/// <summary> /// Clones an adjustment, useful when adding a reversing entry /// </summary> /// <returns>Your cloned object</returns> public MLFSDebtorAdjustment Clone() { MLFSDebtorAdjustment adj = new MLFSDebtorAdjustment { Amount = Amount, Debtor = Debtor, DebtorId = DebtorId, IsVariance = IsVariance, NotTakenUp = NotTakenUp, ReportingPeriod = ReportingPeriod, ReportingPeriodId = ReportingPeriodId }; return(adj); }
/// <summary> /// "writes off" anyoutstanding balance as a variance /// </summary> public MLFSDebtorAdjustment ClearToVariance(MLFSReportingPeriod period) { MLFSDebtorAdjustment variance = new MLFSDebtorAdjustment() { ReportingPeriodId = period.Id, ReportingPeriod = period, Debtor = this, DebtorId = (int)Id, Amount = Outstanding * -1, IsVariance = true, NotTakenUp = false }; Adjustments.Add(variance); return(variance); }
/// <summary> /// Creates an NTU adjustment to reverse out a debtor when the transaction never happens /// </summary> /// <param name="period">the period in which the plan is marked as NTU</param> /// <returns></returns> public MLFSDebtorAdjustment CreateNTU(MLFSReportingPeriod period) { MLFSDebtorAdjustment adj = new MLFSDebtorAdjustment { DebtorId = (int)Id, Amount = GrossAmount * -1, Debtor = this, IsVariance = false, NotTakenUp = true, ReportingPeriod = period, ReportingPeriodId = period.Id }; Adjustments.Add(adj); return(adj); }
/// <summary> /// Runs through a a bathc of receipts and compares it to the debtors using IORefernece and adds a receipt entry where a match is found /// </summary> /// <param name="debtors">The current debtors</param> /// <param name="receipts">The batch of receipts</param> /// <returns>A list of the adjustments (receipts) to be added</returns> public static List <MLFSDebtorAdjustment> CheckForReceipts(List <MLFSSale> debtors, List <MLFSIncome> receipts) { receipts = receipts.Where(x => x.IsNewBusiness && x.Amount != 0).ToList(); List <MLFSDebtorAdjustment> adjs = new List <MLFSDebtorAdjustment>(); for (int i = 0; i < debtors.Count; i++) { MLFSSale debtor = debtors[i]; for (int j = 0; j < receipts.Count; j++) { MLFSIncome receipt = receipts[j]; if (receipt.IOReference == debtor.IOReference || (receipt.IOReference == debtor.PlanReference && receipt.Amount == debtor.GrossAmount)) { MLFSDebtorAdjustment adj = new MLFSDebtorAdjustment(debtor, receipt); receipts.Remove(receipt); debtor.Adjustments.Add(adj); adjs.Add(adj); } } } return(adjs); }