Category Archives: Uncategorized

Stornorechnungen drucken

Für den Fall, dass z.B. das Finanzamt die Stornorechnungen sehen möchte, muss man diese auch ausdrucken können. Hierfür gibt es keine eigene Druckvorlage. Für kivitendo handelt es sich erstmal um eine normale Rechnung, in der aber die Mengen und damit auch die Preise negativ sind.

Stornorechnungen erhalten in kivitendo standardmäßig den Zusatz “Storno zu” vor der ursprünglichen Rechnungsnummer. Die meisten Druckvorlagen setzen das Wort Rechnung in groß und fett und dahinter einfach die Rechnungsnummer:

Rechnung 212

In der gedruckten Stornorechnung wird daraus dann:

Rechnung Storno zu 212

Es gibt aber auch Fälle, in denen einfach nur das Wort “Rechnung” in groß und fett erscheint, und die Rechnungsnummer dann in einem anderen Block steht, zusammen mit Rechnungsdatum, Bearbeiter, eventuell Auftragsnummer etc. Dass es sich um eine Stornorechnung handelt, ist auf den ersten Blick also nicht ersichtilich.

Wie so oft in solchen Fällen, kann man sich mit den Druckvorlagen helfen. In der Dokumentation zu den Druckvorlagen wird direkt am Anfang beschrieben, wie man sich auch die nicht dokumentierten Druckvariablen anzeigen lassen kann. In diesem Fall sind das nämlich die Variablen storno und storno_id. Sowohl die Stornorechnung als auch die stornierte Rechnung haben eine Variable storno mit Wert 1. In der Datenbank, aus der die Variablen kommen, hat die stornierte Rechnung zusätzlich noch einen Eintrag für storno_id, dadurch kann man diese auseinanderhalten. Im Template wird storno_id aber nicht aus der Datenbank ausgelesen und ist daher immer leer, kann also ohne Programmupdate nicht verwendet werden. Helfen kann man sich aber trotzdem, indem man den Umstand nutzt, dass in der Rechnungsnummer das Wort “Storno” vorkommt. Eine mögliche Variante wäre also:

\textbf{<%if storno%><%if invnumber =~ “Storno”%>Storno <%end if%><%end if%> Rechnung}

Für den Fall, dass die Variable storno gesetzt ist und das Wort “Storno” in der Rechnungsnummer vorkommt, wird also das Wort “Storno” innerhalb des fetten Bereichs noch vor das Wort “Rechnung” gesetzt.

 

 

 

 

Selbstheilende kivi (Selftests verwenden)

Durch das sehr gute neue E-Mail-Journal sind mir jetzt auch die automatischen SelfTests ins Auge gefallen.
Ursprünglich sind diese Tests als QS für Voll-Fibu-kivitendo Benutzer entwickelt worden, also solche Betriebe, die auch die Bilanz mit kivitendo selbst erstellen und zeichnen.
Allerdings lassen sich auch hiermit sehr gut Fehleingaben oder andere Problemchen entdecken, bevor sie sich symptomatisch über ein ganzes Geschäftsjahr hinziehen.
Standardmässig werden die SelfTests täglich ausgeführt (insofern konfiguriert) und beinhalten aktuell 17 Tests.

Die Tests geben die Ergebnisse zwar auf Englisch und leicht kryptisch aus, aber für ein geübtes Auge ist dies sicherlich verwertbar, bspw.:

Hier fällt der Test 12 negativ auf, da ar (accounts receivable) überbezahlt ist. Der Test gibt auch noch eine Rechnungsnummer als Hinweis mit aus. Mit dieser Info kann man dann simpel den Zahlungseingang korrigieren, der zwar korrekt ist, in diesem Fall aber der falschen Rechnung (allerdings dem richtigen Kunden) zugeordnet wurde:

Voraussetzung für die Selftests ist, dass es einen Login mit einer gültigen E-Mail-Adresse gibt.
Ferner muss der task_server für diesen Mandanten eingeschaltet sein.
Dann wird man mit folgender Einstellung nur im Fehlerfall benachrichtigt:
selftests-konfigurieren

Bankerweiterung in kivitendo 3.3

Das größte neue Feature in kivitendo 3.3 ist die Bankerweiterung, bei der man Kontoauszüge aus einer Bankingsoftware importieren kann, um damit die offenen Posten schnell zu verbuchen. Dabei werden die Zahlungen in der Datenbank mit den entsprechenden Rechnungen verknüpft, sodass diese Informationen auch beim verbesserten Kontenabgleich genutzt werden können. Die Bearbeitung von vielen Zahlungen in kivitendo wird hiermit wesentlich effizienter und die Übersicht beim Zahlungsverkehr erhöht.

Bei den folgenden Firmen, die die Finanzierung dieses Projekts ermöglicht haben, möchte ich mich bedanken:

opendynamic GmbH & Co. KG
c.a.p.e. IT GmbH
CeTaQ GmbH
Kaspers & Wessendorf Unternehmensberater Partnerschaftsgesellschaft
Werner Hahn/V-Solution
Servicelabel GbR

Agenda kivitendo konferenz in Bonn am 05.11.2025

9:00 h – 9:10 h Begrüßung

9:10 h – 09:40 h kivitendo bei der GNS (Gesellschaft für numerische Simulation)

Das vielseitige kivitendo spricht bei der GNS EDI mit Skoda, OAuth2 mit
Microsoft und REST mit dem Ticketsystem JIRA.

Wie das dann alles harmonisch im Gesamtablauf einfügt stellt unser
Projektansprechpartner Christoph Kaulich von der GNS vor.

9:40 h – 10:00 h Technische Schnittstellen im Standard aus dem GNS Projekt

Referent Niklas Schmidt

10:00 h – 11:00 h Technische Schulden in der Softwareentwicklung

Die Entwicklung von Software basiert zu einem großen Teil auf der Nutzung externer Komponenten. Diese Komponenten bringen Risiken verschiedener Art in das eigene Produkt ein. Wir besprechen die Ausgangssituation, die Art der Risiken, deren Sichtbarmachung und die Bewertung. Wir analysieren beispielhaft den Quelltext von Kivitendo und erläutern dabei die Vorgehensweise.

Referent: Jörg Meyer
Leiter der Internen Revision der internationalen Holtzbrinck Publishing Group mit den Geschäftsfeldern Literatur, Wissenschaft und Software. Zuvor zwölf Jahre Leiter des Forensic Technology-Teams einer großen Wirtschaftsprüfungsgesellschaft. Autor und Co-Autor von Büchern zum Thema, Referent von Vorträgen.

11:00 h – 11:20 h Kaffeepause

11:20 h – 12:20 h KIX meets kivitendo – Ein Jahr Integration, Automatisierung und echte Prozessverbesserung

Letztes Jahr haben wir vorgestellt, wie kivitendo bei der KIX Service Software GmbH vieles einfacher macht und für Begeisterung gesorgt hat. Seitdem ist wieder einiges passiert: Durch die Integration mit KIX haben wir weitere Automatismen geschaffen, Prozesse verschlankt und ganz nebenbei auch noch Zeit gespart.

In diesem Vortrag zeigen wir, wie aus einzelnen Schnittstellen eine durchgängige Prozesskette wurde, welche Herausforderungen wir dabei gelöst haben und welche Use Cases heute ganz selbstverständlich im Alltag laufen.

Live demonstrieren wir, wie bei uns aus einer Anfrage ein Auftrag und schließlich eine Rechnung wird, wie wir Verträge effizient verwalten und wie der automatische Versand von AV-Verträgen uns jede Menge Zeit spart.

Freut euch auf ehrliche Einblicke und echte Beispiele aus dem Alltag – natürlich mit Spaßfaktor.

