<?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.w3.org/1999/xhtml" xmlns:n="http://www.xemelios.org/namespaces#cge" xmlns:added="http://www.xemelios.org/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 Web -->
    <xsl:param name="is.web">-1</xsl:param>
    <xsl:param name="context.path"/>
    
    <!-- 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>

    <!-- Paramètres d'entrée de la liste de résultat -->
    <xsl:param name="numCompte">0</xsl:param>
    <xsl:param name="comptePEC">0</xsl:param>
    <xsl:param name="ligneRecette">0</xsl:param>
    <xsl:param name="generatedId">0</xsl:param>

    <xsl:param name="type.treated" select="tokenize(name(/n:CompteGestionEtat//*[contains(name(),'Page')]),'Page')[2]"/>

    <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="Entete">
        <xsl:copy-of  select="/n:CompteGestionEtat/n:Entete"/>
    </xsl:variable>

    <xsl:template match="/n:CompteGestionEtat">
        <xsl:variable name="NumPage">
            <xsl:choose>
                <xsl:when test="$type.treated eq 'DeveloppementRecette'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:DeveloppementRecette/n:PageDeveloppementRecette/n:Pied/@NumPage"/>
                </xsl:when>
                <xsl:when test="$type.treated eq 'Recapitulation'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:Recapitulation/n:PageRecapitulation/n:Pied/@NumPage"/>
                </xsl:when>
                <xsl:when test="$type.treated eq 'Reversement'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:Reversement/n:PageReversement/n:Pied/@NumPage"/>
                </xsl:when>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="LastPage">
            <xsl:choose>
                <xsl:when test="$type.treated eq 'DeveloppementRecette'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:DeveloppementRecette/n:PageDeveloppementRecette/@added:LastPage"/>
                </xsl:when>
                <xsl:when test="$type.treated eq 'Recapitulation'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:Recapitulation/n:PageRecapitulation/@added:LastPage"/>
                </xsl:when>
                <xsl:when test="$type.treated eq 'Reversement'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:Reversement/n:PageReversement/@added:LastPage"/>
                </xsl:when>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="isLastPage">
            <xsl:choose>
                <xsl:when test="$type.treated eq 'DeveloppementRecette'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:DeveloppementRecette/n:PageDeveloppementRecette/@added:isLastPage"/>
                </xsl:when>
                <xsl:when test="$type.treated eq 'Recapitulation'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:Recapitulation/n:PageRecapitulation/@added:isLastPage"/>
                </xsl:when>
                <xsl:when test="$type.treated eq 'Reversement'">
                    <xsl:value-of select="/n:CompteGestionEtat/n:Reversement/n:PageReversement/@added:isLastPage"/>
                </xsl:when>
            </xsl:choose>
        </xsl:variable>
        
        <html>
            <head>
                <xsl:choose>
                    <xsl:when test="$type.treated eq 'DeveloppementRecette'">
                        <title>D&#233;veloppement des recettes budg&#233;taires et des comptes sp&#233;ciaux</title>
                    </xsl:when>
                    <xsl:when test="$type.treated eq 'Recapitulation'">
                        <title>R&#233;capitulation des recettes budg&#233;taires et des comptes sp&#233;ciaux</title>
                    </xsl:when>
                    <xsl:when test="$type.treated eq 'Reversement'">
                        <title>Reversemments de fonds sur minist&#232;res &#224; annuler</title>
                    </xsl:when>
                </xsl:choose>   
                <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">compteGestionEtat</xsl:with-param>
                    <xsl:with-param name="etatId"><xsl:value-of select="$type.treated"/></xsl:with-param>
                    <xsl:with-param name="elementId">Page<xsl:value-of select="$type.treated"/></xsl:with-param>
                    <xsl:with-param name="sous.elementId">Ligne<xsl:value-of select="$type.treated"/></xsl:with-param>
                    <xsl:with-param name="NumPage" select="$NumPage"/>
                    <xsl:with-param name="LastPage" select="$LastPage"/>
                    <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">
                        <xsl:choose>
                            <xsl:when test="$type.treated eq 'DeveloppementRecette'">1</xsl:when>
                            <xsl:otherwise>0</xsl:otherwise>
                        </xsl:choose>   
                    </xsl:with-param>
                    <xsl:with-param name="show.depense.recette" select="0"/>
                    <xsl:with-param name="is.web" select="$is.web"/>
                    <xsl:with-param name="context.path" select="$context.path"/>
                </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="$type.treated eq 'DeveloppementRecette'">D&#233;veloppement des recettes budg&#233;taires et des comptes sp&#233;ciaux</xsl:when>
                            <xsl:when test="$type.treated eq 'Recapitulation'">R&#233;capitulation des recettes budg&#233;taires et des comptes sp&#233;ciaux</xsl:when>
                            <xsl:when test="$type.treated eq 'Reversement'">Reversemments de fonds sur minist&#232;res &#224; annuler</xsl:when>
                        </xsl:choose>
                    </xsl:with-param>
                    <xsl:with-param name="Titre.Plus">
                        <xsl:choose>
                            <xsl:when test="$type.treated eq 'DeveloppementRecette' or $type.treated eq 'Reversement'"><h1>Ventilation par ligne</h1></xsl:when>
                            <xsl:when test="$type.treated eq 'Recapitulation'"><h1>R&#233;capitulation par compte budg&#233;taires</h1></xsl:when>
                        </xsl:choose>
                    </xsl:with-param>
                </xsl:call-template>
                <xsl:choose>
                    <xsl:when test="$type.treated eq 'DeveloppementRecette'">
                        <xsl:call-template name="mainTable">
                            <xsl:with-param name="el" select="/n:CompteGestionEtat/n:DeveloppementRecette/n:PageDeveloppementRecette"/>
                        </xsl:call-template>
                    </xsl:when>
                    <xsl:when test="$type.treated eq 'Recapitulation'">
                        <xsl:call-template name="mainTable">
                            <xsl:with-param name="el" select="/n:CompteGestionEtat/n:Recapitulation/n:PageRecapitulation"/>
                        </xsl:call-template>
                    </xsl:when>
                    <xsl:when test="$type.treated eq 'Reversement'">
                        <xsl:call-template name="mainTable">
                            <xsl:with-param name="el" select="/n:CompteGestionEtat/n:Reversement/n:PageReversement"/>
                        </xsl:call-template>
                    </xsl:when>
                </xsl:choose>
                <p>
                    <center>Page <xsl:choose><xsl:when test="$LastPage and string-length($LastPage) > 0"><xsl:value-of select="$NumPage"/> / <xsl:value-of select="$LastPage"/></xsl:when><xsl:otherwise>- <xsl:value-of select="$NumPage"/></xsl:otherwise></xsl:choose></center>
                </p>
                <xsl:call-template name="navigate">
                    <xsl:with-param name="docId">compteGestionEtat</xsl:with-param>
                    <xsl:with-param name="etatId"><xsl:value-of select="$type.treated"/></xsl:with-param>
                    <xsl:with-param name="elementId">Page<xsl:value-of select="$type.treated"/></xsl:with-param>
                    <xsl:with-param name="sous.elementId">Ligne<xsl:value-of select="$type.treated"/></xsl:with-param>
                    <xsl:with-param name="NumPage" select="$NumPage"/>
                    <xsl:with-param name="LastPage" select="$LastPage"/>
                    <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">
                        <xsl:choose>
                            <xsl:when test="$type.treated eq 'DeveloppementRecette'">1</xsl:when>
                            <xsl:otherwise>0</xsl:otherwise>
                        </xsl:choose>   
                    </xsl:with-param>
                    <xsl:with-param name="show.depense.recette" select="0"/>
                    <xsl:with-param name="ancre">#footer</xsl:with-param>
                    <xsl:with-param name="display.logos.entete">0</xsl:with-param>
                    <xsl:with-param name="is.web" select="$is.web"/>
                    <xsl:with-param name="context.path" select="$context.path"/>
                </xsl:call-template>
                <p id="footer"/>
            </body>
        </html>
    </xsl:template>

    <xsl:template name="mainTable">
        <xsl:param name="el"/>
        <table width="100%" class="bordered" id="main">
            <colgroup>
                <col width="32%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="7%"/>
                <col width="4%"/>
                <col width="4%"/>
                <col width="4%"/>                
            </colgroup>
            <thead>
                <tr class="titre">
                    <td class="titre2 center bold borderedBold">Nature des produits</td>
                    <td class="titre2 center bold borderedBold">Restes A Recouver<br/>au 1<sup>er</sup> Janvier</td> 
                    <td class="titre2 center bold borderedBold">Droits pris<br/>en charge</td>
                    <td class="titre2 center bold borderedBold">Annulations de<br/>prise en charge</td>
                    <td class="titre2 center bold borderedBold">Total des droits<br/>constat&#233;s</td>
                    <td class="titre2 center bold borderedBold">Recouvrement sur<br/>prise en charge</td>
                    <td class="titre2 center bold borderedBold">Recettes<br/>au comptant</td>
                    <td class="titre2 center bold borderedBold">Restes A Recouver<br/>au 31 D&#233;cembre</td>
                    <td class="titre2 center bold borderedBold">Total des recettes<br/>budg&#233;taires</td>
                    <td class="titre2 center bold borderedBold">Ligne<br/>de<br/>recette</td>
                    <td class="titre2 center bold borderedBold">Compte<br/>de<br/>recette</td>
                    <td class="titre2 center bold borderedBold">Compte<br/>de<br/>P.E.C.</td>
                </tr>
            </thead>
            <tbody>
                <xsl:variable name="lignes">
                    <xsl:choose>
                        <xsl:when test="$type.treated eq 'DeveloppementRecette'"><xsl:copy-of select="$el/n:LigneDeveloppementRecette"/></xsl:when>
                        <xsl:when test="$type.treated eq 'Recapitulation'"><xsl:copy-of select="$el/n:LigneRecapitulation"/></xsl:when>
                        <xsl:when test="$type.treated eq 'Reversement'"><xsl:copy-of select="$el/n:LigneReversement"/></xsl:when>
                    </xsl:choose>
                </xsl:variable>
                
                <xsl:for-each select="$lignes/*">
                    <!--xsl:sort select="."/-->
                    <tr>
                        <xsl:choose>
                            <xsl:when test="$generatedId = '0' and $numCompte != '0' and @NumCompte=$numCompte and (number($comptePEC)=0 or @ComptePEC=$comptePEC) and (number($ligneRecette)=0 or @LigneRecette=$ligneRecette)">
                                <xsl:attribute name="id">highlighted</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$generatedId != '0' and @added:generated-id=$generatedId">
                                <xsl:attribute name="id">highlighted</xsl:attribute>
                            </xsl:when>
                            <xsl:otherwise> 
                                <xsl:if test="upper-case(@Type) eq 'TOTAL' and number(@added:Padding) eq 0">
                                    <xsl:attribute name="class">total bordureTopBold bordureBottomBold</xsl:attribute>
                                </xsl:if>
                                <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="upper-case(@Type) eq 'TOTAL' and number(@added:Padding) eq 0">
                                <xsl:attribute name="class">Total</xsl:attribute>
                            </xsl:when>
                            <xsl:otherwise><xsl:attribute name="class">NotTotal</xsl:attribute></xsl:otherwise>
                        </xsl:choose>
                        <xsl:choose>
                            <xsl:when test="@RARDeb != 0 or @Droits != 0 or @Annulations != 0 or @TotDroits != 0 or @Recouvrement != 0 or @RecettesComptant != 0 or @RARFin != 0 or @TotRecetteBudg != 0">
                                <xsl:choose>
                                    <xsl:when test="upper-case(@Type) eq 'TOTAL' and number(@added:Padding) eq 0">
                                        <td class="bordureTopBold bordureBottomBold bordureRight"><xsl:attribute name="id">padding<xsl:value-of select="@added:Padding"/></xsl:attribute><xsl:value-of select="@NatureProduit"/></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@RARDeb"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@Droits"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@Annulations"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@TotDroits"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@Recouvrement"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@RecettesComptant"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@RARFin"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureTopBold bordureBottomBold bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@TotRecetteBudg"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="right bordureTopBold bordureBottomBold bordureRight"><xsl:if test="string-length(@LigneRecette) &gt; 0 and @LigneRecette != '0'"><xsl:value-of select="@LigneRecette"/></xsl:if>&#160;</td>
                                        <td class="right bordureTopBold bordureBottomBold bordureRight"><xsl:value-of select="@NumCompte"/>&#160;</td>
                                        <td class="right bordureTopBold bordureBottomBold bordureRight"><xsl:value-of select="@ComptePEC"/>&#160;</td>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <td class="bordureRight"><xsl:attribute name="id">padding<xsl:value-of select="@added:Padding"/></xsl:attribute><xsl:value-of select="@NatureProduit"/></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@RARDeb"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@Droits"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@Annulations"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@TotDroits"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@Recouvrement"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@RecettesComptant"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@RARFin"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="montant bordureRight"><xsl:call-template name="number"><xsl:with-param name="num" select="@TotRecetteBudg"/><xsl:with-param name="hide.zero">1</xsl:with-param></xsl:call-template></td>
                                        <td class="bordureRight right"><xsl:if test="string-length(@LigneRecette) &gt; 0 and @LigneRecette != '0'"><xsl:value-of select="@LigneRecette"/></xsl:if>&#160;</td>
                                        <td class="bordureRight right"><xsl:value-of select="@NumCompte"/>&#160;</td>
                                        <td class="bordureRight right"><xsl:value-of select="@ComptePEC"/>&#160;</td>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:when>
                            <xsl:otherwise>
                                <td class="bordureRight"><xsl:attribute name="id">padding<xsl:value-of select="@added:Padding"/></xsl:attribute><xsl:value-of select="@NatureProduit"/></td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                                <td class="bordureRight">&#160;</td>
                            </xsl:otherwise>
                        </xsl:choose>
                    </tr>
                </xsl:for-each>
            </tbody>
        </table>
    </xsl:template>
  
</xsl:transform>
