Änderungshistorie Version 1.5 – 2026-10-12 ======================== Neue Funktionen --------------- - Versandmodus ZIP_ARCHIVE=true/false: Belege als ZIP-Archiv (wie bisher) oder als einzelne Anhänge, z.B. für DATEV-Belegtransfer per Mail. Im Einzeldatei-Modus entfällt der Passwort-Dialog. - MAX_MAIL_SIZE_MB: Sendungen werden automatisch auf mehrere Mails verteilt (größte Belege zuerst). Budget für Anhänge = 70 % der Mailgröße wegen Base64-Kodierung. Betreff "(1/2)", Batch-ID "-1". Belege, die allein schon zu groß sind, werden gemeldet. Gilt in beiden Versandmodi. - SUPPORTED_FILE_TYPES_FOR_SENDING (Default: pdf, tif, tiff): nicht erlaubte Dateitypen werden vor dem Versand gemeldet – Abbrechen oder ohne diese weiter. Prüfung über die Dateiendung. - Smart Rule "Fotos → PDF" als Export unter extras/Belege-Foto-zu-PDF.dtSmartRule. Wandelt Fotos beim Import in (durchsuchbare) PDFs um und verschiebt die Originale nach /Originale. Nach dem Import "Suchen in" und "Verschieben nach" auf die eigenen Gruppen setzen. - Stage-Ordner jetzt unter ~/Library/Caches/DT-Belegversand/ (optional STAGE_DIR). Wird nicht mehr sofort gelöscht; Läufe älter als 7 Tage werden beim nächsten Start aufgeräumt (nur in Pfaden, die "Belegversand" enthalten). Setup (_belegversand_setup) --------------------------- - Fragt den Versandmodus ab; ZIP-Passwort nur noch im ZIP-Modus. - Schreibt ZIP_ARCHIVE, MAX_MAIL_SIZE_MB, SUPPORTED_FILE_TYPES_FOR_SENDING mit Kurzkommentaren in die belegversand.conf. - Prüft vorhandene Jahres-/Monatsordner: fehlende werden ergänzt, vorhandene bleiben unverändert; sind alle da, entfällt die Frage. - Legt die Gruppe /Originale auf oberster Datenbank-Ebene an. - Abschlussdialog mit Anleitung zur Smart Rule; dieselbe Anleitung im README. - Verständlichere Dialoge beim Start und bei der Ersteinrichtung, inkl. Abbrechen-Button. Hauptscript (_belegversand) --------------------------- - Mail-Vorlage wird bei mehreren Mails nur einmal abgefragt. - NDJSON-Log um die Felder "mail" (x/y) und "mode" (zip/single) erweitert. - Markdown-Log: Spalte ZIP zeigt im Einzeldatei-Modus "einzeln". - !Ergebnis und Benachrichtigung zeigen Versandmodus und Anzahl der Mails. - Dry Run zeigt die Aufteilung nach Mails inkl. Größen. Bugfixes -------- - START: doppelter Home-Pfad (/Users/x//Users/x/Library/...) beim Start des Setups. Ursache: showWelcomeDialogIfNeeded() überschrieb die Property basePath. Trat nur bei SHOW_README=true auf. Pfade werden jetzt zentral in helperScriptPath() gebaut. - Setup: verschachtelte Gruppe Belege/Belege, wenn die gewählte Hauptgruppe bereits "Belege" hieß. - Setup: Jahres-/Monatsordner wurden bei erneutem Lauf doppelt angelegt ("create record" erzeugt in DEVONthink stillschweigend Duplikate). - Setup: Loggruppe im Jahresordner hieß fest "Versendet" und ignorierte LOG_SENT_GROUP_NAME. - Setup: doppelter debugInfoText-Block und fehlerhafte basePath-Zuweisung entfernt. Kompatibilität -------------- - Fehlen die neuen Schlüssel in einer bestehenden belegversand.conf, verhält sich alles wie in 1.4 (ZIP-Modus, 20 MB, pdf/tif/tiff). - Das Setup schreibt die Conf nur bei der Ersteinrichtung; bestehende Installationen bei Bedarf von Hand ergänzen. Bekannte Einschränkungen ------------------------ - ZIP-Verschlüsselung weiterhin über zip -P (ZipCrypto, schwach); Umstieg auf AES steht noch aus. - Im Einzeldatei-Modus werden Belege unverschlüsselt versendet (nur TLS). - Das Tag "gesendet" wird beim Erstellen der Entwürfe vergeben, nicht beim tatsächlichen Absenden. Version 1.4 (Final): (1) Bei mehreren Buchungsjahren wurden die Protokolle in die verkehrte /Versendet-Gruppe geschrieben. Beispiel: /Belege ├── /2026 ├── /01-Januar └── [Quittung-1] └── [Beleg-x] [...] /Versendet ├── /2027 ├── /01-Januar └── [Quittung-1] └── [Beleg-y] [...] /Provisionsabrechnungen /Versendet Die Protokolle landen jetzt in der /Versendet-Gruppe des Jahres, aus dem die versendeten Belege stammen. (2) Beleg-Versand über mehrere Jahre wird untersagt: Die Protokolle liegen in einer einzigen /Versendet-Gruppe. Um eine Split-Funktion zu vermeiden (beleg-1 in 2026, beleg-2 in 2027), wird vor der Pack-/Sende-Routine sichergestellt, dass lediglich Dokumente aus einem einzigen Buchungsjahr in der Auswahl sind. (3) Kompilierungs-Automation via compile.sh: — .applescript Quelldateien werden nach Clone automatisiert zu .scpt kompiliert — compile.sh übernimmt: Kompilierung aller .applescript → .scpt, automatisches Löschen der Quelldateien — Sichere Pfadverwaltung während Kompilierung (relative basePath → absolute Pfade via echo ~) — Repositories speichern lesbare .applescript-Quelldateien (git-friendly) — Deployment-Verzeichnis enthält nur .scpt-Binärdateien (produktiv) — Reproduzierbarer Fresh-Install-Flow: git clone → ./compile.sh → Ready (4) Mehrere Mail-Templates mit Dialog-Auswahl: — Mehrere Mail-Vorlagen können in _config/mail_vorlagen/ gespeichert werden — Das Script zeigt beim Start einen Dialog zur Auswahl des gewünschten Templates — Jede Vorlage kann individuell angepasst werden — Änderungen in Templates werden beim nächsten Versand automatisch berücksichtigt — Standardtemplate: belegversand (wird bei Erstkonfiguration angelegt) (5) Robustere Pfadverwaltung: — Basis-Pfade auf relative Struktur umgestellt (z.B. "Library/Application Scripts/...") — Expansion zu absoluten Pfaden erfolgt zentral via (do shell script "echo ~") & "/" & basePath — Verhindert Pfad-Verdopplungen und erhöht Portabilität über verschiedene Benutzer hinweg — Interne Pfade sind nun versionsstabil und unabhängig vom Script-Speicherort (6) Code-Cleanup und Robustness: — compileAllScripts()-Handler aus _belegversand_setup.scpt entfernt (jetzt extern in compile.sh) — Alle Scripts mit aktualisierter Pfadverwaltung — Redundante Zeilen eliminiert — Erweiterte Kommentierung für AppleScript-Fallstricke (7) About-Dialog in DEVONthink-Menü: — Neuer Menü-Befehl "About..." zeigt Versionsinformation und Links — Willkommensdialog beim Start (optional, konfigurierbar via SHOW_README) — Zentrale Text-Generierung (_text_about.scpt) — Minimale interne README (verweist auf externe Wiki-Dokumentation) — Keine Doppelverwaltung von Texten mehr (8) Wiki-Dokumentation: — Externe Dokumentation im öffentlichen MediaWiki — Link zur Wiki in About-Dialog und README — Ausführliche Anleitung ohne Passwort-Sperre — Interne Doku bleibt minimal und verweist auf Wiki Version 1.3: Dry Run schreibt immer eine vollständige Vorschau-Datei Dry Run zeigt zusätzlich eine Kurzliste direkt im Dialog Vorschau-Datei kann direkt im Finder angezeigt werden Echtlauf läuft nach Bestätigung ohne zweite Rückfrage weiter Abschlussmeldung weist auf die Prüfung des automatisch eingefügten Mailtexts hin menschenlesbares Markdown-Log wird in Sendelauf-Blöcken gegliedert neuer Config-Key PATH_TO_DRYRUN_PREVIEW README und Konfigurationsbeschreibung entsprechend erweitert Version 1.2.1: interne Scripts in Unterordner Scripts Mailbody in _config/mail_vorlagen/belegversand Mail-Betreff ohne Batch-ID konfigurierbares Dokument-Tag (SENT_TAG_FOR_DOCS) Konfigurationsdatei klarer gegliedert interne README und Archiv-README ergänzt Version 1.2: Mailbody-Datei in DEVONthink eingeführt README in DEVONthink eingeführt Welcome-/Hinweisdialog über SHOW_README Konfiguration in _config weiter ausgebaut Version 1.1: Konfiguration in DEVONthink eingeführt Setup-Script ergänzt Startscript ergänzt Root-relative Suche der Konfiguration Version 1.0: erster funktionaler Versandablauf ZIP-Erzeugung Mail-Entwurf Tagging NDJSON-/Markdown-Logging