| | |
| | | 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 |
| | | { |
| | |
| | | bool panduan = true; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE == ItemCode).First(); |
| | | var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE== ItemCode).First(); |
| | | |
| | | var po1 = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == ItemCode).First(); |
| | | if (po != null) |
| | |
| | | result.WLPZBH = items.HEAD.WLPZH; |
| | | result.WLPZND = items.HEAD.WLPZND; |
| | | result.resultCode = 0; |
| | | result.resultMsg = ""; |
| | | db.CommitTran(); |
| | | simpleResults.Add(result); |
| | | } |
| | |
| | | db.BeginTran(); |
| | | List<WLReturnRoot.ITEM> list = new List<WLReturnRoot.ITEM>(); |
| | | |
| | | |
| | | var itemCodes = model.ROOT.ITEM.Select(item => item.WLBM).ToList(); |
| | | List<TN_Material> tN_Materials = new List<TN_Material>(); |
| | | var itemCodes = model.ROOT.ITEM.Select(item => item.WLBM).Distinct().ToList(); |
| | | var itemlist = db.Queryable<TN_Material>() |
| | | .Where(it => itemCodes.Contains(it.S_ITEM_CODE)) |
| | | .ToList(); |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | var result = new WLReturnRoot.ITEM(); |
| | | |
| | | var materlist = itemlist.Where(it => it.S_ITEM_CODE == item.WLBM).First(); |
| | | var materlist = itemlist.Where(it => it.S_ITEM_CODE == item.WLBM).FirstOrDefault(); |
| | | if (materlist == null) |
| | | { |
| | | TN_Material tN_Material = new TN_Material(); |
| | |
| | | tN_Material.S_CPZ = item.CPZ; |
| | | tN_Material.S_CPZMS = item.CPZMS; |
| | | tN_Material.S_ITEM_NAME = item.VTEXT; |
| | | db.Insertable<TN_Material>(tN_Material).ExecuteCommand(); |
| | | tN_Materials.Add(tN_Material); |
| | | //db.Insertable<TN_Material>(tN_Material).ExecuteCommand(); |
| | | result.MSGDESP = "成功"; |
| | | result.MSGCODE = 0; |
| | | result.GCBM = item.GCBM; |
| | |
| | | } |
| | | } |
| | | response.ROOT.ITEM = list; |
| | | if (tN_Materials.Count()>0) |
| | | { |
| | | db.Insertable<TN_Material>(tN_Materials).ExecuteCommand(); |
| | | //using (var bulkCopy = new SqlBulkCopy(util.Settings.SqlServer)) |
| | | //{ |
| | | // bulkCopy.DestinationTableName = "TN_Material"; |
| | | // bulkCopy.BatchSize = 500; |
| | | // var dataTable = new DataTable(); |
| | | // dataTable = list.ToDataTable(); |
| | | // // 添加列映射(确保名称匹配) |
| | | // foreach (DataColumn col in dataTable.Columns) |
| | | // { |
| | | // bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName); |
| | | // } |
| | | // bulkCopy.WriteToServer(tN_Materials.ToDataTable()); |
| | | //} |
| | | } |
| | | |
| | | //db.Insertable<TN_Material>(list).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | |
| | |
| | | } |
| | | else if (!string.IsNullOrEmpty(model.item_code)) |
| | | { |
| | | var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "半托" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); |
| | | LogHelper.Info($"starts{starts}"); |
| | | var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE== starts.S_CNTR_CODE).ToList().FirstOrDefault(); |
| | | 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}"); |
| | | 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(); |
| | | |
| | | model.cntr_code = starts12?.S_CNTR_CODE; |
| | | |
| | | |
| | | if (khsta != null) |
| | | { |
| | | LogHelper.Info($"starts{khsta}"); |
| | | 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 starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "半托" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); |
| | | |
| | | if (starts!=null) |
| | | { |
| | | LogHelper.Info($"{model.cntr_code}容器货品存在该物料,请配置物料容器"); |
| | | result.resultMsg = $"容器货品存在该物料,请配置物料容器"; |
| | | result.resultCode = 1; |
| | | return result; |
| | | |
| | | } |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | #region MyRegion |
| | | 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(); |
| | | |
| | | |
| | | |
| | | |
| | | var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault(); |
| | | |
| | | |
| | | model.cntr_code = starts12?.S_CNTR_CODE; |
| | | |
| | | #endregion |
| | | } |
| | | 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; |
| | |
| | | #endregion |
| | | 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 ).First(); |
| | | |
| | | if (cir2 != null) |
| | | { |
| | | cir2.S_CNTR_TYPE = S_CNTR_TYPE; |
| | | db.Updateable(cir2).UpdateColumns(it => new { it.S_CNTR_TYPE }).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | //2.插入新的容器物料信息(容器号不变S_SERIAL_NO = item.S_SERIAL_NO,) |
| | | cir2 = new CGRels { S_CNTR_TYPE = S_CNTR_TYPE, S_CNTR_CODE = cntr.S_CODE.Trim(), N_BS_ROW_NO = item.N_ROW_NO, S_ITEM_CODE = item.item_code }; |
| | | db.Insertable<CGRels>(cir2).ExecuteCommand(); |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region 1.查看是否有相同物料批次的信息,如果有要累加,不同批次的可以分开 |
| | | var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.S_BATCH_NO == item.S_BATCH_NO && a.N_BS_ROW_NO == item.N_ROW_NO && a.S_BS_NO == item.arrival_no).First(); |
| | | if (cir != null) |
| | |
| | | S_DO_NO = itemscddll.LLDH, |
| | | S_AREA_CODE = "HJQ", |
| | | N_ROW_NO = "", |
| | | S_ITEM_CODE = a.WLBM, |
| | | S_ITEM_CODE = a.ZJBM, |
| | | S_ITEM_NAME = "", |
| | | F_QTY = a.XQSL, |
| | | S_ZJBM = a.ZJBM, |
| | |
| | | db.BeginTran(); |
| | | foreach (var itemscddll in model.ROOT.SCDDLL) |
| | | { |
| | | var wlbmList = itemscddll.ITEM.Select(x => x.WLBM).Distinct().ToList(); |
| | | var wlbmList = itemscddll.ITEM.Select(x => x.ZJBM).Distinct().ToList(); |
| | | var itemlist = db.Queryable<TN_Material>() |
| | | .Where(it => wlbmList.Contains(it.S_ITEM_CODE)) // 使用 IN 查询 |
| | | .ToList(); |
| | |
| | | { |
| | | foreach (var a in itemscddll.ITEM) |
| | | { |
| | | var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); |
| | | var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault(); |
| | | if (item == null) |
| | | { |
| | | lLDReturnRoots.GC = itemscddll.GC; |
| | | lLDReturnRoots.LLDH = itemscddll.LLDH; |
| | | lLDReturnRoots.MSGCODE = 1; |
| | | lLDReturnRoots.MSGDESP = $"物料{a.WLBM}物料主数据不存在该物料"; |
| | | lLDReturnRoots.MSGDESP = $"物料{a.ZJBM}物料主数据不存在该物料"; |
| | | iTEMs.Add(lLDReturnRoots); |
| | | |
| | | continue; |
| | |
| | | S_DO_NO = itemscddll.LLDH, |
| | | S_AREA_CODE = "HJQ", |
| | | N_ROW_NO = "", |
| | | S_ITEM_CODE = a.WLBM, |
| | | S_ITEM_CODE = a.ZJBM, |
| | | S_ITEM_NAME = item?.S_ITEM_NAME, |
| | | F_QTY = a.XQSL, |
| | | S_ZJBM = a.ZJBM, |
| | |
| | | lLDReturnRoots.GC = itemscddll.GC; |
| | | lLDReturnRoots.LLDH = itemscddll.LLDH; |
| | | lLDReturnRoots.MSGCODE = 1; |
| | | lLDReturnRoots.MSGDESP = $"执行中领料单,物料{a.WLBM}物料不允许删除"; |
| | | lLDReturnRoots.MSGDESP = $"执行中领料单,物料{a.ZJBM}物料不允许删除"; |
| | | iTEMs.Add(lLDReturnRoots); |
| | | continue; |
| | | } |
| | | var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); |
| | | var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).ToList(); |
| | | if (po1.Count() == 0) //无则新增物料明细 |
| | | { |
| | | var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); |
| | | var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault(); |
| | | if (item == null) |
| | | { |
| | | ; |
| | | lLDReturnRoots.GC = itemscddll.GC; |
| | | lLDReturnRoots.LLDH = itemscddll.LLDH; |
| | | lLDReturnRoots.MSGCODE = 1; |
| | | lLDReturnRoots.MSGDESP = $"物料{a.WLBM}物料主数据不存在该物料"; |
| | | lLDReturnRoots.MSGDESP = $"物料{a.ZJBM}物料主数据不存在该物料"; |
| | | iTEMs.Add(lLDReturnRoots); |
| | | continue; |
| | | } |
| | |
| | | S_DO_NO = itemscddll.LLDH, |
| | | S_AREA_CODE = "HJQ", |
| | | N_ROW_NO = "", |
| | | S_ITEM_CODE = a.WLBM, |
| | | S_ITEM_CODE = a.ZJBM, |
| | | S_ITEM_NAME = item.S_ITEM_NAME, |
| | | F_QTY = a.XQSL, |
| | | S_ZJBM = a.ZJBM, |
| | |
| | | lLDReturnRoots.GC = itemscddll.GC; |
| | | lLDReturnRoots.LLDH = itemscddll.LLDH; |
| | | lLDReturnRoots.MSGCODE = 1; |
| | | lLDReturnRoots.MSGDESP = $"更新失败,更新数量必须大于当前物料数量{a.WLBM}"; |
| | | lLDReturnRoots.MSGDESP = $"更新失败,更新数量必须大于当前物料数量{a.ZJBM}"; |
| | | iTEMs.Add(lLDReturnRoots); |
| | | continue; |
| | | } |
| | |
| | | { |
| | | if (a.LLDSCBS == "Y")//如果是删除标识则删除当前所属出库单明细 不是删除标记 则进行增改判断 |
| | | { |
| | | var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).FirstOrDefault(); |
| | | var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).FirstOrDefault(); |
| | | if (po1 != null) //无则新增物料明细 |
| | | { |
| | | tN_Ll_Details.Add(po1); |
| | | // db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.WLBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand(); |
| | | // db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.ZJBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | //result.code = 1; |
| | | //result.msg = $"物料{a.WLBM}物料数据不存在 无法删除"; |
| | | //throw new Exception($"物料{a.WLBM}物料数据不存在 无法删除"); |
| | | //result.msg = $"物料{a.ZJBM}物料数据不存在 无法删除"; |
| | | //throw new Exception($"物料{a.ZJBM}物料数据不存在 无法删除"); |
| | | lLDReturnRoots.GC = itemscddll.GC; |
| | | lLDReturnRoots.LLDH = itemscddll.LLDH; |
| | | lLDReturnRoots.MSGCODE = 1; |
| | | lLDReturnRoots.MSGDESP = $"删除的物料{a.WLBM}物料数据不存在 无法删除"; |
| | | lLDReturnRoots.MSGDESP = $"删除的物料{a.ZJBM}物料数据不存在 无法删除"; |
| | | iTEMs.Add(lLDReturnRoots); |
| | | continue; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); |
| | | var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).ToList(); |
| | | if (po1.Count() == 0) //无则新增物料明细 |
| | | { |
| | | var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); |
| | | var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault(); |
| | | if (item == null) |
| | | { |
| | | //result.code = 1; |
| | | //result.msg = $"物料{a.WLBM}物料主数据不存在该物料"; |
| | | //throw new Exception($"物料{a.WLBM}物料主数据不存在该物料"); |
| | | //result.msg = $"物料{a.ZJBM}物料主数据不存在该物料"; |
| | | //throw new Exception($"物料{a.ZJBM}物料主数据不存在该物料"); |
| | | lLDReturnRoots.GC = itemscddll.GC; |
| | | lLDReturnRoots.LLDH = itemscddll.LLDH; |
| | | lLDReturnRoots.MSGCODE = 1; |
| | | lLDReturnRoots.MSGDESP = $"物料{a.WLBM}物料主数据不存在该物料"; |
| | | lLDReturnRoots.MSGDESP = $"物料{a.ZJBM}物料主数据不存在该物料"; |
| | | iTEMs.Add(lLDReturnRoots); |
| | | continue; |
| | | } |
| | |
| | | S_DO_NO = itemscddll.LLDH, |
| | | S_AREA_CODE = "HJQ", |
| | | N_ROW_NO = "", |
| | | S_ITEM_CODE = a.WLBM, |
| | | S_ITEM_CODE = a.ZJBM, |
| | | S_ITEM_NAME = item.S_ITEM_NAME, |
| | | F_QTY = a.XQSL, |
| | | S_ZJBM = a.ZJBM, |
| | |
| | | var po1 = new TN_Outbound_Order { S_NO = WMSHelper.GenerateShippNo(), UNAME = po.UNAME, S_FACTORY = po.S_FACTORY, S_CBZX = po.S_CBZX, S_ZZKM = po.S_ZZKM, S_LRZX = po.S_LRZX, BLDAT = po.BLDAT, BUDAT = po.BUDAT, S_OUT_TYPE = po.S_OUT_TYPE, S_BS_TYPE = po.S_BS_TYPE, S_AREA_CODE = po.S_AREA_CODE, S_BS_NO = po.S_NO }; |
| | | 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(); |
| | | |
| | | |
| | | |
| | | #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) |
| | | { |
| | | |
| | | foreach (var a in po.Details) |
| | | { |
| | | if (a.F_QTY > a.F_ACC_D_QTY) |
| | | { |
| | | po1.Details.Add(new TN_Outbound_Detail |
| | | { |
| | | S_DO_NO = po1.S_NO, |
| | | S_AREA_CODE = "HJQ", |
| | | N_ROW_NO = a.N_ROW_NO, |
| | | S_KCDD = a.S_KCDD, |
| | | 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, |
| | | S_BATCH_NO = a.S_BATCH_NO, |
| | | S_SERIAL_NO = a.S_SERIAL_NO, |
| | | S_CGPZH = a.S_CGPZH, |
| | | S_ZJBM = a.S_ZJBM, |
| | | S_YLBH = a.S_YLBH, |
| | | S_ZJWLTH = a.S_ZJWLTH, |
| | | S_ZJWLMS = a.S_ZJWLMS, |
| | | S_ZHFHBS = a.S_ZHFHBS, |
| | | S_CJRQ = a.S_CJRQ, |
| | | S_LLDSCBS = a.S_LLDSCBS, |
| | | S_SCGLY = a.S_SCGLY, |
| | | S_GXH = a.S_GXH, |
| | | S_XQRQ = a.S_XQRQ, |
| | | S_YLXMH = a.S_YLXMH, |
| | | S_CGPZXMBH = a.S_CGPZXMBH, |
| | | 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; |
| | | a.F_ACC_D_QTY += difference; |
| | | tN_Ll_Details.Add(a); |
| | | 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_AREA_CODE = "HJQ", |
| | | N_ROW_NO = a.N_ROW_NO, |
| | | S_KCDD = a.S_KCDD, |
| | | S_ITEM_CODE = a.S_ITEM_CODE, |
| | | S_ITEM_NAME = a.S_ITEM_NAME, |
| | | S_UOM = a.S_UOM, |
| | | F_QTY = shul, |
| | | S_BATCH_NO = a.S_BATCH_NO, |
| | | S_SERIAL_NO = a.S_SERIAL_NO, |
| | | S_CGPZH = a.S_CGPZH, |
| | | S_ZJBM = a.S_ZJBM, |
| | | S_YLBH = a.S_YLBH, |
| | | S_ZJWLTH = a.S_ZJWLTH, |
| | | S_ZJWLMS = a.S_ZJWLMS, |
| | | S_ZHFHBS = a.S_ZHFHBS, |
| | | S_CJRQ = a.S_CJRQ, |
| | | S_LLDSCBS = a.S_LLDSCBS, |
| | | S_SCGLY = a.S_SCGLY, |
| | | S_GXH = a.S_GXH, |
| | | S_XQRQ = a.S_XQRQ, |
| | | S_YLXMH = a.S_YLXMH, |
| | | S_CGPZXMBH = a.S_CGPZXMBH, |
| | | S_ERP_WH_CODE = a.S_ERP_WH_CODE, |
| | | N_ITEM_STATE = a.N_ITEM_STATE |
| | | }); |
| | | 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) |
| | |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | else |
| | | { |
| | | result.code = 1; |
| | | result.msg = $"领料单{po.S_NO}找不到对应库存物料信息"; |
| | | return result; |
| | | } |
| | | } |
| | | db.CommitTran(); |
| | | } |
| | |
| | | List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>(); |
| | | foreach (var item in po.Details) |
| | | { |
| | | var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault(); |
| | | // var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault(); |
| | | JHWBackDto.ITEM ckbitem = new JHWBackDto.ITEM(); |
| | | ckbitem.WLBH = item.S_ITEM_CODE; |
| | | ckbitem.GC = po.S_FACTORY; |
| | | ckbitem.XSDD = podetail?.S_XSDD; |
| | | ckbitem.XSDDHXM = podetail?.S_XSDDXMBH; |
| | | ckbitem.XSDD = item?.S_XSDD; |
| | | ckbitem.XSDDHXM = item?.S_XSDDXMBH; |
| | | ckbitem.SL = item.F_QTY; |
| | | ckbitem.DW = podetail?.S_UOM; |
| | | ckbitem.DDH = podetail?.S_DDH; |
| | | ckbitem.DW = item?.S_UOM; |
| | | ckbitem.DDH = item?.S_DDH; |
| | | //ckbitem.PH = podetail?.S_PH; |
| | | // ckbitem.TSKCBS = podetail?.S_TSKCBS; |
| | | //ckbitem.DDHXM = (podetail?.N_ROW_NO); |
| | | ckbitem.WBS = podetail?.S_WBS; |
| | | ckbitem.KCDD = podetail?.S_KCDD; |
| | | ckbitem.PC = podetail?.S_BATCH_NO; |
| | | ckbitem.WBS = item?.S_WBS; |
| | | ckbitem.KCDD = item?.S_KCDD; |
| | | ckbitem.PC = item?.S_BATCH_NO; |
| | | #region MyRegion |
| | | // List<JHWBackDto.ITEM1> listitem1 = new List<JHWBackDto.ITEM1>(); |
| | | JHWBackDto.ITEM1 listitem1 = new JHWBackDto.ITEM1(); |
| | | listitem1.XLH = podetail?.S_SERIAL_NO.Split(',').ToList(); |
| | | listitem1.XLH = item?.S_SERIAL_NO.Split(',').ToList(); |
| | | ////string[] xlhValues = item.S_SERIAL_NO.Split(','); |
| | | //var serialNos = string.Join(",", CntrItemRels |
| | | // .Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE) |