Author Archives: grichardson

Beleg Schnellsuche in der 3.2

Eines meiner kivitendo Lieblingsfeatures für die tägliche Arbeit aus der neuen Version 3.2 ist die Beleg Schnellsuche für Debitorenrechnungen, Kreditorenrechnungen und Dialogbuchungen, insbesondere wenn man für die Buchhaltung bei kivitendo zuständig ist. In der Kopfzeile gibt es nun ein interaktives Eingabefeld, wo man nach Rechnungsnummern, Kunden- oder Lieferantennamen oder Belegbeschreibungen suchen kann. Hat man z.B. einen Papierbeleg vor sich kann man von jeder Seite aus direkt zu dem gebuchten Beleg gelangen.

Das Eingabefeld basiert auf jQuery autocomplete, und man muß mindestens 3 Zeichen eingeben, bevor die Suche aktiviert wird. Dargestellt werden maximal 40 Ergebnisse pro Belegtyp, und die Ergebnisse werden zeitlich sortiert. Mit den Pfeiltasten oder der Maus kann man dann einen Beleg aus dem Dropdown auswählen, und im Idealfall gibt es nur einen Treffer, so daß man mit der Enter-Taste direkt zum Beleg springen kann. Im Dropdown wird dabei eine Kurzzusammenfassung des Beleges angezeigt, bestehend aus Abkürzung Belegtyp, Rechnungsnummer, Name, Betrag und Rechnungsdatum.

Das Feature ist für die Buchhaltung gedacht und daher braucht der Benutzer auch das Gruppenrecht “Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen” aus dem Bereich “Finanzbuchhaltung und Zahlungsverkehr”.

Die Schnellsuche wurde letztes Jahr in vereinfachter Form als Programmierbeispiel in der Entwicklerschulung vorgestellt, und findet sich nun auch im Standard.

Ausprobieren kann man das Feature wie immer in der offiziellen Demo.

Steuerfilter

Bei der Dialogbuchung war es früher so, daß wenn man ein Buchungskonto auswählte, prinzipiell alle Steuervarianten (Umsatzsteuer 7/19%, Vorsteuer 7/19%) zur Verfügung standen. Hatte das Konto eine Steuerautomatik wurde der richtige Eintrag vorausgewählt, aber man konnte dies nach belieben ändern.
Es kam allerdings immer wieder vor, daß Anwender nicht genau hingeschaut haben und beim manuellen Zuweisen z.B. Vorsteuer statt Umsatzsteuer ausgewählt haben. Daher wurde mit der Version 3.1. ein Filter eingeführt, wo man einstellen kann, bei welchen Kontenarten welche Steuerarten angezeigt werden können.
Dies geschieht unter “System”->”Steuern”, wo man für jeden Steuerschlüssel festlegen kann, für welche der Kontenarten diese Steuer auswählbar sein soll.

Die Standardeinstellung ist z.B., daß Steuerschlüssel 3 (Umsatzsteuer 19%) nur bei Erlöskonten angezeigt wird, nicht bei Aufwandskonsten oder Aktiva/Passivakonten. Sobald man ein Erlöskonto auswählt stehen für die Steuerautomatik also auch nur Umsatzsteuerkonten und keine Vorsteuerkonten zur Verfügung:

Jetzt hatten wir allerdings mit unserem Steuerberater einen Spezialfall, wo dieser ein Passiva-Konto (3272 Erhaltene Anzahlungen 19% USt) angelegt hat, und sich gewundert hat, warum er dieses Konto nicht mit Steuerautomatik buchen konnte, da nur die Varianten “keine Steuer” und “USt-frei” angezeigt wurden. Der Grund war natürlich genau dieser Filter. Für diesen Fall mußten wir also Steuerschlüssel 3 auch für Passivakonten freischalten:

Es gibt auch Fälle, wo solch ein Filter komplett unerwünscht ist. In dem Fall kann man das alte Verhalten wieder herstellen, indem man bei allen Steuern die Häkchen bei allen Kontenarten setzt. Auch während des Upgradeprozesses auf die 3.1. hat man einmalig die Möglichkeit, dies zu konfigurieren, bzw. die Voreinstellungen anzupassen.

Seitenumbruch in Druckvorlagen

Wir benutzen für die Positionstabellen in den Belegen generell die longtable Umgebung. Gerade wenn der Langtext länger wird kommt es immer wieder vor, daß auf dem ausgedruckten Beleg große leere Bereiche entstehen, v.A. auf der ersten Seite, so daß die Positionstabelle erst auf der zweiten Seite beginnt. Das sieht fast immer schlecht aus und erzeugt Unmut beim ästhetischen Belegersteller.

Dies liegt daran, daß LaTeX bei longtable nicht innerhalb einer Tabellenzeile umbrechen kann, und erst auf der zweiten Seite die Chance hat, die Position komplett unterzubringen. Wenn man nur eine Position hat kann man auch nicht durch manuelles Umsortieren der Positionen Abhilfe schaffen.

Bis zur Version 3.1 konnte man dies mit einem Trick umgehen, und zwar indem man \newline umdefinierte. Die Zeilenumbrüche aus der Langbeschreibung wurden in LaTeX nach \newline umgewandelt, und hierfür konnte man statt eines einfachen Zeilenumbruchs eine ganz neue Tabellenzeile generieren. Wenn sich z.B. die Langtextbeschreibung in der 3. Tabellenspalte befindet wie folgt:

\renewcommand{\newline}{ \\ & & }
\begin{longtable}{clp{10.2cm}crr}
...
\end{longtable}
\renewcommand{\newline}{\\ }

Dadurch kann LaTeX innerhalb des Langtextes nach Belieben die Seite umbrechen, da jede Langtextzeile einer Tabellenzeile entspricht. Das ist nicht wirklich elegant, funktioniert aber, solange in keine der anderen Spalten ein \newline vorkommt.

Mit dem neuen Langtexteditor wird der Langtext allerdings als HTML gespeichert, und statt einfacher Zeilenumbrüche wird nun alles in < pa r> Tags gesetzt.

In SL/Tempates/LaTeX.pm wird zudem das < /par > durch \n\n ersetzt, es gibt also kein \newline mehr und der Seitenumbruch funktioniert nicht mehr.

Um das alte Verhalten wiederherzustellen muß man dort das \n\n also durch ein \newline ersetzen.

Fehlermeldungen in LaTeX

Da ich auf der FrOSCon nicht dazu gekommen bin, mir einen der Vorträge anzuschauen, habe ich heute mal in eine der Aufzeichnungen hineingeschaut, Programmierung mit LaTeX

Fast nebenbei wird dort der \typeout Befehl erwähnt, mit dem man während des Kompilierens Ausgaben für den Benutzer erzeugen kann, und sich das damit auch zum Debuggen eignet.

Ein typischer Fehlerfall von kivitendo sind Sonderzeichen z.B. im Langtext von Artikeln, die durch Copy&Paste aus anderen Quellen, z.B. PDFs, eingefügt werden, und von LaTeX nicht verarbeitet werden können. Der Benutzer bekommt dann den Inhalt der .err-Datei angezeigt, kann damit in der Regel aber nicht viel anfangen, weil das betreffende Zeichen meist entstellt angezeigt wird und meist der Kontext fehlt.

Beispiel: ich füge die Zeichen 香港 in den Langtext von Position 2 ein, und erhalte:

! Package inputenc Error: Unicode char \u8:香 not set up for use with LaTeX.
l.188 & & \newline 香
港 \\

Der Benutzer hat keine Ahnung, um welches Zeichen es sich handelt und wo im Dokument es sich befindet, kann entweder durch raten oder gezieltes Löschen die Fehlerursache suchen, oder muß seinen Admin/Dienstleister anrufen.

Mit dem \typeout Befehl kann man aber z.B. in der Artikelschleife bei jeder Position kurz ausgeben, welche Artikelposition gerade ausgegeben wird, so daß man im Falle des Abbruchs zumindest schon mal sehen kann, bei welchem Artikel das Sonderzeichen ist.

<%foreach number%>
\typeout{Position <%runningnumber%> (Artikelnr <%number%>)}

In der .err-Datei, und damit an der Browserobefläche, taucht das dann folgendermaßen auf:

Position 1 (Artikelnr 1)
Position 2 (Artikelnr 1)

! Package inputenc Error: Unicode char \u8:香 not set up for use with LaTeX.

Jetzt weiß man zumindest schon mal, daß das kaputte Zeichen bei Position 2 liegt.

Das Gleiche könnte man auch für andere Eingabefelder, wie z.B. Transportmittel, machen.

