Angebot mit Artikel Staffelpreisen

netsrakt

Aktives Mitglied
9. März 2023
26
4
Hallo,

ich möchte in die Vorlage ANGEBOT bei den Artikeln die im Artikelstamm hinterlegten Staffelpreise (Staffel 1 ab 10 Stück/3,20€, Staffel2 ab 100 Stück/3,10€) anzeigen lassen, damit der Kunde weiß, dass er z.B. ab 10 Stück oder 100 Stück einen günstigeren Preis erhält.
Ich finde aber die Varablen nicht, um diese einzufügen.

Kann mir jemand helfen?

Viele Grüße Thomas
 

netsrakt

Aktives Mitglied
9. März 2023
26
4
In der Vorlage "Artikeletikett sind die Staffelpreise als Vaiablen drin...
"Ab " + str$(Artikel.Staffelpreis.Staffel1Mindestmenge,0) + " " + Artikel.Einheit + " " + Fstr$(Artikel.Staffelpreis.Staffel1Nettopreis,"?&.## €")
[Ausdruck: Ab 10 Stück 3,20€]

Im Angebot gibt es diese Variablen nicht. Wie bekommen ich diesen Staffelpreis im Angebot eingebaut?
 

danmexx

Mitglied
10. Februar 2025
2
0
Staffelpreise können im Berichtscontainer als Unterelement der Tabelle: Auftragspositionen hinzugefügt werden.
Hallo!
Wir stehen vor der selben Herausforderung. Wir sitzen nun seit Tagen an der Erstellung des Unterelements - leider aufgrund der fehlenden Dokumentation des LL vollkommen erfolglos.
Wert bei jeder Staffel = 0, auch wenn der Artikel eine Preisstaffel besitzt. Wie wird die Kundengruppe erkannt?
Gibt es zur Erstellung des Unterelements eine Step by Step Anleitung?

EDIT:
Anbei unsere formatierte Lösung zur Abfrage:. Berücksichtigt wird die Kundengruppe und ArtikelID.
Der Code nutz FOR XML PATH um die WawiDB dazu zu bringen mehr als eine Zeile auszuspucken - das kann bei älteren Versionen zu XML-Encoding Fehlern führen.
Ausgegeben wird eine Auflistung wie diese:
Staffelpreise:
ab [Staffelmenge 1] [Verkaufseinheit]: [Staffelpreis 1] ([GRUNDPREIS 1])
ab [Staffelmenge 2] [Verkaufseinheit]: [Staffelpreis 2] ([GRUNDPREIS 2]

Beispiel:
Staffelpreise:
ab 1 Box: 167,69€ (3,49€ / Stück)
ab 20 Box: 147,96€ (3.08€ / Stück)

Code:
Cond(
  JTL_DirectQuery("
    SELECT COUNT(*) 
    FROM tPreis tp
    JOIN tPreisDetail tpd ON tp.kPreis = tpd.kPreis
    JOIN tKundengruppe kg ON tp.kKundenGruppe = kg.kKundengruppe
    WHERE tp.kArtikel = " + ToString$(SalesQuotationPosition.ProductInternalId) + "
    AND kg.cName = '" + Report.Customer.CustomerGroup.Name + "'
    AND (tpd.fNettoPreis > 0 OR tpd.fProzent > 0)
  ") > "0",

  Chr$(13) + Chr$(10) + "Staffelpreise:" + Chr$(10) + JTL_DirectQuery("
    SELECT STUFF(( 
      SELECT CHAR(10) +
        'ab ' + CAST(tpd.nAnzahlAb AS varchar) + ' ' +
        (SELECT TOP 1 es.cName 
         FROM tArtikel a 
         JOIN tEinheitSprache es ON a.kVerkaufsEinheit = es.kEinheit 
         WHERE a.kArtikel = tp.kArtikel AND es.kSprache = 1) + ': ' +
        CASE
          WHEN tpd.fNettoPreis > 0 THEN 
            FORMAT(tpd.fNettoPreis, 'N2', 'de-DE') + ' € (' +
            FORMAT((tpd.fNettoPreis / 
              (SELECT fVPEWert FROM tArtikel WHERE kArtikel = tp.kArtikel)
            ), 'N2', 'de-DE') + ' € / ' +
            (SELECT TOP 1 cName 
             FROM tEinheitSprache 
             WHERE kEinheit = 
              (SELECT kVPEEinheit FROM tArtikel WHERE kArtikel = tp.kArtikel) 
              AND kSprache = 1) + ')'
          WHEN tpd.fProzent > 0 THEN FORMAT(tpd.fProzent, 'N2', 'de-DE') + ' % Rabatt'
          ELSE ''
        END
      FROM tPreis tp
      JOIN tPreisDetail tpd ON tp.kPreis = tpd.kPreis
      JOIN tKundengruppe kg ON tp.kKundenGruppe = kg.kKundengruppe
      WHERE tp.kArtikel = " + ToString$(SalesQuotationPosition.ProductInternalId) + "
      AND kg.cName = '" + Report.Customer.CustomerGroup.Name + "'
      AND (tpd.fNettoPreis > 0 OR tpd.fProzent > 0)
      ORDER BY tpd.nAnzahlAb
      FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') + CHAR(13) + CHAR(10)
  "),

  ""
)

Beste Grüße
Daniel
 
Zuletzt bearbeitet:

Ähnliche Themen