PHPackages                             daniel-jorg-schuppelius/datev-filedispatcher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. daniel-jorg-schuppelius/datev-filedispatcher

ActiveApp

daniel-jorg-schuppelius/datev-filedispatcher
============================================

Project description.

v0.4.6(4mo ago)00MITPHPPHP &gt;=8.2 &lt;8.5CI passing

Since Oct 31Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/Daniel-Jorg-Schuppelius/datev-filedispatcher)[ Packagist](https://packagist.org/packages/daniel-jorg-schuppelius/datev-filedispatcher)[ RSS](/packages/daniel-jorg-schuppelius-datev-filedispatcher/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (17)Used By (0)

DATEV File Dispatcher
=====================

[](#datev-file-dispatcher)

[![PHP Version](https://camo.githubusercontent.com/d840cef9807c8f76051ad687841d67f4d830c84e0d83236968e53124ef6742d5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e322d3838393242462e737667)](https://php.net/)[![License](https://camo.githubusercontent.com/61b8f5e6de18cc11e2742d1983c4eac7357485ad3320211aae180715eddd2b8a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f44616e69656c2d4a6f72672d536368757070656c6975732f64617465762d66696c6564697370617463686572)](https://github.com/Daniel-Jorg-Schuppelius/datev-filedispatcher/blob/main/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
----------

[](#-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
-----------------

[](#-voraussetzungen)

- PHP 8.2, 8.3 oder 8.4
- DATEV Account mit API-Zugang
- Composer
- Externe Tools (siehe Installation)

📦 Installation
--------------

[](#-installation)

### Composer

[](#composer)

```
composer require daniel-jorg-schuppelius/datev-filedispatcher
```

### Klonen des Repositories

[](#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)

[](#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

[](#manuelle-installation-der-externen-tools)

#### 1. TIFF Tools

[](#1-tiff-tools)

Erforderlich für die Verarbeitung von TIFF-Dateien.

- **Windows**: [GnuWin32 TIFF Tools](https://gnuwin32.sourceforge.net/packages/tiff.htm)
- **Debian/Ubuntu**: ```
    apt install libtiff-tools
    ```

#### 2. Xpdf

[](#2-xpdf)

Erforderlich für die PDF-Verarbeitung.

- **Windows**: [Xpdf Download](https://www.xpdfreader.com/download.html)
- **Debian/Ubuntu**: ```
    apt install xpdf
    ```

#### 3. ImageMagick

[](#3-imagemagick)

Für die Konvertierung und Verarbeitung von Bilddateien.

- **Windows**: [ImageMagick Installer](https://imagemagick.org/script/download.php#windows)
- **Debian/Ubuntu**: ```
    apt install imagemagick-6.q16hdri
    ```

#### 4. muPDF Tools

[](#4-mupdf-tools)

Für die Verarbeitung von PDF- und XPS-Dokumenten.

- **Debian/Ubuntu**: ```
    apt install mupdf-tools
    ```

#### 5. qpdf

[](#5-qpdf)

Für PDF-Manipulation und -Reparatur.

- **Windows**: [qpdf Releases](https://github.com/qpdf/qpdf/releases)
- **Debian/Ubuntu**: ```
    apt install qpdf
    ```

⚙️ Konfiguration
----------------

[](#️-konfiguration)

### Konfigurationsdatei erstellen

[](#konfigurationsdatei-erstellen)

```
cp config/config.json.sample config/config.json
```

### Konfigurationsoptionen

[](#konfigurationsoptionen)

Die Konfiguration erfolgt über `config/config.json`:

SektionSchlüsselBeschreibung`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

[](#ssl-verifizierung)

Für Entwicklungsumgebungen mit selbstsignierten Zertifikaten setzen Sie `verifySSL` auf `false`. In der Produktion sollte dies immer auf `true` gesetzt sein.

📚 Verwendung
------------

[](#-verwendung)

### Einzelne Datei verarbeiten

[](#einzelne-datei-verarbeiten)

```
php src/DatevFileDispatcher.php "/pfad/zur/datei.pdf"
```

### Als Linux-Service einrichten

[](#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
------------------

[](#️-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
---------------------

[](#-service-architektur)

### File Services

[](#file-services)

Services werden automatisch aus dem `src/Services/` Verzeichnis geladen und verarbeiten Dateien basierend auf Regex-Patterns:

ServicePattern-BeispielBeschreibung`DMSBasicFileService``219628 - Dokument.pdf`Standard DMS-DateienPayroll Services`Lohn*.pdf`Lohnabrechnungs-Dokumente### PreProcess Services

[](#preprocess-services)

Vorverarbeitungs-Services aus `src/PreProcessServices/`:

ServiceBeschreibung`TiffPreProcessFileService`TIFF zu PDF Konvertierung`PDFNameProcessFileService`PDF-Namensextraktion`PDFScannerCodeProcessFileService`Scanner-Code Verarbeitung`PDFTimeCodeProcessFileService`Zeitcode-Verarbeitung`DuplicateNumberProcessFileService`Duplikat-Erkennung🧪 Tests
-------

[](#-tests)

### Test-Konfiguration

[](#test-konfiguration)

```
cp config/testconfig.json.sample config/testconfig.json
```

### Tests ausführen

[](#tests-ausführen)

```
composer test
# oder
vendor/bin/phpunit
```

📖 Abhängigkeiten
----------------

[](#-abhängigkeiten)

- [datev-php-sdk](https://github.com/daniel-jorg-schuppelius/datev-php-sdk) (^0.4.1) - DATEV API SDK

📄 Lizenz
--------

[](#-lizenz)

Dieses Projekt ist unter der [MIT-Lizenz](https://github.com/Daniel-Jorg-Schuppelius/datev-filedispatcher/blob/main/LICENSE) lizenziert.

💖 Unterstützung
---------------

[](#-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](https://camo.githubusercontent.com/ab4a84b90b4680a3de0f6823eb62bfddbf79e5aa8f153171e8b1b0069ed4a028/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53706f6e736f722d4769744875622d656134616161)](https://github.com/sponsors/Daniel-Jorg-Schuppelius)[![PayPal](https://camo.githubusercontent.com/ba79a31112964c9a9a0e92f880289120bbf0b723711be8514500849d5b02e946/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f6e6174652d50617950616c2d626c7565)](https://www.paypal.com/donate/?hosted_button_id=X43UQQVDKL76Y)

👤 Autor
-------

[](#-autor)

**Daniel Jörg Schuppelius**

- Website: [schuppelius.org](https://schuppelius.org/)
- E-Mail:

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance81

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~30 days

Recently: every ~1 days

Total

15

Last Release

128d ago

PHP version history (2 changes)v0.3.0PHP ^7.4 || ^8.0

v0.4.3.1PHP &gt;=8.2 &lt;8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/9d648df75b8ca254b14377de6aa7c37daff5bc21e9e8742ef7687c7091c7bc94?d=identicon)[l0gtr0n](/maintainers/l0gtr0n)

---

Top Contributors

[![DSchuppelius](https://avatars.githubusercontent.com/u/19145058?v=4)](https://github.com/DSchuppelius "DSchuppelius (117 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/daniel-jorg-schuppelius-datev-filedispatcher/health.svg)

```
[![Health](https://phpackages.com/badges/daniel-jorg-schuppelius-datev-filedispatcher/health.svg)](https://phpackages.com/packages/daniel-jorg-schuppelius-datev-filedispatcher)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
