private static PayableInvoice getEntityByModel(PayableInvoiceModel model) { if (model == null) return null; PayableInvoice entity = new PayableInvoice(); if (model.Id == 0) { entity.CreateBy = AuthenticationHelper.UserId; entity.CreateDate = DateTime.Now; entity.CompanyId = AuthenticationHelper.CompanyId.Value; } else { entity.CreateBy = model.CreateBy; entity.CreateDate = model.CreateDate; entity.CompanyId = model.CompanyId; } entity.Amount = model.Amount; entity.Id = model.Id; entity.InvoiceDate = model.InvoiceDate; entity.InvoiceNo = model.InvoiceNo; entity.InvoiceTypeId = model.InvoiceTypeId; entity.PeriodId = model.PeriodId; entity.Remarks = model.Remarks; entity.SOBId = model.SOBId; entity.Status = model.Status; entity.UpdateBy = model.UpdateBy; entity.UpdateDate = model.UpdateDate; entity.VendorId = model.VendorId; entity.VendorSiteId = model.VendorSiteId; entity.WHTaxId = model.WHTaxId; return entity; }
public ActionResult Create() { PayableInvoiceModel model = SessionHelper.PayableInvoice; if (model == null) { model = new PayableInvoiceModel { CompanyId = AuthenticationHelper.CompanyId.Value, InvoiceDetail = new List<PayableInvoiceDetailModel>(), Periods = new List<SelectListItem>(), Vendors = new List<SelectListItem>(), VendorSites = new List<SelectListItem>(), WHTaxes = new List<SelectListItem>(), InvoiceTypes = new List<SelectListItem>(), InvoiceNo = "New", SOBId = SessionHelper.SOBId }; } model.Periods = PayablePeriodHelper.GetPeriodList(SessionHelper.SOBId); if (model.Periods != null && model.Periods.Count() > 0) { model.PeriodId = Convert.ToInt64(model.Periods.FirstOrDefault().Value); SessionHelper.Calendar = CalendarHelper.GetCalendar(model.PeriodId.ToString()); model.InvoiceDate = SessionHelper.Calendar.StartDate; model.InvoiceTypes = InvoiceTypeHelper.GetInvoiceTypes(SessionHelper.SOBId, SessionHelper.Calendar.StartDate, SessionHelper.Calendar.EndDate); if (model.InvoiceTypes != null && model.InvoiceTypes.Count() > 0) { model.InvoiceTypeId = Convert.ToInt64(model.InvoiceTypes.FirstOrDefault().Value); } model.Vendors = VendorHelper.GetVendorList(SessionHelper.Calendar.StartDate, SessionHelper.Calendar.EndDate); if (model.Vendors != null && model.Vendors.Count() > 0) { model.VendorId = Convert.ToInt64(model.Vendors.FirstOrDefault().Value); model.VendorSites = VendorHelper.GetVendorSiteList(model.VendorId); if (model.VendorSites != null && model.VendorSites.Count() > 0) { model.VendorSiteId = Convert.ToInt64(model.VendorSites.FirstOrDefault().Value); model.WHTaxes = WithholdingHelper.GetWithHoldingList(model.VendorId, model.VendorSiteId, SessionHelper.Calendar.StartDate, SessionHelper.Calendar.EndDate); if (model.WHTaxId != null && model.WHTaxes.Count() > 0) { model.WHTaxId = Convert.ToInt64(model.WHTaxes.FirstOrDefault().Value); } } } } SessionHelper.PayableInvoice = model; return View("Edit", model); }
public static void Update(PayableInvoiceModel payableInvoiceModel) { PayableInvoice entity = getEntityByModel(payableInvoiceModel); string result = string.Empty; if (entity.IsValid()) { if (payableInvoiceModel.Id > 0) result = service.Update(entity); else result = service.Insert(entity); if (!string.IsNullOrEmpty(result)) { var savedDetail = getInvoiceDetailByInvoiceId(result); if (savedDetail.Count() > payableInvoiceModel.InvoiceDetail.Count()) { var tobeDeleted = savedDetail.Take(savedDetail.Count() - payableInvoiceModel.InvoiceDetail.Count()); foreach (var item in tobeDeleted) { detailService.Delete(item.Id.ToString(), AuthenticationHelper.CompanyId.Value); } savedDetail = getInvoiceDetailByInvoiceId(result); } foreach (var detail in payableInvoiceModel.InvoiceDetail) { PayableInvoiceDetail detailEntity = getEntityByModel(detail, savedDetail.Count()); if (detailEntity.IsValid()) { detailEntity.InvoiceId = Convert.ToInt64(result); if (savedDetail.Count() > 0) { detailEntity.Id = savedDetail.FirstOrDefault().Id; savedDetail.Remove(savedDetail.FirstOrDefault(rec => rec.Id == detailEntity.Id)); detailService.Update(detailEntity); } else detailService.Insert(detailEntity); } } } } }