Neu Rechenoperationen mit varchar | Versandkosten aus csv-Spalte

Dennis030

Aktives Mitglied
9. Februar 2022
46
15
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
1.873
561
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: Dennis030

Dennis030

Aktives Mitglied
9. Februar 2022
46
15
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

Sehr aktives Mitglied
14. März 2022
827
304
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: Dennis030

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
561
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

Dennis030

Aktives Mitglied
9. Februar 2022
46
15
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
1.873
561
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 Konfigurationsgruppe mit Auslesen Arbeitsabläufe in JTL-Wawi 1
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
Neu Nach Wawi Update Probleme mit Rechnungsdrucker JTL-POS - Fehler und Bugs 4
Neu Mariadb 12 mit 5.7.1 Allgemeine Fragen zu JTL-Shop 0
Neu Pickliste mit maximaler SKU-Anzahl – gibt es eine Lösung? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 4
Neu Mit Fehlern beendet - Object reference not set to an instance of an object. JTL-Track&Trace - Fehler und Bugs 0
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Probleme mit Artikelansicht oder Verkauf, etc. JTL-Wawi 2.0 0
Fehler mit Zahlungsabgleich JTL-Wawi 1.11 9
Eigener Drittshop-Connector (jtl/connector 5.3): valide Variationskombinationen werden mit „besitzt keine Variationen" nicht gesendet JTL-Wawi 1.11 1
Neu Problem mit dem JTL-Connector – Invalid Shopify connection credentials. Shopify-Connector 3
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL Artikelanlage mit KI beschleunigen User helfen Usern - Fragen zu JTL-Wawi 2
Neu DHL 4.0 mit JTL-ShippingLabels funktioniert nicht JTL-ShippingLabels - Fehler und Bugs 2
Neu Amazon FBA Bestellungen doppelt mit _1 Amazon-Anbindung - Fehler und Bugs 3
Fehler beim Abgleich mit Amazon JTL-Wawi 2.0 10
Abgleich Amazon mit Fehlern beendet 1.11.08 JTL-Wawi 1.11 14
Rabatt Coupons in Verbindung mit Staffelpreisen - JTL 1.11.9, JTL Shop JTL-Wawi 1.11 0
Worker 2.0 starten mit deak. Abgleichen? JTL-Wawi 2.0 3
Fehler beim Abgleich mit dem JTL-Shop JTL-Wawi 2.0 12
Neu OnFinds: KI-Suche für JTL-Shop mit fairer Abrechnung nach Artikelanzahl. 30 Tage kostenlos testen Plugins für JTL-Shop 0
Neu Abrechnung / Auslieferung von Aufträgen mit Gutschriftverfahren Arbeitsabläufe in JTL-Wawi 3
Neu Dummy-ID oder Freiposition für Angebot mit mehrzeiliger Beschreibung JTL-Wawi - Ideen, Lob und Kritik 7
Neu JTL Shop 5.7.1 mit Fehlern - versandarten zahlungsarten nicht änderbar, leere weiße Seite JTL-Shop - Fehler und Bugs 5
JTL Ameise Lieferantenbestellung mit VPE importieren oder umrechnen JTL-Wawi 1.11 0
Jtl pos Einstellungen mit wiwa 2.02 JTL-Wawi 1.11 0
Anmeldung mit OAuth bei Versanddienstleister notwendig JTL-Wawi 1.10 5
Problem mit Hermes Österreich Sendungsnummern – Fehler beim Amazon-Abgleich in JTL-Wawi JTL-Wawi 1.10 0
Bestellabgleich mit JTL Wawi und WooCommerce 1h verzögert JTL-Wawi 2.0 0
Neu PayPal Käufername stimme nicht mit Liederadresse überein! Business Jungle 0
Neu 1.11.8 Auftagsimport mit Artikelnummern mapping JTL-Ameise - Fehler und Bugs 0
Neu Neuerdings E-Mail benachrichtigung bei "Pick up in Store", allerdings mit E-Mail "Bestellung wurde abgeholt" Shopify-Connector 0
Neu Abgleich mit Amazon Sendungsnummer / Rechnung Arbeitsabläufe in JTL-Wawi 0
Neu JTL-Wawi mit Claude, ChatGPT, Openclaw/Hermes oder CRM System verbinden User helfen Usern 2
Neu Custom Checkout - Conversion optimiert mit Speicherung von Standard-Versandart und Zahlungsart am Kunden JTL-Shop - Ideen, Lob und Kritik 1
Neu Auftrag - Lieferstatus mit Workflow exportieren Arbeitsabläufe in JTL-Wawi 3
In Diskussion Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 7
Ameise-Export: Umsatzsteuer stimmt nicht mit Differenz aus Netto und Brutto überein (insbesondere bei mehreren Steuersätzen) JTL-Wawi 1.11 0
Neu Klarna konnte mit den angegebenen Daten keine Sitzung erstellen. Einige Feldbedingungen wurden verletzt. Betrieb / Pflege von JTL-Shop 0
Neu Funktioniert Shop 5.7 mit MariaDB 10.5.29? Installation / Updates von JTL-Shop 1
Sanktionsprüfung mit JTL JTL-Wawi 1.10 0
Versandart Standartpaketversand mit Express JTL-Wawi 1.10 2
Artikeletiketten mit Angabe des Herstellers+Adresse JTL-Wawi 1.10 3
Neu Versandkostenersparnis mit JTL-Shipping: Vergünstigte Versandlabels ohne individuelle Rahmenverträge mit Versanddienstleistern User helfen Usern - Fragen zu JTL-Wawi 1
Probleme mit Worker und JTL-App JTL-Wawi 2.0 5
Neu Probleme mit Import Datenbank vom Server auf lokal JTL-Wawi 2.0 User helfen Usern - Fragen zu JTL-Wawi 4
Neu Angeblich noch keine Verknüpfung mit DPD Meta ??? JTL-ShippingLabels - Fehler und Bugs 1
Neu fEKNetto - zwei Einträge je LiefArtikel mit gleichem Lieferant - nur einer aktualisiert User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL-Verknüpfung mit EC-Gerät fehlerhaft JTL-POS - Fehler und Bugs 0
Neu Problem mit Dantezeile und fehlerhafte Angebotsgültigkeit. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2

Ähnliche Themen