//public ActionResult Edit(string prodShipCode, string proCode, string userCode)
        public ActionResult Edit(string prodShipCode, string proCode, string userCode, string productLotNo,
                                 string reqShippingQty)
        {
            try
            {
                var shippingNo = _prodShippingPlanningDomain.GenShippingNo();
                //var productShelf = _prodShippingPlanningDomain.CheckProductShelfStatus(proCode, productLotNo);
                //var ReqShippingQty = _prodShippingPlanningDomain.CheckReqShippingQty(proCode, Convert.ToDouble(reqShippingQty));

                var model = new ProductShippingPlanningViewModel
                {
                    IsCreate          = true,
                    F44_ShipCommandNo = shippingNo
                                        //F44_ProductLotNo = productShelf,
                                        //F44_ShpRqtAmt = ReqShippingQty
                                        //F39_Status = Constants.Status.Yet.ToString(),
                                        //F39_KndEptBgnDate = DateTime.Now.ToString("MM/yyyy")
                };
                if (!string.IsNullOrEmpty(prodShipCode))
                {
                    var entity = _prodShippingPlanningDomain.GetById(prodShipCode, proCode, userCode);
                    if (entity != null)
                    {
                        model = Mapper.Map <ProductShippingPlanningViewModel>(entity);
                        //model.F39_Status = Enum.GetName(typeof(Constants.Status), ConvertHelper.ToInteger(model.F39_Status));
                        model.IsCreate = false;
                    }
                }
                return(PartialView("_PartialViewEditProductShippingPlan", model));
            }
            catch (Exception exception)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
            }
        }
        public ActionResult Edit(ProductShippingPlanningViewModel model)
        {
            try
            {
                var item = Mapper.Map <ProductShippingPlanningItem>(model);
                var resultShippingPlanning = _prodShippingPlanningDomain.CheckReqShippingQty(item.F44_ProductCode, item.F44_ShpRqtAmt);
                model.F44_ShpRqtAmt = resultShippingPlanning.F44_ShpRqtAmt.ToString(CultureInfo.InvariantCulture);

                //var result = _prodShippingPlanningDomain.CheckProductShelfStatus(model.F44_ProductCode,
                //    model.F44_ProductLotNo);
                //if (result == false)
                //{
                //    return Json(new { Success = false, Message = "MSG1" }, JsonRequestBehavior.AllowGet);
                //}

                item.F44_ShpRqtAmt = Convert.ToDouble(model.F44_ShpRqtAmt);
                var isSuccess = _prodShippingPlanningDomain.CreateOrUpdate(item);
                if (!isSuccess.IsSuccess)
                {
                    return(Json(new { Success = false, Message = isSuccess.ErrorMessages }, JsonRequestBehavior.AllowGet));
                }
                return(Json(
                           new { Success = true, Message = model.IsCreate ? MessageResource.MSG6 : MessageResource.MSG9 },
                           JsonRequestBehavior.AllowGet));

                ;
            }
            catch (DbUpdateException e)
            {
                var sb = new StringBuilder();
                sb.AppendLine("DbUpdateException error details - {e?.InnerException?.InnerException?.Message}");

                foreach (var eve in e.Entries)
                {
                    sb.AppendLine("Entity of type {eve.Entity.GetType().Name} in state {eve.State} could not be updated");
                }

                Console.WriteLine(sb.ToString());
                throw;
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }