Bernd Bleßmann [Fri, 31 Jan 2020 12:21:22 +0000 (13:21 +0100)]
SL::Form: get_lists: Unterstützung für shipto entfernt
get_lists für shipto wird nirgends mehr verwendet, soweit ich das sehe.
Zudem hat _get_shipto module nicht berücksichtigt und da customer und ar
ids aus eigenen Sequenzen bekommen und somit zwei dieser ids für die
verschiedenen Tabellen gleich sein können, konnte es passieren, dass für einen
Kunden eine individuelle Lieferadresse aus einer Rechnung (für einen anderen
Kunden) zurückgelieferrt wird.
Bernd Bleßmann [Fri, 31 Jan 2020 11:52:57 +0000 (12:52 +0100)]
Individuelle Lieferadresse hinzufügen: cp_gender nicht vergessen
shiptocp_gender darf bei der Prüfung, ob die Lieferadresse hinzugefügt werden
soll (also nicht leer ist), nicht berücksichtigt werden, da shiptocp_gender nie
leer ist.
Allerdings muss shiptocp_gender sehr wohl beim INSERT oder UPDATE
berücksichtig werden.
Moritz Bunkus [Mon, 3 Jun 2019 12:23:55 +0000 (14:23 +0200)]
Unterstützung für JSON-encodierte POST-Daten
Mit diesem Patch werden nun alle POST-Daten in $::request->post_data
gespeichert. Wie bisher auch werden Daten mit Content-Type
»multipart/form-data« zusätzlich in $::form gespeichert.
Will man aber JSON-encodierte Daten hochladen, so werden die
ausschließlich in $::request->post_data gespeichert, nicht in
$::form. Hintergrund ist, dass JSON-Dokumente auch aus Arrays bestehen
können, $::form aber halt immer ein Hash ist. Weiterhin ist es
sinnvoll, die Namensräume der übertragenen Parameter sauber
voneinander zu trennen.
Bernd Bleßmann [Mon, 27 Jan 2020 12:54:48 +0000 (13:54 +0100)]
S:DATEV:CSV: Längenbegrenzung bei buchungstext wieder rein
Flog mit
"Fixt #348 DatevExport kommt mit bestimmten Zeichen im Buchungstext nicht klar"
(commit 324726acd30b8992854a2d59fec2a50265613eef) raus.
War sicher ein Versehen.
Bernd Bleßmann [Mon, 27 Jan 2020 14:05:18 +0000 (15:05 +0100)]
S:DATEV:CSV: Kein Auffüllen des Arrays mehr
Durch die Änderungen zum Festschreibungskennzeichen
("DATEV-Export Festschreibungskennzeichen für jede Buchung einzel setzen"
commit e4edba0587fc8224bd69047fe57dbf435b776aa6) wurde das Array ohnehin auf
120 Einträge erweitert, so dass die Funktion zum Auffüllen auf 116 Einträge
weg kann.
Zudem wird dadurch eine Warnung vermieden ("Negative repeat count does nothing").
Bernd Bleßmann [Fri, 24 Jan 2020 17:29:24 +0000 (18:29 +0100)]
DATEV-Tests nach Erweiterung f. Festschreibungskennzeichen gefixed
Die Tests gingen mit
"DATEV-Export Festschreibungskennzeichen für jede Buchung einzel setzen"
(commit e4edba0587fc8224bd69047fe57dbf435b776aa6) kaputt.
Das Array hat jetzt mehr Einträge und das Festschreibunungskennzeichen ist an.
Moritz Bunkus [Thu, 18 Aug 2016 07:56:24 +0000 (09:56 +0200)]
Rechnungsmassenerstellen: keine DB-Transaktion um convert_to_invoice()
convert_to_invoice() macht selber intern bereits eine Transaktion auf;
daher ist die außen unnötig.
Weiterhin waren die Parameter merkwürdig übergeben:
• Für eine On-The-Fly-Unterscheidung für »diese Parameter« vs. »keine
Parameter« benötigt man keine sub; das geht einfach mit einem ternären
Operator.
• »Keine Parameter« drückt man nicht durch »undef« aus, sondern durch
die leere Liste »()«. Wird »undef« als einziger Parameter übergeben,
so wird in der Funktion de Facto das hier gemacht:
my %hash = (undef);
und das ergibt eine Warnung, dass eine Liste mit ungerader Anzahl von
Elementen in ein Hash umgewandelt werden soll.
Bernd Bleßmann [Mon, 7 Oct 2019 13:30:11 +0000 (15:30 +0200)]
Login: Callback setzen und berücksichtigen, wenn abgemeldet
Wenn ein Ziel innerhalb des Programms aufgerufen wird (z.B. aus einem
Link, den man zugschickt bekommt) und man nicht eingeloggt ist, so
wird man zu dem Ziel weitergeleitet, nachdem man sich eingeloggt hat.
Bernd Bleßmann [Fri, 6 Dec 2019 09:11:46 +0000 (10:11 +0100)]
Individuelle Lieferadresse hinzufügen: cp_gender nicht auf leer prüfen …
…, denn das ist nie leer.
Und sonst werden individuelle Lieferadressen angelegt, obwohl keine
Eingaben gemacht wurden.
Hierzu sollte evtl. noch ein DB-Upgrade-Skript erstellt werden, welches
die leeren shiptos entfernt. Das ist allerdings nicht ganz einfach (siehe
auch Ticket).
Jan Büren [Fri, 6 Dec 2019 08:44:59 +0000 (09:44 +0100)]
False Positive bei Überprüfung von Lieferant und Lieferaten-Rechnungsnummer verhindern
Falls eine Buchung noch am selben Tag verändert wird,
kommt es fälschlicherweise zu der Aussage, dass schon eine
Rechnung mit dieser Rechnungsnummer zum Lieferanten erfasst worden sei.
Entsprechend geändert
Andreas Rudin [Tue, 3 Dec 2019 22:06:43 +0000 (23:06 +0100)]
parse_amount ersetzt durch kivi.parse_amount, " statt ' bei Zahlenformat
1) Unnoetig doppelte Funktion gelöscht
2) [% MYCONFIG.numberformat %] darf nicht in einfache Hochkommas gesetzt
werden, da dies beim Zahlenformat 1'000.00 zu Fehlern führt.
Bernd Bleßmann [Tue, 26 Nov 2019 09:18:26 +0000 (10:18 +0100)]
WebDav: Fehler beim Kopieren anzeigen / Verzeichnis zurück wechseln (2)
Der erste commit 108753a78b203dbe0ccbe6438cc16c8df33c04d3 hat das Drucken
ohne Fehler beim Ins-Webdav-Kopieren kaputt gemacht. Probleme waren:
- ein return vergessen
- chdir zurück auch ohne Fehler
Bernd Bleßmann [Fri, 22 Nov 2019 21:41:18 +0000 (22:41 +0100)]
WebDav: Fehler beim Kopieren anzeigen / Verzeichnis zurück wechseln
Wenn in SL::Form->parse_template bei Common::copy_file_to_webdav_folder etwas
schief ging, wurde dort ein "die" oder "Form->error" aufgerufen. Allderdings
wird in parse_template vorher das Arbeitsverzeichnis gewechselt, so dass die
web-templates zum Anzeigen des Fehlers nicht mehr gefunden werden.
Dies ist nur ein schlechter Fix. In #96 (redmine) sind einige bessere Lösungen
erwähnt, die aber etwas mehr Aufwand und vor allem Testen verlangen.
Bernd Bleßmann [Sat, 16 Nov 2019 18:01:09 +0000 (19:01 +0100)]
SL::Mailer: Debug-Meldungen rausgeworfen. mail5 führte zu einem Fehler
Die Debug-Meldung mit "mail5" griff auf $attachment->{id} zu, aber
attatchment kann auch ein Scalar sein. Dann ergab sich hier ein Laufzeitfehler,
der zwar durch ein eval abgefangen wurde, aber das Verschicken der Mail
verhinderte. Als E-Mail-Status bekam man dann "no send attempt made".
Wer den Mailer debuggen möchte, möge dann nochmal eigene Statements
einfügen.
Jan Büren [Thu, 31 Oct 2019 13:32:03 +0000 (14:32 +0100)]
SetNumberRange: Background-Job um Jahreszahlen im Nummernkreis zu erhöhen
Nimmt die vierstellige Zahl des nächsten Jahres und multipliziert
diese mit 1 oder einem anderen Faktor. Präfixe und Länge des
Nummernkreis bleibt erhalten. Bspw.:
Bernd Bleßmann [Tue, 29 Oct 2019 16:24:56 +0000 (17:24 +0100)]
auth master rights: Skript-Abhängigkeiten und Positionen reparieren
Durch falsche Abhängikeiten können bei Updates bestimmte Rechte feste
Positionen größer 1000 zugewiesen bekommen, bevor das Upgrade-Skript zum
Platzschaffen (multiplizieren mit 100) durchlaufen wird.
Diese werden dann auch mit 100 multiplizert und landen ganz am Ende, was nicht
gewollt ist.
Dieser commit behebt sowohl das Problem bei neuen Updates
(v.A. ältere Versionen sind betroffen) und versucht die falschen Positionen
zu korrigieren.
G. Richardson [Wed, 9 Oct 2019 08:12:08 +0000 (10:12 +0200)]
Jahresabschluß - GLTransaction->post und Tests
Der YearEnd Controller nutzt nun GLTransaction->post, damit muß man die
acc_trans-Einträge nicht mehr von Hand zusammenbauen, und die Buchungen
passieren automatisch als Transaktion, die Buchungen werden validiert
und es wird ein Historieneintrag erstellt.
G. Richardson [Tue, 8 Oct 2019 13:50:19 +0000 (15:50 +0200)]
GLTransaction - Dialogbuchungen per Rose erstellen
neue Methoden in GLTransaction zum Erstellen von Dialogbuchungen
* post
* validate
* add_chart_booking
An einigen Stellen im Code werden Dialogbuchungen per Hand erstellt,
inkl. Steuern, das soll hiermit vereinheitlicht und vereinfacht
werden.
Acc_trans-Einträge können nun mit wenigen Parametern zu Dialogbuchungen
hinzugefügt werden, die Parameter orientieren sich dabei an den Werten,
wie sie auch an der Oberfläche eingegeben werden (Konto, Soll/Haben,
Steuer). Dabei werden einige der Werte aus der GLTransaction
automatisch übernommen.
Beim Buchen wird eine neue Transaktion gestartet, die Buchung wird
validiert und es wird ein Historieneintrag erstellt.