<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
<!ENTITY egrave "&#232;">
<!ENTITY euro "&#8364;">
<!ENTITY agrave "&#224;">
<!ENTITY eacute "&#233;">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.xemelios.org/namespaces#cg-1.0" xmlns:n="http://www.xemelios.org/namespaces#cg-1.0" xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added" xmlns:fn="http://projets.admisource.gouv.fr/xemelios/namespaces#functions" version="2.0">
    <!-- Paramètres de sortie -->
    <xsl:character-map name="accents">
        <xsl:output-character character="à" string="&amp;#224;"/>
        <xsl:output-character character="é" string="&amp;#233;"/>
        <xsl:output-character character="è" string="&amp;#232;"/>
        <xsl:output-character character="ê" string="&amp;#234;"/>
        <xsl:output-character character="ë" string="&amp;#235;"/>
        <xsl:output-character character="î" string="&amp;#238;"/>
        <xsl:output-character character="ï" string="&amp;#239;"/>
        <xsl:output-character character="ô" string="&amp;#244;"/>
        <xsl:output-character character="ù" string="&amp;#249;"/>
    </xsl:character-map>
    <xsl:output method="xhtml" indent="yes" use-character-maps="accents" encoding="ISO-8859-1"/>
    <xsl:decimal-format name="decformat" decimal-separator="," grouping-separator=" " digit="#" pattern-separator=";" NaN="NaN" minus-sign="-"/>
    
    <!-- Inclusion des XSL externes -->
    <xsl:include href="./common-xsl/Style.xsl"/>
    <xsl:include href="./common-xsl/Error.xsl"/>
    <xsl:include href="./common-xsl/Navigate.xsl"/>
    <xsl:include href="./common-xsl/Header.xsl"/>
    <xsl:include href="./common-xsl/Number.xsl"/>
    
    <!-- Paramètres d'entrée -->
    <xsl:param name="show.formulaire"/>
    <xsl:param name="browser-destination"/>
    
    <!-- Paramètres d'entrée de la liste de résultat -->
    <xsl:param name="numCompte">0</xsl:param>
    
    <!-- Paramètres d'erreur -->
    <xsl:param name="error.message">nomessage</xsl:param>

    <!-- Variables -->
    <xsl:variable name="page-format" select="paysage"/>
    <xsl:variable name="NumPage" select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere/n:Pied/@NumPage"/>
    <xsl:variable name="isLastPage" select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere/@added:isLastPage"/>
    <xsl:variable name="Entete" select="/n:CompteGestion/n:Entete"/>
    
    <xsl:variable name="Modele" select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere/@Modele"/>
    
    <xsl:variable name="liens.comptes" select="document('./LiensBalance.xml')"/>
    

    <!-- pour eviter les sorties parasites de tags non matches -->
    <xsl:template match="*"/>
    
    <xsl:template match="/n:CompteGestion">
        <html>
            <head>
                <title>
                    <xsl:choose>
                        <xsl:when test="//n:Nomenclature/@V='M21' and ($Modele='29' or $Modele='30')">Etat de la dette financière</xsl:when>
                        <xsl:otherwise>Etat des charges sur exercices antérieurs</xsl:otherwise>
                    </xsl:choose>
                </title>
                <xsl:call-template name="style"/>
            </head>
            <body width="100%">
                <xsl:if test="$error.message!='nomessage'">
                    <xsl:attribute name="onload">javascript:showDialog('<xsl:value-of select="$error.message"/>');</xsl:attribute>
                </xsl:if>
                <xsl:call-template name="Error"><!--xsl:with-param name="error.message" select="$error.message"/--></xsl:call-template>
                <xsl:call-template name="navigate">
                    <xsl:with-param name="docId">compteGestion</xsl:with-param>
                    <xsl:with-param name="etatId">DetteFinanciere</xsl:with-param>
                    <xsl:with-param name="elementId">PageDetteFinanciere</xsl:with-param>
                    <xsl:with-param name="sous.elementId">LigneDetteFinanciere</xsl:with-param>
                    <xsl:with-param name="NumPage" select="$NumPage"/>
                    <xsl:with-param name="isLastPage" select="$isLastPage"/>
                    <xsl:with-param name="Entete" select="$Entete"/>
                    <xsl:with-param name="show.formulaire" select="$show.formulaire"/>
                    <xsl:with-param name="show.depense.recette" select="0"/>
                </xsl:call-template>
                <xsl:call-template name="header">
                    <xsl:with-param name="Entete" select="$Entete"/>
                    <xsl:with-param name="Titre">COMPTE FINANCIER <xsl:value-of select="$Entete//n:Exercice/@V"/></xsl:with-param>                    
                    <xsl:with-param name="Titre.Plus">
                        <xsl:choose>
                            <xsl:when test="$Modele='29'"><h2>ETAT DE LA DETTE FINANCIERE A LONG ET MOYEN TERME</h2></xsl:when>
                            <xsl:when test="$Modele='30'"><h2>ETAT DE LA DETTE FINANCIERE A LONG ET MOYEN TERME</h2><h2>PROFIL D'EXTINCTIONDE TOUTE LA DETTE FINANCIEREA MOYEN ET LONG TERME EXISTANTAU 31/12/<xsl:value-of select="$Entete//n:Exercice/@V"/></h2></xsl:when>
                            <xsl:when test="$Modele='31'"><h2>ETAT RECAPITULATIF DES CHARGES SUR EXERCICES ANTERIEURS</h2><h3><xsl:value-of select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere/n:EnteteDetteFinanciere/@TypeBudget"/></h3></xsl:when>
                        </xsl:choose>
                    </xsl:with-param>
                </xsl:call-template>
                <xsl:choose>
                    <xsl:when test="$Modele='29'">
                        <xsl:call-template name="mainTable.modele.29">
                            <xsl:with-param name="el" select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere"/>
                        </xsl:call-template>                        
                    </xsl:when>
                    <xsl:when test="$Modele='30'">
                        <xsl:call-template name="mainTable.modele.30">
                            <xsl:with-param name="el" select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere"/>
                        </xsl:call-template>                        
                    </xsl:when>
                    <xsl:when test="$Modele='31'">
                        <xsl:call-template name="mainTable.modele.31">
                            <xsl:with-param name="el" select="/n:CompteGestion/n:DetteFinanciere/n:PageDetteFinanciere"/>
                        </xsl:call-template> 
                    </xsl:when>
                </xsl:choose>
                <p>
                    <center>Page <xsl:choose><xsl:when test="//n:LastPageCG"><xsl:value-of select="//n:Pied/@NumPage"/> / <xsl:value-of select="//n:LastPageCG/@V"/></xsl:when><xsl:otherwise>- <xsl:value-of select="//n:Pied/@NumPage"/></xsl:otherwise></xsl:choose></center>
                </p>
                <center>__________________________________________</center>
                <xsl:call-template name="navigate">
                    <xsl:with-param name="docId">compteGestion</xsl:with-param>
                    <xsl:with-param name="etatId">DetteFinanciere</xsl:with-param>
                    <xsl:with-param name="elementId">PageDetteFinanciere</xsl:with-param>
                    <xsl:with-param name="sous.elementId">LigneDetteFinanciere</xsl:with-param>
                    <xsl:with-param name="NumPage" select="$NumPage"/>
                    <xsl:with-param name="isLastPage" select="$isLastPage"/>
                    <xsl:with-param name="Entete" select="$Entete"/>
                    <xsl:with-param name="show.formulaire" select="$show.formulaire"/>
                    <xsl:with-param name="show.depense.recette" select="0"/>
                </xsl:call-template>
            </body>
        </html>
    </xsl:template>
    
    <xsl:template name="mainTable.modele.29">
        <xsl:param name="el"/>
        <table width="100%" id="main" class="bordered">
            <colgroup>
                <col width="30%"/>
                <col width="10%"/>
                <col width="10%"/>
                <col width="10%"/>
                <col width="10%"/>
                <col width="10%"/>
                <col width="10%"/>
                <col width="10%"/>
            </colgroup>
            <thead>
                <tr class="titre">
                    <td rowspan="2" class="titre bold center bordered">COMPTES</td>
                    <td rowspan="2" class="titre bold center bordered">Dette en fin d'exercice<br/><xsl:value-of select="number($Entete//n:Exercice/@V) - 1"/></td>
                    <td colspan="2" class="titre bold center bordered">Exercice <xsl:value-of select="$Entete//n:Exercice/@V"/></td>
                    <td rowspan="2" class="titre bold center bordered">Dette en fin d'exercice<br/><xsl:value-of select="$Entete//n:Exercice/@V"/></td>
                    <td rowspan="2" class="titre bold center bordered">Prêteur</td>
                    <td rowspan="2" class="titre bold center bordered">Durée résiduelle</td>
                    <td rowspan="2" class="titre bold center bordered">Type indexation</td>
                </tr>
                <tr>
                    <td class="titre2 bold center bordered">Nouveaux emprunts</td>
                    <td class="titre2 bold center bordered">Remboursement<br/>en<br/>capital</td>
                </tr>
            </thead>            
            <tbody>
                <xsl:for-each select="$el/n:LigneDetteFinanciere">
                    <tr>
                        <xsl:choose>
                            <xsl:when test="$numCompte != '0' and @NumCompte=$numCompte">
                                <xsl:attribute name="id">highlighted</xsl:attribute>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:choose>
                                    <xsl:when test="(position() mod 2) = 0">
                                        <xsl:attribute name="id">colorised1</xsl:attribute>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:attribute name="id">colorised2</xsl:attribute>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                        
                        <td class="bordureRight"><xsl:value-of select="normalize-space(concat(@NumCompte,' ',@Libelle))"/></td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@MontantDetteN_1"/>
                            </xsl:call-template>
                        </td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@NouveauxEmprunts"/>
                            </xsl:call-template>
                        </td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@Remboursements"/>
                            </xsl:call-template>
                        </td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@MontantDette"/>
                            </xsl:call-template>
                        </td>
                        <td class="bordureRight"><xsl:value-of select="@Preteur"/></td>
                        <td class="center bordureRight"><xsl:value-of select="@Duree"/></td>
                        <td class="bordureRight"><xsl:value-of select="@Index"/></td>
                    </tr>
                </xsl:for-each>
            </tbody>
        </table>
    </xsl:template>
    
    <xsl:template name="mainTable.modele.30">
        <xsl:param name="el"/>
        <h2 style="text-align: left;">RECAPITULATIF PAR PRETEUR</h2>
        <table width="75%" id="main" class="bordered">
            <colgroup>
                <col width="60%"/>
                <col width="40%"/>
            </colgroup>
            <thead>
                <tr class="titre">
                    <td class="titre bold center bordered">Prêteur</td>
                    <td class="titre bold center bordered">Encours au 31/12</td>
                </tr>
            </thead>            
            <tbody>
                <xsl:for-each select="$el/n:LigneDetteFinanciere">
                    <tr>
                        <xsl:choose>
                            <xsl:when test="$numCompte != '0' and @NumCompte=$numCompte">
                                <xsl:attribute name="id">highlighted</xsl:attribute>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:choose>
                                    <xsl:when test="(position() mod 2) = 0">
                                        <xsl:attribute name="id">colorised1</xsl:attribute>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:attribute name="id">colorised2</xsl:attribute>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                        
                        <td class="bordureRight"><xsl:value-of select="normalize-space(concat(@NumCompte,' ',@Preteur))"/></td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@MontantDette"/>
                            </xsl:call-template>
                        </td>
                    </tr>
                </xsl:for-each>
            </tbody>
        </table>
    </xsl:template>
    
    <xsl:template name="mainTable.modele.31">
        <xsl:param name="el"/>
        <table width="100%" id="main" class="bordered">
            <colgroup>
                <col width="35%"/>
                <col width="15%"/>
                <col width="15%"/>
                <col width="35%"/>
            </colgroup>
            <thead>
                <tr class="titre">
                    <td class="titre bold center bordered">Compte</td>
                    <td class="titre bold center bordered">Montant</td>
                    <td class="titre bold center bordered">% / Charges du titre<br/>correspondant par nature (3)</td>
                    <td class="titre bold center bordered">Commentaire</td>
                </tr>
            </thead>            
            <tbody>
                <xsl:for-each select="$el/n:LigneDetteFinanciere">
                    <tr>
                        <xsl:choose>
                            <xsl:when test="$numCompte != '0' and @NumCompte=$numCompte">
                                <xsl:attribute name="id">highlighted</xsl:attribute>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:choose>
                                    <xsl:when test="(position() mod 2) = 0">
                                        <xsl:attribute name="id">colorised1</xsl:attribute>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:attribute name="id">colorised2</xsl:attribute>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                        
                        <td class="bordureRight"><xsl:value-of select="normalize-space(concat(@NumCompte,' ',@Preteur))"/></td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@MontantDette"/>
                            </xsl:call-template>
                        </td>
                        <td class="center bordureRight"><xsl:value-of select="@Percent"/></td>
                        <td class="bordureRight">&#160;</td>
                    </tr>
                </xsl:for-each>
            </tbody>
        </table>
    </xsl:template>

</xsl:stylesheet>