Bei der Gelegenheit habe ich mich dann auch gewundert, warum mein 香港 eigentlich im Browser nicht richtig angezeigt wird, auf der Kommandozeile wurde das in der .err-Datei nämlich schön angezeigt. In der entsprechenden Codestelle (SL/Form.pm, sub cleanup) wurde die .err Datei nicht mit UTF-8 Encoding eingelesen, baut man das ein

} elsif (-f "$self->{tmpfile}.err") {
open(FH, "<:encoding(UTF-8)", "$self->{tmpfile}.err");

wird dann auch an der Oberfläche mein fehlerhaftes Zeichen korrekt angezeigt:

Position 1 (Artikelnr 1)
Position 2 (Artikelnr 1)

! Package inputenc Error: Unicode char \u8:香 not set up for use with LaTeX.

Für Unicode Zeichen hilft das dann zumindest schon mal.

Langtexteditor

Im Zuge der Pflichtenhefterweiterung in der derzeitigen Unstable wurde durch LINET auch ein kleiner Onlineeditor für die Langtextbeschreibung von Artikeln eingeführt.

Anbei zwei Screenshots von der Artikelbearbeitung und einem PDF-Ausdruck einer LaTeX-Vorlage.

kivitendo Image im Linux Magazin

Ich wollte eben das kivitendo Image aus der aktuellen Linux Magazin DELUG-DVD Beilage austesten.

Da ich gerade keinen VMWare Player habe erfolgte mein Test unter Ubuntu mit virtualbox.

Dazu mußte ich von der Heft-DVD im Verzeichnis delug/vm die Datei kivitendo-vm.tar.gz auf die Festplatte kopieren und habe sie dann per “tar -xzf” extrahiert.

In virtualbox habe ich eine neue VM vom Typ Linux mit Debian 32bit angelegt und konnte beim Festplattenkonfigurationsschritt das eben entpackte vmdk Image zuweisen.

In meinem Fall mußte ich noch unter Einstellungen->System->Prozessor das PAE aktivieren und konnte die VM starten.

Die Login-Daten beim Anmelden unter Debian lauten:
Benutzer: kivitendo
Passwort: 7vitamine

Ein Klick auf den kivitendo-Link auf dem Desktop startet dann kivitendo unter Iceweasel.

Kivitendo und die Finanzbuchhaltung

Die meisten (kleinen) Installationen von kivitendo nutzen fast ausschließlich den Warenwirtschaftsteil von kivitendo: das Minimum ist Kunden und Artikel verwalten, Rechnungen schreiben und per Druckvorlagensystem ausdrucken und Zahlungseingänge buchen/offene Posten verwalten. Etwas erweitert nutzt man noch Angebote, Aufträge, Lieferscheine und die Lagerverwaltung. Alles Grundfunktionen, die jede Firma benötigt und die kivitendo kann, ohne daß man sich um den FiBu-Bereich kümmern muß.

Neulich rief ein Interessent an und fragte, ob kivitendo für ihn auch vor Allem als FiBu-System geeignet sei.

Es ist mit kivitendo durchaus möglich, alle Geschäftsvorfälle einer Firma im Rahmen einer doppelten Buchhaltung abzubilden. Wenn man hausintern die FiBu-Kompetenz hat, und alles zeitnah verbucht, hat man also auch immer die aktuellen Zahlen vorliegen, und muß nicht erst auf die Monatsauswertung des Steuerberaters warten (was sich bei Dauerfristverlängerung immer nochmal um einen Monat verschiebt).

Gerade in der FiBu weist kivitendo aber noch einige Schwächen auf, und es fehlen einige wichtige Features, die in vielen FiBu-Programmen zum Standard gehören:

  • elektronische Übermittlung der UStVA und elektronischen Bilanz
  • Lohn- oder Anlagenbuchhaltung
  • die Berichte GuV und Bilanz sind nicht nach den Vorgaben des HGB gegliedert
  • automatisierter Jahresabschluß
  • separate Steuerbilanz
  • GoB-Testat/Zertifikat durch einen Wirtschaftsprüfer
  • GDPdU-Schnittstelle (man kann aber das Buchungsjournal als CSV exportieren)
  • roter Faden / Helfer / sprechende Büroklammer

Möchte man im Wesentlichen nur ein kostengünstiges und reines FiBu-System mit all diesen Features haben, ist kivitendo also nicht die richtige Wahl.

Einige dieser Punkte wird es in kivitendo höchstwahrscheinlich auch nie geben, z.B. die Lohnbuchhaltung. Andere Punkte wurden zum Teil schon mal in Kundenprojekten umgesetzt aber noch nicht in den Standard integriert, z.B. die Überarbeitung des Berichtswesens.

All diese fehlenden Punkte lassen sich jedoch durch die Kombination aus DATEV-Export und einem Steuerberater (oder gar Wirtschaftsprüfer) jetzt schon elegant lösen. Dies entspricht auch dem Ansatz von Open Source Software, nicht unbedingt alles selbst umzusetzen, sondern bei Bedarf auf andere, spezialisierte Software in Kombination zu setzen. Und man hat dabei trotzdem die Möglichkeit, so viel oder so wenig wie man möchte in kivitendo selbst zu buchen. Der Steuerberater kann sogar von sich im Büro aus auf kivitendo zugreifen und selber Buchungen vornehmen, und sich selber den DATEV-Export für sein eigenes Buchhaltungsprogramm ziehen. Alle Meldungen an die Ämter laufen über den Steuerberater, und Aufbewahrungsfristen sowie Steuerprüfungen werden ebenfalls beim Steuerberater abgefackelt. Und trotzdem hat man jederzeit Zugriff auf seine eigenen Zahlen, weil alles ebenfalls in kivitendo gebucht ist.

Aber wo liegt denn der eigentliche Vorteil von kivitendo und für wen eignet sich der Einsatz von kivitendo als Voll-FiBu? Die meisten Standardprogramme sind im Kern entweder eine WaWi mit dazuprogrammierter FiBu oder eine FiBu mit erweiterten Wawi-Funktionen. Die Programme des Massenmarkts, die mittlerweile immer mehr in die Cloud drängen, sind dagegen so spezialisiert oder standardisiert, daß sie sich nicht gut an die eigenen Bedürfnisse anpassen lassen.

Bei kivitendo sind WaWi und die FiBu aber im Kern direkt miteinander verknüpft. Wenn man viele Verkaufs- und Einkaufsrechnungen hat sind die erfassten Belege aus der WaWi und deren Zahlungen automatisch schon in der FiBu in einer echten doppelten Buchhaltung verbucht und stehen für die Berichte, bzw. den DATEV-Export, zur Verfügung.

Mit kivitendo hat man also eine Software, welche WaWi und FiBu in einem System vereint, und sich zusätzlich noch an die Bedürfnisse der Firma anpassen lässt. Wenn kivitendo die Anforderungen an die Prozesse der Firma also schon zu 80-90% erfüllt, man viele Eingangs- und Ausgangsrechnungen hat und man schon mit einem Steuerberater zusammenarbeitet aber Vieles noch selber buchen möchte, ist das eine gute Voraussetzung, um zusammen mit einem kivitendo Dienstleister die fehlenden letzten Prozent umzusetzen. Beim Einsatz von kivitendo aus Voll-FiBu ist auch generell unbedingt die Unterstützung durch einen kivitendo-Dienstleister anzuraten.

Das kostet zwar auch Geld, und ist auch nicht unbedingt billiger als Software von der Stange, dafür hat man aber ein an seine Bedürfnisse angepasstes System, welches sich über die Jahre an die Größe der Firma anpassen kann. Statt allgemeiner Lizenzen zahlt man also für individuelle Anpassungen und inviduellen Support. Zudem hat man damit ein mächtiges Werkzeug, welches quelloffen ist, wo man die komplette Kontrolle hat, und es keinerlei Lizenzeinschränkungen bezüglich Mandanten- und Mitarbeiteranzahl gibt.

CeBIT 2014

Wir werden dieses Jahr auf der CeBIT die neue kivitendo Version präsentieren. Zu finden sind wir in Halle 6, Stand H15 mit dem Partner LINET Services auf dem Univention-Stand. Nutzen Sie die Chance sich vor Ort in einem persönlichen Gespräch zu informieren. Wir haben auch noch ein paar Karten übrig.

Grafiken in kivitendo

Es gibt in kivitendo bisher keine Möglichkeit, Auswertungen mit Grafiken darzustellen. Hierzu muß man sich die Berichte als CSV-Export exportieren und die Grafiken selber z.B. in einer Tabellenkalkulation aufbereiten. In kivitendo wird allerdings immer mehr in jQuery umgesetzt, und für jQuery gibt es mittlerweile ein paar sehr schöne Grafikbibliotheken, z.B. jqPlot. Zusammen mit einem Controller in kivitendo, wo man sich die benötigten Daten per JSON dynamisch holen kann, ist es nun relativ einfach möglich, spezielle grafische Berichte zu erstellen. Als ein Beispiel aus der Entwicklungsabteilung wurde eine GuV als Jahresbericht dargestellt, mit der Summe der Erträge und Aufwendungen für die jeweiligen Monate, sowie dem Verlauf des resultierenden Jahresgewinns. So kann man schön auf einen Blick die Entwicklung von Einnahmen und Ausgaben innerhalb eines Jahres verfolgen.

W

XV

Massenmailversand in kivitendo

Ich mußte neulich ein schönes Feature aus einem Kundenprojekt anpassen, den Massenmailversand in kivitendo. Bei dem Kunden werden am Monatsanfang viele Rechnungen automatisch generiert, und diese werden teilweise per E-Mail verschickt (seit dem Steuervereinfachungsgesetz 2011 ist das auch ohne digitale Signatur möglich). Man kann in den Stammdaten konfigurieren, welche Kunden die Rechnung per E-Mail erhalten, und sofern auch eine E-Mail-Adresse konfiguriert ist erscheint vor jeder Rechnung in der Liste eine Checkbox. Somit kann man dann auf Knopfdruck alle ausgewählten Rechnungen mit einem vorkonfigurierten E-Mail-Text verschicken. Wurde die Rechnung bei der Erstellung schon in die Warteschlange gedruckt muß das PDF auch nicht erneut generiert werden, sondern kann direkt verschickt werden.

Screenshot für Auswahl Massenmailversand