1 | <?xml version="1.0" encoding="ISO-8859-1"?> |
---|
2 | <process> |
---|
3 | <name>Music CD Loans</name> |
---|
4 | <isValid>y</isValid> |
---|
5 | <version>3.2</version> |
---|
6 | <isActive>y</isActive> |
---|
7 | <description>Alugar cds, consultar catálogo de cds, etc...</description> |
---|
8 | <lastModif>05/03/2008 [02:48:14]</lastModif> |
---|
9 | <sharedCode><![CDATA[<?php
|
---|
10 | /**
|
---|
11 | * @brief Arquivo de configuração do processo.
|
---|
12 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
13 | * @package Workflow
|
---|
14 | * @version 1.0
|
---|
15 | */
|
---|
16 |
|
---|
17 | /* Início da definicao de constantes da aplicacao */
|
---|
18 | /* Fim da definicao de constantes da aplicacao */
|
---|
19 |
|
---|
20 | /* Início da importacao/inclusao de classes */
|
---|
21 |
|
---|
22 | //camada de controle do processo
|
---|
23 | wf_include('class.controller.inc.php');
|
---|
24 | wf_include('class.concluir.controller.inc.php');
|
---|
25 | wf_include('class.aprovar.controller.inc.php');
|
---|
26 | wf_include('class.solicitar.controller.inc.php');
|
---|
27 | wf_include('class.consultar.controller.inc.php');
|
---|
28 | //camada da logica de negocios
|
---|
29 | wf_include('class.model.inc.php');
|
---|
30 | wf_include('class.concluir.model.inc.php');
|
---|
31 | wf_include('class.aprovar.model.inc.php');
|
---|
32 | wf_include('class.solicitar.model.inc.php');;
|
---|
33 | wf_include('class.consultar.model.inc.php');
|
---|
34 | //classes de negocio/auxiliares
|
---|
35 |
|
---|
36 | /* Fim da importacao/inclusao de classes */
|
---|
37 | ?>
|
---|
38 | ]]></sharedCode> |
---|
39 | <configs> |
---|
40 | <config> |
---|
41 | <wf_config_name>execute_activities_in_debug_mode</wf_config_name> |
---|
42 | <wf_config_value></wf_config_value> |
---|
43 | <wf_config_value_int>1</wf_config_value_int> |
---|
44 | </config> |
---|
45 | <config> |
---|
46 | <wf_config_name>mail_smtp_profile</wf_config_name> |
---|
47 | <wf_config_value>default</wf_config_value> |
---|
48 | <wf_config_value_int></wf_config_value_int> |
---|
49 | </config> |
---|
50 | </configs> |
---|
51 | <activities> |
---|
52 | <activity> |
---|
53 | <name>Aprovar</name> |
---|
54 | <type>activity</type> |
---|
55 | <description>Aprovar ou reprovar a solicitação do cd.</description> |
---|
56 | <menuPath></menuPath> |
---|
57 | <lastModif>05/03/2008 [02:27:27]</lastModif> |
---|
58 | <isInteractive>y</isInteractive> |
---|
59 | <isAutoRouted>y</isAutoRouted> |
---|
60 | <roles> |
---|
61 | <role>admin</role> |
---|
62 | </roles> |
---|
63 | <agents> |
---|
64 | </agents> |
---|
65 | <code><![CDATA[<?php
|
---|
66 | /**
|
---|
67 | * @brief Aprovação de cds do catálogo.
|
---|
68 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
69 | * @name Aprovar
|
---|
70 | */
|
---|
71 |
|
---|
72 | /* instanciação de classe da camada Controller */
|
---|
73 | $application = new AprovarController ( new AprovarModel ( $env ) , $env );
|
---|
74 | $application->run ( $_REQUEST['action'] );
|
---|
75 | ?> ]]></code> <template><![CDATA[ ]]></template> </activity> |
---|
76 | <activity> |
---|
77 | <name>Concluir</name> |
---|
78 | <type>activity</type> |
---|
79 | <description>O usuário recebe a resposta e conclui o processo.</description> |
---|
80 | <menuPath></menuPath> |
---|
81 | <lastModif>05/03/2008 [02:27:26]</lastModif> |
---|
82 | <isInteractive>y</isInteractive> |
---|
83 | <isAutoRouted>y</isAutoRouted> |
---|
84 | <roles> |
---|
85 | <role>user</role> |
---|
86 | </roles> |
---|
87 | <agents> |
---|
88 | </agents> |
---|
89 | <code><![CDATA[<?php
|
---|
90 | /**
|
---|
91 | * @brief Informa resultado do processo.
|
---|
92 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
93 | * @name Concluir
|
---|
94 | */
|
---|
95 |
|
---|
96 | /* instanciação de classe da camada Controller */
|
---|
97 | $application = new ConcluirController ( new ConcluirModel ( $env ) , $env );
|
---|
98 | $application->run ( $_REQUEST['action'] );
|
---|
99 | ?> ]]></code> <template><![CDATA[ ]]></template> </activity> |
---|
100 | <activity> |
---|
101 | <name>Consultar</name> |
---|
102 | <type>standalone</type> |
---|
103 | <description>O usuário pode consultar o catálogo de cds. O título e o status é exibido para cada cd. Um botão para solicitar o cd também é exibido.</description> |
---|
104 | <menuPath></menuPath> |
---|
105 | <lastModif>05/03/2008 [02:27:26]</lastModif> |
---|
106 | <isInteractive>y</isInteractive> |
---|
107 | <isAutoRouted>n</isAutoRouted> |
---|
108 | <roles> |
---|
109 | <role>user</role> |
---|
110 | </roles> |
---|
111 | <agents> |
---|
112 | </agents> |
---|
113 | <code><![CDATA[<?php
|
---|
114 | /**
|
---|
115 | * @brief Consulta de catálogo de cds.
|
---|
116 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
117 | * @name Consultar
|
---|
118 | */
|
---|
119 |
|
---|
120 | /* instanciação de classe da camada Model */
|
---|
121 | $application = new ConsultarController ( new ConsultarModel ( $env ) , $env );
|
---|
122 | $application->run ( $_REQUEST['action'] );
|
---|
123 | ?>
|
---|
124 | ]]></code> <template><![CDATA[ ]]></template> </activity> |
---|
125 | <activity> |
---|
126 | <name>end</name> |
---|
127 | <type>end</type> |
---|
128 | <description>Atividade final padrão.</description> |
---|
129 | <menuPath></menuPath> |
---|
130 | <lastModif>05/03/2008 [02:27:26]</lastModif> |
---|
131 | <isInteractive>n</isInteractive> |
---|
132 | <isAutoRouted>y</isAutoRouted> |
---|
133 | <roles> |
---|
134 | </roles> |
---|
135 | <agents> |
---|
136 | </agents> |
---|
137 | <code><![CDATA[<?php
|
---|
138 | /**
|
---|
139 | * @brief Atividade final em branco.
|
---|
140 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
141 | * @name end
|
---|
142 | */
|
---|
143 | ?> ]]></code> </activity> |
---|
144 | <activity> |
---|
145 | <name>Solicitar</name> |
---|
146 | <type>start</type> |
---|
147 | <description>O usuário solicita um cd.</description> |
---|
148 | <menuPath></menuPath> |
---|
149 | <lastModif>05/03/2008 [02:27:27]</lastModif> |
---|
150 | <isInteractive>y</isInteractive> |
---|
151 | <isAutoRouted>y</isAutoRouted> |
---|
152 | <roles> |
---|
153 | <role>user</role> |
---|
154 | </roles> |
---|
155 | <agents> |
---|
156 | </agents> |
---|
157 | <code><![CDATA[<?php
|
---|
158 | /**
|
---|
159 | * @brief Solicitação de cds do catálogo.
|
---|
160 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
161 | * @name Solicitar
|
---|
162 | */
|
---|
163 |
|
---|
164 | /* instanciação de classe da camada Controller */
|
---|
165 | $application = new SolicitarController ( new SolicitarModel ( $env ) , $env );
|
---|
166 | $application->run ( $_REQUEST['action'] );
|
---|
167 | ?> ]]></code> <template><![CDATA[ ]]></template> </activity> |
---|
168 | </activities> |
---|
169 | <templates> |
---|
170 | <template> |
---|
171 | <name>Solicitar.tpl</name> |
---|
172 | <code><![CDATA[{wf_default_template}
|
---|
173 | <div id="conteudo_corpo">
|
---|
174 | <h2>Solicitar Empréstimo</h2>
|
---|
175 | <table class="form_tabela" width="100%" cellspacing="0" border="0" align="center">
|
---|
176 | <tr>
|
---|
177 | <td width="100%">
|
---|
178 | <table id="list_tabela_clara" width="60%" cellspacing="0">
|
---|
179 | <tr>
|
---|
180 | <th>CD Desejado:</th>
|
---|
181 | </tr>
|
---|
182 | <tr>
|
---|
183 | <td>
|
---|
184 | <select id="cdsel">
|
---|
185 | {section name=ix loop=$cds}
|
---|
186 | <option value="{$cds[ix].cdid}">{$cds[ix].title}</option>
|
---|
187 | {/section}
|
---|
188 | </select>
|
---|
189 | </td>
|
---|
190 | </tr>
|
---|
191 | <tr>
|
---|
192 | <td>
|
---|
193 | <input type="button" class="form_botao" onclick="dispatch('Solicitar',
|
---|
194 | document.getElementById('cdsel').options[document.getElementById('cdsel').selectedIndex].value )"
|
---|
195 | value="Solicitar" />
|
---|
196 | </td>
|
---|
197 | </tr>
|
---|
198 | </table>
|
---|
199 | </td>
|
---|
200 | </tr>
|
---|
201 | </table>
|
---|
202 | </div>
|
---|
203 | ]]></code> </template> |
---|
204 | <template> |
---|
205 | <name>Consultar.tpl</name> |
---|
206 | <code><![CDATA[{wf_default_template}
|
---|
207 | <div id="conteudo_corpo">
|
---|
208 | <h2>Consultar</h2>
|
---|
209 | <table class="form_tabela" width="100%" cellspacing="0" border="0" align="center">
|
---|
210 | <tr>
|
---|
211 | <td width="100%">
|
---|
212 | <table id="list_tabela_clara" width="60%" cellspacing="0">
|
---|
213 | <tr>
|
---|
214 | <th width="30%">Título</th>
|
---|
215 | <th width="10%">Status</th>
|
---|
216 | <th width="10%">Ação</th>
|
---|
217 | </tr>
|
---|
218 | {section name=ix loop=$cds}
|
---|
219 | <tr>
|
---|
220 | <td>{$cds[ix].title}</td>
|
---|
221 | <td>{$cds[ix].status}</td>
|
---|
222 | <td>
|
---|
223 | <input type="button" class="form_botao" onclick="dispatch('Inverter', '{$cds[ix].cdid}')" value="Alternar Status" />
|
---|
224 | </td>
|
---|
225 | </tr>
|
---|
226 | {/section}
|
---|
227 | </table>
|
---|
228 | </td>
|
---|
229 | </tr>
|
---|
230 | </table>
|
---|
231 | </div>
|
---|
232 | ]]></code> </template> |
---|
233 | <template> |
---|
234 | <name>Aprovar.tpl</name> |
---|
235 | <code><![CDATA[{wf_default_template}
|
---|
236 | <div id="conteudo_corpo">
|
---|
237 | <h2>Aprovar Empréstimo</h2>
|
---|
238 | <table class="form_tabela" width="100%" cellspacing="0" border="0" align="center">
|
---|
239 | <tr>
|
---|
240 | <td width="100%">
|
---|
241 | <table id="list_tabela_clara" width="60%" cellspacing="0">
|
---|
242 | <tr>
|
---|
243 | <th width="30%">Título</th>
|
---|
244 | <th width="10%">Status</th>
|
---|
245 | <th width="20%">Ação</th>
|
---|
246 | </tr>
|
---|
247 | <tr>
|
---|
248 | <td>{$info.title}</td>
|
---|
249 | <td>{$info.status}</td>
|
---|
250 | <td>
|
---|
251 | <input type="button" class="form_botao" onclick="dispatch('Aprovar')" value="Aprovar" />
|
---|
252 | <input type="button" class="form_botao" onclick="dispatch('Rejeitar')" value="Rejeitar" />
|
---|
253 | </td>
|
---|
254 | </tr>
|
---|
255 | </table>
|
---|
256 | </td>
|
---|
257 | </tr>
|
---|
258 | </table>
|
---|
259 | </div>
|
---|
260 | ]]></code> </template> |
---|
261 | <template> |
---|
262 | <name>Concluir.tpl</name> |
---|
263 | <code><![CDATA[{wf_default_template}
|
---|
264 | <div id="conteudo_corpo">
|
---|
265 | <h2>Consultar</h2>
|
---|
266 | <table class="form_tabela" width="100%" cellspacing="0" border="0" align="center">
|
---|
267 | <tr>
|
---|
268 | <td width="100%">
|
---|
269 | <table id="list_tabela_clara" width="60%" cellspacing="0">
|
---|
270 | <tr>
|
---|
271 | <td>
|
---|
272 | Seu pedido de empréstimo do CD <b>{$title}</b> foi {$status}
|
---|
273 | </td>
|
---|
274 | </tr>
|
---|
275 | <tr>
|
---|
276 | <td>
|
---|
277 | <input type="button" class="form_botao" onclick="dispatch('Ok')" value="Ok" />
|
---|
278 | </td>
|
---|
279 | </tr>
|
---|
280 | </table>
|
---|
281 | </td>
|
---|
282 | </tr>
|
---|
283 | </table>
|
---|
284 | </form>
|
---|
285 | ]]></code> </template> |
---|
286 | </templates> |
---|
287 | <includes> |
---|
288 | <include> |
---|
289 | <name>class.consultar.controller.inc.php</name> |
---|
290 | <code><![CDATA[<?php
|
---|
291 |
|
---|
292 | /**
|
---|
293 | * @brief Gerencia atividade de consulta ao catálogo de cds.
|
---|
294 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
295 | * @class ConsultarController
|
---|
296 | * @version 1.1
|
---|
297 | */
|
---|
298 | class ConsultarController extends Controller
|
---|
299 | {
|
---|
300 | /**
|
---|
301 | * Chama a implementação da ação de inversão de status.
|
---|
302 | *
|
---|
303 | * @return boolean
|
---|
304 | * @access private
|
---|
305 | */
|
---|
306 | function inverter ( )
|
---|
307 | {
|
---|
308 | $this->model->inverterStatusAction ( );
|
---|
309 | $this->__default ( );
|
---|
310 | }
|
---|
311 |
|
---|
312 | /**
|
---|
313 | * Ação padrão da atividade.
|
---|
314 | *
|
---|
315 | * @return boolean
|
---|
316 | * @access private
|
---|
317 | */
|
---|
318 | function __default ( )
|
---|
319 | {
|
---|
320 | $this->model->defaultAction ( );
|
---|
321 | $this->loadViewVars ( );
|
---|
322 | }
|
---|
323 |
|
---|
324 | /**
|
---|
325 | * Execução da aplicação.
|
---|
326 | *
|
---|
327 | * @return void
|
---|
328 | * @access public
|
---|
329 | */
|
---|
330 | function run ( $action )
|
---|
331 | {
|
---|
332 | //abre conexão com o banco para todas as ações
|
---|
333 | //evitando duplicação de codigo, pois ambas necessitam
|
---|
334 | //acessar o banco de dados
|
---|
335 | $this->model->DAO->connect ( );
|
---|
336 |
|
---|
337 | $this->dispatch($action);
|
---|
338 |
|
---|
339 | //fecha a conexão com o banco
|
---|
340 | $this->model->DAO->disconnect ( );
|
---|
341 | }
|
---|
342 | }
|
---|
343 |
|
---|
344 | ?>
|
---|
345 | ]]></code> </include> |
---|
346 | <include> |
---|
347 | <name>class.concluir.controller.inc.php</name> |
---|
348 | <code><![CDATA[<?php
|
---|
349 |
|
---|
350 | /**
|
---|
351 | * @brief Gerencia atividade de exibição de resultado.
|
---|
352 | * @author Carlos Eduardo Nogueira Goncalves.
|
---|
353 | * @class ConcluirController
|
---|
354 | * @version 1.1
|
---|
355 | */
|
---|
356 | class ConcluirController extends Controller
|
---|
357 | {
|
---|
358 | /**
|
---|
359 | * Chama implementação da acao ok (usuário confirma que recebeu o cd).
|
---|
360 | *
|
---|
361 | * @return boolean
|
---|
362 | * @access private
|
---|
363 | */
|
---|
364 | function ok ( )
|
---|
365 | {
|
---|
366 | $this->model->okayAction ( );
|
---|
367 | }
|
---|
368 |
|
---|
369 | /**
|
---|
370 | * Ação padrão da atividade.
|
---|
371 | *
|
---|
372 | * @return boolean
|
---|
373 | * @access private
|
---|
374 | */
|
---|
375 | function __default ( )
|
---|
376 | {
|
---|
377 | $this->model->defaultAction ( );
|
---|
378 | $this->loadViewVars ( );
|
---|
379 | }
|
---|
380 |
|
---|
381 | /**
|
---|
382 | * Execução da atividade.
|
---|
383 | *
|
---|
384 | * @return void
|
---|
385 | * @access public
|
---|
386 | */
|
---|
387 | function run ( $action )
|
---|
388 | {
|
---|
389 | //chama o método de controle que irá normalizar o nome da ação,
|
---|
390 | //verificar se existe método para a ação e fazer a chamada
|
---|
391 | $this->dispatch($action);
|
---|
392 | }
|
---|
393 | }
|
---|
394 |
|
---|
395 | ?>
|
---|
396 | ]]></code> </include> |
---|
397 | <include> |
---|
398 | <name>class.solicitar.model.inc.php</name> |
---|
399 | <code><![CDATA[<?php
|
---|
400 | /**
|
---|
401 | * @brief Implementa atividade de solicitação de cd.
|
---|
402 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
403 | * @class SolicitarModel
|
---|
404 | * @version 1.1
|
---|
405 | */
|
---|
406 | class SolicitarModel extends Model
|
---|
407 | {
|
---|
408 | /**
|
---|
409 | * @brief Implementação para a ação de solicitar um cd.
|
---|
410 | * @public.
|
---|
411 | * @return boolean.
|
---|
412 | */
|
---|
413 | function solicitarAction ( )
|
---|
414 | {
|
---|
415 | /* substituir true abaixo por chamada a algum metodo validador, caso haja necessidade */
|
---|
416 | if ( true )
|
---|
417 | {
|
---|
418 | //guarda identificação do cd no atributo do processo
|
---|
419 | $this->_cdId = $this->request['params'];
|
---|
420 | //atualiza os valores guardados pelo engine workflow
|
---|
421 | $this->updateInstance ( );
|
---|
422 | //indica que a atividade está completada
|
---|
423 | $this->instance->complete ( );
|
---|
424 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
425 | return true;
|
---|
426 | }
|
---|
427 | else
|
---|
428 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
429 | //caso houvesse alguma validação a ser feita
|
---|
430 | return false;
|
---|
431 | }
|
---|
432 |
|
---|
433 | /**
|
---|
434 | * @brief Implementação para a ação padrão da atividade.
|
---|
435 | * @public.
|
---|
436 | * @return boolean.
|
---|
437 | */
|
---|
438 | function defaultAction ( )
|
---|
439 | {
|
---|
440 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
441 | if ( true )
|
---|
442 | {
|
---|
443 | //armazena consulta no atributo de comandos SQL
|
---|
444 | //note que as palavras reservadas do SQL estão em maiusculas
|
---|
445 | //e as outras em minusculas
|
---|
446 | $this->commandText = "SELECT * FROM cds.cdcollection WHERE status = 'disponivel' ";
|
---|
447 |
|
---|
448 | //armazena resultado da consulta no atributo adequado
|
---|
449 | $this->resultSet = $this->DAO->query($this->commandText);
|
---|
450 |
|
---|
451 | $ret = array();
|
---|
452 |
|
---|
453 | //recupera os valores da consulta
|
---|
454 | while ( $res = $this->resultSet->fetchRow ( DB_FETCHMODE_ASSOC ) )
|
---|
455 | $ret[] = $res;
|
---|
456 |
|
---|
457 | //salva os valores da consulta no atributo de variáveis da camada view
|
---|
458 | $this->addViewVar('cds' , $ret );
|
---|
459 | $this->addViewVar("activity_title", "Music CD Loans");
|
---|
460 |
|
---|
461 | //retorna true indicando ao controlador que houve sucesso na operacao
|
---|
462 | return true;
|
---|
463 | }
|
---|
464 | else
|
---|
465 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
466 | //caso houvesse alguma validação a ser feita
|
---|
467 | return false;
|
---|
468 | }
|
---|
469 | }
|
---|
470 |
|
---|
471 | ?>
|
---|
472 | ]]></code> </include> |
---|
473 | <include> |
---|
474 | <name>class.consultar.model.inc.php</name> |
---|
475 | <code><![CDATA[<?php
|
---|
476 | /**
|
---|
477 | * @brief Implementa atividade de consulta ao catálogo de cds.
|
---|
478 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
479 | * @name ConsultarModel
|
---|
480 | * @version 1.1
|
---|
481 | */
|
---|
482 | class ConsultarModel extends Model
|
---|
483 | {
|
---|
484 | /**
|
---|
485 | * @brief Implementação para a ação de inversao de status dos cds.
|
---|
486 | * @public.
|
---|
487 | * @return boolean.
|
---|
488 | */
|
---|
489 | function inverterStatusAction ( )
|
---|
490 | {
|
---|
491 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
492 | if ( true )
|
---|
493 | {
|
---|
494 |
|
---|
495 | // obtem o id do cd solicitado no formulário e passado por post no atributo params
|
---|
496 | $bindvars = array($this->request['params']);
|
---|
497 |
|
---|
498 | // pega o registro do cd no banco e separa o campo status.
|
---|
499 | $this->commandText =
|
---|
500 | "SELECT status from cds.cdcollection where cdid = ?";
|
---|
501 | $this->resultSet = $this->DAO->query($this->commandText, $bindvars);
|
---|
502 | $linha = $this->resultSet->fetchRow ( DB_FETCHMODE_ASSOC );
|
---|
503 | $status_atual = $linha['status'];
|
---|
504 |
|
---|
505 | //caso o status do cd esteja como disponivel
|
---|
506 | if ( $status_atual == 'disponivel' )
|
---|
507 | {
|
---|
508 | //armazena consulta no atributo de comandos SQL
|
---|
509 | //note que as palavras reservadas do SQL estão em maiusculas
|
---|
510 | //e as outras em minúsculas
|
---|
511 | $this->commandText =
|
---|
512 | "UPDATE cds.cdcollection SET status = 'indisponivel' WHERE cdid = ?";
|
---|
513 | //armazena resultado da consulta no atributo adequado
|
---|
514 | //altera o status para indisponivel
|
---|
515 | $this->resultSet = $this->DAO->query($this->commandText, $bindvars);
|
---|
516 | }
|
---|
517 |
|
---|
518 | //caso o status do cd esteja como indisponivel
|
---|
519 | if ( $status_atual == 'indisponivel' )
|
---|
520 | {
|
---|
521 | //armazena consulta no atributo de comandos SQL
|
---|
522 | //note que as palavras reservadas do SQL estão em maiúsculas
|
---|
523 | //e as outras em minusculas
|
---|
524 | $this->commandText =
|
---|
525 | "UPDATE cds.cdcollection SET status = 'disponivel' WHERE cdid = ?";
|
---|
526 |
|
---|
527 | //armazena resultado da consulta no atributo adequado
|
---|
528 | //altera o status para disponivel
|
---|
529 | $this->resultSet = $this->DAO->query($this->commandText, $bindvars);
|
---|
530 | }
|
---|
531 |
|
---|
532 | //retorna true indicando ao controlador que houve sucesso na operacao
|
---|
533 | return true;
|
---|
534 | }
|
---|
535 | else
|
---|
536 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
537 | //caso houvesse alguma validacao a ser feita
|
---|
538 | return false;
|
---|
539 |
|
---|
540 | }
|
---|
541 |
|
---|
542 | /**
|
---|
543 | * @brief Implementação para a ação padrão da atividade.
|
---|
544 | * @public.
|
---|
545 | * @return boolean.
|
---|
546 | */
|
---|
547 | function defaultAction ( )
|
---|
548 | {
|
---|
549 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
550 | if ( true )
|
---|
551 | {
|
---|
552 | //armazena consulta no atributo de comandos SQL
|
---|
553 | //note que as palavras reservadas do SQL estão em maiusculas
|
---|
554 | //e as outras em minusculas
|
---|
555 | $this->commandText = "SELECT * FROM cds.cdcollection order by title";
|
---|
556 |
|
---|
557 | //armazena resultado da consulta no atributo adequado
|
---|
558 | $this->resultSet = $this->DAO->query($this->commandText);
|
---|
559 |
|
---|
560 | $ret = array();
|
---|
561 |
|
---|
562 | //recupera os valores da consulta
|
---|
563 | while ( $res = $this->resultSet->fetchRow ( DB_FETCHMODE_ASSOC ) )
|
---|
564 | $ret[] = $res;
|
---|
565 |
|
---|
566 | //salva os valores da consulta no atributo de variáveis da camada view
|
---|
567 | $this->addViewVar( 'cds' , $ret );
|
---|
568 | $this->addViewVar("activity_title", "Music CD Loans");
|
---|
569 |
|
---|
570 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
571 | return true;
|
---|
572 | }
|
---|
573 | else
|
---|
574 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
575 | //caso houvesse alguma validacao a ser feita
|
---|
576 | return false;
|
---|
577 | }
|
---|
578 | }
|
---|
579 |
|
---|
580 | ?>
|
---|
581 | ]]></code> </include> |
---|
582 | <include> |
---|
583 | <name>class.aprovar.model.inc.php</name> |
---|
584 | <code><![CDATA[<?php
|
---|
585 | /**
|
---|
586 | * @brief Implementa atividade de aprovação de solicitação de cds do catálogo.
|
---|
587 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
588 | * @class AprovarModel
|
---|
589 | * @version 1.1
|
---|
590 | */
|
---|
591 | class AprovarModel extends Model
|
---|
592 | {
|
---|
593 | /**
|
---|
594 | * @brief Implementação da ação de aprovar solicitação de cd.
|
---|
595 | * @public.
|
---|
596 | * @return boolean.
|
---|
597 | */
|
---|
598 | function aprovarAction ( )
|
---|
599 | {
|
---|
600 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
601 | if ( true )
|
---|
602 | {
|
---|
603 | //atualiza atributos com dados vindos do engine workflow
|
---|
604 | $this->updateAttributes ( );
|
---|
605 |
|
---|
606 | //atualiza atributo
|
---|
607 | $this->_cdStatus = 'aprovado';
|
---|
608 |
|
---|
609 | //atualiza dados do engine workflow
|
---|
610 | $this->updateInstance ( );
|
---|
611 |
|
---|
612 | //armazena consulta no atributo de comandos SQL
|
---|
613 | //note que as palavras reservadas do SQL estão em maiusculas
|
---|
614 | //e as outras em minusculas
|
---|
615 | $this->commandText = "UPDATE cds.cdcollection SET status = 'indisponivel' WHERE cdid = " . $this->_cdId;
|
---|
616 |
|
---|
617 | //armazena resultado da consulta no atributo adequado
|
---|
618 | $this->resultSet = $this->DAO->query($this->commandText);
|
---|
619 |
|
---|
620 | //indica que a atividade atual está completada
|
---|
621 | $this->instance->complete ( );
|
---|
622 |
|
---|
623 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
624 | return true;
|
---|
625 | }
|
---|
626 | else
|
---|
627 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
628 | //caso houvesse alguma validação a ser feita
|
---|
629 | return false;
|
---|
630 | }
|
---|
631 |
|
---|
632 | /**
|
---|
633 | * @brief Implementação da ação de rejeitar solicitação de cd.
|
---|
634 | * @public.
|
---|
635 | * @return boolean.
|
---|
636 | */
|
---|
637 | function rejeitarAction ( )
|
---|
638 | {
|
---|
639 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
640 | if ( true )
|
---|
641 | {
|
---|
642 | //atualiza atributos com dados vindos do engine workflow
|
---|
643 | $this->updateAttributes ( );
|
---|
644 |
|
---|
645 | //atualiza atributo
|
---|
646 | $this->_cdStatus = 'rejeitado';
|
---|
647 |
|
---|
648 | //atualiza dados do engine workflow
|
---|
649 | $this->updateInstance ( );
|
---|
650 |
|
---|
651 | //indica que a atividade atual está completada
|
---|
652 | $this->instance->complete ( );
|
---|
653 |
|
---|
654 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
655 | return true;
|
---|
656 | }
|
---|
657 | else
|
---|
658 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
659 | //caso houvesse alguma validacao a ser feita
|
---|
660 | return false;
|
---|
661 | }
|
---|
662 |
|
---|
663 | /**
|
---|
664 | * @brief Implementação para a ação padrão da atividade.
|
---|
665 | * @public.
|
---|
666 | * @return boolean.
|
---|
667 | */
|
---|
668 | function defaultAction ( )
|
---|
669 | {
|
---|
670 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
671 | if ( true )
|
---|
672 | {
|
---|
673 | //atualiza atributos com dados vindos do engine workflow
|
---|
674 | $this->updateAttributes ( );
|
---|
675 |
|
---|
676 | //armazena consulta no atributo de comandos SQL
|
---|
677 | //note que as palavras reservadas do SQL estão em maiusculas
|
---|
678 | //e as outras em minusculas
|
---|
679 | $this->commandText = "SELECT * FROM cds.cdcollection WHERE cdid = " . $this->_cdId;
|
---|
680 |
|
---|
681 | //armazena resultado da consulta no atributo adequado
|
---|
682 | $this->resultSet = $this->DAO->query($this->commandText);
|
---|
683 |
|
---|
684 | //recupera os valores da consulta
|
---|
685 | $row = $this->resultSet->fetchRow ( DB_FETCHMODE_ASSOC );
|
---|
686 |
|
---|
687 | //salva os valores da consulta no atributo de variáveis da camada view
|
---|
688 | $this->addViewVar ( 'info' , $row );
|
---|
689 | $this->addViewVar ( 'activity_title', "Music CD Loans");
|
---|
690 |
|
---|
691 | //atualiza atributo com dados vindos da consulta
|
---|
692 | $this->_cdTitle = $row['title'];
|
---|
693 | $this->_cdStatus = $row['status'];
|
---|
694 |
|
---|
695 | //atualiza dados do engine workflow
|
---|
696 | $this->updateInstance ( );
|
---|
697 |
|
---|
698 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
699 | return true;
|
---|
700 | }
|
---|
701 | else
|
---|
702 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
703 | //caso houvesse alguma validação a ser feita
|
---|
704 | return false;
|
---|
705 | }
|
---|
706 | }
|
---|
707 |
|
---|
708 | ?>
|
---|
709 | ]]></code> </include> |
---|
710 | <include> |
---|
711 | <name>class.model.inc.php</name> |
---|
712 | <code><![CDATA[<?php
|
---|
713 | /**
|
---|
714 | * @brief Implementa processo de empréstimo de cds.
|
---|
715 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
716 | * @class Model
|
---|
717 | * @version 1.1
|
---|
718 | */
|
---|
719 | class Model extends BaseModel
|
---|
720 | {
|
---|
721 | /* Inicio declaração de atributos */
|
---|
722 |
|
---|
723 | /**
|
---|
724 | * @brief Identificação do cd.
|
---|
725 | * @var int
|
---|
726 | * @protected
|
---|
727 | */
|
---|
728 | var $_cdId = 0;
|
---|
729 |
|
---|
730 | /**
|
---|
731 | * @brief Título do cd.
|
---|
732 | * @var string
|
---|
733 | * @protected
|
---|
734 | */
|
---|
735 | var $_cdTitle = "";
|
---|
736 |
|
---|
737 | /**
|
---|
738 | * @brief Status do cd.
|
---|
739 | * @var string
|
---|
740 | * @protected
|
---|
741 | */
|
---|
742 | var $_cdStatus = "";
|
---|
743 |
|
---|
744 | /* Fim declaração de atributos */
|
---|
745 |
|
---|
746 |
|
---|
747 | /**
|
---|
748 | * Construtor da camada Model em nivel de processo
|
---|
749 | *
|
---|
750 | * @return Model
|
---|
751 | * @param array $env Configuracao MVC
|
---|
752 | * @param boolean $autoAssign Preenche automaticamente os atributos com os valores de $_REQUEST
|
---|
753 | * @public
|
---|
754 | * @attention Sobrescrita opcional do construtor da classe BaseModel
|
---|
755 | * @attention O construtor deverá executar OBRIGATORIAMENTE o método BaseModel::super(&$env, $autoAssign)
|
---|
756 | * @warning O valor padrão de $autoAssign em BaseModel é false
|
---|
757 | */
|
---|
758 | function Model(&$env) {
|
---|
759 | $this->super(&$env);
|
---|
760 | }
|
---|
761 |
|
---|
762 | }
|
---|
763 | ?>
|
---|
764 | ]]></code> </include> |
---|
765 | <include> |
---|
766 | <name>class.controller.inc.php</name> |
---|
767 | <code><![CDATA[<?php
|
---|
768 | /**
|
---|
769 | * @brief Gerencia processo de empréstimo de cds.
|
---|
770 | * @author Carlos Eduardo Nogueira Gonçalves
|
---|
771 | * @class Controller
|
---|
772 | * @version 1.1
|
---|
773 | */
|
---|
774 | class Controller extends BaseController
|
---|
775 | {
|
---|
776 | /* Início declaração de constantes */
|
---|
777 |
|
---|
778 | /**
|
---|
779 | * @brief Template da atividade Consultar
|
---|
780 | * @var string
|
---|
781 | * @protected
|
---|
782 | */
|
---|
783 | var $BROWSE = 'Browse_CDs.tpl';
|
---|
784 |
|
---|
785 | /**
|
---|
786 | * @brief Template da atividade Aprovar
|
---|
787 | * @var string
|
---|
788 | * @protected
|
---|
789 | */
|
---|
790 | var $APPROVE = 'Approve_CD_request.tpl';
|
---|
791 |
|
---|
792 | /**
|
---|
793 | * @brief Template da atividade Solicitar
|
---|
794 | * @var string
|
---|
795 | * @protected
|
---|
796 | */
|
---|
797 | var $REQUEST = 'Request_CD.tpl';
|
---|
798 |
|
---|
799 | /**
|
---|
800 | * @brief Template da atividade Concluir
|
---|
801 | * @var string
|
---|
802 | * @protected
|
---|
803 | */
|
---|
804 | var $ACK = 'Ack_result.tpl';
|
---|
805 |
|
---|
806 | /* Fim declaração de constantes */
|
---|
807 |
|
---|
808 |
|
---|
809 | /**
|
---|
810 | * Process startup settings
|
---|
811 | *
|
---|
812 | * @return object
|
---|
813 | * @param object $model Model layer instance for activities business logic
|
---|
814 | * @param array $env MVC environment settings
|
---|
815 | * @access protected
|
---|
816 | */
|
---|
817 | function Controller(&$model , &$env)
|
---|
818 | {
|
---|
819 | $this->super(&$model , &$env);
|
---|
820 | }
|
---|
821 | }
|
---|
822 | ?>
|
---|
823 | ]]></code> </include> |
---|
824 | <include> |
---|
825 | <name>class.aprovar.controller.inc.php</name> |
---|
826 | <code><![CDATA[<?php
|
---|
827 |
|
---|
828 | /**
|
---|
829 | * @brief Gerencia atividade de aprovação de solicitação de cds do catálogo.
|
---|
830 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
831 | * @class AprovarController
|
---|
832 | * @version 1.1
|
---|
833 | */
|
---|
834 | class AprovarController extends Controller
|
---|
835 | {
|
---|
836 | /**
|
---|
837 | * Chama a implementação da ação de aprovar solicitação de cd.
|
---|
838 | *
|
---|
839 | * @return boolean
|
---|
840 | * @access private
|
---|
841 | */
|
---|
842 | function aprovar ( )
|
---|
843 | {
|
---|
844 | $this->model->aprovarAction ( );
|
---|
845 | }
|
---|
846 |
|
---|
847 | /**
|
---|
848 | * Chama a implementação da ação de rejeitar solicitação de cd.
|
---|
849 | *
|
---|
850 | * @return boolean
|
---|
851 | * @access private
|
---|
852 | */
|
---|
853 | function rejeitar ( )
|
---|
854 | {
|
---|
855 | $this->model->rejeitarAction ( );
|
---|
856 | }
|
---|
857 |
|
---|
858 | /**
|
---|
859 | * Ação padrão da atividade.
|
---|
860 | *
|
---|
861 | * @return boolean
|
---|
862 | * @access private
|
---|
863 | */
|
---|
864 | function __default ( )
|
---|
865 | {
|
---|
866 | $this->model->defaultAction ( );
|
---|
867 | $this->loadViewVars ( );
|
---|
868 | }
|
---|
869 |
|
---|
870 | /**
|
---|
871 | * Execução da atividade.
|
---|
872 | *
|
---|
873 | * @return void
|
---|
874 | * @access public
|
---|
875 | */
|
---|
876 | function run ( $action )
|
---|
877 | {
|
---|
878 | //abre conexão com o banco para todas as ações
|
---|
879 | //evitando duplicação de código, pois ambas necessitam
|
---|
880 | //acessar o banco de dados
|
---|
881 | $this->model->DAO->connect ( );
|
---|
882 |
|
---|
883 | $this->dispatch($action);
|
---|
884 |
|
---|
885 | //fecha a conexão com o banco
|
---|
886 | $this->model->DAO->disconnect ( );
|
---|
887 | }
|
---|
888 | }
|
---|
889 |
|
---|
890 | ?>
|
---|
891 | ]]></code> </include> |
---|
892 | <include> |
---|
893 | <name>class.solicitar.controller.inc.php</name> |
---|
894 | <code><![CDATA[<?php
|
---|
895 |
|
---|
896 | /**
|
---|
897 | * @brief Gerencia atividade de solicitação de cds do catálogo.
|
---|
898 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
899 | * @class SolicitarController
|
---|
900 | * @version 1.1
|
---|
901 | */
|
---|
902 | class SolicitarController extends Controller
|
---|
903 | {
|
---|
904 | /**
|
---|
905 | * Chama a implementação da ação de solicitação de cd.
|
---|
906 | *
|
---|
907 | * @return boolean
|
---|
908 | * @access private
|
---|
909 | */
|
---|
910 | function solicitar ( )
|
---|
911 | {
|
---|
912 | $this->model->solicitarAction ( );
|
---|
913 | }
|
---|
914 |
|
---|
915 | /**
|
---|
916 | * Ação padrão da atividade.
|
---|
917 | *
|
---|
918 | * @return boolean
|
---|
919 | * @access private
|
---|
920 | */
|
---|
921 | function __default ( )
|
---|
922 | {
|
---|
923 | $this->model->defaultAction ( );
|
---|
924 | $this->loadViewVars ( );
|
---|
925 | }
|
---|
926 |
|
---|
927 | /**
|
---|
928 | * Execução da atividade.
|
---|
929 | *
|
---|
930 | * @return void
|
---|
931 | * @access public
|
---|
932 | */
|
---|
933 | function run ( $action )
|
---|
934 | {
|
---|
935 | //abre conexão com o banco para todas as ações
|
---|
936 | //evitando duplicação de código, pois ambas necessitam
|
---|
937 | //acessar o banco de dados
|
---|
938 | $this->model->DAO->connect ( );
|
---|
939 |
|
---|
940 | $this->dispatch($action);
|
---|
941 |
|
---|
942 | //fecha a conexao com o banco
|
---|
943 | $this->model->DAO->disconnect ( );
|
---|
944 | }
|
---|
945 | }
|
---|
946 |
|
---|
947 | ?>
|
---|
948 | ]]></code> </include> |
---|
949 | <include> |
---|
950 | <name>class.concluir.model.inc.php</name> |
---|
951 | <code><![CDATA[<?php
|
---|
952 | /**
|
---|
953 | * @brief Implementa atividade de exibição de resultado.
|
---|
954 | * @author Carlos Eduardo Nogueira Gonçalves.
|
---|
955 | * @class ConcluirModel
|
---|
956 | * @version 1.1
|
---|
957 | */
|
---|
958 | class ConcluirModel extends Model
|
---|
959 | {
|
---|
960 | /**
|
---|
961 | * @brief Implementação para a ação ok (usuário confirma que recebeu o cd).
|
---|
962 | * @public.
|
---|
963 | * @return boolean.
|
---|
964 | */
|
---|
965 | function okayAction ( )
|
---|
966 | {
|
---|
967 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
968 | if ( true )
|
---|
969 | {
|
---|
970 | //indica que a atividade atual está completada
|
---|
971 | $this->instance->complete ( );
|
---|
972 |
|
---|
973 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
974 | return true;
|
---|
975 | }
|
---|
976 | else
|
---|
977 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
978 | //caso houvesse alguma validação a ser feita
|
---|
979 | return false;
|
---|
980 | }
|
---|
981 |
|
---|
982 | /**
|
---|
983 | * @brief Implementação para a ação padrão da atividade.
|
---|
984 | * @public.
|
---|
985 | * @return boolean.
|
---|
986 | */
|
---|
987 | function defaultAction ( )
|
---|
988 | {
|
---|
989 | /* substituir true abaixo por chamada a algum método validador, caso haja necessidade */
|
---|
990 | if ( true )
|
---|
991 | {
|
---|
992 | //salva os valores do engine workflow no atributo de variáveis da camada view
|
---|
993 | $this->updateAttributes();
|
---|
994 | $this->addViewVar( 'status' , $this->_cdStatus);
|
---|
995 | $this->addViewVar( 'title' , $this->_cdTitle);
|
---|
996 | $this->addViewVar( 'activity_title' , "Music CD Loans" );
|
---|
997 |
|
---|
998 | //retorna true indicando ao controlador que houve sucesso na operação
|
---|
999 | return true;
|
---|
1000 | }
|
---|
1001 | else
|
---|
1002 | // nunca vai rodar, indicaria ao controlador que houve falha
|
---|
1003 | //caso houvesse alguma validação a ser feita
|
---|
1004 | return false;
|
---|
1005 | }
|
---|
1006 | }
|
---|
1007 |
|
---|
1008 | ?>
|
---|
1009 | ]]></code> </include> |
---|
1010 | </includes> |
---|
1011 | <resources> |
---|
1012 | <resource> |
---|
1013 | <name>icon.png</name> |
---|
1014 | <bindata><![CDATA[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
---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
---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
---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
---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
---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
---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
---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
---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
---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
---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
---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
---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
---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
---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
---|
1029 | KNEYbdHaomw7uDGOVqJIUo1KDdNTNQ4cmGJycppmM27nhBQgoFAIyRdyBEGAkKI93zpqjZhNp6/N
|
---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
---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
---|
1032 | IGVKX18vlVLxPdnbaDb5xxtv4PsFRNbDOoe2BmMs2liqjYgkVTSjhGNWLMsMHL1m0+uvPvtXCchV
|
---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
---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
---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
---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
---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
---|
1038 | nTj8k4EVq09oWiVHx7RoplCNDQpHrWGo1SLyRZ9U6fajDWmqSVKFtVCvTbcA5QP14X1DE9nMqf0q
|
---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
---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
---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
---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
---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
---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
---|
1045 | /7xU6UClCdkwIAzaoJnAIxu0a/pc7zdGU280mZicpBUnhGGOXL5APUqZqjZJlSVJFdrY2bpimddd
|
---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
---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
---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
---|
1049 | AgBTL29/dvveoQMrN23evCg/W9PTVLePddbR1sDBbKs2zqGVIU0NrUTTaCU0mjGp0jjnWLygh/6e
|
---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
---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
---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
---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
---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
|
---|
1055 | fdmwP+RfAAAAAElFTkSuQmCC
|
---|
1056 | ]]></bindata> </resource> |
---|
1057 | </resources> |
---|
1058 | <transitions> |
---|
1059 | <transition> |
---|
1060 | <from>Solicitar</from> |
---|
1061 | <to>Aprovar</to> |
---|
1062 | </transition> |
---|
1063 | <transition> |
---|
1064 | <from>Aprovar</from> |
---|
1065 | <to>Concluir</to> |
---|
1066 | </transition> |
---|
1067 | <transition> |
---|
1068 | <from>Concluir</from> |
---|
1069 | <to>end</to> |
---|
1070 | </transition> |
---|
1071 | </transitions> |
---|
1072 | </process> |
---|