定制 daniel-jorg-schuppelius/datev-filedispatcher 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

daniel-jorg-schuppelius/datev-filedispatcher

最新稳定版本:v0.4.6

Composer 安装命令:

composer require daniel-jorg-schuppelius/datev-filedispatcher

包简介

Project description.

README 文档

README

PHP Version License

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.

2. Xpdf

Erforderlich für die PDF-Verarbeitung.

3. ImageMagick

Für die Konvertierung und Verarbeitung von Bilddateien.

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.

⚙️ 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

📄 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!

GitHub Sponsors PayPal

👤 Autor

Daniel Jörg Schuppelius

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-10-31