Explorar el Código

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/YangHuCost

TonyKang hace 6 años
padre
commit
f485d5ad0e

+ 12 - 5
public/web/gljUtil.js

@@ -49,24 +49,31 @@ let gljUtil = {
         //计算经过场外运输损耗后的总消耗量
         for(let pglj of project_gljs ){
             let offSiteTransportLossRate = this.getOffSiteTransportLossRate(pglj);
-            pglj.offSiteTransportLossRate = offSiteTransportLossRate;
+            pglj.offSiteTransportLossRate = scMathUtil.roundForObj(offSiteTransportLossRate,getDecimal("glj.unitPrice")) ;
             offSiteTransportLossRate = offSiteTransportLossRate/100;
             pglj.transportLossQuantity =  scMathUtil.roundForObj(pglj.quantity*offSiteTransportLossRate,q_decimal);
             pglj.quantity = scMathUtil.roundForObj(pglj.quantity +  pglj.transportLossQuantity ,q_decimal);
         }
     },
     getOffSiteTransportLossRate:function (pglj) {
-        let offSiteTransportLossRate;
+        let offSiteTransportLossRate;//场外运输损耗率
+        let handlingLossRate;//每增加一次装卸损耗率
+        let totalLoadingTimes = 1;//没有材料计算,获取不到装卸总次数,则按1计算
+        //场外总损耗率=场外运输损耗率%+(装卸总次数-1)*每增加一次装卸损耗率%。
         if(pglj.unit_price){
             if(pglj.unit_price.calcMaterial == 1){//如果是材料计算,则用修改过的新值
                 offSiteTransportLossRate = pglj.unit_price.offSiteTransportLossRate_n;
+                handlingLossRate = pglj.unit_price.handlingLossRate_n;
+                if(pglj.unit_price.totalLoadingTimes && pglj.unit_price.totalLoadingTimes > 1) totalLoadingTimes = parseFloat(pglj.unit_price.totalLoadingTimes)
             } else {
                 offSiteTransportLossRate = pglj.unit_price.offSiteTransportLossRate;
+                handlingLossRate = pglj.unit_price.handlingLossRate;
             }
         }
-        return offSiteTransportLossRate?parseFloat(offSiteTransportLossRate):0;
-
-
+        offSiteTransportLossRate = offSiteTransportLossRate?parseFloat(offSiteTransportLossRate):0;
+        handlingLossRate = handlingLossRate?parseFloat(handlingLossRate):0;
+       // 场外运输损耗率%+(装卸总次数-1)*每增加一次装卸损耗率%
+        return (offSiteTransportLossRate + (totalLoadingTimes - 1) * handlingLossRate);
     },
     getQuantityPerGLJ : function (ration_glj_list,rations,rationMap,pglj,billIDs,tech_billIDS,q_decimal,_,scMathUtil,isTender) {
         let result={};

+ 1 - 1
web/building_saas/main/js/models/calc_program.js

@@ -1687,7 +1687,7 @@ class CalcProgram {
                     btf = sum_rtf;
                     bttf = sum_rttf;
 
-                    if (calcTools.isBillProject()) {  // 招投标项目, 还要反算
+                    if (calcTools.isBillProject() && (ft.type == 'common' || ft.type == 'rationCommon')) {  // 招投标项目, 还要反算
                         buf = buf.toDecimal(decimalObj.bills.unitPrice);
                         btuf = btuf.toDecimal(decimalObj.bills.unitPrice);
                         btf = (buf * nQ).toDecimal(decimalObj.bills.totalPrice);

+ 1 - 3
web/building_saas/main/js/models/project_glj.js

@@ -468,13 +468,12 @@ ProjectGLJ.prototype.priceCalc = function (glj,dataMap) {
 
 ProjectGLJ.prototype.m_updateUnitPrice = function (datas) {//批量更新
     let me = this;
-    let calQ = false;
     let gljList = [];
     for(let d of datas){
         let g = updateUnit(d.id,d.unitPrice);
         if(g) gljList.push(g);
     }
-    if(calQ == true) this.calcQuantity();
+    this.calcQuantity();
     //刷新项目工料机表显示
     projectGljObject.refreshDataSheet();
     //重新计算相关节点
@@ -492,7 +491,6 @@ ProjectGLJ.prototype.m_updateUnitPrice = function (datas) {//批量更新
         let glj = _.find(me.datas.gljList,{'id':id});
         if(glj && !_.isEmpty(unitPrice.doc)){
             for(let key in unitPrice.doc){
-                if(key == "offSiteTransportLossRate_n") calQ = true;
                 glj.unit_price[key] = unitPrice.doc[key];
             }
         }