Files
Facilitor/CUST/MARX/xsl/cXML.xsl
Marcel Bourseau 4177593840 MARX#39622: MARX#39622: Roadmap: AX-Bestellingen via Mareon laten verlopen
svn path=/Website/branches/v2016.3/; revision=33032
2017-03-03 16:57:49 +00:00

180 lines
6.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:decimal-format name="european" decimal-separator="." grouping-separator=","/>
<xsl:param name="mode"/>
<xsl:template match="bestelopdracht">
<!--Facilitor custom XSL template for cXML bestelopdracht-->
<xsl:element name="cXML">
<xsl:attribute name="version">1.2.016</xsl:attribute>
<xsl:attribute name="payloadID">
<xsl:value-of select="key"/>
</xsl:attribute>
<xsl:attribute name="timestamp">
<xsl:value-of select="datum/jaar"/>-<xsl:value-of select="datum/maand"/>-<xsl:value-of select="datum/dag"/>T<xsl:value-of select="datum/tijd"/>:00+01:00</xsl:attribute>
<xsl:attribute name="xml:lang">NL</xsl:attribute>
<Header>
<From>
<xsl:element name="Credential">
<xsl:attribute name="domain">
<xsl:value-of select='bestelling/voor/afdeling/bedrijf/naam'/>
</xsl:attribute>
<!--Klantcode / GLN van de woco -->
<Identity><xsl:value-of select='bestelling/voor/afdeling/bedrijf/leverancier_nr'/></Identity>
</xsl:element>
</From>
<To>
<xsl:element name="Credential">
<xsl:attribute name="domain">
<xsl:value-of select="bedrijf/naam"/>
</xsl:attribute>
<!--Klantcode / GLN van de leverancier -->
<Identity><xsl:value-of select='bedrijf/leverancier_nr'/></Identity>
</xsl:element>
</To>
<Sender>
<Credential domain="Mareon">
<Identity><xsl:value-of select="id"/></Identity>
</Credential>
<UserAgent/>
</Sender>
</Header>
<Request>
<OrderRequest>
<xsl:element name="OrderRequestHeader">
<xsl:attribute name="orderID">
<xsl:value-of select='bestelling/kenmerk[@key=6]'/>
</xsl:attribute>
<xsl:attribute name="orderDate">
<xsl:value-of select="datum/jaar"/>-<xsl:value-of select="datum/maand"/>-<xsl:value-of select="datum/dag"/>
</xsl:attribute>
<Total>
<Money currency="EUR">
<xsl:value-of select="format-number(sum(bestelopdrachtitem/totaal), '0.00', 'european')"/>
</Money>
</Total>
<ShipTo>
<xsl:element name="Address">
<xsl:attribute name="addressID">
<xsl:value-of select='bestelling/kenmerk[@key=1]'/>
</xsl:attribute>
<Name xml:lang="NL"><xsl:value-of select='bestelling/kenmerk[@key=1]'/></Name>
<PostalAddress>
<DeliverTo>
<xsl:value-of select='bestelling/voor/afdeling/bedrijf/naam'/>
</DeliverTo>
<Street>
<xsl:value-of select='bestelling/kenmerk[@key=3]'/>
</Street>
<City>
<xsl:value-of select='bestelling/kenmerk[@key=5]'/>
</City>
<State/>
<PostalCode>
<xsl:value-of select='bestelling/kenmerk[@key=4]'/>
</PostalCode>
<Country isoCountryCode="NL"/>
</PostalAddress>
</xsl:element>
</ShipTo>
<!--
<BillTo>
<xsl:element name="Address">
<xsl:attribute name="addressID">SKAF</xsl:attribute>
<Name xml:lang="NL">
<xsl:value-of select="afleveradres/naam"/>
</Name>
<PostalAddress>
<Street>
<xsl:value-of select="factuuradres/post_adres"/>
</Street>
<City>
<xsl:value-of select="factuuradres/post_plaats"/>
</City>
<State/>
<PostalCode>
<xsl:value-of select="factuuradres/post_postcode"/>
</PostalCode>
<Country isoCountryCode="NL"/>
</PostalAddress>
</xsl:element>
</BillTo>
-->
<!--
<Contact>
<Name xml:lang="NL">
<xsl:value-of select="bestelling/aanvrager/naam_full"/>
</Name>
<Email>
<xsl:value-of select="bestelling/aanvrager/email"/>
</Email>
</Contact>
-->
<Extrinsic name="MareonOrderId">
<xsl:value-of select="id"/>
</Extrinsic>
</xsl:element>
<xsl:for-each select="bestelopdrachtitem">
<xsl:sort select="bestelitem/kenmerk[@key='8']"/>
<xsl:element name="ItemOut">
<xsl:attribute name="quantity">
<xsl:value-of select="aantal"/>
</xsl:attribute>
<xsl:attribute name="lineNumber">
<xsl:value-of select="bestelitem/kenmerk[@key='8']"/>
</xsl:attribute>
<xsl:attribute name="requestedDeliveryDate">
<xsl:value-of select="../bestelling/leverdatum/jaar"/>-<xsl:value-of select="../bestelling/leverdatum/maand"/>-<xsl:value-of select="../bestelling/leverdatum/dag"/>
</xsl:attribute>
<ItemID>
<SupplierPartID>
<!-- GTIN is in cXML geen node, wel het leveranciers artikelnummer, dus die pakken we dan uit flexprop key 9 -->
<!-- Wanneer opdrachtgever wel GTIN codes gebruikt, zal dan wellicht niet voor een leverancier zijn die cXML wil of kan ontvangen -->
<!-- Oftewel dit uitwisselformaat is alleen geschikt voor leveranciers met een eigen artikelnummer (hetgeen best gangbaar is) -->
<xsl:value-of select="bestelitem/kenmerk[@key='9']"/>
</SupplierPartID>
</ItemID>
<ItemDetail>
<UnitPrice>
<Money currency="EUR">
<xsl:value-of select="format-number(prijs, '0.00', 'european')"/>
</Money>
</UnitPrice>
<Description xml:lang="NL">
<xsl:value-of select="bestelitem/srtdeel/omschrijving"/>
</Description>
<UnitOfMeasure>
<xsl:value-of select="bestelitem/srtdeel/eenheid"/>
</UnitOfMeasure>
<Classification domain=""/>
</ItemDetail>
</xsl:element>
</xsl:for-each>
</OrderRequest>
</Request>
</xsl:element>
</xsl:template>
<xsl:template match="facilitor">
<xsl:apply-templates select="bestelopdracht"/>
</xsl:template>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$mode='getExtension'">
<xsl:element name="format">
<xsl:element name="extension">xml</xsl:element>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="facilitor"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>