瀏覽代碼

多期比较,统计合计

MaiXinRong 7 月之前
父節點
當前提交
0ae5dc450a
共有 2 個文件被更改,包括 39 次插入9 次删除
  1. 37 7
      app/public/js/measure_compare.js
  2. 2 2
      app/view/measure/compare_modal.ejs

+ 37 - 7
app/public/js/measure_compare.js

@@ -22,6 +22,10 @@ const billsSpreadSetting = {
         {title: '%s|数量', colSpan: '2|1', rowSpan: '1|1', field: '{%s}_qty{%d}', hAlign: 2, width: 60, type: 'Number', },
         {title: '|金额', colSpan: '|1', rowSpan: '|1', field: '{%s}_tp{%d}', hAlign: 2, width: 60, type: 'Number', },
     ],
+    specExtraCols: [
+        {title: '合计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sum_{%s}_qty', hAlign: 2, width: 60, type: 'Number', },
+        {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sum_{%s}_tp', hAlign: 2, width: 60, type: 'Number', },
+    ],
     emptyRows: 3,
     headRows: 2,
     headRowHeight: [25, 25],
@@ -34,10 +38,13 @@ const billsSpreadSetting = {
 const posSpreadSetting = {
     baseCols: [
         {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
-        {title: '台账数量', colSpan: '1', rowSpan: '1', field: 'quantity', hAlign: 2, width: 60},
+        {title: '台账数量', colSpan: '1', rowSpan: '1', field: 'quantity', hAlign: 2, width: 60, type: 'Number'},
     ],
     extraCols: [
-        {title: '%s数量', colSpan: '1', rowSpan: '1', field: '{%s}_qty{%d}', hAlign: 2, width: 60},
+        {title: '%s数量', colSpan: '1', rowSpan: '1', field: '{%s}_qty{%d}', hAlign: 2, width: 60, type: 'Number'},
+    ],
+    specExtraCols: [
+        {title: '合计数量', colSpan: '1', rowSpan: '1', field: 'sum_{%s}_qty', hAlign: 2, width: 60, type: 'Number', },
     ],
     emptyRows: 3,
     headRows: 1,
@@ -63,6 +70,10 @@ const exportBillsSpreadSetting = {
         {title: '%s|数量', colSpan: '2|1', rowSpan: '1|1', field: '{%s}_qty{%d}', hAlign: 2, width: 60, type: 'Number', },
         {title: '|金额', colSpan: '|1', rowSpan: '|1', field: '{%s}_tp{%d}', hAlign: 2, width: 60, type: 'Number', },
     ],
+    specExtraCols: [
+        {title: '合计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sum_{%s}_qty', hAlign: 2, width: 60, type: 'Number', },
+        {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sum_{%s}_tp', hAlign: 2, width: 60, type: 'Number', },
+    ],
     endCols: [],
     emptyRows: 3,
     headRows: 2,
@@ -89,6 +100,10 @@ const gclSpreadSetting = {
         {title: '%s|数量', colSpan: '2|1', rowSpan: '1|1', field: '{%s}_qty{%d}', hAlign: 2, width: 60, type: 'Number', },
         {title: '|金额', colSpan: '|1', rowSpan: '|1', field: '{%s}_tp{%d}', hAlign: 2, width: 60, type: 'Number', },
     ],
+    specExtraCols: [
+        {title: '合计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sum_{%s}_qty', hAlign: 2, width: 60, type: 'Number', },
+        {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sum_{%s}_tp', hAlign: 2, width: 60, type: 'Number', },
+    ],
     emptyRows: 0,
     headRows: 2,
     headRowHeight: [25, 25],
@@ -112,6 +127,9 @@ const leafXmjSpreadSetting = {
     extraCols: [
         {title: '%s数量', colSpan: '1', rowSpan: '2', field: '{%s}_qty{%d}', hAlign: 2, width: 60},
     ],
+    specExtraCols: [
+        {title: '合计数量', colSpan: '1', rowSpan: '2', field: 'sum_{%s}_qty', hAlign: 2, width: 60, type: 'Number', },
+    ],
     emptyRows: 0,
     headRows: 2,
     headRowHeight: [25, 25],
@@ -142,6 +160,10 @@ const exportGclSpreadSetting = {
         {title: '%s|数量', colSpan: '2|1', rowSpan: '1|1', field: '{%s}_qty{%d}', hAlign: 2, width: 60, type: 'Number', },
         {title: '|金额', colSpan: '|1', rowSpan: '|1', field: '{%s}_tp{%d}', hAlign: 2, width: 60, type: 'Number', },
     ],
+    specExtraCols: [
+        {title: '合计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sum_{%s}_qty', hAlign: 2, width: 60, type: 'Number', },
+        {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sum_{%s}_tp', hAlign: 2, width: 60, type: 'Number', },
+    ],
     endCols: [
         {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
     ],
@@ -175,6 +197,14 @@ function initSpreadSettingWithRoles(compareRoles) {
         for (const index in fieldSufs) {
             addExtraCols(fieldSufs[index], Roles[index]);
         }
+        if (setting.specExtraCols) {
+            const sourceType = $('[name=compare-data]:checked').val();
+            for (const col of setting.specExtraCols) {
+                const eCol = JSON.parse(JSON.stringify(col));
+                eCol.field = _.replace(eCol.field, '{%s}', sourceType);
+                setting.cols.push(eCol);
+            }
+        }
         if (setting.endCols) {
             for (const col of setting.endCols) {
                 setting.cols.push(col);
@@ -283,7 +313,7 @@ $(document).ready(() => {
         keys: ['id', 'tender_id', 'ledger_id'],
         masterId: 'id',
         minorId: 'lid',
-        calcFields: ['total_price'],
+        calcFields: ['total_price', 'sum_contract_tp', 'sum_qc_tp', 'sum_gather_tp'],
         markFoldKey: 'bills-fold',
         markFoldSubKey: window.location.pathname.split('/')[2],
     });
@@ -481,14 +511,14 @@ $(document).ready(() => {
     $('[name=compare-data]').click(function () {
         initSpreadSettingWithRoles(compareStages);
         SpreadJsObj.reLoadSheetHeader(billsSheet);
-        SpreadJsObj.reloadColData(billsSheet, billsSpreadSetting.baseCols.length, compareStages.length * billsSpreadSetting.extraCols.length);
+        SpreadJsObj.reloadColData(billsSheet, billsSpreadSetting.baseCols.length, compareStages.length * billsSpreadSetting.extraCols.length + billsSpreadSetting.specExtraCols.length);
         SpreadJsObj.reLoadSheetHeader(posSheet);
-        SpreadJsObj.reloadColData(posSheet, posSpreadSetting.baseCols.length, compareStages.length * posSpreadSetting.extraCols.length);
+        SpreadJsObj.reloadColData(posSheet, posSpreadSetting.baseCols.length, compareStages.length * posSpreadSetting.extraCols.length + billsSpreadSetting.specExtraCols.length);
 
         SpreadJsObj.reLoadSheetHeader(gclSheet);
-        SpreadJsObj.reloadColData(gclSheet, gclSpreadSetting.baseCols.length, compareStages.length * gclSpreadSetting.extraCols.length);
+        SpreadJsObj.reloadColData(gclSheet, gclSpreadSetting.baseCols.length, compareStages.length * gclSpreadSetting.extraCols.length + billsSpreadSetting.specExtraCols.length);
         SpreadJsObj.reLoadSheetHeader(leafXmjSheet);
-        SpreadJsObj.reloadColData(leafXmjSheet, leafXmjSpreadSetting.baseCols.length, compareStages.length * leafXmjSpreadSetting.extraCols.length);
+        SpreadJsObj.reloadColData(leafXmjSheet, leafXmjSpreadSetting.baseCols.length, compareStages.length * leafXmjSpreadSetting.extraCols.length + billsSpreadSetting.specExtraCols.length);
     });
     $('[name=compareType]').click(function () {
         $('[name=compareType]').removeClass('active');

+ 2 - 2
app/view/measure/compare_modal.ejs

@@ -7,9 +7,9 @@
             </div>
             <div class="modal-body scroll-y" style="height: 600px">
                 <table class="table table-sm" >
-                    <tr><th>期</th><th width="90">选择</th></tr>
+                    <tr><th>期</th><th>计量年月</th><th width="60">选择</th></tr>
                     <% for (const s of stages) { %>
-                    <tr stage-id="<%- s.id %>"><td><%- s.order %>期</td><td><input type="checkbox"></td></tr>
+                    <tr stage-id="<%- s.id %>"><td><%- s.order %>期</td><td><%- s.s_time %></td><td><input type="checkbox"></td></tr>
                     <% } %>
                 </table>
             </div>