Trigger für prozentuale Aufpreise in Variationskombinationen

mylederhosen.com

Aktives Mitglied
1. November 2011
36
0
WAWI 099890 SHOP 3.16

Hallo zusammen,
wir arbeiten viel mit prozentuellen Aufschlägen, und habe hier ein Skript erstellt, dass vielleicht einmal von JTL als Inspiration nehmen könnte :)
Dieses Skript benutzt den Namen der Variation, hier 'Größe' und sucht dort nach der Zeichenkette (+10%), dann berechnet es die Aufschläge für fVKBrutto und fVKNetto über die enthaltene Zahl, hier also 10 ! Das Skript nimmt in diesem Beispiel auch den Aufpreis auf die Variation mit dem Namen "Material" und berücksichtigt diesen.
Beispiel: Hose 100€, Material +50€, Größe +10% -> Preis: 165€
Beispiel: Hose 100€, Material + 0€, Größe + 10% -> Preis: 110€
Beispiel: Hose 100€, Material +50€, Größe ohne Aufschlag -> Preis 150€

Das Skript ist als Trigger angelegt, so dass meine Mitarbeiterin nichts starten oder kontrollieren muß.
Funktioniert zauberhaft. Viel Spaß

PHP:
USE eazybusiness;
GO
IF OBJECT_ID ('dbo.abv_update_aufpreise','TR') IS NOT NULL
   DROP TRIGGER dbo.abv_update_aufpreise;
GO
CREATE TRIGGER dbo.abv_update_aufpreise on [eazybusiness].[dbo].[tartikel]
AFTER UPDATE
AS
DECLARE @artikelnummer as varchar(20);
BEGIN
    SELECT @artikelnummer = kArtikel from INSERTED;
    update [eazybusiness].[dbo].[tartikel]  
        set fVKBrutto = source.fVKBrutto,
        fVKNetto = source.fVKNetto
    from  [eazybusiness].[dbo].[tartikel] a
        inner join
        ( select kArtikel, vaterBrutto, fAufpreisLeder, 
            fVKBrutto = case when perc is not null THEN round((z.vaterBrutto + z.fAufpreisLeder) * ( 1 + (convert(numeric,perc)/100)),0) ELSE z.vaterBrutto + z.fAufpreisLeder END,
            fVKNetto = case when perc is not null THEN round((z.vaterBrutto + z.fAufpreisLeder) * ( 1 + (convert(numeric,perc)/100)) / 1.19 ,2) ELSE round((z.vaterBrutto + z.fAufpreisLeder) / 1.19,2) END
          FROM
          (SELECT a.[kArtikel],v.fvkbrutto vaterBrutto ,ewl.[fAufpreis] fAufpreisLeder
            , perc = case when charindex('(+',ew.cName) > 0 then substring(ew.cName,charindex('(+',ew.cName) +2,(charindex('%)',ew.cName) - (charindex('(+',ew.cName)+2))) else null END
            FROM [eazybusiness].[dbo].[tartikel] v, [eazybusiness].[dbo].[tartikel] a 
            ,[eazybusiness].[dbo].[tEigenschaftKombiWert] ek, [eazybusiness].[dbo].[teigenschaft] e ,[eazybusiness].[dbo].[teigenschaftwert] ew
            ,[eazybusiness].[dbo].[tEigenschaftKombiWert] ekl, [eazybusiness].[dbo].[teigenschaft] el ,[eazybusiness].[dbo].[teigenschaftwert] ewl
            where v.kVaterArtikel = 0
            and a.kVaterArtikel = @artikelnummer
            and a.kVaterArtikel = v.kArtikel
            and v.nIstVater = 1
            and a.keigenschaftkombi = ek.keigenschaftkombi
            and e.keigenschaft = ek.keigenschaft 
            and e.cName = 'Größe'
            and ew.keigenschaftwert = ek.keigenschaftwert
            and a.keigenschaftkombi = ekl.keigenschaftkombi
            and el.keigenschaft = ekl.keigenschaft 
            and el.cName = 'Material'
            and ewl.keigenschaftwert = ekl.keigenschaftwert
          ) z
        ) as source
    on a.kartikel = source.kartikel
