/** * Creates a model for getModel(). Called only for each new $action. * * The parameters allow you to easily adapt the model to the current action. The $detailed * parameter was added, because the most common use of action is a split between detailed * and summarized actions. * * @param boolean $detailed True when the current action is not in $summarizedActions. * @param string $action The current action. * @return \MUtil_Model_ModelAbstract */ public function createModel($detailed, $action) { // $model = new \Gems_Model_JoinModel('resptrack', 'gems__respondent2track'); $model->addTable('gems__respondent2org', array('gr2t_id_user' => 'gr2o_id_user', 'gr2t_id_organization' => 'gr2o_id_organization')); $model->addTable('gems__tracks', array('gr2t_id_track' => 'gtr_id_track')); $model->addTable('gems__reception_codes', array('gr2t_reception_code' => 'grc_id_reception_code')); $model->addFilter(array('grc_success' => 1)); $model->resetOrder(); $model->set('gr2o_patient_nr', 'label', $this->_('Respondent nr')); $model->set('gr2t_start_date', 'label', $this->_('Start date'), 'dateFormat', 'dd-MM-yyyy'); $model->set('gr2t_end_date', 'label', $this->_('End date'), 'dateFormat', 'dd-MM-yyyy'); $filter = $this->getSearchFilter($action !== 'export'); if (!(isset($filter['gr2t_id_organization']) && $filter['gr2t_id_organization'])) { $model->addFilter(array('gr2t_id_organization' => $this->currentUser->getRespondentOrgFilter())); } if (!(isset($filter['gr2t_id_track']) && $filter['gr2t_id_track'])) { $model->setFilter(array('1=0')); $this->autofilterParameters['onEmpty'] = $this->_('No track selected...'); return $model; } // Add the period filter - if any if ($where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($filter, $this->db)) { $model->addFilter(array($where)); } $trackId = $filter['gr2t_id_track']; $engine = $this->loader->getTracker()->getTrackEngine($trackId); $engine->addFieldsToModel($model, false); return $model; }
protected function getFilter() { $filter = array(); if (isset($this->data['gto_id_track']) && $this->data['gto_id_track']) { $filter['gto_id_track'] = $this->data['gto_id_track']; } if (isset($this->data['gto_round_description']) && $this->data['gto_round_description']) { $filter['gto_round_description'] = $this->data['gto_round_description']; } if (isset($this->data['gto_id_organization']) && $this->data['gto_id_organization']) { $filter['gto_id_organization'] = $this->data['gto_id_organization']; } if (isset($this->data['dateused']) && $this->data['dateused']) { $where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($this->data, $this->db); if ($where) { $filter[] = $where; } } $filter[] = 'gto_start_time IS NOT NULL'; $filter['gco_code'] = 'consent given'; $filter['gr2o_reception_code'] = 'OK'; $filter['grc_success'] = 1; if (isset($data['ids'])) { $idStrings = $data['ids']; $idArray = preg_split('/[\\s,;]+/', $idStrings, -1, PREG_SPLIT_NO_EMPTY); if ($idArray) { // Make sure output is OK // $idArray = array_map(array($this->db, 'quote'), $idArray); $filter['gto_id_respondent'] = $idArray; } } return $filter; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); $elements[] = new \Zend_Form_Element_Hidden(\MUtil_Model::REQUEST_ID1); $elements[] = new \Zend_Form_Element_Hidden(\MUtil_Model::REQUEST_ID2); return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); $user = $this->loader->getCurrentUser(); if ($user->hasPrivilege('pr.respondent.select-on-track')) { $tracks = $this->searchData['__active_tracks']; $masks['show_all'] = $this->_('(all)'); $masks['show_without_track'] = $this->_('(no track)'); if (count($tracks) > 1) { $masks['show_with_track'] = $this->_('(with track)'); } if (count($tracks) > 1) { $elements[] = $this->_createSelectElement('gr2t_id_track', $masks + $tracks); } else { $element = $this->_createRadioElement('gr2t_id_track', $masks + $tracks); $element->setSeparator(' '); $elements[] = $element; } $lineBreak = true; } else { $lineBreak = false; } if ($user->hasPrivilege('pr.respondent.show-deleted')) { $elements[] = $this->_createCheckboxElement('grc_success', $this->_('Show active')); } if ($this->model->isMultiOrganization()) { $element = $this->_createSelectElement(\MUtil_Model::REQUEST_ID2, $user->getRespondentOrganizations(), $this->_('(all organizations)')); if ($lineBreak) { $element->setLabel($this->_('Organization'))->setAttrib('onchange', 'this.form.submit();'); $elements[] = \MUtil_Html::create('br'); } $elements[] = $element; } return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); $elements[] = new \Zend_Form_Element_Hidden(\MUtil_Model::REQUEST_ID); $elements[] = $this->_createSelectElement('gtf_field_type', $this->model, $this->_('(all types)')); $elements[] = \MUtil_Html::create('br'); return $elements; }
/** * Creates a model for getModel(). Called only for each new $action. * * The parameters allow you to easily adapt the model to the current action. The $detailed * parameter was added, because the most common use of action is a split between detailed * and summarized actions. * * @param boolean $detailed True when the current action is not in $summarizedActions. * @param string $action The current action. * @return \MUtil_Model_ModelAbstract */ public function createModel($detailed, $action) { $model = new \Gems_Model_JoinModel('resptrack', 'gems__respondent2track'); $model->addTable('gems__respondent2org', array('gr2t_id_user' => 'gr2o_id_user', 'gr2t_id_organization' => 'gr2o_id_organization')); $model->addTable('gems__tracks', array('gr2t_id_track' => 'gtr_id_track')); $model->addTable('gems__reception_codes', array('gr2t_reception_code' => 'grc_id_reception_code')); $model->addFilter(array('grc_success' => 1)); $model->resetOrder(); $model->set('gr2o_patient_nr', 'label', $this->_('Respondent nr')); $model->set('gr2t_start_date', 'label', $this->_('Start date'), 'dateFormat', 'dd-MM-yyyy'); $model->set('gr2t_end_date', 'label', $this->_('End date'), 'dateFormat', 'dd-MM-yyyy'); $filter = $this->getSearchFilter($action !== 'export'); if (!(isset($filter['gr2t_id_organization']) && $filter['gr2t_id_organization'])) { $model->addFilter(array('gr2t_id_organization' => $this->currentUser->getRespondentOrgFilter())); } if (!(isset($filter['gr2t_id_track']) && $filter['gr2t_id_track'])) { $model->setFilter(array('1=0')); $this->autofilterParameters['onEmpty'] = $this->_('No track selected...'); return $model; } // Add the period filter - if any if ($where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($filter, $this->db)) { $model->addFilter(array($where)); } $select = $this->db->select(); $select->from('gems__rounds', array('gro_id_round', 'gro_id_order', 'gro_round_description', 'gro_icon_file'))->joinInner('gems__surveys', 'gro_id_survey = gsu_id_survey', array('gsu_survey_name'))->where('gro_id_track = ?', $filter['gr2t_id_track'])->order('gro_id_order'); if (isset($filter['gsu_id_primary_group']) && $filter['gsu_id_primary_group']) { $select->where('gsu_id_primary_group = ?', $filter['gsu_id_primary_group']); } $data = $this->db->fetchAll($select); if (!$data) { return $model; } $status = $this->util->getTokenData()->getStatusExpression(); $select = $this->db->select(); $select->from('gems__tokens', array('gto_id_respondent_track', 'gto_id_round', 'gto_id_token', 'status' => $status))->joinInner('gems__reception_codes', 'gto_reception_code = grc_id_reception_code', array())->where('gto_id_track = ?', $filter['gr2t_id_track'])->order('grc_success')->order('gto_id_respondent_track')->order('gto_round_order'); // \MUtil_Echo::track($this->db->fetchAll($select)); $newModel = new \MUtil_Model_SelectModel($select, 'tok'); $newModel->setKeys(array('gto_id_respondent_track')); $transformer = new \MUtil_Model_Transform_CrossTabTransformer(); $transformer->addCrosstabField('gto_id_round', 'status', 'stat_')->addCrosstabField('gto_id_round', 'gto_id_token', 'tok_'); foreach ($data as $row) { $name = 'stat_' . $row['gro_id_round']; $transformer->set($name, 'label', \MUtil_Lazy::call('substr', $row['gsu_survey_name'], 0, 2), 'description', sprintf("%s\n[%s]", $row['gsu_survey_name'], $row['gro_round_description']), 'noSort', true, 'round', $row['gro_round_description'], 'roundIcon', $row['gro_icon_file']); $transformer->set('tok_' . $row['gro_id_round']); } $newModel->addTransformer($transformer); // \MUtil_Echo::track($data); $joinTrans = new \MUtil_Model_Transform_JoinTransformer(); $joinTrans->addModel($newModel, array('gr2t_id_respondent_track' => 'gto_id_respondent_track')); $model->resetOrder(); $model->set('gr2o_patient_nr'); $model->set('gr2t_start_date'); $model->addTransformer($joinTrans); return $model; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $yesNo = $this->util->getTranslated()->getYesNo(); $elements = parent::getAutoSearchElements($data); $elements[] = $this->_createSelectElement('gls_when_no_user', $yesNo, $this->_('(any when no user)')); $elements[] = $this->_createSelectElement('gls_on_action', $yesNo, $this->_('(any on action)')); $elements[] = $this->_createSelectElement('gls_on_post', $yesNo, $this->_('(any on post)')); $elements[] = $this->_createSelectElement('gls_on_change', $yesNo, $this->_('(any on change)')); return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); $groups = $this->util->getDbLookup()->getGroups(); $elements[] = $this->_createSelectElement('gsu_id_primary_group', $groups, $this->_('(all groups)')); $states = array('act' => $this->_('Active'), 'sok' => $this->_('OK in source, not active'), 'nok' => $this->_('Blocked in source')); $elements[] = $this->_createSelectElement('status', $states, $this->_('(every state)')); $elements[] = \MUtil_Html::create('br'); $yesNo = $this->util->getTranslated()->getYesNo(); $elements[] = $this->_createSelectElement('gsu_insertable', $yesNo, $this->_('(any insertable)')); return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { // Search text $elements = parent::getAutoSearchElements($data); $this->_addPeriodSelectors($elements, array('grco_created' => $this->_('Date sent'))); $br = \MUtil_Html::create()->br(); $elements[] = null; $dbLookup = $this->util->getDbLookup(); $elements[] = $this->_createSelectElement('gto_id_track', $this->util->getTrackData()->getAllTracks(), $this->_('(select a track)')); $elements[] = $this->_createSelectElement('gto_id_survey', $this->util->getTrackData()->getAllSurveys(), $this->_('(all surveys)')); $elements[] = $this->_createSelectElement('grco_organization', $this->loader->getCurrentUser()->getRespondentOrganizations(), $this->_('(all organizations)')); return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); $orgs = $this->currentUser->getRespondentOrganizations(); if (count($orgs) > 1) { $elements[] = $this->_createSelectElement('gap_id_organization', $orgs, $this->_('(all organizations)')); } $locations = $this->loader->getAgenda()->getLocations(); if (count($locations) > 1) { $elements[] = $this->_createSelectElement('gap_id_location', $locations, $this->_('(all locations)')); } $elements[] = null; $this->_addPeriodSelectors($elements, 'gap_admission_time'); return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); if ($elements) { $br = \MUtil_Html::create('br'); $elements[] = $this->_createSelectElement('gtr_track_class', $this->model, $this->_('(all track engines)')); $elements[] = $br; $optionsA = $this->util->getTranslated()->getYesNo(); $elementA = $this->_createSelectElement('gtr_active', $optionsA, $this->_('(both)')); $elementA->setLabel($this->model->get('gtr_active', 'label')); $elements[] = $elementA; $user = $this->loader->getCurrentUser(); $optionsO = $user->getRespondentOrganizations(); $elementO = $this->_createSelectElement('org', $optionsO, $this->_('(all organizations)')); $elements[] = $elementO; } return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); if ($elements) { $optionsG = $this->util->getDbLookup()->getGroups(); $elementG = $this->_createSelectElement('gsf_id_primary_group', $optionsG, $this->_('(all functions)')); $elements[] = $elementG; $user = $this->loader->getCurrentUser(); $optionsO = $user->getAllowedOrganizations(); if (count($optionsO) > 1) { $elementO = $this->_createSelectElement('gsf_id_organization', $optionsO, $this->_('(all organizations)')); $elements[] = $elementO; } $optionsA = $this->util->getTranslated()->getYesNo(); $elementA = $this->_createSelectElement('gsf_active', $optionsA, $this->_('(both)')); $elementA->setLabel($this->model->get('gsf_active', 'label')); $elements[] = $elementA; } return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); if ($this->organizationField) { $user = $this->loader->getCurrentUser(); if ($this->respondentOrganizations) { $availableOrganizations = $this->util->getDbLookup()->getOrganizationsWithRespondents(); } else { $availableOrganizations = $this->util->getDbLookup()->getActiveOrganizations(); } if ($user->hasPrivilege('pr.staff.see.all')) { // Select organization $options = $availableOrganizations; } else { $options = array_intersect($availableOrganizations, $user->getAllowedOrganizations()); } if ($options) { $elements[] = $this->_createSelectElement($this->organizationField, $options, $this->_('(all organizations)')); } } return $elements; }
/** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. * That creates a distinct group of elements * * @param array $data The $form field values (can be usefull, but no need to set them) * @return array Of \Zend_Form_Element's or static tekst to add to the html or null for group breaks. */ protected function getAutoSearchElements(array $data) { $elements = parent::getAutoSearchElements($data); $user = $this->loader->getCurrentUser(); if ($user->hasPrivilege('pr.respondent.select-on-track')) { $elements[] = $this->_createCheckboxElement('show_with_track', $this->_('Has track')); $elements[] = $this->_createCheckboxElement('show_without_track', $this->_('No track')); $lineBreak = true; } else { $lineBreak = false; } if ($user->hasPrivilege('pr.respondent.show-deleted')) { $elements[] = $this->_createCheckboxElement('grc_success', $this->_('Show active')); } if ($this->model->isMultiOrganization()) { $element = $this->_createSelectElement(\MUtil_Model::REQUEST_ID2, $user->getRespondentOrganizations(), $this->_('(all organizations)')); if ($lineBreak) { $element->setLabel($this->_('Organization')); $elements[] = \MUtil_Html::create('br'); } $elements[] = $element; } return $elements; }
/** * Get the filter to use with the model for searching * * @param boolean $useRequest Use the request as source (when false, the session is used) * @return array or false */ public function getSearchFilter($useRequest = true) { $filter = parent::getSearchFilter($useRequest); $where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($filter, $this->db); if ($where) { $filter[] = $where; } return $filter; }
/** * Creates a model for getModel(). Called only for each new $action. * * The parameters allow you to easily adapt the model to the current action. The $detailed * parameter was added, because the most common use of action is a split between detailed * and summarized actions. * * @param boolean $detailed True when the current action is not in $summarizedActions. * @param string $action The current action. * @return \MUtil_Model_ModelAbstract */ public function createModel($detailed, $action) { $select = $this->getSelect(); // \MUtil_Model::$verbose = true; $model = new \MUtil_Model_SelectModel($select, 'summary'); // Make sure of filter and sort for these fields $model->set('gro_id_order'); $model->set('gto_id_track'); $model->set('gto_id_organization'); $model->resetOrder(); $model->set('gro_round_description', 'label', $this->_('Round')); $model->set('gsu_survey_name', 'label', $this->_('Survey')); $model->set('answered', 'label', $this->_('Answered'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); $model->set('missed', 'label', $this->_('Missed'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); $model->set('open', 'label', $this->_('Open'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); $model->set('total', 'label', $this->_('Total'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); // $model->set('future', 'label', $this->_('Future'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); // $model->set('unknown', 'label', $this->_('Unknown'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); // $model->set('is', 'label', ' ', 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); // $model->set('success', 'label', $this->_('Success'), 'tdClass', 'centerAlign', 'thClass', 'centerAlign'); // $model->set('removed', 'label', $this->_('Removed'), 'tdClass', 'deleted centerAlign', // 'thClass', 'centerAlign'); $model->set('ggp_name', 'label', $this->_('Filler'), 'column_expression', new \Zend_Db_Expr('COALESCE(gems__track_fields.gtf_field_name, gems__groups.ggp_name)')); $filter = $this->getSearchFilter($action !== 'export'); if (!(isset($filter['gto_id_organization']) && $filter['gto_id_organization'])) { $model->addFilter(array('gto_id_organization' => $this->currentUser->getRespondentOrgFilter())); } if (isset($filter['gto_id_track']) && $filter['gto_id_track']) { // Add the period filter if ($where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($filter, $this->db)) { $select->joinInner('gems__respondent2track', 'gto_id_respondent_track = gr2t_id_respondent_track', array()); $model->addFilter(array($where)); } } else { $model->setFilter(array('1=0')); $this->autofilterParameters['onEmpty'] = $this->_('No track selected...'); } return $model; }
/** * Get the filter to use with the model for searching * * @param boolean $useRequest Use the request as source (when false, the session is used) * @return array or false */ public function getSearchFilter($useRequest = true) { $filter = parent::getSearchFilter($useRequest); unset($filter['AUTO_SEARCH_TEXT_BUTTON']); $where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($filter, $this->db, null, 'yyyy-MM-dd HH:mm:ss'); if ($where) { $filter[] = $where; } if (!isset($filter['gto_id_organization'])) { $filter['gto_id_organization'] = $this->currentUser->getRespondentOrgFilter(); } $filter['gsu_active'] = 1; $filter['grc_success'] = 1; // Overruled with success if (isset($filter['main_filter'])) { switch ($filter['main_filter']) { case 'answered': $filter[] = 'gto_completion_time IS NOT NULL'; break; case 'hasnomail': $filter[] = sprintf("(grs_email IS NULL OR grs_email = '' OR grs_email NOT RLIKE '%s') AND\n ggp_respondent_members = 1", str_replace('\'', '\\\'', trim(\MUtil_Validate_SimpleEmail::EMAIL_REGEX, '/'))); $filter[] = '(gto_valid_until IS NULL OR gto_valid_until >= CURRENT_TIMESTAMP)'; $filter['gto_completion_time'] = null; break; case 'missed': $filter[] = 'gto_valid_from <= CURRENT_TIMESTAMP'; $filter[] = 'gto_valid_until < CURRENT_TIMESTAMP'; $filter['gto_completion_time'] = null; break; case 'notmailed': $filter['gto_mail_sent_date'] = null; $filter[] = '(gto_valid_until IS NULL OR gto_valid_until >= CURRENT_TIMESTAMP)'; $filter['gto_completion_time'] = null; break; case 'open': $filter['gto_completion_time'] = null; $filter[] = 'gto_valid_from <= CURRENT_TIMESTAMP'; $filter[] = '(gto_valid_until >= CURRENT_TIMESTAMP OR gto_valid_until IS NULL)'; break; // case 'other': // $filter[] = "grs_email IS NULL OR grs_email = '' OR ggp_respondent_members = 0"; // $filter['can_email'] = 0; // $filter[] = '(gto_valid_until IS NULL OR gto_valid_until >= CURRENT_TIMESTAMP)'; // break; // case 'other': // $filter[] = "grs_email IS NULL OR grs_email = '' OR ggp_respondent_members = 0"; // $filter['can_email'] = 0; // $filter[] = '(gto_valid_until IS NULL OR gto_valid_until >= CURRENT_TIMESTAMP)'; // break; case 'removed': $filter['grc_success'] = 0; break; case 'toanswer': $filter[] = 'gto_completion_time IS NULL'; break; case 'tomail': $filter[] = sprintf("grs_email IS NOT NULL AND\n grs_email != '' AND\n grs_email RLIKE '%s' AND\n ggp_respondent_members = 1", str_replace('\'', '\\\'', trim(\MUtil_Validate_SimpleEmail::EMAIL_REGEX, '/'))); //$filter[] = "grs_email IS NOT NULL AND grs_email != '' AND ggp_respondent_members = 1"; $filter['gto_mail_sent_date'] = null; $filter[] = '(gto_valid_until IS NULL OR gto_valid_until >= CURRENT_TIMESTAMP)'; $filter['gto_completion_time'] = null; break; case 'toremind': // $filter['can_email'] = 1; $filter[] = 'gto_mail_sent_date < CURRENT_TIMESTAMP'; $filter[] = '(gto_valid_until IS NULL OR gto_valid_until >= CURRENT_TIMESTAMP)'; $filter['gto_completion_time'] = null; break; default: break; } unset($filter['main_filter']); } return $filter; }
/** * Get the filter to use with the model for searching * * @param boolean $useRequest Use the request as source (when false, the session is used) * @return array or false */ public function getSearchFilter($useRequest = true) { $filter = parent::getSearchFilter($useRequest); $where = \Gems_Snippets_AutosearchFormSnippet::getPeriodFilter($filter, $this->db, $this->getDateFormat(), 'yyyy-MM-dd HH:mm:ss'); if ($where) { $filter[] = $where; } return $filter; }