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.

428 lines
19 KiB

3 weeks ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  6. <script>
  7. debugger;
  8. var myDate = new Date;
  9. var year = myDate.getFullYear(); //获取当前年
  10. var mon = myDate.getMonth() + 1 < 10 ? "0" + (myDate.getMonth() + 1) : myDate.getMonth() + 1; //获取当前月
  11. var date = myDate.getDate() + 1 < 10 ? "0" + myDate.getDate() : myDate.getDate(); //获取当前日
  12. var MtimeFrom = year + "-" + mon + "-" + date;
  13. var MtimeArrive = year + "-" + mon + "-" + date;
  14. var _Clos = new Array();
  15. var _Clos2 = new Array();
  16. var _Clos1 = new Array();
  17. var flag = '1';
  18. var mark = '';
  19. var Arguments = '';
  20. $(function () {
  21. $("#TimeFrom").val(MtimeFrom);
  22. $("#TimeArrive").val(MtimeArrive);
  23. SetCols();
  24. GetPickingListType();
  25. gridList();
  26. });
  27. function Selchange() {
  28. document.getElementById("gridPanel").innerHTML = ' <span><strong>详细信息</strong></span> <table id="gridList"></table> ';//重置grid
  29. gridList();
  30. }
  31. function SetCols() {
  32. $.ajax({
  33. url: "/Print/SelectColumnName?" + Math.random(),
  34. dataType: "json",
  35. async: false,
  36. success: function (data) {
  37. var cols = new Array();
  38. var collast = { label: "主键", name: "ID", hidden: true, key: true };
  39. cols.push(collast);
  40. var collast = { label: '单据号', name: 'Code', width: 120, align: 'left' };
  41. cols.push(collast);
  42. var collast = { label: '操作日期', name: 'MTIME', width: 150, align: 'left' };
  43. cols.push(collast);
  44. var collast = { label: '维护人', name: 'MUSER', width: 80, align: 'left' };
  45. cols.push(collast);
  46. var collast = { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' };
  47. cols.push(collast);
  48. var collast = { label: '合并拣料ID', name: 'IsNew', width: 80, align: 'left' };
  49. cols.push(collast);
  50. var collast = { label: '是否占料', name: 'IsOccupy', width: 80, align: 'left' };
  51. cols.push(collast);
  52. var cols2 = new Array();
  53. var collast2 = { label: '合并拣料ID', name: 'MergeID', width: 120, align: 'left' };
  54. cols2.push(collast2);
  55. var collast2 = { label: '单据号', name: 'Code', width: 120, align: 'left' };
  56. cols2.push(collast2);
  57. var collast2 = { label: '单据行号', name: 'Sequence', width: 100, align: 'left' };
  58. cols2.push(collast2);
  59. var collast2 = { label: '条码', name: 'LotNO', width: 200, align: 'left' };
  60. cols2.push(collast2);
  61. var collast2 = { label: '料品编码', name: 'InvCode', width: 150, align: 'left' };
  62. cols2.push(collast2);
  63. var collast2 = { label: '料品名称', name: 'InvName', width: 150, align: 'left' };
  64. cols2.push(collast2);
  65. var collast2 = { label: '料品描述', name: 'InvDesc', width: 150, align: 'left' };
  66. cols2.push(collast2);
  67. var collast2 = { label: '规格型号', name: 'InvStd', width: 150, align: 'left' };
  68. cols2.push(collast2);
  69. var collast2 = { label: '料品单位', name: 'InvSInvUnittd', width: 150, align: 'left' };
  70. cols2.push(collast2);
  71. var collast2 = { label: '应发数量', name: 'iQuantity', width: 100, align: 'left' };
  72. cols2.push(collast2);
  73. //var collast2 = { label: '库存数量', name: 'QTY', width: 100, align: 'left' };
  74. //cols2.push(collast2);
  75. var collast2 = { label: '单位', name: 'InvUnit', width: 100, align: 'left' };
  76. cols2.push(collast2);
  77. var collast2 = { label: '维护人', name: 'MUSER', width: 80, align: 'left' };
  78. cols2.push(collast2);
  79. var collast2 = { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' };
  80. cols2.push(collast2);
  81. var collast2 = { label: '仓库编码', name: 'WHCode', width: 80, align: 'left' };
  82. cols2.push(collast2);
  83. var collast2 = { label: '仓库名称', name: 'WarehouseName', width: 80, align: 'left' };
  84. cols2.push(collast2);
  85. var collast2 = { label: '操作日期', name: 'MTIME', width: 150, align: 'left' };
  86. cols2.push(collast2);
  87. //var collast2 = { label: '调出仓库名称', name: 'FromWHName', width: 150, align: 'left', hidden: true };
  88. //cols2.push(collast2);
  89. //var collast2 = { label: '调入仓库名称', name: 'ToWHName', width: 150, align: 'left', hidden: true };
  90. //cols2.push(collast2);
  91. if (data != null && data.length > 0) {
  92. DateList = data;
  93. for (var i = 0; i < data.length; i++) {
  94. var ColName = data[i].ColName;
  95. var ColCode = data[i].ColCode;
  96. var obj = new Array();
  97. obj = {
  98. label: ColName,
  99. name: ColCode,
  100. width: 80,
  101. align: "left"
  102. }
  103. cols.push(obj);
  104. //cols1.push(obj);
  105. cols2.push(obj);
  106. }
  107. }
  108. _Clos = cols;
  109. _Clos2 = cols2;
  110. }
  111. });
  112. }
  113. function gridList() {
  114. var Type = $("#selShow").val();
  115. var $gridList = $("#gridList");
  116. var queryJson = {
  117. POCode: $("#txt_POCode").val(),
  118. InvCode: $("#txt_InvCode").val(),
  119. TimeFrom: $("#TimeFrom").val(),
  120. TimeArrive: $("#TimeArrive").val(),
  121. }
  122. $gridList.dataGrid({
  123. url: "/PNWMS/PickMaterial/GetGridJsonSeizeM? " + Math.random(),
  124. postData: { queryJson: JSON.stringify(queryJson), Type: Type },
  125. height: $(window).height() - 150,
  126. width: $(window).width() - 500,
  127. colModel: _Clos,
  128. //colModel: [
  129. // { label: "主键", name: "ID", hidden: true, key: true },
  130. // { label: '单据号', name: 'Code', width: 120, align: 'left' },
  131. // { label: '操作日期', name: 'MTIME', width: 150, align: 'left' },
  132. // { label: '维护人', name: 'MUSER', width: 80, align: 'left' },
  133. // { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' },
  134. // { label: '是否合并拣料', name: 'IsNew', width: 80, align: 'left' },
  135. //],
  136. shrinkToFit: false,//宽度自适应
  137. autowidth: true,
  138. gridComplete: function () {
  139. },
  140. rowNum: 10000,
  141. autoScroll: true,
  142. sortname: 'Code',
  143. sortorder: "desc",
  144. viewrecords: true,
  145. multiselect: true,
  146. subGrid: true, // (1)开启子表格支持
  147. subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数
  148. $("#gridList").jqGrid("setSelection", rowid, false);
  149. bindSubGrid(subgrid_id, rowid)
  150. },
  151. gridComplete: function () {
  152. debugger;
  153. var strIds = $("#gridList").jqGrid("getDataIDs");
  154. }
  155. });
  156. }
  157. function bindSubGrid(subgrid_id, rowid) {
  158. var Type = $("#selShow").val();
  159. $("#gridList").jqGrid("setSelection", rowid, false);
  160. var subgrid_table_id;
  161. subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id
  162. var subgrid_pager_id;
  163. subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id
  164. // (5)动态添加子报表的table和pager
  165. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>");
  166. var Code = $("#gridList").jqGrid('getRowData', rowid).Code;
  167. //var Sequence = $("#gridList").jqGrid('getRowData', rowid).Sequence;
  168. // (6)创建jqGrid对象
  169. $("#" + subgrid_table_id).dataGrid({
  170. cellEdit: true,
  171. url: "/PNWMS/PickMaterial/GetSubGridJsonSeizeM?Code=" + Code + "&Type=" + Type + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数
  172. //colModel: [
  173. // { label: '单据号', name: 'Code', width: 120, align: 'left' },
  174. // { label: '单据行号', name: 'Sequence', width: 100, align: 'left' },
  175. // { label: '操作日期', name: 'MTIME', width: 150, align: 'left' },
  176. // { label: '是否合并拣料', name: 'IsNew', width: 80, align: 'left' },
  177. // { label: '料品编码', name: 'InvCode', width: 100, align: 'left' },
  178. // { label: '料品名称', name: 'InvName', width: 100, align: 'left' },
  179. // { label: '料品描述', name: 'InvDesc', width: 100, align: 'left' },
  180. // { label: '规格型号', name: 'InvStd', width: 100, align: 'left' },
  181. // { label: '数量', name: 'Quantity', width: 100, align: 'left' },
  182. // { label: '已发数量', name: 'IssueQuantity', width: 100, align: 'left' },
  183. // { label: '单位', name: 'InvUnit', width: 100, align: 'left' },
  184. // { label: '维护人', name: 'MUSER', width: 80, align: 'left' },
  185. // { label: '维护人名称', name: 'MUSERName', width: 80, align: 'left' },
  186. // { label: '仓库编码', name: 'WHCode', width: 80, align: 'left' },
  187. // { label: '仓库名称', name: 'WarehouseName', width: 80, align: 'left' },
  188. //],
  189. colModel: _Clos2,
  190. //colModel: ColModelSub,
  191. shrinkToFit: true,//宽度自适应
  192. //multiselect: true,
  193. prmNames: { search: "search" },
  194. viewrecords: true,
  195. height: "100%",
  196. rowNum: 20,
  197. pager: subgrid_pager_id,
  198. });
  199. }
  200. function btnPrint() {
  201. debugger;
  202. var mold = '';
  203. if (mark == '') {
  204. $.modalAlertNew("WMS00093");
  205. return;
  206. }
  207. if (mark == '合并拣料') {
  208. var objArr = '';
  209. var arr = [];
  210. var obj_Item1 = $("#gridList2");
  211. var rowIds_Item1 = obj_Item1.getDataIDs();
  212. var arrayData_Item1 = new Array();
  213. var Enables = '';
  214. if (rowIds_Item1.length > 0) {
  215. debugger;
  216. for (var i = 0; i < rowIds_Item1.length; i++) {
  217. var RowData_Item1 = obj_Item1.getRowData(rowIds_Item1[0]);
  218. objArr += "'" + RowData_Item1.MergeID + "',";
  219. objArr = objArr.slice(0, objArr.length - 1);
  220. objArr = "" + objArr + "|";
  221. arr.push(objArr);
  222. }
  223. Arguments = arr;
  224. mold = 'HBJL00001';
  225. }
  226. }
  227. if (mark == '拣料') {
  228. var objArr = '';
  229. var arr = [];
  230. var obj_Item1 = $("#gridList2");
  231. var rowIds_Item1 = obj_Item1.getDataIDs();
  232. var arrayData_Item1 = new Array();
  233. var Enables = '';
  234. if (rowIds_Item1.length > 0) {
  235. debugger;
  236. for (var i = 0; i < rowIds_Item1.length; i++) {
  237. var RowData_Item1 = obj_Item1.getRowData(rowIds_Item1[0]);
  238. objArr += "'" + RowData_Item1.Code + "',";
  239. objArr = objArr.slice(0, objArr.length - 1);
  240. objArr = "" + objArr + "|";
  241. arr.push(objArr);
  242. }
  243. Arguments = arr;
  244. mold = 'JL00001';
  245. }
  246. }
  247. $.modalOpen({
  248. id: "PrintLot",
  249. title: "打印",
  250. url: "/WMS/Print/PrintView?Arguments=" + encodeURI(encodeURI(Arguments)) + "&mold=" + mold + "&" + Math.random(),
  251. width: "550px",
  252. height: "1000px",
  253. callBack: function (iframeId) {
  254. top.frames[iframeId].submitForm();
  255. }
  256. });
  257. }
  258. function GetPickingListType() {
  259. $.ajax({
  260. url: "/PNWMS/PickMaterial/GetPickingListType",
  261. dataType: "json",
  262. async: false,
  263. success: function (data) {
  264. if (data != false && data != null && data.length > 0) {
  265. $("#selShow").find("option").remove();
  266. //$("#selShow").append("<option value=''>==请选择站点==</option>");
  267. for (var i = 0; i < data.length; i++) {
  268. $("#selShow").append("<option value='" + data[i].Code + "'>" + data[i].Name + "</option>");
  269. }
  270. $("#selShow").val([data[0].Code]).trigger("change");
  271. }
  272. }
  273. });
  274. }
  275. function btnBackMaterial() {
  276. debugger;
  277. var objArr = '';
  278. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  279. for (var i = 0; i < objList.length; i++) {
  280. var rowId = objList[i];
  281. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  282. objArr += "'" + rowData.Code + "',";
  283. }
  284. if (objArr == '') {
  285. $.modalAlert("请选择单据后取消占料!", "warning");
  286. return;
  287. }
  288. debugger;
  289. $.deleteForm({
  290. url: "/PNWMS/PickMaterial/DelPickLog" + "?" + Math.random(),
  291. param: { objCode: JSON.stringify(objArr) },
  292. success: function () {
  293. $.currentWindow().$("#gridList").trigger("reloadGrid");
  294. }
  295. })
  296. }
  297. function fullscreen() {
  298. var docElm = document.documentElement;
  299. if (docElm.requestFullscreen) {
  300. docElm.requestFullscreen();
  301. } else if (docElm.mozRequestFullScreen) {
  302. docElm.mozRequestFullScreen();
  303. } else if (docElm.webkitRequestFullScreen) {
  304. docElm.webkitRequestFullScreen();
  305. } else if (docElm.msRequestFullscreen) {
  306. docElm.msRequestFullscreen();
  307. }
  308. $(window).bind('resize', function () {
  309. $("#gridList").setGridWidth($(window).width());
  310. }).trigger('resize');
  311. $(window).bind('resize', function () {
  312. $("#gridList").setGridHeight($(window).height());
  313. }).trigger('resize');
  314. }
  315. </script>
  316. <div class="topPanel" style="height:60px;">
  317. <div class="toolbar">
  318. <div class="btn-group">
  319. <a id="NF-BackMaterial" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnBackMaterial()"><i class="fa fa-pencil-square-o"></i>回撤拣配保存</a>
  320. <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>
  321. <a class="btn btn-primary" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a>
  322. </div>
  323. <script>$('.toolbar').authorizeButton()</script>
  324. </div>
  325. <div class="search">
  326. <table>
  327. <tr>
  328. <td>
  329. <label>&nbsp;&nbsp;&nbsp;类型:</label>
  330. </td>
  331. <td>
  332. <div class="input-group">
  333. <select id="selShow" name="F_Target" class="form-control" style="width: 100px;" onchange="Selchange()">
  334. @*<option value="1" selected="selected">工单备料</option>
  335. <option value="2" selected="selected">工单领料</option>
  336. <option value="3" selected="selected">工单材料出库</option>
  337. <option value="4" selected="selected">委外备料</option>
  338. <option value="5" selected="selected">委外领料</option>
  339. <option value="6" selected="selected">委外材料出库</option>
  340. <option value="7" selected="selected">销售发货</option>
  341. <option value="8" selected="selected">其它出库</option>
  342. <option value="9" selected="selected">借用</option>
  343. <option value="10" selected="selected">物料调拨</option>
  344. <option value="11" selected="selected">两步调出</option>*@
  345. </select>
  346. </div>
  347. </td>
  348. <td style="text-align:right;"><label class="lglabel" for="txt_POCode">&nbsp;&nbsp;&nbsp;单据号</label>:</td>
  349. <td>
  350. <div class="input-group">
  351. <input id="txt_POCode" type="text" class="form-control" style="width: 150px;">
  352. </div>
  353. </td>
  354. <td style="text-align:right;"><label class="lglabel" for="txt_InvCode">&nbsp;&nbsp;&nbsp;料品编码</label>:</td>
  355. <td>
  356. <div class="input-group">
  357. <input id="txt_InvCode" type="text" class="form-control" style="width: 150px;">
  358. </div>
  359. </td>
  360. <td style="text-align:right;"><label class="lglabel" for="txt_TimeFrom">&nbsp;&nbsp;&nbsp;日期(从)</label>:</td>
  361. <td>
  362. <div class="input-group">
  363. <input id="TimeFrom" name="Time" type="text" class="form-control required" style="width:85%;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd'})" placeholder="日期(从)" />
  364. </div>
  365. </td>
  366. <td style="text-align:right;"><label class="lglabel" for="txt_TimeArrive">&nbsp;&nbsp;&nbsp;日期(到)</label>:</td>
  367. <td>
  368. <div class="input-group">
  369. <input id="TimeArrive" name="Time" type="text" class="form-control required" style="width:85%;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd' })" placeholder="日期(到)" />
  370. </div>
  371. </td>
  372. <td>
  373. <span class="input-group-btn">
  374. <button id="btn_search" type="button" class="btn btn-primary" onclick="Selchange()"><i class="fa fa-search"></i></button>
  375. </span>
  376. </td>
  377. </tr>
  378. </table>
  379. </div>
  380. </div>
  381. <div class="gridPanel" id="gridPanel">
  382. <span><strong>详细信息</strong></span>
  383. <table id="gridList"></table>
  384. </div>