63 lines
4.6 KiB
XML
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; </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, '"')"><xsl:value-of select="substring-before($string, '"')"/>""<xsl:call-template name="escape_quote">
|
|
<xsl:with-param name="string" select="substring-after($string, '"')"/></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, '
')"><xsl:value-of select="substring-before($string, '
')"/>@@<xsl:call-template name="escape_linebreaks">
|
|
<xsl:with-param name="string" select="substring-after($string, '
')"/>
|
|
</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> |