| | |
| | | using System.Data; |
| | | using System.Runtime.ConstrainedExecution; |
| | | using HH.WCS.Mobox3.pinggao.core; |
| | | using static HH.WCS.Mobox3.pinggao.api.OtherModel.Putaway_Order_In; |
| | | using System.Web.Http.Results; |
| | | |
| | | namespace HH.WCS.Mobox3.pinggao.api |
| | | { |
| | |
| | | } |
| | | else if (!string.IsNullOrEmpty(model.item_code)) |
| | | { |
| | | LogHelper.Info($"进来了"); |
| | | var khsta= db.Queryable<CGRels>().Where(cir => cir.S_CNTR_TYPE == "半托" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if (khsta != null) |
| | | { |
| | | LogHelper.Info($"starts{khsta}"); |
| | | var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == khsta.S_CNTR_CODE).ToList().FirstOrDefault(); |
| | | var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == khsta.S_CNTR_CODE).First(); |
| | | if (starts12==null) |
| | | { |
| | | LogHelper.Info($"{khsta.S_CNTR_CODE}容器货位不存在"); |
| | | result.resultMsg = $"{khsta.S_CNTR_CODE}容器货位不存在"; |
| | | result.resultCode = 1; |
| | | return result; |
| | | } |
| | | else |
| | | { |
| | | |
| | | LogHelper.Info($"starts1{starts12}"); |
| | | start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault(); |
| | | LogHelper.Info($"starts2{start}"); |
| | | |
| | | model.cntr_code = starts12?.S_CNTR_CODE; |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray(); |
| | | var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray(); |
| | | start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault(); |
| | | if (start!=null) |
| | | { |
| | | var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault(); |
| | | |
| | | |
| | | model.cntr_code = starts12?.S_CNTR_CODE; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | if (start == null) |
| | | { |
| | | LogHelper.Info($"{model.cntr_code}未找到可用货位"); |
| | | result.resultMsg = $"{model.cntr_code}未找到可用货位"; |
| | | LogHelper.Info($"{model.item_code}未找到可用货位"); |
| | | result.resultMsg = $"{model.item_code}未找到可用货位"; |
| | | result.resultCode = 1; |
| | | return result; |
| | | } |
| | |
| | | catch (Exception e) |
| | | { |
| | | result.resultMsg = e.Message; |
| | | result.resultCode = 1; |
| | | db.RollbackTran(); |
| | | return result; |
| | | throw; |
| | |
| | | if (cntr != null) |
| | | { |
| | | #region 客户指定容器表 |
| | | var cir2 = db.Queryable<CGRels>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.N_BS_ROW_NO == item.N_ROW_NO ).First(); |
| | | var cir2 = db.Queryable<CGRels>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code ).First(); |
| | | |
| | | if (cir2 != null) |
| | | { |
| | |
| | | List<TN_Ll_detail> tN_Ll_Details = new List<TN_Ll_detail>(); |
| | | po1.Details = new List<TN_Outbound_Detail>(); |
| | | var list = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY&&s.S_ERP_WH_CODE=="4004").Select(s => s.S_ITEM_CODE).Distinct().ToArray(); |
| | | var itemfirs = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).ToList() ; |
| | | var Sitemlist = itemfirs.Select(s => s.S_ITEM_CODE).ToArray().Select(x => x.Trim()).ToArray(); |
| | | |
| | | var Sitemlist = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).Select(s => s.S_ITEM_CODE).ToArray().Select(x => x.Trim()).ToArray(); ; |
| | | |
| | | |
| | | #region list集合数量 |
| | | var extractedArrays = itemfirs.Select(s => new CustomItem |
| | | { |
| | | SITEMCODE = s.S_ITEM_CODE?.Trim() ?? string.Empty, |
| | | FQTY = s.F_QTY, |
| | | FALLOCQTY = s.F_ALLOC_QTY |
| | | }).ToList(); |
| | | |
| | | var extractedArray = extractedArrays |
| | | .GroupBy(x => x.SITEMCODE) |
| | | .Select(g => new CustomItem |
| | | { |
| | | SITEMCODE = g.Key, |
| | | FQTY = g.Sum(x => x.FQTY), |
| | | FALLOCQTY = g.Sum(x => x.FALLOCQTY) |
| | | }) |
| | | .ToList(); |
| | | |
| | | var cklist= db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.N_B_STATE==0).ToList(); |
| | | foreach (var ckdetail in cklist) |
| | | { |
| | | foreach (var item in itemfirs) |
| | | { |
| | | var itemfi = ckdetail.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault(); |
| | | if (itemfi!=null) |
| | | { |
| | | var extractedArrayone = extractedArray.Where(s => s.SITEMCODE == item.S_ITEM_CODE).FirstOrDefault(); |
| | | extractedArrayone.FQTY = (float)(extractedArrayone.FQTY - itemfi.F_QTY); |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | po.Details = po.Details.Where(s => Sitemlist.Contains(s.S_ITEM_CODE)).ToList(); |
| | | if (po.Details.Count() > 0) |
| | |
| | | { |
| | | if (a.F_QTY > a.F_ACC_D_QTY) |
| | | { |
| | | var ones = extractedArray.Where(s => s.SITEMCODE == a.S_ITEM_CODE).FirstOrDefault(); |
| | | ///库存数量 |
| | | ones.FQTY = ones.FQTY - ones.FALLOCQTY; |
| | | ///出库数量 |
| | | double shul = a.F_QTY - a.F_ACC_D_QTY; |
| | | if (ones.FQTY !=0) { |
| | | if (ones.FQTY - shul>=0) |
| | | { |
| | | ones.FQTY = (float)(ones.FQTY - shul); |
| | | } |
| | | else |
| | | { |
| | | shul = ones.FQTY; |
| | | ones.FQTY = 0; |
| | | } |
| | | po1.Details.Add(new TN_Outbound_Detail |
| | | { |
| | | S_DO_NO = po1.S_NO, |
| | |
| | | S_ITEM_CODE = a.S_ITEM_CODE, |
| | | S_ITEM_NAME = a.S_ITEM_NAME, |
| | | S_UOM = a.S_UOM, |
| | | F_QTY = a.F_QTY - a.F_ACC_D_QTY, |
| | | F_QTY = shul, |
| | | S_BATCH_NO = a.S_BATCH_NO, |
| | | S_SERIAL_NO = a.S_SERIAL_NO, |
| | | S_CGPZH = a.S_CGPZH, |
| | |
| | | S_ERP_WH_CODE = a.S_ERP_WH_CODE, |
| | | N_ITEM_STATE = a.N_ITEM_STATE |
| | | }); |
| | | double difference = a.F_QTY - a.F_ACC_D_QTY; |
| | | double difference = shul; |
| | | a.F_ACC_D_QTY += difference; |
| | | tN_Ll_Details.Add(a); |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | db.Updateable(tN_Ll_Details).UpdateColumns(it => new { it.F_ACC_D_QTY }).ExecuteCommand(); |
| | | if (po1.Details.Count() > 0) |