Einkauf/Verkauf: Eingabe der Vorgangsbezeichnung optional erzwingen
Wird über eine Option in der Mandantenkonfiguration eingeschaltet.
Auftragsmaske: JavaScript-Checks für Speichern aktiver per. Rechnungen nach kivi.SalesPurchase verschoben
Lieferscheinmaske: JavaScript-Checks für Lagermenge nach kivi.SalesPurchase verschoben
DB-Schema-Anpassungen für »Spaltentyp Text anstelle von varchar() in diversen Tabellen«
Projektliste: kein Filterkriterium für Status == alle
…und nicht »nie benutzt«
Kundenauswahl bei Summen-/Saldenliste
Vor E-Mail-Versand prüfen, ob Empfänger+Betreff+Body vorhanden
Angebote/Aufträge drucken: auch das Order-Objekt ausliefern
Im Druck auch den Typ von Artikeln mit ausliefern
special_chars: U+00A0 NO-BREAK SPACE in latex erkennen und korrekt rendern.
Das Zeichen passiert oft, wenn Artikelbeschreibungen von Webseiten vonLieferanten copy&pasted wird. Webseiten padden ihre Daten gerne mit dasdann als U+00A0 gerendert wird, und landet so in der Datenbank.
SL::DB::Invoice: Verknüpfung auf die Buchungsobjekte
print_html_template auch mit scalarrefs als file aufrufbar gemacht
Ausserdem die Fehlermeldung bei nicht korrektem aufruf mit header angeben.
print_form optional ohne redirect
Form->error: confess anstelle von STDERR bei Fehlern von der Console aus benutzen
Locales: fehlende Übersetzungen aus CRM-Menü-Datei ergänzt
locales.pl: Task-Server-Fehlschlags-E-Mail-Template ignorieren
Spaltentyp Text anstelle von varchar() in diversen Tabellen
console: shortcuts für die häufigsten Belegtypen, nützlich beim debuggen
Term::ReadLine::Perl::Bind in Console nicht nutzen
Fixt zwar unter RXVT, macht aber unter anderen Emulatoren die Bindingsziemlich kaputt.
Task-Server: vor jedem Job mehr Variablen re-initialisieren
Besonders wichtig: $::request, da sie zum Cachen genutzt wird und dieGarantie vom Cache ist, dass er nach jedem »Request« (beim Task-Server:nach jedem Job) geleert wird.
SL::DB::Part,Helper::PriceTaxCalculator: agressiveres Caching
Damit wird für ziemlich jeden Objekttyp nur noch ein einziges Queryabgesetzt.
SL::DB::Object: generische Methoden zum Cachen von RDBO-Instanzen
SL::DB::Part: Cachen von Objekten gefixt Teil 2
get_active_taxkey hat vorher ganz einfach nicht gecachet.
SL::DB::Part: Cachen von Objekten gefixt
Über Steuerzonen erhaltene Informationen müssen pro Part-ID gecachetwerden, weil diese natürlich Artikel-spezifisch sind.
Locale: Warnungen
CVars: spelling: dependant -> dependent (wir haben uns irgendwann mal auf AE geeinigt)
PeriodicInvoices: korrekter Fallback, wenn kein email Template gesetzt ist.
PeriodicInvoices: Rechnugnen nicht einen Tag zu früh erstellen, das gibt massig Probleme
SL::DB::CustomVariable::{value,value_as_text}: Verwendung von $::request->cache()
Partpicker: Benutzerdefinierte Variablen mitschicken
SL::DB::Unit::base_factor: Verwendung von $::request->cache()
SL::DB::{Chart,Part}: Verwendung von $::request->cache()
SL::Request: Funktion zum Cachen von Objekten für Dauer des Requests
PriceTaxCalculator: chart->taxkey lookup vorberechnen
PartPicker: keine AJAJ-Requests nach Fat-Data ohne item.id schicken
LXDebug: Zeitstempel mit Millisekunden-Auflösung ausgeben
SL::Helper::CreatePDF: gewisse Variablen nicht mit Variablen überschreiben lassen
Tab Persistenz in allen masken ausser customer_vendor
War beim Umschreiben auf jquery-ui kaputtgegangen, weil der div.tabwidget eineid braucht. CustomerVendor hatte das beim neuschreiben schon korrekt mit idversehen.
SL::Controller::Base->send_file: neuer Parameter unlink zum Löschen nach Senden
Dispatcher: Requests auf controller.pl ohne action auf Loginseite redirecten
Ist hilfreich, wenn man aus der Browserhistory einen Link wiehttp://…/kivitendo/controller.pl aufruft. Bisher wurde nur eine böseFehlerseite angezeigt.
RecordLinks: frühzeitig abbrechen, wenn keine links gefunden wurden.
Hintergrundjobhistorie: Status für Fehlschlag richtig benennen
CVars: Einträge beim Löschen dazugehöriger Belege automatisch löschen
CVars: beim Autovivifien gültigen Wert für selects forçieren
Kunden-/Lieferantenbericht: auch im Nicht-Union-Fall nach Typ sortieren können.
Kunden-/Lieferantenbericht: Zahlungsbegingungen anzeigen können.
CustomerVendor-Picker: keine ungültigen, wenn $::form->{obsolete} nicht gesetzt ist
Template-Pfad vor regex quoten.
zu commit 6348bffb3ca90327f8dd042bfd0a89802b269b79(Template-Pfad aus Pfad-Namen anderer Tex-Dateien richtig entfernen.)
CustomVariable: typo - from_kivi -> from_kivitendo
Rose-Model-Generator: Foreign-Key-Namens-Mapping auf Datenbank beziehen
Rose-Model-Generator: --db für nur eine Datenbank bei --all
Siehe auch Commit »Rose-Model-Generator: prinzipielle Unterstützungverschiedener Datenbanken«.
Rose-Model-Generator: auf Duplikate in Blacklist/Paketnamenshash prüfen
RDBO Invoice->new_from: Fälligkeitsdatum und Zahlungsbedingungen gefixt
1. Konvertierung von Order-Objekten: Hier wurde das Fälligkeitsdatum zwar richtig übernommen, nicht aber die Zahlungsbedingungen.
2. Konvertierung von DeliveryOrder-Objekten: Lieferscheine haben gar...
RDBO Customer, Vendor: Alias payment_terms auf payment
…für API-Analogie mit Order, DeliveryOrder, Invoice.
RDBO {Invoice,DeliveryOrder}->new_from Attribute nachträglich zuweisen
Macht man die Vermischung ->new(%args, %attributes), so ist dieReihenfolge, wann welche aus %args und welche aus %attributes genommenwerden, aufgrund von Perls beliebiger Hash-Reihenfolge nicht...
Template-Pfad aus Pfad-Namen anderer Tex-Dateien richtig entfernen.
Behebt #2483.
RecordLinks: Anzeige etwas verbessert
Task server: Fehlgeschlagene Jobs optional per E-Mail melden
RDBO BackgroundJob(History): Refactoring von Status-Strings
Test-BackgroundJob: Möglichkeiten, das Ergebnis zu steuern
Rose-Attr-Helfer: _as_timestamp
…mit verschiedenen Präzisionsstufen und Tests!
Locale::parse_date_to_object: Unterstützung für volle Timestamps & explizite Formate
…und dafür Tests.
Locale::format_date_object: explizites Setzen der Formate; Millisekunden als neues Format
…und dazu Tests.
Verknüpfte Belege: Standardmässig rekursive Belege finden
SL::DB::Helper::LinkedRecords: rekursive Suche in linked_records
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
Rose-Model-Generator: prinzipielle Unterstützung verschiedener Datenbanken
Um Models für andere Datenbanken zu erstellen, müssen dann noch SL::DB,SL::DB::Helper::Mappings und SL::DB::Object entsprechend angepasstwerden, damit die Verbindung richtig aufgebaut werden.
LinkedRecords: bidi Verhalten den docs angepasst und direction Parameter optional gemacht
warnings: uninitialized in eq
Mal wieder ein paar lexicals in post if.
t/structure/globals: Lexikalische Variablen sind schwer exportierbar.
t/test.pl: Neuere Tests kommen sich bei multicore in die Quere. Vorerst ausschalten
t/test.pl: File::Find macht nur dann lstat wenn follow oder follow_fast als option gesetzt ist
LinkedRecords: Test und Doku Update
CsvImport: Feldlängen aus den Metadaten auslesen, nicht fest codieren.
Dispatcher: Pro-Request-Initialisierung in eigene Sub verschoben
Weiterhin optionale Initialisierung von Client und User in besagter Sub.Erleichert die Verwendung die Initialisierung vom Dispatcher in eigenenScripten (z.B. der console oder rose_auto_generate_models.pl, auch wenn...
Unbekannte config values beim Speichern d. Benutzereinstellungen nicht löschen
scripts/dbupgrade2_tool.pl: bei --create --type pl auch package stub anlegen
Modul List::UtilsBy in Abhängigkeiten und als Fallback aufgenommen
$::request auch in dbupgrade2_tool initialisieren
Lange Datenbankfelder bei bestimmten Lieferantenfeldern
Analog zu Commit 72ad92fd die Feldlänge bei bestimmten Datenbankfeldererhöht (vorher varchar, jetzt text)account_number bank_code ustid name contact
Pflichtenhefte: Speichern der Grundeinstellungen via Kontextmenü gefixt
ClientJS: Controller-Instanz zum Rendern auch bei ->new setzen können
CustomVariables: Verwendung mit RDBO als Writer implementiert
CVars: RDBO-basiertes Render-Template nach webpages/common verschoben
CsvImport Waren: Preisupdate auch bei Erzeugnissen u. Dienstleistungen ermöglichen.
Zusätzlich beim Preisupdate prüfen, ob vorhandene Artikel von einem anderen Typals angegeben sind, falls in der CSV-Datei angegeben.
Problem war, dass Artikelnummern jetzt über Waren, Dienstleistungen und...
CsvImport Waren: Code-Vereinfachung
CsvImport Waren: test_run/import in check_existing nicht unterschiedlich behandeln.
Das funktionierte im Standard wg. der falschen Benennung ('test' vs. 'test_run')ohnehin nicht und bei richtiger Benennung gab es auch noch Probleme.
CsvImport Waren: Konsistenz: Fußnote statt 'siehe unten' in der Hilfe.
CsvImport: Der Parameter für den Testlauf heißt 'test', nicht 'test_run'.
CustomVariable-RDBO-Helfer: Dokumentation aktualisiert
CustomVariable-RDBO-Helfer: Konfigurationen sortiert auslesen
Bisher war es Zufall, dass die Konfigurationen in der richtigenReihenfolge von der Datenbank zurück kamen. Dadurch, wie das Umsortierenimplementiert ist, werden die Einträge in der richtigen Reihenfolge in...
RDBO: Manager-Klasse für Vendor
Focusposition nach Erneuern wählbar gemacht
POD Syntaxfehler
L: Parameterextraktion dreier Funktionen gefixt
Template übergibt Hash-Parameter als Hash-Ref, nicht direkt als Hash.
Pflichtenheft-HTML-DB-Upgrade: keine falsche Op beim String-Sortieren
SL::Auth: Überflüssige Zeichen entfernt
Bankkonten einen Namen geben
Damit kann man seinen Bankkonten einfache Namen geben, wie z.B."Tagegeld", damit man bei der Auswahl nicht immer genau auf dieKontonummer achten muß.
Bei der Bankkontenauswahl in Dropdowns ist die Beschriftung jetzt imFormat:...
Locales neu gebaut