<?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:transform 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" version="2.0">
    <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: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="libPoste">0</xsl:param>
    
    <!-- Paramètres d'erreur -->
    <xsl:param name="error.message">nomessage</xsl:param>

    <xsl:output method="xhtml" indent="yes" use-character-maps="accents" encoding="ISO-8859-1"/>

    <!-- pour eviter les sorties parasites de tags non matches -->
    <xsl:template match="*"/>
  <!-- Variables -->
    <xsl:variable name="page-format" select="paysage"/>
    <xsl:variable name="NumPage" select="/n:CompteGestion/n:CompteResultat/n:PageCompteResultat/n:Pied/@NumPage"/>
    <xsl:variable name="isLastPage" select="/n:CompteGestion/n:CompteResultat/n:PageCompteResultat/@added:isLastPage"/>
    <xsl:variable name="Entete">
        <xsl:copy-of  select="/n:CompteGestion/n:Entete"/>
    </xsl:variable>

    <xsl:template match="/n:CompteGestion">
        <html>
            <head>
                <title>Compte de R&#233;sultat</title>                
                <xsl:call-template name="style"/>                
            </head>
            <body>
                <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">CompteResultat</xsl:with-param>
                    <xsl:with-param name="elementId">PageCompteResultat</xsl:with-param>
                    <xsl:with-param name="sous.elementId">LigneCompteResultat</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.formulaire.compte" select="0"/>
                    <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">
                        <xsl:if test="$Entete//n:CompteGestion/@V = 'CG21'">
                            <xsl:choose>
                                <xsl:when test="//n:PageCompteResultat/@Modele = '12' or //n:PageCompteResultat/@Modele = '13' or //n:PageCompteResultat/@Modele = '14'"><h1>COMPTE FINANCIER <xsl:value-of select="//n:EnteteCompteResultat/@Annee"/></h1></xsl:when>
                                <xsl:otherwise><h1>Compte de r&#233;sultat <xsl:value-of select="//n:EnteteCompteResultat/@Annee"/></h1></xsl:otherwise>
                            </xsl:choose>
                        </xsl:if>
                    </xsl:with-param>
                    <xsl:with-param name="Titre.Plus">
                        <xsl:if test="$Entete//n:CompteGestion/@V = 'CG14'"><h1>Compte de r&#233;sultat <xsl:value-of select="//n:EnteteCompteResultat/@Date3"/></h1></xsl:if>
                        <xsl:if test="$Entete//n:CompteGestion/@V = 'CG22'"><h1>Compte de r&#233;sultat <xsl:value-of select="//n:EnteteCompteResultat/@Date3"/></h1><br/>
                            <h2><xsl:value-of select="/n:CompteGestion/n:CompteResultat/n:PageCompteResultat/n:EnteteCompteResultat/@SousTitre"></xsl:value-of></h2>
                        </xsl:if>
                        <xsl:if test="$Entete//n:CompteGestion/@V = 'CG21' and //n:PageCompteResultat/@Modele!=12"><h2>RESULTATS</h2></xsl:if>
                    </xsl:with-param>
                </xsl:call-template>
                <xsl:call-template name="mainTable">
                    <xsl:with-param name="el" select="/n:CompteGestion/n:CompteResultat/n:PageCompteResultat"/>
                </xsl:call-template>
                <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">CompteResultat</xsl:with-param>
                    <xsl:with-param name="elementId">PageCompteResultat</xsl:with-param>
                    <xsl:with-param name="sous.elementId">LigneCompteResultat</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.formulaire.compte" select="0"/>
                    <xsl:with-param name="show.depense.recette" select="0"/>
                </xsl:call-template>
            </body>
        </html>
    </xsl:template>

    <xsl:template name="mainTable">
        <xsl:param name="el"/>
        
        <xsl:if test="$Entete//n:CompteGestion/@V = 'CG21'">
        <xsl:choose>
            <xsl:when test="//n:PageCompteResultat/@Modele = '12'"><h2 style="text-align: left;">Compte de r&#233;sultat de l'&#233;tablissement (toutes activit&#233;s confondues)</h2></xsl:when>
            <xsl:when test="//n:PageCompteResultat/@Modele = '13'"><h2 style="text-align: left;">D&#233;termination de la capacit&#233; d'autofinancementde l'exercice</h2></xsl:when>
            <xsl:when test="//n:PageCompteResultat/@Modele = '14'"><h2 style="text-align: left;">Tableau de financement</h2></xsl:when>
            <xsl:otherwise><h2 style="text-align: left;">Compte de r&#233;sultat par nature de l'activit&#233; <xsl:value-of select="//n:EnteteCompteResultat/@DesignationBudget"/></h2></xsl:otherwise>
        </xsl:choose>
        </xsl:if>
        <table width="100%" class="bordered" id="main">
            <colgroup>
                <col width="40%"/>
                <col width="30%"/>
                <col width="30%"/>
            </colgroup>
            <thead>
                <tr  class="titre">
                    <td class="titre2 center bold bordered">POSTES</td>
                 
                    <td class="titre2 center bold bordered">Exercice <xsl:choose><xsl:when test="$Entete//n:CompteGestion/@V = 'CG21'"><xsl:value-of select="max($el/n:EnteteCompteResultat/@Annee)"/></xsl:when><xsl:otherwise><xsl:value-of select="max($el/n:EnteteCompteResultat/@Date3)"/></xsl:otherwise></xsl:choose></td> 
                    <td class="titre2 center bold bordered">Exercice <xsl:choose><xsl:when test="$Entete//n:CompteGestion/@V = 'CG21'"><xsl:value-of select="max($el/n:EnteteCompteResultat/@Annee) - 1"/></xsl:when><xsl:otherwise><xsl:value-of select="max($el/n:EnteteCompteResultat/@Date3 - 1)"/></xsl:otherwise></xsl:choose></td>
                </tr>
            </thead>
            <tbody>
                <xsl:choose>
                    <xsl:when test="$Entete//n:CompteGestion/@V = 'CG21' and //n:PageCompteResultat/@Modele = '13'">
                        <xsl:for-each select="$el/n:LigneCompteResultat">
                            <tr>
                                <xsl:choose>
                                    <xsl:when test="position()=1">
                                        <td class="bordureRight center bold">R&#233;sultats des comptes de r&#233;sultat</td>
                                    </xsl:when>
                                    <xsl:when test="position()=2">
                                        <td class="bordureRight center">+ Dotations aux amortissements, d&#233;pr&#233;ciations et provisions (C68)</td>
                                    </xsl:when>
                                    <xsl:when test="position()=3">
                                        <td class="bordureRight center">-Reprises sur d&#233;pr&#233;ciations et provisions (C78)</td>
                                    </xsl:when>
                                    <xsl:when test="position()=4">
                                        <td class="bordureRight center">+ Valeur comptable des &#233;l&#233;ments d'actifs c&#233;d&#233;s (C675)</td>
                                    </xsl:when>
                                    <xsl:when test="position()=5">
                                        <td class="bordureRight center">-Produits des cessions d'&#233;l&#233;ments d'actifs(C775)</td>
                                    </xsl:when>
                                    <xsl:when test="position()=6">
                                        <td class="bordureRight center">-Quote-part des subventions d'investissement vir&#233;e au r&#233;sultat de l'exercice (C777)</td>
                                    </xsl:when>
                                    <xsl:when test="position()=7">
                                        <td class="bordureRight center bold">CAF / IAF de l'exercice</td>
                                    </xsl:when>
                                </xsl:choose>
                                <td class="montant bordureRight">
                                    <xsl:call-template name="number">
                                        <xsl:with-param name="num">
                                            <xsl:value-of select="@MontantN"/>
                                        </xsl:with-param>
                                    </xsl:call-template>
                                </td>
                                <td class="montant bordureRight">
                                    <xsl:call-template name="number">
                                        <xsl:with-param name="num">
                                            <xsl:value-of select="@MontantN_1"/>
                                        </xsl:with-param>
                                    </xsl:call-template>
                                </td>
                            </tr>
                        </xsl:for-each>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:for-each select="$el/n:LigneCompteResultat">
                            <tr>
                                <xsl:choose>
                                    <xsl:when test="$libPoste != '0' and @LibPosteRubriqueTotal=$libPoste">
                                        <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>
                                <xsl:choose>
                                    <xsl:when test="contains(lower-case(@LibPosteRubriqueTotal),'total')">
                                        <xsl:choose>
                                            <xsl:when test="$Entete//n:CompteGestion/@V = 'CG21' and //n:PageCompteResultat/@Modele = '14'">
                                                <td class="bold bordered">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:when>
                                            <xsl:otherwise>
                                                <td class="libelleLigne bold bordered">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:otherwise>
                                        </xsl:choose>                                        
                                        <td class="montant bold bordered">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                        <td class="montant bold bordered">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN_1"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                    </xsl:when>
                                    <xsl:when test="contains(@LibPosteRubriqueTotal,'(') and contains(@LibPosteRubriqueTotal,')') and (contains(@LibPosteRubriqueTotal,'-') or contains(@LibPosteRubriqueTotal,'+'))">
                                        <xsl:choose>
                                            <xsl:when test="$Entete//n:CompteGestion/@V = 'CG21' and //n:PageCompteResultat/@Modele = '14'">
                                                <td class="bold bordered">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:when>
                                            <xsl:otherwise>
                                                <td class="libelleLigne bold bordered">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:otherwise>
                                        </xsl:choose>
                                        <td class="montant bold bordered">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                        <td class="montant bold bordered">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN_1"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                    </xsl:when>
                                    <xsl:when test="matches(@LibPosteRubriqueTotal, '[A-Z]{4}')">
                                        <xsl:choose>
                                            <xsl:when test="$Entete//n:CompteGestion/@V = 'CG21' and //n:PageCompteResultat/@Modele = '14'">
                                                <td class="bold bordureRight">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:when>
                                            <xsl:otherwise>
                                                <td class="bold center bordureRight">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:otherwise>
                                        </xsl:choose>
                                        <td class="montant bordureRight">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                        <td class="montant bordureRight">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN_1"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:choose>
                                            <xsl:when test="$Entete//n:CompteGestion/@V = 'CG21' and //n:PageCompteResultat/@Modele = '14'">
                                                <td class="bordureRight">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:when>
                                            <xsl:otherwise>
                                                <td class="libelleLigne bordureRight">
                                                    <xsl:value-of select="@LibPosteRubriqueTotal"/>
                                                </td>
                                            </xsl:otherwise>
                                        </xsl:choose>
                                        <td class="montant bordureRight">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                        <td class="montant bordureRight">
                                            <xsl:call-template name="number">
                                                <xsl:with-param name="num">
                                                    <xsl:value-of select="@MontantN_1"/>
                                                </xsl:with-param>
                                            </xsl:call-template>
                                        </td>
                                    </xsl:otherwise></xsl:choose>
                            </tr>
                        </xsl:for-each>
                    </xsl:otherwise>
                </xsl:choose>                
            </tbody>
        </table>
    </xsl:template>
  
</xsl:transform>
