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.

598 lines
24 KiB

3 weeks ago
  1. 
  2. @{
  3. ViewBag.Title = "Index";
  4. Layout = "~/Views/Shared/_Form.cshtml";
  5. }
  6. <link href="~/Content/js/select2/select2.min.css" rel="stylesheet" />
  7. <link href="~/Content/css/bootstrap/bootstrap-select.css" rel="stylesheet" />
  8. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  9. <script src="~/Content/js/bootstrap/bootstrap-select.js"></script>
  10. <script src="~/Content/js/select2/select2.min.js"></script>
  11. <script src="~/Content/js/layer/layer.js"></script>
  12. <style>
  13. #Additem {
  14. margin-left: 45%;
  15. }
  16. #AddTemitem {
  17. margin-right: 45%;
  18. }
  19. .ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td {
  20. overflow: inherit;
  21. word-wrap: break-word;
  22. }
  23. .ui-jqgrid tr.jqgrow td {
  24. white-space: normal !important;
  25. height: auto;
  26. }
  27. </style>
  28. <script>
  29. var _Clos = new Array();
  30. var rfqcode = $.request("rfqcode");
  31. var ID = $.request("ID");
  32. var IssueCode = $.request("IssueCode");
  33. var _LW = new Array();
  34. $(function(){
  35. SetCols();
  36. var Muser = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  37. var now = new Date();
  38. var date = now.toLocaleDateString();
  39. InitControl();
  40. InitContro5();
  41. if (!!IssueCode) {
  42. $.ajax({
  43. url: "/DHAY/ICSMOIssue/GetICSMOIssueByIssueCode?IssueCode=" + IssueCode,
  44. //data: { keyValue: keyValue },
  45. dataType: "json",
  46. async: false,
  47. success: function (data) {
  48. debugger;
  49. $("#sel_CodeType").val([data.rows[0].EATTRIBUTE2]).trigger("change");//单据类型
  50. $("#Code").val(data.rows[0].IssueCode);//单号
  51. //$("#sel_LYDept").val([data.rows[0].DepCode]).trigger("change");//领用部门
  52. $("#Remarks").val(data.rows[0].EATTRIBUTE5);//备注
  53. $("#txtMUSER").val(Muser);
  54. $("#txtMTIME").val(date);
  55. }
  56. })
  57. }
  58. reloadData();
  59. })
  60. function SetCols() {
  61. $.ajax({
  62. url: "/Print/SelectColumnName?" + Math.random(),
  63. dataType: "json",
  64. async: false,
  65. success: function (data) {
  66. var cols = new Array();
  67. var collast = { label: '主键', name: 'ID', width: 150, align: 'left', hidden: true, key: true };
  68. cols.push(collast);
  69. var collast = { label: 'ID', name: 'ID', width: 150, align: 'left', hidden: true };
  70. cols.push(collast);
  71. var collast = { label: '工单编码', name: 'MOCode', width: 100, align: 'left' };
  72. cols.push(collast);
  73. var collast = { label: '料品编码', name: 'InvCode', width: 100, align: 'left' };
  74. cols.push(collast);
  75. var collast = { label: '料品名称', name: 'INVNAME', width: 100, align: 'left' };
  76. cols.push(collast);
  77. var collast = { label: '规格型号', name: 'InvStd', width: 100, align: 'left' };
  78. cols.push(collast);
  79. var collast = { label: '仓库编码', name: 'WHCode', width: 100, align: 'left', hidden: true };
  80. cols.push(collast);
  81. var collast = { label: '仓库名称', name: 'WHCodeName', width: 100, align: 'left', editable: true };
  82. cols.push(collast);
  83. var collast = { label: '批号', name: 'Batch', width: 100, align: 'left', editable: true };
  84. cols.push(collast);
  85. var collast = { label: '数量', name: 'Quantity', width: 100, align: 'left', editable: true, editrules: { number: true } };
  86. cols.push(collast);
  87. var collast = { label: '可用数量', name: 'KQuantity', width: 100, align: 'left', editable: true, hidden: true };
  88. cols.push(collast);
  89. var collast = { label: '备注', name: 'EATTRIBUTE9', width: 150, align: 'left', editable: true };
  90. cols.push(collast);
  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. }
  105. }
  106. _Clos = cols;
  107. }
  108. });
  109. }
  110. function GetSelect_Project() {
  111. debugger;
  112. var Header = {
  113. TypeName:"项目",
  114. OrgCode: '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  115. }
  116. var str = "";
  117. $.ajax({
  118. url: "/DHAY/ICSCustomerSuppliedReturn/GetU9CodeType?" + Math.random(),
  119. dataType: "json",
  120. data: { key1: JSON.stringify(Header) },
  121. async: false,
  122. async: false,
  123. success: function (data) {
  124. var jsonobj = eval(data);
  125. var length = jsonobj.length;
  126. for (var i = 0; i < length; i++) {
  127. if (i != length - 1) {
  128. str += jsonobj[i].Code + ":" + jsonobj[i].Name + ";";
  129. } else {
  130. str += jsonobj[i].Code + ":" + jsonobj[i].Name;// 这里是option里面的 value:label
  131. }
  132. var objFiledName = {
  133. Code: jsonobj[i].Code,
  134. Name: jsonobj[i].Name,
  135. }
  136. _LW.push(objFiledName);
  137. }
  138. }
  139. });
  140. return str;
  141. }
  142. function reloadData() {
  143. $("#gridList").dataGrid({
  144. url: "/DHAY/ICSMOIssue/GetICSReturnTemporary?rfqno=" + $("#Code").val() + "&" + Math.random(),
  145. height: $(window).height() - 200,
  146. width: $(window).width() - 300,
  147. cellEdit: true,
  148. colModel: _Clos,
  149. cellsubmit: "clientArray",
  150. shrinkToFit: false,//宽度自适应
  151. autoWidth: true,
  152. gridComplete: function () {
  153. debugger;
  154. //设置select
  155. //var RowDatas = $("#gridList").jqGrid('getDataIDs');
  156. //for (var j = 0; j < RowDatas.length; j++) {
  157. // var ID = $("#gridList").jqGrid("getCell", RowDatas[j], "ID");
  158. // var WHCode = $("#gridList").jqGrid("getCell", RowDatas[j], "WHCodeHHH");
  159. // GetSelectPerson(ID, WHCode);
  160. //}
  161. debugger;
  162. var SYprojectName = '';
  163. var RowDatas = $("#gridList").jqGrid('getDataIDs');
  164. for (var j = 0; j < RowDatas.length; j++) {
  165. var SYprojectHidden = $("#gridList").jqGrid("getCell", RowDatas[j], "SYproject");
  166. for (var s = 0; s < _LW.length; s++) {
  167. var SYprojectCode = _LW[s].Code;
  168. if (SYprojectCode == SYprojectHidden) {
  169. SYprojectName = _LW[s].Name;
  170. }
  171. }
  172. $("#gridList").jqGrid("setCell", RowDatas[j], 'SYproject', SYprojectName);
  173. }
  174. },
  175. pager: "#gridPager",
  176. sortorder: "desc",
  177. sortname: 'DNCode ',
  178. rowNum: 10000,
  179. viewrecords: true,
  180. multiselect: true,
  181. subGrid: false, // (1)开启子表格支持
  182. ondblClickRow: function (rowid, cellname, value) {
  183. var colModel = $("#gridList").jqGrid("getGridParam", "colModel");
  184. var cellIndex = $("#gridList").jqGrid("getGridParam", "iCol");
  185. var cellname = colModel[cellIndex].name;
  186. if (cellname == "MOCode") {
  187. $.modalOpen({
  188. id: "InvCodeSelect",
  189. title: "选择生产订单备料信息",
  190. url: "/DHAY/ICSMOIssue/GetInvCode",
  191. width: "50%",
  192. height: "50%",
  193. callBack: function (iframeId) {
  194. var objArr = top.frames[iframeId].submitForm();
  195. for (var j = 0; j < objArr.length; j++) {
  196. $("#gridList").jqGrid('addRowData', objArr[j].ID, objArr[j], 'last');
  197. }
  198. top.frames[iframeId].Close();
  199. $("#gridList").delRowData(rowid);
  200. }
  201. });
  202. } else if (cellname == "WHCodeName") {
  203. $.modalOpen({
  204. id: "GetWHCode",
  205. title: "选择仓库",
  206. url: "/DHAY/ICSCustomerSuppliedReturn/GetWHCode",
  207. width: "50%",
  208. height: "50%",
  209. callBack: function (iframeId) {
  210. debugger;
  211. var obj = top.frames[iframeId].submitForm();
  212. $("#gridList").jqGrid('setCell', rowid, 'WHCode', obj.WarehouseCode, 'review-' + rowid);
  213. $("#gridList").jqGrid('setCell', rowid, 'WHCodeName', obj.WarehouseName, 'review-' + rowid);
  214. $("#gridList").jqGrid("saveCell", rowid, 1);
  215. $("#gridList").jqGrid("saveCell", rowid, 2);
  216. $("#gridList").jqGrid("saveCell", rowid, 3);
  217. $("#gridList").jqGrid("saveCell", rowid, 4);
  218. $("#gridList").jqGrid("saveCell", rowid, 5);
  219. $("#gridList").jqGrid("saveCell", rowid, 6);
  220. $("#gridList").jqGrid("saveCell", rowid, 7);
  221. $("#gridList").jqGrid("saveCell", rowid, 8);
  222. $("#gridList").jqGrid("saveCell", rowid, 9);
  223. top.frames[iframeId].Close();
  224. }
  225. });
  226. } else if (cellname == "Batch") {
  227. var invCode = $("#gridList").jqGrid("getRowData", rowid).InvCode;
  228. $.modalOpen({
  229. id: "InvCodeSelect",
  230. title: "选择批次信息",
  231. url: "/DHAY/ICSSDN/GetBatch?InvCode=" + invCode,
  232. width: "50%",
  233. height: "50%",
  234. callBack: function (iframeId) {
  235. debugger;
  236. var obj = top.frames[iframeId].submitForm();
  237. $("#gridList").jqGrid('setCell', rowid, 'Batch', obj.BatchCode, 'review-' + rowid);
  238. $("#gridList").jqGrid("saveCell", rowid, 1);
  239. $("#gridList").jqGrid("saveCell", rowid, 2);
  240. $("#gridList").jqGrid("saveCell", rowid, 3);
  241. $("#gridList").jqGrid("saveCell", rowid, 4);
  242. $("#gridList").jqGrid("saveCell", rowid, 5);
  243. $("#gridList").jqGrid("saveCell", rowid, 6);
  244. $("#gridList").jqGrid("saveCell", rowid, 7);
  245. $("#gridList").jqGrid("saveCell", rowid, 8);
  246. $("#gridList").jqGrid("saveCell", rowid, 9);
  247. top.frames[iframeId].Close();
  248. }
  249. });
  250. }
  251. }, afterSaveCell: function (rowid, celname, value, iRow, iCol) {// var datatime = '';
  252. debugger;
  253. // var aaa = "2999-12-31";
  254. if (celname == "Quantity") {
  255. var YLOTQTY = Number(value);
  256. var ThisNumber = Number($("#gridList").jqGrid("getCell", rowid, 'Quantity'));
  257. var InvCode = $("#gridList").jqGrid("getCell", rowid, 'InvCode');
  258. $.ajax({
  259. url: "/DHAY/ICSAccessoriesMOApply/GetInvCodeCount?invCode=" + InvCode + "&" + Math.random(),
  260. dataType: "json",
  261. async: false,
  262. success: function (data) {
  263. debugger;
  264. var AllNumber = Number(data);
  265. if (YLOTQTY > AllNumber) {
  266. $("#gridList").jqGrid('setCell', rowid, 'Quantity', null);
  267. $.modalAlertNew("WMSAPIInfo507");
  268. return;
  269. }
  270. }
  271. })
  272. }
  273. }
  274. /* footerrow: true,//启用底部行(对列汇总时要启用)第一步*/
  275. });
  276. }
  277. function btnLook(cellvalue, options, rowObject) {
  278. return cellvalue = "<a class=\"btn btn-primary dropdown-text\" onclick=\"UpLoadClick('" + rowObject.ID + "')\">查看</a>";
  279. }
  280. function UpLoadClick(ID) {
  281. $.modalOpen({
  282. id: "selectDeatil",
  283. title: "查看修改物料",
  284. url: "/WMS/ProductionIssue/SeachInventory?ID=" + ID + "&" + Math.random(),
  285. width: "1000px",
  286. height: "1000px",
  287. callBack: function (iframeId) {
  288. var obj = top.frames[iframeId].submitForm();
  289. var rowData = $("#gridList").jqGrid('getRowData', ID);
  290. rowData.TLZID=obj.TLZID,
  291. rowData.ZJID= obj.ZJID,
  292. rowData.InvCode= obj.InvCode,
  293. rowData.InvName= obj.InvName,
  294. rowData.InvStd= obj.InvStd,
  295. rowData.InvUnit= obj.InvUnit,
  296. rowData.Quantity= obj.Quantity,
  297. rowData.IssueNegQuantity= obj.IssueQuantity,
  298. rowData.Amount= obj.Amount,
  299. rowData.ExtensionID= obj.ExtensionID,
  300. rowData.ProjectCode= obj.ProjectCode,
  301. rowData.BatchCode= obj.BatchCode,
  302. rowData.Version= obj.Version,
  303. rowData.Brand= obj.Brand,
  304. rowData.cFree1= obj.cFree1,
  305. rowData.cFree2= obj.cFree2,
  306. rowData.cFree3= obj.cFree3,
  307. rowData.cFree4= obj.cFree4,
  308. rowData.cFree5= obj.cFree5,
  309. rowData.cFree6= obj.cFree6,
  310. rowData.cFree7= obj.cFree7,
  311. rowData.cFree8= obj.cFree8,
  312. rowData.cFree9= obj.cFree9,
  313. rowData.cFree10= obj.cFree10
  314. $("#gridList").jqGrid('setRowData', ID, rowData);
  315. $(".unwritten").hide();
  316. top.frames[iframeId].Close();
  317. }
  318. });
  319. }
  320. function guid() {
  321. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  322. var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
  323. return v.toString(16);
  324. });
  325. }
  326. //最后一行新增数据
  327. function AddRowToLast() {
  328. var obj = {
  329. ID: guid(),
  330. WHCode:""
  331. };
  332. $("#gridList").jqGrid('addRowData', obj.ID, obj, 'last');
  333. $(".unwritten").hide();
  334. }
  335. function DeleteRowToLast() {
  336. debugger;
  337. var rowid = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  338. for (var i = rowid.length - 1; i >= 0; i--) {
  339. $("#gridList").delRowData(rowid[i]);
  340. }
  341. }
  342. //获取U9单据类型
  343. function InitControl() {
  344. var $CodeType = $("#sel_CodeType");
  345. $CodeType.select2({
  346. allowClear: true,
  347. escapeMarkup: function (m) {
  348. return m;
  349. }
  350. });
  351. $.ajax({
  352. url: "/DHAY/ICSMOIssue/GetU9CodeType?type=超额领料" + "&" + Math.random(),
  353. dataType: "json",
  354. async: false,
  355. success: function (data) {
  356. $CodeType.append("<option value=''></option>");
  357. $.each(data, function (index, item) {
  358. $CodeType.append("<option value='" + item.Code + "'>&nbsp;" + item.Name + "</option>");
  359. });
  360. }
  361. });
  362. }
  363. //获取U9项目
  364. function InitContro4() {
  365. var $Project = $("#sel_SYproject");
  366. $Project.select2({
  367. allowClear: true,
  368. escapeMarkup: function (m) {
  369. return m;
  370. }
  371. });
  372. $.ajax({
  373. url: "/DHAY/ICSMOIssue/GetU9CodeType?type=项目" + "&" + Math.random(),
  374. dataType: "json",
  375. async: false,
  376. success: function (data) {
  377. $Project.append("<option value=''></option>");
  378. $.each(data, function (index, item) {
  379. $Project.append("<option value='" + item.Code + "'>&nbsp;" + item.Name + "</option>");
  380. });
  381. }
  382. });
  383. }
  384. function submitForm() {
  385. $("#gridList").find($("td[aria-describedby='gridList_rn']")).click();
  386. debugger;
  387. if (!$('#form1').formValid()) {
  388. return false;
  389. }
  390. var CodeType = $("#sel_CodeType").val();//单据类型
  391. var Dept = $("#sel_Dept").val();//部门
  392. var LYDept = $("#sel_LYDept").val();//部门
  393. var Remarks = $("#Remarks").val();//备注
  394. var Code = $("#Code").val();//单据号
  395. var MTIME = $("#txtMTIME").val();//单据号
  396. var RoleEnCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  397. var WorkPoint = '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  398. var IDlist = "";
  399. var Details = [];
  400. SelPerson = "#SelBR_"
  401. var obj_vendor = $("#gridList");
  402. var rowIds_vendor = obj_vendor.getDataIDs();
  403. var arrayData_vendor = new Array();
  404. if (rowIds_vendor.length > 0) {
  405. for (var i = 0; i < rowIds_vendor.length; i++) {
  406. var vendorRowData = obj_vendor.getRowData(rowIds_vendor[i]);
  407. if (vendorRowData.Quantity == "" || vendorRowData.Quantity == 'undefined') {
  408. $.modalAlertNew("WMS00089");
  409. return;
  410. }
  411. for (var s = 0; s < _LW.length; s++) {
  412. var SYprojectName = _LW[s].Name;
  413. if (SYprojectName == vendorRowData.SYproject) {
  414. SYprojectCode = _LW[s].Code;
  415. }
  416. }
  417. /* var WHCode = $("" + SelPerson + "" + vendorRowData.ID + "").val();*/
  418. var obj = {
  419. ID: vendorRowData.ID,
  420. Sequence: i + 1,
  421. InvCode: vendorRowData.InvCode,
  422. Quantity: vendorRowData.Quantity,
  423. WHCode: vendorRowData.WHCode,
  424. DetailReamrk: vendorRowData.EATTRIBUTE6,
  425. DetailReamrk2: vendorRowData.EATTRIBUTE9,
  426. SourceCode: vendorRowData.MOCode,
  427. Batch: vendorRowData.Batch
  428. };
  429. Details.push(obj);
  430. }
  431. var ICSASNs = {
  432. Dept: '',
  433. CodeType: CodeType,
  434. Remarks: Remarks,
  435. Code: Code,
  436. MTIME: MTIME,
  437. User: RoleEnCode,
  438. Detail: Details,
  439. }
  440. //var ICSASN = [];
  441. //ICSASN.push(ICSASNs);
  442. $.submitForm({
  443. url: "/DHAY/ICSMOIssue/UpdateICSMOIssue?" + Math.random(),
  444. param: { ICSASN: JSON.stringify(ICSASNs) },
  445. success: function () {
  446. $.currentWindow().$("#gridList").trigger("reloadGrid");
  447. }
  448. })
  449. }
  450. }
  451. function GetSelectPerson( ID, WHCode) {
  452. var str = "";
  453. $.ajax({
  454. url: "/DHAY/ICSCustomerSuppliedIn/Select_ICSWHCode?" + Math.random(),
  455. dataType: "json",
  456. async: false,
  457. async: false,
  458. success: function (data) {
  459. if (data != null && data.length > 0) {
  460. $("#SelBR_" + ID + "").find("option").remove();
  461. for (var i = 0; i < data.length; i++) {
  462. $("#SelBR_" + ID + "").append("<option value='" + data[i].WarehouseCode + "'>" + data[i].WarehouseName + "</option>");
  463. }
  464. }
  465. }
  466. });
  467. $("#SelBR_" + ID + "").selectpicker('refresh');
  468. $("#SelBR_" + ID + "").selectpicker('val', WHCode);
  469. }
  470. //获取领用部门
  471. function InitContro5() {
  472. var $Dept = $("#sel_LYDept");
  473. $Dept.select2({
  474. allowClear: true,
  475. escapeMarkup: function (m) {
  476. return m;
  477. }
  478. });
  479. $.ajax({
  480. url: "/DHAY/ICSMOIssue/GetLYDep?" + Math.random(),
  481. dataType: "json",
  482. async: false,
  483. success: function (data) {
  484. $Dept.append("<option value=''></option>");
  485. $.each(data, function (index, item) {
  486. $Dept.append("<option value='" + item.Code + "'>&nbsp;" + item.Name + "</option>");
  487. });
  488. }
  489. });
  490. }
  491. </script>
  492. <form id="form1">
  493. <div class="topPanel" style="height:10px">
  494. <div class="btn-group">
  495. @*<a id="AddItemLot" style="margin-left:3px;" class="btn btn-primary" onclick="btnCreate()"><i class="fa fa-pencil-square-o"></i>添加明细</a>
  496. <a id="refresh" class="btn btn-primary" style="margin-left:3px;" onclick="reloadData()"><span class="glyphicon glyphicon-refresh"></span></a>*@
  497. </div>
  498. </div>
  499. <div style="margin-right: 20px;">
  500. <table class="form">
  501. <thead>主表信息</thead>
  502. <tr>
  503. <th class="formTitle">单据类型:</th>
  504. <td class="formValue">
  505. <select id="sel_CodeType" name="sel_CodeType" class="form-control select2 required" style="width: 230px" placeholder="请选择单据类型..."></select>
  506. <input type="hidden" id="hidetext" />
  507. </td>
  508. <th class="formTitle">单号:</th>
  509. <td class="formValue">
  510. <input id="Code" type="text" readonly="readonly" class="form-control required" />
  511. </td>
  512. </tr>
  513. @*<tr>
  514. <th class="formTitle">领用部门:</th>
  515. <td class="formValue">
  516. <select id="sel_LYDept" name="sel_LYDept" class="form-control select2 " style="width: 230px" placeholder="请选择领用部门..."></select>
  517. <input type="hidden" id="hidetext" />
  518. </td>
  519. <th class="formTitle">项目编号:</th>
  520. <td class="formValue">
  521. <input type="text" id="Remarks2" class="form-control" />
  522. </td>
  523. </tr>*@
  524. <tr>
  525. <th class="formTitle">维护人:</th>
  526. <td class="formValue">
  527. <input id="txtMUSER" type="text" readonly="readonly" class="form-control" />
  528. </td>
  529. <th class="formTitle">维护时间:</th>
  530. <td class="formValue">
  531. <input id="txtMTIME" type="text" readonly="readonly" class="form-control" />
  532. </td>
  533. </tr>
  534. <tr>
  535. <th class="formTitle">超额原因:</th>
  536. <td class="formValue">
  537. <input type="text" id="Remarks" class="form-control" required/>
  538. </td>
  539. </tr>
  540. </table>
  541. </div>
  542. <div class="gridPanel" style="margin-left:10px">
  543. <span><strong>子表信息</strong></span>
  544. <table id="gridList"></table>
  545. <div style="text-align:center">
  546. <button id="AddRow" class="btn btn-primary" type="button" onclick="AddRowToLast()">添加</button>
  547. <button id="DeleteRow" type="button" class="btn btn-primary" onclick="DeleteRowToLast()">删除</button>
  548. </div>
  549. </div>
  550. </form>