Jump to content

How do I Add exception to code based on conditions


winkimjr2

Recommended Posts

I had this question posted but since I had to edit that question after an answer was provided, I think the best thing to do is posting a new question instead.
I have 4 TransactionTypeText being handled by xslt code which include TransactionTypeText='Charge', TransactionTypeText='Payment', TransactionTypeText='Credit', TransactionTypeText='Disbursement'.
The problem is that, this code is not handling other types (TransactionTypeText) that are not one of the the 4 types.
When I try TransactionTypeText='Adjustment', I am getting an error Unknown transaction type Adjustment because I have an exception in my xslt code to handle TransactionTypeText when it is of type other than the 4.
So I would like to modify my code so that it can handle all types of TransactionTypeText.
The requirement is that, to handle (other) TransactionTypeText that are not of type Charge, Credit, Disbursement, Payment, use the following condition:
For TransactionTypeText that are not Charge; Payment; Credit, and Disbursement get amount that is not equal to zero from any of the amount elements. This is because amount can be in any element.
Note: Unlike the 4 types, other types can have amount in any element. The amount for Charge is in ChargeAmount element, amount for Payment is in PaymentAmount element, amount for Disbursement is in DisbursementAmount element, amount for Credit is in CreditAmount. This is not the case for other tpes. So, for other types, I need to get amount from any element that has amount that is great than zero.
Note: For each of the other types, only one of the amount elements can have amount greater than zero.
If there is more than one amount element with amount that is greater than zero, add exception with exception text "Transaction has more than one amount type"
Currently I am only handling (exception) when the TransactionTypeText is not one of the 4 (Charge, Payment, Credit, Disbursement.
This is the specific are of xslt I need to modify but I don't know how.
<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>

Expected output

<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 stylesheet

<xsl:stylesheet version="1.0" xmlns="http://www.courts.state.mn.us/CourtXML/3" xmlns:msc="http://www.courts.state.mn.us/CourtXML/3" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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

<Integration>
	<Case InternalID="1612988653" ID="5226206" xmlns:user="http://tylertechnologies.com">
	</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>

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...