Neu Rechenoperationen mit varchar | Versandkosten aus csv-Spalte

Dennis030

Aktives Mitglied
9. Februar 2022
31
5
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.261
337
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
31
5
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
605
206
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.261
337
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
31
5
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.261
337
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 CSV Auftrag mit Artikeldaten (GTIN, Beschreibung, etc.) exportieren Arbeitsabläufe in JTL-Wawi 0
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 0
Neu Packtisch: In der Liste der Aufträge neue Feld-Spalte mit Spalteneditor hinzufügen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Wechsel WAWI Hosting von JTL mit RDP auf ecomDATA User helfen Usern - Fragen zu JTL-Wawi 2
Neu Eigene Seiten mit Plugin erstellen Technische Fragen zu Plugins und Templates 0
Neu Alles Artikel "unverkäuftlich" mit Urlaubshinweis JTL-Ameise - Ideen, Lob und Kritik 2
Wo befindet sich das Feld mit der Information für "Zustandsbeschreibung" auf Ebay? JTL-Wawi 1.8 9
Neu Ärger mit WMS mobile - Scan bestätigt nicht zuverlässig die Eingabe Gelöste Themen - JTL-WMS / JTL-Packtisch+ 4
Neu 2x SumUp als Zahlungsmethode mit 2x verschiedenen SumUp Accounts aber 1x Kartenlesegerät? Allgemeine Fragen zu JTL-POS 0
Neu Service-Bestellungen / Dienstleistungen mit WMS abbilden Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Nach Umstellung auf WMS Probleme mit der JTL Ameise Installation von JTL-WMS / JTL-Packtisch+ 0
Neu Auftrag mit Freiposition Menge 0 läßt sich nicht ausliefern + wird nicht auf Lieferschein angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
In Bearbeitung POS verbindet nicht mit SumUp Air Allgemeine Fragen zu JTL-POS 2
Neu Probleme mit Artikelzustand bei Ebay Laufene Artikel ändern Einrichtung und Installation von JTL-eazyAuction 3
Auktionen mit Anpassungsfunktion Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Videoeinbindung mit OnePage Composer Technische Fragen zu Plugins und Templates 1
Neu Zahlungsziel mit Skonto im Auftrag ausweisen Gelöste Themen in diesem Bereich 4
Neu Probleme mit dem Divi Theme WooCommerce-Connector 5
Neu Hilfe - Performanceproblem mit Shop durch Worker JTL-Shop - Fehler und Bugs 27
Neu JTL Wawi Bild-Upload unvollständig oder nur als mit meinem PC hochgeladen zu sehen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Shop Suchfunktion Probleme mit (HTML-)Sonderzeichen JTL-Shop - Fehler und Bugs 0
Neu Anleitung: Artikeletiketten für Auftrag, Rechnung, Lieferschein etc. drucken mit Etikettenanzahl = Artikelanzahl User helfen Usern - Fragen zu JTL-Wawi 0
Neu Amazon + Multishop mit evtl 2 Mandanten Starten mit JTL: Projektabwicklung & Migration 3
Neu Kuriosum - Shop 5.1.5 mit Datenbank 5.2.4 Mischbetrieb nach fehlgeschlagenem Update Installation / Updates von JTL-Shop 8
Neu Lieferantenbestellung als CSV mit selbst festgelegten Spalten per Mail senden Arbeitsabläufe in JTL-Wawi 1
Ameise - Auftragsimport mit mehreren Artikelpositionen JTL-Wawi 1.8 1
Neu Eigener (Home-) Server mit Windows UND Linux Starten mit JTL: Projektabwicklung & Migration 23
In Bearbeitung Bon mit Artikeln: Keine Auslieferung? Auftrags-Übernahme: Keine Anpassungen möglich? Allgemeine Fragen zu JTL-POS 2
Neu Automatisierter Import Händler-CSV, Problem mit unterschiedlichen Artikeln bei gleicher EAN Schnittstellen Import / Export 7
Neu Probleme mit Swatches Allgemeine Fragen zu JTL-Shop 7
Gelöst Hardware für häufige Konstellationen mit USB und Swissbit TSE-Problem ab Android 11 JTL-POS - Fragen zu Hardware 5
Neu DPD-Versand in Nicht-EU-Länder mit JTL-Shipping JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu Aufträge zusammen fasse, mit getrennter Rechnung wegen JTL2DATEV Export ? User helfen Usern - Fragen zu JTL-Wawi 0
Neu PayPal Checkout mit Apple Pay und Google Pay Plugins für JTL-Shop 1
Neu Erstellen eines Sets, als Variation in Zusammenhang mit einer Stückliste Arbeitsabläufe in JTL-Wawi 2
Neu Workflow-Auswahl ... mit ins Kontext-Menü aufnehmen (rechten Maustaste) JTL-Wawi - Ideen, Lob und Kritik 2
Pluginmanager startet nicht mit aktivem IonCube Loader Einrichtung JTL-Shop5 2
Issue angelegt [WAWI-75449] Artikel duplizieren - ASIN wird nicht mit dupliziert. JTL-Wawi - Fehler und Bugs 1
Neu JTL Shipping Labels mit DHL Unterschied Versenden, Versenden 3.0 und Intraship User helfen Usern - Fragen zu JTL-Wawi 8
Warum sind die Rechnungen aus Aufträge(mit Rechnung(Vollständig)) nicht unter Rechnung zu finden JTL-Wawi 1.7 0
Neu Probleme mit 2FA O365 JTL-Wawi - Fehler und Bugs 1
Neu Navigation/Kategorie mit Link verknüpfen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Ansprechpartner mit mehreren E-Mails Adressen in den Kunden User helfen Usern - Fragen zu JTL-Wawi 1
Beantwortet #GEFUNDEN# Suche jemand , der uns eine (automatische) SQL Abfrage erstellen kann mit Mail Ausgabe Dienstleistung, Jobs und Ähnliches 2
Neu Problem mit Produkt-Link (?isAjax) JTL-Shop - Fehler und Bugs 3
Neu JTL-Wawi mit Shopware/Magnalister User helfen Usern - Fragen zu JTL-Wawi 3
Neu Bestände von der Wawi mit ebay abgleichen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel mit Variationen? Allgemeine Fragen zu JTL-Shop 2
Neu Start mit JTL- allgemeine Erfahrungen User helfen Usern 4
Neu Woocommerce mit JTL Connector "Die Shop-URL verweist nicht auf einen gültigen Shop" WooCommerce-Connector 4

Ähnliche Themen