<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8"/>

<xsl:template match="/">
<xml>
 	<xsl:for-each select="xml/fin_factuur">    
        <kopregel>
            <dagb_type>I</dagb_type>
            <dagbknr><xsl:value-of select="/xml/exact_dagboeknr"/></dagbknr>
            <bkstnr><xsl:apply-templates select="fin_factuur_key"/></bkstnr>
            <oms25><xsl:value-of select="bes_mld_cnt_opdracht_id"/></oms25>
            <date><xsl:value-of select="fin_factuur_datum"/></date>
            <crdnr><xsl:value-of select="prs_leverancier_nr"/></crdnr>
            <bedrag><xsl:value-of select="fin_factuur_totaal_incbtw"/></bedrag>
            <betaalref><xsl:value-of select="fin_factuur_nr"/></betaalref>
            <bestand><xsl:value-of select="fin_factuur_bestand"/></bestand>
            <xsl:for-each select="fin_factuurregel">
                <boekingsregel>
                    <dagb_type>I</dagb_type>
                    <dagbknr><xsl:value-of select="/xml/exact_dagboeknr"/></dagbknr>
                    <bkstnr><xsl:apply-templates select="../fin_factuur_key"/></bkstnr>
                    <oms25>
                        <xsl:choose>
                           <xsl:when test="fin_factuurregel_omschrijving=''"><xsl:value-of select="fin_factuurregel_nr"/></xsl:when>
                           <xsl:otherwise><xsl:value-of select="fin_factuurregel_omschrijving"/></xsl:otherwise>
                        </xsl:choose>
                    </oms25>
                    <date><xsl:value-of select="fin_factuur_datum"/></date>
                    <reknr><xsl:value-of select="prs_kostensoort_refcode"/></reknr>
                    <!-- Onderstaande vreemde * 100 en delen door 100 bewust (natuurlijk) gedaan, omdat xsl verschrikkelijke veel decimalen toont -->
                    <!-- Er is ook geen round-functie in decimalen, de round-functie rond af op integer -->
                    <bedrag><xsl:value-of select="round(100*(fin_factuurregel_totaal+fin_factuurregel_btw_bedrag)) div 100"/></bedrag>
                    <btwcode><xsl:apply-templates select="fin_factuurregel_btw_perc"/></btwcode>
                    <btw_bdr><xsl:value-of select="fin_factuurregel_btw_bedrag"/></btw_bdr>
                    <kstplcode><xsl:value-of select="prs_kostenplaats_nr"/></kstplcode>
               </boekingsregel>
            </xsl:for-each>
        </kopregel>
     </xsl:for-each>    
</xml>
</xsl:template>


<xsl:template match="fin_factuurregel_btw_perc">
   <!-- Normaliter geldt voor Exact een vertaling van 19->4, 6->2 en 0->0, zoals hieronder -->
   <!-- Maar dat is voor SKA nu niet relevant, aangezien dat altijd met code 0 (BTW=0) wordt geboekt -->
   <!-- Daarom staat na deze template, hieronder, de herdefinitie van deze template voor SKA  -->
   <xsl:choose>
       <xsl:when test=".=19">4</xsl:when>
       <xsl:when test=".=6">2</xsl:when>
       <xsl:when test=".=0">0</xsl:when>
       <xsl:otherwise>-1</xsl:otherwise>
   </xsl:choose>
</xsl:template>

<xsl:template match="fin_factuurregel_btw_perc">
<!-- Deze template geldt voor SKA (als stichting): keihard op BTWcode 0 zetten -->0</xsl:template>

<xsl:template match="fin_factuur_key">
   <!-- Deze template geldt voor 'bijzondere' implementatie voor EXACT BIJ SKA: boekstuknr wordt geconstrueerd door: -->
   <!-- a) laatste cijfer van jaartal: 1 positie (dus 2011 is een 1, 2012 is een 2, 2013 is een 3 etc -->
   <!-- b) dagboeknr 61: 2 posities  -->
   <!-- c) rest nog 5 posities voor factuur_key, voorzien van voorloopnullen  -->
   <xsl:value-of select="substring(../fin_factuur_datum,8,1)"/><xsl:value-of select="/xml/exact_dagboeknr"/><xsl:value-of select="substring('0000', 1, 5 - string-length(.))"/><xsl:value-of select="."/>
</xsl:template>

</xsl:stylesheet>
