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.

550 lines
23 KiB

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