src/Command/Watches/DelayResponseCommand.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\Command\Watches;
  3. use Symfony\Component\Console\Input\InputInterface;
  4. use Symfony\Component\Console\Output\OutputInterface;
  5. use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
  6. use App\Entity\V2\Watch;
  7. class DelayResponseCommand extends ContainerAwareCommand
  8. {
  9.     protected static $defaultName 'app:watches-delay';
  10.     private $em;
  11.     public function __construct(\Doctrine\ORM\EntityManagerInterface $em)
  12.     {
  13.         $this->em $em;
  14.         parent::__construct();
  15.     }
  16.     protected function configure()
  17.     {
  18.       $this
  19.       ->setDescription("Met à jour le statut si pas de réponse au bout de 72 heures et 48 heures pour le paiement")
  20.       ;
  21.     }
  22.     protected function execute(InputInterface $inputOutputInterface $output)
  23.     {
  24.       $this->autoDelayResponse($output);
  25.       $output->writeln( ( new \DateTime('now', new \DateTimeZone('Europe/Paris')) )->format('d-m-Y H:i:s') . ":ok");
  26.     }
  27.     /**
  28.      * Garde sans réponse
  29.      */
  30.     private function autoDelayResponse($output): void
  31.     {
  32.       //HOST 3 jours
  33.       $now = new \DateTime('now');
  34.       $qb $this->em->getRepository(Watch::class)->createQueryBuilder('w')
  35.       ->select('w')
  36.       ->where(":now > DATE_ADD(w.status_one, :day, 'DAY')")
  37.       ->andWhere("w.status = :status")
  38.       ->andWhere("w.active = 1")
  39.       ->andWhere("w.deleted_at is NULL")
  40.       ->setParameter('day'3)
  41.       ->setParameter('now'$now)
  42.       ->setParameter('status''100');
  43.       $watches $qb->getQuery()->getResult();
  44.       foreach ($watches as $key => $watch) {
  45.         $watch->setStatus(120);
  46.         $msg = ( " Garde " $watch->getId() . " en 120 ");
  47.         $output->writeln($msg);
  48.         $this->em->flush();
  49.       }
  50.       //MASTER 2 jours
  51.       $qb $this->em->getRepository(Watch::class)->createQueryBuilder('w')
  52.       ->select('w')
  53.       ->where(":now > DATE_ADD(w.status_two, :day, 'DAY')")
  54.       ->andWhere("w.status = :status")
  55.       ->andWhere("w.active = 1")
  56.       ->andWhere("w.deleted_at is NULL")
  57.       ->setParameter('day'2)
  58.       ->setParameter('now'$now)
  59.       ->setParameter('status''200');
  60.       $watches $qb->getQuery()->getResult();
  61.       foreach ($watches as $key => $watch) {
  62.         $watch->setStatus(202);
  63.         $msg = ( " Garde " $watch->getId() . " en 202 ");
  64.         $output->writeln($msg);
  65.         $this->em->flush();
  66.       }
  67.     }
  68. }