Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }