Пример #1
0
        public static void DeleteInvoiceDetail(PayableInvoiceDetailModel model)
        {
            PayableInvoiceModel       invoice       = SessionHelper.PayableInvoice;
            PayableInvoiceDetailModel invoiceDetail = invoice.InvoiceDetail.FirstOrDefault(x => x.Id == model.Id);

            invoice.InvoiceDetail.Remove(invoiceDetail);
        }
Пример #2
0
        public static void UpdateInvoiceDetail(PayableInvoiceDetailModel model)
        {
            PayableInvoiceModel invoice = SessionHelper.PayableInvoice;

            invoice.InvoiceDetail.FirstOrDefault(x => x.Id == model.Id).CodeCombinationId = model.CodeCombinationId;
            invoice.InvoiceDetail.FirstOrDefault(x => x.Id == model.Id).Amount            = model.Amount;
            invoice.InvoiceDetail.FirstOrDefault(x => x.Id == model.Id).Description       = model.Description;
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
                            }
                        }
                    }
                }
            }
        }
Пример #5
0
        public ActionResult Edit(string id, long periodId)
        {
            PayableInvoiceModel model = PayableInvoiceHelper.GetInvoice(id);

            SessionHelper.Calendar = CalendarHelper.GetCalendar(PayablePeriodHelper.GetPayablePeriod(periodId.ToString()).CalendarId.ToString());

            model.InvoiceDetail = PayableInvoiceHelper.GetInvoiceDetail(id);
            model.SOBId         = SessionHelper.SOBId;
            model.PeriodId      = periodId;
            model.Periods       = PayablePeriodHelper.GetPeriodList(SessionHelper.SOBId);

            VendorModel      vendors      = VendorHelper.GetSingle(model.VendorId.ToString());
            VendorSiteModel  vendorSites  = VendorHelper.GetSingle(model.VendorSiteId);
            InvoiceTypeModel invoiceTypes = InvoiceTypeHelper.GetInvoiceType(model.InvoiceTypeId.ToString());

            ///TODO: Plz do the code audit.
            model.Vendors = new List <SelectListItem>();
            model.Vendors.Add(new SelectListItem
            {
                Value = vendors.Id.ToString(),
                Text  = vendors.Name
            });
            model.VendorSites = new List <SelectListItem>();
            model.VendorSites.Add(new SelectListItem
            {
                Value = vendorSites.Id.ToString(),
                Text  = vendorSites.Name
            });

            model.WHTaxes = new List <SelectListItem>();
            if (model.WHTaxId != null)
            {
                WithholdingModel withHoldingTaxes = WithholdingHelper.GetWithholding(model.WHTaxId.ToString());
                model.WHTaxes.Add(new SelectListItem
                {
                    Value = withHoldingTaxes.Id.ToString(),
                    Text  = withHoldingTaxes.Description
                });
            }

            model.InvoiceTypes = new List <SelectListItem>();
            model.InvoiceTypes.Add(new SelectListItem
            {
                Value = invoiceTypes.Id.ToString(),
                Text  = invoiceTypes.Description
            });

            SessionHelper.PayableInvoice = model;
            return(View(model));
        }
Пример #6
0
        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);
        }
Пример #7
0
 public ActionResult DeletePartial(PayableInvoiceDetailModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             PayableInvoiceModel invoice = SessionHelper.PayableInvoice;
             PayableInvoiceHelper.DeleteInvoiceDetail(model);
             SessionHelper.PayableInvoice = invoice;
             IList <PayableInvoiceDetailModel> invoiceDetail = PayableInvoiceHelper.GetInvoiceDetail();
             return(PartialView("_Detail", invoiceDetail));
         }
         catch (Exception e)
         {
             ViewData["EditError"] = e.Message;
         }
     }
     else
     {
         ViewData["EditError"] = "Please, correct all errors.";
     }
     return(PartialView("_Detail"));
     //return PartialView("_Detail", InvoiceHelper.GetInvoiceDetail());
 }
Пример #8
0
        public static void Insert(PayableInvoiceDetailModel model)
        {
            PayableInvoiceModel invoice = SessionHelper.PayableInvoice;

            invoice.InvoiceDetail.Add(model);
        }