public function atendimentoAndamento($usuario, $unidade = null)
    {
        $status = [
            self::CHAMADO_PELA_MESA,
            self::ATENDIMENTO_INICIADO,
        ];
        try {
            $qb = $this->storage
                ->getManager()
                ->createQueryBuilder()
                ->select('e')
                ->from(Atendimento::class, 'e')
                ->where('e.usuario = :usuario')
                ->andWhere('e.status IN (:status)');
            
            $params = [
                'usuario' => $usuario,
                'status' => $status,
            ];
            
            if ($unidade) {
                $qb->andWhere('e.unidade = :unidade');
                $params['unidade'] = $unidade;
            }
            
            return $qb
                ->setParameters($params)
                ->getQuery()
                ->getOneOrNullResult();
        } catch (\Doctrine\ORM\NonUniqueResultException $e) {
            /*
             * caso tenha mais de um atendimento preso ao usuario,
             * libera os atendimentos e retorna null para o atendente chamar de novo.
             * BUG #213
             */
            $this->storage
                ->getManager()
                ->createQueryBuilder()
                ->update(Atendimento::class, 'e')
                ->set('e.status', ':status')
                ->set('e.usuario', ':null')
                ->where('e.usuario = :usuario')
                ->andWhere('e.status IN (:status)')
                ->setParameters([
                    'status'  => 1,
                    'null'    => null,
                    'usuario' => $usuario,
                    'status'  => $status
                ])
                ->getQuery()
                ->execute();

            return;
        }
    }
public function atendimentoAndamento($usuario, $unidade = null)
    {
        $status = [
            self::CHAMADO_PELA_MESA,
            self::ATENDIMENTO_INICIADO,
        ];
        try {
            $qb = $this->storage
                ->getManager()
                ->createQueryBuilder()
                ->select('e')
                ->from(Atendimento::class, 'e')
                ->where('e.usuario = :usuario')
                ->andWhere('e.status IN (:status)');
            
            $params = [
                'usuario' => $usuario,
                'status' => $status,
            ];
            
            if ($unidade) {
                $qb->andWhere('e.unidade = :unidade');
                $params['unidade'] = $unidade;
            }
            
            return $qb
                ->setParameters($params)
                ->getQuery()
                ->getOneOrNullResult();
        } catch (\Doctrine\ORM\NonUniqueResultException $e) {
            /*
             * caso tenha mais de um atendimento preso ao usuario,
             * libera os atendimentos e retorna null para o atendente chamar de novo.
             * BUG #213
             */
            $this->storage
                ->getManager()
                ->createQueryBuilder()
                ->update(Atendimento::class, 'e')
                ->set('e.status', ':status')
                ->set('e.usuario', ':null')
                ->where('e.usuario = :usuario')
                ->andWhere('e.status IN (:status)')
                ->setParameters([
                    'status'  => 1,
                    'null'    => null,
                    'usuario' => $usuario,
                    'status'  => $status
                ])
                ->getQuery()
                ->execute();

            return;
        }
    }
public function atendimentoAndamento ( $ usuario , $ unidade = null ) { $ status = [ self :: CHAMADO_PELA_MESA , self :: ATENDIMENTO_INICIADO , ] ; try { $ qb = $ this -> storage -> getManager ( ) -> createQueryBuilder ( ) -> select ( 'e' ) -> from ( Atendimento :: class , 'e' ) -> where ( 'e.usuario = :usuario' ) -> andWhere ( 'e.status IN (:status)' ) ; $ params = [ 'usuario' => $ usuario , 'status' => $ status , ] ; if ( $ unidade ) { $ qb -> andWhere ( 'e.unidade = :unidade' ) ; $ params [ 'unidade' ] = $ unidade ; } return $ qb -> setParameters ( $ params ) -> getQuery ( ) -> getOneOrNullResult ( ) ; } catch ( \ Doctrine \ ORM \ NonUniqueResultException $ e ) { /*
             * caso tenha mais de um atendimento preso ao usuario,
             * libera os atendimentos e retorna null para o atendente chamar de novo.
             * BUG #213
             */ $ this -> storage -> getManager ( ) -> createQueryBuilder ( ) -> update ( Atendimento :: class , 'e' ) -> set ( 'e.status' , ':status' ) -> set ( 'e.usuario' , ':null' ) -> where ( 'e.usuario = :usuario' ) -> andWhere ( 'e.status IN (:status)' ) -> setParameters ( [ 'status' => 1 , 'null' => null , 'usuario' => $ usuario , 'status' => $ status ] ) -> getQuery ( ) -> execute ( ) ; return ; } }
Retorna o atendimento em andamento do usuario informado.

@param int|Usuario $usuario
@param int|Unidade $unidade

@return Atendimento
Retorna o atendimento em andamento do usuario informado .