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.

427 lines
19 KiB

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