Beispiel #1
0
        public ActionResult EditExport(int id)
        {
            var model = new EditExport();

            try
            {
                var export = db.Exports.Where(im => im.ExportId == id).FirstOrDefault();
                if (export != null)
                {
                    model.ExportId             = export.ExportId;
                    model.ExportDate           = export.ExportDate.ToString("dd/MM/yyyy");
                    model.ProductId            = export.ProductId;
                    model.Quantity             = export.Quantity.ToString("#,##0");
                    model.ExportPrice          = export.ExportPrice.ToString("#,##0");
                    model.Note                 = export.Note;
                    model.ProductSelectOptions = DropDownListOption.GetProductOptions(export.ProductId);
                }
                else
                {
                    ModelState.AddModelError("", "Không tìm thấy thông tin xuất kho!");
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);

                // Write error log
                var log = new Log();
                log.LogDate = DateTime.Now;
                log.Action  = "Stock - EditExport()";
                log.Tags    = "Error";
                log.Message = ex.ToString();
                db.Logs.Add(log);
            }
            return(View(model));
        }
Beispiel #2
0
        public ActionResult EditExport(EditExport model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var export = db.Exports.Where(im => im.ExportId == model.ExportId).FirstOrDefault();
                    if (export != null)
                    {
                        int      quantity    = 0;
                        decimal  exportPrice = 0;
                        DateTime exportDate  = DateTime.Now;

                        // Validate user input data
                        if (!DateTime.TryParseExact(model.ExportDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out exportDate))
                        {
                            ModelState.AddModelError("", "Ngày xuất không hợp lệ!");
                            return(View(model));
                        }

                        if (!int.TryParse(model.Quantity.Replace(",", ""), out quantity))
                        {
                            ModelState.AddModelError("", "Số lượng xuất không hợp lệ!");
                            return(View(model));
                        }

                        if (!decimal.TryParse(model.ExportPrice.Replace(",", ""), out exportPrice))
                        {
                            ModelState.AddModelError("", "Giá xuất không hợp lệ!");
                            return(View(model));
                        }

                        // update product unit in stock
                        var currentProduct = db.Products.Where(p => p.ProductId == export.ProductId).FirstOrDefault();
                        if (currentProduct != null)
                        {
                            currentProduct.UnitInStock -= export.Quantity;
                        }
                        if (currentProduct.ProductId == model.ProductId)
                        {
                            currentProduct.UnitInStock += quantity;
                        }
                        else
                        {
                            var updatedProduct = db.Products.Where(p => p.ProductId == model.ProductId).FirstOrDefault();
                            if (updatedProduct != null)
                            {
                                updatedProduct.UnitInStock += quantity;
                            }
                        }

                        // update import info
                        export.ExportDate  = exportDate;
                        export.ProductId   = model.ProductId;
                        export.Quantity    = quantity;
                        export.ExportPrice = exportPrice;
                        export.Note        = model.Note;

                        db.SaveChanges();
                        return(RedirectToAction("ExportHistory"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Không tìm thấy thông tin xuất kho!");
                        return(View(model));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Thông tin xuất kho không hợp lệ!");
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);

                // Write error log
                var log = new Log();
                log.LogDate = DateTime.Now;
                log.Action  = "Stock - EditExport()";
                log.Tags    = "Error";
                log.Message = ex.ToString();
                db.Logs.Add(log);
            }
            finally
            {
                model.ProductSelectOptions = DropDownListOption.GetProductOptions(model.ProductId);
            }
            return(View(model));
        }