My xslt code is return correct output when TransactionTypeText='Charge', TransactionTypeText='Payment', TransactionTypeText='Credit', and TransactionTypeText='Disbursement'.
I would like to add code so I also get the output when TransactionTypeText is other than Charge, Payment, Credit or Disbursement. When the TranscationTypeText is not any of the 4, I would like to get the amounts from any of the source columns from the xml deocument.
For each row, only one of the sourse columns should have a non-zero value. If a row has more than one non-zero source columns, I return an exception which is in my xslt stylesheet
Her xslt is working when the xml document has TransactionTypeText='Charge', TransactionTypeText='Payment', TransactionTypeText='Credit', and TransactionTypeText='Disbursement'
However for example when the xml document has TransactionTypeText='Adjustment', I get an error Unknown transaction type Adjustment.
How do I modify my xslt code to handle other TransactionTypeText?
Expected output should look like this
xslt code
xml document
I would like to add code so I also get the output when TransactionTypeText is other than Charge, Payment, Credit or Disbursement. When the TranscationTypeText is not any of the 4, I would like to get the amounts from any of the source columns from the xml deocument.
For each row, only one of the sourse columns should have a non-zero value. If a row has more than one non-zero source columns, I return an exception which is in my xslt stylesheet
Her xslt is working when the xml document has TransactionTypeText='Charge', TransactionTypeText='Payment', TransactionTypeText='Credit', and TransactionTypeText='Disbursement'
However for example when the xml document has TransactionTypeText='Adjustment', I get an error Unknown transaction type Adjustment.
How do I modify my xslt code to handle other TransactionTypeText?
Expected output should look like this
XML:
<FinancialDetail>
<FinancialTransaction>
<TransactionID>1639560336</TransactionID>
<TransactionTypeText>Charge</TransactionTypeText>
<TransactionDate>2016-07-11</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1650110685</FeeDetailID>
<FeeDetailFeeCodeText code="REST">Restitution</FeeDetailFeeCodeText>
<FeeDetailFeeAmount>500</FeeDetailFeeAmount>
</TransactionFeeDetail>
<TransactionCommentText/>
<TransactionPaymentCreditTypeText/>
</FinancialTransaction>
<FinancialTransaction>
<TransactionID>1639560337</TransactionID>
<TransactionTypeText>Adjustment</TransactionTypeText>
<TransactionDate>2016-07-11</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1650110685</FeeDetailID>
<FeeDetailFeeCodeText code="REST">Restitution</FeeDetailFeeCodeText>
<FeeDetailFeeAmount>-500</FeeDetailFeeAmount>
</TransactionFeeDetail>
<TransactionCommentText>Testing</TransactionCommentText>
<TransactionPaymentCreditTypeText/>
</FinancialTransaction>
</FinancialDetail>
xslt code
Code:
<xsl:stylesheet version="1.0" xmlns="[URL unfurl="true"]http://www.courts.state.mn.us/CourtXML/3"[/URL] xmlns:msc="[URL unfurl="true"]http://www.courts.state.mn.us/CourtXML/3"[/URL] xmlns:xsl="[URL unfurl="true"]http://www.w3.org/1999/XSL/Transform"[/URL] xmlns:mscef="courts.state.mn.us/extfun" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="mscef msxsl msc">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:template name="FinancialDetailType">
<xsl:for-each select="ancestor::Integration/FinancialDetail/Transaction[count(TransactionFeeDetail[FeeDetailFeeCode='REST'])>0]">
<FinancialTransaction>
<TransactionID>
<xsl:value-of select="TransactionID"/>
</TransactionID>
<TransactionTypeText>
<xsl:value-of select="TransactionTypeText"/>
</TransactionTypeText>
<TransactionDate>
<xsl:value-of select="substring(TransactionDate,1,10)"/>
</TransactionDate>
<xsl:for-each select="TransactionFeeDetail[FeeDetailFeeCode='REST']">
<TransactionFeeDetail>
<FeeDetailID>
<xsl:value-of select="FeeDetailID"/>
</FeeDetailID>
<FeeDetailFeeCodeText>
<xsl:attribute name="code">
<xsl:value-of select="FeeDetailFeeCode"/>
</xsl:attribute>
<xsl:value-of select="FeeDetailFeeCodeText"/>
</FeeDetailFeeCodeText>
<FeeDetailFeeAmount>
<xsl:choose>
<xsl:when test="../TransactionTypeText='Charge'">
<xsl:value-of select="mscef:formatCurrency(string(ChargeAmount))"/>
</xsl:when>
<xsl:when test="../TransactionTypeText='Payment'">
<xsl:value-of select="mscef:formatCurrency(string(PaymentAmount))"/>
</xsl:when>
<xsl:when test="../TransactionTypeText='Credit'">
<xsl:value-of select="mscef:formatCurrency(string(CreditAmount))"/>
</xsl:when>
<xsl:when test="../TransactionTypeText='Disbursement'">
<xsl:value-of select="mscef:formatCurrency(string(DisbursementAmount))"/>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">Unknown transaction type. <xsl:value-of select="../TransactionTypeText"/>
</xsl:message>
</xsl:otherwise>
</xsl:choose>
</FeeDetailFeeAmount>
</TransactionFeeDetail>
</xsl:for-each>
<TransactionCommentText>
<xsl:value-of select="TransactionCommentText"/>
</TransactionCommentText>
<TransactionPaymentCreditTypeText>
<xsl:value-of select="TransactionPaymentCreditTypeText"/>
</TransactionPaymentCreditTypeText>
</FinancialTransaction>
</xsl:for-each>
</xsl:template>
<msxsl:script language="JScript" implements-prefix="mscef">
<![CDATA[
function formatCurrency(asCurrency){
asCurrency = asCurrency.replace("\$","");
asCurrency = asCurrency.replace("\,","");
return parseFloat(asCurrency);
}
function formatTwoDecimalCurrency(asCurrency){
if(asCurrency.length==0){
return "";
}
asCurrency = asCurrency.replace("\$","");
asCurrency = asCurrency.replace("\,","");
return parseFloat(asCurrency).toFixed(2);
}
]]></msxsl:script>
</xsl:stylesheet>
xml document
XML:
<?xml version="1.0" encoding="UTF-8"?>
<Pipeline xmlns="">
<SourceXML>
<Integration>
<Case InternalID="1612988653" ID="5226206" xmlns:user="[URL unfurl="true"]http://tylertechnologies.com">[/URL]
</Case>
<FinancialDetail>
<Transaction>
<TransactionID>1621246445</TransactionID>
<TransactionTypeText>Charge</TransactionTypeText>
<TransactionDate>2010-06-30T00:00:00</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1624242662</FeeDetailID>
<FeeDetailFeeCode>CRMTRAF5</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Crim/Traffic Surcharge 2005</FeeDetailFeeCodeText>
<ChargeAmount>72.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242663</FeeDetailID>
<FeeDetailFeeCode>LAWLIBCR</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Law Library Criminal</FeeDetailFeeCodeText>
<ChargeAmount>10.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242664</FeeDetailID>
<FeeDetailFeeCode>MUNICCTY</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Municipal Fines-County Share</FeeDetailFeeCodeText>
<ChargeAmount>233.3800</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242665</FeeDetailID>
<FeeDetailFeeCode>10CHAS23</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Chaska (0300) 2/3</FeeDetailFeeCodeText>
<ChargeAmount>466.6200</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242666</FeeDetailID>
<FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
<ChargeAmount>3.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242667</FeeDetailID>
<FeeDetailFeeCode>PROSCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Prosecution Costs</FeeDetailFeeCodeText>
<ChargeAmount>700.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
</Transaction>
<Transaction>
<TransactionID>1621279946</TransactionID>
<TransactionTypeText>Charge</TransactionTypeText>
<TransactionDate>2010-07-06T00:00:00</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1624281693</FeeDetailID>
<FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
<ChargeAmount>20.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
</Transaction>
<Transaction>
<TransactionID>1621541452</TransactionID>
<TransactionTypeText>Payment</TransactionTypeText>
<TransactionDate>2010-08-06T00:00:00</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1624242664</FeeDetailID>
<FeeDetailFeeCode>MUNICCTY</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Municipal Fines-County Share</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>32.2800</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242665</FeeDetailID>
<FeeDetailFeeCode>10CHAS23</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Chaska (0300) 2/3</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>64.5400</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242666</FeeDetailID>
<FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.4100</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624281693</FeeDetailID>
<FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>2.7700</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
</Transaction>
<Transaction>
<TransactionID>1621746487</TransactionID>
<TransactionTypeText>Disbursement</TransactionTypeText>
<TransactionDate>2010-09-01T00:00:00</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1624242664</FeeDetailID>
<FeeDetailFeeCode>MUNICCTY</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Municipal Fines-County Share</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>32.2800</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242665</FeeDetailID>
<FeeDetailFeeCode>10CHAS23</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Chaska (0300) 2/3</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>64.5400</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624242666</FeeDetailID>
<FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.4100</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
<TransactionFeeDetail>
<FeeDetailID>1624281693</FeeDetailID>
<FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
<ChargeAmount>0.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>2.7700</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
<RecipientAccountID>1610014856</RecipientAccountID>
<NameLast>MN Department of Finance</NameLast>
</TransactionFeeDetail>
</Transaction>
<Transaction>
<TransactionID>1639560336</TransactionID>
<TransactionTypeText>Charge</TransactionTypeText>
<TransactionDate>2016-07-11T00:00:00</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1650110685</FeeDetailID>
<FeeDetailFeeCode>REST</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Restitution</FeeDetailFeeCodeText>
<ChargeAmount>500.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
</TransactionFeeDetail>
</Transaction>
<Transaction>
<TransactionID>1639560337</TransactionID>
<TransactionCommentText>Testing</TransactionCommentText>
<TransactionTypeText>Adjustment</TransactionTypeText>
<TransactionDate>2016-07-11T00:00:00</TransactionDate>
<TransactionFeeDetail>
<FeeDetailID>1650110685</FeeDetailID>
<FeeDetailFeeCode>REST</FeeDetailFeeCode>
<FeeDetailFeeCodeText>Restitution</FeeDetailFeeCodeText>
<ChargeAmount>-500.0000</ChargeAmount>
<CreditAmount>0.0000</CreditAmount>
<DisbursementAmount>0.0000</DisbursementAmount>
<PaymentAmount>0.0000</PaymentAmount>
</TransactionFeeDetail>
</Transaction>
</FinancialDetail>
</Integration>
</SourceXML>
<CourtXML/>
<CaseOptions xmlns="[URL unfurl="true"]http://www.courts.state.mn.us/CourtXML/3">[/URL]
<FinancialSummary>
<SelectedIndicator>true</SelectedIndicator>
</FinancialSummary>
<FinancialDetail>
<SelectedIndicator>true</SelectedIndicator>
</FinancialDetail>
</CaseOptions>
</Pipeline>