Files
monpas/public/js/monpas/models/monfin/monfinbeheer.js
T
2021-07-10 16:25:16 +02:00

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
});