material_ex_tax_tp.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // 计算调差建筑税金额
  2. const materialConst = require('../app/const/material');
  3. const BaseUtil = require('./baseUtils');
  4. const querySql = BaseUtil.querySql;
  5. const ZhCalc = BaseUtil.ZhCalc;
  6. const checkMaterial = async function(material, ex_tax_tp, ex_tax_pre_tp) {
  7. // if (!material.is_new_exponent) {
  8. await querySql('Update zh_material Set ex_tax_tp = ?, ex_tax_pre_tp = ? Where id = ?', [ex_tax_tp, ex_tax_pre_tp, material.id]);
  9. // }
  10. console.log(`Update Material ${material.id}`);
  11. };
  12. const doComplete = async function() {
  13. try {
  14. const tender = await querySql('Select * From zh_tender');
  15. for (const t of tender) {
  16. console.log(`Update Tender ${t.id}:`);
  17. const materials = await querySql('Select * From zh_material where tid = ? order by id asc', [t.id]);
  18. let total_ex_tax_tp = 0;
  19. for (const m of materials) {
  20. m.decimal = m.decimal ? JSON.parse(m.decimal) : materialConst.decimal;
  21. const ex_tax_tp = !m.is_new_exponent ? ZhCalc.round(ZhCalc.mul(m.ex_tp, 1 + m.exponent_rate / 100), m.decimal.tp) : m.ex_tax_tp;
  22. await checkMaterial(m, ex_tax_tp, total_ex_tax_tp);
  23. total_ex_tax_tp = ZhCalc.add(total_ex_tax_tp, ex_tax_tp);
  24. }
  25. }
  26. } catch (err) {
  27. console.log(err);
  28. }
  29. BaseUtil.closePool();
  30. };
  31. const doCompleteTest = async function(tid) {
  32. try {
  33. const tender = await querySql('Select * From zh_tender where id = ?', [tid]);
  34. for (const t of tender) {
  35. console.log(`Update Tender ${t.id}:`);
  36. const materials = await querySql('Select * From zh_material where tid = ?', [t.id]);
  37. for (const m of materials) {
  38. await checkMaterial(m);
  39. }
  40. }
  41. } catch (err) {
  42. console.log(err);
  43. }
  44. BaseUtil.closePool();
  45. };
  46. const tenderId = process.argv[3];
  47. if (tenderId) {
  48. doCompleteTest(tenderId);
  49. } else {
  50. doComplete();
  51. }