Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/06/2010, 03:24
lmalvarez
 
Fecha de Ingreso: julio-2009
Mensajes: 82
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Acumulador en XSL

Muchas gracias monoswim por la ayuda!

Ahora estoy intentando realizar una suma de todos los impuestos, pero no me entra en el bucle.
El esquema del XML es que hay varias líneas por cada factura, y dentro de cada línea está el porcentaje del impuesto y el importe neto de la línea.

Lo que quiero es que me muestre una línea con los totales de los impuestos de la factura. A continuación está el código de la template y de la llamada, creo que hago mal el acceso a los nodos... a ver si me podéis echar una mano. Muchas gracias


Este es el código de la template


Código XML:
Ver original
  1. <xsl:template name="sumaImpuestos">
  2.     <xsl:param name="factura"></xsl:param>
  3.     <xsl:param name="contador">1</xsl:param>
  4.     <xsl:param name="suma">0</xsl:param>
  5.    
  6.     <xsl:choose>
  7.         <xsl:when test="$contador &lt;= count($factura/df:Line)">
  8.             <xsl:call-template name="sumaImpuestos">
  9.                 <xsl:with-param name="factura" select="$factura"></xsl:with-param>
  10.                 <xsl:with-param name="suma" select="format-number($suma + (($factura/df:Line[$contador]/df:Tax/df:TaxPercentage div 100) * $factura/df:Line[$contador]/df:CreditAmount),'#.00')"></xsl:with-param>
  11.                 <xsl:with-param name="contador" select="$contador+1"></xsl:with-param>
  12.             </xsl:call-template>
  13.         </xsl:when>
  14.         <xsl:otherwise>
  15.             <xsl:value-of select="$suma"></xsl:value-of>
  16.         </xsl:otherwise>
  17.     </xsl:choose>
  18.  
  19. </xsl:template>

y este el de la llamada

Código XML:
Ver original
  1. xsl:call-template name="sumaImpuestos">
  2.         <xsl:with-param name="factura" select="df:SourceDocuments/df:SalesInvoices/df:Invoice[1]" />
  3.     </xsl:call-template>

Última edición por lmalvarez; 08/06/2010 a las 04:25