<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                xmlns:ScriptNS0="http://schemas.microsoft.com/BizTalk/2003/ScriptNS0"
                xmlns:ScriptNS1="http://schemas.microsoft.com/BizTalk/2003/ScriptNS1"
                
                xmlns:DateTime="TM.Shared.Components.DateTime"
                xmlns:SSO="TM.Shared.Components.SSO"
                xmlns:String="TM.Shared.Components.String"
                
                xmlns:s0="http://TM.KLG.com/KLG/OrderStatus/v19A"
                xmlns:ns0="http://TM.nShift.messages"
                
                exclude-result-prefixes="s0 ns0 ScriptNS0 ScriptNS1 DateTime SSO String">

  <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" indent="yes" />

  <!-- region global variable initialization -->

  <xsl:variable name="connectionString" select="SSO:GetValue('TM.TransSmart', 'ESBLookupConnectionString')"/>
  
  <xsl:variable name ="sender">
    <xsl:choose>
      <xsl:when test="/s0:StatusReport/Sender='KLGEUEERSE01'">KLE</xsl:when>
      <xsl:when test="/s0:StatusReport/Sender='KLGEUVENLO01'">KLG</xsl:when>
      <xsl:otherwise>KLG</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  
  <!-- end region -->

  <!-- region templates -->

  <xsl:template match="/">
    <xsl:apply-templates select="/s0:StatusReport" />
  </xsl:template>
  
  <xsl:template match="/s0:StatusReport">
    <xsl:variable name="currentDateTime" select="DateTime:GetCurrentDateTime()" />
    <xsl:variable name="currentDate" select="DateTime:GetCurrentDate()" />

    <ns0:root>
      <ns0:status>
        <xsl:attribute name="carrier">
          <xsl:value-of select="$sender" />
        </xsl:attribute>
        <xsl:for-each select="Status">
          <ns0:shipment>
            <ns0:lineNo>
              <xsl:number/>
            </ns0:lineNo>
            <ns0:statusTimeStamp>
              <xsl:value-of select="DateTime:FormatDateTime(/s0:StatusReport/TimeStamp, 'yyyy-MM-ddTHH:mm:ss', 'yyyyMMddHHmmss', 'statusTimeStamp')"/>
            </ns0:statusTimeStamp>
            <ns0:reference>
              <xsl:value-of select="ShipmentReference"/>
            </ns0:reference>
            <xsl:if test="StatusCode='DELIVERED'">
              <ns0:deliveryDate>
                <xsl:value-of select="DateTime:FormatDateTime(StatusTimeStamp, 'yyyy-MM-ddTHH:mm:ss', 'yyyyMMdd', 'statusTimeStamp')"/>
              </ns0:deliveryDate>
              <ns0:deliveryTime>
                <xsl:value-of select="DateTime:FormatDateTime(StatusTimeStamp, 'yyyy-MM-ddTHH:mm:ss', 'HHmmss', 'statusTimeStamp')"/>
              </ns0:deliveryTime>
            </xsl:if>
            <ns0:shipmentStatus>
              <xsl:choose>
                <xsl:when test="StatusCode='DELIVERED'">
                  <xsl:text>DONE</xsl:text>
                </xsl:when>
                <xsl:when test="StatusCode='DELIVERY' and ReasonCode='TRANSIT'">
                  <xsl:text>TRNS</xsl:text>
                </xsl:when>
                <xsl:otherwise>TRNS</xsl:otherwise>
              </xsl:choose>
            </ns0:shipmentStatus>
            <ns0:carrierStatusCode>
              <xsl:value-of select="StatusCode"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="ReasonCode"/>
            </ns0:carrierStatusCode>
          </ns0:shipment>
        </xsl:for-each>
      </ns0:status>
    </ns0:root>
  </xsl:template>
  <!-- end region -->

  <xsl:variable name="dbClose" select="ScriptNS0:DBLookupShutdown()"/>

</xsl:stylesheet>