// GET: /FMM/MaterialChestParameter/Detail
        public async Task <ActionResult> Detail(string productCode)
        {
            using (MaterialChestParameterServiceClient client = new MaterialChestParameterServiceClient())
            {
                MethodReturnResult <MaterialChestParameter> result = await client.GetAsync(productCode);

                if (result.Code == 0)
                {
                    MaterialChestParameterViewModel viewModel = new MaterialChestParameterViewModel()
                    {
                        ProductCode            = result.Data.Key,
                        ColorLimit             = result.Data.ColorLimit,
                        GradeLimit             = result.Data.GradeLimit,
                        PowerLimit             = result.Data.PowerLimit,
                        IscLimit               = result.Data.IscLimit,
                        FullChestQty           = result.Data.FullChestQty,
                        InChestFullPackageQty  = result.Data.InChestFullPackageQty,
                        IsPackagedChest        = result.Data.IsPackagedChest,
                        OrderNumberLimit       = result.Data.OrderNumberLimit,
                        LastChestMaterialLimit = result.Data.LastChestMaterialLimit,
                        Creator    = result.Data.Creator,
                        CreateTime = result.Data.CreateTime,
                        Editor     = result.Data.Editor,
                        EditTime   = result.Data.EditTime
                    };
                    return(PartialView("_InfoPartial", viewModel));
                }
                else
                {
                    ModelState.AddModelError("", result.Message);
                }
            }
            return(PartialView("_InfoPartial"));
        }
        public async Task <ActionResult> Delete(string productCode)
        {
            MethodReturnResult result = new MethodReturnResult();

            using (MaterialChestParameterServiceClient client = new MaterialChestParameterServiceClient())
            {
                result = await client.DeleteAsync(productCode);

                if (result.Code == 0)
                {
                    result.Message = string.Format(FMMResources.StringResource.MaterialChestParameter_Delete_Success, productCode);
                }
                return(Json(result));
            }
        }
Example #3
0
        // 获取柜信息--当前数量/是否尾包/库位
        public ActionResult GetChestInfo(string chestNo)
        {
            double currentQuantity  = 0;
            bool   isLastestPackage = false;
            string storeLocation    = "";
            double fullQuantity     = 0;
            int    code             = 0;

            if (!string.IsNullOrEmpty(chestNo))
            {
                //获取当前数量
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    MethodReturnResult <Chest> rst2 = client.Get(chestNo);
                    if (rst2.Code == 1000)
                    {
                        return(Json(rst2));
                    }
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                        {
                            MethodReturnResult <MaterialChestParameter> rst3 = client1.Get(rst2.Data.MaterialCode);
                            if (rst3.Data != null)
                            {
                                fullQuantity = rst3.Data.FullChestQty;
                            }
                            else
                            {
                                return(Json(rst3, JsonRequestBehavior.AllowGet));
                            }
                        }
                        currentQuantity  = rst2.Data.Quantity;
                        isLastestPackage = rst2.Data.IsLastPackage;
                        storeLocation    = rst2.Data.StoreLocation;
                    }
                }
            }

            return(Json(new
            {
                Code = code,
                CurrentQuantity = currentQuantity,
                IsLastestPackage = isLastestPackage,
                StoreLocation = storeLocation,
                FullQuantity = fullQuantity
            }, JsonRequestBehavior.AllowGet));
        }
        public async Task <ActionResult> SaveModify(MaterialChestParameterViewModel model)
        {
            using (MaterialChestParameterServiceClient client = new MaterialChestParameterServiceClient())
            {
                MethodReturnResult <MaterialChestParameter> result = await client.GetAsync(model.ProductCode);

                if (result.Code == 0)
                {
                    MethodReturnResult rst = new MethodReturnResult();
                    if (model.FullChestQty < 0)
                    {
                        rst.Code    = 1001;
                        rst.Message = String.Format("满柜数量不可小于0");
                        return(Json(rst));
                    }
                    if (model.InChestFullPackageQty < 0)
                    {
                        rst.Code    = 1001;
                        rst.Message = String.Format("柜最大满包数量不可小于0");
                        return(Json(rst));
                    }

                    result.Data.Key                    = model.ProductCode;
                    result.Data.ColorLimit             = model.ColorLimit;
                    result.Data.GradeLimit             = model.GradeLimit;
                    result.Data.PowerLimit             = model.PowerLimit;
                    result.Data.IscLimit               = model.IscLimit;
                    result.Data.FullChestQty           = model.FullChestQty;
                    result.Data.InChestFullPackageQty  = model.InChestFullPackageQty;
                    result.Data.IsPackagedChest        = model.IsPackagedChest;
                    result.Data.OrderNumberLimit       = model.OrderNumberLimit;
                    result.Data.LastChestMaterialLimit = model.LastChestMaterialLimit;
                    result.Data.Editor                 = User.Identity.Name;
                    result.Data.EditTime               = DateTime.Now;
                    rst = await client.ModifyAsync(result.Data);

                    if (rst.Code == 0)
                    {
                        rst.Message = string.Format(FMMResources.StringResource.MaterialChestParameter_SaveModify_Success, result.Data.Key);
                    }
                    return(Json(rst));
                }
                return(Json(result));
            }
        }
        public async Task <ActionResult> Save(MaterialChestParameterViewModel model)
        {
            using (MaterialChestParameterServiceClient client = new MaterialChestParameterServiceClient())
            {
                MethodReturnResult rst = new MethodReturnResult();
                if (model.FullChestQty < 0)
                {
                    rst.Code    = 1001;
                    rst.Message = String.Format("满柜数量不可小于0");
                    return(Json(rst));
                }
                if (model.InChestFullPackageQty < 0)
                {
                    rst.Code    = 1001;
                    rst.Message = String.Format("柜最大满包数量不可小于0");
                    return(Json(rst));
                }
                MaterialChestParameter obj = new MaterialChestParameter()
                {
                    Key                    = model.ProductCode,
                    ColorLimit             = model.ColorLimit,
                    GradeLimit             = model.GradeLimit,
                    PowerLimit             = model.PowerLimit,
                    IscLimit               = model.IscLimit,
                    FullChestQty           = model.FullChestQty,
                    InChestFullPackageQty  = model.InChestFullPackageQty,
                    IsPackagedChest        = model.IsPackagedChest,
                    OrderNumberLimit       = model.OrderNumberLimit,
                    LastChestMaterialLimit = model.LastChestMaterialLimit,
                    Creator                = User.Identity.Name,
                    CreateTime             = DateTime.Now,
                    Editor                 = User.Identity.Name,
                    EditTime               = DateTime.Now,
                };
                rst = await client.AddAsync(obj);

                if (rst.Code == 0)
                {
                    rst.Message = string.Format(FMMResources.StringResource.MaterialChestParameter_Save_Success, obj.Key);
                }
                return(Json(rst));
            }
        }
        public async Task <ActionResult> PagingQuery(string where, string orderBy, int?currentPageNo, int?currentPageSize)
        {
            if (ModelState.IsValid)
            {
                int pageNo   = currentPageNo ?? 0;
                int pageSize = currentPageSize ?? 20;
                if (Request["PageNo"] != null)
                {
                    pageNo = Convert.ToInt32(Request["PageNo"]);
                }
                if (Request["PageSize"] != null)
                {
                    pageSize = Convert.ToInt32(Request["PageSize"]);
                }

                using (MaterialChestParameterServiceClient client = new MaterialChestParameterServiceClient())
                {
                    await Task.Run(() =>
                    {
                        PagingConfig cfg = new PagingConfig()
                        {
                            PageNo   = pageNo,
                            PageSize = pageSize,
                            Where    = where ?? string.Empty,
                            OrderBy  = orderBy ?? string.Empty
                        };
                        MethodReturnResult <IList <MaterialChestParameter> > result = client.Get(ref cfg);
                        if (result.Code == 0)
                        {
                            ViewBag.PagingConfig = cfg;
                            ViewBag.List         = result.Data;
                        }
                    });
                }
            }
            return(PartialView("_ListPartial"));
        }
        //GET: /FMM/MaterialChestParameter/
        public async Task <ActionResult> Index(string productCode)
        {
            using (MaterialServiceClient client = new MaterialServiceClient())
            {
                MethodReturnResult <Material> result = await client.GetAsync(productCode ?? string.Empty);

                if (result.Code > 0 || result.Data == null)
                {
                    return(RedirectToAction("Index", "Material"));
                }
                ViewBag.Material = result.Data;
            }

            using (MaterialChestParameterServiceClient client = new MaterialChestParameterServiceClient())
            {
                await Task.Run(() =>
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        OrderBy = " Key ",
                        Where   = string.Format(" Key = '{0}'", productCode)
                    };
                    MethodReturnResult <IList <MaterialChestParameter> > result = client.Get(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.PagingConfig = cfg;
                        ViewBag.List         = result.Data;
                    }
                });
            }
            return(View(new MaterialChestParameterQueryViewModel()
            {
                ProductCode = productCode
            }));
        }
