public JsonResult Save(T_Deliver model, string jsonStr, string CurUser, string TiaoMa, string type) { using (TransactionScope sc = new TransactionScope()) { try { // 查询发货表 订单是否发货 T_Deliver deliverFlag = db.T_Deliver.FirstOrDefault(a => a.MailNo == model.MailNo); if (deliverFlag != null) { return(Json(new { State = "Faile", Message = "该单据编号已经发货" }, JsonRequestBehavior.AllowGet)); } T_Warehouses warehouseMod = db.T_Warehouses.SingleOrDefault(a => a.name == model.WarehouseCode); //发货记录表增加发货记录 string curUser = ""; if (!string.IsNullOrWhiteSpace(CurUser)) { curUser = CurUser; } else { curUser = Server.UrlDecode(Request.Cookies["NickName"].Value); } string IP = Request.UserHostAddress; T_Deliver MOD = new T_Deliver(); MOD.PostTime = DateTime.Now; MOD.PostName = curUser; MOD.OrderNum = model.OrderNum; MOD.MailNo = model.MailNo; MOD.WarehouseCode = warehouseMod.code; MOD.IP = IP; MOD.Note = model.Note; db.T_Deliver.Add(MOD); db.SaveChanges(); /* * 解析jsonStr * 修改库存表发货详情记录表 * 库存表是否有该商品的库存信息?直接修改库存数量:新增一条库存信息qty为负数 */ List <AddMod> detail = Com.Deserialize <AddMod>(jsonStr); if (type == "1") { List <TiaoMaAddMod> TiaoMaAddModList = new List <TiaoMaAddMod>(); string[] tiaomaList = TiaoMa.Split('\n'); int Qty = 0; for (int i = 0; i < detail.Count; i++) { Qty += int.Parse(detail[i].qty.ToString()); int tiaomalistQty = 0; int detailcount = int.Parse(detail[i].qty.ToString()); for (int z = 0; z < tiaomaList.Length; z++) { if (tiaomaList[z] == "") { break; } string tiaomazz = ""; //if (z == tiaomaList.Length - 1) //{ // tiaomazz = tiaomaList[z].Substring(0, tiaomaList[z].Length); //} //else //{ // tiaomazz = tiaomaList[z].Substring(0, tiaomaList[z].Length - 1); //} tiaomazz = tiaomaList[z].Substring(0, tiaomaList[z].Length - 1); if (detail[i].tiaoma == tiaomazz) { tiaomalistQty++; } } if (detailcount != tiaomalistQty) { TiaoMaAddMod TiaoMaAddModModel = new TiaoMaAddMod(); TiaoMaAddModModel.tiaoma = detail[i].tiaoma; TiaoMaAddModList.Add(TiaoMaAddModModel); } } if (TiaoMaAddModList.Count > 0) { string nottiaoma = ""; for (int i = 0; i < TiaoMaAddModList.Count; i++) { if (i == TiaoMaAddModList.Count - 1) { nottiaoma += TiaoMaAddModList[i].tiaoma; } else { nottiaoma += TiaoMaAddModList[i].tiaoma + ","; } } return(Json(new { State = "Faile", Message = "该" + nottiaoma + "数量与详情不符合", stype = "0" }, JsonRequestBehavior.AllowGet)); } int tiaomaQty = 0; for (int i = 0; i < tiaomaList.Length; i++) { if (tiaomaList[i] != "") { tiaomaQty++; } } if (Qty != tiaomaQty) { return(Json(new { State = "Faile", Message = "存在多发货物", stype = "0" }, JsonRequestBehavior.AllowGet)); } } for (int i = 0; i < detail.Count; i++) { //操作库存表 string _code = detail[i].item_code; T_Stock StocMOD = db.T_Stock.SingleOrDefault(a => a.Code == _code); if (StocMOD != null) { int _qty = int.Parse(detail[i].qty.ToString()); StocMOD.Qty -= _qty; db.Entry <T_Stock>(StocMOD).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } else { T_Stock createMod = new T_Stock(); createMod.Name = detail[i].item_name; createMod.Code = detail[i].item_code; createMod.Qty = -int.Parse(detail[i].qty.ToString()); createMod.WarehouseName = warehouseMod.code; db.T_Stock.Add(createMod); db.SaveChanges(); } //操作发货详情记录表 T_DeliverDetail detailMOD = new T_DeliverDetail(); detailMOD.Code = detail[i].item_code; detailMOD.Name = detail[i].item_name; detailMOD.Qty = detail[i].qty; detailMOD.Oid = MOD.ID; db.T_DeliverDetail.Add(detailMOD); db.SaveChanges(); T_StockOutstorage StorageModel = new T_StockOutstorage(); StorageModel.Code = detail[i].item_code; StorageModel.Name = detail[i].item_name; StorageModel.WarehouseCode = model.WarehouseCode; StorageModel.number = model.MailNo; StorageModel.Qty = detail[i].qty; StorageModel.Type = "出库"; db.T_StockOutstorage.Add(StorageModel); db.SaveChanges(); } sc.Complete(); return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { State = "Faile", Message = e.Message }, JsonRequestBehavior.AllowGet)); } } }
//查询单据编号返回详情 数据来自管易 public JsonResult getOrderDetail(string num) { try { string result = ""; if (num != null) { App_Code.GY gy = new App_Code.GY(); string cmd = ""; cmd = "{" + "\"appkey\":\"171736\"," + "\"method\":\"gy.erp.trade.deliverys.get\"," + "\"page\":1," + "\"page_size\":3," + "\"code\":\"" + num + "\"," + "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"" + "}"; string sign = gy.Sign(cmd); cmd = cmd.Replace("}", ",\"sign\":\"" + sign + "\"}"); string ret = gy.DoPost("http://api.guanyierp.com/rest/erp_open", cmd); JsonData jsonData = null; jsonData = JsonMapper.ToObject(ret); DateTime dateStar = DateTime.Parse("2017-02-10 16:07:50.473"); DateTime dateEnd = DateTime.Parse("2017-02-11 16:07:50.473"); if (jsonData["deliverys"].Count == 0) { cmd = "{" + "\"appkey\":\"171736\"," + "\"method\":\"gy.erp.trade.deliverys.history.get\"," + "\"page\":1," + "\"page_size\":3," + "\"code\":\"" + num + "\"," + "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"" + "}"; sign = gy.Sign(cmd); cmd = cmd.Replace("}", ",\"sign\":\"" + sign + "\"}"); ret = gy.DoPost("http://api.guanyierp.com/rest/erp_open", cmd); jsonData = null; jsonData = JsonMapper.ToObject(ret); if (jsonData.Count == 6 || jsonData["deliverys"].Count == 0) { result = "单据编号不存在"; return(Json(new { State = "Faile", Message = result }, JsonRequestBehavior.AllowGet)); } } JsonData jsonOrders = jsonData["deliverys"][0]; //查询管易发货字段 可是不能修改 //int state = int.Parse((jsonOrders["delivery_state"]).ToString()); //if (state != 0) { // result = "该订单已经发货"; // return Json(new { State = "Faile", Message = result }, JsonRequestBehavior.AllowGet); //} // 查询发货表 订单是否发货 T_Deliver deliverFlag = db.T_Deliver.FirstOrDefault(a => a.MailNo == num); if (deliverFlag != null) { return(Json(new { State = "Faile", Message = "该单据编号已经发货" }, JsonRequestBehavior.AllowGet)); } JsonData details = jsonOrders["details"]; List <AddMod> detalislist = new List <AddMod>(); for (int s = 0; s < details.Count; s++) { //返回的数据构造 AddMod detalis = new AddMod(); JsonData detailItem = details[s]; string Code = isNULL(detailItem["item_code"]).ToString(); detalis.item_code = isNULL(detailItem["item_code"]).ToString(); detalis.item_name = isNULL(detailItem["item_name"]).ToString(); detalis.qty = int.Parse(detailItem["qty"].ToString()); detalis.sku_name = isNULL(detailItem["sku_name"]).ToString(); string Tiaoma = db.T_goodsGY.SingleOrDefault(a => a.code == Code).barcode; detalis.tiaoma = Tiaoma; detalislist.Add(detalis); } string Warehouse = isNULL(jsonOrders["warehouse_name"]).ToString(); string OrderNum = isNULL(jsonOrders["platform_code"]).ToString(); result = "{\"rows\":" + JsonConvert.SerializeObject(detalislist) + ",\"Warehouse\":\"" + Warehouse + "\",\"OrderNum\":\"" + OrderNum + "\"}"; } else { result = "请输入正确的单据编号"; return(Json(new { State = "Faile", Message = result }, JsonRequestBehavior.AllowGet)); } return(Json(new { State = "Success", result = result }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { State = "Faile", Message = e.Message }, JsonRequestBehavior.AllowGet)); } }