Chenshilong 7 years ago
parent
commit
75b6c56d61

+ 6 - 5
web/building_saas/main/js/models/calc_program.js

@@ -582,6 +582,7 @@ class CalcProgram {
 
         // 汇总定额或子清单的费用类别
         if (treeNode.calcType == treeNodeCalcType.ctGatherRations || treeNode.calcType == treeNodeCalcType.ctGatherBills){
+            treeNode.data.programID = null;
             initFees(treeNode);
 
             let objsArr = (treeNode.calcType == treeNodeCalcType.ctGatherRations) ? project.Ration.getRationsByNode(treeNode) : treeNode.children;
@@ -612,7 +613,7 @@ class CalcProgram {
             treeNode.data.calcTemplate = {"calcItems": rst};
         }
         else{
-            // 叶子清单的缺省计算程序需要提供总金额作为计算基数(不需要工料机),然后每条按比例(费率)计算,不需要工料机明细。
+            // 叶子清单的公式计算:使用缺省清单计算程序需要提供总金额作为计算基数(不需要工料机),然后每条按比例(费率)计算,不需要工料机明细。
             if (treeNode.calcType == treeNodeCalcType.ctCalcBaseValue){
                 delete treeNode.data.gljList;
 
@@ -626,16 +627,16 @@ class CalcProgram {
                 treeNode.data.marketTotalFee = (muf * q).toDecimal(me.digit);
                 treeNode.data.gljList = me.project.ration_glj.getGljArrByRation(treeNode.data.ID);
                 if (treeNode.data.programID == undefined){
-                    treeNode.data.programID = 1;
+                    treeNode.data.programID = projectInfoObj.projectInfo.property.engineering;
                 };
             }
             else if (treeNode.calcType == treeNodeCalcType.ctBillCalcProgram) {
                 let rations = project.Ration.getBillsSortRation(treeNode.source.getID());
                 treeNode.data.gljList = project.ration_glj.getGatherGljArrByRations(rations);
 
-                if (treeNode.data.programID == undefined){
-                    treeNode.data.programID = 1;
-                };
+                if (treeNode.data.programID == undefined || treeNode.data.programID == defaultBillTemplate.ID){
+                    treeNode.data.programID = projectInfoObj.projectInfo.property.engineering;
+                }
             };
 
             let template = me.compiledTemplates[treeNode.data.programID];

+ 2 - 0
web/building_saas/main/js/models/volume_price.js

@@ -51,6 +51,8 @@ var VolumePrice = {
             getTempVolumePrice (newID, billsID, serialNo) {
                 var newData = {'ID': newID, 'serialNo': serialNo, projectID: tools.owner.ID()};
                 newData[project.masterField.volumePrice] = billsID;
+                newData.type = '材料';
+                newData.programID = projectInfoObj.projectInfo.property.engineering;
                 return newData;
             };
             getBillsSortVolumePrice (billsID) {

+ 1 - 1
web/building_saas/main/js/views/calc_program_view.js

@@ -232,7 +232,7 @@ let calcProgramObj = {
             projectObj.project.calcProgram.calculate(treeNode);
             projectObj.project.calcProgram.saveNode(treeNode);
         };
-        me.datas = treeNode.data.calcTemplate.calcItems;
+        me.datas = treeNode.data.calcTemplate ? treeNode.data.calcTemplate.calcItems : [];
         sheetCommonObj.initSheet(me.sheet, me.setting, me.datas.length);
         sheetCommonObj.showData(me.sheet, me.setting, me.datas);
 

+ 19 - 4
web/building_saas/main/js/views/main_tree_col.js

@@ -31,6 +31,15 @@ let MainTreeCol = {
             return node.sourceType !== projectObj.project.VolumePrice.getSourceType();
         },
 
+        calcProgramName: function (node) {
+            if (
+                node.sourceType === projectObj.project.VolumePrice.getSourceType() ||
+                node.sourceType === projectObj.project.Ration.getSourceType() ||
+                (node.sourceType === projectObj.project.Bills.getSourceType() && node.source.children && node.source.children.length === 0 && projectObj.project.projSetting.billsCalcMode === billsPrice)
+            ) return false
+            else return true;
+        },
+
         bills: function (node) {
             return node.sourceType === projectObj.project.Bills.getSourceType();
         },
@@ -85,10 +94,16 @@ let MainTreeCol = {
             return feeRateObject.getFeeRateEditCellType();
         },
 
-        calcProgramName: function () {
-            var names = new GC.Spread.Sheets.CellTypes.ComboBox();
-            names.items(projectObj.project.calcProgram.compiledTemplateNames);
-            return names;
+        calcProgramName: function (node) {
+            if (
+                node.sourceType === projectObj.project.VolumePrice.getSourceType() ||
+                node.sourceType === projectObj.project.Ration.getSourceType() ||
+                (node.sourceType === projectObj.project.Bills.getSourceType() && node.source.children && node.source.children.length === 0 && projectObj.project.projSetting.billsCalcMode === billsPrice)
+            ) {
+                var names = new GC.Spread.Sheets.CellTypes.ComboBox();
+                names.items(projectObj.project.calcProgram.compiledTemplateNames);
+                return names;
+            }
         },
 
         type: function (node) {