private function checkUserConfig(Context $context, UsuarioSessao $usuario) { $service = new UsuarioService($this->em()); $numeroLocalMeta = $service->meta($usuario->getWrapped(), 'atendimento.local'); $numero = $numeroLocalMeta ? (int) $numeroLocalMeta->getValue() : $usuario->getLocal(); $tipoAtendimentoMeta = $service->meta($usuario->getWrapped(), 'atendimento.tipo'); $tipoAtendimento = $tipoAtendimentoMeta ? (int) $tipoAtendimentoMeta->getValue() : $usuario->getTipoAtendimento(); if ($numero != $usuario->getLocal()) { $usuario->setLocal($numero); } if ($tipoAtendimento != $usuario->getTipoAtendimento()) { $usuario->setTipoAtendimento($tipoAtendimento); } $context->setUser($usuario); }
/** * Retorna todos os usuarios e cargos (lotação) por unidade * @return array */ private function lotacoes($unidadeId = 0, $nomeServico = '') { $nomeServico = trim($nomeServico); if (!empty($nomeServico)) { $nomeServico = Strings::sqlLikeParam($nomeServico); } $unidades = $this->unidadesArray($unidadeId); $dados = array(); $usuarioService = new UsuarioService($this->em()); $unidadeService = new UnidadeService($this->em()); foreach ($unidades as $unidade) { $lotacoes = $unidadeService->lotacoesComServico($unidade->getId(), $nomeServico); $servicos = array(); foreach ($lotacoes as $lotacao) { $servicos[$lotacao->getUsuario()->getId()] = $usuarioService->servicos($lotacao->getUsuario(), $unidade); } $dados[$unidade->getId()] = array('unidade' => $unidade->getNome(), 'lotacoes' => $lotacoes, 'servicos' => $servicos); } return $dados; }