Controller/DefaultController.php
public function encerrar(
        Request $request,
        AtendimentoService $atendimentoService,
        TranslatorInterface $translator
    ) {
        $envelope = new Envelope();
        $data     = json_decode($request->getContent());

        $usuario = $this->getUser();
        $unidade = $usuario->getLotacao()->getUnidade();
        $atual   = $atendimentoService->atendimentoAndamento($usuario->getId(), $unidade);

        if (!$atual) {
            throw new Exception(
                $translator->trans('error.attendance.not_in_process', [], self::DOMAIN)
            );
        }

        $servicos   = explode(',', $data->servicos);
        $resolucao  = $data->resolucao;
        $observacao = $data->observacao;
        
        if (empty($servicos)) {
            throw new Exception(
                $translator->trans('error.attendance.no_service', [], self::DOMAIN)
            );
        }
        
        $em = $this->getDoctrine()->getManager();

        $novoUsuario = null;
        $servicoRedirecionado = null;
        
        if ($data->redirecionar) {
            $servicoRedirecionado = $em
                ->getRepository(Servico::class)
                ->find($data->novoServico);
            
            if (isset($data->novoUsuario)) {
                $novoUsuario = $em
                    ->getRepository(Usuario::class)
                    ->find($data->novoServico);
            }
        }
        
        if (in_array($resolucao, [ AtendimentoService::RESOLVIDO, AtendimentoService::PENDENTE ])) {
            $atual->setResolucao($resolucao);
        }
        
        if ($observacao) {
            $atual->setObservacao($observacao);
        }

        $atendimentoService->encerrar($atual, $unidade, $servicos, $servicoRedirecionado, $novoUsuario);

        return $this->json($envelope);
    }
public function encerrar(
        Request $request,
        AtendimentoService $atendimentoService,
        TranslatorInterface $translator
    ) {
        $envelope = new Envelope();
        $data     = json_decode($request->getContent());

        $usuario = $this->getUser();
        $unidade = $usuario->getLotacao()->getUnidade();
        $atual   = $atendimentoService->atendimentoAndamento($usuario->getId(), $unidade);

        if (!$atual) {
            throw new Exception(
                $translator->trans('error.attendance.not_in_process', [], self::DOMAIN)
            );
        }

        $servicos   = explode(',', $data->servicos);
        $resolucao  = $data->resolucao;
        $observacao = $data->observacao;
        
        if (empty($servicos)) {
            throw new Exception(
                $translator->trans('error.attendance.no_service', [], self::DOMAIN)
            );
        }
        
        $em = $this->getDoctrine()->getManager();

        $novoUsuario = null;
        $servicoRedirecionado = null;
        
        if ($data->redirecionar) {
            $servicoRedirecionado = $em
                ->getRepository(Servico::class)
                ->find($data->novoServico);
            
            if (isset($data->novoUsuario)) {
                $novoUsuario = $em
                    ->getRepository(Usuario::class)
                    ->find($data->novoServico);
            }
        }
        
        if (in_array($resolucao, [ AtendimentoService::RESOLVIDO, AtendimentoService::PENDENTE ])) {
            $atual->setResolucao($resolucao);
        }
        
        if ($observacao) {
            $atual->setObservacao($observacao);
        }

        $atendimentoService->encerrar($atual, $unidade, $servicos, $servicoRedirecionado, $novoUsuario);

        return $this->json($envelope);
    }
public function encerrar ( Request $ request , AtendimentoService $ atendimentoService , TranslatorInterface $ translator ) { $ envelope = new Envelope ( ) ; $ data = json_decode ( $ request -> getContent ( ) ) ; $ usuario = $ this -> getUser ( ) ; $ unidade = $ usuario -> getLotacao ( ) -> getUnidade ( ) ; $ atual = $ atendimentoService -> atendimentoAndamento ( $ usuario -> getId ( ) , $ unidade ) ; if ( ! $ atual ) { throw new Exception ( $ translator -> trans ( 'error.attendance.not_in_process' , [ ] , self :: DOMAIN ) ) ; } $ servicos = explode ( ',' , $ data -> servicos ) ; $ resolucao = $ data -> resolucao ; $ observacao = $ data -> observacao ; if ( empty ( $ servicos ) ) { throw new Exception ( $ translator -> trans ( 'error.attendance.no_service' , [ ] , self :: DOMAIN ) ) ; } $ em = $ this -> getDoctrine ( ) -> getManager ( ) ; $ novoUsuario = null ; $ servicoRedirecionado = null ; if ( $ data -> redirecionar ) { $ servicoRedirecionado = $ em -> getRepository ( Servico :: class ) -> find ( $ data -> novoServico ) ; if ( isset ( $ data -> novoUsuario ) ) { $ novoUsuario = $ em -> getRepository ( Usuario :: class ) -> find ( $ data -> novoServico ) ; } } if ( in_array ( $ resolucao , [ AtendimentoService :: RESOLVIDO , AtendimentoService :: PENDENTE ] ) ) { $ atual -> setResolucao ( $ resolucao ) ; } if ( $ observacao ) { $ atual -> setObservacao ( $ observacao ) ; } $ atendimentoService -> encerrar ( $ atual , $ unidade , $ servicos , $ servicoRedirecionado , $ novoUsuario ) ; return $ this -> json ( $ envelope ) ; }
Marca o atendimento como encerrado.

@param Novosga\Request $request

@Route("/encerrar", name="novosga_attendance_encerrar", methods={"POST"})
Marca o atendimento como encerrado .