451 lines
15 KiB
PHP
451 lines
15 KiB
PHP
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
class Compacteonderdelen
|
|
{
|
|
private $CI;
|
|
private $onderdeel;
|
|
private $omvangjaren;
|
|
private $omvangjaar;
|
|
private $jaar;
|
|
private $schooljaar;
|
|
private $details;
|
|
private $orgGegevens;
|
|
private $orgpartial = [];
|
|
private $orglist;
|
|
private $organisatie;
|
|
private $orgsoort;
|
|
private $kleuren;
|
|
private $legenda;
|
|
private $diversiteit;
|
|
private $ijkpunten;
|
|
private $scorevorm;
|
|
private $selectie;
|
|
private $selecties = [];
|
|
private $vorm;
|
|
private $jaarnummer;
|
|
private $subsoorten;
|
|
private $subsoort;
|
|
private $somE;
|
|
private $somB;
|
|
private $uitgavetypen;
|
|
private $type;
|
|
private $typesom;
|
|
private $data;
|
|
private $onderdelenNew;
|
|
private $compacteonderdelen;
|
|
|
|
public function __construct($schooljaarnr, $onderdelen, $omvangjaren, $orgid){
|
|
$this->CI = &get_instance();
|
|
$this->schooljaarnr = $schooljaarnr;
|
|
$this->onderdelen = $onderdelen;
|
|
$this->omvangjaren = $omvangjaren;
|
|
$this->orgid = $orgid;
|
|
$this->handle();
|
|
}
|
|
|
|
public function getCompacteOnderdelen(){
|
|
return $this->compacteonderdelen;
|
|
}
|
|
|
|
public function getSchooljaar(){
|
|
return $this->schooljaar->naam;
|
|
}
|
|
|
|
public function getSchoolnaam(){
|
|
return $this->organisatie->naamkort;
|
|
}
|
|
|
|
private function handle()
|
|
{
|
|
$this->setSchooljaar();
|
|
$this->setOrganisatie();
|
|
$this->setOrgSoort();
|
|
$this->setOrgdetails();
|
|
$this->setOrgGegevens();
|
|
$this->setOrgPartial();
|
|
$this->setOrglist();
|
|
$this->setKleuren();
|
|
$this->setLegenda();
|
|
$this->loopOnderdelen();
|
|
$this->setCompacteOnderdelen();
|
|
}
|
|
|
|
private function setSchooljaar(){
|
|
$jaarid = $this->CI->Schooljaren_model->get_fieldvalue(['schooljaarnr' => $this->schooljaarnr], 'id');
|
|
$this->schooljaar = $this->CI->Schooljaren_model->get_record_by_id($jaarid);
|
|
}
|
|
|
|
private function setOrganisatie(){
|
|
$this->organisatie = $this->CI->Organisaties_model->get_record_by_id($this->orgid);
|
|
}
|
|
private function setOrgSoort(){
|
|
switch($this->organisatie->soort){
|
|
case 1: $this->orgsoort = "SWV";
|
|
break;
|
|
case 2: $this->orgsoort = "Regio";
|
|
break;
|
|
case 3: $this->orgsoort = "Bestuur";
|
|
break;
|
|
case 4:
|
|
default: $this->orgsoort = "School";
|
|
}
|
|
}
|
|
|
|
private function setOrgdetails(){
|
|
$this->details = $this->CI->Schooldetails_model->get_details($this->orgid);
|
|
}
|
|
|
|
private function setOrgGegevens(){
|
|
$test = $this->CI->rootpath;
|
|
$logo = false;
|
|
if($this->details && $this->details->logo) {
|
|
// $logo = $this->CI->config->item('vendor_url') . '/images/logos/' . $this->details->logo;
|
|
$logo = $_ENV['VENDOR_URL']. '/images/logos/' . $this->details->logo;
|
|
|
|
}
|
|
|
|
$this->orgGegevens = [
|
|
'organisatie' => $this->organisatie,
|
|
'naamkort' => $this->organisatie->naamkort,
|
|
'details' => $this->details,
|
|
'orgsoort' => $this->orgsoort,
|
|
'orgsoortnr' => $this->organisatie->soort,
|
|
'schooljaar' => $this->schooljaar->naam,
|
|
'schooljaarnr' => $this->schooljaarnr,
|
|
'datum' => date("d-m-Y"),
|
|
'logo' => $logo
|
|
];
|
|
}
|
|
|
|
private function setOrgpartial()
|
|
{
|
|
$this->orgpartial['data'] = $this->orgGegevens;
|
|
$this->orgpartial['html'] = 'monpas/compactsop/schoolgegevens';
|
|
}
|
|
|
|
private function setOrglist(){
|
|
$lijst = [];
|
|
$orglist = $this->CI->Organisaties_model->getlistrecursief($this->orgid, $lijst);
|
|
$orglist = implode('","', $orglist);
|
|
$this->orglist = '"'. $orglist .'"';
|
|
|
|
}
|
|
|
|
private function setKleuren()
|
|
{
|
|
if (!$this->kleuren || $this->kleuren == " ") {
|
|
$this->kleuren = new stdClass();
|
|
$this->kleuren->cluster_id = 0;
|
|
$this->kleuren->grens1 = '60';
|
|
$this->kleuren->grens2 = '80';
|
|
$this->kleuren->grens3 = '90';
|
|
$this->kleuren->grens4 = '100';
|
|
$this->kleuren->kleur1 = '#e08885';
|
|
$this->kleuren->kleur2 = '#ffcc80';
|
|
$this->kleuren->kleur3 = '#9fdf9f';
|
|
$this->kleuren->kleur4 = '#99d6ff';
|
|
|
|
}
|
|
}
|
|
|
|
private function setLegenda()
|
|
{
|
|
$this->legenda['data'] = $this->kleuren;
|
|
$this->legenda['html'] = "monpas/compactsop/legendacompact";
|
|
}
|
|
|
|
private function loopOnderdelen()
|
|
{
|
|
foreach ($this->onderdelen ? : [] as $index => $this->onderdeel) {
|
|
$this->switchOnderdelen();
|
|
$this->setOnderdeel();
|
|
$this->setOnderdelen();
|
|
}
|
|
}
|
|
|
|
private function switchOnderdelen()
|
|
{
|
|
if (!$this->onderdeel['type']) return;
|
|
switch ($this->onderdeel['type']) {
|
|
case "LIJST":
|
|
case "LIJSTBREED":
|
|
$this->setIJkpunten();
|
|
break;
|
|
case "DIV":
|
|
$this->setDiversiteit();
|
|
break;
|
|
case "OMVANG":
|
|
$this->setSetOmvang();
|
|
break;
|
|
case "FIN":
|
|
$this->setMiddelen();
|
|
break;
|
|
}
|
|
}
|
|
|
|
private function setDiversiteit()
|
|
{
|
|
$divcompact = New Diversiteit($this->schooljaarnr, $this->orgid, $this->onderdeel['modulenr']);
|
|
$divdata = $divcompact->getDiversiteit();
|
|
$divafbeelding = New Diversiteitafbeeldingen($divdata, $this->onderdeel['modulenr'], $this->schooljaarnr);
|
|
$this->diversiteit = $divafbeelding->getDiversiteitafbeeldingen();
|
|
|
|
$data = [
|
|
'schooljaar' => $this->schooljaar->naam,
|
|
'groepen' => $this->diversiteit['groepen'],
|
|
'schooldq' => $this->diversiteit['schooldq'],
|
|
'schooldiversiteit' => $this->diversiteit['totdiversiteit'],
|
|
|
|
|
|
];
|
|
$this->data = $data;
|
|
|
|
}
|
|
|
|
private function setSetOmvang(){
|
|
if(! isset($this->omvangjaren) || count($this->omvangjaren) < 1 || !$this->omvangjaren) return;
|
|
$jaren = implode("','", $this->omvangjaren);
|
|
$jaren = "'" . $jaren . "'";
|
|
|
|
|
|
if($this->organisatie->soort == 4) {
|
|
$arrs = $this->CI->Arrangementen_model->getArrangementnamenSop($jaren, $this->orgid);
|
|
if ($arrs) {
|
|
$kleuren = ['#ffcc80', '#ffb84d', '#ffa31a', '#e68a00', '#b36b00', '#804d00', '#4d2e00', '#ffe0b3', '#fff5e6'];
|
|
$index = 0;
|
|
foreach ($arrs as $arr) {
|
|
if ($index >= count($kleuren)) $index = 0;
|
|
$arr->kleur = $kleuren[$index];
|
|
$index++;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach($this->omvangjaren as $index => $this->omvangjaar) {
|
|
$this->jaar = new stdClass();
|
|
$this->jaar->aantallen =
|
|
$this->CI->Aantalleerlingen_model->get_omvang($this->omvangjaar, $this->orglist);
|
|
$totaal = 'Totaal aantal leerlingen: ' . $this->jaar->aantallen->aantal;
|
|
$scholen = ' scholen';
|
|
if($this->jaar->aantallen->aantalorgs == 1) $scholen = ' school';
|
|
if($this->organisatie->soort < 4) $totaal = $totaal. ' van '.$this->jaar->aantallen->aantalorgs. $scholen;
|
|
$this->jaar->aantallen->totaal = $totaal;
|
|
|
|
$this->jaar->tlvs =
|
|
$this->CI->Tlvs_model->getAantalLeerlingenMetTLV($this->omvangjaar, $this->orglist);
|
|
|
|
if($this->organisatie->soort < 4){
|
|
$this->jaar->arrangementen =
|
|
$this->CI->Arrangementen_model->getAantalLeerlingenMetArrangement($this->omvangjaar, $this->orglist );
|
|
}
|
|
if($this->organisatie->soort == 4) {
|
|
$this->jaar->arrangementen =
|
|
$this->CI->Arrangementen_model->getArrangementenMetAantallenSop( $this->organisatie->id, $this->omvangjaar );
|
|
|
|
if($this->jaar->arrangementen) {
|
|
foreach ($this->jaar->arrangementen as $arrangement) {
|
|
foreach ($arrs as $arr) {
|
|
if ($arrangement->id == $arr->id) {
|
|
$arrangement->kleur = $arr->kleur;
|
|
}
|
|
$arrangement->naamkort = $arrangement->naam;
|
|
if (strlen($arrangement->naam) > 10) {
|
|
$arrangement->naamkort = substr($arrangement->naam, 0, 12);
|
|
$arrangement->naamkort = $arrangement->naamkort . '..';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$this->data [] = $this->jaar;
|
|
}
|
|
|
|
}
|
|
|
|
private function setMiddelen()
|
|
{
|
|
$this->setUitgavetypen();
|
|
$this->loopUitgavetypen();
|
|
$this->setTypeSom();
|
|
// $this->typesom = $this->setBedragNL($this->typesom);
|
|
|
|
$this->setSubsoorten();
|
|
$this->loopSubsoorten();
|
|
$this->setSomSubsoort();
|
|
// $this->somB = $this->setBedragNL($this->somB);
|
|
// $this->somE = $this->setBedragNL($this->somE);
|
|
$this->setMiddelenData();
|
|
}
|
|
|
|
private function setUitgavetypen()
|
|
{
|
|
$this->jaarnummer = $this->CI->Kalenderjaren_model->get_fieldvalue(['naam' => $this->onderdeel['orgversieid']], 'jaarnr');
|
|
$this->uitgavetypen = $this->CI->Finbestemmingen_model->getUitgavenPerType($this->orgid, $this->jaarnummer);
|
|
}
|
|
|
|
private function loopUitgavetypen()
|
|
{
|
|
if (!$this->uitgavetypen) return;
|
|
foreach ($this->uitgavetypen as $index => $this->type) {
|
|
$this->afrondenType();
|
|
// $this->type->bedragNL = $this->setBedragNL($this->type->format);
|
|
$this->lowercase();
|
|
}
|
|
}
|
|
|
|
private function afrondenType(){
|
|
$euros= number_format(($this->type->bedrag /100) , 0,',','.');
|
|
$this->type->euros = $euros;
|
|
$this->type->bedragNL =$euros;
|
|
// $euros = round(($this->type->bedrag / 100), 2);
|
|
// $this->type->euros = $euros;
|
|
}
|
|
|
|
private function setBedragNL($bedrag){
|
|
$metpunt = str_replace(',', '.', $bedrag);
|
|
$lengte = strlen($metpunt);
|
|
$deel1 = substr($metpunt, 0, ($lengte - 3));
|
|
$deel2 = substr($metpunt, ($lengte - 2), 2);
|
|
return $deel1 . ',' . $deel2;
|
|
}
|
|
|
|
private function lowercase(){
|
|
$klein = strtolower($this->type->uitgavetype);
|
|
$eerste = ucfirst($klein);
|
|
$this->type->uitgavetype = $eerste;
|
|
}
|
|
|
|
private function setTypeSom(){
|
|
$this->typesom = $this->CI->Finbestemmingen_model->getTotaalSchoolBestedingen($this->orgid, $this->jaarnummer);
|
|
$this->typesom = number_format(($this->typesom / 100), 0,',','.');
|
|
}
|
|
|
|
private function setSubsoorten(){
|
|
$this->subsoorten = $this->CI->Finbestemmingen_model->getUitgavenPerSubsoortSchool($this->orgid, $this->jaarnummer);
|
|
}
|
|
|
|
private function loopSubsoorten(){
|
|
if (!$this->subsoorten) return;
|
|
foreach ($this->subsoorten as $index => $this->subsoort) {
|
|
$this->afrondenSoort();
|
|
//$this->subsoort->bedragNL = $this->setBedragNL($this->subsoort->format);
|
|
}
|
|
}
|
|
|
|
private function afrondenSoort(){
|
|
$euros= number_format(($this->subsoort->bedrag /100) , 0,',','.');
|
|
$this->subsoort->euros = $euros;
|
|
$this->subsoort->bedragNL =$euros;
|
|
}
|
|
|
|
private function setSomSubsoort(){
|
|
$this->somB = $this->CI->Finbestemmingen_model->setSomSubsoort(
|
|
$this->CI->globorgid, $this->jaarnummer, 'BASIS');
|
|
|
|
$this->somB = str_replace(',','', $this->somB);
|
|
$this->somB = number_format(($this->somB ), 0,',','.');
|
|
|
|
|
|
$this->somE = $this->CI->Finbestemmingen_model->setSomSubsoort(
|
|
$this->CI->globorgid, $this->jaarnummer, 'EXTRA');
|
|
$this->somE = str_replace(',','', $this->somE);
|
|
$this->somE = number_format(($this->somE ), 0,',','.');
|
|
|
|
}
|
|
|
|
private function setMiddelenData()
|
|
{
|
|
$data = ['subsoorten' => $this->subsoorten,
|
|
'typesom' => $this->typesom,
|
|
'somB' => $this->somB,
|
|
'somE' => $this->somE,
|
|
'uitgaventypen' => $this->uitgavetypen,
|
|
'versie' => $this->onderdeel['orgversieid']
|
|
];
|
|
$this->data = $data;
|
|
|
|
}
|
|
|
|
private function setIJkpunten()
|
|
{
|
|
$this->setScorevorm();
|
|
$this->setSelecties();
|
|
$this->setLijsten();
|
|
$this->setIJkpuntenGegevens();
|
|
}
|
|
|
|
private function setScorevorm(){
|
|
if(!$this->onderdeel['orgversieid']) return;
|
|
$this->scorevorm =
|
|
$this->CI->Orgversies_model->get_fieldvalue( ['id' => $this->onderdeel['orgversieid'] ],'vorm');
|
|
}
|
|
|
|
private function setSelecties(){
|
|
$this->selectie =[];
|
|
$this->selecties = [];
|
|
$this->selectie = [
|
|
'orgversieid' => $this->onderdeel['orgversieid'],
|
|
'vorm' => $this->scorevorm
|
|
];
|
|
$this->selecties[] = $this->selectie;
|
|
if($this->onderdeel['vergelijkid'] ){
|
|
|
|
// foreach($this->onderdeel['vergelijkids'] as $index => $this->vergelijkingid){
|
|
$this->vorm = $this->CI->Orgversies_model->get_fieldvalue(['id' => $this->onderdeel['vergelijkid']], 'vorm');
|
|
$this->selectie = ['orgversieid' => $this->onderdeel['vergelijkid'],
|
|
'vorm' => $this->vorm];
|
|
$this->selecties [] = $this->selectie;
|
|
// }
|
|
}
|
|
}
|
|
|
|
private function setLijsten(){
|
|
$this->ijkpunten = "";
|
|
$lijsten = new Lijsten($this->orgid, $this->selecties);
|
|
$this->ijkpunten = $lijsten->getSopInfo();
|
|
}
|
|
|
|
|
|
private function setIJkpuntenGegevens(){
|
|
|
|
$this->data = $this->ijkpunten;
|
|
}
|
|
|
|
private function setOnderdeel(){
|
|
if (!$this->onderdeel['modulenr']) return;
|
|
// $this->onderdeelcs['breed'] = 'F';
|
|
|
|
$html = $this->CI->Modules_model->getPad($this->onderdeel['modulenr']);
|
|
$this->onderdeel['html'] = $html;
|
|
if($this->data){
|
|
$this->onderdeel['data'] =
|
|
['data' =>$this->data,
|
|
'naam' =>$this->onderdeel['naam'],
|
|
'chartid'=>'blokje' . $this->onderdeel['modulenr'],
|
|
'orgsoort'=> $this->orgsoort ];
|
|
}
|
|
|
|
}
|
|
private function setOnderdelen(){
|
|
$this->onderdelenNew []= $this->onderdeel;
|
|
}
|
|
|
|
private function setCompacteOnderdelen(){
|
|
$this->compacteonderdelen= [
|
|
'orggegevens' => $this->orgpartial,
|
|
'legenda' => $this->legenda,
|
|
'onderdelen' => $this->onderdelenNew,
|
|
'schooljaarnr' => $this->schooljaarnr,
|
|
'schooljaar' => $this->schooljaar->naam,
|
|
'orgnaam' => $this->organisatie->naamkort
|
|
];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|