|
@@ -183,12 +183,15 @@ let divideObj = {
|
|
|
if(!$('#divede_calc_nav').hasClass('active')) return;
|
|
if(!$('#divede_calc_nav').hasClass('active')) return;
|
|
|
this.divideSubSpread.setActiveSheetIndex(1);
|
|
this.divideSubSpread.setActiveSheetIndex(1);
|
|
|
let selected = divideObj.getSelectedItem();
|
|
let selected = divideObj.getSelectedItem();
|
|
|
- if(selected.itemType == "分摊项"){
|
|
|
|
|
- selected = this.calcBills(selected);
|
|
|
|
|
- }else{
|
|
|
|
|
- projectObj.project.calcProgram.innerCalcRation({data:selected, sourceType:"ration", calcType: 1, updateData:[]});
|
|
|
|
|
|
|
+ if(selected){
|
|
|
|
|
+ if( selected.itemType == "分摊项"){
|
|
|
|
|
+ selected = this.calcBills(selected);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ projectObj.project.calcProgram.innerCalcRation({data:selected, sourceType:"ration", calcType: 1, updateData:[]});
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- let datas = selected.calcTemplate ? selected.calcTemplate.calcItems : [];
|
|
|
|
|
|
|
+
|
|
|
|
|
+ let datas = selected && selected.calcTemplate ? selected.calcTemplate.calcItems : [];
|
|
|
sheetCommonObj.initSheet(this.calcProgramSheet, calcProgramObj.setting, datas.length);
|
|
sheetCommonObj.initSheet(this.calcProgramSheet, calcProgramObj.setting, datas.length);
|
|
|
sheetCommonObj.showData(this.calcProgramSheet, calcProgramObj.setting, datas);
|
|
sheetCommonObj.showData(this.calcProgramSheet, calcProgramObj.setting, datas);
|
|
|
customRowHeader(this.calcProgramSheet, datas.length);
|
|
customRowHeader(this.calcProgramSheet, datas.length);
|
|
@@ -231,11 +234,14 @@ let divideObj = {
|
|
|
if(init == true){//如果是初始化打开页面,要读取已经保存的分摊比例
|
|
if(init == true){//如果是初始化打开页面,要读取已经保存的分摊比例
|
|
|
//使用已保存的分摊信息
|
|
//使用已保存的分摊信息
|
|
|
let item = divideObj.getSelectedItem();
|
|
let item = divideObj.getSelectedItem();
|
|
|
- let IDMap = {};
|
|
|
|
|
- if(item.bills) IDMap = _.indexBy(item.bills,"ID");
|
|
|
|
|
- if(IDMap[e.ID]){
|
|
|
|
|
- e.divideRate = scMathUtil.roundForObj(parseFloat(IDMap[e.ID].divideRate) * 100,3);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(item){
|
|
|
|
|
+ let IDMap = {};
|
|
|
|
|
+ if(item.bills) IDMap = _.indexBy(item.bills,"ID");
|
|
|
|
|
+ if(IDMap[e.ID]){
|
|
|
|
|
+ e.divideRate = scMathUtil.roundForObj(parseFloat(IDMap[e.ID].divideRate) * 100,3);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}else if(divideType == 0){//按清单金额比例
|
|
}else if(divideType == 0){//按清单金额比例
|
|
|
if(e.totalFee != "" && total!=0) {
|
|
if(e.totalFee != "" && total!=0) {
|
|
|
totalFee = scMathUtil.roundForObj(e.totalFee,getDecimal("bills.totalPrice"));
|
|
totalFee = scMathUtil.roundForObj(e.totalFee,getDecimal("bills.totalPrice"));
|
|
@@ -311,7 +317,7 @@ let divideObj = {
|
|
|
let datas = [];
|
|
let datas = [];
|
|
|
let item = divideObj.getSelectedItem();
|
|
let item = divideObj.getSelectedItem();
|
|
|
let IDMap = {};
|
|
let IDMap = {};
|
|
|
- if(item.bills) IDMap = _.indexBy(item.bills,"ID");
|
|
|
|
|
|
|
+ if(item && item.bills) IDMap = _.indexBy(item.bills,"ID");
|
|
|
for(let n of projectObj.project.mainTree.roots){
|
|
for(let n of projectObj.project.mainTree.roots){
|
|
|
getDatas(n)
|
|
getDatas(n)
|
|
|
}
|
|
}
|
|
@@ -606,8 +612,8 @@ let divideObj = {
|
|
|
|
|
|
|
|
function getBillsDatas(){
|
|
function getBillsDatas(){
|
|
|
let datas = [];
|
|
let datas = [];
|
|
|
- let item = divideObj.getSelectedItem();
|
|
|
|
|
- if(item.bills){
|
|
|
|
|
|
|
+ let item = divideObj.getDivideItem();
|
|
|
|
|
+ if(item && item.bills){
|
|
|
for(let b of item.bills){
|
|
for(let b of item.bills){
|
|
|
if(b.divideRate > 0) datas.push(b);
|
|
if(b.divideRate > 0) datas.push(b);
|
|
|
}
|
|
}
|
|
@@ -624,6 +630,18 @@ let divideObj = {
|
|
|
}
|
|
}
|
|
|
return data;
|
|
return data;
|
|
|
},
|
|
},
|
|
|
|
|
+ getDivideItem:function(){
|
|
|
|
|
+ const selected = this.getSelectedItem();
|
|
|
|
|
+ if(selected){
|
|
|
|
|
+ if(selected.itemType ==="分摊项") return selected;
|
|
|
|
|
+ if(selected.ParentID){
|
|
|
|
|
+ return _.find(this.divideDatas,{ID:selected.ParentID})
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return null
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
addNewItems:async function(itemType,type){
|
|
addNewItems:async function(itemType,type){
|
|
|
let newItem = {
|
|
let newItem = {
|
|
|
ID:uuid.v1(),
|
|
ID:uuid.v1(),
|
|
@@ -772,6 +790,7 @@ let divideObj = {
|
|
|
let newRation = null;
|
|
let newRation = null;
|
|
|
try {
|
|
try {
|
|
|
$.bootstrapLoading.start();
|
|
$.bootstrapLoading.start();
|
|
|
|
|
+ data.programArray= calcTools.getProgramArray();
|
|
|
let result = await ajaxPost("/ration/updateDivideRation",data)
|
|
let result = await ajaxPost("/ration/updateDivideRation",data)
|
|
|
if(data.type=="add"){
|
|
if(data.type=="add"){
|
|
|
data.divideDatas.push({type:"add",doc:result.ration});
|
|
data.divideDatas.push({type:"add",doc:result.ration});
|
|
@@ -1102,20 +1121,23 @@ let divideObj = {
|
|
|
},
|
|
},
|
|
|
initNavItem(){
|
|
initNavItem(){
|
|
|
let selected = this.getSelectedItem();
|
|
let selected = this.getSelectedItem();
|
|
|
- if(selected.itemType == "分摊项"){
|
|
|
|
|
- $("#divide_itemTextDiv").hide();
|
|
|
|
|
- $(`#divide_subSpread`).css('width', "100%");
|
|
|
|
|
- }else{
|
|
|
|
|
- $("#divide_itemTextDiv").show();
|
|
|
|
|
- if(this.showDivideGljSubTab == true){
|
|
|
|
|
- $("#divide_gljSubDiv").show();
|
|
|
|
|
- $("#divide_rgResize").show();
|
|
|
|
|
- } else {
|
|
|
|
|
- $("#divide_gljSubDiv").hide();
|
|
|
|
|
- $("#divide_rgResize").hide();
|
|
|
|
|
|
|
+ if(selected){
|
|
|
|
|
+ if( selected.itemType == "分摊项"){
|
|
|
|
|
+ $("#divide_itemTextDiv").hide();
|
|
|
|
|
+ $(`#divide_subSpread`).css('width', "100%");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $("#divide_itemTextDiv").show();
|
|
|
|
|
+ if(this.showDivideGljSubTab == true){
|
|
|
|
|
+ $("#divide_gljSubDiv").show();
|
|
|
|
|
+ $("#divide_rgResize").show();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $("#divide_gljSubDiv").hide();
|
|
|
|
|
+ $("#divide_rgResize").hide();
|
|
|
|
|
+ }
|
|
|
|
|
+ this.initItemWidth();
|
|
|
}
|
|
}
|
|
|
- this.initItemWidth();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
this.divideSubSpread.refresh();
|
|
this.divideSubSpread.refresh();
|
|
|
},
|
|
},
|
|
|
initItemWidth:function (){
|
|
initItemWidth:function (){
|
|
@@ -1586,16 +1608,17 @@ $('#divide_zmhs_toogle').bind('click',function (){
|
|
|
|
|
|
|
|
$('#exec_divide_btn').bind('click',function (){
|
|
$('#exec_divide_btn').bind('click',function (){
|
|
|
if(projectReadOnly) return;
|
|
if(projectReadOnly) return;
|
|
|
- let selected = divideObj.getSelectedItem();
|
|
|
|
|
- if(selected.itemType !="分摊项") return;
|
|
|
|
|
- $("#exec_divide_label").html(`${selected.name}<br>分摊到:`)
|
|
|
|
|
|
|
+ let divideItem = divideObj.getDivideItem();
|
|
|
|
|
+
|
|
|
|
|
+ if(!divideItem || divideItem.itemType !="分摊项") return;
|
|
|
|
|
+ $("#exec_divide_label").html(`${divideItem.name}<br>分摊到:`)
|
|
|
$("#exec_divide_div").modal('show');
|
|
$("#exec_divide_div").modal('show');
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
$('#cancel_divide_btn').bind('click',function (){
|
|
$('#cancel_divide_btn').bind('click',function (){
|
|
|
if(projectReadOnly) return;
|
|
if(projectReadOnly) return;
|
|
|
- let selected = divideObj.getSelectedItem();
|
|
|
|
|
- if(selected.itemType !="分摊项") return;
|
|
|
|
|
|
|
+ let selected = divideObj.getDivideItem();
|
|
|
|
|
+ if(!selected || selected.itemType !="分摊项") return;
|
|
|
divideObj.cancelDivide(selected.ID);
|
|
divideObj.cancelDivide(selected.ID);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -1612,8 +1635,8 @@ $('#divideBottom ul li a').on('shown.bs.tab',function () {
|
|
|
$('#exec_divide_div').on('shown.bs.modal',function () {
|
|
$('#exec_divide_div').on('shown.bs.modal',function () {
|
|
|
divideObj.initExecSpread();
|
|
divideObj.initExecSpread();
|
|
|
divideObj.showExecDatas(true);
|
|
divideObj.showExecDatas(true);
|
|
|
- let selected = divideObj.getSelectedItem();
|
|
|
|
|
- let divideType = selected.divideType?selected.divideType:0;
|
|
|
|
|
|
|
+ let divideItem = divideObj.getDivideItem();
|
|
|
|
|
+ let divideType = divideItem.divideType?divideItem.divideType:0;
|
|
|
for(let radio of $(".divide_type")){
|
|
for(let radio of $(".divide_type")){
|
|
|
$(radio).prop('checked', divideType == $(radio).val());
|
|
$(radio).prop('checked', divideType == $(radio).val());
|
|
|
}
|
|
}
|
|
@@ -1622,7 +1645,7 @@ $('#exec_divide_div').on('shown.bs.modal',function () {
|
|
|
|
|
|
|
|
$("#divide_confirm").bind('click',async function (){
|
|
$("#divide_confirm").bind('click',async function (){
|
|
|
let divideType = parseInt($("input[name='divide_type']:checked").val());
|
|
let divideType = parseInt($("input[name='divide_type']:checked").val());
|
|
|
- let item = divideObj.getSelectedItem();
|
|
|
|
|
|
|
+ let item = divideObj.getDivideItem();
|
|
|
divideObj.calcExecBillsData();
|
|
divideObj.calcExecBillsData();
|
|
|
await divideObj.calcDivideNodes(item,divideObj.execBillsDatas,async function(){
|
|
await divideObj.calcDivideNodes(item,divideObj.execBillsDatas,async function(){
|
|
|
let updateData = {ID:item.ID,type:'update',doc:{bills:divideObj.execBillsDatas,divideType:divideType}}
|
|
let updateData = {ID:item.ID,type:'update',doc:{bills:divideObj.execBillsDatas,divideType:divideType}}
|