<?xml version="1.0" encoding="utf-8"?>

<!--
//
// Copyright 2006 Intuit Inc. All rights reserved. Unauthorized reproduction
// is a violation of applicable law. This material contains certain
// confidential or proprietary information and trade secrets of Intuit Inc.
//

-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:math="http://exslt.org/math">
  <xsl:output method="html"/>
  
  <xsl:template match="AFXChangeList">
    <xsl:variable name="Note">
      <xsl:value-of select="AccountantNote"/>
    </xsl:variable>
    <xsl:variable name="DividingDate">
      <xsl:value-of select="DividingDate"/>
    </xsl:variable>
    <xsl:variable name="Path">
      <xsl:value-of select="Path"/>
    </xsl:variable>
    <html>
      <head>
        <!-- Setup of the view changes report, -->
        <link rel="stylesheet" media="screen" href="{$Path}style.css" type="text/css"  id="location"/>
        <link rel="stylesheet" media="print" href="{$Path}print.css" type="text/css"/>


        <script type="text/javascript" language="javascript">
          <![CDATA[
          onload = function() { 
            content.focus()
          }

          var pathToImages = window.location.pathname;
          var ImageIds = new Array();

          var W3CDOM = (document.createElement && document.getElementsByTagName);

          // let do all the initialization required upon loading the html doc
          addEvent(window, 'load', initCollapsingRows);

          function addEvent(obj, eventType,fn, useCapture)
          {
            if (obj.addEventListener) {
              obj.addEventListener(eventType, fn, useCapture);
              return true;
            }
            else {
              if (obj.attachEvent) {
                var r = obj.attachEvent("on"+eventType, fn);
                return r;
              }
            }
          }

          // this function is needed to work around
          // a bug in IE related to element attributes

          function hasClass(obj) {
            var result = false;
            if (obj.getAttributeNode("class") != null) {
              result = obj.getAttributeNode("class").value;
            }
            return result;
          }

          // Save the detailed report to PDF
          function SaveDetailsToPDF()
          {
            
            ResizeAndCopyNotes();
            // first we need to get the report in a detailed state
            ExpandAll();

            // then we use a QB Command to save it to a PDF file
            // The name of the PDF is chosen by the user
            window.location="qbks://qbw:PrintPDFFromBrowser";

          }

          // print the details of the view changes report
          function PrintDetails()
          {
            ResizeAndCopyNotes();
            
            // first we need to get the report in a detailed state
            ExpandAll();

            // then we need to go ahead and print the document
            window.print();
          }
          
          function ResizeAndCopyNotes(){
              var note;
              var printNote;
              
              if (document.getElementById("acct_note")){
                  note = document.getElementById("acct_note");
              }
              else if (document.getElementById("client")){
                  note = document.getElementById("client");
              }
             
              if (!(document.location.search.indexOf("isClient=yes")!=-1)){
                printNote = document.getElementById("acct_note_print");
              }
              else if(document.location.search.indexOf("afterImport=yes")!=-1){
                printNote = document.getElementById("acct_note_print2");
              }
              else if(document.location.search.indexOf("ImportFailed=yes")!=-1){
                printNote = document.getElementById("acct_note_print3");
              }
              else{
                printNote = document.getElementById("acct_note_print1");
              }
              
              var scrollHeight = note.scrollHeight;
              var printHeight = printNote.clientHeight;
              
              printNote.value = note.value;
              while(scrollHeight >= printHeight ){
                  printNote.rows = printNote.rows + 1;
                  printHeight = printNote.clientHeight;   
              }
          }

          // show the details of all the transactions
          function ExpandAll()
          {
            //Get all the rows that have expand or collapse gifs next to them
            for (var i =0; i < ImageIds.length; i++)
          {
          if(ImageIds[i]!="placeholder")
          {
          var theImage = document.getElementById(ImageIds[i]);
          var theRowName = ImageIds[i].replace('_image', '_comment');
          var theRow = document.getElementById(theRowName);

          if (theRow.style.display=="none") {
          theRow.style.display = "";
          theImage.src = pathToImages + "Collapse.gif";
          }
          }
          }
          }

          function CloseBrowser() {
          // we are looking at the report before import, if the client cancels, then we should pop up a message
          if (document.location.search.indexOf("isClient=yes")!=-1)
          {
          window.document.location.href="qbks://qbw:closebrowser";
          if(document.location.search.indexOf("afterImport=yes")!=-1)
          {
          window.document.location.href="qbks://qbw:setclosingdate";
          return false;
          }
          else
          {
          window.document.location.href="qbks://qbw:import_cancelled";
          return false;
          }
          }

          // if this is the Accountant's side lets save the note
          if (!document.location.search.indexOf("isClient=yes")!=-1)
          {
          SaveNote();
          window.document.location.href="qbks://qbw:closebrowser";
          return false;
          }
          // if import failed, don't do anything special on close
          if(document.location.search.indexOf("ImportFailed=yes")!=-1)
          {
          window.document.location.href="qbks://qbw:closebrowser";
          return false;
          }
          }

          function Restore() {
          CloseBrowser();
          window.document.location.href="qbks://qbw:restore";
          return false;
          }

          function GetHelp()
          {
          // display help for the client during import
          if (document.location.search.indexOf("isClient=yes")!=-1)
          {
          window.document.location.href="qbks2://qbw:help?chmandtopic=vm_n.chm::/acctreview_n/task_merge_importchanges.html";
          return false;
          }
          else
          {
          window.document.location.href="qbks2://qbw:help?chmandtopic=vm_n.chm::/acctreview_n/task_merge_make_file.html";
          return false;
          }
          }


          function CollapseAll()
          {
          //Get all the rows that have expand or collapse gifs next to them
          for (var i =0; i < ImageIds.length; i++)
          {
          if(ImageIds[i]!="placeholder")
          {
          var theImage = document.getElementById(ImageIds[i]);
          var theRowName = ImageIds[i].replace('_image', '_comment');
          var theRow = document.getElementById(theRowName);

          if (theRow.style.display!="none") {
          theRow.style.display = "none";
          theImage.src = pathToImages + "Expand.gif";
          }
          }
          }
          }

          // call the qb:command handler to deal with the export operation
          function Export()
          {
          SaveNote();
          window.document.location.href="qbks://qbw:export_cpa_changes";
          return false;
          }

          // call the qb:command handler to deal with the accoutant note
          function SaveNote()
          {
          var note = document.getElementsByName("acct_note")[0].value;
          note = encodeURI(note);
         
          var regEx = new RegExp("%", "g");
          var formattedNote = note.replace(regEx, "[*]");

                window.document.location.href="qbks://qbw:save_cpa_note?note="+formattedNote;
                return false;
          }
          // the client is ready to import their accountant's changes
          function Import()
          {
            window.document.location.href="qbks://qbw:merge_cpa_changes";
            return false;
          }

          // If the client is trying to view this changes report then we need to hide the
          // Accountant View
          function HideAccountantView()
          {
            // we we are displaying the report to the client we do not want to show "Restore" or "Export"
            document.getElementById("header_acct").style.display = "none";
            document.getElementById("Export").style.display="none";

            // show the correct header for the client after import was successful
            if(document.location.search.indexOf("afterImport=yes")!=-1)
            {
              // if they have already import the Accountant's Changes we don't want to show "Import" either
              document.getElementById("header_client_before_import").style.display = "none";
              document.getElementById("header_client_import_failed").style.display = "none";
              document.getElementById("Import").style.display = "none";
              document.getElementById("Restore").style.display="none";
              return;
            }
            // Import Failed
            if(document.location.search.indexOf("ImportFailed=yes")!=-1)
            {
              // if they have already import the Accountant's Changes we don't want to show "Import" either
              document.getElementById("header_client_before_import").style.display = "none";
              document.getElementById("header_client_after_import").style.display = "none";
              document.getElementById("Import").style.display = "none";
              document.getElementById("Close").style.display="none";
              return;
            }
            // This is the report before import has happened
            document.getElementById("header_client_after_import").style.display = "none";
            document.getElementById("header_client_import_failed").style.display = "none";
            document.getElementById("Restore").style.display="none";
          }

          function HideClientView()
          {
            // show the correct header for the Accountant
            // we don't want to show any client views, no restore or import button either
            document.getElementById("header_client_before_import").style.display = "none";
            document.getElementById("header_client_after_import").style.display = "none";
            document.getElementById("header_client_import_failed").style.display = "none";
            document.getElementById("Import").style.display = "none";
            document.getElementById("Restore").style.display = "none";
          }

          // if the user is clicking on the + or - expand or collapse the transaction view
          function toggleVisibility() {

            var theImage = this;
            var theRowName = this.id.replace('_image', '_comment');
            var theRow = document.getElementById(theRowName);

            if (theRow.style.display=="none") {
              theRow.style.display = "";
              theImage.src = pathToImages + "Collapse.gif";
            } else {
              theRow.style.display = "none";
              theImage.src = pathToImages + "Expand.gif";
            }
          }

          // insert extra cells in the table to accomodate the + and - icons for whichever rows they are needed for
          function insertExtraCells(theTable) {

            // get reference to all of the tbody's, thead's, and tfoot's
            var tbodies = theTable.getElementsByTagName('tbody');
            var theads = theTable.getElementsByTagName('thead');
            var tfoots = theTable.getElementsByTagName('tfoot');

            insertInto(theads, 'th');
            insertInto(tbodies, 'td');
            insertInto(tfoots, 'td');

          }

          // add the extra cells into all the different table element types
          function insertInto(parentCollections, typeOfCell) {
            // loop through all of the parent collections passed in
            for (var m = 0; m < parentCollections.length; m++) {

              // get all of the rows for each collection
              var trs = parentCollections[m].getElementsByTagName('tr');

              // loop through each of the rows
              for (i=0;i < trs.length;i++) {
                if (trs[i].getAttributeNode('class').value.indexOf('NoExtraCells')==-1) {
                  // create a new cell
                  var theNewCell = document.createElement(typeOfCell);

                  // insert the new cell before the first child
                  var row = trs[i];
                  var cells = trs[i].getElementsByTagName(typeOfCell);
                  trs[i].insertBefore(theNewCell, cells[0]);
                }
              }
            }
          }

          // lets initalize the Accountant's changes, identify the transactions that need to collapsed, for those
          // that do not have much data associated with them, leave the summary line alone without the + next to it.
          function initCollapsingRows()
          {
            if (!W3CDOM) return;

            pathToImages = document.getElementById('location').href;
            var index = pathToImages.lastIndexOf('\\');

            var substring = pathToImages.substring(0,index+1);

            pathToImages = substring;


            // we are trying to view the change report on the client side, so hide the Accountant view
            if (document.location.search.indexOf("isClient=yes")!=-1)
            {
              HideAccountantView();
              document.title = "Import Accountant's Changes";
            }
            // we are trying to view the change report on the Accountant's side, so hide the client view
            else
            {
              HideClientView();
              document.title = "View / Export Changes for Client";
            }

            // get a list of all the tables in the report
            var tables = document.getElementsByTagName('table');

            // if there aren't any tables exit
            if (tables.length==0) { return; }


            // if the table has a class
            if (hasClass(tables[0])) {

              // if that class is "collapsible"
              if (tables[0].getAttributeNode('class').value.indexOf('collapsible')!=-1) {

              // since we are adding a graphic for expanding and collapsing
              // the rows in the first column of the table, we need to add
              // an extra column everywhere
              insertExtraCells(tables[0]);

              var tbodies = tables[0].getElementsByTagName('tbody');

              // iterate through the bodies...
              //for (var h = 0; h < tbodies.length; h++) {

              // find all the <tr>; elements...
              var trs = tbodies[0].getElementsByTagName('tr');

              // ... and iterate through them
              for (var i = 0; i < trs.length; i++) {
                ImageIds[i] = "placeholder";
                if (trs[i].getAttributeNode('class').value =="collapse") {
                  // Get a reference to the TD's
                  var td = trs[i].getElementsByTagName('td')[0];

                  // Assign a related unique ID to the next row where the comment is
                  // This is the row that will be expanded and collapsed
                  var theRowName = "row_" + i + "_comment";
                  trs[i+1].id = theRowName;
                  trs[i+1].style.display = "none";


                  // Create the new image object
                  var theNewImage = document.createElement('img');
                  var theNewImageName = "row_" + i + "_image";
                  theNewImage.id = theNewImageName;
                  theNewImage.src = pathToImages + "Expand.gif";
                  theNewImage.width = 11;
                  theNewImage.height = 11;
                  //theNewImage.style.margin = "5px";
                  theNewImage.style.cursor = "pointer";

                  // Save the imageId in an array for expand/collapse functionality
                  ImageIds[i] = theNewImageName;

                  // Add "onclick" event to the image that expands and collapses the next row
                  theNewImage.onclick = toggleVisibility;

                  // Insert an image into the document tree inside the first TD
                  td.appendChild(theNewImage);
                  td.style.width="1%"

                }

                // for all the rows that have errors associated with them we need to add a warning icon
                if (trs[i].getAttributeNode('class').value =="error")
                {
                  // Get a reference to the TD's
                  var td = trs[i].getElementsByTagName('td')[0];

                  // Create the new image object
                  var theNewImage = document.createElement('img');
                  theNewImage.src = pathToImages + "Warning.gif";
                  theNewImage.width = 13;
                  theNewImage.height = 13;
                  //theNewImage.style.margin = "5px";
                  theNewImage.style.cursor = "pointer";

                  // Insert an image into the document tree inside the first TD
                  td.appendChild(theNewImage);
                  td.style.width="1%"

                  var theNewCell = document.createElement('td');
                  var cells = trs[i].getElementsByTagName('td');
                  trs[i].insertBefore(theNewCell, cells[0]);
                  trs[i].insertBefore(theNewCell, cells[0]);
                  trs[i].insertBefore(theNewCell, cells[0]);

                 }
              }
              }
              }
          }
          ]]>
        </script>
       
      </head>
      <body>
        <!-- This is the header the accountant will see when he tries to export changes-->
        <div id="header_acct">
          <h1>Accountant's Changes</h1>
          <p class="text">
            <b>Review</b> your changes and <b>add a note</b> for your client. When your changes are complete you will <b>export the changes</b> to a file and send it to your client.<br/>
            Your client will import these changes back into his or her company file.
            The <b>dividing date</b> is  <b>
              <xsl:copy-of select="$DividingDate"/>.<br/><br/>
            </b>
            <b>Note for Client:</b>
          </p>
          <div id="note">
            <textarea id="acct_note" name="acct_note" rows="3">
              <xsl:copy-of select="$Note"/>
            </textarea>
            <button id ="SaveNote" onclick ="SaveNote()">
              <b>Save Note</b>
            </button>
            <textarea id="acct_note_print" rows="3">
              <xsl:copy-of select="$Note"/>
            </textarea>
          </div>
        </div>
        <!-- This is the header the client will see before they import the accountant's changes-->
        <div id="header_client_before_import">
          <h1>Accountant's Changes (not yet imported)</h1>
          <p class="text">
            Please <b>review and print</b> the changes from your accountant for your records. Select <b>Import</b> to bring these changes into your file. QuickBooks will back up your company data before importing your accountant's changes.
            <br/><br/>
            <b>Accountant's Note:</b>
          </p>
          <div id="note">
            <textarea id="client"  rows="3" readonly="true">
              <xsl:copy-of select="$Note"/>
            </textarea>
            <textarea id="acct_note_print1"  rows="3">
              <xsl:copy-of select="$Note"/>
            </textarea>
          </div>
        </div>
        <!-- This is the header the client will see after they import the accountant's changes if it was successful-->
        <div id="header_client_after_import">
          <h1>Import Results</h1>
          <p class="text">
            <b>Your accountant's changes have been imported. Please check for any warnings marked by a yellow triangle in the import results.</b> <br/>
            For a permanent record of what was imported please select Print.
            <br/><br/>
            <b>Accountant's Note:</b>
          </p>
          <div id="note">
            <textarea id="client" rows="3" readonly="true">
              <xsl:copy-of select="$Note"/>
            </textarea>
            <textarea id="acct_note_print2"  rows="3">
              <xsl:copy-of select="$Note"/>
            </textarea>
            
          </div>
        </div>

        <!-- This is the header the client will see after they import the accountant's changes if the import failed-->
        <div id="header_client_import_failed">
          <h1>Import Failed</h1>
          <p class="text">
            <b>A problem was encountered when trying to import your Accountant's Changes.</b> <br/>
            Please <b>restore the backup</b> that was created before import. You can also print out your Accountant's Changes if you decide
            to enter them manually.
            <br/><br/>
            <b>Accountant's Note:</b>
          </p>
          <div id="note">
            <textarea id="client" rows="3" readonly="true">
              <xsl:copy-of select="$Note"/>
            </textarea>
            <textarea id="acct_note_print3" rows="3">
              <xsl:copy-of select="$Note"/>
            </textarea>
          </div>
        </div>

        <div id="content">
          <!-- Create the master outer table that hold all the detail and summary information -->
          <table class="collapsible">
            <thead>
              <tr>
                <th></th>
                <th>Action</th>
                <th>Type</th>
                <th>Num</th>
                <th>Date</th>
                <th>Name</th>
                <th>Account</th>
                <th>Memo</th>
                <th>Amount</th>
              </tr>
            </thead>
            <tbody>
              <xsl:apply-templates/>
              <hr></hr>
            </tbody>
          </table>
        </div>
        <!-- All the buttons that are visible on the report. Code in the JavaScript will dynamically determine
             what to display based on who is viewing the report( client or accountant)
        -->
        <div id="footer">
          <p>
            <div class="buttonsLeft">
              <button onclick="ExpandAll()">Expand All</button>
              <button onclick="CollapseAll()">Collapse All</button>
            </div>
            <div class="buttonsRight">
              <button onclick ="PrintDetails()">Print</button>
            </div>
            <div class="buttonsCenter">
              <button id="Import" onclick="Import()">
                <b>Import</b>
              </button>
              <button id ="Export" onclick="Export()">
                <b>Export</b>
              </button>
              <button id ="Restore" onclick="Restore()">
                <b>Restore</b>
              </button>
              <button id ="Close" onclick ="CloseBrowser()">Close</button>
              <button onClick="GetHelp()">Help</button>
            </div>
          </p>
        </div>
      </body>
    </html>
  </xsl:template>

  <!-- Display any severe SDK messages-->
  <xsl:template match ="QBXML/AFXApplyMsg">
    <tr class ="error" >
      <td class ="error" colspan="8">
        <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
      </td>
    </tr>
  </xsl:template>
  <!-- 
        Displaying summary lines and detail lines for all the various transaction adds, edits and deletes
        If a row is tagged as "collapse" the row and the data cells contained right after that row will be 
        collapsed and the main row will have the + sign added to it. All details of a transaction are presented in 
        the very next row to provide collapse and expand functionality. For more details on the various class and id
        functions, please refer to style.css and CollapsibleRows.js
  -->

  <!-- Template to display an AccountAdd and a Account Mod-->
  <xsl:template match="QBXML/QBXMLMsgsRq/AccountAddRq/AccountAdd | QBXML/QBXMLMsgsRq/AccountModRq/AccountMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/AccountRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'AccountAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'AccountMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'AccountRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Account</td>
      <td>
      </td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Number:</b>
              </td>
              <td class="setWidth">
                <xsl:choose>
                  <xsl:when test="AFXInfo/AccountNumber">
                    <xsl:value-of select="AFXInfo/AccountNumber"/>
                  </xsl:when>
                  <xsl:otherwise>
                    <xsl:value-of select="AccountNumber"/>
                  </xsl:otherwise>
                </xsl:choose>
              </td>
              <td class="setWidth">
                <b>Account Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Account Type:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="AccountType"/>
              </td>
              <td class="setWidth">
                <b>Sub Account Of:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
            <tr>
			  <td class="setWidth">
			  <!-- QB overloads BankNumber field - change label to match
					the one used in the UI for each account type -->
			    <xsl:choose>
				  <xsl:when test="AccountType = 'Bank' or 
				    AccountType = 'OtherCurrentAsset' or 
				    AccountType = 'OtherAsset' or
				    AccountType = 'CreditCard' or
				    AccountType = 'OtherCurrentLiability' or
				    AccountType = 'LongTermLiability' ">
				    <b>Account No.:</b>
				  </xsl:when>
				  <xsl:otherwise>
			        <b>Note:</b>				
			      </xsl:otherwise>
				</xsl:choose>			  
			  </td>
			  <td class="setWidth">
                <xsl:value-of select="BankNumber"/>
			  </td>
			</tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to display a journal entry Add and Mod -->
  <xsl:template match="QBXML/QBXMLMsgsRq/JournalEntryAddRq/JournalEntryAdd | QBXML/QBXMLMsgsRq/JournalEntryModRq/JournalEntryMod | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/JournalEntryRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/JournalEntryRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'JournalEntryAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'JournalEntryMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <td>Journal Entry</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
      </td>
      <td></td>
      <td>
      </td>
      <td>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
              </td>
              <td class ="setWidth">
              </td>
              <td class ="setWidth"></td>
              <td class ="setWidth"></td>
            </tr>
            <tr>
              <td colspan="8">
                <xsl:if test="JournalCreditLine| JournalDebitLine | JournalLineMod">
                  <xsl:call-template name="DrawJournalLines"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to draw the Credit and Debit lines of a JE-->
  <!-- Draw the table that contains the ExpenseLine Items-->
  <xsl:template name="DrawJournalLines">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Account</b>
            </td>
            <td>
              <b>Debit</b>
            </td>
            <td>
              <b>Credit</b>
            </td>
            <td>
              <b>Memo</b>
            </td>
            <td>
              <b>Name</b>
            </td>
            <td>
              <b>Billable</b>
            </td>
            <td>
               <b>Class</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="JournalDebitLine | JournalCreditLine | JournalLineMod"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Match expense line add and mod details -->
  <xsl:template match="JournalDebitLine | JournalCreditLine | JournalLineMod">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <xsl:if test="name(.) = 'JournalCreditLine'">
        <td></td>
        <td>
          <xsl:value-of select ="Amount"/>
        </td>
        
      </xsl:if>
      <xsl:if test="JournalLineType =
        'Credit'">
        <td></td>
        <td>
          <xsl:value-of select ="Amount"/>
        </td>
      </xsl:if>
      <xsl:if test="name(.) = 'JournalDebitLine'">

        <td>
          <xsl:value-of select ="Amount"/>
        </td>
        <Td></Td>
      </xsl:if>
      <xsl:if test="JournalLineType =
        'Debit'">
        <td>
          <xsl:value-of select ="Amount"/>
        </td>
        <td></td>
      </xsl:if>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="EntityRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="BillableStatus"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Template to display a ClassAdd and a class Mod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ClassAddRq/ClassAdd |QBXML/QBXMLMsgsRq/ClassModRq/ClassMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ClassRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ClassAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ClassMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ClassRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Class</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
                <b>Sub Class Of:</b>
              </td>
              <td class =" setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to display an EmployeeAdd and a EmployeeMod and a EmployeeDel -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/EmployeeAddRq/EmployeeAdd | QBXML/QBXMLMsgsRq/EmployeeModRq/EmployeeMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/EmployeeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'EmployeeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'EmployeeMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'EmployeeRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Employee</td>
      <td></td>
      <td></td>
      <td>
        <xsl:if test="FirstName">
          <xsl:value-of select="FirstName"/>
          <xsl:text> </xsl:text>
        </xsl:if>
        <xsl:if test="MiddleName">
          <xsl:value-of select="MiddleName"/>
          <xsl:text> </xsl:text>
        </xsl:if>
        <xsl:if test="LastName">
          <xsl:value-of select="LastName"/>
        </xsl:if>
      </td>
      <td></td>
      <td>
        <xsl:value-of select="Notes"/>
      </td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Salutation:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Salutation"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Print Name As:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PrintAs"/>
              </td>
              <td class ="setWidth">
                <b>Employee Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="EmployeeAddress">
                  <xsl:call-template name="DisplayEmployeeAddress"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Phone"/>
              </td>
              <td class ="setWidth">
                <b>Pager:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Pager"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Alt Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltPhone"/>
              </td>
              <td class ="setWidth">
                <b>Fax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Fax"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Mobile:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Mobile"/>
              </td>
              <td class ="setWidth">
                <b>PagerPIN:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PagerPIN"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Birth Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="BirthDate">
                  <xsl:value-of select="substring(BirthDate,6,2)"/>/
                  <xsl:value-of select="substring(BirthDate,9,2)"/>/
                  <xsl:value-of select="substring(BirthDate,1,4)"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Email:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Email"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Employee Type:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="EmployeeType"/>
              </td>
              <td class ="setWidth">
                <b>Gender:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Gender"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Hired Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="HiredDate">
                  <xsl:value-of select="substring(HiredDate,6,2)"/>/
                  <xsl:value-of select="substring(HiredDate,9,2)"/>/
                  <xsl:value-of select="substring(HiredDate,1,4)"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Released Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ReleasedDate">
                  <xsl:value-of select="substring(ReleasedDate,6,2)"/>/
                  <xsl:value-of select="substring(ReleasedDate,9,2)"/>/
                  <xsl:value-of select="substring(ReleasedDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Account Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AccountNumber"/>
              </td>
              <td class ="setWidth">
                <b>Social Security Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SSN"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match an ItemFixed Asset Add and an ItemFixedAssetMod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ItemFixedAssetAddRq/ItemFixedAssetAdd | QBXML/QBXMLMsgsRq/ItemFixedAssetModRq/ItemFixedAssetMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemFixedAssetRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemFixedAssetAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemFixedAssetMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemFixedAssetRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Fixed Asset Item</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="AssetAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AssetDesc"/>
      </td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Acquired As:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="AcquiredAs"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Purchase Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PurchaseDesc"/>
              </td>
              <td class="setWidth">
                <b>Purchase Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="PurchaseDate">
                  <xsl:value-of select="substring(PurchaseDate,6,2)"/>/
                  <xsl:value-of select="substring(PurchaseDate,9,2)"/>/
                  <xsl:value-of select="substring(PurchaseDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Vendor/Payee Name:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="VendorOrPayeeName"/>
              </td>
              <td class="setWidth">
                <b>Asset Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="AssetAccountRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Purchase Cost:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PurchaseCost"/>
              </td>
              <td class="setWidth">
              </td>
              <td class="setWidth">
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Sales Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="FixedAssetSalesInfo/SalesDesc"/>
                <xsl:value-of select="FixedAssetSalesInfoMod/SalesDesc"/>
              </td>
              <td class="setWidth">
                <b>Sales Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="FixedAssetSalesInfo/SalesDate">
                  <xsl:value-of select="substring(FixedAssetSalesInfo/SalesDate,6,2)"/>/
                  <xsl:value-of select="substring(FixedAssetSalesInfo/SalesDate,9,2)"/>/
                  <xsl:value-of select="substring(FixedAssetSalesInfo/SalesDate,1,4)"/>
                </xsl:if>
                <xsl:if test="FixedAssetSalesInfoMod/SalesDate">
                  <xsl:value-of select="substring(FixedAssetSalesInfoMod/SalesDate,6,2)"/>/
                  <xsl:value-of select="substring(FixedAssetSalesInfoMod/SalesDate,9,2)"/>/
                  <xsl:value-of select="substring(FixedAssetSalesInfoMod/SalesDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Sales Price:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="FixedAssetSalesInfo/SalesPrice"/>
                <xsl:value-of select="FixedAssetSalesInfoMod/SalesPrice"/>
              </td>
              <td class="setWidth">
                <b>Sales Expense:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="FixedAssetSalesInfo/SalesExpense"/>
                <xsl:value-of select="FixedAssetSalesInfoMod/SalesExpense"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Asset Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="AssetDesc"/>
              </td>
              <td class="setWidth">
                <b>Location:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="Location"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>PO Number:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PONumber"/>
              </td>
              <td class="setWidth">
                <b>Serial Number:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SerialNumber"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Warranty Expiration Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="WarrantyExpDate">
                  <xsl:value-of select="substring(WarrantyExpDate,6,2)"/>/
                  <xsl:value-of select="substring(WarrantyExpDate,9,2)"/>/
                  <xsl:value-of select="substring(WarrantyExpDate,1,4)"/>
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Notes:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="Notes"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a PriceLevelAdd and a PriceLevelMod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/PriceLevelAddRq/PriceLevelAdd | QBXML/QBXMLMsgsRq/PriceLevelModRq/PriceLevelMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/PriceLevelRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'PriceLevelAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'PriceLevelMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'PriceLevelRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Price Level</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td>
     <xsl:if test="PriceLevelFixedPercentage">
          <xsl:value-of select="PriceLevelFixedPercentage"/> %
        </xsl:if>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth"></td>
              <td class =" setWidth"></td>
            </tr>
            <tr>
              <td colspan="8">
                <xsl:if test="PriceLevelPerItem">
                  <xsl:call-template name="DrawPriceLevelPerItem"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Draw the table that contains the Inventory Assembly Items -->
  <xsl:template name="DrawPriceLevelPerItem">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Item Name</b>
            </td>
            <td>
              <b>Custom Price</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="PriceLevelPerItem"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Items that make up this group -->
  <xsl:template match="PriceLevelPerItem">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="ItemRef/FullName"/>
      </td>
      <td>
        <xsl:if test="CustomPricePercent">
          <xsl:value-of select="CustomPricePercent"/>%
        </xsl:if>
        <xsl:value-of select="CustomPrice"/>
      </td>
    </tr>
  </xsl:template>
  
  <!-- Sales Tax Code Add template, no mod support -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/SalesTaxCodeAddRq/SalesTaxCodeAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/SalesTaxCodeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'SalesTaxCodeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'SalesTaxCodeRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Sales Tax Code</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td></td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Taxable:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsTaxable = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsTaxable = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match an OtherNameAdd and a OtherNameMod -->
  <xsl:template match="QBXML/QBXMLMsgsRq/OtherNameAddRq/OtherNameAdd | QBXML/QBXMLMsgsRq/OtherNameModRq/OtherNameMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/OtherNameRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'OtherNameAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'OtherNameMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'OtherNameRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Other Name</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Active:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Company Name:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CompanyName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Salutation:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Salutation"/>
              </td>
              <td class ="setWidth">
                <b>Other Name Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="OtherNameAddress">
                  <xsl:call-template name="DisplayOtherNameAddress"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Fax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Fax"/>
              </td>
              <td class ="setWidth">
                <b>Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Phone"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Alt Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltPhone"/>
              </td>
              <td class ="setWidth">
                <b>Account Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AccountNumber"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Email:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Email"/>
              </td>
              <td class ="setWidth">
                <b>Contact:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Contact"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Alt Contact:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltContact"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a SalesRepAdd and Mod-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/SalesRepAddRq/SalesRepAdd | QBXML/QBXMLMsgsRq/SalesRepModRq/SalesRepMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/SalesRepRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'SalesRepAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'SalesRepMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'SalesRepRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Sales Rep</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Initial"/>
      </td>
      <td>
        <xsl:value-of select="SalesRepEntityRef/FullName"/>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="4">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth"></td>
              <td class =" setWidth"></td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Customer Type Add Template - We don't support Mod of Customer Type -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/CustomerTypeAddRq/CustomerTypeAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/CustomerTypeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'CustomerTypeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'CustomerTypeRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Customer Type</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
                <b>Sub Type Of:</b>
              </td>
              <td class =" setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a VendorType add , we don't support VendorType Mod-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/VendorTypeAddRq/VendorTypeAdd |QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/VendorTypeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'VendorTypeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'VendorTypeRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Vendor Type</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
                <b>Sub Type Of:</b>
              </td>
              <td class =" setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a JobTypeAdd, we don't support JobType Mod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/JobTypeAddRq/JobTypeAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/JobTypeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'JobTypeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'JobTypeRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Job Type</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
                <b>Sub Type Of:</b>
              </td>
              <td class =" setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!--Template to match a StandardTermsAdd, we dont' support Standard Terms Mod-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/StandardTermsAddRq/StandardTermsAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/StandardTermsRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'StandardTermsAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'StandardTermsRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Standard Terms</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td>
        <xsl:if test ="DiscountPct">
          <xsl:value-of select="DiscountPct"/> %
        </xsl:if>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Standard Due Days:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="StdDueDays"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Standard Discount Days:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="StdDiscountDays"/>
              </td>
              <td class="setWidth">
                <b>Discount Percentage:</b>
              </td>
              <td class="setWidth">
                <xsl:if test ="DiscountPct">
                <xsl:value-of select="DiscountPct"/>%
                  </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a DateDrivenTermsAdd, we don't support DateDrivenTerms Mod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/DateDrivenTermsAddRq/DateDrivenTermsAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/DateDrivenTermsRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'DateDrivenTermsAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'DateDrivenTermsRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Date Driven Terms</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td>
        <xsl:if test ="DiscountPct">
          <xsl:value-of select="DiscountPct"/> %
        </xsl:if>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Day of Month Due:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="DayOfMonthDue"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Due Next Month Days:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="DueNextMonthDays"/>
              </td>
              <td class="setWidth">
                <b>Discount Day of Month:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="DiscountDayOfMonth"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Discount Percent:</b>
              </td>
              <td class="setWidth">
                <xsl:if test ="DiscountPct">
                  <xsl:value-of select="DiscountPct"/> %
                </xsl:if>
              </td>
              <td class="setWidth">
              </td>
              <td class="setWidth">
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a PaymentMethodAdd, we don't support mods for PaymentMethod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/PaymentMethodAddRq/PaymentMethodAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/PaymentMethodRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'PaymentMethodAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'PaymentMethodRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Payment Method</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
              </td>
              <td class =" setWidth">
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a ShipMethodAdd, we don't support mods -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ShipMethodAddRq/ShipMethodAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ShipMethodRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ShipMethodAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ShipMethodRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Ship Method</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
              </td>
              <td class =" setWidth">
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a ToDoAdd, no SDK support for ToDo Mods -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ToDoAddRq/ToDoAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ToDoRet">
    <tr class ="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ToDoAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ToDoRet'">
        <td>Delete</td>
      </xsl:if>
      <td>To Do</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Notes"/>
      </td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Notes:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="Notes"/>
              </td>
              <td class="setWidth">
                <b>Is Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Is Done:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsDone = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsDone = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Reminder Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="ReminderDate">
                  <xsl:value-of select="substring(ReminderDate,6,2)"/>/
                  <xsl:value-of select="substring(ReminderDate,9,2)"/>/
                  <xsl:value-of select="substring(ReminderDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a Customer Add -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/CustomerAddRq/CustomerAdd | QBXML/QBXMLMsgsRq/CustomerModRq/CustomerMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/CustomerRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'CustomerAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'CustomerMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'CustomerRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Customer</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="CompanyName"/>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Company Name:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CompanyName"/>
              </td>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Bill Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="BillAddress">
                  <xsl:call-template name="DisplayBillAddress"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Ship Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipAddress">
                  <xsl:call-template name="DisplayShipAddress"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Phone"/>
              </td>
              <td class ="setWidth">
                <b>Alt Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltPhone"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Fax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Fax"/>
              </td>
              <td class ="setWidth">
                <b>Email:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Email"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Contact:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Contact"/>
              </td>
              <td class ="setWidth">
                <b>Alt Contact:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltContact"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Customer Type:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerTypeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Terms:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TermsRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Sales Rep:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SalesRepRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Sales Tax Code:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SalesTaxCodeRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Resale Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ResaleNumber"/>
              </td>
              <td class ="setWidth">
                <b>Account Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AccountNumber"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Credit Limit:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditLimit"/>
              </td>
              <td class ="setWidth">
                <b>Preferred Payment Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PreferredPaymentMethodRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Price Level:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PriceLevelRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Job Status:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="JobStatus"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Job Start Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="JobStartDate">
                  <xsl:value-of select="substring(JobStartDate,6,2)"/>/
                  <xsl:value-of select="substring(JobStartDate,9,2)"/>/
                  <xsl:value-of select="substring(JobStartDate,1,4)"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Job Projected End Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="JobProjectedEndDate">
                  <xsl:value-of select="substring(JobProjectedEndDate,6,2)"/>/
                  <xsl:value-of select="substring(JobProjectedEndDate,9,2)"/>/
                  <xsl:value-of select="substring(JobProjectedEndDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Job End Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="JobEndDate">
                  <xsl:value-of select="substring(JobEndDate,6,2)"/>/
                  <xsl:value-of select="substring(JobEndDate,9,2)"/>/
                  <xsl:value-of select="substring(JobEndDate,1,4)"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Job Description:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="JobDesc"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Job Type:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="JobTypeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Notes:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Notes"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Credit Card Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditCardInfo/CreditCardNumber"/>
              </td>
              <td class ="setWidth">
                <b>Expiration Month:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditCardInfo/ExpirationMonth"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Expiration Year:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditCardInfo/ExpirationYear"/>
              </td>
              <td class ="setWidth">
                <b>Name On Card:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditCardInfo/NameOnCard"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Credit Card Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditCardInfo/CreditCardAddress"/>
              </td>
              <td class ="setWidth">
                <b>Credit Card Postal Code:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditCardInfo/CreditCardPostalCode"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a VendorAdd -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/VendorAddRq/VendorAdd | QBXML/QBXMLMsgsRq/VendorModRq/VendorMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/VendorRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'VendorAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'VendorMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'VendorRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Vendor</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Company Name:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CompanyName"/>
              </td>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Vendor Address:</b>
              </td>
                <td class ="setWidth">
                  <xsl:if test="VendorAddress">
                    <xsl:call-template name="DisplayVendorAddress"/>
                  </xsl:if>
                </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Phone"/>
              </td>
              <td class ="setWidth">
                <b>Alt Phone:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltPhone"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Fax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Fax"/>
              </td>
              <td class ="setWidth">
                <b>Email:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Email"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Contact:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Contact"/>
              </td>
              <td class ="setWidth">
                <b>Alt Contact:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AltContact"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Name On Check:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="NameOnCheck"/>
              </td>
              <td class ="setWidth">
                <b>Account Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="AccountNumber"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Vendor Type:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="VendorTypeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Terms:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TermsRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>CreditLimit:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CreditLimit"/>
              </td>
              <td class ="setWidth">
                <b>Vendor Tax Identification:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="VendorTaxIdent"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Eligible for 1099:</b>
              </td>
              <td>
                <xsl:if test="IsVendorEligibleFor1099 = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsVendorEligibleFor1099 = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Notes:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Notes"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a CustomerMsgAdd, no SDK support for Mod-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/CustomerMsgAddRq/CustomerMsgAdd | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/CustomerMsgRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'CustomerMsgAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'CustomerMsgRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Customer Message</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
              </td>
              <td class =" setWidth">
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to add a DepositAdd -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/DepositAddRq/DepositAdd | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/DepositRet">
    <tr class ="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.)='DepositAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.)='DepositRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Deposit</td>
      <td>

      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>

      </td>
      <td>
        <xsl:value-of select="DepositToAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/DepositTotal"/>
        <xsl:value-of select="DepositTotal"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Cash Back Account:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CashBackInfoAdd/AccountRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Cash Back Amount:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CashBackInfoAdd/Amount"/>
              </td>
            </tr>
            <tr>
              <td colspan="8">
                <xsl:if test="DepositLineAdd | DepositLineRet | AFXDupTxnInfo/DepositLineAdd">
                  <xsl:call-template name="DrawDepositHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>


  <!-- Draw the table that contains the ExpenseLine Items-->
  <xsl:template name="DrawDepositHeader">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Txn Type</b>
            </td>
            <td>
              <b>Received From</b>
            </td>
            <td>
              <b>From Account</b>
            </td>
            <td>
              <b>Memo</b>
            </td>
            <td>
              <b>Check No</b>
            </td>
            <td>
              <b>Payment Method</b>
            </td>
            <td>
              <b>Class</b>
            </td>
            <td>
              <b>Amount</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="DepositLineAdd | DepositLineRet | AFXDupTxnInfo/DepositLineAdd"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Template to match an Invoice Add and Delete --> 
  <xsl:template match=" QBXML/QBXMLMsgsRq/InvoiceAddRq/InvoiceAdd | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/InvoiceRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/InvoiceRet">
    <tr class ="collapse">
      <td>
        <xsl:number level="any"  count="QBXML"  format="1. "/>
      </td>
      <xsl:if test="name(.) = 'InvoiceAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <td>Invoice</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ARAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:variable name="TotalAmount">
          <xsl:if test="AFXInfo/BalanceRemaining">
          <xsl:value-of select="number(AFXInfo/BalanceRemaining) + ((-1)*number(AFXInfo/AppliedAmount))"/>
          </xsl:if>
          <xsl:if test="BalanceRemaining">
            <xsl:value-of select="number(BalanceRemaining) + ((-1)*number(AppliedAmount))"/>
          </xsl:if>
        </xsl:variable>
        <xsl:value-of select ="format-number($TotalAmount, '#.00')"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Template:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TemplateRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Class:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ClassRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Bill Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="BillAddress">
                  <xsl:call-template name="DisplayBillAddress"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Ship Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipAddress">
                  <xsl:call-template name="DisplayShipAddress"/>
                </xsl:if>
              </td>
            </tr>

            <tr>
              <td class ="setWidth">
                <b>P.O Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PONumber"/>
              </td>
              <td class ="setWidth">
                <b>Terms:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TermsRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Pending:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsPending = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsPending = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Due Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="DueDate">
                  <xsl:value-of select="substring(DueDate,6,2)"/>/
                  <xsl:value-of select="substring(DueDate,9,2)"/>/
                  <xsl:value-of select="substring(DueDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Ship Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipDate">
                  <xsl:value-of select="substring(ShipDate,6,2)"/>/
                  <xsl:value-of select="substring(ShipDate,9,2)"/>/
                  <xsl:value-of select="substring(ShipDate,1,4)"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Item Sales Tax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ItemSalesTaxRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Customer Sales Tax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerSalesTaxCodeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Sales Representative:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SalesRepRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Ship Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ShipMethodRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>FOB:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="FOB"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Customer Message:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerMsgRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>To be Printed:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsToBePrinted = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsToBePrinted = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>

            <!-- Table to display the Expense Line -->
            <tr>
              <td colspan="8">
                <table class="ExpenseItem">
                  <tr class="NoExtraCells">
                    <td>
                      <b>Item</b>
                    </td>
                    <td>
                      <b>Description</b>
                    </td>
                    <td>
                      <b>Quantity</b>
                    </td>
                    <td>
                      <b>Rate</b>
                    </td>
                    <td>
                      <b>Amount</b>
                    </td>
                    <td>
                      <b>Class</b>
                    </td>
                    <td>
                      <b>SalesTaxCode</b>
                    </td>
                  </tr>
                  <tbody>
                    <xsl:apply-templates select="InvoiceLineAdd | InvoiceLineGroupAdd | InvoiceLineRet | InvoiceLineGroupRet"/>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match an Invoice Mod  -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/InvoiceModRq/InvoiceMod">
    <tr class ="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <td>Mod</td>
      <td>Invoice</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ARAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:variable name="TotalAmount">
          <xsl:value-of select="number(AFXInfo/BalanceRemaining) + ((-1)*number(AFXInfo/AppliedAmount))"/>
        </xsl:variable>
        <xsl:value-of select ="format-number($TotalAmount, '#.00')"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Template:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TemplateRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Class:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ClassRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Bill Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="BillAddress">
                  <xsl:call-template name="DisplayBillAddress"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Ship Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipAddress">
                  <xsl:call-template name="DisplayShipAddress"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>P.O Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PONumber"/>
              </td>
              <td class ="setWidth">
                <b>Terms:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TermsRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Pending:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsPending = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsPending = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Due Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="DueDate">
                  <xsl:value-of select="substring(DueDate,6,2)"/>/
                  <xsl:value-of select="substring(DueDate,9,2)"/>/
                  <xsl:value-of select="substring(DueDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Ship Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipDate">
                  <xsl:value-of select="substring(ShipDate,6,2)"/>/
                  <xsl:value-of select="substring(ShipDate,9,2)"/>/
                  <xsl:value-of select="substring(ShipDate,1,4)"/>
                </xsl:if>

              </td>
              <td class ="setWidth">
                <b>Item Sales Tax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ItemSalesTaxRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Customer Sales Tax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerSalesTaxCodeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Sales Representative:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SalesRepRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Ship Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ShipMethodRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>FOB:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="FOB"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Customer Message:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerMsgRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>To be Printed:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsToBePrinted = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsToBePrinted = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>

            <!-- Table to display the Expense Line -->
            <tr>
              <td colspan="8">
                <table class="ExpenseItem">
                  <tr class="NoExtraCells">
                    <td>
                      <b>Item</b>
                    </td>
                    <td>
                      <b>Description</b>
                    </td>
                    <td>
                      <b>Quantity</b>
                    </td>
                    <td>
                      <b>Rate</b>
                    </td>
                    <td>
                      <b>Amount</b>
                    </td>
                    <td>
                      <b>Class</b>
                    </td>
                    <td>
                      <b>SalesTaxCode</b>
                    </td>
                  </tr>
                  <tbody>
                    <xsl:apply-templates select="InvoiceLineMod | InvoiceLineGroupMod"/>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a Receive Payments Add -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ReceivePaymentAddRq/ReceivePaymentAdd |QBXML/QBXMLMsgsRq/ReceivePaymentModRq/ReceivePaymentMod| QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/ReceivePaymentRet">
    <tr class ="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ReceivePaymentAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ReceivePaymentRet'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ReceivePaymentMod'">
        <td>Mod</td>
      </xsl:if>
      <td>Receive Payment</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ARAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="TotalAmount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Payment Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PaymentMethodRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Deposit To Account:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="DepositToAccountRef/FullName"/>
              </td>
            </tr>

            <!-- Table to display the Transactions -->
            <tr>
              <td colspan="5">
                <xsl:if test="AppliedToTxnAdd | AppliedToTxnMod | AppliedToTxnRet | AFXDupTxnInfo/AppliedToTxnAdd | AFXDupTxnInfo/AppliedToTxnMod">
                  <xsl:call-template name="DrawTransactionHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Draw the table that contains the Transaction Line Items-->
  <xsl:template name="DrawTransactionHeader">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Txn Type</b>
            </td>
            <td>
              <b>Txn Date</b>
            </td>
            <td>
              <b>Ref Number</b>
            </td>
            <td>
              <b>Payment Amount</b>
            </td>
            <td>
              <b>Balance Remaining</b>
            </td>
            <td>
              <b>Discount Amount</b>
            </td>
            <td>
              <b>Discount Account</b>
            </td>
            <!-- Need to deal with the Set Credits fields here too -->
          </tr>
          <tbody>
            <!-- This template should also take care of any credits that are part of the transaction -->
            <xsl:apply-templates select="AppliedToTxnAdd | AppliedToTxnMod | AppliedToTxnRet | AFXDupTxnInfo/AppliedToTxnAdd | AFXDupTxnInfo/AppliedToTxnMod"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Match transaction line add and mod details -->
  <xsl:template match="AppliedToTxnAdd | AppliedToTxnMod | AppliedToTxnRet | AFXDupTxnInfo/AppliedToTxnAdd | AFXDupTxnInfo/AppliedToTxnMod">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="AFXInfo/TxnType"/>
        <xsl:value-of select="TxnType"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
        <xsl:if test="AFXInfo/TxnDate">
          <xsl:value-of select="substring(AFXInfo/TxnDate,6,2)"/>/
          <xsl:value-of select="substring(AFXInfo/TxnDate,9,2)"/>/
          <xsl:value-of select="substring(AFXInfo/TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/RefNumber"/>
      </td>
      <td>
        <xsl:value-of select="PaymentAmount"/>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/BalanceRemaining"/>
        <xsl:value-of select="BalanceRemaining"/>
      </td>
      <td>
        <xsl:value-of select="DiscountAmount"/>
      </td>
      <td>
        <xsl:value-of select="DiscountAccountRef/FullName"/>
      </td>
    </tr>
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class="NoExtraCells">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>


  <!--Template to match a Bill Payment Check Add and a Mod -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/BillPaymentCheckAddRq/BillPaymentCheckAdd | QBXML/QBXMLMsgsRq/BillPaymentCheckModRq/BillPaymentCheckMod |QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/BillPaymentCheckRet  | QBXML/QBXMLMsgsRq/BillPaymentCreditCardAddRq/BillPaymentCreditCardAdd | QBXML/QBXMLMsgsRq/BillPaymentCreditCardModRq/BillPaymentCreditCardMod | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/BillPaymentCheckRet | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/BillPaymentCreditCardRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'BillPaymentCheckAdd' or name(.)='BillPaymentCreditCardAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'BillPaymentCheckMod' or name(.)='BillPaymentCreditCardMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..)='TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..)='TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <xsl:if test="name(.) = 'BillPaymentCheckAdd' or name(.)='BillPaymentCheckMod' or name(.)='BillPaymentCheckRet'">
        <td>Bill Payment Check</td>
      </xsl:if>
      <xsl:if test="name(.) = 'BillPaymentCreditCardAdd' or name(.)='BillPaymentCreditCardRet'or name(.)='BillPaymentCreditCardRet'">
        <td>Bill Payment Credit Card</td>
      </xsl:if>

      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="PayeeEntityRef/FullName"/>
        <xsl:value-of select="AFXInfo/PayeeEntityRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="BankAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/Amount"/>
        <xsl:value-of select="Amount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Payment Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PaymentMethodRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Deposit To Account:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="DepositToAccountRef/FullName"/>
              </td>
            </tr>

            <!-- Table to display the Transactions -->
            <tr>
              <td colspan="5">
                <xsl:if test="AppliedToTxnAdd | AppliedToTxnMod |AppliedToTxnRet|AFXDupTxnInfo/AppliedToTxnAdd | AFXDupTxnInfo/AppliedToTxnMod">
                  <xsl:call-template name="DrawTransactionHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Item Lines for Invoice Add -->
  <xsl:template match="InvoiceLineAdd | InvoiceLineGroupAdd | InvoiceLineRet | InvoiceLineGroupRet">
    <tr class="NoExtraCells">
      <td>
        <xsl:if test="name(.) = 'InvoiceLineAdd' or name(.)='InvoiceLineRet'">
          <xsl:value-of select="ItemRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'InvoiceLineGroupAdd' or name(.)='InvoiceLineGroupRet'">
          <xsl:value-of select="ItemGroupRef/FullName"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
      <td>
        <xsl:value-of select="Rate"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="SalesTaxCodeRef/FullName"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Item Lines for Invoice Add -->
  <xsl:template match="InvoiceLineMod | InvoiceLineGroupMod">
    <tr class="NoExtraCells">
      <td>
        <xsl:if test="name(.) = 'InvoiceLineMod'">
          <xsl:value-of select="ItemRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'InvoiceLineGroupMod'">
          <xsl:value-of select="ItemGroupRef/FullName"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
      <td>
        <xsl:value-of select="Rate"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="SalesTaxCodeRef/FullName"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Template to match a credit memo add and a credit memo mod-->
  <xsl:template match="CreditMemoLineAdd | CreditMemoLineGroupAdd | CreditMemoLineMod | CreditMemoLineGroupMod | CreditMemoLineRet | CreditMemoLineGroupRet ">
    <tr class="NoExtraCells">
      <td>
        <xsl:if test="name(.) = 'CreditMemoLineAdd' or name(.)='CreditMemoLineRet'">
          <xsl:value-of select="ItemRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'CreditMemoLineGroupAdd' or name(.)='CreditMemoLineGroupRet'">
          <xsl:value-of select="ItemGroupRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'CreditMemoLineMod'">
          <xsl:value-of select="ItemRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'CreditMemoLineGroupMod'">
          <xsl:value-of select="ItemGroupRef/FullName"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
      <td>
        <xsl:value-of select="Rate"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="SalesTaxCodeRef/FullName"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Template for Credit Memo Add and Mod-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/CreditMemoAddRq/CreditMemoAdd | QBXML/QBXMLMsgsRq/CreditMemoModRq/CreditMemoMod |QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/CreditMemoRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/CreditMemoRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'CreditMemoAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'CreditMemoMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..)= 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..)= 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <td>Credit Memo</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ARAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/TotalAmount"/>
        <xsl:value-of select="TotalAmount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Class:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ClassRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Template:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TemplateRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Bill Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="BillAddress">
                  <xsl:call-template name="DisplayBillAddress"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Ship Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipAddress">
                  <xsl:call-template name="DisplayShipAddress"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Pending:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsPending = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsPending = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>P.O Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PONumber"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Terms:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TermsRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Due Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="DueDate">
                  <xsl:value-of select="substring(DueDate,6,2)"/>/
                  <xsl:value-of select="substring(DueDate,9,2)"/>/
                  <xsl:value-of select="substring(DueDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>FOB:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="FOB"/>
              </td>
              <td class ="setWidth">
                <b>Ship Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipDate">
                  <xsl:value-of select="substring(ShipDate,6,2)"/>/
                  <xsl:value-of select="substring(ShipDate,9,2)"/>/
                  <xsl:value-of select="substring(ShipDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Ship Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerSalesTaxCodeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Item Sales Tax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ItemSalesTaxRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Memo:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="Memo"/>
              </td>
              <td class ="setWidth">
                <b>Customer Message:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerMsgRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>To Be Printed:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsToBePrinted = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsToBePrinted = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Customer Sales Tax Code:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerSalesTaxCodeRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Sales Representative:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SalesRepRef/FullName"/>
              </td>
            </tr>
            <!-- Table to display the CreditMemo Line -->
            <tr>
              <td colspan="8">
                <table class="ExpenseItem">
                  <tr class="NoExtraCells">
                    <td>
                      <b>Item</b>
                    </td>
                    <td>
                      <b>Description</b>
                    </td>
                    <td>
                      <b>Quantity</b>
                    </td>
                    <td>
                      <b>Rate</b>
                    </td>
                    <td>
                      <b>Class</b>
                    </td>
                    <td>
                      <b>Amount</b>
                    </td>
                    <td>
                      <b>SalesTaxCode</b>
                    </td>
                  </tr>
                  <tbody>
                    <xsl:apply-templates select="CreditMemoLineAdd | CreditMemoLineGroupAdd | CreditMemoLineMod | CreditMemoLineGroupMod | CreditMemoLineRet | CreditMemoLineGroupRet"/>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match a BillAdd and a ItemReceipt Add and Mod-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/BillAddRq/BillAdd | QBXML/QBXMLMsgsRq/ItemReceiptAddRq/ItemReceiptAdd |QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/ItemReceiptRet | QBXML/QBXMLMsgsRq/BillModRq/BillMod | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/BillRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/BillRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'BillAdd' or name(.)='ItemReceiptAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'BillMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <xsl:if test="name(.) = 'BillAdd' or name(.)='BillMod' or name(.)='BillRet'">
        <td>Bill</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemReceiptAdd' or name(.)='ItemReceiptRet'">
        <td>Item Receipt</td>
      </xsl:if>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="VendorRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="APAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/AmountDue"/>
        <xsl:value-of select="AmountDue"/>
        <xsl:value-of select="AFXInfo/TotalAmount"/>
        <xsl:value-of select="TotalAmount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Due Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="DueDate">
                  <xsl:value-of select="substring(DueDate,6,2)"/>/
                  <xsl:value-of select="substring(DueDate,9,2)"/>/
                  <xsl:value-of select="substring(DueDate,1,4)"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Terms:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TermsRef/FullName"/>
              </td>
            </tr>
            <!-- Table to display the Expense Line -->
            <tr>
              <td colspan="8">
                <xsl:if test="ExpenseLineAdd | ExpenseLineMod |ExpenseLineRet">
                  <xsl:call-template name="DrawExpenseHeader"/>
                </xsl:if>
              </td>
            </tr>

            <!-- Display the Line Items that may be present as part of this Bill-->
            <tr>
              <td colspan="8">
                <xsl:if test="ItemLineAdd | ItemGroupLineAdd | ItemLineMod | ItemLineGroupMod | ItemLineRet |ItemLineGroupRet">
                  <xsl:call-template name="DrawItemHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match Item Line Add and Mods -->
  <xsl:template match="ItemLineAdd | ItemGroupLineAdd | ItemLineMod | ItemGroupLineMod | ItemLineRet | ItemGroupLineRet">
    <tr class="NoExtraCells">
      <td>
        <xsl:if test="name(.) = 'ItemLineAdd' or name(.)='ItemLineMod' or name(.)='ItemLineRet'">
          <xsl:value-of select="ItemRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'ItemGroupLineAdd' or name(.)='ItemGroupLineMod' or name(.)='ItemGroupLineRet'">
          <xsl:value-of select="ItemGroupRef/FullName"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
      <td>
        <xsl:value-of select="Cost"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="BillableStatus"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Match expense line add and mod details -->
  <xsl:template match="ExpenseLineAdd | ExpenseLineMod">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="BillableStatus"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Draw the table that holds the contents of the items lines -->
  <xsl:template name="DrawItemHeader">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Item Name</b>
            </td>
            <td>
              <b>Desc</b>
            </td>
            <td>
              <b>Quantity</b>
            </td>
            <td>
              <b>Cost</b>
            </td>
            <td>
              <b>Amount</b>
            </td>
            <td>
              <b>Customer Name</b>
            </td>
            <td>
              <b>Class</b>
            </td>
            <td>
              <b>Billable</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="ItemLineAdd | ItemGroupLineAdd | ItemLineMod | ItemGroupLineMod | ItemLineRet | ItemGroupLineRet"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Draw the table that contains the ExpenseLine Items-->
  <xsl:template name="DrawExpenseHeader">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Account</b>
            </td>
            <td>
              <b>Amount</b>
            </td>
            <td>
              <b>Memo</b>
            </td>
            <td>
              <b>Customer:Job</b>
            </td>
            <td>
              <b>Class</b>
            </td>
            <td>
              <b>Billable</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="ExpenseLineAdd | ExpenseLineMod | ExpenseLineRet"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <xsl:template name="ItemLineAdd">
  </xsl:template>

  <!-- Helper template for Txn Deletes -->
  <xsl:template match="QBXML/QBXMLMsgsRq/TxnDelRq/TxnDelType">
  </xsl:template>

  <xsl:template match="QBXML/QBXMLMsgsRq/TxnDelRq/TxnID">
  </xsl:template>

  <!-- Helper template for Txn Voids-->
  <xsl:template match="QBXML/QBXMLMsgsRq/TxnVoidRq/TxnVoidType">
  </xsl:template>

  <xsl:template match="QBXML/QBXMLMsgsRq/TxnVoidRq/TxnID">
  </xsl:template>

  <!-- Helper template for List Deletes -->
  <xsl:template match="QBXML/QBXMLMsgsRq/ListDelRq/ListDelType">
  </xsl:template>

  <xsl:template match="QBXML/QBXMLMsgsRq/ListDelRq/ListID">
  </xsl:template>

  <!-- Match template for CheckAdd and Check Delete -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/CheckAddRq/CheckAdd | QBXML/QBXMLMsgsRq/CheckModRq/CheckMod | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/CheckRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/CheckRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'CheckAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'CheckMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <td>Check</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="PayeeEntityRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/Amount"/>
        <xsl:value-of select="Amount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>To Be Printed:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsToBePrinted = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsToBePrinted = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="Address">
                  <xsl:call-template name="DisplayAddress"/>
                </xsl:if>
              </td>
            </tr>

            <!-- Table to display the Expense Line -->
            <tr>
              <td colspan="8">
                <xsl:if test="ExpenseLineAdd | ExpenseLineMod |ExpenseLineRet">
                  <xsl:call-template name="DrawExpenseHeader"/>
                </xsl:if>
              </td>
            </tr>

            <!-- Display the Line Items that may be present as part of this Bill-->
            <tr>
              <td colspan="8">
                <xsl:if test="ItemLineAdd | ItemGroupLineAdd | ItemLineMod | ItemLineGroupMod | ItemLineRet |ItemLineGroupRet">
                  <xsl:call-template name="DrawItemHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Expense Lines for Bill Add -->
  <xsl:template match="ExpenseLineAdd | ExpenseLineRet">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="BillableStatus"/>
      </td>
    </tr>
  </xsl:template>


  <!-- Deposit Lines -->
  <xsl:template match="DepositLineAdd | DepositLineRet | AFXDupTxnInfo/DepositLineAdd">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="AFXInfo/TxnType"/>
        <xsl:value-of select="TxnType"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/EntityRef/FullName"/>
        <xsl:value-of select="EntityRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/AccountRef/FullName"/>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/Memo"/>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/CheckNumber"/>
        <xsl:value-of select="CheckNumber"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/PaymentMethodRef/FullName"/>
        <xsl:value-of select="PaymentMethodRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/ClassRef/FullName"/>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/Amount"/>
        <xsl:value-of select="Amount"/>
      </td>
    </tr>
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class="NoExtraCells">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Template to match Statement Charge -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ChargeAddRq/ChargeAdd |QBXML/QBXMLMsgsRq/ChargeModRq/ChargeMod| QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/ChargeRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/ChargeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ChargeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ChargeMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <td>Statement Charge</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ARAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Item:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ItemRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Quantity:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="Quantity"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Rate:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="Rate"/>
              </td>
              <td class="setWidth">
                <b>Class:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ClassRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Billed Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="BilledDate">
                  <xsl:value-of select="substring(BilledDate,6,2)"/>/
                  <xsl:value-of select="substring(BilledDate,9,2)"/>/
                  <xsl:value-of select="substring(BilledDate,1,4)"/>
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Due Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="DueDate">
                  <xsl:value-of select="substring(DueDate,6,2)"/>/
                  <xsl:value-of select="substring(DueDate,9,2)"/>/
                  <xsl:value-of select="substring(DueDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Sales receipt Add and Sales Receipt Mod and Sales Receipt Delete-->
  <xsl:template match=" QBXML/QBXMLMsgsRq/SalesReceiptAddRq/SalesReceiptAdd | QBXML/QBXMLMsgsRq/SalesReceiptModRq/SalesReceiptMod | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/SalesReceiptRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/SalesReceiptRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'SalesReceiptAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'SalesReceiptMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..) = 'TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
      <td>Sales Receipt</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="DepositToAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/TotalAmount"/>
        <xsl:value-of select="TotalAmount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Class:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ClassRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Template:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="TemplateRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Bill Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="BillAddress">
                  <xsl:call-template name="DisplayBillAddress"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Ship Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipAddress">
                  <xsl:call-template name="DisplayShipAddress"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Pending:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsPending = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsPending = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Check Number:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CheckNumber"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Payment Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="PaymentMethodRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Due Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="DueDate">
                  <xsl:value-of select="substring(DueDate,6,2)"/>/
                  <xsl:value-of select="substring(DueDate,9,2)"/>/
                  <xsl:value-of select="substring(DueDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Sales Rep:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="SalesRepRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Ship Date:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="ShipDate">
                  <xsl:value-of select="substring(ShipDate,6,2)"/>/
                  <xsl:value-of select="substring(ShipDate,9,2)"/>/
                  <xsl:value-of select="substring(ShipDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>Ship Method:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerSalesTaxCodeRef/FullName"/>
              </td>
              <td class ="setWidth">
                <b>Item Sales Tax:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ItemSalesTaxRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>FOB:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="FOB"/>
              </td>
              <td class ="setWidth">
                <b>Customer Message:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerMsgRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class ="setWidth">
                <b>To Be Printed:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="IsToBePrinted = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsToBePrinted = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Sales Tax Code:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="CustomerSalesTaxCodeRef/FullName"/>
              </td>
            </tr>
            <!-- Table to display the Sales Receipt Line -->
            <tr>
              <td colspan="8">
                <table class="ExpenseItem">
                  <tr class="NoExtraCells">
                    <td>
                      <b>Item</b>
                    </td>
                    <td>
                      <b>Description</b>
                    </td>
                    <td>
                      <b>Quantity</b>
                    </td>
                    <td>
                      <b>Rate</b>
                    </td>
                    <td>
                      <b>Class</b>
                    </td>
                    <td>
                      <b>Amount</b>
                    </td>
                    <td>
                      <b>SalesTaxCode</b>
                    </td>
                  </tr>
                  <tbody>
                    <xsl:apply-templates select="SalesReceiptLineAdd | SalesReceiptLineGroupAdd |SalesReceiptLineMod | SalesReceiptLineGroupMod | SalesReceiptLineRet | SalesReceiptLineGroupRet"/>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Sales receipt add and mod line item information -->
  <xsl:template match="SalesReceiptLineAdd | SalesReceiptLineGroupAdd | SalesReceiptLineMod | SalesReceiptLineGroupMod | SalesReceiptLineRet | SalesReceiptLineGroupRet">
    <tr class="NoExtraCells">
      <td>
        <xsl:if test="name(.) = 'SalesReceiptLineAdd' or name(.)='SalesReceiptLineMod' or name(.)='SalesReceiptLineRet'">
          <xsl:value-of select="ItemRef/FullName"/>
        </xsl:if>
        <xsl:if test="name(.) = 'SalesReceiptLineGroupAdd' or name(.)='SalesReceiptLineGroupMod' or name(.)='SalesReceiptLineGroupRet'">
          <xsl:value-of select="ItemGroupRef/FullName"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="Desc"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
      <td>
        <xsl:value-of select="Rate"/>
        <xsl:value-of select="RatePercent"/>
        <xsl:value-of select="RateLevelRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ClassRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Amount"/>
      </td>
      <td>
        <xsl:value-of select="SalesTaxCodeRef/FullName"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Vendor Credit Add -->
  <xsl:template match="QBXML/QBXMLMsgsRq/VendorCreditAddRq/VendorCreditAdd | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/VendorCreditRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'VendorCreditAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'VendorCreditRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Vendor Credit</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="VendorRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="APAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/CreditAmount"/>
        <xsl:value-of select="CreditAmount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth"></td>
              <td class ="setWidth"></td>
              <td class ="setWidth"></td>
              <td class ="setWidth"></td>
            </tr>
            <!-- Table to display the Expense Line -->
            <tr >
              <td colspan="8" width="100%">
                <xsl:if test="ExpenseLineAdd | ExpenseLineMod |ExpenseLineRet">
                  <xsl:call-template name="DrawExpenseHeader"/>
                </xsl:if>
              </td>
            </tr>

            <!-- Display the Line Items that may be present as part of this Bill-->
            <tr>
              <td colspan="8">
                <xsl:if test="ItemLineAdd | ItemGroupLineAdd | ItemLineMod | ItemLineGroupMod | ItemLineRet |ItemLineGroupRet">
                  <xsl:call-template name="DrawItemHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Credit Card Charge and Credit Card Credit ( Add and Mod) -->
  <xsl:template match="QBXML/QBXMLMsgsRq/CreditCardChargeAddRq/CreditCardChargeAdd | QBXML/QBXMLMsgsRq/CreditCardCreditAddRq/CreditCardCreditAdd | QBXML/QBXMLMsgsRq/CreditCardChargeModRq/CreditCardChargeMod | QBXML/QBXMLMsgsRq/CreditCardCreditModRq/CreditCardCreditMod | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/CreditCardCreditRet | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/CreditCardChargeRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/CreditCardCreditRet | QBXML/QBXMLMsgsRq/TxnVoidRq/AFXInfo/CreditCardChargeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.)='CreditCardChargeMod' or name(.)='CreditCardCreditMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test= "name(.)='CreditCardChargeAdd' or name(.)='CreditCardCreditAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test= "name(../..)='TxnDelRq'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(../..)='TxnVoidRq'">
        <td>Void</td>
      </xsl:if>
            
      <xsl:if test="name(.)='CreditCardChargeAdd' or name(.)='CreditCardChargeMod' or name(.)='CreditCardChargeRet'">
        <td>Credit Card Charge</td>
      </xsl:if>
      <xsl:if test="name(.)='CreditCardCreditAdd' or name(.)='CreditCardCreditMod' or name(.)='CreditCardCreditRet'">
        <td>Credit Card Credit</td>
      </xsl:if>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="PayeeEntityRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/Amount"/>
        <xsl:value-of select="Amount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <!-- Table to display the Expense Line -->
            <tr>
              <td colspan="8">
                <xsl:if test="ExpenseLineAdd | ExpenseLineMod | ExpenseLineRet">
                  <xsl:call-template name="DrawExpenseHeader"/>
                </xsl:if>
              </td>
            </tr>
            <!-- Display the Line Items that may be present as part of this Credit Charge-->
            <tr>
              <td colspan="8">
                <xsl:if test="ItemLineAdd | ItemGroupLineAdd | ItemLineMod | ItemGroupLineMod |ItemLineRet | ItemGroupLineRet">
                  <xsl:call-template name="DrawItemHeader"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td  class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

 

  <!--Inventory Adjustment-->

  <xsl:template match="QBXML/QBXMLMsgsRq/InventoryAdjustmentAddRq/InventoryAdjustmentAdd |QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/InventoryAdjustmentRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'InventoryAdjustmentAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'InventoryAdjustmentRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Inventory Adjustment</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Class:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ClassRef/FullName"/>
              </td>
              <td class ="setWidth"></td>
              <td class ="setWidth"></td>
            </tr>
            <tr>
              <!-- Table to display the Expense Line -->
              <td colspan="4">
                <table class="ExpenseItem">
                  <tr class="NoExtraCells">
                    <td>
                      <b>Item Name</b>
                    </td>
                    <td>
                      <b>Quantity Difference</b>
                    </td>
                  </tr>
                  <tbody>
                    <xsl:apply-templates select="InventoryAdjustmentLineAdd | InventoryAdjustmentLineRet"/>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <xsl:template match="InventoryAdjustmentLineAdd | InventoryAdjustmentLineRet">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="ItemRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="QuantityAdjustment/QuantityDifference"/>
      </td>
    </tr>
  </xsl:template>

  <!--Build Assembly -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/BuildAssemblyAddRq/BuildAssemblyAdd | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/BuildAssemblyRet">
    <tr>
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'BuildAssemblyAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'BuildAssemblyRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Build Assembly</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="ItemInventoryAssemblyRef/FullName"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="QuantityToBuild"/>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Service,Non Inventory Item  and Other Charge Adds and Mods and deletes -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ItemServiceAddRq/ItemServiceAdd | QBXML/QBXMLMsgsRq/ItemServiceModRq/ItemServiceMod| QBXML/QBXMLMsgsRq/ItemNonInventoryAddRq/ItemNonInventoryAdd | QBXML/QBXMLMsgsRq/ItemNonInventoryModRq/ItemNonInventoryMod| QBXML/QBXMLMsgsRq/ItemOtherChargeAddRq/ItemOtherChargeAdd | QBXML/QBXMLMsgsRq/ItemOtherChargeModRq/ItemOtherChargeMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemServiceRet | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemNonInventoryRet | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemOtherChargeRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemServiceAdd' or name(.)='ItemNonInventoryAdd' or name(.)='ItemOtherChargeAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemServiceMod' or name(.)='ItemNonInventoryMod' or name(.)='ItemOtherChargeMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemServiceRet' or name(.)='ItemNonInventoryRet' or name(.)='ItemOtherChargeRet'">
        <td>Delete</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemServiceAdd' or name(.)='ItemServiceMod' or name(.)='ItemServiceRet'">
        <td>Service Item</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemNonInventoryAdd' or name(.)='ItemNonInventoryMod' or name(.)='ItemNonInventoryRet'">
        <td>Non Inventory Part</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemOtherChargeAdd' or name(.)='ItemOtherChargeMod' or name(.)='ItemOtherChargeRet'">
      <td>Other Charge</td>
      </xsl:if>
      <td></td>
      <td></td> 
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="SalesOrPurchase/AccountRef/FullName"/>
        <xsl:value-of select="SalesOrPurchaseMod/AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="SalesOrPurchase/Desc"/>
        <xsl:value-of select="SalesAndPurchase/SalesDesc"/>
        <xsl:value-of select="SalesOrPurchaseMod/Desc"/>
        <xsl:value-of select="SalesAndPurchaseMod/SalesDesc"/>
      </td>
      <td>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>SubItem of:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Sales Tax Code:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesTaxCodeRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Price:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesOrPurchase/Price"/>
                <xsl:if test ="SalesOrPurchase/PricePercent">
                  <xsl:value-of select="SalesOrPurchase/PricePercent"/> %
                </xsl:if>
                <xsl:if test ="SalesOrPurchaseMod/PricePercent">
                  <xsl:value-of select="SalesOrPurchaseMod/PricePercent"/> %
                </xsl:if>
                <xsl:value-of select="SalesAndPurchase/SalesPrice"/>
                <xsl:value-of select="SalesOrPurchaseMod/Price"/>
                <xsl:value-of select="SalesAndPurchaseMod/SalesPrice"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Income Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesAndPurchase/IncomeAccountRef/FullName"/>
                <xsl:value-of select="SalesAndPurchaseMod/IncomeAccountRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Purchase Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesAndPurchase/PurchaseDesc"/>
                <xsl:value-of select="SalesAndPurchaseMod/PurchaseDesc"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Purchase Cost:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesAndPurchase/PurchaseCost"/>
                <xsl:value-of select="SalesAndPurchaseMod/PurchaseCost"/>
              </td>
              <td class="setWidth">
                <b>Expense Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesAndPurchase/ExpenseAccountRef/FullName"/>
                <xsl:value-of select="SalesAndPurchaseMod/ExpenseAccountRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Preferred Vendor:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesAndPurchase/PrefVendorRef/FullName"/>
                <xsl:value-of select="SalesAndPurchaseMod/PrefVendorRef/FullName"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td  class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Inventory Item Add and Mod-->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemInventoryAddRq/ItemInventoryAdd | QBXML/QBXMLMsgsRq/ItemInventoryModRq/ItemInventoryMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemInventoryRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemInventoryAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemInventoryMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemInventoryRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Inventory Item</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="IncomeAccountRef/FullName"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="TotalValue"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Sales Tax Code:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesTaxCodeRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Sales Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesDesc"/>
              </td>
              <td class="setWidth">
                <b>Sales Price:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesPrice"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Purchase Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PurchaseDesc"/>
              </td>
              <td class="setWidth">
                <b>Purchase Cost:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PurchaseCost"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>COGS Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="COGSAccountRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Preferred Vendor:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PrefVendorRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Asset Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="AssetAccountRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Reorder Point:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ReorderPoint"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Quantity On Hand:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="QuantityOnHand"/>
              </td>
              <td class="setWidth">
                <b>Inventory Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="InventoryDate">
                  <xsl:value-of select="substring(InventoryDate,6,2)"/>/
                  <xsl:value-of select="substring(InventoryDate,9,2)"/>/
                  <xsl:value-of select="substring(InventoryDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Inventory Item Assembly Add and Mod-->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemInventoryAssemblyAddRq/ItemInventoryAssemblyAdd | QBXML/QBXMLMsgsRq/ItemInventoryAssemblyModRq/ItemInventoryAssemblyMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemInventoryAssemblyRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemInventoryAssemblyAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemInventoryAssemblyMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemInventoryAssemblyRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Inventory Assembly Item</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="IncomeAccountRef/FullName"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="TotalValue"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>SubItem Of:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Build Point:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="BuildPoint"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Sales Tax Code:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesTaxCodeRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Sales Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesDesc"/>
              </td>
              <td class="setWidth">
                <b>Sales Price:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesPrice"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Purchase Description:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PurchaseDesc"/>
              </td>
              <td class="setWidth">
                <b>Purchase Cost:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PurchaseCost"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>COGS Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="COGSAccountRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Preferred Vendor:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PrefVendorRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Asset Account:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="AssetAccountRef/FullName"/>
              </td>
              <td class="setWidth">
                <b>Reorder Point:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="ReorderPoint"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Quantity On Hand:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="QuantityOnHand"/>
              </td>
              <td class="setWidth">
                <b>Inventory Date:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="InventoryDate">
                  <xsl:value-of select="substring(InventoryDate,6,2)"/>/
                  <xsl:value-of select="substring(InventoryDate,9,2)"/>/
                  <xsl:value-of select="substring(InventoryDate,1,4)"/>
                </xsl:if>
              </td>
            </tr>
            <!-- table that represents the Inventory Items that constitute this Assembly -->
            <tr>
              <td colspan="8">
                <xsl:if test="ItemInventoryAssemblyLine">
                  <xsl:call-template name="DrawItemInventoryAssembly"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Draw the table that contains the Inventory Assembly Items -->
  <xsl:template name="DrawItemInventoryAssembly">
    <tr>
      <td colspan="4">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Item Name</b>
            </td>
            <td>
              <b>Quantity</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="ItemInventoryAssemblyLine"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Inventory Items that make up this Assembly -->
  <xsl:template match="ItemInventoryAssemblyLine">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="ItemInventoryRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
    </tr>
  </xsl:template>
  
  <!-- Subtotal Item Add and Mod-->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemSubtotalAddRq/ItemSubtotalAdd | QBXML/QBXMLMsgsRq/ItemSubtotalModRq/ItemSubtotalMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemSubtotalRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemSubtotalAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemSubtotalMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemSubtotalRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Item Subtotal</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="ItemDesc"/>
      </td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class =" setWidth">
              </td>
              <td class =" setWidth">
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Item Group Add and Mod-->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemGroupAddRq/ItemGroupAdd |QBXML/QBXMLMsgsRq/ItemGroupModRq/ItemGroupMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemGroupRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemGroupAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemGroupMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemGroupRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Item Group</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="ItemDesc"/>
      </td>
      <td>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Print Items in Group:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsPrintItemsInGroup = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsPrintItemsInGroup = 'false'">
                  no
                </xsl:if>
              </td>
            </tr>         
            <!-- table that represents the Inventory Items that constitute this Assembly -->
            <tr>
              <td colspan="8">
                <xsl:if test="ItemGroupLine">
                  <xsl:call-template name="DrawItemGroupLine"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Draw the table that contains the Inventory Assembly Items -->
  <xsl:template name="DrawItemGroupLine">
    <tr>
      <td colspan="8">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Item Name</b>
            </td>
            <td>
              <b>Quantity</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="ItemGroupLine"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Items that make up this group -->
  <xsl:template match="ItemGroupLine">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="ItemRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Quantity"/>
      </td>
    </tr>
  </xsl:template>
  
  <!-- Item Sales Tax Add-->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemSalesTaxAddRq/ItemSalesTaxAdd | QBXML/QBXMLMsgsRq/ItemSalesTaxModRq/ItemSalesTaxMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemSalesTaxRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemSalesTaxAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemSalesTaxMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemSalesTaxRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Item Sales Tax</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="ItemDesc"/>
      </td>
      <td>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Tax Agency:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="TaxVendorRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Tax Rate:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="TaxRate"/>%
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Item Sales Tax Group Add and Mod -->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemSalesTaxGroupAddRq/ItemSalesTaxGroupAdd | QBXML/QBXMLMsgsRq/ItemSalesTaxGroupModRq/ItemSalesTaxGroupMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemSalesTaxGroupRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemSalesTaxGroupAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemSalesTaxGroupMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemSalesTaxGroupRet'">
        <td>Delete  </td>
      </xsl:if>
      <td>Item Sales Tax Group</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
      </td>
      <td>
        <xsl:value-of select="ItemDesc"/>
      </td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
              </td>
              <td class="setWidth">
              </td>
            </tr>
            <!-- table that represents the Inventory Items that constitute this Assembly -->
            <tr>
              <td colspan="2">
                <xsl:if test="ItemSalesTaxRef">
                  <xsl:call-template name="DrawItemSalesTaxRef"/>
                </xsl:if>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>


  <!-- Draw the table that contains the Inventory Assembly Items -->
  <xsl:template name="DrawItemSalesTaxRef">
    <tr>
      <td colspan="1">
        <table class="ExpenseItem">
          <tr class="NoExtraCells">
            <td>
              <b>Items</b>
            </td>
          </tr>
          <tbody>
            <xsl:apply-templates select="ItemSalesTaxRef"/>
          </tbody>
        </table>
      </td>
    </tr>
  </xsl:template>

  <!-- Items that make up this group -->
  <xsl:template match="ItemSalesTaxRef">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="FullName"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Item Payment Add and Mod-->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemPaymentAddRq/ItemPaymentAdd | QBXML/QBXMLMsgsRq/ItemPaymentModRq/ItemPaymentMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemPaymentRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemPaymentMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test= "name(.) = 'ItemPaymentAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test= "name(.) = 'ItemPaymentRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Item Payment</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="DepositToAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ItemDesc"/>
      </td>
      <td></td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class="setWidth">
                <b>Payment Method:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="PaymentMethodRef/FullName"/>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <!-- Discount Item Add and Mod -->
  <xsl:template match="QBXML/QBXMLMsgsRq/ItemDiscountAddRq/ItemDiscountAdd | QBXML/QBXMLMsgsRq/ItemDiscountModRq/ItemDiscountMod | QBXML/QBXMLMsgsRq/ListDelRq/AFXInfo/ItemDiscountRet">
    <tr class="collapse">
      <td>
        <xsl:number level="any" count="QBXML" format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ItemDiscountAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemDiscountMod'">
        <td>Mod</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ItemDiscountRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Item Discount</td>
      <td></td>
      <td></td>
      <td>
        <xsl:value-of select="Name"/>
      </td>
      <td>
        <xsl:value-of select="AccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="ItemDesc"/>
      </td>
      <td>
        <xsl:value-of select="DiscountRate"/>
        <xsl:if test="DiscountRatePercent">
          <xsl:value-of select="DiscountRatePercent"/>%
        </xsl:if>

      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class="setWidth">
                <b>Active:</b>
              </td>
              <td class="setWidth">
                <xsl:if test="IsActive = 'true'">
                  yes
                </xsl:if>
                <xsl:if test="IsActive = 'false'">
                  no
                </xsl:if>
              </td>
              <td class ="setWidth">
                <b>Sub Item Of:</b>
              </td>
              <td class ="setWidth">
                <xsl:value-of select="ParentRef/FullName"/>
              </td>
            </tr>
            <tr>
              <td class="setWidth">
                <b>Sales Tax Code:</b>
              </td>
              <td class="setWidth">
                <xsl:value-of select="SalesTaxCodeRef/FullName"/>
              </td>
              <td class ="setWidth"></td>
              <td class ="setWidth">
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any merge conflicts-->
    <xsl:if test="AFXInfo/MergeConflictMessage">
      <tr class ="error">
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXInfo/MergeConflictMessage"/>
        </td>
      </tr>
    </xsl:if>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>


  <xsl:template match="AccountantNote">
  </xsl:template>

  <xsl:template match="DividingDate">
  </xsl:template>

  <xsl:template match="Path">
  </xsl:template>

  <!-- Template to match ARCreditCardRefundAdd -->
  <xsl:template match=" QBXML/QBXMLMsgsRq/ARRefundCreditCardAddRq/ARRefundCreditCardAdd | QBXML/QBXMLMsgsRq/TxnDelRq/AFXInfo/ARRefundCreditCardRet">
    <tr class ="collapse">
      <td>
        <xsl:number level="any"  count="QBXML"  format="1. "/>
      </td>
      <xsl:if test="name(.) = 'ARRefundCreditCardAdd'">
        <td>Add</td>
      </xsl:if>
      <xsl:if test="name(.) = 'ARRefundCreditCardRet'">
        <td>Delete</td>
      </xsl:if>
      <td>Credit Card Refund</td>
      <td>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="CustomerRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="RefundFromAccountRef/FullName"/>
      </td>
      <td>
        <xsl:value-of select="Memo"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/TotalAmount"/>
        <xsl:value-of select="TotalAmount"/>
      </td>
    </tr>
    <tr>
      <td colspan="8">
        <table class="inner">
          <tbody>
            <tr>
              <td class ="setWidth">
                <b>Address:</b>
              </td>
              <td class ="setWidth">
                <xsl:if test="Address">
                  <xsl:call-template name="DisplayAddress"/>
                </xsl:if>
              </td>
              <td class ="setWidth">
              </td>
              <td class ="setWidth">
              </td>
            </tr>

            <!-- Table to display the Refund Applied to Line -->
            <tr>
              <td colspan="8">
                <table class="ExpenseItem">
                  <tr class="NoExtraCells">
                    <td>
                      <b>Txn Type</b>
                    </td>
                    <td>
                      <b>Txn Date</b>
                    </td>
                    <td>
                      <b>Ref Number</b>
                    </td>
                    <td>
                      <b>Credit Remaining</b>
                    </td>
                    <td>
                      <b>Refund Amount</b>
                    </td>
                  </tr>
                  <tbody>
                    <xsl:apply-templates select="RefundAppliedToTxnAdd | RefundAppliedToTxnRet"/>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <!-- Need to handle any SDK errors-->
    <xsl:if test="AFXApplyMsg">
      <tr class ="error" >
        <td class ="error" colspan="8">
          <xsl:value-of select="AFXApplyMsg" disable-output-escaping="yes"/>
        </td>
      </tr>
    </xsl:if>
  </xsl:template>

  <xsl:template match="RefundAppliedToTxnAdd | RefundAppliedToTxnRet">
    <tr class="NoExtraCells">
      <td>
        <xsl:value-of select="AFXInfo/TxnType"/>
        <xsl:value-of select="TxnType"/>
      </td>
      <td>
        <xsl:if test="TxnDate">
          <xsl:value-of select="substring(TxnDate,6,2)"/>/
          <xsl:value-of select="substring(TxnDate,9,2)"/>/
          <xsl:value-of select="substring(TxnDate,1,4)"/>
        </xsl:if>
        <xsl:if test="AFXInfo/TxnDate">
          <xsl:value-of select="substring(AFXInfo/TxnDate,6,2)"/>/
          <xsl:value-of select="substring(AFXInfo/TxnDate,9,2)"/>/
          <xsl:value-of select="substring(AFXInfo/TxnDate,1,4)"/>
        </xsl:if>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/RefNumber"/>
        <xsl:value-of select="RefNumber"/>
      </td>
      <td>
        <xsl:value-of select="AFXInfo/CreditRemaining"/>
        <xsl:value-of select="CreditRemaining"/>
      </td>
      <td>
        <xsl:value-of select="RefundAmount"/>
      </td>
    </tr>
  </xsl:template>

  <!-- Template to display Bill addresses -->

  <xsl:template name="DisplayBillAddress">
    <xsl:value-of select="BillAddress/Addr1"/>
    <xsl:if test="BillAddress/Addr2">
      <br/>
      <xsl:value-of select="BillAddress/Addr2"/>
    </xsl:if>
    <xsl:if test="BillAddress/Addr3">
      <br/>
      <xsl:value-of select="BillAddress/Addr3"/>
    </xsl:if>
    <xsl:if test="BillAddress/Addr4">
      <br/>
      <xsl:value-of select="BillAddress/Addr4"/>
    </xsl:if>
    <xsl:if test="BillAddress/City">
      <br/>
      <xsl:value-of select="BillAddress/City"/>
    </xsl:if>
    <xsl:if test="BillAddress/State">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="BillAddress/State"/>
    </xsl:if>
    <xsl:if test="BillAddress/PostalCode">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="BillAddress/PostalCode"/>
    </xsl:if>
    <xsl:if test="BillAddress/Country">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="BillAddress/Country"/>
    </xsl:if>
  </xsl:template>

  <!-- Template to display addresses -->

  <xsl:template name="DisplayShipAddress">
    <xsl:value-of select="ShipAddress/Addr1"/>
    <xsl:if test="ShipAddress/Addr2">
      <br/>
      <xsl:value-of select="ShipAddress/Addr2"/>
    </xsl:if>
    <xsl:if test="ShipAddress/Addr3">
      <br/>
      <xsl:value-of select="ShipAddress/Addr3"/>
    </xsl:if>
    <xsl:if test="ShipAddress/Addr4">
      <br/>
      <xsl:value-of select="ShipAddress/Addr4"/>
    </xsl:if>
    <xsl:if test="ShipAddress/City">
      <br/>
      <xsl:value-of select="ShipAddress/City"/>
    </xsl:if>
    <xsl:if test="ShipAddress/State">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="ShipAddress/State"/>
    </xsl:if>
    <xsl:if test="ShipAddress/PostalCode">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="ShipAddress/PostalCode"/>
    </xsl:if>
    <xsl:if test="ShipAddress/Country">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="ShipAddress/Country"/>
    </xsl:if>
  </xsl:template>

  <!-- Template to display addresses -->

  <xsl:template name="DisplayAddress">
    <xsl:value-of select="Address/Addr1"/>
    <xsl:if test="Address/Addr2">
      <br/>
      <xsl:value-of select="Address/Addr2"/>
    </xsl:if>
    <xsl:if test="Address/Addr3">
      <br/>
      <xsl:value-of select="Address/Addr3"/>
    </xsl:if>
    <xsl:if test="Address/Addr4">
      <br/>
      <xsl:value-of select="Address/Addr4"/>
    </xsl:if>
    <xsl:if test="Address/City">
      <br/>
      <xsl:value-of select="Address/City"/>
    </xsl:if>
    <xsl:if test="Address/State">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="Address/State"/>
    </xsl:if>
    <xsl:if test="Address/PostalCode">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="Address/PostalCode"/>
    </xsl:if>
    <xsl:if test="Address/Country">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="Address/Country"/>
    </xsl:if>
  </xsl:template>

  <xsl:template name="DisplayOtherNameAddress">
    <xsl:value-of select="OtherNameAddress/Addr1"/>
    <xsl:if test="OtherNameAddress/Addr2">
      <br/>
      <xsl:value-of select="OtherNameAddress/Addr2"/>
    </xsl:if>
    <xsl:if test="OtherNameAddress/Addr3">
      <br/>
      <xsl:value-of select="OtherNameAddress/Addr3"/>
    </xsl:if>
    <xsl:if test="OtherNameAddress/Addr4">
      <br/>
      <xsl:value-of select="OtherNameAddress/Addr4"/>
    </xsl:if>
    <xsl:if test="OtherNameAddress/City">
      <br/>
      <xsl:value-of select="OtherNameAddress/City"/>
    </xsl:if>
    <xsl:if test="OtherNameAddress/State">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="OtherNameAddress/State"/>
    </xsl:if>
    <xsl:if test="OtherNameAddress/PostalCode">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="OtherNameAddress/PostalCode"/>
    </xsl:if>
    <xsl:if test="OtherNameAddress/Country">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="OtherNameAddress/Country"/>
    </xsl:if>
  </xsl:template>

  <xsl:template name="DisplayEmployeeAddress">
    <xsl:value-of select="EmployeeAddress/Addr1"/>
    <xsl:if test="EmployeeAddress/Addr2">
      <br/>
      <xsl:value-of select="EmployeeAddress/Addr2"/>
    </xsl:if>
    <xsl:if test="EmployeeAddress/Addr3">
      <br/>
      <xsl:value-of select="EmployeeAddress/Addr3"/>
    </xsl:if>
    <xsl:if test="EmployeeAddress/Addr4">
      <br/>
      <xsl:value-of select="EmployeeAddress/Addr4"/>
    </xsl:if>
    <xsl:if test="EmployeeAddress/City">
      <br/>
      <xsl:value-of select="EmployeeAddress/City"/>
    </xsl:if>
    <xsl:if test="EmployeeAddress/State">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="EmployeeAddress/State"/>
    </xsl:if>
    <xsl:if test="EmployeeAddress/PostalCode">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="EmployeeAddress/PostalCode"/>
    </xsl:if>
    <xsl:if test="EmployeeAddress/Country">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="EmployeeAddress/Country"/>
    </xsl:if>
  </xsl:template>

  <xsl:template name="DisplayVendorAddress">
    <xsl:value-of select="VendorAddress/Addr1"/>
    <xsl:if test="VendorAddress/Addr2">
      <br/>
      <xsl:value-of select="VendorAddress/Addr2"/>
    </xsl:if>
    <xsl:if test="VendorAddress/Addr3">
      <br/>
      <xsl:value-of select="VendorAddress/Addr3"/>
    </xsl:if>
    <xsl:if test="VendorAddress/Addr4">
      <br/>
      <xsl:value-of select="VendorAddress/Addr4"/>
    </xsl:if>
    <xsl:if test="VendorAddress/City">
      <br/>
      <xsl:value-of select="VendorAddress/City"/>
    </xsl:if>
    <xsl:if test="VendorAddress/State">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="VendorAddress/State"/>
    </xsl:if>
    <xsl:if test="VendorAddress/PostalCode">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="VendorAddress/PostalCode"/>
    </xsl:if>
    <xsl:if test="VendorAddress/Country">
      <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
      <xsl:value-of select="VendorAddress/Country"/>
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>
<!-- Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved.
<metaInformation>
<scenarios ><scenario default="yes" name="del" userelativepaths="yes" externalpreview="no" url="CheckDel.xml" htmlbaseurl="" outputurl="" processortype="internal" useresolver="yes" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/></scenarios><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext><MapperFilter side="source"></MapperFilter></MapperMetaTag>
</metaInformation>
-->
