public static function useDefault($search_data = null, &$errors = array(), $defaults = null) { $search = new TicketsSearch($defaults); $search->addSearchField('id', 'ticket_#', 'equal'); $search->addSearchField('internal_status_code', 'status_is', 'ticket_status', array('NEW', 'OPEN')); $user = new User(); $user->loadBy('username', EGS_USERNAME); $search->addSearchField('originator_person_id', 'my_tickets_only', 'hide', false, 'advanced'); $search->setOnValue('originator_person_id', $user->username); $search->addSearchField('summary', 'summary_contains', 'contains'); $search->addSearchField('assigned_to', 'assigned_to', 'select', ''); $options = array('' => 'all', EGS_USERNAME => 'me', 'NULL' => 'noone'); if (isModuleAdmin()) { $users = User::getOtherUsers(); $options = array_merge($options, $users); } $search->setOptions('assigned_to', $options); $search->addSearchField('originator_company', 'company_name', 'begins', null, 'advanced'); $search->addSearchField('created', 'created_today', 'hide', false, 'advanced'); $cc = new ConstraintChain(); $cc->add(new Constraint('created', '>', date('Y-m-d', strtotime('yesterday')))); $cc->add(new Constraint('created', '<', date('Y-m-d', strtotime('tomorrow')))); $search->setConstraint('created', $cc); $queue = new TicketQueue(); $queues = $queue->getAll(); $search->addSearchField('ticket_queue_id', 'queue', 'multi_select', array_keys($queues), 'advanced'); $search->setOptions('ticket_queue_id', $queues); $search->addSearchField('ticket_release_version_id', 'release_version', 'select', '', 'advanced'); $releaseversion = new TicketReleaseVersion(); $releaseversions = $releaseversion->getAll(); $options = array('' => 'All'); $options += $releaseversions; $search->setOptions('ticket_release_version_id', $options); $search->setSearchData($search_data, $errors); return $search; }
public function _new() { parent::_new(); $ticket = $this->_uses[$this->modeltype]; if (isset($this->_data['originator_company_id'])) { $company = new Company(); $company->load($this->_data['originator_company_id']); $this->view->set('originator_company', $company->name); $this->view->set('people', $company->getPeople()); $this->view->set('email', Ticket::getCompanyEmail($this->_data['originator_company_id'])); } else { $company = new Systemcompany(); $company->load(EGS_COMPANY_ID); $this->view->set('originator_company', $company->company); $this->view->set('people', $company->systemcompany->getPeople()); } $ticketreleaseversion = new TicketReleaseVersion(); $releaseversion_cc = new ConstraintChain(); $releaseversion_cc->add(new Constraint('status', '<>', $ticketreleaseversion->releasedStatus())); if (!$ticket->isLoaded()) { $defaults = new TicketConfiguration(); if (isset($this->_data['originator_company_id'])) { $cc = new ConstraintChain(); $cc->add(new Constraint('company_id', '=', $this->_data['originator_company_id'])); $defaults->loadBy($cc); } if (!$defaults->isLoaded()) { $cc = new ConstraintChain(); $cc->add(new Constraint('company_id', '=', EGS_COMPANY_ID)); $defaults->loadBy($cc); } if ($defaults->isLoaded()) { $this->view->set('client_ticket_status_default', $defaults->client_ticket_status_id); $this->view->set('internal_ticket_status_default', $defaults->internal_ticket_status_id); $this->view->set('ticket_queue_default', $defaults->ticket_queue_id); $this->view->set('ticket_category_default', $defaults->ticket_category_id); $this->view->set('client_ticket_severity_default', $defaults->client_ticket_severity_id); $this->view->set('internal_ticket_severity_default', $defaults->internal_ticket_severity_id); $this->view->set('client_ticket_priority_default', $defaults->client_ticket_priority_id); $this->view->set('internal_ticket_priority_default', $defaults->internal_ticket_priority_id); } } if (!empty($this->_data['ticket_release_version_id'])) { $ticket->ticket_release_version_id = $this->_data['ticket_release_version_id']; } if (!is_null($ticket->ticket_release_version_id)) { $releaseversion_cc->add(new Constraint('id', '=', $ticket->ticket_release_version_id), 'OR'); } $ticket->belongsTo['release_version']['cc'] = $releaseversion_cc; }