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.

319 lines
13 KiB

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