Hallo rnb,
Danke erstmals für Deine Bemühungen. Habe mir in der Zwischenzeit mal den Code des Plugin Mitgliedsbeitrag angeschaut und einen relativ einfachen Weg gefunden, der meine Bedürfnisse im wesentlichen abdeckt.
Alle gemachten Anpassungen sind nachfolgend für das Mitgliedsplugin mit der Version 2.2.1 dokumentiert.
Die
config.php um folgenden Eintrag ergänzen:
Code: Alles auswählen
// Alle Mitglieder dieser Kategorie zahlen einen festen Jahresbeitrag
// Die effektiven Beiträge werden von den jeweiligen Rollen der Kategorie
// aus der DB ermittelt.
// Alle anderen konfigurierten Beiträge werden nicht berücksichtigt!!!
// Falls die anderen Konfigurationen berücksichtigt werden sollen, darf
// hier keine Kategorie eingetragen werden.
$beitrag_fix['kategorie'] = "Mitgliedsbeitrag";
In der Datei
mitgliedsbeitrag_show.php müssen die nachfolgenden Ergänzungen vorgenommen werden.
Nach Zeile 250 folgendes einfügen:
Code: Alles auswählen
$beitragfix = befuelle_array($g_db, $beitrag_fix['kategorie']) ;
Nach Zeile 313 folgendes einfügen (diese Ergänzung bewirkt, dass man bei Konten, bei denen das Mitglied der Kontoinhaber ist, keinen Kontoinhaber angeben muss. Mit dem bisherigen Code wird für solche Mitglieder immer eine Rechnung erstellt):
Code: Alles auswählen
if ($members[$member]['Kontonummer'] <> NULL)
{
if ($members[$member]['Kontoinhaber'] == NULL)
{
$members[$member]['Kontoinhaber'] = $members[$member]['Vorname']." ".$members[$member]['Nachname'];
}
}
Vor Zeile 424 folgendes einfügen:
Nach Zeile 428 folgendes einfügen:
Code: Alles auswählen
}
else
{
berechne_fixbeitrag($members,$member,$beitragfix,$current_year,$beitrag_sparte,$member,$memberdata,$beitrag_abrunden);
}
Nach Zeile 879 folgendes einfügen:
Code: Alles auswählen
function berechne_fixbeitrag(&$dom_array,$sub_array_key,$beitragfix,$current_year,$beitrag_sparte,$member_key,$member_data,$beitrag_abrunden)
{
//ist das Mitglied einer Fixbeitrag-Rolle
if($member_key == $beitragfix[$member_key]['mem_usr_id'])
{
$fixbeitrag = $beitragfix[$member_key]['beitrag'];
$text = $beitragfix[$member_key]['text'];
//Beitrag abrunden
if ($beitrag_abrunden == 1)
{
$fixbeitrag = floor($fixbeitrag/10000)*10000;
}
// Addition und Text schreiben, nur wenn temporärer Beitrag != 0
if ($fixbeitrag != 0)
{
$dom_array[$sub_array_key]['Beitrag'] = $fixbeitrag;
$dom_array[$sub_array_key]['Beitragstext'] = $dom_array[$sub_array_key]['Beitragstext']." ".$text." ".number_format($fixbeitrag/10000.0,2,",", ".")." EUR";
}
if ($member_data['Kontoinhaber'] <> NULL)
{
if ($member_data['Kontoinhaber'] <> $member_data['Vorname']." ".$member_data['Nachname'])
{
$dom_array[$sub_array_key]['Beitragstext'] = $dom_array[$sub_array_key]['Beitragstext']." ".$member_data['Vorname']." ".$member_data['Nachname'];
}
}
}
}
Zeile 969 ersetzen mit:
Code: Alles auswählen
$sql = 'SELECT rol.rol_name, rol.rol_id, rol.rol_cost
Nach Zeile 978 folgendes einfügen:
Code: Alles auswählen
$hilfsarray[$row['rol_id']]['beitrag'] = $row['rol_cost'];
Zeile 973 ersetzen mit:
Code: Alles auswählen
$hauptarray[$row['mem_usr_id']]['mem_usr_id']= $row['mem_usr_id'];
$hauptarray[$row['mem_usr_id']]['text'] = $hilfsarray[$hilfsid]['name'];
$hauptarray[$row['mem_usr_id']]['beitrag'] = $hilfsarray[$hilfsid]['beitrag'] * 10000;
Alle Zeilennummern beziehen sich auf die originale Zeilennummer in der Datei mitgliedsbeitrag_show.php in der Version 2.2.1.
Vielleicht kann dies ja in irgendeiner Form in das Plugin einfliessen.
Bei Fragen stehe ich gerne klärend zur Verfügung.
Gruss hausi