Author Archives: Jan

Kivitendo-Tagung-Schweiz-2017-10-13-0653

kivitendo-Gipfeltreffen in der Schweiz

Diesjähriges Highlight des kivitendo-Treffen in der Schweiz waren die frischen Ideen der Veranstalter und Teilnehmer des von revamp.it durchgeführten Treffens am 13. Oktober 2017. Und wortwörtlich hoch hinaus ging es auch.

Die wenigen, aber dafür mutigen Teilnehmer des Treffens wurden nicht enttäuscht.
In der, vom Linux-Pinguin Tux okkupierten, ehemaligen Schalterhalle der Zürcher Kantonalbank wurde auf hohem Niveau diskutiert – qualitativ sinnvolle Ergebnisse sind der Lohn. Dafür sprechen auch die spontanen Reaktionen von unterschiedlichen Teilnehmern:

“Das OpenSource-Programm kann auf den ersten Eindruck mehr und ist sinnvoller durchdacht als unsere bisherige kommerzielle Lösung.”

“Für eine in Teilbereichen schlechtere Lösung hab’ ich als verantwortlicher Betriebsleiter einen externen Aufwand von 100.000,- Franken investiert – bei kivitendo wäre die Investition sicherlich viel sinnvoller gewesen.”

Kivitendo-Tagung-Schweiz-2017-10-13-0415Sowohl technisch als auch marketingseitig wurde die kivi-Diskussion noch weiter beleuchtet. Im Zweifelsfall gilt eben “lieber wenige, aber dafür umso loyalere Kundenbeziehungen pflegen”. Den Höhepunkt bildete hier die Besteigung des Churfirsten-Gipfels Selun (2204 Hm).  In dieser Form wird sich das Schweizer Treffen sicherlich weiter etablieren und so zwangsläufig weitere interessante kivi-Impulse setzen.

FrOSCon und kivitendo bereichern sich gegenseitig

Ein paar Tage sind seit der FrOSCon im August zwar schon ins Land gezogen, wir wollen aber trotzdem nochmal kurz zurückblicken.

froscon_logo_print_color

Die diesjährige FrOSCon haben wir erstmals für ein reines kivitendo-Entwicklertreffen am Vortag genutzt und auch im Verlauf des Wochenendes weiter an kivitendo entwickelt – “Alle Energie in das Produkt und kein Pfennig in die Werbung” sozusagen. Da es einen kleinen Hinweis am öffentlichen kivi-Stand gab, haben kivi-Fans uns dennoch finden können.

Das war das FrOSCon-Wochenende für kivitendo – chronologisch und in wenigen Sätzen: Continue reading

Feedback und Vorträge kivitendo-Jahrestreffen 2017 online

Das Jahrestreffen 2017, fast schon ein kivi-Familien-Event.

image002

Sehr junge und ältere kivi-Fans beim Mittagstisch

Beim diesjährigen Treffen konnten wir viele langjährige kivi-Fans begrüßen. Erfreulicherweise sind auch alle Anregungen vom letzten Jahr in die 3.5 alpha wie besprochen integriert worden.

Ein paar neue Gesichter waren auch dabei: Ein bisher unbekanntes Gesicht hat eine schöne Kundenerweiterung zum automatisierten Etikettendruck vorgestellt.

Für alle, die es dieses Jahr nicht geschafft haben, hier die Folien als Übersicht:

Als zusätzliches Goodie noch die guten Admin-/Entwickler-Tipps von Geoffrey aus der kivitendo Entwicklerschulung am Freitag, den 5.5.2017: kivadm2017

Fazit von Maik Endemann, der erstmals dabei war:

Eine sehr gelungene Veranstalltung in lockerer Atmosphäre mit äußerst kompetenten Leuten.
Gerade für mich als Newcomer in der Entwicklung ist das viel Wert. Auf dem Papier kannte man ja schon viele Namen, aber nun konnte ich diese auch einmal kennen lernen. Habe mich sehr gut aufgehoben gefühlt.

 

Aktuelle Entwicklerversion von kivitendo installieren

Wer schon einmal die aktuelle Entwicklung in seiner Umgebung ausprobieren möchte, installiert am besten eine Version mittels git wie folgt:

Bildschirmfoto vom 2017-03-21 08-11-31

Danach einfach die Schritte, wie in der Installationsanleitung beschrieben, durchführen.

Wer schon eine bestehende git-Installation hat, kann diese einfach kopieren und dann im Apache als weitere Installation konfigurieren, bspw.


$ cp -a kivitendo/ kivitendo-devel/
$ cd kivitendo-devel/
$ git branch # zeigt die aktuellen zweige
$ git checkout master
$ git pull
$ vim config/kivitendo.conf # !!! die auth-db ändern, damit nicht das Echtsystem hochgezogen wird!
- db = kivitendo_auth
+ db = kivitendo_auth_devel
$ service apache2 restart

