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.

444 lines
21 KiB

3 weeks ago
  1. 
  2. @{
  3. ViewBag.Title = "Index";
  4. Layout = "~/Views/Shared/_Form.cshtml";
  5. }
  6. @*<link href="~/Content/js/select2/select2.min.css" rel="stylesheet" />
  7. <script src="~/Content/js/select2/select2.min.js"></script>*@
  8. <link href="~/Content/css/CommonReport/CommonReport.css" rel="stylesheet" />
  9. <script src="~/Content/js/CommonReport/CommonReport.js"></script>
  10. <link href="~/Content/css/bootstrap/bootstrap-select.css" rel="stylesheet" />
  11. <script src="~/Content/js/bootstrap/bootstrap-select.min.js"></script>
  12. <style>
  13. .form {
  14. margin: 25px 15px;
  15. }
  16. </style>
  17. <script>
  18. var subgridCang = 'gridList';
  19. var subgridQu = '';
  20. var subgridPai = '';
  21. var subgridHuo = '';
  22. var subgridCeng = '';
  23. var subgridGe = '';
  24. //var subgrid_table_id = '';
  25. var WorkPoints = '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  26. var User = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  27. var Times = new Date();
  28. var Time = formatDate("YYYY-mm-dd HH:MM:SS", Times);
  29. $(function () {
  30. $("#minPackQty").keyup(function () {
  31. $(this).val($(this).val().replace(/[^0-9.]/g, ''));
  32. }).bind("paste", function () { //CTR+V事件处理
  33. $(this).val($(this).val().replace(/[^0-9.]/g, ''));
  34. }).css("ime-mode", "disabled"); //CSS设置输入法不可用
  35. $("#thisCreateQty").keyup(function () {
  36. $(this).val($(this).val().replace(/[^0-9.]/g, ''));
  37. }).bind("paste", function () { //CTR+V事件处理
  38. $(this).val($(this).val().replace(/[^0-9.]/g, ''));
  39. }).css("ime-mode", "disabled"); //CSS设置输入法不可用
  40. $("#cretePageCount").keyup(function () {
  41. $(this).val($(this).val().replace(/[^0-9.]/g, ''));
  42. }).bind("paste", function () { //CTR+V事件处理
  43. $(this).val($(this).val().replace(/[^0-9.]/g, ''));
  44. }).css("ime-mode", "disabled"); //CSS设置输入法不可用
  45. gridList();
  46. $("#txtMUSER").val(User);
  47. $("#txtMTIME").val(Time);
  48. $("#txtMUSER").attr("disabled", "disabled");
  49. $("#txtMTIME").attr("disabled", "disabled");
  50. //InitControl();
  51. $('#sel_QU').selectpicker({ 'deselectAllText': '不选', 'selectAllText': '全选' });
  52. var RolesList = $("#sel_QU").val(); var Roles = "";
  53. if (RolesList != null && RolesList.length > 0) {
  54. for (var i = 0; i < RolesList.length; i++) {
  55. if (Roles == "") {
  56. Roles += RolesList[i];
  57. }
  58. else {
  59. Roles += "," + RolesList[i];
  60. }
  61. }
  62. }
  63. });
  64. function formatDate(fomatType, date) {
  65. let ret;
  66. let valueDate = date;
  67. if (!date) valueDate = new Date()
  68. let opt = {
  69. "Y+": valueDate.getFullYear().toString(), // 年
  70. "m+": (valueDate.getMonth() + 1).toString(), // 月
  71. "d+": valueDate.getDate().toString(), // 日
  72. "H+": valueDate.getHours().toString(), // 时
  73. "M+": valueDate.getMinutes().toString(), // 分
  74. "S+": valueDate.getSeconds().toString() // 秒
  75. };
  76. for (let k in opt) {
  77. ret = new RegExp("(" + k + ")").exec(fomatType);
  78. if (ret) {
  79. fomatType = fomatType.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
  80. };
  81. };
  82. return fomatType;
  83. }
  84. //仓库
  85. function gridList() {
  86. debugger;
  87. var $gridList = $("#gridList");
  88. var queryJson = {
  89. StartDate: $("#txt_StartDate").val(),
  90. EndDate: $("#txt_EndDate").val(),
  91. }
  92. $gridList.dataGrid({
  93. url: "/PNWMS/Blitem/GetGridJsonWarehouse" + "?" + Math.random(),
  94. height: $(window).height() - 128,
  95. width: $(window).width() - 128,
  96. postData: { queryJson: JSON.stringify(queryJson), WorkPoint: JSON.stringify(WorkPoints) },
  97. colModel: [
  98. { label: '主键', name: 'Id', hidden: true, key: true },
  99. { label: "ID", name: "ID", hidden: true },
  100. { label: '层级', name: 'SelectLevel', hidden: true },
  101. { label: '仓库号', name: 'WarehouseCode', width: 120, align: 'left' },
  102. { label: '仓库名', name: 'WarehouseName', width: 120, align: 'left' },
  103. ],
  104. pager: "#gridPager",
  105. sortname: 'WarehouseCode ',
  106. sortorder: "desc",
  107. viewrecords: true,
  108. multiselect: true,
  109. subGrid: true,//开启子表格支持
  110. //子表格的id;当子表格展开的时候,在主表格中会创建一个div元素用来容纳子表格,subgrid_id就是这个div的id
  111. subGridRowExpanded: function (subgrid_id, row_id) {//子表格容器的id和需要展开子表格的行id
  112. bindSubGrid(subgrid_id, row_id);
  113. }, onCellSelect: function (rowid, index, contents, event) {
  114. // onCell();//是一个控制按钮显示隐藏的方法
  115. }
  116. });
  117. $("#btn_search").click(function () {
  118. var queryJson = {
  119. StartDate: $("#txt_StartDate").val(),
  120. EndDate: $("#txt_EndDate").val(),
  121. }
  122. $gridList.jqGrid('setGridParam', {
  123. postData: { PPRCode: $("#PPRCode").val(), queryJson: JSON.stringify(queryJson) }
  124. }).trigger('reloadGrid');
  125. });
  126. }
  127. //区
  128. function bindSubGrid(subgrid_id, collectLineId) {
  129. debugger;
  130. var ID = $("#gridList").jqGrid('getRowData', collectLineId).ID;
  131. subgridQu = subgrid_id + "_t";//最终子表格的div的id是加了"_t"的 subgrid_table_id是全局变量:var subgrid_table_id;
  132. $("#" + subgrid_id).html("<table id='" + subgridQu + "' class='scroll'></table>");//这里是添加子表格div,id为subgrid_table_id
  133. $("#" + subgridQu).jqGrid(
  134. {
  135. url: "/PNWMS/Blitem/GetSubGridJsonRegion?ID=" + ID + "&" + Math.random(),
  136. datatype: "json",
  137. height: "auto",
  138. colModel: [
  139. { label: '主键', name: 'Id', hidden: true, key: true },
  140. //{ label: "ID", name: "ID", hidden: true },
  141. { label: '仓库', name: 'WHID',hidden: true},
  142. { label: '层级', name: 'SelectLevel', width: 80, align: 'left' },
  143. { label: '仓库编码', name: 'Region', width: 80, align: 'left' },
  144. { label: '区', name: 'Row', width: 80, align: 'left' },
  145. ],
  146. rowNum: 10000,
  147. multiselect: true,
  148. viewrecord: true,
  149. subGrid: true,//开启子表格支持
  150. //子表格的id;当子表格展开的时候,在主表格中会创建一个div元素用来容纳子表格,subgrid_id就是这个div的id
  151. subGridRowExpanded: function (subgrid_id, row_id) {//子表格容器的id和需要展开子表格的行id
  152. bindSubGrid2(subgrid_id, row_id);
  153. },
  154. });
  155. }
  156. //排
  157. function bindSubGrid2(subgrid_id, collectLineId) {
  158. debugger;
  159. let index = subgrid_id.lastIndexOf("t");
  160. let listId = subgrid_id.slice(0, index + 1);
  161. // listId = subgrid_id.substring(0, 12);
  162. var WHID = $("#" + listId).jqGrid('getRowData', collectLineId).WHID;
  163. var Region = $("#" + listId).jqGrid('getRowData', collectLineId).Region;
  164. subgridPai = subgrid_id + "_t";
  165. $("#" + subgrid_id).html("<table id='" + subgridPai + "' class='scroll'></table>");
  166. $("#" + subgridPai).jqGrid(
  167. {
  168. url: "/PNWMS/Blitem/GetSubGridJsonRow?WHID=" + WHID + "&Region=" + Region + "&" + Math.random(),
  169. datatype: "json",
  170. height: "auto",
  171. colModel: [
  172. { label: '主键', name: 'Id', hidden: true },
  173. { label: '层级', name: 'SelectLevel', width: 80, align: 'left' },
  174. { label: '仓库ID', name: 'WHID', hidden: true },
  175. { label: '仓库编码', name: 'Region', width: 80, align: 'left' },
  176. { label: '区', name: 'Row', width: 80, align: 'left' },
  177. { label: '货架', name: 'GoodsShelf', width: 80, align: 'left' },
  178. ],
  179. rowNum: 10000,
  180. multiselect: true,
  181. viewrecord: true,
  182. subGrid: true,//开启子表格支持
  183. //子表格的id;当子表格展开的时候,在主表格中会创建一个div元素用来容纳子表格,subgrid_id就是这个div的id
  184. subGridRowExpanded: function (subgrid_id, row_id) {//子表格容器的id和需要展开子表格的行id
  185. bindSubGrid3(subgrid_id, row_id);
  186. },
  187. });
  188. }
  189. //货架
  190. function bindSubGrid3(subgrid_id, collectLineId) {
  191. debugger;
  192. let index = subgrid_id.lastIndexOf("t");
  193. let listId = subgrid_id.slice(0, index + 1);
  194. // listId = subgrid_id.substring(0, 16);
  195. var WHID = $("#" + listId).jqGrid('getRowData', collectLineId).WHID;
  196. var Region = $("#" + listId).jqGrid('getRowData', collectLineId).Region;
  197. var Row = $("#" + listId).jqGrid('getRowData', collectLineId).Row;
  198. subgridHuo = subgrid_id + "_t";
  199. $("#" + subgrid_id).html("<table id='" + subgridHuo + "' class='scroll'></table>");
  200. $("#" + subgridHuo).jqGrid(
  201. {
  202. url: "/PNWMS/Blitem/GetSubGridJsonGoodsShelf?WHID=" + WHID + "&Region=" + Region + "&Row=" + Row + "&" + Math.random(),
  203. datatype: "json",
  204. height: "auto",
  205. colModel: [
  206. { label: '主键', name: 'Id', hidden: true },
  207. { label: '层级', name: 'SelectLevel', width: 80, align: 'left' },
  208. { label: '仓库ID', name: 'WHID', hidden: true },
  209. { label: '仓库编码', name: 'Region', width: 80, align: 'left' },
  210. { label: '区', name: 'Row', width: 80, align: 'left' },
  211. { label: '货架', name: 'GoodsShelf', width: 80, align: 'left' },
  212. { label: '层', name: 'Tier', width: 80, align: 'left' },
  213. ],
  214. rowNum: 10000,
  215. multiselect: true,
  216. viewrecord: true,
  217. subGrid: true,//开启子表格支持
  218. //子表格的id;当子表格展开的时候,在主表格中会创建一个div元素用来容纳子表格,subgrid_id就是这个div的id
  219. //subGridRowExpanded: function (subgrid_id, row_id) {//子表格容器的id和需要展开子表格的行id
  220. // bindSubGrid4(subgrid_id, row_id);
  221. //},
  222. });
  223. }
  224. //层
  225. function bindSubGrid4(subgrid_id, collectLineId) {
  226. debugger;
  227. let index = subgrid_id.lastIndexOf("t");
  228. let listId = subgrid_id.slice(0, index + 1);
  229. // listId = subgrid_id.substring(0, 20);
  230. var WHID = $("#" + listId).jqGrid('getRowData', collectLineId).WHID;
  231. var Region = $("#" + listId).jqGrid('getRowData', collectLineId).Region;
  232. var Row = $("#" + listId).jqGrid('getRowData', collectLineId).Row;
  233. var GoodsShelf = $("#" + listId).jqGrid('getRowData', collectLineId).GoodsShelf;
  234. subgridCeng = subgrid_id + "_t";
  235. $("#" + subgrid_id).html("<table id='" + subgridCeng + "' class='scroll'></table>");
  236. $("#" + subgridCeng).jqGrid(
  237. {
  238. url: "/PNWMS/Blitem/GetSubGridJsonTier?WHID=" + WHID + "&Region=" + Region + "&Row=" + Row + "&GoodsShelf=" + GoodsShelf + "&" + Math.random(),
  239. datatype: "json",
  240. height: "auto",
  241. colModel: [
  242. { label: '主键', name: 'Id', hidden: true },
  243. { label: '层级', name: 'SelectLevel', width: 80, align: 'left' },
  244. { label: '仓库ID', name: 'WHID', hidden: true },
  245. { label: '区', name: 'Region', width: 80, align: 'left' },
  246. { label: '排', name: 'Row', width: 80, align: 'left' },
  247. { label: '货架', name: 'GoodsShelf', width: 80, align: 'left' },
  248. { label: '层', name: 'Tier', width: 80, align: 'left' },
  249. ],
  250. rowNum: 10000,
  251. multiselect: true,
  252. viewrecord: true,
  253. subGrid: true,//开启子表格支持
  254. //子表格的id;当子表格展开的时候,在主表格中会创建一个div元素用来容纳子表格,subgrid_id就是这个div的id
  255. subGridRowExpanded: function (subgrid_id, row_id) {//子表格容器的id和需要展开子表格的行id
  256. bindSubGrid5(subgrid_id, row_id);
  257. },
  258. });
  259. }
  260. //格
  261. function bindSubGrid5(subgrid_id, collectLineId) {
  262. debugger;
  263. let index = subgrid_id.lastIndexOf("t");
  264. let listId = subgrid_id.slice(0, index + 1);
  265. // listId = subgrid_id.substring(0, 24);
  266. var WHID = $("#" + listId).jqGrid('getRowData', collectLineId).WHID;
  267. var Region = $("#" + listId).jqGrid('getRowData', collectLineId).Region;
  268. var Row = $("#" + listId).jqGrid('getRowData', collectLineId).Row;
  269. var GoodsShelf = $("#" + listId).jqGrid('getRowData', collectLineId).GoodsShelf;
  270. var Tier = $("#" + listId).jqGrid('getRowData', collectLineId).Tier;
  271. subgridGe = subgrid_id + "_t";
  272. $("#" + subgrid_id).html("<table id='" + subgridGe + "' class='scroll'></table>");
  273. $("#" + subgridGe).jqGrid(
  274. {
  275. url: "/PNWMS/Blitem/GetSubGridJsonGrid?WHID=" + WHID + "&Region=" + Region + "&Row=" + Row + "&GoodsShelf=" + GoodsShelf + "&Tier=" + Tier + "&" + Math.random(),
  276. datatype: "json",
  277. height: "auto",
  278. colModel: [
  279. { label: '主键', name: 'Id', hidden: true },
  280. { label: '层级', name: 'SelectLevel', width: 80, align: 'left' },
  281. { label: '仓库ID', name: 'WHID', hidden: true },
  282. { label: '区', name: 'Region', width: 80, align: 'left' },
  283. { label: '排', name: 'Row', width: 80, align: 'left' },
  284. { label: '货架', name: 'GoodsShelf', width: 80, align: 'left' },
  285. { label: '层', name: 'Tier', width: 80, align: 'left' },
  286. { label: '格', name: 'Grid', width: 80, align: 'left' },
  287. ],
  288. rowNum: 10000,
  289. multiselect: true,
  290. viewrecord: true,
  291. });
  292. }
  293. function submitForm() {
  294. debugger;
  295. var objList = '';
  296. var JqID = '';
  297. var Num = 0;
  298. var Details = [];
  299. var str = [];
  300. var objCang = $("#" + subgridCang).jqGrid('getGridParam', 'selarrrow');
  301. var objQu = $("#" + subgridQu).jqGrid('getGridParam', 'selarrrow');
  302. var objPai = $("#" + subgridPai).jqGrid('getGridParam', 'selarrrow');
  303. var objHuo = $("#" + subgridHuo).jqGrid('getGridParam', 'selarrrow');
  304. var objCeng = $("#" + subgridCeng).jqGrid('getGridParam', 'selarrrow');
  305. var objGe = $("#" + subgridGe).jqGrid('getGridParam', 'selarrrow');
  306. objCang = objCang == undefined ? objCang = [] : objCang;
  307. objQu = objQu == undefined ? objQu = [] : objQu;
  308. objPai = objPai == undefined ? objPai = [] : objPai;
  309. objHuo = objHuo == undefined ? objHuo = [] : objHuo;
  310. objCeng = objCeng == undefined ? objCeng = [] : objCeng;
  311. objGe = objGe == undefined ? objGe = [] : objGe;
  312. if (objCang == '' && objQu == '' && objPai == '' && objHuo == '' && objCeng == '' && objGe == '') {
  313. $.modalAlertNew("WMS00104");
  314. return;
  315. }
  316. if (objCang.length > 0) {
  317. objList = objCang;
  318. JqID = subgridCang;
  319. Num + 1;
  320. } else if ( objQu.length > 0) {
  321. objList = objQu;
  322. JqID = subgridQu;
  323. Num + 1;
  324. } else if (objPai.length > 0) {
  325. objList = objPai;
  326. JqID = subgridPai;
  327. Num + 1;
  328. } else if ( objHuo.length > 0) {
  329. objList = objHuo;
  330. JqID = subgridHuo;
  331. Num + 1;
  332. } else if ( objCeng.length > 0) {
  333. objList = objCeng;
  334. JqID = subgridCeng;
  335. Num + 1;
  336. } else if ( objGe.length > 0) {
  337. objList = objGe;
  338. JqID = subgridGe;
  339. Num + 1;
  340. }
  341. if (Num>1) {
  342. $.modalAlertNew("WMS00105");
  343. return;
  344. }
  345. for (var i = 0; i < objList.length; i++) {
  346. var rowId = objList[i];
  347. var rowData = $("#" + JqID).jqGrid('getRowData', rowId);
  348. var WHCode = '';
  349. if (objCang.length > 0 && objQu.length <= 0 && objPai.length <= 0 && objHuo.length <= 0 && objCeng.length <= 0 && objGe.length <= 0) {
  350. WHCode = rowData.WarehouseCode;
  351. }
  352. var obj = {
  353. SelectLevel: rowData.SelectLevel,
  354. InvCode: "",
  355. WHCode: WHCode,
  356. };
  357. Details.push(obj);
  358. }
  359. var Header = {
  360. User: User,
  361. MTIME: Time,
  362. WorkPoint: WorkPoints,
  363. StartDate: $("#txt_StartDate").val(),
  364. EndDate: $("#txt_EndDate").val(),
  365. Detail: Details,
  366. }
  367. var Parameter = [];
  368. Parameter.push(Header);
  369. $.submitForm({
  370. url: "/PNWMS/Blitem/AddICSCheck?" + Math.random(),
  371. param: { Parameter: JSON.stringify(Parameter) },
  372. success: function () {
  373. $.currentWindow().$("#gridList").trigger("reloadGrid");
  374. }
  375. })
  376. }
  377. </script>
  378. <form id="form1">
  379. <div class="search" style="padding-top: 2px; margin-right: 20px;">
  380. @*<table class="form">*@
  381. <table class="form">
  382. <tr>
  383. <th class="formTitle">维护人:</th>
  384. <td class="formValue">
  385. <input id="txtMUSER" name="txtMUSER" type="text" class="form-control" style="width: 160px" />
  386. </td>
  387. <th class="formTitle">异动开始时间:</th>
  388. <td class="formValue">
  389. <input type="text" name="txt_StartDate" id="txt_StartDate" class="form-control" style="" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd' })" placeholder="开始日期" />
  390. </td>
  391. <th class="formTitle">异动结束时间:</th>
  392. <td class="formValue">
  393. <input type="text" name="txt_EndDate" id="txt_EndDate" class="form-control" style="" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd', minDate: txt_StartDate.value })" placeholder="结束日期" />
  394. </td>
  395. <th class="formTitle">维护日期:</th>
  396. <td class="formValue">
  397. <input id="txtMTIME" name="txtMTIME" type="text" class="form-control " style="width: 160px" />
  398. </td>
  399. <td>
  400. <span class="input-group-btn" style="font-size: 12px" >
  401. <button id="btn_search" type="button" class="btn btn-primary" onclick="Selchange()"><i class="fa fa-search"></i></button>
  402. </span>
  403. </td>
  404. </tr>
  405. </table>
  406. </div>
  407. </form>
  408. <div class="gridPanel">
  409. <table id="gridList"></table>
  410. <div id="gridPager"></div>
  411. </div>