daniel-jorg-schuppelius/datev-filedispatcher
最新稳定版本:v0.4.6
Composer 安装命令:
composer require daniel-jorg-schuppelius/datev-filedispatcher
包简介
Project description.
README 文档
README
Ein PHP-Tool zur automatischen Organisation und Sortierung von Mandantendateien aus dem DATEV Document Management System (DMS). Die Dateien werden basierend auf ihrer Zuordnung automatisch in die entsprechenden Mandantenverzeichnisse verschoben.
🚀 Features
- Automatische Dateisortierung: Dokumente werden automatisch in die passenden Mandantenordner einsortiert
- DATEV API Integration: Direkte Anbindung an die DATEV DMS API
- Pattern-basierte Verarbeitung: Flexible Service-Architektur mit Regex-Pattern-Matching
- PreProcessing: TIFF-Konvertierung, PDF-Verarbeitung, Multi-Page-Handling
- Nextcloud-Integration: Direkte Sortierung in Nextcloud-Verzeichnisse für einfache Mandantenkommunikation
- Erweiterbar: Einfaches Hinzufügen neuer File-Services durch dynamische Service-Discovery
📋 Voraussetzungen
- PHP 8.2, 8.3 oder 8.4
- DATEV Account mit API-Zugang
- Composer
- Externe Tools (siehe Installation)
📦 Installation
Composer
composer require daniel-jorg-schuppelius/datev-filedispatcher
Klonen des Repositories
# Mit Submodulen klonen git clone --recurse-submodules https://github.com/Daniel-Jorg-Schuppelius/datev-filedispatcher.git # Oder falls bereits geklont, Submodule initialisieren git submodule update --init --recursive
Automatische Installation der Abhängigkeiten (Linux)
Auf Debian/Ubuntu können alle Abhängigkeiten automatisch installiert werden:
sudo apt install jq ./installscript/install-dependencies.sh
Das Skript scannt automatisch das vendor/-Verzeichnis und installiert alle erforderlichen Tools, die in *executables.json Konfigurationsdateien definiert sind.
Manuelle Installation der externen Tools
1. TIFF Tools
Erforderlich für die Verarbeitung von TIFF-Dateien.
- Windows: GnuWin32 TIFF Tools
- Debian/Ubuntu:
apt install libtiff-tools
2. Xpdf
Erforderlich für die PDF-Verarbeitung.
- Windows: Xpdf Download
- Debian/Ubuntu:
apt install xpdf
3. ImageMagick
Für die Konvertierung und Verarbeitung von Bilddateien.
- Windows: ImageMagick Installer
- Debian/Ubuntu:
apt install imagemagick-6.q16hdri
4. muPDF Tools
Für die Verarbeitung von PDF- und XPS-Dokumenten.
- Debian/Ubuntu:
apt install mupdf-tools
5. qpdf
Für PDF-Manipulation und -Reparatur.
- Windows: qpdf Releases
- Debian/Ubuntu:
apt install qpdf
⚙️ Konfiguration
Konfigurationsdatei erstellen
cp config/config.json.sample config/config.json
Konfigurationsoptionen
Die Konfiguration erfolgt über config/config.json:
| Sektion | Schlüssel | Beschreibung |
|---|---|---|
DatevAPI |
resourceurl |
URL zur DATEV API (Standard: https://127.0.0.1:58452) |
DatevAPI |
user |
Benutzername für API-Authentifizierung |
DatevAPI |
password |
Passwort für API-Authentifizierung |
DatevAPI |
verifySSL |
SSL-Zertifikatsprüfung (true für Produktion, false für selbstsignierte Zertifikate) |
Path |
internalStore |
Pfad zum internen Speicher mit {tenant} Platzhalter für Mandantenverzeichnisse |
Logging |
log |
Log-Ausgabeziel (Console, File, Null) |
Logging |
level |
Log-Level (emergency, alert, critical, error, warning, notice, info, debug) |
Logging |
path |
Pfad zur Log-Datei |
Debugging |
debug |
Debug-Modus aktivieren (true/false) |
SSL-Verifizierung
Für Entwicklungsumgebungen mit selbstsignierten Zertifikaten setzen Sie verifySSL auf false. In der Produktion sollte dies immer auf true gesetzt sein.
📚 Verwendung
Einzelne Datei verarbeiten
php src/DatevFileDispatcher.php "/pfad/zur/datei.pdf"
Als Linux-Service einrichten
sudo ln -s /pfad/zum/projekt/config/init.d/filedispatcher /etc/init.d/filedispatcher sudo update-rc.d filedispatcher defaults
🏗️ Projektstruktur
src/
├── DatevFileDispatcher.php # CLI Einstiegspunkt
├── Config/
│ └── Config.php # Konfigurationsmanagement (Singleton)
├── Contracts/
│ ├── Abstracts/ # Basis-Klassen
│ └── Interfaces/ # Interface-Definitionen
├── Factories/
│ ├── APIClientFactory.php # DATEV API Client Factory
│ ├── LoggerFactory.php # Logger Factory
│ └── StorageFactory.php # Storage Path Factory
├── Helper/
│ ├── FileDispatcher.php # Zentrale Orchestrierung
│ └── InternalStoreMapper.php # Mandanten-Verzeichnis-Mapping
├── PreProcessServices/ # Vorverarbeitung (TIFF, PDF, etc.)
│ ├── DuplicateNumberProcessFileService.php
│ ├── PDFNameProcessFileService.php
│ ├── PDFScannerCodeProcessFileService.php
│ ├── PDFTimeCodeProcessFileService.php
│ └── TiffPreProcessFileService.php
├── Services/ # Datei-Services (Pattern-basiert)
│ ├── DMSBasicFileService.php
│ └── Payroll/ # Lohnabrechnungs-Services
└── Traits/
├── FileServiceTrait.php
└── PeriodicFileServiceTrait.php
🔌 Service-Architektur
File Services
Services werden automatisch aus dem src/Services/ Verzeichnis geladen und verarbeiten Dateien basierend auf Regex-Patterns:
| Service | Pattern-Beispiel | Beschreibung |
|---|---|---|
DMSBasicFileService |
219628 - Dokument.pdf |
Standard DMS-Dateien |
| Payroll Services | Lohn*.pdf |
Lohnabrechnungs-Dokumente |
PreProcess Services
Vorverarbeitungs-Services aus src/PreProcessServices/:
| Service | Beschreibung |
|---|---|
TiffPreProcessFileService |
TIFF zu PDF Konvertierung |
PDFNameProcessFileService |
PDF-Namensextraktion |
PDFScannerCodeProcessFileService |
Scanner-Code Verarbeitung |
PDFTimeCodeProcessFileService |
Zeitcode-Verarbeitung |
DuplicateNumberProcessFileService |
Duplikat-Erkennung |
🧪 Tests
Test-Konfiguration
cp config/testconfig.json.sample config/testconfig.json
Tests ausführen
composer test # oder vendor/bin/phpunit
📖 Abhängigkeiten
- datev-php-sdk (^0.4.1) - DATEV API SDK
📄 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
💖 Unterstützung
Wenn Ihnen dieses Projekt gefällt und es Ihnen bei Ihrer Arbeit hilft, würde ich mich sehr über eine Spende freuen!
👤 Autor
Daniel Jörg Schuppelius
- Website: schuppelius.org
- E-Mail: info@schuppelius.org
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-10-31