<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:asp="remove">
<xsl:output method="text" encoding="ISO-8859-1"/>
<xsl:template match="/Document">
<xsl:variable name="blank" select="''"/>
<xsl:variable name="seperator" select="','"/>
<xsl:variable name="orderdate" select="OrderDate"/>
<xsl:variable name="accountingcustomercode" select="AccountingCustomerCode"/>
<xsl:variable name="ordernumber" select="OrderNumber"/>
<xsl:variable name="expecteddeliverydate" select="ExpectedDeliveryDate"/>
<xsl:variable name="suppliername" select="Parties/PartyIdentifier[Type='SHIPFROM']/Name"/>
<xsl:variable name="customername" select="Parties/PartyIdentifier[Type='SHIPTO']/Name"/>
<xsl:variable name="deliverystreet1" select="Parties/PartyIdentifier[Type='SHIPTO']/Street1"/>
<xsl:variable name="deliverystreet2" select="Parties/PartyIdentifier[Type='SHIPTO']/Street2"/>
<xsl:variable name="deliverysuburb" select="Parties/PartyIdentifier[Type='SHIPTO']/Suburb"/>
<xsl:variable name="deliverystate" select="Parties/PartyIdentifier[Type='SHIPTO']/State"/>
<xsl:variable name="deliverypostcode" select="Parties/PartyIdentifier[Type='SHIPTO']/PostCode"/>
<xsl:variable name="deliverycountry" select="Parties/PartyIdentifier[Type='SHIPTO']/Country"/>
<xsl:variable name="contactname" select="Parties/PartyIdentifier[Type='SHIPTO']/ContactName"/>
<xsl:value-of select="concat('"','BEGINREC','"')"/>
<xsl:text>
</xsl:text>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'SENDERNAME'"/>
<xsl:with-param name="value" select="AccountingCustomerAccountingID"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'INPUTTYPE'"/>
<xsl:with-param name="value" select="'PURCHASE ORDER'"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'INPUTKEY'"/>
<xsl:with-param name="value" select="OrderNumber"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'SUPPLIER'"/>
<xsl:with-param name="value" select="''"/>
</xsl:call-template>
<!-- <xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'ATTN'"/>
<xsl:with-param name="value" select="''"/>
</xsl:call-template>-->
<xsl:call-template name="display-namevaluedate">
<xsl:with-param name="name" select="'DATEREQUIRED'"/>
<xsl:with-param name="value" select="OrderDate"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'OURCONTACT'"/>
<xsl:with-param name="value" select="$contactname"/>
</xsl:call-template>
<!-- <xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'COMMENTS'"/>
<xsl:with-param name="value" select="Comment"/>
</xsl:call-template> -->
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DNAME'"/>
<xsl:with-param name="value" select="$customername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DADDR1'"/>
<xsl:with-param name="value" select="$deliverystreet1"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DADDR2'"/>
<xsl:with-param name="value" select="$deliverystreet2"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DADDR3'"/>
<xsl:with-param name="value" select="$deliverysuburb"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DSTATE'"/>
<xsl:with-param name="value" select="$deliverystate"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DPCODE'"/>
<xsl:with-param name="value" select="$deliverypostcode"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'DCOUNTRY'"/>
<xsl:with-param name="value" select="$deliverycountry"/>
</xsl:call-template>
<!-- <xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PNAME'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PADDR1'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PADDR2'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PADDR3'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PSTATE'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PPCODE'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'PCOUNTRY'"/>
<xsl:with-param name="value" select="$suppliername"/>
</xsl:call-template>-->
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="'SHIPPING'"/>
<xsl:with-param name="value" select="SupplierFreightCompanyCode"/>
</xsl:call-template>
<xsl:for-each select="Lines/Line">
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('ITEMCODE_SENDER',position())"/>
<xsl:with-param name="value" select="BarCode"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('ITEMCODE_RECEIVER',position())"/>
<xsl:with-param name="value" select="MatchedItemCode"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('ITEMDESC',position())"/>
<xsl:with-param name="value" select="ItemDescription"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('ITEMQTY',position())"/>
<xsl:with-param name="value" select="QuantityAccepted"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('UNIT',position())"/>
<xsl:with-param name="value" select="UnitUoM"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('UNITQTY',position())"/>
<xsl:with-param name="value" select="'1'"/>
</xsl:call-template>
<xsl:call-template name="display-namevaluestring">
<xsl:with-param name="name" select="concat('PRICEEX',position())"/>
<xsl:with-param name="value" select="ActualUnitPriceExTax"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="display-namevaluestring">
<xsl:param name="name"/>
<xsl:param name="value"/>
<xsl:variable name="encodedvalue">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="$value"/>
<xsl:with-param name="replace" select="'"'" />
<xsl:with-param name="with" select="'""'"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat('"',$name,'","', $encodedvalue,'"')"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template name="display-namevaluedate">
<xsl:param name="name"/>
<xsl:param name="value"/>
<xsl:choose>
<xsl:when test="substring($value,5,1)='-' or substring($value,5,1)='/' ">
<xsl:value-of select="concat('"',$name,'","',substring($value,9,2),substring($value,6,2),substring($value,1,4),'"')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('"',$name,'","',substring($value,1,2),substring($value,4,2),substring($value,7,4),'"')"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template name="display-string">
<xsl:param name="value"/>
<xsl:value-of select="translate($value,',',' ')"/>
</xsl:template>
<xsl:template name="display-date">
<xsl:param name="value"/>
<xsl:choose>
<xsl:when test="substring($value,5,1)='-' or substring($value,5,1)='/' ">
<xsl:value-of select="concat(substring($value,9,2),'-',substring($value,6,2),'-',substring($value,1,4))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat(substring($value,1,2),'-',substring($value,4,2),'-',substring($value,7,4))"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>