本文整理汇总了PHP中Helper::convertNHS2MySQL方法的典型用法代码示例。如果您正苦于以下问题:PHP Helper::convertNHS2MySQL方法的具体用法?PHP Helper::convertNHS2MySQL怎么用?PHP Helper::convertNHS2MySQL使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Helper
的用法示例。
在下文中一共展示了Helper::convertNHS2MySQL方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: convertNHS2MySQL
/**
* Convert NHS dates to MySQL format.
* Strings that do not match the NHS format are returned unchanged or are not valid dates.
*
* @param string|array $data Data containing one or more NHS dates
* @param array $fields Fields (keys) to convert (optional, if empty then all fields are checked for dates)
* @return string|array
*/
public static function convertNHS2MySQL($data, $fields = null)
{
if ($is_string = !is_array($data)) {
$data = array('dummy' => $data);
}
$list = $fields ? $fields : array_keys($data);
foreach ($list as $key) {
if (isset($data[$key])) {
// traverse down arrays to convert nested structures
if (is_array($data[$key])) {
$data[$key] = Helper::convertNHS2MySQL($data[$key], $fields);
} elseif (is_string($data[$key]) && preg_match(self::NHS_DATE_REGEX, $data[$key])) {
$check_date = date_parse_from_format('j M Y', $data[$key]);
if (checkdate($check_date['month'], $check_date['day'], $check_date['year'])) {
$data[$key] = date('Y-m-d', strtotime($data[$key]));
}
}
}
}
if ($is_string) {
return $data['dummy'];
} else {
return $data;
}
}
示例2: validate
/**
* Perform form data validation.
*
* @param $form_data
*
* @return array
*/
public function validate($form_data)
{
$errs = array();
if (!@$form_data['appointment_date']) {
$errs['appointment_date'] = 'Please enter an appointment date';
}
$appointment_date = \Helper::convertNHS2MySQL($form_data['appointment_date']);
$date_validator = new \OEDateValidator();
if (!$date_validator->validateValue($appointment_date)) {
if (strtotime($appointment_date) != false) {
$errs['appointment_date'] = 'Appointment date is not in valid format';
} else {
$errs['appointment_date'] = 'Appointment date is not a valid date';
}
} else {
$not_historical_validator = new \OEDateValidatorNotHistorical();
if ($not_historical_validator->validateValue($appointment_date) == false) {
$errs['appointment_date'] = 'Appointment date cannot be in the past';
}
}
if ($appointment_time = @$form_data['appointment_time']) {
$time_validator = new \OETimeValidator();
if (!$time_validator->validateValue($appointment_time)) {
$errs['appointment_time'] = 'Appointment time is not valid';
}
}
return $errs;
}
示例3: getTransportList
/**
* Get all the operations that have TCI requirements based on the given criteria.
*
* @param $data
* @param bool $all
*
* @return Element_OphTrOperationbooking_Operation[]
*/
public function getTransportList($data, $all = false)
{
if (!empty($data)) {
if (preg_match('/^[0-9]+ [a-zA-Z]{3} [0-9]{4}$/', @$data['date_from']) && preg_match('/^[0-9]+ [a-zA-Z]{3} [0-9]{4}$/', @$data['date_to'])) {
$date_from = Helper::convertNHS2MySQL($data['date_from']) . ' 00:00:00';
$date_to = Helper::convertNHS2MySQL($data['date_to']) . ' 23:59:59';
}
}
!isset($data['include_bookings']) and $data['include_bookings'] = 1;
!isset($data['include_reschedules']) and $data['include_reschedules'] = 1;
!isset($data['include_cancellations']) and $data['include_cancellations'] = 1;
if (!@$data['include_bookings'] && !@$data['include_reschedules'] && !@$data['include_cancellations']) {
$data['include_bookings'] = 1;
}
$criteria = new CDbCriteria();
$criteria->addCondition('transport_arranged = :zero or transport_arranged_date = :today');
$criteria->params[':zero'] = 0;
$criteria->params[':today'] = date('Y-m-d');
$criteria->params[':six'] = 6;
if (@$date_from && @$date_to) {
$criteria->addCondition('session_date >= :fromDate and session_date <= :toDate');
$criteria->params[':fromDate'] = $date_from;
$criteria->params[':toDate'] = $date_to;
}
if (!$data['include_bookings']) {
$criteria->addCondition('latestBooking.booking_cancellation_date is not null or status_id != :two');
$criteria->params[':two'] = 2;
}
if (!$data['include_reschedules']) {
$criteria->addCondition('latestBooking.booking_cancellation_date is not null or status_id = :two');
$criteria->params[':two'] = 2;
}
if (!$data['include_cancellations']) {
$criteria->addCondition('latestBooking.booking_cancellation_date is null');
}
if (!empty(Yii::app()->params['transport_exclude_sites'])) {
$criteria->addNotInCondition('site.id', Yii::app()->params['transport_exclude_sites']);
}
if (!empty(Yii::app()->params['transport_exclude_theatres'])) {
$criteria->addNotInCondition('theatre_id', Yii::app()->params['transport_exclude_theatres']);
}
$criteria->addCondition('session.date >= :today');
$criteria->addCondition('event.deleted = 0 and episode.deleted = 0');
$this->total_items = Element_OphTrOperationbooking_Operation::model()->with(array('latestBooking' => array('with' => array('session' => array('with' => array('theatre' => array('with' => 'site'))))), 'event' => array('joinType' => 'JOIN', 'with' => array('episode' => array('joinType' => 'JOIN')))))->count($criteria);
$this->pages = ceil($this->total_items / $this->items_per_page);
if (!$all) {
$criteria->limit = $this->items_per_page;
$criteria->offset = $this->items_per_page * ($this->page - 1);
}
$criteria->order = 'session_date, session_start_time, decision_date';
Yii::app()->event->dispatch('start_batch_mode');
return Element_OphTrOperationbooking_Operation::model()->with(array('latestBooking' => array('with' => array('session', 'theatre' => array('with' => 'site'), 'ward')), 'event' => array('joinType' => 'JOIN', 'with' => array('episode' => array('joinType' => 'JOIN', 'with' => array('patient' => array('with' => 'contact'), 'firm' => array('with' => array('serviceSubspecialtyAssignment' => array('with' => 'subspecialty'))))))), 'priority'))->findAll($criteria);
}
示例4: setAndValidateElementsFromData
/**
* Set the attributes of the given $elements from the given structured array.
* Returns any validation errors that arise.
*
* @param array $data
* @throws Exception
* @return array $errors
*/
protected function setAndValidateElementsFromData($data)
{
$errors = array();
$elements = array();
// only process data for elements that are part of the element type set for the controller event type
foreach ($this->event_type->getAllElementTypes() as $element_type) {
$el_cls_name = $element_type->class_name;
$f_key = CHtml::modelName($el_cls_name);
if (isset($data[$f_key])) {
$keys = array_keys($data[$f_key]);
if (is_array($data[$f_key][$keys[0]]) && !count(array_filter(array_keys($data[$f_key]), 'is_string'))) {
// there is more than one element of this type
$pk_field = $el_cls_name::model()->tableSchema->primaryKey;
foreach ($data[$f_key] as $i => $attrs) {
if (!$this->event->isNewRecord && !isset($attrs[$pk_field])) {
throw new Exception("missing primary key field for multiple elements for editing an event");
}
if ($pk = @$attrs[$pk_field]) {
$element = $el_cls_name::model()->findByPk($pk);
} else {
$element = $element_type->getInstance();
}
$element->attributes = Helper::convertNHS2MySQL($attrs);
$this->setElementComplexAttributesFromData($element, $data, $i);
$element->event = $this->event;
$elements[] = $element;
}
} else {
if ($this->event->isNewRecord || !($element = $el_cls_name::model()->find('event_id=?', array($this->event->id)))) {
$element = $element_type->getInstance();
}
$element->attributes = Helper::convertNHS2MySQL($data[$f_key]);
$this->setElementComplexAttributesFromData($element, $data);
$element->event = $this->event;
$elements[] = $element;
}
} elseif ($element_type->required) {
$errors['Event'][] = $element_type->name . ' is required';
$elements[] = $element_type->getInstance();
}
}
if (!count($elements)) {
$errors['Event'][] = 'Cannot create an event without at least one element';
}
// assign
$this->open_elements = $elements;
// validate
foreach ($this->open_elements as $element) {
$this->setValidationScenarioForElement($element);
if (!$element->validate()) {
$name = $element->getElementTypeName();
foreach ($element->getErrors() as $errormsgs) {
foreach ($errormsgs as $error) {
$errors[$name][] = $error;
}
}
}
}
//event date
if (isset($data['Event']['event_date'])) {
$event = $this->event;
$event->event_date = Helper::convertNHS2MySQL($data['Event']['event_date']);
if (!$event->validate()) {
foreach ($event->getErrors() as $errormsgs) {
foreach ($errormsgs as $error) {
$errors['Event'][] = $error;
}
}
}
}
return $errors;
}
示例5: saveComplexAttributes_Element_OphTrOperationbooking_ScheduleOperation
/**
* Set the patient unavailable periods for Element_OphTrOperationbooking_ScheduleOperation.
*
* @param $element
* @param $data
* @param $index
*/
protected function saveComplexAttributes_Element_OphTrOperationbooking_ScheduleOperation($element, $data, $index)
{
// using the ProcedureSelection widget, so not a direct field on the operation element
$element->updatePatientUnavailables(isset($data['Element_OphTrOperationbooking_ScheduleOperation']['patient_unavailables']) ? Helper::convertNHS2MySQL($data['Element_OphTrOperationbooking_ScheduleOperation']['patient_unavailables']) : array());
}
示例6: setAndValidateElementsFromData
/**
* Set the attributes of the given $elements from the given structured array.
* Returns any validation errors that arise.
*
* @param array $data
*
* @throws Exception
*
* @return array $errors
*/
protected function setAndValidateElementsFromData($data)
{
$errors = array();
$elements = array();
// only process data for elements that are part of the element type set for the controller event type
foreach ($this->event_type->getAllElementTypes() as $element_type) {
$from_data = $this->getElementsForElementType($element_type, $data);
if (count($from_data) > 0) {
$elements = array_merge($elements, $from_data);
} elseif ($element_type->required) {
$errors[$this->event_type->name][] = $element_type->name . ' is required';
$elements[] = $element_type->getInstance();
}
}
if (!count($elements)) {
$errors[$this->event_type->name][] = 'Cannot create an event without at least one element';
}
// assign
$this->open_elements = $elements;
// validate
foreach ($this->open_elements as $element) {
$this->setValidationScenarioForElement($element);
if (!$element->validate()) {
$name = $element->getElementTypeName();
foreach ($element->getErrors() as $errormsgs) {
foreach ($errormsgs as $error) {
$errors[$name][] = $error;
}
}
}
}
//event date
if (isset($data['Event']['event_date'])) {
$event = $this->event;
$event->event_date = Helper::convertNHS2MySQL($data['Event']['event_date']);
if (!$event->validate()) {
foreach ($event->getErrors() as $errormsgs) {
foreach ($errormsgs as $error) {
$errors[$this->event_type->name][] = $error;
}
}
}
}
return $errors;
}
示例7: criteria
public function criteria($count = false)
{
$criteria = new CDbCriteria();
if ($count) {
$criteria->select = 'count(*) as count';
}
if (@$_REQUEST['site_id']) {
$criteria->addCondition('site_id = :site_id');
$criteria->params[':site_id'] = $_REQUEST['site_id'];
}
if (@$_REQUEST['firm_id']) {
$firm = Firm::model()->findByPk($_REQUEST['firm_id']);
$firm_ids = array();
foreach (Firm::model()->findAll('name=?', array($firm->name)) as $firm) {
$firm_ids[] = $firm->id;
}
if (!empty($firm_ids)) {
$criteria->addInCondition('firm_id', $firm_ids);
}
}
if (@$_REQUEST['user']) {
$user_ids = array();
$criteria2 = new CDbCriteria();
$criteria2->addCondition(array('active = :active'));
$criteria2->addCondition(array("LOWER(concat_ws(' ',first_name,last_name)) = :term"));
$params[':active'] = 1;
$params[':term'] = strtolower($_REQUEST['user']);
$criteria2->params = $params;
foreach (User::model()->findAll($criteria2) as $user) {
$user_ids[] = $user->id;
}
$criteria->addInCondition('user_id', $user_ids);
}
if (@$_REQUEST['action']) {
$criteria->addCondition('action_id=:action_id');
$criteria->params[':action_id'] = $_REQUEST['action'];
}
if (@$_REQUEST['target_type']) {
$criteria->addCondition('type_id=:type_id');
$criteria->params[':type_id'] = $_REQUEST['target_type'];
}
if (@$_REQUEST['event_type_id']) {
$criteria->addCondition('event.event_type_id=:event_type_id');
$criteria->params[':event_type_id'] = $_REQUEST['event_type_id'];
}
if (@$_REQUEST['date_from']) {
$date_from = Helper::convertNHS2MySQL($_REQUEST['date_from']) . ' 00:00:00';
$criteria->addCondition('`t`.created_date >= :date_from');
$criteria->params[':date_from'] = $date_from;
}
if (@$_REQUEST['date_to']) {
$date_to = Helper::convertNHS2MySQL($_REQUEST['date_to']) . ' 23:59:59';
$criteria->addCondition('`t`.created_date <= :date_to');
$criteria->params[':date_to'] = $date_to;
}
if (@$_REQUEST['hos_num']) {
if ($patient = Patient::model()->find('hos_num=?', array($_REQUEST['hos_num']))) {
$criteria->addCondition('patient_id=' . $patient->id);
} else {
if ($patient = Patient::model()->find('hos_num=?', array(str_pad($_REQUEST['hos_num'], 7, '0', STR_PAD_LEFT)))) {
$criteria->addCondition('patient_id=' . $patient->id);
} else {
$criteria->addCondition('patient_id=0');
}
}
}
!$count && ($criteria->join = 'left join event on t.event_id = event.id left join event_type on event.event_type_id = event_type.id');
return $criteria;
}
示例8: getBookingList
/**
* Get bookings for the given selection criteria.
*
* @param $data
*
* @return OphTrOperationbooking_Operation_Booking[] $bookings
*
* @throws Exception
*/
public function getBookingList($data)
{
foreach (array('date-start', 'date-end', 'subspecialty-id', 'site-id') as $required) {
if (!isset($data[$required])) {
throw new Exception('invalid request for booking list');
}
}
$criteria = new CDbCriteria();
$criteria->addCondition('session.date >= :dateFrom and session.date <= :dateTo');
$criteria->addInCondition('operation.status_id', array(2, 4));
$criteria->params[':dateFrom'] = Helper::convertNHS2MySQL($data['date-start']);
$criteria->params[':dateTo'] = Helper::convertNHS2MySQL($data['date-end']);
if (@$data['emergency_list']) {
$criteria->addCondition('firm.id IS NULL');
} else {
$criteria->addCondition('theatre.site_id = :siteId and subspecialty_id = :subspecialtyId');
$criteria->params[':siteId'] = $data['site-id'];
$criteria->params[':subspecialtyId'] = $data['subspecialty-id'];
}
if (@$data['ward-id']) {
$criteria->addCondition('ward.id = :wardId');
$criteria->params[':wardId'] = $data['ward-id'];
}
if (@$data['firm-id']) {
$criteria->addCondition('firm.id = :firmId');
$criteria->params[':firmId'] = $data['firm-id'];
}
$criteria->addCondition('`t`.booking_cancellation_date is null');
$criteria->order = 'ward.code, patient.hos_num';
Yii::app()->event->dispatch('start_batch_mode');
return OphTrOperationbooking_Operation_Booking::model()->with(array('session' => array('with' => array('theatre', 'firm' => array('with' => array('serviceSubspecialtyAssignment' => array('with' => 'subspecialty'))))), 'operation' => array('with' => array('event' => array('with' => array('episode' => array('with' => array('patient' => array('with' => 'contact'))))))), 'ward'))->findAll($criteria);
}
示例9: reportCataractOperations
/**
* Generates a cataract outcomes report.
*
* inputs (all optional):
* - firm_id
* - surgeon_id
* - assistant_id
* - supervising_surgeon_id
* - date_from
* - date_to
*
* outputs:
* - number of cataracts (number)
* - age of patients (mean and range)
* - eyes (numbers and percentage for left/right)
* - final visual acuity (mean and range)
* - pc ruptures (number and percentage)
* - complications (number and percentage)
*
* @param array $params
*
* @return array
*/
public function reportCataractOperations($params)
{
$data = array();
$where = '';
@$params['firm_id'] and $where .= " and f.id = {$params['firm_id']}";
$surgeon_where = '';
foreach (array('surgeon_id', 'assistant_id', 'supervising_surgeon_id') as $field) {
if (@$params[$field]) {
if ($surgeon_where) {
$surgeon_where .= ' or ';
}
$surgeon_where .= "s.{$field} = {$params[$field]}";
}
}
$surgeon_where and $where .= " and ({$surgeon_where})";
if (preg_match('/^[0-9]+[\\s\\-][a-zA-Z]{3}[\\s\\-][0-9]{4}$/', @$params['date_from'])) {
$params['date_from'] = Helper::convertNHS2MySQL($params['date_from']);
}
if (preg_match('/^[0-9]+[\\s\\-][a-zA-Z]{3}[\\s\\-][0-9]{4}$/', @$params['date_to'])) {
$params['date_to'] = Helper::convertNHS2MySQL($params['date_to']);
}
@$params['date_from'] and $where .= " and e.created_date >= '{$params['date_from']}'";
@$params['date_to'] and $where .= " and e.created_date <= '{$params['date_to']}'";
$data['cataracts'] = 0;
$data['eyes'] = array('left' => array('number' => 0), 'right' => array('number' => 0));
$data['age']['from'] = 200;
// wonder if this will ever need to be changed..
$data['age']['to'] = 0;
$data['final_visual_acuity'] = array('from' => 0, 'to' => 0, 'mean' => 0);
$data['pc_ruptures']['number'] = 0;
$data['complications']['number'] = 0;
$ages = array();
if (!($db = Yii::app()->params['report_db'])) {
$db = 'db';
}
foreach (Yii::app()->{$db}->createCommand()->select('pl.eye_id, p.dob, p.date_of_death, comp.id as comp_id, pc.id as pc_id')->from('et_ophtroperationnote_procedurelist pl')->join('et_ophtroperationnote_cataract c', 'pl.event_id = c.event_id')->join('event e', 'c.event_id = e.id')->join('et_ophtroperationnote_surgeon s', 's.event_id = e.id')->join('episode ep', 'e.episode_id = ep.id')->join('firm f', 'ep.firm_id = f.id')->join('patient p', 'ep.patient_id = p.id')->leftJoin('et_ophtroperationnote_cataract_complication comp', 'comp.cataract_id = c.id')->leftJoin('et_ophtroperationnote_cataract_complication pc', 'pc.cataract_id = c.id and pc.complication_id = 11')->where("pl.deleted = 0 and c.deleted = 0 and e.deleted = 0 and s.deleted = 0 and ep.deleted = 0 and f.deleted = 0 and p.deleted = 0 and (comp.id is null or comp.deleted = 0) and (pc.id is null or pc.deleted = 0) {$where}")->queryAll() as $row) {
++$data['cataracts'];
$row['eye_id'] == 1 ? $data['eyes']['left']['number']++ : $data['eyes']['right']['number']++;
$age = Helper::getAge($row['dob'], $row['date_of_death']);
$ages[] = $age;
//this is taking ages
if ($age < $data['age']['from']) {
$data['age']['from'] = $age;
}
if ($age > $data['age']['to']) {
$data['age']['to'] = $age;
}
$row['pc_id'] and $data['pc_ruptures']['number']++;
$row['comp_id'] and $data['complications']['number']++;
}
if (count($ages) == 0) {
$data['age']['from'] = 0;
}
$data['eyes']['left']['percentage'] = $data['cataracts'] > 0 ? number_format($data['eyes']['left']['number'] / ($data['cataracts'] / 100), 2) : 0;
$data['eyes']['right']['percentage'] = $data['cataracts'] > 0 ? number_format($data['eyes']['right']['number'] / ($data['cataracts'] / 100), 2) : 0;
$data['age']['mean'] = count($ages) > 0 ? number_format(array_sum($ages) / count($ages), 2) : 0;
$data['pc_ruptures']['percentage'] = $data['cataracts'] > 0 ? number_format($data['pc_ruptures']['number'] / ($data['cataracts'] / 100), 2) : 0;
$data['complications']['percentage'] = $data['cataracts'] > 0 ? number_format($data['complications']['number'] / ($data['cataracts'] / 100), 2) : 0;
$data['pc_rupture_average']['number'] = 0;
$data['complication_average']['number'] = 0;
if (!($db = Yii::app()->params['report_db'])) {
$db = 'db';
}
foreach (Yii::app()->{$db}->createCommand()->select('pl.eye_id, p.dob, p.date_of_death, comp.id as comp_id, pc.id as pc_id')->from('et_ophtroperationnote_procedurelist pl')->join('et_ophtroperationnote_cataract c', 'pl.event_id = c.event_id')->join('event e', 'c.event_id = e.id')->join('et_ophtroperationnote_surgeon s', 's.event_id = e.id')->join('episode ep', 'e.episode_id = ep.id')->join('firm f', 'ep.firm_id = f.id')->join('patient p', 'ep.patient_id = p.id')->leftJoin('et_ophtroperationnote_cataract_complication comp', 'comp.cataract_id = c.id')->leftJoin('et_ophtroperationnote_cataract_complication pc', 'pc.cataract_id = c.id and pc.complication_id = 11')->where('pl.deleted = 0 and c.deleted = 0 and e.deleted = 0 and s.deleted = 0 and ep.deleted = 0 and f.deleted = 0 and p.deleted = 0 and (comp.id is null or comp.deleted = 0) and (pc.id is null or pc.deleted = 0)')->queryAll() as $i => $row) {
$row['pc_id'] and $data['pc_rupture_average']['number']++;
$row['comp_id'] and $data['complication_average']['number']++;
}
++$i;
$data['pc_rupture_average']['percentage'] = number_format($data['pc_rupture_average']['number'] / ($i / 100), 2);
$data['complication_average']['percentage'] = number_format($data['complication_average']['number'] / ($i / 100), 2);
return $data;
}
示例10: handleDateRangeFilter
/**
* @param \CDbCriteria $criteria
* @param array $filter
*/
private function handleDateRangeFilter(\CDbCriteria $criteria, $filter = array())
{
$from = null;
if (isset($filter['date_from'])) {
$from = \Helper::convertNHS2MySQL($filter['date_from']);
}
$to = null;
if (isset($filter['date_to'])) {
$to = \Helper::convertNHS2MySQL($filter['date_to']);
}
if ($from && $to) {
if ($from > $to) {
$criteria->addBetweenCondition('event.event_date', $to, $from);
} else {
$criteria->addBetweenCondition('event.event_date', $from, $to);
}
} elseif ($from) {
$criteria->addCondition('event.event_date >= :from');
$criteria->params[':from'] = $from;
} elseif ($to) {
$criteria->addCondition('event.event_date <= :to');
$criteria->params[':to'] = $to;
}
}
示例11: criteria
public function criteria($count = false)
{
$criteria = new CDbCriteria();
if (@$_REQUEST['hos_num']) {
$criteria->addCondition('`dil`.`patient_number` = :hos_num');
$criteria->params[':hos_num'] = $_REQUEST['hos_num'];
}
if (@$_REQUEST['file_name']) {
$criteria->addCondition('file_name = :file_name');
$criteria->params[':file_name'] = $_REQUEST['file_name'];
}
if (@$_REQUEST['firm_id']) {
$firm = Firm::model()->findByPk($_REQUEST['firm_id']);
$firm_ids = array();
foreach (Firm::model()->findAll('name=?', array($firm->name)) as $firm) {
$firm_ids[] = $firm->id;
}
if (!empty($firm_ids)) {
$criteria->addInCondition('firm_id', $firm_ids);
}
}
if (@$_REQUEST['action']) {
$criteria->addCondition('action_id=:action_id');
$criteria->params[':action_id'] = $_REQUEST['action'];
}
if (@$_REQUEST['target_type']) {
$criteria->addCondition('type_id=:type_id');
$criteria->params[':type_id'] = $_REQUEST['target_type'];
}
if (@$_REQUEST['event_type_id']) {
$criteria->addCondition('event_type_id=:event_type_id');
$criteria->params[':event_type_id'] = $_REQUEST['event_type_id'];
}
if (@$_REQUEST['date_from']) {
$date_from = Helper::convertNHS2MySQL($_REQUEST['date_from']) . ' 00:00:00';
$criteria->addCondition('`t`.created_date >= :date_from');
$criteria->params[':date_from'] = $date_from;
}
if (@$_REQUEST['date_to']) {
$date_to = Helper::convertNHS2MySQL($_REQUEST['date_to']) . ' 23:59:59';
$criteria->addCondition('`t`.created_date <= :date_to');
$criteria->params[':date_to'] = $date_to;
}
// !($count) && $criteria->join = 'left join event on t.event_id = event.id left join event_type on event.event_type_id = event_type.id';
return $criteria;
}
示例12: getSentMessages
/**
* Get sent messages.
*
* @param CWebUser $user
*
* @return array title and content for the widget
*/
public function getSentMessages($user = null)
{
if (is_null($user)) {
$user = \Yii::app()->user;
}
$sort = new \CSort();
$sort->attributes = array('priority' => array('asc' => 'urgent asc', 'desc' => 'urgent desc'), 'event_date' => array('asc' => 't.created_date asc', 'desc' => 't.created_date desc'), 'patient_name' => array('asc' => 'lower(contact.last_name) asc, lower(contact.first_name) asc', 'desc' => 'lower(contact.last_name) desc, lower(contact.first_name) desc'), 'hos_num' => array('asc' => 'patient.hos_num asc', 'desc' => 'patient.hos_num desc'), 'dob' => array('asc' => 'patient.dob asc', 'desc' => 'patient.dob desc'), 'user' => array('asc' => 'lower(for_the_attention_of_user.last_name) asc, lower(for_the_attention_of_user.first_name) asc', 'desc' => 'lower(for_the_attention_of_user.last_name) desc, lower(for_the_attention_of_user.first_name) desc'));
$sort->defaultOrder = 'event_date desc';
$from = \Yii::app()->request->getQuery('OphCoMessaging_sent_from', '');
$to = \Yii::app()->request->getQuery('OphCoMessaging_sent_to', '');
$params = array(':uid' => $user->id);
$criteria = new \CDbCriteria();
$criteria->select = array('*');
$criteria->addCondition('t.created_user_id = :uid');
$criteria->with = array('event', 'for_the_attention_of_user', 'message_type', 'event.episode', 'event.episode.patient', 'event.episode.patient.contact');
$criteria->together = true;
if ($from) {
$criteria->addCondition('DATE(t.created_date) >= :from');
$params[':from'] = \Helper::convertNHS2MySQL($from);
}
if ($to) {
$criteria->addCondition('DATE(t.created_date) <= :to');
$params[':to'] = \Helper::convertNHS2MySQL($to);
}
$criteria->addCondition('event.deleted = 0');
$criteria->addCondition('episode.deleted = 0');
$criteria->params = $params;
$dataProvider = new \CActiveDataProvider('OEModule\\OphCoMessaging\\models\\Element_OphCoMessaging_Message', array('sort' => $sort, 'criteria' => $criteria, 'pagination' => array('pageSize' => 10)));
$messages = Element_OphCoMessaging_Message::model()->findAll($criteria);
\Yii::app()->getAssetManager()->registerCssFile('module.css', 'application.modules.OphCoMessaging.assets.css');
$inbox_view = \Yii::app()->controller->renderPartial('OphCoMessaging.views.sent.grid', array('messages' => $messages, 'dataProvider' => $dataProvider), true);
return array('title' => 'Sent Messages', 'content' => $inbox_view, 'options' => array('container-id' => \Yii::app()->user->id . '-sent-container', 'js-toggle-open' => \Yii::app()->request->cookies->contains(\Yii::app()->user->id . '-sent-container-state') ? (bool) \Yii::app()->request->cookies[\Yii::app()->user->id . '-sent-container-state']->value : false));
}
示例13: confirmLetterPrinted
public function confirmLetterPrinted($confirmto = null, $confirmdate = null)
{
// admin users can set confirmto and confirm up to a specific point, steamrollering whatever else is in there
if (!is_null($confirmto)) {
if (!($dls = $this->date_letter_sent)) {
$dls = new OphTrOperationbooking_Operation_Date_Letter_Sent();
$dls->element_id = $this->id;
}
if ($confirmto == self::LETTER_GP) {
$dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_1st_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_2nd_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_gp_letter_sent = Helper::convertNHS2MySQL($confirmdate);
}
if ($confirmto == self::LETTER_INVITE) {
$dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_1st_reminder_letter_sent = null;
$dls->date_2nd_reminder_letter_sent = null;
$dls->date_gp_letter_sent = null;
}
if ($confirmto == self::LETTER_REMINDER_1) {
$dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_1st_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_2nd_reminder_letter_sent = null;
$dls->date_gp_letter_sent = null;
}
if ($confirmto == self::LETTER_REMINDER_2) {
$dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_1st_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_2nd_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
$dls->date_gp_letter_sent = null;
}
if ($confirmto == 'noletters') {
$dls->date_invitation_letter_sent = null;
$dls->date_1st_reminder_letter_sent = null;
$dls->date_2nd_reminder_letter_sent = null;
$dls->date_gp_letter_sent = null;
}
if (!$dls->save()) {
throw new Exception('Unable to save date letter sent: ' . print_r($dls->getErrors(), true));
}
OELog::log("Letter print confirmed, datelettersent={$dls->id} confirmdate='{$confirmdate}'");
// Only confirm if letter is actually due
} elseif ($this->getDueLetter() !== $this->getLastLetter()) {
if ($dls = $this->date_letter_sent) {
if ($dls->date_invitation_letter_sent == null) {
$dls->date_invitation_letter_sent = date('Y-m-d H:i:s');
} elseif ($dls->date_1st_reminder_letter_sent == null) {
$dls->date_1st_reminder_letter_sent = date('Y-m-d H:i:s');
} elseif ($dls->date_2nd_reminder_letter_sent == null) {
$dls->date_2nd_reminder_letter_sent = date('Y-m-d H:i:s');
} elseif ($dls->date_gp_letter_sent == null) {
$dls->date_gp_letter_sent = date('Y-m-d H:i:s');
} elseif ($dls->date_scheduling_letter_sent == null) {
$dls->date_scheduling_letter_sent = date('Y-m-d H:i:s');
}
if (!$dls->save()) {
throw new SystemException("Unable to update date_letter_sent record {$dls->id}: " . print_r($dls->getErrors(), true));
}
OELog::log("Letter print confirmed, datelettersent={$dls->id}");
} else {
$dls = new OphTrOperationbooking_Operation_Date_Letter_Sent();
$dls->element_id = $this->id;
$dls->date_invitation_letter_sent = date('Y-m-d H:i:s');
if (!$dls->save()) {
throw new SystemException('Unable to save new date_letter_sent record: ' . print_r($dls->getErrors(), true));
}
OELog::log("Letter print confirmed, datelettersent={$dls->id}");
}
}
}