load->model($models); } function get_soorten($swvID, $jaarnr, $categorie){ $this->sql =" SELECT id as soortID, naam , categorie FROM finsoorten WHERE categorie = '{$categorie}' AND swv_id = {$swvID} AND kalenderjaar = {$jaarnr}"; return $this->get_query_result(); } function get_subsoorten($soortID){ $this->sql = "SELECT id as subsoortID, subsoortcat, naam FROM finsubsoorten WHERE finsoort_id = {$soortID}"; return $this->get_query_result(); } function get_overig_subsoorten($soortID,$orgID){ $this->sql = "SELECT id as subsoortID, omschrijving as naam FROM finoverig WHERE soort_id = {$soortID} AND organisatie_id = {$orgID}"; return $this->get_query_result(); } function get_bestemmingen($orgID, $jaarnr,$categorie){ $swvID = $this->Organisaties_model->get_swvid($orgID); $uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes(); // get soort per swv en kalender jaar. als swv id of kalender jaar niet bekend is, // haal dan algemene soorten op; $soorten = $this->get_soorten($swvID, $jaarnr, $categorie); if (! $soorten) { $soorten = $this->get_soorten($swvID, 0, $categorie); }; if (! $soorten) {$soorten = $this->get_soorten(0,0, $categorie); }; if ($soorten){ foreach($soorten as $soort){ $soort->subsoorten = $this->get_subsoorten($soort->soortID); if ($soort->subsoorten){ foreach($soort->subsoorten as $index =>$subsoort){ // haal per uitgavetypes de bedragen op if ($uitgavetypes) { $restantbudget = 0; foreach ($uitgavetypes as $uitgavetype) { $subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr, $subsoort->subsoortID, $uitgavetype->code); } if (count($subsoort->uitgavetypes) > 0) { $restantbudget = floatval(str_replace(',' , '' , $subsoort->uitgavetypes[0]->budget)) - floatval(str_replace(',' , '' , $subsoort->uitgavetypes[1]->budget)) - floatval(str_replace(',' , '' , $subsoort->uitgavetypes[2]->budget)) - floatval(str_replace(',' , '' , $subsoort->uitgavetypes[3]->budget)); $restantbudget = number_format($restantbudget, 2); } $restant = new stdClass(); $restant->id = '0'; $restant->bedrag = '0.00'; $restant->budget = $restantbudget; $restant->code = 'RESTANT'; $subsoort->uitgavetypes[] = $restant; } } }// if subsoorten } }// if soorten return $soorten; } function get_bestemmingen_over_orgs($targetorg, $orglist, $jaarnr,$categorie){ $swvID = $this->Organisaties_model->get_swvid($targetorg); $uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes(); // get soort per swv en kalender jaar. als swv id of kalender jaar niet bekend is, // haal dan algemene soorten op; $soorten = $this->get_soorten($swvID, $jaarnr, $categorie); if (! $soorten) { $soorten = $this->get_soorten($swvID, 0, $categorie); }; if (! $soorten) {$soorten = $this->get_soorten(0,0, $categorie); }; if ($soorten){ foreach($soorten as $soort){ $soort->subsoorten = $this->get_subsoorten($soort->soortID); if ($soort->subsoorten){ foreach($soort->subsoorten as $subsoort){ // haal per uitgavetypes de bedragen op if ($uitgavetypes){ foreach($uitgavetypes as $uitgavetype){ $result = $this->get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoort->subsoortID,$uitgavetype->code); $subsoort->uitgavetypes[] = $result; } } } }// if subsoorten } }// if soorten return $soorten; } // function get_overig_bestemmingen($orgID, $jaarnr){ // $swvID = $this->Organisaties_model->get_swvid($orgID); // $uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes(); // // get soort per swv en kalender jaar. als swv id of kalender jaar niet bekend is, // // haal dan algemene soorten op; // $soorten = $this->get_soorten($swvID, $jaarnr,"OVERIG"); // if (! $soorten) { $soorten = $this->get_soorten($swvID, 0,"OVERIG"); }; // if (! $soorten) {$soorten = $this->get_soorten(0,0, "OVERIG"); }; // if ($soorten){ // foreach($soorten as $soort){ // $soort->subsoorten = $this->get_overig_subsoorten($soort->soortID, $orgID); // if ($soort->subsoorten){ // foreach($soort->subsoorten as $subsoort){ // // haal per uitgavetypes de bedragen op // if ($uitgavetypes){ // foreach($uitgavetypes as $uitgavetype){ // $subsoort->uitgavetypes[] = $this->overig_get_bedrag_per_type($subsoort->subsoortID, $jaarnr,$subsoort->subsoortID,$uitgavetype->code); // } // } // } // }// if subsoorten // } // }// if soorten // return $soorten; // } function setSomSubsoort($orgid, $jaarnr, $categorie){ } function getUitgavenPerSubsoortSchool($orgid, $jaarnr){ $this->sql = "SELECT B.id, SUM(B.bedrag) AS bedrag, FORMAT(SUM(B.bedrag) / 100,0) as format, SUB.naam AS subsoort, S.naam AS soort, S.categorie FROM finbestemmingen B JOIN finsubsoorten SUB ON SUB.id = B.subsoort_id JOIN finsoorten S ON S.id = SUB.finsoort_id WHERE B.organisatie_id = {$orgid} AND B.kalenderjaar = {$jaarnr} GROUP BY SUB.id ORDER BY S.categorie, S.naam, SUB.naam "; return $this->get_query_result(); } function getUitgavenPerType($orgid, $jaarnr){ $this->sql = "SELECT B.id, B.uitgavetype, SUM(B.bedrag) AS bedrag, FORMAT(SUM(B.bedrag)/100,2) AS format FROM finbestemmingen B JOIN finsubsoorten SUB ON SUB.id = B.subsoort_id JOIN finsoorten S ON S.id = SUB.finsoort_id WHERE B.organisatie_id = {$orgid} AND B.kalenderjaar = {$jaarnr} GROUP BY B.uitgavetype"; return $this->get_query_result(); } function get_bedrag_per_type($orgid, $jaarnr,$subsoortID, $uitgavetype){ $this->sql = "SELECT id, FORMAT(bedrag / 100,2) as bedrag, FORMAT(budget / 100,2) as budget, uitgavetype as code FROM finbestemmingen WHERE organisatie_id = {$orgid} AND kalenderjaar = {$jaarnr } AND subsoort_id = {$subsoortID} AND uitgavetype = '{$uitgavetype}' "; $row= $this->get_query_row(); if (! $row){ $data=["organisatie_id" =>$orgid, "kalenderjaar" =>$jaarnr, "subsoort_id" =>$subsoortID, "uitgavetype" =>$uitgavetype, "bedrag" =>0, "budget" =>0]; $this->insert_record($data); $row = $this->get_query_row(); } if ($row) { $row->bedrag = str_replace(',' , '' , $row->bedrag); $row->budget = str_replace(',' , '' , $row->budget); } return $row; } function get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoortID, $uitgavetype){ $this->sql = "SELECT id, FORMAT(sum(bedrag) / 100,2) as bedrag, FORMAT(sum(budget) / 100,2) as budget, uitgavetype as code FROM finbestemmingen WHERE organisatie_id in ({$orglist}) AND kalenderjaar = {$jaarnr } AND subsoort_id = {$subsoortID} AND uitgavetype = '{$uitgavetype}' "; $row= $this->get_query_row(); if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag); if ($row) $row->budget = str_replace(',' , '' , $row->budget); return $row; } function get_gebudgeteerd_totbedrag_over_orgs($orglist, $jaarnr){ $this->sql = " SELECT FORMAT(sum(B.budget) / 100,2) as budget FROM finbestemmingen B WHERE B.organisatie_id in ({$orglist}) AND B.kalenderjaar = {$jaarnr } AND B.uitgavetype = 'TOTAAL' "; $row= $this->get_query_row(); if ($row) $row = str_replace(',' , '' , $row->budget); return $row; } function getTotaalSchoolBestedingen($orgid, $jaarnr){ $this->sql = "SELECT SUM(bedrag) AS totaal FROM finbestemmingen WHERE organisatie_id = {$orgid} AND kalenderjaar = {$jaarnr} "; return $this->get_query_row('totaal'); } // function overig_get_bedrag_per_type($finoverigID, $jaarnr,$subsoortID, $uitgavetype){ // $this->sql = "SELECT id, // FORMAT((SUM(bedrag) / 100),2) as bedrag, // uitgavetype as code // FROM finoverigbestemmingen // WHERE finoverig_id = {$finoverigID} // AND kalenderjaar = {$jaarnr } // AND uitgavetype = '{$uitgavetype}' // GROUP BY uitgavetype "; // $row= $this->get_query_row(); // if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag); // return $row; // } function getsompersoortoverorgs($orgids, $jaarnr){ $this->sql ="SELECT categorie, round(sum(bedrag/100) ) AS bedrag FROM finbestemmingen FB JOIN finsubsoorten FSS on FSS.id = FB.subsoort_id JOIN finsoorten FS on FS.id = FSS.finsoort_id WHERE FB.organisatie_id in ({$orgids}) AND FB.kalenderjaar = {$jaarnr} AND FB.uitgavetype != 'TOTAAL' GROUP BY categorie, organisatie_id"; return $this->get_query_result(); } function getbudgetpersoortoverorgs($orgids, $jaarnr){ $this->sql ="SELECT categorie, round(sum(budget/100) ) AS budget FROM finbestemmingen FB JOIN finsubsoorten FSS on FSS.id = FB.subsoort_id JOIN finsoorten FS on FS.id = FSS.finsoort_id WHERE FB.organisatie_id in ({$orgids}) AND FB.kalenderjaar = {$jaarnr} AND FB.uitgavetype = 'TOTAAL' GROUP BY categorie, organisatie_id"; return $this->get_query_result(); } function getsompersoortoverorgsSummed($orgids, $jaarnr, $cat){ $this->sql ="SELECT sum(bedrag) / 100 AS bedrag FROM finbestemmingen FB JOIN finsubsoorten FSS on FSS.id = FB.subsoort_id JOIN finsoorten FS on FS.id = FSS.finsoort_id WHERE FB.organisatie_id in ({$orgids}) AND FB.kalenderjaar = {$jaarnr} AND FB.uitgavetype != 'TOTAAL' AND FS.categorie = '{$cat}' GROUP BY categorie"; return $this->get_query_row('bedrag'); } function get_pms($orgids, $kalenderjaarnr){ $this->sql = " SELECT round(sum(FB.bedrag/100) ) AS bedrag, round(sum(FB.budget/100)) AS budget, uitgavetype, FS.categorie, FB.organisatie_id FROM finbestemmingen FB JOIN finsubsoorten FSS ON FSS.id = FB.subsoort_id JOIN finsoorten FS ON FS.id = FSS.finsoort_id WHERE FB.organisatie_id IN ({$orgids}) AND FB.kalenderjaar = {$kalenderjaarnr} GROUP BY FS.categorie, uitgavetype ORDER BY categorie, uitgavetype"; return $this->get_query_result(); } }