Unterschiedliche Preise für einen Artikel in Abhängigkeit von einem Kundenmerkmal
Hallo liebe Ninox-Community,
ich habe mich jetzt über die letzten Tage in das Tool eingefuchst und bin von dessen Möglichkeiten begeistert. Zu meinem "Glück" fehlt mir noch eine letzte Funktion, die ich allerdings nicht alleine hinbekomme.
Folgende Ausgangslage. Ich habe einen Produktkatalog mit unterschiedlichen Preiskategorien (A und B).
In meiner Angebotsübersicht gibt es eine Untertabelle "Rechnungspositionen", in der ich in Abhängigkeit vom Käufermerkmal (Bestand- vs Neukunde) gern entweder die Preise der Kategorie A oder die der Kategorie B anzeigen lassen möchte.
Wie gehe ich am besten vor? Ich bin für jede Hilfe sehr dankbar.
10 Antworten
-
Hallo Christian, woher kann Ninox denn wissen, ob der Käufer Preis A oder Preis B bekommt? Ist diese Information in den Stammdaten des Kunden/Käufers hinterlegt, bspw. als Auswahlfeld (KATEGORIE)? Falls ja, wäre noch die Frage, auf welche Weise die Daten aus dem Produkt-Datensatz in die Rechnungspositionen übertragen werden. Ich sehe da eine Formel, das sollte man aber nicht machen, weil sich Rechnungen dann im Nachhinein ändern können, wenn im Produkt der Preis geändert wird.
Ich würde deshalb die die Rechnungsposition N:1 mit dem Produkt verknüpfen und im Verknüpfungsfeld (PRODUKTKATALOG) einen Trigger "Nach Änderung" hinterlegen:
PREIS := if PRODUKTKATALOG then switch number('Käufer'.KATEGORIE) do case 1: PRODUKTKATALOG.'Preis A' case 2: PRODUKTKATALOG.'Preis B' end else null end
Auf dieselbe Weise könnte man bspw. auch die Produktnummer, -beschreibung und ggf. weitere Daten aus dem Produktdatensatz auslesen und in Datenfelder der Rechnungsposition übernehmen.
-
Hallo planoxpro,
vielen Dank Dir für die schnelle Antwort. Kurz zu den von Dir aufgeworfenen Fragen:
Ja, Ninox soll anhand einer Information in den Stammdaten des Kunden (z.B. KATEGORIE: Bestandskunde) automatisch eine Preiskategorie zuordnen und bei den entsprechenden Produkten nutzen.
Aktuell ziehe ich wie oben im zweiten Screenshot zu sehen in der Angebotsübersicht:
1. Die "Käufer" aus einer anderen Tabelle "Kunden" (Angebotsübersicht -> Kunde; N:1)
2. In der Untertabelle "Rechnungsposition" die Produktbeschreibung und (aktuell händisch) entweder die Preise der Kategorie A oder B aus einer dritten Tabelle "Produkte".
Thema Formel zum Übertrag der Produkt-Datensätze: Ja, da bin ich bei Dir. Wenn sich die Rechnungen im Nachgang verändern, weil man einem Preis im Produkt ändert, wäre das nicht im Sinne des Erfinders.
Okay: Ich verknüpfe also die Rechnungspositionen N:1 mit den Produkten und lege für das Verknüpfungsfeld zum Produktkatalog den Trigger "Nach Änderung" an. Dein Skript verstehe ich auf anhieb leider noch nicht - ggf. kannst Du mir da nochmal ein wenig helfen und mir sagen, was es genau macht. Vielen Dank Dir schon jetzt.
-
WOW - vielen herzlichen Dank für die schnelle Rückmeldung und die gute Erklärung. Ich probiere das Ganze aus und melde mich nochmal, wenn's geklappt hat. Merci!
-
Hallo panoxpro,
ich krieg's leider nicht hin. Wäre es möglich, dass ich Dir ein Backup meine Projekts schicke und Du mir das Skript an den richtigen Stelle einpflegst? Ich glaube ich habe verstanden wie es funktionieren soll, allerdings bekomme ich es dennoch nicht zum Laufen.
Vielen Dank Dir schon jetzt für Deine Unterstützung.
PS: Ist so was in einem der Demo-Projekte ggf. schon eingesetzt worden? Dann kann ich es mir auch dort mal ansehen. -
Hey planoxpro,
ich hab es tatsächlich hinbekommen. Vielen Dank für Deine Hilfe. Falls wer anders mal das Problem hat. Hier kurz in Bildern:
Bis zu dem Status mit den Rechnungspositionen bin ich über die Video-Tutorials gekommen.Jetzt war die Herausforderung, dass ich über den Kundenstatus, die Höhe des Preises für die Produkte verändern wolle. Hierfür habe ich jetzt das von planoxpro vorgeschlagene Skript auf meine Tabellen- und Spaltennamen angepasst:
'Preis pro Einheit' := if Produkt then
switch number(Rechnungen.'Käufer'.Status) do
case 1:
Produkt.'Preis A aus Produkttabelle'
case 2:
Produkt.'Preis B aus Produkttabelle'
end
else
null
end
Mir war anfangs nicht ganz klar, wo das Skript hingehört - das hier ist m.E. die richtige Stelle:
Ich habe bei den Rechnungspositionen ein Produkt ausgewählt und es öffnet sich ein weiteres Bearbeitungsfeld mit den Infos zum Produkt:Nach einem Klick auf den Schraubenschlüssel kann man im sich öffnenden Menü das Skript im Feld "Trigger nach Änderung" platzieren:
Verändert man jetzt in der Tabelle Kunde, den Status des Kunden z.B. auf "Interessent", wir bei den Artikeln der Rechnungsposition der Preis für diesen Kundenstatus verwendet. Perfekt!
-
Eine Frage noch an : Der Sachverhalt wird in ähnlicher Weise auch in den Ninox Blog-Tutorials erklärt:
https://forum.ninox.de/t/35yxw96/trigger-auf-feld-ebene
Wenn man die Artikel liest, merkt man, dass die ursprünglich mal aus einem zusammenhängenden Tutorial stammen müssen. Gibt es das noch irgendwo? So wie es jetzt ist, muss man sich die Artikel mühevoll zusammensuchen uns es fehlt leider die Hälfte. Vielen Dank für den tollen Support!
Content aside
- vor 3 TagenZuletzt aktiv
- 10Antworten
- 49Ansichten
-
2
Folge bereits