<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;border-color:#aaa;}
.tg td{font-family:Verdana, sans-serif;font-size:13px;padding:10px 5px;text-align:center;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-top-width:1px;border-bottom-width:1px;border-color:#aaa;color:#333;background-color:#fff;}
.tg th{font-family:Verdana, sans-serif;font-size:13px;font-weight:bold;text-align:center;padding:10px 5px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-top-width:1px;border-bottom-width:1px;border-color:#aaa;color:#fff;background-color:#f67f00;}
.tg .tg-0lax{text-align:left;vertical-align:top}
.tg .tg-dg7a{background-color:#FCFBE3;text-align:left;vertical-align:top}
.tg .tg-open{background-color:#ff8181;text-align:left;vertical-align:top}
.tg .tg-part{background-color:#fffe65;text-align:left;vertical-align:top}
</style>
<span style="font-size: 10pt">
<p /></span><span style="font-family: Verdana"><span style="font-size: 10pt; font-family: Verdana">
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
Hi {{ Vorgang.Stammdaten.Kunde.Adresse.Vorname }}.
{% else -%}
Hallo {{ Vorgang.Stammdaten.Kunde.Adresse.Vorname }},
{% endif -%}
<br>
<br>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
With this e-mail you will receive the current status of your order.
{% else -%}
mit dieser E-Mail erhältst du den aktuellen Status zu deiner Bestellung.
{% endif -%}
<table class="tg">
{% capture query -%}
DECLARE @kBestellung AS INT = {{ Vorgang.Stammdaten.InterneAuftragsnummer }};
SELECT ROW_NUMBER() OVER (ORDER BY tbestellpos.cArtNr) AS Nummer,
tbestellpos.cArtNr AS Artikelnummer,
tbestellpos.cString AS Bezeichnung,
IIF(ISNULL(BestellposLieferung.fAnzahlFehlbestandEigen, 0.0) > tbestellpos.nAnzahl, tbestellpos.nAnzahl, ISNULL(BestellposLieferung.fAnzahlFehlbestandEigen, 0.0)) AS OffeneMenge,
CONVERT(DATE, ISNULL(BestellposLieferung.dLieferungEingetroffen, CASE WHEN ISNULL(tBestellung.dLieferdatum, GETDATE()) <= GETDATE() THEN GETDATE() ELSE tBestellung.dLieferdatum END)) AS VoraussichtlichVerfügbarAm,
CASE WHEN CONVERT(DATE, ISNULL(BestellposLieferung.dLieferungEingetroffen, CASE WHEN ISNULL(tBestellung.dLieferdatum, GETDATE()) <= GETDATE() THEN GETDATE() ELSE tBestellung.dLieferdatum END)) < GETDATE() THEN 1 ELSE 0 END AS nIstVergangenheit,
ISNULL(tArtikelAttributSpracheDE.cWertVarchar, '') AS cAttributDE,
ISNULL(tArtikelAttributSpracheEN.cWertVarchar, '') AS cAttributEN
FROM dbo.tbestellpos
JOIN dbo.tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
-- Eigenes Feld 'Text Lieferzeit DE' ermitteln
LEFT JOIN dbo.tAttributSprache AS tAttributSpracheDE ON tAttributSpracheDE.cName = 'Text Lieferzeit DE'
AND tAttributSpracheDE.kSprache = 0
LEFT JOIN dbo.tArtikelAttribut AS tArtikelAttributDE ON tbestellpos.tArtikel_kArtikel = tArtikelAttributDE.kArtikel
AND tArtikelAttributDE.kAttribut = tAttributSpracheDE.kAttribut
LEFT JOIN dbo.tArtikelAttributSprache AS tArtikelAttributSpracheDE ON tArtikelAttributDE.kArtikelAttribut = tArtikelAttributSpracheDE.kArtikelAttribut
AND tArtikelAttributSpracheDE.kSprache = 0
LEFT JOIN dbo.tAttributSprache AS tAttributSpracheEN ON tAttributSpracheEN.cName = 'Text Lieferzeit ENG'
AND tAttributSpracheDE.kSprache = 0
LEFT JOIN dbo.tArtikelAttribut AS tArtikelAttributEN ON tbestellpos.tArtikel_kArtikel = tArtikelAttributEN.kArtikel
AND tArtikelAttributEN.kAttribut = tAttributSpracheEN.kAttribut
LEFT JOIN dbo.tArtikelAttributSprache AS tArtikelAttributSpracheEN ON tArtikelAttributEN.kArtikelAttribut = tArtikelAttributSpracheEN.kArtikelAttribut
AND tArtikelAttributSpracheEN.kSprache = 0
JOIN
(
SELECT vBestellPosLieferInfo.kBestellung,
vBestellPosLieferInfo.kBestellPos,
vBestellPosLieferInfo.fAnzahlOffen,
vBestellPosLieferInfo.fAnzahlFehlbestandEigen,
MIN(ZulaufAnDatum.dLieferdatum) AS dLieferungEingetroffen
FROM Versand.vBestellPosLieferInfo
LEFT JOIN
(
SELECT tLieferantenBestellungPos.kArtikel,
tLieferantenBestellungPos.dLieferdatum,
SUM(tLieferantenBestellungPos.fAnzahlOffen) OVER (PARTITION BY tLieferantenBestellungPos.kArtikel ORDER BY tLieferantenBestellungPos.dLieferdatum ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS fZulaufAnDatum
FROM tLieferantenBestellungPos
JOIN dbo.tLieferantenBestellung ON tLieferantenBestellungPos.kLieferantenBestellung = tLieferantenBestellung.kLieferantenBestellung
WHERE tLieferantenBestellung.nStatus IN (20, 30) -- Lieferantenbestellung mit Zuläufen berücksichtigen
AND tLieferantenBestellungPos.kArtikel > 0
) ZulaufAnDatum ON ZulaufAnDatum.kArtikel = vBestellPosLieferInfo.kArtikel
LEFT JOIN
(
--
-- Artikel ausschließen mit dem Eigenen Feld LieferverzögerungKeineMail = 1
--
SELECT DISTINCT tArtikel.kArtikel
FROM dbo.tAttributSprache
JOIN dbo.tArtikelAttribut ON tAttributSprache.kAttribut = tArtikelAttribut.kAttribut
JOIN dbo.tArtikelAttributSprache ON tArtikelAttribut.kArtikelAttribut = tArtikelAttributSprache.kArtikelAttribut
JOIN dbo.tArtikel ON tArtikelAttribut.kArtikel = tArtikel.kArtikel
WHERE tAttributSprache.cName = 'LieferverzögerungKeineMail'
AND tArtikelAttributSprache.nWertInt = 1
) AS ausgeschlosseneArtikel ON ZulaufAnDatum.kArtikel = ausgeschlosseneArtikel.kArtikel
WHERE vBestellPosLieferInfo.fAnzahlFehlbestandEigen <= ISNULL(ZulaufAnDatum.fZulaufAnDatum, vBestellPosLieferInfo.fAnzahlFehlbestandEigen)
AND vBestellPosLieferInfo.fAnzahlFehlbestandEigen > 0.0
AND ausgeschlosseneArtikel.kArtikel IS NULL
GROUP BY vBestellPosLieferInfo.kBestellung,
vBestellPosLieferInfo.kBestellPos,
vBestellPosLieferInfo.fAnzahlOffen,
vBestellPosLieferInfo.fAnzahlFehlbestandEigen,
vBestellPosLieferInfo.kArtikel
) AS BestellposLieferung ON BestellposLieferung.kBestellPos = tbestellpos.kBestellPos
WHERE tbestellpos.tBestellung_kBestellung = @kBestellung
AND tbestellpos.nType IN (0, 1, 11, 17, 18) -- die Typen hab ich aus spReservierungenAktualisieren kopiert + 0 für Freipositionen
--AND ISNULL(tbestellung.dLieferdatum, DATEADD(dd, 2, GETDATE())) < dLieferungEingetroffen --Einkommentieren wenn das vor. Lieferdatum von Aufträgen vor der eintreffenden Lieferung liegen soll
{% endcapture -%}
{% assign Positionen = query | DirectQuery -%}
{% for pos in Positionen.Daten -%}
{% if pos.Nummer == 1 -%}
<br>
<br>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
The following items are unfortunately not yet available:
{% else -%}
Folgende Artikel sind leider noch nicht verfügbar:
{% endif -%}
<br>
<br>
<tr>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
<th class="tg-0lax">Quantity</th>
<th class="tg-0lax">Item number </th>
<th class="tg-0lax">Name</th>
<th class="tg-0lax">Expected to be available from</th>
{% else -%}
<th class="tg-0lax">Anzahl</th>
<th class="tg-0lax">Artikelnummer</th>
<th class="tg-0lax">Bezeichnung</th>
<th class="tg-0lax">Voraussichtlich lieferbar ab</th>
{% endif -%}
</tr>
{% endif -%}
<tr>
<td class="{{tg-part}}">{{pos.OffeneMenge | FormatNumber: 'N0', 'de-DE'}}</td>
<td class="{{tg-part}}">{{pos.Artikelnummer}}</td>
<td class="{{tg-part}}">{{pos.Bezeichnung}}</td>
{% if pos.OffeneMenge == 0 -%}
<td class="{{tg-part}}">geliefert</td>
{% else -%}
{% if pos.nIstVergangenheit == 1 -%}
<td class="{{tg-part}}">{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}Delivery date open (will be submitted later){% else -%}Liefertermin offen (wird nachgereicht){% endif -%}</td>
{% else -%}
{% if pos.cAttributDE != "" -%}
<td class="{{tg-part}}">{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}{{pos.cAttributDEN}}{% else -%}{{pos.cAttributDE}}{% endif -%}</td>
{% else -%}
<td class="{{tg-part}}">{{pos.VoraussichtlichVerfügbarAm | FormatDate: 'dd.MM.yyyy', 'de-DE' }}</td>
{% endif -%}
{% endif -%}
{% endif -%}
</tr>
{% endfor -%}
</table>
{% capture query -%}
DECLARE @kBestellung AS INT = {{ Vorgang.Stammdaten.InterneAuftragsnummer }};
SELECT ROW_NUMBER() OVER (ORDER BY tbestellpos.cArtNr) AS Nummer,
tbestellpos.cArtNr AS Artikelnummer,
tbestellpos.cString AS Bezeichnung,
ISNULL(BestellposLieferung.fAnzahlReserviertEigen, 0.0) AS fMengeReserviert
FROM dbo.tbestellpos
JOIN dbo.tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
JOIN
(
SELECT reservierteMengen.kBestellPos,
SUM(reservierteMengen.fAnzahlReserviertEigen) AS fAnzahlReserviertEigen
FROM
(
SELECT vBestellPosLieferInfo.kBestellPos,
vBestellPosLieferInfo.fAnzahlReserviertEigen
FROM Versand.vBestellPosLieferInfo
WHERE vBestellPosLieferInfo.fAnzahlReserviertEigen > 0.0
UNION ALL
SELECT tPicklistePos.kBestellPos,
tPicklistePos.fAnzahl AS fAnzahlReserviertEigen
FROM dbo.tPicklistePos
LEFT JOIN dbo.tLieferscheinPos ON tPicklistePos.kLieferscheinPos = tLieferscheinPos.kLieferscheinPos
WHERE tLieferscheinPos.kLieferscheinPos IS NULL
) AS reservierteMengen
GROUP BY reservierteMengen.kBestellPos
) AS BestellposLieferung ON BestellposLieferung.kBestellPos = tbestellpos.kBestellPos
WHERE tbestellpos.tBestellung_kBestellung = @kBestellung
AND tbestellpos.nType IN (0, 1, 11, 17, 18) -- die Typen hab ich aus spReservierungenAktualisieren kopiert + 0 für Freipositionen
{% endcapture -%}
{% assign Positionen = query | DirectQuery -%}
{% for pos in Positionen.Daten -%}
{% if pos.Nummer == 1 -%}
<br>
<br>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
We have reserved these items for you:
{% else -%}
Folgende Artikel sind für dich reserviert:
{% endif -%}
<br>
<br>
<table class="tg">
<tr>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
<th class="tg-0lax">Quantity</th>
<th class="tg-0lax">Item Number</th>
<th class="tg-0lax">Name</th>
{% else -%}
<th class="tg-0lax">Menge</th>
<th class="tg-0lax">Artikelnummer</th>
<th class="tg-0lax">Bezeichnung</th>
{% endif -%}
</tr>
{% endif -%}
<tr>
<td class="{{tg-part}}">{{pos.fMengeReserviert | FormatNumber: 'N0', 'de-DE'}}</td>
<td class="{{tg-part}}">{{pos.Artikelnummer}}</td>
<td class="{{tg-part}}">{{pos.Bezeichnung}}</td>
</tr>
{% endfor -%}
</table>
{% capture query -%}
DECLARE @kBestellung AS INT = {{ Vorgang.Stammdaten.InterneAuftragsnummer }};
SELECT ROW_NUMBER() OVER (ORDER BY tbestellpos.cArtNr) AS Nummer,
tbestellpos.cArtNr AS Artikelnummer,
tbestellpos.cString AS Bezeichnung,
SUM(tLieferscheinpos.fAnzahl) AS fGeliefert
FROM dbo.tbestellpos
JOIN dbo.tLieferscheinpos ON tbestellpos.kBestellPos = tLieferscheinpos.kBestellPos
JOIN dbo.tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tBestellung_kBestellung = @kBestellung
AND tbestellpos.nType IN (0, 1, 11, 17, 18) -- die Typen hab ich aus spReservierungenAktualisieren kopiert + 0 für Freipositionen
GROUP BY tbestellpos.cArtNr,
tbestellpos.cString
{% endcapture -%}
{% assign Positionen = query | DirectQuery -%}
{% for pos in Positionen.Daten -%}
{% if pos.Nummer == 1 -%}
<br>
<br>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
The following items have already been delivered or are on their way:
{% else -%}
Folgende Artikel wurden bereits geliefert oder sind auf dem Weg:
{% endif -%}
<br>
<br>
<table class="tg">
<tr>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
<th class="tg-0lax">Quantity</th>
<th class="tg-0lax">Item number</th>
<th class="tg-0lax">Name</th>
{% else -%}
<th class="tg-0lax">Menge</th>
<th class="tg-0lax">Artikelnummer</th>
<th class="tg-0lax">Bezeichnung</th>
{% endif -%}
</tr>
{% endif -%}
<tr>
<td class="{{tg-part}}">{{pos.fGeliefert | FormatNumber: 'N0', 'de-DE'}}</td>
<td class="{{tg-part}}">{{pos.Artikelnummer}}</td>
<td class="{{tg-part}}">{{pos.Bezeichnung}}</td>
</tr>
{% endfor -%}
</table>
<br>
<br>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
The delivery times are current statements from our suppliers and manufacturers.<br>
We will keep you informed about the delivery status on a weekly basis.<br>
<br>
We apologise for the delay and thank you for your patience.<br>
If you have any questions about your order, please reply directly to this email.
{% else -%}
Bei den angegebenen Lieferzeiten handelt es sich um aktuelle Aussagen von Lieferanten und Herstellern.<br>
Wir halten dich mit Informationen zum Lieferstatus wöchentlich auf dem Laufenden.<br>
<br>
Wir entschuldigen uns für die mögliche Verzögerung der Lieferung und bedanken uns für deine Geduld.<br>
Solltest du Fragen zu deiner Bestellung haben, antworte bitte direkt auf diese E-Mail.
{% endif -%}
<br>
<br>
{% if Vorgang.Stammdaten.Kunde.Kundensprache.ISO == "eng" -%}
Best regards
{% else -%}
Viele Grüße
{% endif -%}
<br>JTL-Software-GmbH
<br>
<br>
<p style="margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" /><span style="color: #3b3838"><img alt="" src="https://www.webneo.de/wp-content/uploads/2018/08/logo_jtl-software-e1562846396632-520x130.png" width="384" height="81" />
<p />
<p><span style="font-size: 8pt; font-family: Verdana; color: #767171">JTL-Software-GmbH | Rheinstraße 7 | 41836 Hückelhoven | Germany<br /><a href="" target="_blank">info@jtl-software.de</a> | +49-(0)2433 8056801<br /><br />Registergericht: Amtsgericht Mönchengladbach, HRB 12450<br />Geschäftsführer: Janusch Lisson, Thomas Lisson COO: Ralph Schweiker<br />Umsatzsteuer-Identifikationsnummer: DE257864472<br /><br /></span></p></span>