0

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

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hi paul-geren ,

    willkommen im Forum ;-)
    Zu deinen Fragen/Überlegungen:

    1. Ja, hab ich auch so gemacht.
    2. 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?
    3. 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...

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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.

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro geb dir vollkommen recht. Die Vorlage muss man dringend bearbeiten, lässt man alles beim Original, so darf man nie die Rechnungspositionen ändern, da diese dann in allen geschriebenen Rechnungen zwar noch als PDF vorhanden sind, jedoch im Frondend verändert werden.

      Ich habe es über ein DMFA gelöst, dabei bekommen die Kunden Rubriken um die Rechnungspositionen übersichtlich zu halten, gleichzeitig kann man diese immer, auch direkt aus dem offenen Tab ändern. Letztlich werden alle für die Rechnung relevanten sachen, in die Untertabelle Einzelpositionen geschrieben.

    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hi planox. pro ,

    Vielen Dank für die klugen Infos! Wieder was gelernt... Da hab ich auch gleich ein paar Hausaufgaben für morgen ;-)

    • paulgeren
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo, hey gleich mal ein paar Antworten :-) vielen Dank!

    Ich werde das mal im Laufe der Woche ausprobieren und mich zurückmelden.

    • paulgeren
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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?

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      paul-geren was ich nicht ganz verstehe ist das warum. Ein rechnugsempfänger hat doch nur eine Anschrift,  eventuell mal nen anderen Empfänger innerhalb dieser Anschrift. 

      dann lieber den rest wie planox richiger weise sagt umbauen. Denn das original template ist nicht zu gebrauchen.

      • paulgeren
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Ist bei euch noch nie ein wiederkehrender Kunde umgezogen oder hat seine Adresse geändert? Also wäre dann meine Lösung praktikabel? ;-)

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen
    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.