Feedback und Vorträge zum kivitendo-Treffen

frontalansicht-variante

Hinter uns liegt ein wirklich gutes kivitendo-Treffen 2016. Mit über 25 Teilnehmern waren wir bis auf den letzten Platz ausgebucht und auch das Schulungsangebot am zweiten Tag wurde reichlich genutzt. Beim Anwender-Treffen geht es uns ja darum, Anwender, Interessent und Dienstleister ins Gespräch zu bringen und konstruktive Diskussionen anzuregen. Das hat dieses Jahr gut geklappt. Im Anschluss gab es dafür auf jeden Fall Lob von Kunden und Partnern. Einiges davon teilen wir einfach mal ungefiltert mit:

“Das war mit Abstand das beste kivi-Anwendertreffen ever!”
Peter Schulgin (opendynamics GmbH & Co. KG)

“War echt klasse, wie viele zu den Treffen kommen. War ja echt einiges los. Tolle Sache.”
Claus Wissing (WiR Solutions GmbH)

Mehr Meinungen zum Treffen sind immer gern gehört …

Wie versprochen, gibt es hier die Vortragsfolien vom Treffen sowie einen Vortrag mit Video-Mitschnitt:

Release Early, Release Often Public Presentation (Norbert Wessel, metafresh)
Kivitendo und Datenschutz (Claus Wissing, WiR Solutions GmbH)
Kivitendo und Samenhandel-Webshop (Werner Hahn, V-Solutions)
Debitorenbuchungsimport mit kivitendo 3.4 (Max Wessendorf, Uwe Kaspers ukd)
Video kivitendo vs SAP by Design (31min) (A. Korte, vitracom AG – J.Büren, R & B GmbH)
Folien kivitendo vs. SAP by Design (A. Korte, vitracom AG – J.Büren, R & B GmbH)

Im Anschluss an den offiziellen Teil war auch noch Zeit für ein gemütliches Beisammensein im Biergarten, insbesondere sehr passend für alle Teilnehmer der Workshops am Folgetag.

biergarten-bonn
Bis zum nächsten Treffen! ;-)

EDIT: Nur noch drei freie Plätze für kivitendo-Treffen am 28. April 2016

Die neue Version 3.4 ist da!

Mit ihr steht wie immer auch das nächste kivitendo-Treffen vor der Tür – dieses Jahr wieder bei Richardson & Büren in Bonn. Dank guter Vorträge verspricht die kommende Auflage des Anwendertreffens am 28. April 2016 hochwertig zu werden:

Auf der Vortragsagenda steht neben Modulübersicht und Kundenerweiterungen auch eine Entwicklungs-Vorschau inkl. Abstimmung zu kivitendo.
Besonders spannend dürfte der Beitrag von Andreas Korte von der vitracom AG werden, der über unser Früchtchen als Nachfolger von SAP by Design berichtet.

Beim kivitendo-Treffen gibt es aber immer auch Freiraum für Spontanberichte und die Gelegenheit auf regen Austausch und kreatives Brainstorming, wenn Anwender, Fans und Dienstleister in der Pause zusammen kommen.

Kivi-Schulungsangebot 29. April 2016

Für den Folgetag haben wir als Zusatzangebot wieder drei Schulungsblöcke vorbereitet, die sich auch kombinieren lassen:

  1. Effizienter mit kivitendo arbeiten: Tipps und Tricks mit Schwerpunkt Buchhaltung   (Geoffrey Richardson/R & B GmbH) (vormittags/nachmittags)
  2. Entwickler-Schulung: Qualitativ hochwertig entwickeln inkl. Tests und Einzelempfehlungen   (Sven Schöling/LINET Services GmbH) (ganztägig)
  3. kivitendo-SelfTests – doppelte Eingabesicherheit: SelfTests auswerten und modular erweitern, Inkonsistenzen beheben (Jan Büren/R & B GmbH) (vormittags/nachmittags)

Teilnahmegebühren (netto):
Kivitendo-Treffen: 40,00 EUR
Schulungsangebot: 600,00 EUR (berechtigt zur kostenfreien Teilnahme am kivitendo-Treffen, Rabatt für Entwicklungspartner)

Aktuell sind noch drei Plätze für das Treffen frei. Kurzfristige Schulungsteilnehmer haben prinzipiell Vorrang. Danach gibt es ggf. noch eine Warteliste.

Fröhlichen kivi-Frühling!

Neue Auftragsmaske in kivitendo

Das aufwändigste neue Feature in der Version 3.4.0, das wahrscheinlich auch den größten Einfluss auf die weitere Entwicklung von kivitendo haben wird, ist der neue Auftragscontroller. Ziel dabei ist es, die alte durch eine neue Auftragsmaske zu ersetzen.
Da die neue Maske aber noch nicht alle Features ihres Vorgängers beherrscht, ist dieses Feature im Menü noch als “experimentell” markiert, und kann parallel zu der alten Auftragsmaske verwendet werden. Jeder kann testen, ob die Funktionalität der neuen Maske schon für den eigenen Einsatz ausreicht. Bei einigen Kundenprojekten von uns ist die Auftragsmaske bereits produktiv im Einsatz.

Langfristig soll die neue Maske auch die technische Grundlage für neue Lieferschein- und Rechnungsmasken bilden.

Neue Auftragsmaske in kivitendo

Die alten Belegmasken haben u. a. zwei große Probleme. Zum einen ist das generell sehr alter Code, der schlecht wartbar ist und es nicht einfach macht, die modernen und benutzerfreundlichen Features von kivitendo, z.B. Kundenpicker, Partpicker, Projektpicker etc., in einzubauen.

