public StorageBinResult Save_sku(Int64 wh_id, Int64 locat_id, string sku, int skucount) { bool rstNum = false; bool rstNums = false; StorageBinResult result = new StorageBinResult(); using (var db = SugarDao.GetInstance(LoginUser.GetConstr())) { db.BeginTran(); if (wh_id == 0 || locat_id == 0) { db.RollbackTran(); result.success = false; result.Msg = "参数错误!"; return(result); } if (skucount <= 0) { db.RollbackTran(); result.success = false; result.Msg = "请填写正确的数量!"; return(result); } if (string.IsNullOrEmpty(sku)) { db.RollbackTran(); result.success = false; result.Msg = "请填写sku!"; return(result); } var list = db.Queryable <base_prod_code>().Where(a => a.del_flag && a.sku_code == sku).FirstOrDefault(); if (list == null) { db.RollbackTran(); result.success = false; result.Msg = "系统中不存在的sku!"; return(result); } var wh_stock = db.Queryable <base_wh_stock>().Where(a => a.del_flag && a.wh_id == wh_id && a.location_id == locat_id && a.code_id == list.code_id).FirstOrDefault(); if (wh_stock == null) { var _supp_rel = db.Queryable <base_prod_supp_rel>().Where(a => a.del_flag && a.prod_id == list.prod_id).ToList(); long suppid = _supp_rel.Find(b => b.lev_purch == _supp_rel.Min(s => s.lev_purch)).supp_id; base_wh_stock _stock = new base_wh_stock(); _stock.prod_id = list.prod_id; _stock.occupied_qty = 0; _stock.pallet_id = 0; _stock.purchase_price = 0; _stock.remark = "库存采购"; _stock.reserve_qty = 0; _stock.service_life = ""; _stock.stock_barcode = ""; _stock.stock_class = 3; _stock.stock_code = "1"; _stock.stock_qty = skucount; _stock.stock_status = true; _stock.retrieval_time = DateTime.Now; _stock.storage_time = DateTime.Now; _stock.supplier_id = suppid; _stock.using_state = 1; _stock.wh_id = 1; _stock.location_id = locat_id; _stock.locking_qty = 0; _stock.area_id = 0; _stock.asset_class_id = 0; _stock.code_id = list.code_id; _stock.consignor_id = 0; _stock.create_time = DateTime.Now; _stock.create_user_id = LoginUser.Current.user_id; _stock.del_flag = true; _stock.del_user_id = 0; _stock.edit_user_id = 0; _stock.del_time = DateTime.Now; _stock.edit_time = DateTime.Now; _stock.stock_id = Guid.NewGuid(); var id = db.Insert <base_wh_stock>(_stock); if (id.ObjToBool()) { rstNums = true; } } else { rstNums = db.Update <base_wh_stock>(new { stock_qty = wh_stock.stock_qty + skucount }, s => s.stock_id == wh_stock.stock_id); } if (rstNums) { db.CommitTran(); result.success = true; result.Msg = "操作成功"; return(result); } else { db.RollbackTran(); result.success = false; result.Msg = "操作失败"; return(result); } } }
/// <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; } } }