Commit 35b578a0 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

FIX : Envoi de mail en trop (pour les notifications alors qu'elles sont lues)

FIX : Filtre "à faire" pour les types de jalons soumis à progression
parent 23c44d85
Loading
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -11,5 +11,31 @@ use Doctrine\ORM\EntityRepository;

class ActivityDateRepository extends EntityRepository
{
    public function getMilestonesFinishable( $status = null )
    {
         $query = $this->createQueryBuilder('m')
            ->select('m')
             ->innerJoin('m.type', 't')
             ->andWhere('t.id = 53') // AND m.dateStart <= :now')
         ;

         $query->where('t.finishable = :finishable')
            ->setParameter('finishable', true)
            ->andWhere('m.finished IS NULL OR m.finished <= 0');

         //$query->setParameter('now', date('Y-m-d'));
         // AND m.dateStart <= :now')


         $result = $query->getQuery()->getResult();

         /** @var ActivityDate $r */
        foreach ($result as $r) {
            $fin = ($r->getDateFinish() ? $r->getDateFinish()->format('Y-m-d'): 'Pas fini');
             echo $r->getType()->getId()  . " - $r - " . $r->getFinished() . " / " . $fin . "\n";
         }
         echo $query->getDQL();

         die("TOTAL : " . count($result));
    }
}
+18 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ use Doctrine\ORM\ORMException;
use Moment\Moment;
use Oscar\Entity\Activity;
use Oscar\Entity\ActivityDate;
use Oscar\Entity\ActivityDateRepository;
use Oscar\Entity\ActivityNotification;
use Oscar\Entity\ActivityOrganization;
use Oscar\Entity\ActivityPayment;
@@ -857,4 +858,21 @@ class NotificationService implements UseServiceContainer

        $this->getEntityManager()->flush();
    }


    /**
     * Récupère la liste des jalons "terminable" où le status n'est pas modifié afin de notifier les personnes
     * idoines.
     * @param \DateTime $reference
     */
    public function generateActivityMilestonesUncompleted( \DateTime $reference ) :void
    {
        // TODO
//        /** @var ActivityDateRepository $milestoneRepository */
//        $milestoneRepository = $this->getEntityManager()->getRepository(ActivityDate::class);
//
//        $milestones = $milestoneRepository->getMilestonesFinishable();
//
//        die("Calcule");
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -965,6 +965,7 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U
        }

        $date = new \DateTime($dateRef);
        $this->getNotificationService()->generateActivityMilestonesUncompleted($date);

        $rel = [
            'Mon' => 'Lun',
+7 −2
Original line number Diff line number Diff line
@@ -409,8 +409,13 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
            ->innerJoin('c.milestones', 'm')
            ->where('m.type = :jalonId');

        if( is_array($progression) ){
            $q->andWhere('m.finished IN(:progression)')
        if( is_array($progression) && count($progression) > 0 ){
            $clause = 'm.finished IN(:progression)';

            if( in_array('0', $progression) ){
                $clause .= ' OR m.finished IS NULL';
            }
            $q->andWhere($clause)
                ->setParameter('progression', $progression);
        }