Freie Software für Freie Unternehmen

Transcription

Freie Software für Freie Unternehmen
Version 0.9
Jochen Stärk (jstaerk@usegroup.de)
Copyright © 2009 Jochen Stärk.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation.
Dieses Paper stellt osFaktura und Gnuaccounting, zwei Java-FakturaProgramme mit Buchhaltungsfunktionen vor.
Freie Software für Freie Unternehmen: Zwei
Buchhaltungsalternativen
Faktura und Buchhaltung
Es gibt mit Gnucash bereits ein größeres (1) Buchhaltungsprogramm mit
vergleichsweise vielen Funktionen, allerdings konzentriert sich Gnucash auf die
Buchführung und Bilanzierung, die Faktura, das heißt die Belegerstellung, ist
relativ kompliziert und integriert sich nicht gut in Geschäftsprozesse2.
Der Markt von „echten“, Buchhaltungs- oder Fakturalösungen für Linux ist mit
gerade mal acht Programmen jedoch sehr überschaubar. Als „echte“
Programme gelten dabei alle nicht webbasierten Anwendungen die nativ unter
Linux oder Java arbeiten 3.
1 65 registrierte Ohloh-Nutzer am 14.06.2009, http://www.ohloh.net/p/gnucash
2 Es fehlt ein visueller Designer für Rechnungen, druckbare Rechnungen können nicht ohne
Rechnungsbuchung erstellt werden, Rechnungsbuchungen können nicht ohne Aufträge
erstellt werden und Aufträge können zum Beispiel nicht ohne Auswahl der
Verbuchungskonten für die Posten erstellt werden
3 siehe Nicht-webbasierter Linux-Buchhaltungsanwendungen ,S. 13
My itch
Every good work of software starts by scratching a developer's
personal itch.
Eric Steven Raymond, The Cathedral and the Bazaar
Für meine damalige Faktura musste ich jedesmal VMWare und Windows starten
um eine Rechnung zu schreiben. Meine Faktura sollte also
1. unter Linux funktionieren.
2. eine echte Anwendung sein, da Webanwendungen zum Beispiel
schlechter mit Drucker- Chipkarten- oder Scanneransteuerung zusammen
arbeiten.
3. Belege erstellen können. Idealerweise sollten entsprechende Vorlagen
leicht, das heißt ohne Skriptsprache (=What-you-see-is-what-you-get)
gestaltet werden können.
4. eine Übergabe der Daten an eine Buchhaltung ermöglichen oder selbst
Buchhaltungsaufgaben erfüllen. Diese Buchhaltung musste mir
mindestens ermöglichen, meine monatlichen Umsatzsteuervoranmeldung
durchzuführen und möglicherweise meine Bilanz vorbereiten.
5. benutzerfreundlich sein.
Compiere warb angeblich mit:
Im Gegensatz zu anderen Lösungen sind sie hier schon nach vier
Stunden in der Lage Rechnungen einzugeben.
Compiere Website1
Die Zielsetzung für Gnuaccounting ist, binnen vier Minuten eine
Rechnung erstellen zu können.
6. Idealerweise und aus hauptsächlich ideologischen Gründen wäre sie Freie
Software. Dies kann, vor allem auch in der Anfangsphase eines Projekts,
auch aus betriebswirtschaftlichen Gründen sinnvoll sein, weil die NichtHaftung der GPL ein sehr frühes Release ermöglicht und keine
Ressourcen, zum Beispiel zum Warten und Weiterentwickeln der
Software, bindet.
1 http://www.linux-magazin.de/Heft-Abo/Ausgaben/2002/07/Freiheit-fuer-Buerohengste/
(offset)/2
OsFaktura
Internet: http://www.osfaktura.de/
Download: http://www.osfaktura.de/files/beta/osfaktura.zip
Unabhängig von Gnuaccounting aber in nicht einmal 30km Entfernung hat Jan
Hans Novak in eine technisch sehr ähnliche, Open-Source Java Fakturasoftware
geschrieben. Sie soll sein eigenes, produktiv eingesetztes kommerzielles
Produkt, Refas, ablösen.
Testsystem
Das Testsystem besteht aus einem Kubuntu 9.04. Zusätzlich installiert wurde
Sun Java 1.6 und der MySQL-Server. MySQL wurde mit mysql_secure_install
gesichert.
osfaktura wurde extrahiert und in das Verzeichnis /opt/osfaktura verschoben.
Für das Scanmodul wurde /tmp auf /temp gesymlinked.
Die Datenbank „osf“ wurde angelegt und entsprechend den Anweisungen in
/opt/osfaktura/install/mini-howto.txt befüllt:
„mysq l
mysq l> c r e a t e da t a b a s e os f ;
mysq l>g r a n t a l l p r i v i l e g e s on os f . * t o ' o s f a k t u r a ' @ ' l o c a l h o s t '
i d e n t i f i e d by '<gehe im> ' ;
mysq l> f l u s h p r i v i l e g e s
mysq l>e x i t
mysq l -u os f a k t u r a -p </op t/o s f a k t u r a / i n s t a l l / o s f a k t u r a . s q l “ .
Schritte
1. Start des Partnermoduls mit ./osfaktura.sh 1
osFaktura befindet sich noch in Entwicklung und es gibt leider noch keinen
Hauptbildschirm, von dem sich die Module starten ließen.
Die Standard-Zugangsdaten sind Benutzer „User1“ mit leerem Passwort.
2. Suchen nach Partner
Als Platzhalter kann „*“ verwendet werden. Das Programm wird zu diesem
Zeitpunkt allerdings nur Jans Firma, Repkom, finden.
3. Programm beenden
4. Demodaten erzeugen mit ./osfaktura.sh 4
5. Die Suche nach Partner (./osfaktura.sh 1) zeigt jetzt wesentlich mehr
Daten:
Illustration 1: Abb. 1: osFaktura Kontaktliste
6. Doppelklickt man einen Partner, sieht man die Details:
Einige Funktionen sind angedeutet, die über die von Gnuaccounting weit
herausgehen, zum Beispiel Umsatzliste (Partner|Umsatz) oder
Artikelaufstellung (Partner|Artikel). Memo (Partner|Memo) und
Intervallauftrag (Partner|Intervallauftrag) sind ebenfalls interessant,
Intervallauftrag gefällt mir genau genommen so gut, dass ich ihn mir für
Gnuaccounting eventuell klauen werde.
Während Scans (Button rfScan) in Gnuaccounting zwar ebenfalls möglich
sind, ist die offensichtliche Telefonintegration (Button RfTelco)
einzigartig.
7. Die Artikelverwaltung (./osfaktura.sh 3) zeigt wesentlich mehr Attribute
Abb. 1: OsFaktua Kontaktliste
als wir später in Gnuaccounting sehen werden, unter anderem fünf Preise
und ein Einkaufspreisattribut das eine Spannenberechnung erlaubt.
Abb. 2: OsFaktura Kontaktdetails
Auch hier ist osFaktura ambitionierter als der derzeitige Stand von
Gnuaccounting und unterstützt unter anderem Lagerhaltung und
Stücklistenartikel.
8. Das Kassenbuch (./osfaktura.sh 5) ist das derzeit einzige
Buchhaltungsfeature von osFaktura und ermöglicht die Eingabe von Einund Ausgangsrechnungen inklusive Belegscans.
Abb. 3: OsFaktura Kassenbuch
9. Das Faktura-Modul leidet in der derzeit verfügbaren Version leider unter
einer Regression und lässt sich nicht starten.
Gnuaccounting
Internet: http://www.gnuaccounting.de/
Download: http://sourceforge.net/project/showfiles.php?
group_id=130483&package_id=143018
Testsystem
Das Testsystem besteht aus einem Kubuntu 9.04. Zusätzlich installiert wurde
Sun Java 1.6, die (optionalen) Treiber des Chipkartenlesers und die ebenfalls
optionale Winston-Freeware zur elektronischen Steueranmeldung
(www.felfri.de/winston). Winston wurde einmalig gestartet, mit den
Steuerdaten eingerichtet und durch Anklicken der Checkbox „Ausgangskorb
benutzen“ zur Anlage eines Ausgangskorbs-Verzeichnisses angeregt.
Bei anderen Linux-Systemen ist unter Umständen zusätzlich eine Installation
des „OpenOffice-OfficeBeans“-Pakets notwendig. Unter Gnome funktioniert die
Texteingabe in das in Gnuaccounting eingebettete OpenOffice.org derzeit
nicht. Workaround: Vorlagen für die Rechnungen im externen OpenOffice.org
gestalten und nach ~/.gnuaccounting/0000/AN-template1.odt, ERtemplate1.odt, GS-template1.odt, PD-template1.odt, RE-template1.odt und STtemplate1.odt kopieren.
Schritte: Faktura
1. Gnuaccounting wird entpackt und per ./gnuaccounting.sh gestartet
Abb. 4: Gnuaccounting
Hauptfenster
2. In „Verwaltung|Konfiguration“ werden die Programmeinstellungen, in
„Verwaltung|Einstellungen“ die Mandanteneinstellungen vorgenommen.
Wichtige Programmeinstellungen für diese Demonstration sind das
Winston-Ausgabeverzeichnis (~/.Winston/Ausgang/, siehe Abschnitt
'Testsystem') sowie der Chipkartentreiber.
Wichtige Mandanteneinstellungen sind in diesem Zusammenhang
Steuernummer, Bundesland, Finanzamt, Bankleitzahl, Kontonummer und
Kontoinhaber.
3. Der Knopf „Neuer Vorgang“ im Hauptfenster erstellt Rechnungen,
Gutschriften, Privatentnahmebescheinigungen, Stornierungen oder
Angebote. Dazu wählt man im ersten Schritt Datum, Empfänger und
Belegart:
Abb. 5: Gnuaccounting
Transaktionsdetailauswahl
4. im zweiten Schritt fügt man der Rechnung Positionen an, hier 123
„Beispielprodukt“
Abb. 6: Gnuaccounting Posteneingabe
5. im dritten Schritt wird eine Vorschau auf das fertige Dokument generiert.
Theoretisch ist diese Vorschau noch beschreibbar, das heißt im
Dokument kann noch editiert werden
Abb. 7: Gnuaccounting Rechnungsvorschau im
eingebetteten OpenOffice.org
6. im letzten Schritt wird das Dokument automatisch als .odt und .pdf
gespeichert und auf Wunsch gedruckt und/oder gemailt. Zum E-Mailen
wäre in der Kontakteverwaltung eine Empfänger-Email-Addresse und in
der Programmkonfiguration Zugangsdaten zu einem E-Mail-Server nötig.
In den Programmeinstellungen könnte man zusätzlich noch einen GPGPfad angeben um die Rechnungen digital signiert vorab zu verschicken.
Da es sich jedoch nicht um rechtsgültige digitale Unterschriften im Sinne
des Gesetzes handelt kann diese Mail eine Papierrechnung nicht ganz
ersetzen.
Schritte: Buchhaltung
1. Es gibt zwei Wege die Rechnung zu verbuchen.
Erstens: Der „offen“ Knopf beinhaltet alle noch zu erledigenden
Aufgaben. Neben einiger einmaligen Installations-Aufgaben wie der
Vorlagenanpassung enthält er jetzt auch die eben gestellte Rechnung.
Abb. 8: Gnuaccounting To-Do Fenster
Der Link „Zahlungseingang“ führt zur Detailverbuchung:
Abb. 9: Gnuaccounting
Detailverbuchungsfenster
Ist in der Kundenverwaltung „Lastschrift“ als Zahlungsmethode
ausgewähltkann man auf diesem Bildschirm mit der Checkbox
„Überweisung/Lastschrift Ausführen“ eine HBCI-Lastschrift einreichen. Bei
einer Gutschrift veranlasst dieselbe Checkbox eine Überweisung statt
einer Lastschrift.
2. Zweitens kann man Rechnungen verbuchen indem man über den
„Importieren“ Link im Buchhaltungsfenster die Möglichkeit nutzt, ganze
Kontoauszüge in die Buchhaltung zu übernehmen. Da die Kontoauszüge
notwendigerweise die Hälfte des entsprechenden Buchhaltungskontos
„Bank“ in der doppelten Buchführung darstellen fehlt nur die Auswahl
des Gegenkontos, des Umsatzsteuersatzes und der Belegnummer.
Zum Import per HBCI wählt man einfach einen Zeitraum und klickt auf
„Import“. Für eigene Versuche ohne HBCI wird im GnuaccountingUnterverzeichnis „samples“ eine geeignete Moneyplex XML-Datei
mitgeliefert.
Abb. 10: Gnuaccounting
Kontoauszugsimport
3. Im nächsten Fenster wählt man die Gegenkonten und den
Umsatzsteuersatz aus und gibt in „Reference“ die Rechnungsnummer ein
oder wählt sie aus. Da die Umsatzsteuerschuld für Leistungen im Mai, die
erst im Juni bezahlt werden, schon im Mai anfällt, kann das
Leistungserbringungsdatum manuell in der ersten Spalte angepasst
werden oder automatisch durch Auswahl der entsprechenden
Belegnummer für den Benutzer transparent übernommen werden.
Abb. 11: Gnuaccounting Eingangsliste
4. Jede vollständige Buchung wird dann per Drag&Drop in einen Korb im
Ablagebereich, „Buchen“, „Mehr“ oder „Löschen“ befördert. STRG+Klick
ermöglicht hierbei das Auswählen mehrerer Buchungen. Während
„Löschen“ die Buchung ins digitale Nirvana befördert, erlaubt die Ablage
in „Mehr“die Anzeige in der bereits bekannten Detailverbuchungsansicht,
die zum Beispiel zum Verbuchen von Rechnungen mit mehreren
Vorsteuersätzen herangezogen werden muss. Der „Buchen“ Korb
überträgt die Einträge ohne weitere Umwege in die Buchhaltung.
5. Wir möchten eine elektronische Umsatzsteuervoranmeldung durchführen
und klicken hierzu im Hauptfenstermenü auf „Export der USt.Anmeldung“.
6. Nach Auswahl des Monats und Klick auf „Exportieren“ können wir
Winston („winston“) starten.
7. Dort befindet sich die Umsatzsteueranmeldung in „Formular|
Ausgangskorb“. Bitte markieren Sie die entsprechende Anmeldung.
8. Durch „Anmeldung übertragen“ wird diese ans Finanzamt übertragen und
ausgedruckt. Es bietet sich jedoch eine vorherige Kontrolle, zum Beispiel
durch Klick des „Bearbeiten“ Knopfes an.
9. Die so gewonnenen Daten können unter weiterhin per „Schnittstellen|
Export als Tabellenkalkulation“ dem Steuerberater als Bilanzgrundlage
zur Verfügung gestellt werden.
Abb. 12: Gnuaccounting
Buchhaltungsdatenexport in das
eingebettete OpenOffice.Org Calc
Ausblick
OsFaktura
Die Fertigstellung einer einsatzfähigen Version die möglicherweise ebenfalls
OpenOffice einbetten könnte hat einen hohen Stellenwert, krankt aber an
wenigen Ressourcen. Möglicherweise könnte man mittel- bis langfristig eine
Schnittstelle zu Gnuaccounting ergänzen um Gnuaccounting für die
Buchhaltung und osFaktura für die Faktura eines Unternehmens nutzen zu
können.
Gnuaccounting
Nachdem die Version 0.7.1 die Umstellung auf Hibernate begonnen hat soll
diese fortgesetzt werden und bisherige Methoden (native HSQLDB- und MySQLUnterstützung) idealerweise ablösen. In den nächsten fünf bis zehn Jahren
könnte sich das Programm eventuell in Richtung Eclipse Rich Client Plattform
und in Richtung Anwendungsserverintegration bewegen.
Fazit
Gnuaccounting erfüllt seine Aufgabe als Faktura und Buchhaltung für mein
Kleinstunternehmen. Interessant ist die Frage, warum sich bislang keine
Community gebildet hat, ob und wann sich diese möglicherweise bilden wird
und ob das geringe Feedback (2 Mails) trotz offensichtlichem Interesses
(>7500 Downloads) so niedrig ist.
Während osFaktura zwar derzeit noch mehr und bessere Fakturafunktionen
(Intervallauftrag, Lagerhaltung) verspricht, ist sie aufgrund des frühen
Entwicklungsstands leider noch nicht einsatzbereit.
Gnuaccounting hat weniger Faktura-Features zugunsten von mehr Buchhaltung
und ist, zumindest die Faktura betreffend, bereits relativ stabil.
Bei beiden Programme ist die Nutzung der Buchführungsfeatures optional. So
kann die Einführung durchaus schrittweise (zuerst Faktura, dann Buchhaltung)
erfolgen.
Anhang
Marktbetrachtung
Nicht-webbasierter Linux-Buchhaltungsanwendungen
Basierend auf http://gnuaccounting.wiki.sourceforge.net/Competitors
•
•
•
•
•
•
•
•
Lin-Habu
gnucash
kraft
Compiere
Adempiere
syntax
mp
Postbooks
Gnuaccounting Facts&Features
•
Java (Win32/Lin32/Lin64)
•
Import von Starmoney und Moneyplex Kontoauszügen
•
Import von TaskCoach und KTimetracker Stundenlisten
•
OpenOffice.org-Einbettung zur einfachen Vorlagengestaltung
•
HSQLDB-Einbettung, MySQL fähig
•
Scannerunterstützung, ADF
•
Nutzung des SKR03-Kontenrahmens
•
nativ Englischsprachig, deutsche Übersetzung vorhanden
•
HBCI-Fähig (Kontostandabruf, Gutschrift, Lastschrift)
•
Winston-Export (Winston=Windows+Linux elektronische UStVoranmeldung)
•
Scanneranbindung für ein rudimentäres Dokumentenmanagement
•
Version 0.7.1
•
>7500 Downloads in >4 Jahren (0.0.9 am 25.03.2005)
•
2 User
•
3 Developer
Osfaktura-Gnuaccounting Vergleichsmatrix
OsFaktura
Gnuaccounting
Human-Sprache
Deutsch
Englisch,Deutsch
Programmiersprache
Java
Java
Version
Downloadgröße
0.7.1
12MB
Alter (Vorgängerprodukt)
22MB
4 Jahre (kein Vorgänger)
Web-Seite
osfaktura.de
gnuaccounting.de
Author
Jan Hans Novak
Jochen Stärk
Firma
Repkom
usegroup
Codezeilen
33300
18000
Downloads
7500+
Lizenz
GPLv2+
GPLv2+
Beta
geschlossen
offen
GUI
Swing
SWT
Datenbank
MySQL
HSQLDB, MySQL
Persistenz
OJB
Hibernate
Scannen+ADF
Ja
Ja
HBCI
Nein
Ja
OpenOffice
Geplant
Ja
Kontenrahmen
-
SKR03
Ust-Voranmeldung
Nein
Winston-Export
Eigenformat
-
OBDX
Telefonintegration
Ja
Nein
E-Mail Integration
Ja
nur RE senden
GPG-Signaturen
Nein
Ja
Import von
Refas
KTimeTracker, Taskcoach,
Moneyplex, Starmoney
Lagerhaltung
Ja
Nein
Anzahl Entwickler
1
2
Anzahl Anwender
0
2
Lines of Code
osFaktura
296 unique files.
1393 files ignored.
http://cloc.sourceforge.net v 1.08 T=4.0 s (67.0 files/s, 15597.5 lines/s)
------------------------------------------------------------------------------Language
files
blank comment
code
scale 3rd gen. equiv
------------------------------------------------------------------------------Java
243
8248
8500
XML
10
211
485
SQL
3
248
12
DTD
1
179
637
Bourne Shell
8
37
DOS Batch
3
8
33366 x 1.36 =
8785 x 1.90 =
45377.76
16691.50
1353 x 2.29 =
3098.37
216 x 1.90 =
410.40
84 x 3.81 =
320.04
5
4
12 x 0.63 =
7.56
------------------------------------------------------------------------------SUM:
268
8931
9643
43816 x 1.50 =
65905.63
-------------------------------------------------------------------------------
Gnuaccounting
148 unique files.
484 files ignored.
http://cloc.sourceforge.net v 1.08 T=2.0 s (63.5 files/s, 14612.0 lines/s)
------------------------------------------------------------------------------Language
files
blank comment
code
scale 3rd gen. equiv
------------------------------------------------------------------------------Java
119
Bourne Shell
3967
3
372
XML
3
13
XSD
1
0
DOS Batch
1
2926
309
1
25276.96
2118 x 3.81 =
8069.58
840 x 1.90 =
0
0
18586 x 1.36 =
88 x 1.90 =
0
1596.00
167.20
4 x 0.63 =
2.52
------------------------------------------------------------------------------SUM:
127
4352
3236
21636 x 1.62 =
-------------------------------------------------------------------------------
35112.26