Loading config/autoload/unicaen-signature.local.php.dist +10 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,16 @@ return [ * Note : firstname/lastname sont optionnels */ 'get_recipients_methods' => [ /** Exemple 'membres des organisations indiquées dans options > organisation' **/ [ 'key' => 'fixed_organisation_dri', 'label' => 'membre de la DRI', 'description' => 'Liste des membres de la DRI', 'options' => [], 'getRecipients' => function ($sc, $options) { return $sc->get(\Oscar\Service\ProjectGrantService::class)->getCentralOrganizationsMembers($options); } ], [ ///// key : Clef unique pour identifier le méthode 'key' => 'persons_by_role', Loading module/Oscar/src/Oscar/Service/OrganizationService.php +33 −0 Original line number Diff line number Diff line Loading @@ -1277,4 +1277,37 @@ class OrganizationService implements UseOscarConfigurationService, UseEntityMana { return $this->getOscarConfigurationService()->getOrganisationCentral(); } public function getMembers( array $ids_organization, ?array $roles = null) { $out = []; $repo = $this->getEntityManager()->getRepository(OrganizationPerson::class); $qb = $repo->createQueryBuilder('op'); $qb ->innerJoin('op.organization', 'o') ->where('o.id IN(:ids)') ->setParameter('ids', $ids_organization) ; if( $roles != null && false){ $qb->innerJoin('op.role', 'r') ->andWhere('r.roleId IN(:roles)') ->setParameter('roles', $roles); } $result = $qb->getQuery()->getResult(); $out = []; /** @var OrganizationPerson $r */ foreach ($result as $r) { $out[] = [ 'id' => $r->getPerson()->getId(), 'firstname' => $r->getPerson()->getFirstname(), 'lastname' => $r->getPerson()->getLastname(), 'fullname' => $r->getPerson()->getFullname(), 'email' => $r->getPerson()->getEmail(), ]; } return $out; } } Loading
config/autoload/unicaen-signature.local.php.dist +10 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,16 @@ return [ * Note : firstname/lastname sont optionnels */ 'get_recipients_methods' => [ /** Exemple 'membres des organisations indiquées dans options > organisation' **/ [ 'key' => 'fixed_organisation_dri', 'label' => 'membre de la DRI', 'description' => 'Liste des membres de la DRI', 'options' => [], 'getRecipients' => function ($sc, $options) { return $sc->get(\Oscar\Service\ProjectGrantService::class)->getCentralOrganizationsMembers($options); } ], [ ///// key : Clef unique pour identifier le méthode 'key' => 'persons_by_role', Loading
module/Oscar/src/Oscar/Service/OrganizationService.php +33 −0 Original line number Diff line number Diff line Loading @@ -1277,4 +1277,37 @@ class OrganizationService implements UseOscarConfigurationService, UseEntityMana { return $this->getOscarConfigurationService()->getOrganisationCentral(); } public function getMembers( array $ids_organization, ?array $roles = null) { $out = []; $repo = $this->getEntityManager()->getRepository(OrganizationPerson::class); $qb = $repo->createQueryBuilder('op'); $qb ->innerJoin('op.organization', 'o') ->where('o.id IN(:ids)') ->setParameter('ids', $ids_organization) ; if( $roles != null && false){ $qb->innerJoin('op.role', 'r') ->andWhere('r.roleId IN(:roles)') ->setParameter('roles', $roles); } $result = $qb->getQuery()->getResult(); $out = []; /** @var OrganizationPerson $r */ foreach ($result as $r) { $out[] = [ 'id' => $r->getPerson()->getId(), 'firstname' => $r->getPerson()->getFirstname(), 'lastname' => $r->getPerson()->getLastname(), 'fullname' => $r->getPerson()->getFullname(), 'email' => $r->getPerson()->getEmail(), ]; } return $out; } }