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.

1397 lines
66 KiB

2 months ago
2 months ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
2 months ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
2 months ago
2 months ago
1 month ago
2 months ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  6. <link href="~/Content/js/select2/select2.min.css" rel="stylesheet" />
  7. <script src="~/Content/js/select2/select2.min.js"></script>
  8. <style>
  9. element.style {
  10. z-index: 10003;
  11. width: px;
  12. height: 900px;
  13. position: absolute;
  14. top: 177px;
  15. left: 403px;
  16. }
  17. </style>
  18. <script>
  19. var RFQCODE = $.request("RFQCODE");//询价单单号
  20. var QUOTATIONCODE = $.request("QUOTATIONCODE");//报价单单号
  21. var RoleEnCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  22. var UserName = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName'
  23. var STATUS = decodeURI($.request("STATUS"));//询价单状态
  24. var WorkPoint = $.request("WorkPoint");//询价单单号
  25. $(function () {
  26. debugger;
  27. if (STATUS == 'Close') {
  28. $(".toolbar").hide();//公司代码
  29. }
  30. SelHASCOSTDETAILS();
  31. GetVenDorFile();
  32. GetSORRVenDorFile();
  33. if (QUOTATIONCODE == '') {
  34. loadInfo();
  35. gridList();
  36. } else {
  37. SecondloadInfo();
  38. SecondgridList();
  39. }
  40. })
  41. function GetVenDorFile() {
  42. debugger;
  43. var Fules = '';
  44. $.ajax({
  45. //url: "/SRM/BicDoc_Seller/GetICSBidDoc" + "?" + Math.random() + "&BidCode=" + BidCode + "&WorkPoint=" + WorkPoints,
  46. url: "/SRM/QuotedPrice/GetVenDorFileTB?QUOTATIONCODE=" + QUOTATIONCODE,
  47. dataType: "json",
  48. async: false,
  49. success: function (data) {
  50. debugger;
  51. if (data.rows.length > 0) {
  52. Fules = data.rows[0].GYSFile;
  53. }
  54. }
  55. });
  56. debugger
  57. var innerhtml = '';
  58. if (Fules != "" && Fules != null) {
  59. debugger;
  60. var File = Fules.split(';');
  61. for (var i = 0; i < File.length; i++) {
  62. innerhtml += " <a href='../../../File/VendorFile/" + RoleEnCode + "/" + QUOTATIONCODE + "/" + File[i] + "' download='" + File[i] + "' style='color:blue;'>" + File[i] + "</a>";
  63. }
  64. $("#hidbtn").html(innerhtml);
  65. $("#fileName").val(Fules);
  66. }
  67. }
  68. function GetSORRVenDorFile() {
  69. debugger;
  70. var Fules = '';
  71. $.ajax({
  72. //url: "/SRM/BicDoc_Seller/GetICSBidDoc" + "?" + Math.random() + "&BidCode=" + BidCode + "&WorkPoint=" + WorkPoints,
  73. url: "/SRM/QuotedPrice/GetSORRVenDorFile?QUOTATIONCODE=" + QUOTATIONCODE,
  74. dataType: "json",
  75. async: false,
  76. success: function (data) {
  77. debugger;
  78. if (data.rows.length > 0) {
  79. Fules = data.rows[0].Filename;
  80. }
  81. }
  82. });
  83. debugger
  84. var innerhtml = '';
  85. if (Fules != "" && Fules != null) {
  86. debugger;
  87. var File = Fules.split(';');
  88. for (var i = 0; i < File.length; i++) {
  89. innerhtml += " <a href='../../../File/SORRFQFile/" + RFQCODE + "/" + File[i] + "' download='" + File[i] + "' style='color:blue;'>" + File[i] + "</a>";
  90. }
  91. $("#hidbtnSSORE").html(innerhtml);
  92. }
  93. }
  94. //首次加载
  95. function loadInfo() {
  96. var myDate = new Date;
  97. var year = myDate.getFullYear(); //获取当前年
  98. var mon = myDate.getMonth() + 1; //获取当前月
  99. var date = myDate.getDate(); //获取当前日
  100. // var week = myDate.getDay();
  101. $.ajax({
  102. url: "/SRM/PriceInquiry/GetTxtInfoByPN" + "?" + Math.random() + "&RFQCODE=" + RFQCODE,
  103. dataType: "json",
  104. async: false,
  105. success: function (data) {
  106. $("#txt_PURCHUGNAME").val(data.PURCHUGNAME);//采购组织
  107. $("#txt_RFQCODE").val(data.RFQCODE);//询价单号
  108. $("#txt_RFQNAME").val(data.RFQNAME);//询价单名称
  109. if (data.ITEMTYPE == 'Real') {
  110. var ITEMTYPE = '正式物料'
  111. } else {
  112. var ITEMTYPE = '临时物料'
  113. }
  114. $("#txt_ITEMTYPE").val(ITEMTYPE);//物料类型
  115. $("#txt_PURCHUGCODE").val(data.PURCHUGCONECT);//采购组
  116. $("#F_VENDORMEMO").val(data.MEMO);//备注
  117. $("#sel_VenCode").val(data.VENDORCODE);//供应商代码
  118. $("#txt_cVenName").val(data.cVenName);//供应商名称
  119. $("#txt_VENDORTYPE").val(data.VENDORTYPE);//供应商类型
  120. $("#txt_CURRENCY").val(data.CURRENCY);//币种
  121. $("#txt_TAXRATECODE").val(data.TAXRATE);//税率
  122. $("#txt_paymentClause").val(data.PAYMENTCONDITION);//付款条件
  123. $("#COMPANYCODE").val(data.COMPANYCODE);//公司代码
  124. //$("#Sel_HASCOSTDETAILS").val(data.HASCOSTDETAILS)//上传成本明细
  125. $("#Sel_HASCOSTDETAILS").val([data.HASCOSTDETAILS]).trigger("change");//是否有产品开发能
  126. debugger
  127. var innerhtml = '';
  128. if (data.FileName != "" && data.FileName != null) {
  129. debugger;
  130. str = data.FileName;
  131. var File = str.split(';');
  132. for (var i = 0; i < File.length; i++) {
  133. innerhtml += " <a href='../../../File/SORRFQFile/" + data.RFQCODE + "/" + File[i] + "' download='" + File[i] + "' style='color:blue;'>" + File[i] + "</a>";
  134. }
  135. $("#hidbtnSSORE").html(innerhtml);
  136. }
  137. }
  138. });
  139. GetQuotationNo();
  140. $("#txt_BeginDate").val(year + "-" + mon + "-" + date);//报价日期
  141. }
  142. //二次加载
  143. function SecondloadInfo() {
  144. debugger;
  145. var myDate = new Date;
  146. var year = myDate.getFullYear(); //获取当前年
  147. var mon = myDate.getMonth() + 1; //获取当前月
  148. var date = myDate.getDate(); //获取当前日
  149. // var week = myDate.getDay();
  150. $.ajax({
  151. url: "/SRM/PriceInquiry/SecondGetTxtInfoByPN?RFQCODE=" + RFQCODE + "&QUOTATIONCODE=" + QUOTATIONCODE + "&" + Math.random(),
  152. dataType: "json",
  153. async: false,
  154. success: function (data) {
  155. $("#InvCode").text(data.rows[0].InvCode);
  156. $("#txt_PURCHUGNAME").val(data.rows[0].PURCHUGNAME);//采购组织
  157. $("#txt_RFQCODE").val(data.rows[0].RFQCODE);//询价单号
  158. $("#txt_RFQNAME").val(data.rows[0].RFQNAME);//询价单名称
  159. if (data.ITEMTYPE == 'Real') {
  160. var ITEMTYPE = '正式物料'
  161. } else {
  162. var ITEMTYPE = '临时物料'
  163. }
  164. $("#txt_ITEMTYPE").val(data.rows[0].ITEMTYPE);//物料类型
  165. $("#txt_PURCHUGCODE").val(data.rows[0].PURCHUGNAME);//采购组
  166. $("#F_VENDORMEMO").val(data.rows[0].MEMO);//备注
  167. $("#sel_VenCode").val(data.rows[0].VENDORCODE);//供应商代码
  168. $("#txt_cVenName").val(data.rows[0].cVenName);//供应商名称
  169. $("#txt_VENDORTYPE").val(data.rows[0].VENDORTYPE);//供应商类型
  170. $("#txt_CURRENCY").val(data.rows[0].CURRENCY);//币种
  171. $("#txt_TAXRATECODE").val(data.rows[0].TAXRATE);//税率
  172. $("#txt_paymentClause").val(data.rows[0].PAYMENTCONDITION);//付款条件
  173. $("#COMPANYCODE").val(data.rows[0].COMPANYCODE);//公司代码
  174. $("#F_Description").val(data.rows[0].VENDORMEMO);//供方备注
  175. $("#txt_QUOTATIONCODE").val(data.rows[0].QUOTATIONCODE);//报价单号
  176. $("#txt_BeginDate").val(data.rows[0].QUOTEDATE);//报价日期
  177. //$("#Sel_HASCOSTDETAILS").val(data.rows[0].HASCOSTDETAILS)//上传成本明细
  178. $("#Sel_HASCOSTDETAILS").val([data.rows[0].HASCOSTDETAILS]).trigger("change");//是否有产品开发能
  179. }
  180. });
  181. $("#txt_BeginDate").val(year + "-" + mon + "-" + date);//报价日期
  182. }
  183. function SelHASCOSTDETAILS() {
  184. debugger;
  185. var $HASCOSTDETAILS = $("#Sel_HASCOSTDETAILS");
  186. $HASCOSTDETAILS.select2({
  187. allowClear: true,
  188. escapeMarkup: function (m) {
  189. return m;
  190. }
  191. });
  192. //$WhetheProdDevCapability.append("<option value=''>&nbsp;</option>");
  193. $HASCOSTDETAILS.append("<option value='0'>&nbsp;否</option>");
  194. $HASCOSTDETAILS.append("<option value='1'>&nbsp;是</option>");
  195. $("#Sel_HASCOSTDETAILS").val([0]).trigger("change");//是否上市公司
  196. }
  197. //新增时获取报价单号
  198. function GetQuotationNo() {
  199. $.ajax({
  200. url: "/SRM/QuotedPrice/GetQuotationNo" + "?" + Math.random() + "&RFQCODE=" + RFQCODE + "&WorkPoint=" + WorkPoint,
  201. dataType: "json",
  202. async: false,
  203. success: function (data) {
  204. $("#txt_QUOTATIONCODE").val(data.QuotationNo);//报价单号
  205. }
  206. });
  207. }
  208. @*function gridList() {
  209. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> <div id="gridPager"></div>';
  210. var $gridList = $("#gridList");
  211. $gridList.dataGrid({
  212. cellEdit: true,
  213. // url: "/SRM/QuotedPrice/GetGridJsonPrice?RFQCODE=" + RFQCODE + "&" + Math.random() + "&ITEMCODE=" + ITEMCODE + "&QUOTATIONCODE=" + QUOTATIONCODE,
  214. url: "/SRM/PriceInquiry/SelectOfferByPN?RFQCODE=" + RFQCODE + "&" + Math.random() + "&WorkPoint=" + WorkPoint,
  215. //postData: { queryJson: JSON.stringify(queryJson) },
  216. height: $(window).height() - 400,
  217. width: $(window).width() - 300,
  218. colModel: [
  219. { label: "主键", name: "ID", hidden: true},
  220. // { label: "主键", name: "ID", width: 150, align: 'left' },
  221. { label: "询价单明细ID", name: "EnquiryID", hidden: true, key: true },
  222. { label: '物料代码', name: 'ITEMCODE', width: 110, align: 'center' },
  223. { label: '物料名称', name: 'INVNAME', width: 110, align: 'center' },
  224. { label: '物料规格', name: 'InvStd', width: 150, align: 'center' },
  225. {label: '规格说明文件', name: 'RFQITEMREFERCODE', width: 200, align: 'center',
  226. formatter: function (cellvalue, options, rowObject) {
  227. var html = "";
  228. if (cellvalue != "" && cellvalue != null) {
  229. html = " <a href='../../../File/SORRFQFile/" + RFQCODE + "/" + cellvalue + "' download='" + cellvalue + "' style='color:#1281C1;'>" + cellvalue + "</a>";
  230. }
  231. return html;
  232. }
  233. },
  234. { label: '单位', name: 'UNIT', width: 50, align: 'center' },
  235. { label: '预计需求数量', name: 'REQUESTQUANTITY', width: 100, align: 'center' },
  236. // { label: '采购变更建议价格', name: 'QUOBUYERPRICE', width: 120, align: 'center' },
  237. {
  238. label: '人民币报价(未税)', name: 'UnitQUOPRICE', width: 80, align: 'center', editable: true,
  239. editrules: {
  240. number: true,
  241. //required: true,//必填设置
  242. custom: true,
  243. custom_func: function (value, colname) {
  244. if (value < 0) {
  245. return [false, colname + '必须为正数'];
  246. } else {
  247. return [true];
  248. }
  249. }
  250. },// 关键:添加编辑事件,当单元格编辑完成后触发计算
  251. oneditfunc: function (rowid) {
  252. // 1. 获取当前行数据
  253. var rowData = $gridList.jqGrid('getRowData', rowid);
  254. // 2. 获取未税价格(需转换为数字,避免字符串计算)
  255. var unitPrice = parseFloat(rowData.UnitQUOPRICE) || 0;
  256. // 3. 获取税率(假设从页面输入框获取,若固定税率可直接写死,如0.13表示13%)
  257. var taxRate = parseFloat($("#txt_TAXRATECODE").val()) || 0; // 从税率输入框取值
  258. taxRate = taxRate / 100; // 若税率单位是百分比(如13表示13%),需转换为小数
  259. // 4. 计算税额(保留2位小数)
  260. var taxAmount = (unitPrice * taxRate).toFixed(2);
  261. // 5. 计算含税价格(可选,未税价格 + 税额)
  262. var totalPrice = (parseFloat(unitPrice) + parseFloat(taxAmount)).toFixed(2);
  263. // 6. 填充税额到对应单元格
  264. $gridList.jqGrid('setCell', rowid, 'TaxAmount', taxAmount);
  265. // 7. 可选:自动填充含税价格
  266. $gridList.jqGrid('setCell', rowid, 'QUOPRICE', totalPrice);
  267. }
  268. },
  269. {
  270. label: '税额', name: 'TaxAmount', width: 80, align: 'center', editable: true,
  271. editrules: {
  272. number: true,
  273. //required: true,//必填设置
  274. custom: true,
  275. custom_func: function (value, colname) {
  276. if (value < 0) {
  277. return [false, colname + '必须为正数'];
  278. } else {
  279. return [true];
  280. }
  281. }
  282. }
  283. },
  284. {
  285. label: '人民币报价(含税)', name: 'QUOPRICE', width: 80, align: 'center', editable: true,
  286. editrules: {
  287. number: true,
  288. //required: true,//必填设置
  289. custom: true,
  290. custom_func: function (value, colname) {
  291. if (value < 0) {
  292. return [false, colname + '必须为正数'];
  293. } else {
  294. return [true];
  295. }
  296. }
  297. }
  298. },
  299. { label: '币种', name: 'Currency', width: 130, align: 'center', editable: true },
  300. { label: '最小包装量', name: 'MinPackQuantity', width: 130, align: 'center', editable: true },
  301. { label: '最小起定量', name: 'MOQ', width: 130, align: 'center', editable: true },
  302. {
  303. label: '货期(天)', name: 'ADDITION1', width: 150, align: 'center', editable: true,
  304. editrules: {
  305. number: true,
  306. //required: true,//必填设置
  307. custom: true,
  308. custom_func: function (value, colname) {
  309. if (value < 0) {
  310. return [false, colname + '必须为正数'];
  311. } else {
  312. return [true];
  313. }
  314. }
  315. }
  316. },
  317. { label: '供应商全称', name: 'VenFullName', width: 130, align: 'center', editable: true },
  318. { label: '采购员', name: 'Purchaser', width: 130, align: 'center', editable: true },
  319. { label: '产地', name: 'Origin', width: 130, align: 'center', editable: true },
  320. { label: '当日金属价格', name: 'DailyMetalPrices', width: 130, align: 'center', editable: true },
  321. { label: '加工费', name: 'ProcessingFee', width: 130, align: 'center', editable: true },
  322. { label: '备注', name: 'VENDORMEMO', width: 150, align: 'center', editable: true, },
  323. { label: '报价要求', name: 'PurchaseMEMO', width: 130, align: 'center' },
  324. { label: '物料类别', name: 'ITEMTYPE', hidden: true },
  325. { label: '物料规格', name: 'INVSTD', hidden: true },
  326. { label: '规格文件说明名字', name: 'RFQITEMREFERCODEName', hidden: true },
  327. { label: '参考价格', name: 'REFERPRICE', hidden: true },
  328. { label: '上次报价', name: 'LoadQUOPRICE', width: 130, align: 'center', hidden: true, },
  329. { label: '状态(判断是否定价通过)', name: 'QUOSTATUS', width: 130, align: 'center', hidden: true, },
  330. { label: '是否需要上传成本明细', name: 'HASCOSTDETAILS', width: 200, align: 'center', hidden: true },
  331. {label: '成本明细', name: 'COSTDETAILSREFERCODE', width: 350, align: 'center',
  332. formatter: function (cellvalue, options, rowObject) {
  333. var QuotationNo = $("#txt_QUOTATIONCODE").val();//报价单号
  334. var html = "";
  335. if (cellvalue != "" && cellvalue != null) {
  336. html = " <a href='../../../File/VendorFile/" + RoleEnCode + "/" + QuotationNo + "/" + cellvalue + "' download='" + cellvalue + "' style='color:#1281C1;'>" + cellvalue + "</a>";
  337. }
  338. return html;
  339. }, hidden: true
  340. },
  341. { label: '成本明细名称', name: 'COSTDETAILSREFERCODEName', width: 200, align: 'center', hidden: true },
  342. {label: ' ', name: 'ASS', width: 80, align: 'center',formatter: btnLook, hidden: true
  343. },
  344. ],
  345. rowNum: 10000,
  346. cellsubmit: "clientArray",
  347. pager: "#gridPager",
  348. sortorder: "desc",
  349. viewrecords: true,
  350. gridComplete: function () {
  351. debugger;
  352. // 1. 获取需要自动填充的供应商名称和采购员信息
  353. // 这里假设从页面元素或变量中获取(根据实际情况修改来源)
  354. var UserName = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName'
  355. var buyerName = '徐佳'; // 例如从隐藏域获取
  356. // 2. 遍历表格所有行数据
  357. var rows = $("#gridList").jqGrid("getDataIDs");
  358. for (var i = 0; i < rows.length; i++) {
  359. $gridList.jqGrid('setCell', rows[i], 'VenFullName', UserName);
  360. $gridList.jqGrid('setCell', rows[i], 'Purchaser', buyerName);
  361. }
  362. }
  363. // multiselect: true,
  364. });
  365. }*@
  366. function gridList() {
  367. document.getElementById("gridPanel").innerHTML = '<table id="gridList"></table><div id="gridPager"></div>';
  368. var $gridList = $("#gridList");
  369. $gridList.dataGrid({
  370. cellEdit: true,
  371. url: "/SRM/PriceInquiry/SelectOfferByPN?RFQCODE=" + RFQCODE + "&" + Math.random() + "&WorkPoint=" + WorkPoint,
  372. height: $(window).height() - 400,
  373. width: $(window).width() - 300,
  374. colModel: [
  375. { label: "主键", name: "ID", hidden: true },
  376. { label: "询价单明细ID", name: "EnquiryID", hidden: true, key: true },
  377. { label: '物料代码', name: 'ITEMCODE', width: 110, align: 'center' },
  378. { label: '物料名称', name: 'INVNAME', width: 110, align: 'center' },
  379. { label: '制造商', name: 'ManuFacturer', width: 180, align: 'left' },
  380. { label: '制造商料号', name: 'ManuFacturerInvCode', width: 180, align: 'left' },
  381. { label: '物料规格', name: 'InvStd', width: 150, align: 'center' },
  382. {
  383. label: '规格说明文件', name: 'RFQITEMREFERCODE', width: 200, align: 'center',
  384. formatter: function (cellvalue, options, rowObject) {
  385. var html = "";
  386. if (cellvalue != "" && cellvalue != null) {
  387. html = " <a href='../../../File/SORRFQFile/" + RFQCODE + "/" + cellvalue + "' download='" + cellvalue + "' style='color:#1281C1;'>" + cellvalue + "</a>";
  388. }
  389. return html;
  390. }
  391. },
  392. { label: '单位', name: 'UNIT', width: 50, align: 'center' },
  393. { label: '预计需求数量', name: 'REQUESTQUANTITY', width: 100, align: 'center' },
  394. {
  395. label: '人民币报价(未税)', name: 'UnitQUOPRICE', width: 80, align: 'center', editable: true,
  396. editrules: {
  397. number: true,
  398. custom: true,
  399. custom_func: function (value, colname) {
  400. if (value < 0) {
  401. return [false, colname + '必须为正数'];
  402. } else {
  403. return [true];
  404. }
  405. }
  406. }
  407. },
  408. {
  409. label: '税额', name: 'TaxAmount', width: 80, align: 'center', editable: true,
  410. editrules: {
  411. number: true,
  412. custom: true,
  413. custom_func: function (value, colname) {
  414. if (value < 0) {
  415. return [false, colname + '必须为正数'];
  416. } else {
  417. return [true];
  418. }
  419. }
  420. }
  421. },
  422. {
  423. label: '人民币报价(含税)', name: 'QUOPRICE', width: 80, align: 'center', editable: true,
  424. editrules: {
  425. number: true,
  426. custom: true,
  427. custom_func: function (value, colname) {
  428. if (value < 0) {
  429. return [false, colname + '必须为正数'];
  430. } else {
  431. return [true];
  432. }
  433. }
  434. }
  435. },
  436. {
  437. label: '报价(总价含税)', name: 'TotalPrice', width: 90, align: 'center',
  438. editrules: {
  439. number: true,
  440. //required: true,//必填设置
  441. custom: true,
  442. custom_func: function (value, colname) {
  443. if (value < 0) {
  444. return [false, colname + '必须为正数'];
  445. } else {
  446. return [true];
  447. }
  448. }
  449. }
  450. },
  451. //{
  452. // label: '币种', name: 'Currency', width: 130, align: 'center', edittype: 'select', editoptions: { value: GetItemCode(), }, editable: true, size: '50px', fontWeight: 'bolder',
  453. // formatter: function (cellvalue, options, rowObject) {
  454. // return cellvalue || "人民币";
  455. // },
  456. // unformat: function (cellvalue, options, cell) {
  457. // return cellvalue || "人民币";
  458. // }
  459. //},
  460. { label: '币种', name: 'Currency', width: 80, align: 'center', edittype: 'select', editoptions: { value: GetItemCode(), }, editable: true },
  461. { label: '最小包装量', name: 'MinPackQuantity', width: 130, align: 'center', editable: true },
  462. { label: '最小起定量', name: 'MOQ', width: 130, align: 'center', editable: true },
  463. {
  464. label: '货期(天)', name: 'ADDITION1', width: 150, align: 'center', editable: true,
  465. editrules: {
  466. number: true,
  467. custom: true,
  468. custom_func: function (value, colname) {
  469. if (value < 0) {
  470. return [false, colname + '必须为正数'];
  471. } else {
  472. return [true];
  473. }
  474. }
  475. }
  476. },
  477. { label: '产地', name: 'Origin', width: 130, align: 'center', editable: true },
  478. { label: '供应商全称', name: 'VenFullName', width: 130, align: 'center', editable: true },
  479. { label: '采购员', name: 'Purchaser', width: 130, align: 'center', editable: true },
  480. { label: '当日金属价格', name: 'DailyMetalPrices', width: 130, align: 'center', editable: true },
  481. { label: '加工费', name: 'ProcessingFee', width: 130, align: 'center', editable: true },
  482. { label: '备注', name: 'VENDORMEMO', width: 150, align: 'center', editable: true },
  483. { label: '报价要求', name: 'PurchaseMEMO', width: 130, align: 'center' },
  484. { label: '物料类别', name: 'ITEMTYPE', hidden: true },
  485. { label: '物料规格', name: 'INVSTD', hidden: true },
  486. { label: '规格文件说明名字', name: 'RFQITEMREFERCODEName', hidden: true },
  487. { label: '参考价格', name: 'REFERPRICE', hidden: true },
  488. { label: '上次报价', name: 'LoadQUOPRICE', width: 130, align: 'center', hidden: true },
  489. { label: '状态(判断是否定价通过)', name: 'QUOSTATUS', width: 130, align: 'center', hidden: true },
  490. { label: '是否需要上传成本明细', name: 'HASCOSTDETAILS', width: 200, align: 'center', hidden: true },
  491. {
  492. label: '成本明细', name: 'COSTDETAILSREFERCODE', width: 350, align: 'center',
  493. formatter: function (cellvalue, options, rowObject) {
  494. var QuotationNo = $("#txt_QUOTATIONCODE").val();
  495. var html = "";
  496. if (cellvalue != "" && cellvalue != null) {
  497. html = " <a href='../../../File/VendorFile/" + RoleEnCode + "/" + QuotationNo + "/" + cellvalue + "' download='" + cellvalue + "' style='color:#1281C1;'>" + cellvalue + "</a>";
  498. }
  499. return html;
  500. }, hidden: true
  501. },
  502. { label: '成本明细名称', name: 'COSTDETAILSREFERCODEName', width: 200, align: 'center', hidden: true },
  503. { label: ' ', name: 'ASS', width: 80, align: 'center', formatter: btnLook, hidden: true }
  504. ],
  505. rowNum: 10000,
  506. cellsubmit: "clientArray",
  507. pager: "#gridPager",
  508. sortorder: "desc",
  509. viewrecords: true,
  510. gridComplete: function () {
  511. $("#gridList").jqGrid('setLabel', 'ADDITION1', '', { 'color': 'red' });
  512. $("#gridList").jqGrid('setLabel', 'VenFullName', '', { 'color': 'red' });
  513. $("#gridList").jqGrid('setLabel', 'Purchaser', '', { 'color': 'red' });
  514. $("#gridList").jqGrid('setLabel', 'Origin', '', { 'color': 'red' });
  515. $("#gridList").jqGrid('setLabel', 'MinPackQuantity', '', { 'color': 'red' });
  516. $("#gridList").jqGrid('setLabel', 'MOQ', '', { 'color': 'red' });
  517. var UserName = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName';
  518. //var buyerName = '徐佳';
  519. var rows = $("#gridList").jqGrid("getDataIDs");
  520. for (var i = 0; i < rows.length; i++) {
  521. var rowData = $gridList.jqGrid('getRowData', rows[i]);
  522. $gridList.jqGrid('setCell', rows[i], 'VenFullName', UserName);
  523. $gridList.jqGrid('setCell', rows[i], 'Purchaser', rowData.Purchaser);
  524. if (!rowData.Currency) {
  525. $gridList.jqGrid('setCell', rows[i], 'Currency', '人民币');
  526. }
  527. }
  528. },
  529. afterSaveCell: function (rowid, cellname, value) {
  530. debugger;
  531. //总扣分数加其他扣分数
  532. if (cellname === 'QUOPRICE') {
  533. Price = Number(value);
  534. if (Price == 0) {
  535. $.modalAlert("价格为0需要备注原因!");
  536. return;
  537. }
  538. LoadQUOPRICE = Number($gridList.jqGrid("getCell", rowid, 'LoadQUOPRICE'));
  539. QUOSTATUS = $gridList.jqGrid("getCell", rowid, 'QUOSTATUS');
  540. RowsIDs = rowid;
  541. if (QUOSTATUS == 'PricingApprove') {
  542. $("#gridList").jqGrid('setCell', rowid, "QUOPRICE", LoadQUOPRICE);
  543. $.modalAlert("该物料已结束询价,无法再次报价!");
  544. return;
  545. }
  546. }
  547. }
  548. });
  549. // 使用jqGrid的单元格编辑完成事件替代oneditfunc
  550. $gridList.jqGrid('setGridParam', {
  551. afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
  552. debugger;
  553. // 只处理未税价格列的编辑
  554. if (cellname === 'UnitQUOPRICE') {
  555. // 1. 获取当前行数据
  556. var rowData = $gridList.jqGrid('getRowData', rowid);
  557. // 2. 获取未税价格(需转换为数字,避免字符串计算)
  558. var unitPrice = parseFloat(value) || 0;
  559. // 3. 获取税率
  560. var taxRate = parseFloat($("#F_Description").val()) || 0;
  561. taxRate = taxRate / 100;
  562. // 4. 计算税额(保留2位小数)
  563. var taxAmount = (unitPrice * taxRate).toFixed(2);
  564. // 5. 计算含税价格
  565. var totalPrice = (parseFloat(unitPrice) + parseFloat(taxAmount)).toFixed(2);
  566. // 6. 填充税额到对应单元格
  567. $gridList.jqGrid('setCell', rowid, 'TaxAmount', taxAmount);
  568. // 7. 填充含税价格
  569. $gridList.jqGrid('setCell', rowid, 'QUOPRICE', totalPrice);
  570. TotalPrice = Number($gridList.jqGrid("getCell", rowid, 'REQUESTQUANTITY')) * unitPrice;
  571. $("#gridList").jqGrid('setCell', rowid, "TotalPrice", TotalPrice);
  572. }
  573. }
  574. });
  575. }
  576. function SecondgridList() {
  577. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> <div id="gridPager"></div>';
  578. var $gridList = $("#gridList");
  579. $gridList.dataGrid({
  580. cellEdit: true,
  581. // url: "/SRM/QuotedPrice/GetGridJsonPrice?RFQCODE=" + RFQCODE + "&" + Math.random() + "&ITEMCODE=" + ITEMCODE + "&QUOTATIONCODE=" + QUOTATIONCODE,
  582. url: "/SRM/PriceInquiry/SecondSelectOfferByPN?RFQCODE=" + RFQCODE + "&QUOTATIONCODE=" + QUOTATIONCODE + "&" + Math.random(),
  583. //postData: { queryJson: JSON.stringify(queryJson) },
  584. height: $(window).height() - 400,
  585. width: $(window).width() - 300,
  586. colModel: [
  587. { label: "主键", name: "ID", hidden: true },
  588. // { label: "主键", name: "ID", width: 150, align: 'left' },
  589. { label: "询价单明细ID", name: "EnquiryID", hidden: true, key: true },
  590. { label: '物料代码', name: 'ITEMCODE', width: 110, align: 'center' },
  591. { label: '物料名称', name: 'INVNAME', width: 110, align: 'center' },
  592. { label: '制造商', name: 'ManuFacturer', width: 180, align: 'left' },
  593. { label: '制造商料号', name: 'ManuFacturerInvCode', width: 180, align: 'left' },
  594. {
  595. label: '规格说明文件', name: 'RFQITEMREFERCODE', width: 200, align: 'center',
  596. formatter: function (cellvalue, options, rowObject) {
  597. var html = "";
  598. if (cellvalue != "" && cellvalue != null) {
  599. html = " <a href='../../../File/SORRFQFile/" + RFQCODE + "/" + cellvalue + "' download='" + cellvalue + "' style='color:#1281C1;'>" + cellvalue + "</a>";
  600. }
  601. return html;
  602. }
  603. },
  604. { label: '报价要求', name: 'PurchaseMEMO', width: 130, align: 'center' },
  605. { label: '单位', name: 'UNIT', width: 50, align: 'center' },
  606. { label: '预计需求数量', name: 'REQUESTQUANTITY', width: 100, align: 'center' },
  607. // { label: '采购变更建议价格', name: 'QUOBUYERPRICE', width: 120, align: 'center' },
  608. {
  609. label: '报价(未税)', name: 'UnitQUOPRICE', width: 80, align: 'center', editable: true,
  610. editrules: {
  611. number: true,
  612. //required: true,//必填设置
  613. custom: true,
  614. custom_func: function (value, colname) {
  615. if (value < 0) {
  616. return [false, colname + '必须为正数'];
  617. } else {
  618. return [true];
  619. }
  620. }
  621. }
  622. },
  623. {
  624. label: '税额', name: 'TaxAmount', width: 80, align: 'center', editable: true,
  625. editrules: {
  626. number: true,
  627. //required: true,//必填设置
  628. custom: true,
  629. custom_func: function (value, colname) {
  630. if (value < 0) {
  631. return [false, colname + '必须为正数'];
  632. } else {
  633. return [true];
  634. }
  635. }
  636. }
  637. },
  638. { label: '报价(含税)', name: 'QUOPRICE', width: 80, align: 'center', editable: true, },
  639. {
  640. label: '报价(总价含税)', name: 'TotalPrice', width: 90, align: 'center',
  641. editrules: {
  642. number: true,
  643. //required: true,//必填设置
  644. custom: true,
  645. custom_func: function (value, colname) {
  646. if (value < 0) {
  647. return [false, colname + '必须为正数'];
  648. } else {
  649. return [true];
  650. }
  651. }
  652. }
  653. },
  654. //{
  655. // label: '币种', name: 'Currency', width: 130, align: 'center', edittype: 'select', editoptions: { value: GetItemCode(), }, editable: true, size: '50px', fontWeight: 'bolder',
  656. // formatter: function (cellvalue, options, rowObject) {
  657. // return cellvalue || "人民币";
  658. // },
  659. // unformat: function (cellvalue, options, cell) {
  660. // return cellvalue || "人民币";
  661. // }
  662. //},
  663. { label: '币种', name: 'Currency', width: 80, align: 'center', edittype: 'select', editoptions: { value: GetItemCode(), }, editable: true },
  664. {label: '最小包装量', name: 'MinPackQuantity', width: 130, align: 'center', editable: true },
  665. { label: '最小起定量', name: 'MOQ', width: 130, align: 'center', editable: true },
  666. {
  667. label: '货期(天)', name: 'ADDITION1', width: 150, align: 'center', editable: true,
  668. editrules: {
  669. number: true,
  670. //required: true,//必填设置
  671. custom: true,
  672. custom_func: function (value, colname) {
  673. if (value < 0) {
  674. return [false, colname + '必须为正数'];
  675. } else {
  676. return [true];
  677. }
  678. }
  679. }
  680. },
  681. { label: '产地', name: 'Origin', width: 130, align: 'center', editable: true },
  682. { label: '供应商全称', name: 'VenFullName', width: 130, align: 'center', editable: true },
  683. { label: '采购员', name: 'Purchaser', width: 130, align: 'center', editable: true },
  684. { label: '当日金属价格', name: 'DailyMetalPrices', width: 130, align: 'center', editable: true },
  685. { label: '加工费', name: 'ProcessingFee', width: 130, align: 'center', editable: true },
  686. { label: '备注', name: 'VENDORMEMO', width: 150, align: 'center', editable: true, },
  687. { label: '物料类别', name: 'ITEMTYPE', hidden: true },
  688. { label: '物料规格', name: 'INVSTD', hidden: true },
  689. { label: '规格文件说明名字', name: 'RFQITEMREFERCODEName', hidden: true },
  690. { label: '参考价格', name: 'REFERPRICE', hidden: true },
  691. { label: '上次报价', name: 'LoadQUOPRICE', width: 130, align: 'center', hidden: true, },
  692. { label: '状态(判断是否定价通过)', name: 'QUOSTATUS', width: 130, align: 'center', hidden: true, },
  693. { label: '是否需要上传成本明细', name: 'HASCOSTDETAILS', width: 200, align: 'center', hidden: true },
  694. {
  695. label: '成本明细', name: 'COSTDETAILSREFERCODE', width: 350, align: 'center',
  696. formatter: function (cellvalue, options, rowObject) {
  697. var QuotationNo = $("#txt_QUOTATIONCODE").val();//报价单号
  698. var html = "";
  699. if (cellvalue != "" && cellvalue != null) {
  700. html = " <a href='../../../File/VendorFile/" + RoleEnCode + "/" + QuotationNo + "/" + cellvalue + "' download='" + cellvalue + "' style='color:#1281C1;'>" + cellvalue + "</a>";
  701. }
  702. return html;
  703. }, hidden: true
  704. },
  705. { label: '成本明细名称', name: 'COSTDETAILSREFERCODEName', width: 200, align: 'center', hidden: true },
  706. {label: ' ', name: 'ASS', width: 80, align: 'center',formatter: btnLook, hidden: true},
  707. //{ label: '是否关闭', name: 'ISCLOSED', hidden: true },
  708. ],
  709. rowNum: 10000,
  710. cellsubmit: "clientArray",
  711. pager: "#gridPager",
  712. sortorder: "desc",
  713. viewrecords: true,
  714. multiselect: true,
  715. afterSaveCell: function (rowid, cellname, value) {
  716. debugger;
  717. //总扣分数加其他扣分数
  718. if (cellname == 'QUOPRICE') {
  719. Price = Number(value);
  720. var regex = /^(0|[1-9]\d*)(\.\d+)?$/;
  721. if (!regex.test(Price)) {
  722. $.modalAlert("单价请输入有效数字!");
  723. return;
  724. }
  725. if (Price < 0) {
  726. $.modalAlert("请输入大于0的单价!");
  727. return;
  728. }
  729. LoadQUOPRICE = Number($gridList.jqGrid("getCell", rowid, 'LoadQUOPRICE'));
  730. QUOSTATUS = $gridList.jqGrid("getCell", rowid, 'QUOSTATUS');
  731. RowsIDs = rowid;
  732. if (QUOSTATUS == 'PricingApprove') {
  733. $("#gridList").jqGrid('setCell', rowid, "QUOPRICE", LoadQUOPRICE);
  734. $.modalAlert("该物料已结束询价,无法再次报价!");
  735. return;
  736. }
  737. if (LoadQUOPRICE != 0) {
  738. if (Price > LoadQUOPRICE) {
  739. $("#gridList").jqGrid('setCell', rowid, "QUOPRICE", LoadQUOPRICE);
  740. $.modalAlert("所填报价不可大于上一次提交价格");
  741. return;
  742. }
  743. }
  744. }
  745. },
  746. gridComplete: function () {
  747. $("#gridList").jqGrid('setLabel', 'ADDITION1', '', { 'color': 'red' });
  748. $("#gridList").jqGrid('setLabel', 'VenFullName', '', { 'color': 'red' });
  749. $("#gridList").jqGrid('setLabel', 'Purchaser', '', { 'color': 'red' });
  750. $("#gridList").jqGrid('setLabel', 'Origin', '', { 'color': 'red' });
  751. }
  752. });
  753. }
  754. function GetItemCode() {
  755. var str = ":;人民币:人民币;欧元:欧元;美元:美元;英镑:英镑;日元:日元;港币:港币;澳元:澳元;新西兰元:新西兰元;瑞典克朗:瑞典克朗;韩币:韩币;新加坡元:新加坡元;加元:加元;卢布:卢布;南非兰特:南非兰特;卢比:卢比;泰铢:泰铢";
  756. return str;
  757. }
  758. function btnLook(cellvalue, options, rowObject) {
  759. return cellvalue = "<a class=\"btn btn-info dropdown-text\" onclick=\"Uploading('" + rowObject.ID + "')\">上传</a>";
  760. }
  761. //模态框显示详细信息子页面
  762. //function Uploading(ID) {
  763. // //var objList = $("#gridList").jqGrid('getGridParam', 'selarrrow');
  764. // //if (objList.length != 1) {
  765. // // $.modalAlert("请选择至少一行数据进行上传!");
  766. // // return;
  767. // //}
  768. // $("#FileUpID").val(ID);
  769. // $("#FileUp").click();
  770. //}
  771. function UpLoadFiles(STNO) {
  772. $("#FileUp").click();
  773. }
  774. function UpLoadFile(fileinfo) {
  775. debugger;
  776. var innerhtml = '';
  777. var ID = $("#FileUpID").val();
  778. var QuotationNo = $("#txt_QUOTATIONCODE").val();//报价单号
  779. var UserCode = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode'
  780. //data.append("STNO", $("#CurrentSTNO").val());
  781. //var info = document.getElementById("form1");
  782. //var formData = new FormData(info);
  783. //$.modalConfirm("确定上传文件吗?", function (r) {
  784. // debugger;
  785. // if (r) {
  786. var files = fileinfo.files;
  787. var fileName = "";
  788. for (var i = 0; i < files.length; i++) {
  789. var regex = /\s/;
  790. if (regex.test(files[i].name)) {
  791. $.modalAlert("文件名:<span style='color: red;'>" + files[i].name + "</span>,包含空格,上传失败,请修改后重新上传!", "warning");
  792. var file = document.getElementById('FileUp');
  793. file.value = "";
  794. return false;
  795. }
  796. fileName += "" + files[i].name + ";";
  797. if (fileName != null && fileName != "") {
  798. var data = new FormData();
  799. jQuery.each(jQuery('#FileUp')[0].files, function (i, file) {
  800. data.append('file-' + i, file);
  801. });
  802. $.ajax({
  803. url: "/SRM/QuotedPrice/UpLoadFile?QuotationNo=" + QuotationNo + "&" + Math.random(),
  804. type: "post",
  805. data: data,
  806. dataType: "json",
  807. contentType: false,
  808. processData: false,
  809. success: function (data) {
  810. debugger;
  811. if (data.state == "success") {
  812. $.modalMsg(data.message, data.state);
  813. $("#fileName").val(fileName);
  814. //$.currentWindow().$("#gridList").trigger("reloadGrid");
  815. }
  816. else {
  817. $.modalAlert("异常:" + data.message, data.state);
  818. }
  819. }
  820. });
  821. }
  822. }
  823. fileName = fileName.substring(0, fileName.length - 1);
  824. let arr1 = fileName.split(";");
  825. for (var k = 0; k < arr1.length; k++) {
  826. innerhtml += " <a href='../../../File/VendorFile/" + UserCode + "/" + QuotationNo + "/" + arr1[k] + "' download='" + arr1[k] + "' style='color:blue;'>" + arr1[k] + "</a>";
  827. }
  828. $("#hidbtn").html(innerhtml);
  829. // }
  830. //});
  831. var file = document.getElementById('FileUp');
  832. file.value = "";
  833. }
  834. function btn_refuse() {
  835. debugger;
  836. // $("#gridList").find($("td[aria-describedby='gridList_rn']")).click();//提交取消编辑状态
  837. var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  838. if (ids.length != 1) {
  839. $.modalAlert("请选择一行数据进行拒绝报价!");
  840. return;
  841. }
  842. for (var i in ids) {
  843. var VENDORREJECTREASON = $("#gridList").jqGrid('getRowData', ids[i]).VENDORREJECTREASON;
  844. if (VENDORREJECTREASON == '') {
  845. $.modalAlert("请先填写拒绝原因!");
  846. return;
  847. }
  848. $("#gridList").jqGrid('setCell', ids[i], "QUOSTATUS", 'VendorCheck');
  849. $("#gridList").jqGrid("setCell", ids[i], 'QUOPRICE', 0, 'not-editable-cell');
  850. }
  851. }
  852. function btnSave() {
  853. $("#gridList").find($("td[aria-describedby='gridList_rn']")).click();
  854. debugger;
  855. var msg = '';
  856. var PURCHUGNAME = $("#txt_PURCHUGNAME").val();//采购组织
  857. var RFQCODE = $("#txt_RFQCODE").val();//询价单号
  858. var RFQNAME = $("#txt_RFQNAME").val();//询价单名称
  859. var ITEMTYPE = $("#txt_ITEMTYPE").val();//物料类型
  860. var PURCHUGNAME = $("#txt_PURCHUGCODE").val();//采购组
  861. var MEMO = $("#F_VENDORMEMO").val();//备注
  862. var VENDORCODE = $("#sel_VenCode").val();//供应商代码
  863. var cVenName = $("#txt_cVenName").val();//供应商名称
  864. var VENDORTYPE = $("#txt_VENDORTYPE").val();//供应商类型
  865. var CURRENCY = $("#txt_CURRENCY").val();//币种
  866. var TAXRATE = $("#txt_TAXRATECODE").val();//税率
  867. var PAYMENTCONDITION = $("#txt_paymentClause").val();//付款条件
  868. var QuotationNo = $("#txt_QUOTATIONCODE").val();//报价单号
  869. var COMPANYCODE = $("#COMPANYCODE").val();//公司代码
  870. var Description = $("#F_Description").val();//税率
  871. var GYSFile = $("#fileName").val();//文件名称
  872. var HASCOSTDETAILS = $("#Sel_HASCOSTDETAILS").val();//是否上传成本
  873. if (Description == '') {
  874. $.modalAlert("请填写税率!", "warning");
  875. return false;
  876. }
  877. var regexTax = /^(?:100|\d{1,2})$/;
  878. if (!regexTax.test(Description)) {
  879. $.modalMsg("税率不符合规则!", "warning");
  880. return;
  881. }
  882. if (!$.isNumeric(Description)) {
  883. $.modalAlert("您所填写的税率不是数字,请重新填写!", "warning");
  884. return false;
  885. }
  886. var Details = [];
  887. var obj = [];
  888. var gridListAdd_Item1 = $("#gridList");
  889. var rowIds_gridListAdd = gridListAdd_Item1.getDataIDs();
  890. var arrayData_Item1 = new Array();
  891. if (rowIds_gridListAdd.length > 0) {
  892. for (var i = 0; i < rowIds_gridListAdd.length; i++) {
  893. var RowData_Item1 = gridListAdd_Item1.getRowData(rowIds_gridListAdd[i]);
  894. if (HASCOSTDETAILS == 1) {
  895. if (GYSFile == "" && GYSFile == '') {
  896. $.modalAlert("请上传物料成本明细!", "warning");
  897. return false;
  898. }
  899. }
  900. //if (RowData_Item1.LoadQUOPRICE != '') {
  901. // if (Number(RowData_Item1.QUOPRICE) > Number(RowData_Item1.LoadQUOPRICE)) {
  902. // $.modalAlert("所填报价不可大于上一次提交价格", "warning");
  903. // return false;
  904. // }
  905. //}
  906. var regex = /^(0|[1-9]\d*)(\.\d+)?$/;
  907. if (!regex.test(RowData_Item1.QUOPRICE)) {
  908. $.modalAlert("单价请输入有效数字!");
  909. return;
  910. }
  911. if (RowData_Item1.QUOPRICE < 0) {
  912. $.modalAlert("请输入大于0的单价!");
  913. return;
  914. }
  915. if (RowData_Item1.MinPackQuantity == "") {
  916. $.modalAlert("请输入最小包装量!");
  917. return;
  918. }
  919. if (RowData_Item1.MOQ == "") {
  920. $.modalAlert("请输入最小起定量!");
  921. return;
  922. }
  923. if (RowData_Item1.ADDITION1 == "") {
  924. $.modalAlert("请输入货期!");
  925. return;
  926. }
  927. if (RowData_Item1.VenFullName == "") {
  928. $.modalAlert("请输入供应商全称!");
  929. return;
  930. }
  931. if (RowData_Item1.Purchaser == "") {
  932. $.modalAlert("请输入采购员!");
  933. return;
  934. }
  935. if (RowData_Item1.Origin == "") {
  936. $.modalAlert("请输入产地!");
  937. return;
  938. }
  939. //if (RowData_Item1.DailyMetalPrices == "") {
  940. // $.modalAlert("请输入当日金属价格!");
  941. // return;
  942. //}
  943. if (RowData_Item1.QUOPRICE == "") {
  944. msg += "" + RowData_Item1.ITEMCODE + ","
  945. }
  946. var objs = {
  947. ID: RowData_Item1.ID,
  948. EnquiryID: RowData_Item1.EnquiryID,//询价单明细ID
  949. ITEMCODE: RowData_Item1.ITEMCODE,//物料代码
  950. INVNAME: RowData_Item1.INVNAME,//物料名称
  951. //ITEMTYPE: RowData_Item1.ITEMTYPE,//物料类别
  952. INVSTD: RowData_Item1.INVSTD,//物料规格
  953. RFQITEMREFERCODE: RowData_Item1.RFQITEMREFERCODEName,//规格文件说明
  954. UNIT: RowData_Item1.UNIT,//单位
  955. QUOSTATUS: RowData_Item1.QUOSTATUS,//报价状态
  956. REQUESTQUANTITY: RowData_Item1.REQUESTQUANTITY,//预计需求数量
  957. // REFERPRICE: RowData_Item1.REFERPRICE,//参考价格
  958. QUOBUYERPRICE: RowData_Item1.REFERPRICE,//采购建议变更价格
  959. QUOPRICE: RowData_Item1.QUOPRICE,//报价
  960. // VENDORREJECTREASON: RowData_Item1.VENDORREJECTREASON,//拒绝原因
  961. COSTDETAILSREFERCODE: RowData_Item1.COSTDETAILSREFERCODEName,//成本明细
  962. TotalPrice: RowData_Item1.TotalPrice,//报价总价
  963. VENDORMEMO: RowData_Item1.VENDORMEMO,//供方备注
  964. ADDITION1: RowData_Item1.ADDITION1,//期货
  965. EATTRIBUTE20: RowData_Item1.UnitQUOPRICE,
  966. EATTRIBUTE21: RowData_Item1.TaxAmount,
  967. EATTRIBUTE22: RowData_Item1.Currency,
  968. EATTRIBUTE23: RowData_Item1.MinPackQuantity,
  969. EATTRIBUTE24: RowData_Item1.MOQ,
  970. EATTRIBUTE25: RowData_Item1.VenFullName,
  971. EATTRIBUTE26: RowData_Item1.Purchaser,
  972. EATTRIBUTE27: RowData_Item1.Origin,
  973. EATTRIBUTE28: RowData_Item1.DailyMetalPrices,
  974. EATTRIBUTE29: RowData_Item1.ProcessingFee,
  975. };
  976. Details.push(objs);
  977. }
  978. var obja = {
  979. QuotationNo: QuotationNo,
  980. WorkPoint:WorkPoint,
  981. PURCHUGNAME: PURCHUGNAME,
  982. RFQCODE: RFQCODE,
  983. RFQNAME: RFQNAME,
  984. ITEMTYPE: ITEMTYPE,
  985. PURCHUGNAME: PURCHUGNAME,
  986. MEMO: MEMO,
  987. GYSFile: GYSFile,
  988. VENDORCODE: VENDORCODE,
  989. cVenName: cVenName,
  990. VENDORTYPE: VENDORTYPE,
  991. CURRENCY: CURRENCY,
  992. TAXRATE: TAXRATE,
  993. PAYMENTCONDITION: PAYMENTCONDITION,
  994. Description: Description,
  995. COMPANYCODE: COMPANYCODE,
  996. Details: Details,
  997. };
  998. obj.push(obja);
  999. }
  1000. if (msg == "") {
  1001. //$.modalConfirm("请仔细核对单价,提交后不能撤回或高于本次提交价格!", function (r) {
  1002. // if (r) {
  1003. $.submitForm({
  1004. url: "/SRM/PriceInquiry/SaveQuotationByPN" + "?" + Math.random(),
  1005. param: {
  1006. keyValue: JSON.stringify(obj)
  1007. },
  1008. success: function () {
  1009. debugger;
  1010. $.currentWindow().$("#gridList").trigger("reloadGrid");
  1011. }
  1012. })
  1013. // }
  1014. //});
  1015. } else {
  1016. $.modalAlert("物料编码" + msg + "未报价请查看!", "warning");
  1017. return false;
  1018. }
  1019. }
  1020. function DownLoadClick(url) {
  1021. debugger;
  1022. if (url == "") {
  1023. $.modalAlert('模板暂未维护无法下载,请联系管理员!');
  1024. return;
  1025. }
  1026. window.open(url);
  1027. }
  1028. //导出
  1029. function btn_export() {
  1030. var postData = "&keyValue=1";
  1031. if (RFQCODE != null && RFQCODE != "") {
  1032. postData = "&RFQCODE=" + RFQCODE
  1033. }
  1034. if (WorkPoint != null && WorkPoint != "") {
  1035. postData += "&WorkPoint=" + WorkPoint
  1036. }
  1037. $.download("/SRM/QuotedPrice/ExportAll" + "?" + Math.random(), postData, 'post');
  1038. }
  1039. function btn_import() {
  1040. $("#FileUpImport").click();
  1041. }
  1042. function btnUpLoad(up) {
  1043. debugger;
  1044. var BidCode = $("#txtBidCode").val();
  1045. var GUID = $("#txtID").val();
  1046. var WorkPoint = $("#sel_WorkPoint option:checked").val();
  1047. var form = new FormData(document.getElementById("form1"));
  1048. $.ajax({
  1049. url: "/SRM/QuotedPrice/GetICSImport?" + Math.random(),
  1050. type: "post",
  1051. data: form,
  1052. contentType: false,
  1053. processData: false,
  1054. dataType: "json",
  1055. success: function (data) {
  1056. debugger;
  1057. if (data.length > 0) {
  1058. for (var k = 0; k < data.length; k++) {
  1059. var obj_Item1 = $("#gridList");
  1060. var rowIds_Item1 = obj_Item1.getDataIDs();
  1061. if (rowIds_Item1.length > 0) {
  1062. for (var i = 0; i < rowIds_Item1.length; i++) {
  1063. var RowData_Item1 = obj_Item1.getRowData(rowIds_Item1[i]);
  1064. if (data[k].ID == rowIds_Item1[i]) {
  1065. if (data[k].报价 > RowData_Item1.QUOPRICE) {
  1066. $.modalAlert("所填报价不可大于上一次提交价格");
  1067. return;
  1068. } else {
  1069. $("#gridList").jqGrid('setCell', data[k].ID, "QUOPRICE", data[k].报价);
  1070. $("#gridList").jqGrid('setCell', data[k].ID, "ADDITION1", data[k].货期);
  1071. }
  1072. }
  1073. }
  1074. }
  1075. }
  1076. }
  1077. },
  1078. error: function (aa) {
  1079. alert("上传失败:" + aa);
  1080. }
  1081. });
  1082. document.getElementById("FileUpImport").value = "";
  1083. }
  1084. </script>
  1085. <form id="form1">
  1086. <div class="topPanel" style="height:295px">
  1087. <div class="toolbar">
  1088. <div class="btn-group">
  1089. <input id="FileUpImport" name="FileUpImport" type="file" style="display:none;" accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" onchange="btnUpLoad(this)" />
  1090. <a id="NF-updateASN" authorize="yes" style="margin-left:3px; margin-top:60px;" class="btn btn-info" onclick="btnSave()"><i class="fa fa-pencil-square-o"></i>发布报价</a>
  1091. <a id="NF_export" authorize="yes" style="margin-left: 3px; margin-top: 60px;" class="btn btn-info" onclick="btn_export()"><i class="fa fa-pencil-square-o"></i>导出</a>
  1092. <a id="NF-import" authorize="yes" style="margin-left:3px; margin-top:60px;" class="btn btn-info" onclick="btn_import()"><i class="fa fa-pencil-square-o"></i>导入</a>
  1093. </div>
  1094. <div class="btn-group" style="display:block;padding-left:2px;">
  1095. <a id="NF-CreateASN1" authorize="yes" style="margin-left:3px; margin-top:10px;" class="btn btn-info" onclick="DownLoadClick('../../../../File/报价模板.xls')" download="报价模板.xlsx"><i class="fa fa-pencil-square-o"></i>下载成本明细模板</a>
  1096. <a class="btn btn-info" style="margin-left:3px; margin-top:10px;" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a>
  1097. @*<a id="NF-deleteASN3" authorize="yes" style="margin-left:10px; margin-top:10px;" class="btn btn-primary" onclick="btn_back()"><i class="fa fa-pencil-square-o"></i>返回</a>*@
  1098. </div>
  1099. </div>
  1100. <div class="search">
  1101. <table>
  1102. <tr>
  1103. <td class="txtInquiry" colspan="1" style="color:gray;line-height:25px;height:25px"><span>询价单信息</span></td>
  1104. </tr>
  1105. @*第一行*@
  1106. <tr>
  1107. <!--<td>
  1108. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;采购组织:</label>
  1109. </td>
  1110. <td>
  1111. <div class="input-group">
  1112. <input id="txt_PURCHUGNAME" type="text" class="form-control" placeholder="采购组织" style="width: 150px;" readonly="readonly">
  1113. <input type="hidden" id="COMPANYCODE" />-->
  1114. @*公司代码*@
  1115. <!--</div>
  1116. </td>
  1117. <td>
  1118. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;采购负责人:</label>
  1119. </td>
  1120. <td>
  1121. <div class="input-group">
  1122. <input id="txt_PURCHUGCODE" type="text" class="form-control" placeholder="采购负责人" style="width: 150px;" readonly="readonly">
  1123. </div>
  1124. </td>-->
  1125. <td>
  1126. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;询价单号:</label>
  1127. </td>
  1128. <td>
  1129. <div class="input-group">
  1130. <input id="txt_RFQCODE" type="text" class="form-control" placeholder="询价单号" style="width: 150px;" readonly="readonly">
  1131. </div>
  1132. </td>
  1133. <td>
  1134. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;询价单名称:</label>
  1135. </td>
  1136. <td>
  1137. <div class="input-group">
  1138. <input id="txt_RFQNAME" type="text" class="form-control" placeholder="询价单名称" style="width: 150px;" readonly="readonly">
  1139. </div>
  1140. </td>
  1141. <td style="display:none">
  1142. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;付款条件:</label>
  1143. </td>
  1144. <td style="display:none">
  1145. <div class="input-group">
  1146. <input id="txt_paymentClause" type="text" class="form-control" placeholder="付款条件" style="width: 150px;" readonly="readonly">
  1147. </div>
  1148. </td>
  1149. </tr>
  1150. <tr>
  1151. <td>
  1152. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是否需上传成本明细:</label>
  1153. </td>
  1154. @*<th class="formTitle">
  1155. 是否需上传成本明细:
  1156. </th>*@
  1157. <td class="formValue" style="width:100px">
  1158. <select id="Sel_HASCOSTDETAILS" name="Sel_HASCOSTDETAILS" class="select2 form-control " placeholder="是否需上传成本明细.." style="width:32px;" disabled="disabled"></select>
  1159. </td>
  1160. <td>
  1161. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;备注:</label>
  1162. </td>
  1163. <td>
  1164. <div class="input-group">
  1165. <input id="F_VENDORMEMO" type="text" class="form-control" placeholder="备注" style="width: 150px;" readonly="readonly">
  1166. </div>
  1167. </td>
  1168. </tr>
  1169. @*第二行*@
  1170. <tr style="display:none">
  1171. <td>
  1172. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;供应商代码:</label>
  1173. </td>
  1174. <td class="formValue">
  1175. <div class="input-group">
  1176. <input id="sel_VenCode" type="text" class="form-control" placeholder="供应商代码" style="width: 150px;" readonly="readonly">
  1177. </div>
  1178. </td>
  1179. <td>
  1180. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;供应商名称:</label>
  1181. </td>
  1182. <td>
  1183. <div class="input-group">
  1184. <input id="txt_cVenName" type="text" class="form-control" placeholder="供应商名称" style="width: 150px;" readonly="readonly">
  1185. </div>
  1186. </td>
  1187. <td>
  1188. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;供应商类型:</label>
  1189. </td>
  1190. <td>
  1191. <div class="input-group">
  1192. <input id="txt_VENDORTYPE" type="text" class="form-control" placeholder="供应商类型" style="width: 150px;" readonly="readonly">
  1193. </div>
  1194. </td>
  1195. <td>
  1196. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;物料类型:</label>
  1197. </td>
  1198. <td>
  1199. <div class="input-group">
  1200. <input id="txt_ITEMTYPE" type="text" class="form-control" placeholder="物料类型" style="width: 150px;" readonly="readonly">
  1201. </div>
  1202. </td>
  1203. <td>
  1204. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;币种:</label>
  1205. </td>
  1206. <td>
  1207. <div class="input-group">
  1208. <input id="txt_CURRENCY" type="text" class="form-control" placeholder="币种" style="width: 150px;" readonly="readonly">
  1209. </div>
  1210. </td>
  1211. <td>
  1212. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;税率(%):</label>
  1213. </td>
  1214. <td>
  1215. <div class="input-group">
  1216. <input id="txt_TAXRATECODE" type="text" class="form-control" placeholder="税率" style="width: 150px;" readonly="readonly">
  1217. </div>
  1218. </td>
  1219. </tr>
  1220. <tr>
  1221. <td class="txtInquiry" colspan="1" style="color:gray;line-height:25px;height:25px"><span>报价单信息</span></td>
  1222. </tr>
  1223. <tr>
  1224. <td>
  1225. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;报价单代码:</label>
  1226. </td>
  1227. <td>
  1228. <div class="input-group">
  1229. <input id="txt_QUOTATIONCODE" type="text" class="form-control" placeholder="报价单代码" style="width: 150px;" readonly="readonly">
  1230. </div>
  1231. </td>
  1232. <td>
  1233. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;报价单日期:</label>
  1234. </td>
  1235. <td>
  1236. <div class="input-group">
  1237. @*<input type="text" name="txt_BeginDate" id="txt_BeginDate" class="form-control" style="width: 100px;" readonly="readonly" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd' })" placeholder="报价单日期" />*@
  1238. <input id="txt_BeginDate" type="text" class="form-control" placeholder="报价日期" style="width: 150px;" readonly="readonly">
  1239. </div>
  1240. </td>
  1241. <td>
  1242. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;税率(%):</label>
  1243. </td>
  1244. <td colspan="5">
  1245. <div class="input-group">
  1246. <textarea id="F_Description" name="F_Description" class="form-control" style="height: 30px;width:150px"></textarea>
  1247. </div>
  1248. </td>
  1249. </tr>
  1250. <tr>
  1251. <td>
  1252. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;询价附件:</label>
  1253. </td>
  1254. <td class="formValue" colspan="3">
  1255. <div id="hidbtnSSORE" style=" border: 1px #edeff3 solid"></div>
  1256. </td>
  1257. </tr>
  1258. <tr>
  1259. <td>
  1260. <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;附件名称:</label>
  1261. </td>
  1262. <td class="formValue" colspan="3">
  1263. @*<input id="fileName" name="fileName" class="form-control" readonly="readonly" style="width:600px" />*@
  1264. <input id="fileName" name="fileName" style="display:none">
  1265. <div id="hidbtn" style=" border: 1px #edeff3 solid"></div>
  1266. </td>
  1267. <td class="formValue">
  1268. <input id='FileUp' type='file' style="display: none" onchange="UpLoadFile(this)" multiple="multiple" />
  1269. <button id="btn_FileUp" class="btn btn-info" type="button" onclick="UpLoadFiles(this)">上传报价明细</button>
  1270. </td>
  1271. </tr>
  1272. </table>
  1273. </div>
  1274. </div>
  1275. <div class="gridPanel" id="gridPanel">
  1276. <table id="gridList"></table>
  1277. <div id="gridPager"></div>
  1278. </div>
  1279. </form>