Referenten: Rico Barth (Geschäftsführung), Yvonne Kölling (Projektleitung Bereich kivitendo)

12:20 h – 13:15 h kivitendo bei der Landmaschinen-Werksvertretungen Kranich GmbH

Unser kivitendo Partner Werner Hahn berichtet gemeinsam mit dem Geschäftsführer Lars Härtel von der Kranich GmbH über Herausforderungen und die Prozessgestaltung bei der Kranich GmbH.

Referenten: Werner Hahn (V-Solution), Lars Härtel (Kranich GmbH)

13:15 h – 14:10 h Mittagessen

14:10 h – 14:25 h kivis Dorfkindquiz mit Jan, als Nachmittagsmotivator ..

Lasst Euch Überraschung, eine Idee mitgenommen von der diesjährigen KIXConf …

14:30 h – 15:30 h Bunte Vielfalt im Einzelhandel kombiniert kivis neuer TSE-konformer Kasse

Fortsetzung folgt jetzt!

Nach dem dynamischen Vortrag vom letzten und dem Webinar berichtet Max, diesmal mit Unterstützung von Geoffrey vom aktuellen Projektstand.

Zur Erinnerung:

Im letzten Jahr haben wir uns schon mit den Varianten von Artikeln und der EDI-Schnittstelle des BTE Bundesverband des Deutschen Textil-, Schuh- und Lederwareneinzelhandels e.V. beschäftigt und erste Erfolge gezeigt. Nun haben wir in kivitendo eine Kasse inklusive den aktuellen regulatorischen Vorgaben implementiert.

In unserem aktuellen Vortrag zeigen wir, wie fortgeschritten die Implementierung an der Oberfläche schon ist und lösen die Akronyme TSE und DSFinVK für euch auf und zeigen die weiteren Zusammenhänge in kivitendo dazu.

Referent: Max Wessendorf (kivi Partner), Geoffrey Richardson (Mitbegründer der kivitendo GmbH, jetzt Geschäftsführer der kivitec GmbH)

15:30 h – 16:00 h Kaffeepause

16:00 h – 17:00 h last not least: Lightning Talks

  • Der neue Druckvorlagensatz Mersiha
  • Status ZUGFeRD
  • Die kivi Telefonanlage

Referenten Jan, Niklas

aktuelle Entwicklung im Bereich E-Rechnung

18:00 h Evaluierung des lokalen Brauhaus Bönnsch

Veranstaltungsort ist das Collegium Leonium, welches fußnah vom Hauptbahnhof entfernt ist. Ferner gibt es die Möglichkeit dort direkt zu übernachten.

Anmeldungen bitte per E-Mail an: anmeldung@kivitendo.de

Verwaiste Verkäufer bei Kunden löschen …

Heute bei einem Kunden umgesetzt. Über die Jahre ist doch einige Mitarbeiter-Fluktuation zu verzeichnen.
Mitarbeiter werden ja prinzipiell nicht gelöscht, damit die ehemaligen verknüpften Belege erhalten bleiben, allerdings möchte man die Verknüpfung bei Kunden entfernen.

Übersicht über alle Kunden mit verwaisten Verkäufern:

select id from customer where salesman_id in (select id from employee where deleted = true);

Und Entfernen aller verwaisten Verkäufer:

update customer set salesman_id=NULL where id in (select id from customer where salesman_id in (select id from employee where deleted = true));

kivitendo Druckvorlagen-Verhalten shipto (Lieferschein)

Weil ich gerade darüber gestolpert bin, hier einmal für a) mich selber als Zukunftserinnerung (google) und b) alle anderen die auch danach googlen.

In der bald erscheinenden 3.2 wird der Präfix shipto für Lieferscheine nicht mehr automatisch mit der Rechnungsadresse befüllt, falls es für den Lieferschein keine abweichende Lieferadresse gibt.
Somit muss für bestehende Druckvorlagen bspw. folgende Anpassung gemacht werden:

Hintergrund:

Das neue Verhalten ist wie folgt:

– Weder die shipto_id (die Drop-Down-Box in den Belegmasken) noch die
individuellen shipto*-Felder werden weder beim Neuanlegen eines
Beleges noch bei Wechsel des Kunden aus den Datenbanken belegt.

– Beim Ausdruck werden die shipto*-Felder nicht mehr aus der
Mandantenkonfiguration vorbelegt, wenn keine Lieferadresse gesetzt
ist.

– Beim Ausdruck werden die shipto*-Felder mit den Daten aus den
Kundenstammdaten belegt, wenn die shipto_id (die Drop-Down-Box in den
Belegmasken) gesetzt ist.

Die ursprüngliche Intention war, möglichst viele Fälle abzudecken. Ganz
ursprünglich war es nämlich in den Druckvorlagen gar nicht möglich,
Kontrollstrukturen zu benutzen und damit die Ausgabe konditional zu
steuern. Es konnte also rein in den Druckvorlagen nicht unterschieden
werden zwischen »der Benutzer hat keine Lieferadresse eingegeben« und
»der Benutzer hat eine eingegeben oder ausgewählt«.

Daher wurde die ganze Logik immer im Perl-Code abgehandelt.

Das macht aber erhebliche Probleme für den Benutzer, für den es absolut
intransparent ist, wann welche Lieferadresse wie vorbelegt wird. Hinzu
kommt, dass in den Belegmasken nicht ersichtlich ist, dass eine
individuelle Lieferadresse eingetragen wurde.

Hinzu kommt, dass die Druckvorlagen inzwischen verschiedene Mechanismen
zur Verfügung haben, um Fallunterscheidungen zu treffen (z.B. die
kivitendo-Mechanismen <%if shipto…%> oder die LaTeX-eigenen
\IfThenElse{\equal{<%shipto…%>}{…}}}…). Leider war es mit dem vorherigen
Code für die Druckvorlagen nicht mehr möglich festzustellen, ob der
Benutzer nun eine Lieferadresse eingegeben hat oder nicht.

Die neue Situation ist recht einfach:

Steht in »shiptoname« oder »shiptostreet« ein nicht leerer Wert, so ist
eine Lieferadresse vorhanden, ansonsten nicht.

Für die »nicht«-Fall kann dann jede Vorlage selber entscheiden, was zu
tun ist. Für Vorlagen im Verkaufsbereich sinnvollerweise gar keine
Lieferadresse ausgeben (oder einfach die Lieferadresse aus den
Kundenrechnungsdaten), für Vorlagen im Einkaufsbereich ebenfalls keine
Lieferadresse oder die Adresse aus der Mandantenkonfiguration.

Anbei noch mein Beispiel-Code (aus den aktuellen RB Druckvorlagen-Satz):

\ifthenelse{\equal{<%shiptoname%>}{}}{ % KEINE ABWEICHENDE LIEFERADRESSE

<%name%>

<%street%>

~

<%zipcode%> <%city%>

<%country%>

}{ % ABWEICHENDE LIEFERADRESSE (Aus Stammdaten oder Beleg)

<%shiptoname%>

<%shiptostreet%>

~

<%shiptozipcode%> <%shiptocity%>

<%shiptocountry%>
} % ende ifthenelse LIEFERADRESSE

kivitendo auf der OpenRheinRuhr 2014

Auch in diesem Jahr sind wir wieder auf der als Aussteller, Referent und Sponsor vertreten. Nachdem wir im letzten Jahr einenSchnellübersicht über kivitendo dort präsentiert haben, zeigen wir in diesem Jahr: Linux only! FiBu – Online Banking – Geschäftsbelege. Alles in einer Firma: Client, wie auch serverseitig machbar und skalierbar.

Erster Eintrag

In diesem Blog wollen wir aus unserer täglicher Erfahrung mit Kivitendo berichten. Sowohl aus der Sicht als Dienstleister als auch Anwender und Entwickler.