load->model($models); $this->load->library('monpas/kleurcodes'); if(!$this->userid) return; if ( ! $this->check_online_status() ) { echo json_encode( array('offline' => TRUE) ); die; };// if } /** * Index Page for this controller. */ public function index(){ $partituur = $this->get_active_partituur($this->globorgid); $profielen = $this->get_profielen(); $medewerkers = $this->Users_model->get_users_by_organisatie($this->globorgid); $schoolmeterpijlers = $this->ModPijlers->get_pijlers($this->globProfielVersieID); $ExistsAct = false; $magNieuw = $this->writer; $isactievepart = false; if(!$partituur){ //TODO: procedure om een nieuwe partituur aan te maken middels koppeling of schakelprogramma //echo json_encode(array('status'=>FALSE)); //return; if ($this->globorgid == SYSTEM){$status= TRUE;} else { $status=FALSE;} $partituurID=''; } else { $status = TRUE; $partituurID=$partituur->id; $where=array('partituurID' => $partituur->id); $ExistsAct = $this->Modpartactiviteiten->check_for_record($where); $isactievepart = $partituur->actief; } $mes1=$this->lang->line("mes-geenactievepartituur"); $mes2=$this->lang->line("mes-geenrechten"); $mes3=$this->lang->line('mes-ukuntnietverder'); $mes4=$this->lang->line('mes-gegevensinvullen'); $mes5=$this->lang->line('mes-startdatumvooreinddatum'); $kleuren = $this->kleurcodes->getkleurcodesfromdatabase(); echo json_encode(array('status' => $status , 'partituurID' => $partituurID, 'profielen' => $profielen, "schoolmeterpijlers" => $schoolmeterpijlers, 'medewerkers' => $medewerkers, 'write' => $this->writer, 'allowDelete' => !$ExistsAct, 'magNieuw' =>$magNieuw, 'isactievepart' =>$isactievepart, 'mes1' =>$mes1, 'mes2' =>$mes2, 'mes3' =>$mes3, 'mes4' =>$mes4, 'mes5' =>$mes5, 'mes6' =>$this->lang->line('mes-startdatumaanpassen'), 'mes7' =>$this->lang->line('mes-einddatumaanpassen') , 'mes8' =>$this->lang->line('mes-startdatuminvullen' ), 'mes9' =>$this->lang->line('mes-einddatuminvullen'), 'mes10' =>$this->lang->line('mes-geentoegang'), 'mes11' =>$this->lang->line('mes-heelgetalinvullen'), 'mes12' =>$this->lang->line('mes-nieuwenaam'), 'mes13' =>$this->lang->line('mes-weetuzekerpartituur'), 'mes14' =>$this->lang->line('mes-geengegevenswijzigen'), 'mes15' =>$this->lang->line('mes-emailvervangen'), 'mes16' =>$this->lang->line('mes-weetuzekerpartituurverwijderen'), 'lbl1' =>$this->lang->line('lbl-partituurnaam'), 'lbl2' =>$this->lang->line('lbl-startdatum'), 'lbl3' =>$this->lang->line('lbl-einddatum'), 'lbl4' =>$this->lang->line('lbl-scorevoor'), 'lblja' =>$this->lang->line('lbl-ja'), 'lblnee' =>$this->lang->line('lbl-nee'), 'kleuren' =>$kleuren )); } public function WhichPagina(){ if ($this->partituurid){ $where=array("id" => $this->partituurid); $partituur = $this->Partituurs_model->get_fieldvalue($where, 'partituur_actief'); } else { $where = array('partituur_organisatie_id'=>$this->globorgid, 'partituur_actief'=>1); $partituur = $this->Partituurs_model->get_single_details($where); } if ($partituur) { $ans = 3; }else{ $ans = 2; // set het menu }; $systemyesno = 0; if ($this->globorgid == SYSTEM) {$systemyesno = 1;}; echo json_encode(array("pagina" =>$ans, "partID" =>$this->partituurid, "systemyesno" => $systemyesno)) ; } public function get_submenu(){ $menu = $this->Pages_model->get_usermenu_ls($this->userrole,0); echo json_encode(array('menu'=>$menu)); } public function check_session(){ echo json_encode(array('session'=>$this->userid)); } public function helpdeskinfo(){ $info = $this->Modhelpdesk->get_helpdesk(); echo json_encode($info); } public function resetVars (){ $partituurID = $this->uri->segment(4); $where = array('partituurID' => $partituurID); $ExistsAct = $this->Modpartactiviteiten->check_for_record($where); $kosten = $this->Modpartactiviteiten->get_sum_kosten($partituurID); $gereed = $this->Modpartactiviteiten->get_gem_gereed($partituurID); $where =array("partituurID" =>$partituurID); $num =$this->Modpartactiviteiten->check_for_record($where); $allowchange = !$num; $num = $this->ModPartEigenActiviteiten->check_for_record($where); if ($num) {$allowchange = false;}; echo json_encode(array( "allowDelete" => !$ExistsAct, 'allowChange' =>$allowchange, "kosten" => $kosten, "gereed" => $gereed )); } public function getPartituurActief(){ $partituurid = $this->uri->segment(4); $actiefJN = 0; if ($partituurid > 0) { $where=array("id" =>$partituurid); $actiefJN = $this->Partituurs_model->get_fieldvalue ($where, 'partituur_actief'); }; if ($this->globorgid == SYSTEM){$actiefJN = 2;} echo json_encode($actiefJN); } public function get_partituur(){ $partituurid= $this->uri->segment(4); $data['status'] = FALSE; if($this->Autorisaties_model->check_partituur_access($partituurid, 1)){ $data['status'] = TRUE; $data['write'] = $this->Autorisaties_model->check_partituur_access($partituurid, 2); $data['partituur'] = $this->Partituurs_model->get_single_details(array('id'=>$partituurid)); $data['magnieuw'] =$data['write']; if (! $data['partituur']->actief) {$data['write'] = false;}; $data['isactievepart'] =$data['partituur']->actief; $where =array("partituurID" =>$partituurid); $num =$this->Modpartactiviteiten->check_for_record($where); $data['allowchange'] = !$num; $num = $this->ModPartEigenActiviteiten->check_for_record($where); if ($num) {$data['allowchange'] = false;}; $data['partituur']->kosten = $this->Modpartactiviteiten->get_sum_kosten($partituurid); $data['partituur']->gereed = $this->Modpartactiviteiten->get_gem_gereed($partituurid); $data['pijlers'] = $this->ModPartPijlers->get_joined_details($partituurid); $data['partituren'] = $this->Partituurs_model->get_details(array('partituur_organisatie_id'=>$this->globorgid)); $data['ruwescores'] =$this->ModRuweScores->get_scores($partituurid); } echo json_encode($data); } // public function get_ruwe_sopscore(){ // $url = 'http://www.framework-ed.nl/schakel/profiel_search.asp?School_ID=2908'; // $curl = curl_init(); // curl_setopt_array($curl, array( // CURLOPT_RETURNTRANSFER => 1, // CURLOPT_URL => $url // )); // $ruwescore = curl_exec($curl); // $scores = explode('[', $ruwescore); // $score = '['.$scores[1]; // curl_close($curl); // echo $score; // } function get_partituren(){ $data['partituren'] = $this->Partituurs_model->get_details(array('partituur_organisatie_id'=>$this->globorgid)); echo json_encode($data); } public function get_unused_pijlers(){ $partID = $this->uri->segment(3); $pijlers = $this->Eigenpijlers_model->get_pijlers_not_in_partituur($this->globorgid, $partID); echo json_encode(array("unusedpijlers"=>$pijlers)); } public function save_profiel(){ if ($this->Autorisaties_model->check_autorisatie($this->userrole,WRITER) <=0) return; $status = FALSE; $partituurID= $this->clean_input("partituurID"); $profielen = $this->clean_input('profiel'); if($profielen){ if($this->Autorisaties_model->check_partituur_access($partituurID, 1)){ $status = TRUE; foreach($profielen as $profiel){ $pijler = $this->ModPartPijlers->get_record_by_id($profiel['id']); if($profiel['huidig']!=$pijler->huidigniveau || $profiel['gewenst']!=$pijler->gewenstniveau){ $data = array( 'huidigniveau' => $profiel['huidig'] , 'gewenstniveau' => $profiel['gewenst'] ); $this->ModPartPijlers->update_record($data, $profiel['id']); } } } } echo json_encode(array('status'=>$status)); } public function get_standaard() { $profielid = $this->uri->segment(4); $partituurid= $this->uri->segment(5); $status = FALSE; if($this->Autorisaties_model->check_partituur_access($partituurid, 1)){ $status = TRUE; $standaards = $this->Nivoprofielen_model->get_records_where(array('niveauID'=>$profielid)); } echo json_encode(array('status'=>$status, 'standaards'=>$standaards)); } public function opslaan_pleider(){ $partituurid= $this->clean_input('partituurID'); $pleiderid = $this->clean_input('pleiderID'); $status = FALSE; if($this->Autorisaties_model->check_partituur_access($partituurid, 1)){ $status = TRUE; $email = $this->Users_model->get_record_by_id($pleiderid, 'email',true); $data = array('partituur_projectleider_id'=>$pleiderid); $this->Partituurs_model->update_record($data, $partituurid); } echo json_encode(array("email"=>$email, "status"=>$status)); } public function opslaan_email(){ $status = FALSE; if($this->Autorisaties_model->check_partituur_access($partituurid, 1)){ $status = TRUE; $partituurid= $this->clean_input('partituurID'); $email = $this->clean_input('email'); $data = array('partituur_email'=>$email); $this->Partituurs_model->update_record($data, $partituurid); } echo json_encode(array('status'=>$status)); } public function opslaan_dates(){ $status = FALSE; $errorstr =''; $partituurid= $this->clean_input('partituurID'); if($this->Autorisaties_model->check_partituur_access($partituurid, 1)){ $start = date2mysql($this->clean_input('vandatum')); $eind = date2mysql($this->clean_input('tmdatum')); // check of de nieuwe data kunnen, geven pijlerdata $MinMax = $this->ModPartPijlers->get_minmax_dag($partituurid); if ($MinMax[0]->mindag < $start) { $errorstr = 'startdatum moet kleiner of gelijk aan '.mysql2date($MinMax[0]->mindag).' zijn;'; $start = $MinMax[0]->mindag; }; if ($MinMax[0]->maxdag > $eind){ $errorstr .= ' einddatum moet groter of gelijk aan '.mysql2date($MinMax[0]->maxdag).' zijn.'; $eind = $MinMax[0]->maxdag; }; $data = array('partituur_start'=>$start, 'partituur_eind'=>$eind); $this->Partituurs_model->update_record($data, $partituurid); echo json_encode(array('start' => mysql2date($start), 'eind' => mysql2date($eind), 'errorstr' => $errorstr)); } else { echo json_encode(false); }; } function save_new_eigenpijler(){ $status = $eigenpijlers = FALSE; $partituurid= $this->clean_input('partituurid'); if($this->Autorisaties_model->check_partituur_access($partituurid, 1)){ $status = TRUE; $pijlernaam = $this->clean_input('pijlernaam'); $data = array('eigenpijler_naam'=>$pijlernaam, 'orgID'=>$this->globorgid); $newID = $this->Eigenpijlers_model->insert_record($data); $eigenpijlers = $this->Eigenpijlers_model->get_pijlers_not_in_partituur($this->globorgid, $partituurid); } echo json_encode(array('status'=>$status, 'eigenpijlers'=>$eigenpijlers)); } public function insert_eigen_pijlers(){ $IDlijst = $this->clean_input('insertpijlerIDs'); $partID = $this->clean_input('partituurID'); foreach ($IDlijst as $newID) { $data= array("partituurID" => $partID, "eigenpijlerID" => $newID); $this->Part_eigenpijlers_model->insert_record($data); } echo json_encode(true); } private function get_active_partituur($orgid ){ $where = array('partituur_organisatie_id'=>$orgid, 'partituur_actief'=>1); $partituur = $this->Partituurs_model->get_single_details($where); return $partituur; } private function get_profielen(){ $profielen = $this->Niveaus_model->get_details(array('actief'=>1, 'fw_versie' =>$this->globProfielVersieID)); return $profielen; } public function getActievePartituur(){ $where=array("partituur_organisatie_id" =>$this->globorgid, "partituur_actief" => 1); $partituur = $this->Partituurs_model->get_records_where($where,TRUE); echo json_encode($partituur); } // del_pijlers zorgt dat geselecteerde eigen pijler binnen de partituur worden verwijderd. De eigen pijlers worden dus niet uit tb_eigenpijlers verwijderd. function del_pijlers(){ //del pijlers krijgt een array van IDs van (eigen) pijlers die deleted //moeten worden. als aan een pijler geen activiteiten oid hangen, mag de pijler uit de db verwijderd worden. // anders hoeft er, wat betreft de db niets met de pijler te gebeuren //mag succes of failure teruggeven $delIDs = $this->input->post("eigenPijlerIds"); foreach ($delIDs as $delID){ $this->Part_eigenpijlers_model->delete_record($delID); } echo json_encode("true"); } function del_eigen_pijlers(){ // del eigen pijlers moet de eigen pijlers daadwerkelijk verwijderen. //in de function del_pijlers worden de pijlers uit de partituur verwijderd // deze functie verwijderd de eigenpijlers dus uit de db // dit mag alleen als de pijler niet gebruikt wordt in een partituur $delIDs = $this->input->post('eigenPijlerIds'); $partID = $this->input->post('partituurID'); foreach($delIDs as $delID){ $where=array('eigenpijlerID' =>$delID); if($this->Part_eigenpijlers_model->get_result_count($where) <= 0){$this->Eigenpijlers_model->delete_record($delID) ;} ; }; // haal de resterende eigenpijlers op en return deze $eigenpijlers= $this->Eigenpijlers_model->get_pijlers_not_in_partituur($this->globorgid, $partID); echo json_encode($eigenpijlers); } function del_partituur(){ // moet de na delete meest recente partituur id teruggeven of -1 if ($this->Autorisaties_model->check_autorisatie($this->userrole, WRITER) <=0) return; $partituurID=$this->uri->segment(4); // delete pijlers in partituur // als er activiteiten zijn mag de partiuur niet verwijderd worden. $where = array("partituurID" => $partituurID); $ExistsAct = $this->Modpartactiviteiten->check_for_record($where); if ($ExistsAct) { echo json_encode(0); } else { $this->ModPartPijlers->delete_record_where(array("partituurID" =>$partituurID)); $this->Partituurs_model->delete_record($partituurID); $activeID=$this->get_active_partituur($this->globorgid); echo json_encode($activeID); }; } function getscores(){ $ovid = $this->clean_input("ovid"); $scores = $this->Ijkpunten_model->getscores($ovid, $this->globorgid); echo json_encode($scores); } function nieuwe_partituur(){ // functie krijgt via post een submitData arrray binnen met naam, vandatum, tmdatum en een json array met scores (id, naam, en waarde) // naam moet zijn ingevuld. vandatum en tmdatum mogen NIET undefined zijn // vanuit de opgegeven scores moet bepaald worden wat de pijlerwaarden (1 tm 5) zijn // functie moet als antwoord het ID van de nieuwe partituur geven. //daarnaast moet gekeken worden of bij de versie een wenssituatie is gemaakt. Deze wenssituatie moet // ook overgenomen worden naar de partituur. $oldpartituur = $this->clean_input("oldpartituur"); $newnaam = $this->clean_input('naam'); $vandatum = date2mysql($this->clean_input("vandatum") ); $tmdatum = date2mysql($this->clean_input('tmdatum')); $versieid = $this->clean_input("versieid"); $ovid = $this->clean_input("ovid"); $scores = $this->Ijkpunten_model->getscores($ovid, $this->globorgid); $data= array( 'partituur_organisatie_id'=> $this->globorgid , 'partituur_naam' => $newnaam, 'partituur_actief' => 1, 'partituur_start' => $vandatum, 'partituur_eind' => $tmdatum); $newPID=$this->Partituurs_model->insert_record($data); $wenssituaties = $this->Wenssituaties_model->getgewenstvoorpartituur($ovid,$this->globorgid); foreach($scores as $score) { $waarde = 1; $res= round($score->somscore / $score->num); $waarde= $this->kleurcodes->getnummer($res); switch ($score->nummer){ case 1: $pijlerid = 1; break; case 2: $pijlerid = 2; break; case 3: $pijlerid = 3; break; case 4: $pijlerid = 4; break; case 5: $pijlerid = 5; break; case 6: $pijlerid = 6; break; case 7: $pijlerid = 7; break; case 8: $pijlerid = 8; break; case 9: $pijlerid = 9; break; case 10 : $pijlerid = 10; break; case 11 : $pijlerid = 11; break; case 12: $pijlerid = 12; break; case 13: $pijlerid = 13; break; } $gewenstniveau = 5; if ($wenssituaties){ foreach($wenssituaties as $wens){ if ($wens->nummer == $pijlerid) { $gewenstniveau =$wens->wens; break; } ; //if }; }; $data= array('partituurID' => $newPID, 'pijlerID' => $pijlerid, 'huidigniveau' => $waarde, 'gewenstniveau' => $gewenstniveau, 'start' =>$vandatum, 'eind' =>$tmdatum); $this->ModPartPijlers->insert_record($data) ; $data2= array( "orgID" =>$this->globorgid, "partituurID" =>$newPID, "pijlerID" =>$pijlerid, "score" =>$res ); $this->ModRuweScores->insert_record($data2); }; $data=array('partituur_actief' => 0); if ($oldpartituur) { $this->Partituurs_model->update_record($data, $oldpartituur); }; echo json_encode(array('id'=>$newPID)); } public function setNaam (){ if($this->Autorisaties_model->check_autorisatie($this->userrole, WRITER) <=0) return; $partID = $this->clean_input('id'); $naam = $this->clean_input('naam'); $data=array("partituur_naam" =>$naam); $this->Partituurs_model->update_record($data,$partID); } }