Add NoteController and associated templates, entities, repository.

This commit is contained in:
2024-12-17 11:56:14 -05:00
parent 803ce84996
commit db756d83e4
17 changed files with 1408 additions and 0 deletions

View File

@ -0,0 +1,61 @@
<?php
namespace App\Repository;
use App\Entity\Note;
use App\Entity\Referral;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Notes>
*/
class NoteRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Note::class);
}
public function getHoursUsed(Referral $referral): int
{
$ret = 0;
$query = $this->createQueryBuilder('n')
->select('SUM(n.hours) AS hours')
->andWhere('n.referral = :referral')
->setParameter('referral', $referral->getId()->toBinary())
->getQuery()
//->getResult()
;
dd($query->getSQL());
return $ret;
}
// /**
// * @return Notes[] Returns an array of Notes objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('n')
// ->andWhere('n.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('n.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?Notes
// {
// return $this->createQueryBuilder('n')
// ->andWhere('n.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}

View File

@ -0,0 +1,86 @@
<?php
namespace App\Repository;
use App\Entity\Referral;
use App\Entity\StandardNote;
use App\Entity\User;
use DateTimeImmutable;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<StandardNote>
*/
class StandardNoteRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, StandardNote::class);
}
public function getOrderedNotes(Referral $referral): array
{
return $this->createQueryBuilder('s')
->andWhere('s.referral = :referral')
->setParameter('referral', $referral->getId()->toBinary())
->orderBy('s.date', 'DESC')
->addOrderBy('s.startTime', 'DESC')
->getQuery()
->getResult()
;
}
public function filterNotes(User $user, ?Referral $referral = null, ?DateTimeImmutable $startDate = null, ?DateTimeImmutable $endDate = null): array
{
$query = $this->createQueryBuilder('v')
->join('v.referral', 'r')
;
if ($referral) {
$query->andWhere('v.referral = :referral')
->setParameter('referral', $referral->getId()->toBinary());
}
if ($startDate) {
$query->andWhere('v.date >= :startDate')
->setParameter('startDate', $startDate);
}
if ($endDate) {
$query->andWhere('v.date <= :endDate')
->setParameter('endDate', $endDate);
}
return $query->orderBy('v.date', 'DESC')
->addOrderBy('v.startTime', 'DESC')
->getQuery()
->getResult()
;
}
// /**
// * @return StandardNote[] Returns an array of StandardNote objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('s.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?StandardNote
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}

View File

@ -0,0 +1,86 @@
<?php
namespace App\Repository;
use App\Entity\Referral;
use App\Entity\User;
use App\Entity\VisitNote;
use DateTimeImmutable;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<VisitNote>
*/
class VisitNoteRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, VisitNote::class);
}
public function getOrderedNotes(Referral $referral): array
{
return $this->createQueryBuilder('v')
->andWhere('v.referral = :referral')
->setParameter('referral', $referral->getId()->toBinary())
->orderBy('v.date', 'DESC')
->addOrderBy('v.startTime', 'DESC')
->getQuery()
->getResult()
;
}
public function filterNotes(User $user, ?Referral $referral = null, ?DateTimeImmutable $startDate = null, ?DateTimeImmutable $endDate = null): array
{
$query = $this->createQueryBuilder('v')
->join('v.referral', 'r')
;
if ($referral) {
$query->andWhere('v.referral = :referral')
->setParameter('referral', $referral->getId()->toBinary());
}
if ($startDate) {
$query->andWhere('v.date >= :startDate')
->setParameter('startDate', $startDate);
}
if ($endDate) {
$query->andWhere('v.date <= :endDate')
->setParameter('endDate', $endDate);
}
return $query->orderBy('v.date', 'DESC')
->addOrderBy('v.startTime', 'DESC')
->getQuery()
->getResult()
;
}
// /**
// * @return VisitNote[] Returns an array of VisitNote objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('v')
// ->andWhere('v.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('v.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?VisitNote
// {
// return $this->createQueryBuilder('v')
// ->andWhere('v.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}