Neu Extern erstelltes SQL - Angebot falsche Werte

Oliver PP

Gut bekanntes Mitglied
28. April 2021
135
16
Hallo,
wir haben in unseren Angeboten und Rechnungen:

Listenpreis - Rabatt - Einzelpreis - Endpreis gesamt

Nun aber ist bei den Angeboten der Einzelpreis falsch berechnet.
Ich komme mit SQL (ist das doch oder? ) nicht weiter.
Sieht jemand wo der Fehler sein könnte in der Formel?

Bei Rechnungen geht es so:
LocCurrL$ ((SalesOrderPosition.NetPricePerUnit - (JTL_DirectQuery ("SELECT CAST(fVKNetto * (fRabatt / 100.0) AS DECIMAL(25,13)) AS DiscountValueNET FROM Verkauf.tAuftragPosition WHERE kAuftragPosition = "+str$(SalesOrderPosition.InternalId,0,0)+""))), JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO))

Bei Angeboten ist folgender Befehl drin aber der bringt ein falsches Ergebnis:
LocCurrL$ ((SalesQuotationPosition.NetPricePerUnit - (JTL_DirectQuery ("SELECT CAST(tBestellpos.nAnzahl * tBestellpos.fVKNetto - tBestellpos.nAnzahl * tBestellpos.fVKNetto * (1.0 - tBestellpos.fRabatt / 100.0) AS DECIMAL(25,13)) AS DiscountValueNET FROM tBestellpos WHERE kBestellPos = "+str$(SalesQuotationPosition.InternalId,0,0)+""))), JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO))

DANKE!
 

Anhänge

  • falscher Einzelpreis.jpg
    falscher Einzelpreis.jpg
    21,4 KB · Aufrufe: 8

sjk

Sehr aktives Mitglied
16. Januar 2019
613
272
Also die zweite Query für die Angebote ergibt überhaupt keinen Sinn. Die zieht den Rabattbetrag auf Positionsebene vom Nettolistenpreis ab, statt den Rabatt pro Stück zu berechnen.
So kommst du auch auf die 141,09 € in deinem Beispiel:
DirectQuery: (2 * 207,48 €) - (2 * 207,48 € * (1 - 16 /100 )) = 66,39 €
Und dann 207,48 € - 66,39 € = 141,09 €
Je höher die Anzahl einer Position also, desto falscher wird das Ergebnis weil immer die Gesamtersparnis auf Positionsebene vom Nettolistenpreis angezogen wird.

Im Gegensatz dazu multipliziert die erste Query für die Rechnung ganz einfach den Nettoeinzelpreis mit dem Rabattfaktor (also den Rabattbetrag pro einzelnem Produkt) und zieht diesen vom Nettolistenpreis ab.

Ich kann das nicht testen, aber das müsste eigentlich funktionieren:
SQL:
LocCurrL$ (
  JTL_DirectQuery (
    "SELECT CAST(fVKNetto * (1.0 - fRabatt / 100.0) AS DECIMAL(25,13))
     FROM tBestellpos
     WHERE kBestellPos = "+str$(SalesQuotationPosition.InternalId, 0, 0)+"
  "),
  JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO)
)
 
  • Gefällt mir
Reaktionen: Oliver PP

John

Sehr aktives Mitglied
3. März 2012
4.144
1.055
Berlin
Das von Hand berechnen zu wollen, ist nicht ratsam.

Nimm einfach die fertige Funktion dbo.ifGetPrice.
Ihr wird kArtikel, kShop, kKunde, kKundengruppe, fAnzahl übergeben und heraus kommt der fertige Preis mit allen Rabatten etc. wie ihn auch die Wawi für den Kunden nutzen würde.
 
  • Gefällt mir
Reaktionen: no80 und Oliver PP

Oliver PP

Gut bekanntes Mitglied
28. April 2021
135
16
Also die zweite Query für die Angebote ergibt überhaupt keinen Sinn. Die zieht den Rabattbetrag auf Positionsebene vom Nettolistenpreis ab, statt den Rabatt pro Stück zu berechnen.
So kommst du auch auf die 141,09 € in deinem Beispiel:
DirectQuery: (2 * 207,48 €) - (2 * 207,48 € * (1 - 16 /100 )) = 66,39 €
Und dann 207,48 € - 66,39 € = 141,09 €
Je höher die Anzahl einer Position also, desto falscher wird das Ergebnis weil immer die Gesamtersparnis auf Positionsebene vom Nettolistenpreis angezogen wird.

Im Gegensatz dazu multipliziert die erste Query für die Rechnung ganz einfach den Nettoeinzelpreis mit dem Rabattfaktor (also den Rabattbetrag pro einzelnem Produkt) und zieht diesen vom Nettolistenpreis ab.

Ich kann das nicht testen, aber das müsste eigentlich funktionieren:
SQL:
LocCurrL$ (
  JTL_DirectQuery (
    "SELECT CAST(fVKNetto * (1.0 - fRabatt / 100.0) AS DECIMAL(25,13))
     FROM tBestellpos
     WHERE kBestellPos = "+str$(SalesQuotationPosition.InternalId, 0, 0)+"
  "),
  JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO)
)
Perfekt! Danke dir, ist korrekt jetzt.
Gruß
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Wawi 1.11. Amazon Rechnungen (extern) in der Kundenansicht verschwunden ?! User helfen Usern - Fragen zu JTL-Wawi 2
Neu Dedicated SQL Server am Limit Merkmale Betrieb / Pflege von JTL-Shop 1
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 2
welche Microsoft SQL Server Version läuft am stabilsten? JTL-Wawi 2.0 2
Neu MS Server und MS SQL Installation von JTL-Wawi 5
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 6
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 4
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4

Ähnliche Themen