public List <TrnSoldUnitEquitySchedule> PostImportTrnSoldUnitEquitySchedule(List <TrnSoldUnitEquitySchedule> equitySchedules, string id) { var soldUnits = from d in db.TrnSoldUnits where d.Id == Convert.ToInt32(id) select d; if (soldUnits.Any()) { // Remove existing schedule var deleteSchedules = from d in db.TrnSoldUnitEquitySchedules where d.SoldUnitId == Convert.ToInt32(id) select d; if (deleteSchedules.Any()) { foreach (var deleteSchedule in deleteSchedules) { db.TrnSoldUnitEquitySchedules.DeleteOnSubmit(deleteSchedule); } db.SubmitChanges(); } // Insert new schedules if (equitySchedules.Any()) { foreach (var equitySchedule in equitySchedules) { Data.TrnSoldUnitEquitySchedule insertSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = Convert.ToDateTime(equitySchedule.PaymentDate), Amortization = equitySchedule.Amortization, CheckNumber = equitySchedule.CheckNumber, CheckDate = Convert.ToDateTime(equitySchedule.CheckDate), CheckBank = equitySchedule.CheckBank, Remarks = equitySchedule.Remarks }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertSchedule); } } db.SubmitChanges(); } // Return new requirements var TrnSoldUnitEquityScheduleData = from d in db.TrnSoldUnitEquitySchedules where d.SoldUnitId == Convert.ToInt32(id) orderby d.PaymentDate ascending select new TrnSoldUnitEquitySchedule { Id = d.Id, SoldUnitId = d.SoldUnitId, PaymentDate = Convert.ToString(d.PaymentDate.Year) + "-" + Convert.ToString(d.PaymentDate.Month + 100).Substring(1, 2) + "-" + Convert.ToString(d.PaymentDate.Day + 100).Substring(1, 2), Amortization = d.Amortization, CheckNumber = d.CheckNumber == null ? "" : d.CheckNumber, CheckDate = formatNullableDate(d.CheckDate), CheckBank = d.CheckBank == null ? "" : d.CheckBank, Remarks = d.Remarks }; return(TrnSoldUnitEquityScheduleData.ToList()); }
public HttpResponseMessage GetNewTrnSoldUnitEquitySchedule(string id) { try { var soldUnits = from d in db.TrnSoldUnits where d.Id == Convert.ToInt32(id) select d; if (soldUnits.Any()) { // Remove existing schedule var deleteSchedules = from d in db.TrnSoldUnitEquitySchedules where d.SoldUnitId == Convert.ToInt32(id) select d; if (deleteSchedules.Any()) { foreach (var deleteSchedule in deleteSchedules) { db.TrnSoldUnitEquitySchedules.DeleteOnSubmit(deleteSchedule); } db.SubmitChanges(); } Data.TrnSoldUnitEquitySchedule insertReservationSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = soldUnits.FirstOrDefault().SoldUnitDate, Amortization = soldUnits.FirstOrDefault().Reservation, PaidAmount = 0, BalanceAmount = soldUnits.FirstOrDefault().Reservation, Remarks = "Reservation Fee" }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertReservationSchedule); db.SubmitChanges(); Data.TrnSoldUnitEquitySchedule insertDownpaymentSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = soldUnits.FirstOrDefault().SoldUnitDate, Amortization = soldUnits.FirstOrDefault().DownpaymentValue, PaidAmount = 0, BalanceAmount = soldUnits.FirstOrDefault().DownpaymentValue, Remarks = "Downpayment" }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertDownpaymentSchedule); db.SubmitChanges(); // Insert new schedules Int32 noOfPayments = Decimal.ToInt32(soldUnits.FirstOrDefault().NetEquityNoOfPayments); decimal amortization = soldUnits.FirstOrDefault().NetEquityAmortization; DateTime startDate = soldUnits.FirstOrDefault().SoldUnitDate; decimal equitySpotPayment1 = soldUnits.FirstOrDefault().EquitySpotPayment1; decimal equitySpotPayment2 = soldUnits.FirstOrDefault().EquitySpotPayment2; decimal equitySpotPayment3 = soldUnits.FirstOrDefault().EquitySpotPayment3; DateTime paymentDate = startDate; if (noOfPayments > 0) { for (Int32 p = 1; p <= noOfPayments; p++) { paymentDate = startDate.AddMonths(p); decimal monthlyAmortization = amortization; if (equitySpotPayment1 > 0 && p == 1) { monthlyAmortization = equitySpotPayment1; } if (equitySpotPayment2 > 0 && p == noOfPayments / 2) { monthlyAmortization = equitySpotPayment2; } if (equitySpotPayment3 > 0 && p == noOfPayments) { monthlyAmortization = equitySpotPayment3; } Data.TrnSoldUnitEquitySchedule insertSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = paymentDate, Amortization = monthlyAmortization, PaidAmount = 0, BalanceAmount = monthlyAmortization, Remarks = "Equity " + p }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertSchedule); db.SubmitChanges(); } } else { Data.TrnSoldUnitEquitySchedule insertSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = paymentDate, Amortization = soldUnits.FirstOrDefault().NetEquityBalance, PaidAmount = 0, BalanceAmount = soldUnits.FirstOrDefault().NetEquityBalance, Remarks = "Equity" }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertSchedule); db.SubmitChanges(); } Data.TrnSoldUnitEquitySchedule insertMiscFeeSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = paymentDate.AddMonths(noOfPayments + 1), Amortization = soldUnits.FirstOrDefault().MiscellaneousFeeAmount, PaidAmount = 0, BalanceAmount = soldUnits.FirstOrDefault().MiscellaneousFeeAmount, Remarks = "Miscellaneous Fee" }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertMiscFeeSchedule); db.SubmitChanges(); Data.TrnSoldUnitEquitySchedule insertBalanceSchedule = new Data.TrnSoldUnitEquitySchedule() { SoldUnitId = Convert.ToInt32(id), PaymentDate = paymentDate.AddMonths(noOfPayments + 1), Amortization = soldUnits.FirstOrDefault().Balance, PaidAmount = 0, BalanceAmount = soldUnits.FirstOrDefault().Balance, Remarks = "Balance" }; db.TrnSoldUnitEquitySchedules.InsertOnSubmit(insertBalanceSchedule); db.SubmitChanges(); } return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }