Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
de:2.0:mitgliedsbeitraege_in_admidio [2011/01/07 21:45] geraldlutterde:2.0:mitgliedsbeitraege_in_admidio [2011/01/07 23:11] (current) geraldlutter
Line 12: Line 12:
 </code> </code>
  
-Daraufhin sollte in der Tabelle **adm_categories** ein neuer Eintrag erscheinen. Wichtig ist für den nächsten Schritt der Wert in der Spalte **cat_id**, der im Folgenden mit **<id>** bezeichnet wird, dieses neuen EintragsIm folgenden Schritt werden die Felder für die Bankverbindung aller Benutzer angelegt. Hierfür muss folgendes Skript in ausgeführt werden. Wichtig ist hierbei, dass <id> durch den Wert der im voherigen Schritt eingefügten Zeile ersetzt wird:+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:
  
 <code sql> <code sql>
Line 23: Line 23:
  
 Sollten die Felder erfolgreich in die Datenbank eingefügt worden sein, kann mit der Konfiguration des Plugins begonnen werden. Sollten die Felder erfolgreich in die Datenbank eingefügt worden sein, kann mit der Konfiguration des Plugins begonnen werden.
 +
 ===== Funktionsweise des Plugins ===== ===== Funktionsweise des Plugins =====
  
Line 33: Line 34:
  
 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.  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. 
- 
 ==== Organisation der Datenbank ==== ==== Organisation der Datenbank ====
 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 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.
Line 39: Line 39:
 Um beitragsfreie Ehrenmitglieder verwalten zu können, wurde ebenfalls eine Rolle **Ehrenmitglied** eingeführt, der sämtliche Ehrenmitglieder 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 wurde. Pro Mitglied wird dabei nicht verwaltet, ob das Mitglied bereits bezahlt hat oder nicht.+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.
 ==== Ausgaben des Plugins ==== ==== Ausgaben des Plugins ====
 Nachdem der Beitragseinzug mit Hilfe des Plugins ermittelt wurde, werden drei Dateien zur Verfügung gestellt, welche folgenden Inhalt haben: Nachdem der Beitragseinzug mit Hilfe des Plugins ermittelt wurde, werden drei Dateien zur Verfügung gestellt, welche folgenden Inhalt haben:
Line 47: Line 47:
   * Eine csv Datei, die nur die Daten der Mitglieder enthält, welche per Rechnung Ihren Mitgliedsbeitrag bezahlen wollen. Diese kann dann mit einem Textverarbeitungsprogramm für einen Serienbrief herangezogen werden.   * Eine csv Datei, die nur die Daten der Mitglieder enthält, welche per Rechnung Ihren Mitgliedsbeitrag bezahlen wollen. Diese kann dann mit einem Textverarbeitungsprogramm für einen Serienbrief herangezogen werden.
  
-  * Eine Kontrolldatei für das **dtaus** Programm, mit dem in einem weiteren Schritt eine dtaus0.txt für den automatischen Bankeinzug erstellt werden kann.+  * Eine Kontrolldatei für das **dtaus** Programm, mit dem in einem weiteren Schritt eine dtaus0.txt Datei für den automatischen Bankeinzug erstellt werden kann
 +==== Algorithmus zur Bestimmung der Beiträge ==== 
 +  - Für alle Mitglieder werden die persönlichen Daten abgefragt und temporär in einem array gespeichert.        
 +  - Es werden alle Familien abgefragt. Das sind Rollen, die innerhalb der Kategorie **Familien** abgelegt sind, wie es oben bereits beschrieben wurde. 
 +  - Die Mitglieder der einzelnen Familien werden hierbei aus dem array aus Punkt 1 gelöscht und befinden sich jetzt nur noch innerhalb der Familienzuordnung. 
 +  - Die Ehrenmitglieder, erkennbar an ihrer Zuordnung zur Rolle **Ehrenmitglied** werden ebenfalls aus dem array aus Punkt 1 gelöscht, da sie beitragsfrei sind. 
 +  - Beginn der Beitragsberechnung: 
 +    - Für jede Familie wird der Familienbeitrag bestimmt. Dabei wird zufällig ein Mitglied aus der Familie ausgewählt, über das der Einzug abgewickelt wird 
 +    - Die Mitgliedsbeiträge werden anhand der Altersstaffelung aus dem erstellten array bestimmt 
 +  - Die Entscheidung ob Rechnung oder Bankeinzug erfolgt danach ob für ein Mitglied Kontodaten hinterlegt sind oder nicht. 
 +  - Die erstellten Beitragsdateien können heruntergeladen werden 
 + 
 +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. 
 + 
 +===== Installation des Plugins ===== 
 +Wie allgemein für Plugins üblich muss die [[http://sourceforge.net/projects/admidio/files/Mitgliedsbeitrag/1.0.x/mitgliedsbeitrag_1.0.0.zip/download|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 [[de:2.0:plugins|Einbindung von Plugins]]. Hier ein Beispiel: 
 +<code php> 
 +if($g_current_user->isWebmaster()) 
 +
 +    include(SERVER_PATH."/adm_plugins/mitgliedsbeitrag/mitgliedsbeitrag.php"); 
 +
 +</code> 
 +Auf **keinen Fall** sollte das Plugin so eingebunden werden, dass es bei jedem Benutzer angezeigt wird.
  
 ===== Konfiguration des Plugins ===== ===== Konfiguration des Plugins =====
-tbd+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:
  
 +  * Mitglieder von 0 - 14 Jahren: 10 €
 +  * Mitglieder von 15 - 18 Jahren: 15 €
 +  * Mitglieder ab 19 Jahren: 30 €
 +
 +<code php>
 +$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;
 +</code> 
 +
 +Der Familienbeitrag wird über die Variable ''beitrag_familie'' konfiguriert, im Beispiel 65 €:
 +
 +<code php>
 +$beitrag_familie = 650000;
 +</code>
 +
 +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:
 +
 +<code php>
 +$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";
 +</code>
 ===== Erzeugen der dtaus0.txt mit dtaus ===== ===== Erzeugen der dtaus0.txt mit dtaus =====
-tbd+Um aus der vom Plugin zur Verfügung gestellten Kontrolldatei eine dtaus0.txt Datei zu erzeugen, wird das Programm [[http://www.infodrom.org/projects/dtaus/|dtaus]] benötigt. Hier ein Beispiel des Programmaufrufs: 
 +<code bash> 
 +dtaus -d dtaus0.txt -c dtaus0.ctl -b begleit.txt -o dtaus0.sik -dtaus  
 +</code> 
 +Hierbei werden aus der Datei **dtaus0.ctl**, die vom Plugin zur Verfügung gestellt wird, folgende Dateien erzeugt: 
 +  * **dtaus0.txt**: Die dtaus Datei, die der Bank für den automatischen Einzug übergeben werden muss 
 +  * **begleit.txt**: Der Begleitzettel für die dtaus0.txt, der unterschrieben zusammen mit der Datei dtaus0.txt bei der Bank abgegeben werden muss. 
 +  * **dtaus0.sik**: Eine Übersicht, was mit der dtaus0.txt Datei für Abbuchungen getätigt werden. Diese Datei ist ganz nützlich für die Unterlagen zum Beitragseinzug.
  • de/2.0/mitgliedsbeitraege_in_admidio.1294433140.txt.gz
  • Last modified: 2011/01/07 21:45
  • by geraldlutter