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;
 }