Loading SQL/01_schemas.sql +155 −41 Original line number Diff line number Diff line -- vue étudiant (postgres) create view public.v_suac_etudiant(id, prenom, nom, numero_etudiant, email, login) as SELECT DISTINCT i.c_individu_chaine AS id, Loading @@ -16,8 +15,10 @@ alter table public.v_suac_etudiant -- 49 743 - octopus select * from v_suac_etudiant ; select * from individu ; select * from v_suac_etudiant; select * from individu; -- modification de la vue v_suac_etudiant SELECT DISTINCT i.c_individu_chaine AS id, Loading @@ -35,7 +36,8 @@ WHERE ics.code = 'ACT'; -- 46 622 select * from individu_insc_admin iia ; select * from individu_insc_admin iia; -- v_objectifreussite_ia SELECT iia.id, Loading Loading @@ -65,7 +67,8 @@ FROM individu_insc_admin iia -- 152 147 / 946 581 select * from v_objectifreussite_etudiant ; select * from v_objectifreussite_etudiant; -- 46 578 (activé avec group by et max) -- 152 253 ( activé sans group by et max) -- 46 579 (activé sans group by et max, distinct) Loading @@ -75,14 +78,15 @@ select * from v_objectifreussite_etudiant ; -- ad-dummy_octopus -- vue inscription (postgres) drop view v_suac_ia; create or replace view public.v_suac_ia(id, etudiant_id, annee_univ, create or replace view public.v_suac_ia (id, etudiant_id, annee_univ, etape_id, formation_lib_court, formation, diplome_id, diplome_lib_court, diplome, cycle, composante, etablissement_libelle_court, etablissement ) as ) as SELECT ROW_NUMBER() over () AS ID, SELECT ROW_NUMBER() over () AS ID, iia.individu_id AS etudiant_id, iia.annee_univ, E.ETAPE_ID AS etape_id, Loading @@ -109,7 +113,8 @@ from individu_insc_admin iia ; -- 152 000 , 38 824 (>= 2023) select * from v_suac_ia ; select * from v_suac_ia; drop table public.etudiant_inscription_administrative; create table public.etudiant_inscription_administrative Loading Loading @@ -140,22 +145,26 @@ with tmp as (select distinct annee_univ from etudiant_inscription_administrative order by annee_univ) select ROW_NUMBER() over () AS ID, annee_univ from tmp select ROW_NUMBER() over () AS ID, annee_univ from tmp ; select * from v_etudiant_ia_annee_univ; select * from v_etudiant_ia_annee_univ; -- vue v_etudiant_ia_etablissement drop view v_etudiant_ia_etablissement; create view public.v_etudiant_ia_etablissement(id, etablissement) as with tmp as (select distinct etablissement from etudiant_inscription_administrative order by etablissement ) select ROW_NUMBER() over () AS ID, etablissement from tmp (select distinct etablissement from etudiant_inscription_administrative order by etablissement) select ROW_NUMBER() over () AS ID, etablissement from tmp ; select * from v_etudiant_ia_etablissement ; select * from v_etudiant_ia_etablissement; -- vue v_etudiant_ia_composante Loading @@ -167,7 +176,8 @@ select ROW_NUMBER() over () AS ID, composante from tmp ; select * from v_etudiant_ia_composante ; select * from v_etudiant_ia_composante; -- vue v_etudiant_ia_cycle drop view v_etudiant_ia_cycle; Loading @@ -178,9 +188,113 @@ select ROW_NUMBER() over () AS ID, cycle from tmp ; select * from v_etudiant_ia_cycle ; select * from v_etudiant_ia_cycle; select e.nom, e.prenom, ia.* from etudiant_etudiant e select e.nom, e.prenom, ia.* from etudiant_etudiant e join etudiant_inscription_administrative ia on e.id = ia.etudiant_id where ia.annee_univ = '2023'; /* villes, sites */ -- sites -- octopus select im.id, isa.ville_code as ville_code, isa.ville_nom as ville_nom, im.LIBELLE_COMMUNICATION as site from immobilier_site im left join OCTO.IMMOBILIER_SITE_ADRESSE isa on im.id = isa.SITE_ID where im.HISTO_DESTRUCTION is null order by im.LIBELLE_COMMUNICATION; ; /* 9,61143,Damigny,Alençon-Damigny 10,14118,Caen,Caen Campus 1 1,14118,Caen,Caen Campus 2 6,14341,Ifs,Caen Campus 3 5,14118,Caen,Caen Campus 4 3,14118,Caen,Caen Campus 5 7,14118,Caen,Caen Horowitz 8,14118,Caen,Caen INSPÉ 13,50129,Cherbourg-en-Cotentin,Cherbourg-en-Cotentin 11,,,Hors Unicaen 2,14366,Lisieux,Lisieux 15,14384,Luc-sur-Mer,Luc-sur-Mer 14,50502,Saint-Lô,Saint-Lô 16,50502,Saint-Lô,Saint-Lô 4,14762,Vire Normandie,Vire */ -- ad_dummy_octopus drop view v_suac_site; create view v_suac_site(id, ville_id, libelle) as select id, ville_id, libelle from (values (9, 61143, 'Damigny', 'Alençon-Damigny'), (10, 14118, 'Caen', 'Caen Campus 1'), (1, 14118, 'Caen', 'Caen Campus 2'), (6, 14341, 'Ifs', 'Caen Campus 3'), (5, 14118, 'Caen', 'Caen Campus 4'), (3, 14118, 'Caen', 'Caen Campus 5'), (7, 14118, 'Caen', 'Caen Horowitz'), (8, 14118, 'Caen', 'Caen INSPÉ'), (13, 50129, 'Cherbourg-en-Cotentin', 'Cherbourg-en-Cotentin'), (11, null, null, 'Hors Unicaen'), (2, 14366, 'Lisieux', 'Lisieux'), (15, 14384, 'Luc-sur-Mer', 'Luc-sur-Mer'), (14, 50502, 'Saint-Lô', 'Saint-Lô'), (16, 50502, 'Saint-Lô', 'Saint-Lô'), (4, 14762, 'Vire Normandie', 'Vire Normandie')) as t(id, ville_id, ville_nom, libelle); -- villes ocotpus select distinct isa.ville_code as ville_code, isa.ville_nom as ville_nom from OCTO.IMMOBILIER_SITE_ADRESSE isa where isa.ville_code is not null ; -- ad_dummy_octopus drop view v_suac_ville; create or replace view v_suac_ville(id, nom) as select * from (values (61143, 'Damigny'), (14118, 'Caen'), (14341, 'Ifs'), (50129, 'Cherbourg-en-Cotentin'), (14366, 'Lisieux'), (14384, 'Luc-sur-Mer'), (50502, 'Saint-Lô'), (14762, 'Vire Normandie')) as t(ville_code, ville_nom); drop table public.site_site; create table public.site_site ( id varchar(256) not null constraint dite_ville_pk primary key, ville_id varchar(256) constraint site_site_site_ville_id_fk references public.site_ville, libelle varchar(256), created_on timestamp default now() not null, updated_on timestamp, deleted_on timestamp, source_id varchar(128) ); drop table public.site_ville; create table public.site_ville ( id varchar(256) not null constraint site_site_pk primary key, nom varchar(256), created_on timestamp default now() not null, updated_on timestamp, deleted_on timestamp, source_id varchar(128) ); config/autoload/synchro.global.php +60 −31 Original line number Diff line number Diff line Loading @@ -43,7 +43,36 @@ return [ 'etablissement' => 'etablissement', ], 'id' => 'id', 'separator' => 'annee_univ', // 'separator' => 'annee_univ', ], 'VILLE' => [ 'order' => 3, 'source' => 'OCTOPUS', 'orm_source' => 'orm_octopus', 'orm_destination' => 'orm_default', 'table_source' => 'V_SUAC_VILLE', 'table_destination' => 'site_ville', 'correspondance' => [ 'id' => 'id', 'nom' => 'nom', ], 'id' => 'id', // 'separator' => '', ], 'SITE' => [ 'order' => 3, 'source' => 'OCTOPUS', 'orm_source' => 'orm_octopus', 'orm_destination' => 'orm_default', 'table_source' => 'V_SUAC_SITE', 'table_destination' => 'site_site', 'correspondance' => [ 'id' => 'id', 'ville_id' => 'ville_id', 'libelle' => 'libelle', ], 'id' => 'id', // 'separator' => '', ], ], ]; module/Site/src/Entity/Db/Mapping/Site.Entity.Db.Site.dcm.xml 0 → 100644 +16 −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="Site\Entity\Db\Site" table="site_site"> <id name="id" type="string" length="256" column="id"/> <field name="libelle" type="string" column="libelle" length="256" nullable="true"/> <one-to-one field="ville" target-entity="Site\Entity\Db\Ville"> <join-column name="ville_id" referenced-column-name="id" /> </one-to-one> </entity> </doctrine-mapping> No newline at end of file module/Site/src/Entity/Db/Mapping/Site.Entity.Db.Ville.dcm.xml 0 → 100644 +20 −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="Site\Entity\Db\Ville" table="site_ville"> <id name="id" type="string" length="256" column="id"/> <field name="nom" type="string" column="nom" length="255" nullable="false"/> <field name="libelle" type="string" column="libelle" length="256" nullable="true"/> <!-- DB IMPORT ############################# --> <field name="createdOn" column="created_on" type="datetime" nullable="true"/> <field name="updatedOn" column="updated_on" type="datetime"/> <field name="deletedOn" column="deleted_on" type="datetime"/> <field name="sourceId" column="source_id" type="string" length="128" nullable="true"/> </entity> </doctrine-mapping> No newline at end of file module/Site/src/Entity/Db/Site.php +55 −0 Original line number Diff line number Diff line <?php namespace Site\Entity\Db; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Laminas\Permissions\Acl\Resource\ResourceInterface; use UnicaenSynchro\Entity\Db\IsSynchronisableInterface; use UnicaenSynchro\Entity\Db\IsSynchronisableTrait; class Site implements ResourceInterface, IsSynchronisableInterface { use IsSynchronisableTrait; private ?string $id = null; private ?string $libelle = null; private ?Ville $ville = null; public function getResourceId(): string { return 'Site'; } public function getId(): ?string { return $this->id; } public function setId(?string $id): void { $this->id = $id; } public function getLibelle(): ?string { return $this->libelle; } public function setLibelle(?string $libelle): void { $this->libelle = $libelle; } public function getVille(): ?Ville { return $this->ville; } public function setVille(?Ville $ville): void { $this->ville = $ville; } } No newline at end of file Loading
SQL/01_schemas.sql +155 −41 Original line number Diff line number Diff line -- vue étudiant (postgres) create view public.v_suac_etudiant(id, prenom, nom, numero_etudiant, email, login) as SELECT DISTINCT i.c_individu_chaine AS id, Loading @@ -16,8 +15,10 @@ alter table public.v_suac_etudiant -- 49 743 - octopus select * from v_suac_etudiant ; select * from individu ; select * from v_suac_etudiant; select * from individu; -- modification de la vue v_suac_etudiant SELECT DISTINCT i.c_individu_chaine AS id, Loading @@ -35,7 +36,8 @@ WHERE ics.code = 'ACT'; -- 46 622 select * from individu_insc_admin iia ; select * from individu_insc_admin iia; -- v_objectifreussite_ia SELECT iia.id, Loading Loading @@ -65,7 +67,8 @@ FROM individu_insc_admin iia -- 152 147 / 946 581 select * from v_objectifreussite_etudiant ; select * from v_objectifreussite_etudiant; -- 46 578 (activé avec group by et max) -- 152 253 ( activé sans group by et max) -- 46 579 (activé sans group by et max, distinct) Loading @@ -75,14 +78,15 @@ select * from v_objectifreussite_etudiant ; -- ad-dummy_octopus -- vue inscription (postgres) drop view v_suac_ia; create or replace view public.v_suac_ia(id, etudiant_id, annee_univ, create or replace view public.v_suac_ia (id, etudiant_id, annee_univ, etape_id, formation_lib_court, formation, diplome_id, diplome_lib_court, diplome, cycle, composante, etablissement_libelle_court, etablissement ) as ) as SELECT ROW_NUMBER() over () AS ID, SELECT ROW_NUMBER() over () AS ID, iia.individu_id AS etudiant_id, iia.annee_univ, E.ETAPE_ID AS etape_id, Loading @@ -109,7 +113,8 @@ from individu_insc_admin iia ; -- 152 000 , 38 824 (>= 2023) select * from v_suac_ia ; select * from v_suac_ia; drop table public.etudiant_inscription_administrative; create table public.etudiant_inscription_administrative Loading Loading @@ -140,22 +145,26 @@ with tmp as (select distinct annee_univ from etudiant_inscription_administrative order by annee_univ) select ROW_NUMBER() over () AS ID, annee_univ from tmp select ROW_NUMBER() over () AS ID, annee_univ from tmp ; select * from v_etudiant_ia_annee_univ; select * from v_etudiant_ia_annee_univ; -- vue v_etudiant_ia_etablissement drop view v_etudiant_ia_etablissement; create view public.v_etudiant_ia_etablissement(id, etablissement) as with tmp as (select distinct etablissement from etudiant_inscription_administrative order by etablissement ) select ROW_NUMBER() over () AS ID, etablissement from tmp (select distinct etablissement from etudiant_inscription_administrative order by etablissement) select ROW_NUMBER() over () AS ID, etablissement from tmp ; select * from v_etudiant_ia_etablissement ; select * from v_etudiant_ia_etablissement; -- vue v_etudiant_ia_composante Loading @@ -167,7 +176,8 @@ select ROW_NUMBER() over () AS ID, composante from tmp ; select * from v_etudiant_ia_composante ; select * from v_etudiant_ia_composante; -- vue v_etudiant_ia_cycle drop view v_etudiant_ia_cycle; Loading @@ -178,9 +188,113 @@ select ROW_NUMBER() over () AS ID, cycle from tmp ; select * from v_etudiant_ia_cycle ; select * from v_etudiant_ia_cycle; select e.nom, e.prenom, ia.* from etudiant_etudiant e select e.nom, e.prenom, ia.* from etudiant_etudiant e join etudiant_inscription_administrative ia on e.id = ia.etudiant_id where ia.annee_univ = '2023'; /* villes, sites */ -- sites -- octopus select im.id, isa.ville_code as ville_code, isa.ville_nom as ville_nom, im.LIBELLE_COMMUNICATION as site from immobilier_site im left join OCTO.IMMOBILIER_SITE_ADRESSE isa on im.id = isa.SITE_ID where im.HISTO_DESTRUCTION is null order by im.LIBELLE_COMMUNICATION; ; /* 9,61143,Damigny,Alençon-Damigny 10,14118,Caen,Caen Campus 1 1,14118,Caen,Caen Campus 2 6,14341,Ifs,Caen Campus 3 5,14118,Caen,Caen Campus 4 3,14118,Caen,Caen Campus 5 7,14118,Caen,Caen Horowitz 8,14118,Caen,Caen INSPÉ 13,50129,Cherbourg-en-Cotentin,Cherbourg-en-Cotentin 11,,,Hors Unicaen 2,14366,Lisieux,Lisieux 15,14384,Luc-sur-Mer,Luc-sur-Mer 14,50502,Saint-Lô,Saint-Lô 16,50502,Saint-Lô,Saint-Lô 4,14762,Vire Normandie,Vire */ -- ad_dummy_octopus drop view v_suac_site; create view v_suac_site(id, ville_id, libelle) as select id, ville_id, libelle from (values (9, 61143, 'Damigny', 'Alençon-Damigny'), (10, 14118, 'Caen', 'Caen Campus 1'), (1, 14118, 'Caen', 'Caen Campus 2'), (6, 14341, 'Ifs', 'Caen Campus 3'), (5, 14118, 'Caen', 'Caen Campus 4'), (3, 14118, 'Caen', 'Caen Campus 5'), (7, 14118, 'Caen', 'Caen Horowitz'), (8, 14118, 'Caen', 'Caen INSPÉ'), (13, 50129, 'Cherbourg-en-Cotentin', 'Cherbourg-en-Cotentin'), (11, null, null, 'Hors Unicaen'), (2, 14366, 'Lisieux', 'Lisieux'), (15, 14384, 'Luc-sur-Mer', 'Luc-sur-Mer'), (14, 50502, 'Saint-Lô', 'Saint-Lô'), (16, 50502, 'Saint-Lô', 'Saint-Lô'), (4, 14762, 'Vire Normandie', 'Vire Normandie')) as t(id, ville_id, ville_nom, libelle); -- villes ocotpus select distinct isa.ville_code as ville_code, isa.ville_nom as ville_nom from OCTO.IMMOBILIER_SITE_ADRESSE isa where isa.ville_code is not null ; -- ad_dummy_octopus drop view v_suac_ville; create or replace view v_suac_ville(id, nom) as select * from (values (61143, 'Damigny'), (14118, 'Caen'), (14341, 'Ifs'), (50129, 'Cherbourg-en-Cotentin'), (14366, 'Lisieux'), (14384, 'Luc-sur-Mer'), (50502, 'Saint-Lô'), (14762, 'Vire Normandie')) as t(ville_code, ville_nom); drop table public.site_site; create table public.site_site ( id varchar(256) not null constraint dite_ville_pk primary key, ville_id varchar(256) constraint site_site_site_ville_id_fk references public.site_ville, libelle varchar(256), created_on timestamp default now() not null, updated_on timestamp, deleted_on timestamp, source_id varchar(128) ); drop table public.site_ville; create table public.site_ville ( id varchar(256) not null constraint site_site_pk primary key, nom varchar(256), created_on timestamp default now() not null, updated_on timestamp, deleted_on timestamp, source_id varchar(128) );
config/autoload/synchro.global.php +60 −31 Original line number Diff line number Diff line Loading @@ -43,7 +43,36 @@ return [ 'etablissement' => 'etablissement', ], 'id' => 'id', 'separator' => 'annee_univ', // 'separator' => 'annee_univ', ], 'VILLE' => [ 'order' => 3, 'source' => 'OCTOPUS', 'orm_source' => 'orm_octopus', 'orm_destination' => 'orm_default', 'table_source' => 'V_SUAC_VILLE', 'table_destination' => 'site_ville', 'correspondance' => [ 'id' => 'id', 'nom' => 'nom', ], 'id' => 'id', // 'separator' => '', ], 'SITE' => [ 'order' => 3, 'source' => 'OCTOPUS', 'orm_source' => 'orm_octopus', 'orm_destination' => 'orm_default', 'table_source' => 'V_SUAC_SITE', 'table_destination' => 'site_site', 'correspondance' => [ 'id' => 'id', 'ville_id' => 'ville_id', 'libelle' => 'libelle', ], 'id' => 'id', // 'separator' => '', ], ], ];
module/Site/src/Entity/Db/Mapping/Site.Entity.Db.Site.dcm.xml 0 → 100644 +16 −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="Site\Entity\Db\Site" table="site_site"> <id name="id" type="string" length="256" column="id"/> <field name="libelle" type="string" column="libelle" length="256" nullable="true"/> <one-to-one field="ville" target-entity="Site\Entity\Db\Ville"> <join-column name="ville_id" referenced-column-name="id" /> </one-to-one> </entity> </doctrine-mapping> No newline at end of file
module/Site/src/Entity/Db/Mapping/Site.Entity.Db.Ville.dcm.xml 0 → 100644 +20 −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="Site\Entity\Db\Ville" table="site_ville"> <id name="id" type="string" length="256" column="id"/> <field name="nom" type="string" column="nom" length="255" nullable="false"/> <field name="libelle" type="string" column="libelle" length="256" nullable="true"/> <!-- DB IMPORT ############################# --> <field name="createdOn" column="created_on" type="datetime" nullable="true"/> <field name="updatedOn" column="updated_on" type="datetime"/> <field name="deletedOn" column="deleted_on" type="datetime"/> <field name="sourceId" column="source_id" type="string" length="128" nullable="true"/> </entity> </doctrine-mapping> No newline at end of file
module/Site/src/Entity/Db/Site.php +55 −0 Original line number Diff line number Diff line <?php namespace Site\Entity\Db; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Laminas\Permissions\Acl\Resource\ResourceInterface; use UnicaenSynchro\Entity\Db\IsSynchronisableInterface; use UnicaenSynchro\Entity\Db\IsSynchronisableTrait; class Site implements ResourceInterface, IsSynchronisableInterface { use IsSynchronisableTrait; private ?string $id = null; private ?string $libelle = null; private ?Ville $ville = null; public function getResourceId(): string { return 'Site'; } public function getId(): ?string { return $this->id; } public function setId(?string $id): void { $this->id = $id; } public function getLibelle(): ?string { return $this->libelle; } public function setLibelle(?string $libelle): void { $this->libelle = $libelle; } public function getVille(): ?Ville { return $this->ville; } public function setVille(?Ville $ville): void { $this->ville = $ville; } } No newline at end of file