source: branches/1.2/workflow/inc/class.bo_orgchart.inc.php @ 1349

Revision 1349, 19.7 KB checked in by niltonneto, 15 years ago (diff)

Ticket #561 - Inclusão do módulo Workflow faltante nessa versão.

  • Property svn:executable set to *
Line 
1<?php
2/**************************************************************************\
3* eGroupWare                                                               *
4* http://www.egroupware.org                                                *
5* --------------------------------------------                             *
6*  This program is free software; you can redistribute it and/or modify it *
7*  under the terms of the GNU General Public License as published by the   *
8*  Free Software Foundation; either version 2 of the License, or (at your  *
9*  option) any later version.                                              *
10\**************************************************************************/
11
12require_once('class.so_orgchart.inc.php');
13require_once('class.bo_ajaxinterface.inc.php');
14/**
15 * Camada Business do Organograma.
16 * @package Workflow
17 * @author Sidnei Augusto Drovetto Jr. - drovetto@gmail.com
18 * @license http://www.gnu.org/copyleft/gpl.html GPL
19 */
20class bo_orgchart extends bo_ajaxinterface
21{
22        /**
23         * @var object $so Acesso à camada Model do Organograma.
24         * @access private
25         */
26        private $so;
27
28        /**
29         * Verifica se o valor de uma variável pode ser considerado NULL. Se sim, retorna NULL caso contrário retorna o próprio valor passado.
30         * @param mixed $value O valor que será verificado.
31         * @return mixed Será retornado o valor passado no parâmetro ou NULL.
32         * @access private
33         */
34        private function _nullReplace($value)
35        {
36                if (($value == 'NULL') || ($value == ''))
37                        return null;
38                else
39                        return $value;
40        }
41        /**
42         * Construtor da classe bo_orgchart
43         * @return object
44         * @access public
45         */
46        function bo_orgchart()
47        {
48                parent::bo_ajaxinterface();
49                $this->so = new so_orgchart();
50        }
51
52        /**
53         * Lista todas as organizações do Organograma.
54         * @return array Lista de organizações.
55         * @access public
56         */
57        function listOrganization()
58        {
59                $result = $this->so->getOrganizations();
60                $this->disconnect_all();
61
62                return $result;
63        }
64
65        /**
66         * Adiciona uma organização.
67         * @param array $params Uma array contendo os parâmetros necessários para adicionar uma organização (Ajax).
68         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
69         * @access public
70         */
71        function addOrganization($params)
72        {
73                $result = $this->so->addOrganization($params['nome'], $params['descricao'], $params['url_imagem'], $params['ativa']);
74                $this->disconnect_all();
75
76                return $result;
77        }
78
79        /**
80         * Atualiza uma organização.
81         * @param array $params Uma array contendo os parâmetros da organização que serão modificados (Ajax).
82         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
83         * @access public
84         */
85        function updateOrganization($params)
86        {
87                $result = $this->so->updateOrganization($params['nome'], $params['descricao'], $params['url_imagem'], $params['ativa'], $params['organizacao_id']);
88                $this->disconnect_all();
89
90                return $result;
91        }
92
93        /**
94         * Remove uma organização.
95         * @param array $params Uma array contendo o ID da organização que será excluída (Ajax).
96         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
97         * @access public
98         */
99        function removeOrganization($params)
100        {
101                $result = $this->so->removeOrganization($params['organizacao_id']);
102                $this->disconnect_all();
103
104                return $result;
105        }
106
107        /**
108         * Lista os possíveis status dos funcionários.
109         * @param array $params Uma array contendo o ID da organização de onde os status dos empregados serão listados (Ajax).
110         * @return array Lista dos possíveis status dos empregados.
111         * @access public
112         */
113        function listEmployeeStatus($params)
114        {
115                $result = $this->so->getEmployeeStatus($params['organizacao_id']);
116                $this->disconnect_all();
117
118                return $result;
119        }
120
121        /**
122         * Adiciona um Status de funcionário.
123         * @param array $params Uma array contendo os parâmetros necessários para adicionar um status de funcionário (Ajax).
124         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
125         * @access public
126         */
127        function addEmployeeStatus($params)
128        {
129                $result = $this->so->addEmployeeStatus($params['organizacao_id'], $params['descricao'], $params['exibir']);
130                $this->disconnect_all();
131
132                return $result;
133        }
134
135        /**
136         * Atualiza um Status de funcionário.
137         * @param array $params Uma array contendo os parâmetros do status de funcionário que podem ser alterados (Ajax).
138         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
139         * @access public
140         */
141        function updateEmployeeStatus($params)
142        {
143                $result = $this->so->updateEmployeeStatus($params['funcionario_status_id'], $params['organizacao_id'], $params['descricao'], $params['exibir']);
144                $this->disconnect_all();
145
146                return $result;
147        }
148
149        /**
150         * Remove um Status de funcionário.
151         * @param array $params Uma array contendo a organização e o ID do status de funcionário que será excluído (Ajax).
152         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
153         * @access public
154         */
155        function removeEmployeeStatus($params)
156        {
157                $result = $this->so->removeEmployeeStatus($params['funcionario_status_id'], $params['organizacao_id']);
158                $this->disconnect_all();
159
160                return $result;
161        }
162
163        /**
164         * Lista as possíveis categorias de uma organização.
165         * @param array $params Uma array contendo o ID da organização de onde as categorias serão listadas (Ajax).
166         * @return array Lista dos possíveis categorias.
167         * @access public
168         */
169        function listEmployeeCategory($params)
170        {
171                $result = $this->so->getEmployeeCategory($params['organizacao_id']);
172                $this->disconnect_all();
173
174                return $result;
175        }
176
177        /**
178         * Adiciona uma categoria.
179         * @param array $params Uma array contendo os parâmetros necessários para adicionar uma categoria (Ajax).
180         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
181         * @access public
182         */
183        function addEmployeeCategory($params)
184        {
185                $result = $this->so->addEmployeeCategory($params['organizacao_id'], $params['descricao']);
186                $this->disconnect_all();
187
188                return $result;
189        }
190
191        /**
192         * Atualiza uma categoria.
193         * @param array $params Uma array contendo os parâmetros da categoria que podem ser alterados (Ajax).
194         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
195         * @access public
196         */
197        function updateEmployeeCategory($params)
198        {
199                $result = $this->so->updateEmployeeCategory($params['funcionario_categoria_id'], $params['organizacao_id'], $params['descricao']);
200                $this->disconnect_all();
201
202                return $result;
203        }
204
205        /**
206         * Remove uma categoria.
207         * @param array $params Uma array contendo o ID da categoria que será excluída e de sua organização (Ajax).
208         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
209         * @access public
210         */
211        function removeEmployeeCategory($params)
212        {
213                $result = $this->so->removeEmployeeCategory($params['funcionario_categoria_id'], $params['organizacao_id']);
214                $this->disconnect_all();
215
216                return $result;
217        }
218
219        /**
220         * Lista os possíveis cargos de uma organização.
221         * @param array $params Uma array contendo o ID da organização de onde os cargos serão listados (Ajax).
222         * @return array Lista dos possíveis cargos.
223         * @access public
224         */
225        function listJobTitle($params)
226        {
227                $result = $this->so->getJobTitle($params['organizacao_id']);
228                $this->disconnect_all();
229
230                return $result;
231        }
232
233        /**
234         * Adiciona um cargo.
235         * @param array $params Uma array contendo os parâmetros necessários para adicionar um cargo (Ajax).
236         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
237         * @access public
238         */
239        function addJobTitle($params)
240        {
241                $result = $this->so->addJobTitle($params['organizacao_id'], $params['descricao']);
242                $this->disconnect_all();
243
244                return $result;
245        }
246
247        /**
248         * Atualiza um cargo.
249         * @param array $params Uma array contendo os parâmetros do cargo que podem ser alterados (Ajax).
250         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
251         * @access public
252         */
253        function updateJobTitle($params)
254        {
255                $result = $this->so->updateJobTitle($params['cargo_id'], $params['organizacao_id'], $params['descricao']);
256                $this->disconnect_all();
257
258                return $result;
259        }
260
261        /**
262         * Remove um cargo.
263         * @param array $params Uma array contendo o ID do cargo que será excluído e de sua organização (Ajax).
264         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
265         * @access public
266         */
267        function removeJobTitle($params)
268        {
269                $result = $this->so->removeJobTitle($params['cargo_id'], $params['organizacao_id']);
270                $this->disconnect_all();
271
272                return $result;
273        }
274
275        /**
276         * Lista os possíveis status de área.
277         * @param array $params Uma array contendo o ID da organização de onde os status de área serão listados (Ajax).
278         * @return array Lista dos possíveis status de área.
279         * @access public
280         */
281        function listAreaStatus($params)
282        {
283                $result = $this->so->getAreaStatus($params['organizacao_id']);
284                $this->disconnect_all();
285
286                return $result;
287        }
288
289        /**
290         * Adiciona um status de área.
291         * @param array $params Uma array contendo os parâmetros necessários para adicionar um status de área (Ajax).
292         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
293         * @access public
294         */
295        function addAreaStatus($params)
296        {
297                $result = $this->so->addAreaStatus($params['organizacao_id'], $params['descricao'], $params['nivel']);
298                $this->disconnect_all();
299
300                return $result;
301        }
302
303        /**
304         * Atualiza um status de área.
305         * @param array $params Uma array contendo os parâmetros do status de área que podem ser alterados (Ajax).
306         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
307         * @access public
308         */
309        function updateAreaStatus($params)
310        {
311                $result = $this->so->updateAreaStatus($params['area_status_id'], $params['organizacao_id'], $params['descricao'], $params['nivel']);
312                $this->disconnect_all();
313
314                return $result;
315        }
316
317        /**
318         * Remove um status de área.
319         * @param array $params Uma array contendo o ID do status de área que será excluído e de sua organização (Ajax).
320         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
321         * @access public
322         */
323        function removeAreaStatus($params)
324        {
325                $result = $this->so->removeAreaStatus($params['area_status_id'], $params['organizacao_id']);
326                $this->disconnect_all();
327
328                return $result;
329        }
330
331        /**
332         * Lista os centros de custo de uma organização.
333         * @param array $params Uma array contendo o ID da organização dos centros de custo (Ajax).
334         * @return array Lista dos centros de custo de uma organização.
335         * @access public
336         */
337        function listCostCenter($params)
338        {
339                $result = $this->so->getCostCenter($params['organizacao_id']);
340                $this->disconnect_all();
341
342                return $result;
343        }
344
345        /**
346         * Adiciona um centro de custo.
347         * @param array $params Uma array contendo os parâmetros necessários para adicionar um centro de custo (Ajax).
348         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
349         * @access public
350         */
351        function addCostCenter($params)
352        {
353                $result = $this->so->addCostCenter($params['organizacao_id'], $params['nm_centro_custo'], $params['descricao'], $params['grupo']);
354                $this->disconnect_all();
355
356                return $result;
357        }
358
359        /**
360         * Atualiza um centro de custo.
361         * @param array $params Uma array contendo os parâmetros do centro de custo que podem ser alterados (Ajax).
362         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
363         * @access public
364         */
365        function updateCostCenter($params)
366        {
367                $result = $this->so->updateCostCenter($params['organizacao_id'], $params['nm_centro_custo'], $params['descricao'], $params['grupo'], $params['centro_custo_id']);
368                $this->disconnect_all();
369
370                return $result;
371        }
372
373        /**
374         * Remove um centro de custo.
375         * @param array $params Uma array contendo o ID do centro de custo que será excluído e de sua organização (Ajax).
376         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
377         * @access public
378         */
379        function removeCostCenter($params)
380        {
381                $result = $this->so->removeCostCenter($params['centro_custo_id'], $params['organizacao_id']);
382                $this->disconnect_all();
383
384                return $result;
385        }
386
387        /**
388         * Lista as localidades de uma organização.
389         * @param array $params Uma array contendo o ID da organização das localidades (Ajax).
390         * @return array Lista das localidades de uma organização.
391         * @access public
392         */
393        function listLocal($params)
394        {
395                $result = $this->so->getLocal($params['organizacao_id']);
396                $this->disconnect_all();
397
398                return $result;
399        }
400
401        /**
402         * Adiciona uma localidade.
403         * @param array $params Uma array contendo os parâmetros necessários para adicionar uma localidade (Ajax).
404         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
405         * @access public
406         */
407        function addLocal($params)
408        {
409                $result = $this->so->addLocal($params['organizacao_id'], $this->_nullReplace($params['centro_custo_id']), $params['descricao']);
410                $this->disconnect_all();
411
412                return $result;
413        }
414
415        /**
416         * Atualiza uma localidade.
417         * @param array $params Uma array contendo os parâmetros da localidade que podem ser alterados (Ajax).
418         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
419         * @access public
420         */
421        function updateLocal($params)
422        {
423                $result = $this->so->updateLocal($params['organizacao_id'], $this->_nullReplace($params['centro_custo_id']), $params['descricao'], $params['localidade_id']);
424                $this->disconnect_all();
425
426                return $result;
427        }
428
429        /**
430         * Remove uma localidade.
431         * @param array $params Uma array contendo o ID da localidade que será excluída e de sua organização (Ajax).
432         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
433         * @access public
434         */
435        function removeLocal($params)
436        {
437                $result = $this->so->removeLocal($params['localidade_id'], $params['organizacao_id']);
438                $this->disconnect_all();
439
440                return $result;
441        }
442
443        /**
444         * Lista os funcionários de uma área.
445         * @param array $params Uma array contendo o ID da organização dos funcionários e de uma área desta organização (Ajax).
446         * @return array Lista dos funcionários de uma área.
447         * @access public
448         */
449        function listAreaEmployee($params)
450        {
451                $result = $this->so->getAreaEmployee($params['area_id'], $params['organizacao_id']);
452                $this->disconnect_all();
453
454                return $result;
455        }
456
457        /**
458         * Lista de funcionários que satisfazem um determinados critério de busca.
459         * @param array $params Uma array contendo o ID da organização dos funcionários e o critério de busca (Ajax).
460         * @return array Lista das localidades de uma organização.
461         * @access public
462         */
463        function searchEmployee($params)
464        {
465                if (!ereg('^([[:alnum:] ]+)$', $params['search_term']))
466                        die(serialize("Parametro de busca inválido"));
467                $result = $this->so->searchEmployee($params['search_term'], $params['organizacao_id']);
468                $this->disconnect_all();
469
470                usort($result, create_function('$a,$b', 'return strcasecmp($a[\'funcionario_id_desc\'],$b[\'funcionario_id_desc\']);'));
471                return $result;
472        }
473
474        /**
475         * Adiciona um funcionário.
476         * @param array $params Uma array contendo os parâmetros necessários para adicionar um funcionário (Ajax).
477         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
478         * @access public
479         */
480        function addEmployee($params)
481        {
482                $result = $this->so->addEmployee($params['funcionario_id'], $params['organizacao_id'], $params['area_id'], $this->_nullReplace($params['centro_custo_id']), $params['localidade_id'], $params['funcionario_status_id'], $this->_nullReplace($params['cargo_id']), $this->_nullReplace($params['nivel']), $this->_nullReplace($params['funcionario_categoria_id']));
483                $this->disconnect_all();
484
485                return $result;
486        }
487
488        /**
489         * Atualiza funcionário.
490         * @param array $params Uma array contendo os parâmetros do funcionário que podem ser alterados (Ajax).
491         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
492         * @access public
493         */
494        function updateEmployee($params)
495        {
496                $result = $this->so->updateEmployee($params['funcionario_id'], $params['organizacao_id'], $params['area_id'], $this->_nullReplace($params['centro_custo_id']), $params['localidade_id'], $params['funcionario_status_id'], $this->_nullReplace($params['cargo_id']), $this->_nullReplace($params['nivel']), $this->_nullReplace($params['funcionario_categoria_id']));
497                $this->disconnect_all();
498
499                return $result;
500        }
501
502        /**
503         * Remove um funcionário.
504         * @param array $params Uma array contendo o ID do funcionário que será excluído e de sua organização (Ajax).
505         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
506         * @access public
507         */
508        function removeEmployee($params)
509        {
510                $result = $this->so->removeEmployee($params['funcionario_id'], $params['organizacao_id']);
511                $this->disconnect_all();
512
513                return $result;
514        }
515
516        /**
517         * Lista as áreas de uma organização.
518         * @param array $params Uma array contendo o ID da organização das áreas (Ajax).
519         * @return array Lista das áreas de uma organização.
520         * @access public
521         */
522        function listArea($params)
523        {
524                $result = $this->so->getArea($params['organizacao_id']);
525                $this->disconnect_all();
526
527                return $result;
528        }
529
530        /**
531         * Lista, hierarquicamente, as áreas de uma organização.
532         * @param array $params Uma array contendo o ID da organização das áreas (Ajax).
533         * @return array Lista hierárquica das áreas de uma organização.
534         * @access public
535         */
536        function listHierarchicalArea($params)
537        {
538                $result = $this->so->getHierarchicalArea($params['organizacao_id'], null, 0);
539                $this->disconnect_all();
540
541                return $result;
542        }
543
544        /**
545         * Adiciona uma área.
546         * @param array $params Uma array contendo os parâmetros necessários para adicionar uma área (Ajax).
547         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
548         * @access public
549         */
550        function addArea($params)
551        {
552                $result = $this->so->addArea($params['centro_custo_id'], $params['organizacao_id'], $params['area_status_id'], $this->_nullReplace($params['substituto_funcionario_id']), $this->_nullReplace($params['titular_funcionario_id']), $this->_nullReplace($params['superior_area_id']), $params['sigla'], $params['descricao'], $params['ativa'], $this->_nullReplace($params['auxiliar_funcionario_id']));
553                $this->disconnect_all();
554
555                return $result;
556        }
557
558        /**
559         * Atualiza uma área.
560         * @param array $params Uma array contendo os parâmetros da área que podem ser alterados (Ajax).
561         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
562         * @access public
563         */
564        function updateArea($params)
565        {
566                $result = $this->so->updateArea($params['centro_custo_id'], $params['organizacao_id'], $params['area_status_id'], $this->_nullReplace($params['substituto_funcionario_id']), $this->_nullReplace($params['titular_funcionario_id']), $this->_nullReplace($params['superior_area_id']), $params['sigla'], $params['descricao'], $params['ativa'], $this->_nullReplace($params['auxiliar_funcionario_id']), $params['area_id']);
567                $this->disconnect_all();
568
569                return $result;
570        }
571
572        /**
573         * Remove uma área.
574         * @param array $params Uma array contendo o ID da área que será excluído e de sua organização (Ajax).
575         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
576         * @access public
577         */
578        function removeArea($params)
579        {
580                $result = $this->so->removeArea($params['area_id'], $params['organizacao_id']);
581                $this->disconnect_all();
582
583                return $result;
584        }
585
586        /**
587         * Busca informações sobre um funcionário.
588         * @param array $params Uma array contendo o ID do funcionário cujas informações serão extraídas e de sua organização (Ajax).
589         * @return array Informações sobre o funcionário.
590         * @access public
591         */
592        function getEmployeeInfo($params)
593        {
594                $result = $this->so->getEmployeeInfo((int) $params['funcionario_id'], (int) $params['organizacao_id']);
595                $this->disconnect_all();
596
597                return $result;
598        }
599
600        /**
601         * Busca informações sobre uma área.
602         * @param array $params Uma array contendo o ID da área cujas informações serão extraídas e de sua organização (Ajax).
603         * @return array Informações sobre a área.
604         * @access public
605         */
606        function getAreaInfo($params)
607        {
608                $result = $this->so->getAreaInfo((int) $params['area_id'], (int) $params['organizacao_id']);
609                $this->disconnect_all();
610
611                return $result;
612        }
613}
614?>
Note: See TracBrowser for help on using the repository browser.