--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project name="XEMELIOS-etat-frais-spl" default="usage" basedir=".">
+ <import file="../../common-tasks.xml"/>
+ <description>Builds, tests, and runs the project XEMELIOS etat-frais SPL</description>
+ <property file="${user.home}/.ant.properties"/>
+
+ <target name="usage"></target>
+
+ <target name="compile" depends="mk-output-dirs,define-compile-debug,prepare">
+ <javac srcdir="java" destdir="build/classes" debug="${compile.debug}" encoding="ISO-8859-1">
+ <classpath>
+ <pathelement path="../starter/build/jars"/>
+ <pathelement path="../xml-marshall/build/classes"/>
+ <fileset dir="../core/lib" includes="*.jar"/>
+ <pathelement path="../core/build/classes"/>
+ <pathelement path="../etat-frais/build/classes"/>
+ <fileset dir="../swing-utils/lib" includes="*.jar"/>
+ </classpath>
+ </javac>
+ <copy todir="build/classes">
+ <fileset dir="java">
+ <include name="**/*"/>
+ <exclude name="**/*.class"/>
+ <exclude name="**/*.java"/>
+ <exclude name="**/*.form"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="jars" depends="prepare">
+ <copy file="manifest/manifest.txt" tofile="build/manifest.txt">
+ <filterset>
+ <filter token="version" value="${component.release}"/>
+ <filter token="name" value="${component.name}"/>
+ </filterset>
+ </copy>
+ <jar destfile="build/jars/${component.name}.jar" basedir="build/classes"
+ manifest="build/manifest.txt"/>
+ </target>
+
+ <target name="config" depends="get-configuration,prepare">
+ <property name="component.dir" value="build/config/source/${component.name}/${component.release}"/>
+ <copy file="component-definition-properties.xml" tofile="build/config/source/component-definition-properties.xml"/>
+ <mkdir dir="${component.dir}"/>
+ <copy todir="${component.dir}">
+ <fileset dir="conf">
+ <include name="**/*"/>
+ <exclude name="**/CVS/*"/>
+ <exclude name="**/*.sh"/>
+ <exclude name="**/controls_etatfrais.xml"/>
+ <exclude name="**/controls-default-params.xml"/>
+ <exclude name="**/${component.name}.xml"/>
+ <exclude name="**/EF-SPL.xml"/>
+ </fileset>
+ <fileset dir="build/jars" includes="*.jar"/>
+ </copy>
+ <antcall target="prepare-config-metier"/>
+ <antcall target="generate-update"/>
+ </target>
+
+
+ <target name="clean">
+ <delete dir="build"/>
+ </target>
+
+ <target name="setup">
+ <copy todir="../../build/setup/root/lib">
+ <fileset dir="build/jars" includes="*.jar"/>
+ </copy>
+ <copy todir="../../build/setup/root/documents-def">
+ <fileset dir="conf" includes="**/*" excludes="**/CVS"/>
+ </copy>
+ </target>
+
+ <target name="mk-output-dirs">
+ <mkdir dir="build/classes"/>
+ <mkdir dir="build/jars"/>
+ <mkdir dir="build/config"/>
+ </target>
+
+</project>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<component xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../../defs/technical-component-definition.xsd">
+ <name>etat-frais-spl</name>
+ <description>Configuration Etat Frais SPL</description>
+ <release>5.0.0.6</release>
+ <url>http://xemelios.org/updatesV5/etat-frais-spl</url>
+ <type>CONFIG</type>
+ <destination>
+ <base>${xemelios.root}/documents-def</base>
+ <file>
+ <name>${component.name}.html</name>
+ <dest>${xemelios.root}/help/documents</dest>
+ </file>
+ <file>
+ <name>${component.name}.jar</name>
+ <dest>${xemelios.root}/lib</dest>
+ </file>
+ </destination>
+
+ <requires>
+ <component-ref url="http://xemelios.org/updatesV5/etat-frais" release="5.0.0.3"/>
+ </requires>
+ <release-notes>
+ <release v="5.0.0.6">
+ <note visibility="public">FA 0295 - Déplacement du bloc "sous-totaux" à gauche du bloc "totaux"</note>
+ </release>
+ <release v="5.0.0.5">
+ <note visibility="public">FA 0238 - Correction de la recherche sur les lignes etat-frais concernant le critère "Propriété"</note>
+ <note visibility="public">FA 0238 - Ajout des critères de recherche Siret du BP de la collectivité et CodeBud</note>
+ <note visibility="public">FA 0238 - Ajout du SiretBP, CodeBud, Comptable assignataire, adresse de la CEPL, sous-total frais de séjour, sous-total frais de transport dans la feuille de style</note>
+ <note visibility="public">FA 0238 - Modification du libellé 'Direction' en 'Entité émettrice'</note>
+ <note visibility="public">FA 0260 - Ajout des références du déplacement (lieu, date et heure) dans la feuille de style au niveau de la ligne, quand elles sont présentes, afin de prendre en compte les spécificités de l'OM permanent</note>
+ </release>
+ <release v="5.0.0.4">
+ <note>Correction de la création de la table LBC</note>
+ </release>
+ <release v="5.0.0.3">
+ <note>Traçabilité des archives</note>
+ <note>Correction du problème d'héritage de la configuration de la persistence</note>
+ </release>
+ <release v="5.0.0.2">
+ <note>Mise à jour de l'aide en ligne</note>
+ </release>
+ </release-notes>
+</component>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<documents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../../../defs/config-metier/documents-def.xsd">
+
+ <document balise="DocEtatsFrais" extension="xml" id="etat-frais-spl"
+ import-class="fr.gouv.finances.dgfip.xemelios.etatFraisSPL.EtatFraisSPLImporter"
+ persistence-config="etat-frais-spl/etat-frais-spl-persist.exml"
+ control-config-file="etat-frais-spl/etat-frais-spl-controls.xml" titre="Etat de frais SPL"
+ natIdColl="SIRET" isControlable="false" browsable="false" extends="etat-frais"
+ ordre-presentation="500">
+
+ <entete id="e1">/DocEtatsFraisSPL/Collectivite</entete>
+ <entete id="e2">/DocEtatsFraisSPL/Budget</entete>
+
+ <etat id="EtatFrais" xslt-file="etat-frais-spl/EtatFrais.xsl">
+ <element balise="Invoice" id="invoice" max-display="300" titre="Etat de frais"
+ searchable="true">
+ <path>/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice</path>
+ <liste-resultat ordre="ASC" tri-defaut="emetteur.ID">
+ <champ id="OM.nature.om" libelle="O.M. Nature du déplacement" datatype="string"
+ affichable="true" default-display="false" exportable="true"
+ aggregate="false">
+ <help>Nature du déplacement</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:NatureOM/@added:libelle</valeur>
+ </champ>
+
+ <champ id="OM.motif.deplacement" libelle="O.M. Motif du déplacement"
+ datatype="string" affichable="true" default-display="false"
+ exportable="true" aggregate="false">
+ <help>Motif du déplacement</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MotifDeplacement/text()</valeur>
+ </champ>
+
+ <champ id="OM.faitgenerateur.type" libelle="O.M. Type de Fait Générateur"
+ datatype="string" affichable="true" default-display="false"
+ exportable="true" aggregate="false">
+ <help>Fait générateur</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Type/text()</valeur>
+ </champ>
+ <champ id="OM.faitgenerateur.reference"
+ libelle="O.M. Référence de Fait Générateur" datatype="string"
+ affichable="true" default-display="false" exportable="true"
+ aggregate="false">
+ <help>Référence de fait générateur</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Reference/text()</valeur>
+ </champ>
+ <champ id="OM.faitgenerateur.date" libelle="O.M. Date de Fait Générateur"
+ datatype="date" affichable="true" default-display="false" exportable="true"
+ aggregate="false">
+ <help>Date de fait générateur</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Date/text()</valeur>
+ </champ>
+ <champ id="OM.faitgenerateur.duree.om" libelle="O.M. Durée"
+ datatype="string" affichable="true" default-display="false"
+ exportable="true" aggregate="false">
+ <help>Durée de l'ordre de mission</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:DureeOM/text()</valeur>
+ </champ>
+
+ <champ id="OM.moyen.transport.autorise"
+ libelle="O.M. Moyen de Transport Autorisé" datatype="string"
+ affichable="true" default-display="false" exportable="true"
+ aggregate="false">
+ <help>Liste des moyens de transport autorisés</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/text()</valeur>
+ </champ>
+ <champ id="OM.moyen.transport.autorise.classe"
+ libelle="O.M. Classe du Moyen de Transport Autorisé" datatype="string"
+ affichable="true" default-display="false" exportable="true"
+ aggregate="false">
+ <help>Liste des classes autorisées dans les moyens de transports autorisés</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/@ClasseAutorisee</valeur>
+ </champ>
+
+ <champ id="agent.type.personne" libelle="Agent Type de Personne"
+ datatype="string" default-display="false" aggregate="false"
+ exportable="true" affichable="true">
+ <help>Type de personne de l'agent</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension[cec:ExtensionURI='DGFIP:EtatFrais:OrdreMission']/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:TypePersonne/text()</valeur>
+ </champ>
+
+ <champ id="EF.mt.total.avance.frais" libelle="Montant des Avances"
+ datatype="amount" default-display="false" affichable="true"
+ exportable="true" aggregate="true">
+ <help>Montant total des avances sur frais</help>
+ <valeur>cac:LegalMonetaryTotal/cbc:PrepaidAmount/text()</valeur>
+ </champ>
+ <champ id="EF.idref" libelle="Nom Original du Fichier XML"
+ datatype="string" affichable="true" default-display="false"
+ exportable="true" aggregate="false">
+ <help>Nom original du fichier XML (ou information approchante)</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:IdRef/text()</valeur>
+ </champ>
+
+ <champ id="EF.siretbp" libelle="SIRET du BP de la collectivité"
+ datatype="string" affichable="true" default-display="false"
+ exportable="true" aggregate="false">
+ <help>SIRET du Budget Principal de la collectivité</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:SiretBP/text()</valeur>
+ </champ>
+
+ <champ id="EF.codebud" libelle="Code budget"
+ datatype="string" affichable="true" default-display="false"
+ exportable="true" aggregate="false">
+ <help>Code budget</help>
+ <valeur>cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:CodeBud/text()</valeur>
+ </champ>
+
+ </liste-resultat>
+
+ <critere id="OM.nature.om" libelle="O.M. Nature du déplacement">
+ <help>Permet de filtrer par nature du déplacement</help>
+ <path>{cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:NatureOM/text()="##VALEUR:OM.nature.om##"}</path>
+ <select id="OM.nature.om">
+ <option value="MISSION">Mission</option>
+ <option value="TOURNEE">Tournée</option>
+ <option value="STAGE">Stage</option>
+ <option value="INTERIM">Interim</option>
+ <option value="CONCOURS_EXAMEN">Concours ou examen</option>
+ <option value="DEPLACEMENT">Déplacement</option>
+ <option value="COMMISSION">Commission</option>
+ <option value="ABSENCE_TEMPORAIRE">Absence temporaire</option>
+ <option value="SANS_FRAIS">Sans frais</option>
+ <option value="MAINTIEN_ORDRE">Maintien de l'ordre</option>
+ <option value="AUTRE">Autre</option>
+ </select>
+ </critere>
+
+ <critere id="OM.motif.deplacement" libelle="O.M. Motif du déplacement">
+ <help>Permet de filtrer par motif du déplacement</help>
+ <path>{##OPERATEUR:OM.motif.deplacement##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MotifDeplacement/text(),"##VALEUR:OM.motif.deplacement##")}</path>
+ <input id="OM.motif.deplacement" datatype="string"/>
+ </critere>
+
+ <critere id="OM.faitgenerateur.type" libelle="O.M. Type de Fait Générateur">
+ <help>Permet de filtrer par type de fait générateur</help>
+ <path>{cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Type/text()="##VALEUR:OM.faitgenerateur.type##"}</path>
+ <select id="OM.faitgenerateur.type">
+ <option value="ORDRE_MISSION">Ordre de mission</option>
+ <option value="CONVOCATION">Convocation</option>
+ <option value="DECISION_AUTORITE_TERRITORIALE">Décision de l'autorité
+ territoriale</option>
+ </select>
+ </critere>
+ <critere id="OM.faitgenerateur.reference"
+ libelle="O.M. Référence de Fait Générateur">
+ <help>Permet de filtrer par référence de fait générateur</help>
+ <path>{##OPERATEUR:OM.faitgenerateur.reference##(upper-case(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Reference/text()),"##VALEUR:OM.faitgenerateur.reference##")}</path>
+ <input id="OM.faitgenerateur.reference" datatype="string" uppercase="false"/>
+ </critere>
+ <critere id="OM.faitgenerateur.date" libelle="O.M. Date de Fait Générateur">
+ <help>Permet de filtrer par date de fait générateur</help>
+ <path>{##OPERATEUR:OM.faitgenerateur.date##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Date/text(),"##VALEUR:OM.faitgenerateur.date##")}</path>
+ <input id="OM.faitgenerateur.date" datatype="date" xml-format="yyyy-MM-dd"/>
+ </critere>
+ <critere id="OM.faitgenerateur.duree.om" libelle="O.M. Durée">
+ <help>Permet de filtrer par durée d'ordre de mission</help>
+ <path>{cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:DureeOM/text()="##VALEUR:OM.faitgenerateur.duree.om##"}</path>
+ <select id="OM.faitgenerateur.duree.om">
+ <option value="PERMANENT">Permanent</option>
+ <option value="TEMPORAIRE">Temporaire</option>
+ </select>
+ </critere>
+
+ <critere id="OM.moyen.transport.autorise" libelle="O.M. Moyen de Transport Autorisé">
+ <help>Permet de filtrer par moyen de transport autorisé</help>
+ <path>{##OPERATEUR:OM.moyen.transport.autorise##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/text(),"##VALEUR:OM.moyen.transport.autorise##")}</path>
+ <input id="OM.moyen.transport.autorise" datatype="string" uppercase="false"/>
+ </critere>
+ <critere id="OM.moyen.transport.autorise.classe"
+ libelle="O.M. Classe du Moyen de Transport Autorisé">
+ <help>Permet de filtrer par classe de moyen de transport autorisé</help>
+ <path>{##OPERATEUR:OM.moyen.transport.autorise.classe##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/@ClasseAutorisee,"##VALEUR:OM.moyen.transport.autorise.classe##")}</path>
+ <input id="OM.moyen.transport.autorise.classe" datatype="string"
+ uppercase="false"/>
+ </critere>
+
+ <critere id="agent.type.personne" libelle="Agent Type de Personne">
+ <help>Permet de filtrer par type d'agent</help>
+ <path>{cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:TypePersonne/text()="##VALEUR:agent.type.personne##"}</path>
+ <select id="agent.type.personne">
+ <option value="AGENT">Agents territoriaux et autres personnes collaborant
+ aux commissions</option>
+ <option value="AUTRE">Personnes autres que celles qui reçoivent d'une
+ collectivité ou d'un de ses établissements publics à caractère
+ administratif une rémunération au titre de leur activité
+ principale</option>
+ </select>
+ </critere>
+
+ <critere id="EF.mt.total.avance.frais" libelle="E.F. Mt Total des Avances">
+ <help>Permet de filtrer par montant total des avances sur frais</help>
+ <path>{cac:LegalMonetaryTotal/cbc:PrepaidAmount/text()##OPERATEUR:EF.mt.total.avance.frais####VALEUR:EF.mt.total.avance.frais##}</path>
+ <input id="EF.mt.total.avance.frais" datatype="numeric"/>
+ </critere>
+
+ <critere id="EF.idref" libelle="E.F. Nom Original du Fichier XML">
+ <help>Permet de filtrer par nom original du fichier XML</help>
+ <path>{##OPERATEUR:EF.idref##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:IdRef/text(),"##VALEUR:EF.idref##")}</path>
+ <input id="EF.idref" datatype="string"/>
+ </critere>
+
+ <critere id="EF.siretbp" libelle="E.F. SIRET du Budget Principal de la collectivité">
+ <help>Permet de filtrer par le SIRET du Budget Principal de la collectivité</help>
+ <path>{##OPERATEUR:EF.siretbp##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:SiretBP/text(),"##VALEUR:EF.siretbp##")}</path>
+ <input id="EF.siretbp" datatype="string" help="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:SiretBP/text()"/>
+ </critere>
+
+ <critere id="EF.codebud" libelle="E.F. Code budget">
+ <help>Permet de filtrer par le Code budget</help>
+ <path>{##OPERATEUR:EF.codebud##(cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:CodeBud/text(),"##VALEUR:EF.codebud##")}</path>
+ <input id="EF.codebud" datatype="string" help="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:CodeBud/text()"/>
+ </critere>
+
+ </element>
+ <element id="invoice.line"/>
+ </etat>
+
+ </document>
+
+</documents>
+<!--/documents-derives-->
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="./CSS_EtatFrais_V01.01.03/EtatFrais.xsl" type="text/xsl"?>
+<ef:EtatsFrais CODE_APPLI="ULY001"
+
+ xmlns:ef="urn:DGFIP:EtatsFrais"
+ xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
+ xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
+ xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
+ xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
+ xmlns:dgfip="urn:DGFIP:EtatFrais:OrdreMission"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ VersionCSS="01.01.04">
+
+ <ef:Invoice>
+ <cec:UBLExtensions>
+ <cec:UBLExtension>
+ <cec:ExtensionAgencyID>DGFIP</cec:ExtensionAgencyID>
+ <cec:ExtensionURI>DGFIP:EtatFrais:OrdreMission</cec:ExtensionURI>
+ <cec:ExtensionContent>
+ <dgfip:EtatFraisExtension>
+ <dgfip:OrdreMission>
+ <dgfip:ID>20081031-01</dgfip:ID>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>169127599999999</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Michel</cbc:FirstName>
+ <cbc:FamilyName>DUPOND</cbc:FamilyName>
+ <cbc:Title>M</cbc:Title>
+ <cbc:JobTitle>Directeur</cbc:JobTitle>
+ <cbc:OrganizationDepartment>Service des études</cbc:OrganizationDepartment>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:DateValidation>2008-10-30</dgfip:DateValidation>
+ <dgfip:NatureOM>MISSION</dgfip:NatureOM>
+ <dgfip:MotifDeplacement>épreuves écrites du concours d'inspecteur principal</dgfip:MotifDeplacement>
+ <dgfip:FaitGenerateur>
+ <dgfip:Type>CONVOCATION</dgfip:Type>
+ <dgfip:Reference>Reférence fait générateur</dgfip:Reference>
+ <dgfip:Date>2010-01-02</dgfip:Date>
+ <dgfip:DureeOM>PERMANENT</dgfip:DureeOM>
+ </dgfip:FaitGenerateur>
+ <dgfip:MoyenTransportAutorise ClasseAutorisee="classe économique">Avion A320</dgfip:MoyenTransportAutorise>
+ <dgfip:LieuDeplacement Commune="Marseille" CP="13001"/>
+ <dgfip:LieuDepart Commune="Meudon la forêt" CP="92360"/>
+ <dgfip:Lieurrivee Commune="Meudon la forêt" CP="92360"/>
+ <dgfip:DateDepart>2008-10-31 06:00</dgfip:DateDepart>
+ <dgfip:DateRetour>2008-11-02 21:19</dgfip:DateRetour>
+ <dgfip:Agent>
+ <dgfip:EmploiFonction>Ingénieur</dgfip:EmploiFonction>
+ <dgfip:Statut>CIVIL</dgfip:Statut>
+ <dgfip:SituationFamille>MARIE</dgfip:SituationFamille>
+ <dgfip:NbEnfants>2</dgfip:NbEnfants>
+ <dgfip:Grade>Ingénieur contractuel</dgfip:Grade>
+ <dgfip:AgentChorus>
+ <dgfip:TypeTiers>ZCPD</dgfip:TypeTiers>
+ <dgfip:IdChorusTiers>ABCDE</dgfip:IdChorusTiers>
+ </dgfip:AgentChorus>
+ <dgfip:TypePersonne>AGENT</dgfip:TypePersonne>
+ </dgfip:Agent>
+ </dgfip:OrdreMission>
+ <dgfip:EtatFrais>
+ <dgfip:ComptableAssignataire>946000</dgfip:ComptableAssignataire>
+ <dgfip:TotalFraisTransport>160</dgfip:TotalFraisTransport>
+ <dgfip:TotalIndemnitesSejour>242</dgfip:TotalIndemnitesSejour>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>1234567890</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>MARIE</cbc:FirstName>
+ <cbc:FamilyName>CHARENTON</cbc:FamilyName>
+ <cbc:Title>MME</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:EtatFraisChorus>
+ <dgfip:Societe>ABCD</dgfip:Societe>
+ <dgfip:DomaineActivite>0123</dgfip:DomaineActivite>
+ </dgfip:EtatFraisChorus>
+ <dgfip:LibelleCollectivite>Libelle collectivité 01</dgfip:LibelleCollectivite>
+ <dgfip:SiretBP>COLLEC01</dgfip:SiretBP>
+ <dgfip:CodeBud>9998</dgfip:CodeBud>
+ <dgfip:LibelleBudget>Libelle budget 9998</dgfip:LibelleBudget>
+ <dgfip:IdRef>XYZ-385.xml</dgfip:IdRef>
+ </dgfip:EtatFrais>
+ </dgfip:EtatFraisExtension>
+ </cec:ExtensionContent>
+ </cec:UBLExtension>
+ </cec:UBLExtensions>
+
+ <cbc:ID>123456789012</cbc:ID>
+
+ <cbc:IssueDate>2008-11-28</cbc:IssueDate>
+
+ <cbc:InvoiceTypeCode>K1</cbc:InvoiceTypeCode>
+
+ <cac:AccountingSupplierParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>172103523842107</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Christophe</cbc:FirstName>
+ <cbc:FamilyName>MARCHAND</cbc:FamilyName>
+ <cbc:Title>M</cbc:Title>
+ </cac:Person>
+ <cac:AgentParty>
+ <cac:PostalAddress>
+ <cbc:CityName>Meudon la forêt</cbc:CityName>
+ <cbc:PostalZone>92360</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>40 allée du mail</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:PostalAddress>
+ <cac:PhysicalLocation>
+ <cac:Address>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:Address>
+ </cac:PhysicalLocation>
+ </cac:AgentParty>
+ </cac:Party>
+ </cac:AccountingSupplierParty>
+
+ <cac:AccountingCustomerParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>Ministère des finances</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:PartyLegalEntity>
+ <cbc:RegistrationName>Direction générale des finances publiques</cbc:RegistrationName>
+ <cac:RegistrationAddress>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:RegistrationAddress>
+ </cac:PartyLegalEntity>
+ </cac:Party>
+ </cac:AccountingCustomerParty>
+
+ <cac:PaymentMeans>
+ <cbc:PaymentMeansCode>V</cbc:PaymentMeansCode>
+ <cbc:PaymentChannelCode>IBAN</cbc:PaymentChannelCode>
+ <cac:PayeeFinancialAccount>
+ <cbc:ID>FR0011111222223333333333344</cbc:ID>
+ </cac:PayeeFinancialAccount>
+ </cac:PaymentMeans>
+
+ <cac:LegalMonetaryTotal>
+ <cbc:LineExtensionAmount currencyID="EUR">402</cbc:LineExtensionAmount>
+ <cbc:PrepaidAmount currencyID="EUR">50</cbc:PrepaidAmount>
+ <cbc:PayableAmount currencyID="EUR">402</cbc:PayableAmount>
+ </cac:LegalMonetaryTotal>
+
+ <cac:InvoiceLine>
+ <cbc:ID>1</cbc:ID>
+ <cbc:Note>Prix limité à 60.00 par nuit</cbc:Note>
+ <cbc:InvoicedQuantity>2</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">120</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Hotel du Port</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>HOTEL</cbc:ID></cac:BuyersItemIdentification>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">60</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>2</cbc:ID>
+ <cbc:Note>Repas limité à 15.25</cbc:Note>
+ <cbc:InvoicedQuantity>8</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">122</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Déjeuner</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>REPAS</cbc:ID></cac:BuyersItemIdentification>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">15.25</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>3</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">80.00</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Aller Paris Marseille</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>MARSEILLE</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>13000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-10-31 06:00</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-10-31 09:05</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>4</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">80.00</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Retour Marseille Paris</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>MARSEILLE</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>13000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-11-02 18:00</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-11-02 21:19</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+ </ef:Invoice>
+
+ <ef:Invoice>
+ <cec:UBLExtensions>
+ <cec:UBLExtension>
+ <cec:ExtensionAgencyID>DGFIP</cec:ExtensionAgencyID>
+ <cec:ExtensionURI>DGFIP:EtatFrais:OrdreMission</cec:ExtensionURI>
+ <cec:ExtensionContent>
+ <dgfip:EtatFraisExtension>
+ <dgfip:OrdreMission>
+ <dgfip:ID>20081101-01</dgfip:ID>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>268390319000001</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Roland</cbc:FirstName>
+ <cbc:FamilyName>DUVAL</cbc:FamilyName>
+ <cbc:Title>M</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:DateValidation>2008-11-01</dgfip:DateValidation>
+ <dgfip:NatureOM>MISSION</dgfip:NatureOM>
+ <dgfip:LieuDeplacement Commune="Amiens" CP="80000"/>
+ <dgfip:LieuDepart Commune="Paris" CP="75000"/>
+ <dgfip:Lieurrivee Commune="Paris" CP="75000"/>
+ <dgfip:DateDepart>2008-11-03 07:07</dgfip:DateDepart>
+ <dgfip:DateRetour>2008-11-03 20:18</dgfip:DateRetour>
+ <dgfip:Agent>
+ <dgfip:EmploiFonction>Assistant</dgfip:EmploiFonction>
+ <dgfip:Statut>CIVIL</dgfip:Statut>
+ <dgfip:SituationFamille>CELIBATAIRE</dgfip:SituationFamille>
+ <dgfip:Grade>Employé</dgfip:Grade>
+ <dgfip:AgentChorus>
+ <dgfip:TypeTiers>ZCPD</dgfip:TypeTiers>
+ <dgfip:IdChorusTiers>ABCDE</dgfip:IdChorusTiers>
+ </dgfip:AgentChorus>
+ </dgfip:Agent>
+ </dgfip:OrdreMission>
+ <dgfip:EtatFrais>
+ <dgfip:ComptableAssignataire>946000</dgfip:ComptableAssignataire>
+ <dgfip:TotalFraisTransport>51.60</dgfip:TotalFraisTransport>
+ <dgfip:TotalIndemnitesSejour>15.25</dgfip:TotalIndemnitesSejour>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>1234567890</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>MARIE</cbc:FirstName>
+ <cbc:FamilyName>CHARENTON</cbc:FamilyName>
+ <cbc:Title>MME</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:EtatFraisChorus>
+ <dgfip:Societe>ABCD</dgfip:Societe>
+ <dgfip:DomaineActivite>0123</dgfip:DomaineActivite>
+ </dgfip:EtatFraisChorus>
+ </dgfip:EtatFrais>
+ </dgfip:EtatFraisExtension>
+ </cec:ExtensionContent>
+ </cec:UBLExtension>
+ </cec:UBLExtensions>
+
+ <cbc:ID>123456789099</cbc:ID>
+
+ <cbc:IssueDate>2008-11-28</cbc:IssueDate>
+
+ <cbc:InvoiceTypeCode>K1</cbc:InvoiceTypeCode>
+
+ <cac:AccountingSupplierParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>184395021924859</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Hannah</cbc:FirstName>
+ <cbc:FamilyName>SCHMIDT</cbc:FamilyName>
+ <cbc:Title>MME</cbc:Title>
+ </cac:Person>
+ <cac:AgentParty>
+ <cac:PostalAddress>
+ <cbc:CityName>Paris</cbc:CityName>
+ <cbc:PostalZone>75020</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>8 impasse de l'Eglise</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:PostalAddress>
+ <cac:PhysicalLocation>
+ <cac:Address>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:Address>
+ </cac:PhysicalLocation>
+ </cac:AgentParty>
+ </cac:Party>
+ </cac:AccountingSupplierParty>
+
+ <cac:AccountingCustomerParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>Ministère des finances</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:PartyLegalEntity>
+ <cbc:RegistrationName>Direction générale des finances publiques</cbc:RegistrationName>
+ <cac:RegistrationAddress>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:RegistrationAddress>
+ </cac:PartyLegalEntity>
+ </cac:Party>
+ </cac:AccountingCustomerParty>
+
+ <cac:PaymentMeans>
+ <cbc:PaymentMeansCode>V</cbc:PaymentMeansCode>
+ <cbc:PaymentChannelCode>IBAN</cbc:PaymentChannelCode>
+ <cac:PayeeFinancialAccount>
+ <cbc:ID>FR9988888777776666666666655</cbc:ID>
+ </cac:PayeeFinancialAccount>
+ </cac:PaymentMeans>
+
+ <cac:LegalMonetaryTotal>
+ <cbc:LineExtensionAmount currencyID="EUR">66.85</cbc:LineExtensionAmount>
+ <cbc:PayableAmount currencyID="EUR">66.85</cbc:PayableAmount>
+ </cac:LegalMonetaryTotal>
+
+ <cac:InvoiceLine>
+ <cbc:ID>1</cbc:ID>
+ <cbc:Note>Repas limité à 15.25</cbc:Note>
+ <cbc:InvoicedQuantity>1</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">15.25</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Déjeuner</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>REPAS</cbc:ID></cac:BuyersItemIdentification>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">15.25</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>2</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">25.80</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Aller Paris Amiens</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>AMIENS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>80000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-11-03 07:07</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-11-03 08:14</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>3</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">25.80</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Retour Amiens Paris</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>AMIENS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>80000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-11-03 19:08</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-11-03 20:18</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+ </ef:Invoice>
+</ef:EtatsFrais>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="./EtatFrais.xsl" type="text/xsl"?>
+<ef:EtatsFrais CODE_APPLI="ULY001"
+
+ xmlns:ef="urn:DGFIP:EtatsFrais"
+ xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
+ xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
+ xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
+ xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
+ xmlns:dgfip="urn:DGFIP:EtatFrais:OrdreMission"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ VersionCSS="01.01.04">
+
+ <ef:Invoice>
+ <cec:UBLExtensions>
+ <cec:UBLExtension>
+ <cec:ExtensionAgencyID>DGFIP</cec:ExtensionAgencyID>
+ <cec:ExtensionURI>DGFIP:EtatFrais:OrdreMission</cec:ExtensionURI>
+ <cec:ExtensionContent>
+ <dgfip:EtatFraisExtension>
+ <dgfip:OrdreMission>
+ <dgfip:ID>20081031-01</dgfip:ID>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>169127599999999</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Michel</cbc:FirstName>
+ <cbc:FamilyName>DUPOND</cbc:FamilyName>
+ <cbc:Title>M</cbc:Title>
+ <cbc:JobTitle>Directeur</cbc:JobTitle>
+ <cbc:OrganizationDepartment>Service des études</cbc:OrganizationDepartment>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:DateValidation>2008-10-30</dgfip:DateValidation>
+ <dgfip:NatureOM>MISSION</dgfip:NatureOM>
+ <dgfip:MotifDeplacement>épreuves écrites du concours d'inspecteur principal</dgfip:MotifDeplacement>
+ <dgfip:FaitGenerateur>
+ <dgfip:Type>CONVOCATION</dgfip:Type>
+ <dgfip:Reference>Reférence fait générateur</dgfip:Reference>
+ <dgfip:Date>2010-01-02</dgfip:Date>
+ <dgfip:DureeOM>PERMANENT</dgfip:DureeOM>
+ </dgfip:FaitGenerateur>
+ <dgfip:MoyenTransportAutorise ClasseAutorisee="classe économique">Avion A320</dgfip:MoyenTransportAutorise>
+ <dgfip:LieuDeplacement Commune="Marseille" CP="13001"/>
+ <dgfip:LieuDepart Commune="Meudon la forêt" CP="92360"/>
+ <dgfip:Lieurrivee Commune="Meudon la forêt" CP="92360"/>
+ <dgfip:DateDepart>2008-10-31 06:00</dgfip:DateDepart>
+ <dgfip:DateRetour>2008-11-02 21:19</dgfip:DateRetour>
+ <dgfip:Agent>
+ <dgfip:EmploiFonction>Ingénieur</dgfip:EmploiFonction>
+ <dgfip:Statut>CIVIL</dgfip:Statut>
+ <dgfip:SituationFamille>MARIE</dgfip:SituationFamille>
+ <dgfip:NbEnfants>2</dgfip:NbEnfants>
+ <dgfip:Grade>Ingénieur contractuel</dgfip:Grade>
+ <dgfip:AgentChorus>
+ <dgfip:TypeTiers>ZCPD</dgfip:TypeTiers>
+ <dgfip:IdChorusTiers>ABCDE</dgfip:IdChorusTiers>
+ </dgfip:AgentChorus>
+ <dgfip:TypePersonne>AGENT</dgfip:TypePersonne>
+ </dgfip:Agent>
+ </dgfip:OrdreMission>
+ <dgfip:EtatFrais>
+ <dgfip:ComptableAssignataire>946000</dgfip:ComptableAssignataire>
+ <dgfip:TotalFraisTransport>160</dgfip:TotalFraisTransport>
+ <dgfip:TotalIndemnitesSejour>242</dgfip:TotalIndemnitesSejour>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>1234567890</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>MARIE</cbc:FirstName>
+ <cbc:FamilyName>CHARENTON</cbc:FamilyName>
+ <cbc:Title>MME</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:EtatFraisChorus>
+ <dgfip:Societe>ABCD</dgfip:Societe>
+ <dgfip:DomaineActivite>0123</dgfip:DomaineActivite>
+ </dgfip:EtatFraisChorus>
+ <dgfip:LibelleCollectivite>Libelle collectivité 01</dgfip:LibelleCollectivite>
+ <dgfip:SiretBP>COLLEC01</dgfip:SiretBP>
+ <dgfip:CodeBud>9998</dgfip:CodeBud>
+ <dgfip:LibelleBudget>Libelle budget 9998</dgfip:LibelleBudget>
+ <dgfip:IdRef>XYZ-385.xml</dgfip:IdRef>
+ </dgfip:EtatFrais>
+ </dgfip:EtatFraisExtension>
+ </cec:ExtensionContent>
+ </cec:UBLExtension>
+ </cec:UBLExtensions>
+
+ <cbc:ID>123456789012</cbc:ID>
+
+ <cbc:IssueDate>2008-11-28</cbc:IssueDate>
+
+ <cbc:InvoiceTypeCode>K1</cbc:InvoiceTypeCode>
+
+ <cac:AccountingSupplierParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>172103523842107</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Christophe</cbc:FirstName>
+ <cbc:FamilyName>MARCHAND</cbc:FamilyName>
+ <cbc:Title>M</cbc:Title>
+ </cac:Person>
+ <cac:AgentParty>
+ <cac:PostalAddress>
+ <cbc:CityName>Meudon la forêt</cbc:CityName>
+ <cbc:PostalZone>92360</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>40 allée du mail</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:PostalAddress>
+ <cac:PhysicalLocation>
+ <cac:Address>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:Address>
+ </cac:PhysicalLocation>
+ </cac:AgentParty>
+ </cac:Party>
+ </cac:AccountingSupplierParty>
+
+ <cac:AccountingCustomerParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>Ministère des finances</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:PartyLegalEntity>
+ <cbc:RegistrationName>Direction générale des finances publiques</cbc:RegistrationName>
+ <cac:RegistrationAddress>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:RegistrationAddress>
+ </cac:PartyLegalEntity>
+ </cac:Party>
+ </cac:AccountingCustomerParty>
+
+ <cac:PaymentMeans>
+ <cbc:PaymentMeansCode>V</cbc:PaymentMeansCode>
+ <cbc:PaymentChannelCode>IBAN</cbc:PaymentChannelCode>
+ <cac:PayeeFinancialAccount>
+ <cbc:ID>FR0011111222223333333333344</cbc:ID>
+ </cac:PayeeFinancialAccount>
+ </cac:PaymentMeans>
+
+ <cac:LegalMonetaryTotal>
+ <cbc:LineExtensionAmount currencyID="EUR">412</cbc:LineExtensionAmount>
+ <cbc:PrepaidAmount currencyID="EUR">50</cbc:PrepaidAmount>
+ <cbc:PayableAmount currencyID="EUR">412</cbc:PayableAmount>
+ </cac:LegalMonetaryTotal>
+
+ <cac:InvoiceLine>
+ <cbc:ID>1</cbc:ID>
+ <cbc:Note>Prix limité à 60.00 par nuit</cbc:Note>
+ <cbc:InvoicedQuantity>2</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">120</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Hotel du Port</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>HOTEL</cbc:ID></cac:BuyersItemIdentification>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">60</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>2</cbc:ID>
+ <cbc:Note>Repas limité à 15.25</cbc:Note>
+ <cbc:InvoicedQuantity>8</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">122</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Déjeuner</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>REPAS</cbc:ID></cac:BuyersItemIdentification>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">15.25</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+ <cac:InvoiceLine>
+ <cbc:ID>3</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">80.00</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Aller Paris Lyon</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>LYON</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>69000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-10-31 06:00</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-10-31 08:05</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+ <cac:InvoiceLine>
+ <cbc:ID>4</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">10.00</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Aller Lyon Marseille</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>LYON</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>69000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>MARSEILLE</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>13000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-10-31 12:00</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-10-31 14:05</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>5</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">80.00</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Retour Marseille Paris</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>MARSEILLE</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>13000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-11-02 18:00</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-11-02 21:19</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+ </ef:Invoice>
+
+ <ef:Invoice>
+ <cec:UBLExtensions>
+ <cec:UBLExtension>
+ <cec:ExtensionAgencyID>DGFIP</cec:ExtensionAgencyID>
+ <cec:ExtensionURI>DGFIP:EtatFrais:OrdreMission</cec:ExtensionURI>
+ <cec:ExtensionContent>
+ <dgfip:EtatFraisExtension>
+ <dgfip:OrdreMission>
+ <dgfip:ID>20081101-01</dgfip:ID>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>268390319000001</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Roland</cbc:FirstName>
+ <cbc:FamilyName>DUVAL</cbc:FamilyName>
+ <cbc:Title>M</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:DateValidation>2008-11-01</dgfip:DateValidation>
+ <dgfip:NatureOM>MISSION</dgfip:NatureOM>
+ <dgfip:LieuDeplacement Commune="Amiens" CP="80000"/>
+ <dgfip:LieuDepart Commune="Paris" CP="75000"/>
+ <dgfip:Lieurrivee Commune="Paris" CP="75000"/>
+ <dgfip:DateDepart>2008-11-03 07:07</dgfip:DateDepart>
+ <dgfip:DateRetour>2008-11-03 20:18</dgfip:DateRetour>
+ <dgfip:Agent>
+ <dgfip:EmploiFonction>Assistant</dgfip:EmploiFonction>
+ <dgfip:Statut>CIVIL</dgfip:Statut>
+ <dgfip:SituationFamille>CELIBATAIRE</dgfip:SituationFamille>
+ <dgfip:Grade>Employé</dgfip:Grade>
+ <dgfip:AgentChorus>
+ <dgfip:TypeTiers>ZCPD</dgfip:TypeTiers>
+ <dgfip:IdChorusTiers>ABCDE</dgfip:IdChorusTiers>
+ </dgfip:AgentChorus>
+ </dgfip:Agent>
+ </dgfip:OrdreMission>
+ <dgfip:EtatFrais>
+ <dgfip:ComptableAssignataire>946000</dgfip:ComptableAssignataire>
+ <dgfip:TotalFraisTransport>51.60</dgfip:TotalFraisTransport>
+ <dgfip:TotalIndemnitesSejour>15.25</dgfip:TotalIndemnitesSejour>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>1234567890</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>MARIE</cbc:FirstName>
+ <cbc:FamilyName>CHARENTON</cbc:FamilyName>
+ <cbc:Title>MME</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:EtatFraisChorus>
+ <dgfip:Societe>ABCD</dgfip:Societe>
+ <dgfip:DomaineActivite>0123</dgfip:DomaineActivite>
+ </dgfip:EtatFraisChorus>
+ </dgfip:EtatFrais>
+ </dgfip:EtatFraisExtension>
+ </cec:ExtensionContent>
+ </cec:UBLExtension>
+ </cec:UBLExtensions>
+
+ <cbc:ID>123456789099</cbc:ID>
+
+ <cbc:IssueDate>2008-11-28</cbc:IssueDate>
+
+ <cbc:InvoiceTypeCode>K1</cbc:InvoiceTypeCode>
+
+ <cac:AccountingSupplierParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>184395021924859</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>Hannah</cbc:FirstName>
+ <cbc:FamilyName>SCHMIDT</cbc:FamilyName>
+ <cbc:Title>MME</cbc:Title>
+ </cac:Person>
+ <cac:AgentParty>
+ <cac:PostalAddress>
+ <cbc:CityName>Paris</cbc:CityName>
+ <cbc:PostalZone>75020</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>8 impasse de l'Eglise</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:PostalAddress>
+ <cac:PhysicalLocation>
+ <cac:Address>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:Address>
+ </cac:PhysicalLocation>
+ </cac:AgentParty>
+ </cac:Party>
+ </cac:AccountingSupplierParty>
+
+ <cac:AccountingCustomerParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>Ministère des finances</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:PartyLegalEntity>
+ <cbc:RegistrationName>Direction générale des finances publiques</cbc:RegistrationName>
+ <cac:RegistrationAddress>
+ <cbc:CityName>Noisy le grand cedex</cbc:CityName>
+ <cbc:PostalZone>93193</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>Immeuble "Le Maille Nord 3"</cbc:Line>
+ </cac:AddressLine>
+ <cac:AddressLine>
+ <cbc:Line>7 porte de NEUILLY</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode>FR</cbc:IdentificationCode>
+ </cac:Country>
+ </cac:RegistrationAddress>
+ </cac:PartyLegalEntity>
+ </cac:Party>
+ </cac:AccountingCustomerParty>
+
+ <cac:PaymentMeans>
+ <cbc:PaymentMeansCode>V</cbc:PaymentMeansCode>
+ <cbc:PaymentChannelCode>IBAN</cbc:PaymentChannelCode>
+ <cac:PayeeFinancialAccount>
+ <cbc:ID>FR9988888777776666666666655</cbc:ID>
+ </cac:PayeeFinancialAccount>
+ </cac:PaymentMeans>
+
+ <cac:LegalMonetaryTotal>
+ <cbc:LineExtensionAmount currencyID="EUR">66.85</cbc:LineExtensionAmount>
+ <cbc:PayableAmount currencyID="EUR">66.85</cbc:PayableAmount>
+ </cac:LegalMonetaryTotal>
+
+ <cac:InvoiceLine>
+ <cbc:ID>1</cbc:ID>
+ <cbc:Note>Repas limité à 15.25</cbc:Note>
+ <cbc:InvoicedQuantity>1</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">15.25</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Déjeuner</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>REPAS</cbc:ID></cac:BuyersItemIdentification>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">15.25</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>2</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">25.80</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Aller Paris Amiens</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>AMIENS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>80000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-11-03 07:07</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-11-03 08:14</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+
+ <cac:InvoiceLine>
+ <cbc:ID>3</cbc:ID>
+ <cbc:LineExtensionAmount currencyID="EUR">25.80</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description>Retour Amiens Paris</cbc:Description>
+ <cac:BuyersItemIdentification><cbc:ID>TRAIN</cbc:ID></cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name><cbc:Value>AMIENS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_DEPART_CP</cbc:Name><cbc:Value>80000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name><cbc:Value>PARIS</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>LIEU_ARRIVEE_CP</cbc:Name><cbc:Value>75000</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_DEPART</cbc:Name><cbc:Value>2008-11-03 19:08</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>DATE_ARRIVEE</cbc:Name><cbc:Value>2008-11-03 20:18</cbc:Value></cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty><cbc:Name>CATEGORIE</cbc:Name><cbc:Value>1ere classe</cbc:Value></cac:AdditionalItemProperty>
+ </cac:Item>
+ </cac:InvoiceLine>
+ </ef:Invoice>
+</ef:EtatsFrais>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="./EtatFrais.xsl" type="text/xsl"?>
+<?xml-stylesheet href="./EtatFrais.xsl" type="text/xsl"?>
+<ef:EtatsFrais CODE_APPLI="ULY001"
+
+ xmlns:ef="urn:DGFIP:EtatsFrais"
+ xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
+ xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
+ xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
+ xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
+ xmlns:dgfip="urn:DGFIP:EtatFrais:OrdreMission"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ VersionCSS="01.01.04">
+
+ <ef:Invoice>
+ <cec:UBLExtensions>
+ <cec:UBLExtension>
+ <cec:ExtensionAgencyID>AIFE</cec:ExtensionAgencyID>
+ <cec:ExtensionURI>DGFIP:EtatFrais:OrdreMission</cec:ExtensionURI>
+ <cec:ExtensionContent>
+ <dgfip:EtatFraisExtension>
+ <dgfip:OrdreMission>
+ <dgfip:ID>_E7HK01</dgfip:ID>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>21644</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>MARTINE</cbc:FirstName>
+ <cbc:FamilyName>DELANGHE(DUPONT)</cbc:FamilyName>
+ <cbc:Title>Madame</cbc:Title>
+ <cbc:OrganizationDepartment>DIRFI/INTERVENTIONS FINANCIERE</cbc:OrganizationDepartment>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:DateValidation>2011-03-25</dgfip:DateValidation>
+ <dgfip:NatureOM>MISSION</dgfip:NatureOM>
+ <dgfip:MotifDeplacement>OM PERMANENT 2011 TESTS MARS 2011</dgfip:MotifDeplacement>
+ <dgfip:FaitGenerateur>
+ <dgfip:Type>ORDRE_MISSION</dgfip:Type>
+ </dgfip:FaitGenerateur>
+ <dgfip:LieuDeplacement CP="" Commune="TOUS LIEUX DPT 59"/>
+ <dgfip:LieuDepart CP="" Commune="LILLE CEDEX (59047)"/>
+ <dgfip:LieuArrivee CP="" Commune="LILLE CEDEX (59047)"/>
+ <dgfip:DateDepart>2011-01-01T00:00:00</dgfip:DateDepart>
+ <dgfip:DateRetour>2011-12-31T00:00:00</dgfip:DateRetour>
+ <dgfip:Agent>
+ <dgfip:EmploiFonction>XNIF</dgfip:EmploiFonction>
+ </dgfip:Agent>
+ </dgfip:OrdreMission>
+ <dgfip:EtatFrais>
+ <dgfip:ComptableAssignataire>CPTBLE_ASSIGNATAIRE</dgfip:ComptableAssignataire>
+ <dgfip:TotalFraisTransport>51.60</dgfip:TotalFraisTransport>
+ <dgfip:TotalIndemnitesSejour>15.25</dgfip:TotalIndemnitesSejour>
+ <dgfip:Valideur>
+ <cac:PartyIdentification>
+ <cbc:ID>UCG59_21644</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>MARTINE</cbc:FirstName>
+ <cbc:FamilyName>DELANGHE(DUPONT)</cbc:FamilyName>
+ <cbc:Title>Madame</cbc:Title>
+ </cac:Person>
+ </dgfip:Valideur>
+ <dgfip:EtatFraisChorus>
+ <dgfip:Societe>CG59</dgfip:Societe>
+ <dgfip:DomaineActivite>TODO</dgfip:DomaineActivite>
+ </dgfip:EtatFraisChorus>
+ <dgfip:LibelleCollectivite>CG59</dgfip:LibelleCollectivite>
+ <dgfip:SiretBP>004</dgfip:SiretBP>
+ <dgfip:CodeBud>00</dgfip:CodeBud>
+ <dgfip:LibelleBudget>Département du Nord</dgfip:LibelleBudget>
+ <dgfip:IdRef>809</dgfip:IdRef>
+ </dgfip:EtatFrais>
+ </dgfip:EtatFraisExtension>
+ </cec:ExtensionContent>
+ </cec:UBLExtension>
+ </cec:UBLExtensions>
+ <cbc:ID>E7HK01</cbc:ID>
+ <cbc:IssueDate>2011-03-28</cbc:IssueDate>
+ <cbc:InvoiceTypeCode>K1</cbc:InvoiceTypeCode>
+ <cac:AccountingSupplierParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>20327</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:Person>
+ <cbc:FirstName>CATY</cbc:FirstName>
+ <cbc:FamilyName>DOMINGUES PREGUICA</cbc:FamilyName>
+ <cbc:Title>Madame</cbc:Title>
+ </cac:Person>
+ <cac:AgentParty>
+ <cac:PostalAddress>
+ <cbc:CityName>HELLEMMES-LILLE</cbc:CityName>
+ <cbc:PostalZone/>
+ <cac:AddressLine>
+ <cbc:Line>5 Rue Roger Salengro HELLEMMES-LILLE</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode/>
+ </cac:Country>
+ </cac:PostalAddress>
+ <cac:PhysicalLocation>
+ <cac:Address>
+ <cbc:CityName>LILLE CEDEX (59047)</cbc:CityName>
+ <cbc:PostalZone/>
+ <cac:AddressLine>
+ <cbc:Line/>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode/>
+ </cac:Country>
+ </cac:Address>
+ </cac:PhysicalLocation>
+ </cac:AgentParty>
+ </cac:Party>
+ </cac:AccountingSupplierParty>
+ <cac:AccountingCustomerParty>
+ <cac:Party>
+ <cac:PartyIdentification>
+ <cbc:ID>CG59</cbc:ID>
+ </cac:PartyIdentification>
+ <cac:PartyLegalEntity>
+ <cbc:RegistrationName>DIRFI/INTERVENTIONS FINANCIERE</cbc:RegistrationName>
+ <cac:RegistrationAddress>
+ <cbc:CityName>LILLE</cbc:CityName>
+ <cbc:PostalZone>59000</cbc:PostalZone>
+ <cac:AddressLine>
+ <cbc:Line>10 avenue de l'europe</cbc:Line>
+ </cac:AddressLine>
+ <cac:Country>
+ <cbc:IdentificationCode/>
+ </cac:Country>
+ </cac:RegistrationAddress>
+ </cac:PartyLegalEntity>
+ </cac:Party>
+ </cac:AccountingCustomerParty>
+ <cac:PaymentMeans>
+ <cbc:PaymentMeansCode>V</cbc:PaymentMeansCode>
+ <cbc:PaymentChannelCode>IBAN</cbc:PaymentChannelCode>
+ <cac:PayeeFinancialAccount>
+ <cbc:ID>FR11111111111111111111115</cbc:ID>
+ </cac:PayeeFinancialAccount>
+ </cac:PaymentMeans>
+ <cac:LegalMonetaryTotal>
+ <cbc:LineExtensionAmount currencyID="EUR">15.25</cbc:LineExtensionAmount>
+ <cbc:PayableAmount currencyID="EUR">15.25</cbc:PayableAmount>
+ </cac:LegalMonetaryTotal>
+ <cac:InvoiceLine>
+ <cbc:ID>2</cbc:ID>
+ <cbc:Note>IDE - Déjeuner taux plein</cbc:Note>
+ <cbc:InvoicedQuantity>1</cbc:InvoicedQuantity>
+ <cbc:LineExtensionAmount currencyID="EUR">15.25</cbc:LineExtensionAmount>
+ <cac:Item>
+ <cbc:Description/>
+ <cac:BuyersItemIdentification>
+ <cbc:ID>REPAS</cbc:ID>
+ </cac:BuyersItemIdentification>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>DATE_DEPART</cbc:Name>
+ <cbc:Value>2011-03-01T13:30:00</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>LIEU_DEPART_COMMUNE</cbc:Name>
+ <cbc:Value>COMMUNE DEPART</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>LIEU_DEPART_CP</cbc:Name>
+ <cbc:Value>CP COMM. DEPART</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>DATE_ARRIVEE</cbc:Name>
+ <cbc:Value>2011-03-01T19:00:00</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>LIEU_ARRIVEE_COMMUNE</cbc:Name>
+ <cbc:Value>COMMUNE ARRIVEE</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>LIEU_ARRIVEE_CP</cbc:Name>
+ <cbc:Value>CP COMM. ARR.</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>CH_COMPTE_PCE</cbc:Name>
+ <cbc:Value>6251</cbc:Value>
+ </cac:AdditionalItemProperty>
+ <cac:AdditionalItemProperty>
+ <cbc:Name>CH_CENTRE_COUTS</cbc:Name>
+ <cbc:Value>DG1T01 - REMB - DGA 1 DGAFJEI - IMP 93 0202</cbc:Value>
+ </cac:AdditionalItemProperty>
+ </cac:Item>
+ <cac:Price>
+ <cbc:PriceAmount currencyID="EUR">15.25</cbc:PriceAmount>
+ </cac:Price>
+ </cac:InvoiceLine>
+ </ef:Invoice>
+</ef:EtatsFrais>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY nbsp " ">
+<!ENTITY amp "&">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ef="urn:DGFIP:EtatsFrais"
+ xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
+ xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
+ xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
+ xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
+ xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added"
+ xmlns:ano="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally"
+ xmlns:dgfip="urn:DGFIP:EtatFrais:OrdreMission" version="2.0">
+
+ <!-- XSL version SPL -->
+
+ <xsl:output encoding="ISO-8859-1" method="xhtml" indent="no"/>
+
+ <xsl:param name="line.ID" select="NOT_SET"/>
+ <xsl:param name="anoId"/>
+ <!-- id de l'anomalie a mettre en surbrillance -->
+
+ <xsl:param name="collectivite"/>
+ <xsl:param name="collectivite-lib"/>
+ <xsl:param name="budget"/>
+ <xsl:param name="budget-lib"/>
+
+ <xsl:param name="presentation" select="'normal'"/>
+ <!-- valid values are 'normal' and 'src' -->
+
+ <xsl:variable name="pays" select="document('./resources/iso_3166-1_list_fr.xml')"/>
+ <xsl:variable name="SituationsFamille" select="document('./resources/situationsFamiliales.xml')"/>
+ <xsl:variable name="TypesFrais" select="document('./resources/typesFrais.xml')"/>
+ <xsl:variable name="TypesEtatFrais" select="document('./resources/typesEtatFrais.xml')"/>
+ <xsl:variable name="NaturesOM" select="document('./resources/naturesOM.xml')"/>
+ <xsl:variable name="TypesPersonnes" select="document('./resources/typesPersonnes.xml')"/>
+ <xsl:variable name="TypesFaitsGenerateurs"
+ select="document('./resources/typesFaitGenerateurs.xml')"/>
+ <xsl:variable name="DureesOM" select="document('./resources/dureesOM.xml')"/>
+
+ <xsl:decimal-format name="decformat" decimal-separator="," grouping-separator=" " digit="#"
+ pattern-separator=";" NaN="NaN" minus-sign="-"> </xsl:decimal-format>
+
+ <xsl:variable name="tags-ano">
+ <xsl:for-each select="//ano:Anomalie[@ano:anoId = $anoId]/ano:node">
+ <xsl:element name="node">
+ <xsl:attribute name="id" select="./@ano:id"/>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:template match="/added:DocEtatsFrais">
+ <xsl:choose>
+ <xsl:when test="$presentation = 'normal'">
+ <html>
+ <head>
+ <title>Etat de Frais</title>
+ <style type="text/css" media="print">
+ .invoiceDiv {
+ width: 100%;
+ }
+ tr {
+ page-break-inside: avoid;
+ }
+ table {
+ -fs-table-paginate: paginate;
+ }
+ .anomalie {
+ display: none;
+ }</style>
+ <style type="text/css" media="screen">
+ .invoiceDiv {
+ width: 75%;
+ }
+ th {
+ color: white;
+ background-color: #999999;
+ }
+ .highlighted {
+ background-color: #FFFF66;
+ }</style>
+ <style type="text/css" media="all">
+ body, p, th, td {
+ font-size: 12;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ }
+ table {
+ border-collapse: collapse;
+ }
+ anomalie {
+ background-color: #FFFF66;
+ }
+ .titre0 {
+ font-weight: bold;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 24;
+ }
+ .center {
+ text-align: center;
+ }
+ .top {
+ vertical-align: top;
+ }
+ .gras {
+ font-weight: bold;
+ }
+ .right {
+ text-align: right;
+ }
+ .left {
+ text-align: left;
+ }
+ .bordered {
+ border-style: solid;
+ border-width: 1px;
+ border-color: black;
+ v
+ padding: 10px;
+ }
+ .collapsed {
+ border-collapse: collapse;
+ border-spacing: 0px;
+ }
+ .titre1 {
+ margin-top: 12px;
+ margin-bottom: 0px;
+ font-wieght: bold;
+ font-size: 16;
+ }
+ .nosign {
+ list-style-type: none;
+ }
+ td {
+ background-color: inherited;
+ }</style>
+ </head>
+ <body>
+ <center>
+ <xsl:apply-templates/>
+ </center>
+ </body>
+ </html>
+ </xsl:when>
+ <xsl:when test="$presentation = 'src'">
+ <html>
+ <head>
+ <title>Source XML de FEN058</title>
+ <style type="text/css">
+ span {
+ font-family: monospace;
+ font-size: 12px;
+ }
+ .expander-content {
+ padding-left: 1em;
+ }
+ .text {
+ color: black;
+ }
+ .expander {
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ display: inline-block;
+ margin-left: -1em;
+ }
+ body {
+ font-family: monospace;
+ font-size: 12px;
+ }
+ #top > .expander-open, #top > .expander-closed {
+ margin-left: 1em;
+ }
+ .expander-closed > .expander-content {
+ display: none;
+ }
+ .comment {
+ font-family: monospace;
+ font-size: 12px;
+ white-space: pre;
+ }
+ #top > .expander-open {
+ font-family: monospace;
+ font-size: 12px;
+ white-space: pre;
+ }
+ *|*:root {
+ background-color: white;
+ }
+ #viewsource {
+ font-family: monospace;
+ font-size: 12px;
+ font-weight: normal;
+ color: black;
+ white-space: pre;
+ }
+ #viewsource.wrap {
+ white-space: pre-wrap;
+ }
+ pre {
+ font: inherit;
+ color: inherit;
+ white-space: inherit;
+ margin: 0;
+ }
+ .start-tag {
+ color: purple;
+ font-weight: bold;
+ font-size: 12px;
+ }
+ .end-tag {
+ color: purple;
+ font-weight: bold;
+ font-size: 12px;
+ }
+ .comment {
+ color: green;
+ font-style: italic;
+ }
+ .cdata {
+ color: #CC0066;
+ }
+ .doctype {
+ color: steelblue;
+ font-style: italic;
+ }
+ .pi {
+ color: orchid;
+ font-style: italic;
+ }
+ .entity {
+ color:#FF4500;
+ font-weight: normal;
+ }
+ .text {
+ font-weight: normal;
+ }
+ .attribute-name {
+ color: black;
+ font-weight: bold;
+ }
+ .attribute-value {
+ color: blue;
+ font-weight: normal;
+ }
+ .summary {
+ display: block;
+ background-color: #FFFFCC;
+ width: 90%;
+ border: solid;
+ border-width: 1pt;
+ font-family: sans-serif;
+ }
+ .popup {
+ font-weight: normal;
+ }
+ .markupdeclaration {
+ color: steelblue;
+ font-style: italic;
+ }
+ .error, .error > .start-tag, .error > .end-tag,
+ .error > .comment, .error > .cdata, .error > .doctype,
+ .error > .pi, .error > .entity, .error > .attribute-name,
+ .error > .attribute-value {
+ color: red;
+ font-weight: bold;
+ }</style>
+ </head>
+ <body>
+ <!--p>Paramètres<br/>
+ collectivite: <xsl:value-of select="$collectivite"/><br/>
+ collectivite-lib: <xsl:value-of select="$collectivite-lib"/><br/>
+ budget: <xsl:value-of select="$budg"/><br/>
+ budget-lib: <xsl:value-of select="$budget-lib"/>
+ </p-->
+ <xsl:for-each select="./*">
+ <xsl:call-template name="displaySrc">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:if test="count(//ano:Anomalie) > 0">
+ <hr/>
+ <xsl:for-each select="//ano:Anomalie">
+ <xsl:call-template name="anomalie">
+ <xsl:with-param name="ano" select="."/>
+ <xsl:with-param name="invoiceId" select="../@ano:unique-id"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ </body>
+ </html>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="//ef:EtatsFrais/ef:Invoice">
+ <xsl:variable name="this.invoice" select="."/>
+ <xsl:variable name="extension"
+ select="./cec:UBLExtensions/cec:UBLExtension[cec:ExtensionURI='DGFIP:EtatFrais:OrdreMission']/cec:ExtensionContent/dgfip:EtatFraisExtension"/>
+ <div class="invoiceDiv">
+ <table width="100%">
+ <colgroup>
+ <col width="33%" style="text-align: center;"/>
+ <col width="34%" style="text-align: center;"/>
+ <col width="33%" style="text-align: center;"/>
+ </colgroup>
+ <tbody>
+ <tr>
+ <td/>
+ <td class="center titre0">ETAT DES FRAIS</td>
+ <td class="top right">OM n° <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:ID"/><br/> Edf n°
+ <xsl:value-of select="./cbc:ID"/>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <xsl:variable name="agentExt" select="$extension/dgfip:OrdreMission/dgfip:Agent"/>
+ <xsl:variable name="agent" select="./cac:AccountingSupplierParty/cac:Party"/>
+ <table width="100%">
+ <colgroup>
+ <col width="50%"/>
+ <col width="50%"/>
+ </colgroup>
+ <tbody>
+ <tr>
+ <td colspan="2">Exposés par <span class="gras">
+ <xsl:if test="$agent/cac:Person/cbc:Title">
+ <xsl:value-of
+ select="concat($agent/cac:Person/cbc:Title/text(),' ')"/>
+ </xsl:if>
+ <xsl:value-of
+ select="concat($agent/cac:Person/cbc:FirstName/text(),' ')"/>
+ <xsl:value-of select="$agent/cac:Person/cbc:FamilyName/text()"/>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td>Grade : <span class="gras">
+ <xsl:value-of select="$agentExt/dgfip:Grade"/>
+ </span></td>
+ <td>Entité émettrice : <span class="gras">
+ <xsl:value-of
+ select="./cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID"
+ />
+ </span>
+ <xsl:if
+ test="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName/text()">
+ <br/>
+ <xsl:value-of
+ select="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName/text()"
+ />
+ </xsl:if>
+ <xsl:if
+ test="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cac:RegistrationAddress/cac:AddressLine/cbc:Line/text()">
+ <xsl:for-each
+ select="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cac:RegistrationAddress/cac:AddressLine/cbc:Line">
+ <br/>
+ <xsl:value-of select="./text()"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if
+ test="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cac:RegistrationAddress/cbc:PostalZone/text() or ./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cac:RegistrationAddress/cbc:CityName/text()">
+ <br/>
+ <xsl:value-of
+ select="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cac:RegistrationAddress/cbc:PostalZone/text()"
+ /> <xsl:value-of
+ select="./cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cac:RegistrationAddress/cbc:CityName/text()"
+ />
+ </xsl:if>
+ </td>
+ </tr>
+ <tr>
+ <td>en résidence à <span class="gras">
+ <xsl:value-of
+ select="$agent/cac:AgentParty/cac:PhysicalLocation/cac:Address/cbc:CityName/text()"
+ />
+ </span></td>
+ <td>à l'occasion d'un déplacement à <span class="gras">
+ <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuDeplacement/@Commune"/>
+ <xsl:if
+ test="string-length($extension/dgfip:OrdreMission/dgfip:LieuDeplacement/@CodPays) > 0"
+ > (<xsl:call-template name="libPays">
+ <xsl:with-param name="cod"
+ select="$extension/dgfip:OrdreMission/dgfip:LieuDeplacement/@CodPays"
+ />
+ </xsl:call-template>) </xsl:if>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <!-- correction ici -->
+ <td colspan="2">Identifiant <span class="gras">
+ <xsl:value-of
+ select="./cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID"
+ />
+ </span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p> </p>
+
+ <table width="100%" style="bordered collapsed" cellpadding="0" cellspacing="0">
+ <colgroup>
+ <col width="25%"/>
+ <col width="25%"/>
+ <col width="25%"/>
+ <col width="25%"/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="bordered" colspan="2">Départ de la résidence administrative</th>
+ <th class="bordered" colspan="2">Arrivée à la résidence administrative</th>
+ </tr>
+ <tr>
+ <th class="bordered">Date</th>
+ <th class="bordered">Heure</th>
+ <th class="bordered">Date</th>
+ <th class="bordered">Heure</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="bordered" align="center">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$extension/dgfip:OrdreMission/dgfip:DateDepart"/>
+ <xsl:with-param name="formataffichage">date</xsl:with-param>
+ </xsl:call-template>
+ </td>
+ <td class="bordered" align="center">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$extension/dgfip:OrdreMission/dgfip:DateDepart"/>
+ <xsl:with-param name="formataffichage">heure</xsl:with-param>
+ </xsl:call-template>
+ </td>
+ <td class="bordered" align="center">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$extension/dgfip:OrdreMission/dgfip:DateRetour"/>
+ <xsl:with-param name="formataffichage">date</xsl:with-param>
+ </xsl:call-template>
+ </td>
+ <td class="bordered" align="center">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$extension/dgfip:OrdreMission/dgfip:DateRetour"/>
+ <xsl:with-param name="formataffichage">heure</xsl:with-param>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p> </p>
+
+ <table width="100%" style="bordered collapsed" cellpadding="0" cellspacing="0">
+ <!-- modification -->
+ <colgroup>
+ <col width="60%"/>
+ <col width="10%"/>
+ <col width="10%"/>
+ <col width="10%"/>
+ <col width="10%"/>
+
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="bordered">Frais</th>
+ <th class="bordered">Imputation</th>
+ <!--th class="bordered">Centre Couts</th-->
+ <th class="bordered">Quantité</th>
+ <th class="bordered">Prix unitaire</th>
+ <th class="bordered">Prix Total</th>
+ </tr>
+ </thead>
+ <tbody>
+ <!-- Ordre d'affichage des lignes :
+ 1) Hotel (catégorie = HOTEL, NUITEE)
+ 2) Repas (catégorie = REPAS)
+ 3) Transports (catégorie = PARKING, VOITURE, 2_ROUES, TAXI, PEAGE, TRAIN, AVION, CAR, BATEAU, AUTRE_TRANSPORT_COMMUN, ABONNEMENT)
+ 4) Divers (catégorie = AUTRE, AVANCE_FRAIS)
+ -->
+ <xsl:for-each
+ select="./cac:InvoiceLine[cac:Item/cac:BuyersItemIdentification/cbc:ID = 'HOTEL'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'NUITEE']">
+ <xsl:call-template name="invoiceLine">
+ <xsl:with-param name="line" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:for-each
+ select="./cac:InvoiceLine[cac:Item/cac:BuyersItemIdentification/cbc:ID = 'REPAS']">
+ <xsl:call-template name="invoiceLine">
+ <xsl:with-param name="line" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:for-each
+ select="./cac:InvoiceLine[cac:Item/cac:BuyersItemIdentification/cbc:ID = 'PARKING'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'VOITURE'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = '2_ROUES'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'TAXI'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'PEAGE'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'TRAIN'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AVION'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'CAR'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'BATEAU'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AUTRE_TRANSPORT_COMMUN'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'ABONNEMENT']">
+ <xsl:call-template name="invoiceLine">
+ <xsl:with-param name="line" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:for-each
+ select="./cac:InvoiceLine[cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AUTRE'
+ or cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AVANCE_FRAIS']">
+ <xsl:call-template name="invoiceLine">
+ <xsl:with-param name="line" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+
+ </tbody>
+ </table>
+
+<br/>
+ <table width="40%" style="bordered collapsed" cellpadding="0" cellspacing="0"
+ align="left">
+ <colgroup>
+ <col width="60%"/>
+ <col width="40%"/>
+ </colgroup>
+ <tbody>
+
+ <tr>
+ <td colspan="2">Sous-totaux</td>
+ </tr>
+
+ <tr>
+ <td class="bordered">Frais de séjour</td>
+ <td class="bordered">
+ <xsl:if
+ test="string(number($extension/dgfip:EtatFrais/dgfip:TotalIndemnitesSejour/text()))!='NaN'">
+ <xsl:call-template name="number">
+ <xsl:with-param name="num"
+ select="$extension/dgfip:EtatFrais/dgfip:TotalIndemnitesSejour"
+ />
+ </xsl:call-template>
+ </xsl:if>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Frais de transport</td>
+ <td class="bordered">
+ <xsl:if
+ test="string(number($extension/dgfip:EtatFrais/dgfip:TotalFraisTransport/text()))!='NaN'">
+ <xsl:call-template name="number">
+ <xsl:with-param name="num"
+ select="$extension/dgfip:EtatFrais/dgfip:TotalFraisTransport"/>
+ </xsl:call-template>
+ </xsl:if>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <br/>
+
+ <table width="40%" style="bordered collapsed" cellpadding="0" cellspacing="0"
+ align="right">
+ <colgroup>
+ <col width="60%"/>
+ <col width="40%"/>
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="bordered">Total des droits</td>
+ <xsl:variable name="currentNodeId"
+ select="./cac:LegalMonetaryTotal/cbc:LineExtensionAmount/@ano:node-id"/>
+ <td class="bordered right">
+ <xsl:if test="count($tags-ano/node[@id = $currentNodeId]) > 0">
+ <xsl:attribute name="style">background-color: #FFFF66;</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="number">
+ <xsl:with-param name="num"
+ select="./cac:LegalMonetaryTotal/cbc:LineExtensionAmount/text()"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="bordered">Montant des avances</td>
+ <xsl:variable name="currentNodeId"
+ select="./cac:LegalMonetaryTotal/cbc:PrepaidAmount/@ano:node-id"/>
+ <td class="bordered right">
+ <xsl:if test="count($tags-ano/node[@id = $currentNodeId]) > 0">
+ <xsl:attribute name="style">background-color: #FFFF66;</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="number">
+ <xsl:with-param name="num"
+ select="./cac:LegalMonetaryTotal/cbc:PrepaidAmount/text()"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="bordered">Total à verser</td>
+ <td class="bordered right gras">
+ <xsl:choose>
+ <xsl:when
+ test="string(number(./cac:LegalMonetaryTotal/cbc:PrepaidAmount/text()))='NaN'">
+ <xsl:call-template name="number">
+ <xsl:with-param name="num"
+ select="./cac:LegalMonetaryTotal/cbc:LineExtensionAmount"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="total.a.verser"
+ select="number(./cac:LegalMonetaryTotal/cbc:LineExtensionAmount)
+ - number(./cac:LegalMonetaryTotal/cbc:PrepaidAmount)"/>
+ <xsl:value-of
+ select="format-number($total.a.verser,'# ###,00;-# ###,00','decformat')"
+ />
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </tbody>
+
+ </table>
+
+
+ <p> </p>
+ <p> </p>
+
+ <table width="40%" style="bordered collapsed" cellpadding="0" cellspacing="0"
+ align="left">
+ <colgroup>
+ <col width="100%"/>
+ </colgroup>
+ <tr>
+ <td class="bordered">
+ <xsl:choose>
+ <xsl:when test="./cac:PaymentMeans/cbc:PaymentMeansCode/text() = 'V'">
+ <p class="titre1" align="center">Paiement par virement</p>
+ <p class="titre1"> </p>
+ <xsl:choose>
+ <xsl:when
+ test="(./cac:PaymentMeans/cbc:PaymentChannelCode/text() = 'IBAN') and (substring(./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID/text(), 1, 2) = 'FR')"
+ > Compte n° : <xsl:value-of
+ select="substring(./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID,15,11)"
+ /><br/> Agence : <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID"
+ /><br/> Code banque : <xsl:value-of
+ select="substring(./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID,5,5)"
+ /><br/> Code guichet : <xsl:value-of
+ select="substring(./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID,10,5)"
+ /><br/> Clé : <xsl:value-of
+ select="substring(./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID,26,2)"
+ /><br/>
+ </xsl:when>
+ <xsl:when
+ test="(./cac:PaymentMeans/cbc:PaymentChannelCode/text() = 'IBAN') and (substring(./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID/text(), 1, 2) != 'FR')">
+ <p>IBAN : <span class="gras">
+ <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID"
+ />
+ </span></p>
+ </xsl:when>
+ <xsl:when
+ test="./cac:PaymentMeans/cbc:PaymentChannelCode/text() = 'BBAN'"
+ > Compte bancaire : <span class="gras">
+ <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID"
+ />
+ </span><br/> Code banque : <span class="gras">
+ <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID"
+ />
+ </span><br/> Agence : <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:Name"
+ /><br/> Clé pays : <span class="gras">
+ <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cac:Country/cbc:IdentificationCode"
+ />
+ </span><br/> Clé : <span class="gras">
+ <xsl:value-of
+ select="./cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:PaymentNote"
+ />
+ </span>
+ </xsl:when>
+ <xsl:otherwise>Définition du compte bancaire non
+ reconnue</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="./cac:PaymentMeans/cbc:PaymentMeansCode/text() = 'C'"
+ >Paiement par chèque</xsl:when>
+ <xsl:when test="./cac:PaymentMeans/cbc:PaymentMeansCode/text() = 'O'"
+ >Paiement en devise étrangère</xsl:when>
+ <xsl:otherwise>Mode de paiement non reconnu</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </table>
+
+ <xsl:variable name="valideurEF" select="$extension/dgfip:EtatFrais/dgfip:Valideur"/>
+ <p>Fait le <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute" select="./cbc:IssueDate"/>
+ </xsl:call-template></p>
+ <p>Vu et certifié par :</p>
+ <span class="gras">
+ <xsl:if test="$valideurEF/cac:Person/cbc:Title">
+ <xsl:value-of select="concat($valideurEF/cac:Person/cbc:Title/text(),' ')"/>
+ </xsl:if>
+ <xsl:value-of select="concat($valideurEF/cac:Person/cbc:FirstName/text(),' ')"/>
+ <xsl:value-of select="$valideurEF/cac:Person/cbc:FamilyName/text()"/>
+ </span>
+
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+
+ <hr/>
+ <hr/>
+
+ <p class="titre0">Informations complémentaires</p>
+
+ <p class="titre1">Etat de frais</p>
+ <table width="100%" style="bordered collapsed" cellpadding="0" cellspacing="0">
+ <colgroup>
+ <col width="20%"/>
+ <col width="80%"/>
+ </colgroup>
+ <tr>
+ <td class="bordered">Type d'état de frais</td>
+ <td class="bordered">
+ <xsl:call-template name="libTypeEtatFrais">
+ <xsl:with-param name="cod" select="./cbc:InvoiceTypeCode"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Valideur de l'EF</td>
+ <td class="bordered">
+ <xsl:if test="$valideurEF/cac:Person/cbc:Title">
+ <xsl:value-of
+ select="concat($valideurEF/cac:Person/cbc:Title/text(),' ')"/>
+ </xsl:if>
+ <xsl:value-of
+ select="concat($valideurEF/cac:Person/cbc:FirstName/text(),' ')"/>
+ <xsl:value-of select="$valideurEF/cac:Person/cbc:FamilyName/text()"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Identifiant de l'utilisateur ayant validé l'EF</td>
+ <td class="bordered">
+ <xsl:value-of select="$valideurEF/cac:PartyIdentification/cbc:ID"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Devise de l’état de frais</td>
+ <td class="bordered"><xsl:value-of
+ select="./cac:LegalMonetaryTotal/cbc:LineExtensionAmount/@currencyID"
+ /> </td>
+ </tr>
+ <xsl:if test="exists($extension/dgfip:EtatFrais/dgfip:IdRef)">
+ <tr>
+ <td class="bordered">Nom original du fichier</td>
+ <td class="bordered">
+ <xsl:value-of select="$extension/dgfip:EtatFrais/dgfip:IdRef/text()"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="exists($extension/dgfip:EtatFrais/dgfip:SiretBP)">
+ <tr>
+ <td class="bordered">SIRET du budget principal de la collectivité</td>
+ <td class="bordered">
+ <xsl:value-of select="$extension/dgfip:EtatFrais/dgfip:SiretBP/text()"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="exists($extension/dgfip:EtatFrais/dgfip:CodeBud)">
+ <tr>
+ <td class="bordered">Code budget</td>
+ <td class="bordered">
+ <xsl:value-of select="$extension/dgfip:EtatFrais/dgfip:CodeBud/text()"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="exists($extension/dgfip:EtatFrais/dgfip:ComptableAssignataire/text())">
+ <tr>
+ <td class="bordered">Comptable assignataire</td>
+ <td class="bordered">
+ <xsl:value-of
+ select="$extension/dgfip:EtatFrais/dgfip:ComptableAssignataire/text()"
+ />
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+
+ <p class="titre1">Agent</p>
+ <table width="100%" style="bordered collapsed" cellpadding="0" cellspacing="0">
+ <colgroup>
+ <col width="20%"/>
+ <col width="80%"/>
+ </colgroup>
+ <tr>
+ <td class="bordered">Identifiant AMM</td>
+ <td class="bordered">
+ <xsl:value-of select="$agent/cac:PartyIdentification/cbc:ID"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Type de personne</td>
+ <td class="bordered">
+ <xsl:call-template name="libTypePersonne">
+ <xsl:with-param name="cod" select="$agentExt/dgfip:TypePersonne/text()"
+ />
+ </xsl:call-template>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Identifiants tiers</td>
+ <td class="bordered">Type tiers : <xsl:value-of
+ select="$agentExt/dgfip:AgentChorus/dgfip:TypeTiers"/>
+ <br/> Identifiant fonctionnel du tiers : <xsl:value-of
+ select="$agentExt/dgfip:AgentChorus/dgfip:IdFoncTiers"/>
+ <br/> Identifiant Chorus du tiers : <xsl:value-of
+ select="$agentExt/dgfip:AgentChorus/dgfip:IdChorusTiers"/><br/>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Nom de l'agent</td>
+ <td class="bordered">
+ <xsl:if test="$agent/cac:Person/cbc:Title">
+ <xsl:value-of select="concat($agent/cac:Person/cbc:Title/text(),' ')"/>
+ </xsl:if>
+ <xsl:value-of select="concat($agent/cac:Person/cbc:FirstName/text(),' ')"/>
+ <xsl:value-of select="$agent/cac:Person/cbc:FamilyName/text()"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Résidence familiale</td>
+ <td class="bordered">
+ <xsl:for-each
+ select="$agent/cac:AgentParty/cac:PostalAddress/cac:AddressLine/cbc:Line">
+ <br/>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ <br/>
+ <br/>
+ <xsl:value-of select="$agent/cac:AgentParty/cac:PostalAddress/cbc:CityName"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Résidence administrative</td>
+ <td class="bordered">
+ <xsl:for-each
+ select="$agent/cac:AgentParty/cac:PhysicalLocation/cac:Address/cac:AddressLine/cbc:Line">
+ <br/>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ <br/>
+ <xsl:value-of
+ select="$agent/cac:AgentParty/cac:PhysicalLocation/cac:Address/cbc:PostalZone"/>
+ <br/>
+ <xsl:value-of
+ select="$agent/cac:AgentParty/cac:PhysicalLocation/cac:Address/cbc:CityName"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Situation de famille</td>
+ <td class="bordered"><xsl:call-template name="libSitFam">
+ <xsl:with-param name="cod"
+ select="$agentExt/dgfip:SituationFamille/text()"/>
+ </xsl:call-template> </td>
+ </tr>
+ <tr>
+ <td class="bordered">Nombre d'enfants</td>
+ <td class="bordered"><xsl:value-of select="$agentExt/dgfip:NbEnfants"
+ /> </td>
+ </tr>
+ </table>
+
+ <p class="titre1">Ordre de mission</p>
+ <table width="100%" style="bordered collapsed" cellpadding="0" cellspacing="0">
+ <colgroup>
+ <col width="20%"/>
+ <col width="80%"/>
+ </colgroup>
+ <tr>
+ <td class="bordered">Nature du déplacement</td>
+ <td class="bordered">
+ <xsl:call-template name="libNatureOM">
+ <xsl:with-param name="cod"
+ select="$extension/dgfip:OrdreMission/dgfip:NatureOM"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Motif du déplacement</td>
+ <td class="bordered">
+ <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:MotifDeplacement/text()"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Fait générateur de la dépense</td>
+ <td class="bordered">
+ <xsl:call-template name="libTypeFaitGenerateur">
+ <xsl:with-param name="cod"
+ select="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Type/text()"
+ />
+ </xsl:call-template>
+ <xsl:if
+ test="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Date/text()">
+ <br/> Date : <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Date/text()"
+ />
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if
+ test="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Reference/text()">
+ <br/> Référence : <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Reference/text()"
+ />
+ </xsl:if>
+ <xsl:if
+ test="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Date/text()">
+ <br/> Durée de l'OM : <xsl:call-template name="libDureeOM">
+ <xsl:with-param name="cod"
+ select="$extension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:DureeOM/text()"
+ />
+ </xsl:call-template>
+ </xsl:if>
+ </td>
+ </tr>
+ <xsl:if
+ test="$extension/dgfip:OrdreMission/dgfip:LieuDeplacement or
+ $extension/dgfip:OrdreMission/dgfip:LieuDepart or
+ $extension/dgfip:OrdreMission/dgfip:LieuArrivee">
+ <tr>
+ <td class="bordered">Lieux</td>
+ <td class="bordered">
+ <xsl:if test="$extension/dgfip:OrdreMission/dgfip:LieuDeplacement">
+ Déplacement :  <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuDeplacement/@CP"
+ />  <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuDeplacement/@Commune"/>
+ <br/>
+ </xsl:if>
+ <xsl:if test="$extension/dgfip:OrdreMission/dgfip:LieuDepart"> Départ
+ :  <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuDepart/@CP"
+ />  <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuDepart/@Commune"/>
+ <br/>
+ </xsl:if>
+ <xsl:if test="$extension/dgfip:OrdreMission/dgfip:LieuArrivee"> Arrivée
+ :  <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuArrivee/@CP"
+ />  <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:LieuArrivee/@Commune"
+ />
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="$extension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise">
+ <tr>
+ <td class="bordered">Moyen de transport autorisé</td>
+ <td class="bordered">
+ <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/text()"/>
+ <xsl:if
+ test="$extension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/@ClasseAutorisee">
+ <br/> Classe : <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/@ClasseAutorisee"
+ />
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ <!-- il est spécifié qu'on devrait virer ça, mais on peut pas pour l'anomalie -->
+ <tr>
+ <td class="bordered">Identifiant Valideur</td>
+ <xsl:variable name="currentNodeId"
+ select="$extension/dgfip:OrdreMission/dgfip:Valideur/cac:PartyIdentification/cbc:ID/@ano:node-id"/>
+ <td class="bordered">
+ <xsl:if test="count($tags-ano/node[@id = $currentNodeId]) > 0">
+ <xsl:attribute name="style">background-color: #FFFF66;</xsl:attribute>
+ </xsl:if>
+ <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:Valideur/cac:PartyIdentification/cbc:ID/text()"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Valideur</td>
+ <td class="bordered">
+ <xsl:if
+ test="$extension/dgfip:OrdreMission/dgfip:Valideur/cac:Person/cbc:Title">
+ <xsl:value-of
+ select="concat($extension/dgfip:OrdreMission/dgfip:Valideur/cac:Person/cbc:Title/text(),' ')"
+ />
+ </xsl:if>
+ <xsl:value-of
+ select="concat($extension/dgfip:OrdreMission/dgfip:Valideur/cac:Person/cbc:FirstName/text(),' ')"/>
+ <xsl:value-of
+ select="$extension/dgfip:OrdreMission/dgfip:Valideur/cac:Person/cbc:FamilyName/text()"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td class="bordered">Date validation</td>
+ <td class="bordered">
+ <xsl:if test="$extension/dgfip:OrdreMission/dgfip:DateValidation/text()">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$extension/dgfip:OrdreMission/dgfip:DateValidation/text()"
+ />
+ </xsl:call-template>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+
+ </div>
+ <!-- Listage des Anomalies -->
+ <xsl:if test="./ano:Anomalie or ./cac:InvoiceLine/ano:Anomalie">
+ <hr/>
+ <xsl:variable name="anos">
+ <xsl:copy-of select="./cac:InvoiceLine/ano:Anomalie"/>
+ <xsl:copy-of select="./ano:Anomalie"/>
+ </xsl:variable>
+ <xsl:for-each select="$anos//ano:Anomalie">
+ <xsl:call-template name="anomalie">
+ <xsl:with-param name="ano" select="."/>
+ <xsl:with-param name="invoiceId" select="$this.invoice/@ano:unique-id"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <hr/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="anomalie">
+ <xsl:param name="ano"/>
+ <xsl:param name="invoiceId"/>
+ <xsl:element name="div">
+ <xsl:attribute name="class">anomalie left</xsl:attribute>
+ <xsl:attribute name="width">75%</xsl:attribute>
+ <xsl:if test="$anoId = ./@ano:anoId">
+ <xsl:attribute name="style">background-color: #FFFF66;</xsl:attribute>
+ </xsl:if>
+ <h3 style="text-align: left;">
+ <xsl:element name="a">
+ <xsl:attribute name="name">AnoId_<xsl:value-of select="$ano/@ano:anoId"
+ /></xsl:attribute>
+ <xsl:attribute name="href"
+ >xemelios:/query?docId=DocEtatsFrais&etatId=EtatFrais&elementId=invoice&collectivite=<xsl:value-of
+ select="$collectivite"/>&budget=<xsl:value-of select="$budget"
+ />&path=[@ano:unique-id='<xsl:value-of select="$invoiceId"
+ />']&xsl:param=(anoId,<xsl:value-of select="$ano/@ano:anoId"
+ />)&xsl:param=(presentation,<xsl:value-of select="$presentation"
+ />)</xsl:attribute> Anomalie </xsl:element>
+ </h3>
+ <span class="gras">Contrôle :</span><xsl:value-of select="./@ano:ctrlLibelle"
+ /> (<xsl:value-of select="./@ano:ctrlId"/>)<br/>
+ <span class="gras">Règle fonctionnelle : </span><xsl:value-of
+ select="./ano:ctrlRegleFonct/text()" disable-output-escaping="yes"/><br/>
+ <span class="gras">Message : </span><xsl:value-of select="./ano:message/text()"
+ disable-output-escaping="yes"/>
+ <br/><xsl:element name="a">
+ <xsl:attribute name="name">AnoId_<xsl:value-of select="$ano/@ano:anoId"
+ /></xsl:attribute>
+ <xsl:attribute name="href"
+ >xemelios:/query?docId=DocEtatsFrais&etatId=EtatFrais&elementId=invoice&collectivite=<xsl:value-of
+ select="$collectivite"/>&budget=<xsl:value-of select="$budget"
+ />&path=[@ano:unique-id='<xsl:value-of select="$invoiceId"
+ />']&xsl:param=(anoId,<xsl:value-of select="$ano/@ano:anoId"/>)&xsl:param=(presentation,<xsl:choose>
+ <xsl:when test="$presentation = 'src'">normal</xsl:when>
+ <xsl:otherwise>src</xsl:otherwise>
+ </xsl:choose>)</xsl:attribute> Basculer l'affichage de
+ 'normal' à 'XML' </xsl:element>
+ </xsl:element>
+
+ </xsl:template>
+
+ <xsl:template name="invoiceLine">
+ <xsl:param name="line"/>
+ <xsl:element name="tr">
+ <xsl:if test="$line/cbc:ID/text() = $line.ID">
+ <xsl:attribute name="class" select="'highlighted'"/>
+ </xsl:if>
+ <td class="bordered top">
+ <span class="gras">
+ <xsl:call-template name="libTypeFrais">
+ <xsl:with-param name="cod"
+ select="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID"/>
+ </xsl:call-template>
+ </span>
+ <xsl:if test="count($line/cac:Item/cbc:Name) = 1">
+ <br/>
+ <xsl:value-of select="$line/cac:Item/cbc:Name"/>
+ </xsl:if>
+ <xsl:for-each select="$line/cbc:Note">
+ <br/>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ <xsl:if test="count($line/cac:Item/cbc:Description) > 0">
+ <br/>
+ <xsl:value-of select="$line/cac:Item/cbc:Description"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AUTRE'">
+ <!--
+ AUTRE
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature du frais
+ InvoiceQuantity pour préciser la quantité, le cas échéant
+ PriceAmount pour préciser le prix unitaire, le cas échéant
+ LineExtensionAmount pour préciser le prix total du frais
+ Note pour préciser différentes informations, réglementaires ou non.
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ <!-- Note -->
+ <xsl:if test="$line/cac:Item/cbc:Note">
+ <ul>
+ <li class="nosign">Note : <xsl:value-of
+ select="$line/cac:Item/cbc:Note"/></li>
+ </ul>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'HOTEL'">
+ <!--
+ HOTEL
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature des nuitées
+ InvoiceQuantity pour préciser le nombre de nuitées
+ PriceAmount pour préciser le prix de la nuitée, réel ou réglementaire.
+ LineExtensionAmount pour préciser le prix total des nuitées
+ Note pour préciser différentes informations, réglementaires ou non.
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ <!-- Note -->
+ <xsl:if test="$line/cac:Item/cbc:Note">
+ <ul>
+ <li class="nosign">Note : <xsl:value-of
+ select="$line/cac:Item/cbc:Note"/></li>
+ </ul>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'PARKING'">
+ <!--
+ PARKING
+ On précisera une ligne par parking (par ticket de parking).
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature, l'emplacement du parking
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <!-- Aucun attribut particulier -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'VOITURE'">
+ <!--
+ VOITURE
+ Sert a déclarer un frais de nature kilomètres parcourus avec une voiture personnelle.
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Propriétés DATE_DEPART, DATE_ARRIVEE. Ces dates devront être précisées au format xs:date ou xs:dateTime des schémas XML
+ Propriété PUISSANCE, qui contiendra la puissance fiscale du véhicule, telle qu'indiquée sur la carte grise
+ Propriété IMMATRICULATION qui contiendra l'immatriculation du véhicule, telle qu'indiquée sur la carte grise
+ Propriété PRIX_VEHICULE, dans le cas d'un frais à l'étranger, qui contiendra le prix moyen hors taxes d'un véhicule de 5 à 7 CV de trois ans, retenu par l'autorité territoriale (information nécessaire au ministère des affaires étrangères), dans la devise de l'état de frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ <ul>
+ <!-- IMMATRICULATION, PUISSANCE, KM_DEBUT_ANNEE*, NB_KM_AUTORISES* -->
+ <li class="nosign">Véhicule : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='IMMATRICULATION']/cbc:Value"
+ /> - <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PUISSANCE']/cbc:Value"
+ /> CV. <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='KM_DEBUT_ANNEE']/cbc:Value"
+ >  <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='KM_DEBUT_ANNEE']/cbc:Value"
+ /> km depuis le début de l'année </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='NB_KM_AUTORISES']/cbc:Value"
+ >  / <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='NB_KM_AUTORISES']/cbc:Value"
+ /> km autorisés. </xsl:if>
+ </li>
+ <!-- PRIX_VEHICULE* -->
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PRIX_VEHICULE']/cbc:Value">
+ <li class="nosign">Prix véhicule moyen HT : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PRIX_VEHICULE']/cbc:Value"
+ /></li>
+ </xsl:if>
+ </ul>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = '2_ROUES'">
+ <!--
+ 2_ROUES
+ Sert à déclarer un frais de nature kilomètres parcourus avec un véhicule 2 roues personnel.
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Propriétés DATE_DEPART, DATE_ARRIVEE. Ces dates devront être précisées au format xs:date ou xs:dateTime des schémas XML
+ Propriété IMMATRICULATION qui contiendra l'immatriculation du véhicule, telle qu'indiquée sur la carte grise
+ Propriété CYLINDREE, qui contiendra la cylindrée du véhicule, telle qu'indiquée sur la carte grise
+ Propriété PRIX_VEHICULE, dans le cas d'un frais à l'étranger, qui contiendra le prix moyen hors taxes d'un véhicule équivalent de trois ans, retenu par l'autorité territoriale (information nécessaire au ministère des affaires étrangères), dans la devise de l'état de frais
+ Propriété PRIX_CARBURANT, dans le cas d'un frais à l'étranger, qui contiendra le prix moyen d'un litre de carburant retenu par l'autorité territoriale, dans la devise de l'état de frais
+ Propriété NB_KM_AUTORISES, qui contiendra la nombre de kilomètres autorisés, le cas échéant
+ Propriété KM_DEBUT_ANNEE qui contiendra le nombre de km parcourus depuis le début de l'année par l'agent avec un véhicule personnel, en nombre entier, exclus les kilomètres faisant l'objet du frais
+ InvoiceQuantity pour préciser le nombre de kilomètres parcourus
+ PriceAmount pour préciser le prix unitaire retenu ou réglementaire
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ <ul>
+ <!-- IMMATRICULATION, CYLINDREE, KM_DEBUT_ANNEE*, NB_KM_AUTORISES* -->
+ <li class="nosign">Véhicule : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='IMMATRICULATION']/cbc:Value"
+ /> - Cylindrée : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CYLINDREE']/cbc:Value"
+ />. <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='KM_DEBUT_ANNEE']/cbc:Value"
+ >  <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='KM_DEBUT_ANNEE']/cbc:Value"
+ /> km depuis le début de l'année </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='NB_KM_AUTORISES']/cbc:Value"
+ >  / <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='NB_KM_AUTORISES']/cbc:Value"
+ /> km autorisés. </xsl:if>
+ </li>
+ <!-- PRIX_VEHICULE* -->
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PRIX_VEHICULE']/cbc:Value">
+ <li class="nosign"> Prix véhicule moyen HT : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PRIX_VEHICULE']/cbc:Value"
+ />
+ </li>
+ </xsl:if>
+ <!-- PRIX_CARBURANT* -->
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PRIX_CARBURANT']/cbc:Value">
+ <li class="nosign"> Prix carburant moyen (1 litre): <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='PRIX_CARBURANT']/cbc:Value"
+ />
+ </li>
+ </xsl:if>
+ </ul>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'TAXI'">
+ <!--
+ TAXI
+ Sert à déclarer un frais de nature Taxi.
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'PEAGE'">
+ <!--
+ PEAGE
+ On précisera une ligne par péage, ou on regroupera les péages d'un même trajet, en fonction de la facturation émise par la société d'exploitation.
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'TRAIN'">
+ <!--
+ TRAIN
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature du trajet
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Propriétés DATE_DEPART, DATE_ARRIVEE. Ces dates devront être précisées au format xs:date ou xs:dateTime des schémas XML
+ Propriété CATEGORIE pour préciser la classe du transport utilisé, le cas échéant (utilisé par le ministère de la défense)
+ Item/Note à préciser si le tarif utilise un avantage personnel (par exemple carte famille nombreuse)
+ Item/Note à préciser si le tarif utilise un abonnement, personnel ou non (par exemple carte fréquence)
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ <ul>
+ <!-- Classe du transport utilisé - utilisé par le MINDEF -->
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CATEGORIE']/cbc:Value">
+ <li class="nosign">Classe : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CATEGORIE']/cbc:Value"
+ />
+ </li>
+ </xsl:if>
+ <!-- abonnements ou carte de reductions -->
+ <xsl:if test="$line/cac:Item/cbc:Note">
+ <li class="nosign">Tarif : <xsl:value-of
+ select="$line/cac:Item/cbc:Note"/>
+ </li>
+ </xsl:if>
+ </ul>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AVION'">
+ <!--
+ AVION
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature du trajet
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Propriétés DATE_DEPART, DATE_ARRIVEE. Ces dates devront être précisées au format xs:date ou xs:dateTime des schémas XML
+ Propriété CATEGORIE pour préciser la classe du transport utilisé, le cas échéant (utilisé par le ministère de la défense)
+ Item/Note à préciser si le tarif utilise un avantage personnel (par exemple carte famille nombreuse)
+ Item/Note à préciser si le tarif utilise un abonnement, personnel ou non (par exemple carte fréquence)
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'CAR'">
+ <!--
+ CAR
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature du trajet
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Item/Note à préciser si le tarif utilise un avantage personnel (par exemple carte famille nombreuse)
+ Item/Note à préciser si le tarif utilise un abonnement, personnel ou non (par exemple carte fréquence)
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'BATEAU'">
+ <!--
+ BATEAU
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature du trajet
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Item/Note à préciser si le tarif utilise un avantage personnel (par exemple carte famille nombreuse)
+ Item/Note à préciser si le tarif utilise un abonnement, personnel ou non (par exemple carte fréquence)
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when
+ test="$line/cac:Item/cac:BuyersItemIdentification/cbc:ID = 'AUTRE_TRANSPORT_COMMUN'">
+ <!--
+ AUTRE_TRANSPORT_COMMUN
+ Ces articles seront principalement utilisés pour les transports en commun urbains, et nécessiteront probablement une précision sur le trajet, qui sera portée par Item/Description
+ Propriété IMPUTATION
+ Item/Description pour préciser la nature du trajet
+ Propriétés LIEU_DEPART_COMMUNE, LIEU_DEPART_CP
+ Propriétés LIEU_ARRIVEE_COMMUNE, LIEU_ARRIVEE_CP
+ Item/Note à préciser si le tarif utilise un avantage personnel (par exemple carte famille nombreuse)
+ Item/Note à préciser si le tarif utilise un abonnement, personnel ou non (par exemple carte fréquence)
+ LineExtensionAmount pour préciser le prix du frais
+ -->
+ <ul>
+ <li class="nosign">De <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_COMMUNE']/cbc:Value"
+ /> (<xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_CP']/cbc:Value"
+ />)</li>
+ <li class="nosign">A <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_ARRIVEE_COMMUNE']/cbc:Value"
+ /> (<xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_ARRIVEE_CP']/cbc:Value"
+ />)</li>
+ </ul>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="blocDepartArrivee">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:call-template name="donneesChorus">
+ <xsl:with-param name="line" select="$line"/>
+ </xsl:call-template>
+
+ </td>
+ <td class="bordered top center"> <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_COMPTE_PCE']/cbc:Value"
+ /></td>
+ <td class="bordered top right"> <xsl:value-of
+ select="$line/cbc:InvoicedQuantity"/></td>
+ <td class="bordered top right"> <xsl:if
+ test="count($line/cac:Price/cbc:PriceAmount) = 1">
+ <xsl:call-template name="number">
+ <xsl:with-param name="num" select="$line/cac:Price/cbc:PriceAmount"/>
+ </xsl:call-template>
+ </xsl:if></td>
+ <td class="bordered top right"> <xsl:call-template name="number">
+ <xsl:with-param name="num" select="$line/cbc:LineExtensionAmount"/>
+ </xsl:call-template></td>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="donneesChorus">
+ <xsl:param name="line"/>
+ <ul>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_CENTRE_COUTS']/cbc:Value">
+ <li class="nosign little">Centre de coûts : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_CENTRE_COUTS']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_CENTRE_FINANCIER']/cbc:Value">
+ <li class="nosign little">Centre financier : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_CENTRE_FINANCIER']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_DOMAINE_FONCTIONNEL']/cbc:Value">
+ <li class="nosign little">Domaine fonctionnel : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_DOMAINE_FONCTIONNEL']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_ACTIVITE']/cbc:Value">
+ <li class="nosign little">Activité : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_ACTIVITE']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_LOCALISATION_INTERMINISTERIELLE']/cbc:Value">
+ <li class="nosign little">Localisation interministérielle : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_LOCALISATION_INTERMINISTERIELLE']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_PROJET_ANALYTIQUE_MINISTERIEL']/cbc:Value">
+ <li class="nosign little">Projet analytique ministériel : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_PROJET_ANALYTIQUE_MINISTERIEL']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_LOCALISATION_MINISTERIELLE']/cbc:Value">
+ <li class="nosign little">Localisation ministérielle : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_LOCALISATION_MINISTERIELLE']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_NATURE_MINISTERIELLE']/cbc:Value">
+ <li class="nosign little">Nature détaillée ministérielle : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_NATURE_MINISTERIELLE']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_AXE_MINISTERIEL_1']/cbc:Value">
+ <li class="nosign little">Axe ministériel 1 : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_AXE_MINISTERIEL_1']/cbc:Value"
+ /></li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_AXE_MINISTERIEL_2']/cbc:Value">
+ <li class="nosign little">Axe ministériel 2 : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='CH_AXE_MINISTERIEL_2']/cbc:Value"
+ /></li>
+ </xsl:if>
+ </ul>
+ </xsl:template>
+
+ <xsl:template name="libPays">
+ <xsl:param name="cod"/>
+ <xsl:value-of
+ select="$pays/ISO_3166-1_List_fr/ISO_3166-1_Entry[ISO_3166-1_Alpha-2_code=$cod]/ISO_3166-1_Country_name/text()"
+ />
+ </xsl:template>
+
+ <xsl:template name="libSitFam">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$SituationsFamille/SituationsFamiliales/situation[@code=$cod]/text()"
+ />
+ </xsl:template>
+
+ <xsl:template name="libTypeEtatFrais">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$TypesEtatFrais/TypesEtatFrais/EtatFrais[@code=$cod]/text()"/>
+ </xsl:template>
+
+ <xsl:template name="libTypeFrais">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$TypesFrais/TypesFrais/Frais[@code=$cod]/text()"/>
+ </xsl:template>
+
+ <xsl:template name="libNatureOM">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$NaturesOM/NaturesOM/Nature[@code=$cod]/text()"/>
+ </xsl:template>
+
+ <xsl:template name="libTypePersonne">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$TypesPersonnes/TypesPersonnes/Type[@code=$cod]/text()"/>
+ </xsl:template>
+
+ <xsl:template name="libTypeFaitGenerateur">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$TypesFaitsGenerateurs/TypesFaitsGenerateurs/Type[@code=$cod]/text()"
+ />
+ </xsl:template>
+
+ <xsl:template name="libDureeOM">
+ <xsl:param name="cod"/>
+ <xsl:value-of select="$DureesOM/DureesOM/Duree[@code=$cod]/text()"/>
+ </xsl:template>
+
+ <xsl:template name="format-date">
+ <xsl:param name="datebrute"/>
+ <xsl:param name="formataffichage" select="'date'"/>
+ <!-- valeurs attendues : date / heure / dateheure -->
+ <xsl:if test="($formataffichage = 'date') or ($formataffichage = 'dateheure')">
+ <xsl:value-of select="substring($datebrute, 9, 2)"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="substring($datebrute, 6, 2)"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="substring($datebrute, 1, 4)"/>
+ </xsl:if>
+ <xsl:if test="($formataffichage = 'heure') or ($formataffichage = 'dateheure')">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="substring($datebrute, 12, 2)"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="substring($datebrute, 15, 2)"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="number">
+ <xsl:param name="num"/>
+ <xsl:choose>
+ <xsl:when test="substring($num,1,1) = '+'">
+ <xsl:value-of
+ select="format-number(number(substring($num,2)),'# ### ##0,00;-# ### ###,00','decformat')"
+ />
+ </xsl:when>
+ <xsl:when test="string-length($num) = 0"/>
+ <xsl:when test="number($num) = 0"/>
+ <xsl:when test="string(number($num)) = 'NaN'"/>
+ <xsl:otherwise>
+ <xsl:value-of select="format-number($num,'# ###,00;-# ###,00','decformat')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="displaySrc">
+ <xsl:param name="el"/>
+ <xsl:choose>
+ <xsl:when
+ test="namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#anomally' and local-name(.)='Anomalie'"/>
+ <xsl:when
+ test="$el[* or processing-instruction() or comment() or string-length(.) > 0]">
+ <div class="expander-open">
+ <xsl:variable name="currentNode" select="$el/@ano:node-id"/>
+ <xsl:if test="count($tags-ano/node[@id = $currentNode]) > 0">
+ <xsl:attribute name="style">background-color: #FFFF66;</xsl:attribute>
+ </xsl:if>
+ <xsl:text><</xsl:text>
+ <span class="start-tag">
+ <xsl:value-of select="name(.)"/>
+ </span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>></xsl:text>
+ <xsl:choose>
+ <xsl:when test="count(./*) > 0">
+ <div class="expander-content">
+ <xsl:for-each select="./*">
+ <xsl:call-template name="displaySrc">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ <!--xsl:if test="not(position() = last())"><br/></xsl:if-->
+ </xsl:for-each>
+ <span class="text">
+ <xsl:value-of select="./text()"/>
+ </span>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="text">
+ <xsl:value-of select="./text()"/>
+ </span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text></</xsl:text>
+ <span class="end-tag">
+ <xsl:value-of select="name(.)"/>
+ </span>
+ <xsl:text>></xsl:text>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text><</xsl:text>
+ <span class="start-tag">
+ <xsl:variable name="currentNode" select="$el/@ano:node-id"/>
+ <xsl:if test="count($tags-ano/node[@id = $currentNode]) > 0">
+ <xsl:attribute name="style">background-color: #FFFF66;</xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="name(.)"/>
+ </span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>/></xsl:text>
+ <br/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="@*">
+ <xsl:choose>
+ <xsl:when
+ test="namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#anomally' and (local-name(.) = 'node-id' or local-name(.) = 'unique-id')"/>
+ <xsl:when
+ test="namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#added'"/>
+ <xsl:otherwise> <span class="attribute-name">
+ <xsl:value-of select="name(.)"/>
+ </span><xsl:text>=</xsl:text><span class="attribute-value">"<xsl:value-of select="."
+ />"</span></xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="blocDepartArrivee">
+ <xsl:param name="line"/>
+ <ul>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_COMMUNE']/cbc:Value">
+ <li class="nosign"> De : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_COMMUNE']/cbc:Value/text()"/>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_CP']/cbc:Value"
+ > (<xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_CP']/cbc:Value/text()"
+ />) </xsl:if>
+ </li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_ARRIVEE_COMMUNE']/cbc:Value">
+ <li class="nosign"> A : <xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_ARRIVEE_COMMUNE']/cbc:Value/text()"/>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_DEPART_CP']/cbc:Value"
+ > (<xsl:value-of
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='LIEU_ARRIVEE_CP']/cbc:Value/text()"
+ />) </xsl:if>
+ </li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='DATE_DEPART']/cbc:Value">
+ <li class="nosign"> Du : <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='DATE_DEPART']/cbc:Value/text()"/>
+ <xsl:with-param name="formataffichage" select="'dateheure'"/>
+ </xsl:call-template>
+ </li>
+ </xsl:if>
+ <xsl:if
+ test="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='DATE_ARRIVEE']/cbc:Value">
+ <li class="nosign"> Au : <xsl:call-template name="format-date">
+ <xsl:with-param name="datebrute"
+ select="$line/cac:Item/cac:AdditionalItemProperty[cbc:Name='DATE_ARRIVEE']/cbc:Value/text()"/>
+ <xsl:with-param name="formataffichage" select="'dateheure'"/>
+ </xsl:call-template>
+ </li>
+ </xsl:if>
+ </ul>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<controls>
+ <document id="DocEtatsFrais">
+ <collectivite-path sort="2">
+ <code-path>/ef:EtatsFrais/ef:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID</code-path>
+ <libelle-path>/ef:EtatsFrais/ef:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID</libelle-path>
+ </collectivite-path>
+ <param id="secteur" name="Secteur" datatype="string" use="required" value="Etat">
+ <select id="nomencl">
+ <option value="Public Local">Public Local</option>
+ <option value="Etat">Etat</option>
+ </select>
+ </param>
+ <param id="Type d'état" name="Type d'état" datatype="string" use="required" value="K2, K3">
+ <input id="Type d'état" datatype="String"/></param>
+ <param id="Moyens de paiement" name="Moyens de paiement" datatype="string" use="required" value="V, O, C">
+ <input id="Moyens de paiement" datatype="String"/></param>
+ <param id="Types de frais" name="Types de frais" datatype="string" use="required" value="AUTRE, HOTEL, PARKING, VOITURE, 2_ROUES, TAXI, PEAGE, TRAIN, AVION, CAR, BATEAU, AUTRE_TRANSPORT_COMMUN, REPAS, NUITEE, LOCATION, ABONNEMENT, AVANCE_FRAIS">
+ <input id="Types de frais" datatype="String"/></param>
+ <controlTech id="TECH01" libelle="Contrôle de la structure xml du fichier." severity="BLOQUANT"/>
+ <controlTech id="TECH02" libelle="Contrôle de l'encoding du fichier." severity="BLOQUANT">
+ <paramTech id="encoding" name="encoding" value="ISO-8859-15"/></controlTech>
+ <controlTech id="TECH03" libelle="Contrôle de la conformance au schéma." severity="BLOQUANT">
+ <paramTech id="schemaLocation" name="schemaLocation" value="etat-frais/schema/EtatsFrais.xsd"/></controlTech>
+ <control id="SOM01" libelle="Contrôle de cohérence des montants des ordres de mission" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.som.SOM01">
+ <regle-fonctionnelle>Le montant total des frais de chaque ordre de mission doit être égal à la somme des montants des lignes de frais.</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# MtN= #CAC_LEGAL_MONETARY_TOTAL# - Somme des lignes= #SOMME_CBC_LINEEXTENSIONAMOUNT# </message-echec>
+ </control>
+ <control id="PRES01" libelle="Contrôle de présence des valideurs d'ordres de mission" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.pres.PRES01">
+ <regle-fonctionnelle>Chaque ordre de mission doit avoir un valideur</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Il n'y a pas de valideur</message-echec>
+ </control>
+ <control id="PRES02" libelle="Contrôle de présence des initiateurs d'ordres de mission" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.pres.PRES02">
+ <regle-fonctionnelle>Chaque ordre de mission doit avoir un initiateur</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Il n'y a pas d'initiateur</message-echec>
+ </control>
+ <control id="CHORUS01" libelle="Contrôle de présence des centres de couts" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.CHORUS01">
+ <regle-fonctionnelle>Chaque ligne de frais doit avoir un centre de couts</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# - Ligne de frais #CBC_IDINVOICELINE#: Il n'y a pas de centre de couts</message-echec>
+ </control>
+ <control id="CHORUS02" libelle="Contrôle de présence des centres financiers" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.CHORUS02">
+ <regle-fonctionnelle>Chaque ligne de frais doit avoir un centre de couts</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# - Ligne de frais #CBC_IDINVOICELINE#: Il n'y a pas de centre de financier</message-echec>
+ </control>
+ <control id="CHORUS03" libelle="Contrôle de présence des domaines fonctionnels" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.CHORUS03">
+ <regle-fonctionnelle>Chaque ligne de frais doit avoir un centre de couts</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# - Ligne de frais #CBC_IDINVOICELINE#: Il n'y a pas de domaine fonctionnel</message-echec>
+ </control>
+ <control id="CHORUS04" libelle="Contrôle de présence des activités" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.CHORUS04">
+ <regle-fonctionnelle>Chaque ligne de frais doit avoir une activité</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# - Ligne de frais #CBC_IDINVOICELINE#: Il n'y a pas d'activité</message-echec>
+ </control>
+ <control id="CHORUS05" libelle="Contrôle de présence des localisations interministerielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.CHORUS05">
+ <regle-fonctionnelle>Chaque ligne de frais doit avoir un centre de couts</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# - Ligne de frais #CBC_IDINVOICELINE#: Il n'y a pas de localisation interministérielle</message-echec>
+ </control>
+ <control id="VALUES01" libelle="Contrôle des modalités de réglement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.values.VALUES01">
+ <regle-fonctionnelle>Les seuls moyens de paiement reconnus sont V: virement bancaire O: paiement en devise étrangère et C: chèque</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# Valeur incorrecte #CBC_VALUE# pour l'élément #CBC_ELEMENT#
+Les valeurs possibles sont #CBC_LISTVALUES#
+ </message-echec>
+ </control>
+ <control id="VALUES02" libelle="Contrôle des types de frais" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.values.VALUES02">
+ <regle-fonctionnelle>Les seuls types de frais reconnus sont ceux de la liste passée en paramètre</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Valeur incorrecte #CBC_VALUE# pour l'élément #CBC_ELEMENT# ;
+Les valeurs possibles sont #CBC_LISTVALUES#
+ </message-echec>
+ </control>
+ <control id="VALUES03" libelle="Contrôle du type d'état de frais" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.values.VALUES03">
+ <regle-fonctionnelle>Les seuls types d'état reconnus sont Etat de frais, demande d'avance ou Régularisation d'avance</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Valeur incorrecte #CBC_VALUE# pour l'élément #CBC_ELEMENT# ;
+Les valeurs possibles sont #CBC_LISTVALUES#
+ </message-echec>
+ </control>
+ </document>
+</controls>
--- /dev/null
+<?xml version="1.1" encoding="ISO-8859-1"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY nbsp " ">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ef="urn:DGFIP:EtatsFrais"
+ xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added"
+ xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
+ xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
+ xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
+ xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
+ xmlns:dgfip="urn:DGFIP:EtatFrais:OrdreMission"
+ xmlns:ano="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally"
+ exclude-result-prefixes="xsl" version="2.0">
+
+ <xsl:output standalone="yes" method="xml" indent="yes"/>
+
+ <!--xsl:output encoding="ISO-8859-1"/-->
+ <xsl:output version="1.0"/>
+
+ <xsl:variable name="natures" select="document('./resources/naturesOM.xml')"/>
+ <xsl:variable name="pays" select="document('./resources/iso_3166-1_list_fr.xml')"/>
+ <xsl:variable name="typeFrais" select="document('./resources/typesFrais.xml')"/>
+ <xsl:variable name="TypesPersonnes" select="document('./resources/typesPersonnes.xml')"/>
+ <xsl:variable name="TypesFaitsGenerateurs" select="document('./resources/typesFaitGenerateurs.xml')"/>
+ <xsl:variable name="DureesOM" select="document('./resources/dureesOM.xml')"/>
+
+ <xsl:param name="language" select="'fr'"/>
+
+ <xsl:template match="/*[position()=1]">
+ <xsl:call-template name="writeElement">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!--xsl:template match="dgfip:NatureOM">
+ <xsl:element name="NatureOM" namespace="urn:DGFIP:EtatFrais:OrdreMission"><xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added"><xsl:value-of select="$natures//Nature[@code=./text()]/text()"/></xsl:attribute><xsl:value-of select="./text()"/></xsl:element>
+ </xsl:template-->
+
+ <!--xsl:template match="dgfip:LieuDeplacement|dgfip:LieuDepart|dgfip:LieuArrivee">
+ <xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
+ <xsl:for-each select="./@*">
+ <xsl:attribute name="{name(.)}" namespace="{namespace-uri(.)}"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:for-each>
+ <xsl:attribute name="libPays" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added"><xsl:value-of select="$pays//ISO_3166-1_Entry[ISO_3166-1_Alpha-2_code/text()=./@CodPays]/ISO_3166-1_Country_name/text()"/></xsl:attribute>
+ </xsl:element>
+ </xsl:template-->
+
+ <!--xsl:template match="cac:BuyersItemIdentification">
+ <xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
+ <xsl:attribute name="libelle" select="$typeFrais/TypesFrais/Frais[@code=cbc:ID/text()]/text()"/>
+ <xsl:copy-of select="cbc:ID"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="cac:AdditionalItemProperty">
+ <xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
+ <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added"><xsl:value-of select="generate-id()"/></xsl:attribute>
+ </xsl:element>
+ <xsl:copy-of select="cbc:Name"/>
+ <xsl:copy-of select="cbc:Value"/>
+ </xsl:template-->
+
+ <xsl:template name="writeElement">
+ <xsl:param name="el"/>
+ <xsl:element name="{name($el)}" namespace="{namespace-uri($el)}">
+ <xsl:for-each select="$el/@*">
+ <xsl:attribute name="{name(.)}" namespace="{namespace-uri(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="namespace-uri($el) = 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'">
+ <xsl:choose>
+ <xsl:when test="contains('|AdditionalItemProperty|InvoiceLine|',concat('|',local-name($el),'|'))"><xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="generate-id()"/></xsl:when>
+ <xsl:when test="contains('|PaymentMeans|',local-name($el))"><xsl:attribute name="RIB" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:choose>
+ <xsl:when test="($el/cbc:PaymentChannelCode/text() = 'IBAN') and (substring($el/cac:PayeeFinancialAccount/cbc:ID/text(), 1, 2) = 'FR')">
+ <xsl:value-of select="substring($el/cac:PayeeFinancialAccount/cbc:ID,5,5)"/>-<xsl:value-of select="substring($el/cac:PayeeFinancialAccount/cbc:ID,10,5)"/>-<xsl:value-of select="substring($el/cac:PayeeFinancialAccount/cbc:ID,15,11)"/>-<xsl:value-of select="substring($el/cac:PayeeFinancialAccount/cbc:ID,26,2)"/>
+ </xsl:when>
+ <xsl:when test="($el/cbc:PaymentChannelCode/text() = 'IBAN') and (substring($el/cac:PayeeFinancialAccount/cbc:ID/text(), 1, 2) != 'FR')">
+ <xsl:value-of select="$el/cac:PayeeFinancialAccount/cbc:ID"/>
+ </xsl:when>
+ <xsl:when test="$el/cbc:PaymentChannelCode/text() = 'BBAN'">
+ <xsl:value-of select="$el/cac:PayeeFinancialAccount/cac:Country/cbc:IdentificationCode"/>-<xsl:value-of select="$el/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID"/>-<xsl:value-of select="$el/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:Name"/>-<xsl:value-of select="$el/cac:PayeeFinancialAccount/cbc:ID"/>-<xsl:value-of select="$el/cac:PayeeFinancialAccount/cbc:PaymentNote"/>
+ </xsl:when>
+ <xsl:otherwise>Définition du compte bancaire non reconnue</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute></xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="namespace-uri($el) = 'urn:DGFIP:EtatsFrais'">
+ <xsl:choose>
+ <xsl:when test="contains('|Invoice|',concat('|',local-name($el),'|'))"><xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="generate-id()"/></xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="namespace-uri($el) = 'urn:DGFIP:EtatFrais:OrdreMission'">
+ <xsl:choose>
+ <xsl:when test="local-name($el) = 'NatureOM'"><xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="$natures//Nature[@code=$el/text()]/text()"/></xsl:when>
+ <xsl:when test="contains('|LieuDeplacement|LieuDepart|LieuArrivee|',concat('|',local-name($el),'|'))"><xsl:attribute name="libPays" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="$pays//ISO_3166-1_Entry[ISO_3166-1_Alpha-2_code/text()=$el/@CodPays]/ISO_3166-1_Country_name/text()"></xsl:attribute></xsl:when>
+ <xsl:when test="local-name($el) = 'DureeOM'"><xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="$DureesOM//Duree[@code=$el/text()]/text()"/></xsl:when>
+ <xsl:when test="local-name($el) = 'Type'"><xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="$TypesFaitsGenerateurs//Type[@code=$el/text()]/text()"/></xsl:when>
+ <xsl:when test="local-name($el) = 'TypePersonne'"><xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="$TypesPersonnes//Type[@code=$el/text()]/text()"/></xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:for-each select="$el/*">
+ <xsl:call-template name="writeElement">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:value-of select="$el/text()"/>
+ </xsl:element>
+ </xsl:template>
+
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<controls>
+ <document id="etat-frais-spl">
+ <collectivite-path sort="2">
+ <code-path>/EtatsFrais/@added:collectivite</code-path>
+ <libelle-path>/EtatsFrais/@added:collectivite</libelle-path>
+ </collectivite-path>
+ <param id="secteur" name="Secteur" datatype="string" use="required" value="Etat">
+ <select id="nomencl">
+ <option value="Public Local">Public Local</option>
+ <option value="Etat">Etat</option>
+ </select>
+ </param>
+ <param id="Moyens de paiement" name="Moyens de paiement" datatype="string" use="required" value="V, O, C">
+ <input id="Moyens de paiement" datatype="String"/></param>
+ <param id="Types de frais" name="Types de frais" datatype="string" use="required" value="AUTRE, HOTEL, PARKING, VOITURE, 2_ROUES, TAXI, PEAGE, TRAIN, AVION, CAR, BATEAU, AUTRE_TRANSPORT_COMMUN, REPAS, NUITEE, LOCATION, ABONNEMENT, AVANCE_FRAIS">
+ <input id="Types de frais" datatype="String"/></param>
+ <engine xmlns="">
+ <add-on name="unique.id.generator">
+ <param id="element.name" name="element.name" datatype="string" value="Invoice"/>
+ <param id="generated.attribute" name="generated.attribute" datatype="string" value="ano:unique-id"/>
+ <param id="processor" name="processor" datatype="string" value="fr.gouv.finances.cp.xemelios.controls.processors.IdGeneratorProcessor"/>
+ <param id="event" name="event" datatype="string" value="start.element"/>
+ <param id="generator" name="generator" datatype="string" value="fr.gouv.finances.cp.xemelios.controls.processors.impl.TstampIPUniqueId"/></add-on>
+ <add-on name="collectivite.generator">
+ <param id="element.name" name="element.name" datatype="string" value="EtatsFrais"/>
+ <param id="processor" name="processor" datatype="string" value="fr.gouv.finances.dgfip.xemelios.etatFrais.CollectiviteGenerator"/>
+ <param id="event" name="event" datatype="string" value="start.element"/></add-on>
+ </engine>
+ <controlTech id="TECH01" libelle="Contrôle de la structure xml du fichier." severity="BLOQUANT"/>
+ <controlTech id="TECH02" libelle="Contrôle de l'encoding du fichier." severity="BLOQUANT">
+ <paramTech id="encoding1" name="encoding" value="ISO-8859-15"/>
+ <paramTech id="failOnError" name="failOnError" value="false"/></controlTech>
+ <controlTech id="TECH03" libelle="Contrôle de la conformance au schéma." severity="BLOQUANT">
+ <paramTech id="schemaLocation" name="schemaLocation" value="etat-frais/schema/EtatsFrais.xsd"/>
+ <paramTech id="failOnError" name="failOnError" value="false"/></controlTech>
+ <control id="SOM01" libelle="Contrôle de cohérence des montants des ordres de mission" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.som.SOM01">
+ <regle-fonctionnelle>Le montant total des frais de chaque ordre de mission doit être égal à la somme des montants des lignes de frais.</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# MtN= #CAC_LEGAL_MONETARY_TOTAL# - Somme des lignes= #SOMME_CBC_LINEEXTENSIONAMOUNT# </message-echec>
+ </control>
+ <control id="PRES01" libelle="Contrôle de présence des valideurs d'ordres de mission" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.pres.PRES01">
+ <regle-fonctionnelle>Chaque ordre de mission doit avoir un valideur</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Il n'y a pas d'identifiant de valideur</message-echec>
+ </control>
+ <control id="PRES02" libelle="Contrôle de présence des initiateurs d'ordres de mission" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.pres.PRES02">
+ <regle-fonctionnelle>Chaque ordre de mission doit avoir un initiateur</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Il n'y a pas d'initiateur</message-echec>
+ </control>
+ <control id="VALUES02" libelle="Contrôle des types de frais" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.values.VALUES02">
+ <regle-fonctionnelle>Les seuls types de frais reconnus sont ceux de la liste passée en paramètre</regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# : Valeur incorrecte #CBC_VALUE# pour l'élément #CBC_ELEMENT# ; Les valeurs possibles sont #CBC_LISTVALUES# </message-echec>
+ </control>
+ <control id="CTL-M029" libelle="Identifiant de l'EF dans l'application émettrice" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M029">
+ <regle-fonctionnelle> Vérifier que le texte de l'élément EtatsFrais/Invoice/ID a une longueur de 12 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M030" libelle="Type de demande de paiement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M030">
+ <regle-fonctionnelle>L'élément EtatsFrais/Invoice/ID doit être unique dans un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M031" libelle="Type de demande de paiement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M031">
+ <regle-fonctionnelle>L'élément EtatsFrais/Invoice/InvoiceTypeCode est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M032" libelle="Type de demande de paiement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M032">
+ <regle-fonctionnelle><![CDATA[Le texte de l'élément EtatsFrais/Invoice/InvoiceTypeCode ne peut prendre que l'une des valeurs suivantes :<br/>
+ <ul><li> K1 : DP du solde d'un état de frais </li> <li> K2 : DP de l'avance sur un état de frais </li>
+ <li> K3 : DP de récupération d'avance sur état de frais </li></ul>]]></regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice#_InvoiceTypeCode: #TYPECODE# : Valeur du texte de l'element EtatsFrais/Invoice/InvoiceTypeCode non autorisee. </message-echec>
+ </control>
+ <control id="CTL-M033" libelle="IInitiateur de la demande de paiement dans Chorus" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M033">
+ <regle-fonctionnelle> Vérifier que le texte l'élément EtatsFrais/Invoice/UBLExtensions/UBLExtension/ExtensionContent/EtatFraisExtension/EtatFrais/Valideur/PartyIdentification/ID a une longueur de 12 caractères maximum.</regle-fonctionnelle>
+ <message-echec>ID_PartyIdentification = #ID_PartyIdentification# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M034" libelle="Informations décrivant le paiement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M034">
+ <regle-fonctionnelle> Vérifier la présence obligatoire et unique pour un EF (cardinalité 1:1) de l'élément EtatsFrais/Invoice/PaymentMeans.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M035" libelle="Mode de paiement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.values.CTL_M035">
+ <regle-fonctionnelle><![CDATA[Le texte de l'élément EtatsFrais/Invoice/PaymentMeans/PaymentMeansCode ne peut prendre que l'une des valeurs suivantes : <br/> <ul><li> V : virements bancaires</li>
+ <li> O : paiements en devise étrangère </li>
+ <li> C : chèques.</li> </ul>]]></regle-fonctionnelle>
+ <message-echec>Ordre de mission n° #CBC_ID# - Date= #CBC_ISSUEDATE# - Type Etat de Frais= #CBC_INVOICETYPECODE# Valeur incorrecte #CBC_VALUE# pour l'élément #CBC_ELEMENT# : Valeur du texte de l element EtatsFrais/Invoice/InvoiceTypeCode non autorisee. </message-echec>
+ </control>
+ <control id="CTL-M036" libelle="Domaine d'activité" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M036">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/UBLExtensions/UBLExtension/ExtensionContent/EtatFraisExtension/EtatFrais/EtatFraisChorus est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M037" libelle="Centre de coûts" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M037">
+ <regle-fonctionnelle>Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_CENTRE_COUTS. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M038" libelle="Centre de coûts" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M038">
+ <regle-fonctionnelle>Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_CENTRE_COUTS a une longueur de 10 caractères maximum. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M039" libelle="Centre financier (Programme-BOP-UO)" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M039">
+ <regle-fonctionnelle>Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_CENTRE_FINANCIER.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M040" libelle="Centre financier(Programme-BOP-UO)" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M040">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_CENTRE_FINANCIER a une longueur de 16 caractères maximum. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M041" libelle="Domaine fonctionnel" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M041">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_DOMAINE_FONCTIONNEL.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M042" libelle="Domaine fonctionnel" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M042">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_DOMAINE_FONCTIONNEL a une longueur de 16 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M043" libelle="Activité" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M043">
+ <regle-fonctionnelle>Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_ACTIVITE. Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_ACTIVITE. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M044" libelle="Activité" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M044">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_ACTIVITE a une longueur de 24 caractères maximum. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M045" libelle="Projet analytique ministériel" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M045">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un seul (unique mais facultatif) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_PROJET_ANALYTIQUE_MINISTERIEL.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M046" libelle="Projet analytique ministériel" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M046">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_PROJET_ANALYTIQUE_MINISTERIEL a une longueur de 22 caractères maximum. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M047" libelle="Localisation ministérielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M047">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un seul (unique mais facultatif) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_LOCALISATION_MINISTERIELLE. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M048" libelle="Localisation ministérielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M048">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_LOCALISATION_MINISTERIELLE a une longueur de 22 caractères maximum. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M049" libelle="Localisation interministérielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M049">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_LOCALISATION_INTERMINISTERIELLE. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M050" libelle="Localisation interministérielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M050">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_LOCALISATION_INTERMINISTERIELLE a une longueur de 8 caractères maximum. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M051" libelle="Nature détaillée ministérielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M051">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un seul (unique mais facultatif) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_NATURE_MINISTERIELLE. </regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M052" libelle="Nature détaillée ministérielle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M052">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_NATURE_MINISTERIELLE a une longueur de 11 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M053" libelle="Axe ministériel" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M053">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un seul (unique mais facultatif) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_AXE_MINISTERIEL_1.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M054" libelle="Axe ministériel 1" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M054">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_AXE_MINISTERIEL_1 a une longueur de 22 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M055" libelle="Axe ministériel" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M055">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un seul (unique mais facultatif) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_AXE_MINISTERIEL_2.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M056" libelle="Axe ministériel 2" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M056">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_AXE_MINISTERIEL_2 a une longueur de 22 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M057" libelle="Compte PCE" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M057">
+ <regle-fonctionnelle> Chaque ligne d'EF (éléments EtatsFrais/Invoice/InvoiceLine) doit avoir un (obligatoire) et un seul (unique) élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name avec un texte est égal à CH_COMPTE_PCE.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M058" libelle="Compte PCE " severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M058">
+ <regle-fonctionnelle> Le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Value associée à l'élément EtatsFrais/Invoice/InvoiceLine/Item/AdditionalItemProperty/Name dont le texte est égal à CH_COMPTE_PCE a une longueur de 10 caractères exactement.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# _ InvoiceLine n° #IDLINE# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M059" libelle="Informations complémentaires liées à l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M059">
+ <regle-fonctionnelle>L'élément EtatsFrais/Invoice/UBLExtensions/UBLExtension/ExtensionContent/EtatFraisExtension/OrdreMission/Agent/AgentChorus est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M060" libelle="Contrôle de la présence de l'identifiant Chorus du tiers" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M060">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/UBLExtensions/UBLExtension/ExtensionContent/EtatFraisExtension/OrdreMission/Agent/AgentChorus/IdChorusTiers est obligatoire pour un EF si le texte de l'élément EtatsFrais/Invoice/UBLExtensions/UBLExtension/ExtensionContent/EtatFraisExtension/OrdreMission/Agent/AgentChorus/TypeTiers est égal à 'ZCPD'.</regle-fonctionnelle>
+ <message-echec>L'invoice #INVOICE_ID# ne comporte pas d'identifiant Chorus du tiers.</message-echec>
+ </control>
+ <control id="CTL-M061" libelle="Contrôle de la présence de l'identifiant Chorus du tiers et de l'identifiant fonctionnel du tiers" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M061">
+ <regle-fonctionnelle> Si le texte de l'élément /dgfip:AgentChorus/dgfip:TypeTiers est différent de 'ZCPD' alors l'un des deux éléments /dgfip:AgentChorus/dgfip:IdChorusTiers et /dgfip:AgentChorus/dgfip:IdFoncTiers doit être présent pour un EF.</regle-fonctionnelle>
+ <message-echec>L'invoice #INVOICE_ID# ne comporte ni identifiant Chorus du tiers ni identifiant fonctionnel du tiers.</message-echec>
+ </control>
+ <control id="CTL-M062" libelle="Contrôle de l'identifiant fonctionnel du tiers" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M062">
+ <regle-fonctionnelle><![CDATA[Le texte de l'élément /dgfip:AgentChorus/dgfip:IdFoncTiers doit vérifier les caractéristiques suivantes selon le texte de l'élément /dgfip:AgentChorus/dgfip:TypeTiers :<br/>
+ <ul><li>Si TypeTiers='ZCOM' alors donnée numérique sur 6 chiffres</li>
+ <li>Si TypeTiers='ZCPD' alors donnée numérique sur 10 ou 14 chiffres</li>
+ <li>Si TypeTiers='ZETR' alors donnée sur 2 caractères min et 37 max</li>
+ <li>Si TypeTiers='ZEUR' alors pas de contrainte de longueur et de format</li>
+ <li>Si TypeTiers='ZFRA' alors donnée numérique sur 14 chiffres</li>
+ <li>Si TypeTiers='ZPHY' alors donnée sur 10 caractères min et 80 max</li>
+ <li>Si TypeTiers='ZREG' alors donnée sur 12 caractères composée de 4 lettres + 7 chiffres + 1 lettre</li>
+ <li>Si TypeTiers='ZSRV' alors donnée sur 10 caractères composée de 1 lettre + 6 chiffres + 3 alphanumériques</li> <li>Si TypeTiers='ZTAE' alors donnée sur 10 caractères min et 80 max</li></ul>]]></regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# _ Type tiers = #TYPETIERS# _ Identifiant fonctionnel du tiers = #IDFONCTIERS# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M063" libelle="Informations décrivant l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M063">
+ <regle-fonctionnelle>L'élément EtatsFrais/Invoice/AccountingSupplierParty/Party est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M064" libelle="Informations décrivant l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M064">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/AccountingSupplierParty/Party/AgentParty est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M065" libelle="Contrôle de la présence de la résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M065">
+ <regle-fonctionnelle>L'élément AcountingSupplierParty/Party/AgentParty/PhysicalLocation/Address est obligatoire pour un EF</regle-fonctionnelle>
+ <message-echec>L'invoice #INVOICE_ID# : La résidence administrative de l'agent est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M066" libelle="Résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M066">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/AccountingSupplierParty/Party/AgentParty/Address est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M067" libelle="Contrôle de la présence de la localité de la résidence de l'agent (familiale ou administrative)" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M067">
+ <regle-fonctionnelle>L'élément CityName est obligatoire dans une adresse : AccountingSupplierParty/Party/AgentParty/PhysicalLocation/Address/CityName ou AccountingSupplierParty/Party/AgentParty/PostalAddress/CityName.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : CityName de PhysicalLocation/Address ou de PostalAddress est obligatoire avec une adresse.</message-echec>
+ </control>
+ <control id="CTL-M068" libelle="Contrôle des informations sur la ligne d'adresse de la résidence de l'agent (familiale ou administrative)" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M068">
+ <regle-fonctionnelle>L'élément AddressLine est obligatoire dans une adresse : AccountingSupplierParty/Party/AgentParty/PhysicalLocation/Address/AddressLine ou AccountingSupplierParty/Party/AgentParty/PostalAddress/AddressLine</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : AddressLine de PhysicalLocation/Address ou de PostalAddress est obligatoire avec une adresse.</message-echec>
+ </control>
+ <control id="CTL-M069" libelle="Ligne d'adresse de la résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M069">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/AccountingSupplierParty/Party/AgentParty/Address est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M070" libelle="Informations sur le pays de la résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M070">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/AccountingSupplierParty/Party/AgentParty/Address/Country est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Id Invoice = #ID_Invoice# : #ERREUR#.</message-echec>
+ </control>
+ <control id="CTL-M071" libelle="Contrôle de la clé de pays de la résidence de l'agent (familiale ou administrative)" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M071">
+ <regle-fonctionnelle>L'élément Country/IdentificationCode est obligatoire dans une adresse : AccountingSupplierParty/Party/AgentParty/PhysicalLocation/Address/Country/IdentificationCode ou AccountingSupplierParty/Party/AgentParty/PostalAddress/Country/IdentificationCode.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Country/IdentificationCode de PhysicalLocation/Address ou de PostalAddress est obligatoire avec une adresse.</message-echec>
+ </control>
+ <control id="CTL-M072" libelle="Informations décrivant l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M072">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/AccountingSupplierParty/Party/Person est obligatoire si tiers ZCPD.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Tiers ZCPD alors l'élément EtatsFrais/Invoice/AccountingSupplierParty/Party/Person est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M073" libelle="Contrôle du prénom de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M073">
+ <regle-fonctionnelle>L'élément AccountingSupplierParty/Party/Person/FirstName est obligatoire pour un EF si le type de tiers vaut 'ZCPD'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : l'élément AccountingSupplierParty/Party/Person/FirstName est obligatoire si tiers ZCPD.</message-echec>
+ </control>
+ <control id="CTL-M074" libelle="Contrôle du nom de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M074">
+ <regle-fonctionnelle>L'élément AccountingSupplierParty/Party/Person/FamilyName est obligatoire pour un EF si le type de tiers vaut 'ZCPD'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : l'élément AccountingSupplierParty/Party/Person/FamilyName est obligatoire si tiers ZCPD.</message-echec>
+ </control>
+ <control id="CTL-M075" libelle="Localité de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M075">
+ <regle-fonctionnelle>L'élément PostalAddress/CityName est obligatoire si PostalAddress est présent.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PostalAddress est présent alors l'élément PostalAddress/CityName est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M076" libelle="Informations sur la ligne d'adresse de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M076">
+ <regle-fonctionnelle>L'élément PostalAddress/AddressLine est obligatoire si PostalAddress est présent. </regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PostalAddress est présent alors l'élément PostalAddress/AddressLine est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M077" libelle="Informations sur la ligne d'adresse de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M077">
+ <regle-fonctionnelle>L'élément PostalAddress/AddressLine/Line est obligatoire si PostalAddress est présent.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PostalAddress est présent alors l'élément PostalAddress/AddressLine/Line est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M078" libelle="Informations sur le pays de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M078">
+ <regle-fonctionnelle>L'élément PostalAddress/Country est obligatoire si PostalAddress est présent.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PostalAddress est présent alors l'élément PostalAddress/Country est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M079" libelle="Clé de pays de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M079">
+ <regle-fonctionnelle>L'élément PostalAddress/Country/IdentificationCode est obligatoire si PostalAddress est présent. </regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PostalAddress est présent alors l'élément PostalAddress/Country/IdentificationCode est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M080" libelle="Contrôle du prénom de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M080">
+ <regle-fonctionnelle>Le texte de l'élément AccountingSupplierParty/Party/Person/FirstName doit avoir une longueur de 35 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de AccountingSupplierParty/Party/Person/FirstName est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M081" libelle="Contrôle du nom de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M081">
+ <regle-fonctionnelle>Le texte de l'élément AccountingSupplierParty/Party/Person/FamilyName doit avoir une longueur de 35 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de AccountingSupplierParty/Party/Person/FamilyName est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M082" libelle="Contrôle du code postal de la résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M082">
+ <regle-fonctionnelle>Le texte de l'élément AccountingSupplierParty/Party/AgentParty/PhysicalLocation/Address/PostalZone doit avoir une longueur de 10 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de PhysicalLocation/Address/PostalZone est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M083" libelle="Code postal de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M083">
+ <regle-fonctionnelle>Le texte de l'élément ..PostalAddress/PostalZone doit avoir une longueur de 16 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID#_PostalZone=#PostalZone# : Longueur de ..PostalAddress/PostalZone est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M084" libelle="Contrôle de la localité de la résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M084">
+ <regle-fonctionnelle>Le texte de l'élément AccountingSupplierParty/Party/AgentParty/PhysicalLocation/Address/CityName doit avoir une longueur de 35 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de PhysicalLocation/Address/CityName est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M085" libelle="Localité de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M085">
+ <regle-fonctionnelle>Le texte de l'élément .../PostalAddress/CityName doit avoir une longueur de 16 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID#_CityName=#CityName# : Longueur de .../PostalAddress/CityName est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M086" libelle="Contrôle de la clé de pays de la résidence administrative de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M086">
+ <regle-fonctionnelle>Le texte de l'élément AccountingSupplierParty/Party/AgentParty/PhysicalLocation/Address/Country/IdentificationCode doit avoir une longueur de 2 caractères.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de PhysicalLocation/Address/Country/IdentificationCode est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M087" libelle="Clé de pays de la résidence familiale de l'agent" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M087">
+ <regle-fonctionnelle>Le texte de l'élément .../PostalAddress/Country/IdentificationCode doit avoir une longueur de 2 caractères exactement. </regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID#_IdentificationCode=#IdentificationCode# : .../PostalAddress/Country/IdentificationCode est incorrecte.</message-echec>
+ </control>
+ <control id="CTL-M088" libelle="Contrôle du type d'identification bancaire pour virement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M088">
+ <regle-fonctionnelle>L'élément PaymentMeans/PaymentChannelCode est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : L'élément PaymentMeans/PaymentChannelCode est obligatoire.</message-echec>
+ </control>
+ <control id="CTL-M089" libelle="Contrôle du type d'identification bancaire pour virement" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M089">
+ <regle-fonctionnelle>Le texte de l'élément PaymentMeans/PaymentChannelCode ne peut prendre comme valeur que 'IBAN' ou 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Valeur du texte de l'élément PaymentMeans/PaymentChannelCode non autorisée.</message-echec>
+ </control>
+ <control id="CTL-M090" libelle="Contrôle de l'IBAN" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M090">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/ID est obligatoire si et seulement si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'IBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PaymentMeans/PayeeFinancialAccount/ID est obligatoire si virement et IBAN fourni.</message-echec>
+ </control>
+ <control id="CTL-M091" libelle="Contrôle du numéro de compte bancaire du tiers" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M091">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/ID est obligatoire si et seulement si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PaymentMeans/PayeeFinancialAccount/ID est obligatoire si virement et BBAN fourni.</message-echec>
+ </control>
+ <control id="CTL-M092" libelle="Contrôle de l'identifiant de la banque" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M092">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/ID est obligatoire si et seulement si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/ID est obligatoire si virement et BBAN fourni.</message-echec>
+ </control>
+ <control id="CTL-M093" libelle="Contrôle de la clé du pays de la banque" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M093">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/Country/IdentificationCode est obligatoire si et seulement si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PaymentMeans/PayeeFinancialAccount/Country/IdentificationCode est obligatoire si virement et BBAN fourni.</message-echec>
+ </control>
+ <control id="CTL-M094" libelle="Contrôle de l'IBAN" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M094">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/ID doit avoir une longueur de 34 caractères maximum si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'IBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de PaymentMeans/PayeeFinancialAccount/ID doit être de 34 car. maxi.</message-echec>
+ </control>
+ <control id="CTL-M095" libelle="Contrôle du numéro de compte bancaire du tiers" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M095">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/ID doit avoir une longueur de 18 caractères maximum si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de PaymentMeans/PayeeFinancialAccount/ID doit être de 18 car. maxi.</message-echec>
+ </control>
+ <control id="CTL-M096" libelle="Contrôle de l'identifiant de la banque" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M096">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/ID doit avoir une longueur de 15 caractères maximum si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : Longueur de PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/ID doit être de 15 car. maxi.</message-echec>
+ </control>
+ <control id="CTL-M097" libelle="Contrôle de la clé du pays de la banque" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M097">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/Country/IdentificationCode doit avoir une longueur de 2 caractères exactement si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PaymentMeans/PayeeFinancialAccount/Country/IdentificationCode doit être sur 2 car.</message-echec>
+ </control>
+ <control id="CTL-M098" libelle="Contrôle de la clé de contrôle" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M098">
+ <regle-fonctionnelle>L'élément PaymentMeans/PayeeFinancialAccount/PaymentNote doit avoir une longueur de 2 caractères exactement si PaymentMeans/PaymentMeansCode vaut 'V' et PaymentMeans/PaymentChannelCode vaut 'BBAN'.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : PaymentMeans/PayeeFinancialAccount/PaymentNote doit être sur 2 car.</message-echec>
+ </control>
+ <control id="CTL-M099" libelle="Contrôle du Montant TTC en devise de l'EF" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M099">
+ <regle-fonctionnelle> L'élément EtatsFrais/Invoice/LegalMonetaryTotal/LineExtensionAmount est obligatoire pour un EF.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : L'élément EtatsFrais/Invoice/LegalMonetaryTotal/LineExtensionAmount est obligatoire. </message-echec>
+ </control>
+ <control id="CTL-M100" libelle="Contrôle du montant TTC en devise de l'EF" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M100">
+ <regle-fonctionnelle> Vérifier que l'élément EtatsFrais/Invoice/LegalMonetaryTotal/LineExtensionAmount vérifie le format 9(19).9(4).</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# : EtatsFrais/Invoice/LegalMonetaryTotal/LineExtensionAmount doit verifier le format 9(19).9(4).</message-echec>
+ </control>
+ <control id="CTL-M101" libelle="Contrôle des montants TTC en devise de l'EF et de la ligne de frais" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M101">
+ <regle-fonctionnelle> Vérifier que la valeur de l'attribut CurrencyID est identique pour l'élément EtatsFrais/Invoice/LegalMonetaryTotal/LineExtensionAmount de l'EF et les éléments EtatsFrais/Invoice/InvoiceLine/LineExtensionAmount au niveau de chaque ligne d'EF. </regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# _ Ligne de frais n° #INVOICE_LINE_ID# : L'attribut CurrencyID doit etre identique dans tous les elements LineExtensionAmount. </message-echec>
+ </control>
+ <control id="CTL-M102" libelle="Contrôle du montant TTC en devise de la ligne de frais" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M102">
+ <regle-fonctionnelle> Vérifier que l'élément EtatsFrais/Invoice/InvoiceLine/LineExtensionAmount au niveau de chaque ligne d'EF vérifie le format 9(19).9(4).</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# _ Ligne de frais n° #INVOICE_LINE_ID# : EtatsFrais/Invoice/InvoiceLine/LineExtensionAmount doit verifier le format 9(19).9(4).</message-echec>
+ </control>
+ <control id="CTL-M103" libelle="Contrôle de la description de la ligne d'état de frais" severity="BLOQUANT" class="fr.gouv.finances.dgfip.xemelios.controls.etatFrais.chorus.M103">
+ <regle-fonctionnelle> Vérifier que le texte de l'élément EtatsFrais/Invoice/InvoiceLine/Item/Description a une longueur de 50 caractères maximum.</regle-fonctionnelle>
+ <message-echec>Invoice #INVOICE_ID# _ Ligne de frais n° #INVOICE_LINE_ID# : EtatsFrais/Invoice/InvoiceLine/Item/Description doit avoir une longueur de 50 caracteres maximum.</message-echec>
+ </control>
+ </document>
+</controls>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../../../../defs/config-metier/Persistence.xsd">
+ <layer
+ name="mysql"
+ persistence-model="xemelios-sql">
+ <document
+ id="etat-frais-spl"
+ repository-import-xslt-file="">
+
+ <table type="list-bc" base-name="EF_SPL_LIST_BUDG_COLL" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(75) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ BUDGET_LIB VARCHAR(200),
+ COLLECTIVITE_LIB VARCHAR(200),
+ INITIAL_DOC_NAME VARCHAR(100) NOT NULL,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <etat id="EtatFrais" import-xslt-file="etat-frais-spl/etat-frais-import-mysql.xsl">
+ <key1>
+ <path>/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/@added:generated-id</path>
+ </key1>
+ <key2>
+ <path>/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/@added:generated-id</path>
+ </key2>
+ <key3>
+ <path>/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/@added:generated-id</path>
+ </key3>
+ <table base-name="EF_SPL_EF_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(75) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ INITIAL_DOC_NAME VARCHAR(100) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ DOC LONGBLOB,
+ ENCODING VARCHAR(20),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table base-name="EF_SPL_EF_FRAIS_IX" type="index" version="4" main="true" id="EF_SPL_EF_FRAIS_IX">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(75) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ID VARCHAR(75),
+ ID_UNIQUE VARCHAR(75),
+ AGENT_ID VARCHAR(75),
+ AGENT_FAMILYNAME VARCHAR(75),
+ AGENT_FIRSTNAME VARCHAR(75),
+ AGENT_TITLE VARCHAR(75),
+ AGENT_FAMILYADDR_POSTALZONE VARCHAR(10),
+ AGENT_FAMILYADDR_CITYNAME VARCHAR(75),
+ AGENT_FAMILYADDR_LINE VARCHAR(75),
+ AGENT_FAMILYADDR_COUNTRY VARCHAR(2),
+ AGENT_RESADM_POSTALZONE VARCHAR(10),
+ AGENT_RESADM_CITYNAME VARCHAR(75),
+ AGENT_RESADM_LINE VARCHAR(75),
+ AGENT_RESADM_COUNTRY VARCHAR(2),
+ AGENT_GRADE VARCHAR(75),
+ AGENT_EMPLOI VARCHAR(38),
+ AGENT_STATUT VARCHAR(9),
+ AGENT_SITUATIONFAMILLE VARCHAR(11),
+ AGENT_NBENFANTS INT,
+ AGENT_CHORUS_TYPETIERS VARCHAR(4),
+ AGENT_CHORUS_FONC VARCHAR(80),
+ AGENT_CHORUS_ID VARCHAR(10),
+ AGENT_TYPE_PERSONNE VARCHAR(10),
+ OM_ID VARCHAR(75),
+ OM_VALIDEUR_ID VARCHAR(75),
+ OM_VALIDEUR_NOM VARCHAR(75),
+ OM_VALIDEUR_PRENOM VARCHAR(75),
+ OM_DATE_VALIDATION DATE,
+ OM_NATURE_OM VARCHAR(18),
+ OM_MOTIF_DEPLACEMENT VARCHAR(80),
+ OM_FAITGENERATEUR_TYPE VARCHAR(30),
+ OM_FAITGENERATEUR_REFERENCE VARCHAR(80),
+ OM_FAITGENERATEUR_DATE DATE,
+ OM_FAITGENERATEUR_DUREE_OM VARCHAR(10),
+ OM_MOYEN_TRANSP_AUTORISE VARCHAR(75),
+ OM_MOYEN_TRANSP_AUTORISE_CLASSE VARCHAR(75),
+ OM_MT_ESTIM DECIMAL(14,2),
+ OM_DEPL_PAYS VARCHAR(2),
+ OM_DEPL_CP VARCHAR(10),
+ OM_DEPL_VILLE VARCHAR(38),
+ OM_DEP_PAYS VARCHAR(2),
+ OM_DEP_CP VARCHAR(10),
+ OM_DEP_VILLE VARCHAR(38),
+ OM_ARR_PAYS VARCHAR(2),
+ OM_ARR_CP VARCHAR(10),
+ OM_ARR_VILLE VARCHAR(38),
+ OM_DATE_DEPART DATE,
+ OM_DATE_RETOUR DATE,
+ EF_VALIDEUR_ID VARCHAR(75),
+ EF_VALIDEUR_NOM VARCHAR(75),
+ EF_VALIDEUR_PRENOM VARCHAR(75),
+ EF_COMPTA_ASSIGN VARCHAR(100),
+ EF_TOTAL_TRANSP DECIMAL(14,2),
+ EF_TOTAL_SEJOUR DECIMAL(14,2),
+ EF_CHORUS_SOCIETE VARCHAR(4),
+ EF_CHORUS_DOMAINE VARCHAR(4),
+ EF_IDREF VARCHAR(40),
+ EF_SIRETBP VARCHAR(24),
+ EF_CODEBUD VARCHAR(24),
+ EMETTEUR_ID VARCHAR(75),
+ EMETTEUR_NOM VARCHAR(75),
+ MT_TOTAL DECIMAL(14,2),
+ MT_TOTAL_AVANCE_FRAIS DECIMAL(14,2),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ <patch from-version="2">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD EF_IDREF VARCHAR(40)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD EF_SIRETBP VARCHAR(24)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD EF_CODEBUD VARCHAR(24)</sql>
+ </patch>
+ <patch from-version="3">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD EF_SIRETBP VARCHAR(24)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD EF_CODEBUD VARCHAR(24)</sql>
+ </patch>
+ </table>
+ <table base-name="EF_SPL_EF_FRAIS_LINE_IX" type="index" version="1" based-on="key2" id="EF_SPL_EF_FRAIS_LINE_IX">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(75) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ INVOICE_ID VARCHAR(75) NOT NULL,
+ LINE_ID VARCHAR(75) NOT NULL,
+ TYPE_LIGNE VARCHAR(22) NOT NULL,
+ LINE_DESCRIPTION VARCHAR(250),
+ LINE_AMOUNT DECIMAL(14,2),
+ LINE_QTY DECIMAL (14,2),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table base-name="EF_SPL_EF_FRAIS_LINE_TMPLINE_IX" type="index" version="1" based-on="key1" id="EF_SPL_EF_FRAIS_LINE_TMPLINE_IX">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(75) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ INVOICE_ID VARCHAR(75) NOT NULL,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table base-name="EF_SPL_EF_FRAIS_LINE_ADDPROP" type="index" version="2" based-on="key3" id="EF_SPL_EF_FRAIS_LINE_ADDPROP">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(75) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ INVOICE_ID VARCHAR(75) NOT NULL,
+ LINE_ID VARCHAR(75) NOT NULL,
+ PROPERTY_ID VARCHAR(10) NOT NULL,
+ PROPERTY_NAME VARCHAR(35) NOT NULL,
+ PROPERTY_VALUE VARCHAR(75),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+
+ <!-- criteres sur Invoice -->
+ <criteria id="c.ID" sql-index-id="EF_SPL_IX">
+ <where-clause>fn:string-compare(${table}.${column},c.EF.ID)</where-clause>
+ </criteria>
+ <criteria id="agent.id" sql-index-id="EF_SPL_AG_ID">
+ <where-clause>fn:string-compare(${table}.${column},agent.id)</where-clause>
+ </criteria>
+ <criteria id="agent.nom" sql-index-id="EF_SPL_AG_NOM">
+ <where-clause>fn:string-compare(${table}.${column},agent.nom)</where-clause>
+ </criteria>
+ <criteria id="agent.prenom" sql-index-id="EF_SPL_AG_PRENOM">
+ <where-clause>fn:string-compare(${table}.${column},agent.prenom)</where-clause>
+ </criteria>
+ <criteria id="agent.civilite" sql-index-id="EF_SPL_AG_TITLE">
+ <where-clause>fn:string-compare(${table}.${column},agent.civilite)</where-clause>
+ </criteria>
+ <criteria id="agent.address.zone" sql-index-id="EF_SPL_AG_FAMADDRCP">
+ <where-clause>fn:string-compare(${table}.${column},agent.address.zone)</where-clause>
+ </criteria>
+ <criteria id="agent.address.city" sql-index-id="EF_SPL_AG_FAMADDRVILLE">
+ <where-clause>fn:string-compare(${table}.${column},agent.address.city)</where-clause>
+ </criteria>
+ <criteria id="agent.address.country" sql-index-id="EF_SPL_AG_FAMADDRCOUNTRY">
+ <where-clause>${table}.${column}='##VALEUR:agent.address.country##'</where-clause>
+ </criteria>
+ <criteria id="agent.residence.zone" sql-index-id="EF_SPL_AG_RESADMCP">
+ <where-clause>fn:string-compare(${table}.${column},agent.residence.zone)</where-clause>
+ </criteria>
+ <criteria id="agent.residence.city" sql-index-id="EF_SPL_AG_RESADMVILLE">
+ <where-clause>fn:string-compare(${table}.${column},agent.residence.city)</where-clause>
+ </criteria>
+ <criteria id="agent.residence.country" sql-index-id="EF_SPL_AG_RESADMCOUNTRY">
+ <where-clause>${table}.${column}='##VALEUR:agent.residence.country##'</where-clause>
+ </criteria>
+ <criteria id="agent.grade" sql-index-id="EF_SPL_AG_GRADE">
+ <where-clause>fn:string-compare(${table}.${column},agent.grade)</where-clause>
+ </criteria>
+ <criteria id="agent.emploi" sql-index-id="EF_SPL_AG_EMPLOI">
+ <where-clause>fn:string-compare(${table}.${column},agent.emploi)</where-clause>
+ </criteria>
+ <criteria id="agent.statut" sql-index-id="EF_SPL_AG_STATUT">
+ <where-clause>${table}.${column}='##VALEUR:agent.statut##'</where-clause>
+ </criteria>
+ <criteria id="agent.famille.situation" sql-index-id="EF_SPL_AG_SITUATIONFAMILLE">
+ <where-clause>${table}.${column}='##VALEUR:agent.famille.situation##'</where-clause>
+ </criteria>
+ <criteria id="agent.nbenfants" sql-index-id="EF_SPL_AG_NBENFANTS">
+ <where-clause>${table}.${column}##OPERATEUR:agent.nbenfants####VALEUR:agent.nbenfants##</where-clause>
+ </criteria>
+ <criteria id="agent.chorus.typetiers" sql-index-id="EF_SPL_AG_CHORUS_TYPETIERS">
+ <where-clause>${table}.${column}='##VALEUR:agent.chorus.typetiers##'</where-clause>
+ </criteria>
+ <criteria id="agent.chorus.id.fonct" sql-index-id="EF_SPL_AG_CHORUS_FONC">
+ <where-clause>fn:string-compare(${table}.${column},agent.chorus.id.fonct)</where-clause>
+ </criteria>
+ <criteria id="agent.chorus.id" sql-index-id="EF_SPL_AG_CHORUS_ID">
+ <where-clause>fn:string-compare(${table}.${column},agent.chorus.id)</where-clause>
+ </criteria>
+ <criteria id="agent.type.personne" sql-index-id="EF_SPL_AG_TYPE_PERSONNE">
+ <where-clause>${table}.${column}='##VALEUR:agent.type.personne##'</where-clause>
+ </criteria>
+ <criteria id="OM.id" sql-index-id="EF_SPL_OM_ID">
+ <where-clause>fn:string-compare(${table}.${column},OM.id)</where-clause>
+ </criteria>
+ <criteria id="OM.valideur.ID" sql-index-id="EF_SPL_OM_VALIDEUR_ID">
+ <where-clause>fn:string-compare(${table}.${column},OM.valideur.ID)</where-clause>
+ </criteria>
+ <criteria id="OM.valideur.nom" sql-index-id="EF_SPL_OM_VALIDEUR_NOM">
+ <where-clause>fn:string-compare(${table}.${column},OM.valideur.nom)</where-clause>
+ </criteria>
+ <criteria id="OM.valideur.prenom" sql-index-id="EF_SPL_OM_VALIDEUR_PRENOM">
+ <where-clause>fn:string-compare(${table}.${column},OM.valideur.prenom)</where-clause>
+ </criteria>
+ <criteria id="OM.date.validation" sql-index-id="EF_SPL_OM_DATE_VALIDATION">
+ <where-clause>fn:date-compare(${table}.${column},OM.date.validation)</where-clause>
+ </criteria>
+ <criteria id="OM.nature.om" sql-index-id="EF_SPL_OM_NATURE_OM">
+ <where-clause>${table}.${column}='##VALEUR:OM.nature.om##'</where-clause>
+ </criteria>
+ <criteria id="OM.motif.deplacement" sql-index-id="EF_SPL_OM_MOTIF_DEPLACEMENT">
+ <where-clause>fn:string-compare(${table}.${column},OM.motif.deplacement)</where-clause>
+ </criteria>
+ <criteria id="OM.faitgenerateur.type" sql-index-id="EF_SPL_OM_FAITGENERATEUR_TYPE">
+ <where-clause>${table}.${column}='##VALEUR:OM.faitgenerateur.type##'</where-clause>
+ </criteria>
+ <criteria id="OM.faitgenerateur.reference" sql-index-id="EF_SPL_OM_FAITGENERATEUR_REFERENCE">
+ <where-clause>fn:string-compare(${table}.${column},OM.faitgenerateur.reference)</where-clause>
+ </criteria>
+ <criteria id="OM.faitgenerateur.date" sql-index-id="EF_SPL_OM_FAITGENERATEUR_DATE">
+ <where-clause>fn:date-compare(${table}.${column},OM.faitgenerateur.date)</where-clause>
+ </criteria>
+ <criteria id="OM.faitgenerateur.duree.om" sql-index-id="EF_SPL_OM_FAITGENERATEUR_DUREE_OM">
+ <where-clause>${table}.${column}='##VALEUR:OM.faitgenerateur.duree.om##'</where-clause>
+ </criteria>
+ <criteria id="OM.moyen.transport.autorise" sql-index-id="EF_SPL_OM_MOYEN_TRANSP_AUTORISE">
+ <where-clause>fn:string-compare(${table}.${column},OM.moyen.transport.autorise)</where-clause>
+ </criteria>
+ <criteria id="OM.moyen.transport.autorise.classe" sql-index-id="EF_SPL_OM_MOYEN_TRANSP_AUTORISE_CLASSE">
+ <where-clause>fn:string-compare(${table}.${column},OM.moyen.transport.autorise.classe)</where-clause>
+ </criteria>
+ <criteria id="OM.montant.estimatif" sql-index-id="EF_SPL_OM_MT_ESTIM">
+ <where-clause>${table}.${column}##OPERATEUR:OM.mt.estimatif####VALEUR:OM.mt.estimatif##</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.depl.pays" sql-index-id="EF_SPL_OM_DEPL_PAYS">
+ <where-clause>${table}.${column}='##VALEUR:OM.lieu.depl.pays##'</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.depl.cp" sql-index-id="EF_SPL_OM_DEPL_CP">
+ <where-clause>fn:string-compare(${table}.${column},OM.lieu.depl.CP)</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.depl.ville" sql-index-id="EF_SPL_OM_DEPL_VILLE">
+ <where-clause>fn:string-compare(${table}.${column},OM.lieu.depl.ville)</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.dep.pays" sql-index-id="EF_SPL_OM_DEP_PAYS">
+ <where-clause>${table}.${column}='##VALEUR:OM.lieu.depl.pays##'</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.dep.cp" sql-index-id="EF_SPL_OM_DEP_CP">
+ <where-clause>fn:string-compare(${table}.${column},OM.lieu.dep.CP)</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.dep.ville" sql-index-id="EF_SPL_OM_DEP_VILLE">
+ <where-clause>fn:string-compare(${table}.${column},OM.lieu.dep.ville)</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.arr.pays" sql-index-id="EF_SPL_OM_ARR_PAYS">
+ <where-clause>${table}.${column}='##VALEUR:OM.lieu.arr.pays##'</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.arr.cp" sql-index-id="EF_SPL_OM_ARR_CP">
+ <where-clause>fn:string-compare(${table}.${column},OM.lieu.arr.CP)</where-clause>
+ </criteria>
+ <criteria id="OM.lieu.arr.ville" sql-index-id="EF_SPL_OM_ARR_VILLE">
+ <where-clause>fn:string-compare(${table}.${column},OM.lieu.arr.ville)</where-clause>
+ </criteria>
+ <criteria id="OM.date.depart" sql-index-id="EF_SPL_OM_DATE_DEPART">
+ <where-clause>fn:date-compare(${table}.${column},OM.date.depart)</where-clause>
+ </criteria>
+ <criteria id="OM.date.retour" sql-index-id="EF_SPL_OM_DATE_RETOUR">
+ <where-clause>fn:date-compare(${table}.${column},OM.date.retour)</where-clause>
+ </criteria>
+ <criteria id="EF.valideur.ID" sql-index-id="EF_SPL_EF_VALIDEUR_ID">
+ <where-clause>fn:string-compare(${table}.${column},EF.valideur.ID)</where-clause>
+ </criteria>
+ <criteria id="EF.valideur.nom" sql-index-id="EF_SPL_EF_VALIDEUR_NOM">
+ <where-clause>fn:string-compare(${table}.${column},EF.valideur.nom)</where-clause>
+ </criteria>
+ <criteria id="EF.valideur.prenom" sql-index-id="EF_SPL_EF_VALIDEUR_PRENOM">
+ <where-clause>fn:string-compare(${table}.${column},EF.valideur.prenom)</where-clause>
+ </criteria>
+ <criteria id="EF.idref" sql-index-id="EF_SPL_EF_IDREF">
+ <where-clause>fn:string-compare(${table}.${column},EF.idref)</where-clause>
+ </criteria>
+ <criteria id="EF.siretbp" sql-index-id="EF_SPL_EF_SIRETBP">
+ <where-clause>fn:string-compare(${table}.${column},EF.siretbp)</where-clause>
+ </criteria>
+ <criteria id="EF.codebud" sql-index-id="EF_SPL_EF_CODEBUD">
+ <where-clause>fn:string-compare(${table}.${column},EF.codebud)</where-clause>
+ </criteria>
+ <criteria id="EF.comptable.assign" sql-index-id="EF_SPL_COMPTA_ASSIGN">
+ <where-clause>fn:string-compare(${table}.${column},EF.comptable.assign)</where-clause>
+ </criteria>
+ <criteria id="EF.total.transport" sql-index-id="EF_SPL_TOTAL_TRANSP">
+ <where-clause>${table}.${column}##OPERATEUR:EF.total.transport####VALEUR:EF.total.transport##</where-clause>
+ </criteria>
+ <criteria id="EF.total.residence" sql-index-id="EF_SPL_TOTAL_SEJOUR">
+ <where-clause>${table}.${column}##OPERATEUR:EF.total.residence####VALEUR:EF.total.residence##</where-clause>
+ </criteria>
+ <criteria id="EF.chorus.societe" sql-index-id="EF_SPL_CHORUS_SOCIETE">
+ <where-clause>fn:string-compare(${table}.${column},EF.chorus.societe)</where-clause>
+ </criteria>
+ <criteria id="EF.chorus.domaine" sql-index-id="EF_SPL_CHORUS_DOMAINE">
+ <where-clause>fn:string-compare(${table}.${column},EF.chorus.domaine)</where-clause>
+ </criteria>
+ <criteria id="emetteur.ID" sql-index-id="EF_SPL_EMETTEUR_ID">
+ <where-clause>fn:string-compare(${table}.${column},emetteur.id)</where-clause>
+ </criteria>
+ <criteria id="emetteur.nom" sql-index-id="EF_SPL_EMETTEUR_NOM">
+ <where-clause>fn:string-compare(${table}.${column},emetteur.nom)</where-clause>
+ </criteria>
+ <criteria id="EF.mt.total" sql-index-id="EF_SPL_MT_TOTAL">
+ <where-clause>${table}.${column}##OPERATEUR:EF.mt.total####VALEUR:EF.mt.total##</where-clause>
+ </criteria>
+ <criteria id="EF.mt.total.avance.frais" sql-index-id="EF_SPL_MT_TOTAL_AVANCE_FRAIS">
+ <where-clause>${table}.${column}##OPERATEUR:EF.mt.total.avance.frais####VALEUR:EF.mt.total.avance.frais##</where-clause>
+ </criteria>
+ <!-- criteres sur lignes -->
+ <criteria id="line.type.ligne" sql-index-id="EF_SPL_LINE_TYPE">
+ <where-clause>${table}.${column}="##VALEUR:line.type.ligne##"</where-clause>
+ </criteria>
+ <criteria id="line.description" sql-index-id="EF_SPL_LINE_DESC">
+ <where-clause>fn:string-compare(${table}.${column},line.description)</where-clause>
+ </criteria>
+ <criteria id="line.qty" sql-index-id="EF_SPL_LINE_QTY">
+ <where-clause>${table.column}##OPERATEUR:line.qty####VALEUR:line.qty##</where-clause>
+ </criteria>
+ <criteria id="line.compte.imput" sql-index-id="EF_SPL_PROP_PROP_VALUE">
+ <where-clause>${table}.PROPERTY_NAME='CH_COMPTE_PCE' AND fn:string-compare(${table}.${column},compte)</where-clause>
+ </criteria>
+ <criteria id="line.prop" sql-index-id="EF_SPL_PROP_PROP_VALUE">
+ <where-clause>${table}.PROPERTY_NAME='##VALEUR:prop##' AND fn:string-compare(${table}.${column},value)</where-clause>
+ </criteria>
+
+ <sql-index id="EF_SPL_UNIQUE_ID_IX" table="EF_SPL_EF_FRAIS_IX" column="ID_UNIQUE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/@ano:unique-id" datatype="string"/>
+ <sql-index id="EF_SPL_IX" table="EF_SPL_EF_FRAIS_IX" column="ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cbc:ID/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_ID" table="EF_SPL_EF_FRAIS_IX" column="AGENT_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_NOM" table="EF_SPL_EF_FRAIS_IX" column="AGENT_FAMILYNAME" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Person/cbc:FamilyName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_PRENOM" table="EF_SPL_EF_FRAIS_IX" column="AGENT_FIRSTNAME" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Person/cbc:FirstName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_TITLE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_TITLE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Person/cbc:Title/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_FAMADDRCP" table="EF_SPL_EF_FRAIS_IX" column="AGENT_FAMILYADDR_POSTALZONE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_FAMADDRVILLE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_FAMILYADDR_CITYNAME" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_FAMADDRLINE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_FAMILYADDR_LINE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:AddressLine/cbc:Line/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_FAMADDRCOUNTRY" table="EF_SPL_EF_FRAIS_IX" column="AGENT_FAMILYADDR_COUNTRY" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode/text()" datatype="string"/>
+ <sql-index id="EF_SPL_AG_RESADMCP" table="EF_SPL_EF_FRAIS_IX" column="AGENT_RESADM_POSTALZONE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PhysicalLocation/cac:Address/cbc:PostalZone/text()" datatype="string"/>
+ <sql-index id="EF_SPL_AG_RESADMVILLE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_RESADM_CITYNAME" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PhysicalLocation/cac:Address/cbc:CityName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_RESADMLINE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_RESADM_LINE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:AddressLine/cbc:Line/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_RESADMCOUNTRY" table="EF_SPL_EF_FRAIS_IX" column="AGENT_RESADM_COUNTRY" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:Country/cbc:IdentificationCode/text()" datatype="string"/>
+ <sql-index id="EF_SPL_AG_GRADE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_GRADE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:Grade/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_EMPLOI" table="EF_SPL_EF_FRAIS_IX" column="AGENT_EMPLOI" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:EmploiFonction/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_STATUT" table="EF_SPL_EF_FRAIS_IX" column="AGENT_STATUT" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:Statut/text()" datatype="string"/>
+ <sql-index id="EF_SPL_AG_SITUATIONFAMILLE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_SITUATIONFAMILLE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:SituationFamille/text()" datatype="string"/>
+ <sql-index id="EF_SPL_AG_NBENFANTS" table="EF_SPL_EF_FRAIS_IX" column="AGENT_NBENFANTS" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:NbEnfants/text()" datatype="integer"/>
+ <sql-index id="EF_SPL_AG_CHORUS_TYPETIERS" table="EF_SPL_EF_FRAIS_IX" column="AGENT_CHORUS_TYPETIERS" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:AgentChorus/dgfip:TypeTiers/text()" datatype="string"/>
+ <sql-index id="EF_SPL_AG_CHORUS_FONC" table="EF_SPL_EF_FRAIS_IX" column="AGENT_CHORUS_FONC" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:AgentChorus/dgfip:IdFoncTiers/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_CHORUS_ID" table="EF_SPL_EF_FRAIS_IX" column="AGENT_CHORUS_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:AgentChorus/dgfip:IdChorusTiers/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_AG_TYPE_PERSONNE" table="EF_SPL_EF_FRAIS_IX" column="AGENT_TYPE_PERSONNE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Agent/dgfip:TypePersonne/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_ID" table="EF_SPL_EF_FRAIS_IX" column="OM_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:ID/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_VALIDEUR_ID" table="EF_SPL_EF_FRAIS_IX" column="OM_VALIDEUR_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Valideur/cac:PartyIdentification/cbc:ID/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_VALIDEUR_NOM" table="EF_SPL_EF_FRAIS_IX" column="OM_VALIDEUR_NOM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Valideur/cac:Person/cbc:FamilyName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_VALIDEUR_PRENOM" table="EF_SPL_EF_FRAIS_IX" column="OM_VALIDEUR_PRENOM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:Valideur/cac:Person/cbc:FirstName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_DATE_VALIDATION" table="EF_SPL_EF_FRAIS_IX" column="OM_DATE_VALIDATION" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:DateValidation/text()" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="EF_SPL_OM_NATURE_OM" table="EF_SPL_EF_FRAIS_IX" column="OM_NATURE_OM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:NatureOM/text()" datatype="string"/>
+ <sql-index id="EF_SPL_OM_MOTIF_DEPLACEMENT" table="EF_SPL_EF_FRAIS_IX" column="OM_MOTIF_DEPLACEMENT" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MotifDeplacement/text()" datatype="string"/>
+ <sql-index id="EF_SPL_OM_FAITGENERATEUR_TYPE" table="EF_SPL_EF_FRAIS_IX" column="OM_FAITGENERATEUR_TYPE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Type/text()" datatype="string"/>
+ <sql-index id="EF_SPL_OM_FAITGENERATEUR_REFERENCE" table="EF_SPL_EF_FRAIS_IX" column="OM_FAITGENERATEUR_REFERENCE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Reference/text()" datatype="string"/>
+ <sql-index id="EF_SPL_OM_FAITGENERATEUR_DATE" table="EF_SPL_EF_FRAIS_IX" column="OM_FAITGENERATEUR_DATE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:Date/text()" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="EF_SPL_OM_FAITGENERATEUR_DUREE_OM" table="EF_SPL_EF_FRAIS_IX" column="OM_FAITGENERATEUR_DUREE_OM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:FaitGenerateur/dgfip:DureeOM/text()" datatype="string"/>
+ <sql-index id="EF_SPL_OM_MOYEN_TRANSP_AUTORISE" table="EF_SPL_EF_FRAIS_IX" column="OM_MOYEN_TRANSP_AUTORISE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/text()" datatype="string"/>
+ <sql-index id="EF_SPL_OM_MOYEN_TRANSP_AUTORISE_CLASSE" table="EF_SPL_EF_FRAIS_IX" column="OM_MOYEN_TRANSP_AUTORISE_CLASSE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MoyenTransportAutorise/@ClasseAutorisee" datatype="string"/>
+ <sql-index id="EF_SPL_OM_MT_ESTIM" table="EF_SPL_EF_FRAIS_IX" column="OM_MT_ESTIM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:MontantEstimatif/text()" datatype="decimal"/>
+ <sql-index id="EF_SPL_OM_DEPL_PAYS" table="EF_SPL_EF_FRAIS_IX" column="OM_DEPL_PAYS" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuDeplacement/@CodPays" datatype="string"/>
+ <sql-index id="EF_SPL_OM_DEPL_CP" table="EF_SPL_EF_FRAIS_IX" column="OM_DEPL_CP" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuDeplacement/@CP" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_DEPL_VILLE" table="EF_SPL_EF_FRAIS_IX" column="OM_DEPL_VILLE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuDeplacement/@Commune" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_DEP_PAYS" table="EF_SPL_EF_FRAIS_IX" column="OM_DEP_PAYS" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuDepart/@CodPays" datatype="string"/>
+ <sql-index id="EF_SPL_OM_DEP_CP" table="EF_SPL_EF_FRAIS_IX" column="OM_DEP_CP" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuDepart/@CP" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_DEP_VILLE" table="EF_SPL_EF_FRAIS_IX" column="OM_DEP_VILLE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuDepart/@Commune" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_ARR_PAYS" table="EF_SPL_EF_FRAIS_IX" column="OM_ARR_PAYS" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuArrivee/@CodPays" datatype="string"/>
+ <sql-index id="EF_SPL_OM_ARR_CP" table="EF_SPL_EF_FRAIS_IX" column="OM_ARR_CP" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuArrivee/@CP" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_ARR_VILLE" table="EF_SPL_EF_FRAIS_IX" column="OM_ARR_VILLE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:LieuArrivee/@Commune" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_OM_DATE_DEPART" table="EF_SPL_EF_FRAIS_IX" column="OM_DATE_DEPART" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:DateDepart/text()" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="EF_SPL_OM_DATE_RETOUR" table="EF_SPL_EF_FRAIS_IX" column="OM_DATE_RETOUR" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:OrdreMission/dgfip:DateRetour/text()" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="EF_SPL_EF_VALIDEUR_ID" table="EF_SPL_EF_FRAIS_IX" column="EF_VALIDEUR_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:Valideur/cac:PartyIdentification/cbc:ID/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_EF_VALIDEUR_NOM" table="EF_SPL_EF_FRAIS_IX" column="EF_VALIDEUR_NOM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:Valideur/cac:Person/cbc:FamilyName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_EF_VALIDEUR_PRENOM" table="EF_SPL_EF_FRAIS_IX" column="EF_VALIDEUR_PRENOM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:Valideur/cac:Person/cbc:FirstName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_EF_IDREF" table="EF_SPL_EF_FRAIS_IX" column="EF_IDREF" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:IdRef/text()" datatype="string"/>
+ <sql-index id="EF_SPL_EF_SIRETBP" table="EF_SPL_EF_FRAIS_IX" column="EF_SIRETBP" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:SiretBP/text()" datatype="string"/>
+ <sql-index id="EF_SPL_EF_CODEBUD" table="EF_SPL_EF_FRAIS_IX" column="EF_CODEBUD" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:CodeBud/text()" datatype="string"/>
+ <sql-index id="EF_SPL_COMPTA_ASSIGN" table="EF_SPL_EF_FRAIS_IX" column="EF_COMPTA_ASSIGN" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:ComptableAssignataire/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_TOTAL_TRANSP" table="EF_SPL_EF_FRAIS_IX" column="EF_TOTAL_TRANSP" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:TotalFraisTransport/text()" datatype="decimal"/>
+ <sql-index id="EF_SPL_TOTAL_SEJOUR" table="EF_SPL_EF_FRAIS_IX" column="EF_TOTAL_SEJOUR" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:TotalIndemnitesSejour/text()" datatype="decimal"/>
+ <sql-index id="EF_SPL_CHORUS_SOCIETE" table="EF_SPL_EF_FRAIS_IX" column="EF_CHORUS_SOCIETE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:EtatFraisChorus/dgfip:Societe/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_CHORUS_DOMAINE" table="EF_SPL_EF_FRAIS_IX" column="EF_CHORUS_DOMAINE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:EtatFraisChorus/dgfip:DomaineActivite/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_EMETTEUR_ID" table="EF_SPL_EF_FRAIS_IX" column="EMETTEUR_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_EMETTEUR_NOM" table="EF_SPL_EF_FRAIS_IX" column="EMETTEUR_NOM" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_MT_TOTAL" table="EF_SPL_EF_FRAIS_IX" column="MT_TOTAL" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount/text()" datatype="decimal"/>
+ <sql-index id="EF_SPL_MT_TOTAL_AVANCE_FRAIS" table="EF_SPL_EF_FRAIS_IX" column="MT_TOTAL_AVANCE_FRAIS" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:LegalMonetaryTotal/cbc:PrepaidAmount/text()" datatype="decimal"/>
+
+ <sql-index id="EF_SPL_LINE_ID_INVOICE" table="EF_SPL_EF_FRAIS_LINE_IX" column="INVOICE_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cbc:ID/text()" use-in-criteria="false" datatype="string" format="uppercase" reset-on="key1"/>
+ <sql-index id="EF_SPL_LINE_ID" table="EF_SPL_EF_FRAIS_LINE_IX" column="LINE_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/@added:generated-id" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_LINE_TYPE" table="EF_SPL_EF_FRAIS_LINE_IX" column="TYPE_LIGNE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Item/cac:BuyersItemIdentification/cbc:ID/text()" datatype="string"/>
+ <sql-index id="EF_SPL_LINE_DESC" table="EF_SPL_EF_FRAIS_LINE_IX" column="LINE_DESCRIPTION" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Item/cbc:Description/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_LINE_AMOUNT" table="EF_SPL_EF_FRAIS_LINE_IX" column="LINE_AMOUNT" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Price/cbc:PriceAmount/text()" datatype="decimal"/>
+ <sql-index id="EF_SPL_LINE_QTY" table="EF_SPL_EF_FRAIS_LINE_IX" column="LINE_QTY" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cbc:InvoicedQuantity/text()" datatype="decimal"/>
+
+ <sql-index id="EF_SPL_PROP_ID_INVOICE" table="EF_SPL_EF_FRAIS_LINE_ADDPROP" column="INVOICE_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cbc:ID/text()" use-in-criteria="false" datatype="string" format="uppercase" reset-on="key1"/>
+ <sql-index id="EF_SPL_PROP_ID_LINE" table="EF_SPL_EF_FRAIS_LINE_ADDPROP" column="LINE_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/@added:generated-id" use-in-criteria="false" reset-on="key2" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_PROP_ID_PROP" table="EF_SPL_EF_FRAIS_LINE_ADDPROP" column="PROPERTY_ID" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/@added:generated-id" datatype="string"/>
+ <sql-index id="EF_SPL_PROP_PROP_NAME" table="EF_SPL_EF_FRAIS_LINE_ADDPROP" column="PROPERTY_NAME" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Name/text()" datatype="string" format="uppercase"/>
+ <sql-index id="EF_SPL_PROP_PROP_VALUE" table="EF_SPL_EF_FRAIS_LINE_ADDPROP" column="PROPERTY_VALUE" path="/added:DocEtatsFrais/ef:EtatsFrais/ef:Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Value/text()" datatype="string" format="uppercase"/>
+
+ </etat>
+ </document>
+ </layer>
+</persistence-config>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<DureesOM>
+ <Duree code="PERMANENT">Permanent</Duree>
+ <Duree code="TEMPORAIRE">Temporaire</Duree>
+</DureesOM>
+
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>\r\r
+<ISO_3166-1_List_fr xml:lang="fr">\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>AFGHANISTAN</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AF</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>AFRIQUE DU SUD</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>ZA</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ÅLAND, ÎLES</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AX</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ALBANIE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AL</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ALGÉRIE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>DZ</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ALLEMAGNE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>DE</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ANDORRE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AD</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ANGOLA</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AO</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ANGUILLA</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AI</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ANTARCTIQUE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AQ</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ANTIGUA-ET-BARBUDA</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AG</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ANTILLES NÉERLANDAISES</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AN</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ARABIE SAOUDITE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>SA</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ARGENTINE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AR</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ARMÉNIE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AM</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>ARUBA</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AW</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>AUSTRALIE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AU</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>AUTRICHE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AT</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>AZERBAÏDJAN</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>AZ</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>BAHAMAS</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>BS</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>BAHREÏN</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>BH</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>BANGLADESH</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>BD</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Entry>\r\r
+ <ISO_3166-1_Country_name>BARBADE</ISO_3166-1_Country_name>\r\r
+ <ISO_3166-1_Alpha-2_code>BB</ISO_3166-1_Alpha-2_code>\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BÉLARUS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BELGIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BELIZE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BÉNIN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BJ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BERMUDES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BHOUTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BOLIVIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BOSNIE-HERZÉGOVINE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BOTSWANA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BOUVET, ÎLE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BV</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BRÉSIL</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BRUNÉI DARUSSALAM</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BULGARIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BURKINA FASO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>BURUNDI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CAÏMANES, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CAMBODGE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CAMEROUN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CANADA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CAP-VERT</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CV</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CENTRAFRICAINE, RÉPUBLIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CHILI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CHINE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CHRISTMAS, ÎLE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CX</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CHYPRE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>COCOS (KEELING), ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>COLOMBIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>COMORES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CONGO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CONGO, LA RÉPUBLIQUE DÉMOCRATIQUE DU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CD</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>COOK, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CORÉE, RÉPUBLIQUE DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CORÉE, RÉPUBLIQUE POPULAIRE DÉMOCRATIQUE DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KP</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>COSTA RICA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CÔTE D'IVOIRE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CROATIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>HR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>CUBA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>DANEMARK</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>DK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>DJIBOUTI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>DJ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>DOMINICAINE, RÉPUBLIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>DO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>DOMINIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>DM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÉGYPTE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>EG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>EL SALVADOR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SV</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÉMIRATS ARABES UNIS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>AE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÉQUATEUR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>EC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÉRYTHRÉE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ER</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ESPAGNE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ES</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ESTONIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>EE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÉTATS-UNIS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>US</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÉTHIOPIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ET</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>FALKLAND, ÎLES (MALVINAS)</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>FK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>FÉROÉ, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>FO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>FIDJI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>FJ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>FINLANDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>FI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>FRANCE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>FR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GABON</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GAMBIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GÉORGIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GÉORGIE DU SUD ET LES ÎLES SANDWICH DU SUD</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GHANA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GIBRALTAR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GRÈCE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GRENADE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GD</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GROENLAND</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUADELOUPE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GP</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUAM</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUATEMALA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUERNESEY</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUINÉE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUINÉE-BISSAU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUINÉE ÉQUATORIALE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GQ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUYANA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>GUYANE FRANÇAISE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>HAÏTI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>HT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>HEARD, ÎLE ET MCDONALD, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>HM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>HONDURAS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>HN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>HONG-KONG</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>HK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>HONGRIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>HU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÎLE DE MAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÎLES MINEURES ÉLOIGNÉES DES ÉTATS-UNIS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>UM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÎLES VIERGES BRITANNIQUES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ÎLES VIERGES DES ÉTATS-UNIS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>INDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>INDONÉSIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ID</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>IRAN, RÉPUBLIQUE ISLAMIQUE D'</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>IRAQ</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IQ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>IRLANDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ISLANDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ISRAËL</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ITALIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>JAMAÏQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>JM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>JAPON</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>JP</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>JERSEY</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>JE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>JORDANIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>JO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>KAZAKHSTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>KENYA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>KIRGHIZISTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>KIRIBATI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>KOWEÏT</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LAO, RÉPUBLIQUE DÉMOCRATIQUE POPULAIRE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LESOTHO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LETTONIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LV</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LIBAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LB</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LIBÉRIA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LIBYENNE, JAMAHIRIYA ARABE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LIECHTENSTEIN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LITUANIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>LUXEMBOURG</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MACAO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MACÉDOINE, L'EX-RÉPUBLIQUE YOUGOSLAVE DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MADAGASCAR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MALAISIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MALAWI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MALDIVES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MV</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MALI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ML</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MALTE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MARIANNES DU NORD, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MP</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MAROC</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MARSHALL, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MARTINIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MQ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MAURICE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MAURITANIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MAYOTTE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>YT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MEXIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MX</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MICRONÉSIE, ÉTATS FÉDÉRÉS DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>FM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MOLDOVA, RÉPUBLIQUE DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MD</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MONACO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MONGOLIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MONTÉNÉGRO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ME</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MONTSERRAT</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MOZAMBIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>MYANMAR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NAMIBIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NAURU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NÉPAL</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NP</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NICARAGUA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NIGER</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NIGÉRIA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NIUÉ</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NORFOLK, ÎLE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NORVÈGE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NOUVELLE-CALÉDONIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>NOUVELLE-ZÉLANDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>OCÉAN INDIEN, TERRITOIRE BRITANNIQUE DE L'</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>IO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>OMAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>OM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>OUGANDA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>UG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>OUZBÉKISTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>UZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PAKISTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PALAOS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PALESTINIEN OCCUPÉ, TERRITOIRE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PANAMA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PAPOUASIE-NOUVELLE-GUINÉE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PARAGUAY</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PAYS-BAS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>NL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PÉROU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PHILIPPINES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PITCAIRN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>POLOGNE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>POLYNÉSIE FRANÇAISE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PORTO RICO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>PORTUGAL</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>QATAR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>QA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>RÉUNION</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>RE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ROUMANIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>RO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ROYAUME-UNI</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>GB</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>RUSSIE, FÉDÉRATION DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>RU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>RWANDA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>RW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAHARA OCCIDENTAL</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>EH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-BARTHÉLEMY</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>BL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINTE-HÉLÈNE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINTE-LUCIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-KITTS-ET-NEVIS</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>KN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-MARIN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-MARTIN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>MF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-PIERRE-ET-MIQUELON</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>PM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-SIÈGE (ÉTAT DE LA CITÉ DU VATICAN)</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAINT-VINCENT-ET-LES GRENADINES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SALOMON, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SB</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAMOA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>WS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAMOA AMÉRICAINES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>AS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SAO TOMÉ-ET-PRINCIPE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ST</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SÉNÉGAL</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SERBIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>RS</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SEYCHELLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SIERRA LEONE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SINGAPOUR</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SLOVAQUIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SLOVÉNIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SI</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SOMALIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SOUDAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SD</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SRI LANKA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>LK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SUÈDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SUISSE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SURINAME</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SVALBARD ET ÎLE JAN MAYEN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SJ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SWAZILAND</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>SYRIENNE, RÉPUBLIQUE ARABE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>SY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TADJIKISTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TJ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TAÏWAN, PROVINCE DE CHINE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TANZANIE, RÉPUBLIQUE-UNIE DE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TCHAD</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TD</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TCHÈQUE, RÉPUBLIQUE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>CZ</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TERRES AUSTRALES FRANÇAISES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>THAÏLANDE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TH</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TIMOR-LESTE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TL</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TOGO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TG</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TOKELAU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TK</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TONGA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TO</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TRINITÉ-ET-TOBAGO</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TT</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TUNISIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TURKMÉNISTAN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TURKS ET CAÏQUES, ÎLES</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TC</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TURQUIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TR</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>TUVALU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>TV</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>UKRAINE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>UA</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>URUGUAY</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>UY</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>VANUATU</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VU</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>VENEZUELA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>VIET NAM</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>VN</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>WALLIS ET FUTUNA</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>WF</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>YÉMEN</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>YE</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ZAMBIE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ZM</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Entry>\r\r
+\r\r
+ <ISO_3166-1_Country_name>ZIMBABWE</ISO_3166-1_Country_name>\r\r
+\r\r
+ <ISO_3166-1_Alpha-2_code>ZW</ISO_3166-1_Alpha-2_code>\r\r
+\r\r
+ </ISO_3166-1_Entry>\r\r
+\r\r
+</ISO_3166-1_List_fr>\r\r
+\r\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r\r
+<NaturesOM>\r\r
+ <Nature code="MISSION">Mission</Nature>\r\r
+ <Nature code="STAGE">Stage</Nature>\r\r
+ <Nature code="INTERIM">Interim</Nature>\r\r
+ <Nature code="ABSENCE_TEMPORAIRE">Absence temporaire</Nature>\r\r
+ <Nature code="SANS_FRAIS">Sans frais</Nature>\r\r
+ <Nature code="MAINTIEN_ORDRE">Maintien de l'ordre</Nature>\r\r
+ <Nature code="AUTRE">Autre</Nature>\r\r
+</NaturesOM>\r\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r\r
+<SituationsFamiliales>\r\r
+ <situation code="CELIBATAIRE">Célibataire</situation>\r\r
+ <situation code="MARIE">Marié(e)</situation>\r\r
+ <situation code="DIVORCE">Divorcé(e)</situation>\r\r
+ <situation code="VEUF">Veuf(ve)</situation>\r\r
+ <situation code="PACSE">Pacsé(e)</situation>\r\r
+ <situation code="CONCUBINAGE">Vit maritalement</situation>\r\r
+</SituationsFamiliales>\r\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r\r
+<TypesEtatFrais>\r\r
+ <EtatFrais code="K1">Etat de frais</EtatFrais>\r\r
+ <EtatFrais code="K2">Avance sur frais</EtatFrais>\r\r
+ <EtatFrais code="K3">Régularisation d'une avance</EtatFrais>\r\r
+</TypesEtatFrais>\r\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<TypesFaitsGenerateurs>
+ <Type code="ORDRE_MISSION">Ordre de mission</Type>
+ <Type code="CONVOCATION">Convocation</Type>
+ <Type code="DECISION_AUTORITE_TERRITORIALE">Décision de l'autorité territoriale</Type>
+</TypesFaitsGenerateurs>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r\r
+<TypesFrais>\r\r
+ <Frais code="AUTRE">Autre</Frais>\r\r
+ <Frais code="HOTEL">Hotel</Frais>\r\r
+ <Frais code="PARKING">Parking</Frais>\r\r
+ <Frais code="VOITURE">Voiture</Frais>\r\r
+ <Frais code="2_ROUES">2 roues</Frais>\r\r
+ <Frais code="TAXI">Taxi</Frais>\r\r
+ <Frais code="PEAGE">Péage</Frais>\r\r
+ <Frais code="TRAIN">Train</Frais>\r\r
+ <Frais code="AVION">Avion</Frais>\r\r
+ <Frais code="CAR">Car / Bus</Frais>\r\r
+ <Frais code="BATEAU">Bateau</Frais>\r\r
+ <Frais code="AUTRE_TRANSPORT_COMMUN">Transport en commun</Frais>\r\r
+ <Frais code="REPAS">Repas</Frais>\r\r
+ <Frais code="NUITEE">Nuitée</Frais>\r\r
+ <Frais code="ABONNEMENT">Abonnement</Frais>\r\r
+</TypesFrais>\r\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<TypesPersonnes>
+ <Type code="AGENT">Agents territoriaux et autres personnes collaborant aux commissions</Type>
+ <Type code="AUTRE">Personnes autres que celles qui reçoivent d'une collectivité ou d'un de ses établissements publics à caractère administratif une rémunération au titre de leur activité principale</Type>
+</TypesPersonnes>
\ No newline at end of file
--- /dev/null
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package fr.gouv.finances.dgfip.xemelios.etatFraisSPL;
+
+import fr.gouv.finances.dgfip.xemelios.auth.XemeliosUser;
+import fr.gouv.finances.dgfip.xemelios.common.Constants;
+import fr.gouv.finances.dgfip.utils.xml.SAXWriter;
+import fr.gouv.finances.dgfip.xemelios.utils.XmlUtils;
+import fr.gouv.finances.dgfip.xemelios.common.FileInfo;
+import fr.gouv.finances.dgfip.xemelios.importers.DefaultImporter;
+import fr.gouv.finances.dgfip.xemelios.importers.ImportServiceProvider;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+import org.xml.sax.helpers.DefaultHandler;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Stack;
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.parsers.SAXParser;
+
+/**
+ *
+ * @author franck.nhieu
+ *
+ */
+
+public class EtatFraisSPLImporter extends DefaultImporter {
+ private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(EtatFraisSPLImporter.class);
+
+ // ETAT
+ //public static final String COLLECTIVITE_PATH = "/ef:EtatsFrais/ef:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID";
+ // SPL
+ public static final String COLLECTIVITE_PATH = "/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:SiretBP";
+ public static final String BUDGET_PATH = "/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:CodeBud";
+ public static final String LIB_COLLECTIVITE_PATH = "/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:LibelleCollectivite";
+ public static final String LIB_BUDGET_PATH = "/ef:EtatsFrais/ef:Invoice/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/dgfip:EtatFraisExtension/dgfip:EtatFrais/dgfip:LibelleBudget";
+
+ private static final String EXPECTED_ERROR = "EXPECTED_ERROR";
+ private static final String MISSING_ERROR = "MISSING_ERROR";
+ private File outputTmpFile;
+
+ public EtatFraisSPLImporter(XemeliosUser user) {
+ super(user);
+ }
+
+ @Override
+ protected FileInfo importFile(File f) throws Exception {
+ logger.debug("Import File: "+f.getAbsolutePath());
+ getImpSvcProvider().startLongWait();
+ try {
+ File newFile = wrapFile(f);
+ logger.debug("Wrapped File: "+newFile.getAbsolutePath());
+ return super.importFile(newFile);
+ } catch( Exception e ) {
+ // on appelle pas le super car cette méthode demande le code budget et collectivité par défaut
+ // et on retourne null, sinon on rethrow l'execption
+ if( MISSING_ERROR.equals(e.getMessage()))
+ return null;
+ else
+ throw e;
+ }
+ }
+
+ @Override
+ public void done() {
+ super.done();
+ outputTmpFile.delete();
+ }
+
+ protected File wrapFile(File f) throws Exception {
+ SAXParserFactory fact = SAXParserFactory.newInstance();
+ fact.setNamespaceAware(true);
+ outputTmpFile = new File(getTmpDir(),f.getName());
+ while(outputTmpFile.exists()) {
+ if(outputTmpFile.equals(f)) {
+ File tmpDir = outputTmpFile.getParentFile();
+ tmpDir = new File(tmpDir,"TMP-DIR");
+ tmpDir.mkdirs();
+ outputTmpFile = new File(tmpDir,f.getName());
+ } else {
+ outputTmpFile.delete();
+ }
+ }
+//logger.debug("outputTmpFile : "+outputTmpFile.getAbsolutePath());
+ FileOutputStream fos = null;
+ try {
+ SAXParser collParser = fact.newSAXParser();
+ CollHandler handler = new CollHandler(getDocumentModel().getNamespaces());
+ String collectivite = "";
+ String budget = "";
+ String libelle_budget = "";
+ String libelle_collectivite = "";
+ try {
+ collParser.parse(f, handler);
+ } catch(SAXException saxEx) {
+ if(!EXPECTED_ERROR.equals(saxEx.getMessage())) {
+ logger.debug("SAXEx : "+saxEx.getMessage());
+ throw saxEx;
+ }
+ }
+
+ collectivite = handler.getCollectivite();
+ budget = handler.getBudget();
+ libelle_collectivite = handler.getLibelleCollectivite();
+ libelle_budget = handler.getLibelleBudget();
+
+ boolean bThrowException = false;
+ String sError = "";
+ if ( collectivite == null ) {
+ sError = sError.concat("Le code collectivité est obligatoire\n");
+ bThrowException = true;
+ }
+ if ( libelle_collectivite == null ) {
+ sError = sError.concat("Le libellé de la collectivité est obligatoire\n");
+ bThrowException = true;
+ }
+ if ( budget == null ) {
+ sError = sError.concat("Le code bugdet est obligatoire\n");
+ bThrowException = true;
+ }
+ if ( libelle_budget == null ) {
+ sError = sError.concat("Le libellé du budget est obligatoire\n");
+ bThrowException = true;
+ }
+
+ if( bThrowException ) {
+ getImpSvcProvider().displayMessage(sError, ImportServiceProvider.MSG_TYPE_ERROR);
+ throw new Exception(MISSING_ERROR);
+ }
+
+ fos = new FileOutputStream(outputTmpFile);
+ String encoding = getFileEncoding(f);
+ final String p_collectivite = collectivite;
+ final String p_lib_collectivite = libelle_collectivite;
+ final String p_budget = budget;
+ final String p_lib_budget = libelle_budget;
+
+ SAXWriter writer = new SAXWriter(fos, encoding) {
+ @Override
+ public void startDocument() throws SAXException {
+ super.startDocument();
+ startPrefixMapping("added", Constants.ADDED_NS_URI);
+ startElement(Constants.ADDED_NS_URI, "DocEtatsFrais", new QName(Constants.ADDED_NS_URI, "DocEtatsFrais", "added").toString(),new AttributesImpl());
+ AttributesImpl attrsColl = new AttributesImpl();
+ attrsColl.addAttribute("", "code", "", "xs:string", p_collectivite );
+ attrsColl.addAttribute("", "libelle", "", "xs:string", p_lib_collectivite );
+ startElement(Constants.ADDED_NS_URI, "Collectivite", new QName(Constants.ADDED_NS_URI, "Collectivite", "added").toString(),attrsColl);
+ endElement(Constants.ADDED_NS_URI, "Collectivite", new QName(Constants.ADDED_NS_URI, "Collectivite", "added").toString());
+ AttributesImpl attrs = new AttributesImpl();
+ attrs.addAttribute("", "code", "", "xs:string", p_budget);
+ attrs.addAttribute("", "libelle", "", "xs:string", p_lib_budget);
+ startElement(Constants.ADDED_NS_URI, "Budget", new QName(Constants.ADDED_NS_URI, "Budget", "added").toString(),attrs);
+ endElement(Constants.ADDED_NS_URI, "Budget", new QName(Constants.ADDED_NS_URI, "Budget", "added").toString());
+ }
+
+ @Override
+ public void endDocument() throws SAXException {
+ endElement(Constants.ADDED_NS_URI, "DocEtatsFrais", new QName(Constants.ADDED_NS_URI, "DocEtatsFrais", "added").toString());
+ endPrefixMapping("added");
+ super.endDocument();
+ }
+
+ @Override
+ public void processingInstruction(String target, String data) throws SAXException {
+ //super.processingInstruction(target, data);
+ // a l'import, on vire la reference à la feuille de style
+ }
+ };
+
+ SAXParser parser = fact.newSAXParser();
+ parser.parse(f, writer);
+ } catch(Exception ex) {
+ logger.error("wrapFile(File):",ex);
+ if( MISSING_ERROR.equals(ex.getMessage()))
+ throw ex;
+ } finally {
+ try {
+ fos.flush();
+ fos.close();
+ } catch(Throwable t) {}
+ }
+ return outputTmpFile;
+ }
+
+ private class CollHandler extends DefaultHandler {
+ Stack<QName> stack;
+ NamespaceContext nsCtx;
+ Stack<StringBuffer> textContent;
+ private String collectivite;
+ private String budget;
+ private String lib_collectivite;
+ private String lib_budget;
+
+ public String getCollectivite() { return collectivite; }
+ public String getLibelleCollectivite() { return lib_collectivite; }
+ public String getBudget() { return budget; }
+ public String getLibelleBudget() { return lib_budget; }
+
+ public CollHandler(NamespaceContext nsCtx) {
+ super();
+ this.nsCtx=nsCtx;
+ stack = new Stack<QName>();
+ textContent = new Stack<StringBuffer>();
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+ super.startElement(uri, localName, qName, attributes);
+ QName qname = XmlUtils.getQName(uri, localName, qName);
+ stack.push(qname);
+ textContent.push(new StringBuffer());
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String qName) throws SAXException {
+ super.endElement(uri, localName, qName);
+ String pathTag = XmlUtils.getPath(stack, nsCtx);
+ if(COLLECTIVITE_PATH.equals(pathTag)) {
+ collectivite = textContent.peek().toString();
+ logger.debug("collectivite(endElement) : "+collectivite);
+ } else if (LIB_COLLECTIVITE_PATH.equals(pathTag)) {
+ lib_collectivite = textContent.peek().toString();
+ logger.debug("LibelleCollectivite(endElement) : "+lib_collectivite);
+ } else if (BUDGET_PATH.equals(pathTag)) {
+ budget = textContent.peek().toString();
+ logger.debug("budget(endElement) : "+budget);
+ } else if (LIB_BUDGET_PATH.equals(pathTag)) {
+ lib_budget = textContent.peek().toString();
+ logger.debug("lib_budget(endElement) : "+lib_budget);
+ }
+
+ if(
+ ( collectivite != null ) &&
+ ( budget != null ) &&
+ ( lib_budget != null ) &&
+ ( lib_collectivite != null )
+ ) {
+ // toutes les vérifications ont été faite, on inutile de continuer à parser le document.
+ logger.debug("Parser SAX : tous les attributes ont été trouvé, on break.");
+ throw new SAXException(EXPECTED_ERROR);
+ }
+ stack.pop();
+ }
+
+ @Override
+ public void characters(char[] ch, int start, int length) throws SAXException {
+ super.characters(ch, start, length);
+ String s = new String(ch,start,length).trim();
+ textContent.peek().append(s);
+ }
+ }
+}
--- /dev/null
+Manifest-version: 1.0
+Jar-Version: @version@
+Jar-Content: @name@
+
--- /dev/null
+Déplacement du bloc "sous-totaux" à gauche des totaux
+le etat-frais.jar n'allait pas dans root/lib