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.

278 lines
10 KiB

1 week ago
  1. <#import "../master.ftl" as master>
  2. <@master.layout>
  3. <style>
  4. .common-label2 .textbox-label {
  5. width: 180px;
  6. }
  7. </style>
  8. <div class="page-header">
  9. <h3>Create Roll</h3>
  10. </div>
  11. <div class="row" id="f1">
  12. <div class="col-md-4">
  13. <input id="inptOrder" type="text" class="form-control" placeholder="SO No" />
  14. <p>
  15. <table id="tblOrderInfo" class="table">
  16. </table>
  17. </p>
  18. </div>
  19. <div class="col-md-3">
  20. <p>
  21. <button class="btn btn-default" id="scanFirstSN" style="display: none;">Scan First Serial No</button>
  22. <button class="btn btn-default" id="checkSN" style="display: none;">Validate Scanning</button>
  23. <button class="btn btn-default" id="createRoll" style="display: none;">Create Roll</button>
  24. <#-- <button class="btn btn-default" id="doRollTrue" style="display: none;">纠正数据</button>-->
  25. </p>
  26. </div>
  27. <div id="scanFirstSNModal" class="easyui-dialog for-scan" style="width:550px;display: none;"
  28. closed="true" buttons="#dlg-scanFirstSNModal">
  29. <form id="scanFirstSNFM" method="post" novalidate style="margin:0;padding:20px 20px">
  30. <div style="margin-bottom:10px" >
  31. <input id="firstSerialNo" name="firstSerialNo" class="easyui-textbox " required="true" data-options="labelWidth:150" label="Please Scan Serials No:" style="width:100%">
  32. </div>
  33. </form>
  34. </div>
  35. <div id="dlg-scanFirstSNModal" style="display: none;">
  36. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="doFinalRoll" onclick="doScanFirstSN()" style="width:90px">OK</a>
  37. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="$('#scanFirstSNModal').dialog('close')" style="width:90px">Cancel</a>
  38. </div>
  39. <div id="checkSNModal" class="easyui-dialog for-scan" style="width:550px;display: none;"
  40. closed="true" buttons="#dlg-checkSNModal">
  41. <form id="checkSNFM" method="post" novalidate style="margin:0;padding:20px 20px">
  42. <div style="margin-bottom:10px">
  43. <input id="checkSerialNo" name="checkSerialNo" class="easyui-textbox " required="true" data-options="labelWidth:150" label="Please Scan Serials No:" style="width:100%">
  44. </div>
  45. </form>
  46. </div>
  47. <div id="dlg-checkSNModal" style="display: none;">
  48. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="doFinalRoll" onclick="checkSerialNo()" style="width:90px">OK</a>
  49. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="$('#checkSNModal').dialog('close')" style="width:90px">Cancel</a>
  50. </div>
  51. <div id="createSNModal" class="easyui-dialog for-scan" style="width:550px;display: none;"
  52. closed="true" buttons="#dlg-createSNModal">
  53. <form id="createSNFM" method="post" novalidate style="margin:0;padding:20px 20px">
  54. <div style="margin-bottom:10px">
  55. <input id="createSN" name="createSN" class="easyui-textbox " required="true" data-options="labelWidth:150" label="Please Scan Serials No:" style="width:100%">
  56. </div>
  57. <div style="margin-bottom:10px">
  58. <input id="serialQty" name="serialQty" class="easyui-textbox " required="true" data-options="labelWidth:150" label="Roll Qty:" style="width:100%" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')">
  59. </div>
  60. </form>
  61. </div>
  62. <div id="dlg-createSNModal" style="display: none;">
  63. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="doFinalRoll" onclick="createSORoll()" style="width:90px">OK</a>
  64. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="$('#createSNModal').dialog('close')" style="width:90px">Cancel</a>
  65. </div>
  66. <script>
  67. var soOrder;
  68. var part;
  69. var ORDER_NO;
  70. var DATA;
  71. $(function () {
  72. $("#inptOrder").focus();
  73. })
  74. function scanOrderNo(){
  75. var inptValue = $("#inptOrder").val();
  76. var $tblOrderInfo = $("#tblOrderInfo");
  77. $tblOrderInfo.html("");
  78. $("#createRoll").hide();
  79. $("#scanFirstSN").hide();
  80. $("#checkSN").hide();
  81. if (inptValue.length == 0){
  82. return false;
  83. }
  84. $.post("/indigo/getOrder", {orderNo: inptValue}, function(data){
  85. if (data.success && data.order){
  86. ORDER_NO = data.order.orderNo;
  87. part=data.part
  88. soOrder=data.order
  89. if (data.canCreateRoll){
  90. $("#createRoll").show();
  91. }
  92. if (!data.canCheckSN){
  93. $("#scanFirstSN").show();
  94. }
  95. if (data.canCheckSN){
  96. $("#checkSN").show();
  97. }
  98. DATA = data;
  99. $tblOrderInfo.append("<tr><td>SO No:</td><td>"+data.order.orderNo+"</td></tr>");
  100. $tblOrderInfo.append("<tr><td>Part No:</td><td>"+data.order.partNo+"</td></tr>");
  101. $tblOrderInfo.append("<tr><td>No. of Cross:</td><td>"+data.order.crossNumber+"</td></tr>");
  102. $tblOrderInfo.append("<tr><td>Status:</td><td>"+data.order.status+"</td></tr>");
  103. $tblOrderInfo.append("<tr><td>Roll List:</td><td>"+showRolls(data.orderRolls)+"</td></tr>");
  104. }else {
  105. $.messager.alert('error',data.msg, 'error');
  106. }
  107. });
  108. }
  109. function showRolls(rolldata){
  110. var list = (rolldata || "-").split(",");
  111. var ret = [];
  112. for(var i=0;i<list.length;i++){
  113. ret.push('<a onclick="print(\''+ list[i]+'\')">'+list[i]+'</a>');
  114. }
  115. return ret.join("<br />");
  116. }
  117. function print(rollNo) {
  118. $.messager.confirm('Confirm','Is Printed ?',function(r){
  119. if (r){
  120. $("#ifmforprint").attr('src', "/indigo/printRollNo/" + rollNo);
  121. }
  122. });
  123. }
  124. function printNow(rollNo) {
  125. $("#ifmforprint").attr('src', "/indigo/printRollNo/" + rollNo);
  126. }
  127. $("#inptOrder").on("keydown", function(){
  128. if(event.keyCode==13) {
  129. scanOrderNo();
  130. return false;
  131. }
  132. return true;
  133. });
  134. $("#scanFirstSN").on("click", function(){
  135. $('#scanFirstSNModal').dialog('open').dialog('center').dialog('setTitle', "Scan First Serial No");
  136. $('#scanFirstSNFM form').form('clear');
  137. $("#firstSerialNo").textbox('textbox').focus();
  138. })
  139. $("#firstSerialNo").on("keydown", function(){
  140. doScanFirstSN()
  141. });
  142. $("#checkSN").on("click", function(){
  143. $('#checkSNModal').dialog('open').dialog('center').dialog('setTitle', "Validate Scanning");
  144. $('#checkSNFM form').form('clear');
  145. $("#checkSerialNo").textbox('textbox').focus();
  146. })
  147. function doScanFirstSN(){
  148. let serialNo = $.trim($("#firstSerialNo").textbox('getValue'));
  149. if(null == serialNo || '' == serialNo){
  150. $.messager.alert('error', 'Please Scan Serials No!', 'error');
  151. return false;
  152. }
  153. $.post("/indigo/scanFirstSN", {"serialNo": serialNo}, function(data){
  154. if (data && data.success){
  155. $.messager.alert("info", "Successfully!", "info");
  156. $('#scanFirstSNModal').dialog('close');
  157. $("#createRoll").hide();
  158. $("#scanFirstSN").hide();
  159. $("#checkSN").hide();
  160. if (data.canCreateRoll){
  161. $("#createRoll").show();
  162. }
  163. if (!data.canCheckSN){
  164. $("#scanFirstSN").show();
  165. }
  166. if (data.canCheckSN){
  167. $("#checkSN").show();
  168. }
  169. } else {
  170. $.messager.alert("Error", data.msg, "error");
  171. }
  172. //scanOrderNo();
  173. })
  174. }
  175. function checkSerialNo(){
  176. let serialNo = $.trim($("#checkSerialNo").textbox('getValue'));
  177. if(null == serialNo || '' == serialNo){
  178. $.messager.alert('error', 'Please Scan Serials No!', 'error');
  179. return false;
  180. }
  181. $.post("/indigo/checkSerialNo", {"serialNo": serialNo}, function(data){
  182. if (data && data.success){
  183. $.messager.alert("info", "Successfully!", "info");
  184. $('#checkSNModal').dialog('close');
  185. $("#createRoll").show();
  186. } else {
  187. $.messager.alert("Error", data.msg, "error");
  188. }
  189. //scanOrderNo();
  190. })
  191. }
  192. $("#checkSerialNo").on("click", function(){
  193. checkSerialNo();
  194. })
  195. $("#createRoll").on("click", function(){
  196. $('#createSNModal').dialog('open').dialog('center').dialog('setTitle', "Create Roll");
  197. $('#createSNFM form').form('clear');
  198. $('#serialQty').textbox("setValue", "")
  199. $('#createSN').textbox("setValue", "")
  200. $("#createSN").textbox('textbox').focus();
  201. // $.messager.confirm("确认","创建1卷?", function(cr){
  202. // if (cr){
  203. // $.post("/indigo/create_roll/do", {"orderNo": ORDER_NO}, function(data){
  204. // if (data && data.success){
  205. // window.location.href="/rollop/indigo/?rollNo="+data.newRollNo;
  206. // } else {
  207. // $.messager.alert("Error", data.errorMsg, "error");
  208. // }
  209. // //scanOrderNo();
  210. // })
  211. // }
  212. // })
  213. })
  214. function createSORoll(){
  215. let serialNo = $.trim($("#createSN").textbox('getValue'));
  216. if(null == serialNo || '' == serialNo){
  217. $.messager.alert('error', 'Please Scan Serials No!', 'error');
  218. return false;
  219. }
  220. let qty = $.trim($("#serialQty").textbox('getValue'));
  221. if(null == qty || '' == qty){
  222. $.messager.alert('error', 'Please Input Qty!', 'error');
  223. return false;
  224. }
  225. $.post("/indigo/createSORoll", {"serialNo": serialNo,"qty":qty,"orderNo":soOrder.orderNo}, function(data){
  226. if (data && data.success){
  227. // $('#inptOrder').textbox("setValue", soOrder.orderNo);
  228. scanOrderNo();
  229. $.messager.alert("info", "Successfully!", "info");
  230. $('#createSNModal').dialog('close');
  231. printNow(data.rollNo);
  232. } else {
  233. $.messager.alert("Error", data.msg, "error");
  234. }
  235. //scanOrderNo();
  236. })
  237. }
  238. </script>
  239. <style>
  240. button {min-width: 100px;}
  241. </style>
  242. </@master.layout>