Den Rest dann in der apache.conf einstellen, wie in der Anleitung beschrieben.
Ich hab in der Regel ein kleines Synchronisationsskript um Echtdaten direkt in eine Test-DB zu analysieren, in etwa so:

#!/bin/bash
pg_dump -U postgres -h 127.0.0.1 kivi > /tmp/kivi.sql
psql -U postgres -h 127.0.0.1 template1 < drop-create-devel.sql
psql -U postgres -h 127.0.0.1 kivi-devel < /tmp/kivi.sql

$ cat drop-create-devel.sql

DROP DATABASE kivi-devel;
CREATE DATABASE kivi-devel;

froscon_2016 (6)

Mensch ärgere dich nicht – kivitendo auf der FrOSCon 2016

Zum dritten Mal waren wir mit der kivi auf der FrOSCon und sind immer noch begeistert!

Unter vielen interessanten, technischen Vorträge konnten auch wir uns wieder einreihen und präsentieren. Meine Aussage “Glauben Sie mir kein Wort, ich hab’ Ihnen den IT-Leiter unseres Kunden als Beweis gleich mitgebracht”, traf voll ins Schwarze … das zeigte sich auch an den vielen intelligenten Fragen, die die Zuhörer mitbrachten. Gemeinsam mit Andreas Korte von der vitracom AG haben wir von unserem kivi-Projektabschluss berichtet.

Für alle, die nicht dabei sein konnten, hier der Vortrag als PDF-Version sowie die etwa halbstündige Aufzeichnung als Video-Mitschnitt.

http://blog.kivitendo-premium.de/wp-uploads/2016/08/froscon-2016-kivitendo-froscon-11.pdf

https://media.ccc.de/v/froscon2016-1824-kivitendo_als_nachfolger_fur_sap_by_design

Dazu gab es ringsrum Gespräche mit Teilnehmern und Besuchern … und auch eine Runde “Mensch ärgere dich nicht”. Der Ärger hielt sich tatsächlich in Grenzen – das Spielbrett ist anschließend nicht durch die Gegend geflogen.

Für uns eine tolle Veranstaltung in sehr freundlichem Ambiente. Auch 2017 wird der Termin wieder ein Muss für uns. Und wir haben den Ansporn, die klasse Infrastruktur der FrOSCon im nächsten Jahr noch besser für kivitendo einzusetzen (mehr wird dazu aber noch nicht verraten).

 

Wer aktuell nach CeBIT und SAP by design googelt, landet bei:

kivitendo

Ohne, dass wir google per adWords geschmiert haben. Allerdings haben wir das Sponsor-Paket: “Vortrag – ohne Call for Paper-Stress” der OSB Alliance erworben.
Hier mein Beweis-Screenshot:

sap-by-design-cebit-kivitendo

Das passt super ins Konzept, denn auch bei meinem aktuellen Kundenprojekt werden alle kivitendo-Tipps in den sehr schönen Notizblock von SAP geschrieben …

Alles richtig gemacht!

Wir sehen uns auf der CeBIT!

Buchungsgruppen optimieren

In der Regel fällt erst im laufenden Projekt auf, dass Konten anders zugeordnet gebucht werden sollen.

Unter der Haube, sprich in der Datenbank, lässt sich dies einfach ändern. Allerdings gibt es dann Konflikte, wenn man Gutschriften/Stornos zu Belegen generieren möchte, die auf andere Konten gebucht sind.

Was idiotensicher geht, ist das Ändern der Buchungsgruppe und nochmals bei allen Belegen auf Buchen klicken. Oder man wartet bis zum Geschäftsjahreswechsel mit der Buchungsgruppen-Änderung.

Anbei der SQL-Befehl, um bspw. alle Standard-19 %-Konten anzuzeigen:

select zon.description, chart.accno as income, c.accno as expense from taxzone_charts left join tax_zones zon on (zon.id=taxzone_id) left join chart on (chart.id = income_accno_id) left join chart c on (c.id = expense_accno_id) where buchungsgruppen_id=(select id from buchungsgruppen where description ='Standard 19%');

Jetzt braucht man “nur” die IDs der Konten anzupassen. Am besten unterteilt man Schritt für Schritt noch Aufwands- und Erfolgskonten.

select taxzone_charts.id, zon.description, c.accno as expense,expense_accno_id from taxzone_charts left join tax_zones zon on (zon.id=taxzone_id) left join chart on (chart.id = income_accno_id) left join chart c on (c.id = expense_accno_id) where buchungsgruppen_id=(select id from buchungsgruppen where description ='Standard 19%');

Und das Update:
update taxzone_charts set expense_accno_id=(select id from chart where accno='520000') where id=7;

Offene Forderungen importieren

