kivitendo-erp.git
3 years agoFactur-X/ZUGFeRD: in »Factur-X/ZUGFeRD« umbenannt
Moritz Bunkus [Thu, 26 Nov 2020 13:04:32 +0000 (14:04 +0100)]
Factur-X/ZUGFeRD: in »Factur-X/ZUGFeRD« umbenannt

Mit ZUGFeRD-Standard Version 2.1.1 ist der offizielle Name des
EU-Standards schlicht Factur-X. ZUGFeRD ist nur noch der tolerierte
alte Name.

In der Oberfläche ist nun überall von »Factur-X/ZUGFeRD« die Rede.

Im Quellcode heißen die Module hingegen weiterhin `SL::…::ZUGFeRD`,
weil die Umstellung ansonsten zu groß und irgendwo auch nicht so nötig
ist.

Es ändern sich auch die ganzen Namen in den Metadaten des PDFs und der
XML-Datei:

• Namensraum in der für Factur-X/ZUGFeRD relevanten XML-Elemente in
  den XMP-Metadaten im PDF
• Name des Dateianhangs der Rechnungs-XML im PDF (»factur-x.xml«)
• Standard-Identifier in der Rechnungs-XML

3 years agoFactur-X/ZUGFeRD: neues Feld »Unsere Leitweg-ID beim Kunden« in Kundenstammdaten
Moritz Bunkus [Thu, 26 Nov 2020 10:52:01 +0000 (11:52 +0100)]
Factur-X/ZUGFeRD: neues Feld »Unsere Leitweg-ID beim Kunden« in Kundenstammdaten

Wird für XRechnungs-Profil von ZUGFeRD benötigt.

3 years agoFactur-X/ZUGFeRD: UStID-Nr des Kunden nur ausgeben, wenn tatsächlich angegeben
Moritz Bunkus [Thu, 26 Nov 2020 10:04:09 +0000 (11:04 +0100)]
Factur-X/ZUGFeRD: UStID-Nr des Kunden nur ausgeben, wenn tatsächlich angegeben

3 years agoFactur-X/ZUGFeRD: Verkäufernamen aus Employee-Objekt nehmen
Moritz Bunkus [Thu, 26 Nov 2020 10:03:15 +0000 (11:03 +0100)]
Factur-X/ZUGFeRD: Verkäufernamen aus Employee-Objekt nehmen

Wichtig für Personen, die inzwischen aus der Auth-Datenbank gelöscht
wurden. Für die existiert der Employee-Eintrag weiterhin, und von dort
kann man den Namen beziehen.

3 years agoSL::DB::Object: Methode update_collections für One-To-Many-Relationships
Moritz Bunkus [Tue, 24 Nov 2020 12:26:22 +0000 (13:26 +0100)]
SL::DB::Object: Methode update_collections für One-To-Many-Relationships

Der große Nachteil einer direkten Zuweisung wie
z.B. `$customer->shiptos($::form->{shiptos} // [])` ist, dass Rose
erst mal alle Objekte der Relationship löscht (auch wenn die neuen
Werte Primärschlüsselattribute enthalten) und anschließend neu
INSERTed, was nicht nur deutlich zu aufwändig ist, sondern auch mal
nicht funktionieren kann, wenn es da noch weitere Objekte mit
Fremdschlüsseln auf die zu aktualisierenden Objekte verweisen.

Daher muss man die Behandlung (neu hinzuzufügende, zu löschende & zu
aktualisierende Objekte) selber vornehmen. Das macht nun diese
Methode.

Die Methode gleicht eine Liste von existierenden Objekten einer
One-To-Many-Relationship (z.B. Kunde zu Lieferadressen) mit einer
neuen Liste von Hashrefs ab, die z.B. aus `$::form` stammen können.

Für alle Einträge aus der neuen Liste, die kein Attribut für den
Primärschlüssel enthalten, werden neue Einträge in der Datenbank
angelegt.

Für alle Einträge aus der neuen Liste mit Primärschlüsselattribut wird
das korrespondierende Objekt mit den Werten aus `$::form`
aktualisiert.

Alle existierenden Objekte in `$self->$attribute`, für die es keinen
korrespondierenden Eintrag in der neuen Liste mehr gibt, werden
gelöscht.

3 years agoAttrDuration für minutes: _in_hours und _in_hours_as_number
Moritz Bunkus [Tue, 24 Nov 2020 11:10:33 +0000 (12:10 +0100)]
AttrDuration für minutes: _in_hours und _in_hours_as_number

