Revision 7a491ae8
Von Roman Karuschka vor etwa 1 Jahr hinzugefügt
- ID 7a491ae8db7e2aef988c17fd3591d216f9c85f4b
- Vorgänger df8ea866
doc/dokumentation.xml | ||
---|---|---|
ohne große Probleme auf den derzeit aktuellen verbreiteten
|
||
Distributionen läuft.</para>
|
||
|
||
<para>Mitte 2020 (ab Version 3.5.6) empfehlen wir:</para>
|
||
<para>Anfang 2024 (ab Version 3.5.6) empfehlen wir:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
... | ... | |
<listitem>
|
||
<para>11.0 "Bullseye"</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>12.0 "Bookworm"</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>20.04 "Focal Fossa" LTS
|
||
</para>
|
||
<para>Ubuntu</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>20.04 "Focal Fossa" LTS</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>22.04 "Jammy Jellyfish" LTS</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
... | ... | |
|
||
<programlisting>./scripts/installation_check.pl</programlisting>
|
||
|
||
<note id="List-Moreutils">
|
||
<para>Das Paket <literal>List::MoreUtils</literal> wird benötigt um das Script ausführen zu können!</para>
|
||
</note>
|
||
<para>Die vollständige Liste der benötigten Perl-Module lautet:</para>
|
||
|
||
<itemizedlist>
|
||
... | ... | |
<literal>XML::Writer</literal> sind notwendig. Ohne startet kivitendo
|
||
nicht.</para>
|
||
|
||
<para>Gegenüber Version 2.6.1 sind <literal>parent</literal>,
|
||
<literal>DateTime</literal>, <literal>Rose::Object</literal>,
|
||
<literal>Rose::DB</literal> und <literal>Rose::DB::Object</literal>
|
||
neu hinzugekommen. <literal>IO::Wrap</literal> wurde entfernt.</para>
|
||
|
||
<para>Gegenüber Version 2.6.3 ist <literal>JSON</literal> neu
|
||
hinzugekommen.</para>
|
||
|
||
<para><literal>Email::Address</literal> und
|
||
<literal>List::MoreUtils</literal> sind schon länger feste
|
||
Abhängigkeiten, wurden aber bisher mit kivitendo mitgeliefert. Beide
|
||
sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer
|
||
zukünftigen Version aber aus dem Paket entfernt werden. Es wird
|
||
<literal>List::MoreUtils</literal> wurden aus dem Lieferumfang entfernt. Es wird
|
||
empfohlen diese Module zusammen mit den anderen als Bibliotheken zu
|
||
installieren.</para>
|
||
|
||
<para>Gegenüber Version 2.6.1 sind <literal>parent</literal>,
|
||
<literal>DateTime</literal>, <literal>Rose::Object</literal>,
|
||
<literal>Rose::DB</literal> und <literal>Rose::DB::Object</literal>
|
||
neu hinzugekommen. <literal>IO::Wrap</literal> wurde entfernt.</para>
|
||
|
||
|
||
<sect3>
|
||
<title>Debian und Ubuntu</title>
|
||
<para>Für Debian und Ubuntu stehen die meisten der benötigten
|
||
... | ... | |
</sect2>
|
||
</sect1>
|
||
<sect1 id="Installation mittels Ansible"
|
||
xreflabel="Inatallation mittels Ansible">
|
||
xreflabel="Inatallation mittels Ansible">
|
||
<title>Installation mittels Ansible auf Ubuntu 22.04</title>
|
||
<para>
|
||
Ansible ist ein Open-Source-Automatisierungstool, das verwendet
|
||
... | ... | |
so startet dieser nach Beendigung automatisch erneut.</para>
|
||
|
||
</sect2>
|
||
<sect2 id="Tasks-konfigurieren"
|
||
xreflabel="Tasks-konfigurieren">
|
||
<sect2 id="Tasks-konfigurieren">
|
||
<title>Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</title>
|
||
|
||
<para>Hintergrund-Jobs werden über System -> Hintergrund-Jobs und Task-Server -> Aktuelle Hintergrund-Jobs anzeigen -> Aktions-Knopf 'erfassen' angelegt. </para>
|
||
... | ... | |
</varlistentry>
|
||
|
||
</variablelist>
|
||
</sect3>
|
||
|
||
<sect3 id="dokumentenvorlagen-und-variablen.invoice-posten-cvars">
|
||
<title>Benutzerdefinierte Variablen für jeden Posten auf der Rechnung</title>
|
||
<para>
|
||
Für jeden Posten stehen auch die benutzerdefinierten Variablen zum
|
||
Artikel zur Verfügung. Ihre Namen bestehen aus dem Präfix
|
||
<varname>ic_cvar_</varname> und dem vom Benutzer festgelegten
|
||
Variablennamen.
|
||
</para>
|
||
<para>
|
||
Ebenso stehen die benutzerdefinierten Variablen zum positionsbezogenen
|
||
Projekt unter dem Namen mit dem Präfix <varname>project_cvar_</varname>
|
||
und dem vom Benutzer festgelegten Variablennamen zur Verfügung.
|
||
</para>
|
||
</sect3>
|
||
|
||
<sect3 id="dokumentenvorlagen-und-variablen.invoice-zahlungen">
|
||
... | ... | |
<para>Analog stehen die benutzerdefinierten Variablen für
|
||
Ansprechpersonen mit dem Namenspräfix <varname>cp_cvar_</varname>
|
||
zur Verfügung.</para>
|
||
|
||
<para>Auch für das globale Projekt des Belegs stehen die
|
||
benutzerdefinierten Variablen mit dem Namenspräfix
|
||
<varname>project_cvar_</varname> zur Verfügung.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
... | ... | |
Artikel des Lieferanten an, somit ist es möglich diese Artikel auszuwählen und gleich mitzubestellen</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="features.timerecording">
|
||
<title>Zeiterfassung</title>
|
||
<para>
|
||
Seit der Version 3.5.7 enthält kivitendo ein Modul zur Zeiterfassung.
|
||
Damit ist es möglich, auftrags-, kunden- oder projektbezogen,
|
||
Arbeitszeiten zu erfassen. Die erfassten Zeiten können über einen
|
||
Hintergrund-Job in Lieferscheine umgewandelt werden.
|
||
</para>
|
||
<sect2 id="features.timerecording.config">
|
||
<title>Konfiguration</title>
|
||
<para>
|
||
Die Zeiterfasssung funktioniert auch ohne Konfiguration, sofern der Benutzer
|
||
die entsprechenden Rechte besitzt. Allerdings ist
|
||
es möglich, Artikel für die Zeiterfassung zu konfigurieren, die im Bericht
|
||
ausgewertet und bei der Umwandlung zum Lieferschein verwendet werden
|
||
können.
|
||
Zudem kann auf benutzerebene eingestellt werden, ob Zeiten mit Start- und
|
||
End-Zeit oder mit Datum und Dauer erfasst werden sollen.
|
||
</para>
|
||
<sect3 id="features.timerecording.config.rights">
|
||
<title>Zugriffsrechte</title>
|
||
<para>
|
||
In der Rechteverwaltung im Admin-Bereich können im Zusammenhang mit
|
||
der Zeiterfassung drei verschiedene Rechte vergeben werden:
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><emphasis>Zeiterfassungen erfassen, bearbeiten und ansehen</emphasis></para>
|
||
<para>Diese Recht steuert, ob eine Gruppe den Menüpunkt zur
|
||
Zeiterfassung überhaupt sehen und diese verwenden kann.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>Zeiterfassungseinträge aller Mitarbeiter anzeigen</emphasis></para>
|
||
<para>Ohne dieses Recht darf ein Benutzer einer Benutzergruppe,
|
||
die die Zeiterfassung verwenden darf, nur Zeiteinträge im Bericht
|
||
sehen, bei denen dieser als Mitarbeiter eingetragen ist.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>Zeiterfassungseinträge aller Mitarbeiter bearbeiten</emphasis></para>
|
||
<para>Ohne dieses Recht darf ein Benutzer einer Benutzergruppe,
|
||
die die Zeiterfassung verwenden darf, nur Zeiteinträge anlegen
|
||
und bearbeiten, bei denen dieser als Mitarbeiter eingetragen ist.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
</para>
|
||
</sect3>
|
||
<sect3 id="features.timerecording.config.part">
|
||
<title>Artikel für Zeiterfassung</title>
|
||
<para>
|
||
Unter <emphasis><guimenu>System</guimenu>
|
||
→ <guisubmenu>Artikel für Zeiterfassung</guisubmenu></emphasis>
|
||
können Artikel zur Nutzung mit der Zeiterfassung erfasst werden. Diese Artikel
|
||
müssen eine zeitbasierte Einheit haben.
|
||
</para>
|
||
</sect3>
|
||
<sect3 id="features.timerecording.config.time_or_duration">
|
||
<title>Benutzereinstellungen</title>
|
||
<para>
|
||
Unter <emphasis><guimenu>Programm</guimenu>
|
||
→ <guisubmenu>Benutzereinstellungen</guisubmenu></emphasis>
|
||
im Reiter <emphasis>Persönliche Einstellungen</emphasis> bei
|
||
<emphasis>Datum und Dauer für Zeiterfassung verwenden</emphasis>
|
||
kann der Benutzer angeben, ob Zeiten mit Start- und End-Zeit oder mit
|
||
Datum und Dauer erfasst werden sollen.
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
<sect2 id="features.timerecording.add">
|
||
<title>Erfassen</title>
|
||
<para>
|
||
Über den Menüpunkt <emphasis><guimenu>Produktivität</guimenu>
|
||
→ <guisubmenu>Zeiterfassung</guisubmenu></emphasis>
|
||
gelangt man zur Erfassungsmaske der Zeiterfassung. Je nach Einstellung
|
||
muss ein Datum oder Datum und Start-Zeit angegeben werden. Ebenso sind
|
||
die Felder <emphasis>Kunde</emphasis> und
|
||
<emphasis>Beschreibung</emphasis>
|
||
Pflichtfelder.
|
||
</para>
|
||
<para>
|
||
Wird ein Auftrag oder ein Projekt, dem ein Kunde zugeordnet ist,
|
||
ausgewählt, so wird das Feld <emphasis>Kunde</emphasis>
|
||
automatisch mit dem zugehörigen Kunden gefüllt und für die
|
||
manuelle Bearbeitung gesperrt.
|
||
</para>
|
||
<para>
|
||
Die End-Zeit bzw. die Dauer ist kein Pflichtfeld, damit
|
||
man einen Eintrag z.B. beim Start der Arbeit anlegen und
|
||
später am Ende dann die End-Zeit bzw. Dauer erfassen kann.
|
||
Bei Eingabe über Start- und End-Zeit dürfen sich die Zeiten für
|
||
ein und denselben Mitarbeiter nicht überlappen.
|
||
</para>
|
||
<para>
|
||
Falls der Bearbeiter das Recht
|
||
<emphasis>Zeiterfassungseinträge aller Mitarbeiter
|
||
bearbeiten</emphasis> besitzt, kann auch der Mitarbeiter für
|
||
diesen Zeiteintrag ausgewählt werden.
|
||
</para>
|
||
</sect2>
|
||
<sect2 id="features.timerecording.report">
|
||
<title>Bericht</title>
|
||
<para>
|
||
Ein Bericht über die erfassten Zeiten lässt sich über
|
||
<emphasis><guimenu>Produktivität</guimenu> → <guisubmenu>Berichte</guisubmenu>
|
||
→ <guisubmenu>Zeiterfassung</guisubmenu></emphasis> ausgeben.
|
||
Hier lassen sich die Zeiten auch filtern, sortieren und exportieren.
|
||
</para>
|
||
<para>
|
||
Ausgewählte Zeiteinträge können über <emphasis><guimenu>Aktionen</guimenu>
|
||
→ <guisubmenu>Als gebucht markieren</guisubmenu></emphasis> als schon gebucht
|
||
markiert werden. Dies geschieht normalerweise bei der Konvertierung
|
||
zum Lieferschein und kann hier händisch durchgeführt werden, wenn diese
|
||
Zeitbuchungen bei der Konvertierung nicht mehr berücksichtigt werden sollen.
|
||
</para>
|
||
</sect2>
|
||
<sect2 id="features.timerecording.conversion">
|
||
<title>Konvertierung zu Lieferscheinen</title>
|
||
<para>
|
||
Über den Hintergrund-Job
|
||
<emphasis>ConvertTimeRecordings</emphasis> können
|
||
Zeiteinträge in Lieferscheine umgewandelt werden. Hierbei
|
||
werden alle noch nicht gebuchten Zeiteinträge eines
|
||
bestimmten Zeitraums für bestimmte Kunden gesammelt und
|
||
in Lieferscheine umgewandelt.
|
||
Pro Kunde wird ein Lieferschein generiert und
|
||
pro Artikel wird eine Positionszeile erzeugt. Dabei werden
|
||
Einträge mit gleichen Beschreibungen zusammengefasst. Die
|
||
Details landen im Langtext der Position.
|
||
</para>
|
||
<para>
|
||
Ohne übergebene Parameter im Feld <emphasis>Daten</emphasis> werden alle
|
||
Zeiteinträge des letzten Monats für alle Kunden umgewandelt. Dabei
|
||
werden die Zeiten auf volle Viertelstunden aufgerundet (siehe auch
|
||
<xref linkend="features.timerecording.configuration"/>).
|
||
</para>
|
||
<sect3 id="features.timerecording.configuration" xreflabel="Konfigurations-Optionen der Zeiterfassung">
|
||
<title>Konfigurations-Optionen</title>
|
||
<para>
|
||
Zur generellen Konfiguration von Hintergrund-Jobs und zur Übergabe
|
||
von Parametern als Daten an diese, siehe <xref linkend="config.task-server"/>
|
||
bzw. <xref linkend="Tasks-konfigurieren"/>).
|
||
</para>
|
||
<para>
|
||
Folgende Parameter können als <emphasis>Daten</emphasis> an den
|
||
Hintergrund-Job zur Konvertierung übergeben werden:
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>from_date</emphasis>
|
||
</para>
|
||
<para>
|
||
Das Startdatum, von welchen an die Zeiteinträge berücksicht werden.
|
||
Voreinstellung ist der erste Tag des vorherigen Montats.
|
||
</para>
|
||
<para>
|
||
Beispiel (das Zeitformat hängt von der persönlichen Einstellungen ab):
|
||
<programlisting>from_date: 01.12.2020</programlisting>
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>to_date</emphasis>
|
||
</para>
|
||
<para>
|
||
Das Datum, bis zu welchem die Zeiteinträge zur Konvertierung gesammelt
|
||
werden. Voreinstellung ist der letzte Tag des vorherigen Montas.
|
||
</para>
|
||
<para>
|
||
Beispiel (das Zeitformat hängt von der persönlichen Einstellungen ab):
|
||
<programlisting>to_date: 15.12.2020</programlisting>
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
<emphasis>customernumbers</emphasis>
|
||
</para>
|
||
<para>
|
||
Eine Liste mit Kundennummern, für die Zeiteinträge gesammelt werden
|
||
sollen. Wird diese Liste nicht angegeben, werden Einträge für
|
||
alle Kunden berücksichtig.
|
||
</para>
|
||
<para>
|
||
<programlisting>customernumbers: [c1,22332,334343]</programlisting>
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>override_part_id</emphasis>
|
||
</para>
|
||
<para>
|
||
Die Datenbank-Id einer zeitbasierten Dienstleistung, die verwendet
|
||
werden soll, um die Zeiteinträge zu buchen. Dieser Wert überschreibt
|
||
den Eintrag des Artikels des Zeiteintrags.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>default_part_id</emphasis>
|
||
</para>
|
||
<para>
|
||
Die Datenbank-Id einer zeitbasierten Dienstleistung, die verwendet
|
||
werden soll, um die Zeiteinträge zu buchen, falls im Zeiteintrag
|
||
kein Artikel gespeichert ist.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>rounding</emphasis>
|
||
</para>
|
||
<para>
|
||
Ist dieser Wert <literal>0</literal>, so werden die Zeiten nicht gerundet.
|
||
Ist der Wert <literal>1</literal> (oder "wahr" in Perl"), so werden die Zeiten auf volle Viertelstunden aufgerundet, also z.B. 0.25h, 0.5h, 0.75h,
|
||
1.25h ...
|
||
</para>
|
||
<para>
|
||
Voreinstellung ist <literal>1</literal> ("wahr").
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>link_order</emphasis>
|
||
</para>
|
||
<para>
|
||
Ist der Wert <literal>1</literal> (oder "wahr" in Perl"), so verknüpft
|
||
der Hintergrund-Job den erzeugten Lieferschein mit dem im Zeiteintrag
|
||
angegebenen Auftrag.
|
||
Ist kein Auftrag angegeben, wird versucht, einen Auftrag für den
|
||
angegebenen Kunden und die angegebene Projektnummer zu finden.
|
||
</para>
|
||
<para>
|
||
Folgende Kriterien werden zum Finden eines Vorgängerauftrags angwendet:
|
||
<itemizedlist>
|
||
<listitem><para>
|
||
Auftrag ist im Zeiteintrag angegeben <emphasis>oder</emphasis>
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Datenbank-Id des Projekts des Auftrags ist gleich
|
||
der Datenbank-Id des Zeiteintrags <emphasis>oder</emphasis> der in den Daten
|
||
übergebenen Projekt-Id
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Kunde des Auftrags ist gleich Kunde des Zeiteintrags
|
||
</para></listitem>
|
||
<listitem><para>
|
||
der Auftrag muss mindestens eine zugehörige zeitbasierte Position haben
|
||
</para></listitem>
|
||
<listitem><para>
|
||
das Projekt muss gültig und aktiv sein
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
<para>
|
||
Voreinstellung ist aus. Wenn dieser Parameter gesetzt ist, läuft der
|
||
Hintergrund-Job auf einen Fehler, falls kein geeigneter Vorgängerauftrag
|
||
gefunden werden kann.
|
||
</para>
|
||
<para>
|
||
Der Job beachtet nicht, ob der Auftrag schon geliefert oder geschlossen
|
||
ist.
|
||
Wenn der Kundenauftrag überliefert wird, muss dies organisatorisch
|
||
geklärt werden. Der Kundenauftrag kann auch bereits geschlossen sein,
|
||
d.h. der Betrag ist vollständig fakturiert, aber die Leistungen sind
|
||
noch nicht vollständig geliefert (einfacher Fall: "Vorauskasse").
|
||
</para>
|
||
<para>
|
||
siehe auch den Hintergrund-Job
|
||
<literal>CloseProjectsBelongingToClosedSalesOrder</literal>
|
||
für eine weitergehende Automatisierung der Abläufe.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>override_project_id</emphasis>
|
||
</para>
|
||
<para>
|
||
Verwende diese Datenbank-Id für das Projekt an Stelle des
|
||
im Zeiteintrag angegebenen Projekts, um den zugehörigen Auftrag
|
||
zu finden. Dieser Parameter wird nur berücksichtig, wenn
|
||
<emphasis>link_order</emphasis> wahr ist.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
<emphasis>default_project_id</emphasis>
|
||
</para>
|
||
<para>
|
||
Verwende diese Datenbank-Id für das Projekt, falls
|
||
im Zeiteintrag kein Projekt angegeben ist, um den
|
||
zugehörigen Auftrag zu finden.
|
||
Dieser Parameter wird nur berücksichtig, wenn
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
</chapter>
|
||
|
||
<chapter>
|
Auch abrufbar als: Unified diff
Update der Installationsdokumentation, Abschnitt Voraussetzungen