Innerhalb von Admidio existiert seit kurzem eine Möglichkeit Mitgliedsbeiträge automatisch im dtaus Format einzuziehen. Die Lösung ist als Plugin implementiert basiert auf dem Programm dtaus, welches hier bezogen werden kann.
Zunächst wird eine Möglichkeit benötigt für jeden Benutzer Kontodaten zu hinterlegen. Dazu müssen die entsprechenden Felder in der Datenbank angelegt werden. Dies kann beispielsweise per phpmyadmin vollzogen werden. Dazu muss folgendes Skript ausgeführt werden:
INSERT INTO adm_categories (cat_org_id, cat_type, cat_name, cat_hidden, cat_system, cat_sequence) VALUES (NULL, "USF", "Kontodaten", 0, 0, 4);
Daraufhin sollte in der Tabelle adm_categories ein neuer Eintrag erscheinen. Wichtig ist für den nächsten Schritt der Wert diesen neuen Eintrags in der Spalte cat_id, der im Folgenden mit <id> bezeichnet wird. Als nächstes werden die Felder für die Bankverbindung aller Benutzer angelegt. Hierfür muss folgendes Skript ausgeführt werden. Wichtig ist hierbei, dass <id> durch den Wert der im voherigen Schritt eingefügten Zeile ersetzt wird:
INSERT INTO adm_user_fields (usf_cat_id, usf_type, usf_name, usf_description, usf_system, usf_disabled, usf_hidden, usf_mandatory, usf_sequence) VALUES (<id>, "NUMERIC", "Kontonummer", "Ihre Kontonummer für den automatischen Bankeinzug", 0, 0, 0, 0, 1), (<id>, "NUMERIC", "Bankleitzahl", "Die Bankleitzahl Ihres Kreditinstituts für den automatischen Bankeinzug", 0, 0, 0, 0, 2), (<id>, "TEXT", "Kontonummer", "Inhaber der angegebenen Bankverbindung", 0, 0, 0, 0, 3);
Sollten die Felder erfolgreich in die Datenbank eingefügt worden sein, kann mit der Konfiguration des Plugins begonnen werden.
Das Plugin ist für eine Vereinssatzung ausgelegt, deren Mitgliedsbeiträge sich nach dem Alter des Mitglieds richten. Zudem existieren Familienbeiträge und beitragsfreie Ehrenmitglieder.
Hierbei können Mitglieder jeweils nur zum Jahresende aus dem Verein austreten, weshalb der Mitgliedsbeitrag auch bei jeder Durchführung des Beitragseinzugs bis zum Jahresende berechnet wird.
Beitreten können Mitglieder jeweils zum 1. eines Monats. Sollte ein Mitglied innerhalb eines Jahres eingetreten sein, so wird dessen Beitrag anteilig nach Monaten der Mitgliedschaft berechnet.
Sollten Beiträge bereits am Anfang des Jahres eingezogen worden sein, so können diese auch zu einem späteren Zeitpunkt nochmals eingezogen werden. Einzige Voraussetzung hierbei ist die Angabe des Monats der letzten Abrechnung. Es wird dabei nur der Beitrag von Mitgliedern eingezogen, die nach dem bereits durchgeführten Abrechnungsmonat beigetreten sind.
Um Familienbeiträge abwickeln zu können, wurde innerhalb der Rollenzuordnung eine neue Kategorie Familien eingeführt. Innerhalb dieser Kategorie befinden sich dann als Rollen die einzelnen Familien, denen die jeweiligen Familienmitglieder zugeordnet sind.
Um beitragsfreie Ehrenmitglieder verwalten zu können, wurde ebenfalls eine Rolle Ehrenmitglied eingeführt, der sämtliche Ehrenmitglieder zugeordnet sind.
Die Beitragssätze selbst befinden sich nicht in der Datenbank, sondern werden über die Konfiguration des Plugins festgelegt. Als zusätzliche Information muss für den automatischen Beitragseinzug für ein Mitglied die Bankverbindung angegeben werden, deshalb auch die zusätzlichen Felder in der Datenbank, welche oben beschrieben wurden. Pro Mitglied wird dabei innerhalb der Datenbank nicht verwaltet, ob das Mitglied bereits bezahlt hat oder nicht.
Nachdem der Beitragseinzug mit Hilfe des Plugins ermittelt wurde, werden drei Dateien zur Verfügung gestellt, welche folgenden Inhalt haben:
Wer näheres über die genaue Funktionsweise des Plugins erfahren möchte kann sich den Quellcode dazu innerhalb der Datei mitgliedsbeitrag.php ansehen. Die einzelnen Schritte sind in Kommentaren zum Quelltext aufgeführt.
Wie allgemein für Plugins üblich muss die Datei lediglich in das adm_plugins Verzeichnis der Admidio Installation entpackt werden. Wie das Plugin selbst in die Homepage eingebunden werden kann, zeigt der Wikieintrag zur Einbindung von Plugins. Hier ein Beispiel:
if($g_current_user->isWebmaster()) { include(SERVER_PATH."/adm_plugins/mitgliedsbeitrag/mitgliedsbeitrag.php"); }
Auf keinen Fall sollte das Plugin so eingebunden werden, dass es bei jedem Benutzer angezeigt wird.
Innerhalb des Verzeichnis adm_plugins/mitgliededsbeitrag existiert die Konfigurationdatei config.php dort kann das Plugin konfiguriert werden. Zur Beitragsstaffelung nach Alter ist hierbei die Variable beitrag_beitraege_einzel
wichtig. Hier das Beispiel:
$beitrag_beitraege_einzel[0]['alter'] = 0; $beitrag_beitraege_einzel[0]['betrag'] = 100000; $beitrag_beitraege_einzel[1]['alter'] = 14; $beitrag_beitraege_einzel[1]['betrag'] = 150000; $beitrag_beitraege_einzel[2]['alter'] = 18; $beitrag_beitraege_einzel[2]['betrag'] = 300000;
Der Familienbeitrag wird über die Variable beitrag_familie
konfiguriert, im Beispiel 65 €:
$beitrag_familie = 650000;
Weitere wichtige Felder für den Beitragseinzug sind das Konto auf das eingezogen werden soll, der Verwendungszweck, sowie die Dateien, die von dem Plugin erzeugt werden:
$beitrag_filename_list = SERVER_PATH."/adm_my_files/einzug.csv"; $beitrag_filename_csvrechnung = SERVER_PATH."/adm_my_files/rechnung.csv"; $beitrag_filename_dtaus_ctl = SERVER_PATH."/adm_my_files/dtaus0.ctl"; $beitrag_einzugstext = "Mitgliedsbeitrag"; $beitrag_ktonr_target = "123456"; $beitrag_blz_target = "12345678"; $beitrag_inhaber_target = "Vereinskonto";
Um aus der vom Plugin zur Verfügung gestellten Kontrolldatei eine dtaus0.txt Datei zu erzeugen, wird das Programm dtaus benötigt. Hier ein Beispiel des Programmaufrufs:
dtaus -d dtaus0.txt -c dtaus0.ctl -b begleit.txt -o dtaus0.sik -dtaus
Hierbei werden aus der Datei dtaus0.ctl, die vom Plugin zur Verfügung gestellt wird, folgende Dateien erzeugt: