Explorar el Código

Merge branch '1.0.0_online' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost into 1.0.0_online

zhongzewei hace 7 años
padre
commit
e489cc00bb

+ 1 - 2
modules/fee_rates/facade/fee_rates_facade.js

@@ -262,9 +262,8 @@ async function changeFeeRateStandard(jdata){
         libName:template.libName,
         feeRateID: newFeeRate.ID
     };
-    let deleteInfo = {deleted: true, deleteDateTime: new Date(), deleteBy: data.user_id};
     await feeRateFileModel.findOneAndUpdate({ID:data.feeRateFileID,deleteInfo:null},doc);
-    await feeRateModel.findOneAndUpdate({ID:data.feeRateID},{deleteInfo:deleteInfo});
+    await feeRateModel.deleteOne({ID:data.feeRateID});
     doc.rates=newFeeRate.rates;
     return doc;
 }

+ 4 - 2
web/building_saas/main/js/controllers/block_controller.js

@@ -538,9 +538,11 @@ let BlockController = {
         function createBillsData(billsData) { //ID、重新生成code
             let temData = _.cloneDeep(billsData);
             //删除旧数据
+            if(temData.children && temData.children.length>0){//如果是有子项,说明是计算得到的,要删除重新计算,没有子项,但是fees有值,说明是自已输入的,值要一起粘贴
+                delete  temData.fees;
+                delete  temData.feesIndex;
+            }
             delete  temData._id;
-            delete  temData.fees;
-            delete  temData.feesIndex;
             delete  temData.children;
             delete  temData.quantity_details;
             delete  temData.__v;

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

@@ -301,6 +301,10 @@ let calcTools = {
             let arr = fieldName.split('.');
             this.initFeeField(treeNode, arr[1]);
             treeNode.data.feesIndex[arr[1]][arr[2]] = value;
+            if(fieldName == 'feesIndex.common.unitFee'){
+                let fee = _.find(treeNode.data.fees,{'fieldName':arr[1]});
+                if(fee) fee[arr[2]] = value;
+            }
         }
         else{
             treeNode.data[fieldName] = value;

+ 29 - 22
web/building_saas/main/js/models/ration.js

@@ -555,7 +555,7 @@ var Ration = {
         };
 
 
-        ration.prototype.addNewRation = function (itemQuery,rationType,callback=null,isEmpty=false,priceType) {//priceType 是量价类型
+        ration.prototype.addNewRation = function (itemQuery,rationType,callback=null,isEmpty=false,priceType,needCalcAndSave=true) {//priceType 是量价类型
             let me = this;
             let project = projectObj.project, sheetController = projectObj.mainController;
             let engineering = projectInfoObj.projectInfo.property.engineering;
@@ -605,35 +605,42 @@ var Ration = {
                 CommonAjax.post("/ration/addNewRation",{itemQuery:itemQuery,newData:newData,defaultLibID: rationLibObj.getDefaultStdRationLibID(),calQuantity:calQuantity,brUpdate:brUpdate,needInstall:needInstall},function (data) {
                     //更新缓存
                     me.datas.push(data.ration);
-
                     me.addSubListOfRation(data);
-
                     //插入树节点
                     newSource = data.ration;
-                    newNode = project.mainTree.insert(billItemID, nextID, newSource.ID);
-                    newNode.source = newSource;
-                    newNode.sourceType = project.Ration.getSourceType();
-                    newNode.data = newSource;
-                    project.projectGLJ.loadData(function () {
-                        ProjectController.syncDisplayNewNode(sheetController, newNode);
-                        project.ration_glj.addToMainTree(data.ration_gljs);
-                        projectObj.mainController.refreshTreeNode([newNode], false);
-                        project.calcProgram.calcAndSave(newNode,function () {
-                            if(project.Bills.isFBFX(newNode)) { //判断是否属于分部分项工程 ,是的话才需要做计取安装费计算
-                                installationFeeObj.calcInstallationFee();
-                            }
+                    if(needCalcAndSave == false){
+                        syncNodeOper(data);
+                        if(callback) callback(newNode);
+                    }else {
+                        project.projectGLJ.loadData(function () {
+                            syncNodeOper(data);
+                            project.calcProgram.calcAndSave(newNode,function () {
+                                if(project.Bills.isFBFX(newNode)) { //判断是否属于分部分项工程 ,是的话才需要做计取安装费计算
+                                    installationFeeObj.calcInstallationFee();
+                                }
+                            });
+                            //如果添加规则中,添加内容为定额子目,则更新相关清单
+                            updateBillsOprRation();
+                            if(callback) callback(newNode);
                         });
-                        //如果添加规则中,添加内容为定额子目,则更新相关清单
-                        updateBillsOprRation();
-                        if(callback){
-                            callback(newNode);
-                        }
-                        $.bootstrapLoading.end();
-                    });
+                    }
+                    $.bootstrapLoading.end();
                 })
                 return newNode;
             }
             else return null;
+
+            function syncNodeOper(data) {//插入后刷新节点操作
+                newNode = project.mainTree.insert(billItemID, nextID, newSource.ID);
+                newNode.source = newSource;
+                newNode.sourceType = project.Ration.getSourceType();
+                newNode.data = newSource;
+                ProjectController.syncDisplayNewNode(sheetController, newNode);
+                project.ration_glj.addToMainTree(data.ration_gljs);
+                projectObj.mainController.refreshTreeNode([newNode], false);
+            }
+
+
         };
         ration.prototype.addNewRationFast = function (rationType,callback) {
             let me = this;

+ 0 - 6
web/building_saas/main/js/views/mbzm_view.js

@@ -528,12 +528,6 @@ let mbzm_obj={
                         t_times = isNaN(t_times)?1:t_times;//工程量要乘以定额单位的倍数
                         rnode.data.quantity = scMathUtil.roundForObj(t_quantity/t_times,getDecimal('ration.quantity'));
                         rnode.data.contain = projectObj.project.Ration.getContain(rnode.parent,rnode.data.quantity);
-                       /* if(rnode.parent.data.quantity&&rnode.parent.data.quantity!=0&&rnode.parent.data.quantity!=""){
-                            var billQuantity = scMathUtil.roundForObj(rnode.parent.data.quantity,getDecimal("quantity",node.parent));
-                            rnode.data.contain = scMathUtil.roundForObj(rnode.data.quantity/billQuantity,getDecimal("process"));
-                        }else {
-                            rnode.data.contain=0;
-                        }*/
                         rnode.change = true;
                         rationNodes.push(rnode)
                     }

+ 9 - 5
web/building_saas/pm/js/pm_newMain.js

@@ -1104,6 +1104,13 @@ const projTreeObj = {
         }
         sheet.setValue(row, col, value);
     },
+    setFileSelectButton:function (row,col,node,sheet,setting) {
+        if(!setting) setting = this.setting;
+        let dataCode = setting.header[col]['dataCode'];
+        if(node.data.projType == "Tender" && (dataCode=="feeRateFile" || dataCode == "unitPriceFile")){
+            sheet.setCellType(row, col,sheetCommonObj.getCusButtonCellType(projTreeObj.cusButtonClick,false),GC.Spread.Sheets.SheetArea.viewport);
+        }
+    },
     showTreeData: function (nodes, setting,sheet) {
         let headers = setting.header;
         let me = this;
@@ -1122,11 +1129,7 @@ const projTreeObj = {
                         sheet.getCell(i, j).hAlign(GC.Spread.Sheets.HorizontalAlign.center);
                     }
                     me.setCellValue({row: i, col: j}, nodes[i],sheet,setting);
-                    let dataCode = headers[j].dataCode;
-                    if(nodes[i].data.projType == "Tender" && (dataCode=="feeRateFile" || dataCode == "unitPriceFile")) {
-                        sheet.setCellType(i, j,sheetCommonObj.getCusButtonCellType(me.cusButtonClick,false),GC.Spread.Sheets.SheetArea.viewport);
-                    }
-                    //sheet.setValue(i, j, nodes[i]['data'][dataCode]);
+                    me.setFileSelectButton(i,j,nodes[i],sheet,setting);
                 }
                 sheet.getCell(i, 1,GC.Spread.Sheets.SheetArea.viewport).locked(true);
             }
@@ -1151,6 +1154,7 @@ const projTreeObj = {
             let rIdx = me.tree.items.indexOf(n);
             for(let i = 0; i < header.length; i++){
                 me.setCellValue({row: rIdx, col: i}, n,sheet);
+                me.setFileSelectButton(rIdx,i,n,sheet)
             }
         }