Example #1
0
        protected override MaterialReceiptViewModel NewViewModel()
        {
            MaterialReceiptViewModel materialReceiptViewModel = base.NewViewModel();

            materialReceiptViewModel.ModuleDetailID = this.ModuleDetailID;
            return(materialReceiptViewModel);
        }
        public ActionResult Getpage(string pagenum, string onepagecount, string express_code)
        {
            MaterialReceiptResult    com  = new MaterialReceiptResult();
            InternationalQuiryResult coms = new InternationalQuiryResult();

            if (!Regex.IsMatch(pagenum, @"(?i)^[0-9a-z\u4e00-\u9fa5]+$") && !string.IsNullOrEmpty(pagenum))
            {
                com.Msg     = "页数不正确";
                com.success = false;
                return(Json(com));
            }

            if (!Regex.IsMatch(onepagecount, @"(?i)^[0-9a-z\u4e00-\u9fa5]+$") && !string.IsNullOrEmpty(onepagecount))
            {
                com.Msg     = "每页数量不正确";
                com.success = false;
                return(Json(com));
            }
            int    totil     = 0;
            int    totilpage = 0;
            string exmsg     = string.Empty;
            List <MaterialReceiptModel> mylist = _service.GetMaterialReceiptList(Convert.ToInt32(pagenum), Convert.ToInt32(onepagecount), out totil, out totilpage, out exmsg, express_code);

            coms = _internationalQuiry.GetExpressList();
            if (!string.IsNullOrEmpty(exmsg))
            {
                com.Msg     = exmsg;
                com.success = false;
                return(Json(com));
            }
            else
            {
                MaterialReceiptViewModel mylistview = new MaterialReceiptViewModel();
                mylistview.supplist   = mylist;
                mylistview.totil      = totil.ToString();
                mylistview.totilcount = totilpage.ToString();
                if (coms.success)
                {
                    mylistview.express_info = coms.Msg;
                }
                else
                {
                    mylistview.express_info = null;
                }
                com.DataResult = mylistview;
                com.success    = true;
                return(Json(com));
            }
        }
Example #3
0
        public ActionResult Detail(string ReceiptNo)
        {
            MaterialReceiptViewModel model = null;

            using (LineStoreServiceClient client = new LineStoreServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    OrderBy = "Key"
                };
                MethodReturnResult <IList <LineStore> > result = client.Get(ref cfg);
                List <SelectListItem> LineStoreList            = new List <SelectListItem>();
                //LineStoreList.Add(new SelectListItem() { Text = "--Select--", Value = "select" });
                foreach (LineStore item in result.Data)
                {
                    LineStoreList.Add(new SelectListItem()
                    {
                        Text = item.Key, Value = item.Key
                    });
                }
                ViewBag.LineStore = LineStoreList;
            }

            using (ERPClient client = new ERPClient())
            {
                //根据材料出库单单据号查询ERP中是否存在该出库单
                MethodReturnResult <DataSet> result = client.GetERPMaterialReceiptStore(ReceiptNo);
                DataTable dtERP = new DataTable();
                DataTable dtMES = new DataTable();
                dtERP = result.Data.Tables["dtERP"];
                dtMES = result.Data.Tables["dtMES"];
                if (result.Data.Tables[0].Rows.Count > 0)
                {
                    model = new MaterialReceiptViewModel()
                    {
                        ReceiptNo     = dtERP.Rows[0]["VBILLCODE"].ToString(),
                        OrderNumber   = dtERP.Rows[0]["VPRODUCTBATCH"].ToString(),
                        ReceiptDate   = DateTime.Parse(dtERP.Rows[0]["DBILLDATE"].ToString()),
                        LineStoreName = dtMES.Rows[0]["STORE_NAME"].ToString()
                    };
                }
                ViewBag.MaterialReceipt = model;

                return(View(model));
            }
        }
