|
@@ -86,34 +86,36 @@ var ration_glj = {
|
|
|
|
|
|
// 提交数据后返回数据处理
|
|
|
ration_glj.prototype.doAfterUpdate = function(err, data){
|
|
|
+ var me = this;
|
|
|
if(!err){
|
|
|
if(data.updateTpye=='ut_update'){
|
|
|
- this.refreshAfterUpdate(data);
|
|
|
+ me.refreshAfterUpdate(data);
|
|
|
}else if(data.updateTpye=='ut_delete'){
|
|
|
- this.refreshAfterDelete(data);
|
|
|
+ me.refreshAfterDelete(data);
|
|
|
} else {
|
|
|
- this.refreshAfterSave(data);
|
|
|
+ me.refreshAfterSave(data);
|
|
|
}
|
|
|
- projectObj.project.projectGLJ.loadData();
|
|
|
}
|
|
|
+ projectObj.project.projectGLJ.loadData();
|
|
|
};
|
|
|
ration_glj.prototype.refreshAfterSave=function(data){
|
|
|
+ let me = projectObj.project.ration_glj;
|
|
|
let neRecodes=[];
|
|
|
if(data){
|
|
|
// neRecodes=data.newRecords;//原来是显示和缓存分开的,后来发现会导致数据不一致的问题所以改成统一的了,这里也只是会作为显示。
|
|
|
neRecodes = data.showDatas;
|
|
|
gljOprObj.sheetData=neRecodes;
|
|
|
}
|
|
|
- if(projectObj.project.ration_glj.datas&&Array.isArray(projectObj.project.ration_glj.datas)){
|
|
|
+ if(me.datas&&Array.isArray(me.datas)){
|
|
|
if(data){
|
|
|
- projectObj.project.ration_glj.datas = projectObj.project.ration_glj.datas.concat(neRecodes);
|
|
|
+ me.datas = me.datas.concat(neRecodes);
|
|
|
}
|
|
|
}else {
|
|
|
- projectObj.project.ration_glj.datas = neRecodes;
|
|
|
+ me.datas = neRecodes;
|
|
|
}
|
|
|
gljOprObj.showRationGLJSheetData(true);
|
|
|
//add to mainTree;
|
|
|
-
|
|
|
+ me.addToMainTree(neRecodes);
|
|
|
let node = project.mainTree.selected;
|
|
|
project.calcProgram.calculate(node);
|
|
|
project.calcProgram.saveNode(node);
|
|
@@ -121,6 +123,33 @@ var ration_glj = {
|
|
|
calcProgramObj.showData(node, false);
|
|
|
};
|
|
|
};
|
|
|
+ ration_glj.prototype.addToMainTree = function (datas) {
|
|
|
+ datas = sortRationGLJ(datas);
|
|
|
+ for(let data of datas){
|
|
|
+ if(this.needShowToTree(data)){
|
|
|
+ this.transferToNodeData(data);
|
|
|
+ let parentNode = _.find(projectObj.project.mainTree.items,function (n) {//找父节点
|
|
|
+ return n.sourceType==ModuleNames.ration &&n.data.ID==data.rationID;
|
|
|
+ });
|
|
|
+ if(parentNode){
|
|
|
+ let nextNodeID=null;
|
|
|
+ if(parentNode.children.length>0){
|
|
|
+ for(let br of parentNode.children){
|
|
|
+ if(compareRationGLJ(data,br.data)){//如果有兄弟节点则找到添加位置。
|
|
|
+ nextNodeID = br.getID();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ nextNodeID = nextNodeID?nextNodeID:parentNode.tree.rootID();
|
|
|
+ let newNode = projectObj.project.mainTree.insert(parentNode.getID(),nextNodeID);
|
|
|
+ newNode.source = data;
|
|
|
+ newNode.sourceType = this.getSourceType();
|
|
|
+ newNode.data = data;
|
|
|
+ ProjectController.syncDisplayNewRationGljNode(projectObj.mainController,newNode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
ration_glj.prototype.refreshAfterUpdate=function(data){
|
|
|
var me = this;
|
|
|
if(data.quantityRefresh){
|
|
@@ -147,13 +176,29 @@ var ration_glj = {
|
|
|
};
|
|
|
ration_glj.prototype.refreshAfterDelete=function(data){
|
|
|
var glj_list = projectObj.project.ration_glj.datas;
|
|
|
- _.remove(glj_list,data.query);
|
|
|
+ var oldData = _.remove(glj_list,data.query);
|
|
|
_.remove(gljOprObj.sheetData,data.query);
|
|
|
gljOprObj.showRationGLJSheetData();
|
|
|
projectObj.project.projectGLJ.loadData();
|
|
|
+ var rationNode = null;
|
|
|
+ var next = null;
|
|
|
var selected = projectObj.project.mainTree.selected;
|
|
|
- selected.data.adjustState=data.adjustState;
|
|
|
- projectObj.mainController.refreshTreeNode([selected]);
|
|
|
+ if(selected.sourceType==ModuleNames.ration){ //如果选中的是定额,说明是右键删除工料机操作,如果选中的是定额工料机,则说明是在造价书主界面中点击了删除按钮
|
|
|
+ rationNode= selected;
|
|
|
+ }else if(selected.sourceType==ModuleNames.ration_glj){
|
|
|
+ rationNode = selected.parent;
|
|
|
+ next = true;
|
|
|
+ }
|
|
|
+ rationNode.data.adjustState=data.adjustState;
|
|
|
+ projectObj.mainController.refreshTreeNode([rationNode]);
|
|
|
+ for(let o of oldData){
|
|
|
+ if(this.needShowToTree(o)){
|
|
|
+ let node = _.find(projectObj.project.mainTree.items,function (n) {//找到对应的树节点
|
|
|
+ return n.sourceType==ModuleNames.ration_glj &&n.data.ID==o.ID;
|
|
|
+ });
|
|
|
+ projectObj.mainController.deleteNode(node,next);
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
// CSL,2017.05.09
|
|
|
ration_glj.prototype.modifyQuantity = function (data, newQuantity) {
|
|
@@ -286,20 +331,25 @@ var ration_glj = {
|
|
|
var callback=function (data) {
|
|
|
let initShow = false;//是否需要表格初始化显示
|
|
|
if(updateField=='customQuantity'){
|
|
|
- console.log(data);
|
|
|
me.refreshAfterQuantityUpdate(data,node);
|
|
|
}else {
|
|
|
var doc = data.doc;
|
|
|
for(var key in doc){
|
|
|
recode[key] = doc[key];
|
|
|
}
|
|
|
- console.log(data);
|
|
|
if(data.hasOwnProperty('adjustState')){//更新定额调整状态
|
|
|
me.updateRationAdjustState(data.adjustState,recode.rationID,node);
|
|
|
}
|
|
|
if(recode.subList&&recode.subList.length>0){
|
|
|
initShow = true;
|
|
|
}
|
|
|
+ if(node){//如果不是在造价书页面直接编辑,则不用刷新
|
|
|
+ if(updateField=="type"&&!(newval == gljType.MAIN_MATERIAL||newval==gljType.EQUIPMENT)){//如果改变类型后不是主材或设备,则在造价书树中移除
|
|
|
+ projectObj.mainController.deleteNode(node,true);
|
|
|
+ }else {
|
|
|
+ me.refreshTreeNodeIfNeeded(recode);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if(initShow==false){//不需要初始化,只需耍新当前显示就可以了
|
|
|
gljOprObj.showRationGLJSheetData();
|
|
@@ -343,7 +393,7 @@ var ration_glj = {
|
|
|
})
|
|
|
if(node){
|
|
|
node.data.adjustState=adjustState;
|
|
|
- nodes.push(node)
|
|
|
+ nodes.push(node);
|
|
|
}
|
|
|
if(rnode){
|
|
|
nodes.push(rnode);
|
|
@@ -382,7 +432,7 @@ var ration_glj = {
|
|
|
}
|
|
|
if(glj.hasOwnProperty("compilationId")){
|
|
|
ration_glj.from="cpt";
|
|
|
- if(glj.code.indexOf('-')!=-1){//这条工料机是用户通过修改包称、规格、型号等保存到补充工料机库的
|
|
|
+ if(glj.code.indexOf('-')!=-1){//这条工料机是用户通过修改名称、规格、型号等保存到补充工料机库的
|
|
|
ration_glj.original_code = glj.code.split('-')[0];//取-前的编号作为原始编号
|
|
|
}
|
|
|
}
|
|
@@ -480,6 +530,7 @@ var ration_glj = {
|
|
|
var gljList = _.filter(this.datas,function (n) {
|
|
|
return n.rationID == rationID&&(n.type==gljType.MAIN_MATERIAL||n.type==gljType.EQUIPMENT)
|
|
|
});
|
|
|
+ gljList = sortRationGLJ(gljList);
|
|
|
return gljOprObj.combineWithProjectGlj(gljList);
|
|
|
};
|
|
|
ration_glj.prototype.transferToNodeData = function (data) {
|
|
@@ -493,7 +544,13 @@ var ration_glj = {
|
|
|
return;
|
|
|
}
|
|
|
if(fieldName=="marketUnitFee"){
|
|
|
-
|
|
|
+ var decimal =getDecimal("glj.unitPrice");
|
|
|
+ var newval = number_util.checkNumberValue(value,decimal);
|
|
|
+ if(newval){
|
|
|
+ fieldName="marketPrice";
|
|
|
+ projectObj.project.projectGLJ.updatePriceFromRG(node.data,fieldName,newval);
|
|
|
+ return;
|
|
|
+ }
|
|
|
}else {
|
|
|
if(value!==undefined&&value!==null){
|
|
|
if(fieldName=="subType"){
|
|
@@ -507,6 +564,19 @@ var ration_glj = {
|
|
|
// node.data.subType = value;
|
|
|
projectObj.mainController.refreshTreeNode([node]);
|
|
|
};
|
|
|
+ ration_glj.prototype.refreshTreeNodeIfNeeded=function (data) {
|
|
|
+ if(this.needShowToTree(data)){
|
|
|
+ this.transferToNodeData(data);
|
|
|
+ gljOprObj.refreshTreeNode({"type":ModuleNames.ration_glj,"ID":data.ID});
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ ration_glj.prototype.needShowToTree=function(data){
|
|
|
+ if((data.type == gljType.MAIN_MATERIAL||data.type==gljType.EQUIPMENT)&&projectInfoObj.projectInfo.property.displaySetting.disPlayMainMateria==true){
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
return new ration_glj(project);
|
|
|
}
|
|
|
};
|