瀏覽代碼

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

zhongzewei 7 年之前
父節點
當前提交
602f5197cb

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

@@ -101,7 +101,7 @@ async function calculateQuantityPerGLJ(glj,index,coeList,assList,adjustState,noN
     };
     try {
         if(noNeedCal==null){
-            if(!glj._doc.hasOwnProperty('customQuantity')||glj.customQuantity==null){
+            if(!glj._doc.hasOwnProperty('customQuantity')||glj.customQuantity==null||glj.customQuantity==""){
                 quantity =scMathUtil.roundTo(parseFloat(glj.rationItemQuantity),-decimal);
                 quantity =calculateAss(quantity,assList,glj);
                 quantity = calculateQuantityByCoes(quantity,coeList,glj);

+ 1 - 1
public/web/scMathUtil.js

@@ -183,7 +183,7 @@ let scMathUtil = {
 
 Number.prototype.toDecimal = function (ADigit) {
     //return parseFloat(this.toFixed(ADigit));
-    digit = (ADigit && typeof(ADigit) === 'number' && Number.isInteger(ADigit) && ADigit >= 0) ? -ADigit : -2;
+    digit = ((ADigit!=null||ADigit!=undefined) && typeof(ADigit) === 'number' && Number.isInteger(ADigit) && ADigit >= 0) ? -ADigit : -2;
     // var s = scMathUtil.roundTo(this, digit);
     // console.log('Number: ' + this + '   Digit: ' + digit + '    Result: ' + s);
     // return parseFloat(s);

+ 13 - 1
web/building_saas/main/js/models/calc_program.js

@@ -601,6 +601,18 @@ class CalcProgram {
         return me.isLeafBill(treeNode) && (treeNode.children.length ===0) && (!treeNode.data.calcBase);
     };
 
+    isRation(treeNode){
+        return treeNode.sourceType === ModuleNames.ration && treeNode.data.type === rationType.ration;
+    };
+
+    isVolumePrice(treeNode){
+        return treeNode.sourceType === ModuleNames.ration && treeNode.data.type === rationType.volumePrice;
+    };
+
+    isGljRation(treeNode){
+        return treeNode.sourceType === ModuleNames.ration && treeNode.data.type === rationType.gljRation;
+    };
+
     initFeeField(treeNode, fieldName){
         if (!treeNode.data.fees) {
             treeNode.data.fees = [];
@@ -915,7 +927,7 @@ class CalcProgram {
                     feeRate: node.data.feeRate,
                     feeRateID: node.data.feeRateID
                 };
-                if(node.sourceType==ModuleNames.ration&&node.data.type==rationType.gljRation){//定额类型的工料机做特殊处理
+                if(node.sourceType==ModuleNames.ration && node.data.type==rationType.gljRation){//定额类型的工料机做特殊处理
                     data.code=node.data.code;
                     data.projectGLJID = node.data.projectGLJID;
                     delete data.marketUnitFee;

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

@@ -755,7 +755,7 @@ var gljOprObj = {
         var newval;
         if(updateField=='marketPrice'||updateField=='customQuantity'||updateField=='basePrice'){
             if(args.editingText==null){
-                updateField=='marketPrice'||updateField=='customQuantity'?newval=0:newval="";
+                updateField=='marketPrice'?newval=0:newval="";
             }else {
                 var decimal = updateField=='customQuantity'?getDecimal("glj.quantity"):getDecimal("glj.unitPrice");
                 newval = number_util.checkNumberValue(args.editingText,decimal);

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

@@ -59,7 +59,7 @@ let labourCoeView = {
         let value = args.newValue;
         let oValue = args.oldValue;
         if (number_util.isNumber(value)) {
-            value = value.toDecimal(3);
+            value = value.toDecimal(2);
             me.sheet.suspendEvent();
             cell.value(value);
             me.sheet.resumeEvent();

+ 10 - 5
web/building_saas/main/js/views/project_view.js

@@ -270,8 +270,8 @@ var projectObj = {
             project.ration_glj.updateFromMainSpread(value,node,fieldName);
         }if(node.sourceType==ModuleNames.ration&&node.data.type==rationType.gljRation){
             gljOprObj.updateRationTypeGLJ(value,node,fieldName);
-        } else if (value !== calcFees.getFee(node.data, fieldName)) {
-            if (fieldName === 'code') {
+        } else if (value !== calcFees.getFee(node.data, fieldName)||fieldName == 'quantity') {//工程量需要进行转换,所以做特殊处理
+            if (fieldName === 'code' && !project.calcProgram.isVolumePrice(node)) {
                 projectObj.updateCode(node, value);
             }
             else if(fieldName ==='feeRate'){
@@ -282,7 +282,11 @@ var projectObj = {
                 if (fieldName === 'quantity') {
                    if (value) {
                        value = project.quantity_detail.autoTransformQuantity(value,node);
-                       value = value.toDecimal(decimalObj.decimal(fieldName,node))
+                       value = scMathUtil.roundForObj(value,decimalObj.decimal(fieldName,node));
+                       if(value==node.data[fieldName]){
+                           projectObj.mainController.refreshTreeNode([node]);
+                           return;
+                       }
                    };
                    if(project.quantity_detail.quantityEditChecking(value,node,fieldName)){
                        node.data.isFromDetail=0;
@@ -811,8 +815,9 @@ $('#property_ok').click(function () {
         };
     };
 
-    //console.log(mixDatas);
-    // return;   // for test.
+    // for test.
+/*    console.log(mixDatas);
+    return; */
     function hasMixData() {
         return Object.keys(mixDatas.properties).length > 0 ||
             mixDatas.labourCoes.updateData || mixDatas.rations.length > 0 || mixDatas.bills.length > 0;