<?xml version="1.1" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
]>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added"
 xmlns:ano="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:local="fr:gouv:finances:xemelios:internal"
 exclude-result-prefixes="added ano" version="2.0">

 <xsl:output standalone="yes" method="xml" indent="yes"/>

 <xsl:output encoding="ISO-8859-1"/>
 <xsl:output version="1.0"/>
 
 <xsl:variable name="natures" select="document('natures.xml')"/>
 
 <xsl:param name="language" select="'fr'"/>

 <xsl:template match="/*[position()=1]">
  <xsl:choose>
   <xsl:when test="local-name(.) = 'Racine'">
    <Racine xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added" xmlns="fr:gouv:finances:xemelios:internal">
     <xsl:for-each select="./*">
      <xsl:call-template name="writeElement">
       <xsl:with-param name="el" select="."/>
      </xsl:call-template>
     </xsl:for-each>
    </Racine>
   </xsl:when>
  </xsl:choose>
 </xsl:template>

 <xsl:template name="writeElement">
  <xsl:param name="el"/>
  <xsl:element name="{name($el)}" namespace="fr:gouv:finances:xemelios:internal">
   <xsl:for-each select="$el/@*">
    <xsl:attribute name="{name(.)}" namespace="{namespace-uri(.)}">
     <xsl:value-of select="."/>
    </xsl:attribute>
   </xsl:for-each>
   <!--xsl:choose-->
    <xsl:if test="contains('|InfosFinancieresFoyerRSA|DetailAllocationComptabilisee|DetailRemiseIndu|DetailInduConstate|DetailInduTransfereCG|DetailAnnulationFaibleMontant|DetailAutreAnnulation|',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:if>
    <xsl:if test="contains('|AllocationsComptabilisees|RemisesIndus|IndusConstates|IndusTransferesCG|AnnulationsFaibleMontant|AutresAnnulations|',concat('|',name($el),'|'))">
     <xsl:attribute name="somme" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="sum($el/*[./SENSOPECOMPTA/text()='AJ']/MTMOUCOMPTA/number(text()))-sum($el/*[./SENSOPECOMPTA/text()='DE']/MTMOUCOMPTA/number(text()))"/>
    </xsl:if>
   <xsl:if test="name($el) = 'DetailAcompteRSA'">
    <xsl:attribute name="somme" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added" select="sum($el/*/*[./SENSOPECOMPTA/text()='AJ']/MTMOUCOMPTA/number(text()))-sum($el/*/*[./SENSOPECOMPTA/text()='DE']/MTMOUCOMPTA/number(text()))"/>
   </xsl:if>
    <xsl:if test="name($el) = 'SEXE'">
     <xsl:attribute name="sexe" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added"><xsl:choose>
      <xsl:when test="$el/text()='1'">Homme</xsl:when><xsl:otherwise>Femme</xsl:otherwise>
     </xsl:choose>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="contains('|TotalAllocationsComptabilisees|',concat('|',name($el),'|'))">
     <xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Allocations comptabilisées</xsl:attribute>
     <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:value-of select="generate-id()"/>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="contains('|TotalIndusConstates|',concat('|',name($el),'|'))">
     <xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Indus constatés</xsl:attribute>
     <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:value-of select="generate-id()"/>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="contains('|TotalIndusTransferesCG|',concat('|',name($el),'|'))">
     <xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Indus transférés CG</xsl:attribute>
     <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:value-of select="generate-id()"/>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="contains('|TotalRemisesIndus|',concat('|',name($el),'|'))">
     <xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Remises indus</xsl:attribute>
     <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:value-of select="generate-id()"/>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="contains('|TotalAnnulationsIndus|',concat('|',name($el),'|'))">
     <xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Annulations indus</xsl:attribute>
     <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:value-of select="generate-id()"/>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="contains('|MontantTotalAcompte|',concat('|',name($el),'|'))">
     <xsl:attribute name="libelle" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Total acompte</xsl:attribute>
     <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:value-of select="generate-id()"/>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="local-name($el) = 'DetailAllocationComptabilisee'">
     <xsl:attribute name="name" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Allocation comptabilisée</xsl:attribute>
    </xsl:if>
    <xsl:if test="local-name($el) = 'DetailInduConstate'">
     <xsl:attribute name="name" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Indu constaté</xsl:attribute>
    </xsl:if>
    <xsl:if test="local-name($el) = 'DetailInduTransfereCG'">
     <xsl:attribute name="name" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Indu transféré CG</xsl:attribute>
    </xsl:if>
   <xsl:if test="local-name($el) = 'DetailRemiseIndu'">
     <xsl:attribute name="name" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Remise indu</xsl:attribute>
    </xsl:if>
   <xsl:if test="local-name($el) = 'DetailAnnulationFaibleMontant'">
     <xsl:attribute name="name" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Annulation faible montant</xsl:attribute>
    </xsl:if>
   <xsl:if test="local-name($el) = 'DetailAutreAnnulation'">
     <xsl:attribute name="name" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">Autre annulation</xsl:attribute>
    </xsl:if>
    <xsl:if test="name($el) = 'NATPFCRE'">
     <xsl:attribute name="nature" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:choose>
       <xsl:when test="string-length($natures/codes/natures/nature[@code=$el/text()]/text()) gt 0"><xsl:value-of select="$natures/codes/natures/nature[@code=$el/text()]/text()"/></xsl:when>
       <xsl:otherwise>Inconnu (<xsl:value-of select="$el/text()"/>)</xsl:otherwise>
      </xsl:choose>
     </xsl:attribute>
    </xsl:if>
    <xsl:if test="name($el) = 'TYPEOPECOMPTA'">
     <xsl:attribute name="ope" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
      <xsl:choose>
       <xsl:when test="string-length($natures/codes/typesope/ope[@code=$el/text()]/text()) gt 0"><xsl:value-of select="$natures/codes/typesope/ope[@code=$el/text()]/text()"/></xsl:when>
       <xsl:otherwise>Inconnu (<xsl:value-of select="$el/text()"/>)</xsl:otherwise>
      </xsl:choose>
     </xsl:attribute>
    </xsl:if>
   <!--/xsl:choose-->
   <xsl:for-each select="$el/*">
    <xsl:call-template name="writeElement">
     <xsl:with-param name="el" select="."/>
    </xsl:call-template>
   </xsl:for-each>
   <!--xsl:choose>
    <xsl:when test="'DTTRAIMOUCOMPTA' = name($el)"><xsl:value-of select="$el/text()"/>T<xsl:value-of select="local:format-time($el/../HEUTRAIMOUCOMPTA/text())"/></xsl:when>
    <xsl:when test="'DTCREAFLUX' = name($el)"><xsl:value-of select="$el/text()"/>T<xsl:value-of select="local:format-time($el/../HEUCREAFLUX/text())"/></xsl:when>
   </xsl:choose-->
   <xsl:value-of select="$el/text()"/>
  </xsl:element>
 </xsl:template>

 <xsl:function name="local:format-time" as="xs:string">
  <xsl:param name="time" as="xs:string"/>
  <xsl:variable name="original.timezone" select="substring($time,9)"/>
  <xsl:variable name="value">
   <xsl:choose>
    <xsl:when test="string-length($time) = 4"><xsl:value-of select="concat('+',substring($time,0,2),':',substring($time,2,2))"/></xsl:when>
    <xsl:otherwise><xsl:value-of select="concat(substring($time,0,3),':',substring($time,3,2))"/></xsl:otherwise>
   </xsl:choose>
  </xsl:variable>
  <xsl:sequence select="$value"/>
 </xsl:function>

</xsl:stylesheet>
