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.

1121 lines
49 KiB

1 month ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  6. <script>
  7. var mold = $.request("mold");
  8. var Posortname = 'POCode';
  9. var Posortorder = 'desc';
  10. var Oosortname = 'PODate, OOCode';
  11. var Oosortorder = 'desc';
  12. $(document).ready(function () {
  13. $("input.cell").keyup(function (e) {
  14. switch (e.keyCode) {
  15. // up arrow
  16. case 40:
  17. $(this).parent()
  18. .parent()
  19. .next()
  20. .children("td")
  21. .children("input.cell[name="
  22. + $(this).attr("name") + "]")
  23. .focus();
  24. break;
  25. // down arrow
  26. case 38:
  27. $(this).parent()
  28. .parent()
  29. .prev()
  30. .children("td")
  31. .children("input.cell[name="
  32. + $(this).attr("name") + "]")
  33. .focus();
  34. break;
  35. }
  36. });
  37. });</script>
  38. <script>
  39. debugger;
  40. var Type = $.request("Type");
  41. var MinType = $.request("MinType");
  42. var _Clos = new Array();
  43. $(function () {
  44. SetCols(Type);
  45. //普通采购
  46. if (Type == '1') {
  47. gridList();
  48. }
  49. //委外普通采购
  50. if (Type == '2') {
  51. gridList2();
  52. }
  53. })
  54. function SeachCreateLotOrderByPO() {
  55. $.ajax({
  56. url: "/PNSRM/CreateItemLot/SeachCreateLotOrderByPO?" + Math.random(),
  57. dataType: "json",
  58. async: false,
  59. success: function (data) {
  60. if (data != null && data.length > 0) {
  61. Posortname = data[0].F_Define1;
  62. Posortorder = data[0].F_Define2;
  63. }
  64. }
  65. });
  66. }
  67. function SeachCreateLotOrderByOO() {
  68. $.ajax({
  69. url: "/PNSRM/CreateItemLot/SeachCreateLotOrderByOO?" + Math.random(),
  70. dataType: "json",
  71. async: false,
  72. success: function (data) {
  73. if (data != null && data.length > 0) {
  74. Oosortname = data[0].F_Define1;
  75. Oosortorder = data[0].F_Define2;
  76. }
  77. }
  78. });
  79. }
  80. function SetCols(Type) {
  81. debugger;
  82. $.ajax({
  83. url: "/SRM/PORelease/SelectColumnName?" + Math.random(),
  84. dataType: "json",
  85. async: false,
  86. success: function (data) {
  87. var cols = new Array();
  88. //来料检验
  89. if (Type == '1') {
  90. var collast = { label: "主键", name: "ID", hidden: true, key: true };
  91. cols.push(collast);
  92. var collast = { label: '送货单号', name: 'ASNCode', width: 120, align: 'left' };
  93. cols.push(collast);
  94. var collast = { label: '送货单行号', name: 'AsnSequence', width: 120, align: 'left' };
  95. cols.push(collast);
  96. var collast = { label: '采购订单号', name: 'POCode', width: 120, align: 'left' };
  97. cols.push(collast);
  98. var collast = { label: '采购订单行号', name: 'Sequence', width: 80, align: 'left' };
  99. cols.push(collast);
  100. var collast = { label: '单据日期', name: 'PODate', width: 100, align: 'left' };
  101. cols.push(collast);
  102. var collast = { label: '操作日期', name: 'MTIME', width: 60, align: 'left' };
  103. cols.push(collast);
  104. var collast = { label: '项目号', name: 'ProjectCode', width: 80, align: 'left' };
  105. cols.push(collast);
  106. var collast = { label: '供应商编码', name: 'VenCode', width: 100, align: 'left' };
  107. cols.push(collast);
  108. var collast = { label: '供应商名称', name: 'VenName', width: 150, align: 'left' };
  109. cols.push(collast);
  110. var collast = { label: '描述1', name: 'ClassCode', width: 100, align: 'left' };
  111. cols.push(collast);
  112. var collast = { label: '描述2', name: 'InvDesc', width: 100, align: 'left' };
  113. cols.push(collast);
  114. var collast = { label: '物料编码', name: 'InvCode', width: 60, align: 'left' };
  115. cols.push(collast);
  116. var collast = {
  117. label: '物料名称', name: 'InvName', width: 60, align: 'left'};
  118. cols.push(collast);
  119. var collast = { label: '规格型号', name: 'InvStd', width: 60, align: 'left', };
  120. cols.push(collast);
  121. var collast = { label: '计量单位', name: 'InvUnit', width: 60, align: 'left', };
  122. cols.push(collast);
  123. var collast = { label: '站点', name: 'WorkPointCode', width: 60, align: 'left', };
  124. cols.push(collast);
  125. var collast = { label: '组织号', name: 'WorkPoint', width: 60, align: 'left', };
  126. cols.push(collast);
  127. var collast = { label: '数量', name: 'Quantity', width: 60, align: 'left', };
  128. cols.push(collast);
  129. var collast = { label: '已生成数量', name: 'LotQty', width: 60, align: 'left', };
  130. cols.push(collast);
  131. var collast = { label: '回签状态', name: 'SignBackStatus', width: 60, align: 'left', hidden: true };
  132. cols.push(collast);
  133. var collast = { label: '最小包装量', name: 'MINQty', width: 60, align: 'left', hidden: true };
  134. cols.push(collast);
  135. var collast = { label: '是否启用有效期', name: 'EffectiveEnable', width: 60, align: 'left', hidden: true };
  136. cols.push(collast);
  137. var collast = { label: '有效期天数', name: 'EffectiveDays', width: 60, align: 'left', hidden: true };
  138. cols.push(collast);
  139. $.ajax({
  140. url: "/SRM/PORelease/SelectTableColumnName?" + Math.random(),
  141. dataType: "json",
  142. async: false,
  143. success: function (data) {
  144. if (data != null && data.length > 0) {
  145. DateList = data;
  146. for (var i = 0; i < data.length; i++) {
  147. var TableCode = data[i].TableCode;
  148. if (TableCode == "ICSPurchaseOrder") {
  149. var Code = data[i].Code;
  150. var Name = data[i].Name;
  151. var obj = new Array();
  152. obj = {
  153. label: Name,
  154. name: Code,
  155. width: 200,
  156. align: "left"
  157. }
  158. cols.push(obj);
  159. }
  160. }
  161. }
  162. _Closs = cols;
  163. //_Clos1 = cols1;
  164. }
  165. });
  166. }
  167. //产成品检验
  168. if (Type == '2') {
  169. var collast = { label: "主键", name: "ID", hidden: true, key: true };
  170. cols.push(collast);
  171. var collast = { label: '采购订单号', name: 'OOCode', width: 120, align: 'left' };
  172. cols.push(collast);
  173. var collast = { label: '采购订单行号', name: 'Sequence', width: 80, align: 'left' };
  174. cols.push(collast);
  175. var collast = { label: 'ERP行ID', name: 'OODetailID', hidden: true };
  176. cols.push(collast);
  177. var collast = { label: '单据日期', name: 'PODate', width: 100, align: 'left' };
  178. cols.push(collast);
  179. var collast = { label: '操作日期', name: 'MTIME', width: 60, align: 'left' };
  180. cols.push(collast);
  181. var collast = { label: '项目号', name: 'ProjectCode', width: 80, align: 'left' };
  182. cols.push(collast);
  183. var collast = { label: '供应商编码', name: 'VenCode', width: 100, align: 'left' };
  184. cols.push(collast);
  185. var collast = { label: '供应商名称', name: 'VenName', width: 150, align: 'left' };
  186. cols.push(collast);
  187. var collast = { label: '描述1', name: 'ClassCode', width: 100, align: 'left' };
  188. cols.push(collast);
  189. var collast = { label: '描述2', name: 'InvDesc', width: 100, align: 'left' };
  190. cols.push(collast);
  191. var collast = { label: '物料编码', name: 'InvCode', width: 60, align: 'left' };
  192. cols.push(collast);
  193. var collast = {
  194. label: '物料名称', name: 'InvName', width: 60, align: 'left'
  195. };
  196. cols.push(collast);
  197. var collast = { label: '规格型号', name: 'InvStd', width: 60, align: 'left', };
  198. cols.push(collast);
  199. var collast = { label: '计量单位', name: 'InvUnit', width: 60, align: 'left', };
  200. cols.push(collast);
  201. var collast = { label: '站点', name: 'WorkPointCode', width: 60, align: 'left', };
  202. cols.push(collast);
  203. var collast = { label: '组织号', name: 'WorkPoint', width: 60, align: 'left', };
  204. cols.push(collast);
  205. var collast = { label: '数量', name: 'Quantity', width: 60, align: 'left', };
  206. cols.push(collast);
  207. var collast = { label: '已生成数量', name: 'LotQty', width: 60, align: 'left', };
  208. cols.push(collast);
  209. var collast = { label: '已拒收数量', name: 'RefuseLotQty', width: 60, align: 'left', };
  210. cols.push(collast);
  211. var collast = { label: '已退货数量', name: 'BackLotQty', width: 60, align: 'left', };
  212. cols.push(collast);
  213. var collast = { label: '回签状态', name: 'SignBackStatus', width: 60, align: 'left', hidden: true };
  214. cols.push(collast);
  215. var collast = { label: '最小包装量', name: 'MINQty', width: 60, align: 'left', hidden: true };
  216. cols.push(collast);
  217. var collast = { label: '是否启用有效期', name: 'EffectiveEnable', width: 60, align: 'left', hidden: true };
  218. cols.push(collast);
  219. var collast = { label: '有效期天数', name: 'EffectiveDays', width: 60, align: 'left', hidden: true };
  220. cols.push(collast);
  221. $.ajax({
  222. url: "/SRM/PORelease/SelectTableColumnName?" + Math.random(),
  223. dataType: "json",
  224. async: false,
  225. success: function (data) {
  226. if (data != null && data.length > 0) {
  227. DateList = data;
  228. for (var i = 0; i < data.length; i++) {
  229. var TableCode = data[i].TableCode;
  230. if (TableCode == "ICSOutsourcingOrder") {
  231. var Code = data[i].Code;
  232. var Name = data[i].Name;
  233. var obj = new Array();
  234. obj = {
  235. label: Name,
  236. name: Code,
  237. width: 200,
  238. align: "left"
  239. }
  240. cols.push(obj);
  241. }
  242. }
  243. }
  244. _Closs = cols;
  245. //_Clos1 = cols1;
  246. }
  247. });
  248. }
  249. if (data != null && data.length > 0) {
  250. DateList = data;
  251. for (var i = 0; i < data.length; i++) {
  252. var ColName = data[i].ColName;
  253. var ColCode = data[i].ColCode;
  254. var obj = new Array();
  255. obj = {
  256. label: ColName,
  257. name: ColCode,
  258. width: 80,
  259. align: "left"
  260. }
  261. cols.push(obj);
  262. }
  263. }
  264. _Clos = cols;
  265. }
  266. });
  267. }
  268. //主表查询
  269. function gridList() {
  270. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> <div id="gridPager"></div>';//重置grid
  271. var $gridList = $("#gridList");
  272. var queryJson = {
  273. ORDERNO: $("#txt_ORDERNO").val(),
  274. POCode: $("#txt_POCode").val(),
  275. BeginDate: $("#txt_BeginDate").val(),
  276. EndDate: $("#txt_EndDate").val(),
  277. VenCode: $("#txt_VenCode").val(),
  278. VenName: $("#txt_VenName").val(),
  279. InvCode: $("#txt_InvCode").val(),
  280. POStatus: $("#selShow").val(),
  281. EATTRIBUTE12: $("#txt_EATTRIBUTE12").val(),
  282. BeginMTIME: $("#txt_BeginMTIME").val(),
  283. EndMTIME: $("#txt_EndMTIME").val(),
  284. }
  285. $gridList.dataGrid({
  286. url: "/PNSRM/CreateItemLot/GetGridJson" + "?" + Math.random(),
  287. postData: { queryJson: JSON.stringify(queryJson) },
  288. height: $(window).height() - 200,
  289. width: $(window).width() - 300,
  290. colModel: _Clos,
  291. width: "100%",
  292. autowidth: true,
  293. gridComplete: function () {
  294. },
  295. pager: "#gridPager",
  296. sortname: Posortname,
  297. sortorder: Posortorder,
  298. viewrecords: true,
  299. multiselect: true,
  300. subGrid: true, // (1)开启子表格支持
  301. subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数
  302. $("#gridList").jqGrid("setSelection", rowid, false);
  303. bindSubGrid(subgrid_id, rowid)
  304. }
  305. });
  306. $("#warehouse a.btn-default").click(function () {
  307. $("#warehouse a.btn-default").removeClass("active");
  308. $(this).addClass("active");
  309. $('#btn_search').trigger("click");
  310. });
  311. $("#btn_search").click(function () {
  312. var warehouse = $("#warehouse a.active").attr('data-value');
  313. var queryJson = {
  314. ORDERNO: $("#txt_ORDERNO").val(),
  315. POCode: $("#txt_POCode").val(),
  316. BeginDate: $("#txt_BeginDate").val(),
  317. EndDate: $("#txt_EndDate").val(),
  318. VenCode: $("#txt_VenCode").val(),
  319. VenName: $("#txt_VenName").val(),
  320. InvCode: $("#txt_InvCode").val(),
  321. POStatus: $("#selShow").val(),
  322. EATTRIBUTE12: $("#txt_EATTRIBUTE12").val(),
  323. BeginMTIME: $("#txt_BeginMTIME").val(),
  324. EndMTIME: $("#txt_EndMTIME").val(),
  325. }
  326. $gridList.jqGrid('setGridParam', {
  327. postData: { queryJson: JSON.stringify(queryJson) },
  328. page: 1
  329. }).trigger('reloadGrid');
  330. });
  331. }
  332. //子表查询
  333. function bindSubGrid(subgrid_id, rowid) {
  334. $("#gridList").jqGrid("setSelection", rowid, false);
  335. var subgrid_table_id;
  336. subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id
  337. var subgrid_pager_id;
  338. subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id
  339. // (5)动态添加子报表的table和pager
  340. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>");
  341. var POCode = $("#gridList").jqGrid('getRowData', rowid).ASNCode;
  342. var PORow = $("#gridList").jqGrid('getRowData', rowid).AsnSequence;
  343. var WorkPoint = $("#gridList").jqGrid('getRowData', rowid).WorkPointCode;
  344. // (6)创建jqGrid对象
  345. $("#" + subgrid_table_id).dataGrid({
  346. cellEdit: true,
  347. url: "/PNSRM/CreateItemLot/GetSubGridJson?POCode=" + POCode + "&PORow=" + PORow + "&WorkPoint=" + WorkPoint + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数
  348. colModel: [
  349. { label: "主键", name: "ID", hidden: true, key: true },
  350. { label: "条码号", name: "LotNO", width: 150, align: 'left' },
  351. { label: "生产日期", name: "ProductDate", width: 150, align: 'left' },
  352. { label: '条码数量', name: 'Quantity', width: 150, align: 'left' },
  353. { label: '已入库数量', name: 'ruku', width: 150, align: 'left' },
  354. { label: '打印次数', name: 'PrintTimes', width: 100, align: 'left' },
  355. { label: '最后一次打印时间', name: 'lastPrintTime', width: 100, align: 'left' },
  356. { label: 'WorkPoint', name: 'WorkPoint', width: 100, align: 'left', hidden: true },
  357. ],
  358. shrinkToFit: true,//宽度自适应
  359. multiselect: true,
  360. prmNames: { search: "search" },
  361. viewrecords: true,
  362. height: "100%",
  363. rowNum: 20,
  364. pager: subgrid_pager_id,
  365. });
  366. }
  367. //主表查询
  368. function gridList2() {
  369. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> <div id="gridPager"></div>';//重置grid
  370. var $gridList = $("#gridList");
  371. var queryJson = {
  372. ORDERNO: $("#txt_ORDERNO").val(),
  373. POCode: $("#txt_POCode").val(),
  374. BeginDate: $("#txt_BeginDate").val(),
  375. EndDate: $("#txt_EndDate").val(),
  376. VenCode: $("#txt_VenCode").val(),
  377. VenName: $("#txt_VenName").val(),
  378. InvCode: $("#txt_InvCode").val(),
  379. POStatus: $("#selShow").val(),
  380. BeginMTIME: $("#txt_BeginMTIME").val(),
  381. EndMTIME: $("#txt_EndMTIME").val(),
  382. }
  383. $gridList.dataGrid({
  384. url: "/PNSRM/CreateItemLot/GetGridJsonWeiWai" + "?" + Math.random(),
  385. postData: { queryJson: JSON.stringify(queryJson) },
  386. height: $(window).height() - 200,
  387. width: $(window).width() - 300,
  388. colModel: _Clos,
  389. width: "100%",
  390. autowidth: true,
  391. gridComplete: function () {
  392. },
  393. pager: "#gridPager",
  394. //sortname: 'PODate, OOCode',
  395. sortname: Oosortname,
  396. viewrecords: true,
  397. multiselect: true,
  398. beforeSelectRow: function (rowid, e) {
  399. $("#gridList").jqGrid('resetSelection');
  400. return (true);
  401. },
  402. subGrid: true, // (1)开启子表格支持
  403. subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数
  404. $("#gridList").jqGrid("setSelection", rowid, false);
  405. bindSubGrid2(subgrid_id, rowid)
  406. }
  407. });
  408. $("#warehouse a.btn-default").click(function () {
  409. $("#warehouse a.btn-default").removeClass("active");
  410. $(this).addClass("active");
  411. $('#btn_search').trigger("click");
  412. });
  413. $("#btn_search").click(function () {
  414. var warehouse = $("#warehouse a.active").attr('data-value');
  415. var queryJson = {
  416. ORDERNO: $("#txt_ORDERNO").val(),
  417. POCode: $("#txt_POCode").val(),
  418. BeginDate: $("#txt_BeginDate").val(),
  419. EndDate: $("#txt_EndDate").val(),
  420. VenCode: $("#txt_VenCode").val(),
  421. VenName: $("#txt_VenName").val(),
  422. InvCode: $("#txt_InvCode").val(),
  423. POStatus: $("#selShow").val(),
  424. BeginMTIME: $("#txt_BeginMTIME").val(),
  425. EndMTIME: $("#txt_EndMTIME").val(),
  426. }
  427. $gridList.jqGrid('setGridParam', {
  428. postData: { queryJson: JSON.stringify(queryJson) },
  429. page: 1
  430. }).trigger('reloadGrid');
  431. });
  432. }
  433. //子表查询
  434. function bindSubGrid2(subgrid_id, rowid) {
  435. $("#gridList").jqGrid("setSelection", rowid, false);
  436. var subgrid_table_id;
  437. subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id
  438. var subgrid_pager_id;
  439. subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id
  440. // (5)动态添加子报表的table和pager
  441. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>");
  442. var POCode = $("#gridList").jqGrid('getRowData', rowid).OOCode;
  443. var PORow = $("#gridList").jqGrid('getRowData', rowid).Sequence;
  444. var WorkPoint = $("#gridList").jqGrid('getRowData', rowid).WorkPointCode;
  445. // (6)创建jqGrid对象
  446. $("#" + subgrid_table_id).dataGrid({
  447. cellEdit: true,
  448. url: "/PNSRM/CreateItemLot/GetSubGridJsonByWeiWai?POCode=" + POCode + "&PORow=" + PORow + "&WorkPoint=" + WorkPoint + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数
  449. colModel: [
  450. { label: "主键", name: "ID", hidden: true, key: true },
  451. { label: "条码号", name: "LotNO", width: 150, align: 'left' },
  452. { label: "生产日期", name: "ProductDate", width: 150, align: 'left' },
  453. { label: '条码数量', name: 'Quantity', width: 150, align: 'left' },
  454. { label: '已入库数量', name: 'ruku', width: 150, align: 'left' },
  455. { label: '打印次数', name: 'PrintTimes', width: 100, align: 'left' },
  456. { label: '最后一次打印时间', name: 'lastPrintTime', width: 100, align: 'left' },
  457. { label: 'WorkPoint', name: 'WorkPoint', width: 100, align: 'left', hidden: true },
  458. ],
  459. shrinkToFit: true,//宽度自适应
  460. multiselect: true,
  461. prmNames: { search: "search" },
  462. viewrecords: true,
  463. height: "100%",
  464. rowNum: 20,
  465. pager: subgrid_pager_id,
  466. });
  467. }
  468. function btn_delete() {
  469. var objArr = '';
  470. var WorkPoint = '';
  471. var obj = $("#gridList").jqGrid("getRowData");
  472. for (var i = 0; i < obj.length; i++) {
  473. var $SubGird = $("#gridList_" + obj[i].ID + "_t");
  474. var $SubGirds = obj[i].WorkPointCode
  475. var rowData = $SubGird.jqGrid('getGridParam', 'selarrrow');
  476. if (rowData != "undefined" && rowData != null) {
  477. for (var j = 0; j < rowData.length; j++) {
  478. objArr += "'" + rowData[j] + "',";
  479. }
  480. WorkPoint = $SubGirds;
  481. }
  482. }
  483. if (objArr == "") {
  484. $.modalAlert("请选中条码删除!");
  485. return;
  486. }
  487. $.deleteForm({
  488. url: "/PNSRM/CreateItemLot/DeleteItemLot",
  489. param: { keyValue: JSON.stringify(objArr), WorkPoint: JSON.stringify(WorkPoint) },
  490. success: function () {
  491. $.currentWindow().$("#gridList").trigger("reloadGrid");
  492. }
  493. })
  494. }
  495. //生成条码
  496. function btnCreate() {
  497. debugger;
  498. var Result = '';
  499. var IsEable = "";
  500. var jsonData = '';
  501. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  502. if (ids.length != 1) {
  503. $.modalAlert("请选择一条采购订单行数据生成条码!");
  504. return;
  505. }
  506. var POCode = "";
  507. var PORow = "";
  508. var OOCode = "";
  509. var Sequence = "";
  510. var WorkPoint = '';
  511. var InvCode = '';
  512. var MINQty = '';
  513. var VenCode = '';
  514. var PODate = '';
  515. $.ajax({
  516. url: "/PNSRM/CreateItemLot/ISPOBack",
  517. dataType: "json",
  518. async: false,
  519. success: function (data) {
  520. Result = data.result;
  521. }
  522. });
  523. if (Type == '1') {
  524. for (var i in ids) {
  525. ASCode = $("#gridList").jqGrid('getRowData', ids[i]).ASNCode;
  526. ASRow = $("#gridList").jqGrid('getRowData', ids[i]).AsnSequence;
  527. POCode = $("#gridList").jqGrid('getRowData', ids[i]).POCode;
  528. PORow = $("#gridList").jqGrid('getRowData', ids[i]).Sequence;
  529. WorkPoint = $("#gridList").jqGrid('getRowData', ids[i]).WorkPointCode;
  530. InvCode = $("#gridList").jqGrid('getRowData', ids[i]).InvCode;
  531. VenCode = $("#gridList").jqGrid('getRowData', ids[i]).VenCode;
  532. PODate = $("#gridList").jqGrid('getRowData', ids[i]).PODate;
  533. MINQty = $("#gridList").jqGrid('getRowData', ids[i]).MINQty;
  534. $.ajax({
  535. url: "/PNSRM/CreateItemLot/ISEableDDSX?InvCode=" + InvCode + "&VenCode=" + VenCode + "&WorkPoint=" + WorkPoint + "&PODate=" + PODate + "&POCode=" + POCode + "&Sequence=" + PORow,
  536. dataType: "json",
  537. async: false,
  538. success: function (data) {
  539. debugger;
  540. IsEable = data.result;
  541. if (IsEable != "") {
  542. $.modalAlert(IsEable);
  543. return;
  544. }
  545. if (Result != "") {
  546. var SignBackStatus = $("#gridList").jqGrid('getRowData', ids[i]).SignBackStatus;
  547. if (SignBackStatus != "3") {
  548. $.modalAlert("请回签电子合同!");
  549. return;
  550. }
  551. }
  552. $.modalOpen({
  553. id: "FormAddItemLot",
  554. title: "条码生成",
  555. url: "/PNSRM/CreateItemLot/Form?POCode=" + POCode + "&PORow=" + PORow + "&ASCode=" + ASCode + "&ASRow=" + ASRow + "&WorkPoint=" + WorkPoint + "&InvCode=" + InvCode + "&MINQty=" + MINQty + "&" + Math.random(),
  556. width: "500px",
  557. height: "660px",
  558. callBack: function (iframeId) {
  559. top.frames[iframeId].submitForm();
  560. }
  561. });
  562. }
  563. });
  564. }
  565. }
  566. if (Type == '2') {
  567. for (var i in ids) {
  568. OOCode = $("#gridList").jqGrid('getRowData', ids[i]).OOCode;
  569. Sequence = $("#gridList").jqGrid('getRowData', ids[i]).Sequence;
  570. OODetailID = $("#gridList").jqGrid('getRowData', ids[i]).OODetailID;
  571. WorkPoint = $("#gridList").jqGrid('getRowData', ids[i]).WorkPointCode;
  572. InvCode = $("#gridList").jqGrid('getRowData', ids[i]).InvCode;
  573. MINQty = $("#gridList").jqGrid('getRowData', ids[i]).MINQty;
  574. }
  575. $.modalOpen({
  576. id: "FormAddItemLotWeiWai",
  577. title: "委外条码生成",
  578. url: "/PNSRM/CreateItemLot/Form2?OOCode=" + OOCode + "&Sequence=" + Sequence + "&WorkPoint=" + WorkPoint + "&OODetailID=" + OODetailID + "&InvCode=" + encodeURI(encodeURI(InvCode)) + "&MINQty=" + MINQty + "&" + Math.random(),
  579. width: "500px",
  580. height: "660px",
  581. callBack: function (iframeId) {
  582. top.frames[iframeId].submitForm();
  583. }
  584. });
  585. }
  586. }
  587. //批量生成条码
  588. function btnBatchCreate() {
  589. debugger;
  590. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  591. var ARR = [];
  592. var Result = '';
  593. var isCrQty = false;
  594. var thisCreateQty = "";
  595. var msg = "";
  596. $.ajax({
  597. url: "/PNSRM/CreateItemLot/ISPOBack",
  598. dataType: "json",
  599. async: false,
  600. success: function (data) {
  601. Result = data.result;
  602. }
  603. });
  604. for (var i in ids) {
  605. if (Result != "") {
  606. var SignBackStatus = $("#gridList").jqGrid('getRowData', ids[i]).SignBackStatus;
  607. if (SignBackStatus != "3") {
  608. $.modalAlert("请回签电子合同!");
  609. return;
  610. }
  611. }
  612. var PRODUCTDATE = new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate();//条码生产日期
  613. if ($("#gridList").jqGrid('getRowData', ids[i]).EffectiveEnable == 'true') {
  614. var ExpirationDate = dateChange($("#gridList").jqGrid('getRowData', ids[i]).EffectiveDays, PRODUCTDATE);
  615. } else {
  616. var ExpirationDate = '2999-12-31 00:00:00.000';//条码失效日期
  617. }
  618. var Quantity = Number($("#gridList").jqGrid('getRowData', ids[i]).Quantity)
  619. var MINQty = Number($("#gridList").jqGrid('getRowData', ids[i]).MINQty)
  620. var createPageCount = Math.ceil(Quantity / MINQty);
  621. var POCode = $("#gridList").jqGrid('getRowData', ids[i]).POCode;
  622. var PoRow = $("#gridList").jqGrid('getRowData', ids[i]).Sequence;
  623. var WorkPoints = $("#gridList").jqGrid('getRowData', ids[i]).WorkPointCode
  624. debugger;
  625. $.ajax({
  626. url: "/PNSRM/CreateItemLot/GetSubGridJsonByCreate?POCode=" + POCode + "&PORow=" + PoRow + "&WorkPoint=" + WorkPoints,
  627. //data: { keyValue: keyValue },
  628. dataType: "json",
  629. async: false,
  630. success: function (data) {
  631. Quantity = data.rows[0].Quantity.toFixed(2);
  632. CreatedQty = data.rows[0].CreatedQty.toFixed(2);
  633. RefuseLotQty = data.rows[0].RefuseLotQty.toFixed(2);
  634. BackLotQty = data.rows[0].BackLotQty.toFixed(2);
  635. thisCreateQty = Number(Number(Quantity) - Number(CreatedQty) + Number(RefuseLotQty) + Number(BackLotQty)).toFixed(2)
  636. if (Quantity < thisCreateQty || thisCreateQty==0) {
  637. isCrQty = true
  638. msg = "超订单生成条码请确认!"
  639. } else {
  640. }
  641. }
  642. });
  643. debugger;
  644. var obj = {
  645. POCode: $("#gridList").jqGrid('getRowData', ids[i]).POCode,
  646. PORow: $("#gridList").jqGrid('getRowData', ids[i]).Sequence,
  647. thisCreateQty: thisCreateQty,
  648. minPackQty: MINQty,
  649. createPageCount: createPageCount,
  650. WorkPoint: $("#gridList").jqGrid('getRowData', ids[i]).WorkPointCode,
  651. //VendorLot: VendorLot,
  652. PRODUCTDATE: PRODUCTDATE,
  653. ExpirationDate: ExpirationDate,
  654. Amount: 0,
  655. //自由项
  656. ProjectCode: '',
  657. BatchCode: '',
  658. Version: '',
  659. Brand: '',
  660. cFree1: '',
  661. cFree2: '',
  662. cFree3: '',
  663. cFree4: '',
  664. cFree5: '',
  665. cFree6: '',
  666. cFree7: '',
  667. cFree8: '',
  668. cFree9: '',
  669. cFree10: '',
  670. }
  671. ARR.push(obj);
  672. }
  673. if (!isCrQty) {
  674. $.submitForm({
  675. url: "/PNSRM/CreateItemLot/BatchSubmitForm",
  676. param: {
  677. keyValue: JSON.stringify(ARR)
  678. },
  679. success: function () {
  680. $.currentWindow().$("#gridList").trigger("reloadGrid");
  681. }
  682. })
  683. } else {
  684. debugger;
  685. $.modalAlert(msg);
  686. return;
  687. }
  688. }
  689. function dateChange(num, date) {
  690. if (!date) {
  691. date = new Date();//没有传入值时,默认是当前日期
  692. date = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
  693. }
  694. date += " 00:00:00";//设置为当天凌晨12点
  695. date = Date.parse(new Date(date)) / 1000;//转换为时间戳
  696. date += (86400) * num;//修改后的时间戳
  697. var newDate = new Date(parseInt(date) * 1000);//转换为时间
  698. return newDate.getFullYear() + '-' + (newDate.getMonth() + 1) + '-' + newDate.getDate();
  699. }
  700. </script>
  701. <iframe id="ifrm" src="" width="0" height="0"></iframe>
  702. <script>
  703. //打印
  704. function btnPrint() {
  705. debugger;
  706. // var mold = '00001';
  707. if (mold=='') {
  708. debugger;
  709. var objArr = '';
  710. var WorkPoint = '';
  711. var obj = $("#gridList").jqGrid("getRowData");
  712. for (var i = 0; i < obj.length; i++) {
  713. var $SubGird = $("#gridList_" + obj[i].ID + "_t");
  714. var rowData = $SubGird.jqGrid('getGridParam', 'selarrrow');
  715. if (rowData != "undefined" && rowData != null) {
  716. for (var j = 0; j < rowData.length; j++) {
  717. objArr += "'" + rowData[j] + "',";
  718. var rowDataZ = $SubGird.jqGrid('getRowData', rowData[j]);
  719. WorkPoint = rowDataZ.WorkPoint;
  720. }
  721. }
  722. }
  723. if (objArr == "") {
  724. $.modalAlert("请选择子表数据打印!");
  725. return;
  726. }
  727. var strPrintData;
  728. var bIsInstallPrintControl;
  729. var strPrintControlCookie;
  730. $.ajax({
  731. url: "/PNSRM/CreateItemLot/PrintItemLot",
  732. type: "post",
  733. data: { keyValue: JSON.stringify(objArr), WorkPoint: JSON.stringify(WorkPoint), Type: Type },
  734. dataType: "json",
  735. async: false,
  736. success: function (data) {
  737. strPrintData = data.strPrintData_1;
  738. bIsInstallPrintControl = data.bIsInstallPrintControl_1;
  739. strPrintControlCookie = data.strPrintControlCookie_1;
  740. }
  741. });
  742. if (strPrintData != '') {
  743. var test = "ChuLinPrint:" + strPrintData;
  744. $("#ifrm")[0].src = "ChuLinPrint:" + strPrintData;
  745. }
  746. if (bIsInstallPrintControl == 'False') {
  747. if (confirm("检测到打印控件未安装,您是否下载安装?")) {
  748. $("#downPrintControl").click();
  749. }
  750. }
  751. if (bIsInstallPrintControl == 'True') {
  752. var strPrintControlCookie = strPrintControlCookie;
  753. if (strPrintControlCookie != '') { //延时3秒后再次检测打印控件是否安装
  754. setTimeout("checkPrintControlInstall()", 8000);
  755. function checkPrintControlInstall() {
  756. $.ajax({
  757. url: "/SRM/CreateItemLot/IsCheckInstall?checkInstall=" + strPrintControlCookie,
  758. dataType: "json",
  759. async: false,
  760. success: function (strResult) {
  761. if (strResult.indexOf("PrintControlInstall") == -1) {
  762. if (confirm("检测到打印控件未安装,您是否下载安装?")) {
  763. $("#downPrintControl").click();
  764. }
  765. }
  766. }
  767. });
  768. }
  769. }
  770. }
  771. $("#btn_search").click();
  772. }
  773. else {
  774. var objArr = '';
  775. var arr = [];
  776. var obj = $("#gridList").jqGrid("getRowData");
  777. for (var i = 0; i < obj.length; i++) {
  778. var $SubGird = $("#gridList_" + obj[i].ID + "_t");
  779. var rowData = $SubGird.jqGrid('getGridParam', 'selarrrow');
  780. if (rowData != "undefined" && rowData != null && rowData.length != 0) {
  781. for (var j = 0; j < rowData.length; j++) {
  782. objArr += "'" + rowData[j] + "',";
  783. }
  784. }
  785. }
  786. objArr = objArr.slice(0, objArr.length - 1);
  787. if (objArr == "") {
  788. $.modalAlert("请选择子表数据打印!");
  789. return;
  790. }
  791. objArr = "" + objArr + "|";
  792. arr.push(objArr);
  793. $.modalOpen({
  794. id: "PrintLot",
  795. title: "打印",
  796. url: "/SRM/Print/PrintViewByLot?Arguments=" + encodeURI(encodeURI(arr)) + "&mold=" + mold + "&" + Math.random(),
  797. width: "550px",
  798. height: "1000px",
  799. callBack: function (iframeId) {
  800. top.frames[iframeId].submitForm();
  801. }
  802. });
  803. }
  804. }
  805. function btnPrintOrder() {
  806. if (mold == '') {
  807. var objArr = '';
  808. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  809. for (var i = 0; i < objList.length; i++) {
  810. var rowId = objList[i];
  811. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  812. if (Type == "1") {
  813. objArr += "'" + rowData.POCode + "',";
  814. } else {
  815. objArr += "'" + rowData.OOCode + "',";
  816. }
  817. }
  818. if (objArr == "") {
  819. $.modalAlert("请选择采购订单行打印!");
  820. return;
  821. }
  822. var strPrintData;
  823. var bIsInstallPrintControl;
  824. var strPrintControlCookie;
  825. $.ajax({
  826. url: "/PNSRM/CreateItemLot/PrintPurchaseOrder",
  827. type: "post",
  828. data: { keyValue: JSON.stringify(objArr), Type: Type },
  829. dataType: "json",
  830. async: false,
  831. success: function (data) {
  832. strPrintData = data.strPrintData_1;
  833. bIsInstallPrintControl = data.bIsInstallPrintControl_1;
  834. strPrintControlCookie = data.strPrintControlCookie_1;
  835. }
  836. });
  837. if (strPrintData != '') {
  838. var test = "ChuLinPrint:" + strPrintData;
  839. $("#ifrm")[0].src = "ChuLinPrint:" + strPrintData;
  840. }
  841. if (bIsInstallPrintControl == 'False') {
  842. if (confirm("检测到打印控件未安装,您是否下载安装?")) {
  843. $("#downPrintControl").click();
  844. }
  845. }
  846. if (bIsInstallPrintControl == 'True') {
  847. var strPrintControlCookie = strPrintControlCookie;
  848. if (strPrintControlCookie != '') { //延时3秒后再次检测打印控件是否安装
  849. setTimeout("checkPrintControlInstall()", 8000);
  850. function checkPrintControlInstall() {
  851. $.ajax({
  852. url: "/SRM/CreateItemLot/IsCheckInstall?checkInstall=" + strPrintControlCookie,
  853. dataType: "json",
  854. async: false,
  855. success: function (strResult) {
  856. if (strResult.indexOf("PrintControlInstall") == -1) {
  857. if (confirm("检测到打印控件未安装,您是否下载安装?")) {
  858. $("#downPrintControl").click();
  859. }
  860. }
  861. }
  862. });
  863. }
  864. }
  865. }
  866. $("#btn_search").click();
  867. } else {
  868. var objArr = '';
  869. var arr = [];
  870. /* var obj = $("#gridList").jqGrid("getRowData");*/
  871. var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  872. for (var i = 0; i < objList.length; i++) {
  873. var rowId = objList[i];
  874. var rowData = $("#gridList").jqGrid('getRowData', rowId);
  875. objArr += "'" + rowData.POCode + "',";
  876. }
  877. objArr = objArr.slice(0, objArr.length - 1);
  878. if (objArr == "") {
  879. $.modalAlert("请选择采购订单行打印!");
  880. return;
  881. }
  882. objArr = "" + objArr + "|";
  883. arr.push(objArr);
  884. //for (var i = 0; i < obj.length; i++) {
  885. // var $SubGird = $("#gridList_" + obj[i].ID + "_t");
  886. // var rowData = $SubGird.jqGrid('getGridParam', 'selarrrow');
  887. // if (rowData != "undefined" && rowData != null && rowData.length != 0) {
  888. // for (var j = 0; j < rowData.length; j++) {
  889. // objArr += "'" + rowData[j] + "',";
  890. // }
  891. // }
  892. //}
  893. $.modalOpen({
  894. id: "PrintLot",
  895. title: "打印",
  896. url: "/SRM/Print/PrintViewByLot?Arguments=" + encodeURI(encodeURI(arr)) + "&mold=" + mold + "&" + Math.random(),
  897. width: "550px",
  898. height: "1000px",
  899. callBack: function (iframeId) {
  900. top.frames[iframeId].submitForm();
  901. }
  902. });
  903. }
  904. }
  905. </script>
  906. <div class="topPanel" style="height:150px">
  907. <div class="toolbar" style="display:inline-block;">
  908. <div class="btn-group">
  909. <a id="NF-Create" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnCreate()"><i class="fa fa-pencil-square-o"></i>生成条码</a>
  910. <a id="NF-PrintOrder" authorize="yes"style="margin-left:3px;" class="btn btn-primary" onclick="btnPrintOrder()"><i class="fa fa-print"></i>订单打印</a>
  911. <a id="NF-Print" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnPrint()"><i class="fa fa-pencil-square-o"></i>打印</a>
  912. <a id="NF-delete" authorize="yes" style="margin-left:3px;" class="btn btn-danger" onclick="btn_delete()"><i class="fa fa-pencil-square-o"></i>删除</a>
  913. </div>
  914. <div class="btn-group" style="display:block;padding-left:2px;">
  915. <a id="NF-BatchCreate" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnBatchCreate()"><i class="fa fa-pencil-square-o"></i>批量生成条码</a>
  916. <a class="btn btn-primary" id="downPrintControl" href="~/PrintActivex.exe">点击下载打印组件</a>
  917. </div>
  918. <script>$('.toolbar').authorizeButton()</script>
  919. </div>
  920. <div class="search">
  921. <table>
  922. <tr>
  923. <td>
  924. <label>采购订单:</label>
  925. </td>
  926. <td>
  927. <div class="input-group">
  928. <input id="txt_POCode" type="text" class="form-control" placeholder="采购订单" style="width: 100px;">
  929. </div>
  930. </td>
  931. <td>
  932. <label>供应商编码:</label>
  933. </td>
  934. <td>
  935. <div class="input-group">
  936. <input id="txt_VenCode" type="text" class="form-control" placeholder="供应商编码" style="width: 100px;">
  937. </div>
  938. </td>
  939. <td>
  940. <label>&nbsp;&nbsp;&nbsp;供应商名称:</label>
  941. </td>
  942. <td>
  943. <div class="input-group">
  944. <input id="txt_VenName" type="text" class="form-control" placeholder="供应商名称" style="width: 100px;">
  945. </div>
  946. </td>
  947. </tr>
  948. <tr>
  949. <td>
  950. <label>项目号:</label>
  951. </td>
  952. <td>
  953. <div class="input-group">
  954. <input id="txt_ORDERNO" type="text" class="form-control" placeholder="项目号" style="width: 100px;">
  955. </div>
  956. </td>
  957. <td>
  958. <label>&nbsp;&nbsp;&nbsp;物料编码:</label>
  959. </td>
  960. <td>
  961. <div class="input-group">
  962. <input id="txt_InvCode" type="text" class="form-control" placeholder="物料编码" style="width: 100px;">
  963. </div>
  964. </td>
  965. <td>
  966. <label>&nbsp;&nbsp;&nbsp;是否全部生成:</label>
  967. </td>
  968. <td>
  969. <div class="input-group">
  970. <select id="selShow" name="F_Target" class="form-control" style="width: 100px;">
  971. <option value="0">显示全部</option>
  972. <option value="1">已全部生成</option>
  973. <option value="2" selected="selected">未全部生成</option>
  974. </select>
  975. </div>
  976. </td>
  977. <td>
  978. <label>&nbsp;&nbsp;&nbsp;操作日期(从):</label>
  979. </td>
  980. <td>
  981. <div class="input-group">
  982. <input type="text" name="txt_BeginMTIME" id="txt_BeginMTIME" class="form-control" style="width: 100px;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd' })" placeholder="单据日期(从)" />
  983. </div>
  984. </td>
  985. </tr>
  986. <tr>
  987. <td>
  988. <label>单据日期(从):</label>
  989. </td>
  990. <td>
  991. <div class="input-group">
  992. <input type="text" name="txt_BeginDate" id="txt_BeginDate" class="form-control" style="width: 100px;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd' })" placeholder="单据日期(从)" />
  993. </div>
  994. </td>
  995. <td>
  996. <label>&nbsp;&nbsp;&nbsp;单据日期(到):</label>
  997. </td>
  998. <td>
  999. <div class="input-group">
  1000. <input type="text" name="txt_EndDate" id="txt_EndDate" class="form-control" style="width: 100px;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd', minDate: txt_BeginDate.value })" placeholder="单据日期(到)" />
  1001. </div>
  1002. </td>
  1003. <td>
  1004. <label>&nbsp;&nbsp;&nbsp;外部采购订单号:</label>
  1005. </td>
  1006. <td>
  1007. <div class="input-group">
  1008. <input id="txt_EATTRIBUTE12" type="text" class="form-control" placeholder="外部采购订单号" style="width: 100px;">
  1009. </div>
  1010. </td>
  1011. <td>
  1012. <label>&nbsp;&nbsp;&nbsp;操作日期(到):</label>
  1013. </td>
  1014. <td>
  1015. <div class="input-group">
  1016. <input type="text" name="txt_EndMTIME" id="txt_EndMTIME" class="form-control" style="width: 100px;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd', minDate: txt_BeginDate.value })" placeholder="单据日期(到)" />
  1017. </div>
  1018. </td>
  1019. <td>&nbsp;&nbsp;&nbsp;</td>
  1020. <td>
  1021. <span class="input-group-btn">
  1022. <button id="btn_search" type="button" class="btn btn-primary"><i class="fa fa-search"></i></button>&nbsp;
  1023. @*<a id="refresh" class="btn btn-primary" style="margin-left:3px;" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a>*@
  1024. <button id="btn btn-info" type="button" style="margin-left:3px;" class="btn btn-primary" onclick="$.reload()"><i class=" glyphicon glyphicon-refresh"></i></button>
  1025. </span>
  1026. </td>
  1027. <td style="padding-left: 10px;"></td>
  1028. </tr>
  1029. </table>
  1030. </div>
  1031. </div>
  1032. <div class="gridPanel" id="gridPanel">
  1033. <table id="gridList"></table>
  1034. <div id="gridPager"></div>
  1035. </div>