Ejemplo n.º 1
0
        public ActionResult Create(Orders order)
        {
            List <OrderSystemDetail> orderDetails;

            if (!this.CheckOrder(order.OrderNumber, out orderDetails))
            {
                ViewData["error"] = ORDER_EXISTS_ERROR;
                return(View());
            }
            OrderSystemDetail orderItem = orderDetails[0];

            order.DateAssign       = DateTime.Now;
            order.DateNeedFinish   = orderItem.duedate;
            order.RoomId           = orderItem.roomId;
            order.RoomName         = orderItem.roomName;
            order.RoomNumber       = orderItem.ocrcode;
            order.Status           = enumStatus.Unhandle;
            order.ProductUnit      = orderItem.FatherInvntryUom;
            order.ProductCode      = orderItem.Fatheritemcode;
            order.ProductInfo      = orderItem.Fatheritemname;
            order.OrderNumber      = orderItem.docnum;
            order.ProductFreeCount = orderItem.plannedqty;
            order.ProductCount     = orderItem.plannedqty;
            //物料信息
            List <string> mateCodes = new List <string> ();

            foreach (OrderSystemDetail item in orderDetails)
            {
                mateCodes.Add(item.Childitemcode);
            }
            IEnumerable <Materials> materialList = from item in db.Materials
                                                   where mateCodes.Contains(item.Code)
                                                   select item;
            string strIds = string.Empty;

            foreach (Materials item in materialList)
            {
                strIds += item.ID + ";";
            }
            order.MaterialInfo = strIds.Substring(0, strIds.Length - 1);

            db.Orders.Add(order);
            db.SaveChanges();

            return(RedirectToAction("Detail", new { id = order.OrderId, error = enumErrorCode.HandlerSuccess }));
        }
Ejemplo n.º 2
0
        private bool CheckOrder(string order, out List <OrderSystemDetail> orderDetails)
        {
            bool result = false;

            orderDetails = null;
            try
            {
                //获取订单数据
                Dictionary <string, string> orderParam = new Dictionary <string, string>();
                orderParam.Add(ORDER_CODE_PARAM, order);
                string strOrderInfo = WebInfo.PostPageInfo(ORDER_URL, orderParam);
                //订单解码
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <OrderSystemDetail>));
                MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(strOrderInfo));
                orderDetails = (List <OrderSystemDetail>)serializer.ReadObject(stream);
                if (orderDetails.Count < 1)
                {
                    return(result);
                }
                //校验车间权限
                OrderSystemDetail orderItem = orderDetails[0];
                FactoryRoom       room      = db.FactoryRoom.FirstOrDefault(item => item.RoomNumber == orderItem.ocrcode);
                if (room == null)
                {
                    return(result);
                }
                int          userId       = Convert.ToInt32(Session["UserID"]);
                UsersInRooms tempUserRoom = db.UsersInRooms.FirstOrDefault(item => item.RoomId == room.RoomID && item.UserId == userId);
                if (tempUserRoom == null)
                {
                    return(result);
                }

                orderItem.roomName = room.RoomName;
                orderItem.roomId   = room.RoomID;

                result = true;
            }
            catch { }

            return(result);
        }
Ejemplo n.º 3
0
        public JsonResult GetOrderInfo(string order)
        {
            JsonResult result = new JsonResult();

            using (var t = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions {
                IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
            }))
            {
                Orders tempCurrentOrder = db.Orders.FirstOrDefault(item => item.OrderNumber == order);
                if (tempCurrentOrder != null)
                {
                    result.Data = new { error = ORDER_EXISTS_ERROR };
                    return(result);
                }
            }
            result.Data = new { error = ORDER_RIGHT_ERROR };
            //获取订单数据
            List <OrderSystemDetail> orderDetails;

            if (!this.CheckOrder(order, out orderDetails))
            {
                return(result);
            }
            //物料保存
            List <string> matList    = new List <string>();
            bool          insertFlag = false;

            foreach (OrderSystemDetail item in orderDetails)
            {
                matList.Add(string.Format(App_Start.Constants.MACHINE_MATERIAL_STRUCTURE, item.Childitemcode, item.ChildnvntryUom, item.Childitemname));
                Materials tempMat = db.Materials.FirstOrDefault(m => m.Code == item.Childitemcode);
                if (tempMat == null)
                {
                    db.Materials.Add(new Materials()
                    {
                        Code       = item.Childitemcode,
                        Unit       = item.ChildnvntryUom,
                        DetailInfo = item.Childitemname
                    });
                    insertFlag = true;
                }
            }
            if (insertFlag)
            {
                db.SaveChanges();
            }
            //返回前台显示
            OrderSystemDetail orderItem = orderDetails[0];

            result.Data = new
            {
                orderCode    = orderItem.docnum,
                roomName     = orderItem.roomName,
                roomNumber   = orderItem.ocrcode,
                dateFinish   = orderItem.duedate.ToString("yyyy年MM月dd日"),
                productCode  = orderItem.Fatheritemcode,
                productUnit  = orderItem.FatherInvntryUom,
                productInfo  = orderItem.Fatheritemname,
                materialInfo = matList.ToArray(),
                detail       = orderItem.U_WL_PACK == null ? "" : orderItem.U_WL_PACK,
                notice       = orderItem.U_htyq
            };

            return(result);
        }