Zum anderen wird die alte Maske ab einer gewissen Zahl von Artikeln einfach sehr langsam. Beim Hinzufügen eines neuen Artikels wird die Seite jedes Mal komplett neu aufgebaut  – das dauert mit einer steigenden Anzahl von Auftragspositionen immer länger, so wird das effiziente Bearbeiten irgendwann schlicht unmöglich.

Bei der neuen Maske wurde von Anfang an auf eine schnelle und effiziente Eingabe geachtet. Die Seite wird beim Hinzufügen neuer Artikel nicht mehr jedes Mal neu aufgebaut, sondern dynamisch erweitert und die Gesamtsummen laufend aktualisiert.
Hierfür gibt es oberhalb der Artikelliste eine zentrale Eingabezeile, in der man neue Artikel zu der wachsenden Liste hinzufügt.

Alle Eingabefelder bei denen man aus einer Liste auswählen kann, also z.B. Kunde und Projekt, sind nun über Picker realisiert. Der Kundenpicker reagiert sowohl auf Kundennummer als auch Kundenname und zeigt bei Auswahl auch beides an.

Was die neue Maske im Vergleich zur alten noch nicht kann:

  • es gibt keine Detailszeile mit z.B. Ertrags- und EK-Preis-Informationen
  • Kundendetails anzeigen
  • Kreditlimit-Warnung
  • individuelle Lieferadressen
  • wiederkehrende Rechnungen konfigurieren
  • Preisfaktor ist noch nicht gut getestet
  • Sprache und Währung auswählen
  • die meisten der Workflow-Schritte, z.B. kann man bisher nur einen Lieferschein, nicht aber eine Rechnung oder einen Lieferantenauftrag  aus dem aktuellen Auftrag erstellen

Für viele Anwendungsfälle ist die neue Maske aber dennoch schon geeignet und ausprobieren kann man sie auch in unserer Demo unter “Verkauf  Auftrag erfassen (experimentell)“. Unter “Verkauf → Berichte → Aufträge” kann man auch auswählen, ob man bestehende Aufträge mit der alten oder der neuen Maske öffnet.

Demo-Mandant auf die Version 3.4.0 aktualisiert

Unsere offizielle kivitendo-Demo, die Steigmann Werft unter https://www.kivitendo.de, habe ich eben auf die Version 3.4.0 aktualisiert. Da in den Testsystemen schon lange alles aktualisiert war und ich die UPGRADE-Datei nicht gelesen habe, ist mir das natürlich direkt um die Ohren geflogen.

Was ich unter Ubuntu für unsere Installation nach dem git pull noch gemacht habe:

  • perl scripts/installation_check.pl
  • apt-get install libalgorithm-checkdigits-perl
  • in der Konfigurationsdatei den [task_server] Abschnitt auskommentiert
  • den Webserver neu gestartet
  • im Admin-Bereich angemeldet: /controller.pl?action=Admin/login
  • als Benutzer angemeldet

Alle Updates liefen mit unserem Testdatenbestand flott durch, damit steht die 3.4.0 jetzt offiziell online zum Ausprobieren bereit.

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

kivitendo

Ohne das 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 aufgeschrieben …

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

Inventur in kivitendo

Die Anpassung des Warenbestandes in kivitendo nach der Inventur ist über den CSV-Import sehr einfach. Unter System → CSV-Import → Lagerbewegungen/-bestände kann man hierfür eine Liste der frisch gezählten Bestände hochladen. Ein CSV-Liste aller zu zählende Waren exportiert man sich am besten unter Stammdaten → Berichte → Waren.

In diesem Beispiel gibt es die beiden Artikel “Heftzwecken” und “Büroklammern” mit den Artikelnummern 5 und 4, wobei hier nur die Artikelnummer wichtig ist, die Beschreibung wird ignoriert. Die Artikel liegen im Lager “lager1″ auf Lagerplatz “Lagerplatz1″, die Inventur fand am 29.12.2015 statt und es wurden 53 Heftzwecken und 33 Büroklammern gezählt, was man jeweils als target_qty (Zielmenge) einträgt. Die Struktur der CSV-Datei sieht wie folgt aus:

partnumber,description,target_qty,shippingdate,warehouse,bin
5,Heftzwecken,53,29.12.2015,lager1,Lagerplatz1
4,Büroklammern,33,29.12.2015,lager1,Lagerplatz1

Beim Import kann man in der Vorschau sehen, was passieren wird:

CSV Import Einstellungen für Inventur

CSV Import Einstellungen für Inventur

Anhand der derzeitigen Menge laut Lagerbestand für das jeweilige Lager bestimmt der Importer, ob Artikel im Rahmen der Inventur eingelagert werden müssen, weil mehr als erwartet da sind, oder ob Artikel ausgelagert werden müssen, weil sich weniger auf Lager befinden. In dem Fall sieht man, daß kivitendo bei beiden Artikeln eine Mengen-Änderung von -7 Artikeln durchführen wird, um auf die vorgegebene Zielmenge zu kommen, da die Lagerbestände zu diesem Zeitpunkt 60 und 40 waren.

Damit der Standardkommentar angezeigt wird, muss man noch “Bei allen Lagerbewegungen ohne Kommentar setzen” einstellen. Der Kommentar ist derzeit auch die einzige Möglichkeit, die Lagerbewegung als Inventur- statt als einfache Korrektur zu markieren.

lager-inventur-umbuchungen

Zu beachten: bis Version 3.3 wurde in den Berichten als Datum immer das Erstellungsdatum verwendet, nicht das Lagerdatum – deshalb kann es hier zu Abweichungen kommen, wenn das Erstellungsdatum vom Lagerdatum abweicht.

 

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