load->model($models); $this->rootpath = str_replace('/public', '', $_SERVER['DOCUMENT_ROOT']); if ( ! $this->check_online_status() ) { echo json_encode( array('offline' => TRUE) ); die; };// if } public function index(){ } function getActiviteitenPerPijler(){ //TODO haal alleen de activiteiten op die nog niet zijn opgenomen in de partituur // inclusief eigen activiteiten $partID= $this->uri->segment(4); $pijler = $this->uri->segment(5); $actSet= $this->ModActiviteiten->get_partituur_activiteiten_per_pijler($partID, $pijler); if ($actSet) { // dus hieronder moeten alle partact worden vervangen door activiteit zelf!! foreach ($actSet as $activiteit) { $activiteit->actKosten = $this->ModKosten->get_kosten_per_activiteit($activiteit->id); $activiteit->actDoelgroepen = $this->ModActDoel->get_doelgroepen_per_act($activiteit->id); $activiteit->actHulpmiddelen = $this->Modhulpmiddelen->get_hulpmiddelenlijst_per_activiteit($activiteit->id); }; }; echo json_encode($actSet); } function getPlanning (){ // $partituurID kan null zijn! id wordt meegegeven in de url . als de id 0 is moet de meest recente partituur opgehaald worden $partID= $this->partituurid; $where=array("partituur_actief" => 1, 'partituur_organisatie_id' =>$this->globorgid); $partituur= $this->Partituurs_model->get_records_where($where,TRUE,FALSE); $partID=$partituur->id; $Npijlers=$this->ModPartPijlers->get_pijlers_per_partituur($partID); foreach($Npijlers as $pijler){ $pijler->start=date('d-m-Y', strtotime($pijler->start)); $pijler->eind=date('d-m-Y', strtotime($pijler->eind)); $pijler->taakLijst = $this->Modpartactiviteiten->get_taaklijst($pijler->id); if ($pijler->taakLijst ) { foreach($pijler->taakLijst as $taak){ $taak->start=date('d-m-Y', strtotime($taak->start)); $taak->eind=date('d-m-Y', strtotime($taak->eind)); }; }; // if not empty } // lijst van medewerkers if ($this->globisbg) { $medewerkers = $this->Users_model->get_users_by_bg($this->globorgid);} else {$medewerkers = $this->Users_model->get_users_by_organisatie($this->globorgid); }; // als sprake is van BG moeten per school de medewerkers worden opgehaald $fasen = $this->Modfases->get_fases(); echo json_encode(array('partituur' =>$partituur, 'taken' => $Npijlers, 'fasen' =>$fasen, 'medewerkers' => $medewerkers, 'canWrite' =>$this->writer, 'canWriteOnParent'=> true, 'selectedRow' =>1)); } function getGantt($partID) { // de datum wordt in miliseconden sinds 1970 verwacht $pijlers = $this->ModPartPijlers->get_pijlers_per_partituur($partID); $info=array(); foreach ($pijlers as $pijler){ array_push($info, $pijler); $pijleracts =$this->Modpartactiviteiten->get_activiteiten_per_partituur($partID, $pijler->id); if (! empty($pijleracts)) { foreach ($pijleracts as $act){ array_push($info,$act); }; }; // if }; // zet alle data om in format dd-mm-yyyy foreach($info as $entry){ $entry->start=date('d-m-Y', strtotime($entry->start)); $entry->end=date('d-m-Y', strtotime($entry->end)); } return $info; }// einde function getGanttInfo function getTaakInfo(){ $taakid=$this->uri->segment(4); $taak =$this->Modpartactiviteiten->get_taak_info($taakid); $where=array('id' =>$taak->afhankelijkvanID); $taak->afhankelijkvanNaam =$this->Modpartactiviteiten->get_fieldvalue($where,'naam'); //get de hulpmiddelen bij deze taak $taak->hulpmiddelen=$this->ModPartActxHulpmiddel->get_hulpmiddelenlijst_per_activiteit($taakid, false); // get een lijst van orgusers (inclusief fullname) waaruit de verantwoordelijke gekozen mag worden $taak->orgusers = $this->Orgusers_model->get_org_users($this->globorgid); $taak->uitvoerenden = $this->Modpartactiviteiten->get_uitvoerenden_per_activiteit($taakid); $taak->overigeusers = $this->Modpartactiviteiten->get_overige_users_per_activiteit($taakid, $this->globorgid); $taak->doelgroepen = $this->ModPartActxDoelgroep->get_doelgroepen_per_act($taakid); $taak->kosten = $this->ModPartActKosten->get_kosten_per_activiteit($taakid); //get de documenten/notes bij deze activiteit $notes = $this->ModPortfolio->get_notes($taakid); echo json_encode(array('taak'=>$taak, 'notes'=>$notes)); } function DownloadNote (){ $this->load->helper('download'); $docid = $this->uri->segment(4); $original='test'; $file = $this->ModPortfolio->get_record_by_id($docid); $original = $file->docnaam; $data = file_get_contents("../docs/".$file->hashnaam.$file->doc_extension); force_download($original, $data); } function DeleteNote(){ $nID = $this->uri->segment(4); $file = $this->ModPortfolio->get_record_by_id($nID); if ($file) { if ($file->hashnaam) { $this->load->helper("file"); unlink('../docs/'.$file->hashnaam.$file->doc_extension); }; }; $this->ModPortfolio->delete_record($nID); } function addTaak (){ //krijgt via submitData 4 vars binnen: partituurID, part-pijlerID, newTaakID, positie ('voor of na") en volgorde (dwz voor of na dit sequentienummer) // moet volgorde van alle activiteiten (onder een pijler) zo aanpassen dat die weer klopt // gegeven de nieuwe pijler. // moet de hele partituur (zie get_gantt ) weer teruggeven $actID = $this->clean_input('newTaakID'); $partID = $this->clean_input('partituurID'); $ppijlerID = $this->clean_input('pijlerID'); $activiteit = $this->ModActiviteiten->get_record_by_id($actID, FALSE, TRUE); $partpijler = $this->ModPartPijlers->get_record_by_id($ppijlerID, FALSE,TRUE); $seq = $this->input->post('selSeq'); if ($this->clean_input('positie') == 'na') {$seq = $seq + 1; } else {$seq = $seq - 1;}; $data = array('sequence' => $seq, 'partituurID' => $partID, 'pijlerID' => $ppijlerID, 'activiteitID' => $actID, 'naam' => $activiteit->naam, 'omschrijving' => $activiteit->omschrijving, 'start' =>$partpijler->start, 'eind' =>$partpijler->eind, 'duur' => $activiteit->duur, 'niveau' =>$activiteit->inclusiviteitsniveau, 'fase' =>$activiteit->faseID, 'bronID' => $activiteit->bronID, 'email_dagen' =>$activiteit->email_dagen, 'email_naar_pl' => $activiteit->email_pleider, 'email_naar_vw' => $activiteit->email_verantwoordelijke); $newID = $this->Modpartactiviteiten->insert_record($data); // roep alle taken binnen de partpijler op en pas de sequentiewaarde aan $partactiviteiten =$this->Modpartactiviteiten->get_id_lijst($partID,$ppijlerID); if ($partactiviteiten){ $counter = 10; foreach($partactiviteiten as $acti) { $data=array("sequence" => $counter); $counter = $counter + 10; $this->Modpartactiviteiten->update_record($data, $acti->id); } }; // maak partactxkosten aan $actKosten = $this->ModKosten->get_records_where(array('activiteitID' =>$activiteit->id) ); if ($actKosten){ foreach ($actKosten as $actKost){ $data=array('activiteitID' =>$newID, 'omschrijving' =>$actKost->omschrijving, 'kosten' => $actKost->kosten); $this->ModPartActKosten->insert_record($data); } }; // maak partactxresultaten aan $data =array('activiteitID' =>$newID, 'omschrijving' =>$activiteit->resultaatomschrijving); $this->ModPartActResultaten->insert_record($data); // maak partactxdoelgroep aan $temDoelgroepen = $this->ModActDoel->get_records_where(array("activiteitID" => $activiteit->id)); if ($temDoelgroepen){ foreach($temDoelgroepen as $doelgroep){ $data= array('activiteitID' => $newID, 'doelgroepID' => $doelgroep->doelgroepID); $this->ModPartActxDoelgroep->insert_record($data); } } //maak partactxhulpmiddelen aan $temHulpmiddelen = $this->ModActHulp->get_records_where(array("actID" => $activiteit->id)); if ($temHulpmiddelen){ foreach ($temHulpmiddelen as $temHulpmiddel){ $data=array('actID' =>$newID, 'hulpID' => $temHulpmiddel->hulpID); $this->ModPartActxHulpmiddel->insert_record($data); } }; // get de nieuwe takenlijst en return deze $Npijlers=$this->ModPartPijlers->get_pijlers_per_partituur($partID); foreach($Npijlers as $pijler){ $pijler->start=date('d-m-Y', strtotime($pijler->start)); $pijler->eind=date('d-m-Y', strtotime($pijler->eind)); $pijler->taakLijst = $this->Modpartactiviteiten->get_taaklijst($pijler->id); if ($pijler->taakLijst ) { foreach($pijler->taakLijst as $taak){ $taak->start=date('d-m-Y', strtotime($taak->start)); $taak->eind=date('d-m-Y', strtotime($taak->eind)); }; }; // if not empty } echo json_encode( array('taken' =>$Npijlers)); } function RemoveTaak(){ $partActID = $this->clean_input('partActID'); // delete partActKosten partActResultaten partActdoelgroep // partactHulpmiddel partActOrgusers $where = array('ActiviteitID' =>$partActID); $this->ModPartActKosten -> delete_record_where($where) ; $this->ModPartActResultaten ->delete_record_where($where) ; $this->ModPartActxDoelgroep->delete_record_where($where); $this->Modpartactxorgusers->delete_record_where($where); $where = array('activiteitID' =>$partActID); $this->ModAgenda->delete_record_where($where); $where = array('actID ' =>$partActID); $this->ModPartActxHulpmiddel->delete_record_where($where); $this->Modpartactiviteiten->delete_record($partActID); echo(true); } function AddHulpmiddel(){ $actID = $this->uri->segment(4); $hulpID= $this->uri->segment(5); $data = array('actID' => $actID, 'hulpID' =>$hulpID); $newID = $this->ModPartActxHulpmiddel->insert_record($data); $data = $this->ModPartActxHulpmiddel->get_hulpmiddelenlijst_per_activiteit($actID,$hulpID); echo json_encode($data); } function RemoveHulpmiddel(){ $hID = $this->uri->segment(4); $this->ModPartActxHulpmiddel->delete_record($hID); } function SaveTaak(){ $taakID = $this->clean_input("taakID"); $data=array( "start" => date2mysql($this->clean_input("startdatum")), "eind" => date2mysql($this->clean_input("einddatum")), "duur" => $this->clean_input("duur"), "afhankelijkvanID" => $this->clean_input("afhankelijkvan"), "gereed " => $this->clean_input("gereed") ); $this->Modpartactiviteiten->update_record($data,$taakID); } function SaveTaakData (){ $taakID = $this->input->post("id"); $data = array( "start" => date2mysql($this->clean_input("start")), "eind" => date2mysql($this->clean_input("eind")), "duur" => $this->clean_input("duur") ); $this->Modpartactiviteiten->update_record($data,$taakID); } function SavePerc(){ $data = array("gereed" =>$this->clean_input("gereed")); $taakID = $this->clean_input("taakID"); $this->Modpartactiviteiten->update_record($data,$taakID); } function SavePijlerData() { $pijlerID = $this->clean_input('id'); $data = array( "start" => date2mysql($this->clean_input("start")), "eind" => date2mysql($this->clean_input("eind")) ); $this->ModPartPijlers-> update_record($data,$pijlerID); } function SaveTaakDetails(){ $taakID = $this->clean_input("taakID"); $data=array("omschrijving" => textarea2html($this->clean_input("omschrijving")), "opmerkingen" => textarea2html($this->clean_input("opmerkingen")), "gereed" => $this->clean_input("gereed"), "verantwoordelijke" => $this->clean_input("verantwoordelijke"), "email_dagen" => $this->clean_input("email_dagen"), "email_naar_pl" => $this->clean_input("email_naar_pl"), "email_naar_vw" => $this->clean_input("email_naar_vw"), "email_adres" => $this->clean_input("email_adres") ); $this->Modpartactiviteiten->update_record($data,$taakID); } function RemoveDoelgroep(){ $dID = $this->uri->segment(4); $this->ModPartActxDoelgroep->delete_record($dID); } function getDoelgroepen(){ //haal de doelgroepen op die nog niet in de activiteit zijn opgenomen $actID = $this->uri->segment(4); $result= $this->ModPartActxDoelgroep->get_other_doelgroepen($actID); echo json_encode($result); } function AddDoelgroep(){ $dID = $this->uri->segment(4); $actID = $this->uri->segment(5); $data =array("activiteitID" => $actID, "doelgroepID" =>$dID ); $newID = $this->ModPartActxDoelgroep->insert_record($data); $newRecord = $this->ModPartActxDoelgroep->get_doelgroep($newID); echo json_encode($newRecord); } function newKostenregel(){ $actID = $this->uri->segment(4); $data = array("activiteitID" => $actID); $newID = $this->ModPartActKosten->insert_record($data); $newRecord = $this->ModPartActKosten->get_kosten_per_regel($newID); echo json_encode($newRecord); } function SaveKosten(){ $kID = $this->clean_input("id"); $where=array("omschrijving" =>$this->clean_input("omschrijving"), "kosten" =>bedrag2mysql($this->clean_input("kosten")) ); $this->ModPartActKosten->update_record($where,$kID); } function DeleteKost(){ $kID = $this->uri->segment(4); $this->ModPartActKosten->delete_record($kID); } function SaveResultaten(){ $actID=$this->clean_input('id'); $where = array('activiteitID' =>$actID); $data = array("resultaat"=>$this->clean_input('resultaat')); $resID = $this->ModPartActResultaten->get_fieldvalue($where, 'id'); if ($resID) { $this->ModPartActResultaten->update_record_where($data, $where); } else{ $data= array('activiteitID' =>$actID, "resultaat"=>$this->clean_input('resultaat')); $this->ModPartActResultaten->insert_record($data); } } function saveSequentie(){ $seqlijst= $this->clean_input("seqlijst"); foreach ($seqlijst as $seq2){ $data=array("sequence" =>$seq2['seq']); $this->Modpartactiviteiten->update_record($data, $seq2['id']); } } function addUitvoerende(){ $actID = $this->uri->segment(4); $orguserID = $this->uri->segment(5); $data=array("activiteitID" => $actID, "orguserID" => $orguserID); $this->Modpartactxorgusers->insert_record($data); } function addVerantwoordelijke(){ $actID = $this->uri->segment(4); $orguserID = $this->uri->segment(5); $data = array("verantwoordelijke" => $orguserID); $this->Modpartactiviteiten->update_record($data,$actID); } function removeUitvoerende(){ $actID = $this->uri->segment(4); $orguserID = $this->uri->segment(5); $data=array("activiteitID" => $actID, "orguserID" => $orguserID); $this->Modpartactxorgusers->delete_record_where($data); } function removeVerantwoordelijke(){ $actID = $this->uri->segment(4); $data = array("verantwoordelijke"=>null); $this->Modpartactiviteiten->update_record($data,$actID); } function MinMaxDag(){ $partactID = $this->uri->segment(4); $partact = $this->Modpartactiviteiten->get_record_by_id($partactID); $partpijler = $this->ModPartPijlers->get_record_by_id($partact->pijlerID) ; $minStart = $partpijler->start; $maxEind = $partpijler->eind; if ($partact->duur) {$dagen = $partact->duur;} else {$dagen = 1;}; $maxStart =DATE("Y-m-d", strtotime($maxEind.' - '.$dagen.' days ') ); $minEind = DATE("Y-m-d", strtotime($partpijler->start.' + '.$dagen.' days ') ); $agendaMinMax=$this->ModAgenda->find_minmax_dag($partpijler->id, $partact->id); if (!empty($agendaMinMax )) { if (isset($agendaMinMax[0]->mindag)){ if (DATE("Y-m-d", strtotime($agendaMinMax[0]->mindag)) < $maxStart && DATE("Y-m-d", strtotime($agendaMinMax[0]->mindag)) >= $minStart) {$maxStart= DATE("Y-m-d", strtotime($agendaMinMax[0]->mindag)) ;}; }; if (isset($agendaMinMax[0]->maxdag)) { if ( DATE("Y-m-d",Strtotime($agendaMinMax[0]->maxdag)) > $minEind && DATE("Y-m-d",Strtotime($agendaMinMax[0]->maxdag)) <= $maxEind) {$minEind =DATE("Y-m-d",Strtotime($agendaMinMax[0]->maxdag));}; }; }; echo json_encode(array("minStart" =>$minStart, "maxStart" =>$maxStart, "minEind" => $minEind, "maxEind" =>$maxEind)); } function MinMaxDagVoorPijler(){ $pijlerID = $this->uri->segment(4); $uitAct = $this->Modpartactiviteiten->get_minmax_activiteiten($pijlerID); $partituur = $this->Partituurs_model->get_record_by_id($this->partituurid); $minStart = $partituur->partituur_start; $maxEind =$partituur->partituur_eind; $maxStart = new DateTime($maxEind); $maxStart->modify("-1 day"); $maxStart= $maxStart->format("Y-m-d"); $minEind = new DateTime($minStart) ; // was maxStart moet worden minStart + 1 $minEind->modify('+1 day'); $minEind = $minEind->format("Y-m-d"); if ($uitAct) { if($uitAct->minStart) {$maxStart = $uitAct->minStart;}; if($uitAct->maxEind) {$minEind = $uitAct->maxEind;}; }; $agendaMinMax=$this->ModAgenda->find_minmax_dag($pijlerID); if (!empty($agendaMinMax )) { if (isset($agendaMinMax[0]->mindag)){ if (DATE("Y-m-d", strtotime($agendaMinMax[0]->mindag)) < $maxStart && DATE("Y-m-d", strtotime($agendaMinMax[0]->mindag)) >= $minStart) {$maxStart= DATE("Y-m-d", strtotime($agendaMinMax[0]->mindag)) ;}; }; if (isset($agendaMinMax[0]->maxdag)) { if ( DATE("Y-m-d",Strtotime($agendaMinMax[0]->maxdag)) > $minEind && DATE("Y-m-d",Strtotime($agendaMinMax[0]->maxdag)) <= $maxEind) {$minEind =DATE("Y-m-d",Strtotime($agendaMinMax[0]->maxdag));}; }; }; echo json_encode(array("minStart" =>$minStart, "maxStart" =>$maxStart, "minEind" => $minEind, "maxEind" =>$maxEind)); } function LSUploadNote(){ $nID = $this->uri->segment(4); $actID = $this->uri->segment(5); $toonnaam = $this->clean_input('toonnaam'); $config['upload_path'] = '../tmp_uploads/'; $config['allowed_types'] = 'doc|docx|jpg|gif|png|pdf|txt'; $config['max_size'] = '10000'; $this->load->library('upload', $config); $uploadresult = $this->upload->do_upload(); if (!$uploadresult && !$docid){ $result = array('errors'=>json_encode($this->upload->display_errors())); }else{ if(!$uploadresult){ $result = array('errors'=>json_encode('
de gegevens zijn opgeslagen
')); }else{ //check if there is already a file (docid!=0) unlink the old file if($nID){ $file = $this->ModPortfolio->get_record_by_id($nID); if ($file) { if ($file->hashnaam) { unlink('../docs/'.$file->hashnaam.$file->doc_extension); } } } $result = array('errors'=>json_encode('uw bestand is succesvol geupload
')); $document = $this->upload->data(); $this->load->helper('string'); $newname = sha1(random_string('alnum', 16)); $data = array( 'toonnaam' => $toonnaam, 'id' => $nID, 'partactID' => $actID, 'orgID' => $this->globorgid, 'docnaam' => $document['file_name']); $data['doc_extension'] = $document['file_ext']; $data['hashnaam'] = $newname; $oldname = '../tmp_uploads/'.$document['file_name']; $newname = '../docs/'.$newname.$document['file_ext']; rename($oldname, $newname); } $nID =$this->ModPortfolio->save_record($data, $nID); } $data = array('result' =>$result, 'id'=>$nID ); $this->load->view('ijkpartituur/popups/ToonuploadNote', $data) ; } } // einde class Planning