Commit e4093ea5 authored by Mat's avatar Mat

une commande qui change le statut (closed) des offres expirées

parent 3c2b4a2f
<?php
namespace PotageBundle\Command;
use PotageBundle\Entity\Offre;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class CronOffreCommand extends ContainerAwareCommand
{
/**
* {@inheritdoc}
*/
protected function configure()
{
$this
->setName('potage:cron:offre')
->setDescription("Vérifie la date d'expiration des offres en cours");
}
/**
* Vérifie que les offres en cours n'ont pas expiré.
* Si c'est le cas, le statut est changé et un mail est envoyé aux maraichers.
*
* @param InputInterface $input
* @param OutputInterface $output
* @return int|null|void
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$em = $this->getContainer()->get('doctrine')->getManager();
$currentOffre = $em->getRepository('PotageBundle:Offre')->findAllByStatusForRead('current');
$now = new \DateTime('now');
/**
* @var Offre $offre
*/
foreach ($currentOffre as $offre)
{
if ($offre->getEndedAt() >= $now) {
//$output->writeln($offre->getReference() . ': offre toujours en cours');
}
else {
$output->writeln($offre->getReference() . ': offre expirée, on archive..');
$offre->setStatus('closed');
// TODO envoyer un mail au gestionnaire pour annoncer l'expiration de l'offre
}
}
$em->flush();
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment