Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.These.dcm.xml +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ <field name="etatThese" type="string" column="ETAT_THESE" length="20" nullable="false"/> <field name="resultat" type="integer" column="RESULTAT" nullable="true"/> <field name="datePremiereInscription" type="datetime" column="DATE_PREM_INSC" nullable="true"/> <field name="anneeUniv1ereInscription" type="integer" column="ANNEE_UNIV_1ERE_INSC" nullable="true"/> <field name="libelleDiscipline" type="string" column="LIB_DISC" length="200" nullable="true"/> <field name="datePrevisionSoutenance" type="datetime" column="DATE_PREV_SOUTENANCE" nullable="true"/> <field name="dateSoutenance" type="datetime" column="DATE_SOUTENANCE" nullable="true"/> Loading Loading @@ -49,6 +50,7 @@ <one-to-many field="rdvBus" target-entity="Application\Entity\Db\RdvBu" mapped-by="these"/> <one-to-many field="validations" target-entity="Application\Entity\Db\Validation" mapped-by="these"/> <one-to-many field="titreAcces" target-entity="Application\Entity\Db\TitreAcces" mapped-by="these"/> <one-to-many field="anneesUnivInscription" target-entity="Application\Entity\Db\TheseAnneeUniv" mapped-by="these"/> <many-to-one field="etablissement" target-entity="Application\Entity\Db\Etablissement" fetch="LAZY"> <join-columns> Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.TheseAnneeUniv.dcm.xml 0 → 100644 +49 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Application\Entity\Db\TheseAnneeUniv" table="THESE_ANNEE_UNIV"> <id name="id" type="integer" column="ID"> <generator strategy="SEQUENCE"/> </id> <field name="anneeUniv" type="integer" column="ANNEE_UNIV"/> <field name="histoCreation" type="datetime" column="HISTO_CREATION"/> <field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/> <field name="histoModification" type="datetime" column="HISTO_MODIFICATION"/> <field name="sourceCode" column="SOURCE_CODE" length="64" nullable="true"/> <many-to-one field="these" target-entity="Application\Entity\Db\These"> <join-columns> <join-column name="THESE_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="source" target-entity="Application\Entity\Db\Source"> <join-columns> <join-column name="SOURCE_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur"> <join-columns> <join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur"> <join-columns> <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur"> <join-columns> <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> </entity> </doctrine-mapping> module/Application/src/Application/Entity/Db/Repository/TheseRepository.php +25 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,31 @@ class TheseRepository extends DefaultEntityRepository return $results; } /** * @param Etablissement|null $etablissement * @return int[] */ public function fetchDistinctAnneesUniv1ereInscription(Etablissement $etablissement = null) { $qb = $this->createQueryBuilder('t'); $qb ->distinct() ->select("t.anneeUniv1ereInscription") ->orderBy("t.anneeUniv1ereInscription"); if ($etablissement !== null) { $qb ->join('t.etablissement', 'etab', Join::WITH, 'etab = :etablissement') ->setParameter('etablissement', $etablissement); } $results = array_map(function($value) { return current($value); }, $qb->getQuery()->getScalarResult()); return $results; } /** * @param Etablissement|null $etablissement * @return int[] Loading module/Application/src/Application/Entity/Db/These.php +59 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,6 @@ namespace Application\Entity\Db; use UnicaenImport\Entity\Db\Traits\SourceAwareTrait; use Application\Filter\TitreApogeeFilter; use Assert\Assertion; use DateTime; Loading @@ -12,6 +11,7 @@ use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Util; use UnicaenImport\Entity\Db\Traits\SourceAwareTrait; use Zend\Permissions\Acl\Resource\ResourceInterface; /** Loading Loading @@ -98,6 +98,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface */ private $datePremiereInscription; /** * @var integer */ private $anneeUniv1ereInscription; /** * @var string */ Loading Loading @@ -223,6 +228,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface */ private $financements; /** * @var ArrayCollection */ private $anneesUnivInscription; /** * @return TitreApogeeFilter */ Loading @@ -245,6 +255,7 @@ class These implements HistoriqueAwareInterface, ResourceInterface $this->miseEnLignes = new ArrayCollection(); $this->acteurs = new ArrayCollection(); $this->rdvBus = new ArrayCollection(); $this->anneesUnivInscription = new ArrayCollection(); } /** Loading Loading @@ -1099,6 +1110,33 @@ class These implements HistoriqueAwareInterface, ResourceInterface return $this; } /** * @return int */ public function getAnneeUniv1ereInscription() { return $this->anneeUniv1ereInscription; } /** * @return int */ public function getAnneeUniv1ereInscriptionToString() { return $this->anneeUniv1ereInscription . '/' . ($this->anneeUniv1ereInscription + 1); } /** * @param int $anneeUniv1ereInscription * @return These */ public function setAnneeUniv1ereInscription($anneeUniv1ereInscription) { $this->anneeUniv1ereInscription = (int) $anneeUniv1ereInscription; return $this; } /** * @return string */ Loading Loading @@ -1153,6 +1191,26 @@ class These implements HistoriqueAwareInterface, ResourceInterface $this->etablissement = $etablissement; } /** * @return ArrayCollection */ public function getAnneesUnivInscription() { return $this->anneesUnivInscription; } /** * Retourne les années universitaires d'inscription séparées par une virgule. * * @param string $glue Séparateur, ex: ' - ' * @return string Ex: "2015/2016, 2016/2017, 2017/2018" */ public function getAnneesUnivInscriptionToString($glue = ', ') { return implode($glue, array_map(function(TheseAnneeUniv $tau) { return $tau->getAnneeUniv1ereInscriptionToString(); }, $this->anneesUnivInscription->toArray())); } /** * @return ArrayCollection Loading module/Application/src/Application/Entity/Db/TheseAnneeUniv.php 0 → 100644 +122 −0 Original line number Diff line number Diff line <?php namespace Application\Entity\Db; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenImport\Entity\Db\Traits\SourceAwareTrait; /** * TheseAnneeUniv */ class TheseAnneeUniv implements HistoriqueAwareInterface { use HistoriqueAwareTrait; use SourceAwareTrait; /** * @var integer */ private $id; /** * @var string */ protected $sourceCode; /** * @var integer */ protected $anneeUniv; /** * @var These */ private $these; /** * @return string */ public function __toString() { return $this->getAnneeUniv1ereInscriptionToString(); } /** * @return int */ public function getId() { return $this->id; } /** * Set sourceCode * * @param string $sourceCode * * @return self */ public function setSourceCode($sourceCode) { $this->sourceCode = $sourceCode; return $this; } /** * Get sourceCode * * @return string */ public function getSourceCode() { return $this->sourceCode; } /** * @return int */ public function getAnneeUniv() { return $this->anneeUniv; } /** * @param int $anneeUniv * @return TheseAnneeUniv */ public function setAnneeUniv($anneeUniv) { $this->anneeUniv = $anneeUniv; return $this; } /** * @return int */ public function getAnneeUniv1ereInscriptionToString() { return $this->anneeUniv . '/' . ($this->anneeUniv + 1); } /** * @return These */ public function getThese() { return $this->these; } /** * @param These $these * @return self */ public function setThese(These $these) { $this->these = $these; return $this; } } Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.These.dcm.xml +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ <field name="etatThese" type="string" column="ETAT_THESE" length="20" nullable="false"/> <field name="resultat" type="integer" column="RESULTAT" nullable="true"/> <field name="datePremiereInscription" type="datetime" column="DATE_PREM_INSC" nullable="true"/> <field name="anneeUniv1ereInscription" type="integer" column="ANNEE_UNIV_1ERE_INSC" nullable="true"/> <field name="libelleDiscipline" type="string" column="LIB_DISC" length="200" nullable="true"/> <field name="datePrevisionSoutenance" type="datetime" column="DATE_PREV_SOUTENANCE" nullable="true"/> <field name="dateSoutenance" type="datetime" column="DATE_SOUTENANCE" nullable="true"/> Loading Loading @@ -49,6 +50,7 @@ <one-to-many field="rdvBus" target-entity="Application\Entity\Db\RdvBu" mapped-by="these"/> <one-to-many field="validations" target-entity="Application\Entity\Db\Validation" mapped-by="these"/> <one-to-many field="titreAcces" target-entity="Application\Entity\Db\TitreAcces" mapped-by="these"/> <one-to-many field="anneesUnivInscription" target-entity="Application\Entity\Db\TheseAnneeUniv" mapped-by="these"/> <many-to-one field="etablissement" target-entity="Application\Entity\Db\Etablissement" fetch="LAZY"> <join-columns> Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.TheseAnneeUniv.dcm.xml 0 → 100644 +49 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Application\Entity\Db\TheseAnneeUniv" table="THESE_ANNEE_UNIV"> <id name="id" type="integer" column="ID"> <generator strategy="SEQUENCE"/> </id> <field name="anneeUniv" type="integer" column="ANNEE_UNIV"/> <field name="histoCreation" type="datetime" column="HISTO_CREATION"/> <field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/> <field name="histoModification" type="datetime" column="HISTO_MODIFICATION"/> <field name="sourceCode" column="SOURCE_CODE" length="64" nullable="true"/> <many-to-one field="these" target-entity="Application\Entity\Db\These"> <join-columns> <join-column name="THESE_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="source" target-entity="Application\Entity\Db\Source"> <join-columns> <join-column name="SOURCE_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur"> <join-columns> <join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur"> <join-columns> <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur"> <join-columns> <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> </entity> </doctrine-mapping>
module/Application/src/Application/Entity/Db/Repository/TheseRepository.php +25 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,31 @@ class TheseRepository extends DefaultEntityRepository return $results; } /** * @param Etablissement|null $etablissement * @return int[] */ public function fetchDistinctAnneesUniv1ereInscription(Etablissement $etablissement = null) { $qb = $this->createQueryBuilder('t'); $qb ->distinct() ->select("t.anneeUniv1ereInscription") ->orderBy("t.anneeUniv1ereInscription"); if ($etablissement !== null) { $qb ->join('t.etablissement', 'etab', Join::WITH, 'etab = :etablissement') ->setParameter('etablissement', $etablissement); } $results = array_map(function($value) { return current($value); }, $qb->getQuery()->getScalarResult()); return $results; } /** * @param Etablissement|null $etablissement * @return int[] Loading
module/Application/src/Application/Entity/Db/These.php +59 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,6 @@ namespace Application\Entity\Db; use UnicaenImport\Entity\Db\Traits\SourceAwareTrait; use Application\Filter\TitreApogeeFilter; use Assert\Assertion; use DateTime; Loading @@ -12,6 +11,7 @@ use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Util; use UnicaenImport\Entity\Db\Traits\SourceAwareTrait; use Zend\Permissions\Acl\Resource\ResourceInterface; /** Loading Loading @@ -98,6 +98,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface */ private $datePremiereInscription; /** * @var integer */ private $anneeUniv1ereInscription; /** * @var string */ Loading Loading @@ -223,6 +228,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface */ private $financements; /** * @var ArrayCollection */ private $anneesUnivInscription; /** * @return TitreApogeeFilter */ Loading @@ -245,6 +255,7 @@ class These implements HistoriqueAwareInterface, ResourceInterface $this->miseEnLignes = new ArrayCollection(); $this->acteurs = new ArrayCollection(); $this->rdvBus = new ArrayCollection(); $this->anneesUnivInscription = new ArrayCollection(); } /** Loading Loading @@ -1099,6 +1110,33 @@ class These implements HistoriqueAwareInterface, ResourceInterface return $this; } /** * @return int */ public function getAnneeUniv1ereInscription() { return $this->anneeUniv1ereInscription; } /** * @return int */ public function getAnneeUniv1ereInscriptionToString() { return $this->anneeUniv1ereInscription . '/' . ($this->anneeUniv1ereInscription + 1); } /** * @param int $anneeUniv1ereInscription * @return These */ public function setAnneeUniv1ereInscription($anneeUniv1ereInscription) { $this->anneeUniv1ereInscription = (int) $anneeUniv1ereInscription; return $this; } /** * @return string */ Loading Loading @@ -1153,6 +1191,26 @@ class These implements HistoriqueAwareInterface, ResourceInterface $this->etablissement = $etablissement; } /** * @return ArrayCollection */ public function getAnneesUnivInscription() { return $this->anneesUnivInscription; } /** * Retourne les années universitaires d'inscription séparées par une virgule. * * @param string $glue Séparateur, ex: ' - ' * @return string Ex: "2015/2016, 2016/2017, 2017/2018" */ public function getAnneesUnivInscriptionToString($glue = ', ') { return implode($glue, array_map(function(TheseAnneeUniv $tau) { return $tau->getAnneeUniv1ereInscriptionToString(); }, $this->anneesUnivInscription->toArray())); } /** * @return ArrayCollection Loading
module/Application/src/Application/Entity/Db/TheseAnneeUniv.php 0 → 100644 +122 −0 Original line number Diff line number Diff line <?php namespace Application\Entity\Db; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenImport\Entity\Db\Traits\SourceAwareTrait; /** * TheseAnneeUniv */ class TheseAnneeUniv implements HistoriqueAwareInterface { use HistoriqueAwareTrait; use SourceAwareTrait; /** * @var integer */ private $id; /** * @var string */ protected $sourceCode; /** * @var integer */ protected $anneeUniv; /** * @var These */ private $these; /** * @return string */ public function __toString() { return $this->getAnneeUniv1ereInscriptionToString(); } /** * @return int */ public function getId() { return $this->id; } /** * Set sourceCode * * @param string $sourceCode * * @return self */ public function setSourceCode($sourceCode) { $this->sourceCode = $sourceCode; return $this; } /** * Get sourceCode * * @return string */ public function getSourceCode() { return $this->sourceCode; } /** * @return int */ public function getAnneeUniv() { return $this->anneeUniv; } /** * @param int $anneeUniv * @return TheseAnneeUniv */ public function setAnneeUniv($anneeUniv) { $this->anneeUniv = $anneeUniv; return $this; } /** * @return int */ public function getAnneeUniv1ereInscriptionToString() { return $this->anneeUniv . '/' . ($this->anneeUniv + 1); } /** * @return These */ public function getThese() { return $this->these; } /** * @param These $these * @return self */ public function setThese(These $these) { $this->these = $these; return $this; } }