Commit 472afacec67698777f0159bb15f131c3874b8420

Authored by eduardo.batista
1 parent d0acf77a
Exists in master and in 1 other branch desenv

[FEAT] Subindo novos serviços pacote 3

MdWsSeiRest.php
... ... @@ -33,6 +33,23 @@ class MdWsSeiRest extends SeiIntegracao
33 33 return $response;
34 34 }
35 35  
  36 + public static function dataToIso88591($item){
  37 + if(is_array($item)){
  38 + $itemArr = $item;
  39 + }else if(is_object($item)) {
  40 + $itemArr = get_object_vars($item);
  41 + }else if(is_bool($item)){
  42 + return $item;
  43 + }else{
  44 + return mb_convert_encoding($item, 'ISO-8859-1');
  45 + }
  46 + $response = array();
  47 + foreach($itemArr as $key => $val){
  48 + $response[$key] = MdWsSeiRest::dataToIso88591($val);
  49 + }
  50 + return $response;
  51 + }
  52 +
36 53 /**
37 54 * Formata o retorno da mensagem para o padrão do controlador de serviços REST
38 55 * @param null $mensagem
... ...
controlador_ws.php
... ... @@ -154,6 +154,22 @@ $app->group('/api/v1',function(){
154 154 $rn = new MdWsSeiUsuarioRN();
155 155 return $response->withJSON($rn->listarUsuarios($dto));
156 156 });
  157 + $this->get('/pesquisar', function($request, $response, $args){
  158 + /** @var $request Slim\Http\Request */
  159 + $rn = new MdWsSeiUsuarioRN();
  160 + return $response->withJSON(
  161 + $rn->apiPesquisarUsuario(
  162 + $request->getParam('palavrachave'),
  163 + $request->getParam('orgao'))
  164 + );
  165 + });
  166 + $this->get('/unidades', function($request, $response, $args){
  167 + /** @var $request Slim\Http\Request */
  168 + $dto = new UsuarioDTO();
  169 + $dto->setNumIdUsuario($request->getParam('usuario'));
  170 + $rn = new MdWsSeiUsuarioRN();
  171 + return $response->withJSON($rn->listarUnidadesUsuario($dto));
  172 + });
157 173  
158 174 })->add( new TokenValidationMiddleware());
159 175  
... ... @@ -184,8 +200,9 @@ $app->group('/api/v1',function(){
184 200 */
185 201 $this->group('/anotacao', function(){
186 202 $this->post('/', function($request, $response, $args){
  203 + /** @var $request Slim\Http\Request */
187 204 $rn = new MdWsSeiAnotacaoRN();
188   - $dto = $rn->encapsulaAnotacao($request->getParams());
  205 + $dto = $rn->encapsulaAnotacao(MdWsSeiRest::dataToIso88591($request->getParams()));
189 206 return $response->withJSON($rn->cadastrarAnotacao($dto));
190 207 });
191 208  
... ... @@ -218,7 +235,7 @@ $app->group('/api/v1',function(){
218 235 $dto = new RelBlocoProtocoloDTO();
219 236 $dto->setNumIdBloco($request->getAttribute('route')->getArgument('bloco'));
220 237 $dto->setDblIdProtocolo($request->getParam('protocolo'));
221   - $dto->setStrAnotacao($request->getParam('anotacao'));
  238 + $dto->setStrAnotacao(MdWsSeiRest::dataToIso88591($request->getParam('anotacao')));
222 239 return $response->withJSON($rn->cadastrarAnotacaoBloco($dto));
223 240 });
224 241  
... ... @@ -255,7 +272,7 @@ $app->group('/api/v1',function(){
255 272 return $response->withJSON($rn->apiAssinarDocumentos(
256 273 $request->getParam('arrDocumento'),
257 274 $request->getParam('orgao'),
258   - $request->getParam('cargo'),
  275 + MdWsSeiRest::dataToIso88591($request->getParam('cargo')),
259 276 $request->getParam('login'),
260 277 $request->getParam('senha'),
261 278 $request->getParam('usuario')
... ... @@ -267,7 +284,7 @@ $app->group('/api/v1',function(){
267 284 return $response->withJSON($rn->apiAssinarDocumento(
268 285 $request->getParam('documento'),
269 286 $request->getParam('orgao'),
270   - $request->getParam('cargo'),
  287 + MdWsSeiRest::dataToIso88591($request->getParam('cargo')),
271 288 $request->getParam('login'),
272 289 $request->getParam('senha'),
273 290 $request->getParam('usuario')
... ... @@ -336,7 +353,7 @@ $app->group('/api/v1',function(){
336 353 if($request->getParam('protocoloFormatadoVinculado')){
337 354 $dto->setProtocoloProcedimentoVinculado($request->getParam('protocoloFormatadoVinculado'));
338 355 }
339   - $dto->setMotivo($request->getParam('motivo'));
  356 + $dto->setMotivo(MdWsSeiRest::dataToIso88591($request->getParam('motivo')));
340 357 return $response->withJSON($rn->sobrestamentoProcesso($dto));
341 358 });
342 359 $this->post('/{procedimento}/ciencia', function($request, $response, $args){
... ... @@ -450,7 +467,7 @@ $app->group('/api/v1',function(){
450 467 $this->post('/enviar', function($request, $response, $args){
451 468 /** @var $request Slim\Http\Request */
452 469 $rn = new MdWsSeiProcedimentoRN();
453   - $dto = $rn->encapsulaEnviarProcessoEntradaEnviarProcessoAPI($request->getParams());
  470 + $dto = $rn->encapsulaEnviarProcessoEntradaEnviarProcessoAPI(MdWsSeiRest::dataToIso88591($request->getParams()));
454 471 return $response->withJSON($rn->enviarProcesso($dto));
455 472 });
456 473 $this->post('/concluir', function($request, $response, $args){
... ... @@ -465,19 +482,19 @@ $app->group('/api/v1',function(){
465 482 $this->post('/acompanhar', function($request, $response, $args){
466 483 /** @var $request Slim\Http\Request */
467 484 $rn = new MdWsSeiAcompanhamentoRN();
468   - $dto = $rn->encapsulaAcompanhamento($request->getParams());
  485 + $dto = $rn->encapsulaAcompanhamento(MdWsSeiRest::dataToIso88591($request->getParams()));
469 486 return $response->withJSON($rn->cadastrarAcompanhamento($dto));
470 487 });
471 488 $this->post('/agendar/retorno/programado', function($request, $response, $args){
472 489 /** @var $request Slim\Http\Request */
473 490 $rn = new MdWsSeiRetornoProgramadoRN();
474   - $dto = $rn->encapsulaRetornoProgramado($request->getParams());
  491 + $dto = $rn->encapsulaRetornoProgramado(MdWsSeiRest::dataToIso88591($request->getParams()));
475 492 return $response->withJSON($rn->agendarRetornoProgramado($dto));
476 493 });
477 494 $this->post('/atribuir', function($request, $response, $args){
478 495 /** @var $request Slim\Http\Request */
479 496 $api = new EntradaAtribuirProcessoAPI();
480   -
  497 +
481 498 if($request->getParam('numeroProcesso')) {
482 499 $api->setProtocoloProcedimento($request->getParam('numeroProcesso'));
483 500 }
... ... @@ -504,6 +521,38 @@ $app->group('/api/v1',function(){
504 521  
505 522 return $response->withJSON($rn->apiIdentificacaoAcesso($usuarioDTO, $protocoloDTO));
506 523 });
  524 + $this->post('/{procedimento}/credenciamento/conceder', function($request, $response, $args){
  525 + /** @var $request Slim\Http\Request */
  526 + $rn = new MdWsSeiCredenciamentoRN();
  527 + $dto = new ConcederCredencialDTO();
  528 + $dto->setDblIdProcedimento($request->getAttribute('route')->getArgument('procedimento'));
  529 + $dto->setNumIdUnidade($request->getParam('unidade'));
  530 + $dto->setNumIdUsuario($request->getParam('usuario'));
  531 +
  532 + return $response->withJSON($rn->concederCredenciamento($dto));
  533 + });
  534 + $this->post('/{procedimento}/credenciamento/cassar', function($request, $response, $args){
  535 + /** @var $request Slim\Http\Request */
  536 + $rn = new MdWsSeiCredenciamentoRN();
  537 + $dto = new AtividadeDTO();
  538 + $dto->setNumIdAtividade($request->getParam('atividade'));
  539 +
  540 + return $response->withJSON($rn->cassarCredencial($dto));
  541 + });
  542 + $this->get('/{procedimento}/credenciamento/listar', function($request, $response, $args){
  543 + /** @var $request Slim\Http\Request */
  544 + $rn = new MdWsSeiCredenciamentoRN();
  545 + $dto = new ProcedimentoDTO();
  546 + if($request->getParam('limit')){
  547 + $dto->setNumMaxRegistrosRetorno($request->getParam('limit'));
  548 + }
  549 + if(!is_null($request->getParam('start'))){
  550 + $dto->setNumPaginaAtual($request->getParam('start'));
  551 + }
  552 + $dto->setDblIdProcedimento($request->getAttribute('route')->getArgument('procedimento'));
  553 +
  554 + return $response->withJSON($rn->listarCredenciaisProcesso($dto));
  555 + });
507 556  
508 557 })->add( new TokenValidationMiddleware());
509 558  
... ... @@ -529,7 +578,7 @@ $app->group('/api/v1',function(){
529 578 $this->post('/lancar/andamento/processo', function($request, $response, $args){
530 579 /** @var $request Slim\Http\Request */
531 580 $rn = new MdWsSeiAtividadeRN();
532   - $dto = $rn->encapsulaLancarAndamentoProcesso($request->getParams());
  581 + $dto = $rn->encapsulaLancarAndamentoProcesso(MdWsSeiRest::dataToIso88591($request->getParams()));
533 582  
534 583 return $response->withJSON($rn->lancarAndamentoProcesso($dto));
535 584 });
... ... @@ -555,7 +604,7 @@ $app->group('/api/v1',function(){
555 604 }
556 605 return $response->withJSON($rn->listarAssinante($dto));
557 606 });
558   -
  607 +
559 608 $this->get('/orgao', function($request, $response, $args){
560 609 /** @var $request Slim\Http\Request */
561 610 $rn = new MdWsSeiOrgaoRN();
... ... @@ -600,7 +649,7 @@ $app->group('/api/v1',function(){
600 649 $this->post('/', function($request, $response, $args){
601 650 /** @var $request Slim\Http\Request */
602 651 $rn = new MdWsSeiObservacaoRN();
603   - $dto = $rn->encapsulaObservacao($request->getParams());
  652 + $dto = $rn->encapsulaObservacao(MdWsSeiRest::dataToIso88591($request->getParams()));
604 653 return $response->withJSON($rn->criarObservacao($dto));
605 654 });
606 655  
... ...
rn/MdWsSeiAnotacaoRN.php
... ... @@ -32,6 +32,8 @@ class MdWsSeiAnotacaoRN extends InfraRN {
32 32 $anotacaoDTO->setStrSinPrioridade(
33 33 ($post['prioridade']) ? 'S' : 'N'
34 34 );
  35 + }else{
  36 + $anotacaoDTO->setStrSinPrioridade('N');
35 37 }
36 38 $anotacaoDTO->setStrStaAnotacao('U');
37 39  
... ...
rn/MdWsSeiAtividadeRN.php
... ... @@ -423,6 +423,96 @@ class MdWsSeiAtividadeRN extends AtividadeRN {
423 423 }
424 424 }
425 425  
  426 + /**
  427 + * Sobrescrevendo método para colocar paginação
  428 + * @param ProcedimentoDTO $objProcedimentoDTO
  429 + * @return mixed
  430 + * @throws InfraException
  431 + */
  432 + protected function listarCredenciaisConectado(ProcedimentoDTO $objProcedimentoDTO) {
  433 + try{
  434 + $objInfraException = new InfraException();
  435 +
  436 + $objProtocoloDTO = new ProtocoloDTO();
  437 + $objProtocoloDTO->retDblIdProtocolo();
  438 + $objProtocoloDTO->retStrProtocoloFormatado();
  439 + $objProtocoloDTO->retStrStaNivelAcessoGlobal();
  440 + $objProtocoloDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  441 +
  442 + $objProtocoloRN = new ProtocoloRN();
  443 + $objProtocoloDTO = $objProtocoloRN->consultarRN0186($objProtocoloDTO);
  444 +
  445 + $objAcessoDTO = new AcessoDTO();
  446 + $objAcessoDTO->retNumIdAcesso();
  447 + $objAcessoDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo());
  448 + $objAcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  449 + $objAcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  450 + $objAcessoDTO->setStrStaTipo(AcessoRN::$TA_CREDENCIAL_PROCESSO);
  451 + $objAcessoDTO->setNumMaxRegistrosRetorno(1);
  452 +
  453 + $objAcessoRN = new AcessoRN();
  454 +
  455 + if ($objAcessoRN->consultar($objAcessoDTO) == null){
  456 + $objInfraException->adicionarValidacao('Usuário atual não possui credencial de acesso ao processo '.$objProtocoloDTO->getStrProtocoloFormatado().' nesta unidade.');
  457 + }
  458 +
  459 + if ($objProtocoloDTO->getStrStaNivelAcessoGlobal()!=ProtocoloRN::$NA_SIGILOSO){
  460 + $objInfraException->adicionarValidacao('Não é possível listar credenciais de acesso para um processo não sigiloso ('.$objProtocoloDTO->getStrProtocoloFormatado().').');
  461 + }
  462 +
  463 + $objInfraException->lancarValidacoes();
  464 +
  465 + $objAtividadeDTO = new AtividadeDTO();
  466 + $objAtividadeDTO->retNumIdAtividade();
  467 + $objAtividadeDTO->retStrSiglaUsuario();
  468 + $objAtividadeDTO->retStrNomeUsuario();
  469 + $objAtividadeDTO->retStrSiglaUnidade();
  470 + $objAtividadeDTO->retStrDescricaoUnidade();
  471 + $objAtividadeDTO->retDthAbertura();
  472 + $objAtividadeDTO->retNumIdTarefa();
  473 + $objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario());
  474 + $objAtividadeDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo());
  475 + $objAtividadeDTO->setNumIdTarefa(array_merge(TarefaRN::getArrTarefasConcessaoCredencial(false), TarefaRN::getArrTarefasCassacaoCredencial(false)), InfraDTO::$OPER_IN);
  476 +
  477 + // INICIO SOBRESCRITA
  478 + if($objProcedimentoDTO->isSetNumMaxRegistrosRetorno()){
  479 + $objAtividadeDTO->setNumMaxRegistrosRetorno($objProcedimentoDTO->getNumMaxRegistrosRetorno());
  480 + }
  481 + if(!is_null($objProcedimentoDTO->getNumPaginaAtual())){
  482 + $objAtividadeDTO->setNumPaginaAtual($objProcedimentoDTO->getNumPaginaAtual());
  483 + }
  484 +
  485 + $objAtividadeDTO->setOrdNumIdAtividade(InfraDTO::$TIPO_ORDENACAO_DESC);
  486 + $arrObjAtividadeDTO = $this->listarRN0036($objAtividadeDTO);
  487 + $objProcedimentoDTO->setNumTotalRegistros($objAtividadeDTO->getNumTotalRegistros());
  488 + // FIM SOBRESCRITA
  489 +
  490 + if (count($arrObjAtividadeDTO)){
  491 +
  492 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  493 + $objAtributoAndamentoDTO->retNumIdAtividade();
  494 + $objAtributoAndamentoDTO->retStrNome();
  495 + $objAtributoAndamentoDTO->retStrValor();
  496 + $objAtributoAndamentoDTO->setNumIdAtividade(InfraArray::converterArrInfraDTO($arrObjAtividadeDTO,'IdAtividade'), InfraDTO::$OPER_IN);
  497 +
  498 + $objAtributoAndamentoRN = new AtributoAndamentoRN();
  499 + $arrObjAtributoAndamentoDTO = InfraArray::indexarArrInfraDTO($objAtributoAndamentoRN->listarRN1367($objAtributoAndamentoDTO),'IdAtividade',true);
  500 +
  501 + foreach($arrObjAtividadeDTO as $objAtividadeDTO){
  502 + if (isset($arrObjAtributoAndamentoDTO[$objAtividadeDTO->getNumIdAtividade()])){
  503 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO[$objAtividadeDTO->getNumIdAtividade()]);
  504 + }else{
  505 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array());
  506 + }
  507 + }
  508 + }
  509 +
  510 + return $arrObjAtividadeDTO;
  511 +
  512 + }catch(Exception $e){
  513 + throw new InfraException('Erro listando credenciais.',$e);
  514 + }
  515 + }
426 516  
427 517  
428 518 }
429 519 \ No newline at end of file
... ...
rn/MdWsSeiCredenciamentoRN.php 0 → 100644
... ... @@ -0,0 +1,112 @@
  1 +<?
  2 +require_once dirname(__FILE__).'/../../../SEI.php';
  3 +
  4 +class MdWsSeiCredenciamentoRN extends InfraRN {
  5 +
  6 + protected function inicializarObjInfraIBanco(){
  7 + return BancoSEI::getInstance();
  8 + }
  9 +
  10 + /**
  11 + * Concede a credencial de acesso a um processo sigiloso
  12 + * @param ConcederCredencialDTO $concederCredencialDTO
  13 + * @return array
  14 + */
  15 + protected function concederCredenciamentoControlado(ConcederCredencialDTO $concederCredencialDTO){
  16 + try{
  17 + if(!$concederCredencialDTO->isSetDblIdProcedimento() || !$concederCredencialDTO->getDblIdProcedimento()){
  18 + throw new Exception('Processo não informado!');
  19 + }
  20 + if(!$concederCredencialDTO->isSetNumIdUnidade() || !$concederCredencialDTO->getNumIdUnidade()){
  21 + throw new Exception('Unidade não informada!');
  22 + }
  23 + if(!$concederCredencialDTO->isSetNumIdUsuario() || !$concederCredencialDTO->getNumIdUsuario()){
  24 + throw new Exception('Usuário não informado!');
  25 + }
  26 +
  27 + $atividadeRN = new AtividadeRN();
  28 + $pesquisaPendenciaDTO = new PesquisaPendenciaDTO();
  29 + $pesquisaPendenciaDTO->setDblIdProtocolo($concederCredencialDTO->getDblIdProcedimento());
  30 + $pesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  31 + $pesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  32 + $arrProcedimentoDTO = $atividadeRN->listarPendenciasRN0754($pesquisaPendenciaDTO);
  33 +
  34 + if (count($arrProcedimentoDTO)==0){
  35 + throw new Exception('Processo não encontrado.');
  36 + }
  37 + $arrAtividadesOrigem = $arrProcedimentoDTO[0]->getArrObjAtividadeDTO();
  38 + $concederCredencialDTO->setArrAtividadesOrigem($arrAtividadesOrigem);
  39 + $atividadeRN->concederCredencial($concederCredencialDTO);
  40 +
  41 + return MdWsSeiRest::formataRetornoSucessoREST("Credencial concedida com sucesso!");
  42 + }catch (Exception $e){
  43 + return MdWsSeiRest::formataRetornoErroREST($e);
  44 + }
  45 + }
  46 +
  47 + /**
  48 + * Remove a credencial de acesso a um processo sigiloso
  49 + * @param AtividadeDTO $atividadeDTO
  50 + * @return array
  51 + */
  52 + protected function cassarCredencialControlado(AtividadeDTO $atividadeDTO){
  53 + try{
  54 + if(!$atividadeDTO->isSetNumIdAtividade() || !$atividadeDTO->getNumIdAtividade()){
  55 + throw new Exception('Atividade não informado!');
  56 + }
  57 +
  58 + $objAtividadeRN = new AtividadeRN();
  59 + $objAtividadeRN->cassarCredenciais(array($atividadeDTO));
  60 + return MdWsSeiRest::formataRetornoSucessoREST("Credencial cassada com sucesso!");
  61 + }catch (Exception $e){
  62 + return MdWsSeiRest::formataRetornoErroREST($e);
  63 + }
  64 + }
  65 +
  66 + /**
  67 + * Lista as credenciais de acesso de um processo sigiloso
  68 + * @param ProcedimentoDTO $procedimentoDTOParam
  69 + * @return array
  70 + */
  71 + protected function listarCredenciaisProcessoConectado(ProcedimentoDTO $procedimentoDTOParam){
  72 + try{
  73 + if(!$procedimentoDTOParam->isSetDblIdProcedimento() || !$procedimentoDTOParam->getDblIdProcedimento()){
  74 + throw new Exception('Atividade não informado!');
  75 + }
  76 + if(is_null($procedimentoDTOParam->getNumPaginaAtual())){
  77 + $procedimentoDTOParam->setNumPaginaAtual(0);
  78 + }
  79 + if (!$procedimentoDTOParam->isSetNumMaxRegistrosRetorno()) {
  80 + $procedimentoDTOParam->setNumMaxRegistrosRetorno(10);
  81 + }
  82 +
  83 + $result = array();
  84 + $objAtividadeRN = new MdWsSeiAtividadeRN();
  85 + $ret = $objAtividadeRN->listarCredenciais($procedimentoDTOParam);
  86 + /** @var AtividadeDTO $atividadeDTO */
  87 + foreach($ret as $atividadeDTO){
  88 + $dataCassacao = null;
  89 + foreach ($atividadeDTO->getArrObjAtributoAndamentoDTO() as $atributoAndamentoDTO) {
  90 + if ($atributoAndamentoDTO->getStrNome() == 'DATA_HORA') {
  91 + $dataCassacao .= substr($atributoAndamentoDTO->getStrValor(), 0, 16);
  92 + }
  93 + }
  94 + $result[] = array(
  95 + 'atividade' => $atividadeDTO->getNumIdAtividade(),
  96 + 'siglaUsuario' => $atividadeDTO->getStrSiglaUsuario(),
  97 + 'siglaUnidade' => $atividadeDTO->getStrSiglaUnidade(),
  98 + 'nomeUsuario' => $atividadeDTO->getStrNomeUsuario(),
  99 + 'descricaoUnidade' => $atividadeDTO->getStrDescricaoUnidade(),
  100 + 'dataAbertura' => substr($atividadeDTO->getDthAbertura(),0,16),
  101 + 'credencialCassada' => in_array($atividadeDTO->getNumIdTarefa(), TarefaRN::getArrTarefasCassacaoCredencial(false)),
  102 + 'dataCassacao' => $dataCassacao,
  103 + );
  104 + }
  105 +
  106 + return MdWsSeiRest::formataRetornoSucessoREST(null, $result, $procedimentoDTOParam->getNumTotalRegistros());
  107 + }catch (Exception $e){
  108 + return MdWsSeiRest::formataRetornoErroREST($e);
  109 + }
  110 + }
  111 +
  112 +}
0 113 \ No newline at end of file
... ...
rn/MdWsSeiObservacaoRN.php
... ... @@ -36,7 +36,7 @@ class MdWsSeiObservacaoRN extends InfraRN {
36 36 $observacaoRN = new ObservacaoRN();
37 37 $observacaoRN->cadastrarRN0222($observacaoDTO);
38 38  
39   - return MdWsSeiRest::formataRetornoSucessoREST('Observação cadastrada com sucesso!');
  39 + return MdWsSeiRest::formataRetornoSucessoREST('Observação cadastrada com sucesso!');
40 40 }catch (Exception $e){
41 41 return MdWsSeiRest::formataRetornoErroREST($e);
42 42 }
... ...
rn/MdWsSeiUsuarioRN.php
... ... @@ -308,4 +308,56 @@ class MdWsSeiUsuarioRN extends InfraRN {
308 308 }
309 309 }
310 310  
  311 + /**
  312 + * Retorna as unidades do usuário
  313 + * @param UsuarioDTO $usuarioDTO
  314 + */
  315 + public function listarUnidadesUsuarioConectado(UsuarioDTO $usuarioDTO){
  316 + try{
  317 + $objInfraSip = new InfraSip(SessaoSEI::getInstance());
  318 + $ret = array_values($objInfraSip->carregarUnidades(SessaoSEI::getInstance()->getNumIdSistema(), $usuarioDTO->getNumIdUsuario()));
  319 + InfraArray::ordenarArray($ret,InfraSip::$WS_UNIDADE_SIGLA,InfraArray::$TIPO_ORDENACAO_ASC);
  320 + $result = array();
  321 + foreach($ret as $uni){
  322 + //somente unidades ativas, todas as unidades de outros usuários, se for o usuário atual não mostra a unidade atual
  323 + if ($uni[InfraSip::$WS_UNIDADE_SIN_ATIVO]=='S' && ($usuarioDTO->getNumIdUsuario() != SessaoSEI::getInstance()->getNumIdUsuario() ||$uni[InfraSip::$WS_UNIDADE_ID] != SessaoSEI::getInstance()->getNumIdUnidadeAtual())){
  324 + $result[] = array(
  325 + 'id' => $uni[InfraSip::$WS_UNIDADE_ID],
  326 + 'sigla' => $uni[InfraSip::$WS_UNIDADE_SIGLA],
  327 + 'nome' => $uni[InfraSip::$WS_UNIDADE_DESCRICAO]
  328 + );
  329 + }
  330 + }
  331 + return MdWsSeiRest::formataRetornoSucessoREST(null, $result);
  332 + }catch (Exception $e){
  333 + return MdWsSeiRest::formataRetornoErroREST($e);
  334 + }
  335 + }
  336 +
  337 + /**
  338 + * Pesquisa o usuário pelo nome
  339 + * @param $palavrachave
  340 + * @param null $orgao
  341 + * @return array
  342 + */
  343 + public function apiPesquisarUsuario($palavrachave, $orgao = null){
  344 + try{
  345 + $result = array();
  346 + $arrUsuarioDTO = UsuarioINT::autoCompletarUsuarios($orgao,$palavrachave,false,false,true,false);
  347 + /** @var UsuarioDTO $usuarioDTO */
  348 + foreach($arrUsuarioDTO as $usuarioDTO){
  349 + $result[] = array(
  350 + 'id_contato' => $usuarioDTO->getNumIdContato(),
  351 + 'id_usuario' => $usuarioDTO->getNumIdUsuario(),
  352 + 'sigla' => $usuarioDTO->getStrSigla(),
  353 + 'nome' => $usuarioDTO->getStrNome()
  354 + );
  355 + }
  356 +
  357 + return MdWsSeiRest::formataRetornoSucessoREST(null, $result);
  358 + }catch (Exception $e){
  359 + return MdWsSeiRest::formataRetornoErroREST($e);
  360 + }
  361 + }
  362 +
311 363 }
312 364 \ No newline at end of file
... ...