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.

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