initial commit

This commit is contained in:
2024-07-25 10:54:27 +02:00
parent 3a922fd5bc
commit d2ae809b98
113 changed files with 19295 additions and 2522 deletions
View File
@@ -0,0 +1,73 @@
<?php
namespace App\Repository;
use App\Entity\Clients;
use App\Entity\Reports;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Clients>
*/
class ClientsRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Clients::class);
}
public function deleteUser(Clients $client): void
{
$client->setDeleted(true);
$this->getEntityManager()->persist($client);
$this->getEntityManager()->flush();
$this->getEntityManager()->getRepository(Reports::class)->deleteAllByClient($client);
}
/**
* @return Clients[] Returns an array of Clients objects
*/
// public function findAllInMonth(\DateTime $date): array
// {
// $dateStart = clone $date;
// $dateStart->modify("first day of this month");
// $dateEnd = clone $date;
// $dateEnd->modify("last day of this month");
// return $this->createQueryBuilder('r')
// ->where('r.dateStart >= :dateStart')
// ->andWhere('r.dateStart <= :dateEnd')
// ->andWhere('r.isDelete = :deleted')
// ->setParameter('dateStart', $dateStart->format('Y-m-d'))
// ->setParameter('dateEnd', $dateEnd->format('Y-m-d'))
// ->setParameter('deleted', 0)
//// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// /**
// * @return Clients[] Returns an array of Clients objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('c')
// ->andWhere('c.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('c.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?Clients
// {
// return $this->createQueryBuilder('c')
// ->andWhere('c.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}
@@ -0,0 +1,43 @@
<?php
namespace App\Repository;
use App\Entity\Notes;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Notes>
*/
class NotesRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Notes::class);
}
// /**
// * @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()
// ;
// }
}
@@ -0,0 +1,143 @@
<?php
namespace App\Repository;
use App\Entity\Clients;
use App\Entity\Reports;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\DBAL\Exception;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Reports>
*/
class ReportsRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Reports::class);
}
public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array
{
if (!isset($criteria['isDelete'])) {
$criteria['isDelete'] = 0;
}
return parent::findBy($criteria, $orderBy, $limit, $offset); // TODO: Change the autogenerated stub
}
public function findAllOverdue()
{
$dateEnd = new \DateTime();
$dateEnd->modify("last day of previous month");
$reports = $this->createQueryBuilder('r')
->where('r.isDelete = :isDelete')
->andWhere('r.dateStart < :dateEnd')
->andWhere('r.isDone = :isDone')
->setParameter('isDone', 0)
->setParameter('isDelete', 0)
->setParameter('dateEnd', $dateEnd)
->orderBy("r.number","ASC")
->getQuery()
->getResult();
// $this->countReport($reports);
return $reports;
}
/**
* @return Reports[] Returns an array of Reports objects
*/
public function findAllInMonth(\DateTime $date): array
{
$dateStart = clone $date;
$dateStart->modify("first day of this month");
$dateEnd = clone $date;
$dateEnd->modify("last day of this month");
$reports = $this->createQueryBuilder('r')
->where('r.dateStart >= :dateStart')
->andWhere('r.dateStart <= :dateEnd')
->andWhere('r.isDelete = :deleted')
->setParameter('dateStart', $dateStart->format('Y-m-d'))
->setParameter('dateEnd', $dateEnd->format('Y-m-d'))
->setParameter('deleted', 0)
->orderBy("r.number","ASC")
// ->setMaxResults(10)
->getQuery()
->getResult()
;
// $this->countReport($reports);
return $reports;
}
/**
* @throws Exception
*/
public function deleteAllByClient(Clients $client): void
{
$clientId = $client->getId();
if ($clientId) {
$db = $this->getEntityManager()->getConnection();
$statement = $db->prepare("UPDATE reports SET is_delete = 1 WHERE client_id = :clientId");
$statement->bindValue('clientId', $clientId);
$statement->executeQuery();
}
}
private function countReport(array $reports) : bool
{
$clientIds=[];
foreach ($reports as $report) {
$clientIds[] = $report->getClient()->getId();
}
if (!count($clientIds)) {
return false;
}
$findAllForClients = $this->createQueryBuilder('r')
->where('r.isDelete = :deleted')
->andWhere('r.client IN (:clients)')
->setParameter('deleted', 0)
->setParameter('clients', $clientIds)
->orderBy('r.id', 'ASC')
->getQuery()
->getResult();
$clientToReportId = [];
if (!count($findAllForClients)) {
return false;
}
foreach ($findAllForClients as $item) {
$clientToReportId[$item->getClient()->getId()][] = $item->getId();
}
foreach ($reports as $report) {
$id = $report->getId();
$clientReports = $clientToReportId[$report->getClient()->getId()];
for ($i = 0; $i < count($clientReports); $i++) {
$tmp = $clientReports[$i];
if ($tmp == $id) {
$report->setNumberOfReport($i + 1);
break;
}
}
}
return true;
}
// public function findOneBySomeField($value): ?Reports
// {
// return $this->createQueryBuilder('r')
// ->andWhere('r.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}
@@ -0,0 +1,43 @@
<?php
namespace App\Repository;
use App\Entity\ReportsTodo;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<ReportsTodo>
*/
class ReportsTodoRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, ReportsTodo::class);
}
// /**
// * @return ReportsTodo[] Returns an array of ReportsTodo objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('r')
// ->andWhere('r.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('r.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?ReportsTodo
// {
// return $this->createQueryBuilder('r')
// ->andWhere('r.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}
@@ -0,0 +1,84 @@
<?php
namespace App\Repository;
use App\Entity\Schedule;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Schedule>
*/
class ScheduleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Schedule::class);
}
public function findAllOverdue()
{
$dateEnd = new \DateTime("now");
$reports = $this->createQueryBuilder('s')
->where('s.isDone = :isDone')
->andWhere('s.dateEnd < :dateEnd')
// ->andWhere('s.isDelete = :isDelete')
->setParameter('isDone', 0)
// ->setParameter('isDelete', 0)
->setParameter('dateEnd', $dateEnd)
->getQuery()
->getResult();
return $reports;
}
/**
* @return Schedule[] Returns an array of Schedule objects
*/
public function findAllCurrent(): array
{
$date = new \DateTime();
$dateStart = clone $date;
$dateStart->modify("-15 days");
$dateEnd = clone $date;
$dateEnd->modify("+30 days");
return $this->createQueryBuilder('r')
->where('r.dateEnd >= :dateStart')
->andWhere('r.dateEnd <= :dateEnd')
->andWhere('r.isDone = :isDone')
// ->andWhere('r.isDelete = :deleted')
->setParameter('dateStart', $dateStart->format('Y-m-d'))
->setParameter('dateEnd', $dateEnd->format('Y-m-d'))
->setParameter('isDone', 0)
// ->setParameter('deleted', 0)
// ->setMaxResults(10)
->orderBy('r.dateEnd', 'ASC')
->getQuery()
->getResult()
;
}
// /**
// * @return Schedule[] Returns an array of Schedule 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): ?Schedule
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}
@@ -0,0 +1,43 @@
<?php
namespace App\Repository;
use App\Entity\TestEntity;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<TestEntity>
*/
class TestEntityRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, TestEntity::class);
}
// /**
// * @return TestEntity[] Returns an array of TestEntity objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('t')
// ->andWhere('t.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('t.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?TestEntity
// {
// return $this->createQueryBuilder('t')
// ->andWhere('t.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}
+60
View File
@@ -0,0 +1,60 @@
<?php
namespace App\Repository;
use App\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
/**
* @extends ServiceEntityRepository<User>
*/
class UserRepository extends ServiceEntityRepository implements PasswordUpgraderInterface
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, User::class);
}
/**
* Used to upgrade (rehash) the user's password automatically over time.
*/
public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void
{
if (!$user instanceof User) {
throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', $user::class));
}
$user->setPassword($newHashedPassword);
$this->getEntityManager()->persist($user);
$this->getEntityManager()->flush();
}
// /**
// * @return User[] Returns an array of User objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('u')
// ->andWhere('u.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('u.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?User
// {
// return $this->createQueryBuilder('u')
// ->andWhere('u.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}