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 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) ); // 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) ); ?>
__Employee__ __User__ __Shifts__ __Sent__
employeesPresenter->presentTitle( $r->employee ); ?> range, [SH4_Reminders_Model::RANGE_DAILY_SMS]) ) : ?> sms->getEmployeePhone( $r->employee->getId() ); ?> __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; } }