First of all note that your elements names in the sample document (e.g. EVNT_SUMM) don't match the element names in the XSLT stylesheet (e.g. EVENT_SUMM).
As for solving the problem, with XSLT 1.0 you need to write a named template calling itself, here is an example that simply includes the logic of your 'convert' template in the recursive template:
Code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="DETAILS">
<xsl:apply-templates select="EVNT"/>
</xsl:element>
</xsl:template>
<xsl:template match="EVNT">
<xsl:element name="AMOUNT">
<xsl:call-template name="sum">
<xsl:with-param name="items" select="EVNT_SUMM"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="sum">
<xsl:param name="items"/>
<xsl:param name="total" select="0"/>
<xsl:choose>
<xsl:when test="$items">
<xsl:variable name="item" select="$items[1]"/>
<xsl:call-template name="sum">
<xsl:with-param name="items" select="$items[position() > 1]"/>
<xsl:with-param name="total">
<xsl:choose>
<xsl:when test="$item/CRCY_CD = '25'">
<xsl:value-of select="$total + $item/PMT_AMT div 100"/>
</xsl:when>
<xsl:when test="$item/CRCY_CD = '22'">
<xsl:value-of select="$total + $item/PMT_AMT div 10"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$total + $item/PMT_AMT"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$total"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
If you want to use the template you have posted then you need to adapt that code slightly:
Code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="DETAILS">
<xsl:apply-templates select="EVNT"/>
</xsl:element>
</xsl:template>
<xsl:template match="EVNT">
<xsl:element name="AMOUNT">
<xsl:call-template name="sum">
<xsl:with-param name="items" select="EVNT_SUMM"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="sum">
<xsl:param name="items"/>
<xsl:param name="total" select="0"/>
<xsl:choose>
<xsl:when test="$items">
<xsl:variable name="item" select="$items[1]"/>
<xsl:variable name="value">
<xsl:call-template name="convert">
<xsl:with-param name="amt" select="$item/PMT_AMT"/>
<xsl:with-param name="crcy_cd" select="$item/CRCY_CD"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="sum">
<xsl:with-param name="items" select="$items[position() > 1]"/>
<xsl:with-param name="total" select="$total + $value"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$total"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="convert">
<xsl:param name="amt"/>
<xsl:param name="crcy_cd"/>
<xsl:choose>
<xsl:when test="$crcy_cd='25'">
<xsl:value-of select="number($amt) div 100"/>
</xsl:when>
<xsl:when test="$crcy_cd='22'">
<xsl:value-of select="number($amt) div 10"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="number($amt)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>