Loading module/Oscar/src/Oscar/Entity/ActivityDateRepository.php +26 −0 Original line number Diff line number Diff line Loading @@ -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)); } } module/Oscar/src/Oscar/Service/NotificationService.php +18 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"); } } module/Oscar/src/Oscar/Service/PersonService.php +1 −0 Original line number Diff line number Diff line Loading @@ -965,6 +965,7 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U } $date = new \DateTime($dateRef); $this->getNotificationService()->generateActivityMilestonesUncompleted($date); $rel = [ 'Mon' => 'Lun', Loading module/Oscar/src/Oscar/Service/ProjectGrantService.php +7 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading
module/Oscar/src/Oscar/Entity/ActivityDateRepository.php +26 −0 Original line number Diff line number Diff line Loading @@ -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)); } }
module/Oscar/src/Oscar/Service/NotificationService.php +18 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"); } }
module/Oscar/src/Oscar/Service/PersonService.php +1 −0 Original line number Diff line number Diff line Loading @@ -965,6 +965,7 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U } $date = new \DateTime($dateRef); $this->getNotificationService()->generateActivityMilestonesUncompleted($date); $rel = [ 'Mon' => 'Lun', Loading
module/Oscar/src/Oscar/Service/ProjectGrantService.php +7 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading