initial commit
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/** Finbestemmingen_model februari 2017 */
|
||||
|
||||
class Finbestemmingen_model extends MY_Model{
|
||||
|
||||
|
||||
protected $tablename = 'finbestemmingen';
|
||||
|
||||
function __construct(){
|
||||
parent::__construct();
|
||||
$models = array('shared/Organisaties_model',
|
||||
"monfin2/Finuitgavetypes_model");
|
||||
$this->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 $subsoort){
|
||||
// haal per uitgavetypes de bedragen op
|
||||
if ($uitgavetypes){
|
||||
foreach($uitgavetypes as $uitgavetype){
|
||||
$subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr,$subsoort->subsoortID,$uitgavetype->code);
|
||||
}
|
||||
}
|
||||
}
|
||||
}// 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){
|
||||
$subsoort->uitgavetypes[] = $this->get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoort->subsoortID,$uitgavetype->code);
|
||||
}
|
||||
}
|
||||
}
|
||||
}// 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){
|
||||
$this->sql = "SELECT FORMAT(SUM(bedrag) / 100,2) as totaal
|
||||
FROM finbestemmingen B
|
||||
JOIN finsubsoorten SUB ON B.subsoort_id = SUB.id
|
||||
JOIN finsoorten S ON SUB.finsoort_id = S.id
|
||||
WHERE B.organisatie_id = {$orgid}
|
||||
AND B.kalenderjaar = {$jaarnr}
|
||||
AND S.categorie = '{$categorie}' ";
|
||||
|
||||
return $this->get_query_row('totaal');
|
||||
}
|
||||
|
||||
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,
|
||||
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];
|
||||
$this->insert_record($data);
|
||||
$row = $this->get_query_row();
|
||||
}
|
||||
if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag);
|
||||
return $row;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoortID, $uitgavetype){
|
||||
$this->sql = "SELECT id,
|
||||
FORMAT(sum(bedrag) / 100,2) as bedrag,
|
||||
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);
|
||||
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}
|
||||
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 FS.categorie = '{$cat}'
|
||||
GROUP BY categorie";
|
||||
return $this->get_query_row('bedrag');
|
||||
}
|
||||
function get_pms($orgids, $kalenderjaarnr){
|
||||
$this->sql = " SELECT round(sum(bedrag/100) ) AS bedrag,
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user