|  | @@ -643,7 +643,7 @@ let calcTools = {
 | 
	
		
			
				|  |  |              summaryFees: treeNode.data.summaryFees,
 | 
	
		
			
				|  |  |              name:treeNode.data.name,
 | 
	
		
			
				|  |  |              rationQuantityCoe: treeNode.data.rationQuantityCoe,
 | 
	
		
			
				|  |  | -            quantityCoe: treeNode.data.quantityCoe,
 | 
	
		
			
				|  |  | +            quantityCoe: treeNode.data.quantityCoe == null ? {} : treeNode.data.quantityCoe,
 | 
	
		
			
				|  |  |              targetUnitFee: treeNode.data.targetUnitFee,
 | 
	
		
			
				|  |  |              targetTotalFee: treeNode.data.targetTotalFee
 | 
	
		
			
				|  |  |          };
 | 
	
	
		
			
				|  | @@ -674,6 +674,7 @@ let calcTools = {
 | 
	
		
			
				|  |  |      calcNodeTenderQty: function (treeNode){
 | 
	
		
			
				|  |  |          let qCoe = (treeNode.data.rationQuantityCoe == undefined) ? 1 : treeNode.data.rationQuantityCoe;
 | 
	
		
			
				|  |  |          treeNode.data.tenderQuantity = (this.uiNodeQty(treeNode) * qCoe).toDecimal(decimalObj.decimal("quantity", treeNode));
 | 
	
		
			
				|  |  | +        return treeNode.data.tenderQuantity;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      calcGLJTenderQty: function (treeNode, glj){
 | 
	
		
			
				|  |  |          if (treeNode.data.quantityCoe == undefined){
 | 
	
	
		
			
				|  | @@ -1506,8 +1507,8 @@ class CalcProgram {
 | 
	
		
			
				|  |  |                              rttf = parseFloatPlus(node.data.feesIndex[ft.type].tenderTotalFee).toDecimal(decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  |                          };
 | 
	
		
			
				|  |  |                          if (me.project.property.billsCalcMode === leafBillGetFeeType.rationContent) {
 | 
	
		
			
				|  |  | -                            buf = (buf + (ruf * parseFloatPlus(node.data.contain)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
 | 
	
		
			
				|  |  | -                            btuf = (btuf + (rtuf * parseFloatPlus(node.data.contain)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
 | 
	
		
			
				|  |  | +                            buf = (buf + (ruf * parseFloatPlus(node.data.quantity)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
 | 
	
		
			
				|  |  | +                            btuf = (btuf + (rtuf * parseFloatPlus(node.data.tenderQuantity)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
 | 
	
		
			
				|  |  |                          };
 | 
	
		
			
				|  |  |                          sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
 | 
	
		
			
				|  |  |                          sum_rttf = (sum_rttf + rttf).toDecimal(decimalObj.process);
 | 
	
	
		
			
				|  | @@ -1571,8 +1572,7 @@ class CalcProgram {
 | 
	
		
			
				|  |  |                      let ftObj = {};
 | 
	
		
			
				|  |  |                      ftObj.fieldName = 'common';
 | 
	
		
			
				|  |  |                      ftObj.unitFee = parseFloatPlus(treeNode.data.feesIndex.common.unitFee);
 | 
	
		
			
				|  |  | -                    let q = parseFloatPlus(treeNode.data.quantity);
 | 
	
		
			
				|  |  | -                    ftObj.totalFee = (ftObj.unitFee * q).toDecimal(decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +                    ftObj.totalFee = (ftObj.unitFee * nQ).toDecimal(decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  |                      calcTools.checkFeeField(treeNode, ftObj);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -1904,21 +1904,6 @@ class CalcProgram {
 | 
	
		
			
				|  |  |          return me.getTotalFee(baseNodes, excludeNodes, tender);
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /*clearTenders(){
 | 
	
		
			
				|  |  | -        let nodes = projectObj.project.mainTree.items;
 | 
	
		
			
				|  |  | -        for (let node of nodes) {
 | 
	
		
			
				|  |  | -            delete node.data.targetTotalFee;
 | 
	
		
			
				|  |  | -            delete node.data.targetUnitFee;
 | 
	
		
			
				|  |  | -            if (node.data.feesIndex && node.data.feesIndex.common){
 | 
	
		
			
				|  |  | -                delete node.data.feesIndex.common.tenderUnitFee;
 | 
	
		
			
				|  |  | -                delete node.data.feesIndex.common.tenderTotalFee;
 | 
	
		
			
				|  |  | -            };
 | 
	
		
			
				|  |  | -            delete node.data.quantityCoe;
 | 
	
		
			
				|  |  | -            delete node.data.rationQuantityCoe;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        projectObj.project.property.tenderSetting.gljPriceTenderCoe = 1;
 | 
	
		
			
				|  |  | -    };*/
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      // 反向调价
 | 
	
		
			
				|  |  |      calcTenderReverse(treeNode, tender){
 | 
	
		
			
				|  |  |          if (treeNode.data.feesIndex.common.tenderUnitFee != treeNode.data.feesIndex.common.unitFee){
 | 
	
	
		
			
				|  | @@ -1941,32 +1926,35 @@ class CalcProgram {
 | 
	
		
			
				|  |  |              coe = (treeNode.data.targetTotalFee / treeNode.data.feesIndex.common.totalFee).toDecimal(2);//(decimalObj.process);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (tender == tenderTypes.ttReverseRation){
 | 
	
		
			
				|  |  | +            treeNode.data.tenderQuantity = (treeNode.data.quantity * coe).toDecimal(decimalObj.decimal("quantity", treeNode));
 | 
	
		
			
				|  |  |              if (treeNode.data.rationQuantityCoe != coe){
 | 
	
		
			
				|  |  |                  treeNode.data.rationQuantityCoe = coe;
 | 
	
		
			
				|  |  |                  treeNode.changed = true;
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            let ttf = (treeNode.data.tenderQuantity * treeNode.data.feesIndex.common.tenderUnitFee).toDecimal(decimalObj.decimal('totalPrice', treeNode));
 | 
	
		
			
				|  |  | +            if (treeNode.data.feesIndex.common.tenderTotalFee != ttf){
 | 
	
		
			
				|  |  | +                treeNode.data.feesIndex.common.tenderTotalFee = ttf;
 | 
	
		
			
				|  |  | +                treeNode.changed = true;
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  |          }else if (tender == tenderTypes.ttReverseGLJ){
 | 
	
		
			
				|  |  | -            let coeObj = treeNode.data.quantityCoe;
 | 
	
		
			
				|  |  | -            if (!coeObj){
 | 
	
		
			
				|  |  | +            treeNode.data.tenderQuantity = treeNode.data.quantity;
 | 
	
		
			
				|  |  | +            let qcObj = treeNode.data.quantityCoe;
 | 
	
		
			
				|  |  | +            if (!qcObj){
 | 
	
		
			
				|  |  |                  treeNode.data.quantityCoe = {labour: coe, material: coe, machine: coe, main: coe, equipment: coe};
 | 
	
		
			
				|  |  |                  treeNode.changed = true;
 | 
	
		
			
				|  |  |              }else{
 | 
	
		
			
				|  |  | -                for (let pn in coeObj){
 | 
	
		
			
				|  |  | -                    if (coeObj[pn] != coe){
 | 
	
		
			
				|  |  | -                        coeObj[pn] = coe;
 | 
	
		
			
				|  |  | +                for (let pn in qcObj){
 | 
	
		
			
				|  |  | +                    if (qcObj[pn] != coe){
 | 
	
		
			
				|  |  | +                        qcObj[pn] = coe;
 | 
	
		
			
				|  |  |                          treeNode.changed = true;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  };
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  | +            projectObj.project.calcProgram.calculate(treeNode, false, false, tenderTypes.ttCalc);  // 再正向算
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        treeNode.data.tenderQuantity = (treeNode.data.quantity * coe).toDecimal(decimalObj.decimal("quantity", treeNode));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        let ttf = (treeNode.data.tenderQuantity * treeNode.data.feesIndex.common.tenderUnitFee).toDecimal(decimalObj.decimal('totalPrice', treeNode));
 | 
	
		
			
				|  |  | -        if (treeNode.data.feesIndex.common.tenderTotalFee != ttf){
 | 
	
		
			
				|  |  | -            treeNode.data.feesIndex.common.tenderTotalFee = ttf;
 | 
	
		
			
				|  |  | -            treeNode.changed = true;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 |