apply.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. (function () {
  2. var lists = [];
  3. let flowInstanceId = "";
  4. let viewState = z.ui.comm.getUrlParam("_o");
  5. let isFirst = z.ui.comm.getUrlParam("first");
  6. var contractId = $("[name='contract$id']").val()
  7. var contractAmount = $("[name='contract$contractAmount'] input").val()
  8. window.onload = function () {
  9. flowInstanceId = z.ui.comm.getUrlParam("flowInstanceId");
  10. bindEvents();
  11. };
  12. function bindEvents() {
  13. initData();
  14. initCalcTax();
  15. initContractMilestone();
  16. initSelectMainType();
  17. bindGenerateSerial();
  18. z.workflow.saveBtn.addListener("onSaveClick", submit);
  19. }
  20. function initData(){
  21. initClient();
  22. initAssignee()
  23. initAreaManager();
  24. }
  25. function initSelectMainType() {
  26. z.ui.select("[name='contract$mainType']").bindEvents({
  27. onAfterSelect:function(value,data){
  28. if(value === '5' ){
  29. $("#attach").show();
  30. } else {
  31. $("#attach").hide();
  32. }
  33. }
  34. });
  35. var now = z.ui.select("[name='contract$mainType']").getValue();
  36. if (now ==='5'){
  37. $("#attach").show();
  38. } else {
  39. $("#attach").hide();
  40. }
  41. }
  42. function bindGenerateSerial(){
  43. $("#generateSerial").on("click",function(){
  44. var serial = $("[name='contract$contractNumber'] input").val();
  45. var projectTypeCode = $("[name=projectTypeCode]").val();
  46. var xzqh = $("[name=xzqh]").val();
  47. var params = {"projectType": projectTypeCode,"xzqh": xzqh};
  48. var postdata = {"name": '合同编号',"params": params}
  49. if(serial) {
  50. z.ui.confirm("confirm").init({
  51. content: '已有编号[' +serial + '],重新生成会覆盖原有编号,是否继续?',
  52. onConfirm: function() {
  53. z.ui.ajax({
  54. type: "post",
  55. contentType: "application/json",
  56. url: "/common/generate-serial-number",
  57. data: JSON.stringify(postdata),
  58. success: function (res) {
  59. if(res && res.code === 0){
  60. $("[name='contract$contractNumber'] input").val(res.data)
  61. } else {
  62. z.ui.alertWarning(res.msg);
  63. }
  64. },
  65. error: function (res) {
  66. }
  67. })
  68. },
  69. onCancel: function () {
  70. }
  71. })
  72. } else {
  73. z.ui.ajax({
  74. type: "post",
  75. contentType: "application/json",
  76. url: "/common/generate-serial-number",
  77. data: JSON.stringify(postdata),
  78. success: function (res) {
  79. if(res && res.code === 0){
  80. $("[name='contract$contractNumber'] input").val(res.data)
  81. } else {
  82. z.ui.alertWarning(res.msg);
  83. }
  84. },
  85. error: function (res) {
  86. }
  87. })
  88. }
  89. })
  90. }
  91. function initClient(){
  92. z.ui.ajax({
  93. type: "get",
  94. url: "/customer-tree",
  95. data: {},
  96. success: function (res) {
  97. if(res && res.code === 0 && res.data.length > 0){
  98. selecttree("[name='client']",res.data,clickClient)
  99. }
  100. },
  101. error: function () {
  102. }
  103. })
  104. }
  105. function initAssignee(){
  106. z.ui.ajax({
  107. type: "get",
  108. url: "/common/company-tree",
  109. data: {},
  110. success: function (res) {
  111. if(res && res.code === 0 && res.data.length > 0){
  112. selecttree("[name='assignee']",res.data,clickAssignee)
  113. }
  114. },
  115. error: function () {
  116. }
  117. })
  118. }
  119. function initCalcTax(){
  120. $('[name="contract$taxHsjeJskf"] input').on('change',function (){
  121. calcTax();
  122. })
  123. $('[name="contract$taxHsjeFw"] input').on('change',function (){
  124. calcTax();
  125. })
  126. $('[name="contract$taxHsjeRjcp"] input').on('change',function (){
  127. calcTax();
  128. })
  129. $('[name="contract$taxHsjeYj"] input').on('change',function (){
  130. calcTax();
  131. })
  132. }
  133. function initContractMilestone(){
  134. var milestoneList = JSON.parse(window.milestoneList);
  135. if (milestoneList.length > 0) {
  136. for (let i = 0; i < milestoneList.length; i++) {
  137. let obj = {
  138. name: milestoneList[i].name || "",
  139. returnAmount: milestoneList[i].returnAmount || "",
  140. actualReturnAmount: milestoneList[i].actualReturnAmount || "",
  141. planReturnTime: milestoneList[i].planReturnTime || "",
  142. description: milestoneList[i].description || "",
  143. id: milestoneList[i].id || "",
  144. contractId: milestoneList[i].contractId || contractId,
  145. sortnum: milestoneList[i].sortnum || ""
  146. }
  147. lists.push(obj)
  148. }
  149. }
  150. $("#addData").click(function(){
  151. addContractMilestone();
  152. })
  153. updateView()
  154. }
  155. function submit(all, istransfer) {
  156. var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: istransfer});
  157. if (postData === false) {
  158. all({success: false});
  159. return;
  160. }
  161. var milestoneFlag = false;
  162. var milestoneList = new Array()
  163. for (let key of Object.keys(postData)) {
  164. let mealName = postData[key];
  165. if (key.startsWith("ContractMilestone")) {
  166. if(parseFloat(mealName.actualReturnAmount) && parseFloat(mealName.actualReturnAmount) > 0 ){
  167. all({success: false, errorMsg: "里程碑回款金额不能大于0!"});
  168. return;
  169. }
  170. mealName.contractId = contractId;
  171. milestoneList.push(z.ui.form.childStringify(mealName));
  172. milestoneFlag =true;
  173. }
  174. }
  175. if(istransfer && !milestoneFlag){
  176. all({success: false, errorMsg: "请填写合同里程碑!"});
  177. return;
  178. }
  179. postData.milestoneList = milestoneList;
  180. z.ui.ajax({
  181. url: z.ui.comm.getEntranceUrl("/flow/contract/update"),
  182. data: z.ui.form.childStringify(postData),
  183. success: function () {
  184. all({success: true});
  185. },
  186. error: function () {
  187. all({success: false});
  188. }
  189. })
  190. }
  191. function calcTax() {
  192. var hsje_jskf = parseFloat($('[name="contract$taxHsjeJskf"] input').val()) || 0;
  193. var hsje_fw = parseFloat($('[name="contract$taxHsjeFw"] input').val()) || 0;
  194. var hsje_rjcp = parseFloat($('[name="contract$taxHsjeRjcp"] input').val()) || 0;
  195. var hsje_yj = parseFloat($('[name="contract$taxHsjeYj"] input').val()) || 0;
  196. var hsje_total = parseFloat((hsje_jskf + hsje_fw + hsje_rjcp + hsje_yj).toFixed(2));
  197. $('[name="contract$taxHsjeTotal"] input').val(hsje_total);
  198. var bhsje_jskf = parseFloat(hsje_jskf.toFixed(2));
  199. var bhsje_fw = parseFloat((hsje_fw / (1 + 0.06)).toFixed(2));
  200. var bhsje_rjcp = parseFloat((hsje_rjcp / (1 + 0.13)).toFixed(2));
  201. var bhsje_yj =parseFloat( (hsje_yj / (1 + 0.13)).toFixed(2));
  202. var bhsje_total = parseFloat((bhsje_jskf + bhsje_fw + bhsje_rjcp + bhsje_yj).toFixed(2));
  203. $('[name="contract$taxBhsze"] input').val(bhsje_total);
  204. $('[name="contract$taxZhsl"] input').val(((hsje_total - bhsje_total) / bhsje_total).toFixed(6));
  205. var zhsl = 0;
  206. var htje = parseFloat($('[name="contract$contractAmount"] input').val()) || 0;
  207. if (htje == 0){
  208. zhsl = 1;
  209. } else {
  210. zhsl = (1 - parseFloat(bhsje_total / htje)).toFixed(2);
  211. }
  212. }
  213. function initAreaManager(){
  214. z.ui.ajax({
  215. type: "get",
  216. url: "/common/user-tree",
  217. data: {},
  218. success: function (res) {
  219. if(res && res.length > 0){
  220. // selecttree("[name='areaManager']",res,onClear,clickAreaManager,setAreaManager,allowUserClick,{ "Y": "s", "N": "s" })
  221. selecttree("[name='areaManager']",res,clickAreaManager,allowUserClick,onClear,setAreaManager)
  222. }
  223. },
  224. error: function () {
  225. }
  226. })
  227. }
  228. function onClear(){
  229. $("[name='contract$areaManagerId']").val('');
  230. $("[name='contract$areaManager']").val('');
  231. }
  232. function setAreaManager(){
  233. var ids = $("[name='contract$areaManagerId']").val();
  234. if(ids){
  235. z.ui.selecttree("[name='areaManager']").setValue(ids.split(","));
  236. }
  237. }
  238. // function clickAreaManager(even, treeId, treeNode) {
  239. // var ids = [];
  240. // var names = [];
  241. // var nodes = z.ui.selecttree("[name='areaManager']").tree.getCheckedNodes();
  242. // for(var i in nodes){
  243. // ids.push(nodes[i].id);
  244. // names.push(nodes[i].name);
  245. // }
  246. // if(ids.length > 0){
  247. // $("[name='contract$areaManagerId']").val(ids.join(","));
  248. // $("[name='contract$areaManager']").val(names.join(","));
  249. // }
  250. // }
  251. function clickAreaManager(even, treeId, treeNode) {
  252. $("[name='contract$areaManagerId']").val(treeNode.id);
  253. $("[name='contract$areaManager']").val(treeNode.name);
  254. }
  255. function clickClient(even, treeId, treeNode) {
  256. $("[name='contract$clientName']").val(treeNode.name);
  257. $("[name='contract$clientId']").val(treeNode.id);
  258. $("[name='contract$clientNumber'] input").val(treeNode.extendData.customerNumber);
  259. }
  260. function clickAssignee(even, treeId, treeNode) {
  261. $("[name='contract$assigneeName']").val(treeNode.name);
  262. $("[name='contract$assigneeId']").val(treeNode.id);
  263. }
  264. function updateList(){
  265. lists = [];
  266. var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: false});
  267. for (let key of Object.keys(postData)) {
  268. let mealName = postData[key];
  269. if (key.startsWith("ContractMilestone")) {
  270. var dataObj = {
  271. name: mealName.name,
  272. returnAmount: mealName.returnAmount,
  273. actualReturnAmount: mealName.actualReturnAmount,
  274. planReturnTime: mealName.planReturnTime,
  275. description: mealName.description,
  276. id: mealName.id,
  277. contractId: contractId,
  278. sortnum: lists.length
  279. }
  280. lists.push(dataObj);
  281. }
  282. }
  283. }
  284. function addContractMilestone(){
  285. var trFragment = document.createDocumentFragment();
  286. let tbody = document.querySelectorAll('.tbody tr')
  287. let qjsjElements = document.getElementsByName("contract_milestone_seq");
  288. var dataObj = {
  289. name: "",
  290. returnAmount: "",
  291. actualReturnAmount: 0,
  292. planReturnTime: "",
  293. description: "",
  294. id: "",
  295. contractId: contractId,
  296. sortnum: lists.length - 1
  297. }
  298. lists.push(dataObj);
  299. trFragment.appendChild(generateTableTrHtml(lists.length-1))
  300. var index = lists.length - 1;
  301. $(".tbody").append(trFragment)
  302. $("#delBtn_" + index).click(function () {
  303. var i = this.id.substring(this.id.indexOf("_") + 1)
  304. z.ui.confirm("compid").init({
  305. content: "确定删除吗?",
  306. onConfirm: function () {
  307. var element = document.getElementById("contract_milestone_" + i);
  308. element.remove();
  309. buildSeq();
  310. updateList();
  311. //lists.splice(i,1);
  312. updateView();
  313. },
  314. onCancel: function () {
  315. }
  316. })
  317. })
  318. $("#editBtn_" + index).click(function () {
  319. var i = this.id.substring(this.id.indexOf("_") + 1)
  320. const span = $(this).find("span");
  321. const html = span.html();
  322. if (html === '编辑') {
  323. span.html('保存')
  324. detailWrite(i);
  325. $("#addData").attr('disabled', "true");
  326. $("#contract_milestone_" + i).removeClass("form-table-disable")
  327. return;
  328. }
  329. if (html === '保存') {
  330. span.html('编辑')
  331. detailReadonly(i, false,"contract_milestone_")
  332. $("#addData").removeAttr('disabled')
  333. $("#contract_milestone_" + i).addClass("form-table-disable")
  334. return;
  335. }
  336. })
  337. z.ui.date("[name='ContractMilestone[" + (lists.length-1) + "]$planReturnTime']").init()
  338. buildSeq();
  339. for (let i = 0; i < tbody.length; i++) {
  340. z.ui.date("[name='ContractMilestone[" + i + "]$planReturnTime']").init({
  341. done: function (value, date, endDate) {
  342. //改变日期后触发
  343. console.log(value);
  344. }
  345. });
  346. }
  347. }
  348. function buildSeq() {
  349. let elementsByName = document.getElementsByName("contract_milestone_seq");
  350. for (let i = 0; i < elementsByName.length; i++) {
  351. const seqElement = elementsByName[i];
  352. seqElement.innerHTML = i + 1;
  353. }
  354. }
  355. function updateView() {
  356. let tbodyQjsq = document.querySelector('.tbodyQjsq')
  357. let html = ''
  358. for (let i = 0; i < lists.length; i++) {
  359. var ratio = '';
  360. if(parseFloat(contractAmount) && parseFloat(contractAmount) > 0 ){
  361. ratio = ((lists[i].returnAmount / parseFloat(contractAmount)) * 100).toFixed(2) + '%';
  362. }
  363. html += '<tr class="qjsjClass" id="contract_milestone_' + i + '" style="background:#fff">'
  364. + '<td name="contract_milestone_seq">' + (i + 1) + '</td>'
  365. + '<td>'
  366. + '<div class="form-flex">'
  367. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  368. + '<input type="hidden" name="ContractMilestone[' + i + ']$id" value="'+lists[i].id+'"/>'
  369. + '<input type="hidden" name="ContractMilestone[' + i + ']$sortnum" value="'+lists[i].sortnum+'"/>'
  370. + '<div class="z-comp-input" name="ContractMilestone[' + i + ']$name">'
  371. + '<input type="text" value="'+lists[i].name+'">'
  372. + '</div>'
  373. + '</div>'
  374. + '</div>'
  375. + '</td>'
  376. + '<td>'
  377. + '<div class="form-flex">'
  378. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  379. + '<div class="z-comp-input">'
  380. + '<input type="text" value="'+ratio+'">'
  381. + '</div>'
  382. + '</div>'
  383. + '</div>'
  384. + '</td>'
  385. + '<td>'
  386. + '<div class="form-flex">'
  387. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  388. + '<div class="z-comp-input" name="ContractMilestone[' + i + ']$returnAmount">'
  389. + '<input type="text" value="'+lists[i].returnAmount+'">'
  390. + '</div>'
  391. + '</div>'
  392. + '</div>'
  393. + '</td>'
  394. + '<td>'
  395. + '<div class="form-flex">'
  396. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  397. + '<div class="z-comp-input" name="ContractMilestone[' + i + ']$actualReturnAmount">'
  398. + '<input type="text" value="'+lists[i].actualReturnAmount+'">'
  399. + '</div>'
  400. + '</div>'
  401. + '</div>'
  402. + '</td>'
  403. + '<td>'
  404. + '<div class="form-flex">'
  405. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  406. + '<div class="z-comp-date" name="ContractMilestone[' + i + ']$planReturnTime">'
  407. + '<input type="text" value="'+lists[i].planReturnTime+'">'
  408. + '</div>'
  409. + '</div>'
  410. + '</div>'
  411. + '</td>'
  412. + '<td>'
  413. + '<div class="form-flex">'
  414. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  415. + '<div class="z-comp-input" name="ContractMilestone[' + i + ']$description">'
  416. + '<input type="text" value="'+lists[i].description+'">'
  417. + '</div>'
  418. + '</div>'
  419. + '</div>'
  420. + '</td>'
  421. + '<td>'
  422. if(isFirst === '1' && viewState !== 'v') {
  423. html += "<div style='display: flex;white-space: nowrap'>"
  424. +'<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
  425. + '<span>编辑</span>'
  426. + '</div>'
  427. + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
  428. + '<span>删除</span>'
  429. + '</div></div>'
  430. }
  431. html += '</td></tr>';
  432. }
  433. tbodyQjsq.innerHTML = html
  434. for (let i = 0; i < lists.length; i++) {
  435. z.ui.date("[name='ContractMilestone[" + i + "]$planReturnTime']").init()
  436. if(isFirst === '1' && viewState !== 'v') {
  437. $("#delBtn_" + i).click(function () {
  438. z.ui.confirm("compid").init({
  439. content: "确定删除吗?",
  440. onConfirm: function () {
  441. var element = document.getElementById("contract_milestone_" + i);
  442. element.remove();
  443. buildSeq();
  444. updateList();
  445. //lists.splice(i, 1)
  446. updateView();
  447. },
  448. onCancel: function () {
  449. }
  450. })
  451. })
  452. $("#editBtn_" + i).click(function () {
  453. const span = $(this).find("span");
  454. const html = span.html();
  455. if (html === '编辑') {
  456. span.html('保存')
  457. detailWrite(i);
  458. $("#addData").attr('disabled', "true");
  459. $("#contract_milestone_" + i).removeClass("form-table-disable")
  460. return;
  461. }
  462. if (html === '保存') {
  463. span.html('编辑')
  464. detailReadonly(i, false, "contract_milestone_")
  465. $("#addData").removeAttr('disabled')
  466. $("#contract_milestone_" + i).addClass("form-table-disable")
  467. return;
  468. }
  469. })
  470. }
  471. detailReadonly(i,false,"contract_milestone_")
  472. $("#contract_milestone_" + i).addClass("form-table-disable")
  473. // if(viewState === 'v' || read=== '1'){
  474. // detailReadonly(i)
  475. // }
  476. }
  477. // detailTotalInit()
  478. }
  479. function generateTableTrHtml(index) {
  480. var trDom = document.createElement("tr");
  481. trDom.style.backgroundColor = "#fff";
  482. trDom.id = "contract_milestone_" + index;
  483. trDom.className = 'qjsjClass';
  484. trDom.innerHTML = '<td name="contract_milestone_seq">' + (index + 1) + '</td>'
  485. + '<td>'
  486. + '<div class="form-flex">'
  487. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  488. + '<input type="hidden" name="ContractMilestone[' + index + ']$sortnum" value="'+(index+1)+'">'
  489. + '<div class="z-comp-input" name="ContractMilestone[' + index + ']$name">'
  490. + '<input type="text" value="">'
  491. + '</div>'
  492. + '</div>'
  493. + '</div>'
  494. + '</td>'
  495. + '<td>'
  496. + '<div class="form-flex">'
  497. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  498. + '<div class="z-comp-input">'
  499. + '<input type="text" value="">'
  500. + '</div>'
  501. + '</div>'
  502. + '</div>'
  503. + '</td>'
  504. + '<td>'
  505. + '<div class="form-flex">'
  506. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  507. + '<div class="z-comp-input" name="ContractMilestone[' + index + ']$returnAmount">'
  508. + '<input type="text" value="">'
  509. + '</div>'
  510. + '</div>'
  511. + '</div>'
  512. + '</td>'
  513. + '<td>'
  514. + '<div class="form-flex">'
  515. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  516. + '<div class="z-comp-input" name="ContractMilestone[' + index + ']$actualReturnAmount">'
  517. + '<input type="text" value="'+lists[index].actualReturnAmount+'">'
  518. + '</div>'
  519. + '</div>'
  520. + '</div>'
  521. + '</td>'
  522. + '<td>'
  523. + '<div class="form-flex">'
  524. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  525. + '<div class="z-comp-date" name="ContractMilestone[' + index + ']$planReturnTime">'
  526. + '<input type="text" value="">'
  527. + '</div>'
  528. + '</div>'
  529. + '</div>'
  530. + '</td>'
  531. + '<td>'
  532. + '<div class="form-flex">'
  533. + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
  534. + '<div class="z-comp-input" name="ContractMilestone[' + index + ']$description">'
  535. + '<input type="text" value="">'
  536. + '</div>'
  537. + '</div>'
  538. + '</div>'
  539. + '</td>'
  540. + '<td>'
  541. + '<div style="display: flex;white-space: nowrap">'
  542. + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (index) + '" data-index="' + (index) + '">'
  543. + '<span>保存</span>'
  544. + '</div>'
  545. + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
  546. + '<span>删除</span>'
  547. + '</div></div>'
  548. + '</td>';
  549. return trDom;
  550. }
  551. function detailReadonly(i, isBool = true,prefix) {
  552. if (isBool) {
  553. $("#delBtn_" + i).css("display", "none");
  554. $("#editBtn_" + i).css("display", "none");
  555. }
  556. let detailElement = document.getElementById(prefix + i);
  557. let detailInput = detailElement.getElementsByTagName("input");
  558. for (let j = 0; j < detailInput.length; j++) {
  559. detailInput[j].disabled = true;
  560. detailInput[j].className += "z-readonly"
  561. }
  562. }
  563. function detailWrite(i) {
  564. //财务审核时可以核减修改金额
  565. let detailElement = document.getElementById("contract_milestone_" + i);
  566. let detailInput = detailElement.getElementsByTagName("input");
  567. for (let j = 0; j < detailInput.length; j++) {
  568. detailInput[j].disabled = false;
  569. $(detailInput[j]).removeClass("z-readonly")
  570. }
  571. }
  572. // TODO tax valid
  573. // function Tax_ValidateInput() {
  574. // var flag = true;
  575. // var htje = Number(jPage.find('[name="CONTRACT0000HTJE"]').val()) || 0;
  576. // var hsje_total = Number(jPage.find('[name="CONTRACT0000TAX_HSJE_TOTAL"]').val()) || 0;
  577. // if (hsje_total != htje) {
  578. // W.Page.ShowError('含税金额(小计)与合同金额不一致!');
  579. // flag = false;
  580. // }
  581. //
  582. // var hsje_rjcp = parseFloat(jPage.find('[name="CONTRACT0000TAX_HSJE_RJCP"]').val()) || 0;
  583. // var tax_softpatent = jPage.find('[name="CONTRACT0000TAX_SOFTPATENT"]').val();
  584. // if (hsje_rjcp > 0 && !tax_softpatent) {
  585. // W.Page.ShowError('请选择一个具体的软件产品名称!');
  586. // flag = false;
  587. // }
  588. // if (hsje_rjcp == 0 && tax_softpatent)
  589. // jPage.find('[name="CONTRACT0000TAX_SOFTPATENT"]').val('');
  590. //
  591. // return flag;
  592. // }
  593. }())