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.

374 lines
14 KiB

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