爱思开
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.

559 lines
24 KiB

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