Commit 2f928ef6 authored by Alexandre Zvenigorosky's avatar Alexandre Zvenigorosky
Browse files

Merge branch 'b8.1' of https://git.unicaen.fr/open-source/OSE into domaine_fonctionnel

# Conflicts:
#	module/Application/src/Application/Exception/DbException.php
parents ca0cb29c f9ac0c87
......@@ -3,6 +3,21 @@ title: "Changements intervenus sur OSE"
author: Laurent Lécluse - DSI - Unicaen
...
#OSE 8.1
## Nouveautés
* Il est désormais possible de customiser et/ou de traduire de petites parties de l'application. Attention toutefois : le travail de mise en place du dispositif n'en est qu'au tout début.
#OSE 8.0.3
## Corrections de bugs
* L'export CSV global des paiements refonctionne
* Le tri des demandes de mises en paiements et mises en paiement se fait de nouveau par intervenant
* Dans Gestion/Paiement/Mises en paiement, les mises en paiement fonctionnent à nouveau
* La date et l'heure situées en bas de page de l'état de paiement sont maintenant bien à jour
#OSE 8.0.2
## Corrections de bugs
......
......@@ -4,7 +4,6 @@ namespace Application\Controller;
use Application\Entity\Db\nommaj;
use Application\Service\Traits\nommajServiceAwareTrait;
use Application\Exception\DbException;
use Application\Form\nommaj\Traits\nommajSaisieFormAwareTrait;
use UnicaenApp\View\Model\MessengerViewModel;
......@@ -46,8 +45,7 @@ class nommajController extends AbstractController
$this->getServicenommaj()->save($fr);
$this->flashMessenger()->addSuccessMessage('Enregistrement effectué');
} catch (\Exception $e) {
$e = DbException::translate($e);
$this->flashMessenger()->addErrorMessage($e->getMessage() . ':' . $fr->getId());
$this->flashMessenger()->addErrorMessage($this->translate($e));
}
});
......@@ -62,7 +60,7 @@ class nommajController extends AbstractController
$this->getServicenommaj()->delete($nomm);
$this->flashMessenger()->addSuccessMessage("nommaj supprimée avec succès.");
} catch (\Exception $e) {
$this->flashMessenger()->addErrorMessage(DbException::translate($e)->getMessage());
$this->flashMessenger()->addErrorMessage($this->translate($e));
}
return new MessengerViewModel(compact('nomm'));
}
......
......@@ -15,6 +15,9 @@ return [
/* Affichage complet des erreurs (false en production) */
'affichageErreurs' => true,
/* Langue utilisée (la liste des langues est disponible dans le répertoire /language de l'application) */
'locale' => 'fr_FR',
],
......
......@@ -4097,7 +4097,7 @@ CREATE OR REPLACE FORCE VIEW "V_ETAT_PAIEMENT" ("ANNEE_ID", "TYPE_INTERVENANT_ID
type_intervenant_id,
structure_id,
periode_id,
intervenant_id;
intervenant_nom;
 
-- V_EXP_HETD_CENTRE_COUT
CREATE OR REPLACE FORCE VIEW "V_EXP_HETD_CENTRE_COUT" ("TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ANNEE_ID", "INTERVENANT_ID", "STATUT_INTERVENANT_ID", "TYPE_INTERVENANT_ID", "GRADE_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "TYPE_FORMATION_ID", "ETAPE_ID", "TYPE_VOLUME_HORAIRE", "ETAT_VOLUME_HORAIRE", "ANNEE", "CODE_INTERVENANT", "INTERVENANT", "STATUT_INTERVENANT", "TYPE_INTERVENANT", "GRADE", "STRUCTURE_ENSEIGNEMENT", "GROUPE_TYPE_FORMATION", "TYPE_FORMATION", "CODE_FORMATION", "TOTAL_HETD", "CENTRE_COUTS", "TOTAL_EUROS") AS
......@@ -4,9 +4,21 @@ $pourcFormatter = function($value){
$value = (float)$value * 100;
return number_format( $value, 2, ',', ' ').'%';
};
$curFormatter = function($value){
if ($value == '') return '';
$value = (float)$value;
return number_format( $value, 2, ',', ' ').' €';
};
$document->addFormatter('hetd_pourc', $pourcFormatter);
$document->addFormatter('st_hetd_pourc', $pourcFormatter);
$document->addFormatter('t_hetd_pourc', $pourcFormatter);
$document->addFormatter('hetd_montant', $curFormatter);
$document->addFormatter('st_hetd_montant', $curFormatter);
$document->addFormatter('t_hetd_montant', $curFormatter);
$document->addFormatter('rem_fc_d714', $curFormatter);
$document->addFormatter('st_rem_fc_d714', $curFormatter);
$document->addFormatter('t_rem_fc_d714', $curFormatter);
/* Mise en relief des données à partir de la requête originale */
$variables = [
......@@ -91,7 +103,7 @@ $publisher->publishBegin();
// Récupération des sous-documents, à savoir les lignes de tableau servant de modèles
$detailTemplate = $publisher->getSubDoc($publisher->getBody(), $publisher::TABLE_ROW, 'hetd');
$totalTemplate = $publisher->getSubDoc($publisher->getBody(), $publisher::TABLE_ROW, 'st_hetd');
// Publication des lignes
foreach ($intervenants as $intervenant) {
foreach ($intervenant['lignes'] as $detailData) {
......@@ -105,7 +117,7 @@ foreach ($intervenants as $intervenant) {
// Suppression des lignes de modèles dans le docmument
$publisher->remove($detailTemplate);
$publisher->remove($totalTemplate);
// Publication des variables au niveau du document (dernière ligne du tableau, et fin du traitement
$publisher->publishValues($publisher->getBody(), $variables);
$publisher->publishEnd();
<?php
/* Initialisation : mise en place du formatage des variables */
$pourcFormatter = function($value){
$value = (float)$value * 100;
return number_format( $value, 2, ',', ' ').'%';
};
$document->addFormatter('hetd_pourc', $pourcFormatter);
$document->addFormatter('st_hetd_pourc', $pourcFormatter);
$document->addFormatter('t_hetd_pourc', $pourcFormatter);
/* Mise en relief des données à partir de la requête originale */
$variables = [
'etat' => 'Indéfini',
'periode_composante' => 'Indéfinie',
'annee' => 'Indéfinie',
't_hetd' => 0,
't_hetd_montant' => 0,
't_rem_fc_d714' => 0,
't_exercice_aa' => 0,
't_exercice_ac' => 0,
'intervenants' => 0,
];
$intervenants = [];
foreach ($data as $d) {
$iid = (int)$d['INTERVENANT_ID'];
$d['HETD'] = (float)$d['HETD'];
$d['HETD_POURC'] = (float)$d['HETD_POURC'];
$d['HETD_MONTANT'] = (float)$d['HETD_MONTANT'];
$d['REM_FC_D714'] = (float)$d['REM_FC_D714'];
$d['EXERCICE_AA'] = (float)$d['EXERCICE_AA'];
$d['EXERCICE_AC'] = (float)$d['EXERCICE_AC'];
$etat = $d['ETAT'] == 'a-mettre-en-paiement' ? 'Demandes de mises en paiement' : 'État de paiement';
if ($variables['etat'] == 'Indéfini') $variables['etat'] = $etat;
if ($variables['etat'] != $etat) $variables['etat'] = 'Mises en paiement (état & demandes)';
$pc = $d['COMPOSANTE'];
if ($d['PERIODE']) $pc .= "\nPaye du mois de " . $d['PERIODE'];
if ($variables['periode_composante'] == 'Indéfinie') $variables['periode_composante'] = $pc;
if ($variables['periode_composante'] != $pc) $variables['periode_composante'] = 'Toutes composantes et périodes';
if ($variables['annee'] == 'Indéfinie') $variables['annee'] = $d['ANNEE'];
if ($variables['annee'] != $d['ANNEE']) $variables['annee'] = 'Toutes années';
if (!isset($intervenants[$iid])) {
$intervenants[$iid] = [
'lignes' => [],
'st_hetd' => 0,
'st_hetd_pourc' => 0,
'st_hetd_montant' => 0,
'st_rem_fc_d714' => 0,
'st_exercice_aa' => 0,
'st_exercice_ac' => 0,
];
}
$intervenants[$iid]['lignes'][] = [
'intervenant_nom' => $d['INTERVENANT_NOM'],
'intervenant_numero_insee' => $d['INTERVENANT_NUMERO_INSEE'],
'centre_cout_code' => $d['CENTRE_COUT_CODE'],
'domaine_fonctionnel_libelle' => $d['DOMAINE_FONCTIONNEL_LIBELLE'],
'hetd' => $d['HETD'],
'hetd_pourc' => $d['HETD_POURC'],
'hetd_montant' => $d['HETD_MONTANT'],
'rem_fc_d714' => $d['REM_FC_D714'],
'exercice_aa' => $d['EXERCICE_AA'],
'exercice_ac' => $d['EXERCICE_AC'],
];
$intervenants[$iid]['st_hetd'] += $d['HETD'];
$intervenants[$iid]['st_hetd_pourc'] += $d['HETD_POURC'];
$intervenants[$iid]['st_hetd_montant'] += $d['HETD_MONTANT'];
$intervenants[$iid]['st_rem_fc_d714'] += $d['REM_FC_D714'];
$intervenants[$iid]['st_exercice_aa'] += $d['EXERCICE_AA'];
$intervenants[$iid]['st_exercice_ac'] += $d['EXERCICE_AC'];
$variables['t_hetd'] += $d['HETD'];
$variables['t_hetd_montant'] += $d['HETD_MONTANT'];
$variables['t_rem_fc_d714'] += $d['REM_FC_D714'];
$variables['t_exercice_aa'] += $d['EXERCICE_AA'];
$variables['t_exercice_ac'] += $d['EXERCICE_AC'];
}
$variables['intervenants'] = count($intervenants);
/* Exploitation des données pour la publication du codument */
$publisher = $document->getPublisher();
$publisher->publishBegin();
// Récupération des sous-documents, à savoir les lignes de tableau servant de modèles
$detailTemplate = $publisher->getSubDoc($publisher->getBody(), $publisher::TABLE_ROW, 'hetd');
$totalTemplate = $publisher->getSubDoc($publisher->getBody(), $publisher::TABLE_ROW, 'st_hetd');
// Publication des lignes
foreach ($intervenants as $intervenant) {
foreach ($intervenant['lignes'] as $detailData) {
$publisher->publishBefore($detailTemplate, $detailData, $totalTemplate);
}
$totalData = $intervenant;
unset($totalData['lignes']);
$publisher->publishBefore($totalTemplate, $totalData, $totalTemplate);
}
// Suppression des lignes de modèles dans le docmument
$publisher->remove($detailTemplate);
$publisher->remove($totalTemplate);
// Publication des variables au niveau du document (dernière ligne du tableau, et fin du traitement
$publisher->publishValues($publisher->getBody(), $variables);
$publisher->publishEnd();
\ No newline at end of file
CREATE OR REPLACE FORCE VIEW "V_ETAT_PAIEMENT" ("ANNEE_ID", "TYPE_INTERVENANT_ID", "STRUCTURE_ID", "PERIODE_ID", "INTERVENANT_ID", "CENTRE_COUT_ID", "DOMAINE_FONCTIONNEL_ID", "ANNEE", "ETAT", "COMPOSANTE", "DATE_MISE_EN_PAIEMENT", "PERIODE", "STATUT", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_NUMERO_INSEE", "CENTRE_COUT_CODE", "CENTRE_COUT_LIBELLE", "DOMAINE_FONCTIONNEL_CODE", "DOMAINE_FONCTIONNEL_LIBELLE", "HETD", "HETD_POURC", "HETD_MONTANT", "REM_FC_D714", "EXERCICE_AA", "EXERCICE_AA_MONTANT", "EXERCICE_AC", "EXERCICE_AC_MONTANT") AS
SELECT
annee_id,
type_intervenant_id,
structure_id,
periode_id,
intervenant_id,
centre_cout_id,
domaine_fonctionnel_id,
annee_id || '/' || (annee_id+1) annee,
etat,
composante,
date_mise_en_paiement,
periode,
statut,
intervenant_code,
intervenant_nom,
intervenant_numero_insee,
centre_cout_code,
centre_cout_libelle,
domaine_fonctionnel_code,
domaine_fonctionnel_libelle,
hetd,
CASE WHEN pourc_ecart >= 0 THEN
CASE WHEN RANK() OVER (PARTITION BY periode_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END DESC) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END
ELSE
CASE WHEN RANK() OVER (PARTITION BY periode_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END
END hetd_pourc,
hetd_montant,
rem_fc_d714,
exercice_aa,
exercice_aa_montant,
exercice_ac,
exercice_ac_montant
FROM
(
SELECT
dep3.*,
1-CASE WHEN hetd > 0 THEN SUM( hetd_pourc ) OVER ( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END pourc_ecart
FROM (
SELECT
periode_id,
structure_id,
type_intervenant_id,
intervenant_id,
annee_id,
centre_cout_id,
domaine_fonctionnel_id,
etat,
composante,
date_mise_en_paiement,
periode,
statut,
intervenant_code,
intervenant_nom,
intervenant_numero_insee,
centre_cout_code,
centre_cout_libelle,
domaine_fonctionnel_code,
domaine_fonctionnel_libelle,
hetd,
ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) hetd_pourc,
ROUND( hetd * taux_horaire, 2 ) hetd_montant,
ROUND( fc_majorees * taux_horaire, 2 ) rem_fc_d714,
exercice_aa,
ROUND( exercice_aa * taux_horaire, 2 ) exercice_aa_montant,
exercice_ac,
ROUND( exercice_ac * taux_horaire, 2 ) exercice_ac_montant,
(CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END)
-
ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) pourc_diff
FROM (
WITH dep AS ( -- détails par état de paiement
SELECT
CASE WHEN th.code = 'fc_majorees' THEN 1 ELSE 0 END is_fc_majoree,
p.id periode_id,
s.id structure_id,
i.id intervenant_id,
i.annee_id annee_id,
cc.id centre_cout_id,
df.id domaine_fonctionnel_id,
ti.id type_intervenant_id,
CASE
WHEN mep.date_mise_en_paiement IS NULL THEN 'a-mettre-en-paiement'
ELSE 'mis-en-paiement'
END etat,
TRIM(p.libelle_long || ' ' || to_char( add_months( a.date_debut, p.ecart_mois ), 'yyyy' )) periode,
mep.date_mise_en_paiement date_mise_en_paiement,
s.libelle_court composante,
ti.libelle statut,
i.source_code intervenant_code,
i.nom_usuel || ' ' || i.prenom intervenant_nom,
TRIM( NVL(i.numero_insee,'') || NVL(TO_CHAR(i.numero_insee_cle,'00'),'') ) intervenant_numero_insee,
cc.source_code centre_cout_code,
cc.libelle centre_cout_libelle,
df.source_code domaine_fonctionnel_code,
df.libelle domaine_fonctionnel_libelle,
CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END hetd,
CASE WHEN th.code = 'fc_majorees' THEN mep.heures ELSE 0 END fc_majorees,
mep.heures * 4 / 10 exercice_aa,
mep.heures * 6 / 10 exercice_ac,
--CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END * 4 / 10 exercice_aa,
--CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END * 6 / 10 exercice_ac,
OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) ) taux_horaire
FROM
v_mep_intervenant_structure mis
JOIN mise_en_paiement mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL
JOIN type_heures th ON th.id = mep.type_heures_id
JOIN centre_cout cc ON cc.id = mep.centre_cout_id -- pas d'historique pour les centres de coût, qui devront tout de même apparaitre mais en erreur
JOIN intervenant i ON i.id = mis.intervenant_id AND i.histo_destruction IS NULL
JOIN annee a ON a.id = i.annee_id
JOIN statut_intervenant si ON si.id = i.statut_id
JOIN type_intervenant ti ON ti.id = si.type_intervenant_id
JOIN structure s ON s.id = mis.structure_id
LEFT JOIN validation v ON v.id = mep.validation_id AND v.histo_destruction IS NULL
LEFT JOIN domaine_fonctionnel df ON df.id = mis.domaine_fonctionnel_id
LEFT JOIN periode p ON p.id = mep.periode_paiement_id
)
SELECT
periode_id,
structure_id,
type_intervenant_id,
intervenant_id,
annee_id,
centre_cout_id,
domaine_fonctionnel_id,
etat,
periode,
composante,
date_mise_en_paiement,
statut,
intervenant_code,
intervenant_nom,
intervenant_numero_insee,
centre_cout_code,
centre_cout_libelle,
domaine_fonctionnel_code,
domaine_fonctionnel_libelle,
SUM( hetd ) hetd,
SUM( fc_majorees ) fc_majorees,
SUM( exercice_aa ) exercice_aa,
SUM( exercice_ac ) exercice_ac,
taux_horaire
FROM
dep
GROUP BY
periode_id,
structure_id,
type_intervenant_id,
intervenant_id,
annee_id,
centre_cout_id,
domaine_fonctionnel_id,
etat,
periode,
composante,
date_mise_en_paiement,
statut,
intervenant_code,
intervenant_nom,
intervenant_numero_insee,
centre_cout_code,
centre_cout_libelle,
domaine_fonctionnel_code,
domaine_fonctionnel_libelle,
taux_horaire,
is_fc_majoree
)
dep2
)
dep3
)
dep4
ORDER BY
annee_id,
type_intervenant_id,
structure_id,
periode_id,
intervenant_nom;
-- OSE 8.1
-- Mise à jour depuis les versions 8.0 à 8.0.x vers la version 8.1
-- ATTENTION :
/*
Ne pas oublier de générer le DDL différentiel
Ne pas oublier non plus d'insérer les requêtes des versions 8.0.1 et 8.0.3!!!!!!!
*/
insert into formule(id, libelle, package_name, procedure_name)
values (formule_id_seq.nextval, 'Université de Caen', 'FORMULE_UNICAEN', 'CALCUL_RESULTAT_V3');
insert into formule(id, libelle, package_name, procedure_name)
values (formule_id_seq.nextval, 'Université de Montpellier', 'FORMULE_MONTPELLIER', 'CALCUL_RESULTAT');
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'Droit', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'Histoire', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'IAE', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'IUT', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'Lettres', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'Santé', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'Sciences', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'SUAPS', 0);
insert into formule_test_structure (id, libelle, universite) values (ftest_structure_id_seq.nextval, 'Université', 1);
INSERT INTO parametre (
id, nom,
valeur, description,
histo_creation, histo_createur_id,
histo_modification, histo_modificateur_id
) VALUES (
parametre_id_seq.nextval, 'formule',
'1', 'Formule de calcul',
sysdate, (select id from utilisateur where username='oseappli'),
sysdate, (select id from utilisateur where username='oseappli')
);
DELETE FROM parametre WHERE nom IN ('formule_package_name', 'formule_function_name');
INSERT INTO CATEGORIE_PRIVILEGE (ID,CODE,LIBELLE) VALUES (
CATEGORIE_PRIVILEGE_ID_SEQ.nextval,
'domaines-fonctionnels',
'Domaines fonctionnels'
);
INSERT INTO CATEGORIE_PRIVILEGE (ID,CODE,LIBELLE) VALUES (
CATEGORIE_PRIVILEGE_ID_SEQ.nextval,
'motifs-modification-service-du',
'Motifs de modification de service dû'
);
INSERT INTO CATEGORIE_PRIVILEGE (ID,CODE,LIBELLE) VALUES (
CATEGORIE_PRIVILEGE_ID_SEQ.nextval,
'structures',
'Structures'
);
INSERT INTO CATEGORIE_PRIVILEGE (ID,CODE,LIBELLE) VALUES (
CATEGORIE_PRIVILEGE_ID_SEQ.nextval,
'formule',
'Formule de calcul'
);
INSERT INTO PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
SELECT
privilege_id_seq.nextval id,
(SELECT id FROM CATEGORIE_PRIVILEGE WHERE code = t1.c ) CATEGORIE_ID,
t1.p CODE,
t1.l LIBELLE,
(SELECT count(*) FROM PRIVILEGE WHERE categorie_id = (SELECT id FROM CATEGORIE_PRIVILEGE WHERE code = t1.c )) + rownum ORDRE
FROM (
SELECT 'odf' c, 'grands-types-diplome-visualisation' p, 'Grands types de diplômes (visualisation)' l FROM dual
UNION ALL SELECT 'odf' c, 'grands-types-diplome-edition' p, 'Grands types de diplômes (édition)' l FROM dual
UNION ALL SELECT 'odf' c, 'types-diplome-visualisation' p, 'Types de diplômes (visualisation)' l FROM dual
UNION ALL SELECT 'odf' c, 'types-diplome-edition' p, 'Types de diplômes (édition)' l FROM dual
UNION ALL SELECT 'motifs-modification-service-du' c, 'visualisation' p, 'Administration (visualisation)' l FROM dual
UNION ALL SELECT 'motifs-modification-service-du' c, 'edition' p, 'Administration (édition)' l FROM dual
UNION ALL SELECT 'structures' c, 'administration-visualisation' p, 'Administration (visualisation)' l FROM dual
UNION ALL SELECT 'structures' c, 'administration-edition' p, 'Administration (édition)' l FROM dual
UNION ALL SELECT 'budget' c, 'types-ressources-visualisation' p, 'Types de ressources - Visualisation' l FROM dual
UNION ALL SELECT 'budget' c, 'types-ressources-edition' p, 'Types de ressources - Édition' l FROM dual
UNION ALL SELECT 'formule' c, 'tests' p, 'Tests' l FROM dual
) t1;
\ No newline at end of file
msgid ""
msgstr ""
"Project-Id-Version: OSE\n"
"POT-Creation-Date: 2019-02-19 17:47+0100\n"
"PO-Revision-Date: 2019-02-19 17:50+0100\n"
"Last-Translator: Laurent Lécluse <laurent.lecluse@unicaen.fr>\n"
"Language-Team: \n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: translate;setLabel;setLegend;_\n"
"X-Poedit-SearchPath-0: module/Application\n"
"X-Poedit-SearchPathExcluded-0: public/vendor\n"
"X-Poedit-SearchPathExcluded-1: vendor/unicaen/import/public/ace-builds-"
"master\n"
#: module/Application/src/Application/Controller/BudgetController.php:217
#: module/Application/src/Application/Controller/BudgetController.php:218
msgid "Dont, au titre de "
msgstr ""
#: module/Application/src/Application/Controller/BudgetController.php:219
msgid "Année civile "
msgstr ""
#: module/Application/src/Application/Controller/BudgetController.php:323
msgid "Composante"
msgstr ""
#: module/Application/src/Application/Controller/EtablissementController.php:38
msgid "Recherchez l'établissement concerné :"
msgstr ""
#: module/Application/src/Application/Controller/StructureController.php:39
msgid "Recherchez la structure concernée :"
msgstr ""
#: module/Application/src/Application/Form/Droits/AffectationForm.php:68
msgid "Utilisateur"
msgstr ""
#: module/Application/src/Application/Form/Intervenant/HeuresCompForm.php:29
msgid "Type de service :"
msgstr ""
#: module/Application/src/Application/Form/Intervenant/HeuresCompForm.php:35
#: module/Application/src/Application/Form/Service/RechercheForm.php:201
msgid "État :"
msgstr ""
#: module/Application/src/Application/Form/ParametresForm.php:138
#: module/Application/src/Application/Form/Service/SaisieFieldset.php:100
msgid "Établissement :"
msgstr ""
#: module/Application/src/Application/Form/Service/RechercheForm.php:150
msgid "Statut :"
msgstr ""
#: module/Application/src/Application/Form/Service/RechercheForm.php:181
#: module/Application/src/Application/Form/Service/SaisieFieldset.php:71
#: module/Application/src/Application/Form/ServiceReferentiel/SaisieFieldset.php:79
msgid "Intervenant :"
msgstr ""
#: module/Application/src/Application/Form/Service/RechercheForm.php:188
msgid "Enseignement :"
msgstr ""
#: module/Application/src/Application/Form/Service/RechercheForm.php:194
msgid "Type :"
msgstr ""
#: module/Application/src/Application/Traits/TranslatorTrait.php:43
msgid "bdd "
msgstr ""
#: module/Application/src/Application/View/Helper/AppLink.php:108