<?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: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="intitule">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:SP_BilanPassif/n:PageSP_BilanPassif/n:Pied/@NumPage"/>
    <xsl:variable name="isLastPage" select="/n:CompteGestion/n:SP_BilanPassif/n:PageSP_BilanPassif/@added:isLastPage"/>
    <xsl:variable name="Entete">
        <xsl:copy-of select="/n:CompteGestion/n:Entete"/>
    </xsl:variable>    

    
    <!-- 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="$Entete//n:Nomenclature/@V='M21'">Gestion Patrimoniale et Financière</xsl:when>
                        <xsl:otherwise>Situation Patrimoniale - Bilan Passif</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">SP_BilanPassif</xsl:with-param>
                    <xsl:with-param name="elementId">PageSP_BilanPassif</xsl:with-param>
                    <xsl:with-param name="sous.elementId">LigneSP_BilanPassif</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:choose>
                            <xsl:when test="$Entete//n:Nomenclature/@V='M21'">COMPTE FINANCIER <xsl:value-of select="$Entete//n:Exercice/@V"/></xsl:when>
                            <xsl:otherwise>Situation Patrimoniale - Bilan Passif</xsl:otherwise>
                        </xsl:choose>
                    </xsl:with-param>
                    <xsl:with-param name="Titre.Plus">
                        <xsl:choose>
                            <xsl:when test="$Entete//n:Nomenclature/@V='M21'"><h2>GESTION PATRIMONIALE ET FINANCIERE</h2></xsl:when>
                        </xsl:choose>
                    </xsl:with-param>
                </xsl:call-template>
                <xsl:call-template name="mainTable">
                    <xsl:with-param name="el" select="/n:CompteGestion/n:SP_BilanPassif/n:PageSP_BilanPassif"/>
                </xsl:call-template>
                <p>
                    <xsl:choose>
                        <xsl:when test="//n:Pied/@Num2emePage">
                            <center>Page <xsl:choose><xsl:when test="//n:LastPageCG"><xsl:value-of select="//n:Pied/@NumPage"/>-<xsl:value-of select="//n:Pied/@Num2emePage"/> / <xsl:value-of select="//n:LastPageCG/@V"/></xsl:when><xsl:otherwise>- <xsl:value-of select="//n:Pied/@NumPage"/>-<xsl:value-of select="//n:Pied/@Num2emePage"/></xsl:otherwise></xsl:choose></center>
                        </xsl:when>
                        <xsl:otherwise>
                            <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>
                        </xsl:otherwise>
                    </xsl:choose>
                </p>
                <center>__________________________________________</center>
                <xsl:call-template name="navigate">
                    <xsl:with-param name="docId">compteGestion</xsl:with-param>
                    <xsl:with-param name="etatId">SP_BilanPassif</xsl:with-param>
                    <xsl:with-param name="elementId">PageSP_BilanPassif</xsl:with-param>
                    <xsl:with-param name="sous.elementId">LigneSP_BilanPassif</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:Nomenclature/@V='M21'"><h3 style="text-align: left;">BILAN</h3></xsl:if>
        <table width="100%" class="bordered" id="main">
            <colgroup>
                <col width="15%"/>
                <col width="25%"/>
                <col width="30%"/>
                <col width="30%"/>
            </colgroup>
            <thead>
                <tr class="titre">
                    <td colspan="2" class="bold titre bordered center">PASSIF</td>
                    <td class="bold titre bordered center">Exercice <xsl:value-of select="/n:CompteGestion/n:Entete/n:Infos/n:Collectivite/@Exercice"/></td>
                    <td class="bold titre bordered center">Exercice <xsl:value-of select="/n:CompteGestion/n:Entete/n:Infos/n:Collectivite/@Exercice - 1"/></td>
                </tr>
            </thead>
            <tbody>
                <xsl:choose>
                    <xsl:when test="//n:Nomenclature/@V='M21'">
                        <xsl:call-template name="donnees.M21">
                            <xsl:with-param name="el" select="$el"/>
                        </xsl:call-template>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:for-each select="$el/n:LigneEnteteSP_BilanPassif">
                            <tr>
                                <xsl:element name="td">
                                    <xsl:attribute name="rowspan"><xsl:value-of select="count(../n:LigneSP_BilanPassif[not(contains(lower-case(@IntituleRubriqueP),'total'))])+1"/></xsl:attribute>
                                    <xsl:attribute name="class">bold titre2 bordered center</xsl:attribute>
                                    <xsl:value-of select="@Titre4"/>&nbsp;<xsl:value-of select="@Titre5"/>&nbsp;<xsl:value-of select="@Titre6"/>
                                </xsl:element>
                            </tr>
                            <xsl:call-template name="donnees">
                                <xsl:with-param name="el" select="$el"/>
                            </xsl:call-template>
                        </xsl:for-each>
                    </xsl:otherwise>
                </xsl:choose>
                
            </tbody>
        </table>
    </xsl:template>

    <xsl:template name="donnees">
        <xsl:param name="el"/>
        
        <xsl:for-each select="$el/n:LigneSP_BilanPassif">
            <tr>
                <xsl:choose>
                    <xsl:when test="$intitule != '0' and @IntituleRubriqueP=$intitule">
                        <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(@IntituleRubriqueP),'total') and position()!=count(../n:LigneSP_BilanPassif)">
                        <td class="libelleLigne bordered bold" colspan="2"><xsl:value-of select="@IntituleRubriqueP"/></td>
                        <td class="montant bordered bold">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@N_FP"/>
                            </xsl:call-template>
                        </td>
                        <td class="montant bordered bold">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@N_1FP"/>
                            </xsl:call-template>
                        </td>
                    </xsl:when>
                    <xsl:when test="contains(lower-case(@IntituleRubriqueP),'total') and position()=count(../n:LigneSP_BilanPassif)">
                        <td class="libelleLigne borderedBold bold" colspan="2"><xsl:value-of select="@IntituleRubriqueP"/></td>
                        <td class="montant borderedBold bold">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@N_FP"/>
                            </xsl:call-template>
                        </td>
                        <td class="montant borderedBold bold">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@N_1FP"/>
                            </xsl:call-template>
                        </td>
                    </xsl:when>
                    <xsl:otherwise>
                        <td class="libelleLigne bordureRight"><xsl:value-of select="@IntituleRubriqueP"/></td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@N_FP"/>
                            </xsl:call-template>
                        </td>
                        <td class="montant bordureRight">
                            <xsl:call-template name="number">
                                <xsl:with-param name="num" select="@N_1FP"/>
                            </xsl:call-template>
                        </td>
                    </xsl:otherwise>
                </xsl:choose>
                
            </tr>
        </xsl:for-each>
    </xsl:template>

    <xsl:template name="donnees.M21">
        <xsl:param name="el"/>
        
        <xsl:for-each select="$el/n:LigneSP_BilanPassif">
            <xsl:choose>
                <xsl:when test="position()=2 or position()=5 or position()=15 or position()=19 or position()=22">
                    <tr>
                        <xsl:choose>
                            <xsl:when test="$intitule != '0' and @IntituleRubriqueA=$intitule">
                                <xsl:attribute name="id">highlighted</xsl:attribute>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:choose>
                                    <xsl:when test="((position()-1) 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="position()=2">
                                <td class="bordureRight bordureTop bold bold">RESERVES:</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                            </xsl:when>
                            <xsl:when test="position()=5">
                                <td class="bordureRight bordureTop bold bold">REPORT A NOUVEAU :</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                            </xsl:when>
                            <xsl:when test="position()=15">
                                <td class="bordureRight bordureTop bold bold">DETTES FINANCIERES:</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                            </xsl:when>
                            <xsl:when test="position()=19">
                                <td class="bordureRight bordureTop bold bold">DETTES D'EXPLOITATION:</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                            </xsl:when>
                            <xsl:when test="position()=22">
                                <td class="bordureRight bordureTop bold bold">DETTES DIVERSES:</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                                <td class="montant bordureRight bordureTop bold">&#160;</td>
                            </xsl:when>
                            
                        </xsl:choose>
                    </tr>
                </xsl:when>
            </xsl:choose>
            
            <tr>
                <xsl:choose>
                    <xsl:when test="$intitule != '0' and @IntituleRubriqueP=$intitule">
                        <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:if test="position()=1">
                    <td rowspan="13" class="bordureRight bordureBottom center bold">CAPITAUX<br/><br/><br/><br/>PROPRES</td>
                </xsl:if>
                <xsl:if test="position()=12">
                    <td rowspan="2" class="bordureRight bordureBottom center bold">PROVISIONS POUR<br/>RISQUES ET CHARGES</td>
                </xsl:if>
                <xsl:if test="position()=14">
                    <td rowspan="15" class="bordureRight bordureBottom center bold">DETTES</td>
                </xsl:if>
                <xsl:if test="position()=26">
                    <td rowspan="4" class="bordureRight bordureBottom center bold">COMPTES DE<br/>REGULARISATION</td>
                </xsl:if>
                
                <td>
                    <xsl:choose>
                        <xsl:when test="position()=9 or position()=10"><xsl:attribute name="class">bordureRight bold</xsl:attribute></xsl:when>
                        <xsl:when test="position()=11 or position()=14 or position()=26 or position()=29"><xsl:attribute name="class">borderedBold bold center</xsl:attribute></xsl:when>
                        <xsl:otherwise><xsl:attribute name="class">bordureRight</xsl:attribute></xsl:otherwise>
                    </xsl:choose>
                    <xsl:choose>
                        <xsl:when test="position()=1">APPORTS</xsl:when>
                        <xsl:when test="position()=2">&#160;&#160;&#160;. Excédents affectés à l'investissement</xsl:when>
                        <xsl:when test="position()=3">&#160;&#160;&#160;. Réserve de trésorerie</xsl:when>
                        <xsl:when test="position()=4">&#160;&#160;&#160;. Réserves de compensensation</xsl:when>
                        <xsl:when test="position()=5">&#160;&#160;&#160;. Report à nouveau excédentaire</xsl:when>
                        <xsl:when test="position()=6">&#160;&#160;&#160;. Report à nouveau déficitaire</xsl:when>
                        <xsl:when test="position()=7">RESULTATDE L'EXERCICE<br/>(EXCEDENT OU DEFICIT)</xsl:when>
                        <xsl:when test="position()=8">SUBVENTIONS D'INVESTISSEMENT</xsl:when>
                        <xsl:when test="position()=9">PROVISIONS REGLEMENTEES</xsl:when>
                        <xsl:when test="position()=10">DROITS DE L'FFECTANT</xsl:when>
                        <xsl:when test="position()=11">TOTAL I</xsl:when>
                        <xsl:when test="position()=12">PROVISIONSPOUR RISQUES</xsl:when>
                        <xsl:when test="position()=13">PROVISIONSPOUR CHARGES</xsl:when>
                        <xsl:when test="position()=14">TOTAL II</xsl:when>
                        <xsl:when test="position()=15">. Emprunts obligataires</xsl:when>
                        <xsl:when test="position()=16">. Emprunts auprès des établissements de crédit</xsl:when>
                        <xsl:when test="position()=17">. Emprunts et dettes financières divers</xsl:when>
                        <xsl:when test="position()=18">. Crédits et lignes de trésorerie</xsl:when>
                        <xsl:when test="position()=19">. Avances reçues</xsl:when>
                        <xsl:when test="position()=20">. Dettes fournisseurs et comptes rattachés</xsl:when>
                        <xsl:when test="position()=21">. Dettes fiscales et sociales</xsl:when>
                        <xsl:when test="position()=22">. Dettes sur immobilisations et comptes rattachés</xsl:when>
                        <xsl:when test="position()=23">. Fonds déposés par les hospitaliers et hébergés</xsl:when>
                        <xsl:when test="position()=24">. Autres</xsl:when>
                        <xsl:when test="position()=25">. Produits constatés d'avance</xsl:when>
                        <xsl:when test="position()=26">TOTAL III</xsl:when>
                        <xsl:when test="position()=27">RECETTES A CLASSER ET A REGULARISER CREDIT</xsl:when>
                        <xsl:when test="position()=28">ECART DE CONVERSION PASSIF</xsl:when>
                        <xsl:when test="position()=29">TOTAL GENERAL</xsl:when>
                    </xsl:choose>    
                </td>
                <td>
                    <xsl:choose>
                        <xsl:when test="position()=11 or position()=14 or position()=26 or position()=29"><xsl:attribute name="class">borderedBold bold montant</xsl:attribute></xsl:when>
                        <xsl:otherwise><xsl:attribute name="class">montant bordureRight</xsl:attribute></xsl:otherwise>
                    </xsl:choose>
                    <xsl:call-template name="number">
                        <xsl:with-param name="num" select="@N_FP"/>
                    </xsl:call-template>
                </td>
                <td>
                    <xsl:choose>
                        <xsl:when test="position()=11 or position()=14 or position()=26 or position()=29"><xsl:attribute name="class">borderedBold bold montant</xsl:attribute></xsl:when>
                        <xsl:otherwise><xsl:attribute name="class">montant bordureRight</xsl:attribute></xsl:otherwise>
                    </xsl:choose>
                    <xsl:call-template name="number">
                        <xsl:with-param name="num" select="@N_1FP"/>
                    </xsl:call-template>
                </td>
            </tr>
        </xsl:for-each>
    </xsl:template>

</xsl:transform>
