Browse Source

FeeRate select

zhangweicheng 7 years ago
parent
commit
014b65b762

+ 19 - 1
modules/fee_rates/controllers/fee_rates_controller.js

@@ -53,7 +53,8 @@ module.exports = {
     checkFeeRateName:checkFeeRateName,
     getChangeInfo:getChangeInfo,
     changeFeeRateFileFromCurrent:changeFeeRateFileFromCurrent,
-    changeFeeRateFileFromOthers:changeFeeRateFileFromOthers
+    changeFeeRateFileFromOthers:changeFeeRateFileFromOthers,
+    setFeeRateToBill:setFeeRateToBill
 }
 
 function libNames(req, res) {
@@ -175,4 +176,21 @@ async function changeFeeRateFileFromOthers(req, res) {
         result.message = err.message;
     }
     res.json(result);
+}
+
+
+async function setFeeRateToBill(req,res) {
+    let result={
+        error:0
+    }
+    try {
+        let data = req.body.data;
+        let uresult= await feeRateFacde.setFeeRateToBill(data);
+        console.log(uresult);
+    }catch (err){
+        console.log(err);
+        result.error=1;
+        result.message = err.message;
+    }
+    res.json(result);
 }

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

@@ -7,7 +7,7 @@ let mongoose = require('mongoose');
 let feeRateModel = mongoose.model('fee_rates');
 let feeRateFileModel = mongoose.model('fee_rate_file');
 let std_fee_rate_lib_model = mongoose.model('std_fee_rate_libs');
-let project_feerate_temp = mongoose.model('project_feerate_temp');
+let billModel=require('../../main/models/bills');//mongoose.model('bills');
 let projectsModel = require("../../pm/models/project_schema");
 let consts = require('../../main/models/project_consts');
 let _=require("lodash");
