| | |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr class="divPickQty1"> |
| | | <td> |
| | | <div class="layui-form-item layout-input" style="margin-top: 6px;"> |
| | | <label class="layui-form-label lableWidth">拣货数量:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty1" type="number" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | |
| | | }); |
| | | return; |
| | | } |
| | | if(($('#boxNo3').val() != "" && ($('#pickQty1').val() != "" || $('#pickQty1').val() != 0))){ |
| | | layer.msg("追溯条码和拣货数量不能同时输入!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | if($('#pickQty1').val() != "" && $('#pickQty1').val()>parseInt($('#pickQty').val())){ |
| | | layer.msg("拣货数量不能大于待拣数量!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | // let boxQty = parseInt($('#boxQty').val()) |
| | | // let qty = parseInt($('#qty').val()) |
| | |
| | | "PalletNo": $('#palletNo').val(), |
| | | "BoxNo": $('#boxNo').val(), |
| | | "BoxNo3": $('#boxNo3').val(), |
| | | "PickQty":$('#pickQty1').val() |
| | | } |
| | | sendData(IP + "/PdaSo/SoSetPick", param, 'post', function (res) { |
| | | //console.log(res); |
| | |
| | | throw new Exception("该托盘未在库外,请核实!"); |
| | | } |
| | | // 验证入库单明细是否存在 |
| | | var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && model.LotNo.Contains(m.LotNo)); |
| | | var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo)); |
| | | if (detail == null) |
| | | { |
| | | throw new Exception("-1:当前物料及批次与单据无关联,请核实!"); |
| | |
| | | } |
| | | |
| | | //出库pda拣货 |
| | | public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, int userId) |
| | | public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, int userId) |
| | | { |
| | | Db.BeginTran(); |
| | | try |
| | |
| | | if (string.IsNullOrWhiteSpace(palletNo)) |
| | | { |
| | | throw new Exception("托盘码不能为空"); |
| | | } |
| | | if (!string.IsNullOrEmpty(boxNo3) && (!string.IsNullOrEmpty(pickQty1) || int.Parse(pickQty1) > 0)) |
| | | { |
| | | throw new Exception("追溯条码和拣货数量不能同时输入"); |
| | | } |
| | | |
| | | //出库单 |
| | |
| | | } |
| | | else |
| | | { |
| | | var biaoShi = "0";//0:整箱拣货、1:散支拣货 |
| | | var biaoShi = "0";//0:整箱拣货、1:散支拣货、2:数量拣货 |
| | | List<DataBoxInfo> boxInfos; |
| | | var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); |
| | | if (boxInfo.Count() == 0) |
| | |
| | | |
| | | biaoShi = "1"; |
| | | } |
| | | else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//数量拣货 |
| | | { |
| | | if (boxInfo.Count() > 1) |
| | | { |
| | | throw new Exception("该箱码内存在支码不能进行数量拣货"); |
| | | } |
| | | int boxQty = boxInfo.First().Qty; |
| | | if (Convert.ToInt32(pickQty1) > boxQty) |
| | | { |
| | | throw new Exception("拣货数量不能大于箱内数量"); |
| | | } |
| | | if (Convert.ToInt32(pickQty1) > needQty) |
| | | { |
| | | throw new Exception("拣货数量不能大于剩余待拣数量"); |
| | | } |
| | | |
| | | biaoShi = "2"; |
| | | } |
| | | else //整箱拣货 |
| | | { |
| | | if (boxInfo.Count() == 0) |
| | |
| | | var comList = new List<BllCompleteDetail>(); |
| | | foreach (var item in boxInfos) |
| | | { |
| | | if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3)) |
| | | if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3)) |
| | | { |
| | | throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货"); |
| | | } |
| | |
| | | SkuName = allot.SkuName, |
| | | Standard = allot.Standard, |
| | | PalletNo = palletNo, |
| | | CompleteQty = item.Qty, |
| | | CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty, |
| | | |
| | | CreateUser = userId |
| | | }; |
| | | comList.Add(completeDetail); |
| | | |
| | | //删除库存箱码明细 |
| | | Db.Deleteable(item).ExecuteCommand(); |
| | | if (biaoShi != "2") |
| | | { |
| | | //删除库存箱码明细 |
| | | Db.Deleteable(item).ExecuteCommand(); |
| | | } |
| | | else//数量拣货 |
| | | { |
| | | if (int.Parse(pickQty1) == item.Qty) |
| | | { |
| | | //删除库存箱码明细 |
| | | Db.Deleteable(item).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | item.Qty -= int.Parse(pickQty1); |
| | | item.BitBoxMark = "1";//零箱标识 |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | } |
| | | } |
| | | pickQty += item.Qty; |
| | | } |
| | | //改变库内箱码是否零箱信息 |
| | |
| | | /// <param name="boxNo2">盒码</param> |
| | | /// <param name="boxNo3">支/袋码</param> |
| | | /// <param name="userId">操作人</param> |
| | | void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, int userId); |
| | | void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string PickQty, int userId); |
| | | |
| | | /// <summary> |
| | | /// 出库pda拣货 |
| | |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | |
| | | _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, int.Parse(userId)); |
| | | _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3,model.PickQty ,int.Parse(userId)); |
| | | |
| | | return Ok(new { code = 0, msg = "拣货完成", data = "" }); |
| | | } |