瀏覽代碼

价差算法变更

chenshilong 7 年之前
父節點
當前提交
d942e8fa92
共有 2 個文件被更改,包括 26 次插入13 次删除
  1. 18 4
      web/building_saas/main/js/models/calc_program.js
  2. 8 9
      web/building_saas/main/js/views/project_view.js

+ 18 - 4
web/building_saas/main/js/models/calc_program.js

@@ -203,26 +203,40 @@ let calcTools = {
     rationBaseFee: function (treeNode, gljTypes, priceType){
         if (!treeNode.data.gljList) return 0;
         let me = this, result = 0;
+        let price = 0, temp = 0, temp2 = 0;
         for (let glj of treeNode.data.gljList) {
-            let price = 0, temp = 0;
             if (gljTypes.indexOf(glj.type) >= 0) {
-                if (priceType == priceTypes.ptDiffPrice){
+/*                if (priceType == priceTypes.ptDiffPrice){
                     let aprice = me.uiGLJPrice(glj["adjustPrice"]);
                     let mprice = me.uiGLJPrice(glj["marketPrice"]);
                     temp = (me.uiGLJQty(glj["quantity"]) * mprice).toDecimal(decimalObj.process) - (me.uiGLJQty(glj["quantity"]) * aprice).toDecimal(decimalObj.process);
                     temp = temp.toDecimal(decimalObj.process);
+                }*/
+                if (priceType == priceTypes.ptDiffPrice){
+                    let aprice = me.uiGLJPrice(glj["adjustPrice"]);
+                    let mprice = me.uiGLJPrice(glj["marketPrice"]);
+                    if (aprice != mprice){
+                        temp = (temp + (me.uiGLJQty(glj["quantity"]) * mprice).toDecimal(decimalObj.process)).toDecimal(decimalObj.process);
+                        temp2 = (temp2 + (me.uiGLJQty(glj["quantity"]) * aprice).toDecimal(decimalObj.process)).toDecimal(decimalObj.process);
+                    }
                 }
                 else {
                     if (priceType == priceTypes.ptBasePrice){ price = me.uiGLJPrice(glj["basePrice"]);}
                     else if (priceType == priceTypes.ptAdjustPrice){price = me.uiGLJPrice(glj["adjustPrice"]);}
                     else if (priceType == priceTypes.ptMarketPrice){price = me.uiGLJPrice(glj["marketPrice"]);}
                     temp = (me.uiGLJQty(glj["quantity"]) * price).toDecimal(decimalObj.process);
+                    result = (result + temp).toDecimal(decimalObj.process);
                 };
-                result = (result + temp).toDecimal(decimalObj.process);
             };
         };
 
-        result = result.toDecimal(decimalObj.ration.unitPrice);
+        if (priceType == priceTypes.ptDiffPrice){
+            result = (temp.toDecimal(decimalObj.ration.unitPrice) - temp2.toDecimal(decimalObj.ration.unitPrice)).toDecimal(decimalObj.ration.unitPrice);
+        }
+        else{
+            result = result.toDecimal(decimalObj.ration.unitPrice);
+        };
+
         return result;
     },
     machineLabourFee: function (gljArr) {

+ 8 - 9
web/building_saas/main/js/views/project_view.js

@@ -36,21 +36,20 @@ var projectObj = {
         }
 
         // for test interface.  CSLAAAAA
-        // node.data.isSubcontract = true;
-        // node.data.gljList = project.ration_glj.getGljArrByRation(node.data.ID);
-        // let bname = '甲供定额基价材料费';
-        // projectObj.testDisplay(bname, rationCalcBases[bname](node));
+        // projectObj.testDisplay('前四项累计值排除当前选中项' + projectObj.project.calcProgram.getBeforeTaxTotalFee([node]));
 
-/*        let value = projectObj.project.calcProgram.getBeforeTaxTotalFee([node]);
-        alert('前四项累计值排除当前选中项:' + value);*/
+        // 基数
+/*        node.data.isSubcontract = true;
+        node.data.gljList = project.ration_glj.getGljArrByRation(node.data.ID);
+        let bname = '甲供定额基价材料费';
+        projectObj.testDisplay(bname, rationCalcBases[bname](node));*/
 
+        // 公式结果
 /*        let t = projectObj.project.calcProgram.compiledTemplates[node.data.programID];
         let c = t.calcItems[7];
         c.dispExpr = '[定额基价人工费] + [定额基价材料费]  + F6 + [主材费]';
         let rst = analyzer.analyzeUserExpr(t, c);
-        alert(`${rst}: ` + JSON.stringify(c));*/
-
-        // console.log(projectObj.project.projectGLJ.getGLJsBySupply([7]));
+        projectObj.testDisplay('结果', rst);*/
     },
     refreshBaseActn: function (tree) {
         let setButtonValid = function (valid, btn) {