END
GO
IF OBJECT_ID ('dbo.abv_aufpreise','TR') IS NOT NULL
   DROP TRIGGER dbo.abv_aufpreise;
GO
CREATE TRIGGER dbo.abv_aufpreise on [eazybusiness].[dbo].[tartikel]
AFTER INSERT
AS
DECLARE @artikelnummer as varchar(20);
DECLARE @vater as varchar(20);
BEGIN
    SELECT @artikelnummer = kArtikel from INSERTED;
    SELECT @vater = kVaterArtikel from INSERTED;
    update [eazybusiness].[dbo].[tartikel]  
        set fVKBrutto = source.fVKBrutto,
        fVKNetto = source.fVKNetto
    from  [eazybusiness].[dbo].[tartikel] a
        inner join
        ( select kArtikel, vaterBrutto, fAufpreisLeder, 
            fVKBrutto = case when perc is not null THEN round((z.vaterBrutto + z.fAufpreisLeder) * ( 1 + (convert(numeric,perc)/100)),0) ELSE z.vaterBrutto + z.fAufpreisLeder END,
            fVKNetto = case when perc is not null THEN round((z.vaterBrutto + z.fAufpreisLeder) * ( 1 + (convert(numeric,perc)/100)) / 1.19 ,2) ELSE round((z.vaterBrutto + z.fAufpreisLeder) / 1.19,2) END
          FROM
          (SELECT a.[kArtikel],v.fvkbrutto vaterBrutto ,ewl.[fAufpreis] fAufpreisLeder
            , perc = case when charindex('(+',ew.cName) > 0 then substring(ew.cName,charindex('(+',ew.cName) +2,(charindex('%)',ew.cName) - (charindex('(+',ew.cName)+2))) else null END
            FROM [eazybusiness].[dbo].[tartikel] v, [eazybusiness].[dbo].[tartikel] a 
            ,[eazybusiness].[dbo].[tEigenschaftKombiWert] ek, [eazybusiness].[dbo].[teigenschaft] e ,[eazybusiness].[dbo].[teigenschaftwert] ew
            ,[eazybusiness].[dbo].[tEigenschaftKombiWert] ekl, [eazybusiness].[dbo].[teigenschaft] el ,[eazybusiness].[dbo].[teigenschaftwert] ewl
            where v.kVaterArtikel = 0
            and a.kArtikel= @artikelnummer
            and v.kArtikel = @vater
            and a.kVaterArtikel = v.kArtikel
            and v.nIstVater = 1
            and a.keigenschaftkombi = ek.keigenschaftkombi
            and e.keigenschaft = ek.keigenschaft 
            and e.cName = 'Größe'
            and ew.keigenschaftwert = ek.keigenschaftwert
            and a.keigenschaftkombi = ekl.keigenschaftkombi
            and el.keigenschaft = ekl.keigenschaft 
            and el.cName = 'Material'
            and ewl.keigenschaftwert = ekl.keigenschaftwert
          ) z
        ) as source
    on a.kartikel = source.kartikel
END


GO
 
Ähnliche Themen
Titel Forum Antworten Datum
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 1
Neu Suche 10–15 JTL-Shops für kostenlose JTL-Shop-Analyse (verschiedene Branchen) Dienstleistung, Jobs und Ähnliches 0
Neu Wir suchen Mitstreiter für ein gemeinsames Konfigurator-Projekt Dienstleistung, Jobs und Ähnliches 0
Neu Wir suchen Mitstreiter für ein gemeinsames Konfigurator-Projekt User helfen Usern - Fragen zu JTL-Wawi 7
In Diskussion Workflow für Erinnerungen an bevorstehende Lieferungen JTL-Workflows - Ideen, Lob und Kritik 0
Neu Wie stelle ich Retouren in JTL für DPD ein? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Wroker macht keinen abgleich für Kaufland JTL-Wawi 2.0 8
Neu Beta-Tester gesucht: Produktdaten aus Artikelfotos schneller für JTL/CSV vorbereiten Dienstleistung, Jobs und Ähnliches 0
Neu Kundengruppeneinstellungen für Mindestabnahme und Abnahmeintervall löschen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Installationsdatei für JTL‑Wawi 1.9.6.5 Installation von JTL-Wawi 2
Wie lange braucht ihr aktuell für die Anlage eines neuen Artikels? JTL-Wawi App 3
Neu kostenlos: DHL Sendungsverfolgung für JTL-Wawi – Web-Dashboard mit Frühwarnsystem Schnittstellen Import / Export 0
In Diskussion Tool für Abrechnung von Fulfillment Dienstleistungen Arbeitsabläufe im Fulfillment Network 0
Neu Widerrufsbutton für JTL-Shop 4 Allgemeine Fragen zu JTL-Shop 17
Neu Keine Labels für Warenpost international über Packtisch JTL-ShippingLabels - Fehler und Bugs 8
Neu Laut Backend Shop Update für Shop 5.71 - Download nicht zu finden? Betrieb / Pflege von JTL-Shop 3
Neu Meta Shop seit September 2025: JTL-Lösung für neue Checkout-URL gesucht Allgemeine Fragen zu JTL-Shop 0
Angebliche externe Aufträge "für Rechnungserstellung freigeben" und Rechnungen erstellen. Gibt es dazu eine akzeptable Erklärung von JTL? JTL-Wawi 1.11 1
Neu Artikelname & Beschreibung angepasst für jeweiligen Marktplatz Arbeitsabläufe in JTL-Wawi 1
Neu OnFinds: KI-Suche für JTL-Shop mit fairer Abrechnung nach Artikelanzahl. 30 Tage kostenlos testen Plugins für JTL-Shop 0
API 2.1 für OnPrem? JTL-Wawi 2.0 6
Neu Dummy-ID oder Freiposition für Angebot mit mehrzeiliger Beschreibung JTL-Wawi - Ideen, Lob und Kritik 7
Neu Neue Kennzeichnungspflicht für Elektrogeräte (Altgeräterücknahme) Betrieb / Pflege von JTL-Shop 4
Neu Freelancer für JTL-Wawi, Shop & Prozessautomatisierung Dienstleistung, Jobs und Ähnliches 2
Neu Exportgenehmigung / Ausfuhrgenehmigung automatisch für Auslandskunden als Aufpreis Allgemeine Fragen zu JTL-Shop 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
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0
Neu Seller2Go – Mobile App & JTL-Plugin für Bestellungen, Support und Produktmanagement Plugins für JTL-Shop 0
Neu Neues Plugin: Erweiterter Widerrufsbutton für JTL-Shop Plugins für JTL-Shop 9
JTL-Worker 2.0 - Einrichtung als Dienst - Auffälligkeiten und Problemlösungen für manche JTL-Wawi 2.0 3
Neu Muss man für DHL Versenden 4.0 einen neuen Benutzer bei DHL anlegen? JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Retourenetikett für Briefe kann unter Internetmarke 2.0 nicht erstellt werden JTL-ShippingLabels - Fehler und Bugs 5
Neu Neue Tracking-URL für DPD JTL-ShippingLabels - Fehler und Bugs 4
AboutYou keine Felder für GPSR Daten SCX-(Ninepoint)-Anbindungen 0
globale Angebotsvorlage anpassen für eBay Angebote "Artikelspezifisch" JTL-Wawi 1.11 0
Neu Connectorupdates für Shopware 6.7.7 bzw 6.7.8? Shopware-Connector 39
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu DRIGEND HILFE!!! Ebay Abgleich endet mit Arithmetischer Überlauffehler für tinyint-Datentyp, Wert = -1. Die Anweisung wurde beendet. eBay-Anbindung - Fehler und Bugs 4
Neu Stornobeleg für Verkauf ohne Rechnung User helfen Usern - Fragen zu JTL-Wawi 9
Neu Neuentwicklung - Helpdesk für JTL Wawi - Eure Ideen und Wünsche? User helfen Usern - Fragen zu JTL-Wawi 4
Kein changelog für 1.11.8 JTL-Wawi 1.11 29

Ähnliche Themen