1 | <?php |
---|
2 | /** |
---|
3 | * Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana |
---|
4 | * @file entes_planificadores_toolbar.install |
---|
5 | * Drupal part Module to code ente planificador module |
---|
6 | * Copyright 2011 Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana (CENDITEL) |
---|
7 | * |
---|
8 | * This program is free software; you can redistribute it and/or modify |
---|
9 | * it under the terms of the GNU General Public License as published by |
---|
10 | * the Free Software Foundation; either version 2 of the License, or |
---|
11 | * (at your option) any later version. |
---|
12 | * |
---|
13 | * This program is distributed in the hope that it will be useful, |
---|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
16 | * GNU General Public License for more details. |
---|
17 | * |
---|
18 | * You should have received a copy of the GNU General Public License |
---|
19 | * along with this program; if not, write to the Free Software |
---|
20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
---|
21 | * |
---|
22 | * @author Cenditel Merida - Ing. Jose Puentes |
---|
23 | * @date 2013-01-31 // (año-mes-dia) |
---|
24 | * @version 0.1 // (0.1) |
---|
25 | * |
---|
26 | */ |
---|
27 | |
---|
28 | module_load_include('module', 'workflow', 'workflow'); |
---|
29 | |
---|
30 | /* |
---|
31 | * Implementación del hook_install |
---|
32 | */ |
---|
33 | function ente_planificador_sipp_mcti_install() { |
---|
34 | //colocar el modulo ente planificador sipp mcti de los ultimos a leer |
---|
35 | db_query("UPDATE {system} SET weight = 6 WHERE name = 'ente_planificador_sipp_mcti'"); |
---|
36 | |
---|
37 | //Nombre del Flujo de trabajo, estados y transición de Proyectos Operativos |
---|
38 | $name_wf_po = "Proyectos_Operativos"; |
---|
39 | $states_wf_po = array( |
---|
40 | 'PreIngresado', |
---|
41 | 'Ingresado', |
---|
42 | 'Enviado_a_supervisor_del_primer_nivel', |
---|
43 | 'Enviado_a_supervisor_del_segundo_nivel', |
---|
44 | 'Enviado_a_supervisor_del_tercer_nivel', |
---|
45 | 'Enviado_a_supervisor_del_cuarto_nivel', |
---|
46 | 'Devuelto_a_supervisor_del_primer_nivel', |
---|
47 | 'Devuelto_a_supervisor_del_segundo_nivel', |
---|
48 | 'Devuelto_a_supervisor_del_tercer_nivel', |
---|
49 | 'Devuelto_a_supervisor_del_cuarto_nivel', |
---|
50 | 'Enviado_a_enlace_revisor_del_primer_nivel', |
---|
51 | 'Enviado_a_enlace_revisor_del_segundo_nivel', |
---|
52 | 'Enviado_a_enlace_revisor_del_tercer_nivel', |
---|
53 | 'Enviado_a_enlace_revisor_del_cuarto_nivel', |
---|
54 | 'Devuelto_a_enlace_revisor_del_primer_nivel', |
---|
55 | 'Devuelto_a_enlace_revisor_del_segundo_nivel', |
---|
56 | 'Devuelto_a_enlace_revisor_del_tercer_nivel', |
---|
57 | 'Devuelto_a_enlace_revisor_del_cuarto_nivel', |
---|
58 | 'Enviado_a_enlace_formulador_del_primer_nivel', |
---|
59 | 'Enviado_a_enlace_formulador_del_segundo_nivel', |
---|
60 | 'Enviado_a_enlace_formulador_del_tercer_nivel', |
---|
61 | 'Enviado_a_enlace_formulador_del_cuarto_nivel', |
---|
62 | 'Devuelto_a_enlace_formulador_del_primer_nivel', |
---|
63 | 'Devuelto_a_enlace_formulador_del_segundo_nivel', |
---|
64 | 'Devuelto_a_enlace_formulador_del_tercer_nivel', |
---|
65 | 'Devuelto_a_enlace_formulador_del_cuarto_nivel', |
---|
66 | 'Enviado_a_control', |
---|
67 | 'Devuelto_a_control', |
---|
68 | 'Aprobado', |
---|
69 | 'Anulado' |
---|
70 | ); |
---|
71 | |
---|
72 | $tab_roles_po = array( |
---|
73 | 'Administrador', |
---|
74 | 'Enlace_Formulador', |
---|
75 | 'Enlace_Revisor', |
---|
76 | 'Supervisor', |
---|
77 | 'Control', |
---|
78 | ); |
---|
79 | ente_planificador_sipp_mcti_create_roles($tab_roles_po); |
---|
80 | ente_planificador_sipp_mcti_create_permisos($tab_roles_po); |
---|
81 | |
---|
82 | //Definición de las reglas de trasnsición Proyectos Operativos |
---|
83 | $reglas_transicion_po[t('(creation)')]['PreIngresado']['author'] = 1; |
---|
84 | $reglas_transicion_po[t('(creation)')]['PreIngresado']['Enlace_Formulador'] = 1; |
---|
85 | $reglas_transicion_po['Ingresado']['Anulado']['Enlace_Formulador'] = 1; |
---|
86 | $reglas_transicion_po['Ingresado']['Enviado_a_supervisor_del_primer_nivel']['Enlace_Formulador'] = 1; |
---|
87 | $reglas_transicion_po['Ingresado']['Enviado_a_supervisor_del_segundo_nivel']['Enlace_Formulador'] = 1; |
---|
88 | $reglas_transicion_po['Ingresado']['Enviado_a_supervisor_del_tercer_nivel']['Enlace_Formulador'] = 1; |
---|
89 | $reglas_transicion_po['Ingresado']['Enviado_a_supervisor_del_cuarto_nivel']['Enlace_Formulador'] = 1; |
---|
90 | |
---|
91 | $reglas_transicion_po['Enviado_a_enlace_formulador_del_primer_nivel']['Enviado_a_supervisor_del_primer_nivel']['Enlace_Formulador'] = 1; |
---|
92 | $reglas_transicion_po['Enviado_a_enlace_formulador_del_segundo_nivel']['Enviado_a_supervisor_del_segundo_nivel']['Enlace_Formulador'] = 1; |
---|
93 | $reglas_transicion_po['Enviado_a_enlace_formulador_del_tercer_nivel']['Enviado_a_supervisor_del_tercer_nivel']['Enlace_Formulador'] = 1; |
---|
94 | $reglas_transicion_po['Enviado_a_enlace_formulador_del_cuarto_nivel']['Enviado_a_supervisor_del_cuarto_nivel']['Enlace_Formulador'] = 1; |
---|
95 | |
---|
96 | $reglas_transicion_po['Enviado_a_enlace_revisor_del_primer_nivel']['Enviado_a_supervisor_del_primer_nivel']['Enlace_Revisor'] = 1; |
---|
97 | $reglas_transicion_po['Enviado_a_enlace_revisor_del_tercer_nivel']['Enviado_a_supervisor_del_tercer_nivel']['Enlace_Revisor'] = 1; |
---|
98 | $reglas_transicion_po['Enviado_a_enlace_revisor_del_segundo_nivel']['Enviado_a_supervisor_del_segundo_nivel']['Enlace_Revisor'] = 1; |
---|
99 | $reglas_transicion_po['Enviado_a_enlace_revisor_del_primer_nivel']['Devuelto_a_supervisor_del_segundo_nivel']['Enlace_Revisor'] = 1; |
---|
100 | $reglas_transicion_po['Enviado_a_enlace_revisor_del_segundo_nivel']['Devuelto_a_supervisor_del_tercer_nivel']['Enlace_Revisor'] = 1; |
---|
101 | $reglas_transicion_po['Enviado_a_enlace_revisor_del_tercer_nivel']['Devuelto_a_supervisor_del_cuarto_nivel']['Enlace_Revisor'] = 1; |
---|
102 | |
---|
103 | $reglas_transicion_po['Enviado_a_supervisor_del_primer_nivel']['Enviado_a_control']['Control'] = 1; |
---|
104 | $reglas_transicion_po['Enviado_a_supervisor_del_segundo_nivel']['Enviado_a_enlace_revisor_del_primer_nivel']['Supervisor'] = 1; |
---|
105 | $reglas_transicion_po['Enviado_a_supervisor_del_tercer_nivel']['Enviado_a_enlace_revisor_del_segundo_nivel']['Supervisor'] = 1; |
---|
106 | $reglas_transicion_po['Enviado_a_supervisor_del_cuarto_nivel']['Enviado_a_enlace_revisor_del_tercer_nivel']['Supervisor'] = 1; |
---|
107 | |
---|
108 | $reglas_transicion_po['Enviado_a_supervisor_del_primer_nivel']['Enviado_a_control']['Control'] = 1; |
---|
109 | $reglas_transicion_po['Enviado_a_supervisor_del_segundo_nivel']['Enviado_a_enlace_revisor_del_primer_nivel']['Supervisor'] = 1; |
---|
110 | $reglas_transicion_po['Enviado_a_supervisor_del_tercer_nivel']['Enviado_a_enlace_revisor_del_segundo_nivel']['Supervisor'] = 1; |
---|
111 | $reglas_transicion_po['Enviado_a_supervisor_del_cuarto_nivel']['Devuelto_a_enlace_formulador_del_cuarto_nivel']['Supervisor'] = 1; |
---|
112 | |
---|
113 | $reglas_transicion_po['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_formulador_del_tercer_nivel']['Supervisor'] = 1; |
---|
114 | $reglas_transicion_po['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_revisor_del_tercer_nivel']['Supervisor'] = 1; |
---|
115 | |
---|
116 | $reglas_transicion_po['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_revisor_del_segundo_nivel']['Supervisor'] = 1; |
---|
117 | $reglas_transicion_po['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_formulador_del_segundo_nivel']['Supervisor'] = 1; |
---|
118 | |
---|
119 | $reglas_transicion_po['Enviado_a_supervisor_del_primer_nivel']['Devuelto_a_enlace_revisor_del_primer_nivel']['Supervisor'] = 1; |
---|
120 | $reglas_transicion_po['Enviado_a_supervisor_del_primer_nivel']['Devuelto_a_enlace_formulador_del_primer_nivel']['Supervisor'] = 1; |
---|
121 | |
---|
122 | $reglas_transicion_po['Enviado_a_control']['Devuelto_a_enlace']['Control'] = 1; //Hacer envio de mensaje a supervisor (notificación) |
---|
123 | $reglas_transicion_po['Aprobado']['Devuelto_a_control']['Administrador'] = 1; //Solo Administrador puede des-aprobar un proyecto operativo |
---|
124 | $reglas_transicion_po['Anulado']['PreIngresado']['Administrador'] = 1; |
---|
125 | |
---|
126 | $reglas_transicion_po['Enviado_a_control']['Anulado']['Control'] = 1; |
---|
127 | $reglas_transicion_po['Enviado_a_control']['Aprobado']['Control'] = 1; |
---|
128 | $reglas_transicion_po['Enviado_a_control']['Devuelto_a_supervisor_del_primer_nivel']['Control'] = 1; |
---|
129 | |
---|
130 | //Creando el Workflow de Proyectos Operativos del proyecto SIPP |
---|
131 | $wid_po = create_workflow_sipp_mcti($name_wf_po, $states_wf_po); |
---|
132 | //Generando las transiciones del Workflow |
---|
133 | workflow_transition_for_sipp_mcti($wid_po,$reglas_transicion_po); |
---|
134 | update_tab_roles_workflow_sipp_mcti($wid_po, $tab_roles_po); |
---|
135 | |
---|
136 | //asignando el tipo de contenido al flujo de trabajo |
---|
137 | $wid = get_wid_workflow_sipp_mcti($name_wf_po); |
---|
138 | $result = db_query("SELECT wid FROM {workflow_type_map} WHERE type = '%s'", 'proyectos_operativos'); |
---|
139 | $result = db_fetch_object($result); |
---|
140 | if(empty($result->wid)) { |
---|
141 | db_query("INSERT INTO {workflow_type_map} (wid, type) VALUES(%d, '%s')", $wid, 'proyectos_operativos'); |
---|
142 | } |
---|
143 | else { |
---|
144 | if ($wid != $result->wid) { |
---|
145 | db_query("update {workflow_type_map} set wid = %d WHERE type = '%s'", $wid, 'proyectos_operativos'); |
---|
146 | } |
---|
147 | } |
---|
148 | //Nombre del Flujo de trabajo, estados y transición de Acciones Centralizadas |
---|
149 | $name_wf_ac = "Acciones_Centralizadas"; |
---|
150 | |
---|
151 | $states_wf_ac = array( |
---|
152 | 'PreIngresado', |
---|
153 | 'Ingresado', |
---|
154 | 'Enviado_a_supervisor_del_primer_nivel', |
---|
155 | 'Enviado_a_supervisor_del_segundo_nivel', |
---|
156 | 'Enviado_a_supervisor_del_tercer_nivel', |
---|
157 | 'Enviado_a_supervisor_del_cuarto_nivel', |
---|
158 | 'Devuelto_a_supervisor_del_primer_nivel', |
---|
159 | 'Devuelto_a_supervisor_del_segundo_nivel', |
---|
160 | 'Devuelto_a_supervisor_del_tercer_nivel', |
---|
161 | 'Devuelto_a_supervisor_del_cuarto_nivel', |
---|
162 | 'Enviado_a_enlace_revisor_del_primer_nivel', |
---|
163 | 'Enviado_a_enlace_revisor_del_segundo_nivel', |
---|
164 | 'Enviado_a_enlace_revisor_del_tercer_nivel', |
---|
165 | 'Enviado_a_enlace_revisor_del_cuarto_nivel', |
---|
166 | 'Devuelto_a_enlace_revisor_del_primer_nivel', |
---|
167 | 'Devuelto_a_enlace_revisor_del_segundo_nivel', |
---|
168 | 'Devuelto_a_enlace_revisor_del_tercer_nivel', |
---|
169 | 'Devuelto_a_enlace_revisor_del_cuarto_nivel', |
---|
170 | 'Enviado_a_enlace_formulador_del_primer_nivel', |
---|
171 | 'Enviado_a_enlace_formulador_del_segundo_nivel', |
---|
172 | 'Enviado_a_enlace_formulador_del_tercer_nivel', |
---|
173 | 'Enviado_a_enlace_formulador_del_cuarto_nivel', |
---|
174 | 'Devuelto_a_enlace_formulador_del_primer_nivel', |
---|
175 | 'Devuelto_a_enlace_formulador_del_segundo_nivel', |
---|
176 | 'Devuelto_a_enlace_formulador_del_tercer_nivel', |
---|
177 | 'Devuelto_a_enlace_formulador_del_cuarto_nivel', |
---|
178 | 'Enviado_a_control', |
---|
179 | 'Devuelto_a_control', |
---|
180 | 'Aprobado', |
---|
181 | 'Anulado' |
---|
182 | ); |
---|
183 | //Definición de las reglas de trasnsición Acciones Centralizadas |
---|
184 | $reglas_transicion_ac[t('(creation)')]['PreIngresado']['author'] = 1; |
---|
185 | $reglas_transicion_ac[t('(creation)')]['PreIngresado']['Enlace_Formulador'] = 1; |
---|
186 | $reglas_transicion_ac['Ingresado']['Anulado']['Enlace_Formulador'] = 1; |
---|
187 | $reglas_transicion_ac['Ingresado']['Enviado_a_supervisor_del_primer_nivel']['Enlace_Formulador'] = 1; |
---|
188 | $reglas_transicion_ac['Ingresado']['Enviado_a_supervisor_del_segundo_nivel']['Enlace_Formulador'] = 1; |
---|
189 | $reglas_transicion_ac['Ingresado']['Enviado_a_supervisor_del_tercer_nivel']['Enlace_Formulador'] = 1; |
---|
190 | $reglas_transicion_ac['Ingresado']['Enviado_a_supervisor_del_cuarto_nivel']['Enlace_Formulador'] = 1; |
---|
191 | |
---|
192 | $reglas_transicion_ac['Enviado_a_enlace_formulador_del_primer_nivel']['Enviado_a_supervisor_del_primer_nivel']['Enlace_Formulador'] = 1; |
---|
193 | $reglas_transicion_ac['Enviado_a_enlace_formulador_del_segundo_nivel']['Enviado_a_supervisor_del_segundo_nivel']['Enlace_Formulador'] = 1; |
---|
194 | $reglas_transicion_ac['Enviado_a_enlace_formulador_del_tercer_nivel']['Enviado_a_supervisor_del_tercer_nivel']['Enlace_Formulador'] = 1; |
---|
195 | $reglas_transicion_ac['Enviado_a_enlace_formulador_del_cuarto_nivel']['Enviado_a_supervisor_del_cuarto_nivel']['Enlace_Formulador'] = 1; |
---|
196 | |
---|
197 | $reglas_transicion_ac['Enviado_a_enlace_revisor_del_primer_nivel']['Enviado_a_supervisor_del_primer_nivel']['Enlace_Revisor'] = 1; |
---|
198 | $reglas_transicion_ac['Enviado_a_enlace_revisor_del_tercer_nivel']['Enviado_a_supervisor_del_tercer_nivel']['Enlace_Revisor'] = 1; |
---|
199 | $reglas_transicion_ac['Enviado_a_enlace_revisor_del_segundo_nivel']['Enviado_a_supervisor_del_segundo_nivel']['Enlace_Revisor'] = 1; |
---|
200 | $reglas_transicion_ac['Enviado_a_enlace_revisor_del_primer_nivel']['Devuelto_a_supervisor_del_segundo_nivel']['Enlace_Revisor'] = 1; |
---|
201 | $reglas_transicion_ac['Enviado_a_enlace_revisor_del_segundo_nivel']['Devuelto_a_supervisor_del_tercer_nivel']['Enlace_Revisor'] = 1; |
---|
202 | $reglas_transicion_ac['Enviado_a_enlace_revisor_del_tercer_nivel']['Devuelto_a_supervisor_del_cuarto_nivel']['Enlace_Revisor'] = 1; |
---|
203 | |
---|
204 | $reglas_transicion_ac['Enviado_a_supervisor_del_primer_nivel']['Enviado_a_control']['Control'] = 1; |
---|
205 | $reglas_transicion_ac['Enviado_a_supervisor_del_segundo_nivel']['Enviado_a_enlace_revisor_del_primer_nivel']['Supervisor'] = 1; |
---|
206 | $reglas_transicion_ac['Enviado_a_supervisor_del_tercer_nivel']['Enviado_a_enlace_revisor_del_segundo_nivel']['Supervisor'] = 1; |
---|
207 | $reglas_transicion_ac['Enviado_a_supervisor_del_cuarto_nivel']['Enviado_a_enlace_revisor_del_tercer_nivel']['Supervisor'] = 1; |
---|
208 | |
---|
209 | $reglas_transicion_ac['Enviado_a_supervisor_del_primer_nivel']['Enviado_a_control']['Control'] = 1; |
---|
210 | $reglas_transicion_ac['Enviado_a_supervisor_del_segundo_nivel']['Enviado_a_enlace_revisor_del_primer_nivel']['Supervisor'] = 1; |
---|
211 | $reglas_transicion_ac['Enviado_a_supervisor_del_tercer_nivel']['Enviado_a_enlace_revisor_del_segundo_nivel']['Supervisor'] = 1; |
---|
212 | $reglas_transicion_ac['Enviado_a_supervisor_del_cuarto_nivel']['Devuelto_a_enlace_formulador_del_cuarto_nivel']['Supervisor'] = 1; |
---|
213 | |
---|
214 | $reglas_transicion_ac['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_formulador_del_tercer_nivel']['Supervisor'] = 1; |
---|
215 | $reglas_transicion_ac['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_revisor_del_tercer_nivel']['Supervisor'] = 1; |
---|
216 | |
---|
217 | $reglas_transicion_ac['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_revisor_del_segundo_nivel']['Supervisor'] = 1; |
---|
218 | $reglas_transicion_ac['Enviado_a_supervisor_del_tercer_nivel']['Devuelto_a_enlace_formulador_del_segundo_nivel']['Supervisor'] = 1; |
---|
219 | |
---|
220 | $reglas_transicion_ac['Enviado_a_supervisor_del_primer_nivel']['Devuelto_a_enlace_revisor_del_primer_nivel']['Supervisor'] = 1; |
---|
221 | $reglas_transicion_ac['Enviado_a_supervisor_del_primer_nivel']['Devuelto_a_enlace_formulador_del_primer_nivel']['Supervisor'] = 1; |
---|
222 | |
---|
223 | $reglas_transicion_ac['Enviado_a_control']['Devuelto_a_enlace']['Control'] = 1; //Hacer envio de mensaje a supervisor (notificación) |
---|
224 | $reglas_transicion_ac['Aprobado']['Devuelto_a_control']['Administrador'] = 1; //Solo Administrador puede des-aprobar un proyecto operativo |
---|
225 | $reglas_transicion_ac['Anulado']['PreIngresado']['Administrador'] = 1; |
---|
226 | |
---|
227 | $reglas_transicion_ac['Enviado_a_control']['Anulado']['Control'] = 1; |
---|
228 | $reglas_transicion_ac['Enviado_a_control']['Aprobado']['Control'] = 1; |
---|
229 | $reglas_transicion_ac['Enviado_a_control']['Devuelto_a_supervisor_del_primer_nivel']['Control'] = 1; |
---|
230 | |
---|
231 | $tab_roles_ac = array( |
---|
232 | 'Administrador', |
---|
233 | 'Enlace_Formulador', |
---|
234 | 'Enlace_Revisor', |
---|
235 | 'Supervisor', |
---|
236 | 'Control' |
---|
237 | ); |
---|
238 | |
---|
239 | ente_planificador_sipp_mcti_create_roles($tab_roles_ac); |
---|
240 | ente_planificador_sipp_mcti_create_permisos($tab_roles_ac); |
---|
241 | //Creando el Workflow de Acciones Centralizadas del proyecto SIPP |
---|
242 | $wid_ac = create_workflow_sipp_mcti($name_wf_ac, $states_wf_ac); |
---|
243 | //Generando las transiciones del Workflow |
---|
244 | workflow_transition_for_sipp_mcti($wid_ac,$reglas_transicion_ac); |
---|
245 | update_tab_roles_workflow_sipp_mcti($wid_ac, $tab_roles_ac); |
---|
246 | |
---|
247 | //asignando el tipo de contenido al flujo de trabajo |
---|
248 | $wid = get_wid_workflow_sipp_mcti($name_wf_ac); |
---|
249 | $result = db_query("SELECT wid FROM {workflow_type_map} WHERE type = '%s'", 'accion_centralizada'); |
---|
250 | $result = db_fetch_object($result); |
---|
251 | if(empty($result->wid)) { |
---|
252 | db_query("INSERT INTO {workflow_type_map} (wid, type) VALUES(%d, '%s')", $wid, 'accion_centralizada'); |
---|
253 | } |
---|
254 | else { |
---|
255 | if ($wid != $result->wid) { |
---|
256 | db_query("update {workflow_type_map} set wid = %d WHERE type = '%s'", $wid, 'accion_centralizada'); |
---|
257 | } |
---|
258 | } |
---|
259 | //notificando la instalacion del modulo |
---|
260 | content_notify('install', 'ente_planificador_sipp_mcti'); |
---|
261 | } |
---|
262 | |
---|
263 | /* |
---|
264 | * Implementacion del hook_uninstall() |
---|
265 | */ |
---|
266 | function ente_planificador_sipp_mcti_uninstall() { |
---|
267 | db_query("DELETE FROM {variable} WHERE name LIKE '%s'", 'ente_planificador_sipp_%'); |
---|
268 | content_notify('uninstall', 'ente_planificador_sipp_mcti'); |
---|
269 | //Eliminando permisos y roles del SIPP |
---|
270 | $roles = array( |
---|
271 | 'Administrador', |
---|
272 | 'Enlace_Formulador', |
---|
273 | 'Enlace_Revisor', |
---|
274 | 'Supervisor', |
---|
275 | 'Control' |
---|
276 | ); |
---|
277 | |
---|
278 | //Eliminado Workflow del SIPP |
---|
279 | $workflow_sipp = array("Proyectos_Operativos", "Acciones_Centralizadas"); |
---|
280 | foreach ($workflow_sipp as $name_wf){ |
---|
281 | $wid_workflow = get_wid_workflow_sipp_mcti($name_wf); |
---|
282 | if (!is_null($wid_workflow)){ |
---|
283 | workflow_deletewf($wid_workflow); |
---|
284 | drupal_set_message(t('Se elimino el Workflow @wf con workflow id(wid): @wid', array('@wf' => $name_wf, '@wid' => $wid_workflow ),'status')); |
---|
285 | |
---|
286 | } |
---|
287 | }; |
---|
288 | } |
---|
289 | |
---|
290 | /** |
---|
291 | * crea las variables y guarda los estados del workflow |
---|
292 | */ |
---|
293 | function create_workflow_sipp_mcti($name_wf, $states_wf) { |
---|
294 | $wid = workflow_create($name_wf); |
---|
295 | foreach ($states_wf as $i => $value) { |
---|
296 | $state_wf = array('wid' => $wid, 'state' => $value, 'weight' => $i+1); |
---|
297 | $sid = workflow_state_save($state_wf); |
---|
298 | } |
---|
299 | variable_set('ente_planificador_sipp_wf_' . $name_wf, $wid); |
---|
300 | return $wid; |
---|
301 | } |
---|
302 | |
---|
303 | /* |
---|
304 | * Crea las transiciones del workflow |
---|
305 | */ |
---|
306 | function workflow_transition_for_sipp_mcti($wid,$reglas_transicion) { |
---|
307 | $transition = array(); |
---|
308 | $roles = workflow_get_roles(); |
---|
309 | $states = workflow_get_states($wid); |
---|
310 | foreach ($states as $state_id => $name) { |
---|
311 | foreach ($states as $nested_state_id => $nested_name) { |
---|
312 | if ($nested_name == t('(creation)')) { |
---|
313 | // Don't allow transition TO (creation). |
---|
314 | continue; |
---|
315 | } |
---|
316 | if ($nested_state_id != $state_id) { |
---|
317 | // Need to generate checkboxes for transition from $state to $nested_state. |
---|
318 | $from = $state_id; |
---|
319 | $to = $nested_state_id; |
---|
320 | foreach ($roles as $rid => $role_name) { |
---|
321 | if ($reglas_transicion[$name][$nested_name][$role_name] == 1) { |
---|
322 | $transition[$from][$to][$rid] = TRUE; |
---|
323 | } |
---|
324 | else |
---|
325 | $transition[$from][$to][$rid] = 0; |
---|
326 | } |
---|
327 | } |
---|
328 | } |
---|
329 | } |
---|
330 | workflow_update_transitions($transition); |
---|
331 | } |
---|
332 | |
---|
333 | /** |
---|
334 | * Actualiza los roles de del workflow |
---|
335 | */ |
---|
336 | function update_tab_roles_workflow_sipp_mcti($wid, $tab_roles_wf) { |
---|
337 | $tab_roles = array(); |
---|
338 | $roles = workflow_get_roles(); |
---|
339 | foreach ($tab_roles_wf as $id_role_wf => $name_role_wf) { |
---|
340 | foreach ($roles as $rid => $role_name){ |
---|
341 | if ($name_role_wf == $role_name){ |
---|
342 | $tab_roles[$id_role_wf] = $rid; |
---|
343 | } |
---|
344 | } |
---|
345 | } |
---|
346 | db_query("UPDATE {workflows} SET tab_roles = '%s' WHERE wid = %d", implode(',', $tab_roles), $wid); |
---|
347 | } |
---|
348 | |
---|
349 | /** |
---|
350 | * obtien el wid de workflows |
---|
351 | */ |
---|
352 | function get_wid_workflow_sipp_mcti($name_wf) { |
---|
353 | $result = db_query("SELECT wid FROM {workflows} WHERE name = '%s'", $name_wf); |
---|
354 | $wid = null; |
---|
355 | if ($obj_wid = db_fetch_object($result)) { |
---|
356 | $wid = $obj_wid->wid; |
---|
357 | } |
---|
358 | return $wid; |
---|
359 | } |
---|
360 | |
---|
361 | /* |
---|
362 | * Crea los roles |
---|
363 | */ |
---|
364 | function ente_planificador_sipp_mcti_create_roles($roles) { |
---|
365 | foreach ($roles as $rol) { |
---|
366 | $role = ente_planificador_sipp_mcti_get_role($rol); |
---|
367 | if (!$role) { |
---|
368 | db_query("INSERT INTO {role} (name) VALUES('%s')", $rol); |
---|
369 | } |
---|
370 | } |
---|
371 | } |
---|
372 | |
---|
373 | /* |
---|
374 | * Crea los permisos por rol |
---|
375 | */ |
---|
376 | function ente_planificador_sipp_mcti_create_permisos($roles) { |
---|
377 | $permissions_planificador = array( |
---|
378 | 0 => 'edit own planificador', |
---|
379 | 1 => 'ver planificador', |
---|
380 | 2 => 'access user profiles', |
---|
381 | 3 => 'change own username', |
---|
382 | ); |
---|
383 | $permissions_control = array( |
---|
384 | 0 => 'admin planificador', |
---|
385 | 1 => 'edit own planificador', |
---|
386 | 2 => 'ver planificador', |
---|
387 | 3 => 'access user profiles', |
---|
388 | 4 => 'change own username', |
---|
389 | ); |
---|
390 | foreach ($roles as $rol) { |
---|
391 | $role = ente_planificador_sipp_mcti_get_role($rol); |
---|
392 | if ($role) { |
---|
393 | $permissions = $permissions_planificador; |
---|
394 | if ($rol == 'Control') { |
---|
395 | $permissions = $permissions_control; |
---|
396 | } |
---|
397 | // Check to see if there are existing permissions |
---|
398 | db_query("INSERT INTO {permission} (rid, perm, tid) VALUES (%d, '%s', 0)", $role->rid, implode(', ', $permissions), 0); |
---|
399 | } |
---|
400 | } |
---|
401 | } |
---|
402 | |
---|
403 | /* |
---|
404 | * Elimina un rol y sus permisos |
---|
405 | * |
---|
406 | function ente_planificador_sipp_mcti_delete_role($role_name) { |
---|
407 | // Look up the role to see if it exists already |
---|
408 | $role = ente_planificador_sipp_mcti_get_role($role_name); |
---|
409 | if ($role) { |
---|
410 | db_query('DELETE FROM {role} WHERE rid = %d', $role->rid); |
---|
411 | db_query('DELETE FROM {permission} WHERE rid = %d', $role->rid); |
---|
412 | // Update the users who have this role set: |
---|
413 | db_query('DELETE FROM {users_roles} WHERE rid = %d', $role->rid); |
---|
414 | return $role; |
---|
415 | } |
---|
416 | return FALSE; |
---|
417 | }*/ |
---|
418 | |
---|
419 | /* |
---|
420 | * Consulta un rol |
---|
421 | */ |
---|
422 | function ente_planificador_sipp_mcti_get_role($role_name) { |
---|
423 | $role = db_fetch_object(db_query("SELECT * FROM {role} r WHERE r.name = '%s'", $role_name)); |
---|
424 | return $role; |
---|
425 | } |
---|