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.

609 lines
26 KiB

3 weeks ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <style>
  6. .btn-primary {
  7. margin-right: 2px;
  8. }
  9. .topPanel .toolbar {
  10. float: left;
  11. }
  12. </style>
  13. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  14. <script>
  15. var mold = $.request("mold");
  16. var _MenuID = "";//菜单ID
  17. $(document).ready(function () {
  18. $("input.cell").keyup(function (e) {
  19. switch (e.keyCode) {
  20. // up arrow
  21. case 40:
  22. $(this).parent()
  23. .parent()
  24. .next()
  25. .children("td")
  26. .children("input.cell[name="
  27. + $(this).attr("name") + "]")
  28. .focus();
  29. break;
  30. // down arrow
  31. case 38:
  32. $(this).parent()
  33. .parent()
  34. .prev()
  35. .children("td")
  36. .children("input.cell[name="
  37. + $(this).attr("name") + "]")
  38. .focus();
  39. break;
  40. }
  41. });
  42. });
  43. var _Clos = new Array();
  44. var _Closs = new Array();
  45. $(function () {
  46. GetMenuID();
  47. SetCols();
  48. SetColsDetails();
  49. gridList();
  50. })
  51. function SetColsDetails() {
  52. $.ajax({
  53. url: "/Print/SelectColumnName?" + Math.random(),
  54. dataType: "json",
  55. async: false,
  56. success: function (data) {
  57. var cols = new Array();
  58. var collast = { label: "主键", name: "ID", hidden: true, key: true };
  59. cols.push(collast);
  60. //var collast = { label: "销售订单号", name: "SDNCode", width: 150, align: 'left' };
  61. // cols.push(collast);
  62. var collast = { label: 'ID', name: 'ID', hidden: true };
  63. cols.push(collast);
  64. var collast = { label: '退料申请单号', name: 'ApplyNegCode', width: 120, align: 'left' };
  65. cols.push(collast);
  66. var collast = { label: "工单创建人", name: "MOCreater", hidden: true };
  67. cols.push(collast);
  68. var collast = { label: '仓库代码', name: 'WHCode', width: 150, align: 'left' };
  69. cols.push(collast);
  70. var collast = { label: '仓库名称', name: 'WarehouseName', width: 150, align: 'left' };
  71. cols.push(collast);
  72. var collast = {
  73. label: "状态", name: "Status", width: 80, align: "left",
  74. formatter: function (cellvalue) {
  75. if (cellvalue == "1") {
  76. return "开立";
  77. } else if (cellvalue == "2") {
  78. return "审核";
  79. } else if (cellvalue == "3") {
  80. return "关闭";
  81. }
  82. else { return ""; }
  83. }
  84. };
  85. cols.push(collast);
  86. var collast = {
  87. label: "类型", name: "Type", width: 80, align: "left",
  88. formatter: function (cellvalue) {
  89. if (cellvalue == "1") {
  90. return "生产订单备料退料";
  91. } else if (cellvalue == "2") {
  92. return "领料申请单退料";
  93. } else if (cellvalue == "3") {
  94. return "材料出库退料";
  95. }
  96. else { return ""; }
  97. }
  98. };
  99. cols.push(collast);
  100. var collast = { label: '备注', name: 'Memo', width: 200, align: 'left' };
  101. cols.push(collast);
  102. var collast = { label: '创建人', name: 'CreatePerson', width: 150, align: 'left' };
  103. cols.push(collast);
  104. var collast = { label: '创建时间', name: 'CreateDateTime', width: 150, align: 'left' };
  105. cols.push(collast);
  106. var collast = { label: '审核人', name: 'ApproveBy', width: 150, align: 'left' };
  107. cols.push(collast);
  108. var collast = { label: '审核时间', name: 'EATTRIBUTE2', width: 150, align: 'left' };
  109. cols.push(collast);
  110. //if (data != null && data.length > 0) {
  111. // DateList = data;
  112. // for (var i = 0; i < data.length; i++) {
  113. // var ColName = data[i].ColName;
  114. // var ColCode = data[i].ColCode;
  115. // var obj = new Array();
  116. // obj = {
  117. // label: ColName,
  118. // name: ColCode,
  119. // width: 80,
  120. // align: "left"
  121. // }
  122. // cols.push(obj);
  123. // }
  124. //}
  125. $.ajax({
  126. url: "/Print/SelectTableColumnName?" + Math.random(),
  127. dataType: "json",
  128. async: false,
  129. success: function (data) {
  130. if (data != null && data.length > 0) {
  131. DateList = data;
  132. for (var i = 0; i < data.length; i++) {
  133. var TableCode = data[i].TableCode;
  134. if (TableCode == "ICSMOApplyNeg") {
  135. var Code = data[i].Code;
  136. var Name = data[i].Name;
  137. var obj = new Array();
  138. obj = {
  139. label: Name,
  140. name: Code,
  141. width: 80,
  142. align: "left"
  143. }
  144. cols.push(obj);
  145. }
  146. //if (TableCode == "ICSInventory") {
  147. // var Code = data[i].Code;
  148. // var Name = data[i].Name;
  149. // var obj = new Array();
  150. // obj = {
  151. // label: Name,
  152. // name: Code,
  153. // width: 80,
  154. // align: "left"
  155. // }
  156. // cols.push(obj);
  157. // //cols1.push(obj);
  158. //}
  159. }
  160. }
  161. _Closs = cols;
  162. //_Clos1 = cols1;
  163. }
  164. });
  165. _Closs = cols;
  166. }
  167. });
  168. }
  169. function SetCols() {
  170. $.ajax({
  171. url: "/Print/SelectColumnName?" + Math.random(),
  172. dataType: "json",
  173. async: false,
  174. success: function (data) {
  175. var cols = new Array();
  176. var collast = { label: "主键", name: "ID", hidden: true, key: true };
  177. cols.push(collast);
  178. var collast = { label: "退料申请单号", name: "ApplyNegCode", width: 150, align: 'left' };
  179. cols.push(collast);
  180. var collast = { label: "退料申请单行号", name: "Sequence", width: 150, align: 'left' };
  181. cols.push(collast);
  182. var collast = { label: "工单", name: "SourceCode", width: 150, align: 'left' };
  183. cols.push(collast);
  184. var collast = { label: '来源单据表体ID', name: 'SourceDetailID', width: 100, align: 'left' };
  185. cols.push(collast);
  186. var collast = { label: '料品编码', name: 'InvCode', width: 100, align: 'left' };
  187. cols.push(collast);
  188. var collast = { label: '料品名称', name: 'InvName', width: 100, align: 'left' };
  189. cols.push(collast);
  190. var collast = { label: '数量', name: 'Quantity', width: 100, align: 'left' };
  191. cols.push(collast);
  192. var collast = { label: '辅计量数量', name: 'Amount', width: 100, align: 'left' };
  193. cols.push(collast);
  194. var collast = { label: '已退数量', name: 'IssueNegQuantity', width: 100, align: 'left' };
  195. cols.push(collast);
  196. var collast = { label: '操作人名称', name: 'MUSERName', width: 150, align: 'left' };
  197. cols.push(collast);
  198. var collast = { label: '操作时间', name: 'MTIME', width: 150, align: 'left' };
  199. cols.push(collast);
  200. var collast = { label: '自由项唯一标识', name: 'ExtensionID', hidden: true };
  201. cols.push(collast);
  202. if (data != null && data.length > 0) {
  203. DateList = data;
  204. for (var i = 0; i < data.length; i++) {
  205. var ColName = data[i].ColName;
  206. var ColCode = data[i].ColCode;
  207. var obj = new Array();
  208. obj = {
  209. label: ColName,
  210. name: ColCode,
  211. width: 80,
  212. align: "left"
  213. }
  214. cols.push(obj);
  215. }
  216. }
  217. $.ajax({
  218. url: "/Print/SelectTableColumnName?" + Math.random(),
  219. dataType: "json",
  220. async: false,
  221. success: function (data) {
  222. if (data != null && data.length > 0) {
  223. DateList = data;
  224. for (var i = 0; i < data.length; i++) {
  225. var TableCode = data[i].TableCode;
  226. if (TableCode == "ICSMOApplyNegDetail") {
  227. var Code = data[i].Code;
  228. var Name = data[i].Name;
  229. var obj = new Array();
  230. obj = {
  231. label: Name,
  232. name: Code,
  233. width: 80,
  234. align: "left"
  235. }
  236. cols.push(obj);
  237. }
  238. if (TableCode == "ICSInventory") {
  239. var Code = data[i].Code;
  240. var Name = data[i].Name;
  241. var obj = new Array();
  242. obj = {
  243. label: Name,
  244. name: Code,
  245. width: 80,
  246. align: "left"
  247. }
  248. cols.push(obj);
  249. //cols1.push(obj);
  250. }
  251. }
  252. }
  253. _Closs = cols;
  254. //_Clos1 = cols1;
  255. }
  256. });
  257. _Clos = cols;
  258. }
  259. });
  260. }
  261. function gridList() {
  262. var $gridList = $("#gridList");
  263. $gridList.dataGrid({
  264. url: "/JHWMS/MaterialsDeliveredRTM/GetICSMOApplyNeg" + "?MenuID=" + _MenuID + "&" + Math.random(),
  265. height: $(window).height() - 200,
  266. width: $(window).width() - 300,
  267. colModel:_Closs,
  268. //[
  269. // { label: "主键", name: "ID", hidden: true, key: true },
  270. // { label: 'ID', name: 'ID', hidden: true },
  271. // { label: '退料申请单号', name: 'ApplyNegCode', width: 120, align: 'left' },
  272. // { label: '仓库代码', name: 'WHCode', width: 150, align: 'left' },
  273. // { label: '仓库名称', name: 'WarehouseName', width: 150, align: 'left' },
  274. // {
  275. // label: "状态", name: "Status", width: 80, align: "left",
  276. // formatter: function (cellvalue) {
  277. // if (cellvalue == "1") {
  278. // return "开立";
  279. // } else if (cellvalue == "2") {
  280. // return "审核";
  281. // } else if (cellvalue == "3") {
  282. // return "关闭";
  283. // }
  284. // else { return ""; }
  285. // }
  286. // },
  287. // {
  288. // label: "类型", name: "Type", width: 80, align: "left",
  289. // formatter: function (cellvalue) {
  290. // if (cellvalue == "1") {
  291. // return "生产订单备料退料";
  292. // } else if (cellvalue == "2") {
  293. // return "领料申请单退料";
  294. // } else if (cellvalue == "3") {
  295. // return "材料出库退料";
  296. // }
  297. // else { return ""; }
  298. // }
  299. // },
  300. // { label: '备注', name: 'Memo', width: 200, align: 'left' },
  301. // { label: '创建人', name: 'CreatePerson', width: 150, align: 'left' },
  302. // { label: '创建时间', name: 'CreateDateTime', width: 150, align: 'left' },
  303. //],
  304. shrinkToFit: false,//宽度自适应
  305. autoWidth:true,
  306. gridComplete: function () {
  307. },
  308. pager: "#gridPager",
  309. sortorder: "desc",
  310. sortname: 'ApplyNegCode',
  311. viewrecords: true,
  312. multiselect: true,
  313. //beforeSelectRow: function (rowid, e) {
  314. // $("#gridList").jqGrid('resetSelection');
  315. // return (true);
  316. //},
  317. subGrid: true, // (1)开启子表格支持
  318. subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数
  319. debugger;
  320. $("#gridList").jqGrid("setSelection", rowid, false);
  321. bindSubGrid(subgrid_id, rowid)
  322. }
  323. });
  324. }
  325. function bindSubGrid(subgrid_id, rowid) {
  326. debugger;
  327. $("#gridList").jqGrid("setSelection", rowid, false);
  328. var subgrid_table_id;
  329. subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id
  330. var subgrid_pager_id;
  331. subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id
  332. // (5)动态添加子报表的table和pager
  333. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>");
  334. var ApplyNegCode = $("#gridList").jqGrid('getRowData', rowid).ApplyNegCode;
  335. // (6)创建jqGrid对象
  336. $("#" + subgrid_table_id).dataGrid({
  337. cellEdit: true,
  338. url: "/JHWMS/MaterialsDeliveredRTM/GetICSMOApplyNegDetail?ApplyNegCode=" + ApplyNegCode + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数
  339. //colModel: [
  340. // { label: "主键", name: "ID", hidden: true, key: true },
  341. // { label: "退料申请单号", name: "ApplyNegCode", width: 150, align: 'left' },
  342. // { label: "退料申请单行号", name: "Sequence", width: 150, align: 'left' },
  343. // { label: '来源单据表体ID', name: 'SourceDetailID', width: 100, align: 'left' },
  344. // { label: '料品编码', name: 'InvCode', width: 100, align: 'left' },
  345. // { label: '数量', name: 'Quantity', width: 100, align: 'left' },
  346. // { label: '辅计量数量', name: 'Amount', width: 100, align: 'left' },
  347. // { label: '已退数量', name: 'IssueNegQuantity', width: 100, align: 'left' },
  348. // { label: '自由项唯一标识', name: 'ExtensionID', width: 150, align: 'left' },
  349. // { label: '操作人名称', name: 'MUSERName', width: 150, align: 'left' },
  350. // { label: '操作时间', name: 'MTIME', width: 150, align: 'left' },
  351. //],
  352. colModel: _Clos,
  353. sortname: 'MTIME',
  354. shrinkToFit: true,//宽度自适应
  355. //multiselect: true,
  356. prmNames: { search: "search" },
  357. viewrecords: true,
  358. height: "100%",
  359. rowNum: 20,
  360. pager: subgrid_pager_id,
  361. });
  362. }
  363. function btn_Delete() {
  364. var objArr = '';
  365. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  366. for (var i = 0; i < objList.length; i++) {
  367. var rowId = objList[i];
  368. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  369. objArr += "'" + rowData.ApplyNegCode + "',";
  370. }
  371. if (objArr == '') {
  372. $.modalAlertNew("WMS00001");
  373. return;
  374. }
  375. $.deleteForm({
  376. url: "/JHWMS/MaterialsDeliveredRTM/DeleteICSMOApplyNeg" + "?" + Math.random(),
  377. param: { keyValue: JSON.stringify(objArr) },
  378. success: function () {
  379. $.currentWindow().$("#gridList").trigger("reloadGrid");
  380. }
  381. })
  382. }
  383. //修改类型
  384. function btn_update() {
  385. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  386. if (ids.length != 1) {
  387. $.modalAlertNew("WMS00006");
  388. return;
  389. }
  390. for (var i in ids) {
  391. var rowData = jQuery("#gridList").jqGrid("getRowData", ids[i]);
  392. var ID = rowData.ID;
  393. var ApplyNegCode = rowData.ApplyNegCode;
  394. var WHCode = rowData.WHCode;
  395. var Memo = rowData.Memo;
  396. $.modalOpen({
  397. id: "Details",
  398. title: "修改",
  399. url: "/JHWMS/MaterialsDeliveredRTM/ICSMOApplyNegMDUpdate?ID=" + ID + "&ApplyNegCode=" + ApplyNegCode + "&WHCode=" + WHCode + "&Memo=" + encodeURI(encodeURI(Memo)) + "&MenuID=" + _MenuID + "&" + Math.random(),
  400. width: "1000px",
  401. height: "1200px",
  402. callBack: function (iframeId) {
  403. top.frames[iframeId].submitForm();
  404. }
  405. });
  406. }
  407. }
  408. //1、获取当前页菜单ID
  409. function GetMenuID() {
  410. var cc = self.frameElement.getAttribute('id');
  411. _MenuID = cc.replace("iframe", "");
  412. }
  413. function btnCreate() {
  414. $.modalOpen({
  415. id: "BRGCodeAdd",
  416. title: "新增",
  417. url: "/JHWMS/MaterialsDeliveredRTM/ICSMOApplyNegMDAdd" + "?MenuID=" + _MenuID + "&" + Math.random(),
  418. width: "1000px",
  419. height: "1200px",
  420. callBack: function (iframeId) {
  421. top.frames[iframeId].submitForm();
  422. }
  423. });
  424. }
  425. function btn_Audit() {
  426. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  427. if (ids.length != 1) {
  428. $.modalAlertNew("WMS00087");
  429. return;
  430. }
  431. var RoleEnCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  432. var WorkPoint = '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  433. var date = new Date();
  434. for (var i in ids) {
  435. ID = $("#gridList").jqGrid('getRowData', ids[i]).ID;
  436. Status = $("#gridList").jqGrid('getRowData', ids[i]).Status;
  437. if (Status != '开立') {
  438. $.modalAlertNew("WMS00088");
  439. return;
  440. }
  441. }
  442. var ICSASNs = {
  443. ID: ID,
  444. User: RoleEnCode,
  445. MTIME: date,
  446. WorkPoint: WorkPoint,
  447. ApproveFlag: '1'
  448. }
  449. var ICSASN = [];
  450. ICSASN.push(ICSASNs);
  451. $.submitForm({
  452. url: "/JHWMS/ProductionIssue/AuditICSMOApplyNeg?" + Math.random(),
  453. param: { ICSASN: JSON.stringify(ICSASN) },
  454. success: function () {
  455. $.currentWindow().$("#gridList").trigger("reloadGrid");
  456. }
  457. })
  458. }
  459. function btn_AuditByCreater() {
  460. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  461. if (ids.length != 1) {
  462. $.modalAlertNew("WMS00087");
  463. return;
  464. }
  465. var UserName= '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName'
  466. var RoleEnCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  467. var WorkPoint = '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  468. var date = new Date();
  469. for (var i in ids) {
  470. ID = $("#gridList").jqGrid('getRowData', ids[i]).ID;
  471. Status = $("#gridList").jqGrid('getRowData', ids[i]).Status;
  472. if (Status != '开立') {
  473. $.modalAlertNew("WMS00088");
  474. return;
  475. }
  476. if (UserName != $("#gridList").jqGrid('getRowData', ids[i]).MOCreater) {
  477. $.modalAlert("该单据对应生产订单不是你创建的,无法审核!");
  478. return;
  479. }
  480. }
  481. var ICSASNs = {
  482. ID: ID,
  483. User: RoleEnCode,
  484. MTIME: date,
  485. WorkPoint: WorkPoint,
  486. ApproveFlag: '1'
  487. }
  488. var ICSASN = [];
  489. ICSASN.push(ICSASNs);
  490. $.submitForm({
  491. url: "/JHWMS/ProductionIssue/AuditICSMOApplyNeg?" + Math.random(),
  492. param: { ICSASN: JSON.stringify(ICSASN) },
  493. success: function () {
  494. $.currentWindow().$("#gridList").trigger("reloadGrid");
  495. }
  496. })
  497. }
  498. function btn_Abandoning() {
  499. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  500. if (ids.length != 1) {
  501. $.modalAlertNew("WMS00087");
  502. return;
  503. }
  504. var RoleEnCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  505. var WorkPoint = '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  506. var date = new Date();
  507. for (var i in ids) {
  508. ID = $("#gridList").jqGrid('getRowData', ids[i]).ID;
  509. Status = $("#gridList").jqGrid('getRowData', ids[i]).Status;
  510. if (Status != '审核') {
  511. $.modalAlert("该单据类型无法弃审!", "warning");
  512. return;
  513. }
  514. }
  515. var ICSASNs = {
  516. ID: ID,
  517. User: RoleEnCode,
  518. MTIME: date,
  519. WorkPoint: WorkPoint,
  520. ApproveFlag: '0'
  521. }
  522. var ICSASN = [];
  523. ICSASN.push(ICSASNs);
  524. $.submitForm({
  525. url: "/JHWMS/ProductionIssue/AuditICSMOApplyNeg?" + Math.random(),
  526. param: { ICSASN: JSON.stringify(ICSASN) },
  527. success: function () {
  528. $.currentWindow().$("#gridList").trigger("reloadGrid");
  529. }
  530. })
  531. }
  532. function btnPrint() {
  533. debugger;
  534. //var mold = '00017'; //领料申请退
  535. var objArr = '';
  536. var arr = [];
  537. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  538. for (var i = 0; i < objList.length; i++) {
  539. var rowId = objList[i];
  540. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  541. objArr += "'" + rowData.ApplyNegCode + "',";
  542. }
  543. objArr = objArr.slice(0, objArr.length - 1);
  544. if (objArr == "") {
  545. $.modalAlertNew("WMS00110");
  546. return;
  547. }
  548. objArr = "" + objArr + "|";
  549. arr.push(objArr);
  550. $.modalOpen({
  551. id: "PrintLot",
  552. title: "打印",
  553. url: "/WMS/Print/PrintView?Arguments=" + encodeURI(encodeURI(arr)) + "&mold=" + mold + "&" + Math.random(),
  554. width: "550px",
  555. height: "1000px",
  556. callBack: function (iframeId) {
  557. top.frames[iframeId].submitForm();
  558. }
  559. });
  560. }
  561. </script>
  562. <div class="topPanel" style="height:45px">
  563. <div class="toolbar">
  564. <div class="btn-group">
  565. <a id="NF-Create" authorize="yes" class="btn btn-primary" onclick="btnCreate()"><i class="fa fa-pencil-square-o"></i>新增</a>
  566. <a id="NF-update" authorize="yes" class="btn btn-primary" onclick="btn_update()"><i class="fa fa-pencil-square-o"></i>修改</a>
  567. <a id="NF-Audit" authorize="yes" class="btn btn-primary" onclick="btn_Audit()"><i class="fa fa-pencil-square-o"></i>审核</a>
  568. <a id="NF-Audit" authorize="yes" class="btn btn-primary" onclick="btn_AuditByCreater()"><i class="fa fa-pencil-square-o"></i>审核</a>
  569. <a id="NF-Abandoning" authorize="yes" class="btn btn-primary" onclick="btn_Abandoning()"><i class="fa fa-pencil-square-o"></i>弃审</a>
  570. <a id="NF-Delete" authorize="yes" class="btn btn-primary" onclick="btn_Delete()"><i class="fa fa-trash-o"></i>删除</a>
  571. <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>
  572. <a class="btn btn-primary" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a>
  573. </div>
  574. <script>$('.toolbar').authorizeButton()</script>
  575. </div>
  576. </div>
  577. <div class="gridPanel">
  578. <table id="gridList"></table>
  579. <div id="gridPager"></div>
  580. </div>