ui = $ui; $this->t = $t; $this->post = $hooks->wrap( $post ); $this->sms = $hooks->wrap( $sms ); $this->remindersCommand = $hooks->wrap( $remindersCommand ); $this->remindersCommandSms = $hooks->wrap( $remindersCommandSms ); $this->remindersCommandLog = $hooks->wrap( $remindersCommandLog ); $this->remindersQuery = $hooks->wrap( $remindersQuery ); $this->remindersQueryLog = $hooks->wrap( $remindersQueryLog ); $this->uri = $uri; $this->layout = $layout; $this->request = $request; $this->self = $hooks->wrap( $this ); $this->employeesPresenter = $hooks->wrap( $employeesPresenter ); $this->usersPresenter = $hooks->wrap( $usersPresenter ); } public function breadcrumbs() { $ret = array(); $ret['admin'] = array( 'admin', '__Administration__' ); $ret['admin/reminders'] = array( 'admin/reminders', '__Reminders__' ); return $ret; } public function header() { $ret = '__Review Reminders__'; return $ret; } public function post() { $type = $this->post->get('type'); $date = $this->post->get('date'); $slug = $this->request->getSlug(); $params = array( 'date' => $date, 'type' => $type ); $to = $this->uri->makeUrl( array($slug, $params) ); $ret = array( $to, NULL ); return $ret; } public function postSend() { $params = $this->request->getParams(); $date = isset($params['date']) ? $params['date'] : $this->t->setNow()->formatDateDb(); $type = isset($params['type']) ? $params['type'] : SH4_Reminders_Model::RANGE_DAILY; // reminders $reminders = $this->remindersQuery->find( $type, $date ); if( in_array($type, [SH4_Reminders_Model::RANGE_DAILY_SMS]) ){ $command = $this->remindersCommandSms; } else { $command = $this->remindersCommand; } foreach( $reminders as $reminder ){ if( $reminder->log ){ $this->remindersCommandLog->delete( $reminder->log ); } $command->send( $reminder ); } $to = 'admin/reminders/review'; $params = array( 'date' => $date, 'type' => $type ); $to = $this->uri->makeUrl( array($to, $params) ); $msg = '__Reminders Sent__'; $ret = array( $to, $msg ); return $ret; } public function postClear() { $params = $this->request->getParams(); $date = isset($params['date']) ? $params['date'] : $this->t->setNow()->formatDateDb(); $type = isset($params['type']) ? $params['type'] : SH4_Reminders_Model::RANGE_DAILY; // reminders $reminders = $this->remindersQuery->find( $type, $date ); foreach( $reminders as $reminder ){ if( $reminder->log ){ $this->remindersCommandLog->delete( $reminder->log ); } } $to = 'admin/reminders/review'; $params = array( 'date' => $date, 'type' => $type ); $to = $this->uri->makeUrl( array($to, $params) ); $msg = '__Logs Cleared__'; $ret = array( $to, $msg ); return $ret; } public function postClearSelected() { $params = $this->request->getParams(); $date = isset($params['date']) ? $params['date'] : $this->t->setNow()->formatDateDb(); $type = isset($params['type']) ? $params['type'] : SH4_Reminders_Model::RANGE_DAILY; $employeeIds = $this->post->get('employee'); $to = 'admin/reminders/review'; $params = array( 'date' => $date, 'type' => $type ); $to = $this->uri->makeUrl(array($to, $params)); if (!$employeeIds) { $ret = array($to, ''); return $ret; } // reminders $reminders = $this->remindersQuery->find($type, $date); foreach ($reminders as $reminder) { if (!$reminder->log) { continue; } $thisEmployeeId = $reminder->employee->getId(); if (!in_array($thisEmployeeId, $employeeIds)) { continue; } $this->remindersCommandLog->delete($reminder->log); } $msg = '__Logs Cleared__'; $ret = array($to, $msg); return $ret; } public function render() { $params = $this->request->getParams(); $date = isset($params['date']) ? $params['date'] : $this->t->setNow()->formatDateDb(); $type = isset($params['type']) ? $params['type'] : SH4_Reminders_Model::RANGE_DAILY; // post to $slug = $this->request->getSlug(); $to = $this->uri->makeUrl( $slug ); $params = array( 'date' => $date, 'type' => $type ); $toSend = $this->uri->makeUrl( array($slug . '/send', $params) ); $toClear = $this->uri->makeUrl( array($slug . '/clear', $params) ); $toClearSelected = $this->uri->makeUrl( array($slug . '/clearselected', $params) ); // reminders $reminders = $this->remindersQuery->find( $type, $date ); // reminder logs $notSent = array(); $logs = array(); foreach( $reminders as $reminder ){ if( $reminder->log ){ $logs[ $reminder->log->id ] = $reminder->log; } else { $notSent[] = 1; } } ob_start(); ?>
__No Reminders__
layout ->setContent( $ret ) ->setHeader( $this->self->header() ) ->setBreadcrumb( $this->self->breadcrumbs() ) ; $ret = $this->layout->render(); return $ret; } }