Beispiel #1
0
        public GoodsReceivedResult ResetOrdercode(long?purch_id, string OrderCode)
        {
            bool isok = false;
            GoodsReceivedResult result = new GoodsReceivedResult();

            using (var db = SugarDao.GetInstance(LoginUser.GetConstr()))
            {
                try
                {
                    busi_purchase pur = db.Queryable <busi_purchase>().Where(s => s.purch_id == purch_id).FirstOrDefault();
                    pur.OrderCode = OrderCode;
                    isok          = db.Update <busi_purchase>(pur);
                    if (isok)
                    {
                        result.success = true;
                        result.Msg     = "操作成功";
                        return(result);
                    }
                    else
                    {
                        result.success = false;
                        result.Msg     = "操作失败";
                        return(result);
                    }
                }
                catch (Exception ex)
                {
                    result.success = false;
                    result.Msg     = "操作失败" + ex.Message;
                    return(result);
                }
            }
        }
        public ActionResult Save1(busi_purchase model, List <MaterialReceiptModelE> lists)
        {
            MaterialReceiptResult com = new MaterialReceiptResult();

            try
            {
                return(Json(com));
            }
            catch (Exception ex)
            {
                com.Msg     = ex.ToString();
                com.success = false;
                return(Json(com));
            }
        }
Beispiel #3
0
        public ActionResult isLocked(busi_purchase model)
        {
            WaitPurchaseResult com = new WaitPurchaseResult();

            try
            {
                com = _service.isLocked(model);
                return(Json(com));
            }
            catch (Exception ex)
            {
                com.Msg     = ex.ToString();
                com.success = false;
                return(Json(com));
            }
        }
        public ActionResult Save(busi_purchase model, List <MaterialReceiptSaveModel> lists, int?purch_type)
        {
            MaterialReceiptResult com = new MaterialReceiptResult();

            try
            {
                com = _service.Save(model, lists, purch_type);
                return(Json(com));
            }
            catch (Exception ex)
            {
                com.Msg     = ex.ToString();
                com.success = false;
                return(Json(com));
            }
        }
Beispiel #5
0
        public ActionResult IndexE(long?id)
        {
            busi_purchase list = _service.GetInfoByID(id.Value);

            if (list.purch_id > 0)
            {
                ViewBag.id           = list.purch_id;
                ViewBag.purch_numb   = list.purch_numb.ToString();
                ViewBag.purch_code   = list.purch_code;
                ViewBag.sum_money    = list.sum_money;
                ViewBag.purch_remark = list.purch_remark;
                ViewBag.purch_sum    = list.purch_sum;
                ViewBag.create_time  = list.create_time.ToString("yyyy-MM-dd");
                ViewBag.sum_freight  = list.sum_freight;
                ViewBag.purch_status = list.purch_status == 1 ? "初始" : (list.purch_status == 2 ? "已采购" : (list.purch_status == 3 ? "待收货" : (list.purch_status == 4 ? "已全部到货" : "")));
                ViewBag.purch_type   = list.purch_type == 1 ? "订单采购" : (list.purch_type == 2 ? "库存采购" : "");
                ViewBag.isLocked     = list.isLocked;
            }
            return(View(new busi_purchase()));
        }
        /// <summary>
        /// 采购收货
        /// </summary>
        /// <param name="model"></param>
        /// <param name="lists"></param>
        /// <param name="purch_type"></param>
        /// <returns></returns>
        public MaterialReceiptResult Save(busi_purchase model, List <MaterialReceiptSaveModel> lists, int?purch_type)
        {
            bool rstNum   = false;
            bool rstNums  = false;
            bool rstNumss = false;
            MaterialReceiptResult result = new MaterialReceiptResult();

            using (var db = SugarDao.GetInstance(LoginUser.GetConstr()))
            {
                try
                {
                    db.BeginTran();
                    #region 判断
                    if (model == null)
                    {
                        result.success = false;
                        result.Msg     = "请填写信息!";
                        return(result);
                    }

                    if (model.purch_id == 0)
                    {
                        result.success = false;
                        result.Msg     = "参数错误!";
                        return(result);
                    }

                    if (!purch_type.HasValue || purch_type < 0)
                    {
                        result.success = false;
                        result.Msg     = "参数错误!";
                        return(result);
                    }
                    #endregion
                    int suc = 0;

                    var list = db.Queryable <busi_purchase>().Where(s => s.del_flag).InSingle(model.purch_id);
                    if (list == null)
                    {
                        result.success = false;
                        result.Msg     = "不存在的采购信息";
                        return(result);
                    }

                    if (list.purch_status == 4)
                    {
                        result.success = false;
                        result.Msg     = "该单号已收货,请勿重复操作!";
                        return(result);
                    }
                    list.edit_time    = DateTime.Now;
                    list.purch_status = 4;
                    list.edit_user_id = 0;
                    rstNum            = db.Update <busi_purchase>(list);
                    if (rstNum)
                    {
                        rstNums = db.Update <busi_purchasedetail>(new { purch_status = 4 }, a => a.purch_id == model.purch_id && a.purch_status == 3);
                        if (lists.Count > 0)
                        {
                            if (purch_type == 1)
                            {
                                foreach (var item in lists)
                                {
                                    var stock = db.Queryable <base_wh_stock>().Where(s => s.del_flag && s.code_id == item.code_id && s.prod_id == item.prod_id && s.location_id == 1 && s.wh_id == 1).FirstOrDefault();
                                    if (stock != null)
                                    {
                                        Decimal oldwh_stock = stock.stock_qty;
                                        Decimal newwh_stock = oldwh_stock + item.prod_num;
                                        rstNumss = db.Update <base_wh_stock>(new { stock_qty = newwh_stock }, s => s.stock_id == stock.stock_id);
                                        if (rstNumss)
                                        {
                                            suc += 1;
                                        }
                                    }
                                    else
                                    {
                                        var wh_warehouse = db.Queryable <base_wh_warehouse>().Where(s => s.del_flag).InSingle(1);
                                        if (wh_warehouse != null)
                                        {
                                            base_wh_stock wh_stock = new base_wh_stock();
                                            wh_stock.prod_id        = item.prod_id;
                                            wh_stock.occupied_qty   = 0;
                                            wh_stock.pallet_id      = 0;
                                            wh_stock.purchase_price = 0;
                                            wh_stock.remark         = "采购收货";
                                            wh_stock.reserve_qty    = 0;
                                            wh_stock.service_life   = "";
                                            wh_stock.stock_barcode  = "";
                                            wh_stock.stock_class    = 3;
                                            wh_stock.stock_code     = "1";
                                            wh_stock.stock_qty      = item.prod_num;
                                            wh_stock.stock_status   = true;
                                            wh_stock.retrieval_time = DateTime.Now;
                                            wh_stock.storage_time   = DateTime.Now;
                                            wh_stock.supplier_id    = item.supp_id;
                                            wh_stock.using_state    = 1;
                                            wh_stock.wh_id          = 1;
                                            wh_stock.location_id    = 1;
                                            wh_stock.locking_qty    = 0;
                                            wh_stock.area_id        = 0;
                                            wh_stock.asset_class_id = 0;
                                            wh_stock.code_id        = item.code_id;
                                            wh_stock.consignor_id   = 0;
                                            wh_stock.create_time    = DateTime.Now;
                                            wh_stock.create_user_id = LoginUser.Current.user_id;
                                            wh_stock.del_flag       = true;
                                            wh_stock.del_user_id    = 0;
                                            wh_stock.edit_user_id   = 0;
                                            wh_stock.del_time       = DateTime.Now;
                                            wh_stock.edit_time      = DateTime.Now;
                                            wh_stock.stock_id       = Guid.NewGuid();
                                            var id = db.Insert <base_wh_stock>(wh_stock);
                                            if (id.ObjToBool())
                                            {
                                                suc += 1;
                                            }
                                        }
                                        else
                                        {
                                            db.RollbackTran();
                                            result.success = false;
                                            result.Msg     = "操作失败! 请先添加<span style=\"color:red;\">金华仓</span>!";
                                            return(result);
                                        }
                                    }
                                }
                            }
                            else if (purch_type == 2)
                            {
                                foreach (var item in lists)
                                {
                                    var stock = db.Queryable <base_wh_stock>().Where(s => s.del_flag && s.code_id == item.code_id && s.prod_id == item.prod_id && s.location_id != 1 && s.wh_id == 1).FirstOrDefault();
                                    if (stock != null)
                                    {
                                        Decimal oldwh_stock = stock.stock_qty;
                                        Decimal newwh_stock = oldwh_stock + item.prod_num;
                                        if (newwh_stock >= 0)
                                        {
                                            rstNumss = db.Update <base_wh_stock>(new { stock_qty = newwh_stock }, s => s.stock_id == stock.stock_id);
                                            if (rstNumss)
                                            {
                                                suc += 1;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        var location = db.Queryable <base_location>().Where(s => s.del_flag && s.wh_id == 1 && s.locat_type == 2).FirstOrDefault();
                                        if (location != null)
                                        {
                                            base_wh_stock wh_stock = new base_wh_stock();
                                            wh_stock.prod_id        = item.prod_id;
                                            wh_stock.occupied_qty   = 0;
                                            wh_stock.pallet_id      = 0;
                                            wh_stock.purchase_price = 0;
                                            wh_stock.remark         = "库存采购";
                                            wh_stock.reserve_qty    = 0;
                                            wh_stock.service_life   = "";
                                            wh_stock.stock_barcode  = "";
                                            wh_stock.stock_class    = 3;
                                            wh_stock.stock_code     = "1";
                                            wh_stock.stock_qty      = item.prod_num;
                                            wh_stock.stock_status   = true;
                                            wh_stock.retrieval_time = DateTime.Now;
                                            wh_stock.storage_time   = DateTime.Now;
                                            wh_stock.supplier_id    = item.supp_id;
                                            wh_stock.using_state    = 1;
                                            wh_stock.wh_id          = 1;
                                            wh_stock.location_id    = location.locat_id;
                                            wh_stock.locking_qty    = 0;
                                            wh_stock.area_id        = 0;
                                            wh_stock.asset_class_id = 0;
                                            wh_stock.code_id        = item.code_id;
                                            wh_stock.consignor_id   = 0;
                                            wh_stock.create_time    = DateTime.Now;
                                            wh_stock.create_user_id = LoginUser.Current.user_id;
                                            wh_stock.del_flag       = true;
                                            wh_stock.del_user_id    = 0;
                                            wh_stock.edit_user_id   = 0;
                                            wh_stock.del_time       = DateTime.Now;
                                            wh_stock.edit_time      = DateTime.Now;
                                            wh_stock.stock_id       = Guid.NewGuid();
                                            var id = db.Insert <base_wh_stock>(wh_stock);
                                            if (id.ObjToBool())
                                            {
                                                suc += 1;
                                            }
                                        }
                                        else
                                        {
                                            db.RollbackTran();
                                            result.success = false;
                                            result.Msg     = "<span style=\"color:red;\">金华仓</span>暂无库位,请先添加<span style=\"color:red;\">金华仓</span>库位,在进行操作!";
                                            return(result);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (suc == lists.Count)
                    {
                        db.CommitTran();
                        result.success = true;
                        // result.URL = "/MaterialReceipt/IndexE?id=" + model.purch_id + "";
                        result.Msg = "操作成功";
                        return(result);
                    }
                    else
                    {
                        db.RollbackTran();
                        result.success = false;
                        result.Msg     = "操作失败";
                        return(result);
                    }
                }
                catch (Exception)
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
        /// <summary>
        /// 根据ID锁定 解锁 采购信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public WaitPurchaseResult isLocked(busi_purchase model)
        {
            bool rstNum = false;
            WaitPurchaseResult result = new WaitPurchaseResult();

            using (var db = SugarDao.GetInstance(LoginUser.GetConstr()))
            {
                try
                {
                    if (model == null)
                    {
                        result.success = false;
                        result.Msg     = "请填写信息!";
                        return(result);
                    }

                    if (model.purch_id == 0)
                    {
                        result.success = false;
                        result.Msg     = "参数错误!";
                        return(result);
                    }
                    var list = db.Queryable <busi_purchase>().Where(s => s.del_flag).InSingle(model.purch_id);
                    if (list == null)
                    {
                        result.success = false;
                        result.Msg     = "不存在的采购信息";
                        return(result);
                    }
                    Int64 uid = 0;
                    if (model.isLocked)
                    {
                        uid = LoginUser.Current.user_id;
                    }
                    else
                    {
                        if (LoginUser.Current.user_id != list.Locked_userid)
                        {
                            var info = db.Queryable <base_users>().InSingle(list.Locked_userid);
                            if (info != null)
                            {
                                result.success = false;
                                result.Msg     = "该数据已被 " + info.user_name + " 锁定,操作失败!";
                                return(result);
                            }
                            else
                            {
                                result.success = false;
                                result.Msg     = "该数据已被锁定,操作失败!";
                                return(result);
                            }
                        }
                    }
                    rstNum = db.Update <busi_purchase>(new { isLocked = model.isLocked, Locked_userid = uid }, a => a.purch_id == model.purch_id);
                    if (rstNum)
                    {
                        result.success = true;
                        result.Msg     = "操作成功";
                        return(result);
                    }
                    else
                    {
                        result.success = false;
                        result.Msg     = "操作失败";
                        return(result);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
        /// <summary>
        /// 采购
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public WaitPurchaseResult Save(busi_purchase model)
        {
            bool rstNum  = false;
            bool rstNums = false;
            WaitPurchaseResult result = new WaitPurchaseResult();

            using (var db = SugarDao.GetInstance(LoginUser.GetConstr()))
            {
                try
                {
                    db.BeginTran();
                    #region 判断
                    if (model == null)
                    {
                        result.success = false;
                        result.Msg     = "请填写信息!";
                        return(result);
                    }

                    if (model.purch_id == 0)
                    {
                        result.success = false;
                        result.Msg     = "参数错误!";
                        return(result);
                    }

                    if (string.IsNullOrWhiteSpace(model.OrderCode))
                    {
                        result.success = false;
                        result.Msg     = "淘宝订单号不得为空!";
                        return(result);
                    }
                    string sum_freight = model.sum_freight.ToString();
                    if (string.IsNullOrWhiteSpace(sum_freight))
                    {
                        result.success = false;
                        result.Msg     = "请输入正确格式的运费!";
                        return(result);
                    }
                    #endregion


                    var list = db.Queryable <busi_purchase>().Where(s => s.del_flag).InSingle(model.purch_id);
                    if (list == null)
                    {
                        result.success = false;
                        result.Msg     = "不存在的采购信息";
                        return(result);
                    }

                    if (list.isLocked)
                    {
                        var info = db.Queryable <base_users>().InSingle(list.Locked_userid);
                        if (info != null)
                        {
                            result.success = false;
                            result.Msg     = "该数据已被 " + info.user_name + " 锁定,操作失败!";
                            return(result);
                        }
                        else
                        {
                            result.success = false;
                            result.Msg     = "该数据已被锁定,操作失败!";
                            return(result);
                        }
                    }
                    if (list.purch_status == 2)
                    {
                        result.success = false;
                        result.Msg     = "该单号已采购过,请勿重复操作!";
                        return(result);
                    }
                    list.sum_money     = model.sum_freight + list.purch_sum;
                    list.sum_freight   = model.sum_freight;
                    list.purch_remark  = model.purch_remark;
                    list.OrderCode     = model.OrderCode;
                    list.isLocked      = false;
                    list.Locked_userid = 0;
                    list.edit_time     = DateTime.Now;
                    list.purch_status  = 2;
                    list.edit_user_id  = LoginUser.Current.user_id;
                    list.create_time   = DateTime.Now;
                    rstNum             = db.Update <busi_purchase>(list);
                    if (rstNum)
                    {
                        rstNums = db.Update <busi_purchasedetail>(new { purch_status = 2 }, a => a.purch_id == model.purch_id && a.purch_status == 1);
                    }


                    if (rstNum && rstNums)
                    {
                        db.CommitTran();
                        result.success = true;
                        // result.URL = "/WaitPurchase/IndexE?id=" + model.purch_id + "";
                        result.Msg = "操作成功";
                        return(result);
                    }
                    else
                    {
                        db.RollbackTran();
                        result.success = false;
                        result.Msg     = "操作失败";
                        return(result);
                    }
                }
                catch (Exception)
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
        /// <summary>
        /// 添加库存采购信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ComResult AddPurchaseService(string sku, int num, int supId)
        {
            ComResult com = new ComResult();

            using (var db = SugarDao.GetInstance(LoginUser.GetConstr()))
            {
                //验证SKU是否存在
                var procodeModel = db.Queryable <base_prod_code>().Where(a => a.sku_code == sku).FirstOrDefault();
                if (procodeModel == null)
                {
                    com.State = 0;
                    com.Msg   = "输入的SKU不存在请重新输入";
                    return(com);
                }
                if (num <= 0)
                {
                    com.State = 0;
                    com.Msg   = "采购数量不能小于等于0";
                    return(com);
                }
                //验证供应商是否存在
                var supModel = db.Queryable <base_supplier>().Where(a => a.del_flag).InSingle(supId);
                if (supModel == null)
                {
                    com.State = 0;
                    com.Msg   = "输入的供应商不存在请重新输入";
                    return(com);
                }

                var      list  = db.Queryable <base_product>().Where(s => s.del_flag).InSingle(procodeModel.prod_id);
                DateTime time  = DateTime.Now.AddDays(-3);
                var      issuc = false;
                int      id    = 0;
                int      ids   = 0;
                var      ss    = db.Queryable <busi_purchase>().Where(s => s.del_flag && s.create_time >= time && s.purch_status == 1 && s.supp_id == supId && s.purch_type == 2).FirstOrDefault();
                if (ss != null)
                {
                    issuc = db.Update <busi_purchase>(new
                    {
                        edit_time    = DateTime.Now,
                        edit_user_id = LoginUser.Current.user_id,
                        purch_numb   = ss.purch_numb + num,
                        sum_money    = ss.sum_money + list.price_cn * num,
                        purch_sum    = list.price_cn * num + ss.purch_sum,
                    }, s1 => s1.purch_id == ss.purch_id); // 批量修改订单表 状态
                }
                else
                {
                    busi_purchase pur = new busi_purchase();
                    pur.abnormal_remark  = "";
                    pur.create_time      = DateTime.Now;
                    pur.create_user_id   = LoginUser.Current.user_id;
                    pur.del_flag         = true;
                    pur.del_time         = DateTime.Now;
                    pur.supp_id          = supId;
                    pur.del_user_id      = 0;
                    pur.edit_time        = DateTime.Now;
                    pur.edit_user_id     = 0;
                    pur.purch_categories = 0;
                    pur.purch_code       = GetPurchaseCode();
                    pur.purch_numb       = num;
                    pur.purch_remark     = "库存采购";
                    pur.purch_status     = 1;
                    pur.purch_type       = 2;
                    pur.remark           = "库存采购";
                    pur.sum_freight      = 0;
                    pur.sum_money        = list.price_cn * num;
                    pur.purch_sum        = list.price_cn * num;
                    pur.express_id       = 0;
                    pur.express_code     = null;
                    pur.express_name     = null;
                    pur.OrderCode        = null;
                    pur.isLocked         = false;
                    pur.Locked_userid    = 0;
                    var obj = db.Insert <busi_purchase>(pur);  // 插入采购表
                    id = obj.ObjToInt();
                }
                if (issuc || id > 0)
                {
                    busi_purchasedetail purchasedetail = new busi_purchasedetail();
                    purchasedetail.code_id            = procodeModel.code_id;
                    purchasedetail.create_time        = DateTime.Now;
                    purchasedetail.create_user_id     = LoginUser.Current.user_id;
                    purchasedetail.cust_send_billcode = "";
                    purchasedetail.custorderdetail_id = 0;
                    purchasedetail.del_flag           = true;
                    purchasedetail.del_time           = DateTime.Now;
                    purchasedetail.del_user_id        = 0;
                    purchasedetail.edit_time          = DateTime.Now;
                    purchasedetail.edit_user_id       = 0;
                    purchasedetail.err_count          = 0;
                    purchasedetail.is_cancel          = true;
                    purchasedetail.lack_count         = 0;
                    purchasedetail.prod_id            = procodeModel.code_id;
                    purchasedetail.purch_count        = num;
                    purchasedetail.purch_id           = id;
                    purchasedetail.purch_rice         = list.price_cn;
                    purchasedetail.purch_status       = 1;
                    purchasedetail.purch_type         = 2;
                    purchasedetail.purch_url          = supModel.supp_url;
                    purchasedetail.remark             = "库存采购";
                    purchasedetail.send_detail_id     = 0;
                    purchasedetail.shop_id            = 0;
                    purchasedetail.supp_id            = supId;
                    purchasedetail.wh_id = 1;
                    var objs = db.Insert <busi_purchasedetail>(purchasedetail);
                    ids = objs.ObjToInt();
                }
                if (ids > 0)
                {
                    com.State = 1;
                    com.Msg   = "操作成功";
                }
                else
                {
                    com.State = 0;
                    com.Msg   = "操作失败";
                }
                return(com);
            }
        }