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