Browse Source

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

MaiXinRong 8 years ago
parent
commit
9a3dafda76

+ 7 - 6
public/calc_util.js

@@ -19,7 +19,7 @@ let executeObj = {
     at: function(code) {
         let me = executeObj,
             rst = 0;
-        rst = me.currentTpl.compileAssistantObj[code].execRst;
+        rst = me.currentTpl.compileAssistantObj[code].unitFee;
         return rst;
     },
     base: function(calcBaseCode) {
@@ -28,9 +28,9 @@ let executeObj = {
         if (idx >= 0) {
             if (dummyCalcBaseCodeTypeCollection[idx].length > 0) {
                 let tmpSum = 0;
-                for (let glj of me.currentRationItem.rationGljList) {
-                    if (dummyCalcBaseCodeTypeCollection[idx].indexOf(glj["glj"]["gljType"]) >= 0) {
-                        tmpSum += glj["glj"]["basePrice"] * glj["consumeAmt"];
+                for (let glj of me.currentRationItem.data.gljList) {
+                    if (dummyCalcBaseCodeTypeCollection[idx].indexOf(glj["type"]) >= 0) {
+                        tmpSum += glj["basePrice"] * glj["quantity"];
                     }
                 }
                 rst = tmpSum;
@@ -184,10 +184,11 @@ class calculation {
             $CE.compiledFeeRateFile = me.compiledFee;
             for (let idx of me.calcTpl.compiledSeq) {
                 let item = me.calcTpl.calcItems[idx];
-                item.execRst = eval(item.compiledExpr);
+                item.unitFee = eval(item.compiledExpr);
+                item.totalFee = eval(item.unitFee * 5);     // AAAAA 5为测试值 $RATION.data.Quantity
             }
         }
     }
 }
 
-module.exports = new calculation();
+//module.exports = new calculation();

+ 7 - 2
web/building_saas/main/html/main.html

@@ -496,15 +496,19 @@
     <script type="text/javascript" src="/web/building_saas/main/js/models/volume_price.js"></script>
 
     <script type="text/javascript" src="/public/web/id_tree.js"></script>
-    <script type="text/javascript" src="/test/tmp_data/test_ration_calc/ration_calc_base.js"></script>
+	<script type="text/javascript" src="/test/tmp_data/test_ration_calc/ration_calc_base.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/models/cache_tree.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/calc/calc_fees.js"></script>
-    <script type="text/javascript" src="/web/building_saas/main/js/calc/ration_calc.js"></script>
+    <!-- 小麦这里跑不通,暂时屏蔽。另外单元名、类名均重复
+    <script type="text/javascript" src="/web/building_saas/main/js/calc/ration_calc.js"></script>-->
     <script type="text/javascript" src="/web/building_saas/main/js/calc/bills_calc.js"></script>
+    <script type="text/javascript" src="/public/calc_util.js"></script>
+    <script type="text/javascript" src="/web/building_saas/main/js/models/ration_calc.js"></script>
     <!-- Controller -->
     <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_controller.js"></script>
     <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_helper.js"></script>
     <script type="text/javascript" src="/public/web/sheet/sheet_data_helper.js"></script>
+
     <!-- Test Data -->
     <script type="text/javascript" src="/test/tmp_data/bills_grid_setting.js"></script>
     <!--<script type="text/javascript" src="/test/tmp_data/test_bills_calc/bills_grid_setting_test_calc.js"></script>
@@ -530,6 +534,7 @@
     <script type="text/javascript" src="/web/building_saas/main/js/views/glj_view.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/ration_calc_view.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/sub_view.js"></script>
+    <script src="/public/debug.js"></script>
 
     <SCRIPT type="text/javascript">
   		<!--

+ 19 - 69
web/building_saas/main/js/models/ration_calc.js

@@ -250,7 +250,8 @@ let calcTemplate = {
             dispExpr: "A3*[1.89-1]",
             expression: "A('3') * (1.89-1)",
             compiledExpr: "",
-            statement: "定额基价人工费*[定额人工单价(基价)调整系数-1]"
+            statement: "定额基价人工费*[定额人工单价(基价)调整系数-1]",
+            memo: "渝建发(2013)51"
         },
         {
             code: "5",
@@ -306,7 +307,8 @@ let calcTemplate = {
             dispExpr: "A3",
             expression: "A('3')",
             compiledExpr: "",
-            statement: "定额基价人工费"
+            statement: "定额基价人工费",
+            memo: "渝建发[2014]27号"
         },
         {
             code: "12",
@@ -319,10 +321,11 @@ let calcTemplate = {
         {
             code: "13",
             name: "风险因素",
-            dispExpr: "",
+            dispExpr: "A3",
             expression: "A('3')",
             compiledExpr: "",
-            statement: "定额基价人工费"
+            statement: "定额基价人工费",
+            memo: "同定额包干费"
         },
         {
             code: "14",
@@ -367,69 +370,16 @@ let calcTemplate = {
     ]
 };
 
-let calcRation = {
-    "sectionId" : 76,
-    "ID" : 15,
-    "code" : "AA0001",
-    "name" : "人工挖土方",
-    "unit" : "100m3",
-    "basePrice" : 840.84,
-    "caption" : "人工挖土方",
-    "feeType" : 2,
-    "rationGljList" : [
-        {
-            "glj" : {
-                "repositoryId" : 3,
-                "ID" : 17,
-                "code" : "00010201",
-                "name" : "土石方综合工日",
-                "specs" : null,
-                "unit" : "工日",
-                "basePrice" : 22,
-                "gljDistType" : "人工",
-                "gljType" : 2
-            },
-            "consumeAmt" : 38.22,
-            "proportion" : 0
-        },{
-            "glj": {
-                "repositoryId" : 3,
-                "ID" : 68,
-                "code" : "85030207",
-                "name" : "履带式起重机",
-                "specs" : "50t",
-                "unit" : "台班",
-                "basePrice" : 1194.05,
-                "gljDistType" : "机械",
-                "gljType" : 64
-            },
-            "consumeAmt" : 1.22,
-            "proportion" : 0
-        },{
-            "glj": {
-                "repositoryId" : 3,
-                "ID" : 200,
-                "code" : "36290101",
-                "name" : "水",
-                "specs" : "",
-                "unit" : "m3",
-                "basePrice" : 2,
-                "gljDistType" : "材料",
-                "gljType" : 6
-            },
-            "consumeAmt" : 9.2,
-            "proportion" : 0
-        }
-    ],
-    "rationRepId" : 3
-};
-
-let rationCalcObj = {};
+class RationCalc {
+    constructor(project){
+        this.project = project;
+    };
 
-calcUtil.init(dummyCalcTpl, dummyFee);
-calcUtil.compile();
-calcUtil.calculate(dummyRation);
-for (let idx of dummyCalcTpl.compiledSeq) {
-    let item = dummyCalcTpl.calcItems[idx];
-    console.log('code: ' + item.code + ' | expression: ' + item.compiledExpr +  ' | result: ' + item.execRst);
-};
+    calculate(ration){
+        let calc = new calculation();
+        calc.init(calcTemplate, calcFeeRate);
+        calc.compile();
+        ration.data.gljList = projectObj.project.ration_glj.getGljArrByRation(ration.data.ID);
+        calc.calculate(ration);
+    };
+}

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

@@ -55,8 +55,15 @@ var projectObj = {
 
                 that.mainController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, function (node) {
                     gljOprObj.showDataIfRationSelect(node);
-                    if(node.sourceType=="ration"){
+
+                    // CSL.2017.07.25
+                    if(node.sourceType=="ration" && subSpread.getActiveSheet().name()=='JSCX'){
                         rationCalcView.showData(node);
+                    }else{
+                        if (subSpread.getActiveSheet().name()=='JSCX'){
+                            //alert('clearData');
+                            rationCalcView.clearData;
+                        }
                     }
                 });
 

+ 69 - 2
web/building_saas/main/js/views/ration_calc_view.js

@@ -1,6 +1,63 @@
 /**
  * Created by CSL on 2017-07-17.
  */
+//for test AAAAAAAAAAAAA
+let calcRation = {
+    "sectionId" : 76,
+    "ID" : 15,
+    "code" : "AA0001",
+    "name" : "人工挖土方",
+    "unit" : "100m3",
+    "basePrice" : 840.84,
+    "caption" : "人工挖土方",
+    "feeType" : 2,
+    "rationGljList" : [
+        {
+            "glj" : {
+                "repositoryId" : 3,
+                "ID" : 17,
+                "code" : "00010201",
+                "name" : "土石方综合工日",
+                "specs" : null,
+                "unit" : "工日",
+                "basePrice" : 22,
+                "gljDistType" : "人工",
+                "gljType" : 2
+            },
+            "consumeAmt" : 38.22,
+            "proportion" : 0
+        },{
+            "glj": {
+                "repositoryId" : 3,
+                "ID" : 68,
+                "code" : "85030207",
+                "name" : "履带式起重机",
+                "specs" : "50t",
+                "unit" : "台班",
+                "basePrice" : 1194.05,
+                "gljDistType" : "机械",
+                "gljType" : 64
+            },
+            "consumeAmt" : 1.22,
+            "proportion" : 0
+        },{
+            "glj": {
+                "repositoryId" : 3,
+                "ID" : 200,
+                "code" : "36290101",
+                "name" : "水",
+                "specs" : "",
+                "unit" : "m3",
+                "basePrice" : 2,
+                "gljDistType" : "材料",
+                "gljType" : 6
+            },
+            "consumeAmt" : 9.2,
+            "proportion" : 0
+        }
+    ],
+    "rationRepId" : 3
+};
 
 let rationCalcView = {
     sheet: null,
@@ -14,7 +71,7 @@ let rationCalcView = {
             {headerName: "计算基数", headerWidth: 180, dataCode: "dispExpr", dataType: "String"},
             {headerName: "基数说明", headerWidth: 220, dataCode: "statement", dataType: "String"},
             {headerName: "费率", headerWidth: 80, dataCode: "feeRate", dataType: "Number"},   // precision: 3
-            {headerName: "单价", headerWidth: 100, dataCode: "unitFee", dataType: "Number"},
+            {headerName: "单价", headerWidth: 100, dataCode: "unitFee", dataType: "Number"},  // execRst
             {headerName: "合价", headerWidth: 100, dataCode: "totalFee", dataType: "Number"},
             {headerName: "备注", headerWidth: 120, dataCode: "memo", dataType: "String"}
         ],
@@ -27,14 +84,24 @@ let rationCalcView = {
     initSheet: function (sheet) {
         var me = this;
         me.sheet = sheet;
-        sheetCommonObj.initSheet(me.sheet, me.setting, 20);     // AAAAAAAAAAAA
+        sheetCommonObj.initSheet(me.sheet, me.setting, 20);     // AAAAAAAA
     },
 
     showData: function (ration) {
         var me = this;
         me.ration = ration;  // AAAAAAA
+        //me.ration = calcRation;
+        let rationCalc = new RationCalc(projectObj.project);
+        rationCalc.calculate(me.ration);
+
         me.datas = calcTemplate.calcItems;   // AAAAAAAAA
         sheetCommonObj.showData(me.sheet, me.setting, me.datas);
+    },
+
+    clearData: function (){
+        var me = this;
+        sheetCommonObj.showData(me.sheet, me.setting,[]);
+        //sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);  无效
     }
 
 }

+ 3 - 2
web/building_saas/main/js/views/sub_view.js

@@ -4,6 +4,7 @@
 
 // Tab panes 下有多个Spread时,相互之间不能正确显示。改成一个Spread下多个Sheet。
 var subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 7);
+subSpread.getSheet(4).name('JSCX');
 
 
 // 工料机
@@ -50,10 +51,10 @@ $("#linkGCLMX").click(function(){
     //subSpread.getActiveSheet().setValue(0, 0, "工程量明细");
 });
 
-$("#linkJSCX").click(function(){
+$("#linkJSCX").click(function(){        // 计算程序
     subSpread.setActiveSheetIndex(4);
     rationCalcView.initSheet(subSpread.getSheet(4));
-    rationCalcView.showData();
+    //rationCalcView.showData();
 });
 
 $("#linkFXSM").click(function(){