Skip to content
Snippets Groups Projects
Commit 068add9e authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Changement de type pour 'Frais annexe' ; float > varchar(1024)

parent 489e8127
Branches
Tags
No related merge requests found
Showing
with 37 additions and 273 deletions
CREATE OR REPLACE FUNCTION public.create_import_metarequest_for_structure(src_id text, src_code text, src_libelle_court text, src_libelle_long text, src_type text, src_histo text, dest_id text, dest_code text, dest_libelle_court text, dest_libelle_long text, dest_type text, dest_histo text, dest_deleted_on timestamp with time zone, import_hash character varying)
CREATE OR REPLACE FUNCTION public.create_import_metarequest_for_structure(src_id text, src_code text, src_libelle_court text, src_libelle_long text, src_type text, dest_id text, dest_code text, dest_libelle_court text, dest_libelle_long text, dest_type text, dest_deleted_on timestamp with time zone, import_hash character varying)
RETURNS character varying
LANGUAGE plpgsql
AS $function$
......@@ -8,22 +8,20 @@ DECLARE
sql TEXT;
BEGIN
-- normalisation des valeurs d'entrée
src_CODE = coalesce(quote_literal(src_CODE), 'NULL');
src_LIBELLE_COURT = coalesce(quote_literal(src_LIBELLE_COURT), 'NULL');
src_LIBELLE_LONG = coalesce(quote_literal(src_LIBELLE_LONG), 'NULL');
src_TYPE = coalesce(quote_literal(src_TYPE), 'NULL');
src_HISTO = coalesce(quote_literal(src_HISTO), 'NULL');
dest_CODE = coalesce(quote_literal(dest_CODE), 'NULL');
dest_LIBELLE_COURT = coalesce(quote_literal(dest_LIBELLE_COURT), 'NULL');
dest_LIBELLE_LONG = coalesce(quote_literal(dest_LIBELLE_LONG), 'NULL');
dest_TYPE = coalesce(quote_literal(dest_TYPE), 'NULL');
dest_HISTO = coalesce(quote_literal(dest_HISTO), 'NULL');
src_CODE = coalesce(src_CODE, 'null');
src_LIBELLE_COURT = coalesce(src_LIBELLE_COURT, 'null');
src_LIBELLE_LONG = coalesce(src_LIBELLE_LONG, 'null');
src_TYPE = coalesce(src_TYPE, 'null');
dest_CODE = coalesce(dest_CODE, 'null');
dest_LIBELLE_COURT = coalesce(dest_LIBELLE_COURT, 'null');
dest_LIBELLE_LONG = coalesce(dest_LIBELLE_LONG, 'null');
dest_TYPE = coalesce(dest_TYPE, 'null');
-- l'enregistrement existe dans la source mais pas dans la destination : il devra être ajouté
IF (src_ID IS NOT NULL AND dest_ID IS NULL) THEN
operation = 'insert';
hash = src_ID || '-' || import_hash;
sql = 'INSERT INTO structure(ID, CODE, LIBELLE_COURT, LIBELLE_LONG, TYPE, HISTO, created_on) VALUES (' || quote_literal(src_ID) || ', ' || src_CODE || ', ' || src_LIBELLE_COURT || ', ' || src_LIBELLE_LONG || ', ' || src_TYPE || ', ' || src_HISTO || ', ' || 'LOCALTIMESTAMP(0)) ;' ;
sql = 'INSERT INTO structure(ID, CODE, LIBELLE_COURT, LIBELLE_LONG, TYPE, created_on) VALUES (' || quote_literal(src_ID) || ', ' || quote_literal(src_CODE) || ', ' || quote_literal(src_LIBELLE_COURT) || ', ' || quote_literal(src_LIBELLE_LONG) || ', ' || quote_literal(src_TYPE) || ', ' || 'LOCALTIMESTAMP(0)) ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('insert', 'structure', src_ID, null, null, null, sql, LOCALTIMESTAMP(0), hash);
END IF;
......@@ -34,7 +32,7 @@ BEGIN
IF (src_CODE <> dest_CODE) THEN
operation = 'update';
hash = dest_ID || '-' || dest_CODE || '-' || import_hash;
sql = 'UPDATE structure SET CODE = ' || src_CODE || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = 'UPDATE structure SET CODE = ' || quote_literal(src_CODE) || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('update', 'structure', src_ID, 'CODE', src_CODE, dest_CODE, sql, LOCALTIMESTAMP(0), hash);
END IF;
......@@ -42,7 +40,7 @@ BEGIN
IF (src_LIBELLE_COURT <> dest_LIBELLE_COURT) THEN
operation = 'update';
hash = dest_ID || '-' || dest_LIBELLE_COURT || '-' || import_hash;
sql = 'UPDATE structure SET LIBELLE_COURT = ' || src_LIBELLE_COURT || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = 'UPDATE structure SET LIBELLE_COURT = ' || quote_literal(src_LIBELLE_COURT) || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('update', 'structure', src_ID, 'LIBELLE_COURT', src_LIBELLE_COURT, dest_LIBELLE_COURT, sql, LOCALTIMESTAMP(0), hash);
END IF;
......@@ -50,7 +48,7 @@ BEGIN
IF (src_LIBELLE_LONG <> dest_LIBELLE_LONG) THEN
operation = 'update';
hash = dest_ID || '-' || dest_LIBELLE_LONG || '-' || import_hash;
sql = 'UPDATE structure SET LIBELLE_LONG = ' || src_LIBELLE_LONG || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = 'UPDATE structure SET LIBELLE_LONG = ' || quote_literal(src_LIBELLE_LONG) || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('update', 'structure', src_ID, 'LIBELLE_LONG', src_LIBELLE_LONG, dest_LIBELLE_LONG, sql, LOCALTIMESTAMP(0), hash);
END IF;
......@@ -58,18 +56,10 @@ BEGIN
IF (src_TYPE <> dest_TYPE) THEN
operation = 'update';
hash = dest_ID || '-' || dest_TYPE || '-' || import_hash;
sql = 'UPDATE structure SET TYPE = ' || src_TYPE || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = 'UPDATE structure SET TYPE = ' || quote_literal(src_TYPE) || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('update', 'structure', src_ID, 'TYPE', src_TYPE, dest_TYPE, sql, LOCALTIMESTAMP(0), hash);
END IF;
-- 'HISTO' doit être mis à jour
IF (src_HISTO <> dest_HISTO) THEN
operation = 'update';
hash = dest_ID || '-' || dest_HISTO || '-' || import_hash;
sql = 'UPDATE structure SET HISTO = ' || src_HISTO || ', updated_on = LOCALTIMESTAMP(0) WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('update', 'structure', src_ID, 'HISTO', src_HISTO, dest_HISTO, sql, LOCALTIMESTAMP(0), hash);
END IF;
END IF;
......@@ -77,7 +67,7 @@ BEGIN
IF (src_ID IS NOT NULL AND dest_ID IS NOT NULL and dest_deleted_on IS NOT NULL) THEN
operation = 'undelete';
hash = dest_ID || '-' || import_hash;
sql = 'UPDATE structure SET ' || 'CODE = ' || src_CODE || ', ' || 'LIBELLE_COURT = ' || src_LIBELLE_COURT || ', ' || 'LIBELLE_LONG = ' || src_LIBELLE_LONG || ', ' || 'TYPE = ' || src_TYPE || ', ' || 'HISTO = ' || src_HISTO || ', ' || 'updated_on = LOCALTIMESTAMP(0), deleted_on = null WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = 'UPDATE structure SET ' || 'CODE = ' || quote_literal(src_CODE) || ', ' || 'LIBELLE_COURT = ' || quote_literal(src_LIBELLE_COURT) || ', ' || 'LIBELLE_LONG = ' || quote_literal(src_LIBELLE_LONG) || ', ' || 'TYPE = ' || quote_literal(src_TYPE) || ', ' || 'updated_on = LOCALTIMESTAMP(0), deleted_on = null WHERE ID = ' || quote_literal(dest_ID) || ' ;' ;
sql = sql || ' UPDATE import_reg SET executed_on = LOCALTIMESTAMP(0) WHERE import_hash = ' || quote_literal(hash) || ' ;' ;
INSERT INTO import_reg(operation, table_name, source_code, field_name, to_value, from_value, sql, created_on, import_hash) VALUES ('undelete', 'structure', src_ID, null, null, null, sql, LOCALTIMESTAMP(0), hash);
END IF;
......
<?php
//@formatter:off
return [
'name' => 'formation_demande_externe_id_uindex',
'unique' => TRUE,
'type' => 'btree',
'table' => 'formation_demande_externe',
'schema' => 'public',
'columns' => [
'id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'name' => 'ix_unicaen_privilege_categorie',
'unique' => FALSE,
'type' => 'btree',
'table' => 'unicaen_privilege_privilege',
'schema' => 'public',
'columns' => [
'categorie_id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'name' => 'privilege_code_uindex',
'unique' => TRUE,
'type' => 'btree',
'table' => 'unicaen_privilege_privilege',
'schema' => 'public',
'columns' => [
'code',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'name' => 'un_unicaen_privilege_categorie_code',
'unique' => TRUE,
'type' => 'btree',
'table' => 'unicaen_privilege_categorie',
'schema' => 'public',
'columns' => [
'code',
],
];
//@formatter:on
WITH periode AS (
SELECT to_date('01-01-2024'::text, 'dd-mm-yyyy'::text) AS debut,
to_date('31-12-2024'::text, 'dd-mm-yyyy'::text) AS fin
)
SELECT max((((a.prenom)::text || ' '::text) || (COALESCE(a.nom_usage, a.nom_famille))::text)) AS denomination,
max((a.sexe)::text) AS genre,
CASE
WHEN (max((acs.t_administratif)::text) = 'O'::text) THEN 'BIATSS'::text
WHEN ((max((acs.t_enseignant)::text) = 'O'::text) AND (max((acs.t_chercheur)::text) = 'O'::text)) THEN 'ENSEIGNANT-CHERCHEUR'::text
WHEN (max((acs.t_enseignant)::text) = 'O'::text) THEN 'ENSEIGNANT'::text
WHEN (max((acs.t_chercheur)::text) = 'O'::text) THEN 'CHERCHEUR'::text
ELSE NULL::text
END AS statut,
CASE
WHEN (max((acs.t_titulaire)::text) = 'O'::text) THEN 'TITULAIRE'::text
WHEN (max((acs.t_cdi)::text) = 'O'::text) THEN 'CDI'::text
WHEN (max((acs.t_cdd)::text) = 'O'::text) THEN 'CDD'::text
ELSE NULL::text
END AS contrat,
CASE
WHEN (max(niv2.id) = max(s.id)) THEN max((niv2.libelle_court)::text)
ELSE max((((niv2.libelle_court)::text || ' > '::text) || (s.libelle_court)::text))
END AS structure,
max((f.libelle)::text) AS action,
max((fd.libelle)::text) AS domaine,
CASE
WHEN (max((fa.libelle)::text) = 'Formations externes'::text) THEN 'O'::text
ELSE 'N'::text
END AS stage_externe
FROM ((((((((((((formation_inscription i
JOIN agent a ON (((i.agent_id)::text = (a.c_individu)::text)))
JOIN agent_carriere_statut acs ON (((acs.agent_id)::text = (a.c_individu)::text)))
JOIN agent_carriere_affectation aca ON (((aca.agent_id)::text = (a.c_individu)::text)))
JOIN structure s ON ((aca.structure_id = s.id)))
JOIN structure niv2 ON ((s.niv2_id = niv2.id)))
JOIN formation_instance fi ON ((i.session_id = fi.id)))
JOIN formation_seance fs ON ((fi.id = fs.instance_id)))
JOIN formation f ON ((f.id = fi.formation_id)))
LEFT JOIN formation_axe fa ON ((fa.id = f.axe_id)))
LEFT JOIN formation_formation_domaine ffd ON ((f.id = ffd.formation_id)))
LEFT JOIN formation_domaine fd ON ((ffd.domaine_id = fd.id)))
JOIN periode p ON ((1 = 1)))
WHERE (((i.liste)::text = 'principale'::text) AND (i.histo_destruction IS NULL) AND (acs.d_debut <= p.debut) AND ((acs.d_fin IS NULL) OR (acs.d_fin >= p.fin)) AND (aca.date_debut <= p.debut) AND ((aca.date_fin IS NULL) OR (aca.date_fin >= p.fin)) AND (((fs.jour >= p.debut) AND (fs.jour <= p.fin)) OR ((fs.volume_debut >= p.debut) AND (fs.volume_fin <= p.fin))))
GROUP BY i.id
\ No newline at end of file
SELECT i.id AS sessio_id,
max((f.libelle)::text) AS libelle,
i.date_cloture_inscription AS cloture_inscription,
count(n.*) AS nb_inscription,
array_agg(concat(a.prenom, ' ', COALESCE(a.nom_famille, a.nom_famille))) AS liste
FROM ((((formation_instance i
LEFT JOIN formation_session_etat e ON ((i.id = e.session_id)))
JOIN formation f ON ((i.formation_id = f.id)))
LEFT JOIN formation_inscription n ON ((i.id = n.session_id)))
LEFT JOIN agent a ON (((n.agent_id)::text = (a.c_individu)::text)))
WHERE (e.etat_id IS NULL)
GROUP BY i.id
HAVING (count(n.*) > 0)
ORDER BY (max((f.libelle)::text))
\ No newline at end of file
SELECT i.id AS inscription_id,
max((a.c_individu)::text) AS agent_id,
concat(max((a.nom_usage)::text), ' ', max((a.prenom)::text)) AS agent,
max(s.id) AS session_id,
max((f.libelle)::text) AS session_libelle
FROM ((((formation_inscription i
LEFT JOIN formation_inscription_etat ie ON ((i.id = ie.inscription_id)))
JOIN agent a ON (((i.agent_id)::text = (a.c_individu)::text)))
JOIN formation_instance s ON ((i.session_id = s.id)))
JOIN formation f ON ((s.formation_id = f.id)))
GROUP BY i.id
HAVING (count(ie.etat_id) = 0)
\ No newline at end of file
SELECT min(i.id) AS inscription_id,
concat(COALESCE(min((a.nom_usage)::text), min((a.nom_famille)::text)), ' ', min((a.prenom)::text)) AS denomination,
min((f.libelle)::text) AS formation,
min((t.libelle_court)::text) AS structure,
min(t.id) AS perimetre_structure_id
FROM ((((((formation_inscription i
JOIN agent a ON (((i.agent_id)::text = (a.c_individu)::text)))
JOIN formation_instance s ON ((i.session_id = s.id)))
JOIN formation f ON ((s.formation_id = f.id)))
JOIN formation_seance j ON ((j.instance_id = s.id)))
LEFT JOIN agent_carriere_affectation aca ON (((aca.agent_id)::text = (a.c_individu)::text)))
LEFT JOIN structure t ON ((aca.structure_id = t.id)))
WHERE ((i.id IS NOT NULL) AND ((aca.date_debut IS NULL) OR (aca.date_debut < COALESCE(j.jour, j.volume_debut))) AND ((aca.date_fin IS NULL) OR (aca.date_fin >= COALESCE(j.jour, j.volume_fin))))
GROUP BY s.id
\ No newline at end of file
SELECT max((f.libelle)::text) AS max,
array_agg(DISTINCT d.libelle) AS array_agg,
count(*) AS count
FROM ((((formation_formation_abonnement ffa
JOIN formation f ON ((ffa.formation_id = f.id)))
JOIN formation_formation_domaine fd ON ((f.id = fd.formation_id)))
JOIN formation_domaine d ON ((d.id = fd.domaine_id)))
JOIN agent a ON (((ffa.agent_id)::text = (a.c_individu)::text)))
WHERE ((ffa.histo_destruction IS NULL) AND (a.deleted_on IS NULL))
GROUP BY f.id
ORDER BY (count(*))
\ No newline at end of file
......@@ -4,9 +4,9 @@
return [
'schema' => 'public',
'name' => 'agent_carriere_affectation_pk',
'name' => 'agent_affectation_pk',
'table' => 'agent_carriere_affectation',
'index' => 'agent_carriere_affectation_pk',
'index' => 'agent_affectation_pk',
'columns' => [
'id',
],
......
......@@ -4,9 +4,9 @@
return [
'schema' => 'public',
'name' => 'emploitype_pk',
'name' => 'carriere_emploitype_pk',
'table' => 'carriere_emploitype',
'index' => 'emploitype_pk',
'index' => 'carriere_emploitype_pk',
'columns' => [
'id',
],
......
<?php
//@formatter:off
return [
'schema' => 'public',
'name' => 'fdea_pk',
'table' => 'formation_demande_externe_session',
'index' => 'fdea_pk',
'columns' => [
'demande_id',
'session_id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'schema' => 'public',
'name' => 'formation_demande_externe_etat_pk',
'table' => 'formation_demande_externe_etat',
'index' => 'formation_demande_externe_etat_pk',
'columns' => [
'demande_id',
'etat_id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'schema' => 'public',
'name' => 'formation_demande_externe_ficher_pk',
'table' => 'formation_demande_externe_fichier',
'index' => 'formation_demande_externe_ficher_pk',
'columns' => [
'demande_id',
'fichier_id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'schema' => 'public',
'name' => 'formation_demande_externe_gestionnaire_pk',
'table' => 'formation_demande_externe_gestionnaire',
'index' => 'formation_demande_externe_gestionnaire_pk',
'columns' => [
'demande_externe_id',
'gestionnaire_id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'schema' => 'public',
'name' => 'formation_demande_externe_pk',
'table' => 'formation_demande_externe',
'index' => 'formation_demande_externe_pk',
'columns' => [
'id',
],
];
//@formatter:on
<?php
//@formatter:off
return [
'schema' => 'public',
'name' => 'formation_demande_externe_validation_pk',
'table' => 'formation_demande_externe_validation',
'index' => 'formation_demande_externe_validation_pk',
'columns' => [
'demande_id',
'validation_id',
],
];
//@formatter:on
......@@ -4,9 +4,9 @@
return [
'schema' => 'public',
'name' => 'formation_inscription_etat_pk',
'name' => 'formation_inscription_etat_pk_',
'table' => 'formation_inscription_etat',
'index' => 'formation_inscription_etat_pk',
'index' => 'formation_inscription_etat_pk_',
'columns' => [
'etat_id',
'inscription_id',
......
......@@ -4,9 +4,9 @@
return [
'schema' => 'public',
'name' => 'role_privilege_linker_pk',
'name' => 'pk_unicaen_role_privilege_linker',
'table' => 'unicaen_privilege_privilege_role_linker',
'index' => 'role_privilege_linker_pk',
'index' => 'pk_unicaen_role_privilege_linker',
'columns' => [
'privilege_id',
'role_id',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment