Neu Rechenoperationen mit varchar | Versandkosten aus csv-Spalte

DennisNEOLYMP

Mitglied
9. Februar 2022
18
1
Hallo!
Ich importiere Bestellungen von einem Marktplatz per CSV. Da die Versandkosten hier als Spalte hinzugefügt werden, kann ich diese nicht einfach als Position über Ameise importieren. Meine Idee ist, die Versandkosten ins Hinweis/Sonstiges-Feld einzutragen und per Workflow eine Position mit den Versandkosten zu importieren.

Das Problem ist:
Ich kann die in Brutto angegebenen Versandkosten nicht zu Netto umrechnen. Der Versandsteuersatz wird aus der Not heraus aus der ersten Bestellposition übernommen.


SQL:
{% assign versand = Vorgang.Sonstiges.Hinweis | plus: 0 %}
{% assign steuer = Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.MwStSatz | divide: 100 %}
{% assign steuer = 1 | minus: steuer %}
{{ versand }} {{ versand | times: steuer }} {{ Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.MwStSatz }} {{ steuer }}

-> Dies führt zur Ausgabe: 3.99 3.99 19 1
Offenbar ist der Wert ein String und kann nicht berechnet werden.

SQL:
{% assign versand = Vorgang.Sonstiges.Hinweis | plus: 0 %}
{% assign steuer = Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.MwStSatz | divide: 100 %}
{% assign steuer = 1 | minus: steuer %}
{{ versand }} {{ versand | times: steuer }} {{ Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.MwStSatz }} {{ steuer }}

{% capture query %}\
    SELECT CONVERT(float, LTRIM(RTRIM(cText))) FROM tBestellHinweis\
    INNER JOIN tBestellung ON tBestellHinweis.kBestellHinweis=tBestellung.kBestellHinweis\
    WHERE tBestellung.cBestellNr='{{ Vorgang.Stammdaten.Auftragsnummer }}'\
{% endcapture -%}
{% assign Auftrag_Anmerkung = query | DirectQueryScalar | plus: 0 %}
{% if Auftrag_Anmerkung != null -%}
{{ Auftrag_Anmerkung }} {{ Auftrag_Anmerkung | times: 2 }} {% assign Auftrag_Anmerkung  = Auftrag_Anmerkung | times: 2 %} {{ Auftrag_Anmerkung }}
{% endif -%}
> führt zu: 3,99 3,99 3,99
Der Ansatz in SQL funktioniert auch nicht, obwohl eine Konvertierung zu Float stattgefunden hat.


Hat jemand einen Tipp für mich, wie ich die Berechnung zum laufen kriege? Wahlweise auch gern einen komplett anderen Ansatz?
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
592
149
Dein Login mit dem du dich bei der Datenbank einloggst ist ja sicherlich auf deutsch eingestellt. Also liefert dir dein CONVERT(float, LTRIM(RTRIM(cText))) vermutlich 3,99 (Komma als Dezimaltrenner).
Wenn du in Liquid rechnen willst brauchst du aber 3.99 (Punkt als Dezimaltrenner).
Du müsstest dir also mit FORMAT(......, 'N', 'en-us') das entsprechende Format des Wertes aus der Datenbank holen.
 
  • Gefällt mir
Reaktionen: DennisNEOLYMP

DennisNEOLYMP

Mitglied
9. Februar 2022
18
1
Vielen Dank, wenn ich es richtig umgesetzt habe, hat es leider dennoch nicht funktioniert, obwohl die Variablen nun mit Dezimalpunkt ausgegeben werden. Ich glaube also, dass Liquid hier das Problem ist und den Wert dennoch als string einträgt? Der Trick mit plus: 0 sollte da eigentlich Abhilfe schaffen. Berechnet wird leider dennoch nichts:


SQL:
{% capture query %}\

    SELECT FORMAT(CONVERT(float, LTRIM(RTRIM(cText))),'N','en-US') FROM tBestellHinweis\

    INNER JOIN tBestellung ON tBestellHinweis.kBestellHinweis=tBestellung.kBestellHinweis\
    WHERE tBestellung.cBestellNr='{{ Vorgang.Stammdaten.Auftragsnummer }}'\
{% endcapture -%}
{% assign Auftrag_Anmerkung = query | DirectQueryScalar | plus: 0 %}
{% if Auftrag_Anmerkung != null -%}
{{ Auftrag_Anmerkung }} {{ Auftrag_Anmerkung | times: 2 }} {% assign Auftrag_Anmerkung  = Auftrag_Anmerkung | times: 2 %} {{ Auftrag_Anmerkung }}
{% endif -%}
->
3.99 3.99 3.99

Ein kleiner Test verwirrt mich noch mehr. Als könnten Workflows auf einmal gar nicht mehr rechnen:
Code:
{% assign floatde = 10,9 %}
{% assign floaten = 10.9 %}
{{ floatde }} {{ floaten }}  //> 10,9 10,9
{% assign floatdex = floatde | plus: 2 %}
{% assign floatenx = floaten | plus: 2 %}
{{ floatdex }} {{ floatenx }} //> 10,9 10,9
{% assign test = 10 | plus: 1 %}
{{ test }} //> 10
{% assign test = test | plus: test %}
{{ test }} //> 10
 
Zuletzt bearbeitet:

MirkoWK

Aktives Mitglied
14. März 2022
172
58
Guten Morgen,

schreib das Plus mal mit großem P, dann sollte es klappen. Im Liquid-Editor ist es dann auch farblich hervorgehoben.
Das Betrifft dann auch alle Modifizierer.

Viele Grüße
Mirko
 
  • Gefällt mir
Reaktionen: DennisNEOLYMP

mh1

Sehr aktives Mitglied
4. Oktober 2020
592
149
Vielen Dank, wenn ich es richtig umgesetzt habe, hat es leider dennoch nicht funktioniert, obwohl die Variablen nun mit Dezimalpunkt ausgegeben werden(...)
Also meine persönliche Empfehlung ist (da werden jetzt die Shopify/Liquid Verfechter aufschreien) - sowenig Logik wie möglich in Liquid zu packen.
Liquid ist eine Template Sprache. Dafür da, um dir in dynamischen Berichten Werte aus der Datenbank anzuzeigen. Es gibt zwar ein paar einfache Filter und auch bestimmte Kontrollstrukturen, aber auch viele Stolpersteine.

Ich weiß nicht genau, was du vorhast, aber lass doch die Berechnungen von der DB-Engine machen und hol dir per SQL den entsprechend errechneten Wert.
Diesen kannst du dir dann von Liquid anzeigen lassen (ob Liquid dann String oder Numerisch oder sonstwas draus macht ist dann nicht mehr so wichtig) ;)

Ein kleiner Test verwirrt mich noch mehr. Als könnten Workflows auf einmal gar nicht mehr rechnen(....)

Die geschweifte Klammer mit Prozentzeichen kennzeichnen den Kontrollfluss. Da kannst du sowas wie Kontrollstrukturen aufbauen und Werte z.B. nur anzeigen, wenn bestimmte Bedingungen erfüllt sind. z.B. {% if name == 'Michael' %} Hallo Michael!{% endif %}

Wenn du aber ein Objekt referenzieren willst brauchst du doppelt geschweifte Klammern: {{ }} -> In Liquid Sprech ist das ein Output Tag
z.B. Hallo {{ name }}

Wenn du einen Filter anwenden willst (mit dem Pipe Zeichen), dann mußt du das ganze in einen Output Tag packen. z.B. Hallo {{ 'michael' | upcase }}

Wie gesagt: Ich würde sowenig wie möglich mit Liquid berechnen. Viele Stolpersteine bzw. Fehlerquellen.
 
  • Gefällt mir
Reaktionen: absolutbad

DennisNEOLYMP

Mitglied
9. Februar 2022
18
1
schreib das Plus mal mit großem P, dann sollte es klappen. Im Liquid-Editor ist es dann auch farblich hervorgehoben.
Das Betrifft dann auch alle Modifizierer.
Verrückte Welt, das wars. Danke dir!

Also meine persönliche Empfehlung ist (da werden jetzt die Shopify/Liquid Verfechter aufschreien) - sowenig Logik wie möglich in Liquid zu packen.
Liquid ist eine Template Sprache. Dafür da, um dir in dynamischen Berichten Werte aus der Datenbank anzuzeigen. Es gibt zwar ein paar einfache Filter und auch bestimmte Kontrollstrukturen, aber auch viele Stolpersteine.
Wie du vorhergesagt hast, schreie ich hiermit auf. Liquid ist für mich als Shopify-User zu einfach und zu ansehnlich um es nicht statt SQL zu verwenden. Und bis auf solche Spitzfindigkeiten hat es mir noch nie (unverschuldetete) Probleme bereitet. Was ich versucht habe: Netto zu Brutto umrechnen, anhand eines variablen Steuersatzes.


Danke euch beiden für die freundliche Hilfe!

Edit: Das ist es letztendlich geworden: Das Hinweisfeld wird per CSV-Import mit den Brutto-Versandkosten gefüllt. Ich berechne die Nettoversandkosten und füge sie als Freiposition ein.
Screenshot 2022-11-09 114941.png
Nettopreis:
Code:
{% assign versand = Vorgang.Sonstiges.Hinweis | Times: 0.01 %}
{% assign steuer = 100.00 | Plus: Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.MwStSatz | DividedBy: 100 %}
{{ versand | DividedBy: steuer}}
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: MirkoWK

mh1

Sehr aktives Mitglied
4. Oktober 2020
592
149
Verrückte Welt, das wars. Danke dir!


Wie du vorhergesagt hast, schreie ich hiermit auf. Liquid ist für mich als Shopify-User zu einfach und zu ansehnlich um es nicht statt SQL zu verwenden. Und bis auf solche Spitzfindigkeiten hat es mir noch nie (unverschuldetete) Probleme bereitet. Was ich versucht habe: Netto zu Brutto umrechnen, anhand eines variablen Steuersatzes.
😁 :thumbsup:
Nehme deinen Aufschrei hiermit zur Kenntnis 😂

Aber das ist ja das schöne wenn verschiedene Tools zur Verfügung stehen: Jeder kann es mit den Werkzeugen machen, die ihm am sinnvollsten erscheinen
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Inventur - Soll Menge auf Inventurliste, nicht identisch mit Lagerbestand JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu 1 Artikel mit 2 Variationen JTL-Wawi 1.6 2
Neu JTL-SHOP Checkbox mit zwei verlinkungen im Text! Allgemeine Fragen zu JTL-Shop 1
Rechnungsvorlage anpassen - Summe Skonto (mit Screenshots) JTL-Wawi 1.6 0
Neu Kunden nachträglich mit Blowfish-Key entschlüsseln Installation / Updates von JTL-Shop 3
Neu Verbesserungsvorschlag: Lieferadressen TOP ! Aber mit Mankos JTL-Shop - Ideen, Lob und Kritik 2
Neu Wawi 1.6 & 1.7 Varianten importieren mit Aufpreis per Ameise - Fehler mit 0 JTL-Ameise - Fehler und Bugs 3
Neu Lösung für den Ankauf von gebrauchter Ware (einzeln und Konvolut) mit JTL-POS Arbeitsabläufe in JTL-Wawi 0
Verwiesen an Support Preise werden falsch aufsummiert - bzw. nicht mit berechnet JTL-Workflows - Fehler und Bugs 1
Neu Email mit DSGVO-Risiko Warmung Smalltalk 6
Neu DELETE-Anweisung steht in Konflikt mit der REFERENCE-Einschränkung - eazybusiness-Datenbank Error JTL-Wawi - Fehler und Bugs 2
Neu Teillieferung & Teilrechnung in Kombination mit RoKo Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Probleme mit Produktbewertung für Rich-Snippets und Trusted Shops Plugin (Vers. 4.09) [JTL Shop 4.05] Plugins für JTL-Shop 0
Neu Theme Editor mit Shop 5.2.1 Templates für JTL-Shop 0
Neu Zeitlich begrenzter SALE mit JTL und Shopify Shopify-Connector 3
Neu Weiterleitung ohne www - mit www Installation / Updates von JTL-Shop 1
Neu Umsatzstatistik passt nicht mit Verkauf überein JTL-Wawi - Fehler und Bugs 5
Neu Amazon FBA Mulitchannel Aufträge für Webshop / Kaufland / Otto Bestellungen verwenden (Problem mit Sendungsnachverfolgung) Amazon-Anbindung - Ideen, Lob und Kritik 0
In Bearbeitung Automatische An-/Abmeldung mit iButton / Dallas Key Allgemeine Fragen zu JTL-POS 2
Neu Traffic mit monatlichem Rythmus Smalltalk 6
Neu Aufträge importieren/ Kunden mit email finden JTL-Ameise - Fehler und Bugs 0
Freiposition mit Zeilenumbrüchen JTL-Wawi 1.7 0
Neu Preisliste mit Mindestbestellmenge & Abnahmeintervall Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu 💙 Neues Plugin: Audioplayer Plus (stylischer Player mit Playlist für mehrere MP3-Dateien) für JTL-Shop 5 Plugins für JTL-Shop 0
Neu Wer nutzt T&T mit GLS? Erfahrungsaustausch / Probleme / Lösungen / Ideen JTL-Track&Trace - Ideen, Lob und Kritik 0
Neu Bug? Grundpreis bei Staffelpreis mit verschiedenen Einheiten JTL-Shop - Fehler und Bugs 3
Neu Neuen zusätzlichen Shop in der WaWi mit Connector anlegen - Hilfe Gambio-Connector 1
Gelöst Problem mit der Produktseite? HTTP error 500 Installation / Updates von JTL-Shop 4
Neu Artikel mit Gramm-Verkauf / Staffelpreise Fragen rund um LS-POS 0
Neu österreichische Bank mit EBICS für Zahlungsabgleich anbinden Schnittstellen Import / Export 0
Neu xxx arbeitet nicht mit Lagerbestand, daher wird dem Artikel kein Lagerbestand gesetzt. User helfen Usern - Fragen zu JTL-Wawi 2
Neu Einstellen von Produkt mit Variationen nicht möglich eBay-Anbindung - Fehler und Bugs 1
Neu Problem mit Zollerklärung: 10 Gramm Unterschied Artikelgewicht / Paketgewicht? JTL-ShippingLabels - Fehler und Bugs 1
Neu Gesamter Lagerbestand mit Summe Einkaufspreis + Verkaufspreis Individuelle Listenansichten in der JTL-Wawi 3
Neu Galerie mit Composer erstellen - Bilder werden nicht angezeigt Betrieb / Pflege von JTL-Shop 7
Sendungsdatenexport mit Tracking Nummern JTL-Wawi 1.6 0
Neu SQL Datenbank mit JTL-Wawi 1.0.8.1 wiederherstellen User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL Search - Problem mit Umlauten JTL-Search 0
Neu Sicherheitswarnung - Wawi Datenbank (sa) Passwort mit öffentlichem Tool entschlüsselbar JTL-Wawi - Ideen, Lob und Kritik 27
WMS - Pickliste mit verschiedenen Aufträgen komplett bei AMAZON als versendet setzen JTL-Wawi 1.6 1
Neu Massive Probleme mit der DHL Leitcodierung - Workflow programmiert aber funktioniert nicht. User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ausgabe auf Rechnung wenn ein Artikel mit 0% Steuer enthalten ist. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Auktion mit Mindestpreis nicht möglich eBay-Anbindung - Fehler und Bugs 0
Issue angelegt [WAWI-66930] Workflow mit Positionstyp lässt sich nicht generieren JTL-Workflows - Fehler und Bugs 5
Neu JTL-Pos mit RKSV Einrichtung / Updates von JTL-POS 1
Neu Wunsch - 'Plattformen > Amazon Angebote' > Suchfeld mit regex JTL-Wawi - Ideen, Lob und Kritik 1
Neu Wunsch - jtl "erweiterte-suche" mit regex JTL-Wawi - Ideen, Lob und Kritik 3
Neu Bestellungen, mit Artikeln eines bestimmen Lieferanten Individuelle Listenansichten in der JTL-Wawi 1
Neu Seit Update Sonderzeichen-Chaos beim Scannen mit Handscanner Einrichtung / Updates von JTL-POS 0
Neu Kunde bestellt unregistriert im JTL Shop, beim zweiten mal mit identischen Eingaben wird er in der WaWi nicht zusammengeführt? Allgemeine Fragen zu JTL-Shop 2

Ähnliche Themen