Aus dem aktuellen kivi-Projekt hat sich die Anforderung ergeben, die Funktion “Kontoauszug verbuchen” direkt von Anfang an zu verwenden.

Hieraus enstand dann die Herausforderung, wie man mit Zahlungseingängen aus dem Vorjahr umgeht.

Hintergrund: Das alte ERP-System (SAP by design) wurde durch kivitendo abgelöst und man ist an einer schnellen Abschaltung interessiert, allein um den Vertrag bei SAP möglichst zeitnah zu kündigen.

SAP by design bietet eine OPOS-Liste mit folgender Struktur an:
offene-forderungen-opos-2015

Dabei kam die Idee auf, dass es doch besser ist, die Forderungen einzeln im System einzuspielen, damit man hier eine bessere Rückverfolgbarkeit der offenen Posten hat.

Ich habe die Gelegenheit genutzt, um den Prototyp Debitorenimport über CSV hierfür zu testen.

Der Debitorenimport kann alle kivitendo-Buchungsfälle abbilden. Allerdings muss hierfür der kivitendo-Administrator etwas kivitendo-/Buchhaltungs-Fachwissen mitbringen.
kivitendo teilt Transaktionen in Haupt- und Nebenbuch ein. Im Nebenbuch stehen die Metadaten des Belegs, die nicht direkt zur FiBu gehören und im Hauptbuch sind Soll und Haben sowie die Steuer ausgewiesen.

Für meinen Anwendungsfall brauche ich nur Netto-Werte, da SAP die Steuer nicht explizit bei der OPOS ausweist. Ferner besteht bei dieser kivitendo-Installation Abteilungspflicht und ich habe mir zusätzlich überlegt, dass man für diese Forderungen der Übersichtlichkeit halber ein eigenes Ertrags- und Forderungenkonto verwendet.

Somit sieht meine Debitorenbuchung an der Oberfläche wie folgt aus:
donut-spain

Die benötigte Struktur des Imports besteht aus einer Zeile mit Rechnungs-Metadaten und aus 2 bis 4 weiteren Zeilen (Sollkonto, Habenkonto, diverse Steuersätze):

Zeile 1: datatype,amount,invnumber,customernumber,customer,transdate,duedate,closed,netamount,invoice,department,employee_id

Zeile 2: datatype,amount,invnumber,chart_id,taxkey,transdate

Die chart_id findet man über die URL des Kontos unter System → Konten anzeigen heraus.

Diese Rechnungen sind geschlossen (closed == true), da sie wahrscheinlich schon vollständig geliefert und ferner keine Verkaufsrechnungen (invoice == false) sind.
Alle anderen Information sind in der OPOS-Liste enthalten, die ich per Skript einfach neu zusammenparse.

Somit ergibt sich für diese Debitorenbuchung folgender Datensatz:

Zeile 1:Rechnung,"1.220,00",RG508216,1215600,"Donut Spain S.A.",23.10.2014,22.11.2014,t,"1.220,00",f,"OPOS 2015",979

Zeile 2:AccTransaction,”-1.220,00″,RG508216,12533,0,23.10.2014

Zeile 3:AccTransaction,”1.220,00″,RG508216,12535,0,23.10.2014

Die einzelnen Zeilen werden etwas schlecht formatiert, deshalb hier nochmal als Screenshot:donuts sa

DATEV-Export maximal nutzen

Das Standard-DATEV-Format bietet die Möglichkeit, zwei Kostenstellen mitzuexportieren.

Bisher wurde dieses Feld nicht befüllt, der DATEV-Standard sieht hier auch nur achstellige Nummern vor. Man muss also etwas überlegen, was man hier übergeben könnte.

Im aktuellen Kundenprojekt buchen zwei Mandanten in derselben kivi. Wir haben beim Steuerberater nachgefragt, ob er dies mit einer Trennung der Mandanten durch Buchungspflicht-Abteilungen und einem entsprechenden Filter beim Export abbilden kann.

Hier die Erweiterung des Exports aus Sicht des DATEV-Anwenders.
Die Kostenstelle ist in diesem Fall auf zwei Ebenen, da der Export nach dem ersten Namen gefiltert wird:

Struktur der Abteilungen:

  • wildwuchs ausbau → id 299
  • wildwuchs standard → id 300
  • wildwuchs internes → id 320
  • fuchswild ausbau → id 321
  • fuchswild standard → id 322
  • fuchswild internes → id 324

Filter für DATEV:
abteilungsfilter-datev

In Kostenstelle2 übergebe ich die Datenbank-ID der Abteilung. Somit ist diese eindeutig erfasst und der Steuerberater kann dieselben Abteilungsfilter abbilden (oder sogar noch bessere Auswertungen fahren), als in kivitendo.
Seine Sicht ist dann etwa so:

datev-mit-kostenstellen