src/Repository/IctusCommandeRepository.php line 83

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\IctusCommande;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. /**
  7.  * @extends ServiceEntityRepository<IctusCommande>
  8.  *
  9.  * @method IctusCommande|null find($id, $lockMode = null, $lockVersion = null)
  10.  * @method IctusCommande|null findOneBy(array $criteria, array $orderBy = null)
  11.  * @method IctusCommande[]    findAll()
  12.  * @method IctusCommande[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  13.  */
  14. class IctusCommandeRepository extends ServiceEntityRepository
  15. {
  16.     public function __construct(ManagerRegistry $registry)
  17.     {
  18.         parent::__construct($registryIctusCommande::class);
  19.     }
  20.     public function add(IctusCommande $entitybool $flush false): void
  21.     {
  22.         $this->getEntityManager()->persist($entity);
  23.         if ($flush) {
  24.             $this->getEntityManager()->flush();
  25.         }
  26.     }
  27.     public function remove(IctusCommande $entitybool $flush false): void
  28.     {
  29.         $this->getEntityManager()->remove($entity);
  30.         if ($flush) {
  31.             $this->getEntityManager()->flush();
  32.         }
  33.     }
  34.     /**
  35.      * @return IctusCommande[] Returns an array of IctusCommande objects
  36.      */
  37.     public function findAllByUser($user_pcie): array
  38.     {
  39.         return $this->createQueryBuilder('i')
  40.             ->select('i')
  41.             ->join('i.pharmacie''pcie')
  42.             ->join('pcie.users''u')
  43.             ->andWhere('u.id = :user_pcie')
  44.             ->setParameter('user_pcie'$user_pcie)
  45.             ->orderBy('i.id''DESC')
  46.             ->getQuery()
  47.             ->getResult()
  48.         ;
  49.     }
  50.     public function updateIsValide(int $id): void
  51.     {
  52.         $entityManager $this->getEntityManager();
  53.         $commande $this->find($id);
  54.         if ($commande) {
  55.             $commande->setIsValide(1);
  56.             $entityManager->persist($commande);
  57.             $entityManager->flush();
  58.         }
  59.     }
  60.     public function findMaxReference($pharmacie)
  61.     {
  62.         $entityManager $this->getEntityManager();
  63.         $query $entityManager->createQuery('
  64.             SELECT MAX(commande.reference) as maxReference
  65.             FROM App\Entity\IctusCommande commande
  66.             WHERE commande.pharmacie = :pharmacie
  67.         ')->setParameter('pharmacie'$pharmacie)->setMaxResults(1);
  68.         return $query->execute();
  69.     }
  70.     public function findByMultipleIsValide($isValid false$pharmacie)
  71.     {
  72.         $qb $this->createQueryBuilder('c');
  73.         $qb->where('c.pharmacie = :pharmacie')
  74.             ->setParameter('pharmacie'$pharmacie)
  75.             ->orderBy('c.createdAt''DESC');
  76.         if (!$isValid) {
  77.             $qb $qb->andWhere('c.isValide = 0 OR c.isValide IS NULL OR c.isValide = false');
  78.         } else {
  79.             $qb $qb->andWhere('c.isValide = 1 OR c.isValide = true');
  80.         }
  81.         return $qb->getQuery()->getResult();
  82.     }
  83.     public function findAllNonValide()
  84.     {
  85.         $qb $this->createQueryBuilder('c');
  86.         $qb->select('c')
  87.             ->join('c.pharmacie''pcie')
  88.             ->where('c.isValide = 0 OR c.isValide IS NULL OR c.isValide = false')
  89.             ->andWhere('pcie.isValid = 1')
  90.             ->groupBy('pcie.id')
  91.             ->orderBy('c.createdAt''DESC');
  92.         return $qb->getQuery()->getResult();
  93.     }
  94.     public function updateIctusCommande($id$valeur)
  95.     {
  96.         $entityManager $this->getEntityManager();
  97.         $ictusCommande $this->find($id);
  98.         if ($ictusCommande) {
  99.             $ictusCommande->setIsRecuperer($valeur);
  100.             $this->getEntityManager()->persist($ictusCommande);
  101.             $this->getEntityManager()->flush();
  102.         }
  103.     }
  104.     public function findById($id): ?IctusCommande
  105.     {
  106.         return $this->find($id);
  107.     }
  108.     public function findIctusCommandeByCodeEtCodeSecretPharmacie($id$codeSecret$pharmacie)
  109.     {
  110.         return $this->createQueryBuilder('i')
  111.             ->select('i')
  112.             ->where('i.id = :id')
  113.             ->andWhere('i.codeSecret = :codeSecret')
  114.             ->andWhere('i.pharmacie = :pharmacie')
  115.             ->setParameter('id'$id)
  116.             ->setParameter('codeSecret'$codeSecret)
  117.             ->setParameter('pharmacie'$pharmacie)
  118.             ->getQuery()
  119.             ->getOneOrNullResult();
  120.     }
  121.     //mila avadika null code et codeSecret nullable et string
  122.     public function ReinitCodeCodeSecret($id)
  123.     {
  124.         $entityManager $this->getEntityManager();
  125.         $ic $entityManager->find(IctusCommande::class, $id);
  126.         if ($ic) {
  127.             $ic->setCode(0);
  128.             $ic->setCodeSecret(0);
  129.             $entityManager->persist($ic);
  130.             $entityManager->flush();
  131.         }
  132.         return $ic;
  133.     }
  134.     public function findByCodeComplet($codeComplet)
  135.     {
  136.         $entityManager $this->getEntityManager();
  137.         $query $entityManager->createQuery('
  138.             SELECT commande
  139.             FROM App\Entity\IctusCommande commande
  140.             WHERE CONCAT(commande.code, commande.codeSecret) = :codeComple
  141.         ')->setParameter('codeComple'$codeComplet)->setMaxResults(1);
  142.         return $query->execute();
  143.     }
  144.     public function getForRateByDate($dated$datef)
  145.     {
  146.         $entityManager $this->getEntityManager();
  147.         $query $entityManager->createQuery("
  148.             SELECT commande
  149.             FROM App\Entity\IctusCommande commande
  150.             WHERE 
  151.                 commande.etatpaiement = 2 
  152.                 AND commande.isValide = 1 
  153.                 AND commande.createdAt BETWEEN :dated AND :datef
  154.             GROUP BY commande.user
  155.         ")->setParameters(array("dated" => $dated"datef" => $datef));
  156.         return $query->execute();
  157.     }
  158.     public function getNonPayerByUser($user)
  159.     {
  160.         $entityManager $this->getEntityManager();
  161.         $query $entityManager->createQuery("
  162.             SELECT COUNT(commande.id) as nb
  163.             FROM App\Entity\IctusCommande commande
  164.             WHERE 
  165.                 commande.etatpaiement != '2' 
  166.                 AND commande.isValide = 1 
  167.                 AND commande.user = :user
  168.         ")->setParameter("user"$user);
  169.         return $query->execute();
  170.     }
  171.     public function getNonLivrerByUser($user)
  172.     {
  173.         $entityManager $this->getEntityManager();
  174.         $query $entityManager->createQuery("
  175.             SELECT COUNT(commande.id) as nb
  176.             FROM App\Entity\IctusCommande commande
  177.             WHERE 
  178.                 commande.isLivrer is NULL 
  179.                 AND commande.etatpaiement = '2' 
  180.                 AND commande.isValide = 1 
  181.                 AND commande.user = :user
  182.         ")->setParameter("user"$user);
  183.         return $query->execute();
  184.     }
  185.     public function getEnAttenteByUser($user)
  186.     {
  187.         $entityManager $this->getEntityManager();
  188.         $query $entityManager->createQuery("
  189.             SELECT COUNT(commande.id) as nb
  190.             FROM App\Entity\IctusCommande commande
  191.             WHERE 
  192.                 commande.isLivrer is NULL 
  193.                 AND commande.etatpaiement <> '2' 
  194.                 AND commande.isValide is NULL 
  195.                 AND commande.user = :user
  196.         ")->setParameter("user"$user);
  197.         return $query->execute();
  198.     }
  199.     public function getNonPayer($user)
  200.     {
  201.         $entityManager $this->getEntityManager();
  202.         $query $entityManager->createQuery("
  203.             SELECT commande 
  204.             FROM App\Entity\IctusCommande commande
  205.             WHERE commande.isValide = '1' AND commande.etatpaiement != '2' AND commande.user = :user 
  206.             ORDER BY commande.createdAt DESC
  207.         ")->setParameter("user"$user);
  208.         return $query->execute();
  209.     }
  210.     public function getCommandeAPayerByPaiement($user$typePaiement)
  211.     {
  212.         $entityManager $this->getEntityManager();
  213.         $query $entityManager->createQuery("
  214.             SELECT commande 
  215.             FROM App\Entity\IctusCommande commande
  216.             WHERE commande.isValide = '1' AND commande.etatpaiement != '2' AND commande.user = :user AND commande.typePaiement = :typepaiement
  217.             ORDER BY commande.createdAt DESC
  218.         ")->setParameters(array("user" => $user"typepaiement" => $typePaiement));
  219.         return $query->execute();
  220.     }
  221.     public function getCountNonPayer($user)
  222.     {
  223.         $entityManager $this->getEntityManager();
  224.         $query $entityManager->createQuery("
  225.             SELECT COUNT(commande) as nb 
  226.             FROM App\Entity\IctusCommande commande
  227.             WHERE commande.isValide = '1' AND commande.etatpaiement != '2' AND commande.user = :user 
  228.         ")->setParameter("user"$user);
  229.         return $query->execute();
  230.     }
  231.     public function getCountNonLivrer($user)
  232.     {
  233.         $entityManager $this->getEntityManager();
  234.         $query $entityManager->createQuery("
  235.             SELECT COUNT(commande) as nb 
  236.             FROM App\Entity\IctusCommande commande
  237.             WHERE commande.isLivrer is NULL AND commande.isValide = '1' AND commande.user = :user 
  238.         ")->setParameter("user"$user);
  239.         return $query->execute();
  240.     }
  241.     public function countAllCommandeBy($dateD$dateF)
  242.     {
  243.         $entityManager $this->getEntityManager();
  244.         $query $entityManager->createQuery("
  245.             SELECT COUNT(commande) as nb
  246.             FROM App\Entity\IctusCommande commande
  247.             WHERE commande.isValide = '1' AND commande.createdAt BETWEEN :dated AND :datef
  248.         ")->setParameters(array("dated" => $dateD"datef" => $dateF));
  249.         return $query->execute();
  250.     }
  251.     public function countPharmacieCommandeBy($pharmacie$dateD$dateF)
  252.     {
  253.         $entityManager $this->getEntityManager();
  254.         $query $entityManager->createQuery("
  255.             SELECT COUNT(commande) as nb
  256.             FROM App\Entity\IctusCommande commande
  257.             WHERE commande.pharmacie = :pharmacie AND commande.isValide = '1' AND commande.createdAt BETWEEN :dated AND :datef
  258.         ")->setParameters(array("pharmacie" => $pharmacie"dated" => $dateD"datef" => $dateF));
  259.         return $query->execute();
  260.     }
  261.     public function getCountEnAttente($pharmacie){
  262.         $entityManager $this->getEntityManager();
  263.         $query $entityManager->createQuery("
  264.             SELECT COUNT(commande) as nb
  265.             FROM App\Entity\IctusCommande commande
  266.             WHERE commande.pharmacie = :pharmacie AND commande.isValide is NULL AND commande.isAnnule is NULL
  267.         ")->setParameters(array("pharmacie" => $pharmacie));
  268.         return $query->execute();
  269.     }
  270.     //    /**
  271.     //     * @return IctusCommande[] Returns an array of IctusCommande objects
  272.     //     */
  273.     //    public function findByExampleField($value): array
  274.     //    {
  275.     //        return $this->createQueryBuilder('i')
  276.     //            ->andWhere('i.exampleField = :val')
  277.     //            ->setParameter('val', $value)
  278.     //            ->orderBy('i.id', 'ASC')
  279.     //            ->setMaxResults(10)
  280.     //            ->getQuery()
  281.     //            ->getResult()
  282.     //        ;
  283.     //    }
  284.     //    public function findOneBySomeField($value): ?IctusCommande
  285.     //    {
  286.     //        return $this->createQueryBuilder('i')
  287.     //            ->andWhere('i.exampleField = :val')
  288.     //            ->setParameter('val', $value)
  289.     //            ->getQuery()
  290.     //            ->getOneOrNullResult()
  291.     //        ;
  292.     //    }
  293. }