Files
Facilitor/CUST/MARX/xsl/A_GetBestelOpdracht.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

63 lines
4.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="http://www.gs1.nl" version="1.0">
<xsl:output method="text" encoding="UTF-8"/>
<!-- bes_bestelling_memo alvast gereserveerd, nu nog leeg gelaten, indien gevuld komt die in bes_bestelling_opmerking C320 terecht -->
<!-- bes_orderline_art_code kan naast GTIN worden gebruikt, de naam XML-tag (node) is onbekend en hier is SidB term gebruikt (SuppliersTradeItemId), kan evt zo worden aangepast. GTIN of dit veld komt in bes_srtdeel_nr C32 terecht -->
<!-- bes_orderline_art_descr wordt nog niet gevuld, komt wel in bes_srtdeel_omschrijving C100 terecht indien gevuld -->
<!-- bes_orderline_art_prijs is leeg komt als 0 in bes_srtdeel_prijs_prijs terecht -->
<!-- bes_orderline_art_btw wordt nu hard op 21 gezet gezien dat vanuit AX dit niet wordt aangeleverd en komt in bes_srtdeel_btw terecht -->
<!-- Let op: namespace ns1 is zomaar een naam, en is nodig vanwege die default lege namespace die in de input XML staat -->
<xsl:template match="ns1:Order">gln_supplier;gln_buyer;bes_afleveradres_code;bes_afleveradres_straat_huisnr;bes_afleveradres_postcode;bes_afleveradres_plaats;bes_bestelling_memo;bes_ordernr;bes_aflever_datumbes_orderline_nr;bes_orderline_gtin;bes_orderline_art_code;bes_orderline_art_descr;bes_orderline_art_eenheid;bes_orderline_art_aantal;bes_orderline_art_prijs;bes_orderline_art_btw
<xsl:for-each select="ns1:OrderLine"><xsl:value-of select="../ns1:OrderHeader/ns1:Supplier/ns1:GLN"/>;<xsl:value-of select="../ns1:OrderHeader/ns1:Buyer/ns1:GLN"/>;<xsl:value-of select="../ns1:OrderHeader/ns1:DeliveryParty/ns1:PartyName"/>;<xsl:value-of select="../ns1:OrderHeader/ns1:DeliveryParty/ns1:StreetAndNumber"/>;<xsl:value-of select="../ns1:OrderHeader/ns1:DeliveryParty/ns1:Postcode"/>;<xsl:value-of select="../ns1:OrderHeader/ns1:DeliveryParty/ns1:CityName"/>;;<xsl:value-of select="../ns1:OrderHeader/ns1:Document/ns1:DocumentNumber"/>;<xsl:value-of select="../ns1:OrderHeader/ns1:Document/ns1:Date"/>;<xsl:value-of select="ns1:LineItemNumber"/>;<xsl:value-of select="ns1:GTIN"/>;<xsl:value-of select="ns1:TradeItemId/ns1:TradeItemNumber"/>;;<xsl:value-of select="ns1:OrderedQuantity/ns1:MeasureUnitQualifier"/>;<xsl:value-of select="ns1:OrderedQuantity/ns1:Quantity"/>;;21;&#10;</xsl:for-each>
</xsl:template>
<xsl:template name="vrije_tekst">
<xsl:param name="p_string"/>
<xsl:variable name="l_string_esc_quotes"><xsl:call-template name="escape_quote"><xsl:with-param name="string" select="$p_string"/></xsl:call-template></xsl:variable>
<xsl:variable name="l_string_esc_linebreaks"><xsl:call-template name="escape_linebreaks"><xsl:with-param name="string" select="$l_string_esc_quotes"/></xsl:call-template></xsl:variable>"<xsl:value-of select="$l_string_esc_linebreaks"/>"</xsl:template>
<xsl:template name="escape_quote">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string, '&quot;')"><xsl:value-of select="substring-before($string, '&quot;')"/>&quot;&quot;<xsl:call-template name="escape_quote">
<xsl:with-param name="string" select="substring-after($string, '&quot;')"/></xsl:call-template></xsl:when>
<xsl:otherwise><xsl:value-of select="$string"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="escape_linebreaks">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string, '&#xA;')"><xsl:value-of select="substring-before($string, '&#xA;')"/>@@<xsl:call-template name="escape_linebreaks">
<xsl:with-param name="string" select="substring-after($string, '&#xA;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise><xsl:value-of select="$string"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*">
<xsl:choose>
<!-- Zonder prefix en facilitor-node, dan -->
<!-- als response: toevoegen envelop! -->
<!-- als update: 1-op-1 door! -->
<xsl:when test="substring-before(name(),concat(':', local-name()))='' and local-name()='Order'">
<xsl:value-of select="name()"/>
<xsl:apply-templates select="ns1:Order"/>
</xsl:when>
<!--xsl:when test="local-name()='Envelope'">
<xsl:apply-templates select="soap:Envelope"/>
</xsl:when-->
<!-- Met prefix, dus insert/update: prefix weg + evt. velden "injecteren"! -->
</xsl:choose>
</xsl:template>
</xsl:stylesheet>