You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
7.5 KiB

1 week ago
  1. <#import "../master.ftl" as master>
  2. <@master.layout>
  3. <style>
  4. #fm label {
  5. width: 150px;
  6. }
  7. </style>
  8. <div class="page-header">
  9. <h2>Stock Query</h2>
  10. </div>
  11. <table id="dg" class="easyui-datagrid" style="width:100%;height:460px;display: none;"
  12. data-options="pagination: true, pageSize:20, showFooter: true, singleSelect:true, fitColumns:true ,
  13. queryParams:{status: $('#status').val()},
  14. url:'/inventory/getStockList', method:'POST', toolbar:'#tb'">
  15. <thead>
  16. <tr>
  17. <th data-options="field:'orderNo',width:100">SO No</th>
  18. <th data-options="field:'boxNo',width:100">Box No</th>
  19. <th data-options="field:'partNo',width:100">Part No</th>
  20. <th data-options="field:'rollNums',width:100,align:'right'">Count of Rolls</th>
  21. <th data-options="field:'boxQty',width:100,align:'right'">Box Qty</th>
  22. <th data-options="field:'status',width:100,formatter: getStatement" >Status</th>
  23. <th data-options="field:'locationNo',width:100">Location No</th>
  24. <th data-options="field:'createdBy',width:100">Created By</th>
  25. <th data-options="field:'createdDate',width:100,formatter:formatStringTime">Created Time</th>
  26. <th data-options="field:'updatedBy',width:100">Updated By</th>
  27. <th data-options="field:'updatedDate',width:100,formatter:formatStringTime">Updated Time</th>
  28. <th data-options="field:'labelDate',width:100,formatter:formatStringDate">Label Tracking Date</th>
  29. <th data-options="field:'id',width:200, formatter: formatDeliveryAction">Actions</th>
  30. </tr>
  31. </thead>
  32. </table>
  33. <div id="tb" style="padding:10px 5px;display: none;">
  34. <div>
  35. SO No: <input class="easyui-textbox" id="orderNo" style="width:110px">
  36. Box No: <input class="easyui-textbox" id="boxNo" style="width:110px">
  37. Part No: <input class="easyui-textbox" id="partNo" style="width:110px">
  38. Location No: <input class="easyui-textbox" id="locationNo" style="width:110px">
  39. Status: <select class="easyui-combobox" name="status" id="status" style="width:90px;">
  40. <option value="ALL">ALL</option>
  41. <option value="5">Shipped</option>
  42. <option value="4">In-Stock</option>
  43. <option value="-1">Frozen</option>
  44. </select>
  45. <a href="#nowhere" id="queryLink" class="easyui-linkbutton" iconCls="icon-search">Search</a>
  46. <a class="easyui-linkbutton" iconCls="icon-add" onclick="downInventoryExcel()">Export to Excel</a>
  47. </div>
  48. </div>
  49. <script>
  50. $(window).resize(function () {
  51. $("#dg").datagrid({"height": $(window).height() - $(".datagrid").offset().top - 20});
  52. });
  53. $(function () {
  54. $(window).resize();
  55. });
  56. //格式化字符串时间
  57. function formatStringDate(value, row){
  58. if(null == value || '' == value){
  59. return '';
  60. }
  61. value = value.substring(0, 10);
  62. return value;
  63. }
  64. $("#queryLink").click(function(){
  65. var dg = $('#dg').datagrid({
  66. queryParams: {
  67. orderNo: $("#orderNo").val(),
  68. partNo: $("#partNo").val(),
  69. locationNo: $("#locationNo").val(),
  70. boxNo: $("#boxNo").val(),
  71. status: $("#status").val()
  72. }
  73. });
  74. });
  75. //主表功能
  76. function formatDeliveryAction(value, row){
  77. //根据状态区分不同的按钮
  78. let status = row.status;
  79. let tags = '';
  80. if('Freeze' == status){
  81. tags += '<a onclick="performingTask(\''+row.boxNo+'\')" class="disabled-underscore">unFrozen</a>';
  82. }else if('Stocked' == status){
  83. tags += '<a onclick="freezeBoxConfirm(\''+row.boxNo+'\')" class="disabled-underscore">Frozen</a>';
  84. }
  85. return tags;
  86. }
  87. //解冻
  88. function performingTask(boxNo){
  89. $.messager.confirm('Confirm','Are you sure to unFrozen the box: <b>'+boxNo+'</b> ?', function(r){
  90. if (r){
  91. //取到当前的行
  92. delay(function(){
  93. //调用方法
  94. updateFreezeTask(boxNo);
  95. }, 500);
  96. }
  97. });
  98. }
  99. //解冻功能
  100. function updateFreezeTask(boxNo){
  101. let username = $('#current_username').val();
  102. let postData = {'boxNo': boxNo, 'updatedBy': username};
  103. //保存或修改数据
  104. /*//序列化
  105. postData = JSON.stringify(postData);*/
  106. //post请求类型修改
  107. $('#saveButton').addClass("button-disabled");
  108. $.ajaxSetup({
  109. contentType: "application/x-www-form-urlencoded"});
  110. $.post('/inventory/updateFreezeTask', postData, function(result){
  111. $('#saveButton').removeClass("button-disabled");
  112. if (result.success){
  113. //刷新主表数据
  114. $('#dg').datagrid('reload');
  115. } else {
  116. $.messager.alert('error',result.msg, 'error');
  117. }
  118. },'json');
  119. $.ajaxSetup({
  120. contentType: " application/x-www-form-urlencoded"});
  121. }
  122. //解冻
  123. function freezeBoxConfirm(boxNo){
  124. $.messager.confirm('Confirm','Confirm Freeze: <b>'+boxNo+'</b> ?', function(r){
  125. if (r){
  126. //取到当前的行
  127. delay(function(){
  128. //调用方法
  129. freezeBoxFunc(boxNo);
  130. }, 500);
  131. }
  132. });
  133. }
  134. //冻结功能
  135. function freezeBoxFunc(boxNo){
  136. let username = $('#current_username').val();
  137. let postData = {'boxNo': boxNo, 'updatedBy': username};
  138. //保存或修改数据
  139. /*//序列化
  140. postData = JSON.stringify(postData);*/
  141. //post请求类型修改
  142. $.ajaxSetup({
  143. contentType: "application/x-www-form-urlencoded"});
  144. $.post('/inventory/freezeBoxFunc', postData, function(result){
  145. if (result.success){
  146. //刷新主表数据
  147. $('#dg').datagrid('reload');
  148. } else {
  149. $.messager.alert('error',result.msg, 'error');
  150. }
  151. },'json');
  152. $.ajaxSetup({
  153. contentType: " application/x-www-form-urlencoded"});
  154. }
  155. //延时操作
  156. var delay = (function(){
  157. var timer = 0;
  158. return function(callback, ms){
  159. clearTimeout (timer);
  160. timer = setTimeout(callback, ms);
  161. };
  162. })();
  163. //获取状态
  164. function getStatement(value, row){
  165. if(value=="Delivered"){
  166. return "Shipped";
  167. }else if(value=="Stocked"){
  168. return "In-Stock";
  169. }else if(value=="Freeze"){
  170. return "Frozen";
  171. }
  172. }
  173. //下载Excel数据
  174. function downInventoryExcel(){
  175. let orderNo = $("#orderNo").val();
  176. let partNo = $("#partNo").val();
  177. let locationNo = $("#locationNo").val();
  178. let boxNo = $("#boxNo").val();
  179. let status = $("#status").val();
  180. let print_url = '/export/inventory/downInventoryExcel?orderNo='+orderNo+'&partNo='+partNo+'&locationNo='+locationNo+'&boxNo='+boxNo+'&statusDesc='+status;
  181. $("#ifmforprint").attr('src', print_url);
  182. }
  183. /* //TT扫描入库和IFS入库数量如果不相等,异常提醒
  184. $('#dg').datagrid({
  185. rowStyler:function(index,row){
  186. if(row.confirmBy !=null&&row.confirmBy !=''){
  187. return ''
  188. }
  189. if (Math.abs(Number(row.qtyComplete)-Number(row.qtyCompleteIfs))>=row.packageQty){
  190. return 'background-color:#ff534d;font-weight:bold;';
  191. }
  192. }
  193. }); */
  194. </script>
  195. </@master.layout>