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.

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