private function loadFormattedReferences($arrEyeSchedule) { if (!isset($locale)) { $locale = self::getApplication()->getLocale(); } foreach ($arrEyeSchedule as &$item) { $date = strtotime($item['date']); $item['formatted_date'] = $locale->getFormattedTime($date); $EyeExamRequestID = $item['eyeExamRequestID']; if ($EyeExamRequestID !== null) { $EyeExamRequestItem = EyeExamRequest::getInstanceByID($EyeExamRequestID, ActiveRecordModel::LOAD_DATA); $EyeExamRequestItem->getSpecification(); $EyeExamRequestItemAsArray = $EyeExamRequestItem->toArray(); $eyeExamRequest = array(); $eyeExamRequest['ID'] = $EyeExamRequestItemAsArray['ID']; $eyeExamRequest['date'] = $EyeExamRequestItemAsArray['date']; $eyeExamRequest['time'] = $EyeExamRequestItemAsArray['time']; if (isset($EyeExamRequestItemAsArray['byHandle'])) { $specialFields = array(); foreach ($EyeExamRequestItemAsArray['byHandle'] as $key => $value) { $fieldName = $value['EavField']['name']; $specialFields[$fieldName] = $value['value']; } $eyeExamRequest['specialFields'] = $specialFields; } $item['EyeExamRequest'] = $eyeExamRequest; } } return $arrEyeSchedule; }
public function send() { if (!$this->buildValidator()->isValid()) { return new ActionRedirectResponse('EyeExam', 'index'); } $eyeExamScheduleID = $this->request->get('time'); // this field is used for passing ID $eyeExamSchedule = EyeExamSchedule::getInstanceByID('EyeExamSchedule', $eyeExamScheduleID, ActiveRecord::LOAD_DATA); $requestDate = $eyeExamSchedule->date->get(); $requestTime = $eyeExamSchedule->time->get(); $eyeExamRequest = EyeExamRequest::getNewInstance(); $eyeExamRequest->date->set(strtotime($requestDate)); // does it still needed in DB?? $eyeExamRequest->time->set($requestTime); // does it still needed in DB?? // custom fields $eyeExamRequest->getSpecification()->loadRequestData($this->request); $eyeExamRequest->save(); $eyeExamSchedule->setFieldValue('eyeExamRequestID', $eyeExamRequest); $eyeExamSchedule->save(); $email = new Email($this->application); $email->setTemplate('module/eye-exam/eyeExam/eyeExamRequestNotify'); $email->setTo($this->config->get('NOTIFICATION_EMAIL'), $this->config->get('STORE_NAME')); $email->set('date', $requestDate); $email->set('time', $requestTime); $email->set('doctorName', $eyeExamSchedule->doctorName->get()); $email->send(); $response = new ActionResponse(); $response->set('date', $requestDate); $response->set('time', $requestTime); $this->addBreadCrumb($this->translate('_title_lang'), $this->router->createUrl(array('controller' => 'EyeExam'))); $this->addBreadCrumb($this->translate('_form_sent'), ''); return $response; }