--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project name="XEMELIOS-edmn" default="usage" basedir=".">
+ <description>Builds, tests, and runs the project XEMELIOS edmn</description>
+ <property file="${user.home}/.ant.properties"/>
+<<<<<<< build.xml
+ <xmlproperty file="component-definition-properties.xml"/>
+=======
+<property name="compile.debug" value="true"/>
+>>>>>>> 1.10.4.1
+
+ <target name="usage">
+ <echo>
+ Using ${ant.version}
+
+ These are targets supported by this ANT build script:
+
+ compile - compile all .java files, except
+ thoses in ./tmp folder.
+ clean - deletes all compiled and generated
+ files and resources.
+ jars - build jar files.
+
+ Do not call this script directly, use the one located
+ at root of projet (in ../..) instead.
+ </echo>
+ </target>
+
+ <target name="compile" depends="mk-output-dirs">
+ <javac srcdir="java" destdir="build/classes" debug="${compile.debug}" encoding="ISO-8859-1">
+ <classpath>
+ <pathelement path="../starter/build/classes"/>
+ <pathelement path="../xemelios-core/build/classes"/>
+ <pathelement path="../xml-marshall/build/classes"/>
+ <fileset dir="../core/lib" includes="*.jar"/>
+ <fileset dir="../xemelios-core/lib" includes="*.jar"/>
+ <pathelement path="../mysql-persistence/build/classes"/>
+ <pathelement path="../core/build/classes"/>
+ </classpath>
+ </javac>
+ <copy todir="build/classes">
+ <fileset dir="java">
+ <include name="**/*.xsl"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="jars">
+ <property file="component.properties"/>
+ <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/edmn.jar" basedir="build/classes" manifest="build/manifest.txt"/>
+ </target>
+
+ <target name="config" depends="check-config">
+ <property file="component.properties"/>
+ <property name="component.dir" value="build/config/${component.name}/${component.release}"/>
+ <mkdir dir="${component.dir}"/>
+ <copy todir="${component.dir}">
+ <fileset dir="conf">
+ <include name="edmn/*"/>
+ <include name="edmn.xml"/>
+ <exclude name="**/CVS/*"/>
+ </fileset>
+ <fileset dir="build/jars" includes="*.jar"/>
+ </copy>
+ <propertyfile file="${component.dir}/component.properties">
+ <entry key="description" value="Configuration pour l'EDMN"/>
+ <entry key="type" value="config-updates"/>
+ <entry key="base.dest" value="${xemelios.prg}/root/documents-def/"/>
+ <entry key="requires" value="${component.requires}"/>
+ <entry key="edmn.jar.dest" value="${xemelios.prg}/root/lib/"/>
+ </propertyfile>
+ </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>
+ <target name="check-config">
+ <xslt style="../../utils/persistence-verifier.xsl" in="conf/edmn/edmn-persistence.xml" out="check-result.txt" force="true">
+ <param name="fileName" expression="conf/edmn/edmn-persistence.xml"/>
+ </xslt>
+ <!--exec executable="more">
+ <arg value="check-result.txt"/>
+ </exec-->
+ <delete file="check-result.txt"/>
+ </target>
+
+</project>
+
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project name="XEMELIOS-edmn" default="usage" basedir=".">
+ <import file="../../common-tasks.xml"/>
+ <description>Builds, tests, and runs the project XEMELIOS edmn</description>
+ <property file="${user.home}/.ant.properties"/>
+ <xmlproperty file="component-definition-properties.xml"/>
+
+ <target name="usage">
+ <echo>
+ Using ${ant.version}
+
+ These are targets supported by this ANT build script:
+
+ compile - compile all .java files, except
+ thoses in ./tmp folder.
+ clean - deletes all compiled and generated
+ files and resources.
+ jars - build jar files.
+
+ Do not call this script directly, use the one located
+ at root of projet (in ../..) instead.
+ </echo>
+ </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/classes"/>
+ <pathelement path="../xml-marshall/build/classes"/>
+ <fileset dir="../core/lib" includes="*.jar"/>
+ <pathelement path="../core/build/classes"/>
+ </classpath>
+ </javac>
+ <copy todir="build/classes">
+ <fileset dir="java">
+ <include name="**/*.xsl"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="jars">
+ <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 file="component.properties"/>
+ <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="edmn/*"/>
+ <exclude name="edmn.xml"/>
+ <exclude name="**/CVS/*"/>
+ </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>
\ No newline at end of file
--- /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>edmn</name>
+ <description>Configuration EDMN</description>
+ <release>5.0.0.3+</release>
+ <url>http://xemelios.org/updatesV5/edmn</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/core" release="5.0.0.4"/>
+ </requires>
+ <release-notes>
+ <note visibility="dev">Correction du script qui générait un jar avec un nom incorrect.</note>
+ <release v="5.0.0.3">
+ <note visibility="public">Augmentation de la taille des colonnes pour les montants</note>
+ <note visibility="dev">Correction des ordres de création de table pour traçabilité des archives</note>
+ </release>
+ <release v="5.0.0.2">
+ <note>Standardisation des factory XML</note>
+ </release>
+ <release v="5.0.0.1">
+ <note>Mise à jour de l'aide en ligne</note>
+ </release>
+ </release-notes>
+</component>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project name="XEMELIOS-edmn" default="usage" basedir=".">
+ <import file="../../common-tasks.xml"/>
+ <description>Builds, tests, and runs the project XEMELIOS edmn</description>
+ <property file="${user.home}/.ant.properties"/>
+ <xmlproperty file="component-definition-properties.xml"/>
+
+ <target name="usage">
+ <echo>
+ Using ${ant.version}
+
+ These are targets supported by this ANT build script:
+
+ compile - compile all .java files, except
+ thoses in ./tmp folder.
+ clean - deletes all compiled and generated
+ files and resources.
+ jars - build jar files.
+
+ Do not call this script directly, use the one located
+ at root of projet (in ../..) instead.
+ </echo>
+ </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/classes"/>
+ <pathelement path="../xml-marshall/build/classes"/>
+ <fileset dir="../core/lib" includes="*.jar"/>
+ <pathelement path="../core/build/classes"/>
+ </classpath>
+ </javac>
+ <copy todir="build/classes">
+ <fileset dir="java">
+ <include name="**/*.xsl"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="jars">
+ <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 file="component.properties"/>
+ <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="edmn/*"/>
+ <exclude name="edmn.xml"/>
+ <exclude name="**/CVS/*"/>
+ </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>
\ No newline at end of file
--- /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>edmn</name>
+ <description>Configuration EDMN</description>
+ <release>5.0.0.5+</release>
+ <url>http://xemelios.org/updatesV5/edmn</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/core" release="5.0.0.4"/>
+ </requires>
+ <release-notes>
+ <note visibility="dev">Correction du script qui générait un jar avec un nom incorrect.</note>
+ <release v="5.0.0.5">
+ <note visibility="dev">Suppression de l'ajout du champ IMPUTATION dans la table T2 de l'EDMN (patch)</note>
+ </release>
+ <release v="5.0.0.4">
+ <note visibility="public">Ajout des données Chorus aux configurations (Recherche/Liste de résultat)</note>
+ </release>
+ <release v="5.0.0.3">
+ <note visibility="public">Augmentation de la taille des colonnes pour les montants</note>
+ <note visibility="dev">Correction des ordres de création de table pour traçabilité des archives</note>
+ </release>
+ <release v="5.0.0.2">
+ <note>Standardisation des factory XML</note>
+ </release>
+ <release v="5.0.0.1">
+ <note>Mise à jour de l'aide en ligne</note>
+ </release>
+ </release-notes>
+</component>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<documents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../../../defs/config-metier/documents-def.xsd">
+ <document
+ balise="Edmn"
+ extension="xml"
+ id="edmn"
+ import-class="fr.gouv.finances.dgfip.xemelios.importers.DefaultImporter"
+ persistence-config="edmn/edmn-persistence.xml"
+ menu-grouping="group"
+ referentiel="Nomenclatures"
+ titre="EDMN"
+ natIdColl="SIRET">
+ <namespaces>
+ <ns prefix="n" uri="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"/>
+ <ns prefix="added" uri="http://projets.admisource.gouv.fr/xemelios/namespaces#added"/>
+ </namespaces>
+ <special-key id="sp1" libelle="Année" path="/Edmn/ReferenceNomenclature/Code/@V" pos="1"/>
+ <default-budget value="00">LFI</default-budget>
+ <collectivite-path id="cp">
+ <path>/Edmn/Collectivite</path>
+ <code-path>/Edmn/Collectivite/Code/@V</code-path>
+ <libelle-path>/Edmn/Collectivite/Libelle/@V</libelle-path>
+ </collectivite-path>
+ <budget-path id="b1">
+ <path>/Edmn/Budget</path>
+ <code-path>/Edmn/Budget/Code/@V</code-path>
+ <libelle-path>/Edmn/Budget/Libelle/@V</libelle-path>
+ </budget-path>
+ <entete id="e1">ReferenceNomenclature</entete>
+ <entete id="e2">Collectivite</entete>
+ <entete id="e3">Budget</entete>
+ <etat
+ balise="EtatEdmn"
+ balise-namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ id="etatEdmn"
+ titre="Etat Détaillé des Mandats Nationaux"
+ use-external-browser="false"
+ importable-element="ligneEdmn"
+ exportable="true"
+ xslt-file="edmn/edmn.xsl">
+ <help>Etat détaillé des mandats nationaux</help>
+ <element balise="LigneEdmn" id="ligneEdmn" max-display="200" titre="Etat Détaillé des Mandats Nationaux" searchable="true">
+ <path>/n:Edmn/n:EtatEdmn/n:LigneEdmn</path>
+ <environment>
+ <variable name="max-display" domain="element" type="integer">
+ <libelle>Nombre de lignes affichées</libelle>
+ <reference name="@max-display"/>
+ <input id="max-display"/>
+ </variable>
+ <variable name="max-display" domain="documents" type="integer">
+ <libelle>Nombre de lignes affichées</libelle>
+ <reference
+ name="/documents/document[@id='edmn']/etat[@id='etatEdmn']/element[@id='ligneEdmn']/@max-display"/>
+ <input id="max-display"/>
+ </variable>
+ </environment>
+ <liste-resultat ordre="ASC" tri-defaut="DateCreation">
+ <champ id="Comptable" libelle="Comptable" exportable="true" identifiant="true">
+ <help>Code du comptable</help>
+ <valeur>n:Comptable/@V</valeur>
+ </champ>
+ <champ id="lib-comptable" libelle="Comptable (lib.)" exportable="true">
+ <help>Libellé du comptable</help>
+ <valeur>n:LibelleComptable/@V</valeur>
+ </champ>
+ <champ id="Ministere" libelle="Ministère" exportable="true" identifiant="true">
+ <help>Code du ministère</help>
+ <valeur>n:Ministere/@V</valeur>
+ </champ>
+ <champ id="LibMinistere" libelle="Ministère (lib.)" exportable="true">
+ <help>Libellé du ministère</help>
+ <valeur>n:Ministere/@LibelleMinistere</valeur>
+ </champ>
+ <champ id="Ordo" libelle="Ordonnateur" exportable="true" identifiant="true">
+ <help>Code de l'ordonnateur</help>
+ <valeur>n:Ordo/@V</valeur>
+ </champ>
+ <champ id="lib-ordo" libelle="Ordonnateur (lib.)" exportable="true">
+ <help>Libellé de l'ordonnateur</help>
+ <valeur>n:LibelleOrdonnateur/@V</valeur>
+ </champ>
+ <champ id="ChapBudg" libelle="Programme" exportable="true">
+ <help>Code du programme</help>
+ <valeur>n:ChapBudg/@V</valeur>
+ </champ>
+ <champ id="LibProgramme" libelle="Programme (lib.)" exportable="true">
+ <help>Libellé du programme</help>
+ <valeur>n:LibelleProgramme/@V</valeur>
+ </champ>
+ <champ id="ArtBudgExec" libelle="Sous-action" exportable="true">
+ <help>Code sous-action</help>
+ <valeur>n:ArtBudgExec/@V</valeur>
+ </champ>
+ <champ id="LibAction" libelle="Sous-action (lib.)" exportable="true">
+ <help>Libellé sous-action</help>
+ <valeur>n:LibelleAction/@V</valeur>
+ </champ>
+ <champ id="ParagBudgExec" libelle="Compte PCE" exportable="true">
+ <help>Compte PCE</help>
+ <valeur>n:ParagBudgExec/@V</valeur>
+ </champ>
+ <champ id="libBudget" libelle="Compte PCE (lib.)" exportable="true">
+ <help>Libellé du compte PCE</help>
+ <valeur>n:LibelleBudget/@V</valeur>
+ </champ>
+ <champ id="NumMandat" libelle="Num Mandat" exportable="true" identifiant="true">
+ <help>Numéro du mandat</help>
+ <valeur>n:NumMandat/@V</valeur>
+ </champ>
+ <champ id="MtPJ" libelle="Montant" datatype="amount" exportable="true" aggregate="false">
+ <help>Montant de la pièce justificative</help>
+ <valeur>n:MtPJ/@V</valeur>
+ </champ>
+ <champ id="DateCreation" libelle="Date comptabilisation" datatype="date" exportable="true">
+ <help>Date de comptabilisation</help>
+ <valeur>n:DateCreation/@V</valeur>
+ </champ>
+ <champ id="NumLiasseDeb" libelle="Liasse Locale (déb.)" exportable="true">
+ <help>Premier numéro de liasse locale</help>
+ <valeur>n:NumLiasseDeb/@V</valeur>
+ </champ>
+ <champ id="NumLiasseFin" libelle="Liasse Locale (fin)" exportable="true">
+ <help>Dernier numéro de liasse locale</help>
+ <valeur>n:NumLiasseFin/@V</valeur>
+ </champ>
+ <champ id="NumLiasseCentrale" libelle="Liasse Centrale (déb.)" exportable="true">
+ <help>Premier numéro de liasse nationale</help>
+ <valeur>n:NumLiasseNationale/n:Liasse[1]/@national</valeur>
+ </champ>
+ <champ id="NumLiasseCentraleFin" libelle="Liasse Centrale (fin.)" exportable="true">
+ <help>Dernier numéro de liasse nationale</help>
+ <valeur>n:NumLiasseNationale/n:Liasse[last()]/@national</valeur>
+ </champ>
+ <champ id="AllLiasseCentrale" libelle="Liasses Centrales" exportable="true">
+ <help>Tous les numéros de liasse centrale</help>
+ <valeur>n:NumLiasseNationale/@n:allLiasse</valeur>
+ </champ>
+
+ <champ id="TypeEvt" libelle="Type évènement" default-display="false" exportable="true">
+ <help>Type d'évènement</help>
+ <valeur>n:TypeEvt/@V</valeur>
+ </champ>
+ <champ id="AnneeBudget" libelle="Année Gestion Budgetaire" datatype="integer" default-display="false" exportable="true">
+ <help>Année budgétaire</help>
+ <valeur>n:AnneeBudget/@V</valeur>
+ </champ>
+ <champ id="CpteSpeTres" libelle="Compte spécial Trésor" default-display="false" exportable="true">
+ <help>Compte spécial du trésor</help>
+ <valeur>n:CompteSpeTresor/@V</valeur>
+ </champ>
+ <champ id="NumOpeInvest" libelle="Num Opé. Invest." default-display="false" exportable="true">
+ <help>Numéro d'opération d'investissement</help>
+ <valeur>n:NumOpeInvest/@V</valeur>
+ </champ>
+ <champ id="AnneeEngag" libelle="Année Engag." datatype="integer" default-display="false" exportable="true">
+ <help>Année d'engagement</help>
+ <valeur>n:AnneeEngag/@V</valeur>
+ </champ>
+ <champ id="NumEngag" libelle="Num Engag." default-display="false" exportable="true">
+ <help>Numéro d'engagement</help>
+ <valeur>n:NumEngag/@V</valeur>
+ </champ>
+ <champ id="Trimestre" libelle="Trimestre" default-display="false" exportable="true">
+ <help>Trimestre</help>
+ <valeur>n:Trimestre/@V</valeur>
+ </champ>
+ <champ id="Mois" libelle="Mois" datatype="integer" default-display="false" exportable="true">
+ <help>Mois</help>
+ <valeur>n:Mois/@V</valeur>
+ </champ>
+ <champ id="ChapClassPJ" libelle="Chap. class. PJ" default-display="false" exportable="true">
+ <help>Chapitre classement pièce justificative</help>
+ <valeur>n:ChapClassPJ/@V</valeur>
+ </champ>
+ <champ id="TypePaiement" libelle="Type paiement" default-display="false" exportable="true">
+ <help>Type de paiement</help>
+ <valeur>n:TypePaiement/@V</valeur>
+ </champ>
+ <champ id="ArtBudgPrev" libelle="Article regroupement" default-display="false" exportable="true">
+ <help>Article de regroupement</help>
+ <valeur>n:ArtBudgPrev/@V</valeur>
+ </champ>
+ <champ id="Zone24" libelle="Zone24" default-display="false" exportable="true">
+ <help>Sans valeur à ce jour</help>
+ <valeur>n:Zone24/@V</valeur>
+ </champ>
+ <champ id="TypeSuiviEco1" libelle="Type Suivi éco 1" default-display="false" exportable="true">
+ <help>Type de suivi économique 1</help>
+ <valeur>n:TypeSuiviEco1/@V</valeur>
+ </champ>
+ <champ id="TypeSuiviEco2" libelle="Type Suivi éco 2" default-display="false" exportable="true">
+ <help>Type de suivi économique 2</help>
+ <valeur>n:TypeSuiviEco2/@V</valeur>
+ </champ>
+ <champ id="TypeSuiviEco3" libelle="Type Suivi éco 3" default-display="false" exportable="true">
+ <help>Type de suivi économique 3</help>
+ <valeur>n:TypeSuiviEco3/@V</valeur>
+ </champ>
+ <champ id="CodeCorrection" libelle=" Code correction" default-display="false" exportable="true">
+ <help>Code de correction</help>
+ <valeur>n:CodeCorrection/@V</valeur>
+ </champ>
+ <champ id="CodeManip" libelle="Code manip." default-display="false" exportable="true">
+ <help>Code manipulation</help>
+ <valeur>n:CodeManip/@V</valeur>
+ </champ>
+ <champ id="CodeOperExc" libelle="Opération Exceptionnelle" default-display="false" exportable="true">
+ <help>Opération exceptionnelle</help>
+ <valeur>n:CodeOperExc/@V</valeur>
+ </champ>
+ <champ id="NumPieceComptable" libelle="Pièce comptable" default-display="false" exportable="true">
+ <help>Numéro de pièce comptable</help>
+ <valeur>n:NumPieceCompta/@V</valeur>
+ </champ>
+ <champ id="DatePaiement" libelle="Date Paiement" datatype="date" affichable="true" default-display="false" exportable="true">
+ <help>Date de paiement</help>
+ <valeur>n:DatePaiement/@V</valeur>
+ </champ>
+
+ <champ id="nomSociete" libelle="Nom Soc." default-display="false" exportable="true">
+ <help>Nom de la Societe</help>
+ <valeur>n:Depense/@NomSociete</valeur>
+ </champ>
+ <champ id="fournisseurNom" libelle="Fourn. Nom" default-display="false" exportable="true">
+ <help>Nom du Fournisseur</help>
+ <valeur>n:Depense/@FournisseurNom</valeur>
+ </champ>
+ <champ id="fournisseurSiret" libelle="Fourn. Siret" default-display="false" exportable="true">
+ <help>SIRET du Fournisseur</help>
+ <valeur>n:Depense/@FournisseurSiret</valeur>
+ </champ>
+ <champ id="payeurNom" libelle="Pay. Nom" default-display="false" exportable="true">
+ <help>Nom du Payeur</help>
+ <valeur>n:Depense/@PayeurNom</valeur>
+ </champ>
+ <champ id="payeurSiret" libelle="Pay. SIRET" default-display="false" exportable="true">
+ <help>SIRET du Payeur</help>
+ <valeur>n:Depense/@PayeurSiret</valeur>
+ </champ>
+ <champ id="ribPays" libelle="RIB (Pays)" default-display="false" exportable="true">
+ <help>RIB : Pays de la Banque</help>
+ <valeur>n:Depense/@RibPays</valeur>
+ </champ>
+ <champ id="ribBanc" libelle="RIB (Banque)" default-display="false" exportable="true">
+ <help>RIB : Banque</help>
+ <valeur>n:Depense/@RibBanc</valeur>
+ </champ>
+ <champ id="ribCompte" libelle="RIB (COMPTE)" default-display="false" exportable="true">
+ <help>RIB : Compte</help>
+ <valeur>n:Depense/@RibCompte</valeur>
+ </champ>
+ <champ id="ribCle" libelle="RIB (CLE)" default-display="false" exportable="true">
+ <help>RIB : Clé</help>
+ <valeur>n:Depense/@RibCle</valeur>
+ </champ>
+ <champ id="domaineFonctionnel" libelle="Dom. Fonc." default-display="false" exportable="true">
+ <help>Domaine Fonctionnel</help>
+ <valeur>n:Depense/@DomaineFonctionnel</valeur>
+ </champ>
+ <champ id="numEJLong" libelle="Ref. Marchés" default-display="false" exportable="true">
+ <help>Référence Marchés</help>
+ <valeur>n:Depense/@NumEJLong</valeur>
+ </champ>
+ </liste-resultat>
+
+ <enfants>
+ <enfant element="LiasseNat" path="n:NumLiasseNationale/n:Liasse"/>
+ </enfants>
+ <!-- trier les criteres par ordre alpha -->
+ <critere id="anneeBudget" libelle="Année Budgetaire">
+ <help>Permet de filtrer par année budgétaire</help>
+ <path>{n:AnneeBudget/@V##OPERATEUR:annee####VALEUR:annee##}</path>
+ <input id="annee" datatype="numeric"/>
+ </critere>
+ <critere id="artPrev" libelle="Article de regroup.">
+ <help>Permet de filtrer par article de regroupement</help>
+ <path>{##OPERATEUR:artPrev##(xem:UpperCase(n:ArtBudgPrev/@V),"##VALEUR:artPrev##")}</path>
+ <input id="artPrev" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/ArtBudgPrev/@V" -->
+ </critere>
+ <critere id="chapClassPJ" libelle="Chap. Class. PJ">
+ <help>Permet de filtrer par chapitre de classement de pièce justificative</help>
+ <path>{##OPERATEUR:chapClassPJ##(upper-case(n:ChapClassPJ/@V),"##VALEUR:ChapClassPJ##")}</path>
+ <input id="chapClassPJ" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="comptable" libelle="Comptable">
+ <help>Permet de filtrer par comptable</help>
+ <path>{##OPERATEUR:comptable##(xem:UpperCase(n:Comptable/@V),"##VALEUR:comptable##")}</path>
+ <input id="comptable" datatype="string" uppercase="true">
+ <help>Permet de saisir le code du comptable, ou d'aller sélectionner ce code dans une recherche externe</help>
+ <search-helper documentId="edmn" etatId="comptables" elementId="comptable" returnValue="hidden.compta.code">
+ <collectivite editable="false">$current-collectivite</collectivite>
+ <budget editable="false">$current-budget</budget>
+ <critere-mapping source="anneeBudget" target="compta.annee"/>
+ <critere-mapping source="comptable" target="compta.code"/>
+ <exclude-critere source="comptable"/>
+ </search-helper>
+ <!-- help="/Edmn/EtatEdmn/LigneEdmn/Comptable/@V" -->
+ </input>
+ </critere>
+ <critere id="lib-comptable" libelle="Comptable (libellé)">
+ <help>Permet de filtrer par libellé de comptable. Attention, ce critère risque de pénaliser les performances de recherche.</help>
+ <path>{##OPERATEUR:libComptable##(xem:UpperCase(n:LibelleComptable/@V),"##VALEUR:libComptable##")}</path>
+ <input id="libComptable" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/LibelleComptable/@V" -->
+ </critere>
+ <critere id="cpce" libelle="Compte PCE">
+ <help>Permet de filtrer par compte PCE</help>
+ <path>{##OPERATEUR:cpce##(xem:UpperCase(n:ParagBudgExec/@V),"##VALEUR:cpce##")}</path>
+ <input id="cpce" datatype="string" uppercase="true">
+ <help>Un assistant permet d'aller recherche ce compte PCE dans la nomenclature des budgets.</help>
+ <search-helper documentId="edmn" etatId="budgets" elementId="budget" returnValue="hidden.cpce">
+ <collectivite editable="false">$current-collectivite</collectivite>
+ <budget editable="false">$current-budget</budget>
+ <required-critere ref-id="typeData">
+ <value key="VALEUR:data" value="CPCE"/>
+ </required-critere>
+ </search-helper>
+ </input>
+ </critere>
+ <critere id="dateCrea" libelle="Date Comptabilisation">
+ <help>Permet de filtrer par date de comptabilisation</help>
+ <path>{##OPERATEUR:dateCrea##(n:DateCreation/@V,'##VALEUR:dateCrea##')}</path>
+ <input id="dateCrea" datatype="date" xml-format="yyyy-MM-dd"/>
+ </critere>
+ <critere id="datePaie" libelle="Date Paiement">
+ <help>Permet de filtrer par date de paiement</help>
+ <path>{##OPERATEUR:datePaie##(n:DatePaiement/@V,'##VALEUR:datePaie##')}</path>
+ <input id="datePaie" datatype="date" xml-format="yyyy-MM-dd"/>
+ </critere>
+ <critere id="liasseCentrale" libelle="Liasse centrale">
+ <help>Permet de filtrer par numéro de liasse centrale</help>
+ <path>{n:NumLiasseNationale{n:Liasse{##OPERATEUR:numLiasse##(xem:UpperCase(@national),"##VALEUR:numLiasse##")}}}</path>
+ <input id="numLiasse" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="liasseLocaleDeb" libelle="Liasse locale - début">
+ <help>Permet de filtrer par premier numéro de liasse locale</help>
+ <path>{##OPERATEUR:numLiasse##(xem:UpperCase(n:NumLiasseDeb/@V),"##VALEUR:numLiasse##")}</path>
+ <input id="numLiasse" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="liasseLocaleFin" libelle="Liasse locale - fin">
+ <help>Permet de filtrer par dernier numéro de liasse locale</help>
+ <path>{##OPERATEUR:numLiasse##(xem:UpperCase(n:NumLiasseFin/@V),"##VALEUR:numLiasse##")}</path>
+ <input id="numLiasse" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="numMandat" libelle="Num Mandat">
+ <help>Permet de filtrer par numéro de mandat</help>
+ <path>{##OPERATEUR:numMandat##(xem:UpperCase(n:NumMandat/@V),"##VALEUR:numMandat##")}</path>
+ <input id="numMandat" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="ministere" libelle="Ministère">
+ <help>Permet de filtrer par ministère</help>
+ <path>{##OPERATEUR:ministere##(xem:UpperCase(n:Ministere/@V),"##VALEUR:ministere##")}</path>
+ <input id="ministere" datatype="string" uppercase="true">
+ <help>Un assistant permet de sélectionner le ministère dans la nomenclature des ministères</help>
+ <search-helper documentId="edmn" etatId="budgets" elementId="budget" returnValue="hidden.ministere">
+ <collectivite editable="false">$current-collectivite</collectivite>
+ <budget editable="false">$current-budget</budget>
+ <critere-mapping source="anneeBudget" target="compta.annee"/>
+ <critere-mapping source="comptable" target="compta.code"/>
+ <exclude-critere source="ministere"/>
+ </search-helper>
+ <!-- help="/Edmn/EtatEdmn/LigneEdmn/Ministere/@V" -->
+ </input>
+ </critere>
+ <critere id="libministere" libelle="Ministère (lib.)">
+ <help>Permet de filtrer par libellé de ministère</help>
+ <path>{##OPERATEUR:ministereLib##(xem:UpperCase(n:Ministere/@LibelleMinistere),"##VALEUR:ministereLib##")}</path>
+ <input id="ministereLib" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/Ministere/@LibelleMinistere" -->
+ </critere>
+ <critere id="mtPj" libelle="Montant">
+ <help>Permet de filtrer par montant de pièce justificative</help>
+ <path>{n:MtPJ/@V##OPERATEUR:mtPj####VALEUR:mtPj##}</path>
+ <input id="mtPj" datatype="numeric"/>
+ </critere>
+ <critere id="codeOperExc" libelle="Opération Exceptionnelle">
+ <help>Permet de filtrer par opération exceptionnelle</help>
+ <path>{##OPERATEUR:codeOperExc##(xem:UpperCase(n:CodeOperExc/@V),"##VALEUR:codeOperExc##")}</path>
+ <input id="codeOperExc" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/CodeOperExc/@V" -->
+ </critere>
+ <critere id="numOpeInvest" libelle="Opération d'investissement">
+ <help>Permet de filtrer par opération d'investissement</help>
+ <path>{##OPERATEUR:numOpeInvest##(xem:UpperCase(n:NumOpeInvest/@V),"##VALEUR:numOpeInvest##")}</path>
+ <input id="numOpeInvest" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="ordo" libelle="Ordonnateur">
+ <help>Permet de filtrer par ordonnateur</help>
+ <path>{##OPERATEUR:ordo##(xem:UpperCase(n:Ordo/@V),"##VALEUR:ordo##")}</path>
+ <input id="ordo" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/Ordo/@V" -->
+ </critere>
+ <critere id="lib-ordo" libelle="Ordonnateur (libellé)">
+ <help>Permet de filtrer par libellé d'ordonnateur</help>
+ <path>{##OPERATEUR:libOrdo##(xem:UpperCase(n:LibelleOrdonnateur/@V),"##VALEUR:libOrdo##")}</path>
+ <input id="libOrdo" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/LibelleOrdonnateur/@V" -->
+ </critere>
+ <critere id="numPieceCompta" libelle="Pièce Comptable">
+ <help>Permet de filtrer par numéro de pièce comptable</help>
+ <path>{##OPERATEUR:numPieceCompta##(xem:UpperCase(n:NumPieceCompta/@V),"##VALEUR:numPieceCompta##")}</path>
+ <input id="numPieceCompta" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/NumPieceCompta/@V" -->
+ </critere>
+ <critere id="programme" libelle="Programme">
+ <help>Permet de filtrer par numéro de programme</help>
+ <path>{##OPERATEUR:programme##(xem:UpperCase(n:ChapBudg/@V),"##VALEUR:programme##")}</path>
+ <input id="programme" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/ChapBudg/@V" -->
+ </critere>
+ <critere id="libProgramme" libelle="Programme (libellé)">
+ <help>Permet de filtrer par libellé de programme</help>
+ <path>{##OPERATEUR:libProgramme##(xem:UpperCase(n:LibelleProgramme/@V),"##VALEUR:libProgramme##")}</path>
+ <input id="libProgramme" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/LibelleProgramme/@V" -->
+ </critere>
+ <critere id="action" libelle="Sous-action">
+ <help>Permet de filtrer par numéro de sous-action</help>
+ <path>{##OPERATEUR:action##(xem:UpperCase(n:ArtBudgExec/@V),"##VALEUR:action##")}</path>
+ <input id="action" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/ArtBudgExec/@V" -->
+ </critere>
+ <critere id="libAction" libelle="Sous-action (libellé)">
+ <help>Permet de filtrer par libellé de sous-action</help>
+ <path>{##OPERATEUR:libAction##(xem:UpperCase(n:LibelleAction/@V),"##VALEUR:libAction##")}</path>
+ <input id="libAction" datatype="string" uppercase="true"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/LibelleAction/@V" -->
+ </critere>
+ <critere id="trimestre" libelle="Trimestre">
+ <help>Permet de filtrer par trimestre</help>
+ <path>{n:Trimestre/@V##OPERATEUR:trimestre####VALEUR:trimestre##}</path>
+ <input id="trimestre" datatype="numeric"/>
+ </critere>
+ <critere id="typeEvt" libelle="Type évenement">
+ <help>Permet de filtrer par type d'évènement</help>
+ <path>{n:TypeEvt/@V="##VALEUR:typeEvt##"}</path>
+ <select id="typeEvt">
+ <option value="610">DL en DC... (610)</option>
+ <option value="605">Ventilation budgétaire de la paie (605)</option>
+ <option value="612">Ordonnance de réimputation (612)</option>
+ <option value="601">Ordonnance de virement (601)</option>
+ <option value="613">Bordereau d'annulation (613)</option>
+ <option value="618">BRADO investissement année en cour(618)</option>
+ </select>
+ </critere>
+ <critere id="typePaiement" libelle="Type Paiement">
+ <help>Permet de filtrer par type de paiement</help>
+ <path>#{{OPERATEUR:typePaiement##(upper-case(n:TypePaiement/@V),"##VALEUR:typePaiement##")}</path>
+ <input id="typePaiement" datatype="string"/> <!-- help="/Edmn/EtatEdmn/LigneEdmn/TypePaiement/@V" -->
+ </critere>
+ <critere id="nom_societe" libelle="Désignation Société">
+ <help>Permet de filtrer par la désignation de la société</help>
+ <path>{##OPERATEUR:nom_societe##(xem:UpperCase(n:Depense/@NomSociete),"##VALEUR:nom_societe##")}</path>
+ <input id="nom_societe" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="fournisseur_nom" libelle="Tiers Fournisseur (Nom)">
+ <help>Permet de filtrer par le nom du tiers fournisseur pour les personnes physiques et par la désignation du tiers fournisseur pour les personnes morales</help>
+ <path>{##OPERATEUR:fournisseur_nom##(xem:UpperCase(n:Depense/@FournisseurNom),"##VALEUR:fournisseur_nom##")}</path>
+ <input id="fournisseur_nom" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="fournisseur_siret" libelle="Tiers Fournisseur (Siret)">
+ <help>Permet de filtrer par le SIRET du tiers fournisseur</help>
+ <path>{##OPERATEUR:fournisseur_siret##(xem:UpperCase(n:Depense/@FournisseurSiret),"##VALEUR:fournisseur_siret##")}</path>
+ <input id="fournisseur_siret" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="payeur_nom" libelle="Tiers Bénéficiaire (Nom)">
+ <help>Permet de filtrer par </help>
+ <path>{##OPERATEUR:payeur_nom##(xem:UpperCase(n:Depense/@PayeurNom),"##VALEUR:payeur_nom##")}</path>
+ <input id="payeur_nom" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="payeur_siret" libelle="Tiers Bénéficiaire (Siret)">
+ <help>Permet de filtrer par le nom du tiers bénéficiaire du paiement pour les personnes physiques et par la désignation du tiers bénéficiaire du paiement pour les personnes morales</help>
+ <path>{##OPERATEUR:payeur_siret##(xem:UpperCase(n:Depense/@PayeurSiret),"##VALEUR:payeur_siret##")}</path>
+ <input id="payeur_siret" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="rib_pays" libelle="RIB (Pays Banque)">
+ <help>Permet de filtrer par le RIB (Pays Banque)</help>
+ <path>{##OPERATEUR:rib_pays##(xem:UpperCase(n:Depense/@RibPays),"##VALEUR:rib_pays##")}</path>
+ <input id="rib_pays" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="rib_banc" libelle="RIB (Banque)">
+ <help>Permet de filtrer par le RIB (Banque)</help>
+ <path>{##OPERATEUR:rib_banc##(xem:UpperCase(n:Depense/@RibBanc),"##VALEUR:rib_banc##")}</path>
+ <input id="rib_banc" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="rib_compte" libelle="RIB (Compte)">
+ <help>Permet de filtrer par le RIB (Compte)</help>
+ <path>{##OPERATEUR:rib_compte##(xem:UpperCase(n:Depense/@RibCompte),"##VALEUR:rib_compte##")}</path>
+ <input id="rib_compte" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="rib_cle" libelle="RIB (Clé)">
+ <help>Permet de filtrer par le RIB (Clé)</help>
+ <path>{##OPERATEUR:rib_cle##(xem:UpperCase(n:Depense/@RibCle),"##VALEUR:rib_cle##")}</path>
+ <input id="rib_cle" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="domaine_fonctionnel" libelle="Domaine Fonctionnel">
+ <help>Permet de filtrer par le domaine fonctionnel</help>
+ <path>{##OPERATEUR:domaine_fonctionnel##(xem:UpperCase(n:Depense/@DomaineFonctionnel),"##VALEUR:domaine_fonctionnel##")}</path>
+ <input id="domaine_fonctionnel" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="num_ej_long" libelle="Référence Machés">
+ <help>Permet de filtrer par la référence officielle pour les marchés</help>
+ <path>{##OPERATEUR:num_ej_long##(xem:UpperCase(n:Depense/@NumEJLong),"##VALEUR:num_ej_long##")}</path>
+ <input id="num_ej_long" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="with_pj" libelle="PJ">
+ <path>{@added:withPJ="##VALEUR:with_pj##"}</path>
+ <select id="with_pj">
+ <option value="1">Avec</option>
+ <option value="0">Sans</option>
+ </select>
+ </critere>
+ </element>
+
+ <element balise="Liasse" id="LiasseNat" searchable="false" titre="Liasses nationales" max-display="200">
+ <path>/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseNationale/n:Liasse</path>
+ <liste-resultat ordre="ASC" tri-defaut="NmLiasse">
+ <champ id="NmLiasse" libelle="Liasse nationale" exportable="true">
+ <help>Numéro de liasse nationale</help>
+ <valeur>@national</valeur>
+ </champ>
+ <champ id="codeBarre" libelle="Code Barre" affichable="true" exportable="true" default-display="false">
+ <help>Code barre</help>
+ <valeur>@codeBarre</valeur>
+ </champ>
+ <champ id="etq" libelle="Etiquette" affichable="true" exportable="true" default-display="false">
+ <help>Etiquette</help>
+ <valeur>@etq</valeur>
+ </champ>
+ <champ id="gestion" libelle="Année Gestion" exportable="true" default-display="false">
+ <help>Année de gestion</help>
+ <valeur>../n:AnneeBudget/@V</valeur>
+ </champ>
+ <champ id="triGest" libelle="Trimestre Gestion" exportable="true">
+ <help>Trimestre de gestion</help>
+ <valeur>../n:Trimestre/@V</valeur>
+ </champ>
+ <champ id="comptable" libelle="Comptable" exportable="true">
+ <help>Comptable</help>
+ <valeur>../n:Comptable/@V</valeur>
+ </champ>
+ <champ id="imputation" libelle="Imputation" exportable="true">
+ <help>Imputation</help>
+ <valeur>../n:Imputation/@V</valeur>
+ </champ>
+ <champ id="ministere" libelle="Ministère" exportable="true">
+ <help>Code ministère</help>
+ <valeur>../n:Ministere/@V</valeur>
+ </champ>
+ <champ id="cptespetres" libelle="Compte Spé. Trés." exportable="true">
+ <help>Compte spécial du trésor</help>
+ <valeur>@cpteSpeTres</valeur>
+ </champ>
+ <champ id="numLocal" libelle="Liasse locale" exportable="true">
+ <help>Numéro de liasse locale</help>
+ <valeur>@local</valeur>
+ </champ>
+ <champ id="sectBudg" libelle="Section budgétaire" exportable="true">
+ <help>Section budgétaire</help>
+ <valeur>@sectionBudg</valeur>
+ </champ>
+ <champ id="antrsp" libelle="Année transport" exportable="true">
+ <help>Année de transport</help>
+ <valeur>@anneeTrsp</valeur>
+ </champ>
+ <champ id="triTrsp" libelle="Trimestre transport" datatype="integer" exportable="true">
+ <help>Trimestre de transport</help>
+ <valeur>@triTrsp</valeur>
+ </champ>
+ <champ id="cpteSpeNat" libelle="Compte spé. Nat." exportable="true">
+ <help>Compte spécial nature</help>
+ <valeur>@cpteSpeNat</valeur>
+ </champ>
+ </liste-resultat>
+ <parent element="ligneEdmn" path="../.."/>
+ </element>
+ </etat>
+ <etat
+ balise="NomenclatureBudgets"
+ balise-namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ id="budgets"
+ titre="Nomenclature des Budgets"
+ use-external-browser="false"
+ exportable="true">
+ <help>Nomenclature budgétaire. Elle regroupe les ministères, les programmes, les action et les compte PCE</help>
+ <element balise="Budget" id="budget" max-display="500" titre="Budgets">
+ <path>/n:Edmn/n:NomenclatureBudgets/n:Budget</path>
+ <liste-resultat ordre="ASC,ASC" tri-defaut="annee,minister">
+ <hidden name="hidden.cpce">
+ <valeur>n:Cpce/@V</valeur>
+ </hidden>
+ <hidden name="hidden.ministere">
+ <valeur>n:Ministere/@V</valeur>
+ </hidden>
+
+ <champ id="annee" libelle="Année" exportable="true">
+ <help>Année de la nomenclature</help>
+ <valeur>n:Annee/@V</valeur>
+ </champ>
+ <champ id="minister" libelle="Ministère" exportable="true">
+ <help>Ministère</help>
+ <valeur>n:Ministere/@V</valeur>
+ </champ>
+ <champ id="programme" libelle="Programme" exportable="true">
+ <help>Programme</help>
+ <valeur>n:Programme/@V</valeur>
+ </champ>
+ <champ id="action" libelle="Sous-action" exportable="true">
+ <help>Action</help>
+ <valeur>n:Action/@V</valeur>
+ </champ>
+ <champ id="artRegroupt" libelle="Art. Regroupt." exportable="true">
+ <help>Article de regroupement</help>
+ <valeur>n:ArticleRegroupt/@V</valeur>
+ </champ>
+ <champ id="cpce" libelle="Compte PCE" exportable="true">
+ <help>Compte PCE</help>
+ <valeur>n:Cpce/@V</valeur>
+ </champ>
+ <champ id="libelle" libelle="Libellé" exportable="true">
+ <help>Libellé</help>
+ <valeur>n:Libelle/@V</valeur>
+ </champ>
+ </liste-resultat>
+ <critere id="typeData" libelle="Type">
+ <help>Permet de filtrer par nature de nomenclature</help>
+ <path>{n:Data/@V='##VALEUR:data##'}</path>
+ <select id="data">
+ <option value="MINISTERE">Ministère</option>
+ <option value="PROGRAMME">Programme</option>
+ <option value="ACTION">Sous-action</option>
+ <option value="CPCE">Compte PCE</option>
+ </select>
+ </critere>
+ <critere id="annee" libelle="Année">
+ <help>Permet de filtrer par année de nomenclature</help>
+ <path>{n:Annee/@V##OPERATEUR:annee####VALEUR:annee##}</path>
+ <input id="annee" datatype="numeric"/>
+ </critere>
+ <critere id="ministere" libelle="Ministère (Code)">
+ <help>Permet de filtrer par ministère</help>
+ <path>{##OPERATEUR:ministere##(n:Ministere/@V,"##VALEUR:ministere##")}</path>
+ <input id="ministere" datatype="string"/>
+ </critere>
+ <critere id="programme" libelle="Programme">
+ <help>Permet de filtrer par programme</help>
+ <path>{##OPERATEUR:programme##(n:Programme/@V,"##VALEUR:programme##")}</path>
+ <input id="programme" datatype="string"/>
+ </critere>
+ <critere id="action" libelle="Sous-action">
+ <help>Permet de filtrer par sous-action</help>
+ <path>{##OPERATEUR:action##(n:Action/@V,"##VALEUR:action##")}</path>
+ <input id="action" datatype="string"/>
+ </critere>
+ <critere id="artRegroupt" libelle="Article de Regroupement">
+ <help>Permet de filtrer par article de regroupement</help>
+ <path>{##OPERATEUR:artRegroupt##(upper-case(n:ArticleRegroupt/@V),"##VALEUR:artRegroupt##")}</path>
+ <input id="artRegroupt" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="cpce" libelle="Compte PCE">
+ <help>Permet de filtrer par compte PCE</help>
+ <path>{##OPERATEUR:cpce##(upper-case(n:Cpce/@V),"##VALEUR:cpce##")}</path>
+ <input id="cpce" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="libBudget" libelle="Libellé">
+ <help>Permet de filtrer par budget</help>
+ <path>{##OPERATEUR:libBudg##(upper-case(n:Libelle/@V),"##VALEUR:libBudg##")}</path>
+ <input id="libBudg" datatype="string" uppercase="true"/>
+ </critere>
+ </element>
+ </etat>
+ <etat
+ balise="NomenclatureOrdonnateurs"
+ balise-namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ id="ordos"
+ titre="Nomenclature des Ordonnateurs"
+ use-external-browser="false"
+ exportable="true">
+ <help>Contient la nomenclature annualisée des ordonnateurs</help>
+ <element balise="Ordonnateur" id="ordo" max-display="500" titre="Ordonnateurs">
+ <path>/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur</path>
+ <liste-resultat ordre="ASC,ASC" tri-defaut="ordo.annee,code">
+ <champ id="ordo.annee" libelle="Année" exportable="true">
+ <help>Année de nomenclature</help>
+ <valeur>n:Annee/@V</valeur>
+ </champ>
+ <champ id="code" libelle="Ordonnateur" exportable="true">
+ <help>Code ordonnateur</help>
+ <valeur>n:CodeOrdo/@V</valeur>
+ </champ>
+ <champ id="cpteSpeTres" libelle="Compte Spécial Trésor" exportable="true">
+ <help>Compte spécial du trésor</help>
+ <valeur>n:CompteSpeTresor/@V</valeur>
+ </champ>
+ <champ id="ordo.ministere" libelle="Ministère" exportable="true">
+ <help>Ministère</help>
+ <valeur>n:CodeMinistere/@V</valeur>
+ </champ>
+ <champ id="ordo.libelle" libelle="Libellé" exportable="true">
+ <help>Libellé ordonnateur</help>
+ <valeur>n:Libelle/@V</valeur>
+ </champ>
+ </liste-resultat>
+ <critere id="ordo.annee" libelle="Année">
+ <help>Permet de filtrer par année de nomenclature</help>
+ <path>{n:Annee/@V##OPERATEUR:annee####VALEUR:annee##}</path>
+ <input id="annee" datatype="numeric"/>
+ </critere>
+ <critere id="ordo.ministere" libelle="Ministère">
+ <help>Permet de filtrer par ministère</help>
+ <path>{##OPERATEUR:ministere##(n:CodeMinistere/@V,'##VALEUR:ministere##')}</path>
+ <input id="ministere" datatype="string"/>
+ </critere>
+ <critere id="ordo.code" libelle="Ordonnateur">
+ <help>Permet de filtrer par code ordonnateur</help>
+ <path>{##OPERATEUR:code##(n:CodeOrdo/@V,'##VALEUR:code##')}</path>
+ <input id="code" datatype="string"/>
+ </critere>
+ <critere id="ordo.cpte.spe.tres" libelle="Compte Spécial Trésor">
+ <help>Permet de filtrer par compte spécial du trésor</help>
+ <path>{##OPERATEUR:compte##(n:CompteSpeTresor/@V,'##VALEUR:compte##')}</path>
+ <input id="compte" datatype="string"/>
+ </critere>
+ <!--critere id="artRegroupt" libelle="Art. Regroupt.">
+ <path>{##OPERATEUR:artRegroupt##(upper-case(n:ArticleRegroupt/@v),'##VALEUR:artRegroupt##)}</path>
+ <input id="artRegroupt" datatype="string" uppercase="true"/>
+ </critere-->
+ <critere id="ordo.libelle" libelle="Libellé">
+ <help>Permet de filtrer par libellé d'ordonnateur</help>
+ <path>{##OPERATEUR:lib##(upper-case(n:Libelle/@V),'##VALEUR:lib##')}</path>
+ <input id="lib" datatype="string" uppercase="true"/>
+ </critere>
+ </element>
+ </etat>
+ <etat
+ balise="NomenclatureComptables"
+ balise-namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ id="comptables"
+ titre="Nomenclature des Comptables"
+ use-external-browser="false"
+ exportable="true">
+ <help>Contient la nomenclature annualisée des comptables</help>
+ <element balise="Comptable" id="comptable" max-display="500" titre="Comptables">
+ <path>/n:Edmn/n:NomenclatureComptables/n:Comptable</path>
+ <liste-resultat ordre="ASC" tri-defaut="compta.code">
+ <hidden name="hidden.compta.code">
+ <valeur>n:Code/@V</valeur>
+ </hidden>
+ <champ id="compta.annee" libelle="Année" exportable="true">
+ <help>Année de nomenclature</help>
+ <valeur>n:Annee/@V</valeur>
+ </champ>
+
+ <champ id="compta.code" libelle="Code" exportable="true">
+ <help>Code du comptable</help>
+ <valeur>n:Code/@V</valeur>
+ </champ>
+ <champ id="compta.libelle" libelle="Libellé" exportable="true">
+ <help>Libellé du comptable</help>
+ <valeur>n:Libelle/@V</valeur>
+ </champ>
+ </liste-resultat>
+ <critere id="compta.annee" libelle="Année">
+ <help>Permet de filtrer par année de nomenclature</help>
+ <path>{n:Annee/@V##OPERATEUR:annee####VALEUR:annee##}</path>
+ <input id="annee" datatype="numeric"/>
+ </critere>
+ <critere id="compta.code" libelle="Code">
+ <help>Permet de filtrer par numéro de comptable</help>
+ <path>{##OPERATEUR:code##(upper-case(n:Code/@V),'##VALEUR:code##')}</path>
+ <input id="code" datatype="string" uppercase="true"/>
+ </critere>
+ <critere id="compta.libelle" libelle="Libellé">
+ <help>Permet de filtrer par libellé de comptable</help>
+ <path>{##OPERATEUR:libelle##(upper-case(n:Libelle/@V),'##VALEUR:libelle##')}</path>
+ <input id="libelle" datatype="string" uppercase="true"/>
+ </critere>
+ </element>
+ </etat>
+
+ </document>
+</documents>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<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="edmn"
+ repository-import-xslt-file=""
+ collectivite-code-colname="COLLECTIVITE"
+ collectivite-lib-colname="COLLECTIVITE_LIB"
+ budget-code-colname="BUDGET"
+ budget-lib-colname="BUDGET_LIB">
+ <table type="repository" base-name="EDMN_REPOSITORY" version="2"> CREATE TABLE IF NOT EXISTS ${base-name} ( ID VARCHAR(25), LIBELLE VARCHAR(100), COLLECTIVITE VARCHAR(15) NOT NULL, REPOSITORY LONGBLOB, ENCODING VARCHAR(20) ) ENGINE MYISAM <patch from-version="1">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD ID VARCHAR(25)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIBELLE VARCHAR(100)</sql>
+ </patch>
+ </table>
+ <table type="list-bc" base-name="EDMN_LIST_BUDG_COLL" version="1"> CREATE TABLE IF NOT EXISTS ${base-name} ( COLLECTIVITE VARCHAR(15) 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>
+ <table type="special-key" base-name="EDMN_SPECIAL_KEYS" version="1"> CREATE TABLE IF NOT EXISTS ${base-name} ( COLLECTIVITE VARCHAR(15) NOT NULL, BUDGET VARCHAR(24) NOT NULL, INITIAL_DOC_NAME VARCHAR(100) NOT NULL, KEY1 VARCHAR(100) NOT NULL, LIB1 VARCHAR(200), KEY2 VARCHAR(100), LIB2 VARCHAR(200), KEY3 VARCHAR(100), LIB3 VARCHAR(200), INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME) ) ENGINE MYISAM </table>
+ <etat id="etatEdmn" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <key1>
+ <path>/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseNationale/n:Liasse/@added:generated-id</path>
+ </key1>
+ <table type="document" base-name="EDMN_ETATEDMN_DOCUMENTS" version="2">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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),
+ ANNEE_GESTION INTEGER,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INDEX IX_EDMN_DOC_ANNEE_GESTION(COLLECTIVITE,BUDGET,ANNEE_GESTION),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ <patch from-version="1">
+ <sql failonerror="false">ALTER TABLE EDMN_ETATEDMN_DOCUMENTS ADD ANNEE_GESTION INTEGER, ADD INDEX IX_EDMN_DOC_ANNEE_GESTION(COLLECTIVITE,BUDGET,ANNEE_GESTION)</sql>
+ </patch>
+
+ </table>
+ <table type="index" id="T1" base-name="EDMN_ETATEDMN_INDEX_EDMN" version="7" main="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ COMPTABLE VARCHAR(6),
+ LIB_COMPTABLE VARCHAR(250),
+ MINISTERE VARCHAR(3),
+ LIB_MINISTERE VARCHAR(250),
+ ORDO VARCHAR(10),
+ LIB_ORDO VARCHAR(250),
+ TYPE_EVT VARCHAR(3),
+ ANNEE_BUDG INTEGER,
+ NUM_MANDAT VARCHAR(6),
+ CPTE_TRESOR VARCHAR(5),
+ OPE_INVEST VARCHAR(8),
+ ANNEE_ENGAG INTEGER,
+ NUM_ENGAG VARCHAR(6),
+ CHAP_BUDG VARCHAR(4),
+ ART_BUDG VARCHAR(2),
+ PARAG_BUDG VARCHAR(2),
+ MT_PJ DECIMAL(14,2),
+ SIGNE_MT VARCHAR(1),
+ TRIMESTRE INTEGER,
+ MOIS INTEGER,
+ DATE_CREA DATE,
+ CHAP_CLASS VARCHAR(4),
+ TYPE_PAIEMENT VARCHAR(3),
+ ART_BUDG_PREV VARCHAR(2),
+ ZONE24 VARCHAR(24),
+ NUM_LIASSE_LOC VARCHAR(8),
+ NUM_LIASSE_DEB VARCHAR(4),
+ NUM_LIASSE_FIN VARCHAR(4),
+ SUIVI_ECO1 VARCHAR(2),
+ SUIVI_ECO2 VARCHAR(2),
+ SUIVI_ECO3 VARCHAR(2),
+ CODE_CORR VARCHAR(4),
+ CODE_MANIP VARCHAR(1),
+ NUM_LIASSE VARCHAR(6),
+ ZONE32 VARCHAR(32),
+ LIB_PROGRAMME VARCHAR(250),
+ LIB_ACTION VARCHAR(250),
+ CODE_OPER_EXC VARCHAR(32),
+ NUM_PIECE_COMPTA VARCHAR(32),
+ IMPUTATION CHAR(1),
+ DATE_PAIEMENT DATE,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INDEX IX_${base-name}_DC (DOC_ID),
+ INDEX IX_LIB_COMPTA (COLLECTIVITE,BUDGET,LIB_COMPTABLE),
+ INDEX IX_LIB_MINISTERE (COLLECTIVITE,BUDGET,LIB_MINISTERE),
+ INDEX IX_LIB_ORDO (COLLECTIVITE,BUDGET,LIB_ORDO),
+ INDEX IX_ETATEDMN_MANDAT (NUM_MANDAT),
+ INDEX IX_ETATEDMN_ORDO (ORDO),
+ INDEX IX_ETATEDMN_MINISTERE (MINISTERE),
+ INDEX IX_ETATEDMN_COMPTA (COMPTABLE),
+ INDEX IX_ETATEDMN_TYPE_EVT (TYPE_EVT),
+ INDEX IX_ETATEDMN_ANNEE_BUDG (ANNEE_BUDG),
+ INDEX IX_ETATEDMN_CPTE_TRESOR (CPTE_TRESOR),
+ INDEX IX_ETATEDMN_OPE_INVEST (OPE_INVEST),
+ INDEX IX_ETATEDMN_ANNEE_ENGAG (ANNEE_ENGAG),
+ INDEX IX_ETATEDMN_NUM_ENGAG (NUM_ENGAG),
+ INDEX IX_ETATEDMN_CHAP_BUDG (CHAP_BUDG),
+ INDEX IX_ETATEDMN_ART_BUDG (ART_BUDG),
+ INDEX IX_ETATEDMN_PARAG_BUDG (PARAG_BUDG),
+ INDEX IX_ETATEDMN_MT_PJ (MT_PJ),
+ INDEX IX_ETATEDMN_TRIM (TRIMESTRE),
+ INDEX IX_ETATEDMN_MOIS (MOIS),
+ INDEX IX_ETATEDMN_DATE_CREA (DATE_CREA),
+ INDEX IX_ETATEDMN_CHAP_CLASS (CHAP_CLASS),
+ INDEX IX_ETATEDMN_TYPE_PAY (TYPE_PAIEMENT),
+ INDEX IX_ETATEDMN_ART_BDG_P (ART_BUDG_PREV),
+ INDEX IX_ETATEDMN_LIASSE_LOC (NUM_LIASSE_LOC),
+ INDEX IX_ETATEDMN_ECO1 (SUIVI_ECO1),
+ INDEX IX_ETATEDMN_ECO2 (SUIVI_ECO2),
+ INDEX IX_ETATEDMN_ECO3 (SUIVI_ECO3),
+ INDEX IX_ETATEDMN_LIB_PROG (LIB_PROGRAMME),
+ INDEX IX_ETATEDMN_LIB_ACTION (LIB_ACTION),
+ INDEX IX_ETATEDMN_OPER_EXC (CODE_OPER_EXC),
+ INDEX IX_ETATEDMN_PIECE_COMPTA (NUM_PIECE_COMPTA),
+ INDEX IX_ETATEDMN_LIASSE_LOC_DEB (NUM_LIASSE_DEB),
+ INDEX IX_ETATEDMN_LIASSE_LOC_FIN (NUM_LIASSE_FIN),
+ INDEX IX_IMPUTATION (IMPUTATION),
+ INDEX IX_ETATEDMN_DTE_PAY (DATE_PAIEMENT),
+ 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="1">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_COMPTABLE VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ORDO VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_MINISTERE VARCHAR(250)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_COMPTA ON ${base-name} (COLLECTIVITE,BUDGET,LIB_COMPTABLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_MINISTERE ON ${base-name} (COLLECTIVITE,BUDGET,LIB_MINISTERE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_ORDO ON ${base-name} (COLLECTIVITE,BUDGET,LIB_ORDO)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_MINISTERE VARCHAR(250)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_COMPTA ON ${base-name} (COLLECTIVITE,BUDGET,LIB_COMPTABLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_MINISTERE ON ${base-name} (COLLECTIVITE,BUDGET,LIB_MINISTERE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_ORDO ON ${base-name} (COLLECTIVITE,BUDGET,LIB_ORDO)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="3">
+ <sql failonerror="false">CREATE INDEX IX_LIB_COMPTA ON ${base-name} (COLLECTIVITE,BUDGET,LIB_COMPTABLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_MINISTERE ON ${base-name} (COLLECTIVITE,BUDGET,LIB_MINISTERE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_ORDO ON ${base-name} (COLLECTIVITE,BUDGET,LIB_ORDO)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="4">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="5">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD IMPUTATION CHAR(1)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD INDEX IX_IMPUTATION(IMPUTATION)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="6">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <!--patch from-version="7">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD MT_PCE DECIMAL(14,2)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_CHORUS_MT_PCE ON ${base-name} (MT_PCE)</sql>
+ </patch-->
+ </table>
+ <table id="T2" base-name="EDMN_ETATEDMN_IX_EDMN_LIASSES" type="index" version="2" based-on="key1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ NUM_LIASSE VARCHAR(6) NOT NULL,
+ ANNEE_GESTION INTEGER,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INDEX IX_${base-name}_DC (DOC_ID),
+ INDEX IX_EDMN_ETATEDMN_LIASSES_ANGEST(COLLECTIVITE,BUDGET,ANNEE_GESTION),
+ 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="1">
+ <sql failonerror="false">ALTER TABLE EDMN_ETATEDMN_IX_EDMN_LIASSES ADD ANNEE_GESTION INTEGER, ADD INDEX IX_EDMN_ETATEDMN_LIASSES_ANGEST(COLLECTIVITE,BUDGET,ANNEE_GESTION)</sql>
+ </patch>
+ </table>
+
+ <criteria id="comptable" sql-index-id="comptable">
+ <where-clause>fn:string-compare(${table}.${column},comptable)</where-clause>
+ </criteria>
+ <criteria id="lib-comptable" sql-index-id="lib-comptable">
+ <where-clause>fn:string-compare(${table}.${column},libComptable)</where-clause>
+ </criteria>
+ <criteria id="ministere" sql-index-id="ministere">
+ <where-clause>fn:string-compare(${table}.${column},ministere)</where-clause>
+ </criteria>
+ <criteria id="libministere" sql-index-id="lib-ministere">
+ <where-clause>fn:string-compare(${table}.${column},ministereLib)</where-clause>
+ </criteria>
+ <criteria id="ordo" sql-index-id="ordo">
+ <where-clause>fn:string-compare(${table}.${column},ordo)</where-clause>
+ </criteria>
+ <criteria id="lib-ordo" sql-index-id="lib-ordo">
+ <where-clause>fn:string-compare(${table}.${column},libOrdo)</where-clause>
+ </criteria>
+
+ <criteria id="anneeBudget" sql-index-id="anneeBudget">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="numMandat" sql-index-id="numMandat">
+ <where-clause>fn:string-compare(${table}.${column},numMandat)</where-clause>
+ </criteria>
+ <criteria id="numOpeInvest" sql-index-id="numOpeInvest">
+ <where-clause>fn:string-compare(${table}.${column},numOpeInvest)</where-clause>
+ </criteria>
+ <criteria id="mtPj" sql-index-id="mtPj">
+ <where-clause>${table}.${column}##OPERATEUR:mtPj####VALEUR:mtPj##</where-clause>
+ </criteria>
+ <criteria id="dateCrea" sql-index-id="dateCrea">
+ <where-clause>fn:date-compare(${table}.${column},dateCrea)</where-clause>
+ </criteria>
+ <criteria id="datePaie" sql-index-id="datePaiement">
+ <where-clause>fn:date-compare(${table}.${column},datePaie)</where-clause>
+ </criteria>
+ <criteria id="typeEvt" sql-index-id="typeEvt">
+ <where-clause>${table}.${column}='##VALEUR:typeEvt##'</where-clause>
+ </criteria>
+ <criteria id="liasseLocale" sql-index-id="numLiasseLocale">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="liasseLocaleDeb" sql-index-id="numLiasseLocaleDeb">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="liasseLocaleFin" sql-index-id="numLiasseLocaleFin">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="liasseCentrale" sql-index-id="numLiasseCentrale">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="programme" sql-index-id="programme">
+ <where-clause>fn:string-compare(${table}.${column},programme)</where-clause>
+ </criteria>
+ <criteria id="action" sql-index-id="action">
+ <where-clause>fn:string-compare(${table}.${column},action)</where-clause>
+ </criteria>
+ <criteria id="cpce" sql-index-id="cpce">
+ <where-clause>fn:string-compare(${table}.${column},cpce)</where-clause>
+ </criteria>
+ <criteria id="artPrev" sql-index-id="artPrev">
+ <where-clause>fn:string-compare(${table}.${column},artPrev)</where-clause>
+ </criteria>
+ <criteria id="libProgramme" sql-index-id="libProgramme">
+ <where-clause>fn:string-compare(${table}.${column},libProgramme)</where-clause>
+ </criteria>
+ <criteria id="libAction" sql-index-id="libAction">
+ <where-clause>fn:string-compare(${table}.${column},libAction)</where-clause>
+ </criteria>
+ <criteria id="codeOperExc" sql-index-id="codOperExc">
+ <where-clause>fn:string-compare(${table}.${column},codeOperExc)</where-clause>
+ </criteria>
+ <criteria id="numPieceCompta" sql-index-id="numPieceCompta">
+ <where-clause>fn:string-compare(${table}.${column},numPieceCompta)</where-clause>
+ </criteria>
+ <criteria id="typePaiement" sql-index-id="typePaiement">
+ <where-clause>fn:string-compare(${table}.${column},typePaiement)</where-clause>
+ </criteria>
+ <criteria id="chapClassPJ" sql-index-id="chapClassPJ">
+ <where-clause>fn:string-compare(${table}.${column},chapClassPJ)</where-clause>
+ </criteria>
+ <criteria id="trimestre" sql-index-id="trimestre">
+ <where-clause>${table}.${column}##OPERATEUR:trimestre####VALEUR:trimestre##</where-clause>
+ </criteria>
+ <!--criteria id="CRI_LIGNEEDMN_MT_PCE" sql-index-id="mt-pce">
+ <where-clause>${table}.${column}##OPERATEUR:mtPce####VALEUR:mtPce##</where-clause>
+ </criteria-->
+
+
+
+ <sql-index id="comptable" table="T1" column="COMPTABLE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Comptable/@V" datatype="string" format="uppercase"/>
+ <sql-index id="lib-comptable" table="T1" column="LIB_COMPTABLE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleComptable/@V" datatype="string" format="uppercase"/>
+ <sql-index id="ministere" table="T1" column="MINISTERE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Ministere/@V" datatype="string" format="uppercase"/>
+ <sql-index id="lib-ministere" table="T1" column="LIB_MINISTERE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Ministere/@LibelleMinistere" datatype="string" format="uppercase"/>
+ <sql-index id="ordo" table="T1" column="ORDO" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Ordo/@V" datatype="string" format="uppercase"/>
+ <sql-index id="lib-ordo" table="T1" column="LIB_ORDO" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleOrdonnateur/@V" datatype="string" format="uppercase"/>
+ <sql-index id="anneeBudget" table="T1" column="ANNEE_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:AnneeBudget/@V" datatype="integer"/>
+ <sql-index id="trimestre" table="T1" column="TRIMESTRE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Trimestre/@V" datatype="integer"/>
+ <sql-index id="numMandat" table="T1" column="NUM_MANDAT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumMandat/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numOpeInvest" table="T1" column="OPE_INVEST" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumOpeInvest/@V" datatype="string" format="uppercase"/>
+ <sql-index id="mtPj" table="T1" column="MT_PJ" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:MtPJ/@V" datatype="decimal"/>
+ <sql-index id="dateCrea" table="T1" column="DATE_CREA" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:DateCreation/@V" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="typeEvt" table="T1" column="TYPE_EVT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:TypeEvt/@V" datatype="string"/>
+ <sql-index id="numLiasseLocale" table="T1" column="NUM_LIASSE_LOC" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasse/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numLiasseLocaleDeb" table="T1" column="NUM_LIASSE_DEB" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseDeb/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numLiasseLocaleFin" table="T1" column="NUM_LIASSE_FIN" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseFin/@V" datatype="string" format="uppercase"/>
+ <sql-index id="programme" table="T1" column="CHAP_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ChapBudg/@V" datatype="string" format="uppercase"/>
+ <sql-index id="action" table="T1" column="ART_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ArtBudgExec/@V" datatype="string" format="uppercase"/>
+ <sql-index id="cpce" table="T1" column="PARAG_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ParagBudgExec/@V" datatype="string" format="uppercase"/>
+ <sql-index id="artPrev" table="T1" column="ART_BUDG_PREV" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ArtBudgPrev/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numLiasseCentrale" table="T2" column="NUM_LIASSE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseNationale/n:Liasse/@national" datatype="string" format="uppercase"/>
+ <sql-index id="liasseAnneeGestion" table="T2" column="ANNEE_GESTION" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:AnneeBudget/@V" datatype="integer" use-in-criteria="false"/>
+ <sql-index id="libProgramme" table="T1" column="LIB_PROGRAMME" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleProgramme/@V" datatype="string" format="uppercase"/>
+ <sql-index id="libAction" table="T1" column="LIB_ACTION" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleAction/@V" datatype="string" format="uppercase"/>
+ <sql-index id="codOperExc" table="T1" column="CODE_OPER_EXC" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:CodeOperExc/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numPieceCompta" table="T1" column="NUM_PIECE_COMPTA" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumPieceCompta/@V" datatype="string" format="uppercase"/>
+ <sql-index id="typePaiement" table="T1" column="TYPE_PAIEMENT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:TypePaiement/@V" datatype="string"/>
+ <sql-index id="chapClassPJ" table="T1" column="CHAP_CLASS" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ChapClassPJ/@V" datatype="string"/>
+ <sql-index id="imputation" table="T1" column="IMPUTATION" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Imputation/@V" datatype="string"/>
+ <sql-index id="datePaiement" table="T1" column="DATE_PAIEMENT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:DatePaiement/@V" datatype="date" format="yyyy-MM-dd"/>
+
+ <!--sql-index id="mt-pce" table="T1" column="MT_PCE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@MtPCE" datatype="decimal"/-->
+ <!-- chap class -->
+ </etat>
+ <etat id="budgets" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <table base-name="EDMN_BUDG_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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,DOC_ID),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table id="B1" base-name="EDMN_BUDG_INDEX" type="index" version="3" main="true" ignoreConstraintError="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ DATA VARCHAR(9) NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ PROGRAMME VARCHAR(6),
+ ACTION VARCHAR(6),
+ ART_REGROUP VARCHAR(6),
+ CPCE VARCHAR(6),
+ LIBELLE VARCHAR(150),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_${base-name}_PK (COLLECTIVITE,BUDGET,ANNEE,DATA,MINISTERE,PROGRAMME,ACTION,ART_REGROUP),
+ 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="1">
+ <sql failonerror="false">drop table EDMN_BUDG_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ DATA VARCHAR(9) NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ PROGRAMME VARCHAR(6),
+ ACTION VARCHAR(6),
+ CPCE VARCHAR(6),
+ ART_REGROUP VARCHAR(6),
+ LIBELLE VARCHAR(150),
+ INDEX IX_EDMN_BUDG_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_EDMN_BUDG_INDEX_PK (COLLECTIVITE,BUDGET,ANNEE,DATA,MINISTERE,PROGRAMME,ACTION,ART_REGROUP),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">drop table EDMN_BUDG_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ DATA VARCHAR(9) NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ PROGRAMME VARCHAR(6),
+ ACTION VARCHAR(6),
+ CPCE VARCHAR(6),
+ ART_REGROUP VARCHAR(6),
+ LIBELLE VARCHAR(150),
+ INDEX IX_EDMN_BUDG_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_EDMN_BUDG_INDEX_PK (COLLECTIVITE,BUDGET,ANNEE,DATA,MINISTERE,PROGRAMME,ACTION,ART_REGROUP),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </sql>
+ </patch>
+ </table>
+ <criteria id="typeData" sql-index-id="typeData">
+ <where-clause>${table}.${column}='##VALEUR:data##'</where-clause>
+ </criteria>
+ <criteria id="annee" sql-index-id="annee">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="ministere" sql-index-id="min">
+ <where-clause>fn:string-compare(${table}.${column},ministere)</where-clause>
+ </criteria>
+ <criteria id="programme" sql-index-id="prog">
+ <where-clause>fn:string-compare(${table}.${column},programme)</where-clause>
+ </criteria>
+ <criteria id="action" sql-index-id="act">
+ <where-clause>fn:string-compare(${table}.${column},action)</where-clause>
+ </criteria>
+ <criteria id="artRegroupt" sql-index-id="artRegroupt">
+ <where-clause>fn:string-compare(${table}.${column},artRegroupt)</where-clause>
+ </criteria>
+ <criteria id="cpce" sql-index-id="cpce2">
+ <where-clause>fn:string-compare(${table}.${column},cpce)</where-clause>
+ </criteria>
+ <criteria id="libBudget" sql-index-id="budg.lib">
+ <where-clause>fn:string-compare(${table}.${column},libBudg)</where-clause>
+ </criteria>
+
+
+
+ <sql-index id="typeData" table="B1" column="DATA" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Data/@V" datatype="string"/>
+ <sql-index id="annee" table="B1" column="ANNEE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Annee/@V" datatype="integer"/>
+ <sql-index id="min" table="B1" column="MINISTERE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Ministere/@V" datatype="string"/>
+ <sql-index id="prog" table="B1" column="PROGRAMME" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Programme/@V" datatype="string"/>
+ <sql-index id="act" table="B1" column="ACTION" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Action/@V" datatype="string"/>
+ <sql-index id="artRegroupt" table="B1" column="ART_REGROUP" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:ArticleRegroupt/@V" datatype="string" format="uppercase"/>
+ <sql-index id="cpce2" table="B1" column="CPCE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Cpce/@V" datatype="string" format="uppercase"/>
+ <sql-index id="budg.lib" table="B1" column="LIBELLE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Libelle/@V" datatype="string"/>
+ </etat>
+ <etat id="ordos" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <table base-name="EDMN_ORDOS_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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,DOC_ID),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table id="O1" base-name="EDMN_ORDOS_INDEX" type="index" version="2" main="true" ignoreConstraintError="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ TRIMESTRE INTEGER NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ CPTE_SPE_TRES VARCHAR(6),
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_${base-name}_PK (COLLECTIVITE,BUDGET,ANNEE,TRIMESTRE,MINISTERE,CPTE_SPE_TRES,CODE),
+ 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="1">
+ <sql failonerror="false">drop table EDMN_ORDOS_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS EDMN_ORDOS_INDEX (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ TRIMESTRE INTEGER NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ CPTE_SPE_TRES VARCHAR(6),
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ INDEX IX_EDMN_ORDOS_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_EDMN_ORDOS_INDEX_PK (COLLECTIVITE,BUDGET,ANNEE,TRIMESTRE,MINISTERE,CPTE_SPE_TRES,CODE),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM</sql>
+ </patch>
+
+ </table>
+ <criteria id="ordo.annee" sql-index-id="ordo.annee">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="ordo.ministere" sql-index-id="ordo.min">
+ <where-clause>fn:string-compare(${table}.${column},ministere)</where-clause>
+ </criteria>
+ <criteria id="programme" sql-index-id="prog">
+ <where-clause>fn:string-compare(${table}.${column},programme)</where-clause>
+ </criteria>
+ <criteria id="action" sql-index-id="act">
+ <where-clause>fn:string-compare(${table},${column},action)</where-clause>
+ </criteria>
+ <criteria id="artRegroupt" sql-index-id="artRegroupt">
+ <where-clause>fn:string-compare(${table}.${column},artRegroupt)</where-clause>
+ </criteria>
+ <criteria id="ordo.cpte.spe.tres" sql-index-id="ordo.compte">
+ <where-clause>fn:string-compare(${table}.${column},compte)</where-clause>
+ </criteria>
+ <criteria id="ordo.libelle" sql-index-id="ordo.lib">
+ <where-clause>fn:string-compare(${table}.${column},lib)</where-clause>
+ </criteria>
+ <criteria id="ordo.code" sql-index-id="ordo.code">
+ <where-clause>fn:string-compare(${table}.${column},code)</where-clause>
+ </criteria>
+
+
+
+ <sql-index id="ordo.annee" table="O1" column="ANNEE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:Annee/@V" datatype="integer"/>
+ <sql-index id="ordo.min" table="O1" column="MINISTERE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:CodeMinistere/@V" datatype="string"/>
+ <sql-index id="ordo.code" table="O1" column="CODE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:CodeOrdo/@V" datatype="string"/>
+ <sql-index id="ordo.compte" table="O1" column="CPTE_SPE_TRES" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:CompteSpeTresor/@V" datatype="string"/>
+ <sql-index id="ordo.lib" table="O1" column="LIBELLE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:Libelle/@V" datatype="string" format="uppercase"/>
+ </etat>
+ <etat id="comptables" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <table base-name="EDMN_COMPTA_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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,DOC_ID),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table id="C1" base-name="EDMN_COMPTA_INDEX" type="index" version="3" main="true" ignoreConstraintError="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ UNIQUE INDEX IX_${base-name}_PK (COLLECTIVITE,BUDGET,CODE,ANNEE),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ 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="1">
+ <sql failonerror="false">drop table EDMN_COMPTA_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS EDMN_COMPTA_INDEX (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ UNIQUE INDEX IX_EDMN_COMPTA_INDEX_PK (COLLECTIVITE,BUDGET,CODE,ANNEE),
+ INDEX IX_EDMN_COMPTA_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM</sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">drop table EDMN_COMPTA_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS EDMN_COMPTA_INDEX (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ UNIQUE INDEX IX_EDMN_COMPTA_INDEX_PK (COLLECTIVITE,BUDGET,CODE,ANNEE),
+ INDEX IX_EDMN_COMPTA_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM</sql>
+ </patch>
+
+ </table>
+ <criteria id="compta.annee" sql-index-id="compta.annee">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="compta.code" sql-index-id="compta.code">
+ <where-clause>fn:string-compare(${table}.${column},code)</where-clause>
+ </criteria>
+ <criteria id="compta.libelle" sql-index-id="compta.lib">
+ <where-clause>fn:string-compare(${table}.${column},libelle)</where-clause>
+ </criteria>
+
+ <sql-index id="compta.annee" table="C1" column="ANNEE" path="/n:Edmn/n:NomenclatureComptables/n:Comptable/n:Annee/@V" datatype="integer"/>
+ <sql-index id="compta.code" table="C1" column="CODE" path="/n:Edmn/n:NomenclatureComptables/n:Comptable/n:Code/@V" datatype="string" format="uppercase"/>
+ <sql-index id="compta.lib" table="C1" column="LIBELLE" path="/n:Edmn/n:NomenclatureComptables/n:Comptable/n:Libelle/@V" datatype="string" format="uppercase"/>
+ </etat>
+
+ </document>
+ </layer>
+</persistence-config>
--- /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:n="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added" version="2.0">
+
+ <xsl:output standalone="yes" method="xml" indent="yes"/>
+
+ <xsl:output encoding="ISO-8859-1"/>
+ <xsl:output version="1.0"/>
+
+ <xsl:param name="language" select="'fr'"/>
+
+ <xsl:template match="/*[position()=1]">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'Edmn'">
+ <Edmn xmlns="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ xmlns:n="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:for-each select="./*">
+ <xsl:call-template name="writeElement">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </Edmn>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="writeElement">
+ <xsl:param name="el"/>
+ <xsl:param name="annee"/>
+ <xsl:param name="mois"/>
+ <xsl:element name="{name($el)}"
+ namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn">
+ <xsl:for-each select="$el/@*">
+ <xsl:choose>
+ <xsl:when test="name($el) = 'LibelleComptable' and .='Non Disponible'"><xsl:attribute name="{name(.)}">Libellé absent</xsl:attribute></xsl:when>
+ <xsl:when test="name($el) = 'Ministere' and name(.) = 'LibelleMinistere' and .='Non Disponible'"><xsl:attribute name="{name(.)}">Libellé absent</xsl:attribute></xsl:when>
+ <xsl:when test="name($el) = 'LibelleOrdonnateur' and .='Non Disponible'"><xsl:attribute name="{name(.)}">Libellé absent</xsl:attribute></xsl:when>
+ <xsl:otherwise><xsl:attribute name="{name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="contains('|LigneEdmn|',concat('|',name($el),'|'))">
+ <xsl:attribute name="withPJ" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:choose>
+ <xsl:when test="count($el//n:PJ) > 0 or count($el//PJ) > 0">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains('|Liasse|',concat('|',name($el),'|'))">
+ <xsl:attribute name="generated-id"
+ namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains('|NumLiasseNationale|',concat('|',name($el),'|'))">
+ <xsl:attribute name="allLiasse" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn">
+ <xsl:choose>
+ <xsl:when test="$el/Liasse/@national"><xsl:value-of select="string-join($el/Liasse/@national,' ')"/></xsl:when>
+ <xsl:when test="$el/n:Liasse/@national"><xsl:value-of select="string-join($el/n:Liasse/@national,' ')"/></xsl:when>
+ </xsl:choose>
+
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:for-each select="$el/*">
+ <xsl:call-template name="writeElement">
+ <xsl:with-param name="el" select="."/>
+ <xsl:with-param name="annee" select="$annee"/>
+ <xsl:with-param name="mois" select="$mois"/>
+ </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"?>
+<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="edmn"
+ repository-import-xslt-file=""
+ collectivite-code-colname="COLLECTIVITE"
+ collectivite-lib-colname="COLLECTIVITE_LIB"
+ budget-code-colname="BUDGET"
+ budget-lib-colname="BUDGET_LIB">
+ <table type="repository" base-name="EDMN_REPOSITORY" version="2"> CREATE TABLE IF NOT EXISTS ${base-name} ( ID VARCHAR(25), LIBELLE VARCHAR(100), COLLECTIVITE VARCHAR(15) NOT NULL, REPOSITORY LONGBLOB, ENCODING VARCHAR(20) ) ENGINE MYISAM <patch from-version="1">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD ID VARCHAR(25)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIBELLE VARCHAR(100)</sql>
+ </patch>
+ </table>
+ <table type="list-bc" base-name="EDMN_LIST_BUDG_COLL" version="1"> CREATE TABLE IF NOT EXISTS ${base-name} ( COLLECTIVITE VARCHAR(15) 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>
+ <table type="special-key" base-name="EDMN_SPECIAL_KEYS" version="1"> CREATE TABLE IF NOT EXISTS ${base-name} ( COLLECTIVITE VARCHAR(15) NOT NULL, BUDGET VARCHAR(24) NOT NULL, INITIAL_DOC_NAME VARCHAR(100) NOT NULL, KEY1 VARCHAR(100) NOT NULL, LIB1 VARCHAR(200), KEY2 VARCHAR(100), LIB2 VARCHAR(200), KEY3 VARCHAR(100), LIB3 VARCHAR(200), INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME) ) ENGINE MYISAM </table>
+ <etat id="etatEdmn" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <key1>
+ <path>/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseNationale/n:Liasse/@added:generated-id</path>
+ </key1>
+ <table type="document" base-name="EDMN_ETATEDMN_DOCUMENTS" version="2">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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),
+ ANNEE_GESTION INTEGER,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INDEX IX_EDMN_DOC_ANNEE_GESTION(COLLECTIVITE,BUDGET,ANNEE_GESTION),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ <patch from-version="1">
+ <sql failonerror="false">ALTER TABLE EDMN_ETATEDMN_DOCUMENTS ADD ANNEE_GESTION INTEGER, ADD INDEX IX_EDMN_DOC_ANNEE_GESTION(COLLECTIVITE,BUDGET,ANNEE_GESTION)</sql>
+ </patch>
+
+ </table>
+ <table type="index" id="T1" base-name="EDMN_ETATEDMN_INDEX_EDMN" version="9" main="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE_BUDG INTEGER,
+ ART_BUDG VARCHAR(2),
+ ART_BUDG_PREV VARCHAR(2),
+ CHAP_BUDG VARCHAR(4),
+ CHAP_CLASS VARCHAR(4),
+ CODE_OPER_EXC VARCHAR(32),
+ COMPTABLE VARCHAR(6),
+ DATE_CREA DATE,
+ DATE_PAIEMENT DATE,
+ IMPUTATION CHAR(1),
+ LIB_ACTION VARCHAR(250),
+ LIB_COMPTABLE VARCHAR(250),
+ LIB_MINISTERE VARCHAR(250),
+ LIB_ORDO VARCHAR(250),
+ LIB_PROGRAMME VARCHAR(250),
+ MINISTERE VARCHAR(3),
+ MT_PJ DECIMAL(14,2),
+ NUM_ENGAG VARCHAR(6),
+ NUM_LIASSE_DEB VARCHAR(4),
+ NUM_LIASSE_FIN VARCHAR(4),
+ NUM_LIASSE_LOC VARCHAR(8),
+ NUM_MANDAT VARCHAR(6),
+ NUM_PIECE_COMPTA VARCHAR(32),
+ OPE_INVEST VARCHAR(8),
+ ORDO VARCHAR(10),
+ PARAG_BUDG VARCHAR(2),
+ TRIMESTRE INTEGER,
+ TYPE_EVT VARCHAR(3),
+ TYPE_PAIEMENT VARCHAR(3),
+ CHORUS_NOM_SOCIETE VARCHAR(25),
+ CHORUS_FOURNISSEUR_NOM VARCHAR(35),
+ CHORUS_FOURNISSEUR_SIRET VARCHAR(16),
+ CHORUS_PAYEUR_NOM VARCHAR(35),
+ CHORUS_PAYEUR_SIRET VARCHAR(16),
+ CHORUS_RIB_PAYS VARCHAR(3),
+ CHORUS_RIB_BANC VARCHAR(15),
+ CHORUS_RIB_COMPTE VARCHAR(18),
+ CHORUS_RIB_CLE VARCHAR(2),
+ CHORUS_DOMAINE_FONCTIONNEL VARCHAR(16),
+ CHORUS_NUM_EJ_LONG VARCHAR(40),
+ CHORUS_WITH_PJ INTEGER,
+ INDEX IX_ETATEDMN_ANNEE_BUDG (ANNEE_BUDG),
+ INDEX IX_ETATEDMN_ART_BUDG (ART_BUDG),
+ INDEX IX_ETATEDMN_ART_BDG_P (ART_BUDG_PREV),
+ INDEX IX_ETATEDMN_CHAP_BUDG (CHAP_BUDG),
+ INDEX IX_ETATEDMN_CHAP_CLASS (CHAP_CLASS),
+ INDEX IX_ETATEDMN_OPER_EXC (CODE_OPER_EXC),
+ INDEX IX_ETATEDMN_COMPTA (COMPTABLE),
+ INDEX IX_ETATEDMN_DATE_CREA (DATE_CREA),
+ INDEX IX_ETATEDMN_DTE_PAY (DATE_PAIEMENT),
+ INDEX IX_IMPUTATION (IMPUTATION),
+ INDEX IX_ETATEDMN_LIB_ACTION (LIB_ACTION),
+ INDEX IX_LIB_COMPTA (COLLECTIVITE,BUDGET,LIB_COMPTABLE),
+ INDEX IX_LIB_MINISTERE (COLLECTIVITE,BUDGET,LIB_MINISTERE),
+ INDEX IX_LIB_ORDO (COLLECTIVITE,BUDGET,LIB_ORDO),
+ INDEX IX_ETATEDMN_LIB_PROG (LIB_PROGRAMME),
+ INDEX IX_ETATEDMN_MINISTERE (MINISTERE),
+ INDEX IX_ETATEDMN_MT_PJ (MT_PJ),
+ INDEX IX_ETATEDMN_NUM_ENGAG (NUM_ENGAG),
+ INDEX IX_ETATEDMN_LIASSE_LOC (NUM_LIASSE_LOC),
+ INDEX IX_ETATEDMN_LIASSE_LOC_DEB (NUM_LIASSE_DEB),
+ INDEX IX_ETATEDMN_LIASSE_LOC_FIN (NUM_LIASSE_FIN),
+ INDEX IX_ETATEDMN_PIECE_COMPTA (NUM_PIECE_COMPTA),
+ INDEX IX_ETATEDMN_ORDO (ORDO),
+ INDEX IX_ETATEDMN_PARAG_BUDG (PARAG_BUDG),
+ INDEX IX_ETATEDMN_TRIM (TRIMESTRE),
+ INDEX IX_ETATEDMN_TYPE_EVT (TYPE_EVT),
+ INDEX IX_ETATEDMN_TYPE_PAY (TYPE_PAIEMENT),
+ INDEX IX_CHORUS_NOM_SOCIETE (CHORUS_NOM_SOCIETE),
+ INDEX IX_CHORUS_FOURNISSEUR_NOM (CHORUS_FOURNISSEUR_NOM),
+ INDEX IX_CHORUS_FOURNISSEUR_SIRET (CHORUS_FOURNISSEUR_SIRET),
+ INDEX IX_CHORUS_PAYEUR_NOM (CHORUS_PAYEUR_NOM),
+ INDEX IX_CHORUS_PAYEUR_SIRET (CHORUS_PAYEUR_SIRET),
+ INDEX IX_CHORUS_RIB_PAYS (CHORUS_RIB_PAYS),
+ INDEX IX_CHORUS_RIB_BANC (CHORUS_RIB_BANC),
+ INDEX IX_CHORUS_RIB_COMPTE (CHORUS_RIB_COMPTE),
+ INDEX IX_CHORUS_RIB_CLE (CHORUS_RIB_CLE),
+ INDEX IX_CHORUS_DOMAINE_FONCTIONNEL (CHORUS_DOMAINE_FONCTIONNEL),
+ INDEX IX_CHORUS_NUM_EJ_LONG (CHORUS_NUM_EJ_LONG),
+ INDEX IX_CHORUS_WITH_PJ (CHORUS_WITH_PJ),
+ 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="1">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_COMPTABLE VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ORDO VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_MINISTERE VARCHAR(250)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_COMPTA ON ${base-name} (COLLECTIVITE,BUDGET,LIB_COMPTABLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_MINISTERE ON ${base-name} (COLLECTIVITE,BUDGET,LIB_MINISTERE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_ORDO ON ${base-name} (COLLECTIVITE,BUDGET,LIB_ORDO)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_MINISTERE VARCHAR(250)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_COMPTA ON ${base-name} (COLLECTIVITE,BUDGET,LIB_COMPTABLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_MINISTERE ON ${base-name} (COLLECTIVITE,BUDGET,LIB_MINISTERE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_ORDO ON ${base-name} (COLLECTIVITE,BUDGET,LIB_ORDO)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="3">
+ <sql failonerror="false">CREATE INDEX IX_LIB_COMPTA ON ${base-name} (COLLECTIVITE,BUDGET,LIB_COMPTABLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_MINISTERE ON ${base-name} (COLLECTIVITE,BUDGET,LIB_MINISTERE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_LIB_ORDO ON ${base-name} (COLLECTIVITE,BUDGET,LIB_ORDO)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="4">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_PROGRAMME VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD LIB_ACTION VARCHAR(250)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CODE_OPER_EXC VARCHAR(32)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_PIECE_COMPTA VARCHAR(32)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_PROG ON ${base-name} (LIB_PROGRAMME)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIB_ACTION ON ${base-name} (LIB_ACTION)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_OPER_EXC ON ${base-name} (CODE_OPER_EXC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_PIECE_COMPTA ON ${base-name} (NUM_PIECE_COMPTA)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_DEB VARCHAR(4)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD NUM_LIASSE_FIN VARCHAR(4)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_DEB ON ${base-name} (NUM_LIASSE_DEB)</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_LIASSE_LOC_FIN ON ${base-name} (NUM_LIASSE_FIN)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="5">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD IMPUTATION CHAR(1)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD INDEX IX_IMPUTATION(IMPUTATION)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="6">
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD DATE_PAIEMENT DATE</sql>
+ <sql failonerror="false">CREATE INDEX IX_ETATEDMN_DTE_PAY ON ${base-name} (DATE_PAIEMENT)</sql>
+ </patch>
+ <patch from-version="7">
+ <sql failonerror="false">ALTER TABLE ${base-name} MODIFY MT_PJ DECIMAL(17,2)</sql>
+ </patch>
+ <patch from-version="8">
+ <sql failonerror="false">DROP INDEX IX_ETATEDMN_ANNEE_ENGAG ON ${base-name}</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP ANNEE_ENGAG</sql>
+ <sql failonerror="false">DROP INDEX IX_ETATEDMN_CPTE_TRESOR ON ${base-name}</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP CPTE_TRESOR</sql>
+ <sql failonerror="false">DROP INDEX IX_ETATEDMN_ECO1 ON ${base-name}</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP SUIVI_ECO1</sql>
+ <sql failonerror="false">DROP INDEX IX_ETATEDMN_ECO2 ON ${base-name}</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP SUIVI_ECO2</sql>
+ <sql failonerror="false">DROP INDEX IX_ETATEDMN_ECO3 ON ${base-name}</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP SUIVI_ECO3</sql>
+ <sql failonerror="false">DROP INDEX IX_ETATEDMN_MOIS ON ${base-name}</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP MOIS</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP ZONE24</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP ZONE32</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP SIGNE_MT</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP CODE_CORR</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP CODE_MANIP</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} DROP NUM_LIASSE</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_NOM_SOCIETE VARCHAR(25)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_FOURNISSEUR_NOM VARCHAR(35)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_FOURNISSEUR_SIRET VARCHAR(16)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_PAYEUR_NOM VARCHAR(35)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_PAYEUR_SIRET VARCHAR(16)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_RIB_PAYS VARCHAR(3)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_RIB_BANC VARCHAR(15)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_RIB_COMPTE VARCHAR(18)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_RIB_CLE VARCHAR(2)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_DOMAINE_FONCTIONNEL VARCHAR(16)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_NUM_EJ_LONG VARCHAR(40)</sql>
+ <sql failonerror="false">ALTER TABLE ${base-name} ADD CHORUS_WITH_PJ INTEGER</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_NOM_SOCIETE ON ${base-name} (CHORUS_NOM_SOCIETE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_FOURNISSEUR_NOM ON ${base-name} (CHORUS_FOURNISSEUR_NOM)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_FOURNISSEUR_SIRET ON ${base-name} (CHORUS_FOURNISSEUR_SIRET)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_PAYEUR_NOM ON ${base-name} (CHORUS_PAYEUR_NOM)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_PAYEUR_SIRET ON ${base-name} (CHORUS_PAYEUR_SIRET)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_RIB_PAYS ON ${base-name} (CHORUS_RIB_PAYS)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_RIB_BANC ON ${base-name} (CHORUS_RIB_BANC)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_RIB_COMPTE ON ${base-name} (CHORUS_RIB_COMPTE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_RIB_CLE ON ${base-name} (CHORUS_RIB_CLE)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_DOMAINE_FONCTIONNEL ON ${base-name} (CHORUS_DOMAINE_FONCTIONNEL)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_NUM_EJ_LONG ON ${base-name} (CHORUS_NUM_EJ_LONG)</sql>
+ <sql failonerror="false">CREATE INDEX IX_CHORUS_WITH_PJ ON ${base-name} (CHORUS_WITH_PJ)</sql>
+ </patch>
+ </table>
+ <table id="T2" base-name="EDMN_ETATEDMN_IX_EDMN_LIASSES" type="index" version="3" based-on="key1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ NUM_LIASSE VARCHAR(6) NOT NULL,
+ ANNEE_GESTION INTEGER,
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INDEX IX_${base-name}_DC (DOC_ID),
+ INDEX IX_EDMN_ETATEDMN_LIASSES_ANGEST (COLLECTIVITE,BUDGET,ANNEE_GESTION),
+ INDEX IX_EDMN_ETATEDMN_LIASSES_LIASSE_CENTRALE (NUM_LIASSE),
+ 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="1">
+ <sql failonerror="false">ALTER TABLE EDMN_ETATEDMN_IX_EDMN_LIASSES ADD ANNEE_GESTION INTEGER, ADD INDEX IX_EDMN_ETATEDMN_LIASSES_ANGEST(COLLECTIVITE,BUDGET,ANNEE_GESTION)</sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">CREATE INDEX IX_EDMN_ETATEDMN_LIASSES_LIASSE_CENTRALE ON ${base-name} (NUM_LIASSE)</sql>
+ </patch>
+ </table>
+
+ <criteria id="comptable" sql-index-id="comptable">
+ <where-clause>fn:string-compare(${table}.${column},comptable)</where-clause>
+ </criteria>
+ <criteria id="lib-comptable" sql-index-id="lib-comptable">
+ <where-clause>fn:string-compare(${table}.${column},libComptable)</where-clause>
+ </criteria>
+ <criteria id="ministere" sql-index-id="ministere">
+ <where-clause>fn:string-compare(${table}.${column},ministere)</where-clause>
+ </criteria>
+ <criteria id="libministere" sql-index-id="lib-ministere">
+ <where-clause>fn:string-compare(${table}.${column},ministereLib)</where-clause>
+ </criteria>
+ <criteria id="ordo" sql-index-id="ordo">
+ <where-clause>fn:string-compare(${table}.${column},ordo)</where-clause>
+ </criteria>
+ <criteria id="lib-ordo" sql-index-id="lib-ordo">
+ <where-clause>fn:string-compare(${table}.${column},libOrdo)</where-clause>
+ </criteria>
+
+ <criteria id="anneeBudget" sql-index-id="anneeBudget">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="numMandat" sql-index-id="numMandat">
+ <where-clause>fn:string-compare(${table}.${column},numMandat)</where-clause>
+ </criteria>
+ <criteria id="numOpeInvest" sql-index-id="numOpeInvest">
+ <where-clause>fn:string-compare(${table}.${column},numOpeInvest)</where-clause>
+ </criteria>
+ <criteria id="mtPj" sql-index-id="mtPj">
+ <where-clause>${table}.${column}##OPERATEUR:mtPj####VALEUR:mtPj##</where-clause>
+ </criteria>
+ <criteria id="dateCrea" sql-index-id="dateCrea">
+ <where-clause>fn:date-compare(${table}.${column},dateCrea)</where-clause>
+ </criteria>
+ <criteria id="datePaie" sql-index-id="datePaiement">
+ <where-clause>fn:date-compare(${table}.${column},datePaie)</where-clause>
+ </criteria>
+ <criteria id="typeEvt" sql-index-id="typeEvt">
+ <where-clause>${table}.${column}='##VALEUR:typeEvt##'</where-clause>
+ </criteria>
+ <criteria id="liasseLocale" sql-index-id="numLiasseLocale">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="liasseLocaleDeb" sql-index-id="numLiasseLocaleDeb">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="liasseLocaleFin" sql-index-id="numLiasseLocaleFin">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="liasseCentrale" sql-index-id="numLiasseCentrale">
+ <where-clause>fn:string-compare(${table}.${column},numLiasse)</where-clause>
+ </criteria>
+ <criteria id="programme" sql-index-id="programme">
+ <where-clause>fn:string-compare(${table}.${column},programme)</where-clause>
+ </criteria>
+ <criteria id="action" sql-index-id="action">
+ <where-clause>fn:string-compare(${table}.${column},action)</where-clause>
+ </criteria>
+ <criteria id="cpce" sql-index-id="cpce">
+ <where-clause>fn:string-compare(${table}.${column},cpce)</where-clause>
+ </criteria>
+ <criteria id="artPrev" sql-index-id="artPrev">
+ <where-clause>fn:string-compare(${table}.${column},artPrev)</where-clause>
+ </criteria>
+ <criteria id="libProgramme" sql-index-id="libProgramme">
+ <where-clause>fn:string-compare(${table}.${column},libProgramme)</where-clause>
+ </criteria>
+ <criteria id="libAction" sql-index-id="libAction">
+ <where-clause>fn:string-compare(${table}.${column},libAction)</where-clause>
+ </criteria>
+ <criteria id="codeOperExc" sql-index-id="codOperExc">
+ <where-clause>fn:string-compare(${table}.${column},codeOperExc)</where-clause>
+ </criteria>
+ <criteria id="numPieceCompta" sql-index-id="numPieceCompta">
+ <where-clause>fn:string-compare(${table}.${column},numPieceCompta)</where-clause>
+ </criteria>
+ <criteria id="typePaiement" sql-index-id="typePaiement">
+ <where-clause>fn:string-compare(${table}.${column},typePaiement)</where-clause>
+ </criteria>
+ <criteria id="chapClassPJ" sql-index-id="chapClassPJ">
+ <where-clause>fn:string-compare(${table}.${column},chapClassPJ)</where-clause>
+ </criteria>
+ <criteria id="trimestre" sql-index-id="trimestre">
+ <where-clause>${table}.${column}##OPERATEUR:trimestre####VALEUR:trimestre##</where-clause>
+ </criteria>
+ <!-- CHORUS -->
+ <criteria id="nom_societe" sql-index-id="chorus_nom_societe">
+ <where-clause>fn:string-compare(${table}.${column},nom_societe)</where-clause>
+ </criteria>
+ <criteria id="fournisseur_nom" sql-index-id="chorus_fournisseur_nom">
+ <where-clause>fn:string-compare(${table}.${column},fournisseur_nom)</where-clause>
+ </criteria>
+ <criteria id="fournisseur_siret" sql-index-id="chorus_fournisseur_siret">
+ <where-clause>fn:string-compare(${table}.${column},fournisseur_siret)</where-clause>
+ </criteria>
+ <criteria id="payeur_nom" sql-index-id="chorus_payeur_nom">
+ <where-clause>fn:string-compare(${table}.${column},payeur_nom)</where-clause>
+ </criteria>
+ <criteria id="payeur_siret" sql-index-id="chorus_payeur_siret">
+ <where-clause>fn:string-compare(${table}.${column},payeur_siret)</where-clause>
+ </criteria>
+ <criteria id="rib_pays" sql-index-id="chorus_rib_pays">
+ <where-clause>fn:string-compare(${table}.${column},rib_pays)</where-clause>
+ </criteria>
+ <criteria id="rib_banc" sql-index-id="chorus_rib_banc">
+ <where-clause>fn:string-compare(${table}.${column},rib_banc)</where-clause>
+ </criteria>
+ <criteria id="rib_compte" sql-index-id="chorus_rib_compte">
+ <where-clause>fn:string-compare(${table}.${column},rib_compte)</where-clause>
+ </criteria>
+ <criteria id="rib_cle" sql-index-id="chorus_rib_cle">
+ <where-clause>fn:string-compare(${table}.${column},rib_cle)</where-clause>
+ </criteria>
+ <criteria id="domaine_fonctionnel" sql-index-id="chorus_domaine_fonctionnel">
+ <where-clause>fn:string-compare(${table}.${column},domaine_fonctionnel)</where-clause>
+ </criteria>
+ <criteria id="num_ej_long" sql-index-id="chorus_num_ej_long">
+ <where-clause>fn:string-compare(${table}.${column},num_ej_long)</where-clause>
+ </criteria>
+ <criteria id="with_pj" sql-index-id="chorus_with_pj">
+ <where-clause>${table}.${column}='##VALEUR:with_pj##'</where-clause>
+ </criteria>
+
+
+ <!-- LIGNES EDMN -->
+ <sql-index id="anneeBudget" table="T1" column="ANNEE_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:AnneeBudget/@V" datatype="integer"/>
+ <sql-index id="action" table="T1" column="ART_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ArtBudgExec/@V" datatype="string" format="uppercase"/>
+ <sql-index id="artPrev" table="T1" column="ART_BUDG_PREV" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ArtBudgPrev/@V" datatype="string" format="uppercase"/>
+ <sql-index id="programme" table="T1" column="CHAP_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ChapBudg/@V" datatype="string" format="uppercase"/>
+ <sql-index id="chapClassPJ" table="T1" column="CHAP_CLASS" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ChapClassPJ/@V" datatype="string"/>
+ <sql-index id="codOperExc" table="T1" column="CODE_OPER_EXC" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:CodeOperExc/@V" datatype="string" format="uppercase"/>
+ <sql-index id="comptable" table="T1" column="COMPTABLE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Comptable/@V" datatype="string" format="uppercase"/>
+ <sql-index id="dateCrea" table="T1" column="DATE_CREA" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:DateCreation/@V" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="datePaiement" table="T1" column="DATE_PAIEMENT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:DatePaiement/@V" datatype="date" format="yyyy-MM-dd"/>
+ <sql-index id="imputation" table="T1" column="IMPUTATION" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Imputation/@V" datatype="string"/>
+ <sql-index id="libAction" table="T1" column="LIB_ACTION" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleAction/@V" datatype="string" format="uppercase"/>
+ <sql-index id="lib-comptable" table="T1" column="LIB_COMPTABLE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleComptable/@V" datatype="string" format="uppercase"/>
+ <sql-index id="lib-ministere" table="T1" column="LIB_MINISTERE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Ministere/@LibelleMinistere" datatype="string" format="uppercase"/>
+ <sql-index id="lib-ordo" table="T1" column="LIB_ORDO" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleOrdonnateur/@V" datatype="string" format="uppercase"/>
+ <sql-index id="libProgramme" table="T1" column="LIB_PROGRAMME" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:LibelleProgramme/@V" datatype="string" format="uppercase"/>
+ <sql-index id="ministere" table="T1" column="MINISTERE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Ministere/@V" datatype="string" format="uppercase"/>
+ <sql-index id="mtPj" table="T1" column="MT_PJ" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:MtPJ/@V" datatype="decimal"/>
+ <sql-index id="numLiasseLocale" table="T1" column="NUM_LIASSE_LOC" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasse/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numLiasseLocaleDeb" table="T1" column="NUM_LIASSE_DEB" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseDeb/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numLiasseLocaleFin" table="T1" column="NUM_LIASSE_FIN" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseFin/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numMandat" table="T1" column="NUM_MANDAT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumMandat/@V" datatype="string" format="uppercase"/>
+ <sql-index id="ordo" table="T1" column="ORDO" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Ordo/@V" datatype="string" format="uppercase"/>
+ <sql-index id="numOpeInvest" table="T1" column="OPE_INVEST" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumOpeInvest/@V" datatype="string" format="uppercase"/>
+ <sql-index id="cpce" table="T1" column="PARAG_BUDG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:ParagBudgExec/@V" datatype="string" format="uppercase"/>
+ <sql-index id="trimestre" table="T1" column="TRIMESTRE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Trimestre/@V" datatype="integer"/>
+ <sql-index id="typeEvt" table="T1" column="TYPE_EVT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:TypeEvt/@V" datatype="string"/>
+ <sql-index id="typePaiement" table="T1" column="TYPE_PAIEMENT" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:TypePaiement/@V" datatype="string"/>
+ <sql-index id="numPieceCompta" table="T1" column="NUM_PIECE_COMPTA" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumPieceCompta/@V" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_nom_societe" table="T1" column="CHORUS_NOM_SOCIETE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@NomSociete" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_fournisseur_nom" table="T1" column="CHORUS_FOURNISSEUR_NOM" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@FournisseurNom" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_fournisseur_siret" table="T1" column="CHORUS_FOURNISSEUR_SIRET" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@FournisseurSiret" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_payeur_nom" table="T1" column="CHORUS_PAYEUR_NOM" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@PayeurNom" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_payeur_siret" table="T1" column="CHORUS_PAYEUR_SIRET" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@PayeurSiret" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_rib_pays" table="T1" column="CHORUS_RIB_PAYS" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@RibPays" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_rib_banc" table="T1" column="CHORUS_RIB_BANC" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@RibBanc" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_rib_compte" table="T1" column="CHORUS_RIB_COMPTE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@RibCompte" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_rib_cle" table="T1" column="CHORUS_RIB_CLE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@RibCle" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_domaine_fonctionnel" table="T1" column="CHORUS_DOMAINE_FONCTIONNEL" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@DomaineFonctionnel" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_num_ej_long" table="T1" column="CHORUS_NUM_EJ_LONG" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:Depense/@NumEJLong" datatype="string" format="uppercase"/>
+ <sql-index id="chorus_with_pj" table="T1" column="CHORUS_WITH_PJ" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/@added:withPJ" datatype="integer"/>
+
+ <!-- LIASSES -->
+ <sql-index id="numLiasseCentrale" table="T2" column="NUM_LIASSE" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:NumLiasseNationale/n:Liasse/@national" datatype="string" format="uppercase"/>
+ <sql-index id="liasseAnneeGestion" table="T2" column="ANNEE_GESTION" path="/n:Edmn/n:EtatEdmn/n:LigneEdmn/n:AnneeBudget/@V" datatype="integer" use-in-criteria="false"/>
+
+ <!-- chap class -->
+ </etat>
+ <etat id="budgets" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <table base-name="EDMN_BUDG_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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,DOC_ID),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table id="B1" base-name="EDMN_BUDG_INDEX" type="index" version="3" main="true" ignoreConstraintError="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ DATA VARCHAR(9) NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ PROGRAMME VARCHAR(6),
+ ACTION VARCHAR(6),
+ ART_REGROUP VARCHAR(6),
+ CPCE VARCHAR(6),
+ LIBELLE VARCHAR(150),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_${base-name}_PK (COLLECTIVITE,BUDGET,ANNEE,DATA,MINISTERE,PROGRAMME,ACTION,ART_REGROUP),
+ 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="1">
+ <sql failonerror="false">drop table EDMN_BUDG_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ DATA VARCHAR(9) NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ PROGRAMME VARCHAR(6),
+ ACTION VARCHAR(6),
+ CPCE VARCHAR(6),
+ ART_REGROUP VARCHAR(6),
+ LIBELLE VARCHAR(150),
+ INDEX IX_EDMN_BUDG_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_EDMN_BUDG_INDEX_PK (COLLECTIVITE,BUDGET,ANNEE,DATA,MINISTERE,PROGRAMME,ACTION,ART_REGROUP),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">drop table EDMN_BUDG_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ DATA VARCHAR(9) NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ PROGRAMME VARCHAR(6),
+ ACTION VARCHAR(6),
+ CPCE VARCHAR(6),
+ ART_REGROUP VARCHAR(6),
+ LIBELLE VARCHAR(150),
+ INDEX IX_EDMN_BUDG_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_EDMN_BUDG_INDEX_PK (COLLECTIVITE,BUDGET,ANNEE,DATA,MINISTERE,PROGRAMME,ACTION,ART_REGROUP),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </sql>
+ </patch>
+ </table>
+ <criteria id="typeData" sql-index-id="typeData">
+ <where-clause>${table}.${column}='##VALEUR:data##'</where-clause>
+ </criteria>
+ <criteria id="annee" sql-index-id="annee">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="ministere" sql-index-id="min">
+ <where-clause>fn:string-compare(${table}.${column},ministere)</where-clause>
+ </criteria>
+ <criteria id="programme" sql-index-id="prog">
+ <where-clause>fn:string-compare(${table}.${column},programme)</where-clause>
+ </criteria>
+ <criteria id="action" sql-index-id="act">
+ <where-clause>fn:string-compare(${table}.${column},action)</where-clause>
+ </criteria>
+ <criteria id="artRegroupt" sql-index-id="artRegroupt">
+ <where-clause>fn:string-compare(${table}.${column},artRegroupt)</where-clause>
+ </criteria>
+ <criteria id="cpce" sql-index-id="cpce2">
+ <where-clause>fn:string-compare(${table}.${column},cpce)</where-clause>
+ </criteria>
+ <criteria id="libBudget" sql-index-id="budg.lib">
+ <where-clause>fn:string-compare(${table}.${column},libBudg)</where-clause>
+ </criteria>
+
+
+
+ <sql-index id="typeData" table="B1" column="DATA" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Data/@V" datatype="string"/>
+ <sql-index id="annee" table="B1" column="ANNEE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Annee/@V" datatype="integer"/>
+ <sql-index id="min" table="B1" column="MINISTERE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Ministere/@V" datatype="string"/>
+ <sql-index id="prog" table="B1" column="PROGRAMME" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Programme/@V" datatype="string"/>
+ <sql-index id="act" table="B1" column="ACTION" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Action/@V" datatype="string"/>
+ <sql-index id="artRegroupt" table="B1" column="ART_REGROUP" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:ArticleRegroupt/@V" datatype="string" format="uppercase"/>
+ <sql-index id="cpce2" table="B1" column="CPCE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Cpce/@V" datatype="string" format="uppercase"/>
+ <sql-index id="budg.lib" table="B1" column="LIBELLE" path="/n:Edmn/n:NomenclatureBudgets/n:Budget/n:Libelle/@V" datatype="string"/>
+ </etat>
+ <etat id="ordos" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <table base-name="EDMN_ORDOS_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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,DOC_ID),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table id="O1" base-name="EDMN_ORDOS_INDEX" type="index" version="2" main="true" ignoreConstraintError="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ TRIMESTRE INTEGER NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ CPTE_SPE_TRES VARCHAR(6),
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_${base-name}_PK (COLLECTIVITE,BUDGET,ANNEE,TRIMESTRE,MINISTERE,CPTE_SPE_TRES,CODE),
+ 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="1">
+ <sql failonerror="false">drop table EDMN_ORDOS_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS EDMN_ORDOS_INDEX (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ TRIMESTRE INTEGER NOT NULL,
+ MINISTERE VARCHAR(6) NOT NULL,
+ CPTE_SPE_TRES VARCHAR(6),
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ INDEX IX_EDMN_ORDOS_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ UNIQUE INDEX IX_EDMN_ORDOS_INDEX_PK (COLLECTIVITE,BUDGET,ANNEE,TRIMESTRE,MINISTERE,CPTE_SPE_TRES,CODE),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM</sql>
+ </patch>
+
+ </table>
+ <criteria id="ordo.annee" sql-index-id="ordo.annee">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="ordo.ministere" sql-index-id="ordo.min">
+ <where-clause>fn:string-compare(${table}.${column},ministere)</where-clause>
+ </criteria>
+ <criteria id="programme" sql-index-id="prog">
+ <where-clause>fn:string-compare(${table}.${column},programme)</where-clause>
+ </criteria>
+ <criteria id="action" sql-index-id="act">
+ <where-clause>fn:string-compare(${table},${column},action)</where-clause>
+ </criteria>
+ <criteria id="artRegroupt" sql-index-id="artRegroupt">
+ <where-clause>fn:string-compare(${table}.${column},artRegroupt)</where-clause>
+ </criteria>
+ <criteria id="ordo.cpte.spe.tres" sql-index-id="ordo.compte">
+ <where-clause>fn:string-compare(${table}.${column},compte)</where-clause>
+ </criteria>
+ <criteria id="ordo.libelle" sql-index-id="ordo.lib">
+ <where-clause>fn:string-compare(${table}.${column},lib)</where-clause>
+ </criteria>
+ <criteria id="ordo.code" sql-index-id="ordo.code">
+ <where-clause>fn:string-compare(${table}.${column},code)</where-clause>
+ </criteria>
+
+
+
+ <sql-index id="ordo.annee" table="O1" column="ANNEE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:Annee/@V" datatype="integer"/>
+ <sql-index id="ordo.min" table="O1" column="MINISTERE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:CodeMinistere/@V" datatype="string"/>
+ <sql-index id="ordo.code" table="O1" column="CODE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:CodeOrdo/@V" datatype="string"/>
+ <sql-index id="ordo.compte" table="O1" column="CPTE_SPE_TRES" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:CompteSpeTresor/@V" datatype="string"/>
+ <sql-index id="ordo.lib" table="O1" column="LIBELLE" path="/n:Edmn/n:NomenclatureOrdonnateurs/n:Ordonnateur/n:Libelle/@V" datatype="string" format="uppercase"/>
+ </etat>
+ <etat id="comptables" import-xslt-file="edmn/edmn-import-mysql.xsl">
+ <table base-name="EDMN_COMPTA_DOCUMENTS" type="document" version="1">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) 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,DOC_ID),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM
+ </table>
+ <table id="C1" base-name="EDMN_COMPTA_INDEX" type="index" version="3" main="true" ignoreConstraintError="true">
+ CREATE TABLE IF NOT EXISTS ${base-name} (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ UNIQUE INDEX IX_${base-name}_PK (COLLECTIVITE,BUDGET,CODE,ANNEE),
+ INDEX IX_${base-name}_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ 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="1">
+ <sql failonerror="false">drop table EDMN_COMPTA_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS EDMN_COMPTA_INDEX (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ UNIQUE INDEX IX_EDMN_COMPTA_INDEX_PK (COLLECTIVITE,BUDGET,CODE,ANNEE),
+ INDEX IX_EDMN_COMPTA_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM</sql>
+ </patch>
+ <patch from-version="2">
+ <sql failonerror="false">drop table EDMN_COMPTA_INDEX</sql>
+ <sql>CREATE TABLE IF NOT EXISTS EDMN_COMPTA_INDEX (
+ COLLECTIVITE VARCHAR(15) NOT NULL,
+ BUDGET VARCHAR(24) NOT NULL,
+ DOC_ID VARCHAR(100) NOT NULL,
+ ANNEE INTEGER NOT NULL,
+ CODE VARCHAR(6) NOT NULL,
+ LIBELLE VARCHAR(150),
+ UNIQUE INDEX IX_EDMN_COMPTA_INDEX_PK (COLLECTIVITE,BUDGET,CODE,ANNEE),
+ INDEX IX_EDMN_COMPTA_INDEX_BC (COLLECTIVITE,BUDGET,DOC_ID),
+ INITIAL_DOC_NAME VARCHAR(100),
+ INDEX ${base-name}_IDN (INITIAL_DOC_NAME),
+ ARCHIVE_NAME VARCHAR(100),
+ INDEX ${base-name}_AN (ARCHIVE_NAME)
+ ) ENGINE MYISAM</sql>
+ </patch>
+
+ </table>
+ <criteria id="compta.annee" sql-index-id="compta.annee">
+ <where-clause>${table}.${column}##OPERATEUR:annee####VALEUR:annee##</where-clause>
+ </criteria>
+ <criteria id="compta.code" sql-index-id="compta.code">
+ <where-clause>fn:string-compare(${table}.${column},code)</where-clause>
+ </criteria>
+ <criteria id="compta.libelle" sql-index-id="compta.lib">
+ <where-clause>fn:string-compare(${table}.${column},libelle)</where-clause>
+ </criteria>
+
+ <sql-index id="compta.annee" table="C1" column="ANNEE" path="/n:Edmn/n:NomenclatureComptables/n:Comptable/n:Annee/@V" datatype="integer"/>
+ <sql-index id="compta.code" table="C1" column="CODE" path="/n:Edmn/n:NomenclatureComptables/n:Comptable/n:Code/@V" datatype="string" format="uppercase"/>
+ <sql-index id="compta.lib" table="C1" column="LIBELLE" path="/n:Edmn/n:NomenclatureComptables/n:Comptable/n:Libelle/@V" datatype="string" format="uppercase"/>
+ </etat>
+
+ </document>
+ </layer>
+</persistence-config>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:n="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"
+ version="2.0"
+ exclude-result-prefixes="xsl n">
+
+ <xsl:output method="xhtml" encoding="ISO-8859-15" indent="yes" include-content-type="yes"/>
+ <xsl:decimal-format name="decformat" decimal-separator="," grouping-separator=" " digit="#" pattern-separator=";" NaN="NaN" minus-sign="-"/>
+
+ <!-- Paramètres Web -->
+ <xsl:param name="is.web">-1</xsl:param>
+ <xsl:param name="context.path"/>
+
+ <!-- Paramètres d'erreur -->
+ <xsl:param name="error.message">nomessage</xsl:param>
+
+ <xsl:template match="/n:Edmn/n:EtatEdmn/n:LigneEdmn">
+ <html>
+ <head>
+ <title>Xemelios - Mandat national</title>
+ <style type="text/css">
+ body {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ }
+ span.lib {
+ font-weight: bold;
+ margin-right: 7px;
+ }
+ span.val {
+ font-style: italic;
+ }
+ div.emetteur {
+ top: 30px;
+ left: 0px;
+ }
+ div.chorus { border: #000000 dotted 1px; width: 80%;}
+ table.chorus { border-collapse: collapse; border: #000000 solid 2px;}
+ th.chorus { border: #000000 solid 2px;}
+ td.chorus { border: #000000 solid 1px;}
+ </style>
+ <script>
+ function hideDialog() {
+ var dialogBox = document.getElementById("dialogBox");
+ dialogBox.style.visibility = "hidden";
+ }
+
+ function showDialog(content) {
+ var dialogBox = document.getElementById("dialogBox");
+ var dialogContent = document.getElementById("dialogContent");
+ dialogContent.innerHTML = content;
+ dialogBox.style.visibility = "visible";
+ }
+ </script>
+ <div id="dialogBox" style="visibility: hidden; position: absolute; left: 10px; top: 10px; width: 800px; height: 100px; border-style: solid; border-width: 1px; border-color: #00006A; background-color: white; z-index: 1000;">
+ <table border="0" width="100%">
+ <tr>
+ <td style="width: 100%; font-weight:bold;" id="dialogContent"></td>
+ <td valign="top" align="right">
+ <a href="javascript:hideDialog();"><img src="img/bt_fermer.gif" border="0"/></a>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </head>
+ <body>
+ <xsl:if test="$error.message!='nomessage'">
+ <xsl:attribute name="onload">javascript:showDialog('<xsl:value-of select="$error.message"/>');</xsl:attribute>
+ </xsl:if>
+ <h1>Mandat National</h1>
+ <div class="emetteur">
+ <p>
+ <span class="lib">Comptable:</span><span class="val"><xsl:value-of select="n:LibelleComptable/@V"/> (<xsl:value-of select="n:Comptable/@V"/>)</span><br/>
+ <span class="lib">Ministère:</span><span class="val"><xsl:value-of select="n:Ministere/@LibelleMinistere"/> (<xsl:value-of select="n:Ministere/@V"/>)</span><br/>
+ <span class="lib">Ordonnateur:</span><span class="val"><xsl:value-of select="n:LibelleOrdonnateur/@V"/> (<xsl:value-of select="n:Ordo/@V"/>)</span>
+ </p>
+ </div>
+ <div class="budget">
+ <p>
+ <span class="lib">Programme:</span><span class="val"><xsl:value-of select="n:LibelleProgramme/@V"/> (<xsl:value-of select="n:ChapBudg/@V"/>)</span><br/>
+ <span class="lib">Sous-action:</span><span class="val"><xsl:value-of select="n:LibelleAction/@V"/> (<xsl:value-of select="n:ArtBudgExec/@V"/>)</span><br/>
+ <span class="lib">Compte PCE:</span><span class="val"><xsl:value-of select="n:LibelleBudget/@V"/> (<xsl:value-of select="n:ParagBudgExec/@V"/>)</span>
+ </p>
+ </div>
+ <div class="general">
+ <p>
+ <span class="lib">Num Mandat:</span><span class="val"><xsl:value-of select="n:NumMandat/@V"/></span><br/>
+ <span class="lib">Date comptabilisation:</span><span class="val"><xsl:call-template name="format-date"><xsl:with-param name="date" select="n:DateCreation[1]/@V"/></xsl:call-template></span><br/>
+ <span class="lib">Date paiement:</span>
+ <xsl:if test="exists(n:DatePaiement)">
+ <span class="val"><xsl:call-template name="format-date"><xsl:with-param name="date" select="n:DatePaiement[1]/@V"/></xsl:call-template></span>
+ </xsl:if><br/>
+ <span class="lib">Année budgétaire:</span><span class="val"><xsl:value-of select="n:AnneeBudget/@V"/></span><br/>
+ <span class="lib">Type évènement:</span><span class="val"><xsl:call-template name="typeEvt"><xsl:with-param name="evt" select="n:TypeEvt/@V"/></xsl:call-template></span><br/>
+ <span class="lib">Compte spécial du trésor:</span><span class="val"><xsl:value-of select="n:CompteSpeTresor/@V"/></span><br/>
+ <span class="lib">Opération d'investissement:</span><span class="val"><xsl:value-of select="n:NumOpeInvest/@V"/></span><br/>
+ <span class="lib">Année engagement:</span><span class="val"><xsl:value-of select="n:AnneeEngag/@V"/></span><br/>
+ <span class="lib">Engagement:</span><span class="val"><xsl:value-of select="n:NumEngag/@V"/></span><br/>
+ <span class="lib">Montant (€):</span><span class="val"><xsl:call-template name="number"><xsl:with-param name="num" select="n:MtPJ/@V"/></xsl:call-template></span>
+ </p>
+ </div>
+ <div class="liasses">
+ <h3>Informations générales</h3>
+ <p>
+ <span class="lib"><xsl:choose>
+ <xsl:when test="n:NumLiasseDeb/@V = n:NumLiasseFin/@V">Liasse locale:</xsl:when>
+ <xsl:otherwise>Liasses locales:</xsl:otherwise>
+ </xsl:choose></span>
+ <span class="val"><xsl:choose>
+ <xsl:when test="n:NumLiasseDeb/@V = n:NumLiasseFin/@V"><xsl:value-of select="n:NumLiasseDeb/@V"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="n:NumLiasseDeb/@V"/>..<xsl:value-of select="n:NumLiasseFin/@V"/></xsl:otherwise>
+ </xsl:choose></span><br/>
+ <span class="lib"><xsl:choose>
+ <xsl:when test="n:NumLiasseDeb/@V = n:NumLiasseFin/@V">Liasse nationale:</xsl:when>
+ <xsl:otherwise>Liasses nationales:</xsl:otherwise>
+ </xsl:choose></span>
+ <span class="val"><xsl:choose>
+ <xsl:when test="n:NumLiasseDeb/@V = n:NumLiasseFin/@V"><xsl:value-of select="n:NumLiasseNationale/n:Liasse[1]/@national"/></xsl:when>
+ <xsl:otherwise><ul><xsl:for-each select="n:NumLiasseNationale/n:Liasse"><li><xsl:value-of select="./@national"/></li></xsl:for-each></ul></xsl:otherwise>
+ </xsl:choose></span>
+ </p>
+ <h3>Informations détaillées</h3>
+ <table style="border-collapse: collapse;">
+ <colgroup>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="7" style="text-align: center; font-weight: bold; border: solid;">Code-Barre</th>
+ <th colspan="5" style="text-align: center; font-weight: bold; border: solid;">Etiquette</th>
+ </tr>
+ <tr>
+ <th style="border-style: solid solid solid solid;">Gestion</th>
+ <th style="border-style: none solid solid none;">Trimestre</th>
+ <th style="border-style: none solid solid none;">Comptable</th>
+ <th style="border-style: none solid solid none;">Imputation</th>
+ <th style="border-style: none solid solid none;">Ministère</th>
+ <th style="border-style: none solid solid none;">Cpte spé Trésor</th>
+ <th style="border-style: none solid solid none;">Num. local</th>
+ <th style="border-style: none solid solid solid;">Ministère</th>
+ <th style="border-style: none solid solid none;">Gestion</th>
+ <th style="border-style: none solid solid none;">Trimestre</th>
+ <th style="border-style: none solid solid none;">Cpte spé national</th>
+ <th style="border-style: none solid solid none;">Num. national</th>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:for-each select="n:NumLiasseNationale/n:Liasse">
+ <tr>
+ <xsl:choose>
+ <xsl:when test="position() = last()">
+ <td style="border-left: solid; border-right: solid; border-bottom: solid;"><xsl:value-of select="./@anneeGest"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@triGest"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="../../n:Comptable/@V"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="../../n:Imputation/@V"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="../../n:Ministere/@V"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@cpteSpeTres"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@local"/></td>
+ <td style="border-left: solid; border-right: solid; border-bottom: solid;"><xsl:value-of select="./@sectionBudg"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@anneeTrsp"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@triTrsp"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@cpteSpeNat"/></td>
+ <td style="border-right: solid; border-bottom: solid;"><xsl:value-of select="./@national"/></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td style="border-left: solid; border-right: solid;"><xsl:value-of select="./@anneeGest"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@triGest"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="../../n:Comptable/@V"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="../../n:Imputation/@V"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="../../n:Ministere/@V"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@cpteSpeTres"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@local"/></td>
+ <td style="border-left: solid; border-right: solid;"><xsl:value-of select="./@sectionBudg"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@anneeTrsp"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@triTrsp"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@cpteSpeNat"/></td>
+ <td style="border-right: solid;"><xsl:value-of select="./@national"/></td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ </xsl:for-each>
+ </tbody>
+ </table>
+ </div>
+
+ <xsl:if test="count(n:Depense) > 0">
+ <br/>
+ <div class="chorus">
+ <xsl:for-each select="n:Depense">
+ <h3>Informations Supplémentaires</h3>
+ <p>
+ <xsl:if test="string-length(@CodeEvt)"><span class="lib">CodeEvt : </span><span class="val"><xsl:value-of select="@CodeEvt"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@DesignType)"><span class="lib">DesignType : </span><span class="val"><xsl:value-of select="@DesignType"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@NumPieceFi)"><span class="lib">NumPieceFi : </span><span class="val"><xsl:value-of select="@NumPieceFi"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@Societe)"><span class="lib">Societe : </span><span class="val"><xsl:value-of select="@Societe"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@NomSociete)"><span class="lib">NomSociete : </span><span class="val"><xsl:value-of select="@NomSociete"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@Poste)"><span class="lib">Poste : </span><span class="val"><xsl:value-of select="@Poste"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@ExerciceCompta)"><span class="lib">ExerciceCompta : </span><span class="val"><xsl:value-of select="@ExerciceCompta"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@ReferenceFinanciere)"><span class="lib">ReferenceFinanciere : </span><span class="val"><xsl:value-of select="@ReferenceFinanciere"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@TxtEnteteFinancier)"><span class="lib">TxtEnteteFinancier : </span><span class="val"><xsl:value-of select="@TxtEnteteFinancier"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@TexteFinancier)"><span class="lib">TexteFinancier : </span><span class="val"><xsl:value-of select="@TexteFinancier"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@MinistereBudgetaire)"><span class="lib">MinistereBudgetaire : </span><span class="val"><xsl:value-of select="@MinistereBudgetaire"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@MinistereBudgetaireDesign)"><span class="lib">MinistereBudgetaireDesign : </span><span class="val"><xsl:value-of select="@MinistereBudgetaireDesign"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@DomaineActivite)"><span class="lib">DomaineActivite : </span><span class="val"><xsl:value-of select="@DomaineActivite"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@DomaineFonctionnel)"><span class="lib">DomaineFonctionnel : </span><span class="val"><xsl:value-of select="@DomaineFonctionnel"/></span><br/><br/></xsl:if>
+ <xsl:if test="string-length(@DateComptable)"><span class="lib">DateComptable : </span><span class="val"><xsl:call-template name="iso-date"><xsl:with-param name="datebrute" select="@DateComptable"/></xsl:call-template></span><br/></xsl:if>
+ <xsl:if test="string-length(@DatePaiement)"><span class="lib">DatePaiement : </span><span class="val"><xsl:call-template name="iso-date"><xsl:with-param name="datebrute" select="@DatePaiement"/></xsl:call-template></span><br/></xsl:if>
+ <xsl:if test="string-length(@CentreFinancier)"><span class="lib">CentreFinancier : </span><span class="val"><xsl:value-of select="@CentreFinancier"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@DesignationFinancier)"><span class="lib">DesignationFinancier : </span><span class="val"><xsl:value-of select="@DesignationFinancier"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@CentreCout)"><span class="lib">CentreCout : </span><span class="val"><xsl:value-of select="@CentreCout"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@CentreCoutDesign)"><span class="lib">CentreCoutDesign : </span><span class="val"><xsl:value-of select="@CentreCoutDesign"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@TypeEJ)"><span class="lib">TypeEJ : </span><span class="val"><xsl:value-of select="@TypeEJ"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@TypeEJDesign)"><span class="lib">TypeEJDesign : </span><span class="val"><xsl:value-of select="@TypeEJDesign"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@NumEJ)"><span class="lib">NumEJ : </span><span class="val"><xsl:value-of select="@NumEJ"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@NumEJLong)"><span class="lib">NumEJLong : </span><span class="val"><xsl:value-of select="@NumEJLong"/></span><br/></xsl:if>
+ <xsl:if test="string-length(@DateEJ)"><span class="lib">DateEJ : </span><span class="val"><xsl:call-template name="iso-date"><xsl:with-param name="datebrute" select="@DateEJ"/></xsl:call-template></span><br/></xsl:if>
+ <xsl:if test="string-length(@TypeMt)"><span class="lib">TypeMt : </span><span class="val"><xsl:value-of select="@TypeMt"/></span><br/></xsl:if>
+
+ <xsl:if test="string-length(@FournisseurNum) or string-length(@FournisseurNom) or string-length(@FournisseurSiret)">
+ <span class="lib"><u>Fournisseur</u></span><br/>
+ <span class="lib">Numéro : </span><span class="val"><xsl:value-of select="@FournisseurNum"/></span><span class="lib"> Nom : </span><span class="val"><xsl:value-of select="@FournisseurNom"/></span><span class="lib"> Siret : </span><span class="val"><xsl:value-of select="@FournisseurSiret"/></span><br/><br/>
+ </xsl:if>
+ <xsl:if test="string-length(@PayeurNum) or string-length(@PayeurNom) or string-length(@PayeurSiret)">
+ <span class="lib"><u>Payeur</u></span><br/>
+ <span class="lib">Numéro : </span><span class="val"><xsl:value-of select="@PayeurNum"/></span><span class="lib">Nom : </span><span class="val"><xsl:value-of select="@PayeurNom"/></span><span class="lib">Siret : </span><span class="val"><xsl:value-of select="@PayeurSiret"/></span><br/><br/>
+ </xsl:if>
+ <span class="lib">Rib : </span><span class="val"><xsl:value-of select="@RibPays"/> <xsl:value-of select="@RibBanc"/> <xsl:value-of select="@RibCompte"/> <xsl:value-of select="@RibCle"/></span><br/>
+ <br/>
+ <span class="lib"><u>Informations PCE</u></span><br/>
+ <br/>
+ <table class="chorus">
+ <colgroup>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="chorus">Type</th>
+ <th class="chorus">Compte</th>
+ <th class="chorus">Libelle</th>
+ <th class="chorus">Débit / Crédit</th>
+ <th class="chorus">Compte Alphanumérique</th>
+ <th class="chorus">Compte Palier LOLF</th>
+ <th class="chorus">Compte Budgétaire</th>
+ <th class="chorus">Montant (€)</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="chorus"><xsl:value-of select="@TypePce"/></td>
+ <td class="chorus"><xsl:value-of select="@ComptePCE"/></td>
+ <td class="chorus"><xsl:value-of select="@LibellePCE"/></td>
+ <td class="chorus"><xsl:value-of select="@DebitCreditPCE"/></td>
+ <td class="chorus"><xsl:value-of select="@CompteAlpha"/></td>
+ <td class="chorus"><xsl:value-of select="@ComptePalier"/></td>
+ <td class="chorus"><xsl:value-of select="@CompteBudg"/></td>
+ <td class="chorus"><xsl:value-of select="@MtPCE"/></td>
+ </tr>
+ </tbody>
+ </table>
+ </p>
+ <xsl:if test="count(n:PJ) > 0">
+ <u><h3>Pièces justificatives</h3></u>
+ <table class="chorus">
+ <colgroup>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="chorus"> </th>
+ <th class="chorus">Société</th>
+ <th class="chorus">Numéro Pièce Financière</th>
+ <th class="chorus">Poste</th>
+ <th class="chorus">Exercice Comptable</th>
+ <th class="chorus">Numéro EJ</th>
+ <th class="chorus">Type PJ</th>
+ <th class="chorus">Cont. Repos.</th>
+ <th class="chorus">Type Document</th>
+ <th class="chorus">Format</th>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:for-each select="n:PJ">
+ <tr>
+ <td class="chorus">
+ <!--xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:text disable-output-escaping="yes">xemelios:/pjatlas?id=</xsl:text><xsl:value-of select="@IdPJ"/>
+ </xsl:attribute>
+ <xsl:value-of select="@IdPJ"/>
+ </xsl:element-->
+ <center>
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:if test="$is.web"><xsl:value-of select="$context.path"/>/</xsl:if>pjatlas.do?contRep=<xsl:value-of select="@ContRepos"/>&docId=<xsl:value-of select="@IdPJ"/></xsl:attribute>
+ <xsl:attribute name="style">text-decoration: none;</xsl:attribute>
+ <center>
+ <xsl:choose>
+ <xsl:when test="@TypeDoc='PDF'"><img src="xemelios:/resource?pdf.png" alt="Obtenir PJ" style="border: none;"/></xsl:when>
+ <!--xsl:when test="@TypeDoc='XML'"></xsl:when-->
+ <xsl:otherwise><img src="xemelios:/resource?pj.png" alt="Obtenir PJ" style="border: none;"/></xsl:otherwise>
+ </xsl:choose>
+ </center>
+ </xsl:element>
+ </center>
+ </td>
+ <td class="chorus"><xsl:value-of select="@Societe"/></td>
+ <td class="chorus"><xsl:value-of select="@NumPieceFi"/></td>
+ <td class="chorus"><xsl:value-of select="@Poste"/></td>
+ <td class="chorus"><xsl:value-of select="@ExerciceCompta"/></td>
+ <td class="chorus"><xsl:value-of select="@NumEJ"/></td>
+ <td class="chorus"><xsl:value-of select="@TypePJ"/></td>
+ <td class="chorus"><xsl:value-of select="@ContRepos"/></td>
+ <td class="chorus"><xsl:value-of select="@TypeDoc"/></td>
+ <td class="chorus"><xsl:value-of select="@Format"/></td>
+ </tr>
+ </xsl:for-each>
+ </tbody>
+ </table>
+ <br/>
+ </xsl:if>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+
+ </xsl:template>
+
+ <xsl:template name="format-date">
+ <xsl:param name="date"/>
+ <xsl:value-of select="substring($date,9)"/>/<xsl:value-of select="substring($date,6,2)"/>/<xsl:value-of select="substring($date,1,4)"/>
+ </xsl:template>
+
+ <xsl:template name="typeEvt">
+ <xsl:param name="evt"/>
+ <xsl:choose>
+ <xsl:when test="$evt = '600'">Ordonnance de virement</xsl:when>
+ <xsl:when test="$evt = '603'">DL ou mandat de régularisation</xsl:when>
+ <xsl:when test="$evt = '605'">Ventilation budgétaire de la paye</xsl:when>
+ <xsl:when test="$evt = '610'">DL ou mandat sur commande d'achat simple en DC, DL sur bon de com./ marché en DC, DL sur contrat d'achat en DC, DL direct en DC</xsl:when>
+ <xsl:when test="$evt = '612'">Ordonnances de ré-imputation</xsl:when>
+ <xsl:when test="$evt = '613'">Bordereau d'annulation (inclus les types 613, 618, 619 et 620)</xsl:when>
+ <xsl:otherwise>Inconnu</xsl:otherwise>
+ </xsl:choose> (<xsl:value-of select="$evt"/>)
+ </xsl:template>
+
+ <xsl:template name="number">
+ <xsl:param name="num"/>
+ <xsl:choose>
+ <xsl:when test="string-length(string($num)) = 0"/>
+ <xsl:when test="number($num) = 0">
+ <xsl:value-of select="format-number(0,'# ###,00;-# ###,00','decformat')"/>
+ </xsl:when>
+ <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="iso-date">
+ <xsl:param name="datebrute"/>
+ <xsl:choose>
+ <xsl:when test="string-length($datebrute)>0 and not(contains($datebrute,'..'))">
+ <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:when>
+ <xsl:when test="string-length($datebrute)>0 and contains($datebrute,'..')">
+ <xsl:value-of select="$datebrute"/>
+ </xsl:when>
+ <xsl:otherwise>-</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+<xsl:param name="title"/>
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:variable name="debug" select="'false'"/>
+
+ <xsl:template match="/">
+ <!--link href="http://global/content/xml/XMLPrettyPrint.css" type="text/css" rel="stylesheet"/>
+ <link title="Monospace" href="http://global/content/xml/XMLMonoPrint.css" type="text/css" rel="alternate stylesheet"/>
+ <div id="header">
+ <p>
+ &xml.nostylesheet;
+ </p>
+ </div-->
+ <html>
+ <head>
+ <title>Source XML de <xsl:value-of select="$title"/></title>
+ <style type="text/css">
+ span { font-family: monospace; font-size: 12px; }
+ .expander-content {
+ padding-left: 1em;
+ }
+
+ .expander {
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ display: inline-block;
+ margin-left: -1em;
+ }
+
+ #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><xsl:apply-templates/></body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="*">
+ <xsl:if test="not(namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#added' or namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#anomally' or starts-with(local-name(.),'added:') or starts-with(local-name(.),'ano:')) or $debug='true'">
+ <div>
+ <xsl:text><</xsl:text>
+ <span class="start-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>/></xsl:text>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="*[node()]">
+ <xsl:if test="not(namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#added' or namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#anomally' or starts-with(local-name(.),'added:') or starts-with(local-name(.),'ano:')) or $debug='true'">
+ <div>
+ <xsl:text><</xsl:text>
+ <span class="start-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>></xsl:text>
+
+ <span class="text"><xsl:value-of select="."/></span>
+
+ <xsl:text></</xsl:text>
+ <span class="end-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:text>></xsl:text>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="*[* or processing-instruction() or comment() or string-length(.) > 50]">
+ <xsl:if test="not(namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#added' or namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#anomally' or starts-with(local-name(.),'added:') or starts-with(local-name(.),'ano:')) or $debug='true'">
+ <div class="expander-open">
+ <xsl:call-template name="expander"/>
+
+ <xsl:text><</xsl:text>
+ <span class="start-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>></xsl:text>
+
+ <div class="expander-content"><xsl:apply-templates/></div>
+
+ <xsl:text></</xsl:text>
+ <span class="end-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:text>></xsl:text>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="@*">
+ <xsl:if test="not(namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#added' or namespace-uri(.) = 'http://projets.admisource.gouv.fr/xemelios/namespaces#anomally' or starts-with(local-name(.),'added:') or starts-with(local-name(.),'ano:')) or $debug='true'">
+ <xsl:text> </xsl:text>
+ <span class="attribute-name"><xsl:value-of select="name(.)"/></span>
+ <xsl:text>=</xsl:text>
+ <span class="attribute-value">"<xsl:value-of select="."/>"</span>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:if test="normalize-space(.)">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="processing-instruction()">
+ <div class="pi">
+ <xsl:text><?</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>?></xsl:text>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="processing-instruction()[string-length(.) > 50]">
+ <div class="expander-open">
+ <xsl:call-template name="expander"/>
+
+ <span class="pi">
+ <xsl:text> <?</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </span>
+ <div class="expander-content pi"><xsl:value-of select="."/></div>
+ <span class="pi">
+ <xsl:text>?></xsl:text>
+ </span>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="comment()">
+ <div class="comment">
+ <xsl:text><!--</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>--></xsl:text>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="comment()[string-length(.) > 50]">
+ <div class="expander-open">
+ <xsl:call-template name="expander"/>
+
+ <span class="comment">
+ <xsl:text><!--</xsl:text>
+ </span>
+ <div class="expander-content comment">
+ <xsl:value-of select="."/>
+ </div>
+ <span class="comment">
+ <xsl:text>--></xsl:text>
+ </span>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="expander">
+ <!--div class="expander">−</div-->
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+/*
+ * Copyright
+ * 2009 axYus - www.axyus.com
+ * 2009 c.Marhcand - christophe.marchand@axyus.com
+ *
+ * This file is part of XEMELIOS.
+ *
+ * XEMELIOS is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * XEMELIOS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XEMELIOS; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package fr.gouv.finances.dgfip.xemelios.edmn.patchers;
+
+import fr.gouv.finances.dgfip.utils.xml.FactoryProvider;
+import fr.gouv.finances.dgfip.xemelios.common.FileInfo;
+import fr.gouv.finances.dgfip.xemelios.data.impl.pool.PoolManager;
+import fr.gouv.finances.dgfip.xemelios.importers.AbstractImportPatcherImpl;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author christophe.marchand
+ */
+public class NumLiassePatcher extends AbstractImportPatcherImpl {
+ private static final Logger logger = Logger.getLogger(NumLiassePatcher.class);
+ private static final String TABLE_INDEX = "INDEX_PATCH";
+ private static final String SCRIPT_INDEX = "CREATE TABLE IF NOT EXISTS "+TABLE_INDEX+" (\n"+
+ "IND_ANNEE_GEST VARCHAR(2) not null,\n"+
+ "IND_TRI_GEST VARCHAR(1) not null,\n"+
+ "IND_COMPTABLE VARCHAR(6) not null,\n"+
+ "IND_IMPUTATION VARCHAR(1) not null,\n"+
+ "IND_MINISTERE VARCHAR(2) not null,\n"+
+ "IND_COMPTESPE VARCHAR(5) not null,\n"+
+ "IND_LOCALE VARCHAR(4) not null,\n"+
+ "IND_ANNEE_TRSP VARCHAR(2) not null,\n"+
+ "IND_TRI_TRSP VARCHAR(1) not null,\n"+
+ "IND_SECTION_BUDG VARCHAR(2),\n"+
+ "IND_CPTESPENAT VARCHAR(5) not null,\n"+
+ "IND_NATIONALE VARCHAR(6),\n"+
+ "INDEX IX_INDEX (IND_ANNEE_GEST,IND_TRI_GEST,IND_COMPTABLE,IND_IMPUTATION,IND_MINISTERE,IND_LOCALE)\n"+
+ ")";
+ private static final transient String REQUEST = "SELECT edmn.COLLECTIVITE, edmn.BUDGET, edmn.DOC_ID FROM EDMN_ETATEDMN_INDEX_EDMN edmn LEFT OUTER JOIN EDMN_ETATEDMN_IX_EDMN_LIASSES liasse ON edmn.COLLECTIVITE=liasse.COLLECTIVITE and edmn.BUDGET=liasse.BUDGET and edmn.DOC_ID=liasse.DOC_ID "+
+// "where edmn.MINISTERE='23' and edmn.COMPTABLE='075000' and edmn.NUM_LIASSE_DEB='0018' and edmn.ORDO='062075' and edmn.CHAP_BUDG='0225' and edmn.NUM_LIASSE_DEB='0018' "+
+ "GROUP BY edmn.COLLECTIVITE, edmn.BUDGET, edmn.DOC_ID HAVING count(liasse.DOC_ID)=0";
+ private static final transient String REQUEST_COUNT = "SELECT count(*) from ( SELECT edmn.COLLECTIVITE, edmn.BUDGET, edmn.DOC_ID FROM EDMN_ETATEDMN_INDEX_EDMN edmn LEFT OUTER JOIN EDMN_ETATEDMN_IX_EDMN_LIASSES liasse ON edmn.COLLECTIVITE=liasse.COLLECTIVITE and edmn.BUDGET=liasse.BUDGET and edmn.DOC_ID=liasse.DOC_ID GROUP BY edmn.COLLECTIVITE, edmn.BUDGET, edmn.DOC_ID HAVING count(liasse.DOC_ID)=0 ) as toto";
+ protected DocumentBuilderFactory domFactory;
+ protected TransformerFactory transformerFactory;
+ public NumLiassePatcher() {
+ super();
+ domFactory = FactoryProvider.getDocumentBuilderFactory();
+ domFactory.setNamespaceAware(true);
+ transformerFactory = FactoryProvider.getTransformerFactory();
+ }
+ @Override
+ public FileInfo run() {
+ getImportServiceProvider().startLongWait();
+ File indexFile = (File)getParameter("index.file");
+ Connection conPatch = null, con2 = null, con3=null;
+ int rowPatched = 0;
+ try {
+ conPatch = PoolManager.getInstance().getConnection();
+ con2 = PoolManager.getInstance().getConnection();
+ con3 = PoolManager.getInstance().getConnection();
+ Statement st = conPatch.createStatement();
+ st.execute(SCRIPT_INDEX);
+ st.execute("TRUNCATE TABLE "+TABLE_INDEX);
+ PreparedStatement ps = conPatch.prepareStatement("INSERT INTO "+TABLE_INDEX+" (IND_ANNEE_GEST,IND_TRI_GEST,IND_COMPTABLE,IND_IMPUTATION,IND_MINISTERE,IND_COMPTESPE,IND_LOCALE,IND_ANNEE_TRSP,IND_TRI_TRSP,IND_SECTION_BUDG,IND_CPTESPENAT,IND_NATIONALE) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");
+ BufferedReader br = new BufferedReader(new FileReader(indexFile));
+ String line = br.readLine();
+ while(line!=null && line.length()>0) {
+ String[] els = line.split(";");
+ for(int i=0;i<12;i++) ps.setString(i+1,els[i]);
+//logger.debug("inserting ["+els[0]+","+els[1]+","+els[2]+","+els[3]+","+els[4]+","+els[5]+"]");
+ ps.executeUpdate();
+ line = br.readLine();
+ }
+ ResultSet rs = con2.createStatement().executeQuery(REQUEST_COUNT);
+ rs.next();
+ int rows = rs.getInt(1);
+
+ getImportServiceProvider().endLongWait();
+ br.close();
+ rs = con2.createStatement().executeQuery(REQUEST);
+ int rowFetched = 0;
+ while(rs.next()) {
+ final int progress = (int)((rowFetched+1)*100.0/rows);
+ getImportServiceProvider().pushCurrentProgress(progress);
+ String collectivite = rs.getString(1);
+ String budget = rs.getString(2);
+ String docId =rs.getString(3);
+ if(patchDocument(collectivite,budget,docId,conPatch,con3))
+ rowPatched++;
+ }
+ } catch(Exception ex) {
+ logger.error("run() - indexFile="+indexFile.getAbsolutePath(),ex);
+ } finally {
+ if(conPatch!=null) {
+// try { conPatch.createStatement().executeUpdate("DROP TABLE INDEX_PATCH"); }catch(Exception ex) {}
+ PoolManager.getInstance().releaseConnection(conPatch);
+ }
+ if(con2!=null) PoolManager.getInstance().releaseConnection(con2);
+ if(con3!=null) PoolManager.getInstance().releaseConnection(con3);
+ getImportServiceProvider().endLongWait();
+ }
+ FileInfo ret = new FileInfo();
+ ret.setMessage(rowPatched+" mandats corrigés pour les liasses nationales\n");
+ return ret;
+ }
+
+ private boolean patchDocument(String collectivite,String budget,String docId,Connection conPatch,Connection con2) throws Exception {
+ boolean ret = false;
+ PreparedStatement psLiassesLocales = con2.prepareStatement("SELECT edmn.COMPTABLE, edmn.IMPUTATION, edmn.MINISTERE, edmn.ANNEE_BUDG, edmn.TRIMESTRE, edmn.NUM_LIASSE_DEB, edmn.NUM_LIASSE_FIN FROM EDMN_ETATEDMN_INDEX_EDMN edmn where edmn.COLLECTIVITE=? AND edmn.BUDGET=? AND edmn.DOC_ID=?");
+ psLiassesLocales.setString(1,collectivite);
+ psLiassesLocales.setString(2, budget);
+ psLiassesLocales.setString(3, docId);
+ ResultSet rsLiasses = psLiassesLocales.executeQuery();
+ if(rsLiasses.next()) {
+ String comptable = rsLiasses.getString(1);
+ String imputation = rsLiasses.getString(2);
+ String ministere = rsLiasses.getString(3);
+ String annee = rsLiasses.getString(4);
+ String trimestre = rsLiasses.getString(5);
+ String numLiasseDeb = rsLiasses.getString(6);
+ String numLiasseFin = rsLiasses.getString(7);
+ StringBuffer numLiasses = new StringBuffer();
+ int first = 0;
+ int last = 0;
+ try {
+ first = Integer.parseInt(numLiasseDeb);
+ } catch (NumberFormatException nfEx) { }
+ try {
+ last = Integer.parseInt(numLiasseFin);
+ } catch (NumberFormatException nfEx) { }
+ numLiasses.append("(");
+ for (int i = first; i < last; i++) {
+ numLiasses.append("'").append(fmtNumLiasse(i)).append("',");
+ }
+ numLiasses.append("'").append(fmtNumLiasse(last)).append("')");
+ String sql = "SELECT IND_ANNEE_GEST, IND_TRI_GEST, IND_COMPTABLE, IND_IMPUTATION, IND_MINISTERE, IND_COMPTESPE, IND_LOCALE, IND_ANNEE_TRSP, IND_TRI_TRSP, IND_SECTION_BUDG, IND_CPTESPENAT, IND_NATIONALE FROM " + TABLE_INDEX + " WHERE IND_ANNEE_GEST=? AND IND_TRI_GEST=? AND IND_COMPTABLE=? AND IND_IMPUTATION=? AND IND_MINISTERE=? AND IND_LOCALE IN " + numLiasses.toString() + " ORDER BY IND_LOCALE";
+ PreparedStatement ps = conPatch.prepareStatement(sql);
+ ps.setString(1, annee.substring(2));
+ ps.setString(2, trimestre);
+ ps.setString(3, comptable);
+ ps.setString(4, imputation);
+ ps.setString(5, ministere);
+ ResultSet rs2 = ps.executeQuery();
+//logger.debug("querying ["+annee.substring(2)+","+trimestre+","+comptable+","+imputation+","+ministere+","+numLiasseDeb+","+numLiasseFin+"]");
+// StringBuilder numLiassesNat = new StringBuilder();
+ ArrayList<Liasse> liasses = new ArrayList<Liasse>();
+ while(rs2.next()) {
+// numLiassesNat.append(rs2.getString(1)).append(" ");
+// liasses.add(rs2.getString(1));
+ liasses.add(new Liasse(rs2));
+ }
+ rs2.close();
+ ps.close();
+ if(liasses.size()>0) {
+//logger.debug("patching ["+collectivite+","+budget+","+docId+"]");
+// numLiassesNat.deleteCharAt(numLiassesNat.length()-1);
+ ps = con2.prepareStatement("INSERT INTO EDMN_ETATEDMN_IX_EDMN_LIASSES (COLLECTIVITE,BUDGET,DOC_ID,NUM_LIASSE,ANNEE_GESTION) VALUES(?,?,?,?,?)");
+ ps.setString(1,collectivite);
+ ps.setString(2,budget);
+ ps.setString(3,docId);
+ ps.setString(5,annee);
+ for(Liasse l:liasses) {
+ ps.setString(4,l.getNumNat());
+ ps.executeUpdate();
+ }
+ ps.close();
+ ps = con2.prepareStatement("SELECT DOC, ENCODING FROM EDMN_ETATEDMN_DOCUMENTS WHERE COLLECTIVITE=? AND BUDGET=? AND DOC_ID=?");
+ ps.setString(1,collectivite);
+ ps.setString(2,budget);
+ ps.setString(3,docId);
+ rs2 = ps.executeQuery();
+ if(rs2.next()) {
+ String encoding = rs2.getString(2);
+ byte[] buff = new byte[512];
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ InputStream is = rs2.getAsciiStream(1);
+ int length = is.read(buff);
+ while (length > 0) {
+ baos.write(buff, 0, length);
+ length = is.read(buff);
+ }
+ DocumentBuilder builder = domFactory.newDocumentBuilder();
+ byte[] byteArray = baos.toByteArray();
+ InputStream bis = new ByteArrayInputStream(byteArray);
+ Document doc = builder.parse(bis);
+
+ Transformer trans = transformerFactory.newTransformer(new StreamSource(this.getClass().getClassLoader().getResourceAsStream("fr/gouv/finances/dgfip/xemelios/edmn/patchers/numLiassePatcher.xsl")));
+ ByteArrayOutputStream newDoc = new ByteArrayOutputStream();
+ // préparation de l'objet Liasses
+ DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
+ Document dom = domBuilder.newDocument();
+ Element elLiasses = (Element)dom.createElementNS("http://projets.admisource.gouv.fr/xemelios/namespaces#edmn","Liasses");
+ dom.appendChild(elLiasses);
+ for(Liasse l:liasses) {
+ elLiasses.appendChild(l.getDomNode(dom));
+ }
+//Transformer dbgTrans = transformerFactory.newTransformer();
+//dbgTrans.transform(new DOMSource(dom), new StreamResult(System.out));
+ trans.setParameter("liasses",new DOMSource(dom));
+ trans.setOutputProperty(OutputKeys.ENCODING, encoding);
+ trans.transform(new DOMSource(doc), new StreamResult(newDoc));
+ ps.close();
+ ps = con2.prepareStatement("UPDATE EDMN_ETATEDMN_DOCUMENTS SET DOC=? WHERE COLLECTIVITE=? AND BUDGET=? AND DOC_ID=?");
+ ps.setString(2,collectivite);
+ ps.setString(3,budget);
+ ps.setString(4,docId);
+ byte[] newDocArray = newDoc.toByteArray();
+ InputStream isNewDoc = new ByteArrayInputStream(newDocArray);
+ ps.setBinaryStream(1, isNewDoc, newDocArray.length);
+ if(ps.executeUpdate()>0) ret = true;
+ ps.close();
+ }
+ rs2.close();
+ }
+ }
+ rsLiasses.close();
+ psLiassesLocales.close();
+ return ret;
+ }
+ protected static String fmtNumLiasse(int i) {
+ String v = Integer.toString(i);
+ while (v.length() < 4) {
+ v = "0".concat(v);
+ }
+ return v;
+ }
+
+ private class Liasse {
+ // IND_ANNEE_GEST, IND_TRI_GEST, IND_COMPTABLE, IND_IMPUTATION, IND_MINISTERE, IND_COMPTESPE, IND_LOCALE, IND_ANNEE_TRSP, IND_TRI_TRSP, IND_SECTION_BUDG, IND_CPTESPENAT, IND_NATIONALE
+ private String anneeGestion, triGestion;
+ private String comptable;
+ private String imputation, ministere;
+ private String compteSpeTresor, numLocal;
+ private String anneeTrsp, triTrsp;
+ private String sectionBudg, cpteSpeNat;
+ private String numNat;
+
+ public Liasse(ResultSet rs) throws SQLException {
+ super();
+ int i=1;
+ anneeGestion = rs.getString(i++);
+ triGestion = rs.getString(i++);
+ comptable = rs.getString(i++);
+ imputation = rs.getString(i++);
+ ministere = rs.getString(i++);
+ compteSpeTresor = rs.getString(i++);
+ numLocal = rs.getString(i++);
+ anneeTrsp = rs.getString(i++);
+ triTrsp = rs.getString(i++);
+ sectionBudg = rs.getString(i++);
+ cpteSpeNat = rs.getString(i++);
+ numNat = rs.getString(i++);
+ }
+
+ public String getAnneeGestion() {
+ return anneeGestion;
+ }
+
+ public String getAnneeTrsp() {
+ return anneeTrsp;
+ }
+
+ public String getComptable() {
+ return comptable;
+ }
+
+ public String getCompteSpeTresor() {
+ return compteSpeTresor;
+ }
+
+ public String getCpteSpeNat() {
+ return cpteSpeNat;
+ }
+
+ public String getImputation() {
+ return imputation;
+ }
+
+ public String getMinistere() {
+ return ministere;
+ }
+
+ public String getNumLocal() {
+ return numLocal;
+ }
+
+ public String getNumNat() {
+ return numNat;
+ }
+
+ public String getSectionBudg() {
+ return sectionBudg;
+ }
+
+ public String getTriGestion() {
+ return triGestion;
+ }
+
+ public String getTriTrsp() {
+ return triTrsp;
+ }
+ public Element getDomNode(Document dom) {
+ Element el = dom.createElementNS("http://projets.admisource.gouv.fr/xemelios/namespaces#edmn","Liasse");
+ el.setAttribute("anneeGest", anneeGestion);
+ el.setAttribute("triGest", triGestion);
+ el.setAttribute("cpteSpeTres", compteSpeTresor);
+ el.setAttribute("local", numLocal);
+ el.setAttribute("anneeTrsp",anneeTrsp);
+ el.setAttribute("triTrsp",triTrsp);
+ el.setAttribute("sectionBudg",sectionBudg);
+ el.setAttribute("cpteSpeNat", cpteSpeNat);
+ el.setAttribute("national",numNat);
+ String codeBarre = anneeGestion + "." + triGestion + "." + comptable + "." + imputation+ministere +"."+compteSpeTresor+"."+numLocal;
+ String etq = sectionBudg + "." + anneeTrsp + "." + triTrsp+"."+cpteSpeNat+"."+numNat;
+ el.setAttribute("codeBarre", codeBarre);
+ el.setAttribute("etq",etq);
+ return el;
+ }
+
+ }
+}
--- /dev/null
+/*
+ * Copyright
+ * 2009 axYus - www.axyus.com
+ * 2009 c.Marhcand - christophe.marchand@axyus.com
+ *
+ * This file is part of XEMELIOS.
+ *
+ * XEMELIOS is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * XEMELIOS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XEMELIOS; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package fr.gouv.finances.dgfip.xemelios.edmn.patchers;
+
+import fr.gouv.finances.dgfip.xemelios.auth.XemeliosUser;
+import fr.gouv.finances.dgfip.xemelios.common.FileInfo;
+import fr.gouv.finances.dgfip.xemelios.common.config.DocumentModel;
+import fr.gouv.finances.dgfip.xemelios.common.config.Loader;
+import fr.gouv.finances.dgfip.xemelios.data.DataImpl;
+import fr.gouv.finances.dgfip.xemelios.data.DataLayerManager;
+import fr.gouv.finances.dgfip.xemelios.data.impl.pool.PoolManager;
+import fr.gouv.finances.dgfip.xemelios.data.impl.sqlconfig.TDocument;
+import fr.gouv.finances.dgfip.xemelios.data.impl.sqlconfig.TEtat;
+import fr.gouv.finances.dgfip.xemelios.data.impl.sqlconfig.TTable;
+import fr.gouv.finances.dgfip.xemelios.importers.AbstractImportPatcherImpl;
+import java.sql.Connection;
+import java.sql.SQLException;
+import org.apache.log4j.Logger;
+
+public class RepositoryDropper extends AbstractImportPatcherImpl {
+
+ private static final Logger logger = Logger.getLogger(RepositoryDropper.class);
+ public FileInfo run() {
+ try {
+ DataImpl di = DataLayerManager.getImplementation();
+ DocumentModel dm = Loader.getDocumentsInfos(null).getDocumentById("edmn");
+ XemeliosUser user = new User();
+ TDocument doc = di.getPersistenceConfig(dm, user).getLayer(di.getLayerName()).getDocument("edmn");
+ for(TEtat etat:doc.getEtats()) {
+ if(!etat.getId().equals("etatEdmn")) {
+ logger.debug("dropping tables for "+etat.getId());
+ recreate(etat.getDocumentTable());
+ for(TTable table:etat.getIndexTables()) recreate(table);
+ } else {
+ logger.debug("skipping "+etat.getId());
+ }
+ }
+ } catch (Exception ex) {
+// throw ex;
+ }
+ return new FileInfo();
+ }
+
+ private void recreate(TTable table) throws SQLException {
+ Connection con = null;
+ try {
+ con = PoolManager.getInstance().getConnection();
+ con.createStatement().execute("DROP TABLE "+table.getBaseName());
+ con.createStatement().execute(table.getScript());
+ con.createStatement().execute("UPDATE TABLES_VERSIONS SET VERSION="+table.getVersion()+" WHERE TABLE_NAME='"+table.getBaseName()+"'");
+ } catch(SQLException sqlEx) {
+ throw sqlEx;
+ } finally {
+ if(con!=null) PoolManager.getInstance().releaseConnection(con);
+ con = null;
+ }
+ }
+
+ private class User implements XemeliosUser {
+
+ public String getId() {
+ return "importer";
+ }
+
+ public String getDisplayName() {
+ return getId();
+ }
+
+ public boolean hasRole(String role) {
+ return true;
+ }
+
+ public boolean hasDocument(String document) {
+ return true;
+ }
+
+ public boolean hasCollectivite(String collectivite, DocumentModel dm) {
+ return true;
+ }
+
+ }
+
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Copyright
+ * 2009 axYus - www.axyus.com
+ * 2009 c.Marchand - christophe.marchand@axyus.com
+ *
+ * This file is part of XEMELIOS.
+ *
+ * XEMELIOS is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * XEMELIOS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XEMELIOS; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:n="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn" version="2.0">
+
+ <xsl:output method="xml" indent="yes" exclude-result-prefixes="xsl"/>
+
+ <xsl:param name="liasses"/>
+
+ <xsl:template match="/n:Edmn">
+ <xsl:call-template name="writeElement"><xsl:with-param name="el" select="."/></xsl:call-template>
+ </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:for-each select="$el/*">
+ <xsl:if test="not(local-name(.) = 'NumLiasseNationale')">
+ <xsl:call-template name="writeElement"><xsl:with-param name="el" select="."/></xsl:call-template>
+ </xsl:if>
+ <xsl:if test="local-name(.) = 'CodeCorrection'">
+ <xsl:comment>count(//n:Liasse) = <xsl:value-of select="count($liasses//n:Liasse)"/></xsl:comment>
+ <xsl:if test="count($liasses//n:Liasse) gt 0">
+ <xsl:element name="NumLiasseNationale" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn">
+ <xsl:attribute name="allLiasse" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn"><xsl:value-of select="$liasses//n:Liasse/@national" separator=" "/></xsl:attribute>
+ <!--xsl:for-each select="tokenize($liasses,' +')">
+ <xsl:element name="Liasse" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#edmn">
+ <xsl:attribute name="V"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each-->
+ <xsl:for-each select="$liasses//n:Liasse"><xsl:copy-of select="."/></xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if></xsl:for-each></xsl:element>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+Manifest-version: 1.0
+Jar-Version: @version@
+Jar-Content: @name@
+