Procházet zdrojové kódy

统一取工料机价格入口。

chenshilong před 5 roky
rodič
revize
409e6a30e3

+ 3 - 0
public/web/gljUtil.js

@@ -127,12 +127,14 @@ let gljUtil = {
         let coe = 1;
         coe = ration.quantityCoe&&this.isNotEmpty(ration.quantityCoe[coeField])?ration.quantityCoe[coeField]:1;
         coe = parseFloat(coe);
+        if (coe == 0) coe = 1;
         let glj_quantity = scMathUtil.roundForObj(ration_glj.quantity, q_decimal);
         return scMathUtil.roundForObj(glj_quantity * coe,q_decimal);
     },
     getRationTenderQuantity:function (ration,q_decimal,scMathUtil) {
         let rationQuantityCoe = this.isNotEmpty(ration.rationQuantityCoe)?ration.rationQuantityCoe:1;
         rationQuantityCoe = parseFloat(rationQuantityCoe);
+        if (rationQuantityCoe == 0) rationQuantityCoe = 1;
         let r_quantity = ration?scMathUtil.roundForObj(ration.quantity,q_decimal):0;
         return scMathUtil.roundForObj(r_quantity * rationQuantityCoe,q_decimal);
     },
@@ -203,6 +205,7 @@ let gljUtil = {
         let quantity_decimal = decimalObj.glj.quantity;
         let process_decimal = decimalObj.process;
         let priceCoe = this.isDef(tenderCoe)?tenderCoe:1;
+        if (priceCoe == '0' || priceCoe == 0) priceCoe = 1;   // 这里加个保护
         if (this.notEditType.indexOf(glj.unit_price.type)!=-1&&glj.ratio_data.length>0) {//对于混凝土、配合比、砂浆、机械台班等有组成物的材料,价格需根据组成物计算得出。
             let p =0;
             for(let ratio of glj.ratio_data){

+ 19 - 12
web/building_saas/main/js/models/calc_program.js

@@ -358,10 +358,10 @@ let calcTools = {
         if ((priceType == priceTypes.ptDiffPrice) && (gljTypes.includes(gljType.MACHINE_LABOUR) || gljTypes.includes(gljType.FUEL_POWER_FEE))){
             for (let glj of treeNode.data.gljList) {
                 if ([gljType.GENERAL_MACHINE, gljType.INSTRUMENT].includes(glj.type)){
-                    if (isTender){
+/*                    if (isTender){
                         calcTools.calcGLJTenderPrice(glj);
                         calcTools.calcGLJTenderQty(treeNode, glj);
-                    };
+                    };*/
                     let mds = projectObj.project.composition.getCompositionByGLJ(glj);
                     if (!mds) mds = [];
                     for (let md of mds){
@@ -369,7 +369,7 @@ let calcTools = {
                             let gljQ = me.uiGLJQty(glj["quantity"]);
                             let mdMP = md["marketPrice"];
                             if (isTender){
-                                calcTools.calcGLJTenderPrice(md);
+                                // calcTools.calcGLJTenderPrice(md);
                                 mdMP = md["tenderPrice"];
 
                                 calcTools.calcGLJTenderQty(treeNode, glj);
@@ -391,13 +391,15 @@ let calcTools = {
         else{
             for (let glj of treeNode.data.gljList) {
                     if (gljTypes.indexOf(glj.type) >= 0) {
-                    if (isTender){
+                    /*if (isTender){
                         calcTools.calcGLJTenderPrice(glj);
                         calcTools.calcGLJTenderQty(treeNode, glj);
-                    };
+                    };*/
                     let qty = isTender ? me.uiGLJQty(glj["tenderQuantity"]) : me.uiGLJQty(glj["quantity"]);
-                    let mprice = isTender ? me.uiGLJPrice(glj["tenderPrice"], glj) : me.uiGLJPrice(glj["marketPrice"], glj);
-                    let aprice = calcTools.hasAdjustPrice() ? me.uiGLJPrice(glj["adjustPrice"], glj) : me.uiGLJPrice(glj["basePrice"], glj);
+                    // let mprice = isTender ? me.uiGLJPrice(glj["tenderPrice"], glj) : me.uiGLJPrice(glj["marketPrice"], glj);
+                    // let aprice = calcTools.hasAdjustPrice() ? me.uiGLJPrice(glj["adjustPrice"], glj) : me.uiGLJPrice(glj["basePrice"], glj);
+                    let mprice = isTender ? glj["tenderPrice"] : glj["marketPrice"];
+                    let aprice = calcTools.hasAdjustPrice() ? glj["adjustPrice"] : glj["basePrice"];
 
                     if (priceType == priceTypes.ptDiffPrice){
                         // if (aprice != mprice){
@@ -406,7 +408,8 @@ let calcTools = {
                         // }
                     }
                     else {
-                        if (priceType == priceTypes.ptBasePrice){ price = me.uiGLJPrice(glj["basePrice"], glj);}
+                        // if (priceType == priceTypes.ptBasePrice){ price = me.uiGLJPrice(glj["basePrice"], glj);}
+                        if (priceType == priceTypes.ptBasePrice){ price = glj["basePrice"];}
                         else if (priceType == priceTypes.ptAdjustPrice){price = aprice;}
                         else if (priceType == priceTypes.ptMarketPrice){price = mprice;}
                         /*if (projectObj.project.property.areaSetting && treeNode.data.areaIncreaseFee){
@@ -566,8 +569,8 @@ let calcTools = {
                     rst.eU = rst.eU + (me.uiGLJQty(glj.quantity) * me.uiGLJPrice(glj.marketPrice, glj)).toDecimal(decimalObj.process);
                     rst.eU = rst.eU.toDecimal(decimalObj.process);
                     // 不能直接用glj.tenderPrice,这个值不可靠。当调价界面删除单价系数后,tenderPrice没有实时计算,取得的值为0
-                    // rst.eTU = rst.eTU + (me.uiGLJQty(glj.tenderQuantity) * me.uiGLJPrice(glj.tenderPrice, glj)).toDecimal(decimalObj.process);
-                    rst.eTU = rst.eTU + (me.uiGLJQty(glj.tenderQuantity) * me.calcGLJTenderPrice(glj)).toDecimal(decimalObj.process);
+                    rst.eTU = rst.eTU + (me.uiGLJQty(glj.tenderQuantity) * glj.tenderPrice).toDecimal(decimalObj.process);
+                    // rst.eTU = rst.eTU + (me.uiGLJQty(glj.tenderQuantity) * me.calcGLJTenderPrice(glj)).toDecimal(decimalObj.process);
                     rst.eTU = rst.eTU.toDecimal(decimalObj.process);
                 }
                 else{   // 组成物。
@@ -581,8 +584,9 @@ let calcTools = {
                         rst.eU = rst.eU + (mdU * me.uiGLJQty(glj.quantity)).toDecimal(decimalObj.process);
                         rst.eU = rst.eU.toDecimal(decimalObj.process);
 
-                        // 调价时,数量只调到工料机级别,工料机下的组成物不调量(如机械、混凝土)。调价调的是工料机下的组成物的价。
-                        let mdTU = (me.uiGLJQty(md.consumption) * me.calcGLJTenderPrice(md)).toDecimal(decimalObj.glj.unitPrice);
+                        // 数量只调到工料机级别,工料机下的组成物不调量(如机械、混凝土)。调价调的是工料机下的组成物的价。
+                        // let mdTU = (me.uiGLJQty(md.consumption) * me.calcGLJTenderPrice(md)).toDecimal(decimalObj.glj.unitPrice);
+                        let mdTU = (me.uiGLJQty(md.consumption) * md.tenderPrice).toDecimal(decimalObj.glj.unitPrice);
                         rst.eTU = rst.eTU + (mdTU * me.calcGLJTenderQty(treeNode, glj)).toDecimal(decimalObj.process);
                         rst.eTU = rst.eTU.toDecimal(decimalObj.process);
                     }
@@ -925,6 +929,7 @@ let calcTools = {
                 if (treeNode.data.rationQuantityCoe)
                     qCoe = treeNode.data.rationQuantityCoe;
             };
+            if (qCoe == '0' || qCoe == 0) qCoe = 1;
             treeNode.data.tenderQuantity = (this.uiNodeQty(treeNode) * qCoe).toDecimal(decimalObj.decimal("quantity", treeNode));
             return treeNode.data.tenderQuantity;
         }
@@ -959,6 +964,7 @@ let calcTools = {
                     qCoe = treeNode.data.quantityCoe.equipment;
             };
         }
+        if (qCoe == '0' || qCoe == 0) qCoe = 1;   // 这里加个保护
         glj.tenderQuantity = (glj.quantity * qCoe).toDecimal(decimalObj.glj.quantity);
         return glj.tenderQuantity;
     },
@@ -972,6 +978,7 @@ let calcTools = {
                 if (projectObj.project.property.tenderSetting && projectObj.project.property.tenderSetting.gljPriceTenderCoe)
                     pCoe = projectObj.project.property.tenderSetting.gljPriceTenderCoe;
             };
+            if (pCoe == '0' || pCoe == 0) pCoe = 1;   // 这里加个保护
             glj.tenderPrice = (glj.marketPrice * pCoe).toDecimal(decimalObj.glj.unitPrice);
         };
         return glj.tenderPrice;