Browse Source

清单对比,清单汇总,区分汇总不计价

MaiXinRong 1 year ago
parent
commit
80c26cb8fa

+ 1 - 1
app/controller/ledger_controller.js

@@ -714,7 +714,7 @@ module.exports = app => {
                 orders: [['code', 'asc']],
             });
             const changeBills = await ctx.service.changeAuditList.getAllDataByCondition({
-                columns: [ 'cid', 'code', 'name', 'unit', 'unit_price', 'oamount2', 'checked_amount', 'checked_price' ],
+                columns: [ 'cid', 'code', 'name', 'unit', 'unit_price', 'oamount2', 'checked_amount', 'checked_price', 'is_valuation'  ],
                 where: { tid: ctx.tender.id }
             });
             const changeIndex = {};

+ 1 - 1
app/controller/stage_controller.js

@@ -341,7 +341,7 @@ module.exports = app => {
                 orders: [['code', 'asc']],
             });
             const changeBills = await ctx.service.changeAuditList.getAllDataByCondition({
-                columns: [ 'id', 'cid', 'code', 'name', 'unit', 'unit_price', 'oamount2', 'checked_amount', 'checked_price' ],
+                columns: [ 'id', 'cid', 'code', 'name', 'unit', 'unit_price', 'oamount2', 'checked_amount', 'checked_price', 'is_valuation' ],
                 where: { tid: ctx.tender.id }
             });
             const changeIndex = {};

+ 9 - 3
app/public/js/gcl_gather.js

@@ -100,7 +100,11 @@ const gclGatherModel = (function () {
                 const cb = c.bills.find(x => { return x.id === d.cbid; });
                 if (!cb) continue;
 
-                cb[field] = ZhCalc.add(cb[field], d.qty);
+                if (d.no_value) {
+                    cb[field + '_minus'] = ZhCalc.add(cb[field + '_minus'], d.qty);
+                } else {
+                    cb[field] = ZhCalc.add(cb[field], d.qty);
+                }
             }
         };
         gatherDatas(cur, 'cur_qty');
@@ -402,9 +406,9 @@ const gclGatherModel = (function () {
                 gcl.change_bills_qty = ZhCalc.add(gcl.change_bills_qty, cb.checked_amount);
                 gcl.change_bills_tp = ZhCalc.add(gcl.change_bills_tp, cb.checked_price);
 
-                let gcb = gcl.change.find(x => { return x.cid === cb.cid; });
+                let gcb = gcl.change.find(x => { return x.cid === cb.cid && x.is_valuation === cb.is_valuation; });
                 if (!gcb) {
-                    gcb = { cid: c.cid, code: c.code, name: c.name };
+                    gcb = { cid: c.cid, code: c.code, name: c.name, is_valuation: cb.is_valuation };
                     gcl.change.push(gcb);
                 }
                 gcb.org_qty = ZhCalc.add(gcb.org_qty, cb.oamount2);
@@ -413,7 +417,9 @@ const gclGatherModel = (function () {
                 gcb.c_tp = ZhCalc.add(gcb.c_tp, cb.checked_price);
 
                 gcb.cur_qty = ZhCalc.add(gcb.cur_qty, cb.cur_qty);
+                gcb.cur_qty_minus = ZhCalc.add(gcb.cur_qty_minus, cb.cur_qty_minus);
                 gcb.pre_qty = ZhCalc.add(gcb.pre_qty, cb.pre_qty);
+                gcb.pre_qty_minus = ZhCalc.add(gcb.pre_qty_minus, cb.pre_qty_minus);
             }
         }
     }

+ 1 - 0
app/public/js/ledger_gather.js

@@ -165,6 +165,7 @@ $(document).ready(() => {
         cols: [
             {title: '变更令号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 200, formatter: '@'},
             {title: '变更名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 200, formatter: '@'},
+            {title: '计价', colSpan: '1', rowSpan: '2', field: 'is_valuation', hAlign: 1, width: 40, cellType: 'checkbox'},
             {title: '原设计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'org_qty', hAlign: 2, width: 100, formatter: '@'},
             {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'org_tp', hAlign: 2, width: 100, formatter: '@'},
             {title: '批复变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'c_qty', hAlign: 2, width: 100, formatter: '@'},

+ 5 - 2
app/public/js/stage_gather.js

@@ -80,12 +80,15 @@ $(document).ready(function () {
         cols: [
             {title: '变更令号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 200, formatter: '@'},
             {title: '变更名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 200, formatter: '@'},
+            {title: '计价', colSpan: '1', rowSpan: '2', field: 'is_valuation', hAlign: 1, width: 40, cellType: 'checkbox'},
             {title: '原设计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'org_qty', hAlign: 2, width: 80, formatter: '@'},
             {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'org_tp', hAlign: 2, width: 80, formatter: '@'},
             {title: '批复变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'c_qty', hAlign: 2, width: 80, formatter: '@'},
             {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'c_tp', hAlign: 2, width: 80, formatter: '@'},
-            {title: '本期变更数量', colSpan: '1', rowSpan: '2', field: 'cur_qty', hAlign: 2, width: 100, formatter: '@'},
-            {title: '截止本期变更数量', colSpan: '1', rowSpan: '2', field: 'end_qty', hAlign: 2, width: 100, formatter: '@'},
+            {title: '本期变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'cur_qty', hAlign: 2, width: 80, formatter: '@'},
+            {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'cur_qty_minus', hAlign: 2, width: 80, formatter: '@'},
+            {title: '截止本期变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qty', hAlign: 2, width: 80, formatter: '@'},
+            {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qty_minus', hAlign: 2, width: 80, formatter: '@'},
             // {title: '本期计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'cur_qty', hAlign: 2, width: 80, formatter: '@'},
             // {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'cur_tp', hAlign: 2, width: 80, formatter: '@'},
             // {title: '截止本期计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qty', hAlign: 2, width: 80, formatter: '@'},

+ 1 - 1
app/service/stage_change_final.js

@@ -26,7 +26,7 @@ module.exports = app => {
         }
 
         async getEndStageData(tid, sorder) {
-            const sql = `SELECT cid, cbid, qty FROM ${this.tableName} WHERE tid = ? AND sorder <= ?`;
+            const sql = `SELECT cid, cbid, qty, no_value FROM ${this.tableName} WHERE tid = ? AND sorder <= ?`;
             return await this.db.query(sql, [tid, sorder]);
         }