Explorar el Código

bugs 工料机排序

zhangweicheng hace 7 años
padre
commit
6c9faa6962

+ 1 - 1
modules/ration_glj/facade/glj_calculate_facade.js

@@ -132,7 +132,7 @@ function generateUpdateTasks(result) {
 
 function sortRationGLJ(list) {
     list = _.sortByAll(list, [function (item) {
-        return _.indexOf(gljUtil.getGljTypeSeq(),item.type);
+        return gljUtil.getMainType(item.type);
     }, "code"])
     return list;
 }

+ 3 - 3
public/gljUtil.js

@@ -16,7 +16,7 @@ module.exports = {
     getMarketPrice:getMarketPrice,
     getBasePrice:getBasePrice,
     getAdjustPrice:getAdjustPrice,
-    getGljTypeSeq:getGljTypeSeq
+    getMainType:getMainType
 };
 
 function calcProjectGLJQuantity(projectGLJDatas,rationGLJDatas,rationDatas,billsDatas,q_decimal) {
@@ -43,6 +43,6 @@ function calcPriceDiff(glj,calcOptions) {
     gljNodeUtil.calcPriceDiff(glj,calcOptions);
 }
 
-function getGljTypeSeq() {
-    return gljNodeUtil.getGljTypeSeq();
+function getMainType() {
+    return gljNodeUtil.getMainType();
 }

+ 19 - 8
public/web/gljUtil.js

@@ -295,17 +295,26 @@ let gljUtil = {
         t_index = k_arr.join("|-|");
         return t_index;
     },
-    getGljTypeSeq:function () {
-        let gljType = this.gljType;
-        return   [gljType.LABOUR,gljType.MAIN_MATERIAL,gljType.CONCRETE,gljType.MORTAR,gljType.MIX_RATIO,gljType.COMMERCIAL_CONCRETE,
-            gljType.COMMERCIAL_MORTAR,gljType.GENERAL_MATERIAL,gljType.OTHER_MATERIAL,gljType.GENERAL_MACHINE,gljType.INSTRUMENT,gljType.OTHER_MACHINE_USED,
-            gljType.MACHINE_COMPOSITION,gljType.MACHINE_LABOUR,gljType.FUEL_POWER_FEE,gljType.DEPRECIATION_FEE,gljType.INSPECTION_FEE,gljType.MAINTENANCE,
-            gljType.DISMANTLING_FREIGHT_FEE,gljType.VERIFICATION_FEE,gljType.OTHER_FEE,gljType.EQUIPMENT,gljType.MANAGEMENT_FEE,gljType.PROFIT,gljType.GENERAL_RISK_FEE]
+    getMainType:function (type) {
+        let str = type + "";
+        return parseInt(str.substr(0,1));
     },
     sortRationGLJ:function (list) {
         list = _.sortByAll(list, [function (item) {
-            return _.indexOf(gljTypeSeq,item.type)
-        }, "code"])
+            return gljUtil.getMainType(item.type);
+        }, "code"]);
+        return list;
+    },
+    sortMixRatio:function (list) {
+        return _.sortByAll(list, ["code"]);
+    },
+    //项目工料机 混凝土、砂浆、配合比排序与定额工料机不一样,同时,type取值的地方不一样
+    sortProjectGLJ:function (list) {
+        let specialMap = {202:9,203:10,204:11};//混凝土、砂浆、配合比 排到最后
+        list = _.sortByAll(list, [function (item) {
+            if(gljUtil.isConcreteType(item.unit_price.type)) return specialMap[item.unit_price.type];
+            return gljUtil.getMainType(item.unit_price.type);
+        }, "code"]);
         return list;
     },
     isConcreteType:function (type) {
@@ -342,6 +351,8 @@ let gljUtil = {
         COMMERCIAL_CONCRETE: 205,                   // 商品混凝土
         COMMERCIAL_MORTAR: 206,                     // 商品砂浆
         OTHER_MATERIAL: 207,                        // 其它材料
+        PURCHASE_COMPONENT: 208,                    // 外购砼构件
+        GREEN_SEEDLING: 209,                        // 绿化苗木
         // ==============材料类型 ↑=================
         // ==============机械类型 ↓=================
         GENERAL_MACHINE: 301,                       // 机械台班

+ 1 - 3
web/building_saas/glj/js/project_glj.js

@@ -343,9 +343,7 @@ function filterProjectGLJ(jsonData) {
 
 function sortProjectGLJ(jsonData) {
     if (jsonData.length > 0) {
-        jsonData = _.sortByAll(jsonData, [function (item) {
-            return _.indexOf(gljTypeSeq,item.unit_price.type);
-        }, 'code']);
+        jsonData = gljUtil.sortProjectGLJ(jsonData)
     }
     return jsonData
 }

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

@@ -20,10 +20,6 @@ const ModuleNames = {
 };
 
 let gljType = gljUtil.gljType;
-let gljTypeSeq =gljUtil.getGljTypeSeq(); /*[gljType.LABOUR,gljType.MAIN_MATERIAL,gljType.CONCRETE,gljType.MORTAR,gljType.MIX_RATIO,gljType.COMMERCIAL_CONCRETE,
-    gljType.COMMERCIAL_MORTAR,gljType.GENERAL_MATERIAL,gljType.OTHER_MATERIAL,gljType.GENERAL_MACHINE,gljType.INSTRUMENT,gljType.OTHER_MACHINE_USED,
-    gljType.MACHINE_COMPOSITION,gljType.MACHINE_LABOUR,gljType.FUEL_POWER_FEE,gljType.DEPRECIATION_FEE,gljType.INSPECTION_FEE,gljType.MAINTENANCE,
-    gljType.DISMANTLING_FREIGHT_FEE,gljType.VERIFICATION_FEE,gljType.OTHER_FEE,gljType.EQUIPMENT,gljType.MANAGEMENT_FEE,gljType.PROFIT,gljType.GENERAL_RISK_FEE];*/
 
 // 计算基数 [定额基价材料费] 要用到的材料类型。
 const baseMaterialTypes = [

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

@@ -811,7 +811,7 @@ var gljOprObj = {
             }
             temRationGLJs.push(tem);
         }
-        temRationGLJs = gljUtil.sortRationGLJ(temRationGLJs);
+        temRationGLJs = gljUtil.sortMixRatio(temRationGLJs);
         return temRationGLJs;
     },
     showQuantityDetailData: function (node) {

+ 12 - 1
web/building_saas/main/js/views/project_glj_view.js

@@ -92,6 +92,7 @@ projectGljObject={
         this.mixRatioSheet = this.mixRatioSpread .getSheet(0);
         this.initSheet(this.mixRatioSheet,this.mixRatioSetting);
         this.mixRatioSheet.name('mixRatioSheet');
+        this.mixRatioSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onMixRatioEditStarting);
         this.mixRatioSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onMixRatioRangeChange);
         if(projectReadOnly){
             if(this.mixRatioSetting.view.lockColumns){
@@ -198,7 +199,7 @@ projectGljObject={
             for(let glj of data){
                 ratioList.push(me.getMixRatioSheetData(glj)) ;
             }
-            ratioList = gljUtil.sortRationGLJ(ratioList);
+            ratioList = gljUtil.sortMixRatio(ratioList);
             me.mixRatioData = ratioList;
             me.mixRatioSheet.setRowCount(0);
             sheetCommonObj.showData(me.mixRatioSheet, me.mixRatioSetting,me.mixRatioData);
@@ -345,6 +346,14 @@ projectGljObject={
             me.batchUpdateProjectGLJ(changeInfo,info.sheetName);
         }
     },
+    onMixRatioEditStarting:function (sender,info) {
+        let me = projectGljObject,row = info.row, col = info.col;
+        let parentSheet =  me.projectGljSpread.getActiveSheet();
+        let prow = parentSheet.getActiveRowIndex();//取父机械或组成物的下标
+        let prowData = parentSheet.name() == 'projectGljSheet'?me.projectGljSheetData[prow]:me.materialTree.items[prow].data;
+        console.log(prowData);
+        if(gljUtil.isConcreteType(prowData.type))  info.cancel = true;
+    },
     onMixRatioRangeChange:function (sender,info){
         let me = projectGljObject;
         let canChange = true;
@@ -705,6 +714,8 @@ projectGljObject={
                 data.bgColour = "#E0E0E0";
             }
         }
+        if(gljUtil.isConcreteType(glj.type)) data.bgColour = "#E0E0E0";//混凝土、砂浆、配合比的底色显示为 灰色#E0E0E0,灰色底色提醒用户不可修改。
+
         return data;
     },
     refreshProjectGljRow:function (row) {