1 | <?php |
---|
2 | |
---|
3 | /**************************************************************************\ |
---|
4 | * eGroupWare * |
---|
5 | * http://www.egroupware.org * |
---|
6 | * -------------------------------------------- * |
---|
7 | * This program is free software; you can redistribute it and/or modify it * |
---|
8 | * under the terms of the GNU General Public License as published by the * |
---|
9 | * Free Software Foundation; either version 2 of the License, or (at your * |
---|
10 | * option) any later version. * |
---|
11 | \**************************************************************************/ |
---|
12 | |
---|
13 | require_once('class.bo_ajaxinterface.inc.php'); |
---|
14 | |
---|
15 | |
---|
16 | /** |
---|
17 | * Camada Business para Mover Instâncias. |
---|
18 | * @package Workflow |
---|
19 | * @author Sidnei Augusto Drovetto Jr. - drovetto@gmail.com |
---|
20 | * @license http://www.gnu.org/copyleft/gpl.html GPL |
---|
21 | */ |
---|
22 | class bo_move_instances extends bo_ajaxinterface |
---|
23 | { |
---|
24 | /** |
---|
25 | * @var object $so Acesso à camada model. |
---|
26 | * @access private |
---|
27 | */ |
---|
28 | private $so; |
---|
29 | |
---|
30 | |
---|
31 | /** |
---|
32 | * Construtor da classe bo_move_instances |
---|
33 | * @return object |
---|
34 | * @access public |
---|
35 | */ |
---|
36 | function bo_move_instances() |
---|
37 | { |
---|
38 | parent::bo_ajaxinterface(); |
---|
39 | $this->so = &Factory::getInstance('so_move_instances'); |
---|
40 | } |
---|
41 | |
---|
42 | /** |
---|
43 | * Carrega a lista de todos os processos que o usuário tem direito. |
---|
44 | * @return array Lista dos processos. |
---|
45 | * @access public |
---|
46 | */ |
---|
47 | function loadProcesses() |
---|
48 | { |
---|
49 | $output = $this->so->loadProcesses(); |
---|
50 | $this->disconnect_all(); |
---|
51 | |
---|
52 | return $output; |
---|
53 | } |
---|
54 | |
---|
55 | /** |
---|
56 | * Carrega a lista de todos as atividades dos processos que terão as instâncias movidas. |
---|
57 | * @param array $params Uma array contendo os parâmetros necessários para buscar as atividades dos processos. |
---|
58 | * @return array Lista das atividades de cada processo e um pré-relacionamento das atividades. |
---|
59 | * @access public |
---|
60 | */ |
---|
61 | function loadActivities($params) |
---|
62 | { |
---|
63 | $output['from'] = $this->so->loadProcessActivities($params['from']); |
---|
64 | $output['to'] = $this->so->loadProcessActivities($params['to']); |
---|
65 | $output['pre-match'] = $this->so->matchActivities($output['from'], $output['to'], 80); |
---|
66 | $this->disconnect_all(); |
---|
67 | |
---|
68 | return $output; |
---|
69 | } |
---|
70 | |
---|
71 | /** |
---|
72 | * Move as instâncias de um processo para outro. |
---|
73 | * @param array $params Uma array contendo os parâmetros necessários para mover as instâncias. |
---|
74 | * @return bool TRUE em caso de sucesso e FALSE caso contrário. |
---|
75 | * @access public |
---|
76 | */ |
---|
77 | function moveInstances($params) |
---|
78 | { |
---|
79 | $JSON = &Factory::newInstance('Services_JSON'); |
---|
80 | |
---|
81 | /* convert the mappgin element to array */ |
---|
82 | $params['activityMappings'] = array_map("get_object_vars", get_object_vars($JSON->decode($params['activityMappings']))); |
---|
83 | |
---|
84 | $active = ($params['active'] == 'on'); |
---|
85 | $completed = ($params['completed'] == 'on'); |
---|
86 | |
---|
87 | return $this->so->moveInstances($params['from'], $params['to'], $params['activityMappings'], $active, $completed); |
---|
88 | } |
---|
89 | } |
---|
90 | ?> |
---|