Generierte Helfer-Methoden für Attribute, die normalerweise Minuten
speichern. Die Funktion `attribute_in_hours` rechnet die Minuten in
Stunden um (beim Lesen) und umgekehrt (beim Schreiben).

`attribute_in_hours_as_number` formatiert zusätzlich den Wert in
Stunden zusätzlich in das Zahlenformat der Anwender*in bzw. parst
dieses Format beim Schreiben.

3 years agoProjekt: überflüssigen Code entfernt
Moritz Bunkus [Mon, 23 Nov 2020 12:55:38 +0000 (13:55 +0100)]
Projekt: überflüssigen Code entfernt

3 years agoVK-Rechnungsbericht: Web-Template: vergessenes </tr> eingefügt
Bernd Bleßmann [Mon, 23 Nov 2020 16:29:42 +0000 (17:29 +0100)]
VK-Rechnungsbericht: Web-Template: vergessenes </tr> eingefügt

3 years agoVK-Rechnungsbericht: Lieferscheinnummer und Lieferdatum anzeigen können
Bernd Bleßmann [Mon, 23 Nov 2020 12:06:37 +0000 (13:06 +0100)]
VK-Rechnungsbericht: Lieferscheinnummer und Lieferdatum anzeigen können

3 years agoCSV-Import Waren: bestehende Makemodels als Array, nicht als Array-Ref
Bernd Bleßmann [Fri, 20 Nov 2020 19:32:48 +0000 (20:32 +0100)]
CSV-Import Waren: bestehende Makemodels als Array, nicht als Array-Ref

makdemodels verhält sich als makemodels_sorted: Die von Rose erzeugte Methode
berücksichtig offenbar den Kontext - makemodels_sorted gibt immer ein array-ref

[$part->makemodels_sorted] ergibt [ [] ]
[$part->makemodels]        ergibt []

Ergab eine Fehlermeldung:
Invalid makemodels argument: ARRAY(0xXXX) at
  ../../SL/Controller/CsvImport/Part.pm line xxx.

3 years agoCsvImport: dateformat Unterstützung
Sven Schöling [Fri, 20 Nov 2020 16:34:19 +0000 (17:34 +0100)]
CsvImport: dateformat Unterstützung

default ist auf dem dateformat des Benutzers

3 years agoIR: Projekt Picker für globalproject_id
Sven Schöling [Fri, 20 Nov 2020 15:31:33 +0000 (16:31 +0100)]
IR: Projekt Picker für globalproject_id

3 years agoMassenerstellen von RG aus LS: geschlossene LS nicht (erneut) verarbeiten
Bernd Bleßmann [Fri, 20 Nov 2020 16:02:32 +0000 (17:02 +0100)]
Massenerstellen von RG aus LS: geschlossene LS nicht (erneut) verarbeiten

Geschlossene Lieferscheine werden nicht zum Umwandeln in der Liste angezeigt,
das war auch bisher so. Aber weenn man nach dem Erzeuigen der Rechnungen von
der Folgeseite den Browser-Zurück-Knopf drückt, konnten aus den selben
Lieferscheine durchaus nochmal Rechnungen erzeugt werden. Das wird nun
abgefangen.

3 years agoMassenerstellen von Rechnungen aus LS: sumbit direkt von der Aktion machen
Bernd Bleßmann [Fri, 20 Nov 2020 15:45:18 +0000 (16:45 +0100)]
Massenerstellen von Rechnungen aus LS: sumbit direkt von der Aktion machen

Das submit, das die Umwandlung der Rechnungen startet, kann direkt über die
ActionBar angegeben werden. Damit fällt die js-Funktion ganz weg.

3 years agoMassenerstellen von Rechnungen aus LS: js: Klasse "loading" setzen raus
Bernd Bleßmann [Fri, 20 Nov 2020 15:43:59 +0000 (16:43 +0100)]
Massenerstellen von Rechnungen aus LS: js: Klasse "loading" setzen raus

Das tut hier nichts, denke ich.

3 years agoMassenerstellen von Rechnungen aus LS: Aktion nur einmal ausführen
Bernd Bleßmann [Fri, 20 Nov 2020 15:34:16 +0000 (16:34 +0100)]
Massenerstellen von Rechnungen aus LS: Aktion nur einmal ausführen

Dafür den Action-Parameter only_once verwenden.
Damit das aber klappt, muss die Prüfung, ob etwas angehakt ist, auch als check
an die Action gehängt werden. Denn sonst wird der Knopf abgeschaltet, auch wenn
nur die Prüfung fehlschlägt, weil man nix angehakt hat.

3 years agoClientJS: Funktion zum Setzen der Cursorposition (z.B. in textareas)
Moritz Bunkus [Wed, 18 Nov 2020 10:22:25 +0000 (11:22 +0100)]
ClientJS: Funktion zum Setzen der Cursorposition (z.B. in textareas)

3 years agolocales-Lauf 'en'
Bernd Bleßmann [Tue, 17 Nov 2020 11:37:01 +0000 (12:37 +0100)]
locales-Lauf 'en'

3 years agoCSS/JS: Git-Revision von HEAD als GET-Parameter verwenden
Moritz Bunkus [Mon, 16 Nov 2020 16:02:38 +0000 (17:02 +0100)]
CSS/JS: Git-Revision von HEAD als GET-Parameter verwenden

Webbrowser cachen CSS & JS sehr aggressiv. Das ist während der
Entwicklung störend, weshalb es bereits seit langem die
Konfigurationsoption `auto_reload_resources` gibt. Ist diese an, so
wird an alle CSS- und JS-URLs ein GET-Parameter `?rand=<Zufallswert>`
angehängt wird, um das Cachen auszuhebeln.

Dieser Commit führt etwas Ähnliches ein, das für den Produktivbetrieb
ohne `auto_reload_resources` gedacht ist. Wenn kivitendo erkennt, dass
es aus git heraus läuft (also ein `.git`-Verzeichnis existiert), so
parset es die Revision von `HEAD` und nimmt das als GET-Parameter
`?rand=<Revision>`. Der Vorteil ist, dass nach Updates einer
Produktivinstallation die Webbrowser der Anwender*innen genau einmal
alle Ressourcen neu laden, weil sich ja die Git-Revisionsnummer
geändert hat. Anschließend können sie die Ressourcen aber wieder
normal cachen, bis das nächste Update kommt.

Es wird hierfür übrigens kein installiertes git-Executable benötigt;
die Infos werden zwecks Performance direkt aus den Dateien gelesen,
anstatt bei jedem Request ein Programm auszuführen.

Zukünftig könnte man ein analoges Verfahren anwenden, wenn es kein
`.git`-Verzeichnis gibt, und dann zumindest die
kivitendo-Versionsnummer verwenden.

3 years agoL/P.select_tag: Unterstützung für Text-Filter
Moritz Bunkus [Mon, 16 Nov 2020 14:16:19 +0000 (15:16 +0100)]
L/P.select_tag: Unterstützung für Text-Filter

Gedacht für Selects mit size="123"-Attribut, die also als Liste und
nicht als Combobox gerendert werden.

Es wird direkt oberhalb der Select eine Text-Eingabezeile angezeigt,
die als dynamischer Filter für die Optionen verwendet wird. Bei jeder
Änderung (keyup) werden nur noch diejenigen Einträge in der Select
angezeigt, in deren Text der Suchfilter-Begriff irgendwo
vorkommt (ohne Berücksichtigung von Groß-/Kleinschreibung).

• with_filter=1 schaltet den Filter an
• filter_placeholder=LxERP.t8("Placeholder text") gibt einen
  Platzhalter-Text an

3 years agoL/P.select_tag: Collection, die aus einem leeren Wert besteht, ignorieren
Moritz Bunkus [Mon, 16 Nov 2020 16:15:41 +0000 (17:15 +0100)]
L/P.select_tag: Collection, die aus einem leeren Wert besteht, ignorieren

Unter Umständen kann es durch wantarray & Durchschieben in Templates
passieren, dass der $collection-Parameter nicht leer ist (obwohl er
leer sein sollte), und statt dessen ein leerer String ist. Bisher
wurde daraus eine Liste mit einem leeren Eintrag, auch wenn
`with_empty` nicht angegeben war.

Ab sofort solche Einträge einfach als leere Liste werten.

3 years agoWiederkehrende Rechnungen: Anrede in E-Mail-Body-Vorbelegung verwenden
Moritz Bunkus [Fri, 13 Nov 2020 10:31:48 +0000 (11:31 +0100)]
Wiederkehrende Rechnungen: Anrede in E-Mail-Body-Vorbelegung verwenden

3 years agoNeuer Auftragscontroller: veralteten TODO-Eintrag gelöscht
Moritz Bunkus [Fri, 13 Nov 2020 09:38:51 +0000 (10:38 +0100)]
Neuer Auftragscontroller: veralteten TODO-Eintrag gelöscht

3 years agoNeuer Auftragscontroller: Drucker-ID an Template-Auswahlmechanismus durchreichen
Moritz Bunkus [Fri, 13 Nov 2020 09:36:05 +0000 (10:36 +0100)]
Neuer Auftragscontroller: Drucker-ID an Template-Auswahlmechanismus durchreichen

Der Auswahlmechanismus kann bei der Suche nach der zu verwendenden
Vorlage das beim Drucker hinterlegte Vorlagenkürzel
berücksichtigen. Dafür muss er aber auch gesagt bekommen, welcher
Drucker ausgewählt wurde.

3 years agoDoku: Zuviele TeX-Pakete angegeben
Jan Büren [Thu, 12 Nov 2020 12:08:37 +0000 (13:08 +0100)]
Doku: Zuviele TeX-Pakete angegeben

3 years agoVergessener Doku-Lauf
Jan Büren [Thu, 12 Nov 2020 12:06:08 +0000 (13:06 +0100)]
Vergessener Doku-Lauf

3 years agotypo
Jan Büren [Thu, 12 Nov 2020 11:54:01 +0000 (12:54 +0100)]
typo

3 years agoRevert "Dialogbuchen: automatisches Kopieren des Betrags entfernt"
Jan Büren [Wed, 11 Nov 2020 12:16:16 +0000 (13:16 +0100)]
Revert "Dialogbuchen: automatisches Kopieren des Betrags entfernt"

Aufgrund von vielfachen Kundenwunsch ...
This reverts commit 6755770b9e487756da69b7e0dcc6efb88513170e.

3 years agochangelog: Typo
Bernd Bleßmann [Tue, 10 Nov 2020 11:11:36 +0000 (12:11 +0100)]
changelog: Typo

3 years agoWiederkehrende Rechnungen: Druck-/E-Mail-Fehler in Zusammenfassungs-Mail
Moritz Bunkus [Wed, 4 Nov 2020 16:28:35 +0000 (17:28 +0100)]
Wiederkehrende Rechnungen: Druck-/E-Mail-Fehler in Zusammenfassungs-Mail

3 years agoPflichtenhefte: Gültigkeitsdatum in Angeboten auch ohne Zahlungsbedingungen setzen
Moritz Bunkus [Fri, 30 Oct 2020 15:01:34 +0000 (16:01 +0100)]
Pflichtenhefte: Gültigkeitsdatum in Angeboten auch ohne Zahlungsbedingungen setzen

3 years agoDialogbuchen: HTML-Code vereinfacht
Moritz Bunkus [Wed, 21 Oct 2020 08:25:51 +0000 (10:25 +0200)]
Dialogbuchen: HTML-Code vereinfacht

3 years agoWiederkehrende Rechnungen: bei E-Mail-Versand Rechnungsattribute als Variablen
Moritz Bunkus [Tue, 10 Nov 2020 10:24:24 +0000 (11:24 +0100)]
Wiederkehrende Rechnungen: bei E-Mail-Versand Rechnungsattribute als Variablen

Praxisbeispiel ist, dass man im Betreff der Rechnung die
Rechnungsnummer angeben möchte; das geht nun mit z.B. »Rechnung <%invnumber%>«.

3 years agochangelog-Update
Moritz Bunkus [Tue, 10 Nov 2020 09:52:54 +0000 (10:52 +0100)]
changelog-Update

3 years agoNeuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 3
Moritz Bunkus [Tue, 10 Nov 2020 08:30:10 +0000 (09:30 +0100)]
Neuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 3

Die longdescription wird jetzt doch als Hidden im Formular mit
übertragen. Dadurch werden gewisse Randfälle und Diskrepanzen zwischen
Form-Inhalt und Datenbank-Inhalt vermieden. Nur hiermit ist es jetzt
auch möglich, auch den Langtext durch die Funktion »aus Stammdaten
aktualisieren« zurückzusetzen.

3 years agoNeuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 2
Moritz Bunkus [Mon, 9 Nov 2020 15:49:25 +0000 (16:49 +0100)]
Neuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 2

Bei Funktion »Artikeldaten aus Stammdaten holen«.

Funktioniert noch nicht für die Langbeschreibung, weil die Funktion
das von der Architektur her bisher gar nicht unterstützt.

3 years agoNeuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 1
Moritz Bunkus [Mon, 9 Nov 2020 15:21:15 +0000 (16:21 +0100)]
Neuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 1

Bisher nur beim Hinzfügen von Artikeln.

3 years agoNeuer Angebots-/Auftragscontroller: Sprach-Drop-Down aus Print-Optionen in Hauptbeleg...
Moritz Bunkus [Mon, 9 Nov 2020 14:28:35 +0000 (15:28 +0100)]
Neuer Angebots-/Auftragscontroller: Sprach-Drop-Down aus Print-Optionen in Hauptbeleg verschoben

3 years agoEinkauf/Verkauf: Sprach-Drop-Down aus Print-Optionen in Hauptbeleg verschoben
Moritz Bunkus [Mon, 9 Nov 2020 13:06:26 +0000 (14:06 +0100)]
Einkauf/Verkauf: Sprach-Drop-Down aus Print-Optionen in Hauptbeleg verschoben

Noch nicht erledigt ist der neue Angebots-/Auftragscontroller.

3 years agoAngebote/Aufträge: Abteilungen sortiert anzeigen
Moritz Bunkus [Mon, 9 Nov 2020 12:27:19 +0000 (13:27 +0100)]
Angebote/Aufträge: Abteilungen sortiert anzeigen

3 years agoEinkaufsrechnungen: Redirect nach Buchen auf Bearbeiten, nicht Erfassen
Moritz Bunkus [Mon, 9 Nov 2020 11:46:42 +0000 (12:46 +0100)]
Einkaufsrechnungen: Redirect nach Buchen auf Bearbeiten, nicht Erfassen

1. In allen anderen Einkaufs- und Verkaufsmasken landet man nach dem
   Speichern/Buchen wieder im gerade gespeicherten/gebuchten Beleg.

2. Wenn in der Mandantenkonfiguration das Feature »direktes Erfassen
   von Einkaufsrechnungen« aus ist, so darf man gar nicht direkt die
   Erfassen-Funktion aufrufen und bekommt folglich nach dem Redirect
   eine Fehlermeldung, dass man keine Rechte auf die Funktion habe.

3 years agoEmployee-Controller: beim Gelöscht-Setzen Verknüpfung in Auth-DB lösen
Moritz Bunkus [Mon, 9 Nov 2020 10:19:10 +0000 (11:19 +0100)]
Employee-Controller: beim Gelöscht-Setzen Verknüpfung in Auth-DB lösen

Beim Anlegen von Benutzer*inen in der Auth-DB werden sie nicht
zwangsweise auch in der Mandanten-DB angelegt, z.B. wenn die in dem
Moment noch nicht existiert. Daher werden bei jedem Login in einem
Mandanten alle Benutzer*innen, die in dem Moment mit dem Mandanten
verknüpft sind, in der Mandanten-DB angelegt (falls noch nicht
existierend) und das »gelöscht«-Flag wieder entfernt.

Beim Löschen von Benutzer*innen aus dem Admin-Bereich heraus ist das
soweit auch OK, denn dann wird in der Auth-DB der Eintrag entfernt und
in der Mandanten-DB das Login auf »gelöscht« gesetzt.

Es gibt aber auch im Mandantenbereich einen Controller zum Bearbeiten
von Benutzer*innen, in dem das »gelöscht«-Flag gesetzt werden
kann. Und hier wurde bisher nur die Mandanten-DB angefasst, nicht aber
die Auth-DB. Wenn also hier ein(e) Benutzer*in auf »gelöscht« gesetzt
wird, so wurde beim nächsten Login in den Mandanten in der Auth-DB
nachgesehen, dort war der Account noch verknüpft, also wurde das
»gelöscht«-Flag wieder entfernt.

Fix ist, dass nun auch in der Auth-DB die Verknüpfung des Accounts mit
dem Mandanten entfernt wird. Der Account wird in der Auth-DB aber
nicht gelöscht, weil er ja auch noch auf andere Mandanten Zugriff
haben könnte.

Fix für #97.

3 years agoSL::DB::Employee: Warnung vermeiden
Moritz Bunkus [Mon, 9 Nov 2020 09:59:06 +0000 (10:59 +0100)]
SL::DB::Employee: Warnung vermeiden

3 years agoMerge branch '2020-helper-number' into master
Moritz Bunkus [Mon, 9 Nov 2020 09:43:05 +0000 (10:43 +0100)]
Merge branch '2020-helper-number' into master

3 years agoNumber-Helper-Tests: Warnungen vermeiden
Moritz Bunkus [Mon, 9 Nov 2020 09:41:55 +0000 (10:41 +0100)]
Number-Helper-Tests: Warnungen vermeiden

$config war unbenutzt und wurde deshalb entfernt. Die Variable stammt
aus dem alten form/round_amount.t-Test, wo sie ebenfalls zwar
deklariert war aber nicht benutzt wurde.

3 years agoSL::Helper::Number: API Verbesserungen
Sven Schöling [Fri, 6 Nov 2020 17:06:00 +0000 (18:06 +0100)]
SL::Helper::Number: API Verbesserungen

- API ist jetzt einheitlich ($amount, [$places], %params)
- Benennung ist einheitlich _[format|parse|round]_[number|total]
- Tests aus t/helper/round.t nach t/helper/number.t verschoben
- Tests für alle neuen Funktionen hinzugefügt
- Doku-Update
- SL::Form angepasst
- EXPORT_ALL tag ":ALL" auf caps umgestellt

3 years agoAuslagern über Rechnung und Seriennummer besser kombinieren
Jan Büren [Thu, 5 Nov 2020 07:52:26 +0000 (08:52 +0100)]
Auslagern über Rechnung und Seriennummer besser kombinieren

Falls keine Seriennummer im Beleg dennoch probieren die Ware
auszulagern, sodass der Bearbeiter eine entsprechende Fehlermeldung bekommt.

3 years agoMT940-Import: Notiz im changelog
Moritz Bunkus [Wed, 4 Nov 2020 08:49:37 +0000 (09:49 +0100)]
MT940-Import: Notiz im changelog

3 years agoMT940-Import: AQBanking-Unterstützung entfernt Teil 2
Moritz Bunkus [Tue, 3 Nov 2020 17:02:31 +0000 (18:02 +0100)]
MT940-Import: AQBanking-Unterstützung entfernt Teil 2

3 years agoMT940-Import: AQBanking-Unterstützung entfernt
Moritz Bunkus [Tue, 3 Nov 2020 16:53:54 +0000 (17:53 +0100)]
MT940-Import: AQBanking-Unterstützung entfernt

3 years agoMT940-Import: Implementation eines eigenen Parsers anstelle von AQBanking
Moritz Bunkus [Tue, 3 Nov 2020 16:53:37 +0000 (17:53 +0100)]
MT940-Import: Implementation eines eigenen Parsers anstelle von AQBanking

3 years agospellcheck für substract
Bernd Bleßmann [Fri, 30 Oct 2020 15:08:09 +0000 (16:08 +0100)]
spellcheck für substract

3 years agoTypo im Kommentar: subtract statt substract
Bernd Bleßmann [Fri, 30 Oct 2020 15:07:13 +0000 (16:07 +0100)]
Typo im Kommentar: subtract statt substract

3 years agoInventur-Modul: DateTime-Methode heißt subtract, nicht substract
Bernd Bleßmann [Fri, 30 Oct 2020 15:06:02 +0000 (16:06 +0100)]
Inventur-Modul: DateTime-Methode heißt subtract, nicht substract

3 years agoKundenstammdatensuche: Filter auf ZUGFeRD-Einstellungen
Moritz Bunkus [Fri, 30 Oct 2020 12:24:18 +0000 (13:24 +0100)]
Kundenstammdatensuche: Filter auf ZUGFeRD-Einstellungen

3 years agospecial_chars: ø, Ø und λ ergänzt
Bernd Bleßmann [Thu, 29 Oct 2020 15:46:43 +0000 (16:46 +0100)]
special_chars: ø, Ø und λ ergänzt

3 years agoActionBar-Javascript: fix Typo
Bernd Bleßmann [Tue, 27 Oct 2020 13:48:15 +0000 (14:48 +0100)]
ActionBar-Javascript: fix Typo

3 years agoKreditorenbuchung: Maske: Fehlbetrag setzen: Typos im HTML
Bernd Bleßmann [Tue, 27 Oct 2020 10:47:34 +0000 (11:47 +0100)]
Kreditorenbuchung: Maske: Fehlbetrag setzen: Typos im HTML

3 years agoKreditorenbuchung: Maske: Bei Fehlbetrag setzen nach id des Felds suchen
Bernd Bleßmann [Sun, 25 Oct 2020 13:44:11 +0000 (14:44 +0100)]
Kreditorenbuchung: Maske: Bei Fehlbetrag setzen nach id des Felds suchen

Die js-Funktion zum Fehlbetrag-Setzen suchte nach dem Namen des letzten
paid_-Input-Elements ('^paid_'). Nun kam aber paid_project_ dazu (, weil der
Picker auch das name-Attribut setzt).
Deshalb für die Zahl-Betrags-Elemente Ids setzen und diese nutzen.

Ging mit "AP: Project picker in form"
commit affd886bff7af48273af3dad20ea0680398489a3
kaputt.

3 years agoTests zum Number-Helper
Sven Schöling [Sat, 13 Apr 2019 08:54:23 +0000 (10:54 +0200)]
Tests zum Number-Helper

aus odyn-ce cd783c51c4

3 years agoSL::Helper::Number - format_amount aus SL::Form ausgelagert
Sven Schöling [Tue, 27 Mar 2018 13:19:51 +0000 (15:19 +0200)]
SL::Helper::Number - format_amount aus SL::Form ausgelagert

- Neue Funktionen können direkt exportiert werden.
- Alte Funktionen sind in SL::Form für Kompatibilität auf die neuen
  geproxied.
- Tracing debug statements (enter_sub, leave_sub) entfernt
- Zusätzlich  noch eine neue Kategorie eingeführt: total, um Werte für
  acc_trans immer auf 2 Stellen zu runden.

3 years agoAP::search: ALL_PROJECTS muss nicht mehr geladen werden
Sven Schöling [Fri, 23 Oct 2020 13:32:00 +0000 (15:32 +0200)]
AP::search: ALL_PROJECTS muss nicht mehr geladen werden

3 years agoAP: Project picker in form
Sven Schöling [Fri, 23 Oct 2020 13:27:08 +0000 (15:27 +0200)]
AP: Project picker in form

3 years agomarei: fix eurosym/pdflatex issue
Marei (peiTeX) [Wed, 21 Oct 2020 13:52:53 +0000 (15:52 +0200)]
marei: fix eurosym/pdflatex issue

3 years agomarei: add note on tenant specific pagestyles
Marei (peiTeX) [Tue, 20 Oct 2020 17:32:35 +0000 (19:32 +0200)]
marei: add note on tenant specific pagestyles

3 years agomarei: kivitendo.sty minimal changes to be compiler independent
Marei (peiTeX) [Tue, 20 Oct 2020 17:28:14 +0000 (19:28 +0200)]
marei: kivitendo.sty minimal changes to be compiler independent

3 years agomarei: location to \@hangfrom
Marei (peiTeX) [Tue, 20 Oct 2020 17:18:04 +0000 (19:18 +0200)]
marei: location to \@hangfrom

3 years agomarei: expand colspec after calc_desc_col
Marei (peiTeX) [Tue, 13 Oct 2020 08:57:57 +0000 (10:57 +0200)]
marei: expand colspec after calc_desc_col

3 years agomarei: remove linebreaks
Marei (peiTeX) [Tue, 13 Oct 2020 07:46:04 +0000 (09:46 +0200)]
marei: remove linebreaks

3 years agomarei: move ident.tex behind fromlogo
Marei (peiTeX) [Tue, 13 Oct 2020 07:36:13 +0000 (09:36 +0200)]
marei: move ident.tex behind fromlogo

3 years agomarei: cleanup
Marei (peiTeX) [Tue, 29 Sep 2020 20:41:43 +0000 (22:41 +0200)]
marei: cleanup

3 years agomarei: abweichende Lieferadresse -> macro
Marei (peiTeX) [Tue, 29 Sep 2020 20:28:26 +0000 (22:28 +0200)]
marei: abweichende Lieferadresse -> macro

3 years agomarei: receipt = check
Marei (peiTeX) [Tue, 29 Sep 2020 20:27:53 +0000 (22:27 +0200)]
marei: receipt = check

3 years agomarei: add nofooter option
Marei (peiTeX) [Tue, 29 Sep 2020 20:16:04 +0000 (22:16 +0200)]
marei: add nofooter option

3 years agomarei: restructure pick_list
Marei (peiTeX) [Tue, 29 Sep 2020 20:15:38 +0000 (22:15 +0200)]
marei: restructure pick_list

3 years agomarei: restructure bin_list.tex
Marei (peiTeX) [Tue, 29 Sep 2020 19:43:55 +0000 (21:43 +0200)]
marei: restructure bin_list.tex

3 years agomarei: restructure check.tex
Marei (peiTeX) [Tue, 29 Sep 2020 18:50:09 +0000 (20:50 +0200)]
marei: restructure check.tex

3 years agomarei: cleanup
Marei (peiTeX) [Tue, 29 Sep 2020 18:47:46 +0000 (20:47 +0200)]
marei: cleanup

