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(); ?>
__Filter__
ui->makeInputDatepicker( 'date', NULL, $date ); ?>
'__Daily__', SH4_Reminders_Model::RANGE_WEEKLY => '__Weekly__', SH4_Reminders_Model::RANGE_MONTHLY => '__Monthly__', ); if( $this->sms->isEnabled() ){ $types[ SH4_Reminders_Model::RANGE_DAILY_SMS ] = '__Daily__' . ' ' . '__SMS__'; } ?> $label ) : ?>
employee->getId() ); $toParams[ 'type' ] = 'list'; $toParams[ 'groupby' ] = 'none'; if( SH4_Reminders_Model::RANGE_DAILY == $r->range ){ $toParams[ 'start' ] = $r->date; $toParams[ 'end' ] = $r->date; } if( SH4_Reminders_Model::RANGE_DAILY_SMS == $r->range ){ $toParams[ 'start' ] = $r->date; $toParams[ 'end' ] = $r->date; } if( SH4_Reminders_Model::RANGE_WEEKLY == $r->range ){ $start = $this->t->setDateDb( $r->date )->setStartWeek()->formatDateDb(); $end = $this->t->setDateDb( $start )->modify('+1 week')->modify('-1 day')->formatDateDb(); $toParams[ 'start' ] = $start; $toParams[ 'end' ] = $end; } if( SH4_Reminders_Model::RANGE_MONTHLY == $r->range ){ $start = $this->t->setDateDb( $r->date )->setStartMonth()->formatDateDb(); $end = $this->t->setDateDb( $start )->modify('+1 month')->modify('-1 day')->formatDateDb(); $toParams[ 'start' ] = $start; $toParams[ 'end' ] = $end; } $to = 'schedule'; $detailsLink = $this->uri->makeUrl( array($to, $toParams) ); $employeeId = $r->employee->getId(); ?>
__Employee__ __User__ __Shifts__ __Sent__
log): ?> range, [SH4_Reminders_Model::RANGE_DAILY_SMS]) ) : ?> sms->getEmployeePhone($employeeId); ?> __No Phone Number__ user ): ?> usersPresenter->presentTitle( $r->user ); ?> range, [SH4_Reminders_Model::RANGE_DAILY_SMS]) ) : ?>
user->getEmail()); ?>
__N/A__
shifts ); ?> log ) : ?> t->setDateTimeDb( $r->log->sent_on )->formatDateWithWeekday(); ?> t->formatTime(); ?> __Not Sent__

__No Reminders__

layout ->setContent( $ret ) ->setHeader( $this->self->header() ) ->setBreadcrumb( $this->self->breadcrumbs() ) ; $ret = $this->layout->render(); return $ret; } }