-{{Projekt|verantwortlich=[[Schatzmeister]]|status=aktiv|beschreibung=Eine Übersicht über ie Buchführung des Schatzmeisters für den Verein.}}
+{{Projekt|verantwortlich=[[Schatzmeister]]|status=aktiv|beschreibung=Eine Übersicht über die Buchführung des Schatzmeisters für den Verein.}}
==Ziel dieser Seite==
Ziel dieser Seite ist die Dokumentation der Struktur der Buchführung für den Verein. Die Dokumentation soll dabei zum Einen einen Überblick über die Aktivitäten im Hintergrund geben und zum Anderen als Anleitung für zukünftige Schatzmeister und Kassenprüfer gelten.
Als Buchhaltung kommt JVerein zum Einsatz. Prinzipiell unterstützt JVerein den Einsatz eines SQL-Servers im Netzwerk als Backend. Um allerdings Änderungen an der Datenbank ebenfals Versionieren zu können, setzen wir JVerein mit einer lokalen Datenbank ein.
===Versionverwaltung===
-Alle finanz-relevanten Daten liegen in einem git. In dem Repository werden dabei rücksicktslos aus Binärdateien eingecheckt. Es gibt ein zentral gehostetes Repository, über das die Arbeitskopien synchron gehalten werden.
+Alle finanz-relevanten Daten liegen in einem git. In dem Repository werden dabei rücksicktslos auch Binärdateien eingecheckt. Es gibt ein zentral gehostetes Repository, über das die Arbeitskopien synchron gehalten werden.
Das Repo hat folgende Struktur:
./s0v-finanz
Die Struktur des Ordners 2013 wiederholt sich für alle weiteren Jahre.
+=== Locking ===
+Bei der Versionierung von Binärdateien (Jverein-Datenbank) muss sichergestellt werden, dass nicht aus Versehen zwei Vorstandsentitäten gleichzeitig am Datenbestand arbeiten – ansonsten müsste man beide Änderungen auf Binärebene miteinander vereinen, und das will wirklich niemand. Deshalb wird mit {{WP|File locking|Locking|l=en}} gearbeitet, wofür das gitolite auf [[theodem]] Unterstützung mitbringt.
+
+* '''Vor Beginn der Arbeit''' wird das Skript <code>./lock.sh</code> ausgeführt, das die entsprechenden Dateien sperrt und gleichzeitig auch neue Git-Revisionen holt.
+* Dann kann JVerein benutzt und Git-Commits erstellt werden.
+* ''' Nach Beginn der Arbeit''' wird das Skript <code>./unlock.sh</code> benutzt, um die neuen Revisionen auf den Server zu pushen und das Repo wieder zu entsperren.
+** Falls dieser Schritt vergessen wird, bekommt der nächste Benutzer beim Locking eine Fehlermeldung: <pre>FATAL: '.jameica/jverein/h2db/jverein.h2.db' locked by 'rohieb' since Sun Apr 23 17:23:46 2017</pre> In diesem Fall den entsprechenden Benutzer treten, oder dem [[Schatzmeister]] Bescheid sagen, um das Lock per Admin-Zugriff zu überschreiben. ([http://gitolite.com/gitolite/locking/index.html Relevante Doku dazu])
+
===Erweiterte Toollandschaft===
+:''Talk von {{Benutzer|Emantor}} dazu: [[Vorträge/Vorbei#Talks am Samstag, 14. Januar 2017, ab 19:00|Das Stratum 0 Finanzautomatisierungssystem]]''
+
Um das Jverein als zentrales Tool sind im Laufe der Zeit weitere Tools als Helfer entstanden:
* [https://gitli.stratum0.org/stratum0/jverein-regressionstests jverein-regressionstests]
** Test-suite, die in einem Post-Commit Hook des Git-Hosts durchgeführt wird.
** Erstellen von Buchungsbelegen für folgende Fälle:
*** Bar-Einzahlung in ein internes Konto
*** Umbuchung zwischen internen Konten
-** Senden aller Mitgliedskontoauszüge aus einem Ordner an alle Mitglieder
+** Senden aller Mitgliedskontoauszüge aus einem Ordner an das jeweilige Mitglied
* [https://gitli.stratum0.org/stratum0/jverein-beitragshelfer jverein-beitragshelfer]
** Tool zum automatisierten Zuordnen von eingegangenen Buchungen zu den entsprechenden Mitgliedern.
* DEPRECATED [https://gitli.stratum0.org/stratum0/jverein-guthabenstat jverein-guthabenstat]
Auf diesem Konto sind Gelder für zu erwartende Sonderausgaben besonders allokiert.
+{{Todo| Virtuelle Konten}}
===Buchungsklassen und Buchungsarten===
Die Buchungsklassen und Buchungsarten dienen der Gruppierung der Gewinn-und-Verlust-Rechnung des Vereins.
Mitgliedsbeiträge gehen dem Verein nur durch Überweisungsgutschriften, sowie Bar-Einzahlungen zu. Lastschrift wird nicht angeboten.
==== Beitragsklassen ====
-Im JVerein können Beitragsklassen als Presets für den fälligen Mitgliedsbeitrag je Abrechnungszeitraum. Hierfür sind typischerweise Vollzahler und ermäßigte Zahler definiert.
-Diese Presets können allerdings auch überschrieben werden.
+Im JVerein können Beitragsklassen als Presets für den fälligen Mitgliedsbeitrag je Abrechnungszeitraum angelegt werden. Hierfür sind typischerweise Vollzahler und ermäßigte Zahler definiert.
+Diese Presets können allerdings für jedes Mitglied individuell überschrieben werden.
Zahlt ein Mitglied einen durch ein Preset abgedeckten Mitgliedsbeitrag, so sollte auch dieses Preset verwendet werden.
Zahlt ein Mitglied einen anderen Beitrag, so kann ein individueller Beitrag das Preset überschreiben. Individuelle Beiträge sind z.B. für Mitglieder mit individuellem Beitrag und Fördermitglieder üblich.
+Falls ein Mitglied einen Ermäßigungsantrag stellt, gilt dieser nur für ein Jahr. Dafür kann in der Mitgliederverwaltung beim Bearbeiten eines Mitglieds auf dem Reiter "Mitgliedschaft" eine zukünftige Beitragsgruppe erstellt werden, die von JVerein automatisch ab einem bestimmten Datum gesetzt wird.
==== Abrechnungslauf durchführen ====
Beim durchführen eines Abrechnungslauf sind folgende Schritte zu beachten:
===Buchungen===
{{Todo|Buchungsbegriff}}
-{{Todo|Dokumentation einer Buchung (notwendige und optionale Angaben, Belegnummer, UB-Nummer)
+{{Todo|Dokumentation einer Buchung (notwendige und optionale Angaben, Belegnummer, UB-Nummer)}}
{{Todo|Umbuchen zwischen Konten}}
[[Kategorie:Dokumentation]][[Kategorie:Verein]]
+
+=== Mitgliederverwaltung ===
+In der JVerein-Navigation unter Start → JVerein → Mitglieder.
+
+==== Neues Mitglied anlegen ====
+Der Button "Neu" ist etwas versteckt rechts unten auf der Seite.
+* Als "Adressierungszusatz" darf ein Nickname eingegeben werden, um die Mitglieder zuordnen zu können.
+* In JVerein ist es leider nicht möglich, ein ausgetretenes Mitglied wieder aufzunehmen, also mehr als ein Eintritts- oder Austrittsdatum einzustellen. Fürs Archiv sollte der alte Datensatz aber bestehen bleiben. In diesem Fall den alten Mitgliedsdatensatz ändern (z.B. "Nachname" auf "Nachname/1" ändern), um die Datensätze unterscheiden zu können. (Für ausgetretene Mitglieder werden eh keine Abrechnungsdaten/-mails mehr erzeugt, sodass niemand außer uns die Änderung im Nachnamen zu Gesicht bekommt :P)
+** Danach kann man das umbenannte Mitglied einfach per Rechtsklick duplizieren und wieder als neuen Datensatz einpflegen.
+* Das Geschlecht wird offiziell nicht erhoben, ist aber ein Pflichtfeld, sollte auf "ohne Angabe" gesetzt werden.
+* Auf dem Reiter "Mitgliedsbeitrag" die entsprechende Kategorie einstellen, oder einen individuellen Beitrag eingeben. Siehe [[#Mitgliedsbeitrag]] für mehr Infos.
+* Eintrittsdatum ist das Datum des Antrags, z.B. Date-Header in der E-Mail, oder das Anfangsdatum der Mitgliedschaft, wenn das vom Mitglied anders gewünscht wurde.
+* Alle anderen Registerseiten können so gelassen werden, werden nicht benötigt.
+* Dann Mitglied speichern.
+
+Falls diesen Monat noch kein Abrechnungslauf stattgefunden hat, ist der Prozess beendet (Indikator: haben andere Mitglieder schon Sollbuchungen für diesen Monat auf ihren Mitgliedskonten?). Andernfalls muss noch der erste Mitgliedsbeitrag manuell als Sollbuchung hinzugefügt werden:
+* Dazu das Mitglied bearbeiten (Doppelklick in der Liste)
+* Auf dem Reiter "Mitgliedskonto" mit Rechtsklick eine neue Buchung mit dem Mitgliedsbeitrag hinzufügen.
+
+==== Mitgliedschaft beenden ====
+* Kündigungsdatum ist nicht unbedingt nötig, ich trage dort aber immer das Datum aus der entsprechenden E-Mail o.ä. ein, damit sie später unter Umständen besser auffindbar ist.
+* Austrittsdatum ist immer der letzte Tag eines Monats.
+* Falls Beitragserlass gewährt wurde, eine entsprechende Sollbuchung erstellen, sodass das Konto ausgeglichen ist.
+
+Weiteres Vorgehen:
+* [[Schlüssel]]gewalt entziehen ([[StratumKey]]-SSH-Zugang, Fahrradkeller, sonstige Schlüssel, inkl. Pfandrückgabe)