public JsonResult MailSampleAdd(T_MailSample model, string jsonStr, string ExpenseNextApprove, string p_c_a)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                try
                {
                    string orderNum = model.OrderNumber;
                    //if (orderNum == null || orderNum == "")
                    //{

                    //}
                    string Order = "8" + DateTime.Now.ToString("yyyyMMddHHmmssffff");

                    string Nickname = Server.UrlDecode(Request.Cookies["Nickname"].Value);
                    model.GoodsAddress = p_c_a;
                    model.OrderNumber  = Order;
                    model.ApplyName    = Nickname;
                    model.ApplyDate    = DateTime.Now;
                    model.Status       = -1;
                    model.Step         = 0;
                    model.Isdelete     = 0;
                    db.T_MailSample.Add(model);
                    int i = db.SaveChanges();
                    if (i > 0)
                    {
                        List <T_MailSampleDetails> details = App_Code.Com.Deserialize <T_MailSampleDetails>(jsonStr);
                        foreach (var item in details)
                        {
                            item.Oid = model.ID;
                            db.T_MailSampleDetails.Add(item);
                        }
                        db.SaveChanges();

                        T_MailSampleAppRove AppRoveModel = new T_MailSampleAppRove();
                        AppRoveModel.Status       = -1;
                        AppRoveModel.Step         = "0";
                        AppRoveModel.ApproveName  = ExpenseNextApprove;
                        AppRoveModel.ApproveDName = "部门主管";
                        AppRoveModel.Oid          = model.ID;
                        db.T_MailSampleAppRove.Add(AppRoveModel);
                        db.SaveChanges();
                    }
                    else
                    {
                        return(Json(new { State = "Faile" }, JsonRequestBehavior.AllowGet));
                    }

                    sc.Complete();
                    return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception ex)
                {
                    return(Json(new { State = "Faile", Message = ex.Message }, JsonRequestBehavior.AllowGet));
                }
            }
        }
        //审核
        public JsonResult MailSampleCheckCheck(T_MailSample model, string status, string Memo)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                int          ID           = model.ID;
                T_MailSample Invoicemodel = db.T_MailSample.SingleOrDefault(a => a.ID == ID && a.Isdelete == 0);
                if (Invoicemodel == null)
                {
                    return(Json("数据可能被删除", JsonRequestBehavior.AllowGet));
                }

                T_MailSampleAppRove modelApprove = db.T_MailSampleAppRove.FirstOrDefault(a => a.Oid == ID && a.ApproveTime == null);
                string Nickname = Server.UrlDecode(Request.Cookies["Nickname"].Value);

                string result = "";
                modelApprove.ApproveName = Nickname;
                modelApprove.Memo        = Memo;
                modelApprove.ApproveTime = DateTime.Now;
                modelApprove.Status      = int.Parse(status);
                db.Entry <T_MailSampleAppRove>(modelApprove).State = System.Data.Entity.EntityState.Modified;
                int i = db.SaveChanges();
                if (i > 0)
                {
                    if (status == "1")
                    {
                        T_MailSampleAppRove newApprove = new T_MailSampleAppRove();
                        int step = int.Parse(Invoicemodel.Step.ToString());
                        step++;
                        IQueryable <T_MailSampleConfig> config = db.T_MailSampleConfig.AsQueryable();
                        int stepLength = config.Count();//总共步骤
                        if (step < stepLength)
                        {
                            Invoicemodel.Status = 0;
                            T_MailSampleConfig stepMod  = db.T_MailSampleConfig.SingleOrDefault(a => a.Step == step);
                            string             nextName = stepMod.Name;
                            newApprove.Memo   = "";
                            newApprove.Oid    = ID;
                            newApprove.Status = -1;
                            newApprove.Step   = step.ToString();
                            if (nextName != null)
                            {
                                newApprove.ApproveName  = nextName;
                                newApprove.ApproveDName = stepMod.Type;
                            }
                            else
                            {
                                newApprove.ApproveName  = stepMod.Type;
                                newApprove.ApproveDName = stepMod.Type;
                            }
                            db.T_MailSampleAppRove.Add(newApprove);
                            db.SaveChanges();
                        }
                        else
                        {
                            Invoicemodel.Status = int.Parse(status);

                            List <T_MailSampleDetails> DetailsList = db.T_MailSampleDetails.Where(a => a.Oid == ID).ToList();
                            string shangp = "";
                            for (int e = 0; e < DetailsList.Count; e++)
                            {
                                if (e == DetailsList.Count - 1)
                                {
                                    shangp += "{\"qty\":" + DetailsList[e].qty + ",\"note\":\"\",\"refund\":0,\"item_code\":\"" + System.Web.HttpContext.Current.Server.UrlEncode(DetailsList[e].Code) + "\"}";
                                }
                                else
                                {
                                    shangp += "{\"qty\":" + DetailsList[e].qty + ",\"note\":\"\",\"refund\":0,\"item_code\":\"" + System.Web.HttpContext.Current.Server.UrlEncode(DetailsList[e].Code) + "\"},";
                                }
                            }
                            string[] address           = Invoicemodel.GoodsAddress.Split('-');
                            string   receiver_province = "";
                            string   receiver_city     = "";
                            string   receiver_district = "";
                            if (address.Length >= 1)
                            {
                                receiver_province = address[0];
                            }
                            if (address.Length >= 2)
                            {
                                receiver_city = address[1];
                            }
                            if (address.Length >= 3)
                            {
                                receiver_district = address[2];
                            }

                            EBMS.App_Code.GY gy       = new App_Code.GY();
                            string           ShopCode = GetShopFromString(Invoicemodel.ShopName);
                            string           datetime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                            string           cmd      = "";
                            cmd = "{" +
                                  "\"appkey\":\"171736\"," +
                                  "\"method\":\"gy.erp.trade.add\"," +
                                  "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"," +
                                  "\"platform_code\":\"" + Invoicemodel.OrderNumber + "\"," +
                                  "\"order_type_code\":\"Sales\"," +
                                  "\"shop_code\":\"" + ShopCode + "\"," +
                                  "\"express_code\":\"" + Invoicemodel.ExpressCode + "\"," +
                                  "\"warehouse_code\":\"" + Invoicemodel.DeliverGoodsWarehouse + "\"," +
                                  "\"receiver_province\":\"" + receiver_province + "\"," +
                                  "\"receiver_city\":\"" + receiver_city + "\"," +
                                  "\"receiver_district\":\"" + receiver_district + "\"," +
                                  "\"vip_code\":\"" + Invoicemodel.GoodsReceiptName + "\"," +
                                  "\"vip_name\":\"" + Invoicemodel.GoodsReceiptName + "\"," +
                                  "\"receiver_name\":\"" + Invoicemodel.GoodsReceiptName + "\"," +
                                  "\"receiver_address\":\"" + Invoicemodel.GoodsReceiptAddress + "\"," +
                                  "\"receiver_mobile\":\"" + Invoicemodel.GoodsReceiptPhone + "\"," +
                                  "\"receiver_phone\":\"" + Invoicemodel.GoodsReceiptPhone + "\"," +
                                  "\"deal_datetime\":\"" + datetime + "\"," +
                                  "\"seller_memo\":\"" + Invoicemodel.DeliverGoodsReason + "\"," +
                                  "\"details\":[" + shangp + "]" +
                                  "}";
                            string sign    = gy.Sign(cmd);
                            string comcode = "{" +
                                             "\"appkey\":\"171736\"," +
                                             "\"method\":\"gy.erp.trade.add\"," +
                                             "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"," +
                                             "\"platform_code\":\"" + Invoicemodel.OrderNumber + "\"," +
                                             "\"order_type_code\":\"Sales\"," +
                                             "\"shop_code\":\"" + ShopCode + "\"," +
                                             "\"express_code\":\"" + Invoicemodel.ExpressCode + "\"," +
                                             "\"warehouse_code\":\"" + Invoicemodel.DeliverGoodsWarehouse + "\"," +
                                             "\"receiver_province\":\"" + receiver_province + "\"," +
                                             "\"receiver_city\":\"" + receiver_city + "\"," +
                                             "\"receiver_district\":\"" + receiver_district + "\"," +
                                             "\"vip_code\":\"" + Invoicemodel.GoodsReceiptName + "\"," +
                                             "\"vip_name\":\"" + Invoicemodel.GoodsReceiptName + "\"," +
                                             "\"receiver_name\":\"" + Invoicemodel.GoodsReceiptName + "\"," +
                                             "\"receiver_address\":\"" + Invoicemodel.GoodsReceiptAddress + "\"," +
                                             "\"receiver_mobile\":\"" + Invoicemodel.GoodsReceiptPhone + "\"," +
                                             "\"receiver_phone\":\"" + Invoicemodel.GoodsReceiptPhone + "\"," +
                                             "\"deal_datetime\":\"" + datetime + "\"," +
                                             "\"seller_memo\":\"" + Invoicemodel.DeliverGoodsReason + "\"," +
                                             "\"sign\":\"" + sign + "\"," +
                                             "\"details\":[" + shangp + "]" +
                                             "}";
                            string   ret      = gy.DoPost("http://api.guanyierp.com/rest/erp_open", comcode);
                            JsonData jsonData = null;
                            jsonData = JsonMapper.ToObject(ret);
                            string sd = jsonData[0].ToString();
                        }


                        Invoicemodel.Step = step;
                        db.Entry <T_MailSample>(Invoicemodel).State = System.Data.Entity.EntityState.Modified;
                        int j = db.SaveChanges();
                        if (j > 0)
                        {
                            sc.Complete();
                            result = "保存成功";
                        }
                        else
                        {
                            result = "保存失败";
                        }
                    }
                    else
                    {
                        //不同意
                        Invoicemodel.Step   = 0;
                        Invoicemodel.Status = 2;
                        db.Entry <T_MailSample>(Invoicemodel).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                        sc.Complete();
                        //审核流程结束 申请人编辑后插入下一条记录
                        result = "保存成功";
                    }
                }
                else
                {
                    result = "保存失败";
                }


                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }