|
|
@@ -9,24 +9,24 @@ let materialAdjustObj = {
|
|
|
priceCoeDatas:[],
|
|
|
priceInfoSetting:{
|
|
|
header: [
|
|
|
+ {headerName: "关联", headerWidth: 80, dataCode: "is_related", dataType: "String",cellType:'checkBox'},
|
|
|
{headerName: "编号", headerWidth: 80, dataCode: "code", dataType: "String"},
|
|
|
{headerName: "材料名称", headerWidth: 160, dataCode: "name", dataType: "String",cellType:'tipsCell'},
|
|
|
{headerName: "规格型号", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'},
|
|
|
{headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"},
|
|
|
{headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
|
|
|
- {headerName: "风险系数%", headerWidth: 60, dataCode: "riskCoe", hAlign: "right", dataType: "Number",validator:"number"},
|
|
|
+ {headerName: "风险系数%", headerWidth: 80, dataCode: "riskCoe", hAlign: "right", dataType: "Number",validator:"number"},
|
|
|
{headerName: "基准单价", headerWidth: 70, dataCode: "standardPrice", hAlign: "right", dataType: "Number",validator:"number"},
|
|
|
{headerName: "投标单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
|
|
|
{headerName: "合价", headerWidth: 90, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number",decimalField:'bills.totalPrice'},
|
|
|
- {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
|
|
|
- {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
|
|
|
{headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
|
|
|
{headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
|
|
|
],
|
|
|
- view:{ lockColumns: ["code","name","specs","unit","quantity","totalPrice","originPlace","vender","supply","remark"]}
|
|
|
+ view:{ lockColumns: ["is_related","quantity","totalPrice","originPlace","vender","supply"]}
|
|
|
},
|
|
|
priceCoeSetting:{
|
|
|
header: [
|
|
|
+ {headerName: "关联", headerWidth: 80, dataCode: "is_related", dataType: "String",cellType:'checkBox'},
|
|
|
{headerName: "编号", headerWidth: 80, dataCode: "code", dataType: "String"},
|
|
|
{headerName: "材料名称", headerWidth: 160, dataCode: "name", dataType: "String",cellType:'tipsCell'},
|
|
|
{headerName: "规格型号", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'},
|
|
|
@@ -37,12 +37,10 @@ let materialAdjustObj = {
|
|
|
{headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
|
|
|
{headerName: "单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
|
|
|
{headerName: "合价", headerWidth: 90, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number",decimalField:'bills.totalPrice'},
|
|
|
- {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
|
|
|
- {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
|
|
|
{headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
|
|
|
{headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
|
|
|
],
|
|
|
- view:{ lockColumns: ["code","name","specs","unit","quantity","totalPrice","originPlace","varWeight","vender","supply","remark"]}
|
|
|
+ view:{ lockColumns: ["is_related","quantity","totalPrice","originPlace","varWeight","vender","supply"]}
|
|
|
},
|
|
|
refreshSheetDatas:function () {
|
|
|
//读项目属性的值,若没有则默认为造价信息差额调整法
|
|
|
@@ -52,39 +50,42 @@ let materialAdjustObj = {
|
|
|
} else {
|
|
|
materialAdjustObj.showPriceCoeDatas();
|
|
|
}
|
|
|
- //let sheetIndex = $("#adjustType").val()
|
|
|
+ configMaterialObj.showEvaluateRelateDatas();
|
|
|
},
|
|
|
- initSpread:function () {
|
|
|
- if(!this.spread){
|
|
|
- this.spread = SheetDataHelper.createNewSpread($("#material_adjust_sheet")[0],2);
|
|
|
- sheetCommonObj.spreadDefaultStyle(this.spread);
|
|
|
- }
|
|
|
- this.initPriceInfoSheet();
|
|
|
- this.initPriceCoeSheet();
|
|
|
- //disableRightMenu("project_glj_sheet",this.projectGljSpread,this.rightClickCallback);
|
|
|
- //打开别人分享的项目,只读
|
|
|
- if(projectReadOnly){
|
|
|
- disableSpread(this.spread);
|
|
|
- }else {
|
|
|
- this.initRightClick();
|
|
|
- }
|
|
|
+ getSheetDatas:function () {
|
|
|
+ let adjustType = $('#adjustType').val();
|
|
|
+ return adjustType === 'priceInfo' ? this.priceInfoDatas : this.priceCoeDatas;
|
|
|
+ },
|
|
|
+ getSheet:function () {
|
|
|
+ let adjustType = $('#adjustType').val();
|
|
|
+ return adjustType === 'priceInfo' ? this.priceInfoSheet : this.priceCoeSheet;
|
|
|
},
|
|
|
initPriceInfoSheet:function () {
|
|
|
- this.priceInfoSheet = this.spread.getSheet(0);
|
|
|
+ this.priceInfoSheet = configMaterialObj.configSpread.getSheet(2);
|
|
|
sheetCommonObj.initSheet(this.priceInfoSheet,this.priceInfoSetting,30);
|
|
|
this.priceInfoSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange);
|
|
|
- this.priceInfoSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
|
|
|
+ this.priceInfoSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onSelectionChange);
|
|
|
+ // this.priceInfoSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
|
|
|
this.priceInfoSheet.name('priceInfoSheet');
|
|
|
this.priceInfoSheet.setRowHeight(0, 36, 1);
|
|
|
},
|
|
|
initPriceCoeSheet:function () {
|
|
|
- this.priceCoeSheet = this.spread.getSheet(1);
|
|
|
+ this.priceCoeSheet = configMaterialObj.configSpread.getSheet(3);
|
|
|
sheetCommonObj.initSheet(this.priceCoeSheet,this.priceCoeSetting,30);
|
|
|
this.priceCoeSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange);
|
|
|
- this.priceCoeSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
|
|
|
+ this.priceCoeSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onSelectionChange);
|
|
|
this.priceCoeSheet.name('priceCoeSheet');
|
|
|
this.priceCoeSheet.setRowHeight(0, 36, 1);
|
|
|
},
|
|
|
+ onSelectionChange:function (sender, args) {
|
|
|
+ let me = configMaterialObj;
|
|
|
+ let newSel = args.newSelections[0];
|
|
|
+ let oldSel = args.oldSelections?args.oldSelections[0]:{};
|
|
|
+ if(newSel.row != oldSel.row){
|
|
|
+ me.showEvaluateRelateDatas();
|
|
|
+ me.relateFilterAgain = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
onSheetRangeChange:function (a,args) {
|
|
|
let me = materialAdjustObj,updateMap = {};
|
|
|
let projectGLJ = projectObj.project.projectGLJ;
|
|
|
@@ -119,33 +120,30 @@ let materialAdjustObj = {
|
|
|
|
|
|
onSheetValueChange:function (a,args) {
|
|
|
let me = materialAdjustObj,row = args.row, col = args.col;
|
|
|
- let projectGLJ = projectObj.project.projectGLJ;
|
|
|
let setting = $("#adjustType").val() == "priceInfo"?me.priceInfoSetting:me.priceCoeSetting;
|
|
|
let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas;
|
|
|
let dataCode = setting.header[col].dataCode;
|
|
|
- let recode = datas[row];
|
|
|
+ let evaluate = datas[row];
|
|
|
let value = args.newValue;
|
|
|
- if(value === undefined ){
|
|
|
- me.refreshSheetDatas();
|
|
|
- return;
|
|
|
- }
|
|
|
- if (value&&!projectGljObject.checkData(col,setting,value)) {
|
|
|
+
|
|
|
+ if (value&&! sheetCommonObj.checkData(col,setting,value)) {
|
|
|
alert('输入的数据类型不对,请重新输入!');
|
|
|
- me.refreshSheetDatas();
|
|
|
- return ;
|
|
|
+ return me.refreshSheetDatas();
|
|
|
}
|
|
|
- if(recode[dataCode] == value) return;
|
|
|
-
|
|
|
- if(dataCode=='marketPrice'){//修改市场价和修改定额价时需要重新记算很多受影响的树节点,现在改成与定字额工料机那里调相同的方法。
|
|
|
- let editField ="market_price";
|
|
|
- projectGLJ.updatePrice(recode,editField,value,'pg',me.refreshSheetDatas);
|
|
|
- return;
|
|
|
+ if(dataCode == 'marketPrice'){
|
|
|
+ dataCode = 'market_price';
|
|
|
+ if(evaluate.is_evaluate == 1){
|
|
|
+ alert("当前材料市场价已被锁定,修改请先返回人材机汇总界面解除锁定。");
|
|
|
+ return me.refreshSheetDatas();
|
|
|
+ }
|
|
|
+ if(evaluate.is_related){//关联的情况下,直接修改工料机价格
|
|
|
+ return projectObj.project.projectGLJ.updatePrice(evaluate,dataCode,value,'rg', projectGljObject.refreshViewsData);
|
|
|
+ }
|
|
|
}
|
|
|
- if(value) value = scMathUtil.roundForObj(value,getDecimal("process"));
|
|
|
- if(value == null) value="";
|
|
|
- let updateData = {id: recode.id, field: dataCode, value: value+""};
|
|
|
- projectGLJ.pGljUpdate(updateData,me.refreshSheetDatas);
|
|
|
-
|
|
|
+ let edata = {type:'contractor_list',doc:{},action:"update",ID:evaluate.ID};
|
|
|
+ if(evaluate[dataCode] == value) return me.refreshSheetDatas();
|
|
|
+ edata.doc[dataCode] = value;
|
|
|
+ configMaterialObj.updateEvaluateMaterial([edata],false);
|
|
|
},
|
|
|
deleteAdjust:function () {
|
|
|
let me = this,updateMap={};
|
|
|
@@ -163,96 +161,97 @@ let materialAdjustObj = {
|
|
|
|
|
|
},
|
|
|
showPriceInfoDatas:function () {
|
|
|
- this.spread.setActiveSheetIndex(0);
|
|
|
+ configMaterialObj.configSpread.setActiveSheetIndex(2);
|
|
|
this.priceInfoDatas = this.getPirceInfoDatas();
|
|
|
sheetCommonObj.showData(this.priceInfoSheet, this.priceInfoSetting,this.priceInfoDatas);
|
|
|
this.priceInfoSheet.setRowCount(this.priceInfoDatas.length);
|
|
|
},
|
|
|
showPriceCoeDatas:function () {
|
|
|
- this.spread.setActiveSheetIndex(1);
|
|
|
+ configMaterialObj.configSpread.setActiveSheetIndex(3);
|
|
|
this.priceCoeDatas = this.getPriceCoeDatas();
|
|
|
sheetCommonObj.showData(this.priceCoeSheet, this.priceCoeSetting,this.priceCoeDatas);
|
|
|
this.priceCoeSheet.setRowCount(this.priceCoeDatas.length);
|
|
|
},
|
|
|
- getPirceInfoDatas:function(projectGLJList){
|
|
|
+ getPirceInfoDatas:function(projectGLJList,contractor_list){
|
|
|
let datas = [];
|
|
|
- let gljList = this.filterAdjustGlj(projectGLJList, 'is_info_adjust');
|
|
|
- gljList = sortProjectGLJ(gljList);
|
|
|
- for(let glj of gljList){
|
|
|
- datas.push(getInfoObject(glj));
|
|
|
- }
|
|
|
- return datas;
|
|
|
- function getInfoObject(glj) {
|
|
|
- let data = materialAdjustObj.getCommonObject(glj);
|
|
|
- data.riskCoe = glj.riskCoe;
|
|
|
- data.standardPrice = glj.standardPrice;
|
|
|
- data.totalPrice = materialAdjustObj.getTotalPrice(data);
|
|
|
- return data;
|
|
|
+ let pgljList = projectGLJList?projectGLJList:projectObj.project.projectGLJ.datas.gljList;
|
|
|
+ let contractorList = contractor_list?contractor_list:projectObj.project.contractor_list.datas;
|
|
|
+ let gljMap = _.indexBy(pgljList,'id');
|
|
|
+ for(let e of contractorList){
|
|
|
+ let t = {
|
|
|
+ ID:e.ID,
|
|
|
+ projectID: e.projectID,
|
|
|
+ is_related:e.is_related,//关联,1关,0不关
|
|
|
+ projectGLJID:e.projectGLJID,//关联工料机ID
|
|
|
+ seq:e.seq,//序号
|
|
|
+ code:e.code,
|
|
|
+ name:e.name,
|
|
|
+ specs:e.specs,
|
|
|
+ unit:e.unit,
|
|
|
+ type:e.type,
|
|
|
+ marketPrice:e.market_price,
|
|
|
+ quantity:e.quantity,
|
|
|
+ remark:e.remark,
|
|
|
+ supply:e.supply,
|
|
|
+ riskCoe : e.riskCoe,
|
|
|
+ is_evaluate:0,
|
|
|
+ standardPrice : e.standardPrice
|
|
|
+ };
|
|
|
+ let pglj = gljMap[e.projectGLJID];
|
|
|
+ if(e.is_related && pglj){
|
|
|
+ gljOprObj.setGLJPrice(t,pglj);
|
|
|
+ t.vender = pglj.vender;
|
|
|
+ t.supply = pglj.supply;
|
|
|
+ t.is_evaluate = pglj.is_evaluate;
|
|
|
+ t.quantity = pglj.quantity;
|
|
|
+ }
|
|
|
+ t.totalPrice = scMathUtil.roundForObj(parseFloat(t.quantity) * parseFloat(t.marketPrice) ,getDecimal('bills.totalPrice'));
|
|
|
+ datas.push(t);
|
|
|
}
|
|
|
+ return _.sortByAll(datas,'code');
|
|
|
},
|
|
|
- filterAdjustGlj:function (projectGLJList, field) {
|
|
|
- let gljList = projectGLJList?projectGLJList:projectObj.project.projectGLJ.datas.gljList;
|
|
|
- return _.filter(gljList,function (item) {
|
|
|
- return item.quantity !== 0 && item.quantity !== '0' && item[field] ===1
|
|
|
- });
|
|
|
- },
|
|
|
- getPriceCoeDatas:function (projectGLJList,totalFee) {
|
|
|
+ getPriceCoeDatas:function (projectGLJList,contractor_list,totalFee) {
|
|
|
let datas = [];
|
|
|
+ let pgljList = projectGLJList?projectGLJList:projectObj.project.projectGLJ.datas.gljList;
|
|
|
+ let contractorList = contractor_list?contractor_list:projectObj.project.contractor_list.datas;
|
|
|
+ let gljMap = _.indexBy(pgljList,'id');
|
|
|
if(!gljUtil.isDef(totalFee)){
|
|
|
let node = projectObj.project.Bills.getEngineeringCostNode(projectObj.mainController);
|
|
|
totalFee = node && node.data.feesIndex && node.data.feesIndex.common?node.data.feesIndex.common.totalFee:0;
|
|
|
}
|
|
|
- let gljList = this.filterAdjustGlj(projectGLJList, 'is_coe_adjust');
|
|
|
- gljList = sortProjectGLJ(gljList);
|
|
|
- for(let glj of gljList){
|
|
|
- datas.push(getCoeObject(glj,totalFee));
|
|
|
- }
|
|
|
- return datas;
|
|
|
- function getCoeObject(glj,totalFee) {
|
|
|
- let data = materialAdjustObj.getCommonObject(glj);
|
|
|
- data.FO = glj.FO;
|
|
|
- data.FI = glj.FI;
|
|
|
- data.totalPrice = materialAdjustObj.getTotalPrice(data);
|
|
|
- if(totalFee !==0) data.varWeight = scMathUtil.roundForObj(data.totalPrice/totalFee,2);
|
|
|
- return data;
|
|
|
- }
|
|
|
- },
|
|
|
- getTotalPrice:function (data) {
|
|
|
- return scMathUtil.roundForObj(data.quantity * data.marketPrice,getDecimal("bills.totalPrice"))
|
|
|
- },
|
|
|
- initRightClick : function() {
|
|
|
- let me = this;
|
|
|
- $.contextMenu({
|
|
|
- selector: '#material_adjust_sheet',
|
|
|
- build: function ($trigger, e) {
|
|
|
- me.rightClickTarget = SheetDataHelper.safeRightClickSelection($trigger, e, me.spread);
|
|
|
- return me.rightClickTarget.hitTestType === GC.Spread.Sheets.SheetArea.viewport ||
|
|
|
- me.rightClickTarget.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
|
|
|
- },
|
|
|
- items: {
|
|
|
- "addFromGLJ":{
|
|
|
- name: '从人材机汇总中选择',
|
|
|
- icon: 'fa-sign-in',
|
|
|
- disabled: function () {
|
|
|
- return false;
|
|
|
- },
|
|
|
- callback: function (key, opt) {
|
|
|
- $("#selectFromGLJ").modal('show');
|
|
|
- }
|
|
|
- },
|
|
|
- "deleteAdjust": {
|
|
|
- name: "删除",
|
|
|
- icon: 'fa-trash-o',
|
|
|
- disabled: function () {
|
|
|
- return me.rightClickTarget.row === undefined;
|
|
|
- },
|
|
|
- callback: function (key, opt) {
|
|
|
- let row = me.rightClickTarget.row;
|
|
|
- me.deleteAdjust();
|
|
|
- }
|
|
|
- }
|
|
|
+ for(let e of contractorList){
|
|
|
+ let t = {
|
|
|
+ ID:e.ID,
|
|
|
+ projectID: e.projectID,
|
|
|
+ is_related:e.is_related,//关联,1关,0不关
|
|
|
+ projectGLJID:e.projectGLJID,//关联工料机ID
|
|
|
+ seq:e.seq,//序号
|
|
|
+ code:e.code,
|
|
|
+ name:e.name,
|
|
|
+ specs:e.specs,
|
|
|
+ unit:e.unit,
|
|
|
+ type:e.type,
|
|
|
+ marketPrice:e.market_price,
|
|
|
+ quantity:e.quantity,
|
|
|
+ remark:e.remark,
|
|
|
+ supply:e.supply,
|
|
|
+ is_evaluate:0,
|
|
|
+ FO : e.FO,
|
|
|
+ FI : e.FI
|
|
|
+ };
|
|
|
+ let pglj = gljMap[e.projectGLJID];
|
|
|
+ if(e.is_related && pglj){
|
|
|
+ gljOprObj.setGLJPrice(t,pglj);
|
|
|
+ t.vender = pglj.vender;
|
|
|
+ t.supply = pglj.supply;
|
|
|
+ t.quantity = pglj.quantity;
|
|
|
+ t.is_evaluate = pglj.is_evaluate;
|
|
|
}
|
|
|
- });
|
|
|
+ t.totalPrice = scMathUtil.roundForObj(parseFloat(t.quantity) * parseFloat(t.marketPrice) ,getDecimal('bills.totalPrice'));
|
|
|
+ if(totalFee !==0) t.varWeight = scMathUtil.roundForObj(t.totalPrice/totalFee,2);
|
|
|
+ datas.push(t);
|
|
|
+ }
|
|
|
+ return _.sortByAll(datas,'code');
|
|
|
},
|
|
|
getCommonObject:function (glj) {
|
|
|
let data ={
|
|
|
@@ -336,14 +335,13 @@ let gljFromObj={
|
|
|
this.refreshDatas();
|
|
|
},
|
|
|
filterGLJ:function (gljList) {
|
|
|
- let field = $("#adjustType").val() == "priceInfo"?"is_info_adjust":"is_coe_adjust";
|
|
|
let typeMap = {};
|
|
|
for(let ch of $(".glj_sel_input:checked")){
|
|
|
typeMap[$(ch).val()] = true;
|
|
|
}
|
|
|
let inputV = $("#glj_sel_input").val();
|
|
|
return _.filter(gljList,function (item) {
|
|
|
- if(item.quantity === 0 || item.quantity === '0' || item[field] ===1) return false;
|
|
|
+ if(item.quantity === 0 || item.quantity === '0') return false;
|
|
|
if(!typeMap[0]){//如果没有勾选所有,下面再细分
|
|
|
let firstS = (item.type+"").substring(0,1);
|
|
|
if(!typeMap[firstS]) return false
|
|
|
@@ -367,6 +365,8 @@ let gljFromObj={
|
|
|
data.short_name = projectGLJ.getShortNameByID(glj.type);
|
|
|
// 只有材料才显示是否暂估
|
|
|
if (materialIdList.indexOf(glj.type) >= 0) data.is_evaluate = glj.is_evaluate;
|
|
|
+ data.from = glj;
|
|
|
+ data.is_contractor_material = glj.is_contractor_material;
|
|
|
return data;
|
|
|
},
|
|
|
checkByType:function (type) {
|
|
|
@@ -383,30 +383,83 @@ let gljFromObj={
|
|
|
if(d.type == 5) d.select = 1;
|
|
|
break;
|
|
|
case "取消":
|
|
|
- d.select = 0;
|
|
|
+ d.select = d.is_contractor_material?1:0;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- //this.refreshDatas();
|
|
|
},
|
|
|
confirmSelect:function () {
|
|
|
- let updateMap = {};
|
|
|
- let adjustType = $("#adjustType").val()
|
|
|
+ let tasks = [];
|
|
|
+ let datas = projectObj.project.contractor_list.datas,modelType= 'contractor_list',field= 'is_contractor_material';
|
|
|
+ let evaluateMap = _.indexBy(datas,"projectGLJID");
|
|
|
+ let evaluateKeyMap = {};//关键字映射表
|
|
|
+ for(let e of datas){
|
|
|
+ let eIndex = gljUtil.getIndex(e);
|
|
|
+ evaluateKeyMap[eIndex] = e;
|
|
|
+ }
|
|
|
for(let d of this.datas){
|
|
|
- if(d.select == 1){
|
|
|
- let tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+"",is_coe_adjust:1,FI:"",FO:""};//现在改成添加的话,两个页面都添加,删除两个页面都删除
|
|
|
- /* if(adjustType== "priceInfo"){
|
|
|
- tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+""};
|
|
|
- }else {
|
|
|
- tem = {is_coe_adjust:1,FI:"",FO:""};
|
|
|
- }*/
|
|
|
- updateMap[d.id] = tem;
|
|
|
+ if(d.select == 1){//如果是选中状态
|
|
|
+ if(d[field] == 1) {//如果已经标记为承包人材料
|
|
|
+ let evl = evaluateMap[d.id];
|
|
|
+ if(evl){
|
|
|
+ //这里应该是错误检查的保证,按正常是不应该出现这种情况的
|
|
|
+ if(evl.is_related !=1) tasks.push({type:modelType,doc:{projectGLJID:d.id,is_related:1},action:"update",ID:evl.ID});
|
|
|
+ }else {
|
|
|
+ tasks.push(getNewEval(d,modelType))
|
|
|
+ }
|
|
|
+ }else {//如果不是暂估,要改成暂估
|
|
|
+ let pdata = {id:d.id,doc:{},action:'update',type:"glj_list"};
|
|
|
+ pdata.doc[field] = 1;
|
|
|
+ tasks.push(pdata);
|
|
|
+ let evaluate = evaluateKeyMap[gljUtil.getIndex(d)];
|
|
|
+ if(evaluate) {//如果已经存在5个关键字相同的暂估材料,则自动关联起来
|
|
|
+ let edata = {type:modelType,doc:{projectGLJID:d.id,is_related:1},action:"update",ID:evaluate.ID};
|
|
|
+ tasks.push(edata);
|
|
|
+ }else {//如果不存在,则生成一条新的
|
|
|
+ tasks.push(getNewEval(d,modelType));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {//未选中状态的,检查一下是否存在关联的情况,取消关联
|
|
|
+ let tdoc = {};
|
|
|
+ tdoc[field] = 0;
|
|
|
+ if(d[field] == 1) tasks.push({id:d.id,doc:tdoc,action:'update',type:"glj_list"});
|
|
|
+ let evl = evaluateMap[d.id];
|
|
|
+ if(evl){
|
|
|
+ if(evl.is_related ==1) tasks.push({type:modelType,doc:{is_related:0},action:"update",ID:evl.ID});
|
|
|
+ }
|
|
|
+ let evaluate = evaluateKeyMap[gljUtil.getIndex(d)];
|
|
|
+ if(evaluate) {
|
|
|
+ if(evaluate.is_related ==1) tasks.push({type:modelType,doc:{is_related:0},action:"update",ID:evaluate.ID});
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- if( _.isEmpty(updateMap)) return;
|
|
|
- projectObj.project.projectGLJ.batchUpdateGLJProperty(updateMap,function () {
|
|
|
- materialAdjustObj.refreshSheetDatas();
|
|
|
- });
|
|
|
+ if(tasks.length > 0) configMaterialObj.updateEvaluateMaterial(tasks);
|
|
|
+
|
|
|
+
|
|
|
+ function getNewEval(d,m_t) {
|
|
|
+ let ndata = {type:m_t,doc:{},action:"add"};
|
|
|
+ ndata.doc['ID'] = uuid.v1();
|
|
|
+ ndata.doc['projectGLJID'] = d.id;
|
|
|
+ ndata.doc['is_related'] = 1;
|
|
|
+ ndata.doc['seq'] = d.code;
|
|
|
+ ndata.doc['projectID'] = d.from.project_id;
|
|
|
+ ndata.doc['code'] = d.code;
|
|
|
+ ndata.doc['name'] = d.name;
|
|
|
+ ndata.doc['specs'] = d.specs;
|
|
|
+ ndata.doc['unit'] = d.unit;
|
|
|
+ ndata.doc['quantity'] = d.quantity;
|
|
|
+ ndata.doc['type'] = d.type;
|
|
|
+ ndata.doc['market_price'] = d.from.unit_price.market_price;
|
|
|
+ ndata.doc['originPlace'] = d.originPlace;
|
|
|
+ ndata.doc['vender'] = d.vender;
|
|
|
+ ndata.doc['remark'] = d.remark;
|
|
|
+ ndata.doc['supply'] = d.supply;
|
|
|
+ ndata.doc['riskCoe'] = "";
|
|
|
+ ndata.doc['standardPrice'] = "";
|
|
|
+ ndata.doc['FO'] = "";
|
|
|
+ ndata.doc['FI'] = "";
|
|
|
+ return ndata;
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
|