public function lijst($parameters) { $starget = new securitytarget(); $starget->setId('voorinschrijving_lijst'); if (!myacl::isAllowed(myauth::getCurrentuser(), $starget, 'view')) { return; } $template = new ui($this); $uurModel = new uurModel(); $ingeschrevenModel = new ingeschrevenModel(); $trajectModel = new trajectModel(); $userModel = new userModel(); $form = new form($parameters); $select = new selectField('wat', '', ''); $select->addOption(new selectoptionField('Alles', '9990')); $daggroup = new selectoptgroupField('Dagen'); $daggroup->addOption(new selectoptionField('Zaterdag', '6661')); $daggroup->addOption(new selectoptionField('Zondag', '4442')); $select->addOptgroup($daggroup); $trajecten = $trajectModel->get(); $trajectgroup = new selectoptgroupField('Trajecten'); foreach ($trajecten as $tr) { $trajectgroup->addOption(new selectoptionField($tr->getName(), 888 . $tr->getId())); } $select->addOptgroup($trajectgroup); $typegroup = new selectoptgroupField('Type'); $typegroup->addOption(new selectoptionField('Personeel', '1114')); $typegroup->addOption(new selectoptionField('VIP', '1115')); $select->addOptgroup($typegroup); $uren = $uurModel->get(); $uurgroup = new selectoptgroupField('Uren - Zaterdag'); $uurgroup2 = new selectoptgroupField('Uren - Zondag'); foreach ($uren as $uur) { if ($uur->getDag() == 1) { $uurgroup->addOption(new selectoptionField($uur->getUur(), 777 . $uur->getId())); } else { $uurgroup2->addOption(new selectoptionField($uur->getUur(), 555 . $uur->getId())); } } $select->addOptgroup($uurgroup); $select->addOptgroup($uurgroup2); $form->addField($select); $template->assign('form', $form); $terug = new pagerequest(1); $template->assign('terug', $terug); if (!$form->isSent()) { $wat = 9990; } else { $wat = $form->getFieldvalue('wat'); } $mode = substr($wat, 0, 3); $modevalue = substr($wat, 3); if ($mode == 999 || $mode == 888) { $dag = 0; } elseif ($mode == 777 || $mode == 666) { $dag = 1; } elseif ($mode == 555 || $mode == 444) { $dag = 2; } if ($dag == 0) { $lijst[0]['dag'] = 'Zaterdag'; $lijst[1]['dag'] = 'Zondag'; } elseif ($dag == 1) { $lijst[0]['dag'] = 'Zaterdag'; } elseif ($dag == 2) { $lijst[1]['dag'] = 'Zondag'; } foreach ($lijst as $dag => $lijstelement) { $dag++; if ($mode == 888) { $uurCond = array('AND' => array('dag' => array('mode' => '=', 'value' => $dag), 'trajectid' => array('mode' => '=', 'value' => $modevalue))); } elseif ($mode == 777 || $mode == 555) { $uurCond = array('AND' => array('id' => array('mode' => '=', 'value' => $modevalue))); } else { $uurCond = array('AND' => array('dag' => array('mode' => '=', 'value' => $dag))); } $uren = $uurModel->get($uurCond); foreach ($uren as $uur) { $tempuur = array(); $tempuur['uur'] = $uur; $gasten = $ingeschrevenModel->getfromUurid($uur->getId()); $tempuur['aantal'] = 0; foreach ($gasten as $gast) { $tempgast = array(); $tempgast['gast'] = $gast; if ($mode == 111) { if ($gast->getUserid() != $modevalue) { continue; } } if ($gast->getRegistrationtime() > time() - 60 * 60 * 24) { $tempgast['new'] = 'true'; } else { $tempgast['new'] = 'false'; } $sameip = $ingeschrevenModel->getfromIpaddress($gast->getIpaddress()); if (count($sameip) > 1) { $tempgast['sameip']['aantal'] = count($sameip); $tempgast['sameip']['wie'] = $sameip; $showrequest = new ajaxrequest('myvoorinschrijving', 'showsameip', array('id' => $gast->getId())); $hiderequest = new ajaxrequest('myvoorinschrijving', 'hidesameip', array('id' => $gast->getId())); $tempgast['sameip']['showrequest'] = $showrequest; $tempgast['sameip']['hiderequest'] = $hiderequest; } else { $tempgast['sameip'] = 0; } $showmorerequest = new ajaxrequest('myvoorinschrijving', 'showmore', array('id' => $gast->getId())); $hidemorerequest = new ajaxrequest('myvoorinschrijving', 'hidemore', array('id' => $gast->getId())); $tempgast['showmorerequest'] = $showmorerequest; $tempgast['hidemorerequest'] = $hidemorerequest; $deleterequest = new ajaxrequest('myvoorinschrijving', 'deletegast', array('gastid' => $gast->getId())); $tempgast['deleterequest'] = $deleterequest; $user = $userModel->getfromId($gast->getUserid()); $tempgast['user'] = $user[0]; $tempuur['aantal'] += $gast->getAantal(); $tempuur['gasten'][] = $tempgast; } if (count($tempuur['gasten']) > 0) { if (!isset($lijst[$dag - 1]['trajecten'][$uur->getTrajectid()]['traject'])) { $traject = $trajectModel->getfromId($uur->getTrajectid()); $lijst[$dag - 1]['trajecten'][$uur->getTrajectid()]['traject'] = $traject[0]; } $lijst[$dag - 1]['trajecten'][$uur->getTrajectid()]['uren'][] = $tempuur; } } } foreach ($lijst as $id => $dag) { if (count($dag['trajecten']) == 0) { unset($lijst[$id]); } } $template->assign('lijst', $lijst); $this->response->assign($this->self, 'innerHTML', $template->fetch('myvoorinschrijving_lijst.tpl')); }
public function adddoktervanwacht($parameters = array()) { $view = new ui($this); if ($parameters['history'] != 'history') { $this->response->addWaypoint('mydoktervanwacht', 'adddoktervanwacht', 'adddoktervanwacht', array('specid' => $parameters['specid'], 'startofmonth' => $parameters['startofmonth'], 'endofmonth' => $parameters['endofmonth'])); } $form = new form($parameters); $form->addField(new hiddenField('specid', $parameters['specid'])); $select = new selectField('dokter', 'Dokter'); $wdokterModel = new wdokterModel(); $specmodel = new wdokterspecialismeModel(); $maindocs = $wdokterModel->getfromSpecialisme($parameters['specid']); $mainspec = $specmodel->getfromId($parameters['specid']); $mainoptgroup = new selectoptgroupField($mainspec[0]->getName()); foreach ($maindocs as $maindok) { $mainoptgroup->addOption(new selectoptionField('Dr. ' . $maindok->getNaam() . ' ' . $maindok->getVoornaam(), $maindok->getId())); } $select->addOptgroup($mainoptgroup); $specs = $specmodel->get(array(), array('fields' => array('name'), 'type' => 'ASC')); foreach ($specs as $spec) { if ($spec->getId() != $parameters['specid']) { $tmp = new selectoptgroupField($spec->getName()); $tmpdocs = $wdokterModel->getfromSpecialisme($spec->getId()); foreach ($tmpdocs as $tmpdok) { $tmp->addOption(new selectoptionField('Dr. ' . $tmpdok->getNaam() . ' ' . $tmpdok->getVoornaam(), $tmpdok->getId())); } $select->addOptgroup($tmp); } } $form->addField($select); $form->addField(new datepickerField('start', 'Start', true, mktime(0, 0, 0, date('m', $parameters['start']), date('d', $parameters['start']), date('Y', $parameters['start'])), array('required'))); $form->addField(new datepickerField('stop', 'Stop', true, mktime(23, 59, 0, date('m', $parameters['start']), date('d', $parameters['start']), date('Y', $parameters['start'])), array('required'))); $startofmonth = isset($parameters['startofmonth']) ? $parameters['startofmonth'] : mktime(00, 00, 00, date('m'), 01, date('Y')); $endofmonth = isset($parameters['endofmonth']) ? $parameters['endofmonth'] : mktime(00, 00, 00, date('m') + 1, 01, date('Y')) - 1; for ($i = $startofmonth; $i < $endofmonth; $i += 86400) { $boxes[$i]['name'] = date('d/m/Y', $i); $boxes[$i]['selected'] = false; } $form->addField(new checkboxgroupField('day', 'Dag', $boxes)); $form->addField(new hiddenField('startofmonth', $startofmonth)); $form->addField(new hiddenField('endofmonth', $endofmonth)); if ($form->validate()) { if ($form->getFieldvalue('start') < $form->getFieldvalue('stop')) { $wachtdokterModel = new wachtdokterModel(); $start = $form->getFieldvalue('start'); $stop = $form->getFieldvalue('stop'); // Overlap //contained $contained = array('AND' => array(array('start' => array('mode' => '<', 'value' => $start)), array('stop' => array('mode' => '>', 'value' => $stop)))); //stop after start $stopstart = array('AND' => array(array('start' => array('mode' => '<', 'value' => $start)), array('stop' => array('mode' => '>', 'value' => $start)))); //start before stop $startstop = array('AND' => array(array('start' => array('mode' => '<', 'value' => $stop)), array('stop' => array('mode' => '>', 'value' => $stop)))); $big = array('AND' => array(array('start' => array('mode' => '>', 'value' => $start)), array('stop' => array('mode' => '<', 'value' => $stop)))); $timecond = array('OR' => array($contained, $startstop, $stopstart, $big)); $speccond = array('specialisme' => array('mode' => '=', 'value' => $parameters['specid'])); $cond = array('AND' => array($speccond, $timecond)); $test = $wachtdokterModel->get($cond); if (count($test) > 0) { $this->response->assign('formerror_' . $form->getId(), 'innerHTML', 'Er mogen geen overlappingen zijn.', true); $overlap = true; } else { $wachtdokter = new wachtdokterObject(); $wachtdokter->setDokter($form->getFieldvalue('dokter')); $wachtdokter->setStart($form->getFieldvalue('start')); $wachtdokter->setStop($form->getFieldvalue('stop')); $wachtdokter->setSpecialisme($form->getFieldvalue('specid')); try { $wachtdokterModel->save($wachtdokter); } catch (Exception $e) { $flash = new popupController(); $flash->createflash(array('name' => 'erroredit', 'type' => 'error', 'content' => 'De gegevens werden niet aangepast! Raadpleeg de informaticadienst.')); } $flash = new popupController(); $flash->createflash(array('name' => 'flash_edit_' . $parameters['-gridid-'], 'type' => 'success', 'content' => 'De gegevens zijn goed aangepast.')); $this->showspecdetails($parameters); } } else { $this->response->assign('formerror_' . $form->getId(), 'innerHTML', 'Einduur moet na het beginuur liggen.', true); } } elseif (!$form->isSent()) { $view->assign('form', $form); $output = array(); $closerequest = new ajaxrequest('mydoktervanwacht', 'showspecdetails', array('specid' => $parameters['specid'], 'startofmonth' => $parameters['startofmonth'], 'endofmonth' => $parameters['endofmonth'])); $view->assign('closerequest', $closerequest); $wachtdokterModel = new wachtdokterviewModel(); $speccond = array('specialisme' => array('mode' => '=', 'value' => $parameters['specid'])); for ($i = $startofmonth; $i < $endofmonth; $i += 86400) { $start = array('start' => array('mode' => 'BETWEEN', 'value' => $i + 1, 'topvalue' => $i + 86400 - 1)); $stop = array('stop' => array('mode' => 'BETWEEN', 'value' => $i, 'topvalue' => $i + 86400 - 1)); $cond = array('OR' => array($start, $stop)); $dokters = $wachtdokterModel->get(array('AND' => array($speccond, $cond))); $tmp = array(); $tmp['dokters'] = $dokters; $tmp['start'] = $i; $output[] = $tmp; } $view->assign('list', $output); $view->assign('specialisme', $mainspec[0]); $this->response->assign($this->self, 'innerHTML', $view->fetch('mydoktervanwacht_edit.tpl')); } else { return false; } }