|
|
@@ -173,23 +173,31 @@ projectGljObject={
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
- showMixRatioData:function () {
|
|
|
- let me = this,gljId = null,gljType = null;
|
|
|
+ getSelectedProjectGLJ:function () {
|
|
|
+ let me = this,data = null;
|
|
|
let sheet = me.projectGljSpread.getActiveSheet();
|
|
|
- let oldSel = me.mixRatioSheet.getSelections()[0];
|
|
|
if(sheet.name() == 'projectGljSheet'){//projectGljSheet/materialSheet 工料机汇总和三材汇总表
|
|
|
let sel = me.projectGljSheet.getSelections()[0];
|
|
|
let srow = sel.row == -1||sel.row == ""?0:sel.row;
|
|
|
if(me.projectGljSheetData.length>srow){
|
|
|
- gljId = me.projectGljSheetData[srow].id;
|
|
|
- gljType = me.projectGljSheetData[srow].type;
|
|
|
+ data = me.projectGljSheetData[srow];
|
|
|
}
|
|
|
}else if(sheet.name() == 'materialTreeSheet'){
|
|
|
if(this.materialTree.selected){
|
|
|
- gljId = this.materialTree.selected.data.id;
|
|
|
- gljType = this.materialTree.selected.data.type;
|
|
|
+ data = this.materialTree.selected.data;
|
|
|
}
|
|
|
}
|
|
|
+ return data;
|
|
|
+ },
|
|
|
+
|
|
|
+ showMixRatioData:function () {
|
|
|
+ let me = this,gljId = null,gljType = null;
|
|
|
+ let oldSel = me.mixRatioSheet.getSelections()[0];
|
|
|
+ let projectGLJData = me.getSelectedProjectGLJ();
|
|
|
+ if(projectGLJData){
|
|
|
+ gljId = projectGLJData.id;
|
|
|
+ gljType = projectGLJData.type;
|
|
|
+ }
|
|
|
if(compositionTypes.indexOf(gljType)==-1){//如果不是有组成物的类型,工料机id设置为空,组成物表设置为空
|
|
|
gljId = null
|
|
|
}
|
|
|
@@ -489,19 +497,28 @@ projectGljObject={
|
|
|
let basePrice = scMathUtil.roundForObj(sub.unit_price.base_price,getDecimal("process"));
|
|
|
let consumption = updateMap[sub.mix_ratio_id]?updateMap[sub.mix_ratio_id].consumption:scMathUtil.roundForObj(sub.consumption,getDecimal("glj.quantity"));
|
|
|
parentMarketPrice = scMathUtil.roundForObj(marketPrice*consumption + parentMarketPrice,getDecimal("process"));
|
|
|
- parentBasePrice = scMathUtil.roundForObj(basePrice*consumption + parentBasePrice,getDecimal("process"));
|
|
|
+ // parentBasePrice = scMathUtil.roundForObj(basePrice*consumption + parentBasePrice,getDecimal("process"));
|
|
|
}
|
|
|
}
|
|
|
- parentBasePrice = scMathUtil.roundForObj(parentBasePrice,getDecimal("glj.unitPrice"));
|
|
|
+ // parentBasePrice = scMathUtil.roundForObj(parentBasePrice,getDecimal("glj.unitPrice"));
|
|
|
parentMarketPrice = scMathUtil.roundForObj(parentMarketPrice,getDecimal("glj.unitPrice"));
|
|
|
- updateData.push({type:'parent',connect_key:parentKey,base_price:parentBasePrice,market_price:parentMarketPrice,unit_price_file_id:unit_price_file_id});
|
|
|
+ let parentData = me.getSelectedProjectGLJ();
|
|
|
+ if(parentData){ //计算受影响的综合电价
|
|
|
+ let ext = {};
|
|
|
+ ext[parentData.id] = {marketPrice:parentMarketPrice};
|
|
|
+ let elecP = electrovalenceObj.clacNewElecPrice(ext);
|
|
|
+ if(elecP){
|
|
|
+ updateData.push({type:'unitPrice',projectGLJID:elecP.projectGLJID,query:{id:elecP.id},doc:elecP.doc});
|
|
|
+ }
|
|
|
+ updateData.push({type:'unitPrice',isParent:true,projectGLJID:parentData.id,query:{id:parentData.unit_price.id},doc:{market_price:parentMarketPrice}});//base_price:parentBasePrice,
|
|
|
+ }
|
|
|
+
|
|
|
+ // updateData.push({type:'parent',connect_key:parentKey,base_price:parentBasePrice,market_price:parentMarketPrice,unit_price_file_id:unit_price_file_id});
|
|
|
projectGLJ.batchUpdateConsumption(updateData,updateMap,function () {
|
|
|
//更新人材机汇总表
|
|
|
- let parentSheet = me.projectGljSpread.getActiveSheet();//三材汇总表和工料机汇总表
|
|
|
- let prow = parentSheet.getActiveRowIndex();//取父机械或组成物的下标
|
|
|
- let prowData = parentSheet.name() == 'projectGljSheet'?me.projectGljSheetData[prow]:me.materialTree.items[prow].data;
|
|
|
- me.refreshParentData(prow,prowData.id);
|
|
|
- me.onUnitFileChange(updateData);
|
|
|
+ me.refreshDataSheet();
|
|
|
+ me.onUnitFileChange(true);
|
|
|
+ gljOprObj.refreshView();
|
|
|
});
|
|
|
|
|
|
},
|
|
|
@@ -697,6 +714,7 @@ projectGljObject={
|
|
|
delivery_address:glj.delivery_address,
|
|
|
is_adjust_price:glj.is_adjust_price,
|
|
|
ratio_data:glj.ratio_data,
|
|
|
+ unit_price:glj.unit_price,
|
|
|
calcMaterial:glj.unit_price.calcMaterial,
|
|
|
is_add:glj.unit_price.is_add,
|
|
|
bgColour:'white',
|
|
|
@@ -776,67 +794,23 @@ projectGljObject={
|
|
|
return false;
|
|
|
}
|
|
|
value = scMathUtil.roundToString(value,getDecimal("glj.quantity"));
|
|
|
- let [parentMarketPrice, parentBasePrice] = me.getCompositionSumPrice('modify', row, value);
|
|
|
+ me.batchUpdateConsumption([{row:row,col:col,value}]);
|
|
|
+ //changeInfo.push({row:c.row,col:c.col,value:value});
|
|
|
+ /* let [parentMarketPrice, parentBasePrice] = me.getCompositionSumPrice('modify', row, value);
|
|
|
let updateData ={id: recode.mix_ratio_id, field: 'mix_ratio.' + dataCode, value: value, market_price: parentMarketPrice};//, base_price: parentBasePrice ---20190218 修改机械台班的组成物,仅重新计算机械预算价,定额价保持不变。
|
|
|
let prow = parentSheet.getActiveRowIndex();//取父机械或组成物的下标
|
|
|
let prowData = parentSheet.name() == 'projectGljSheet'?me.projectGljSheetData[prow]:me.materialTree.items[prow].data;
|
|
|
composition.updateConsumption(updateData,recode,prowData.id,function (sid) {
|
|
|
- /* if(parentSheet.name() == 'projectGljSheet'){ 之前是单行刷新,父工料机与组成物对应的工料机分开刷,发现这样比整个刷新慢所以先整个刷新,当以后数据量大的时候再测试
|
|
|
+ /!* if(parentSheet.name() == 'projectGljSheet'){ 之前是单行刷新,父工料机与组成物对应的工料机分开刷,发现这样比整个刷新慢所以先整个刷新,当以后数据量大的时候再测试
|
|
|
me.refreshProjectGljRowByID(sid);
|
|
|
- }*/
|
|
|
+ }*!/
|
|
|
projectObj.project.projectGLJ.calcQuantity();
|
|
|
me.refreshParentData(prow,prowData.id,sid);
|
|
|
me.onUnitFileChange(recode);
|
|
|
- });
|
|
|
+ });*/
|
|
|
},
|
|
|
- refreshParentData:function (row,pid,sid) {
|
|
|
- let me = this;
|
|
|
- let sheet = me.projectGljSpread.getActiveSheet();
|
|
|
- let parantData = null;
|
|
|
- if(sheet.name() == 'projectGljSheet'){
|
|
|
- me.showProjectGljData();// me.refreshProjectGljRow(row) 这里原来是分开刷新的,现在整个统一刷新,先留着
|
|
|
- //parantData = _.find(); //me.projectGljSheetData[row];
|
|
|
- }else {
|
|
|
- me.showMaterialTreeData();
|
|
|
- //parantData = me.materialTree.items[row].data;
|
|
|
- }
|
|
|
- let pglj = _.find(projectObj.project.projectGLJ.datas.gljList,{'id':pid});
|
|
|
- parantData = pglj?me.getSheetDataByGLJ(pglj):null;
|
|
|
- //projectObj.project.projectGLJ.datas.gljList
|
|
|
-
|
|
|
- // 更新组成物缓存
|
|
|
- projectObj.project.composition.loadData();
|
|
|
- //先查找使用了父项目工料机的定额工料机
|
|
|
- let updateNodes=[];
|
|
|
- let ration_gljs = _.filter(projectObj.project.ration_glj.datas,{'projectGLJID':pid});
|
|
|
- for(let rg of ration_gljs){
|
|
|
- let node = projectObj.project.mainTree.getNodeByID(rg.rationID);
|
|
|
- if(node){
|
|
|
- updateNodes.push(node);
|
|
|
- }
|
|
|
- }
|
|
|
- //或者是使用了父项目工料机的工料机类型的定额
|
|
|
- let rations = _.filter(projectObj.project.Ration.datas,{'type':3,'projectGLJID':pid});
|
|
|
- for(let r of rations){
|
|
|
- let r_node = projectObj.project.mainTree.getNodeByID(r.ID);
|
|
|
- if(r_node){
|
|
|
- r_node.data.marketUnitFee = parantData?parantData.marketPrice:'';//parentMarketPrice;//这里用显示的价格
|
|
|
- updateNodes.push(r_node);
|
|
|
- }
|
|
|
- }
|
|
|
- if(sid){
|
|
|
- let subRations = calcTools.getRationsByProjectGLJ(sid);
|
|
|
- updateNodes = updateNodes.concat(subRations);
|
|
|
- }
|
|
|
- if(updateNodes.length>0){
|
|
|
- projectObj.project.calcProgram.calcNodesAndSave(updateNodes,function () {
|
|
|
- projectObj.mainController.refreshTreeNode(projectObj.project.mainTree.roots);
|
|
|
- installationFeeObj.calcInstallationFee();//计算安装增加费
|
|
|
- });
|
|
|
- }
|
|
|
- gljOprObj.refreshView();
|
|
|
- },
|
|
|
- onUnitFileChange:function (isInclude) { //include用来标计是否排除本身, true时,不排除本身
|
|
|
+ onUnitFileChange:function (isInclude,changeMark = 'unitFile') { //include用来标计是否排除本身, true时,不排除本身
|
|
|
+ if(isInclude == true) projectObj.project.projectInfo.changeMark = changeMark; //项目单价文件修改标记
|
|
|
projectObj.project.markUpdateProject({projectID:projectObj.project.ID(),'unitFileID':socketObject.getUnitFileRoomID(),isInclude:isInclude},"unitFile",function(){
|
|
|
//socket.emit('unitFileChangeNotify', JSON.stringify(data));
|
|
|
socket.emit('unitFileChangeNotify', {projectID:projectObj.project.ID(),userID:userID,'unitFileID':socketObject.getUnitFileRoomID()});
|
|
|
@@ -846,15 +820,20 @@ projectGljObject={
|
|
|
let me = this, deleteRecode = me.mixRatioData[row];
|
|
|
let consumption = deleteRecode.consumption;
|
|
|
let [parentMarketPrice, parentBasePrice] = me.getCompositionSumPrice('delete', row);
|
|
|
- let parentSheet = me.projectGljSpread.getActiveSheet();//三材汇总表和工料机汇总表
|
|
|
- let prow= parentSheet.getActiveRowIndex();//取父机械或组成物的下标
|
|
|
- let prowData = parentSheet.name() == 'projectGljSheet'?me.projectGljSheetData[prow]:me.materialTree.items[prow].data;
|
|
|
+ let prowData = me.getSelectedProjectGLJ();
|
|
|
let updateData = {id: deleteRecode.mix_ratio_id, field: 'mix_ratio.consumption' , value: 0, market_price: parentMarketPrice, base_price: parentBasePrice};
|
|
|
+ let ext = {};
|
|
|
+ ext[prowData.id] = {marketPrice:parentMarketPrice};
|
|
|
+ let elecP = electrovalenceObj.clacNewElecPrice(ext);
|
|
|
+ if(elecP){
|
|
|
+ updateData.unitPrice = {projectGLJID:elecP.projectGLJID,query:{id:elecP.id},doc:elecP.doc};
|
|
|
+ }
|
|
|
projectObj.project.composition.deleteComposition(updateData,deleteRecode,prowData.id,function () {
|
|
|
_.remove(me.mixRatioData,{"mix_ratio_id":deleteRecode.mix_ratio_id});
|
|
|
- me.refreshParentData(prow,prowData.id);
|
|
|
+ //me.refreshParentData(prow,prowData.id);
|
|
|
+ me.refreshDataSheet();
|
|
|
me.mixRatioSheet.deleteRows(row,1);
|
|
|
- me.onUnitFileChange(deleteRecode);
|
|
|
+ me.onUnitFileChange(true);
|
|
|
});
|
|
|
},
|
|
|
getCompositionSumPrice : function(scene, affectRow, newValue = 0) {
|