Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.These.dcm.xml +1 −0 Original line number Diff line number Diff line Loading @@ -50,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/These.php +27 −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 @@ -228,6 +228,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface */ private $financements; /** * @var ArrayCollection */ private $anneesUnivInscription; /** * @return TitreApogeeFilter */ Loading @@ -250,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 @@ -1185,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; } } module/Application/src/Application/Service/These/Filter/TheseSelectFilter.php +14 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ class TheseSelectFilter extends TheseFilter const NAME_uniteRecherche = 'uniteRecherche'; const NAME_anneePremiereInscription = 'anneePremiereInscription'; const NAME_anneeUniv1ereInscription = 'anneeUniv1ereInscription'; const NAME_anneeUnivInscription = 'anneeUnivInscription'; const NAME_anneeSoutenance = 'anneeSoutenance'; const NAME_discipline = 'discipline'; const NAME_domaineScientifique = 'domaineScientifique'; Loading Loading @@ -115,6 +116,19 @@ class TheseSelectFilter extends TheseFilter } break; case self::NAME_anneeUnivInscription: if ($filterValue === 'NULL') { $qb ->leftJoin('t.anneesUnivInscription', 'aui') ->andWhere('aui.anneeUniv IS NULL'); } else { $qb ->join('t.anneesUnivInscription', 'aui') ->andWhere('aui.anneeUniv = :anneeUniv') ->setParameter('anneeUniv', $filterValue); } break; case self::NAME_anneeSoutenance: if ($filterValue === 'NULL') { $qb Loading Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.These.dcm.xml +1 −0 Original line number Diff line number Diff line Loading @@ -50,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/These.php +27 −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 @@ -228,6 +228,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface */ private $financements; /** * @var ArrayCollection */ private $anneesUnivInscription; /** * @return TitreApogeeFilter */ Loading @@ -250,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 @@ -1185,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; } }
module/Application/src/Application/Service/These/Filter/TheseSelectFilter.php +14 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ class TheseSelectFilter extends TheseFilter const NAME_uniteRecherche = 'uniteRecherche'; const NAME_anneePremiereInscription = 'anneePremiereInscription'; const NAME_anneeUniv1ereInscription = 'anneeUniv1ereInscription'; const NAME_anneeUnivInscription = 'anneeUnivInscription'; const NAME_anneeSoutenance = 'anneeSoutenance'; const NAME_discipline = 'discipline'; const NAME_domaineScientifique = 'domaineScientifique'; Loading Loading @@ -115,6 +116,19 @@ class TheseSelectFilter extends TheseFilter } break; case self::NAME_anneeUnivInscription: if ($filterValue === 'NULL') { $qb ->leftJoin('t.anneesUnivInscription', 'aui') ->andWhere('aui.anneeUniv IS NULL'); } else { $qb ->join('t.anneesUnivInscription', 'aui') ->andWhere('aui.anneeUniv = :anneeUniv') ->setParameter('anneeUniv', $filterValue); } break; case self::NAME_anneeSoutenance: if ($filterValue === 'NULL') { $qb Loading