Merge branch 'master' into csc
| | |
| | | /Wms/Wms/Logs |
| | | /数据文档/JC26表结构文档.xlsx |
| | | /Wms/Wms/wwwRoot/uploads/quality |
| | | /Wms/Wms/appsettings.json |
| | |
| | | } |
| | | console.log(TypeNum) |
| | | |
| | | if (TypeNum == 0) { |
| | | layer.msg("请输入批次!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | // if (TypeNum == 0) { |
| | | // layer.msg("请输入批次!", { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }); |
| | | // return -1; |
| | | // } |
| | | |
| | | } |
| | | |
| | |
| | | lay-filter="LAY-app-contlist-search"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal buDaLabelClass" style="margin-left: 5px;" lay-event="BuDaLabel" id="BuDaLabel"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal buDaLabelClass" |
| | | style="margin-left: 5px;" lay-event="BuDaLabel" id="BuDaLabel"> |
| | | <i class="layui-icon layui-icon-print layuiadmin-button-btn"></i>补打标签 |
| | | </button> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-danger delLabelClass" style="margin-left: 5px;" lay-event="delLabel" id="delLabel"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-danger delLabelClass" |
| | | style="margin-left: 5px;" lay-event="delLabel" id="delLabel"> |
| | | <i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除标签 |
| | | </button> |
| | | <!-- <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal " style="margin-left: 5px;" lay-event="ceshiLabel" id="ceshiLabel"> |
| | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">入库单据</label> |
| | | <div class="layui-input-inline" style="width: 220px;"> |
| | | <input type="text" id="AsnNoSelect" name="AsnNoSelect" placeholder="入库单据" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="AsnNoSelect" name="AsnNoSelect" placeholder="入库单据" |
| | | autocomplete="off" class="layui-input"> |
| | | |
| | | </div> |
| | | </div> |
| | |
| | | { field: 'ASNNo', title: '入库单号', align: 'center',fixed: 'left', width: 180, "disabled": true }, |
| | | { field: 'BoxNo', title: '箱号', align: 'center', fixed: 'left', width: 220, "disabled": true }, |
| | | { field: 'BoxNo2', title: '盒号', align: 'center', fixed: 'left', width: 220, }, |
| | | { field: 'BoxNo3', title: '支号', align: 'center', fixed: 'left', width: 220, "disabled": true }, |
| | | { field: 'BoxNo3', title: '支号', align: 'center', fixed: 'left', width: 220, }, |
| | | { field: 'SkuNo', title: '物料编码', align: 'center', fixed: 'left', width: 140, "disabled": true }, |
| | | { field: 'SkuName', title: '物料名称', align: 'center', width: 240, }, |
| | | { field: 'Qty', title: '数量', align: 'center', width: 100, }, |
| | |
| | | .showCls { |
| | | display: block; |
| | | } |
| | | |
| | | .font-size12{ |
| | | font-size: 12px; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .font-size10{ |
| | | font-size: 10px; |
| | | } |
| | |
| | | |
| | | <body> |
| | | <div style="width:100%;"> |
| | | <div class="layui-form hideCls" lay-filter="layuiadmin-app-form-list" id="print" style="width: 100%;height:100%;"> |
| | | <div class="layui-form hideCls" lay-filter="layuiadmin-app-form-list" id="print" |
| | | style="width: 100%;height:100%;"> |
| | | <div style="display: flex;align-items: center;justify-content: center; height: 260px;"> |
| | | <table border="1" id="table" style="width: 90%; height:240px; text-align: center;border-collapse: collapse;table-layout: fixed;"> |
| | | <table border="0" id="table" |
| | | style="width: 90%; height:240px;border-collapse: collapse;table-layout: fixed;border:none"> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <img src="../../img/LiNuo.jpg" style="width: 80%; height: 15px;" /> |
| | | <td class="font-size12"> |
| | | 物料编号: |
| | | <table id="SkuNo" class="font-size12"></table> |
| | | </td> |
| | | <td colspan="2" style="padding: 1px 0px;" class="font-size12">SMP-ST002-R08-01</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="4" class="font-size12">物料标签</td> |
| | | <td class="font-size12"> |
| | | 物料名称: |
| | | <table id="SkuName" class="font-size12"></table> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="font-size12">品名</td> |
| | | <td colspan="3" id="SkuName" class="font-size10"></td> |
| | | <td class="font-size12"> |
| | | 批次号: |
| | | <table id="LotNo" class="font-size12"></table> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="font-size12">规格/型号</td> |
| | | <td id="Standard" class="font-size10"></td> |
| | | <td class="font-size12">包装规格</td> |
| | | <td id="PackageStandard" class="font-size10"></td> |
| | | <td class="font-size12"> |
| | | 生产日期: |
| | | <table id="ProductionTime" class="font-size12"></table> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="font-size12">进厂编号</td> |
| | | <td id="LotNo" class="font-size10"></td> |
| | | <td class="font-size12">物料代码</td> |
| | | <td id="SkuNo" class="font-size10"></td> |
| | | <td class="font-size12"> |
| | | 有效期: |
| | | <table id="ExpirationTime" class="font-size12"></table> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td class="font-size12">原厂批号</td> |
| | | <td id="SupplierLot" class="font-size10"></td> |
| | | <td class="font-size12">数 量</td> |
| | | <td id="Qty" class="font-size10"></td> |
| | | </tr> |
| | | <tr> |
| | | <td class="font-size12">有效期至</td> |
| | | <td id="ExpirationTime" class="font-size10"></td> |
| | | <td class="font-size12">储存期至</td> |
| | | <td id="StoreTime" class="font-size10"></td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="4" style="padding: 5px 0px;"> |
| | | <img id="imgBar" style=" height: 35px;" /> |
| | | <td style="padding: 5px 0px;"> |
| | | <img id="imgBar" style=" height: 60px;" /> |
| | | </td> |
| | | </tr> |
| | | |
| | |
| | | $("#ExpirationTime" + z.toString()).html( formatDate2(res.data[z].ExpirationTime)); |
| | | |
| | | |
| | | $("#StoreTime").attr("id", "StoreTime" + z.toString()); |
| | | $("#StoreTime" + z.toString()).html(formatDate2(res.data[z].StoreTime)); |
| | | $("#ProductionTime").attr("id", "ProductionTime" + z.toString()); |
| | | $("#ProductionTime" + z.toString()).html(formatDate2(res.data[z].ProductionTime)); |
| | | |
| | | $("#imgBar").attr("id", "imgBar" + z.toString()); |
| | | $("#imgBar" + z.toString()).attr("src", res.data[z].ImgStr); |
| | |
| | | }); |
| | | |
| | | var id = getQueryString('Id'); |
| | | var SupplierLot=getQueryString('SupplierLot');//供货批次 |
| | | $('#SupplierLot').val(SupplierLot); |
| | | if(SupplierLot!='' && SupplierLot!=null &&SupplierLot!=undefined){ |
| | | $('#SupplierLot').attr('readonly', 'readonly'); |
| | | } |
| | | // var SupplierLot=getQueryString('SupplierLot');//供货批次 |
| | | // $('#SupplierLot').val(SupplierLot); |
| | | // if(SupplierLot!='' && SupplierLot!=null &&SupplierLot!=undefined){ |
| | | // $('#SupplierLot').attr('readonly', 'readonly'); |
| | | // } |
| | | var asnType = getQueryString('Type'); |
| | | console.log(asnType); |
| | | // console.log(asnType == 4); |
| | |
| | | |
| | | synData(IP + "/BllAsn/GetAsnDetailQtyList", param , 'get', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | $("#arriveQty").val(res.data); |
| | | $("#arriveQty").val(res.data.Qty); |
| | | $("#productionTime").val(res.data.ProductionTime); |
| | | $("#expirationTime").val(res.data.ExpirationTime); |
| | | $("#storeTime").val(res.data.StoreTime); |
| | | $("#SupplierLot").val(res.data.SupplierLot); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>物料编码信息列表</title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <meta name="viewport" |
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> |
| | | <script> |
| | |
| | | }); |
| | | </script> |
| | | </head> |
| | | |
| | | <body id="body"> |
| | | <div class="layui-fluid" style="padding-bottom: 0;"> |
| | | <div class="layui-card"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" id="top"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" |
| | | id="top"> |
| | | <div class="layui-form-item"> |
| | | <!-- 物料编码 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">物料编码</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="请输入物料编码" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="请输入物料编码" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- 物料名称 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">物料名称</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="请输入物料名称" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="请输入物料名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- 是否受控 --> |
| | | <!-- 是否受控 JC34 变更为 是否请验 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">是否受控</label> |
| | | <label class="layui-form-label" style="width: 60px;">是否请验</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="IsControlled" id="IsControlled" lay-verify="" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">受控</option> |
| | | <option value="1">非受控</option> |
| | | <option value="0">是</option> |
| | | <option value="1">否</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- 是否免检 --> |
| | | <!-- 是否免检 JC34 变更为 是否受控--> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">是否免检</label> |
| | | <label class="layui-form-label" style="width: 60px;">是否受控</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="IsInspect" id="IsInspect" lay-verify="" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">否</option> |
| | | <option value="1">是</option> |
| | | <option value="0">是</option> |
| | | <option value="1">否</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit |
| | | lay-filter="LAY-app-contlist-search"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索 |
| | | </button> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list approvalBtn" style="margin-right: 10px;" data-type="add" id="approvalBtn"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list approvalBtn" |
| | | style="margin-right: 10px;" data-type="add" id="approvalBtn"> |
| | | <i class="layui-icon layuiadmin-button-btn"></i>添加 |
| | | </button> |
| | | </div> |
| | |
| | | LowInventory: Number(field.LowInventory), //低库存 |
| | | Demo: field.Demo |
| | | }; |
| | | if(doing) |
| | | { |
| | | if (doing) { |
| | | doing = false; |
| | | sendData(IP + "/Basis/AddMate", param, 'post',function(res) { |
| | | console.log(res); |
| | |
| | | } |
| | | var xml = ''; |
| | | function getchiled(data, mainId) { |
| | | if (data) |
| | | { |
| | | if (data) { |
| | | var list = data.filter(item => item.ParentId == mainId); |
| | | if (list) |
| | | { |
| | | for (var i = 0; i < list.length; i++) |
| | | { |
| | | if (list) { |
| | | for (var i = 0; i < list.length; i++) { |
| | | var id = list[i].Id; |
| | | //查询有无子菜单 |
| | | var count = data.filter(item => item.ParentId == id).length; |
| | | if (count > 0) |
| | | { |
| | | if (count > 0) { |
| | | xml = xml + '<dd>' + '<a href="javascript:;">' + list[i].Name + '</a>' + '<dl class="layui-nav-child">'; |
| | | getchiled(data, id); |
| | | xml = xml + '</dl></dd>'; |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | xml = xml + '<dd>' + '<a lay-href="' + list[i].Url + '">' + list[i].Name + '</a>' + '</dd>'; |
| | | } |
| | | } |
| | |
| | | table.on('tool(LAY-app-content-list)', function(obj) { |
| | | var data = obj.data; |
| | | //删除 |
| | | if (obj.event === 'del') |
| | | { |
| | | if (obj.event === 'del') { |
| | | layer.confirm('确定删除选中的物料?', function(index) { |
| | | cusid = data.Id; |
| | | var arr = []; |
| | |
| | | var param = { |
| | | Ids: arr |
| | | }; |
| | | if(doing) |
| | | { |
| | | if (doing) { |
| | | doing = false; |
| | | sendData(IP + "/Basis/DelMate?Id="+data.Id+"", {} , 'get', function(res) { |
| | | console.log(res); |
| | |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | console.log(123); |
| | | } |
| | | }); |
| | | } |
| | | //编辑 |
| | | else if (obj.event === 'edit') |
| | | { |
| | | else if (obj.event === 'edit') { |
| | | cusId = data.Id; |
| | | layer.open({ |
| | | type: 2, |
| | |
| | | LowInventory: Number(field.LowInventory), //低库存 |
| | | Demo: field.Demo |
| | | }; |
| | | if(doing) |
| | | { |
| | | if (doing) { |
| | | doing = false; |
| | | sendData(IP + "/Basis/ExitMate", param, 'post', |
| | | function(res) { |
| | |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | console.log(123); |
| | | } |
| | | }); |
| | |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" id="IsControlledshow"> |
| | | <label class="layui-form-label">是否受控</label> |
| | | <label class="layui-form-label">是否请验</label> |
| | | <div class="layui-input-block" style="width: 182px;"> |
| | | <select name="IsControlled" id="IsControlled" lay-verify="" lay-verify="" lay-search> |
| | | <!-- <option value=""></option> --> |
| | | <option value="0">受控</option> |
| | | <option value="1">非受控</option> |
| | | <option value="0">是</option> |
| | | <option value="1">否</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" id="IsInspectshow"> |
| | | <label class="layui-form-label">是否免检</label> |
| | | <label class="layui-form-label">是否受控</label> |
| | | <div class="layui-input-block" style="width: 182px;"> |
| | | <select name="IsInspect" id="IsInspect" lay-verify="" lay-verify="" lay-search> |
| | | <!-- <option value=""></option> --> |
| | | <option value="0">否</option> |
| | | <option value="1">是</option> |
| | | <option value="0">是</option> |
| | | <option value="1">否</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | max-width: 100px; |
| | | max-height: 100px; |
| | | } |
| | | |
| | | </style> |
| | | <script> |
| | | // 这里是需要在页面渲染之前执行的代码 |
| | |
| | | <div style="display: none;" id="UploadImageView"> |
| | | |
| | | <div id="UploadImage" style="margin-left: 35px;margin-top: 30px;"> |
| | | <label>上传图片:</label><button type="button" class="layui-btn" id="uploadBtn" style="margin-left: 20px;" >浏览</button> |
| | | <label>上传图片:</label><button type="button" class="layui-btn" id="uploadBtn" |
| | | style="margin-left: 20px;">浏览</button> |
| | | <button type="button" class="layui-btn" id="upload" style="margin-left: 20px;">上传</button> |
| | | |
| | | </div> |
| | |
| | | { field: 'Status', title: '执行状态', align: 'center', width: 90, templet: '#templetStatus' }, |
| | | { field: 'RequestTime', title: '请验日期', align: 'center', width: 165, templet: '#templetCompleteTime' }, |
| | | { field: 'RequestUser', title: '请验人', align: 'center', width: 165 }, |
| | | { field: 'UDF5', title: '图片', align: 'center', width: 100 ,templet: function (d) { |
| | | return d.image ? '<img src="' + d.image + '" alt="图片">' : '无图片';}}, |
| | | { |
| | | field: 'UDF5', title: '图片', align: 'center', width: 100, templet: function (d) { |
| | | return d.image ? '<img src="' + d.image + '" alt="图片">' : '无图片'; |
| | | } |
| | | }, |
| | | // { field: 'UDF2', title: '自定义2', align: 'center', width: 100 }, |
| | | // { field: 'UDF3', title: '自定义3', align: 'center', width: 100 }, |
| | | // { field: 'UDF4', title: '自定义4', align: 'center', width: 100 }, |
| | |
| | | } |
| | | }); |
| | | |
| | | function getImage(id) |
| | | { |
| | | function getImage(id) { |
| | | var param = { |
| | | Id:id |
| | | } |
| | |
| | | }); |
| | | } |
| | | }); |
| | | })}); |
| | | }) |
| | | }); |
| | | } else { //不成功 |
| | | $("#ImagesShow").html(''); |
| | | res.msg, { |
| | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">批次号</label> |
| | | <div class="layui-input-block" style="width: 70%;"> |
| | | <input type="text" name="LotNo" placeholder="请输入批次号" lay-verify="required" autocomplete="off" |
| | | class="layui-input"> |
| | | <input type="text" name="LotNo" placeholder="请输入批次号" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | |
| | | <!-- #region 自定义表头 --> |
| | | <script type="text/html" id="templetProductionTime"> |
| | | {{# function GetBtn(d){ |
| | | return formatDate(d.ProductionTime); |
| | | return formatDate2(d.ProductionTime); |
| | | } |
| | | }} |
| | | {{ GetBtn(d) }} |
| | | </script> |
| | | <script type="text/html" id="templetExpirationTime"> |
| | | {{# function GetBtn(d){ |
| | | return formatDate2(d.ExpirationTime); |
| | | } |
| | | }} |
| | | {{ GetBtn(d) }} |
| | |
| | | { field: 'Qty', title: '数量', width: 90, align: 'center' }, |
| | | { field: 'FullQty', title: '整箱数量', width: 100, align: 'center' }, |
| | | { field: 'ProductionTime', title: '生产日期', align: 'center', templet: '#templetProductionTime' }, |
| | | { field: 'ExpirationTime', title: '有效期', align: 'center', templet: '#templetExpirationTime' }, |
| | | { field: 'InspectMark', title: '抽检标记', align: 'center', templet: '#InspectMarkStatus' }, |
| | | { field: 'BitBoxMark', templet: '#BitPalletMarkStatus1', title: '零箱标记', align: 'center' }, |
| | | { field: 'InspectStatus', templet: '#InspectStatus1', title: '质检状态', align: 'center' }, |
| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>条形码列表</title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <meta name="viewport" |
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> |
| | | <style media="print"> |
| | |
| | | }); |
| | | </script> |
| | | </head> |
| | | |
| | | <body id="body"> |
| | | <div class="layui-fluid" style="padding-bottom: 0;"> |
| | | <div class="layui-card"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" id="top"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" |
| | | id="top"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 70px;">托盘条码:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="PalletNo" name="PalletNo" placeholder="托盘条码" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="PalletNo" name="PalletNo" placeholder="托盘条码" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit |
| | | lay-filter="LAY-app-contlist-search"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索 |
| | | </button> |
| | | </div> |
| | |
| | | for(var i=0;i<field.GroupCount;i++){ |
| | | |
| | | for(var j=0;j<field.SameCount;j++){ |
| | | html ="<div class=\"layui-form\" lay-filter=\"layuiadmin-app-form-list\" id=\"print\" style=\"width: 50%; text-align: center;padding-top: 10%;margin-left: 0%;\">\n"+ |
| | | html = "<div class=\"layui-form\" lay-filter=\"layuiadmin-app-form-list\" id=\"print\" style=\"width: 50%; text-align: center;padding-top: 20%;margin-left: 19%;\">\n" + |
| | | "<div class=\"layui-form-item\">\n"+ |
| | | "<div class=\"layui-inline\">\n"+ |
| | | "<div class=\"\">\n"+ |
| | |
| | | for(var i=0;i<parseInt(field.GroupCount);i++){ |
| | | |
| | | for(var j=0;j<parseInt(field.SameCount);j++){ |
| | | html ="<div class=\"layui-form\" lay-filter=\"layuiadmin-app-form-list\" id=\"print\" style=\"width: 50%; text-align: center;padding-top: 10%;margin-left: 0%;\">\n"+ |
| | | html = "<div class=\"layui-form\" lay-filter=\"layuiadmin-app-form-list\" id=\"print\" style=\"width: 50%; text-align: center;padding-top: 20%;margin-left: 19%;\">\n" + |
| | | "<div class=\"layui-form-item\">\n"+ |
| | | "<div class=\"layui-inline\">\n"+ |
| | | "<div class=\"\">\n"+ |
| | |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | '</option>'); |
| | | } else { |
| | | $("#goodSelect").append('<option value =' + res.data[i].Id + '-' + i + ' selected>' + res.data[i] |
| | | .SkuName + "-" + res.data[i].LotNo + |
| | | .SkuName + "=>" + res.data[i].LotNo + |
| | | '</option>'); |
| | | } |
| | | } else { |
| | |
| | | '</option>'); |
| | | } else { |
| | | $("#goodSelect").append('<option value =' + res.data[i].Id + '-' + i + ' selected>' + res.data[i] |
| | | .SkuName + "-" + res.data[i].LotNo + |
| | | .SkuName + "=>" + res.data[i].LotNo + |
| | | '</option>'); |
| | | } |
| | | |
| | |
| | | '</option>'); |
| | | } else { |
| | | $("#goodSelect").append('<option value =' + res.data[i].Id + '-' + i + '>' + res.data[i] |
| | | .SkuName + "-" + res.data[i].LotNo + |
| | | .SkuName + "=>" + res.data[i].LotNo + |
| | | '</option>'); |
| | | } |
| | | } |
| | |
| | | .SkuName); |
| | | } |
| | | if (res.data[i].LotNo != null) { |
| | | $("#goodSelect1").append("-" + res.data[i].LotNo + |
| | | $("#goodSelect1").append("=>" + res.data[i].LotNo + |
| | | '</option>'); |
| | | } |
| | | } else { |
| | |
| | | '</option>'); |
| | | } else { |
| | | $("#goodSelect1").append('<option value =' + res.data[i].Id + ' selected>' + res.data[i] |
| | | .SkuName + "-" + res.data[i].LotNo + |
| | | .SkuName + "=>" + res.data[i].LotNo + |
| | | '</option>'); |
| | | } |
| | | } |
| New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace Model.ModelDto.BllAsnDto |
| | | { |
| | | public class LabelPrintInfoDto |
| | | { |
| | | /// <summary> |
| | | /// 剩余打印的数量 |
| | | /// </summary> |
| | | public string Qty { get; set; } |
| | | /// <summary> |
| | | /// 生产日期 |
| | | /// </summary> |
| | | public string ProductionTime { get; set; } |
| | | /// <summary> |
| | | /// 有效期 |
| | | /// </summary> |
| | | public string ExpirationTime { get; set; } |
| | | /// <summary> |
| | | /// 储存期至 |
| | | /// </summary> |
| | | public string StoreTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 供货批次 |
| | | /// </summary> |
| | | public string SupplierLot { get; set; } |
| | | } |
| | | } |
| | |
| | | public string Lot6 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 标签常值 |
| | | /// </summary> |
| | | public string BoxCodeStr { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 自定义列1 |
| | | /// </summary> |
| | | public string UDF1 { get; set; } |
| | |
| | | using Model.InterFaceModel; |
| | | using Model.ModelDto; |
| | | using Model.ModelDto.BllAsnDto; |
| | | using Model.ModelDto.SysDto; |
| | | using Model.ModelVm; |
| | | using Model.ModelVm.SysVm; |
| | |
| | | } |
| | | |
| | | //获取入库单明细剩余打印数量 |
| | | public string GetAsnDetailQtyList(int id) |
| | | public LabelPrintInfoDto GetAsnDetailQtyList(int id) |
| | | { |
| | | try |
| | | { |
| | |
| | | { |
| | | throw new Exception("未查询到入库单明细"); |
| | | } |
| | | var data = new LabelPrintInfoDto(); |
| | | |
| | | data.ProductionTime = string.IsNullOrEmpty(detail.Lot1) ? "" : Convert.ToDateTime(detail.Lot1).ToString("yyyy-MM-dd"); |
| | | data.ExpirationTime = string.IsNullOrEmpty(detail.Lot2) ? "" : Convert.ToDateTime(detail.Lot2).ToString("yyyy-MM-dd"); |
| | | data.SupplierLot = detail.SupplierLot; |
| | | var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty)); |
| | | if (labelQty == null) |
| | | { |
| | |
| | | { |
| | | qty = 0; |
| | | } |
| | | return qty.ToString(); |
| | | data.Qty = qty.ToString(); |
| | | return data; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | detailModel.LotNo = maxLotNo; |
| | | } |
| | | } |
| | | if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8") |
| | | { |
| | | //if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8") |
| | | //{ |
| | | // if (string.IsNullOrWhiteSpace(detailModel.LotNo)) |
| | | // { |
| | | // throw new Exception("当前单据类型批次不可为空!"); |
| | | // } |
| | | //} |
| | | detailModel.BoxCodeStr = detailModel.LotNo; |
| | | if (string.IsNullOrWhiteSpace(detailModel.LotNo)) |
| | | { |
| | | throw new Exception("当前单据类型批次不可为空!"); |
| | | string toDayTime = DateTime.Now.ToString("yyyyMM"); |
| | | var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr); |
| | | if(string.IsNullOrWhiteSpace(maxBoxCodeStr)) |
| | | { |
| | | maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; |
| | | } |
| | | else |
| | | { |
| | | maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString(); |
| | | } |
| | | detailModel.BoxCodeStr = maxBoxCodeStr; |
| | | } |
| | | |
| | | // 判断是否已存在当前明细 |
| | |
| | | } |
| | | string lot1 = detailModel.Lot1; |
| | | string lot2 = detailModel.Lot2; |
| | | if (sku.IsPasteCode == "0") |
| | | if (sku.IsInspect == "0")//是否免检,0:否 1:是 |
| | | { |
| | | //不贴标物料 生产日期、有效期不能为空 |
| | | //不免检物料 生产日期、有效期不能为空 |
| | | DateTime lot12; |
| | | DateTime lot22; |
| | | if (!DateTime.TryParse(detailModel.Lot1, out lot12)) |
| | | { |
| | | throw new Exception("非贴标物料生产日期转换失败"); |
| | | throw new Exception("不免检物料生产日期转换失败"); |
| | | } |
| | | if (!DateTime.TryParse(detailModel.Lot2, out lot22)) |
| | | { |
| | | throw new Exception("非贴标物料过期日期转换失败"); |
| | | throw new Exception("不免检物料过期日期转换失败"); |
| | | } |
| | | lot1 = lot12.ToString(); |
| | | lot2 = lot22.ToString(); |
| | |
| | | SkuNo = detailModel.SkuNo, |
| | | SkuName = detailModel.SkuName, |
| | | Standard = detailModel.Standard, |
| | | LotNo = detailModel.LotNo.Trim(), |
| | | LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(), |
| | | LotText = detailModel.LotText, |
| | | Qty = (decimal)detailModel.Qty, |
| | | PackagNo = detailModel.PackagNo, |
| | |
| | | InspectStatus = "0", |
| | | Lot1 = lot1, //生产日期 |
| | | Lot2 = lot2, // 过期日期 |
| | | BoxCodeStr = detailModel.BoxCodeStr, |
| | | UDF1 = detailModel.UDF1, |
| | | UDF2 = detailModel.UDF2, |
| | | UDF3 = detailModel.UDF3, |
| | |
| | | return strMessage; |
| | | } |
| | | |
| | | if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4") |
| | | { |
| | | if (string.IsNullOrWhiteSpace(detailModel.LotNo)) |
| | | { |
| | | throw new Exception("当前单据类型批次不可为空!"); |
| | | } |
| | | } |
| | | //if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4") |
| | | //{ |
| | | // if (string.IsNullOrWhiteSpace(detailModel.LotNo)) |
| | | // { |
| | | // throw new Exception("当前单据类型批次不可为空!"); |
| | | // } |
| | | //} |
| | | |
| | | if (TypeLot.Contains(model.Type)) |
| | | { |
| | |
| | | //生成自有批次 |
| | | if (detailModel.Id == 0 || detailModel.Id == null || string.IsNullOrWhiteSpace(detailModel.LotNo)) |
| | | { |
| | | var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList(); |
| | | if (string.IsNullOrWhiteSpace(maxLotNo)) |
| | | //var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList(); |
| | | //if (string.IsNullOrWhiteSpace(maxLotNo)) |
| | | //{ |
| | | // maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo); |
| | | //} |
| | | //if (string.IsNullOrWhiteSpace(maxLotNo)) |
| | | //{ |
| | | // maxLotNo = toDayTime.Substring(2, 6) + "0001"; |
| | | //} |
| | | //else |
| | | //{ |
| | | // var lotStr = maxLotNo.Substring(0, 6); |
| | | // var timeStr = toDayTime.Substring(2, 6); |
| | | // if (lotStr == timeStr) |
| | | // { |
| | | // maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); |
| | | // } |
| | | // else |
| | | // { |
| | | // maxLotNo = timeStr + "0001"; |
| | | // } |
| | | //} |
| | | //detailModel.LotNo = maxLotNo; |
| | | var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr); |
| | | if (string.IsNullOrWhiteSpace(maxBoxCodeStr)) |
| | | { |
| | | maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo); |
| | | } |
| | | if (string.IsNullOrWhiteSpace(maxLotNo)) |
| | | { |
| | | maxLotNo = toDayTime.Substring(2, 6) + "0001"; |
| | | maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; |
| | | } |
| | | else |
| | | { |
| | | var lotStr = maxLotNo.Substring(0, 6); |
| | | var timeStr = toDayTime.Substring(2, 6); |
| | | if (lotStr == timeStr) |
| | | { |
| | | maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); |
| | | maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString(); |
| | | } |
| | | else |
| | | { |
| | | maxLotNo = timeStr + "0001"; |
| | | } |
| | | } |
| | | detailModel.LotNo = maxLotNo; |
| | | detailModel.BoxCodeStr = maxBoxCodeStr; |
| | | } |
| | | |
| | | if (detailModel.Id == 0 || detailModel.Id == null) |
| | |
| | | SkuNo = detailModel.SkuNo, |
| | | SkuName = detailModel.SkuName, |
| | | Standard = detailModel.Standard, |
| | | LotNo = detailModel.LotNo.Trim(), |
| | | LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(), |
| | | LotText = detailModel.LotText, |
| | | Qty = (decimal)detailModel.Qty, |
| | | PackagNo = detailModel.PackagNo, |
| | |
| | | InspectStatus = "0", |
| | | Lot1 = detailModel.Lot1, |
| | | Lot2 = detailModel.Lot2, |
| | | BoxCodeStr = detailModel.BoxCodeStr, |
| | | UDF1 = detailModel.UDF1, |
| | | UDF2 = detailModel.UDF2, |
| | | UDF3 = detailModel.UDF3, |
| | |
| | | && it.IsBelt == detailModel.IsBelt |
| | | && it.Lot1 == detailModel.Lot1 // 生产日期 |
| | | && it.Lot2 == detailModel.Lot2 // 过期日期 |
| | | && it.BoxCodeStr == detailModel.BoxCodeStr |
| | | && it.UDF1 == detailModel.UDF1 |
| | | && it.UDF2 == detailModel.UDF2 |
| | | && it.UDF3 == detailModel.UDF3 |
| | |
| | | detailModel.Money = detailModel.Price * detailModel.Qty; |
| | | |
| | | dbDetail.Qty = (decimal)detailModel.Qty; |
| | | dbDetail.LotNo = detailModel.LotNo; |
| | | dbDetail.LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(); |
| | | dbDetail.Money = detailModel.Money; |
| | | dbDetail.LotText = detailModel.LotText; |
| | | dbDetail.SupplierLot = detailModel.SupplierLot; |
| | | dbDetail.IsBale = detailModel.IsBale; |
| | | dbDetail.Lot1 = detailModel.Lot1; |
| | | dbDetail.Lot2 = detailModel.Lot2; |
| | | dbDetail.BoxCodeStr = detailModel.BoxCodeStr; |
| | | dbDetail.UDF1 = detailModel.UDF1; |
| | | dbDetail.UDF2 = detailModel.UDF2; |
| | | dbDetail.UDF3 = detailModel.UDF3; |
| | |
| | | CreateTime = a.CreateTime, |
| | | UpdateTime = a.UpdateTime |
| | | |
| | | }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total); |
| | | }).OrderByDescending(a => a.ASNNo).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total); |
| | | count = total; |
| | | return data; |
| | | } |
| | |
| | | { |
| | | throw new Exception("单据数量不能小于等于0"); |
| | | } |
| | | if (string.IsNullOrWhiteSpace(asnList.LotNo)) |
| | | //if (string.IsNullOrWhiteSpace(asnList.LotNo)) |
| | | //{ |
| | | // throw new Exception("单据批次号不能为空"); |
| | | //} |
| | | if (string.IsNullOrWhiteSpace(asnList.BoxCodeStr)) |
| | | { |
| | | throw new Exception("单据批次号不能为空"); |
| | | throw new Exception("单据箱码常值不能为空"); |
| | | } |
| | | var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0"); |
| | | if (asn == null) |
| | |
| | | string maxLotNoStr = ""; //批次号 |
| | | string maxBoxCode = ""; //箱码号 |
| | | |
| | | maxLotNoStr = asnList.LotNo; |
| | | maxLotNoStr = asnList.BoxCodeStr;//asnList.LotNo; |
| | | if (string.IsNullOrEmpty(asnList.LotNo)) |
| | | { |
| | | maxBoxCode = label.Where(m => m.ASNDetailNo == asnList.Id).Max(a => a.BoxNo); |
| | | } |
| | | else |
| | | { |
| | | maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo); |
| | | } |
| | | #endregion |
| | | |
| | | for (int i = 1; i <= labelNum; i++) |
| | |
| | | Status = "0", |
| | | SkuNo = asnList.SkuNo, |
| | | SkuName = asnList.SkuName, |
| | | LotNo = maxLotNoStr, |
| | | LotNo = asnList.LotNo,//maxLotNoStr, |
| | | Standard = asnList.Standard, |
| | | PackageStandard = packStr, |
| | | SupplierLot = supplierLot, |
| | |
| | | |
| | | model.ExpirationTime = data.ExpirationTime; // 有效期至 |
| | | model.StoreTime = data.StoreTime; // 储存期至 |
| | | model.ProductionTime = data.ProductionTime;//生产日期 |
| | | |
| | | model.Qty = dataList.Sum(m => m.Qty);// 数量 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = data.ExpirationTime; // 有效期至 |
| | | model.StoreTime = data.StoreTime; // 储存期至 |
| | | model.ProductionTime = data.ProductionTime;//生产日期 |
| | | |
| | | model.Qty = data1.Sum(m => m.Qty);// 数量 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = data.ExpirationTime; // 有效期至 |
| | | model.StoreTime = data.StoreTime; // 储存期至 |
| | | model.ProductionTime = data.ProductionTime;//生产日期 |
| | | |
| | | model.Qty = data.Qty;// 数量 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = data.ExpirationTime; // 有效期至 |
| | | model.StoreTime = data.StoreTime; // 储存期至 |
| | | model.ProductionTime = data.ProductionTime;//生产日期 |
| | | |
| | | model.Qty = data.Qty;// 数量 |
| | | |
| | |
| | | |
| | | model1.ExpirationTime = data.ExpirationTime; // 有效期至 |
| | | model1.StoreTime = data.StoreTime; // 储存期至 |
| | | model1.ProductionTime = data.ProductionTime;//生产日期 |
| | | model1.Qty = dataList.Sum(m => m.Qty);// 数量 |
| | | model1.BoxNo = data.BoxNo; // 箱号 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = data.ExpirationTime; // 有效期至 |
| | | model.StoreTime = data.StoreTime; // 储存期至 |
| | | model.ProductionTime = data.ProductionTime;//生产日期 |
| | | model.Qty = data.Qty;// 数量 |
| | | model.BoxNo = data.BoxNo3; // 支号 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = boxData.ExpirationTime; // 有效期至 |
| | | model.StoreTime = boxData.StoreTime; // 储存期至 |
| | | model.ProductionTime = boxData.ProductionTime;//生产日期 |
| | | model.Qty = data.Sum(m => m.Qty); // 数量 |
| | | model.BoxNo = boxData.BoxNo; // 支号 |
| | | |
| | |
| | | |
| | | model1.ExpirationTime = item.ExpirationTime; // 有效期至 |
| | | model1.StoreTime = item.StoreTime; // 储存期至 |
| | | model1.ProductionTime = item.ProductionTime;//生产日期 |
| | | model1.Qty = item.Qty;// 数量 |
| | | model1.BoxNo = item.BoxNo3; // 支号 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = boxData.ExpirationTime; // 有效期至 |
| | | model.StoreTime = boxData.StoreTime; // 储存期至 |
| | | model.ProductionTime = boxData.ProductionTime;//生产日期 |
| | | model.Qty = data.Sum(m => m.Qty); // 数量 |
| | | model.BoxNo = boxData.BoxNo; // 支号 |
| | | |
| | |
| | | |
| | | model1.ExpirationTime = item.ExpirationTime; // 有效期至 |
| | | model1.StoreTime = item.StoreTime; // 储存期至 |
| | | model.ProductionTime = item.ProductionTime;//生产日期 |
| | | model1.Qty = item.Qty; // 数量 |
| | | model1.BoxNo = item.BoxNo3; // 支号 |
| | | |
| | |
| | | |
| | | model.ExpirationTime = boxData.ExpirationTime; // 有效期至 |
| | | model.StoreTime = boxData.StoreTime; // 储存期至 |
| | | model.ProductionTime = boxData.ProductionTime;//生产日期 |
| | | model.Qty = data.Sum(m => m.Qty); // 数量 |
| | | model.BoxNo = boxData.BoxNo; // 支号 |
| | | |
| | |
| | | |
| | | model1.ExpirationTime = item.ExpirationTime; // 有效期至 |
| | | model1.StoreTime = item.StoreTime; // 储存期至 |
| | | model.ProductionTime = item.ProductionTime;//生产日期 |
| | | model1.Qty = item.Qty;// 数量 |
| | | model1.BoxNo = item.BoxNo3; // 支号 |
| | | |
| | |
| | | else |
| | | { |
| | | //从物料名称-批次中取出批次 |
| | | int indexOfDash = model.LotNo.IndexOf("-"); |
| | | int indexOfDash = model.LotNo.IndexOf("=>"); |
| | | if (indexOfDash != -1) |
| | | { |
| | | model.LotNo = model.LotNo.Substring(indexOfDash + 1); |
| | | model.LotNo = model.LotNo.Substring(indexOfDash + 2); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("物料-批次不可为空!"); |
| | | model.LotNo = ""; |
| | | //throw new Exception("物料-批次不可为空!"); |
| | | } |
| | | } |
| | | |
| | |
| | | #endregion |
| | | |
| | | #region 质检请验 |
| | | if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") |
| | | if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1") |
| | | { |
| | | var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); |
| | | if (qualityRequest == null) |
| | |
| | | #endregion |
| | | |
| | | #region 质检请验 |
| | | if ((arrNotice.Type == "1" || arrNotice.Type == "4" || arrNotice.Type == "5") && sku.IsInspect != "1") |
| | | if ((arrNotice.Type == "1" || arrNotice.Type == "4" || arrNotice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1") |
| | | { |
| | | var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); |
| | | if (qualityRequest == null) |
| | |
| | | else |
| | | { |
| | | //从物料名称-批次中取出批次 |
| | | int indexOfDash = model.LotNo.IndexOf("-"); |
| | | int indexOfDash = model.LotNo.IndexOf("=>"); |
| | | if (indexOfDash != -1) |
| | | { |
| | | model.LotNo = model.LotNo.Substring(indexOfDash + 1); |
| | | model.LotNo = model.LotNo.Substring(indexOfDash + 2); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("物料批次不可为空!"); |
| | | model.LotNo = ""; |
| | | //throw new Exception("物料批次不可为空!"); |
| | | } |
| | | } |
| | | |
| | |
| | | #endregion |
| | | |
| | | #region 质检请验 |
| | | if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") |
| | | if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1") |
| | | { |
| | | var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); |
| | | if (qualityRequest == null) |
| | |
| | | if (boxNoList.Count > 0) |
| | | { |
| | | data.BoxNoList = boxNoList; |
| | | data.Date1 = item.ProductionTime.ToString(); |
| | | data.Date2 = item.ExpirationTime.ToString(); |
| | | data.Date1 = item.ProductionTime == null ? "" : Convert.ToDateTime(item.ProductionTime).ToString("yyyy-MM-dd"); |
| | | data.Date2 = item.ExpirationTime == null ? "" : Convert.ToDateTime(item.ExpirationTime).ToString("yyyy-MM-dd"); |
| | | |
| | | break; |
| | | } |
| | |
| | | #endregion |
| | | |
| | | #region 质检请验 |
| | | if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") |
| | | if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1") |
| | | { |
| | | var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); |
| | | if (qualityRequest == null) |
| | |
| | | throw new Exception("物料信息为空,请核查!"); |
| | | } |
| | | //验证批次号是否为空 |
| | | if (string.IsNullOrEmpty(model.LotNo)) |
| | | if (string.IsNullOrEmpty(model.LotNo) && string.IsNullOrEmpty(model.ASNNo)) |
| | | { |
| | | throw new Exception("批次号不可为空,请核查!"); |
| | | throw new Exception("请输入批次号或入库单号!"); |
| | | } |
| | | //验证入库单号是否为空 |
| | | if (string.IsNullOrEmpty(model.ASNNo)) |
| | | { |
| | | throw new Exception("入库单号不可为空!"); |
| | | //if (string.IsNullOrEmpty(model.ASNNo)) |
| | | //{ |
| | | // throw new Exception("入库单号不可为空!"); |
| | | |
| | | |
| | | //查询是否为退货入库单据 |
| | |
| | | // throw new Exception("输入的批次或物料信息与入库单据不符,请核查!"); |
| | | //} |
| | | //isTui = 1; |
| | | } |
| | | //} |
| | | |
| | | //查找质检信息中是否存在同批次质检录入记录 |
| | | //BllQualityInspect quality = Db.Queryable<BllQualityInspect>().First(m => m.IsDel == "0" && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo); |
| | |
| | | //} |
| | | |
| | | ////查找同批次 同单据 入库单信息、 |
| | | BllArrivalNoticeDetail arrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" |
| | | && m.ASNNo == model.ASNNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); |
| | | string sqlStr = $@"select * from BllArrivalNoticeDetail where IsDel='0' and SkuNo='{model.SkuNo}' "; |
| | | if (!string.IsNullOrEmpty(model.ASNNo)) |
| | | { |
| | | sqlStr += $" and ASNNo='{model.ASNNo}' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.LotNo)) |
| | | { |
| | | sqlStr += $" and LotNo='{model.LotNo}' "; |
| | | } |
| | | BllArrivalNoticeDetail arrivalDetail = Db.SqlQueryable<BllArrivalNoticeDetail>(sqlStr).First(); |
| | | if (arrivalDetail == null) |
| | | { |
| | | throw new Exception("未找到入库单信息!"); |
| | |
| | | //model.SupplierLot = arrivalDetail.SupplierLot; //供货批次 |
| | | |
| | | //查找库存明细信息 |
| | | List<DataStockDetail> detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo).ToList(); |
| | | string sqlStr2 = $@"select * from DataStockDetail where IsDel='0' and SkuNo='{model.SkuNo}' "; |
| | | if (!string.IsNullOrEmpty(model.ASNNo)) |
| | | { |
| | | sqlStr2 += $" and ASNNo='{model.ASNNo}' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.LotNo)) |
| | | { |
| | | sqlStr2 += $" and LotNo='{model.LotNo}' "; |
| | | } |
| | | List<DataStockDetail> detail = Db.SqlQueryable<DataStockDetail>(sqlStr2).ToList(); |
| | | foreach (var item in detail) |
| | | { |
| | | List<BllBoxInfo> box = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.SkuNo == model.SkuNo && a.LotNo == model.LotNo).ToList(); |
| | |
| | | foreach (var item in list) |
| | | { |
| | | var outModeLocate = ""; |
| | | if (outMode == "1") |
| | | if (outMode == "17") |
| | | { |
| | | if (i < outLocatelist1.Count) |
| | | { |
| | |
| | | outModeLocate = outLocatelist1[j].LocatNo; |
| | | } |
| | | } |
| | | else if(outMode == "2") |
| | | else if (outMode == "18") |
| | | { |
| | | if (i < outLocatelist1.Count) |
| | | { |
| | |
| | | outModeLocate = outLocatelist2[j].LocatNo; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("出库口工位异常"); |
| | | } |
| | | |
| | | var taskNoStr = ""; |
| | | |
| | |
| | | string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus) |
| | | { |
| | | string str = "select PalletNo,PalletNo2,PalletNo3,BoxNo,BoxNo2,BoxNo3,Status,LotNo,Qty,FullQty,SkuNo,SkuName," + |
| | | "LotText,ProductionTime,InspectMark,BitBoxMark,InspectStatus,InspectTime from DataBoxInfo Where IsDel = @isdel"; |
| | | "LotText,ProductionTime,ExpirationTime,InspectMark,BitBoxMark,InspectStatus,InspectTime from DataBoxInfo Where IsDel = @isdel"; |
| | | //判断id是否为空 |
| | | if (!string.IsNullOrEmpty(id)) |
| | | { |
| | |
| | | RQty = tb1.Qty, |
| | | RFactQty = tb1.Qty, |
| | | RCompleteQty = tb1.Qty, |
| | | CompleteTime = tb1.CompleteTime, |
| | | CompleteTime = tb2.CreateTime, |
| | | LotText = tb1.LotText, |
| | | SupplierLot = tb2.SupplierLot, |
| | | |
| | |
| | | |
| | | SONo = tb2.SONo, |
| | | CTaskNo = tb1.TaskNo, |
| | | CCreateTime = tb1.UpdateTime, |
| | | CCreateTime = tb1.CreateTime, |
| | | CQty = tb1.Qty, |
| | | CFactQty = tb1.Qty, |
| | | CAllotQty = tb1.Qty, |
| | |
| | | .Includes(x => x.CreateUserInfo) |
| | | .Includes(x => x.UpdateUserInfo) |
| | | .ToListAsync(); |
| | | count = counts; |
| | | count.Value = counts; |
| | | |
| | | return data.Select(m => new CustomerDto() |
| | | { |
| | |
| | | var data = await PackagRst.GetAllByOrderPage(item, limit, page, out int counts) |
| | | .Includes(x => x.CreateUserInfo) |
| | | .Includes(x => x.UpdateUserInfo).ToListAsync(); |
| | | count = counts; |
| | | |
| | | count.Value = counts; |
| | | |
| | | return data.Select(m => new PackagDto() |
| | | { |
| | |
| | | var data = await UnitRst.GetAllByOrderPage(item, limit, page, out int counts) |
| | | .Includes(x => x.CreateUserInfo) |
| | | .Includes(x => x.UpdateUserInfo).ToListAsync(); |
| | | count = counts; |
| | | count.Value = counts; |
| | | return data.Select(m => new UnitDto() |
| | | { |
| | | Id = m.Id, |
| | |
| | | public string Lot6 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 标签常值 |
| | | /// </summary> |
| | | public string BoxCodeStr { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 自定义列1 |
| | | /// </summary> |
| | | public string UDF1 { get; set; } |
| | |
| | | using Model.InterFaceModel; |
| | | using Model.ModelDto; |
| | | using Model.ModelDto.BllAsnDto; |
| | | using Model.ModelDto.SysDto; |
| | | using Model.ModelVm; |
| | | using Model.ModelVm.SysVm; |
| | |
| | | /// </summary> |
| | | /// <param name="id">id</param> |
| | | /// <returns></returns> |
| | | string GetAsnDetailQtyList(int id); |
| | | LabelPrintInfoDto GetAsnDetailQtyList(int id); |
| | | |
| | | /// <summary> |
| | | /// 获取物料信息(添加入库单明细使用) |
| | |
| | | { |
| | | RefAsync<int> count = new RefAsync<int>(); |
| | | var bolls = await _customerSvc.GetCustomerList(model.CustomerNo, model.CustomerName, model.Type, model.LinkMan, model.Phone, model.Page, model.Limit, count); |
| | | return new SqlSugarPagedList() { Items = bolls, Total = count }; |
| | | return new SqlSugarPagedList() { Items = bolls, Total = count.Value }; |
| | | } |
| | | /// <summary> |
| | | /// 查询单条客户信息 |
| | |
| | | { |
| | | RefAsync<int> count = new RefAsync<int>(); |
| | | var list = await _unitSvc.GetUnitList(model.UnitNo, model.UnitName, model.Page, model.Limit, count); |
| | | return new SqlSugarPagedList() { Items = list, Total = count }; |
| | | return new SqlSugarPagedList() { Items = list, Total = count.Value }; |
| | | } |
| | | /// <summary> |
| | | /// 查询单条单位信息 |
| | |
| | | { |
| | | RefAsync<int> count = new RefAsync<int>(); |
| | | var list = await _packagSvc.GetPackagList(model.PackagNo, model.PackagName, model.Level, model.Page, model.Limit, count); |
| | | return new SqlSugarPagedList { Items = list, Total = count }; |
| | | return new SqlSugarPagedList { Items = list, Total = count.Value }; |
| | | } |
| | | |
| | | /// <summary> |