Ignore:
Timestamp:
04/15/13 09:52:54 (11 years ago)
Author:
rafaelgobara
Message:

Ticket #3422 - Criado método que busca instância por trecho do wf_name e faz update replace

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/workflow/inc/local/classes/class.wf_instance.php

    r5928 r8089  
    456456 
    457457                $resultSet = $this->db->query($query, array($this->processID, $name)); 
     458                return $resultSet->GetArray(); 
     459        } 
     460 
     461        /** 
     462        * Busca todas as instâncias que possuem um trecho do nome (identificador). 
     463        * @param string $name O trecho do nome da instância que se quer encontrar. 
     464        * @return array As instâncias que satisfazem o critério de seleção. 
     465        * @access public 
     466        */ 
     467        public function getLikeName($name) 
     468        { 
     469                /* build the SQL query */ 
     470                $query = 'SELECT i.wf_instance_id AS wf_instance_id, ia.wf_activity_id AS wf_activity_id, ia.wf_started AS wf_started, i.wf_name AS wf_name, i.wf_status AS wf_status, ia.wf_user AS wf_user, i.wf_priority AS wf_priority '; 
     471                $query .= 'FROM egw_wf_instances i LEFT JOIN egw_wf_instance_activities ia ON (ia.wf_instance_id = i.wf_instance_id)'; 
     472                $query .= "WHERE (i.wf_p_id = ?) AND i.wf_name ILIKE '%$name%'"; 
     473 
     474                $resultSet = $this->db->query($query, array($this->processID)); 
     475 
    458476                return $resultSet->GetArray(); 
    459477        } 
     
    584602                return $this->setUser($instanceID, $activityID, 'p' . $roleID); 
    585603        } 
     604 
     605        /** 
     606        * Altera o wf_name das instâncias, fazendo o replace no nome da categoria de serviço.  
     607        * Método chamado quando é alterada a categoria de um serviço e existem ocorrências atrelados a esse serviço. 
     608        * @param int | array $instanceID se for um array, concatena os instances ids 
     609        * @param string @currentServiceName Nome da categoria de serviço atual 
     610        * @param string @newServiceName Nome da nova categoria de serviço 
     611        * @return resultSet em caso de sucesso ou false 
     612        * @access public  
     613        */ 
     614        public function updateReplaceName($instanceID, $currentServiceName, $newServiceName) 
     615        { 
     616                $success = true; 
     617 
     618                // Se for array, faz implode concatenando os ids 
     619                if (is_array($instanceID)) 
     620                { 
     621                        $instanceID = implode(',', $instanceID); 
     622                } 
     623 
     624                $query = "UPDATE egw_wf_instances SET wf_name = REPLACE(wf_name, '" . $currentServiceName . "', '" . $newServiceName . "') WHERE wf_instance_id IN (" . $instanceID . ")"; 
     625                $success = $this->db->execute($query); 
     626 
     627                return $success; 
     628        } 
    586629} 
    587630?> 
Note: See TracChangeset for help on using the changeset viewer.