Example #8
0
        public ActionResult Finish(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                //如果柜号为空。
                if (string.IsNullOrEmpty(model.ChestNo))
                {
                    result.Code    = 1001;
                    result.Message = string.Format("柜号不能为空。");
                    return(Json(result));
                }
                else
                {
                    model.ChestNo = model.ChestNo.ToUpper().Trim();
                }
                Chest obj = null;
                //如果当前数量为空,获取当前数量
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    MethodReturnResult <Chest> rst2 = client.Get(model.ChestNo);
                    if (rst2.Code > 0)
                    {
                        return(Json(rst2));
                    }
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        //检查柜状态
                        if (rst2.Data.ChestState != EnumChestState.Packaging)
                        {
                            result.Code    = 1001;
                            result.Message = string.Format("柜 {0} 非{1}状态,不能执行手动完成入柜。"
                                                           , model.ChestNo.ToUpper()
                                                           , EnumChestState.Packaging.GetDisplayName());
                            return(Json(result));
                        }
                        //设置当前数量。
                        obj = rst2.Data;
                        model.CurrentQuantity = rst2.Data.Quantity;
                        if (model.CurrentQuantity == 0)
                        {
                            result.Code    = 1001;
                            result.Message = string.Format("柜 {0} 数量为0,不能执行手动完成入柜。", model.ChestNo.ToUpper());
                            return(Json(result));
                        }
                    }
                }
                //如果满柜数量为空,获取满柜数量
                if (model.FullQuantity == 0)
                {
                    using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                    {
                        MethodReturnResult <MaterialChestParameter> rst3 = client1.Get(obj.MaterialCode);
                        if (rst3.Data != null)
                        {
                            model.FullQuantity = rst3.Data.FullChestQty;
                        }
                        else
                        {
                            return(Json(rst3));
                        }
                    }
                }
                //非尾柜,不能完成入柜
                if (model.IsLastestPackageInChest == false && obj.IsLastPackage == false)
                {
                    result.Code    = 1;
                    result.Message = string.Format("柜({0})非尾柜,不能手动完成入柜。", model.ChestNo);
                    return(Json(result));
                }
                //判断柜号所在库位和当前界面所选库位是否匹配。
                if (!string.IsNullOrEmpty(obj.StoreLocation))
                {
                    if (obj.StoreLocation != model.StoreLocation)
                    {
                        model.StoreLocation = obj.StoreLocation;
                    }
                }
                else
                {
                    ////获取柜内第一块组件
                    //ChestDetail chestDetail = new ChestDetail();
                    //PagingConfig cfg = new PagingConfig()
                    //{
                    //    IsPaging = false,
                    //    OrderBy = " ItemNo ",
                    //    Where = string.Format(@" Key = '{0}' and ItemNo = 1 ", obj.Key)
                    //};
                    //PackageInChestServiceClient client = new PackageInChestServiceClient();
                    //MethodReturnResult<IList<ChestDetail>> lstChestDetail = client.GetDetail(ref cfg);
                    //if (lstChestDetail.Data != null && lstChestDetail.Data.Count > 0)
                    //{
                    //    chestDetail = lstChestDetail.Data[0];
                    //    result.Code = 1;
                    //    result.Message = string.Format("柜({0})未设置库位,请使用包装清单打印界面选择库位并输入托号[{1}]查询按钮设置。"
                    //                                    , model.ChestNo,chestDetail.Key.ObjectNumber);
                    //    return Json(result);
                    //}
                    //else
                    //{
                    //    result.Code = 1;
                    //    result.Message = string.Format("柜({0})内无明细。", model.ChestNo);
                    //    return Json(result);
                    //}
                    if (model.StoreLocation == null || model.StoreLocation == "")
                    {
                        result.Code    = 1;
                        result.Message = string.Format("柜({0})未设置库位,请在界面选择所需的库位后再点击手动完成入柜按钮。"
                                                       , model.ChestNo);
                        return(Json(result));
                    }
                }
                model.IsFinishPackage = true;
                result = FinishChest(model);
                //result = Package(model);

                //返回包装结果。
                if (result.Code <= 0)
                {
                    MethodReturnResult <ChestViewModel> rstFinal = new MethodReturnResult <ChestViewModel>()
                    {
                        Code     = result.Code,
                        Data     = model,
                        Detail   = result.Detail,
                        HelpLink = result.HelpLink,
                        Message  = result.Message
                    };
                    return(Json(rstFinal));
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
Example #9
0
        public ActionResult Save(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            //Package obj = null;
            if (model.PackageNo == null || model.PackageNo == "")
            {
                result.Code    = 1001;
                result.Message = string.Format("托号不可为空。");
                return(Json(result));
            }
            else
            {
                model.PackageNo = model.PackageNo.ToUpper().Trim();
            }
            try
            {
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    //取得最佳柜号
                    MethodReturnResult <string> rst1 = client.GetChestNo(model.PackageNo.ToUpper().Trim(), model.ChestNo, model.IsLastestPackageInChest, model.IsManual);
                    if (rst1.Code > 0)
                    {
                        return(Json(rst1));
                    }
                    else
                    {
                        model.ChestNo = rst1.Data;
                    }
                }
                MethodReturnResult <Chest> rst2 = null;
                //重新获取当前数量。
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    rst2 = client.Get(model.ChestNo);
                    if (rst2.Code == 1000)
                    {
                        return(Json(rst2));
                    }
                    //检查柜状态
                    if (rst2.Data != null && rst2.Data.ChestState != EnumChestState.Packaging && rst2.Data.ChestState != EnumChestState.InFabStore)
                    {
                        result.Code    = 1001;
                        result.Message = string.Format("柜 {0} 非 [{1}或{2}] 状态,不能入柜。"
                                                       , model.ChestNo.ToUpper()
                                                       , EnumChestState.Packaging.GetDisplayName()
                                                       , EnumChestState.InFabStore.GetDisplayName());
                        return(Json(result));
                    }
                    //设置满柜数量。
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        model.CurrentQuantity = rst2.Data.Quantity;
                    }
                    MethodReturnResult <Package> rstOfPackage = null;

                    using (PackageQueryServiceClient clientOfPackage = new PackageQueryServiceClient())
                    {
                        rstOfPackage = clientOfPackage.Get(model.PackageNo.ToUpper().Trim());
                    }
                    using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                    {
                        MethodReturnResult <MaterialChestParameter> rst3 = client1.Get(rstOfPackage.Data.MaterialCode);
                        if (rst3.Data != null)
                        {
                            model.FullQuantity = rst3.Data.FullChestQty;
                        }
                        else
                        {
                            return(Json(rst3));
                        }
                    }
                }

                //如果满柜数量为空,提示
                if (model.FullQuantity == 0)
                {
                    result.Code    = 1001;
                    result.Message = string.Format("托号内产品编码【{0}】设置的满柜数量为0,请联系成柜规则设定人员修改。", rst2.Data.MaterialCode);
                    return(Json(result));
                }

                double newCurrentQuantity = model.CurrentQuantity + 1;
                //当前数量超过满柜数量,不能继续入柜。
                if (newCurrentQuantity > model.FullQuantity)
                {
                    result.Code    = 1;
                    result.Message = string.Format("柜({0}) 当前数量({1})加上该托号({2})数量({3}),超过满柜数量。"
                                                   , model.ChestNo.ToUpper()
                                                   , model.CurrentQuantity
                                                   , model.PackageNo.ToUpper().Trim()
                                                   , 1);
                    return(Json(result));
                }
                model.CurrentQuantity = newCurrentQuantity;
                result = Chest(model);
                //返回成柜结果。
                if (result.Code <= 0)
                {
                    model.StoreLocation = result.Detail.Split('-')[1];
                    MethodReturnResult <ChestViewModel> rstFinal = new MethodReturnResult <ChestViewModel>()
                    {
                        Code     = result.Code,
                        Data     = model,
                        Detail   = result.Detail,
                        HelpLink = result.HelpLink,
                        Message  = result.Message
                    };
                    return(Json(rstFinal));
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }