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 auf120 Einträge erweitert, so dass die Funktion zum Auffüllen auf 116 Einträge...
S:DATEV:CSV: Kosmetik: Leerzeile in Array-Definition entfernt
S:D:Manager:ReconciliationLink: nicht initialisierter Wert: Warnungen vermeiden
Durch Tests getriggert, konkret: durch t/bank/bank_transactions.t
Presenter Mapping für Dialogbuchungen repariert
War bei Umstellung vergessen worden.
add_{ap|ar}_amount_row berücksichtigen gldate
Ansonsten konnte gldate in ar/ap und acc_trans abweichen, wenn gldateexplizit gesetzt war und nicht dem aktuellen Tag entsprach.
Dev Record - create_{ar|ap|gl}_transaction mit assign_attributes
Damit kann man auch Felder setzen, die nicht explizit abgefragt undgeprüft werden, z.B. itime manuell setzen. Wird für manche Testsbenötigt.
Dev Record : create_{ar|ap|gl}_transaction mit gldate
Damit man Belege für Tests mit abweichendem Erfassungsdatum erstellenkann.
Typo in typos
Das war mir einen eigenen Commit wert ^^
Typos in DB.pm POD
DATEV-Export Festschreibungskennzeichen für jede Buchung einzel setzen
Kundenbericht: richtig nach Kreditlimit, UStID und Amtsgericht sortieren
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...
Login: blacklisting bei Callback für Redirect zum Ziel implementiert
Login: Callback nur bauen bei GET-Request und wenn action vorhanden
Login: Callback setzen und berücksichtigen, wenn abgemeldet
Wenn ein Ziel innerhalb des Programms aufgerufen wird (z.B. aus einemLink, den man zugschickt bekommt) und man nicht eingeloggt ist, sowird man zu dem Ziel weitergeleitet, nachdem man sich eingeloggt hat.
LoginScreen: Request beenden, wenn Benutzer nicht authentifiziert wird
Individuelle Lieferadresse hinzufügen: cp_gender nicht auf leer prüfen …
…, denn das ist nie leer.
Und sonst werden individuelle Lieferadressen angelegt, obwohl keineEingaben gemacht wurden.
Hierzu sollte evtl. noch ein DB-Upgrade-Skript erstellt werden, welches...
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 eineRechnung mit dieser Rechnungsnummer zum Lieferanten erfasst worden sei....
Massenerstellen von Rechnungen aus LS: Filtern nach Kundentyp
Reconciliation: Veto, kein invoice_amount nachträglich setzen.
auch nicht für Vorschläge
WebDav: Fehler beim Kopieren anzeigen / Verzeichnis zurück wechseln (2)
Der erste commit 108753a78b203dbe0ccbe6438cc16c8df33c04d3 hat das Druckenohne Fehler beim Ins-Webdav-Kopieren kaputt gemacht. Probleme waren:- ein return vergessen- chdir zurück auch ohne Fehler...
Auth: fehlerhafte JSON-Requests mit JSON und richtigem HTTP-Response-Code beantworten
WebDav: Fehler beim Kopieren anzeigen / Verzeichnis zurück wechseln
Wenn in SL::Form->parse_template bei Common::copy_file_to_webdav_folder etwasschief ging, wurde dort ein "die" oder "Form->error" aufgerufen. Allderdingswird in parse_template vorher das Arbeitsverzeichnis gewechselt, so dass die...
Massendruck: Attachment-/Archiv-Dateiname in Zielsprache
Massendruck: Kopieren ins Webdav in den Helper verschoben.
Damit erzeugen alle Druckvorgänge hierüber Kopien im Webdav
Massendruck Lieferscheine/Rechnungen: doc_storage_enabled importieren
Auftrags-Controller: Prüfung beim Holen der Kunden-/Lieferanten-Art.-Nr, …
… ob Option eingeschaltet ist und ob Kunde/Lieferant schon gewähltwurde. Sonst gibt es einen Fehler beim Workflow von VK in EK und umgekehrt.
Part: typo
(cherry picked from commit 8ce71088e51f6bce25c8406ff65f72fad3c15d1a)
S:D:Invoice->new_from: Auftragsdatum aus Auftrag bei Erzeugen aus Lieferschein
Einkaufsrechnung -> Suche. Fälligkeitsdatum als Suchfilter hinzugefügt
SL::Mailer: Debug-Meldungen rausgeworfen. mail5 führte zu einem Fehler
Die Debug-Meldung mit "mail5" griff auf $attachment->{id} zu, aberattatchment kann auch ein Scalar sein. Dann ergab sich hier ein Laufzeitfehler,der zwar durch ein eval abgefangen wurde, aber das Verschicken der Mail...
InstallationCheck: Exception::Class: Minimal-Version 1.44
Sonst gibt es nur ungenaue Rose-Fehlermeldungen (nur "generic exception")und der Test t/db_helper/with_transaction.t läuft nicht durch.
Behebt #407 (redmine).
SetNumberRange: Validitätsprüfung auf Benutzereingabe (data) im Job
SetNumberRange: Background-Job um Jahreszahlen im Nummernkreis zu erhöhen
Nimmt die vierstellige Zahl des nächsten Jahres und multipliziertdiese mit 1 oder einem anderen Faktor. Präfixe und Länge desNummernkreis bleibt erhalten. Bspw.:
Letzte Rechnungsnummer:...
zu #406 nicht zuviele ids (email journal) als ar.ids verwenden
Bugfix #406 Fehlerhafte abzurechnende Werte, falls Gutschriften höher als Auftragswert
Bugfix (teil) #406 abzurechnender Betrag bei Aufträgen manchmal falsch falls Gutschriften
S.a. Kommentar redmine
CSV-Import Debitorenbuchungen: maximale Betragsabweichung (Einstellungen) parsen
S:C:Letter: Vergessene Presenter-Umstellung für ein select_tag
Form->prepare_for_printing: Einheiten übersetzen
OE.pm: Form-Werte nicht direkt in SQL-Queries schreiben
Auftrags-Controller: Positions-Update: auch Artikelnummern updaten
Auftrags-Controller: Spracheinstellungen aus Druck-/E-Mail-Dialog speichern.
Rechte zum Bearbeiten von Preisen in Belgen getrennt nach VK/EK anwenden
Recht zum Einsehen von Einkaufsdokumenten aller Mitarbeiter anwenden
Trennung VK/EK in Berichten
Auftrags-Controller: PDF-Download per ajax-send_file
Controller::send_file: rendern bei ajax abschalten können
Damit kann man weitere client_js-Kommandos absetzen.
Controller::send_file schickt jetzt über client_js wenn ajax
(cherry picked from commit 0f16bc87b4804cf05cefb5ac1514c7f565cfbfbd)
kivi.js: kivi.save_file und client_js binding
(cherry picked from commit f68ea953a6a563172f12991d2ca3f9f17ad89dd2)
Controller::redirect_to: url_for nicht doppelt aufrufen, wenn ajax
Macht zwar nichts, muss aber auch nicht.
CustomerVendor POD korrigiert
Jahresabschluß - GLTransaction->post und Tests
Der YearEnd Controller nutzt nun GLTransaction->post, damit muß man dieacc_trans-Einträge nicht mehr von Hand zusammenbauen, und die Buchungenpassieren automatisch als Transaktion, die Buchungen werden validiert...
GLTransaction - Dialogbuchungen per Rose erstellen
An einigen Stellen im Code werden Dialogbuchungen per Hand erstellt,inkl. Steuern, das soll hiermit vereinheitlicht und vereinfacht...
SL Dev Record - neue Methoden für ar/gl/ap Transaktionen
Neue Methoden, um für Tests schnell Debitorenbuchungen,Kreditorenbuchungen und Dialogbuchungen zu erstellen
ReportGenerator: set_options: auch bei csv_export nur Standardwerte beibehalten
ReportGenerator: set_options: "for" statt "map", da Rückgabewert nicht verwendet
S:C:YearEndTransactions: Warnung vermeiden: Variablen waren schon deklariert
S:C:YearEndTransactions: Kosmetik: Tab entfernt
Auftrags-Controller: self an _row-Template übergeben …
… und nicht einzelne Variablen aus self, die dort abgefragt werden.
Auftrags-Controller: Benutzereinstellung: Positions-Update aus Artikel-Stamm
Auftrags-Controller: Positions-Update aus Artikel-Stamm
Vorhandene Steuer speichern: richitge Anzahl von Bind-Variablen angeben
fix zu commit 543d78225ec609e9f67ecb1544e135ca88149234"Spalte taxnumber aus Tabelle tax entfernt"
Jahresabschluß - YearEndTransactions neu implementiert
Der alte Jahresabschluß hatte eine Reihe von Schwächen, z.B. wurde nichtzwischen Bestands- und Erfolgskonten unterschieden, und es wurde auchkein Gewinn- oder Verlustvortrag gemacht. Der Anwender mußte selber...
AccountingPeriod - Methode an get_balance_starting_date übergeben
Für den Fall, daß man die Methode zur Ermittlung des Startdatums nichtaus der Mandantenkonfiguration nehmen möchte, sondern diese selbervorgeben, gibt es nun einen neuen Parameter, um die Methode selber zu...
balance_startdate_method_options nach AccountingPeriod Helper
verlagert, wird auch für YearEndTransactions benötigt.
CSV-Import-Bericht: beim Löschen nur verwaiste Profile löschen
Unter gewissen Umständen kann es passieren, dass es mehrere`csv_import_reports` mit derselben `profile_id` gibt. In so einem Falldarf nur dann versucht werden, die Einträge aus `csv_import_profiles`...
Bericht VK-Rg/Debitorenbuchungen: nach Abteilungen sortieren können
Bericht EK-Rg/Kreditorenbuchungen: Abteilungen anzeigen können
Bericht Angebote/Aufträge: Abteilungen anzeigen können
Preisgruppenpreise als Preisliste bei Kunden anzeigen
Wenn dem Kunden eine Preisgruppe zugeordnet ist, werden die Preise inden Kundenstammdaten als Preisliste (eigener Tab) angezeigt.
BankTransaction: keine Leerzeichen am Ende vom Verwendungszweck einfügen
Wenn man mehrere Felder einfach mit `join(' ', @felder)` zusammenfügt,so entstehen nun mal ein Haufen Leerzeichen, auch wenn alle Felderselber leer sind. Das führt konkret beim Import von Banktransaktionen...
BankTransaction: Vorschlagslistencode aus action_list eigene Funktion verlagert
BankTransaction: Sortierungscode vereinfacht
Rose: MetaSetups bzgl. Fließkommazahlen erneuert
bank_transaction_acc_trans: überflüssige Spalte »id« entfernt
Primärschlüssel sind zwei andere Spalten, und die Präsenz dieserNicht-Primärschlüssel-Spalte zusammen mit Typ »serial« macht Probleme,weil Rose kein Default für solche Spalten kennt.
Kundenartikelnummern in Vorlagen verwenden können
Einsortierung in das template array wie Lieferantenartikelnummern alscustomer_make und customer_model.
Standard-Druckvorlagen Angebot/Auftrag/Lieferschein/Rechnung für Verkaufexemplarisch angepasst.
WH: Warnungen wegen nicht initialisierten Werten vermeiden
Durch Tests getriggert, konkret: durch t/wh/transfer.t
SL::DB::Unit: Warnungen wegen nicht initialisierten Werten vermeiden
AttrSorted-Helfer: Warnungen wegen nicht initialisierten Werten vermeiden
Durch Tests getriggert, konkret: durch t/controllers/csvimport/parts.t
SL::Auth: Warnungen wegen nicht initialisierten Werten vermeiden
Durch Tests getriggert, konkret: durch t/controllers/base/render.t
Lagerstandsbericht: Listenpreis als Basis f. Bestandswert auswählbar
Lagerstandsbericht: Listenpreis anzeigbar machen
SelfTest: Geschwindigkeitssteigerung durch »NOT EXISTS« anstelle von »NOT IN«
Nicht ganz frische PostgreSQL-Versionen (mindestens bis 9.6 inklusive)optimieren »NOT IN«-mit-Subquery nicht automatisch und müssen daherfür jede Zeile des äußeren Selects einen linearen Scan auf die...
Rose-Models anhand des tatsächlichen Schemas aktualisiert
Auth: Unterstützung für multiple Authentifizierungsbackends
Über den Parameter "module" kann man nun multiple Backends angeben,die nacheinander versucht werden, bis ein Erfolg gemeldet wird oderdie Liste durchlaufen wurde.
Zusätzlich kann man LDAP-Module mehrfach angeben. Damit...
Auth: mini_error gefixt
$::auth->mini_error wird potenziell zu einem Zeitpunkt aufgerufen, andem es die Instanzen von $::form und $::request noch nicht gibt. Dahier wirklich nur die Bare-Bones-Ausgabe der Fehlermeldung benötigtwird, machen wir für den Fall manuell ein CGI-Objekt auf.
LDAP-Auth: Konfiguration über Konstruktur übergeben
Ist eine Vorarbeit dafür, das LDAP-Modul mit unterschiedlichenKonfigurationen benutzen zu können.
LDAP-Auth: enter_sub/leave_sub entfernt
Task-Server auf unterschiedlichen Maschinen laufen lassen können
Jede Task-Server-Instanz und jeder Hintergrundjob haben nun ein neuesAttribute »node_id«. Darüber kann gesteuert werden, dass bestimmteJobs nur von einer bestimmten Instanz ausgeführt werden....
Neuer Workflow Lieferantenauftrag->Kreditorenbuchung
Für jedes Aufwandskonto der Positionen im Lieferantenauftrag wird eineZeile in der Kreditorenbuchung erstellt. Gebucht wird standardmäßigauf des entsprechende Aufwandskonto. In der Mandantenkonfiguration...
Auftrags-Controller: mime-type füer odt
Payment Helper - POD repariert
Mahnungen erzeugen - nach Abteilung filtern und anzeigen
Neuer index auf inventory über itime und parts_id
Part Controller - neuer Tab mit Lagerinformationen
SL::DB::Part - get_simple_stock_sql: Mengen pro Bin
und Summen über Lager und Gesamtmenge.
Order Controller POD - Typos
Dev Part - Codeeinrückungen
Inventory stock_in - select_default_bin Modus
wird in der Form / URL ein select_default_bin=1 übergeben, wird derStandardlagerplatz des Artikels vorausgewählt (sofern vorhanden).
Ansonsten passiert das Aktualisieren von Lager/Lagerplatz nur, wenn sichder Artikel nach Laden der Seite ändert.
InstanceConfiguration.pm - Typos und Style