src/Repository/FluxoRepository.php line 70
<?phpnamespace App\Repository;use App\Entity\Fluxo;use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;use Doctrine\Persistence\ManagerRegistry;/*** @extends ServiceEntityRepository<Fluxo>** @method Fluxo|null find($id, $lockMode = null, $lockVersion = null)* @method Fluxo|null findOneBy(array $criteria, array $orderBy = null)* @method Fluxo[] findAll()* @method Fluxo[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)*/class FluxoRepository extends ServiceEntityRepository{public function __construct(ManagerRegistry $registry){parent::__construct($registry, Fluxo::class);}// Método para buscar o Fluxo com todas as relaçõespublic function findWithAllRelations(int $id){return $this->createQueryBuilder('f')->leftJoin('f.user', 'u')->leftJoin('f.cliente', 'c')->leftJoin('f.etapas', 'e')->leftJoin('f.caixas', 'ca')->addSelect('u', 'c', 'e', 'ca') // Seleciona as relações->where('f.id = :id')->setParameter('id', $id)->getQuery()->getOneOrNullResult(); // Retorna um único resultado ou null}public function fluxosAbertosComMaiorPrazo(): array{return $this->createQueryBuilder('f')->select('f, MAX(e.prazo) AS prazo')->join('f.etapas', 'e')->join('f.cliente', 'c')->where('e.updatedAt IS NULL')->groupBy('f.id')->orderBy('prazo', 'ASC') // 1️⃣ ordena pela data->addOrderBy('c.nome', 'ASC') // 2️⃣ se a data for igual, ordena pelo cliente->getQuery()->getResult();}public function findMes(){$inicioMes = new \DateTime('first day of this month 00:00:00');$fimMes = new \DateTime('last day of this month 23:59:59');return $this->createQueryBuilder('f')->leftJoin('f.user', 'u')->leftJoin('f.cliente', 'c')->leftJoin('f.etapas', 'e')->leftJoin('f.caixas', 'ca')->addSelect('u', 'c', 'e', 'ca')->andWhere('f.createdAt BETWEEN :inicioMes AND :fimMes')->setParameter('inicioMes', $inicioMes)->setParameter('fimMes', $fimMes)->getQuery()->getResult();}// /**// * @return Fluxo[] Returns an array of Fluxo objects// */// public function findByExampleField($value): array// {// return $this->createQueryBuilder('f')// ->andWhere('f.exampleField = :val')// ->setParameter('val', $value)// ->orderBy('f.id', 'ASC')// ->setMaxResults(10)// ->getQuery()// ->getResult()// ;// }// public function findOneBySomeField($value): ?Fluxo// {// return $this->createQueryBuilder('f')// ->andWhere('f.exampleField = :val')// ->setParameter('val', $value)// ->getQuery()// ->getOneOrNullResult()// ;// }}