Suche Denkanstoß für Kundenadresse
Hallo, ich erweitere gerade die Vorlage „Rechnungen“ und suche nach einer finanzamtskonformen Lösung für die Rechnungsadressen. Im Moment arbeitet man ja mit den Stammdaten. Sind in einer Firma mehrere Ansprechpartner, oder zieht ein Kunde um, sind die Stammdaten futsch. Wie beuge ich das vor?:
1. Die Kunden mit einer Untertabelle „Ansprechpartner“ erweitern, die in der Rechnung ausgewählt werden?
2. Kann man die Adresse in der Rechnung (ähnlich wie die Positionen) endgültig übertragen? Klar könnte man sicher eine weitere Untertabelle für die Rechnungsadressen + Ansprechpartner anlegen. Aber das erscheint mir übertrieben.
3. Gibt es ein Script, welches die Adresse übernimmt und vor Änderungen bewahrt, sofern diese geändert wird? Mit Ninox-Script bin ich noch nicht weit gekommen.
Hoffe, ihr könnt mir einen Tipp geben :-)
9 Antworten
-
Hi paul-geren ,
willkommen im Forum ;-)
Zu deinen Fragen/Überlegungen:- Ja, hab ich auch so gemacht.
- Das geht auch und würde ich auch mit Untertabelle machen.
Ich hatte aber bisher noch keine Notwendigkeit dafür.
Hm... Bei Umzug kann es unter Umständen auch eine neue Steuernummer geben, evtl. muss Du dann eh einen neuen Kundendatensatz anlegen? - Auch hier würde ich das mit einer Untertabelle 'Änderungen' machen, mit eine Skript, dass bei Änderungen im Datensatz Kunde ein neuer Datensatz in 'Änderungen' erzeugt wird.
Hierzu dieses Skript aus der Beispiel-DB im Webinar-Team:
let myid := this.Nr; let myold := 'old Name'; let mynew := Name; let neu := (create 'Tabelle der Änderungen'); neu.('alter Name bis Änderung' := myold); neu.(Haupttabelle := myid); 'old Name' := Name; neu.('Änderungszeitpunkt' := now()); neu.('geändert von' := userName()); neu.('geändert zu' := mynew)
Tipp: Wenn Du noch nicht im Webinar-Team bist , schicke eine kurze Email an support@ninox.com mit der Bitte dich ins Team einzuladen.
Dort sind viele Datenbanken zu finden in denen schon diverse Räder erfunden wurden ;-)Viel Erfolg
Ronald
PS: Ich bin gespannt, ob es zu deinen Fragen noch andere Tipps gibt. Gibt ja viele Wege nach Rom... -
Hallo, ich mache mal wieder den Klugscheißer ;-)
Rechnungsdaten sollten grundsätzlich immer fest in die Rechnungstabelle geschrieben werden. Adresse, Preise, Konditionen - einfach alles, was auch auf der gedruckten Rechnung steht.
Das heißt: Die betreffenden Datenfelder für Adresse usw. müssen auch in der Rechnungstabelle angelegt werden. Dann können die Daten beim Generieren einer neuen Rechnung anhand der Verknüpfung zum Kunden aus dessen Stammdatensatz ausgelesen und in den Rechnungsdatensatz übertragen werden.
Dasselbe gilt für Rechnungspositionen, die in einer Untertabelle der Rechnung gespeichert werden. Wenn dort bspw. auf die Artikelstammdaten zugegriffen wird, dann sollte man auch die einmal auslesen und fest im Positionsdatensatz speichern, nicht einfach nur referenzieren. Einzige Ausnahme sind simple Formeln, die auf Felder innerhalb des betreffenden Datensatzes zugreifen (z. B. Menge * Preis).
Im Gegensatz zu vielen anderen Daten, bei denen eine automatische Aktualisierung erwünscht ist, sind Rechnungen halt statische Dokumente, die sich nach Druck/Versand nicht verändern dürfen. Und übrigens auch niemals gelöscht, sondern immer stormiert werden sollten.
In der Ninox-Vorlage "Rechnungen" ist das leider nicht konsequent umgesetzt. Sie muss deshalb vor einer produktiven Nutzung angepasst werden.
-
Hi planox. pro ,
Vielen Dank für die klugen Infos! Wieder was gelernt... Da hab ich auch gleich ein paar Hausaufgaben für morgen ;-)
-
Hallo, hey gleich mal ein paar Antworten :-) vielen Dank!
Ich werde das mal im Laufe der Woche ausprobieren und mich zurückmelden.
-
So, leider Doppelpost. Aber anders gings leider nichts.
Ich hab mir jetzt sehr schwer damit getan und bin auf folgende Lösung gekommen (die hier so ähnlich auch im Forum an anderer Stelle erwähnt wurde):
Ich lege in der Rechnungstabelle noch einmal zusätzlich die Felder „Ort“, „Straße“, „PLZ“ und „Name“ an und Feld der verknüpften Tabelle „Kunde“ bekommt einen Trigger, dass er mir meine neuen Felder ausfüllt. In der Rechnung ändere ich zb. Kunden.Ort zu Rechnungs.Ort.
Würdet ihr das als simple und zuverlässige Lösung empfehlen oder gibt es etwas, was technisch dagegen spricht?
-
paul-geren said:
In der Rechnung ändere ich zb. Kunden.Ort zu Rechnungs.Ort.Das verstehe ich nicht. Zur Sicherheit vielleicht noch mal konkret am Beispiel der Adresse.
Datenfelder Tabelle 'Kunden':
KundenNr, Name, Strasse, PLZ, Ort, Rechnungen (1:N-Verknüpfung zur gleichnamigen Tabelle) u. a.Datenfelder Tabelle 'Rechnungen':
RechNr, Kunden (N:1-Verknüpfung zur gleichnamigen Tabelle), Empfänger, Strasse, PLZ, Ort u.a.Erstellt man nun eine neue Rechnung, dann können bspw. mit einem Trigger "Nach Änderung" im Verknüpfungsfeld 'Kunden' automatisch die aktuellen Daten des gewählten Kunden ausgelesen und fest in den Datensatz der Rechnung übernommen werden:
if Kunden then 'Empfänger' := Kunden.Name; Strasse := Kunden.Strasse; PLZ := Kunden.PLZ; Ort := Kunden.Ort; end
Die Adressdaten sind dann doppelt gespeichert, ein mal in der Kunden-Tabelle (Stammdaten) und noch mal in der Rechnung. Ändert man irgendwann die Adresse in den Stammdaten, weil der Kunde umgezogen ist, bleibt die Adresse in der Rechnung davon unberührt. Das muss sie auch, denn zum Zeitpunkt der Rechnungsstellung war es ja die korrekte Adresse, und sie steht auch auf der gedruckten Rechnung.
Bei jeder neuen Rechnung wird dann die neue Adresse des Kunden eingesetzt.
Und dasselbe gilt wie gesagt auch für alle anderen Rechnungsdaten: Konditionen, Zahlungsziele, Positionen, Preise - der Rechnungsdatensatz und die gedruckte Rechnung müssen immer exakt übereinstimmen. Dabei auch die eigenen Absenderdaten nicht vergessen: Adresse, Steuernummer usw.
Zu empfehlen ist das ggf. übrigens auch für andere Dokumente ("Handelsbriefe") wie Angebote, Bestellungen, Auftragsbestätigungen etc. pp., denn auch sie gehören zum Schriftverkehr und müssen archiviert werden.
Content aside
- vor 2 JahrenZuletzt aktiv
- 9Antworten
- 147Ansichten
-
4
Folge bereits