コード例 #1
0
        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));
                }
            }
        }
コード例 #2
0
        //查询单据编号返回详情 数据来自管易
        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));
            }
        }