@@ -26,7 +26,8 @@ module.exports={
     changeFeeRateFileFromCurrent:changeFeeRateFileFromCurrent,
     changeFeeRateFileFromOthers:changeFeeRateFileFromOthers,
     newFeeRateFile:newFeeRateFile,
-    getFeeRatesByProject:getFeeRatesByProject
+    getFeeRatesByProject:getFeeRatesByProject,
+    setFeeRateToBill:setFeeRateToBill
 };
 let operationMap={
     'ut_create':create_fee_rate,
@@ -346,6 +347,12 @@ async function getFeeRatesByProject(rootProjectID) {
        return feeRates;
 }
 
+async function setFeeRateToBill(data){
+    data=JSON.parse(data);
+    let result  = await billModel.model.findOneAndUpdate(data.query,data.doc);
+    return result
+}
+
 async function changeFeeRateFileFromCurrent(jdata){
     let data = JSON.parse(jdata);
     let newFeeRateFile=data.newFeeRateFile;

+ 1 - 6
modules/fee_rates/routes/fee_rates_route.js

@@ -18,12 +18,7 @@ module.exports = function (app) {
     frRouter.post('/getChangeInfo', frController.getChangeInfo);
     frRouter.post('/changeFeeRateFileFromCurrent', frController.changeFeeRateFileFromCurrent);
     frRouter.post('/changeFeeRateFileFromOthers', frController.changeFeeRateFileFromOthers);
-
-    //
-/*    frRouter.post('/getLibNames', frController.libNames);
-    frRouter.post('/getLibFeeRates', frController.libFeeRates);
-    frRouter.post('/getProjectFeeRates', frController.projectFeeRates);
-    frRouter.post('/updateProjectFeeRate', frController.projectFeeUpdateRate);*/
+    frRouter.post('/setFeeRateToBill', frController.setFeeRateToBill);
 
     app.use('/feeRates',frRouter);
 }

+ 1 - 1
modules/main/models/bills.js

@@ -26,7 +26,7 @@ let billsSchema = new Schema({
     name: String,
     unit: String,
     quantity: String, // Decimal
-    feeRateID:String,
+    feeRateID:Number,
     feeRate:String,
     isFromDetail:{type: Number,default:0},//1 true 0 false
     programID: Number,

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

@@ -132,6 +132,8 @@ let billsSchema = new Schema({
     name: String,
     unit: String,
     quantity: String, // Decimal
+    feeRateID:String,
+    feeRate:String,
     isFromDetail:{type: Number,default:0},//1 true 2 false
     programID: Number,
     comments: String,

+ 27 - 3
web/building_saas/main/js/models/fee_rate.js

@@ -34,14 +34,17 @@ var FeeRate = {
             return feeRate;
         };
         FeeRate.prototype.getActivateFeeRateID = function(){
-            var feeRate = this.getActivateFeeRate()
+            var feeRate = this.getActivateFeeRate();
             if(feeRate){
                 return feeRate.ID;
             }else {
                 return 0;
             }
         };
-
+        FeeRate.prototype.getFeeRateByID=function (ID) {
+            var rates = this.getActivateFeeRate().rates;
+            return _.find(rates,{'ID':ID})
+        };
         FeeRate.prototype.getSubViewData= function(item) {
             var datas = [];
             if(item.hasOwnProperty('subFeeRate')&&item.subFeeRate!=undefined){
@@ -213,7 +216,28 @@ var FeeRate = {
                 callback(data);
             });
         };
-
+        FeeRate.prototype.setFeeRateToBill=function (rate,bills,callback) {
+            var query={
+                ID:bills.ID,
+                projectID:bills.projectID,
+                deleteInfo:null
+            }
+            var doc={
+                feeRate:null,
+                feeRateID:rate.ID
+            }
+            CommonAjax.post('/feeRates/setFeeRateToBill', {query:query,doc:doc}, function (data) {
+                callback(data);
+            });
+        };
+        FeeRate.prototype.loadFeeRateToBill=function (node) {
+            if(node.data.feeRateID){
+                var feeRate = this.getFeeRateByID(node.data.feeRateID);
+                if(feeRate){
+                    node.data.feeRate=feeRate.rate.toString();
+                }
+            }
+        };
         FeeRate.prototype.changeFeeRateFileFromCurrent = function (newFeeRateFile,callback){
             var me=this;
             var projectID = projectInfoObj.projectInfo.ID;

+ 1 - 1
web/building_saas/main/js/models/project.js

@@ -149,7 +149,7 @@ var PROJECT = {
                     newNode.source = nodes[i];
                     newNode.sourceType = that.Bills.getSourceType();
                     newNode.data = nodes[i].data;
-
+                    that.FeeRate.loadFeeRateToBill(newNode);
                     if (nodes[i].children.length === 0) {
                         loadRationNode(that.Ration.datas, newNode);
                         loadVolumePriceNode(newNode);

+ 29 - 11
web/building_saas/main/js/views/fee_rate_view.js

@@ -123,6 +123,7 @@ var feeRateObject={
         feeRateObject.feeRateSheet.options.isProtected = true;
         feeRateObject.feeRateSheet.name('fee_rate');
         feeRateObject.feeRateSheet.bind(GC.Spread.Sheets.Events.CellClick,feeRateObject.onCellClick);
+        feeRateObject.feeRateSheet.bind(GC.Spread.Sheets.Events.CellDoubleClick,feeRateObject.onCellDoubleClick);
     },
     showSelectTree:function () {
         var sheet= feeRateObject.feeRateSheet;
@@ -162,7 +163,6 @@ var feeRateObject={
             }
         }
         //this.lockCells(sheet,setting);
-        console.log(groups);
         _.forEach(groups,function (g) {
             for(var k in g){
                 sheet.rowOutlines.group(parseInt(k), g[k]);
@@ -621,6 +621,11 @@ var feeRateObject={
        var data =projectObj.project.FeeRate.getActivateFeeRate().rates;
        feeRateObject.feeRateSelection=data[args.row];
     },
+    onCellDoubleClick:function (sender,args) {
+        var data =projectObj.project.FeeRate.getActivateFeeRate().rates;
+        feeRateObject.feeRateSelection=data[args.row];
+        feeRateObject.submitFeeRateBySelect();
+    },
     checkSelectedFeeRate:function () {
         var validate = false;
         var data =projectObj.project.FeeRate.getActivateFeeRate().rates;
@@ -629,6 +634,28 @@ var feeRateObject={
             validate=children&&children.length==0;
         }
         return validate;
+    },
+    setFeeRateToBill:function () {
+       var rate = feeRateObject.feeRateSelection;
+       var selected = projectObj.project.mainTree.selected;
+        projectObj.project.FeeRate.setFeeRateToBill(rate,selected.data,function (data) {
+            selected.data.feeRateID=rate.ID.toString();
+            selected.data.feeRate=rate.rate.toString();
+            projectObj.mainController.refreshTreeNode([selected]);
+            $("#fee_rate_tree").modal('hide');
+        });
+    },
+    submitFeeRateBySelect:function () {
+        var validate = this.checkSelectedFeeRate();
+        if(validate){
+            if($('#edit_from').val()=='calc_detail'){
+                //do calc_detail
+            }else {
+                this.setFeeRateToBill();
+            }
+        }else {
+            //$("#fee_rate_tree").modal('hide');
+        }
     }
 }
 
@@ -805,14 +832,5 @@ $('#fee_rate_tree').on('hidden.bs.modal', function (e) {
 });
 
 $('#fee_selected_conf').bind('click',function (){
-    var validate = feeRateObject.checkSelectedFeeRate();
-    if(validate){
-        if($('#edit_from').val()=='calc_detail'){
-            //do calc_detail
-        }else {
-            
-        }
-    }
-    console.log(validate);
-
+    feeRateObject.submitFeeRateBySelect();
 })