3 years agomarei: pass unknown options to scrletter
Marei (peiTeX) [Tue, 29 Sep 2020 18:46:56 +0000 (20:46 +0200)]
marei: pass unknown options to scrletter

3 years agomarei: update Readme
Marei (peiTeX) [Sun, 27 Sep 2020 21:08:14 +0000 (23:08 +0200)]
marei: update Readme

3 years agomarei: update Readme
Marei (peiTeX) [Sun, 27 Sep 2020 20:59:45 +0000 (22:59 +0200)]
marei: update Readme

3 years agomarei: customize pagestyle
Marei (peiTeX) [Sun, 27 Sep 2020 20:58:00 +0000 (22:58 +0200)]
marei: customize pagestyle

3 years agomarei: add example for fullpage background
Marei (peiTeX) [Sun, 27 Sep 2020 20:57:20 +0000 (22:57 +0200)]
marei: add example for fullpage background

3 years agomarei: ifkomascriptempty upate and fallback
Marei (peiTeX) [Sun, 27 Sep 2020 20:56:20 +0000 (22:56 +0200)]
marei: ifkomascriptempty upate and fallback

3 years agomarei: simplify insettings.tex file structure
Marei (peiTeX) [Sun, 27 Sep 2020 20:55:27 +0000 (22:55 +0200)]
marei: simplify insettings.tex file structure

3 years agomarei: cleanup scrlayers
Marei (peiTeX) [Sun, 27 Sep 2020 20:52:25 +0000 (22:52 +0200)]
marei: cleanup scrlayers

3 years agomarei: remove Briefkopf.png
Marei (peiTeX) [Sun, 27 Sep 2020 20:19:52 +0000 (22:19 +0200)]
marei: remove Briefkopf.png

3 years agomarei: remove obsolete nointerlineskip
Marei (peiTeX) [Sun, 27 Sep 2020 18:24:49 +0000 (20:24 +0200)]
marei: remove obsolete nointerlineskip

3 years agomarei: bugfix setup tabular macro parameters
Marei (peiTeX) [Sat, 26 Sep 2020 18:01:18 +0000 (20:01 +0200)]
marei: bugfix setup tabular macro parameters

3 years agomarei: user cofig for tables
Marei (peiTeX) [Fri, 25 Sep 2020 20:52:49 +0000 (22:52 +0200)]
marei: user cofig for tables

3 years agomarei: new koma-names + fallback for outdated versions
Marei (peiTeX) [Fri, 25 Sep 2020 19:35:43 +0000 (21:35 +0200)]
marei: new koma-names + fallback for outdated versions

3 years agomarei: switch to dtx generated files
Marei (peiTeX) [Fri, 25 Sep 2020 19:06:44 +0000 (21:06 +0200)]
marei: switch to dtx generated files

3 years agomarei: comment line endings
Marei (peiTeX) [Fri, 25 Sep 2020 16:21:18 +0000 (18:21 +0200)]
marei: comment line endings

3 years agomarei: zahlungserinnerungen -> SimpleTabular
Marei (peiTeX) [Fri, 25 Sep 2020 16:15:42 +0000 (18:15 +0200)]
marei: zahlungserinnerungen -> SimpleTabular

3 years agomarei: currency column mechanism for SimpleTabular
Marei (peiTeX) [Fri, 25 Sep 2020 16:10:23 +0000 (18:10 +0200)]
marei: currency column mechanism for SimpleTabular

3 years agomarei:remove unnecessary parbreak
Marei (peiTeX) [Fri, 25 Sep 2020 16:06:00 +0000 (18:06 +0200)]
marei:remove unnecessary parbreak

3 years agomarei: headline/colspec keys for SimpleTabular
Marei (peiTeX) [Fri, 25 Sep 2020 12:50:13 +0000 (14:50 +0200)]
marei: headline/colspec keys for SimpleTabular

3 years agomarei: Add error message if \ExtraDescription outside \FakeTable
Marei (peiTeX) [Fri, 25 Sep 2020 12:16:15 +0000 (14:16 +0200)]
marei: Add error message if \ExtraDescription outside \FakeTable

3 years agomarei: nopagebreak between between desc and extradescription
Marei (peiTeX) [Fri, 25 Sep 2020 11:14:00 +0000 (13:14 +0200)]
marei: nopagebreak between between desc and extradescription

3 years agomarei: longtable to PricingTabular
Marei (peiTeX) [Fri, 25 Sep 2020 11:11:51 +0000 (13:11 +0200)]
marei: longtable to PricingTabular