zhangweicheng 8 سال پیش
والد
کامیت
5ac756ee3f

+ 20 - 17
modules/ration_glj/facade/glj_calculate_facade.js

@@ -25,7 +25,7 @@ let stateSeq ={
 }
 }
 
 
 
 
-async function calculateQuantity(query){
+async function calculateQuantity(query,isMarkPriceAjust){
     try {
     try {
          let  result ={
          let  result ={
              glj_result:[],
              glj_result:[],
@@ -48,10 +48,13 @@ async function calculateQuantity(query){
                  }
                  }
          }
          }
          for(let i =0;i<gljList.length;i++ ){
          for(let i =0;i<gljList.length;i++ ){
-             let r = await calculateQuantityPerGLJ(gljList[i],impactRation,coeList,assList,adjustState);
+             let r = await calculateQuantityPerGLJ(gljList[i],impactRation,coeList,assList,adjustState,isMarkPriceAjust);
              result.glj_result.push(r);
              result.glj_result.push(r);
          }
          }
-         await ration_glj.bulkWrite(generateUpdateTasks(result.glj_result));
+         console.log(result.glj_result);
+        if(isMarkPriceAjust==null){
+            await ration_glj.bulkWrite(generateUpdateTasks(result.glj_result));
+        }
          adjustState= _.sortByOrder(adjustState, ['index'], ['asc']);
          adjustState= _.sortByOrder(adjustState, ['index'], ['asc']);
          adjustState=_.map(adjustState, _.property('content'));
          adjustState=_.map(adjustState, _.property('content'));
          let adjustStateString = adjustState.join(';');
          let adjustStateString = adjustState.join(';');
@@ -79,7 +82,7 @@ function generateUpdateTasks(result) {
 }
 }
 
 
 
 
-async function calculateQuantityPerGLJ(glj,ration,coeList,assList,adjustState) {
+async function calculateQuantityPerGLJ(glj,ration,coeList,assList,adjustState,isMarkPriceAjust) {
     let quantity =  glj.quantity;
     let quantity =  glj.quantity;
     let result={
     let result={
         query:{
         query:{
@@ -92,20 +95,20 @@ async function calculateQuantityPerGLJ(glj,ration,coeList,assList,adjustState) {
         }
         }
     };
     };
     try {
     try {
-        //to do 添加/替换工料机调整 内容
-
-        if(!glj._doc.hasOwnProperty('customQuantity')||glj.customQuantity==null){
-            quantity =glj.rationItemQuantity;
-            quantity =calculateAss(quantity,assList,glj);
-            quantity = calculateQuantityByCoes(quantity,coeList,glj);
-        }else {
-            quantity = glj.customQuantity;
-        }
-        let customerCoe = _.last(coeList);
-        if(customerCoe.isAdjust==1){
-            quantity = calculateQuantityByCustomerCoes(quantity,customerCoe,glj);
+        if(isMarkPriceAjust==null){
+            if(!glj._doc.hasOwnProperty('customQuantity')||glj.customQuantity==null){
+                quantity =glj.rationItemQuantity;
+                quantity =calculateAss(quantity,assList,glj);
+                quantity = calculateQuantityByCoes(quantity,coeList,glj);
+            }else {
+                quantity = glj.customQuantity;
+            }
+            let customerCoe = _.last(coeList);
+            if(customerCoe.isAdjust==1){
+                quantity = calculateQuantityByCustomerCoes(quantity,customerCoe,glj);
+            }
+            result.doc.quantity =quantity;
         }
         }
-        result.doc.quantity =quantity;
         generateAdjustState(glj,coeList,adjustState);
         generateAdjustState(glj,coeList,adjustState);
         return result;
         return result;
     }catch (err){
     }catch (err){

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

@@ -56,7 +56,7 @@ function update_ration_ass(user_id,datas) {
                     moduleName:'ration',
                     moduleName:'ration',
                     data:{
                     data:{
                         updateTpye:commonConsts.UT_UPDATE,
                         updateTpye:commonConsts.UT_UPDATE,
-                        quantityRefresh:true,
+                        stateRefresh:true,
                         rationID:result.cal_result.rationID,
                         rationID:result.cal_result.rationID,
                         adjustState:result.cal_result.adjustState
                         adjustState:result.cal_result.adjustState
                     }
                     }

+ 2 - 2
modules/ration_glj/facade/ration_coe_facade.js

@@ -113,7 +113,7 @@ function updateCustomerCoe(user_id,datas) {
                     moduleName:'ration',
                     moduleName:'ration',
                     data:{
                     data:{
                         updateTpye:commonConsts.UT_UPDATE,
                         updateTpye:commonConsts.UT_UPDATE,
-                        quantityRefresh:true,
+                        stateRefresh:true,
                         rationID:result.cal_result.rationID,
                         rationID:result.cal_result.rationID,
                         adjustState:result.cal_result.adjustState
                         adjustState:result.cal_result.adjustState
                     }
                     }
@@ -152,7 +152,7 @@ function updateCustomerCoe(user_id,datas) {
                     moduleName:'ration',
                     moduleName:'ration',
                     data:{
                     data:{
                         updateTpye:commonConsts.UT_UPDATE,
                         updateTpye:commonConsts.UT_UPDATE,
-                        quantityRefresh:true,
+                        stateRefresh:true,
                         rationID:result.cal_result.rationID,
                         rationID:result.cal_result.rationID,
                         adjustState:result.cal_result.adjustState
                         adjustState:result.cal_result.adjustState
                     }
                     }

+ 33 - 14
modules/ration_glj/facade/ration_glj_facade.js

@@ -200,10 +200,6 @@ function customQuantityUpdate(user_id,datas){
             if(result.err){
             if(result.err){
                 callback(result.err,'');
                 callback(result.err,'');
             }else {
             }else {
-                // cal_result ={
-              //  glj_result:[],
-                //    rationID:query.rationID
-
                 let ration_glj_data ={
                 let ration_glj_data ={
                     moduleName:'ration_glj',
                     moduleName:'ration_glj',
                     data:{
                     data:{
@@ -216,7 +212,7 @@ function customQuantityUpdate(user_id,datas){
                     moduleName:'ration',
                     moduleName:'ration',
                     data:{
                     data:{
                         updateTpye:commonConsts.UT_UPDATE,
                         updateTpye:commonConsts.UT_UPDATE,
-                        quantityRefresh:true,
+                        stateRefresh:true,
                         rationID:result.cal_result.rationID,
                         rationID:result.cal_result.rationID,
                         adjustState:result.cal_result.adjustState
                         adjustState:result.cal_result.adjustState
                     }
                     }
@@ -248,21 +244,35 @@ async function doCustomQuantityUpdate(datas){
 function marketPriceAdjustUpdate(user_id,datas) {
 function marketPriceAdjustUpdate(user_id,datas) {
     return function (callback) {
     return function (callback) {
         updateprojectGljAndRationGLJ(datas.query,datas.doc).then((result)=>{
         updateprojectGljAndRationGLJ(datas.query,datas.doc).then((result)=>{
-            let returndata ={
-                moduleName:'ration_glj',
-                data:{
-                    updateTpye:commonConsts.UT_UPDATE,
-                    query:datas.query,
-                    doc:result
+            if(result.err){
+                callback(result.err,'');
+            }else {
+                let returndata ={
+                    moduleName:'ration_glj',
+                    data:{
+                        updateTpye:commonConsts.UT_UPDATE,
+                        query:datas.query,
+                        doc:result.doc
+                    }
+                };
+                let ration_data ={
+                    moduleName:'ration',
+                    data:{
+                        updateTpye:commonConsts.UT_UPDATE,
+                        stateRefresh:true,
+                        rationID:datas.query.rationID,
+                        adjustState:result.adjustState
+                    }
                 }
                 }
+                callback(null,[returndata,ration_data]);
             }
             }
-            callback(null,returndata)
         })
         })
 
 
     }
     }
 }
 }
 
 
 async function updateprojectGljAndRationGLJ(query,doc) {
 async function updateprojectGljAndRationGLJ(query,doc) {
+    let returnresult={};
     try {
     try {
         let gljListModel = new GLJListModel();
         let gljListModel = new GLJListModel();
         let result = await gljListModel.modifyMarketPrice(doc);
         let result = await gljListModel.modifyMarketPrice(doc);
@@ -274,11 +284,20 @@ async function updateprojectGljAndRationGLJ(query,doc) {
             name : result.name,
             name : result.name,
             code:result.code
             code:result.code
         };
         };
-        let updateresult = await ration_glj.findOneAndUpdate(query, updateDoc)
-        return updateDoc;
+        let updateresult = await ration_glj.findOneAndUpdate(query, updateDoc);
+        let stateResult =  await glj_calculate_facade.calculateQuantity({projectID:query.projectID,rationID:query.rationID},true);
+
+         returnresult ={
+            err:null,
+            doc :updateDoc,
+            adjustState:stateResult.adjustState
+        }
+        return returnresult;
 
 
         } catch (error) {
         } catch (error) {
+           returnresult.err = error;
             console.log(error);
             console.log(error);
+            return returnresult
          }
          }
 }
 }
 
 

+ 1 - 1
test/tmp_data/bills_grid_setting.js

@@ -366,7 +366,7 @@ var BillsGridSetting ={
                 ]
                 ]
             },
             },
             "data":{
             "data":{
-                "field":"",
+                "field":"adjustState",
                 "vAlign":1,
                 "vAlign":1,
                 "hAlign":0,
                 "hAlign":0,
                 "font":"Arial"
                 "font":"Arial"

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 1
web/building_saas/main/html/main.html


+ 17 - 9
web/building_saas/main/js/models/ration.js

@@ -56,16 +56,24 @@ var Ration = {
 
 
         // refresh after update
         // refresh after update
         ration.prototype.doAfterUpdate = function(err, data){
         ration.prototype.doAfterUpdate = function(err, data){
-            var controller = projectObj.mainController, project = projectObj.project;
-            //var selected = projectObj.mainController.tree.selected;
-            console.log(controller.sheet.getSelections());
-
-            // to do
-            console.log(controller.sheet.getCell(8, 9).value());
-            var selected = projectObj.project.mainTree.selected;
-            console.log(data);
-
+            if(data.stateRefresh){
+                this.refreshAdjustState(data);
+            }
         };
         };
+        ration.prototype.refreshAdjustState = function(data){
+            var controller = projectObj.mainController;
+             var dataIndex = _.findIndex(this.datas,function(item) {
+                 return item.ID ==data.rationID;
+             });
+            this.datas[dataIndex].adjustState = data.adjustState;
+            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);
+        }
+
 
 
         ration.prototype.getTempRationData = function (id, billsID, serialNo) {
         ration.prototype.getTempRationData = function (id, billsID, serialNo) {
             var newData = {'ID': id, 'serialNo': serialNo, projectID: this.project.ID()};
             var newData = {'ID': id, 'serialNo': serialNo, projectID: this.project.ID()};

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

@@ -48,7 +48,7 @@ var ration_coe = {
         };
         };
         ration_coe.prototype.refreshAfterUpdate=function(data){
         ration_coe.prototype.refreshAfterUpdate=function(data){
             var coe_list = projectObj.project.ration_coe.datas;
             var coe_list = projectObj.project.ration_coe.datas;
-            var coe_index= _.findIndex(coe_list,(coe)=>{
+            var coe_index= _.findIndex(coe_list,function(coe){
                 return coe.ID==data.query.ID&&coe.projectID==data.query.projectID;
                 return coe.ID==data.query.ID&&coe.projectID==data.query.projectID;
             })
             })
             _.forEach(data.doc, function(n, key) {
             _.forEach(data.doc, function(n, key) {

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

@@ -249,7 +249,8 @@ var ration_glj = {
         ration_glj.prototype.marketPriceAdjustUpdate = function (recode,newVal) {
         ration_glj.prototype.marketPriceAdjustUpdate = function (recode,newVal) {
             var query = {
             var query = {
                 'ID':recode.ID,
                 'ID':recode.ID,
-                'projectID': recode.projectID
+                'projectID': recode.projectID,
+                'rationID':recode.rationID
             };
             };
             var doc ={
             var doc ={
                 market_price:newVal,
                 market_price:newVal,

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 24 - 9
web/building_saas/main/js/views/glj_view.js