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

        $usuario     = $this->getUser();
        $unidade     = $usuario->getLotacao()->getUnidade();
        $servico     = (int) $data->servico;
        $novoUsuario = null;
        $atual       = $atendimentoService->atendimentoAndamento($usuario->getId(), $unidade);

        if (!$atual) {
            throw new Exception(
                $translator->trans('error.attendance.not_in_process', [], self::DOMAIN)
            );
        }
        
        if (isset($data->usuario)) {
            $novoUsuario = $this
                ->getDoctrine()
                ->getManager()
                ->getRepository(Usuario::class)
                ->find($data->usuario);
        }

        $redirecionado = $atendimentoService->redirecionar($atual, $unidade, $servico, $novoUsuario);
        if (!$redirecionado->getId()) {
            throw new Exception(
                $translator->trans(
                    'error.attendance.redirect',
                    [
                        '%atendimento%' => $atual->getId(),
                        '%servico%'     => $servico,
                    ],
                    self::DOMAIN
                )
            );
        }

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

        $usuario     = $this->getUser();
        $unidade     = $usuario->getLotacao()->getUnidade();
        $servico     = (int) $data->servico;
        $novoUsuario = null;
        $atual       = $atendimentoService->atendimentoAndamento($usuario->getId(), $unidade);

        if (!$atual) {
            throw new Exception(
                $translator->trans('error.attendance.not_in_process', [], self::DOMAIN)
            );
        }
        
        if (isset($data->usuario)) {
            $novoUsuario = $this
                ->getDoctrine()
                ->getManager()
                ->getRepository(Usuario::class)
                ->find($data->usuario);
        }

        $redirecionado = $atendimentoService->redirecionar($atual, $unidade, $servico, $novoUsuario);
        if (!$redirecionado->getId()) {
            throw new Exception(
                $translator->trans(
                    'error.attendance.redirect',
                    [
                        '%atendimento%' => $atual->getId(),
                        '%servico%'     => $servico,
                    ],
                    self::DOMAIN
                )
            );
        }

        return $this->json($envelope);
    }
public function redirecionar ( Request $ request , AtendimentoService $ atendimentoService , TranslatorInterface $ translator ) { $ envelope = new Envelope ( ) ; $ data = json_decode ( $ request -> getContent ( ) ) ; $ usuario = $ this -> getUser ( ) ; $ unidade = $ usuario -> getLotacao ( ) -> getUnidade ( ) ; $ servico = ( int ) $ data -> servico ; $ novoUsuario = null ; $ atual = $ atendimentoService -> atendimentoAndamento ( $ usuario -> getId ( ) , $ unidade ) ; if ( ! $ atual ) { throw new Exception ( $ translator -> trans ( 'error.attendance.not_in_process' , [ ] , self :: DOMAIN ) ) ; } if ( isset ( $ data -> usuario ) ) { $ novoUsuario = $ this -> getDoctrine ( ) -> getManager ( ) -> getRepository ( Usuario :: class ) -> find ( $ data -> usuario ) ; } $ redirecionado = $ atendimentoService -> redirecionar ( $ atual , $ unidade , $ servico , $ novoUsuario ) ; if ( ! $ redirecionado -> getId ( ) ) { throw new Exception ( $ translator -> trans ( 'error.attendance.redirect' , [ '%atendimento%' => $ atual -> getId ( ) , '%servico%' => $ servico , ] , self :: DOMAIN ) ) ; } return $ this -> json ( $ envelope ) ; }
Marca o atendimento como erro de triagem. E gera um novo atendimento para
o servico informado.

@param Novosga\Request $request

@Route("/redirecionar", name="novosga_attendance_redirecionar", methods={"POST"})
Marca o atendimento como erro de triagem . E gera um novo atendimento para o servico informado .