0

Ursprungsrechnung nach Änderung und PDF-Druck behalten

Hallo,

ich habe folgendes Problem. Ich hab mir einen Button erstellt um eine Rechnung als PDF zu erstellen und automatisch in meiner Rechnungstabelle als Bild  anzuzeigen. Wenn ich die Rechnung jetzt nachträglich ändere und erneut den Button drücke, ist die Ursprungsrechnung weg. Wenn ich sie nicht vorher ausgedruckt habe, kann ich die Änderung nicht mehr nachvollziehen. Hat jemand einen Tip?

Hier der Code: 

let myFileName := "Rechnung_" + 'Rechnungs-Nr.:' + "_vom_" + format(if 'Rechnungs-Datum:' then 'Rechnungs-Datum:' else today() end, "YYYY-MM-DD") + ".pdf";

importFile(this, printAndSaveRecord(this, "FeD"), myFileName);

'PDF-Rechnung' := myFileName

 

Danke

6 Antworten

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

    Moin m. naeve ,

    die sollte dann im Anhang des Datensatzen zu finden sein.
    Auf die Büroklammer klicken:

    VG Ronald

      • m_naeve
      • vor 2 Jahren
      • Gemeldet - anzeigen

      DIGITOOL 

      danke für die schnelle Antwort. Leider erscheint die Rechnung nicht unter der Büroklammer, sondern wird in einem Bildfeld angezeigt. Erst wenn ich da drauf klicke öffnet es sich in Vorschau. Theoretisch fehlt die die Anweisung das Bild unter der Büroklammer zu speichern. Bisher gelingt es mir da nur unter drop and drag, bzw. +

      Ich hoffe das war verständlich ausgedrückt.

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

      m. naeve Die vorhandene Datei wird automatisch in den Anhang verschoben, wenn eine neue Datei mit anderem Namen im Bildfeld gespeichert wird. Bei demselben Dateinamen wird sie einfach nur ersetzt. Die neu zu druckende Datei sollte also bspw. eine neue Identifikations-Nummer bekommen, die auch für den Dateinamen genutzt wird. Das wäre gerade bei Rechnungen auch sachlich von Vorteil, damit man nicht zwei Dokumente selben Namens, aber unterschiedlicher Inhalte hat. Generell wäre besser, bereits erstellte Rechnungen nicht nachträglich zu ändern, sondern zu stornieren und eine neue Rechnung zu schreiben.

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

      m. naeve 

      Der Hinweis von Planox.pro ist auf jeden Fall wichtig und richtig!
      Falls du bei deinem aktuellen Vorgehen bleiben willst, kannst du mit folgender Erweiterung deiner DB eine Dokumentation/Versionierung für jede Änderung des Rechnungs PDFs erstellen.
      Dazu erzeuge:

      1. eine UNTERTABELLE für deine Tabelle Rechnungen
      2. darin ein Bildfeld => 'PDF-Rechnung-V'
      3. und ein Feld vom Typ "Zahl" => Version

      nimm für deinen PDF-Button diesen ergänzten Code:

      if 'PDF-Rechnung' then
          let me := this;
          let BildName := text(get(this, "'PDF-Rechnung'"));
          let BildInhalt := shareFile(this, BildName) + "/" + BildName;
          let NewTabelle := (create UNTERTABELLE);
          NewTabelle.(Rechnungen := me);
          NewTabelle.('PDF-Rechnung-V' := importFile(this, BildInhalt));
          let Versionx := max((select UNTERTABELLE where me = Rechnungen).number(Version));
          NewTabelle.(Version := Versionx  + 1);
          end;
      let myFileName := "Rechnung_" + 'Rechnungs-Nr.:' + "_vom_" + format(if 'Rechnungs-Datum:' then 'Rechnungs-Datum:' else today() end, "YYYY-MM-DD") + ".pdf";
      importFile(this, printAndSaveRecord(this, "FeD"), myFileName);
      'PDF-Rechnung' := myFileName
      

       

      VG Ronald

      • m_naeve
      • vor 2 Jahren
      • Gemeldet - anzeigen

      DIGITOOL 

      Vielen Dank für den Code, ich hab ihn ausprobiert, die Untertabelle erstellt Ninox, leider ohne Inhalt und Ninox bleibt "hängen". Dem werd ich nachher mal genauer auf den Grund gehen.

      Was das Ändern von Rechnungen angeht, habt ihr natürlich recht. Rechnungen dürfen nicht nachträglich geändert sondern nur mit Stornorechnungen ausgebucht werden. Mein Problem dabei ist nur, ich schreibe Rechnungen nicht an die Klienten direkt sondern deren hinterlegten  Krankenkassen. Wenn sich diese dann ändert, kann ich in Ninox die alten Rechnungen nicht mehr sehen, weil der Rechnungsempfänger automatisch auf die neue Krankenkasse geändert wird. Daher kam mir die Idee mit den PDF-Button.

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

      m.  Ich will dir nicht reinreden, aber steuerrechtlich spielt es eigentlich keine Rolle, wer der Empfänger ist. Jede Rechnung, die man versendet, ist ein Original mit eigener (fortlaufender) Rechnungsnummer. Dasselbe gilt für den Datensatz. Auch in diesem dürfen sich im Nachhinein keine Daten mehr verändern. Daher sollten sämtliche Informationen, die auf der gedruckten Rechnung stehen, immer fest in den Rechnungs-Datensatz übernommen werden (und nicht nur über eine Verknüpfung referenziert).

      Ich kenne natürlich deinen Workflow, dein Datenmodell und die konkreten Anforderungen nicht, aber wie wäre es denn, wenn du die Rechnung einfach per duplicate() (in einem Button) mit allen Daten in einen neuen Datensatz kopierst und ggf. nur den Empfänger, also die Krankenkasse änderst? Beziehungsweise: Wenn die Krankenkasse beim Klienten hinterlegt ist, dann könnte sie sogar automatisch in die neue Rechnung übernommen werden. Du hättest dann mit wenig Aufwand saubere Einzelrechnungen, die mit dem Klienten (und ggf. der Krankenkasse) verknüpft sind.

      Nur so als Idee.