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