warnings: besseres sanitizing in Form::calculate_tax
Form::round_amount: nicht initialisierte Variable $places
4. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist
An einigen Stellen wird nach dem Speichern nicht neu gelesen,sondern die alten Forms-Variablen zum Aufbau der Webseite verwendet, z.B. "Auslagern".
Deshalb wird $form->lastmtime nun nach jedem Speichern aktualisiert.
GLN: Berücksichtigung in Belegmasken
js/switchmenuframe.js entfernt
seit dem letzten Layout rework ist das nicht mehr benutzt,also weg damit
Belege runden, und Rundungsdifferenzen auf Extrakonten buchen.
Form: round_amount precision support
Form: parse_html_template: AUTH_RIGHTS_ syntax entfernt
AUTH.assert im template benutzen bitte.
Form: parse_html_template: DEBUG_ syntax entfernt
Hat auf lx_office_config.debug.options getriggert. Undokumentiert undnicht genutzt -> raus damit.
Form: parse_html_template - myconfig_jsc syntax entfernt
Form: parse_html_template: myconfig. Syntax entfernt
Form: parse_html_template: myconfig_ syntax entfernt
Form: parse_html_template lobals analog zu Presenter::render
jetzt auch in Form verfügbar:
- AUTH- LOCALE- LXCONFIG- LXDEBUG- MYCONFIG
Form: parse_html_template - DEBUG handling entfernt
olles legacy zeug, weg damit
css: common vor main/menu einbinden
So kann man common styles in den Stylesheets überlagern.
Form->format_amount: Warnung über negativen repeat count vermeiden
Warnung erscheint, wenn bei Konstrukten wie »'str' x $anzahl« die$anzahl negativ ist.
round_amount: Anzahl Stellen nicht zu hoch werden lassen
format_amount - negative 0 vermeiden
Ist eine Zahl z.B. -0.002, und wird auf 2 Stellen gerundet, so wird erstdas Minuszeichen gemerkt, dann gerundet (0.00), und schießlich wird dasMinus wieder hinzugefügt, dadurch bekommt man -0.00. Mit diesem Patchwird das Minus-Zeichen entfernt wenn die gerundete Zahl genau 0 ergibt.
t8 für sinnvolle Lokalisierung (locales.pl) in mtime_ischanged
Ferner korrekten optionaler Fehlertext bei entsprechender Option ausgeben.
3. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist
Verbesserte Regex für API-Aufruf. Gorash Code-QS. Abfangen vonSQL-Injections auf API-Ebene (100%)
Übersetzungsbüro Richardson Rechtschreib-QS von Commits in den Standard ...
2. Überarbeitung Prüfen beim Speichern, ob Dokument geändert wurde.
API-Funktion minimale Sicherheitschecks auf Parameter.Häßliche If-Abfrage mosufiziertPOD ergänzt
Erste Überarbeitung "Prüfen beim Speichern, ob Dokument geändert wurde."
Prüfen beim Speichern, ob Dokument geändert wurde.
Allgemeine Funktion in Forms zum Lesen und Vergleichen der mtime
überall Form variable lastmtime da mtime mehrfach auftaucht
Conflicts: templates/webpages/ar/form_header.html templates/webpages/do/form_header.html
Zahlungsbedingungen: Variablen für BIC, IBAN, Mandats-ID, Mandatsunterschriftsdatum
Druck: Bei template-toolkit auch die globals setzen
Name für Attachment auch zurückliefern, wenn keine Belegnummer vorhanden ist.
Undefined chart bei taxkey 0 und 1
Nicht nur bei Taxkey 0 gibt es keine chart_id, auch bei taxkey 1.Abfrage nun umgestellt.
Layout: Inlinejavascripte mit ; trennen
wzToolTip durch jQuery ToolTipster ersetzt
wzToolTip hat ein uraltes, ist in der Benutzung ausgesprochenunkomfortabel und unflexibel und muss zwingend in jedem benutzendenTemplate manuell nach dem <body>-Tag eingebunden werden. Dadurch kannes z.B. nicht im Layout mit ausgegeben werden.
Zahlungsbedingungen: Flag »Fälligkeitsdatum automatisch berechnen«
Zahlungsbedingungen bei Lieferscheinen; veraltete Spalte »terms« entfernt
Dispatcher: Client DB Handles cachen.
Spart etwa ein Drittel an Requestoverhead, von 27ms auf 17ms.
Indirekte Objektnotation fixen
parse_amount: Bei amount undef sofort 0 zurückgeben.
Form::parse_amount: Parsen als Oktalzahlen verhindern
Brieffunktion erste Version
Verkaufsbriefe können jetzt auch mit LaTeX erstellt werden.Ferner gibt es eine Briefentwurfs-Funktion, die aussieht wie drafts, aberzumindestens auf einer eigenen Tabelle beruht. Zusätzlich wurden zwei neue Rechtegesetzt
get_lists: salesman-case analog zu employee case
mit Commit ca18e0478035f63 ging die Verkäuferauswahl im Verkaufsberichtkaputt, da durch den all_salesmen-Parameter der param-Wert ALL_EMPLOYEESnicht benutzt wurde, und die Verkäufer deshalb in all_salesmen statt in...
PartPicker: javascript direkt im P.part_picker adden.
Stylesheets: Aufräumaktion
- gemeinsame stylesheets aus den kivitendo/lx-office-erp Verzeichnissen genommen- README aktualisiert- rp/bwa nicht mehr hartcodiert in kivitendo laden
Bei Fehler LaTeX Tempfiles als UTF8 einlesen
Dadurch können Unicode-Zeichen, die in der .tex Datei Fehlerverursachen, dem Benutzer an der Oberfläche besser angezeigt werden.
Rundung bei Debitorenbuchung, Kreditorenbuchung und Dialogbuchung
Zwei neue Hilfsfunktionen für Form eingeführt die von ap/ar/gl genutztwerden:
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
Form::round_amount: Perls Wissen über Stringifizierung nutzen
Perl weiß am besten, wann eine nicht ganz exakte Fließkommazahleigentlich eine für Menschen sinnvoll lesbare Fließkommazahl ist (alsodass mit 143.19999999999998863132 eigentlich 143.2 gemeint ist, wenn ich...
Whitespace entfernt
round_amount: Perls Repräsentationsalgorithmus fürs exakte Runden nutzen
Als Erläuterung paste ich schlicht den relevanten Teil des Kommentars,der nun auch in der Funktion steht:
Trying to round with more precision first only shifts the problem to rarer...
Form->parse_template: notes nicht immer aus invoicenotes kopieren
Wenn ein Beleg über Rose-Model-Code zum Drucken vorbereitet wird, dannsteht in $form->{notes} bereits der richtige Wert, und denbelegspezifische Wert $form->{invoicenotes} gibt es gar nicht. Also auch...
Form->prepare_for_printing: output_*-Variablen als Fallback auf %myconfig-Werte setzen
Wenn für eine Sprache kein Ausgabeformat für Datum und/oder Zahlenfestgelegt ist, so muss hier der Wert der angemeldeten Benutzeringenommen werden, weil ansonsten die Werte falsch formatiert...
Steuerzonen ungültig machen
jede Steuerzone kann man unter "System->Steuerzonen->auf Steuerzone klicken" individuell auf ungültig (obsolete) setzen.
ungültig heißt:
Sortieren von Steuerzonen in Belegen
Die Sortierreihenfolge von Steuerzonen in Belegen wurde bisher nochnicht in den Belegen berücksichtigt.
round_amount: Fix für falsches Runden bestimmter Werte
Gewisse Werte wie z.B. 33,675 wurden bei 2 Stellen falsch gerundet,nämlich auf 33,67 anstelle von 33,68. Bei anderen Werten hingegenfunktionierte es (beispielsweise 149,175 @ 2 → 149,18).
Grund war, dass durch das Addieren von 0.5 wieder Fließkommaberechnung...
Druckvorbereitung: Lieferschein-Model mit richtigem Primärattribut laden
Das ging im Commit »Einkauf/Verkauf: Lieferadressenfelder nie ausStammdaten vorbelegen« kaputt.
2 Warnungen in den Tests beseitigen
Einkauf/Verkauf: Lieferadressenfelder nie aus Stammdaten vorbelegen
Das neue Verhalten ist wie folgt:
- Weder die shipto_id (die Drop-Down-Box in den Belegmasken) noch die individuellen shipto*-Felder werden weder beim Neuanlegen eines Beleges noch bei Wechsel des Kunden aus den Datenbanken belegt....
print_html_template auch mit scalarrefs als file aufrufbar gemacht
Ausserdem die Fehlermeldung bei nicht korrektem aufruf mit header angeben.
Form->error: confess anstelle von STDERR bei Fehlern von der Console aus benutzen
SL::Template: Optionen von den Contrllern zum eigentlichen Template-Modul durchleiten
jQuery UI fixes für CKEditor in Dialog
Debugcode entfernt
Template-Toolkit-Konfiguration: Mitgeben, dass Templates in UTF-8 encodiert sind
Damit ist die Verwendung von Nicht-ASCII-Zeichen direkt im HTML möglich.
SL::Form->prepare_for_printing: Variablen aus %::myconfig sowie output_*format zur Verfügung stellen
Dokumentenarchivierung unabhängig vom WebDAV-Feature
Neues Feld Firmensignatur in Mandantenkonfiguration
Seit der Umstellung auf die Mandantenfähigkeit gab es für einen Benutzernur eine einheitliche E-Mail Signatur in allen Mandanten. Dadurch konnteman keine firmenindividuellen Signaturen einsetzen. Ab jetzt kann man...
Fälligkeitsdatum auf Rechnungsdatum setzen, falls nichts weiter konfiguriert (#2440)Ist in io.pl auch schon so vorgesehen: print $form->ajax_response_header() . ($duedate || $invdate);Allerdings schmeißt die get_duedate-Funktion in Form.pm einen Fehler, weil keine...
Bugfix für 2275 Verkäuferinformationen im Druck kommen aus der Authdatenbankcloses #2275Hat leider einen kleinen "Rattenschwanz":a) Beim Löschen des Benutzer wird nur deleted auf true gesetzt, jetzt werden auchalle weiteren benutzereditierbaren Metadaten gespeichert, dafür ->...
Form: nicht mehr benötigte Funktionen update_{defaults,business} entfernen
Form->prepare_for_printing: template_meta zur Verfügung stellen
Behebt #2247.
SL::Form->get_lists für employees: Gelöschte nur auf Anfrage mitliefern
Behebt #2116.
Steuerfilterung für Debitoren- und Kreditorenbuchungen
Fixt #2346.
Globale Objekte auch ans Printsystem übergeben
Fix für #2382
Rechnung als neu verwenden: keine Fehlermeldung ausgeben
wenn keine Zahlungsbedingungen gesetzt sind.Als Fälligkeitsdatum wird das Rechnungsdatum gesetzt.fixt #2348
Keine Datenbankhandle aufmachen und dann nicht zumachen.
Teilfix für #2349
Form::parse_template: nur dann in WebDAV-Ordner kopieren, wenn Typ bekannt ist
Soll z.B. nicht für GuV oder BWA ziehen. Fixt #2352.
Form::parse_template: "Content-disposition: attachment"-Header nur ausgeben, wenn Attachmentname bekannt
Fixt #2351.
ClientJS: AJAX-Form-Submit mit jQuery-Form-Plugin
Wiederkehrende Rechnungen: nicht '_email' in Vorlagendateinamen hinzufügenn
In Form::prepare_for_printing wurde '_email' immer an den Dateinamenangehängt, sofern es ein solches Template gibt (alsoz.B. 'invoice_email.tex') -- egal, wohin letztlich ausgegeben werden...
jqModal-Dialoge durch jQuery-UI-Dialoge ersetzen
tax_id auslesen
Statt die tax_id aus einem Join auf die Tabelle taxkeys zu bekommen,wird nun direkt von der acc_trans auf die Steuer zugegriffen. Diesgeschieht an verschiedenen Stellen:
Die tax_id wird jetzt in Kreditoren-/Debitoren- und Dialogbuchungen...
frame_header.css auch für JavaScript im Layout angeben, und nicht direkt in Form
Fixt #2329.
DBUpgrade2: verhindern, dass $::form->get_standard_dbh eine zweite Verbindung öffnet
Ansonsten sind Deadlocks absolut möglich.
Form::get_duedate: SL::DB::PaymentTerm::calc_date nutzen
Part Picker
Temporäre Datei zum richtigen Zeitpunkt in WebDAV-Ordner kopieren
Beim Drucken immer zuerst in temporäre Datei speichern
Datei vor Kopieren schließen
Template-Parameter "conf_xyz" durch "INSTANCE_CONF.get_xyz" ersetzt
Ansonsten haben wir ein Henne/Ei-Problem: Form::parse_html_templatewill die Variablen "conf_xyz" anhand der Werte in $::instance_confsetzen, ruft also dort die Funktionen auf. Wurde aber das dazugehörige...
InstanceConfiguration durch Verwendung von AUTOLOAD vereinfacht
Trac 2300 / 2301 zweiter Versuch;-)
Alle ISO-8859-15-codierten Files nach UTF-8 encodieren
Unterstützung für andere Datenbankencodings als Unicode/UTF-8 entfernt
Merge branch 'clients'
address businessnumber company co_ustid duns taxnumber sepa_creditor_id aus Defaults-Tabelle holen
'templates' nicht aus %::myconfig, sondern aus Defaults-Tabelle holen
Syntax-Fehler in SL/Form.pm
Hier gab es einen kleinen Syntax-Fehler, der sich allerdings nichtauf die Funktionalität ausgewirkt hat.
Form::info() auf Templates umgestellt und Auto-Redirect-Target angepasst
Versionsanzeige im Adminlogin nach forçiertem Logout fixen
SL::Form->dbconnect*: Connect-Settings nicht aus %::myconfig, sondern SL::DBConnect::connect überlassen
Buchungen in unrealistischen Zukunfts-Intervallen vermeiden s.a. Trac 1897Hinzufügen eines neuen defaults "max_future_booking_interval".Entsprechend editierbar wie closedto
Fehler bei Auswahllistenbegrenzung
Wenn die Anzahl gültiger Kunden mit der Zahl für die Auswahllisten-begrenzung übereinstimmt, wurden bisher alle Kunden von kivitendoals ungültig erkannt. Ist nun behoben.