|
@@ -70,6 +70,11 @@ const gatherUtils = {
|
|
gatherNode[prefix + "c_dgn_qty1"] = helper.add(gatherNode[prefix + "c_dgn_qty1"], sourceNode.c_dgn_qty1);
|
|
gatherNode[prefix + "c_dgn_qty1"] = helper.add(gatherNode[prefix + "c_dgn_qty1"], sourceNode.c_dgn_qty1);
|
|
gatherNode[prefix + "c_dgn_qty2"] = helper.add(gatherNode[prefix + "c_dgn_qty2"], sourceNode.c_dgn_qty2);
|
|
gatherNode[prefix + "c_dgn_qty2"] = helper.add(gatherNode[prefix + "c_dgn_qty2"], sourceNode.c_dgn_qty2);
|
|
|
|
|
|
|
|
+ gatherNode[prefix + "due_qc_qty"] = helper.add(gatherNode[prefix + "due_qc_qty"], sourceNode.due_qc_qty);
|
|
|
|
+ gatherNode[prefix + "due_qc_tp"] = helper.add(gatherNode[prefix + "due_qc_tp"], sourceNode.due_qc_tp);
|
|
|
|
+ gatherNode[prefix + "due_final_qty"] = helper.add(gatherNode[prefix + "due_final_qty"], sourceNode.due_final_qty);
|
|
|
|
+ gatherNode[prefix + "due_final_tp"] = helper.add(gatherNode[prefix + "due_final_tp"], sourceNode.due_final_tp);
|
|
|
|
+
|
|
gatherNode.s_qty = helper.add(gatherNode.s_qty, sourceNode.quantity);
|
|
gatherNode.s_qty = helper.add(gatherNode.s_qty, sourceNode.quantity);
|
|
gatherNode.s_tp = helper.add(gatherNode.s_tp, sourceNode.total_price);
|
|
gatherNode.s_tp = helper.add(gatherNode.s_tp, sourceNode.total_price);
|
|
gatherNode.s_deal_qty = helper.add(gatherNode.s_deal_qty, sourceNode.deal_qty);
|
|
gatherNode.s_deal_qty = helper.add(gatherNode.s_deal_qty, sourceNode.deal_qty);
|
|
@@ -104,6 +109,11 @@ const gatherUtils = {
|
|
gatherNode.s_deal_dgn_qty2 = helper.add(gatherNode.s_deal_dgn_qty2, sourceNode.deal_dgn_qty2);
|
|
gatherNode.s_deal_dgn_qty2 = helper.add(gatherNode.s_deal_dgn_qty2, sourceNode.deal_dgn_qty2);
|
|
gatherNode.s_c_dgn_qty1 = helper.add(gatherNode.s_c_dgn_qty1, sourceNode.c_dgn_qty1);
|
|
gatherNode.s_c_dgn_qty1 = helper.add(gatherNode.s_c_dgn_qty1, sourceNode.c_dgn_qty1);
|
|
gatherNode.s_c_dgn_qty2 = helper.add(gatherNode.s_c_dgn_qty2, sourceNode.c_dgn_qty2);
|
|
gatherNode.s_c_dgn_qty2 = helper.add(gatherNode.s_c_dgn_qty2, sourceNode.c_dgn_qty2);
|
|
|
|
+
|
|
|
|
+ gatherNode.s_due_qc_qty = helper.add(gatherNode.s_due_qc_qty, sourceNode.due_qc_qty);
|
|
|
|
+ gatherNode.s_due_qc_tp = helper.add(gatherNode.s_due_qc_tp, sourceNode.due_qc_tp);
|
|
|
|
+ gatherNode.s_due_final_qty = helper.add(gatherNode.s_due_final_qty, sourceNode.due_final_qty);
|
|
|
|
+ gatherNode.s_due_final_tp = helper.add(gatherNode.s_due_final_tp, sourceNode.due_final_tp);
|
|
},
|
|
},
|
|
gatherZone: function (tender, gatherNode, sourceNode, prefix, helper) {
|
|
gatherZone: function (tender, gatherNode, sourceNode, prefix, helper) {
|
|
gatherNode[prefix + 'id'] = tender.id;
|
|
gatherNode[prefix + 'id'] = tender.id;
|
|
@@ -188,6 +198,9 @@ const gatherUtils = {
|
|
gatherNode[prefix + "end_qc_qty"] = helper.add(gatherNode[prefix + "end_qc_qty"], sourceNode.end_qc_qty);
|
|
gatherNode[prefix + "end_qc_qty"] = helper.add(gatherNode[prefix + "end_qc_qty"], sourceNode.end_qc_qty);
|
|
gatherNode[prefix + "end_gather_qty"] = helper.add(gatherNode[prefix + "end_gather_qty"], sourceNode.end_gather_qty);
|
|
gatherNode[prefix + "end_gather_qty"] = helper.add(gatherNode[prefix + "end_gather_qty"], sourceNode.end_gather_qty);
|
|
|
|
|
|
|
|
+ gatherNode[prefix + "due_qc_qty"] = helper.add(gatherNode[prefix + "due_qc_qty"], sourceNode.due_qc_qty);
|
|
|
|
+ gatherNode[prefix + "due_final_qty"] = helper.add(gatherNode[prefix + "due_final_qty"], sourceNode.due_final_qty);
|
|
|
|
+
|
|
gatherNode.s_qty = helper.add(gatherNode.s_qty, sourceNode.quantity);
|
|
gatherNode.s_qty = helper.add(gatherNode.s_qty, sourceNode.quantity);
|
|
|
|
|
|
gatherNode.s_contract_qty = helper.add(gatherNode.s_contract_qty, sourceNode.contract_qty);
|
|
gatherNode.s_contract_qty = helper.add(gatherNode.s_contract_qty, sourceNode.contract_qty);
|
|
@@ -201,6 +214,9 @@ const gatherUtils = {
|
|
gatherNode.s_end_contract_qty = helper.add(gatherNode.s_end_contract_qty, sourceNode.end_contract_qty);
|
|
gatherNode.s_end_contract_qty = helper.add(gatherNode.s_end_contract_qty, sourceNode.end_contract_qty);
|
|
gatherNode.s_end_qc_qty = helper.add(gatherNode.s_end_qc_qty, sourceNode.end_qc_qty);
|
|
gatherNode.s_end_qc_qty = helper.add(gatherNode.s_end_qc_qty, sourceNode.end_qc_qty);
|
|
gatherNode.s_end_gather_qty = helper.add(gatherNode.s_end_gather_qty, sourceNode.end_gather_qty);
|
|
gatherNode.s_end_gather_qty = helper.add(gatherNode.s_end_gather_qty, sourceNode.end_gather_qty);
|
|
|
|
+
|
|
|
|
+ gatherNode.s_due_qc_qty = helper.add(gatherNode.s_due_qc_qty, sourceNode.due_qc_qty);
|
|
|
|
+ gatherNode.s_due_final_qty = helper.add(gatherNode.s_due_final_qty, sourceNode.due_final_qty);
|
|
},
|
|
},
|
|
gatherZonePos: function (tender, gatherNode, sourceNode, prefix, helper) {
|
|
gatherZonePos: function (tender, gatherNode, sourceNode, prefix, helper) {
|
|
gatherNode[prefix + 'id'] = tender.id;
|
|
gatherNode[prefix + 'id'] = tender.id;
|
|
@@ -252,6 +268,16 @@ module.exports = app => {
|
|
this.resultDealBills = [];
|
|
this.resultDealBills = [];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ _checkFieldsExistReg(source, regStr) {
|
|
|
|
+ const reg = new RegExp(regStr, 'igm');
|
|
|
|
+ for (const s of source) {
|
|
|
|
+ if (reg.test(s)) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
async _getValidStages(tenderId, sort = 'desc') {
|
|
async _getValidStages(tenderId, sort = 'desc') {
|
|
const stages = await this.db.select(this.ctx.service.stage.tableName, {
|
|
const stages = await this.db.select(this.ctx.service.stage.tableName, {
|
|
where: { tid: tenderId },
|
|
where: { tid: tenderId },
|
|
@@ -530,7 +556,12 @@ module.exports = app => {
|
|
rootId: -1,
|
|
rootId: -1,
|
|
keys: ['id', 'tender_id', 'ledger_id'],
|
|
keys: ['id', 'tender_id', 'ledger_id'],
|
|
stageId: 'id',
|
|
stageId: 'id',
|
|
- calcFields: ['deal_tp', 'total_price', 'contract_tp', 'qc_tp', 'contract_pc_tp', 'qc_pc_tp', 'pc_tp', 'gather_tp', 'pre_contract_tp', 'pre_qc_tp', 'pre_gather_tp'],
|
|
|
|
|
|
+ calcFields: ['deal_tp', 'total_price',
|
|
|
|
+ 'contract_tp', 'qc_tp', 'contract_pc_tp', 'qc_pc_tp', 'pc_tp', 'gather_tp',
|
|
|
|
+ 'pre_contract_tp', 'pre_qc_tp', 'pre_gather_tp',
|
|
|
|
+ 'end_contract_tp', 'end_qc_tp', 'end_gather_tp',
|
|
|
|
+ 'due_qc_tp', 'due_final_tp',
|
|
|
|
+ ],
|
|
calc: function (node) {
|
|
calc: function (node) {
|
|
if (node.children && node.children.length === 0) {
|
|
if (node.children && node.children.length === 0) {
|
|
node.pre_gather_qty = helper.add(node.pre_contract_qty, node.pre_qc_qty);
|
|
node.pre_gather_qty = helper.add(node.pre_contract_qty, node.pre_qc_qty);
|
|
@@ -538,20 +569,23 @@ module.exports = app => {
|
|
node.end_contract_qty = helper.add(node.pre_contract_qty, node.contract_qty);
|
|
node.end_contract_qty = helper.add(node.pre_contract_qty, node.contract_qty);
|
|
node.end_qc_qty = helper.add(node.pre_qc_qty, node.qc_qty);
|
|
node.end_qc_qty = helper.add(node.pre_qc_qty, node.qc_qty);
|
|
node.end_gather_qty = helper.add(node.pre_gather_qty, node.gather_qty);
|
|
node.end_gather_qty = helper.add(node.pre_gather_qty, node.gather_qty);
|
|
|
|
+ node.due_final_qty = helper.add(node.quantity, node.due_qc_qty);
|
|
}
|
|
}
|
|
node.pre_gather_tp = helper.add(node.pre_contract_tp, node.pre_qc_tp);
|
|
node.pre_gather_tp = helper.add(node.pre_contract_tp, node.pre_qc_tp);
|
|
node.gather_tp = helper.sum([node.contract_tp, node.qc_tp, node.pc_tp]);
|
|
node.gather_tp = helper.sum([node.contract_tp, node.qc_tp, node.pc_tp]);
|
|
node.end_contract_tp = helper.sum([node.pre_contract_tp, node.contract_tp, node.contract_pc_tp]);
|
|
node.end_contract_tp = helper.sum([node.pre_contract_tp, node.contract_tp, node.contract_pc_tp]);
|
|
node.end_qc_tp = helper.sum([node.pre_qc_tp, node.qc_tp, node.qc_pc_tp]);
|
|
node.end_qc_tp = helper.sum([node.pre_qc_tp, node.qc_tp, node.qc_pc_tp]);
|
|
node.end_gather_tp = helper.add(node.pre_gather_tp, node.gather_tp);
|
|
node.end_gather_tp = helper.add(node.pre_gather_tp, node.gather_tp);
|
|
|
|
+ node.due_final_tp = helper.add(node.total_price, node.due_qc_tp);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
const billsData = await this.ctx.service.ledger.getData(tender.id);
|
|
const billsData = await this.ctx.service.ledger.getData(tender.id);
|
|
const dgnData = await this.ctx.service.stageBillsDgn.getDgnData(tender.id);
|
|
const dgnData = await this.ctx.service.stageBillsDgn.getDgnData(tender.id);
|
|
- for (const d of dgnData) {
|
|
|
|
- const l = this.ctx.helper._.find(billsData, {id: d.id});
|
|
|
|
- this.ctx.helper._.assignIn(l, d);
|
|
|
|
- }
|
|
|
|
|
|
+ const changeBillsData = await ctx.service.changeAuditList.getBillsSum(this.ctx.tender.id);
|
|
|
|
+ this.ctx.helper.assignRelaData(billsData, [
|
|
|
|
+ { data: dgnData, fields: ['deal_dgn_qty1', 'deal_dgn_qty2', 'c_dgn_qty1', 'c_dgn_qty2'], prefix: '', relaId: 'id' },
|
|
|
|
+ { data: changeBillsData, fields: ['qc_qty', 'qc_tp', 'qc_minus_qty'], prefix: 'due_', relaId: 'gcl_id' },
|
|
|
|
+ ]);
|
|
const pos = new Ledger.pos({
|
|
const pos = new Ledger.pos({
|
|
id: 'id', ledgerId: 'lid',
|
|
id: 'id', ledgerId: 'lid',
|
|
calc: function (node) {
|
|
calc: function (node) {
|
|
@@ -560,9 +594,14 @@ module.exports = app => {
|
|
node.end_contract_qty = helper.add(node.pre_contract_qty, node.contract_qty);
|
|
node.end_contract_qty = helper.add(node.pre_contract_qty, node.contract_qty);
|
|
node.end_qc_qty = helper.add(node.pre_qc_qty, node.qc_qty);
|
|
node.end_qc_qty = helper.add(node.pre_qc_qty, node.qc_qty);
|
|
node.end_gather_qty = helper.add(node.pre_gather_qty, node.gather_qty);
|
|
node.end_gather_qty = helper.add(node.pre_gather_qty, node.gather_qty);
|
|
|
|
+ node.due_final_qty = ctx.helper.add(node.quantity, node.due_qc_qty);
|
|
},
|
|
},
|
|
});
|
|
});
|
|
const posData = await this.ctx.service.pos.getPosData({ tid: tender.id });
|
|
const posData = await this.ctx.service.pos.getPosData({ tid: tender.id });
|
|
|
|
+ const changePosData = await ctx.service.changeAuditList.getPosSum(this.ctx.tender.id);
|
|
|
|
+ this.ctx.helper.assignRelaData(posData, [
|
|
|
|
+ { data: changePosData, fields: ['qc_qty', 'qc_minus_qty'], prefix: 'due_', relaId: 'mx_id' },
|
|
|
|
+ ]);
|
|
if (stage) {
|
|
if (stage) {
|
|
await this.ctx.service.stage.doCheckStage(stage);
|
|
await this.ctx.service.stage.doCheckStage(stage);
|
|
const curStage = stage.readOnly
|
|
const curStage = stage.readOnly
|