public static List <MLFSSale> ConvertFromDataTable(DataTable sales, DataTable plans, DataTable commissions, List <MLFSAdvisor> advisors, MLFSReportingPeriod period) { List <MLFSSale> returnedSales = new List <MLFSSale>(); foreach (DataRow row in sales.Rows) { if (!row["Advise Fee Type"].ToString().Contains("Ongoing")) { MLFSSale sale = new MLFSSale(row, advisors, period); returnedSales.Add(sale); } } foreach (DataRow row in commissions.Rows) { MLFSSale sale = new MLFSSale(row, advisors, period, true); returnedSales.Add(sale); } for (int i = 0; i < returnedSales.Count; i++) { returnedSales[i].MatchPlan(plans); } return(returnedSales); }
/// <summary> /// matches the income to the sale/debtor /// </summary> /// <param name="sale"></param> /// <param name="income"></param> public MLFSDebtorAdjustment(MLFSSale sale, MLFSIncome income) { MLFSReportingPeriod period = income.ReportingPeriod; ReportingPeriodId = period.Id; ReportingPeriod = period; DebtorId = (int)sale.Id; Debtor = sale; ReceiptId = income.Id; Amount = income.Amount * -1; IsVariance = false; NotTakenUp = false; }
/// <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); }