srhinow / project-manager-bundle
a project-management-tool with invoice, credit, offer, reminder, agreements parts for Contao CMS >= 5.3
Package info
gitlab.com/srhinow/project-manager-bundle
Type:contao-bundle
pkg:composer/srhinow/project-manager-bundle
Requires
- php: ^8.2
- contao/core-bundle: ^5.3
- dompdf/dompdf: ^3.1
- menatwork/contao-multicolumnwizard-bundle: ^3.5
- setasign/fpdi: ^2.0
- setasign/fpdi-tcpdf: ^2.0
- tecnickcom/tcpdf: ^6.2
Requires (Dev)
- contao/manager-plugin: ^2.0
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^10.5 || ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v3.1.0
- v3.0.0
- v2.5.1
- v2.5.0
- v2.4.0
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.5.8
- v1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.1
- 1.5.0
- v1.4.0
- 1.3.1
- 1.2.32
- 1.2.31
- 1.2.30
- 1.2.29
- 1.2.28
- 1.2.27.1
- 1.2.27
- 1.2.26
- 1.2.25
- 1.2.24
- 1.2.23
- 1.2.22
- 1.2.21
- 1.2.20
- 1.2.19
- 1.2.18
- 1.2.17
- 1.2.16
- 1.2.15
- 1.2.14
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.0.31
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18.1
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2.0
- 1.0.1.4
- 1.0.1.3
- 1.0.1.1
- 1.0.1
- dev-feature/nc-email-versand
This package is auto-updated.
Last update: 2026-10-17 11:29:48 UTC
README
Projektmanagement-Erweiterung für Contao CMS – mit Angeboten, Rechnungen, Gutschriften, Verträgen, Erinnerungen und Projekten.
Autor: Sven Rhinow – sr-tag.de Lizenz: LGPL-3.0-or-later Repository: https://github.com/srhinow/project-manager-bundle
Anforderungen
| Abhängigkeit | Version |
|---|---|
| PHP | >= 8.2 |
| Contao CMS | >= 5.3 |
| contao/tcpdf-bundle | ^1.1 |
| menatwork/contao-multicolumnwizard-bundle | ^3.5 |
Installation
composer require srhinow/project-manager-bundle
Funktionen
Backend
- Angebote, Rechnungen, Gutschriften und Verträge können Projekten zugeordnet werden
- Neue Einträge werden direkt aus dem Projekt heraus aufgerufen und vorbefüllt
- Texte vor und nach den Posten als Vorlage speicherbar
- Mehrere Konfigurationen (Einstellungen) anlegbar – je Rechnung/Angebot/Gutschrift zuweisbar
- Währung, Steuersätze, Mengenangaben zentral unter einem Menüpunkt verwaltbar
- Teilzahlungen bei Rechnungen erfassbar – offener Betrag und Restbetrag werden angezeigt
- Rechnungen ohne Mehrwertsteuerausweis (z. B. für Auslandsrechnungen)
- Beträge addierbar oder subtrahierbar – z. B. für Rabatte in der Postenaufstellung
- Rückstände (Mahnungen) im eigenen Bereich, per Knopfdruck aktualisierbar
- Kunden-Adressverwaltung auf Basis von
tl_membermit eigenem Paletten-Layout - Adressdaten aus der Mitgliederverwaltung per Selectfeld in Rechnungen/Angebote übernehmbar
- Vor- und Abschlusstexte über Vorlagen-Selectfeld vorausfüllbar
- Posten-Felder über Vorlagen-Selectfeld vorausfüllbar
- Mengenangabe (Stück, Stunde, Tag …) per Selectfeld wählbar
- Automatische Berechnung von Netto / Brutto je nach Eingabe-Modus
- Postenvorlagen und Kundenauswahl als durchsuchbare Selectfelder (Select2)
- Rabatte über Vorlage und manuell anpassbar
- Benutzerrechte je Modul-Bereich einzeln steuerbar
- Festschreiben von Angeboten, Rechnungen, Gutschriften und Mahnungen (Schloss-Symbol in der Liste): Das PDF wird einmal erzeugt und unveränderlich abgelegt, danach liefert das PDF-Symbol immer genau diese Datei. Inhalte und Posten sind gesperrt, nur Zahlungsangaben, Bearbeitungsstand und Notiz bleiben änderbar. Korrekturen über Gutschrift bzw. Stornorechnung.
Ablage festgeschriebener Belege
Die PDFs liegen in files/iao-archiv/<Belegart>/<Jahr>/ (nicht öffentlich). In der Dateiverwaltung sind sie
sichtbar und lassen sich ansehen und herunterladen; hochladen, umbenennen, verschieben, bearbeiten und löschen sperrt
ArchiveFolderVoter – auch für Administratoren und auch für die übergeordneten Ordner. Der Ordner lässt sich in der
config/config.yaml umstellen (liegt er außerhalb von files/, erscheint er nicht in der Dateiverwaltung):
parameters:
srhinow_project_manager.archive_dir: '%kernel.project_dir%/%contao.upload_path%/iao-archiv'
Bestehende Ablage umziehen: Ordner verschieben, Parameter anpassen, Cache leeren und den Ordner in der Dateiverwaltung
anmelden (Dbafs::addResource('files/iao-archiv')). Die Pfade an den Belegen sind relativ zur Ablage und bleiben gleich.
Altbestand auf einmal festschreiben (ohne --execute nur Probelauf):
# vorhandene Originale übernehmen (Belegnummer im Dateinamen, z. B. Rechnung-R-20170626-26.pdf)
vendor/bin/contao-console iao:finalize-all --from-dir=/pfad/zu/den/pdfs --execute
# übrige Altbelege mit heutiger Vorlage nachbilden und als Nachbildung kennzeichnen
vendor/bin/contao-console iao:finalize-all --source=recreated --execute
Der Ordner gehört in die Datensicherung (Aufbewahrungsfristen) und nicht ins Git (Kundendaten). Fehlt eine Datei oder stimmt ihre SHA-256-Prüfsumme nicht mehr mit der gespeicherten überein, liefert das Bundle nichts aus und meldet den Fehler.
PDF-Erzeugung
Klassisch werden die Werte an festen Positionen auf eine PDF-Vorlage je Belegart geschrieben. Mit der Einstellung „PDF-Erzeugung: HTML-Vorlage auf Briefbogen“ setzt dompdf die Belege aus Twig-Vorlagen und legt sie auf einen Briefbogen (PDF mit Logo, Absender, Fuß – Seite 1 für die erste, Seite 2 für alle weiteren Seiten):
iao_pdf_document– gemeinsames Aussehen (Blockstyle), Kopfdaten, Posten, Summen, Seitenzahliao_pdf_offer,iao_pdf_invoice(auch Stornorechnung),iao_pdf_credit,iao_pdf_reminder– Überschrift und Beschriftungen (Blöckeheading_text,number_label,execute_label,date_label,expiry_label)
Anpassen im Template Studio; die verfügbaren Variablen stehen im Kopf von iao_pdf_document.
Zahlungs-Schnittstelle
Die Buchhaltung (mesti) kann offene Rechnungen abfragen und Zahlungseingänge melden; Status und Restbetrag werden
dabei gesetzt. Abgeschaltet, bis IAO_API_TOKEN in der .env.local steht. Beschreibung:
docs/zahlungs-api.md, als OpenAPI 3.1: docs/zahlungs-api.openapi.yaml.
Frontend
- Projekt-Referenzen: Frontend-Modul zeigt alle Projekte mit gesetztem „In Referenzen aufnehmen"-Flag; eigenes Beschreibungs- und Bildfeld verfügbar
- Kunden-Bereich (Login-geschützt): Rechnungen, Angebote und Gutschriften als Liste mit Status (angenommen / nicht angenommen) und Download der jeweiligen PDF-Datei
Entwicklung
Tests ausführen
# Mit eigenem vendor-Verzeichnis:
./vendor/bin/phpunit
# Alternativ mit dem Autoloader eines installierten Contao-Projekts:
PMB_AUTOLOAD=/path/to/contao5/vendor/autoload.php phpunit
Die Testsuite prüft die reinen Berechnungs- und Service-Methoden (Iao, IaoBackend) ohne Contao-Bootstrap.
Code-Stil
./vendor/bin/php-cs-fixer fix
Icons
- dryicons.com
- fatcow.com/free-icons (CC 3.0)