| | |
| | | } |
| | | |
| | | // 查询单据明细,并合并到备料单的备料明细中 |
| | | var dtls = bizType.GetPickList(orderNo); |
| | | if (dtls.Sum(q => q.QTY_ACT_REQ) <= 0) |
| | | var srcDtls = bizType.GetPickList(orderNo); |
| | | if (srcDtls.Sum(q => q.QTY_ACT_REQ) <= 0) |
| | | { |
| | | action.IsSuccessed = false; |
| | | //action.LocaleMsg = Biz.L("单据[{0}]未找到需要备料的行明细,请扫描正确的单据"); |
| | |
| | | ADD_TIME = DateTime.Now, |
| | | }; |
| | | Order.SourceOrders.Add(srcOrder); |
| | | foreach (var dtl in dtls) |
| | | foreach (var sdtl in srcDtls) |
| | | { |
| | | dtl.AUTH_ORG = OrgCode; |
| | | var pdtl = Order.Details.Where(q => q.ITEM_CODE == dtl.ITEM_CODE).FirstOrDefault(); |
| | | sdtl.AUTH_ORG = OrgCode; |
| | | var pdtl = Order.Details.Where(q => q.ITEM_CODE == sdtl.ITEM_CODE).FirstOrDefault(); |
| | | if (pdtl.IsNullOrEmpty()) |
| | | { |
| | | pdtl = new () |
| | |
| | | AUTH_ORG = OrgCode, |
| | | ORDER_NO = Order.ORDER_NO, |
| | | ORDER_LINE = (Order.Details.Max(q => q.LINE_CODE.ToInt32()) + 1).ToString(), |
| | | ITEM_CODE = dtl.ITEM_CODE, |
| | | SUBITEM_CODE = dtl.SUBITEM_CODE, |
| | | UNIT = dtl.UNIT, |
| | | PLAN_LOSS_QTY = dtl.PLAN_LOSS_QTY, |
| | | PLAN_LOSS_RATE = dtl.PLAN_LOSS_RATE, |
| | | IS_CALC_LOSS = dtl.IS_CALC_LOSS, |
| | | IS_WHOLE = dtl.IS_WHOLE, |
| | | SOURCE_CODE = dtl.SOURCE_CODE, |
| | | SOURCE_ORDER = dtl.SOURCE_ORDER, |
| | | SOURCE_LINE = dtl.SOURCE_LINE, |
| | | ITEM_CODE = sdtl.ITEM_CODE, |
| | | SUBITEM_CODE = sdtl.SUBITEM_CODE, |
| | | UNIT = sdtl.UNIT, |
| | | PLAN_LOSS_QTY = sdtl.PLAN_LOSS_QTY, |
| | | PLAN_LOSS_RATE = sdtl.PLAN_LOSS_RATE, |
| | | IS_CALC_LOSS = sdtl.IS_CALC_LOSS, |
| | | IS_WHOLE = sdtl.IS_WHOLE, |
| | | SOURCE_CODE = sdtl.SOURCE_CODE, |
| | | SOURCE_ORDER = sdtl.SOURCE_ORDER, |
| | | SOURCE_LINE = sdtl.SOURCE_LINE, |
| | | STATUS = BIZ_WMS_PREP_DTL.STATUSs.UnCalc.GetValue(), |
| | | FTY_CODE = dtl.FTY_CODE, |
| | | WS_CODE = dtl.WS_CODE, |
| | | LINE_CODE = dtl.LINE_CODE, |
| | | POST_CODE = dtl.POST_CODE, |
| | | OPER_CODE = dtl.OPER_CODE, |
| | | SEGMENT = dtl.SEGMENT, |
| | | SMT_NO = dtl.SMT_NO, |
| | | STATION_NO = dtl.STATION_NO, |
| | | FEEDER_NO = dtl.FEEDER_NO, |
| | | FEEDER_TYPE = dtl.FEEDER_TYPE, |
| | | FTY_CODE = sdtl.FTY_CODE, |
| | | WS_CODE = sdtl.WS_CODE, |
| | | LINE_CODE = sdtl.LINE_CODE, |
| | | POST_CODE = sdtl.POST_CODE, |
| | | OPER_CODE = sdtl.OPER_CODE, |
| | | SEGMENT = sdtl.SEGMENT, |
| | | SMT_NO = sdtl.SMT_NO, |
| | | STATION_NO = sdtl.STATION_NO, |
| | | FEEDER_NO = sdtl.FEEDER_NO, |
| | | FEEDER_TYPE = sdtl.FEEDER_TYPE, |
| | | }; |
| | | Order.Details.Add(pdtl); |
| | | } |
| | | pdtl.QTY_REQ += dtl.QTY_ACT_REQ; |
| | | Order.SourceDetails.Add(dtl); |
| | | pdtl.QTY_REQ += sdtl.QTY_ACT_REQ; |
| | | sdtl.ORDER_NO = pdtl.ORDER_NO; |
| | | sdtl.ORDER_LINE = pdtl.ORDER_LINE; |
| | | Order.SourceDetails.Add(sdtl); |
| | | } |
| | | var srcInfo = Order.SourceOrders.Select(q => new { q.SOURCE_CODE, q.SOURCE_ORDER }).DistinctBy(q => q.SOURCE_ORDER).OrderBy(q => q.SOURCE_ORDER); |
| | | Order.SOURCE_CODE = string.Join(",", srcInfo.Select(q => q.SOURCE_CODE)); |