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.

387 lines
15 KiB

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