//全选单选删除
        public ActionResult DeleteOther(List <OutStorage> list)
        {
            string msg = "";

            foreach (var item in list)
            {
                OutStorage ins = outStorage.GetByWhere(i => i.Id == item.Id).SingleOrDefault();
                List <OutStorageDetail> listDetail = outStorageDetail.GetByWhere(i => i.OutStorageId == ins.OutSNum);
                bool val = true;
                foreach (var listd in listDetail)
                {
                    listd.IsDelete = 1;
                    val            = outStorageDetail.Update(listd);
                }
                if (val)
                {
                    ins.IsDelete = 1;
                    bool vall = outStorage.Update(ins);
                    if (vall)
                    {
                        msg = "删除成功";
                    }
                    else
                    {
                        msg = "删除失败";
                    }
                }
            }
            return(Json(msg, JsonRequestBehavior.AllowGet));
        }
        public ActionResult QueryByIdMinXiInfo(int id)
        {
            OutStorage ins = outStorage.GetByWhere(i => i.Id == id).SingleOrDefault();
            var        mx  = outStorageDetail.GetByWhere(i => i.OutStorageId == ins.OutSNum && i.IsDelete == 0);

            return(Json(mx, JsonRequestBehavior.AllowGet));
        }
        public IHttpActionResult EditOutStorage(OutStorage outStorage)
        {
            var outStorageService = new OutStorageService();
            var editOut           = outStorageService.EditOutStorage(outStorage);
            var result            = new
            {
                Count = editOut?"修改成功!":"修改失败"
            };

            return(Json(result));
        }
        //修改审核状态
        public ActionResult UpdtStatus(OutStorage i, string status)
        {
            var ss = outStorage.GetByWhere(item => item.Id == i.Id).SingleOrDefault();

            i.OutSNum    = ss.OutSNum;
            i.OutSTypeId = ss.OutSTypeId;
            i.CustomerId = ss.CustomerId;
            i.DetailNum  = ss.DetailNum;
            i.Num        = ss.Num;
            i.SumMoney   = ss.SumMoney;
            i.Status     = status;
            i.Contacts   = ss.Contacts;
            i.SendDate   = ss.SendDate;
            i.AuditUser  = ss.AuditUser;
            i.AuditTime  = ss.AuditTime;
            i.IsDelete   = ss.IsDelete;
            i.Remark     = ss.Remark;
            var outStorages = new OutStorageManager();
            var s           = outStorages.Update(i);

            if (status.Equals("审核通过"))
            {
                var d = outStorageDetail.GetByWhere(item => item.OutStorageId == ss.OutSNum);
                foreach (var item in d)
                {
                    var pd = new ProductManager();
                    Expression <Func <Product, bool> > where = iss => iss.ProductNum == item.ProductNum;
                    var pdu1 = pd.GetByWhere(where).SingleOrDefault();
                    pdu1.StockNum = Convert.ToInt32(pdu1.StockNum - item.Quantity);
                    var pdu = productManager.Update(pdu1);
                }
            }
            var result = new
            {
                ActionResult = s
            };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public IHttpActionResult AddOutStorage(OutStorage outStorage)
        {
            var outStorageService = new OutStorageService();

            outStorage.ProductType   = 2;
            outStorage.StorageNum    = "DSP_0000";
            outStorage.Status        = 1;
            outStorage.IsDelete      = 0;
            outStorage.CreateTime    = DateTime.Now;
            outStorage.CreateUser    = "******";
            outStorage.OperateType   = 1;
            outStorage.SendDate      = DateTime.Now;
            outStorage.AuditeTime    = DateTime.Now;
            outStorage.EquipmentNum  = "null";
            outStorage.EquipmentCode = "null";
            var addOutStorage = outStorageService.Add(outStorage);
            var result        = new
            {
                Conut = addOutStorage ? "添加成功!" : "添加失败!"
            };

            return(Json(result));
        }
        public ActionResult Insert(List <OutStorageDetail> detail, int OutSTypeId, int CustomerId, string Remark, string AuditUser)
        {
            string detailNum = "";
            //获取明细表最大编号
            string detailNumBig = outStorageDetail.GetByWhere(i => true).OrderByDescending(i => i.DetailNum).Take(1).Select(i => i.DetailNum).FirstOrDefault();

            if (string.IsNullOrEmpty(detailNumBig))
            {
                detailNum = "000001";
            }
            else
            {
                detailNum = "00000" + (int.Parse(detailNumBig) + 1);
                int num_1 = int.Parse(detailNumBig);
                if (num_1 >= 9)
                {
                    detailNum = "0000" + (int.Parse(detailNumBig) + 1);
                }
                if (num_1 >= 99)
                {
                    detailNum = "000" + (int.Parse(detailNumBig) + 1);
                }
            }

            string outSNum = "";
            //获取出库表最大编号
            string outSNumBig = outStorage.GetByWhere(i => true).OrderByDescending(i => i.OutSNum).Take(1).Select(i => i.OutSNum).FirstOrDefault();

            if (outSNumBig == null)
            {
                outSNum = "000001";
            }
            else
            {
                outSNum = "00000" + (int.Parse(outSNumBig) + 1);
                int num_2 = int.Parse(outSNumBig);
                if (num_2 >= 9)
                {
                    outSNum = "0000" + (int.Parse(outSNumBig) + 1);
                }
                if (num_2 >= 99)
                {
                    outSNum = "000" + (int.Parse(outSNumBig) + 1);
                }
            }

            bool   val = true;
            string msg = "";

            foreach (var item in detail)
            {
                item.CreateTime   = DateTime.Now;
                item.DetailNum    = detailNum;
                item.OutStorageId = outSNum;
                val = outStorageDetail.Add(item);
            }
            if (val)
            {
                var        num      = outStorageDetail.GetByWhere(i => i.OutStorageId == outSNum).Sum(i => i.Quantity); //获取总出货数
                var        sumMoney = outStorageDetail.GetByWhere(i => i.OutStorageId == outSNum).Sum(i => i.SumMoney); //获取总价格
                OutStorage ost      = new OutStorage();
                ost.OutSNum    = outSNum;
                ost.OutSTypeId = OutSTypeId;
                ost.CustomerId = CustomerId;
                ost.DetailNum  = detailNum;
                ost.Num        = Convert.ToInt32(num);;
                ost.SumMoney   = Convert.ToDouble(sumMoney);
                ost.Status     = "待审核";
                ost.AuditTime  = DateTime.Now;
                ost.AuditUser  = AuditUser;
                ost.Remark     = Remark;
                ost.IsDelete   = 0;
                bool val1 = outStorage.Add(ost);
                if (val1)
                {
                    msg = "新增成功";
                }
                else
                {
                    msg = "新增失败";
                }
                msg = "新增成功";
            }
            else
            {
                msg = "新增失败";
            }
            return(Json(msg, JsonRequestBehavior.AllowGet));
        }