index.ejs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <% include ../tender/tender_sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main d-flex">
  5. <% include ../tender/tender_sub_mini_menu.ejs %>
  6. <h2>
  7. 材料调差期列表
  8. </h2>
  9. <div class="ml-auto">
  10. <% if (ctx.session.sessionUser.accountId === ctx.tender.data.user_id && stages.length > 0 &&
  11. (materials.length === 0 || materials[0].status === auditConst.status.checked)) { %>
  12. <a href="#add-qi" data-toggle="modal" data-target="#add-qi" class="btn btn-primary btn-sm pull-right">开始新一期</a>
  13. <% } %>
  14. </div>
  15. </div>
  16. </div>
  17. <div class="content-wrap">
  18. <div class="c-body">
  19. <div class="sjs-height-0">
  20. <table class="table table-bordered">
  21. <thead>
  22. <tr>
  23. <th rowspan="2">期数</th>
  24. <th class="text-center" rowspan="2">添加时间</th>
  25. <th class="text-center" rowspan="2">计量期</th>
  26. <th class="text-center" colspan="<% if (openMaterialTax && !allMaterialTax) { %>3<% } else { %>2<% } %>">信息价调差</th>
  27. <th class="text-center" colspan="2">指数法调差</th>
  28. <th class="text-center" colspan="<% if (openMaterialTax) { %>3<% } else { %>2<% } %>">合计</th>
  29. <th class="text-center" rowspan="2">审批进度</th>
  30. <th class="text-center" rowspan="2" width="140">操作</th>
  31. </tr>
  32. <tr>
  33. <th class="text-center">价差费用</th>
  34. <% if (openMaterialTax) { %><th class="text-center">价差费用(含材料税)</th><% } %>
  35. <% if ((openMaterialTax && !allMaterialTax) || !openMaterialTax) { %><th class="text-center">价差费用(含建筑税)</th><% } %>
  36. <th class="text-center">价差费用</th>
  37. <th class="text-center">价差费用(含建筑税)</th>
  38. <th class="text-center">价差费用</th>
  39. <% if (openMaterialTax) { %><th class="text-center">价差费用(含材料税)</th><% } %>
  40. <th class="text-center">价差费用(含建筑税)</th>
  41. </tr>
  42. </thead>
  43. <tbody>
  44. <% for (const m of materials) { %>
  45. <tr>
  46. <td>
  47. <a href="<%- '/tender/' + ctx.tender.id + '/measure/material/' + m.order %>">第 <%- m.order %> 期</a>
  48. </td>
  49. <td class="text-center"><%= moment(m.in_time).format('YYYY-MM-DD') %></td>
  50. <td class="text-center">第 <%= m.s_order %> 期</td>
  51. <td class="text-right"><%= m.m_tp !== null ? ctx.helper.round(m.m_tp, m.decimal.tp) : null %></td>
  52. <% if (openMaterialTax) { %><td class="text-right"><% if (m.material_tax) { %><% if (m.m_tax_tp) { %><%- m.m_tax_tp %><% } else { %><%- m.m_tp %><% } %><% } %></td><% } %>
  53. <% if ((openMaterialTax && !allMaterialTax) || !openMaterialTax) { %><td class="text-right"><% if (!m.material_tax) { %><%= m.m_tp !== null ? ctx.helper.round(ctx.helper.mul(m.m_tp, 1+m.rate/100), m.decimal.tp) : null %><% } %></td><% } %>
  54. <td class="text-right"><%= m.ex_tp !== null ? ctx.helper.round(m.ex_tp, m.decimal.tp) : null %></td>
  55. <td class="text-right"><%= m.ex_tp !== null ? ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.rate/100), m.decimal.tp) : null %></td>
  56. <td class="text-right"><%= ctx.helper.add(ctx.helper.round(m.ex_tp, m.decimal.tp), ctx.helper.round(m.m_tp, m.decimal.tp)) %></td>
  57. <% if (openMaterialTax) { %><td class="text-right"><% if (m.material_tax) { %><% if (m.m_tax_tp) { %><%- m.m_tax_tp %><% } else { %><%- m.m_tp %><% } %><% } %></td><% } %>
  58. <td class="text-right"><% if (m.material_tax) { %><%= m.ex_tp !== null ? ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.rate/100), m.decimal.tp) : null %><% } else { %><%= ctx.helper.add(ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.rate/100), m.decimal.tp), ctx.helper.round(ctx.helper.mul(m.m_tp, 1+m.rate/100), m.decimal.tp)) %><% } %></td>
  59. <td class="<%- auditConst.auditProgressClass[m.status] %>">
  60. <% if (m.curAuditor) { %>
  61. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" m-order="<%- m.order %>"><%- m.curAuditor.name %><%if (m.curAuditor.role !== '' && m.curAuditor.role !== null) { %>-<%- m.curAuditor.role %><% } %></a>
  62. <% } %>
  63. <%- auditConst.auditProgress[m.status] %>
  64. </td>
  65. <td class="text-center">
  66. <% if (m.status === auditConst.status.uncheck && m.user_id === ctx.session.sessionUser.accountId) { %>
  67. <a href="<%- '/tender/' + ctx.tender.id + '/measure/material/' + m.order %>" class="btn <%- auditConst.statusButtonClass[m.status] %> btn-sm"><%- auditConst.statusButton[m.status] %></a>
  68. <% } else if (m.status === auditConst.status.checkNo && m.curAuditor && m.user_id === ctx.session.sessionUser.accountId) { %>
  69. <a href="<%- '/tender/' + ctx.tender.id + '/measure/material/' + m.order %>" class="btn <%- auditConst.statusButtonClass[m.status] %> btn-sm"><%- auditConst.statusButton[m.status] %></a>
  70. <% } else if (m.status === auditConst.status.checking && m.curAuditor && m.curAuditor.aid === ctx.session.sessionUser.accountId) { %>
  71. <a href="<%- '/tender/' + ctx.tender.id + '/measure/material/' + m.order %>" class="btn <%- auditConst.statusButtonClass[m.status] %> btn-sm"><%- auditConst.statusButton[m.status] %></a>
  72. <% } else { %>
  73. <span class="<%- auditConst.auditProgressClass[m.status] %>"><%- auditConst.auditProgress[m.status] %></span>
  74. <% } %>
  75. <% if ((ctx.session.sessionUser.is_admin || ((m.status === auditConst.status.uncheck || m.status === auditConst.status.checkNo) && m.user_id === ctx.session.sessionUser.accountId)) && m.order === materials.length) { %>
  76. <a href="#del-qi" class="btn btn-outline-danger btn-sm ml-1" data-toggle="modal" data-target="#del-qi">删除</a>
  77. <% } %>
  78. </td>
  79. </tr>
  80. <% } %>
  81. </tbody>
  82. </table>
  83. </div>
  84. </div>
  85. </div>
  86. </div>
  87. <script src="/public/js/sub_menu.js"></script>
  88. <script>
  89. const tenderId = '<%- ctx.tender.id %>';
  90. const auditConst = JSON.parse('<%- auditConst2 %>');
  91. $.subMenu({
  92. menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
  93. toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
  94. key: 'menu.1.0.0',
  95. miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
  96. callback: function (info) {
  97. if (info.mini) {
  98. $('.panel-title').addClass('fluid');
  99. $('#sub-menu').removeClass('panel-sidebar');
  100. } else {
  101. $('.panel-title').removeClass('fluid');
  102. $('#sub-menu').addClass('panel-sidebar');
  103. }
  104. autoFlashHeight();
  105. }
  106. });
  107. </script>