source: trunk/workflow/inc/class.bo_orgchart.inc.php @ 1245

Revision 1245, 21.6 KB checked in by rodsouza, 15 years ago (diff)

Ticket #589 - itens (doc. anexo ao ticket) 1, 2, 3, 4 e 5 integralmente e item 6 parcialmente.

  • 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'], $params['sitio']);
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'], $params['sitio']);
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                extract( $params );
410                $result = $this->so->addLocal($organizacao_id, $this->_nullReplace($centro_custo_id), $descricao, $empresa, $endereco, $complemento, $cep, $bairro, $cidade, $uf );
411                $this->disconnect_all();
412
413                return $result;
414        }
415
416        /**
417         * Atualiza uma localidade.
418         * @param array $params Uma array contendo os parâmetros da localidade que podem ser alterados (Ajax).
419         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
420         * @access public
421         */
422        function updateLocal($params)
423        {
424                extract( $params );
425                $result = $this->so->updateLocal($organizacao_id, $this->_nullReplace($centro_custo_id), $descricao, $localidade_id, $empresa, $endereco, $complemento, $cep, $bairro, $cidade, $uf );
426                $this->disconnect_all();
427
428                return $result;
429        }
430
431        /**
432         * Remove uma localidade.
433         * @param array $params Uma array contendo o ID da localidade que será excluída e de sua organização (Ajax).
434         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
435         * @access public
436         */
437        function removeLocal($params)
438        {
439                $result = $this->so->removeLocal($params['localidade_id'], $params['organizacao_id']);
440                $this->disconnect_all();
441
442                return $result;
443        }
444
445        /**
446         * Lista os funcionários de uma área.
447         * @param array $params Uma array contendo o ID da organização dos funcionários e de uma área desta organização (Ajax).
448         * @return array Lista dos funcionários de uma área.
449         * @access public
450         */
451        function listAreaEmployee($params)
452        {
453                $result = $this->so->getAreaEmployee($params['area_id'], $params['organizacao_id']);
454                $this->disconnect_all();
455
456                return $result;
457        }
458
459        /**
460         * Lista de funcionários que satisfazem um determinados critério de busca.
461         * @param array $params Uma array contendo o ID da organização dos funcionários e o critério de busca (Ajax).
462         * @return array Lista das localidades de uma organização.
463         * @access public
464         */
465        function searchEmployee($params)
466        {
467                if (!ereg('^([[:alnum:] ]+)$', $params['search_term']))
468                        die(serialize("Parametro de busca inválido"));
469                $result = $this->so->searchEmployee($params['search_term'], $params['organizacao_id']);
470                $this->disconnect_all();
471
472                usort($result, create_function('$a,$b', 'return strcasecmp($a[\'funcionario_id_desc\'],$b[\'funcionario_id_desc\']);'));
473                return $result;
474        }
475
476        /**
477         * Adiciona um funcionário.
478         * @param array $params Uma array contendo os parâmetros necessários para adicionar um funcionário (Ajax).
479         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
480         * @access public
481         */
482        function addEmployee($params)
483        {
484                $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']), $params['titulo']);
485                $this->disconnect_all();
486
487                return $result;
488        }
489
490        /**
491         * Atualiza funcionário.
492         * @param array $params Uma array contendo os parâmetros do funcionário que podem ser alterados (Ajax).
493         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
494         * @access public
495         */
496        function updateEmployee($params)
497        {
498                $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']), $params['titulo']);
499                $this->disconnect_all();
500
501                return $result;
502        }
503
504        /**
505         * Remove um funcionário.
506         * @param array $params Uma array contendo o ID do funcionário que será excluído e de sua organização (Ajax).
507         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
508         * @access public
509         */
510        function removeEmployee($params)
511        {
512                $result = $this->so->removeEmployee($params['funcionario_id'], $params['organizacao_id']);
513                $this->disconnect_all();
514
515                return $result;
516        }
517
518        /**
519         * Lista as áreas de uma organização.
520         * @param array $params Uma array contendo o ID da organização das áreas (Ajax).
521         * @return array Lista das áreas de uma organização.
522         * @access public
523         */
524        function listArea($params)
525        {
526                $result = $this->so->getArea($params['organizacao_id']);
527                $this->disconnect_all();
528
529                return $result;
530        }
531
532        /**
533         * Lista, hierarquicamente, as áreas de uma organização.
534         * @param array $params Uma array contendo o ID da organização das áreas (Ajax).
535         * @return array Lista hierárquica das áreas de uma organização.
536         * @access public
537         */
538        function listHierarchicalArea($params)
539        {
540                $result = $this->so->getHierarchicalArea($params['organizacao_id'], null, 0);
541                $this->disconnect_all();
542
543                return $result;
544        }
545
546        /**
547         * Adiciona uma área.
548         * @param array $params Uma array contendo os parâmetros necessários para adicionar uma área (Ajax).
549         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
550         * @access public
551         */
552        function addArea($params)
553        {
554                $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']));
555                $this->disconnect_all();
556
557                return $result;
558        }
559
560        /**
561         * Atualiza uma área.
562         * @param array $params Uma array contendo os parâmetros da área que podem ser alterados (Ajax).
563         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
564         * @access public
565         */
566        function updateArea($params)
567        {
568                $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']);
569                $this->disconnect_all();
570
571                return $result;
572        }
573
574        /**
575         * Remove uma área.
576         * @param array $params Uma array contendo o ID da área que será excluído e de sua organização (Ajax).
577         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
578         * @access public
579         */
580        function removeArea($params)
581        {
582                $result = $this->so->removeArea($params['area_id'], $params['organizacao_id']);
583                $this->disconnect_all();
584
585                return $result;
586        }
587
588        /**
589         * Busca informações sobre um funcionário.
590         * @param array $params Uma array contendo o ID do funcionário cujas informações serão extraídas e de sua organização (Ajax).
591         * @return array Informações sobre o funcionário.
592         * @access public
593         */
594        function getEmployeeInfo($params)
595        {
596                $result = $this->so->getEmployeeInfo((int) $params['funcionario_id'], (int) $params['organizacao_id']);
597                $this->disconnect_all();
598
599                return $result;
600        }
601
602        /**
603         * Busca informações sobre uma área.
604         * @param array $params Uma array contendo o ID da área cujas informações serão extraídas e de sua organização (Ajax).
605         * @return array Informações sobre a área.
606         * @access public
607         */
608        function getAreaInfo($params)
609        {
610                $result = $this->so->getAreaInfo((int) $params['area_id'], (int) $params['organizacao_id']);
611                $this->disconnect_all();
612
613                return $result;
614        }
615
616        /**
617         * Lista todos os telefones da organização.
618         * @param array $params Uma array contendo o ID da organização de onde os telefones serão listados (Ajax).
619         * @return array Lista de telefones da organização.
620         * @access public
621         */
622        function listTelephones( $params )
623        {
624                $result = $this -> so -> getTelephones( $params[ 'organizacao_id' ] );
625                $this -> disconnect_all( );
626
627                return $result;
628        }
629
630        /**
631         * Adiciona um telefone a uma organização.
632         * @param array $params Uma array contendo os parâmetros necessários para adicionar um telefone (Ajax).
633         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
634         * @access public
635         */
636        function addTelephones( $params )
637        {
638                $result = $this -> so -> addTelephone( $params[ 'organizacao_id' ], $params[ 'descricao' ], $params[ 'numero' ] );
639                $this->disconnect_all( );
640
641                return $result;
642        }
643
644        /**
645         * Atualiza um telefone de uma organização.
646         * @param array $params Uma array contendo os parâmetros de telefone da organização que podem ser alterados (Ajax).
647         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
648         * @access public
649         */
650        function updateTelephones( $params )
651        {
652                $result = $this -> so -> updateTelephone( $params[ 'organizacao_id' ], $params[ 'telefone_id' ], $params[ 'descricao' ], $params[ 'numero' ] );
653                $this->disconnect_all( );
654
655                return $result;
656        }
657
658        /**
659         * Remove um telefone de uma organização.
660         * @param array $params Uma array contendo o ID do telefone que será excluído e de sua organização (Ajax).
661         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário.
662         * @access public
663         */
664        function removeTelephones( $params )
665        {
666                $result = $this -> so -> removeTelephone( $params[ 'organizacao_id' ], $params[ 'telefone_id' ] );
667                $this->disconnect_all( );
668
669                return $result;
670        }
671}
672?>
Note: See TracBrowser for help on using the repository browser.