zhangweicheng 8 年 前
コミット
2587b9ae84

+ 1 - 0
modules/main/models/ration.js

@@ -34,6 +34,7 @@ let rationSchema = new Schema({
     code: String,
     name: String,
     maskName: String,
+    caption: String,
     unit: String,
     quantity: String, // Decimal
     programID: Number,

+ 9 - 2
modules/ration_glj/facade/glj_calculate_facade.js

@@ -107,7 +107,7 @@ async function calculateQuantityPerGLJ(glj,ration,coeList,assList,adjustState,is
             if(customerCoe.isAdjust==1){
                 quantity = calculateQuantityByCustomerCoes(quantity,customerCoe,glj);
             }
-            result.doc.quantity =quantity;
+            result.doc.quantity =_.round(quantity,3);
         }
         generateAdjustState(glj,coeList,adjustState);
         return result;
@@ -163,12 +163,19 @@ function generateAdjustState(glj,coeList,adjustState) {
 
 function calculateTimes(ass){
     let times =(ass.actualValue-ass.stdValue)/ass.stepValue;
-
+    let r = false;
+    if(times<0){
+        r=true;
+        times=times*-1;
+    }
     if(ass.carryBit=='四舍五入'){
         times = _.round(times,ass.decimal);
     }else if (ass.carryBit=='进一'){
         times =_.ceil(times,ass.decimal);
     }
+    if(r){
+        times=times*-1;
+    }
     return times;
 }
 

+ 2 - 1
modules/ration_glj/facade/ration_ass_facade.js

@@ -58,7 +58,8 @@ function update_ration_ass(user_id,datas) {
                         updateTpye:commonConsts.UT_UPDATE,
                         stateRefresh:true,
                         rationID:result.cal_result.rationID,
-                        adjustState:result.cal_result.adjustState
+                        adjustState:result.cal_result.adjustState,
+                        name:datas.doc.name
                     }
                 };
                 callback(null,[newObject,ration_glj_data,ration_data]);

+ 1 - 0
modules/ration_glj/models/ration_glj_temp.js

@@ -46,6 +46,7 @@ let rationSchema = new Schema({
     code: String,
     name: String,
     maskName: String,
+    caption: String,
     unit: String,
     quantity: String, // Decimal
     programID: Number,

+ 10 - 2
web/building_saas/main/js/models/ration.js

@@ -69,9 +69,16 @@ var Ration = {
             var selected = controller.sheet.getSelections();
             var col =   _.findIndex(BillsGridSetting.cols,function (col) {
                 return col.data.field =='adjustState';
-            })
+            });
             controller.sheet.getCell(selected[0].row,col).value(data.adjustState);
-            console.log(data.adjustState);
+            if(data.hasOwnProperty('name')){
+                this.datas[dataIndex].name = data.name;
+                var nameCol = _.findIndex(BillsGridSetting.cols,function (col) {
+                    return col.data.field =='name';
+                })
+                controller.sheet.getCell(selected[0].row,nameCol).value(data.name);
+            }
+
         }
 
 
@@ -139,6 +146,7 @@ var Ration = {
                 if (data.updateType === 'ut_create') {
                     data.updateData.code = std.code;
                     data.updateData.name = std.name;
+                    data.updateData.caption=std.caption;
                     data.updateData.unit = std.unit;
                     data.updateData.libID = std.rationRepId;
                     data.updateData.rationAssList =  projectObj.project.ration_ass.CreateNewAss(std);

+ 4 - 1
web/building_saas/main/js/models/ration_ass.js

@@ -51,7 +51,7 @@ var ration_ass = {
             var index =  _.findIndex(projectObj.project.Ration.datas,(ration)=>{
                 return ration.ID==rationID;
             })
-            projectObj.project.Ration.datas[index].rationAssList = doc.rationAssList
+            projectObj.project.Ration.datas[index].rationAssList = doc.rationAssList;
         };
 
         ration_ass.prototype.updateRationGLJ = function (updateList) {
@@ -104,6 +104,8 @@ var ration_ass = {
         ration_ass.prototype.updateActualValue=function(assList,index,newVal){
             var selected = projectObj.project.mainTree.selected;
             assList[index].actualValue=newVal;
+            var rationname = selected.data.caption.replace('%s',newVal)
+
             var query = {
                 'ration':selected.data,
                 'editAss':assList[index],
@@ -111,6 +113,7 @@ var ration_ass = {
             };
             var doc ={
                 rationAssList:assList,
+                name:rationname
             };
 
             var updateData = this.getUpdateData('ut_update',query,doc);

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

@@ -228,6 +228,7 @@ var ration_glj = {
             return updateData;
         };
         ration_glj.prototype.customQuantityUpdate = function(recode,newVal,text){
+            newVal = _.round(newVal,3);
             var query = {
                 'ID':recode.ID,
                 'projectID': recode.projectID,
@@ -251,6 +252,7 @@ var ration_glj = {
 
         };
         ration_glj.prototype.marketPriceAdjustUpdate = function (recode,newVal,text) {
+            newVal = _.round(newVal,2);
             if(text===null){
                 newVal=null;
             }

+ 15 - 11
web/building_saas/main/js/views/glj_view.js

@@ -19,13 +19,13 @@ var gljOprObj = {
             {headerName: "规格型号", headerWidth: 80, dataCode: "specs", dataType: "String", hAlign: "center"},
             {headerName: "单位", headerWidth: 60, dataCode: "unit", dataType: "String", hAlign: "center"},
             {headerName: "类别", headerWidth: 50, dataCode: "gljDistType", dataType: "String", hAlign: "center"},
-            {headerName: "定额消耗量", headerWidth: 80, dataCode: "rationItemQuantity", dataType: "Number", hAlign: "right",formatter:"0.000"},    // dataType: "Number", formatter: "0.00"
-            {headerName: "自定义消耗量", headerWidth: 80, dataCode: "customQuantity", dataType: "Number", hAlign: "right",formatter:"0.000"},
-            {headerName: "消耗量", headerWidth: 80, dataCode: "quantity", dataType: "Number", hAlign: "right",formatter:"0.000"},
+            {headerName: "定额消耗量", headerWidth: 80, dataCode: "rationItemQuantity", dataType: "Number", hAlign: "right",formatter:"0.000",tofix:3},    // dataType: "Number", formatter: "0.00"
+            {headerName: "自定义消耗量", headerWidth: 80, dataCode: "customQuantity", dataType: "Number", hAlign: "right",formatter:"0.000",tofix:3},
+            {headerName: "消耗量", headerWidth: 80, dataCode: "quantity", dataType: "Number", hAlign: "right",formatter:"0.000",tofix:3},
             {headerName: "基价单价", headerWidth: 80, dataCode: "basePrice", dataType: "Number", hAlign: "right",formatter:"0.00"},
             {headerName: "调整基价", headerWidth: 80, dataCode: "adjustPrice", dataType: "Number", hAlign: "right",formatter:"0.00"},
             {headerName: "市场单价", headerWidth: 80, dataCode: "marketPrice", dataType: "Number", hAlign: "right",formatter:"0.00"},
-            {headerName: "市场单价调整", headerWidth: 80, dataCode: "marketPriceAdjust", dataType: "Number", hAlign: "right",formatter:"0.00",tofix:2},
+            {headerName: "市场单价调整", headerWidth: 80, dataCode: "marketPriceAdjust", dataType: "Number", hAlign: "right",formatter:"0.00"},
             {headerName: "是否暂估", headerWidth: 80, dataCode: "isEstimate", dataType: "String", hAlign: "center",vAlign:"center",cellType:"checkBox"}
         ],
         view: {
@@ -48,8 +48,8 @@ var gljOprObj = {
     assSetting:{
         header:[
             {headerName: "调整名称", headerWidth: 100, dataCode: "name", dataType: "String"},
-            {headerName: "定额值", headerWidth: 120, dataCode: "stdValue", dataType: "Number",tofix:0},
-            {headerName: "实际值", headerWidth: 120, dataCode: "actualValue", dataType: "Number",tofix:0}
+            {headerName: "定额值", headerWidth: 120, dataCode: "stdValue", dataType: "String"},
+            {headerName: "实际值", headerWidth: 120, dataCode: "actualValue", dataType: "String"}
         ],
         view:{
             lockColumns:[0,1]
@@ -349,10 +349,13 @@ var gljOprObj = {
     onRangeChanged: function(sender, args) {
         var me = gljOprObj;
         if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
+            args.editingText=null;
             if(args.sheetName=='ration_glj'){
-                args.editingText=null;
                 me.onEditGLJSheet(args);
             }
+            if(args.sheetName=='ration_ass'){
+                me.updateRationAss(args);
+            }
         };
     },
     generateHtmlString:function () {
@@ -505,8 +508,12 @@ var gljOprObj = {
     },
     updateRationAss:function (args) {
         var me = gljOprObj;
-        var newval = me.numberValueChecking(args.editingText);
+        var newval;
+        newval = me.numberValueChecking(args.editingText);
         var recode = me.assSheetData[args.row];
+        if(args.editingText===null){
+            newval=parseFloat(recode.stdValue);
+        }
         var isValidate = false;
         if(newval){
             isValidate = me.checkingActualValue(recode,newval)
@@ -542,9 +549,6 @@ var gljOprObj = {
         var minValue = parseFloat(record.minValue);
         var maxValue = parseFloat(record.maxValue);
         var stdVale = parseFloat(record.stdValue);
-        if(stdVale==newval){
-            return false;
-        }
 
         if(!maxExist&&minExist){
             if(newval<minValue){