Example #4
0
        public async Task <ActionResult> Save(MaterialReceiptViewModel model)
        {
            MethodReturnResult rst = new MethodReturnResult();

            try
            {
                using (MaterialReceiptServiceClient client = new MaterialReceiptServiceClient())
                {
                    MaterialReceipt obj = new MaterialReceipt()
                    {
                        Key         = model.ReceiptNo.ToUpper(),
                        OrderNumber = model.OrderNumber.ToUpper(),
                        ReceiptDate = model.ReceiptDate,
                        Description = model.Description,
                        Editor      = User.Identity.Name,
                        Creator     = User.Identity.Name
                    };

                    char splitChar            = ',';
                    var  ItemNos              = Request["ItemNo"].Split(splitChar);
                    var  LineStoreNames       = Request["LineStoreName"].Split(splitChar);
                    var  MaterialCodes        = Request["MaterialCode"].Split(splitChar);
                    var  MaterialLots         = Request["MaterialLot"].Split(splitChar);
                    var  Qtys                 = Request["Qty"].Split(splitChar);
                    var  SupplierMaterialLots = Request["SupplierMaterialLot"].Split(splitChar);
                    var  SupplierCodes        = Request["SupplierCode"].Split(splitChar);
                    //var Descriptions = Request["DetailDescription"].Split(splitChar);
                    //var attr1s = Request["Attr1"].Split(splitChar);
                    List <MaterialReceiptDetail> lst = new List <MaterialReceiptDetail>();
                    for (int i = 0; i < ItemNos.Length; i++)
                    {
                        string materialCode  = MaterialCodes[i].ToUpper();
                        string materialLot   = MaterialLots[i].ToUpper();
                        string lineStoreName = LineStoreNames[i].ToUpper();

                        //根据物料批号获取当前线别仓中的物料
                        using (LineStoreMaterialServiceClient client1 = new LineStoreMaterialServiceClient())
                        {
                            PagingConfig cfg = new PagingConfig()
                            {
                                PageNo   = 0,
                                PageSize = 1,
                                Where    = string.Format("Key.MaterialLot='{0}' AND Key.OrderNumber='{1}' AND Key.LineStoreName='{2}'"
                                                         , materialLot
                                                         , obj.OrderNumber
                                                         , lineStoreName)
                            };
                            MethodReturnResult <IList <LineStoreMaterialDetail> > rst1 = client1.GetDetail(ref cfg);
                            if (rst1.Code > 0)
                            {
                                return(Json(rst1));
                            }
                            if (rst1.Data != null &&
                                rst1.Data.Count > 0 &&
                                rst1.Data[0].Key.MaterialCode != materialCode)
                            {
                                rst.Code    = 2002;
                                rst.Message = string.Format("项目号[{0}]的物料批号({1})已经由物料({2})领料使用,请更换新的物料批号。"
                                                            , i + 1
                                                            , materialLot
                                                            , rst1.Data[0].Key.MaterialCode);
                                return(Json(rst));
                            }
                        }
                        //判断物料批号在本次领料中是否重复。
                        int count = MaterialLots.Count(m => m == materialLot);
                        if (count > 1)
                        {
                            int lastedIndex = MaterialLots.ToList().LastIndexOf(materialLot);
                            rst.Code    = 2003;
                            rst.Message = string.Format("项目号[{0}]物料批号({1})与项目号[{2}]的物料批号重复,如是相同物料料号请在同一个项目号中领取。"
                                                        , i + 1
                                                        , materialLot
                                                        , lastedIndex + 1);
                            return(Json(rst));
                        }

                        lst.Add(new MaterialReceiptDetail()
                        {
                            Key = new MaterialReceiptDetailKey()
                            {
                                ReceiptNo = model.ReceiptNo.ToUpper(),
                                ItemNo    = i + 1
                            },
                            LineStoreName       = lineStoreName,
                            MaterialCode        = materialCode,
                            MaterialLot         = materialLot,
                            Qty                 = Convert.ToDouble(Qtys[i]),
                            SupplierMaterialLot = SupplierMaterialLots[i].ToUpper(),
                            SupplierCode        = SupplierCodes[i].ToUpper(),
                            //Description = Descriptions[i],
                            //Attr1 = attr1,
                            Editor  = User.Identity.Name,
                            Creator = User.Identity.Name
                        });
                    }

                    rst = await client.AddAsync(obj, lst);

                    if (rst.Code == 0)
                    {
                        rst.Message = string.Format(LSMResources.StringResource.MaterialReceipt_Save_Success
                                                    , obj.Key);
                    }
                }
            }
            catch (Exception ex)
            {
                rst.Code    = 1000;
                rst.Message = ex.Message;
                rst.Detail  = ex.ToString();
            }
            return(Json(rst));
        }