262 lines
7.8 KiB
JavaScript
262 lines
7.8 KiB
JavaScript
$(function(){
|
|
|
|
function fAddOrg(p, targetid){
|
|
var dit = this;
|
|
this.geopend = ko.observable(true);
|
|
|
|
this.id = p.id
|
|
if (this.id !== undefined || this.id <=0) {this.geopend(false);}
|
|
|
|
this.fnaam = p.brin + ' - ' + p.naamkort;
|
|
this.soort = p.soort
|
|
this.suborgs = ko.observableArray([]);
|
|
if (p.kamers){
|
|
$.each(p.kamers, function(j,k){
|
|
dit.suborgs.push(new fAddOrg(k,targetid));
|
|
});
|
|
}
|
|
if (p.bgs){
|
|
$.each(p.bgs, function(j,k){
|
|
dit.suborgs.push(new fAddOrg(k,targetid));
|
|
});
|
|
}
|
|
if (p.scholen){
|
|
$.each(p.scholen, function(j,k){
|
|
dit.suborgs.push(new fAddOrg(k,targetid));
|
|
});
|
|
}
|
|
if (p.id == targetid){
|
|
ls.MonfinBeheerModel.selectedOrg(this);
|
|
}
|
|
}
|
|
function fAddBedrag(p){
|
|
this.id = p.id
|
|
this.kalenderjaar = p.naam;
|
|
this.jaarnr = p.jaarnr;
|
|
this.basisextra = ko.observable(p.basisextra);
|
|
this.basisextravast = ko.observable(p.basisextravast);
|
|
this.basis = ko.observable(p.basis);
|
|
if (this.basis() >=0) this.basis(p.basis/100)
|
|
else this.basis(0);
|
|
|
|
this.extra = ko.observable(p.extra);
|
|
if (this.extra() >=0) this.extra(p.extra / 100)
|
|
else this.extra(0);
|
|
|
|
this.som = ko.observable(p.som/100);
|
|
|
|
this.computedsom = ko.computed(function(){
|
|
var basis = String(this.basis());
|
|
basis = basis.replace(',' , '.');
|
|
basis = parseFloat(basis);
|
|
if (isNaN(basis)) basis =0 ;
|
|
|
|
var extra=String(this.extra());
|
|
extra = extra.replace(',' , '.');
|
|
extra = parseFloat(extra);
|
|
if (isNaN(extra)) extra = 0;
|
|
|
|
var som= Math.round((basis + extra) * 100)/100;
|
|
|
|
if (som == "NaN") {return 0}
|
|
else {return som.format(2,3,'.',',') }
|
|
},this)
|
|
|
|
|
|
|
|
this.overig = ko.observable(p.overig);
|
|
if (this.overig() >=0) this.overig(p.overig/100);
|
|
|
|
this.vastgelegd = ko.observable(p.vastgelegd);
|
|
this.jaarclosed = ko.observable(true);
|
|
if (p.jaarclosed == "F"){this.jaarclosed(false); }
|
|
|
|
this.screensom = ko.computed(function(){
|
|
var ssom;
|
|
if (this.basisextra() ==1){
|
|
ssom=this.computedsom() }
|
|
else { ssom = String(this.som());
|
|
ssom = ssom.replace(',' , '.');
|
|
ssom = parseFloat(ssom);
|
|
if (isNaN(ssom)) ssom =0 ;
|
|
ssom = ssom.format(2,3,'.',',');
|
|
}
|
|
return ssom
|
|
},this)
|
|
this.screenbasis = ko.computed(function(){
|
|
var ssom = String(this.basis());
|
|
ssom = ssom.replace(',' , '.');
|
|
ssom = parseFloat(ssom);
|
|
if (isNaN(ssom)) ssom =0 ;
|
|
return ssom.format(2,3,'.',',');
|
|
},this)
|
|
this.screenextra = ko.computed(function(){
|
|
var ssom = String(this.extra());
|
|
ssom = ssom.replace(',' , '.');
|
|
ssom = parseFloat(ssom);
|
|
if (isNaN(ssom)) ssom =0 ;
|
|
return ssom.format(2,3,'.',',');
|
|
},this)
|
|
this.screenoverig = ko.computed(function(){
|
|
var ssom = String(this.overig());
|
|
ssom = ssom.replace(',' , '.');
|
|
ssom = parseFloat(ssom);
|
|
if (isNaN(ssom)) ssom =0 ;
|
|
return ssom.format(2,3,'.',',');
|
|
},this)
|
|
}
|
|
|
|
ls.initMonfinBeheerModel = function(){
|
|
if (ls.MonfinBeheerModel !== undefined){
|
|
ls.MonfinBeheerModel.initModel();
|
|
}
|
|
else {
|
|
ls.MonfinBeheerModel = {
|
|
orgs : ko.observableArray(),
|
|
selectedOrg : ko.observable(),
|
|
bedragen : ko.observableArray([]),
|
|
|
|
initBindings :function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
if (!ko.dataFor(document.getElementById('pagmonfinbeheer')) ) {
|
|
ko.applyBindings(ls.MonfinBeheerModel, document.getElementById("pagmonfinbeheer"));
|
|
}
|
|
|
|
$.post("index.php/monpas/monfinbeheer/getorgs", function(result){
|
|
self.orgs.removeAll();
|
|
|
|
if (result.structuur) {
|
|
self.orgs.push(new fAddOrg(result.structuur,result.org.id));
|
|
};
|
|
if (self.selectedOrg()) {self.fGetBedragen();}
|
|
},'json');
|
|
},
|
|
|
|
initModel: function(){
|
|
},
|
|
|
|
fToggle: function(){
|
|
this.geopend(!this.geopend());
|
|
},
|
|
fSetSelected: function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
self.selectedOrg(this);
|
|
self.fGetBedragen()
|
|
},
|
|
fGetBedragen: function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
if (!self.selectedOrg() ) return;
|
|
$.post("index.php/monpas/monfinbeheer/getbedragen/"+ self.selectedOrg().id, function(result){
|
|
self.bedragen.removeAll();
|
|
if (result){
|
|
$.each(result, function(i,p){
|
|
self.bedragen.push(new fAddBedrag(p));
|
|
}); // each
|
|
}; // if
|
|
},'json');
|
|
},
|
|
|
|
fUpdatebedrag:function(wat){
|
|
var self = ls.MonfinBeheerModel;
|
|
var bedrag;
|
|
var dit = this;
|
|
if (dit.jaarclosed() ) return;
|
|
|
|
var sd = self.fMaakSubmitData(dit);
|
|
|
|
$.post("index.php/monpas/monfinbeheer/updateorinsert",sd,function(newid){
|
|
if (newid)dit.id=newid;
|
|
});
|
|
},
|
|
|
|
fLegVast:function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
var dit = this;
|
|
if (dit.jaarclosed() ) return;
|
|
|
|
apprise("Weet u zeker dat u de toegewezen bedragen voor " +this.kalenderjaar + " wilt vastleggen? <br> U kunt dan geen wijzigingen meer aanbrengen.",
|
|
{verify:true , textYes:'ja', textNo:'nee'}, function(ans){
|
|
if (ans) {
|
|
var sd =self.fMaakSubmitData(dit);
|
|
$.post("index.php/monpas/monfinbeheer/legvast",sd,function(newid){
|
|
if (newid) dit.id = newid;
|
|
dit.vastgelegd(true);
|
|
});
|
|
}
|
|
});
|
|
},
|
|
fMaakSubmitData :function(dit){
|
|
var self = ls.MonfinBeheerModel;
|
|
var ssom;
|
|
|
|
var basis = String(dit.basis());
|
|
if (basis == null) basis =0;
|
|
var extra = String(dit.extra());
|
|
if (extra == null) extra = 0;
|
|
var overig =String(dit.overig());
|
|
if (overig == null) overig = 0;
|
|
var som = String(dit.som());
|
|
if (som== null) som = 0;
|
|
if (dit.basisextra()==1) ssom= parseFloat(basis.replace(',' , '.') ) * 100 + parseFloat(extra.replace(',' , '.')) * 100
|
|
else ssom = parseFloat(som.replace(',' , '.' )) * 100
|
|
var sd = {id : dit.id,
|
|
orgid : self.selectedOrg().id,
|
|
jaarnr : dit.jaarnr,
|
|
basis : parseFloat(basis.replace(',' , '.') ) * 100,
|
|
extra : parseFloat(extra.replace(',' , '.')) * 100,
|
|
som : ssom,
|
|
overig : parseFloat(overig.replace(',' ,'.')) * 100,
|
|
basisextra : dit.basisextra()}
|
|
return sd;
|
|
},
|
|
fLegBasisextravast : function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
var dit = this;
|
|
if (dit.jaarclosed() ) return;
|
|
|
|
if (!dit.basisextra() || dit.basisextra() == null) return;
|
|
apprise('Weet u zeker dat u het onderscheid voor kalenderjaar ' + dit.kalenderjaar + " wilt vastleggen? <br> U kunt dit niet ongedaan maken.",
|
|
{verify: true, textYes: 'ja', textNo: 'nee'}, function(ans){
|
|
if (ans){
|
|
var sd =self.fMaakSubmitData(dit);
|
|
$.post('index.php/monpas/monfinbeheer/legbasisextravast', sd, function(newid){
|
|
if (newid) dit.id=newid;
|
|
dit.basisextravast(1);
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
fUpdateBE: function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
var dit = this;
|
|
if (dit.jaarclosed() ) return;
|
|
|
|
var sd =self.fMaakSubmitData(dit);
|
|
$.post('index.php/monpas/monfinbeheer/savebasisextra', sd, function(newid){
|
|
if (newid) dit.id=newid;
|
|
});
|
|
return true;
|
|
},
|
|
|
|
fJaarAfsluiten: function(){
|
|
var self = ls.MonfinBeheerModel;
|
|
var dit = this;
|
|
if (dit.jaarclosed() || !self.selectedOrg() || self.selectedOrg().soort !=1) return;
|
|
|
|
apprise("U gaat het jaar afsluiten voor alle organisaties. U kunt deze handeling niet ongedaan maken. <br> Weet u zeker dat u wilt doorgaan?",
|
|
{verify:true, textYes:'ja', textNo:'nee'}, function(ans){
|
|
if (ans){
|
|
var sd ={jaarnr : dit.jaarnr,
|
|
swv : self.selectedOrg().id }
|
|
$.post('index.php/monpas/monfinbeheer/sluitjaaraf', sd, function(res){
|
|
self.fGetBedragen
|
|
});
|
|
};// if ans
|
|
}); // apprise
|
|
}
|
|
} ; // definition van model
|
|
ls.MonfinBeheerModel.initBindings();
|
|
}; // else
|
|
}// function initMonfinBeheerModel
|
|
}); |