Inheritance: extends BaseEventTypeElement
Example #1
0
 /**
  * Adds direct line phone numbers to jsvars to be used in dropdown select.
  */
 public function loadDirectLines()
 {
     $sfs = FirmSiteSecretary::model()->findAll('firm_id=?', array(Yii::app()->session['selected_firm_id']));
     $vars[] = null;
     foreach ($sfs as $sf) {
         $vars[$sf->site_id] = $sf->direct_line;
     }
     $this->jsVars['correspondence_directlines'] = $vars;
 }
Example #2
0
 public function setDefaultOptions()
 {
     if (Yii::app()->getController()->getAction()->id == 'create') {
         $this->site_id = Yii::app()->session['selected_site_id'];
         if (!($patient = Patient::model()->with(array('contact' => array('with' => array('address'))))->findByPk(@$_GET['patient_id']))) {
             throw new Exception('Patient not found: ' . @$_GET['patient_id']);
         }
         $this->re = $patient->first_name . ' ' . $patient->last_name;
         foreach (array('address1', 'address2', 'city', 'postcode') as $field) {
             if ($patient->contact->address && $patient->contact->address->{$field}) {
                 $this->re .= ', ' . $patient->contact->address->{$field};
             }
         }
         $this->re .= ', DOB: ' . $patient->NHSDate('dob') . ', Hosp No: ' . $patient->hos_num . ', NHS No: ' . $patient->nhsnum;
         $user = Yii::app()->session['user'];
         $firm = Firm::model()->with('serviceSubspecialtyAssignment')->findByPk(Yii::app()->session['selected_firm_id']);
         if ($contact = $user->contact) {
             $consultant = null;
             // only want to get consultant for medical firms
             if ($specialty = $firm->getSpecialty()) {
                 if ($specialty->medical) {
                     $consultant = $firm->consultant;
                 }
             }
             $this->footer = "Yours sincerely\n\n\n\n\n" . trim($contact->title . ' ' . $contact->first_name . ' ' . $contact->last_name . ' ' . $contact->qualifications) . "\n" . $user->role;
             if ($consultant && $consultant->id != $user->id) {
                 $this->footer .= "\nConsultant: {$consultant->contact->title} {$consultant->contact->first_name} {$consultant->contact->last_name}";
             }
             $ssa = $firm->serviceSubspecialtyAssignment;
         }
         // Look for a macro based on the episode_status
         if ($episode = $patient->getEpisodeForCurrentSubspecialty()) {
             if (!($this->macro = LetterMacro::model()->find('firm_id=? and episode_status_id=?', array($firm->id, $episode->episode_status_id)))) {
                 if ($firm->service_subspecialty_assignment_id) {
                     $subspecialty_id = $firm->serviceSubspecialtyAssignment->subspecialty_id;
                     if (!($this->macro = LetterMacro::model()->find('subspecialty_id=? and episode_status_id=?', array($subspecialty_id, $episode->episode_status_id)))) {
                         $this->macro = LetterMacro::model()->find('site_id=? and episode_status_id=?', array(Yii::app()->session['selected_site_id'], $episode->episode_status_id));
                     }
                 }
             }
         }
         if ($this->macro) {
             $this->populate_from_macro($patient);
         }
         if (Yii::app()->params['populate_clinic_date_from_last_examination'] && Yii::app()->findModule('OphCiExamination')) {
             if ($episode = $patient->getEpisodeForCurrentSubspecialty()) {
                 if ($event_type = EventType::model()->find('class_name=?', array('OphCiExamination'))) {
                     $criteria = new CDbCriteria();
                     $criteria->addCondition('event_type_id = ' . $event_type->id);
                     $criteria->addCondition('episode_id = ' . $episode->id);
                     $criteria->order = 'created_date desc';
                     $criteria->limit = 1;
                     if ($event = Event::model()->find($criteria)) {
                         $this->clinic_date = $event->created_date;
                     }
                 }
             }
         }
         if ($dl = FirmSiteSecretary::model()->find('firm_id=? and site_id=?', array(Yii::app()->session['selected_firm_id'], $this->site_id))) {
             $this->direct_line = $dl->direct_line;
             $this->fax = $dl->fax;
         }
     }
 }
Example #3
0
 /**
  * Deletes a site secretary.
  *
  * @throws CHttpException
  */
 public function actionDeleteSiteSecretary()
 {
     if (Yii::app()->request->isPostRequest) {
         if (!isset($_POST['id'])) {
             throw new CHttpException(400, 'Unable to delete Site Secretary: no ID provided');
         }
         $siteSecretary = FirmSiteSecretary::model()->findByPk($_POST['id']);
         if (!$siteSecretary) {
             throw new CHttpException(404, 'Unable to delete Site Secretary: Can not find Site Secretary');
         }
         $firmId = $siteSecretary->firm_id;
         $siteSecretary->delete();
         $this->redirect('/OphCoCorrespondence/admin/addSiteSecretary/' . $firmId);
     }
     throw new CHttpException(400, 'Invalid method for delete');
 }
 public function actionEditFirm($id)
 {
     if (!($firm = Firm::model()->findByPk($id))) {
         throw new Exception("Firm not found: {$id}");
     }
     if (!empty($_POST)) {
         $firm->attributes = $_POST['Firm'];
         if (!$firm->validate()) {
             $errors = $firm->getErrors();
         } else {
             if (!$firm->save()) {
                 throw new Exception("Unable to save firm: " . print_r($firm->getErrors(), true));
             }
             Audit::add('admin-Firm', 'edit', $firm->id);
             $this->redirect('/admin/firms/' . ceil($firm->id / $this->items_per_page));
         }
     } else {
         Audit::add('admin-Firm', 'view', $id);
     }
     $siteSecretaries = array();
     if (isset(Yii::app()->modules['OphCoCorrespondence'])) {
         $firmSiteSecretaries = new FirmSiteSecretary();
         $siteSecretaries = $firmSiteSecretaries->findSiteSecretaryForFirm($id);
         $firmSiteSecretaries->firm_id = $id;
         $siteSecretaries[] = $firmSiteSecretaries;
     }
     $this->render('/admin/editfirm', array('firm' => $firm, 'errors' => @$errors, 'siteSecretaries' => $siteSecretaries));
 }