initial commit
This commit is contained in:
@@ -0,0 +1,373 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Description of Activiteiten model
|
||||
*
|
||||
* @author Liesbeth
|
||||
* @date april 25 2013
|
||||
*/
|
||||
|
||||
class Modpartactiviteiten extends MY_Model{
|
||||
|
||||
protected $tablename = 'tbPartActiviteiten';
|
||||
|
||||
protected $matrix;
|
||||
protected $matrixusers;
|
||||
|
||||
|
||||
function __construct(){
|
||||
parent::__construct();
|
||||
$models = array('ijkpartituur/Modfases',
|
||||
'ijkpartituur/Modpartactxorgusers',
|
||||
'shared/Users_model');
|
||||
$this->load->model($models);
|
||||
}
|
||||
|
||||
|
||||
function get_details($where=FALSE, $matrix=FALSE){
|
||||
$this->matrixusers = $this->set_matrixusers();
|
||||
|
||||
$records = $this->get_records_where($where);
|
||||
|
||||
$details = $this->get_records_details($records);
|
||||
|
||||
return $details;
|
||||
}
|
||||
|
||||
function get_records_details($records=FALSE){
|
||||
if($records){
|
||||
|
||||
foreach($records as $record){
|
||||
$details[] = $this->get_record_details($record);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!isset($details)) $details = FALSE;
|
||||
|
||||
return $details;
|
||||
}
|
||||
|
||||
function get_record_details($record){
|
||||
$details = new stdClass;
|
||||
|
||||
$details->id = $record->id;
|
||||
$details->naam = $record->naam;
|
||||
$details->omschrijving = $record->omschrijving;
|
||||
|
||||
$details->start = mysql2date($record->start);
|
||||
$details->eind = mysql2date($record->eind);
|
||||
|
||||
$details->fase = $this->Modfases->get_record_by_id($record->fase, 'naam');
|
||||
|
||||
$details->matrix = $this->set_matrix($details->id);
|
||||
|
||||
return $details;
|
||||
}
|
||||
|
||||
/**
|
||||
* [set_matrix description maakt een object per activiteit van gebruikers die een activiteit hebben]
|
||||
*
|
||||
* @param $activiteitid integer
|
||||
*/
|
||||
function set_matrix($activiteitid){
|
||||
|
||||
if($this->matrixusers){
|
||||
$i=0;
|
||||
foreach($this->matrixusers as $matrixuser){
|
||||
$data = array('activiteitID'=>$activiteitid, 'orguserID'=>$matrixuser->id);
|
||||
|
||||
$details[$i]['id'] = $matrixuser->id;
|
||||
$details[$i]['actief'] = $this->Modpartactxorgusers->check_for_record($data);
|
||||
$data = array('id'=>$activiteitid, 'verantwoordelijke'=>$matrixuser->id);
|
||||
$details[$i]['verant'] = $this->Modpartactiviteiten->check_for_record($data);
|
||||
|
||||
$i++;
|
||||
}
|
||||
}else{
|
||||
$details = FALSE;
|
||||
}
|
||||
|
||||
return $details;
|
||||
}
|
||||
|
||||
/**
|
||||
* [set_matrixusers description haalt alle gebruikers (orgusers) op
|
||||
* die een activiteit hebben binnen de partituur (actief)]
|
||||
*
|
||||
* @return : array met de actieve gebruikers
|
||||
*/
|
||||
function set_matrixusers(){
|
||||
$this->sql = " SELECT DISTINCT B.id, B.user_id
|
||||
FROM tb_orgusers B
|
||||
JOIN tb_users U
|
||||
ON U.id = B.user_id
|
||||
WHERE B.organisatie_id = {$this->globorgid}
|
||||
ORDER BY U.achternaam, U.voornaam";
|
||||
|
||||
$actusers = $this->get_query_result();
|
||||
|
||||
if($actusers){
|
||||
foreach($actusers as $actuser){
|
||||
$actuser->fullname = $this->Users_model->get_fullname($actuser->user_id);
|
||||
}
|
||||
}
|
||||
return $actusers;
|
||||
}
|
||||
|
||||
function get_kortelijst($pijlerID){
|
||||
$this->sql = " SELECT pa.id,
|
||||
pa.naam,
|
||||
pa.verantwoordelijke
|
||||
FROM tbPartActiviteiten pa
|
||||
WHERE pa.pijlerID={$pijlerID}
|
||||
ORDER BY pa.sequence";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_taaklijst($pijlerID,$dag=FALSE,$maand=FALSE,$jaar=FALSE){
|
||||
// dit vervangt get_activiteiten_per_partituur
|
||||
if ($dag) {$datestring = $jaar.'-'.$maand.'-'.$dag ;} ;
|
||||
$this->sql = " SELECT pa.id,
|
||||
pa.pijlerID,
|
||||
pa.sequence as sequence,
|
||||
pa.gereed as perc,
|
||||
pa.naam as naam,
|
||||
pa.omschrijving as omschrijving,
|
||||
pa.start,
|
||||
pa.eind ,
|
||||
pa.duur as duur,
|
||||
pa.niveau,
|
||||
o.naamkort as bron
|
||||
FROM tbPartActiviteiten pa
|
||||
LEFT JOIN tb_orgusers ou
|
||||
ON pa.verantwoordelijke = ou.id
|
||||
LEFT JOIN tb_users u
|
||||
ON u.id = ou.user_id
|
||||
LEFT JOIN tb_organisaties o
|
||||
ON o.id = pa.bronID
|
||||
WHERE pa.pijlerID={$pijlerID} ";
|
||||
if ($dag) {
|
||||
$this->sql.=" AND pa.start <= '{$datestring}'
|
||||
AND pa.eind >= '{$datestring}' ";
|
||||
|
||||
};
|
||||
$this->sql .= " ORDER BY pa.sequence";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_id_lijst ($partID,$pijlerID){
|
||||
$this->sql = " SELECT id
|
||||
FROM tbPartActiviteiten
|
||||
WHERE partituurID = {$partID}
|
||||
AND pijlerID = {$pijlerID}
|
||||
ORDER BY sequence";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_activiteiten_per_pijler($pijlerID){
|
||||
$this->sql = "SELECT pa.id,
|
||||
pa.naam,
|
||||
pa.omschrijving,
|
||||
CONCAT_WS(' ', u.voornaam, u.tussenvoegsel, u.achternaam) as verantwoordelijke,
|
||||
pa.start,
|
||||
pa.eind,
|
||||
greatest(pa.duur,0) as duur,
|
||||
pa.email_dagen,
|
||||
pa.email_naar_pl,
|
||||
pa.email_naar_vw,
|
||||
pa.email_adres,
|
||||
pa.gereed,
|
||||
pa.opmerkingen,
|
||||
f.naam as fase,
|
||||
f.kleur,
|
||||
o.naamkort as bron
|
||||
FROM tbPartActiviteiten pa
|
||||
LEFT JOIN tb_organisaties o
|
||||
ON o.id = pa.bronID
|
||||
LEFT JOIN tb_orgusers ou
|
||||
ON ou.id = pa.verantwoordelijke
|
||||
LEFT JOIN tb_users u
|
||||
ON u.id = ou.user_id
|
||||
LEFT JOIN tbFases f
|
||||
ON f.id = pa.fase
|
||||
WHERE pa.pijlerID= {$pijlerID}
|
||||
ORDER BY f.volgorde, pa.naam";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_activiteiten_per_partituur($partID, $pijlerID){
|
||||
$this->sql = " SELECT pa.id,
|
||||
pa.pijlerID,
|
||||
pa.sequence as nr,
|
||||
pa.gereed as perc,
|
||||
pa.naam as name,
|
||||
pa.omschrijving as omschrijving,
|
||||
'fw' as code,
|
||||
'1' as level,
|
||||
pa.start,
|
||||
pa.eind as end,
|
||||
pa.duur as duration,
|
||||
pa.niveau,
|
||||
o.organistie_naamkort as bron,
|
||||
p.naam as pijlernaam,
|
||||
p.omschrijving
|
||||
FROM tbPartPijlers pp, tbPartActiviteiten pa
|
||||
LEFT JOIN tbPijlers p
|
||||
ON p.id = pp.pijlerID
|
||||
LEFT JOIN tb_orgusers o
|
||||
ON pa.verantwoordelijke = o.id
|
||||
LEFT JOIN tb_users u
|
||||
ON u.id = o.user_id
|
||||
LEFT JOIN tb_organisaties o
|
||||
ON pa.bronID =o.id
|
||||
WHERE pa.partituurID = {$partID}
|
||||
AND pa.pijlerID={$pijlerID}
|
||||
ORDER BY pa.sequence";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_kosten_per_partituur_activiteit($actID){
|
||||
$this->sql = "SELECT id, omschrijving, kosten
|
||||
FROM tbPartActKosten
|
||||
WHERE activiteitID = $actID" ;
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_doelgroepen_per_partituur_activiteit ($actID){
|
||||
$this->sql = "SELECT d.id, d.omschrijving
|
||||
FROM tbPartActxDoelgroep a, tbDoelgroepen d
|
||||
WHERE a.activiteitID ={$actID}
|
||||
AND d.id = a.doelgroepID";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_hulpmiddelen_per_partituur_activiteit($actID){
|
||||
$this->sql = "SELECT h.id, h.omschrijving
|
||||
FROM tbPartActXHulpmiddel a, tbHulpmiddelen h
|
||||
WHERE a.activiteitID = {$actID}
|
||||
AND h.id = a.hulpmiddelID";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_taak_info($taakID){
|
||||
$this->sql = "SELECT pa.id as ID,
|
||||
pa.partituurID,
|
||||
pa.activiteitID,
|
||||
pa.pijlerID as pijlerID,
|
||||
p.naam as pijlernaam,
|
||||
pa.naam as taaknaam,
|
||||
pa.omschrijving as omschrijving,
|
||||
pa.opmerkingen,
|
||||
pa.bronID as soortTaak,
|
||||
o.naam as bronOmschrijving,
|
||||
pa.start, pa.eind,
|
||||
greatest(pa.duur,0) as duur,
|
||||
pa.afhankelijkvanID,
|
||||
pa.verantwoordelijke ,
|
||||
pa.gereed,
|
||||
r.omschrijving as resOmschrijving,
|
||||
r.resultaat ,
|
||||
pa.fase,
|
||||
pa.email_dagen as eSpanne,
|
||||
pa.email_naar_pl as mailPleider,
|
||||
pa.email_naar_vw as mailVerantwoordelijke,
|
||||
pa.email_adres as mailNaarMail
|
||||
FROM tbPijlers p,
|
||||
tbPartPijlers pap,
|
||||
tbPartActiviteiten pa
|
||||
LEFT JOIN tbPartActResultaten r
|
||||
ON pa.id = r.activiteitID
|
||||
LEFT JOIN tb_organisaties o
|
||||
ON o.id = pa.bronID
|
||||
WHERE pa.id = {$taakID}
|
||||
AND pap.id = pa.pijlerID
|
||||
AND p.id = pap.pijlerID
|
||||
";
|
||||
$outcome = $this->get_query_row();
|
||||
if ($outcome){
|
||||
$outcome->start = mysql2date($outcome->start);
|
||||
$outcome->eind = mysql2date($outcome->eind);
|
||||
}
|
||||
return $outcome;
|
||||
}
|
||||
function get_overige_taken_in_partituur ($partID, $taakID){
|
||||
$this->sql = " SELECT id, naam
|
||||
FROM tbPartActiviteiten pa
|
||||
WHERE pa.partituurID={$partID}
|
||||
AND pa.id <> $taakID";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_uitvoerenden_per_activiteit($taakid){
|
||||
$this->sql ="SELECT ou.id,
|
||||
CONCAT_WS(' ' ,u.voornaam, u.tussenvoegsel, u.achternaam) as fullname
|
||||
FROM tbPartActxOrgusers po, tb_orgusers ou, tb_users u
|
||||
WHERE po.activiteitID = {$taakid}
|
||||
AND ou.id = po.orguserID
|
||||
AND u.id = ou.user_id";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_overige_users_per_activiteit($taakid, $orgid){
|
||||
$this->sql ="SELECT ou.id,
|
||||
CONCAT_WS(' ' ,u.voornaam, u.tussenvoegsel, u.achternaam) as fullname
|
||||
FROM tb_orgusers ou, tb_users u
|
||||
WHERE ou.organisatie_id={$orgid}
|
||||
AND NOT EXISTS (
|
||||
SELECT orguserID
|
||||
FROM tbPartActxOrgusers
|
||||
WHERE activiteitID = {$taakid}
|
||||
AND orguserID = ou.id)
|
||||
AND u.id = ou.user_id";
|
||||
// AND orguser_level != 0 ";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_sum_kosten($partID){
|
||||
$this->sql = " SELECT sum(k.kosten) as kosten
|
||||
FROM tbPartActiviteiten pa
|
||||
JOIN tbPartActKosten k
|
||||
ON k.activiteitid = pa.id
|
||||
WHERE pa.partituurID={$partID}";
|
||||
$result= $this->db->query($this->sql);
|
||||
return $result->row()->kosten;
|
||||
}
|
||||
function get_gem_gereed($partituurid){
|
||||
$this->sql ="SELECT sum(gereed) as som, count(*) as aantal
|
||||
FROM tbPartActiviteiten pa
|
||||
WHERE pa.partituurID={$partituurid} ";
|
||||
$result=$this->db->query($this->sql);
|
||||
$tot = $result->row()->som;
|
||||
$aantal = $result->row()->aantal;
|
||||
if ($aantal == 0) {return 0;}
|
||||
else {return $tot / $aantal;};
|
||||
}
|
||||
function get_partituur_gereed($partID){
|
||||
// $this->db->join('tbPartActiviteiten', 'tbPartActiviteiten.id = '.$this->tablename.'.ActiviteitID');
|
||||
$this->sql=" SELECT AVG(gereed) as gemgereed
|
||||
FROM tbPartActiviteiten
|
||||
WHERE partituurID = {$partID}
|
||||
GROUP BY partituurID";
|
||||
$gemgereed = $this->get_query_row();
|
||||
if ($gemgereed) {
|
||||
return round($gemgereed->gemgereed,0);
|
||||
}
|
||||
else { return 0 ; } ;
|
||||
}
|
||||
function get_activiteiten_per_user($orguserid, $partID = FALSE){
|
||||
$this->sql = "SELECT pa.id, pa.naam, pa.start,pa.eind, pa.duur,pa.gereed,
|
||||
f.naam as fase,
|
||||
p.naam as pijler,
|
||||
pa.pijlerid
|
||||
FROM tbPartActiviteiten pa
|
||||
LEFT JOIN tbFases f
|
||||
ON f.id = pa.fase
|
||||
LEFT JOIN tbPartPijlers pp
|
||||
ON pp.id = pa.pijlerid
|
||||
LEFT JOIN tbPijlers p
|
||||
ON p.id = pp.pijlerID
|
||||
WHERE pa.verantwoordelijke = $orguserid";
|
||||
if ($partID) {$this->sql .= " AND pa.partituurID = {$partID}"; }
|
||||
else {$this->sql .= " AND pa.partituurID = {$this->partituurid}"; };
|
||||
return $this->get_query_result();
|
||||
}
|
||||
function get_minmax_activiteiten ($pijlerID){
|
||||
$this->sql="SELECT MIN(start) as minStart,
|
||||
MAX(start) as maxStart,
|
||||
MIN(eind) as minEind,
|
||||
MAX(eind) as maxEind
|
||||
FROM tbPartActiviteiten
|
||||
WHERE pijlerID = {$pijlerID} ";
|
||||
return $this->get_query_row();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user