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.

409 lines
15 KiB

3 weeks ago
  1. 
  2. @{
  3. /**/
  4. ViewBag.Title = "Index";
  5. Layout = "~/Views/Shared/_Index.cshtml";
  6. }
  7. <link href="~/Content/js/select2/select2.min.css" rel="stylesheet" />
  8. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  9. <script src="~/Content/js/select2/select2.min.js"></script>
  10. <style>
  11. #Additem {
  12. margin-left: 45%;
  13. }
  14. #AddTemitem {
  15. margin-right: 45%;
  16. }
  17. </style>
  18. <script>
  19. var rfqcode = $.request("rfqcode");
  20. var ID = $.request("ID");
  21. var MenuID = $.request("MenuID");
  22. var _Clos = new Array();
  23. $(function () {
  24. SetCols();
  25. if (ID=='') {
  26. $(".MOPick").css('display', 'none');
  27. }
  28. var Muser = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  29. var now = new Date();
  30. var date = now.toLocaleDateString();
  31. $("#txtMUSER").val(Muser);
  32. $("#txtMTIME").val(date);
  33. InitControl();
  34. ClearTemp();
  35. reloadData();
  36. })
  37. function SetCols() {
  38. $.ajax({
  39. url: "/Print/SelectColumnName?" + Math.random(),
  40. dataType: "json",
  41. async: false,
  42. success: function (data) {
  43. var cols = new Array();
  44. var collast = { label: '主键', name: 'ID', width: 150, align: 'left', hidden: true, key: true };
  45. cols.push(collast);
  46. var collast = { label: 'ID', name: 'ID', width: 150, align: 'left', hidden: true };
  47. cols.push(collast);
  48. //var collast = {
  49. // label: '查看', width: 100, align: 'left',
  50. // formatter: btnLook
  51. //};
  52. //cols.push(collast);
  53. var collast = { label: '退料子ID', name: 'TLZID', hidden: true };
  54. cols.push(collast);
  55. var collast = { label: '退料单号', name: 'ApplyNegCode', width: 150, align: 'left' };
  56. cols.push(collast);
  57. var collast = { label: '料品编码', name: 'InvCode', width: 100, align: 'left' };
  58. cols.push(collast);
  59. var collast = { label: '料品名称', name: 'InvName', width: 100, align: 'left' };
  60. cols.push(collast);
  61. var collast = { label: '规格型号', name: 'InvStd', width: 100, align: 'left' };
  62. cols.push(collast);
  63. var collast = { label: '数量', name: 'Quantity', width: 100, align: 'left', editable: true, editrules: { number: true } };
  64. cols.push(collast);
  65. var collast = { label: '辅计量数量', name: 'Amount', width: 150, align: 'left' };
  66. cols.push(collast);
  67. var collast = { label: '单位', name: 'InvUnit', width: 100, align: 'left' };
  68. cols.push(collast);
  69. var collast = { label: '已发数量', name: 'IssueNegQuantity', width: 100, align: 'left' };
  70. cols.push(collast);
  71. var collast = { label: '子件ID', name: 'ZJID', hidden: true };
  72. cols.push(collast);
  73. var collast = { label: '自由项ID', name: 'ExtensionID', hidden: true };
  74. cols.push(collast);
  75. var collast = { label: '单据数量', name: 'Quantitys', hidden: true };
  76. cols.push(collast);
  77. var collast = { label: '单据辅计量数量', name: 'Amounts', hidden: true };
  78. cols.push(collast);
  79. if (data != null && data.length > 0) {
  80. DateList = data;
  81. for (var i = 0; i < data.length; i++) {
  82. var ColName = data[i].ColName;
  83. var ColCode = data[i].ColCode;
  84. var obj = new Array();
  85. obj = {
  86. label: ColName,
  87. name: ColCode,
  88. width: 80,
  89. align: "left",
  90. editable: true,
  91. }
  92. cols.push(obj);
  93. }
  94. }
  95. _Clos = cols;
  96. }
  97. });
  98. }
  99. function reloadData() {
  100. $("#gridList").dataGrid({
  101. url: "/DHAY/MaterialsDeliveredRTM/GetICSReturnTemporary?rfqno=" + $("#txtApplyNegCode").val() + "&" + Math.random(),
  102. //postData: { rfqno: $("#RFQNO").val() },
  103. height: $(window).height() - 200,
  104. width: $(window).width(),
  105. cellEdit: true,
  106. colModel: _Clos,
  107. // colModel: [
  108. //{ label: '主键', name: 'ID', width: 150, align: 'left', hidden: true, key: true },
  109. // { label: 'ID', name: 'ID', width: 150, align: 'left', hidden: true },
  110. // {
  111. // label: '查看', width: 100, align: 'left',
  112. // formatter: btnLook
  113. // },
  114. //{ label: '退料单号', name: 'ApplyNegCode', width: 150, align: 'left' },
  115. //{ label: '料品编码', name: 'InvCode', width: 100, align: 'left' },
  116. //{ label: '料品名称', name: 'InvName', width: 100, align: 'left' },
  117. //{ label: '规格型号', name: 'InvStd', width: 100, align: 'left' },
  118. //{ label: '数量', name: 'Quantity', width: 100, align: 'left', editable: true, editrules: { number: true } },
  119. //{ label: '辅计量数量', name: 'Amount', width: 150, align: 'left' },
  120. //{ label: '单位', name: 'InvUnit', width: 100, align: 'left' },
  121. //{ label: '已发数量', name: 'IssueNegQuantity', width: 100, align: 'left' },
  122. //{ label: '子件ID', name: 'ZJID', hidden: true },
  123. //{ label: '自由项ID', name: 'ExtensionID', width: 100, align: 'left' },
  124. // ],
  125. cellsubmit: "clientArray",
  126. gridComplete: function () {
  127. $("#gridList").jqGrid('setLabel', 'Quantity', '', { 'color': 'red' });
  128. },
  129. width: "100%",
  130. autowidth: true,
  131. afterSaveCell: function (rowid, cellname, value) {
  132. debugger;
  133. //通过单据辅计量计算出当前填写数量对应辅计量
  134. if (cellname === 'Quantity') {
  135. var Quantity = value;
  136. var Amounts = $("#gridList").jqGrid("getCell", rowid, 'Amounts');
  137. var Quantitys = $("#gridList").jqGrid("getCell", rowid, 'Quantitys');
  138. var str = Math.round((parseFloat(Amounts) / parseFloat(Quantitys) * parseFloat(Quantity)) * 10) / 10;
  139. $("#gridList").jqGrid("setCell", rowid, 'Amount', str);
  140. }
  141. },
  142. rownumbers: true,
  143. viewrecords: true,
  144. });
  145. }
  146. function UpLoadClick(ID) {
  147. $.modalOpen({
  148. id: "selectDeatil",
  149. title: "查看修改物料",
  150. url: "/DHAY/MaterialsDeliveredRTM/SeachMDInventory?ID=" + ID + "&MenuID=" + MenuID + "&" + Math.random(),
  151. width: "1000px",
  152. height: "1000px",
  153. callBack: function (iframeId) {
  154. var objArr = top.frames[iframeId].submitForm();
  155. var arrayData = getJQAllData("#gridList");
  156. for (var j = 0; j < objArr.length; j++) {
  157. for (var i = 0; i < arrayData.length; i++) {
  158. if (objArr[j].ZJID == arrayData[i].ZJID) {
  159. $.modalAlert("该子件已添加!请勿重复添加!");
  160. return;
  161. }
  162. }
  163. $("#gridList").jqGrid('addRowData', objArr[j].ID, objArr[j], 'last');
  164. $(".unwritten").hide();
  165. }
  166. top.frames[iframeId].Close();
  167. }
  168. });
  169. }
  170. function getJQAllData(list) {
  171. //拿到grid对象
  172. var obj = $(list);
  173. //获取grid表中所有的rowid值
  174. var rowIds = obj.getDataIDs();
  175. //初始化一个数组arrayData容器,用来存放rowData
  176. var arrayData = new Array();
  177. if (rowIds.length > 0) {
  178. for (var i = 0; i < rowIds.length; i++) {
  179. //rowData=obj.getRowData(rowid);//这里rowid=rowIds[i];
  180. arrayData.push(obj.getRowData(rowIds[i]));
  181. }
  182. }
  183. return arrayData;
  184. }
  185. function guid() {
  186. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  187. var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
  188. return v.toString(16);
  189. });
  190. }
  191. //最后一行新增数据
  192. function AddRowToLast() {
  193. UpLoadClick();
  194. }
  195. //function AddRowToLast() {
  196. // var obj = {
  197. // ID: guid(),
  198. // };
  199. // $("#gridList").jqGrid('addRowData', obj.ID, obj, 'last');
  200. // $(".unwritten").hide();
  201. //}
  202. function DeleteRowToLast() {
  203. debugger;
  204. var rowid = $("#gridList").jqGridRowValue().ID
  205. $("#gridList").delRowData(rowid);
  206. }
  207. function InitControl() {
  208. var $VenCode = $("#sel_WHCode");
  209. $VenCode.select2({
  210. allowClear: true,
  211. escapeMarkup: function (m) {
  212. return m;
  213. }
  214. });
  215. $.ajax({
  216. url: "/WMS/ProductionIssue/GetWHCode" + "?" + Math.random(),
  217. dataType: "json",
  218. async: false,
  219. success: function (data) {
  220. $.each(data, function (index, item) {
  221. $VenCode.append("<option value='" + item.WarehouseCode + "'>&nbsp;" + item.WarehouseName + "</option>");
  222. });
  223. }
  224. });
  225. }
  226. function ClearTemp() {
  227. $.ajax({
  228. url: "/DHAY/MaterialsDeliveredRTM/ClearTemp?" + Math.random(),
  229. datatype: "json",
  230. async: false
  231. })
  232. }
  233. function isEmpty(value) {
  234. return !value || value.trim() === '';
  235. }
  236. function submitForm() {
  237. $("#gridList").find($("td[aria-describedby='gridList_rn']")).click();//提交取消编辑状态
  238. debugger;
  239. var WHCode = $("#sel_WHCode").val();
  240. var Memo = $("#txtMemo").val();
  241. if (WHCode == "") {
  242. $.modalAlertNew("WMS00041");
  243. return;
  244. }
  245. if (isEmpty(Memo)) {
  246. $.modalAlert("请填写退料原因!");
  247. return;
  248. }
  249. var IDlist = "";
  250. var RoleEnCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  251. var WorkPoint = '@NFine.Code.OperatorProvider.Provider.GetCurrent().Location'
  252. var myDate = new Date();
  253. var year = myDate.getFullYear(); //获取当前年
  254. var mon = myDate.getMonth() + 1 < 10 ? "0" + (myDate.getMonth() + 1) : myDate.getMonth() + 1; //获取当前月
  255. var dates = myDate.getDate() + 1 < 10 ? "0" + myDate.getDate() : myDate.getDate(); //获取当前日
  256. var hours = myDate.getHours() + 1 < 10 ? "0" + myDate.getHours() : myDate.getHours(); //获取当前小时
  257. var minutes = myDate.getMinutes() + 1 < 10 ? "0" + myDate.getMinutes() : myDate.getMinutes(); //获取当前分钟
  258. var seconds = myDate.getSeconds() + 1 < 10 ? "0" + myDate.getSeconds() : myDate.getSeconds(); //获取当前秒
  259. var date = year + "-" + mon + "-" + dates + ' ' + hours + ':' + minutes + ':' + seconds;
  260. var Details = [];
  261. var obj_vendor = $("#gridList");
  262. var rowIds_vendor = obj_vendor.getDataIDs();
  263. var arrayData_vendor = new Array();
  264. if (rowIds_vendor.length > 0) {
  265. for (var i = 0; i < rowIds_vendor.length; i++) {
  266. var vendorRowData = obj_vendor.getRowData(rowIds_vendor[i]);
  267. if (vendorRowData.Quantity == "" || vendorRowData.Quantity == 'undefined') {
  268. $.modalAlertNew("WMS00089");
  269. return;
  270. }
  271. var Quantity = Number(vendorRowData.Quantity);
  272. var IssueQuantity =Number(vendorRowData.IssueQuantity);
  273. if (Quantity > IssueQuantity) {
  274. $.modalAlertNew("WMS00090");
  275. return;
  276. }
  277. var obj = {
  278. Sequence: i + 1,
  279. InvCode: vendorRowData.InvCode,
  280. Quantity: vendorRowData.Quantity,
  281. Amount: vendorRowData.Amount,
  282. SourceDetailID: vendorRowData.ZJID,
  283. ExtensionID: vendorRowData.ExtensionID,
  284. };
  285. Details.push(obj);
  286. }
  287. var ICSASNs = {
  288. WHCode: WHCode,
  289. User: RoleEnCode,
  290. MTIME: date,
  291. WorkPoint: WorkPoint,
  292. Memo:Memo,
  293. Type:'3',
  294. Detail: Details,
  295. }
  296. var ICSASN = [];
  297. ICSASN.push(ICSASNs);
  298. $.submitForm({
  299. url: "/DHAY/MaterialsDeliveredRTM/SaveICSMOApplyNeg?" + Math.random(),
  300. param: { ICSASN: JSON.stringify(ICSASN) },
  301. success: function () {
  302. $.currentWindow().$("#gridList").trigger("reloadGrid");
  303. }
  304. })
  305. }
  306. }
  307. </script>
  308. <form id="form1">
  309. <div class="topPanel" style="height:10px">
  310. <div class="btn-group">
  311. @*<a id="AddItemLot" style="margin-left:3px;" class="btn btn-primary" onclick="btnCreate()"><i class="fa fa-pencil-square-o"></i>添加明细</a>
  312. <a id="refresh" class="btn btn-primary" style="margin-left:3px;" onclick="reloadData()"><span class="glyphicon glyphicon-refresh"></span></a>*@
  313. </div>
  314. </div>
  315. <div style="margin-right: 20px;">
  316. <table class="form">
  317. <thead>主表信息</thead>
  318. <tr>
  319. <th class="formTitle MOPick">退料单号:</th>
  320. <td class="formValue MOPick">
  321. <input type="text" id="txtApplyNegCode" class="form-control" />
  322. </td>
  323. <th class="formTitle">仓库编码:</th>
  324. <td class="formValue">
  325. <select id="sel_WHCode" name="sel_WHCode" class="form-control select2" style="width: 230px" placeholder="请选择供应商编码..."></select>
  326. <input type="hidden" id="hidetext" />
  327. </td>
  328. <th class="formTitle">退料原因:</th>
  329. <td class="formValue">
  330. <input id="txtMemo" type="text" class="form-control" />
  331. </td>
  332. </tr>
  333. <tr>
  334. <th class="formTitle">维护人:</th>
  335. <td class="formValue">
  336. <input id="txtMUSER" type="text" readonly="readonly" class="form-control" />
  337. </td>
  338. <th class="formTitle">维护时间:</th>
  339. <td class="formValue">
  340. <input id="txtMTIME" type="text" readonly="readonly" class="form-control" />
  341. </td>
  342. </tr>
  343. </table>
  344. </div>
  345. <div class="gridPanel" style="margin-left:10px">
  346. <span><strong>子表信息</strong></span>
  347. <table id="gridList"></table>
  348. <div style="text-align:center">
  349. <button id="AddRow" class="btn btn-primary" type="button" onclick="AddRowToLast()">添加</button>
  350. <button id="DeleteRow" type="button" class="btn btn-primary" onclick="DeleteRowToLast()">删除</button>
  351. </div>
  352. </div>
  353. </form>