Bladeren bron

fixed: BUG #3388 材料计算中修改“单位毛重(吨)”时,右侧运费计算窗口的计算式应同步。

Tony Kang 3 jaren geleden
bovenliggende
commit
65e38d8b2b
2 gewijzigde bestanden met toevoegingen van 15 en 2 verwijderingen
  1. 1 1
      web/building_saas/main/js/models/calc_program.js
  2. 14 1
      web/building_saas/main/js/models/project_glj.js

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

@@ -1991,7 +1991,7 @@ class CalcProgram {
           bttf = sum_rttf;
         }
 
-        debugger;
+        // debugger;
         if (me.project.property.billsCalcMode == leafBillGetFeeType.rationPriceConverse && ["common", "rationCommon", "indexCommon"].includes(ft.type)) {
           // 招投标项目, 还要反算
           // 9-24 新需求 开放正算反算选项,按选项判断

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

@@ -663,12 +663,25 @@ ProjectGLJ.prototype.updateMaterialCalc = async function (datas) {
             updateDatas.push(unitPrice);
         }
         if(updateDatas.length ==0 ) return;
-        let [unitPrices,sumMap] = this.calcAllMaterial(updateDatas);
+        let [unitPrices,sumMap] = this.calcAllMaterial(updateDatas, true);
         sumMap = {"unitPrice":unitPrices};
         $.bootstrapLoading.start();
         let result =  await ajaxPost('/glj/updateMaterialCalcTasks',sumMap);
         this.refreshMaterialCalcCache(sumMap);
         materialCalcObj.showDatas();
+        // 这里要重新设置所有运费计算的计算式(BUG #3388)
+        if (materialCalcObj.freightDatas && materialCalcObj.freightDatas.length > 0) {
+            let actionMap = {update: {}};
+            for (const reCode of materialCalcObj.freightDatas) {
+                let doc = {kmDistance: reCode.kmDistance};
+                doc.exp = materialCalcObj.getFreightEXP(reCode, doc, true);
+                actionMap.update[reCode.ID] = doc;
+            }
+            let sumMapAfter = {freight: actionMap};
+            let result =  await ajaxPost('/glj/updateMaterialCalcTasks',sumMapAfter);
+            this.refreshMaterialCalcCache(sumMapAfter);
+            materialCalcObj.showDatas();
+        }
     }catch (e){
         console.log(e)
     }finally {