G. Richardson [Fri, 17 Feb 2017 14:29:22 +0000 (15:29 +0100)]
Testfall Kosmetik (Alignment)
G. Richardson [Fri, 17 Feb 2017 14:28:49 +0000 (15:28 +0100)]
Typos in Doku (Dev)
Martin Helmling martin.helmling@octosoft.eu [Fri, 17 Feb 2017 08:59:24 +0000 (09:59 +0100)]
DB Transaktionen - Array Context funktioniert nicht
Innerhalb des eval{} Blockes ist für wantarray ein neuer Context,
in diesem Falle ist wantarray hier nicht definiert.
Deshalb muss dies per Variable in den eval-Block übergeben werden
Martin Helmling martin.helmling@octosoft.eu [Tue, 14 Feb 2017 19:10:49 +0000 (20:10 +0100)]
Geierlein: Abschalten der Steuernummer nur wenn Feature "ustva" eingeschaltet ist.
Alte Abfrage in der Mandantenkonfig falls keine Ustva ausgewählt,
z.B per Defaultmanager swiss"
Bernd Bleßmann [Mon, 13 Feb 2017 18:25:47 +0000 (19:25 +0100)]
CsvImport: Bearbeiter aus Front-End setzen, wenn nicht angegeben.
Wenn keine employee_id in der CSV-Datei angegeben ist, dann den Benutzer, der
den Import gestartet hat als, Bearbeiter setzen. Dieser wird in den Daten des
Hintergrundjobs gespeichert.
Falls hier nichts hinterlegt ist, dann den Benutzer aus dem Login setzen. Das
ist derjenige Benutzer, unter dem der Task-Server läuft.
Sven Schöling [Mon, 13 Feb 2017 16:43:18 +0000 (17:43 +0100)]
kivi.Part.js: Optionen rekursiv mergen
Sven Schöling [Mon, 13 Feb 2017 16:23:05 +0000 (17:23 +0100)]
Model-Presenter Bindung mit Proxyobjekten
Sven Schöling [Mon, 13 Feb 2017 15:25:17 +0000 (16:25 +0100)]
Part: doku update
Sven Schöling [Mon, 13 Feb 2017 15:24:54 +0000 (16:24 +0100)]
kivi/Part.js: commit_none hook korrekt verdrahten
Sven Schöling [Mon, 13 Feb 2017 10:35:13 +0000 (11:35 +0100)]
Part: part picker commit hooks umbenannt
Sven Schöling [Mon, 13 Feb 2017 10:33:46 +0000 (11:33 +0100)]
kivi.Part.js: on_enter_match_* umbenannt in commit_*
Sven Schöling [Fri, 10 Feb 2017 14:33:11 +0000 (15:33 +0100)]
Part: exact_match robuster mit localized $::form
Behebt Bugs mit vergessenen Filtern wie unit_obj.convertible_unit
Sven Schöling [Fri, 10 Feb 2017 12:58:40 +0000 (13:58 +0100)]
Part: Nach einfügen von Zeile den Partpicker clearen
Sven Schöling [Fri, 10 Feb 2017 12:58:17 +0000 (13:58 +0100)]
kivi.Part.js: clear Methode für Partpicker
Sven Schöling [Fri, 10 Feb 2017 12:57:28 +0000 (13:57 +0100)]
kivi.Part.js: im PICKED state auf enter/tab den commit hook auslösen
Sven Schöling [Fri, 10 Feb 2017 12:25:46 +0000 (13:25 +0100)]
Part: multipicker verwenden
Sven Schöling [Fri, 10 Feb 2017 12:25:13 +0000 (13:25 +0100)]
PartPicker: Multipicker als separate popupklasse
Sven Schöling [Fri, 10 Feb 2017 12:23:35 +0000 (13:23 +0100)]
kivi.Part.js: real_id wird nicht mehr benötigt
Sven Schöling [Fri, 10 Feb 2017 12:21:41 +0000 (13:21 +0100)]
kivi.Part.js: run_action als wrapper um functions und strings
Sven Schöling [Wed, 8 Feb 2017 15:04:42 +0000 (16:04 +0100)]
kivi.Part.js: Datenübergabe Picker<->Presenter auf data umgestellt
Ist in Summe kompakter und einfacher erweiterbar.
Sven Schöling [Tue, 7 Feb 2017 09:50:10 +0000 (10:50 +0100)]
kivi.Part.js: keydown ausgelagert in eigenen handler
Sven Schöling [Mon, 6 Feb 2017 16:45:24 +0000 (17:45 +0100)]
kivi.Part.js: PartPicker von closure auf prototype style umgeschrieben
War notwendig, damit das Objekt sich selbst an andere Objekte weitrgeben
kann. Vorher musste es dafür eine anonyme Closure über die eigenen
Funktionen machen, die extrem schwer verständlich war.
Nachteil dafür jetzt, man kann keine Methoden mehr ohne closure als
callback verwenden und alles ist voll mit this.
Sven Schöling [Mon, 6 Feb 2017 15:30:03 +0000 (16:30 +0100)]
kivi.Part.js: PickerPopup: bei Enter nicht timeout abwarten
Sven Schöling [Mon, 6 Feb 2017 15:29:40 +0000 (16:29 +0100)]
kivi.Part.js: paginate aus Picker gezogen
Sven Schöling [Mon, 6 Feb 2017 14:36:30 +0000 (15:36 +0100)]
kivi.Part.js: PickerPopup auf prototype style umgestellt
Sven Schöling [Mon, 6 Feb 2017 14:32:26 +0000 (15:32 +0100)]
kivi.Part.js: Part Picker Popup in ein separates widget verschoben
Sven Schöling [Mon, 6 Feb 2017 14:30:26 +0000 (15:30 +0100)]
kivi.Part.js: KEY konstanten aus Picker verschoben.
die brauche ich gleich in mehreren Objekten.
Sven Schöling [Mon, 6 Feb 2017 12:07:03 +0000 (13:07 +0100)]
kivi.Part.js: init routine angelegt
Sven Schöling [Mon, 6 Feb 2017 12:06:35 +0000 (13:06 +0100)]
kivi.Part.js: Formatierung
Sven Schöling [Mon, 6 Feb 2017 12:05:52 +0000 (13:05 +0100)]
kivi.Part.js: PartPicker: key code für UP eingefügt
Sven Schöling [Thu, 2 Feb 2017 10:28:16 +0000 (11:28 +0100)]
Partpicker: fat_set_item mit neuem Part-Controller gefixt
Der alte Part-Controller erwartete, dass die Part-ID als $::form->{id}
übergeben wird. Der neue hingegen nutzt $::form->{part}->{id}.
Sven Schöling [Thu, 2 Feb 2017 10:15:01 +0000 (11:15 +0100)]
kivi.js + kivi.Part.js: reinit_widgets verschoben
Sven Schöling [Thu, 2 Feb 2017 09:48:53 +0000 (10:48 +0100)]
PartPicker: Cursor down öffnet jetzt immer das autocomplete Menü
Sven Schöling [Thu, 2 Feb 2017 09:48:29 +0000 (10:48 +0100)]
PartPicker: enter hooks überlagerbar gemacht
Sven Schöling [Mon, 13 Feb 2017 15:28:28 +0000 (16:28 +0100)]
PartPicker von autocomplete_part.js nach kivi.Part.js verschoben
Sven Schöling [Wed, 1 Feb 2017 14:01:56 +0000 (15:01 +0100)]
kivi.Part.js: jslint und use strict
Moritz Bunkus [Mon, 13 Feb 2017 10:45:05 +0000 (11:45 +0100)]
record_links.t: nach Test aufräumen
Moritz Bunkus [Mon, 13 Feb 2017 10:32:18 +0000 (11:32 +0100)]
sales_order_with_periodic_invoices_config.t: nach Test aufräumen
Moritz Bunkus [Mon, 13 Feb 2017 10:24:44 +0000 (11:24 +0100)]
File-Controller: Warnungen wegen undefinierter Werte vermeiden
Warnungen traten bei t/file/filesystem.t auf.
Jan Büren [Mon, 13 Feb 2017 08:57:59 +0000 (09:57 +0100)]
WebDAV Pfad-Name im Dialog geändert
Referenz ist ein ungünstiges Freitext-Feld, um WebDAV Pfade
eindeutig anzulegen. Transaktions-, bzw. die Buchungsnummer
im Buchungsjournal ist hier eindeutig.
Jan Büren [Sat, 11 Feb 2017 15:28:25 +0000 (16:28 +0100)]
Kontoauszug verbuchen Link-Farbe grün einheitlich gesetzt
Martin Helmling martin.helmling@octosoft.eu [Sun, 12 Feb 2017 09:41:55 +0000 (10:41 +0100)]
Kontoauszug verbuchen: Lieferantengutschrift buchen
Nun wird eine negativen Kreditorenbuchung (Lieferantengutschrift) richtig verbucht.
t/bank/bank_transactions.t um einen Test erweitert
und Stdout des Controllers (HTML) in String umgelenkt.
Martin Helmling martin.helmling@octosoft.eu [Sun, 12 Feb 2017 09:33:20 +0000 (10:33 +0100)]
Kontoauszug verbuchen: Banktransaktionen mit Fehlern nicht zählen
Die OK Anzeige der Anzahl gebuchter Transaktionen ohne fehlerhafte Buchungen
Martin Helmling martin.helmling@octosoft.eu [Sun, 12 Feb 2017 09:04:04 +0000 (10:04 +0100)]
Kontoauszug verbuchen: DB-Rollback nicht zusätzlich als Fehler melden
Bei einer negativen Kreditorenbuchung (Lieferantengutschrift)
wird nun nicht mehr
"do_transaction() failed - Died at SL/Controller/BankTransaction.pm line 733."
gemeldet, sondern der Fehler an der (nicht)verbuchten Rechnung angezeigt:
"Gesendete Zahlungen können nur mit Einkaufsrechnungen und Verkaufsgutschriften verbucht werden."
Peter Schulgin [Tue, 17 Nov 2015 13:04:43 +0000 (14:04 +0100)]
Kontoauszug verbuchen: Sonderzeichenbehandlung
Sonderzeichen beim Vergleich Verwendungszweck - Kunde/Lieferant escapen
Martin Helmling martin.helmling@octosoft.eu [Sat, 11 Feb 2017 10:07:56 +0000 (11:07 +0100)]
t/file/filesystem.t robuster
Moritz Bunkus [Fri, 10 Feb 2017 16:19:44 +0000 (17:19 +0100)]
Tests: t/structure/common_errors.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 16:16:43 +0000 (17:16 +0100)]
Tests: t/structure/no_lexicals_in_postif.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 16:11:06 +0000 (17:11 +0100)]
Tests: t/structure/no_indirect_object_notation.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 16:07:53 +0000 (17:07 +0100)]
Tests: t/003safesys.t parallelisiert
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 16:05:29 +0000 (17:05 +0100)]
Filesystem tests nun ohne anderen Output
Controller Downloaddaten werden umgelenkt und anschließend geprüft.
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 16:04:25 +0000 (17:04 +0100)]
Fehlerbehandlung in SL/File.pm vereinfacht
Moritz Bunkus [Fri, 10 Feb 2017 15:48:30 +0000 (16:48 +0100)]
Dokumentation: neue Perl-Modul-Abhängigkeiten für Entwickler dokumentiert
Moritz Bunkus [Fri, 10 Feb 2017 15:48:14 +0000 (16:48 +0100)]
Tests: 001compile.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 15:11:54 +0000 (16:11 +0100)]
CSV-Artikel-Import-Controller: Warnung wegen Vergleich mit undefiniert vermeiden
Trat bei Tests auf (genauer: t/controllers/csvimport/parts.t).
Moritz Bunkus [Fri, 10 Feb 2017 15:09:13 +0000 (16:09 +0100)]
Tests: $::form nur über Helfermethode Support::TestSetup::create_new_form anlege
Diese Helfermethode erstellt und konfiguriert auch gleich das
Template-Objekt mit dem Pfad zum Test-eigenen
Template-Cache-Verzeichnis.
Moritz Bunkus [Fri, 10 Feb 2017 14:47:18 +0000 (15:47 +0100)]
Bankauszug verbuchen: Gutschrifts-Fall über Aufruf der richtigen Funktion erkennen
»type« bezieht sich nur auf die Spalte »type«, in der nicht zwischen
Einkauf und Verkauf unterschieden wird.
Moritz Bunkus [Fri, 10 Feb 2017 14:38:37 +0000 (15:38 +0100)]
Testwarnung: doppeltes »my $ap_chart« vermeiden
Moritz Bunkus [Fri, 10 Feb 2017 14:34:07 +0000 (15:34 +0100)]
SL::Mailer: Header-Felder nicht zwei mal MIME-encoden
Das Modul Email::MIME kümmert sich bereits um das richtige MIME-Encoding
der Header. Daher darf es vorher nicht gemacht werden.
Moritz Bunkus [Fri, 10 Feb 2017 14:26:51 +0000 (15:26 +0100)]
Tests: Template-Objekt in Form für Test-Cache-Verzeichnis anlegen
Dient dafür, Dateizugriffsprobleme wegen Berechtigungen zu vermeiden:
»users/templates-cache« wird normalerweise vom Webserveruser erzeugt und
beschrieben, die darin liegenden Dateien haben mode 0600. Tests werden
hingegen als normale User ausgeführt und haben damit nicht mal
Leserechte auf die Dateien in »users/templates-cache«.
Das Template-Objekt wird direkt in $::form abgelegt, wodurch dann auch
reguläre Routinen wie SL::Presenter::Base->render ins richtige
Verzeichnis schreiben.
Damit müssen auch keine Render-Tests mehr übersprungen werden, falls
keine Schreibrechte auf das Haupt-Cache-Verzeichnis
»users/templates-cache« besteht.
Moritz Bunkus [Fri, 10 Feb 2017 14:06:34 +0000 (15:06 +0100)]
SL::Auth: Kosmetik (Alignment)
Moritz Bunkus [Fri, 10 Feb 2017 14:05:21 +0000 (15:05 +0100)]
Auth-DB-Upgrades alle nach SL::DBUpgrade2::Auth verschieben
Das verhindert eine Warnung wegen Umdefinition der Funktion
»SL::DBUpgrade2::clients::run« während der Tests, weil es das Script
»clients.pl« sowohl für die Auth-DB als auch für die Haupt-DB gibt.
Moritz Bunkus [Fri, 10 Feb 2017 14:02:34 +0000 (15:02 +0100)]
Auth-DB-Spalten-Infos nur lesen, wenn DB-Verbindung vorhanden
»reset« wird während des Request-Shutdowns ausgeführt. Falls aber noch
gar keine Auth-DB existiert (neue Installation z.B.), so wird versucht,
eine Verbindung dahin aufzubauen, was zu einer Fehlermeldung führt —
selbst, wenn man gerade versucht, besagte Auth-DB anzulegen.
Moritz Bunkus [Fri, 10 Feb 2017 13:25:38 +0000 (14:25 +0100)]
Test with_transaction.t: deutsche und englische Fehlermeldungen erkennen
DB-Cluster sind bei uns in Deutschland normalerweise mit englischer oder
mit deutscher Locale angelegt. Daher sollte ein Test mit beiden
Sprachvarianten genügen.
Moritz Bunkus [Fri, 10 Feb 2017 13:19:42 +0000 (14:19 +0100)]
Revert "Tests: Datenbank-Meldungen immer in English zurückgeben"
Dies revertet
e38b0b21c1e924cb0b1a21f6e2fe5db7d3258f70, da der
Datenbankuser Superadmin sein muss, um lc_messages setzen zu
können.
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 13:17:15 +0000 (14:17 +0100)]
MIME:* aus dem Installcheck und Doku wieder rausgenommen
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 13:04:51 +0000 (14:04 +0100)]
Für t/file/filesystem.t Anpassungen im Debug und Fehlermeldung
Nun läuft der Test wieder
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 10:32:04 +0000 (11:32 +0100)]
E-Mail versenden wieder mit Email::MIME
Einschränkung: *.eml werden zwar mitverschickt,
aber tauchen beim Empfänger nicht als *eml auf sondern als einzelne Anhänge
Moritz Bunkus [Fri, 10 Feb 2017 12:54:11 +0000 (13:54 +0100)]
Testfehler: keine indirekte Objektnotation nutzen
Moritz Bunkus [Fri, 10 Feb 2017 12:42:31 +0000 (13:42 +0100)]
t/file/filesystem.t: keinen festen Namen für temporäres Verzeichnis nutzen
Weiterhin muss das Verzeichnis angelegt werden. Der Test darf sich nicht
darauf verlassen, dass er einfach durchläuft.
Moritz Bunkus [Fri, 10 Feb 2017 12:35:36 +0000 (13:35 +0100)]
Test-Run-Script ohne Harness
Wenn man mal nur die rohe Ausgabe eines Tests sehen will.
Moritz Bunkus [Fri, 10 Feb 2017 12:30:33 +0000 (13:30 +0100)]
SL::DB: Exception nur dann mit ->isa/->rethrow behandeln, wenn geblesstes Objekt
ref($error) gilt auch für z.B. geworfene Arrayreferenzen, welche aber
nicht geblesst sind, wodurch man auf ihnen keine Funktionen aufrufen kann.
Moritz Bunkus [Fri, 10 Feb 2017 12:26:07 +0000 (13:26 +0100)]
Tests: Datenbank-Meldungen immer in English zurückgeben
Die Sprache, in der z.B. Fehlermeldungen von der Datenbank geliefert
werden, wird beim Erstellen des PostgreSQL-Clusters festgelegt. Dies ist
bei vielen Standardinstallationen Deutsch, da meinst nur
»--locale=de_DE.UTF-8« gesagt wird, und damit auch LC_MESSAGES gesetzt
wird.
Für Tests ist das ungünstig, weil sich diese darauf verlassen können
müssen, dass die Fehlermeldungen immer in einer bestimmten Sprache
sind. Unsere Tests vergleichen Fehlermeldungen mit den erwarteten
Mustern, und diese sind in Englisch.
Daher die Nachrichten-Locale Datenbankverbindungen von sowohl Auth- als
auch Hauptdatenbank am Anfang der Tests auf Englisch setzen.
Moritz Bunkus [Fri, 10 Feb 2017 12:20:36 +0000 (13:20 +0100)]
Testfehler: typische Schreibfehler gefixt
Moritz Bunkus [Fri, 10 Feb 2017 12:18:06 +0000 (13:18 +0100)]
Testfehler: Tabs entfernt
Moritz Bunkus [Fri, 10 Feb 2017 12:13:52 +0000 (13:13 +0100)]
Template-Syntax-Test: eigenes Compile-Cache-Verzeichnis für Tests
CACHE_SIZE=0 sollte eigentlich dafür sorgen, dass das Template-Modul die
compilierten Templates nicht cachet. Das funktioniert aber wohl
nicht.
Daher ein eigenes Cache-Verzeichnis dafür definieren, um
Dateizugriffsprobleme wegen Berechtigungen zu vermeiden:
»users/templates-cache« wird normalerweise vom Webserveruser erzeugt und
beschrieben, die darin liegenden Dateien haben mode 0600. Tests werden
hingegen als normale User ausgeführt und haben damit nicht mal
Leserechte auf die Dateien in »users/templates-cache«.
Moritz Bunkus [Fri, 10 Feb 2017 12:12:52 +0000 (13:12 +0100)]
t/Support/Files: auf strict umgestellt
Moritz Bunkus [Fri, 10 Feb 2017 11:51:46 +0000 (12:51 +0100)]
fehlende Locales ergänzt
Moritz Bunkus [Fri, 10 Feb 2017 10:21:45 +0000 (11:21 +0100)]
Bankauszug verbuchen: Umstellung auf Belegvorlagen & Filter-Fixes
Moritz Bunkus [Fri, 10 Feb 2017 10:16:25 +0000 (11:16 +0100)]
Belegvorlagen: Form-Parameter beim Laden über Request vorbelegen können
Moritz Bunkus [Fri, 10 Feb 2017 09:28:14 +0000 (10:28 +0100)]
Belegvorlagen: employee_id bei Umwandlung aus Drafts beibehalten
Moritz Bunkus [Fri, 10 Feb 2017 09:13:48 +0000 (10:13 +0100)]
fehlende Locales ergänzt
Moritz Bunkus [Wed, 8 Feb 2017 16:29:57 +0000 (17:29 +0100)]
Kontoauszug verbuchen: Beleg/Memo bei »Alle Buchungen« angeben können
Moritz Bunkus [Wed, 8 Feb 2017 09:18:19 +0000 (10:18 +0100)]
Kontoauszug verbuchen: »Beleg«/»Memo« bei Vorschlägen angeben können
Moritz Bunkus [Tue, 7 Feb 2017 13:24:40 +0000 (14:24 +0100)]
Kontoauszug verbuchen: bei Vorschlägen Rechnungsnummer in Verwendungszweck highlighten
Moritz Bunkus [Wed, 8 Feb 2017 13:59:32 +0000 (14:59 +0100)]
Presenter: mehr Funktionen von L in Tag-Presenter verschieben
Moritz Bunkus [Mon, 6 Feb 2017 10:48:52 +0000 (11:48 +0100)]
kivi.parse_amount: bei ungültigen mathematischen Ausdrücken 0 zurückliefern
Ansonsten würde eine Exception geworfen, was ein anderes Verhalten als
bei der Perl-Variante wäre.
Moritz Bunkus [Mon, 6 Feb 2017 10:46:31 +0000 (11:46 +0100)]
kivi.parse_amount: bei ungültigen Zeichen 0 zurückgeben
Es werden nun nur noch mathematische Zeichen erlaubt.
Moritz Bunkus [Mon, 6 Feb 2017 10:40:18 +0000 (11:40 +0100)]
js parse_/format_amount: Tests für Swiss-Zahlenformat & für Nicht-Oktal-Parsen
G. Richardson [Mon, 6 Feb 2017 09:12:09 +0000 (10:12 +0100)]
FiBu Schnellsuche - GL Habensumme entfernt, ist schon in oneline_summary
G. Richardson [Mon, 6 Feb 2017 09:12:39 +0000 (10:12 +0100)]
oneline_summary mit Rechnungsbeträgen
Bei Belegen wird der Bruttobetrag angezeigt.
Bei Dialogbuchungen wird die Summe aller Haben-Buchungen als Betrag
angezeigt.
G. Richardson [Sun, 5 Feb 2017 10:55:45 +0000 (11:55 +0100)]
FiBu Schnellsuche repariert
war in
5b981bb6a5c kaputt gegangen.
G. Richardson [Sat, 4 Feb 2017 10:04:47 +0000 (11:04 +0100)]
Typo in Übersetuzng
G. Richardson [Sat, 4 Feb 2017 10:04:16 +0000 (11:04 +0100)]
Part Csv Import - Preisgruppenpreisimport testen
G. Richardson [Thu, 2 Feb 2017 14:18:03 +0000 (15:18 +0100)]
name change: validator statt validater
G. Richardson [Thu, 2 Feb 2017 14:17:38 +0000 (15:17 +0100)]
Typos in Doku
G. Richardson [Fri, 20 Jan 2017 10:08:06 +0000 (11:08 +0100)]
console - login explizit in myconfig setzen, für Testdatenbank
Wenn man sich für die Testdatenbank einen Mandanten anlegt um sich an
der Oberfläche die generierten Testdaten anzuschauen, und die
Datenerstellung dort auch per console vorbereitet:
scripts/console --client testdb --login unittests
Ansonsten klappt SL::DB::Manager::Employee->current->id nicht.
Moritz Bunkus [Mon, 6 Feb 2017 08:12:55 +0000 (09:12 +0100)]
Mailer: nur Adress-Anteil als Absender im SMTP-Dialog verwenden & nicht encodieren
Der SMTP-Dialog nutzt beim MAIL FROM nur den Adress-Anteil einer
E-Mail-Adresse:
MAIL FROM:<user@the.doma.in>
Daher sollte auch nur dieser Anteil übergeben werden, auch wenn in
$self->{from} potenziell eine komplette Adresse steht.
Da dieser Adress-Anteil ausschließlich aus ASCII-Zeichen besteht, muss
er dann auch nicht encodiert werden. Das macht die Strings im Log
leserlicher, und vermutlich sind MIME-Q-/-B-Encodings auch im
SMTP-Standard eigentlich nicht erlaubt (siehe RFC 5321).
Moritz Bunkus [Thu, 2 Feb 2017 13:23:50 +0000 (14:23 +0100)]
SL::Mailer: Kosmetik für bessere Lesbarkeit (Alignment, Leerzeichen, Einrückung)
Martin Helmling martin.helmling@octosoft.eu [Fri, 3 Feb 2017 18:23:01 +0000 (19:23 +0100)]
Banktransaction: Kontoauszug verbuchen: Sonderfall für "credit_notes"
"credit_notes" haben negativen Betrag,
diese werden nun gesondert behandelt.
Ersetzt commit
fbcd5580