纽威
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.

540 lines
23 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <script>
  6. debugger;
  7. var _Clos = new Array();
  8. var _Clos1 = new Array();
  9. var flag = '1';
  10. var mark = '';
  11. var Arguments = '';
  12. $(function () {
  13. SetCols();
  14. gridList();
  15. gridList2(flag);
  16. $("#selShow").change(function () {
  17. debugger;
  18. gridList();
  19. });
  20. });
  21. //function gridList() {
  22. // document.getElementById("gridPanel").innerHTML = ' <span><strong>详细信息</strong></span> <table id="gridList"></table> ';//重置grid
  23. // var Type = $("#selShow").val();
  24. // var $gridList = $("#gridList");
  25. // var queryJson = {
  26. // POCode: $("#txt_POCode").val(),
  27. // InvCode: $("#txt_InvCode").val(),
  28. // }
  29. // $gridList.dataGrid({
  30. // url: "/WMS/PickMaterial/GetGridJson?Type=" + Type + "&" + Math.random(),
  31. // postData: { queryJson: JSON.stringify(queryJson) },
  32. // height: 280,
  33. // width: $(window).width() - 500,
  34. // colModel: [
  35. // { label: "主键", name: "ID", hidden: true, key: true },
  36. // { label: '单据号', name: 'Code', width: 120, align: 'left' },
  37. // { label: '单据行号', name: 'Sequence', width: 100, align: 'left' },
  38. // { label: '操作日期', name: 'MTIME', width: 150, align: 'left' },
  39. // { label: '料品编码', name: 'InvCode', width: 100, align: 'left' },
  40. // { label: '料品名称', name: 'InvName', width: 100, align: 'left' },
  41. // { label: '料品描述', name: 'InvDesc', width: 100, align: 'left' },
  42. // { label: '规格型号', name: 'InvStd', width: 100, align: 'left' },
  43. // { label: '数量', name: 'Quantity', width: 100, align: 'left' },
  44. // { label: '单位', name: 'InvUnit', width: 100, align: 'left' },
  45. // { label: '维护人', name: 'MUSER', width: 80, align: 'left' },
  46. // { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' },
  47. // { label: '仓库编码', name: 'WHCode', width: 80, align: 'left' },
  48. // { label: '仓库名称', name: 'WarehouseName', width: 80, align: 'left' },
  49. // //{ label: '是否合并拣料', name: 'IsNew', width: 80, align: 'left' },
  50. // ],
  51. // shrinkToFit: false,//宽度自适应
  52. // autowidth: true,
  53. // gridComplete: function () {
  54. // },
  55. // rowNum: 10000,
  56. // autoScroll: true,
  57. // sortname: 'Code',
  58. // sortorder: "desc",
  59. // viewrecords: true,
  60. // multiselect: true,
  61. // });
  62. // $("#warehouse a.btn-default").click(function () {
  63. // $("#warehouse a.btn-default").removeClass("active");
  64. // $(this).addClass("active");
  65. // $('#btn_search').trigger("click");
  66. // });
  67. // $("#btn_search").click(function () {
  68. // var warehouse = $("#warehouse a.active").attr('data-value');
  69. // var queryJson = {
  70. // POCode: $("#txt_POCode").val(),
  71. // InvCode: $("#txt_InvCode").val(),
  72. // }
  73. // $gridList.jqGrid('setGridParam', {
  74. // postData: { queryJson: JSON.stringify(queryJson) },
  75. // }).trigger('reloadGrid');
  76. // });
  77. //}
  78. function SetCols() {
  79. $.ajax({
  80. url: "/Print/SelectColumnName?" + Math.random(),
  81. dataType: "json",
  82. async: false,
  83. success: function (data) {
  84. var cols = new Array();
  85. var collast = { label: "主键", name: "ID", hidden: true, key: true };
  86. cols.push(collast);
  87. var collast = { label: '单据号', name: 'Code', width: 120, align: 'left' };
  88. cols.push(collast);
  89. var collast = { label: '操作日期', name: 'MTIME', width: 150, align: 'left' };
  90. cols.push(collast);
  91. var collast = { label: '维护人', name: 'MUSER', width: 80, align: 'left' };
  92. cols.push(collast);
  93. var collast = { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' };
  94. cols.push(collast);
  95. var collast = { label: '是否合并拣料', name: 'IsNew', width: 80, align: 'left' };
  96. cols.push(collast);
  97. var cols1 = new Array();
  98. var collast1 = { label: "主键", name: "ID", hidden: true, key: true };
  99. cols1.push(collast1);
  100. var collast1 = { label: '领料合并ID', name: 'MergeID', width: 120, align: 'left' };
  101. cols1.push(collast1);
  102. var collast1 = { label: '单据号', name: 'Code', width: 120, align: 'left' };
  103. cols1.push(collast1);
  104. var collast1 = { label: '料品编码', name: 'InvCode', width: 150, align: 'left' };
  105. cols1.push(collast1);
  106. var collast1 = { label: '料品名称', name: 'InvName', width: 150, align: 'left' };
  107. cols1.push(collast1);
  108. var collast1 = { label: '规格型号', name: 'InvStd', width: 100, align: 'left' };
  109. cols1.push(collast1);
  110. var collast1 = { label: '应发数量', name: 'iQuantity', width: 100, align: 'left' };
  111. cols1.push(collast1);
  112. var collast1 = { label: '单位', name: 'InvUnit', width: 150, align: 'left' };
  113. cols1.push(collast1);
  114. var collast1 = { label: '仓库编码', name: 'WarehouseCode', width: 100, align: 'left' };
  115. cols1.push(collast1);
  116. var collast1 = { label: '库位编码', name: 'LocationCode', width: 100, align: 'left' };
  117. cols1.push(collast1);
  118. var collast1 = { label: '条码库存', name: 'QTY', width: 100, align: 'left' };
  119. cols1.push(collast1);
  120. var collast1 = { label: '条码', name: 'LotNO', width: 100, align: 'left' };
  121. cols1.push(collast1);
  122. if (data != null && data.length > 0) {
  123. DateList = data;
  124. for (var i = 0; i < data.length; i++) {
  125. var ColName = data[i].ColName;
  126. var ColCode = data[i].ColCode;
  127. var obj = new Array();
  128. obj = {
  129. label: ColName,
  130. name: ColCode,
  131. width: 80,
  132. align: "left"
  133. }
  134. cols.push(obj);
  135. cols1.push(obj);
  136. }
  137. }
  138. _Clos = cols;
  139. _Clos1 = cols1;
  140. }
  141. });
  142. }
  143. function gridList() {
  144. document.getElementById("gridPanel").innerHTML = ' <span><strong>详细信息</strong></span> <table id="gridList"></table> ';//重置grid
  145. var Type = $("#selShow").val();
  146. var $gridList = $("#gridList");
  147. var queryJson = {
  148. POCode: $("#txt_POCode").val(),
  149. InvCode: $("#txt_InvCode").val(),
  150. }
  151. $gridList.dataGrid({
  152. url: "/WMS/PickMaterial/GetGridJson?Type=" + Type + "&" + Math.random(),
  153. postData: { queryJson: JSON.stringify(queryJson) },
  154. height: 280,
  155. width: $(window).width() - 500,
  156. colModel: _Clos,
  157. //colModel: [
  158. // { label: "主键", name: "ID", hidden: true, key: true },
  159. // { label: '单据号', name: 'Code', width: 120, align: 'left' },
  160. // { label: '操作日期', name: 'MTIME', width: 150, align: 'left' },
  161. // { label: '维护人', name: 'MUSER', width: 80, align: 'left' },
  162. // { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' },
  163. // { label: '是否合并拣料', name: 'IsNew', width: 80, align: 'left' },
  164. //],
  165. shrinkToFit: false,//宽度自适应
  166. autowidth: true,
  167. gridComplete: function () {
  168. },
  169. rowNum: 10000,
  170. autoScroll: true,
  171. sortname: 'Code',
  172. sortorder: "desc",
  173. viewrecords: true,
  174. multiselect: true,
  175. subGrid: true, // (1)开启子表格支持
  176. subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数
  177. $("#gridList").jqGrid("setSelection", rowid, false);
  178. bindSubGrid(subgrid_id, rowid)
  179. }
  180. });
  181. function bindSubGrid(subgrid_id, rowid) {
  182. var Type = $("#selShow").val();
  183. $("#gridList").jqGrid("setSelection", rowid, false);
  184. var subgrid_table_id;
  185. subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id
  186. var subgrid_pager_id;
  187. subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id
  188. // (5)动态添加子报表的table和pager
  189. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>");
  190. var Code = $("#gridList").jqGrid('getRowData', rowid).Code;
  191. //var Sequence = $("#gridList").jqGrid('getRowData', rowid).Sequence;
  192. // (6)创建jqGrid对象
  193. $("#" + subgrid_table_id).dataGrid({
  194. cellEdit: true,
  195. url: "/WMS/PickMaterial/GetSubGridJson?Code=" + Code + "&Type=" + Type + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数
  196. colModel: [
  197. { label: '单据号', name: 'Code', width: 120, align: 'left' },
  198. { label: '单据行号', name: 'Sequence', width: 100, align: 'left' },
  199. { label: '操作日期', name: 'MTIME', width: 150, align: 'left' },
  200. { label: '料品编码', name: 'InvCode', width: 100, align: 'left' },
  201. { label: '料品名称', name: 'InvName', width: 100, align: 'left' },
  202. { label: '料品描述', name: 'InvDesc', width: 100, align: 'left' },
  203. { label: '规格型号', name: 'InvStd', width: 100, align: 'left' },
  204. { label: '数量', name: 'Quantity', width: 100, align: 'left' },
  205. { label: '已发数量', name: 'IssueQuantity', width: 100, align: 'left' },
  206. { label: '单位', name: 'InvUnit', width: 100, align: 'left' },
  207. { label: '维护人', name: 'MUSER', width: 80, align: 'left' },
  208. { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' },
  209. { label: '仓库编码', name: 'WHCode', width: 80, align: 'left' },
  210. { label: '仓库名称', name: 'WarehouseName', width: 80, align: 'left' },
  211. ],
  212. //colModel: ColModelSub,
  213. shrinkToFit: true,//宽度自适应
  214. //multiselect: true,
  215. prmNames: { search: "search" },
  216. viewrecords: true,
  217. height: "100%",
  218. rowNum: 20,
  219. pager: subgrid_pager_id,
  220. });
  221. }
  222. $("#warehouse a.btn-default").click(function () {
  223. $("#warehouse a.btn-default").removeClass("active");
  224. $(this).addClass("active");
  225. $('#btn_search').trigger("click");
  226. });
  227. $("#btn_search").click(function () {
  228. var warehouse = $("#warehouse a.active").attr('data-value');
  229. var queryJson = {
  230. POCode: $("#txt_POCode").val(),
  231. InvCode: $("#txt_InvCode").val(),
  232. }
  233. $gridList.jqGrid('setGridParam', {
  234. postData: { queryJson: JSON.stringify(queryJson) },
  235. }).trigger('reloadGrid');
  236. });
  237. }
  238. function gridList2(flag) {
  239. debugger;
  240. document.getElementById("gridPanel2").innerHTML = ' <span><strong>合并信息</strong></span> <table id="gridList2"></table>';//重置grid
  241. var Type = $("#selShow").val();
  242. var $gridList = $("#gridList2");
  243. var objArr = '';
  244. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  245. for (var i = 0; i < objList.length; i++) {
  246. var rowId = objList[i];
  247. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  248. if (flag == '1') {
  249. objArr += "'" + rowData.Code + "',";
  250. } else {
  251. objArr += "'" + rowData.Code + "',";
  252. }
  253. }
  254. $gridList.dataGrid({
  255. url: "/WMS/PickMaterial/GetICSMOPickMergeTemp?ID=" + objArr + "&Type=" + Type + "&flag=" + flag + "&" + Math.random(),
  256. height: 500,
  257. width: $(window).width() - 500,
  258. colModel: _Clos1,
  259. //colModel: [
  260. // { label: "主键", name: "ID", hidden: true, key: true },
  261. // { label: '领料合并ID', name: 'MergeID', width: 120, align: 'left' },
  262. // { label: '单据号', name: 'Code', width: 120, align: 'left' },
  263. // { label: '料品编码', name: 'InvCode', width: 150, align: 'left' },
  264. // { label: '料品名称', name: 'InvName', width: 150, align: 'left' },
  265. // { label: '规格型号', name: 'InvStd', width: 100, align: 'left' },
  266. // { label: '应发数量', name: 'iQuantity', width: 100, align: 'left' },
  267. // { label: '单位', name: 'InvUnit', width: 150, align: 'left' },
  268. // { label: '仓库编码', name: 'WarehouseCode', width: 100, align: 'left' },
  269. // { label: '库位编码', name: 'LocationCode', width: 100, align: 'left' },
  270. // { label: '条码库存', name: 'QTY', width: 100, align: 'left' },
  271. // { label: '条码', name: 'LotNO', width: 100, align: 'left' },
  272. //],
  273. shrinkToFit: false,//宽度自适应
  274. autowidth: true,
  275. gridComplete: function () {
  276. },
  277. rowNum: 10000,
  278. sortorder: "desc",
  279. viewrecords: true,
  280. //multiselect: true,
  281. });
  282. $("#warehouse a.btn-default").click(function () {
  283. $("#warehouse a.btn-default").removeClass("active");
  284. $(this).addClass("active");
  285. $('#btn_search').trigger("click");
  286. });
  287. $("#btn_search").click(function () {
  288. var warehouse = $("#warehouse a.active").attr('data-value');
  289. var queryJson = {
  290. POCode: $("#txt_POCode").val(),
  291. }
  292. $gridList.jqGrid('setGridParam', {
  293. postData: { queryJson: JSON.stringify(queryJson) },
  294. }).trigger('reloadGrid');
  295. });
  296. }
  297. function btnMaterial() {
  298. debugger;
  299. var objArr = '';
  300. var arr = [];
  301. mark = '拣料';
  302. flag = '1';
  303. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  304. for (var i = 0; i < objList.length; i++) {
  305. var rowId = objList[i];
  306. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  307. if (rowData.IsNew == "已合并") {
  308. $.modalAlertNew("WMS00091");
  309. return;
  310. }
  311. objArr += "'" + rowData.Code + "',";
  312. objArr = objArr.slice(0, objArr.length - 1);
  313. objArr = "" + objArr + "|";
  314. arr.push(objArr);
  315. }
  316. Arguments = arr;
  317. gridList2(flag);
  318. }
  319. function btnMergeMaterial() {
  320. debugger;
  321. mark = '合并拣料';
  322. var sign = '';
  323. flag = '2';
  324. var Type = $("#selShow").val();
  325. var obj = '';
  326. var objArr = '';
  327. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  328. if (objList.length < 2) {
  329. $.modalAlertNew("WMS00092");
  330. return;
  331. }
  332. for (var i = 0; i < objList.length; i++) {
  333. var rowId = objList[i];
  334. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  335. obj += rowData.Code + ",";
  336. objArr += "'" + rowData.Code + "',";
  337. }
  338. $.ajax({
  339. url: "/WMS/PickMaterial/CheckQty" + "?" + Math.random() + "&objArr=" + objArr,
  340. dataType: "json",
  341. type: "post",
  342. async: false,
  343. success: function (data) {
  344. sign = data.count;
  345. }
  346. });
  347. if (sign == '1') {
  348. $.modalAlertNew("WMS00091");
  349. return;
  350. }
  351. $.submitForm({
  352. url: "/WMS/PickMaterial/MergeMaterial?Type=" + Type + "&" + Math.random(),
  353. param: {
  354. keyValue: obj
  355. },
  356. success: function () {
  357. //$.currentWindow().$("#gridList").trigger("reloadGrid");
  358. gridList2(flag);
  359. }
  360. })
  361. }
  362. function btnPrint() {
  363. debugger;
  364. var mold = '';
  365. if (mark == '') {
  366. $.modalAlertNew("WMS00093");
  367. return;
  368. }
  369. if (mark == '合并拣料') {
  370. var objArr = '';
  371. var arr = [];
  372. var obj_Item1 = $("#gridList2");
  373. var rowIds_Item1 = obj_Item1.getDataIDs();
  374. var arrayData_Item1 = new Array();
  375. var Enables = '';
  376. if (rowIds_Item1.length > 0) {
  377. debugger;
  378. for (var i = 0; i < rowIds_Item1.length; i++) {
  379. var RowData_Item1 = obj_Item1.getRowData(rowIds_Item1[0]);
  380. objArr += "'" + RowData_Item1.MergeID + "',";
  381. objArr = objArr.slice(0, objArr.length - 1);
  382. objArr = "" + objArr + "|";
  383. arr.push(objArr);
  384. }
  385. Arguments = arr;
  386. mold = 'HBJL00001';
  387. }
  388. }
  389. if (mark == '拣料') {
  390. var objArr = '';
  391. var arr = [];
  392. var obj_Item1 = $("#gridList2");
  393. var rowIds_Item1 = obj_Item1.getDataIDs();
  394. var arrayData_Item1 = new Array();
  395. var Enables = '';
  396. if (rowIds_Item1.length > 0) {
  397. debugger;
  398. for (var i = 0; i < rowIds_Item1.length; i++) {
  399. var RowData_Item1 = obj_Item1.getRowData(rowIds_Item1[0]);
  400. objArr += "'" + RowData_Item1.Code + "',";
  401. objArr = objArr.slice(0, objArr.length - 1);
  402. objArr = "" + objArr + "|";
  403. arr.push(objArr);
  404. }
  405. Arguments = arr;
  406. mold = 'JL00001';
  407. }
  408. }
  409. $.modalOpen({
  410. id: "PrintLot",
  411. title: "打印",
  412. url: "/WMS/Print/PrintView?Arguments=" + encodeURI(encodeURI(Arguments)) + "&mold=" + mold + "&" + Math.random(),
  413. width: "550px",
  414. height: "1000px",
  415. callBack: function (iframeId) {
  416. top.frames[iframeId].submitForm();
  417. }
  418. });
  419. }
  420. function fullscreen() {
  421. var docElm = document.documentElement;
  422. if (docElm.requestFullscreen) {
  423. docElm.requestFullscreen();
  424. } else if (docElm.mozRequestFullScreen) {
  425. docElm.mozRequestFullScreen();
  426. } else if (docElm.webkitRequestFullScreen) {
  427. docElm.webkitRequestFullScreen();
  428. } else if (docElm.msRequestFullscreen) {
  429. docElm.msRequestFullscreen();
  430. }
  431. $(window).bind('resize', function () {
  432. $("#gridList").setGridWidth($(window).width());
  433. }).trigger('resize');
  434. $(window).bind('resize', function () {
  435. $("#gridList").setGridHeight($(window).height());
  436. }).trigger('resize');
  437. }
  438. </script>
  439. <div class="topPanel" style="height:60px;">
  440. <div class="toolbar">
  441. <div class="btn-group">
  442. <a id="NF-Material" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnMaterial()"><i class="fa fa-pencil-square-o"></i>拣料</a>
  443. <a id="NF-MergeMaterial" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnMergeMaterial()"><i class="fa fa-pencil-square-o"></i>合并拣料</a>
  444. <a id="NF-Print" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnPrint()"><i class="fa fa-pencil-square-o"></i>打印</a>
  445. <a class="btn btn-primary" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a>
  446. </div>
  447. <script>$('.toolbar').authorizeButton()</script>
  448. </div>
  449. <div class="search">
  450. <table>
  451. <tr>
  452. <td>
  453. <label>&nbsp;&nbsp;&nbsp;类型:</label>
  454. </td>
  455. <td>
  456. <div class="input-group">
  457. <select id="selShow" name="F_Target" class="form-control" style="width: 100px;">
  458. <option value="1" selected="selected">工单备料</option>
  459. <option value="2" selected="selected">工单领料</option>
  460. <option value="3" selected="selected">工单材料出库</option>
  461. <option value="4" selected="selected">委外备料</option>
  462. <option value="5" selected="selected">委外领料</option>
  463. <option value="6" selected="selected">委外材料出库</option>
  464. <option value="7" selected="selected">销售发货</option>
  465. <option value="8" selected="selected">其它出库</option>
  466. <option value="9" selected="selected">借用</option>
  467. <option value="10" selected="selected">物料调拨</option>
  468. <option value="11" selected="selected">两步调出</option>
  469. </select>
  470. </div>
  471. </td>
  472. <td style="text-align:right;"><label class="lglabel" for="txt_POCode">&nbsp;&nbsp;&nbsp;单据号</label>:</td>
  473. <td>
  474. <div class="input-group">
  475. <input id="txt_POCode" type="text" class="form-control" style="width: 150px;">
  476. </div>
  477. </td>
  478. <td style="text-align:right;"><label class="lglabel" for="txt_InvCode">&nbsp;&nbsp;&nbsp;料品编码</label>:</td>
  479. <td>
  480. <div class="input-group">
  481. <input id="txt_InvCode" type="text" class="form-control" style="width: 150px;">
  482. </div>
  483. </td>
  484. <td>
  485. <span class="input-group-btn">
  486. <button id="btn_search" type="button" class="btn btn-primary"><i class="fa fa-search"></i></button>
  487. </span>
  488. </td>
  489. </tr>
  490. </table>
  491. </div>
  492. </div>
  493. <div class="gridPanel" id="gridPanel">
  494. <span><strong>详细信息</strong></span>
  495. <table id="gridList"></table>
  496. </div>
  497. <div class="gridPanel" id="gridPanel2">
  498. <span><strong>合并信息</strong></span>
  499. <table id="gridList2"></table>
  500. </div>