GenericTranslations.pm und debug-code entfernt
Ansprechpartner: cp_greeting durch cp_gender ersetzt
contacts->cp_greeting, was normalerweise fuer Frau/Herr benutzt wird,wird durch cp_gender (m/f) ersetzt, was den Vorteil hat, dass man jenach beim Kunden definierter Sprache verschiedene Anreden generieren und...
Bugfix: _recode_recursively hat das Form Objekt nicht als Hash erkannt.
Symptom: Langtexte werden nicht korrekt kodiert.
Beim Versenden von Emails mit PDFs aus OpenDocument den MIME-Typen und Dateinamen richtig setzen.
_store_value() aus Kundenprojekt übernommen.
1. Dokumentation der Funktion2. Möglichkeit, 'variablenname[]' für einfache Arrays zu benutzen3. Umstellung der anderen Funktionen, die _store_value() benutzen, auf Objekt-Aufrufsyntax.
Versionsnummer aktualisiert.
Versionspdate auf 2.6.0 RC 1
Überraschend einfacher Fix für Numemrnkreisproblem in Kunden/Lieferantentypen.
Wenn ein Nummernkreis eines Kunden/Lieferantentyps leer ist, wird jetzt auf den STandardkreis ausgewichen.
Fix für Bug: 906
Einführung einer ID-Spalte in acc_trans
Die Benutzung der von PostgreSQL zur Verfügung gestelltenSpalte "oid" hat ihre Tücken. Über diese wird in Lx-Office dieReihenfolge der Einträge in acc_trans geregelt. Wird aber einUPDATE-SQL-Query auf acc_trans ausgeführt, so kann es (anscheinend...
Revision 4076 hat bei den Funktionen quote und unquote dafür gesorgt, dass nur "1" zurückgegeben wird, weil die lxdebug-Anweisungen vor dem impliziten Return standen. Fix für Bug 964.
Debugs in SL/Form.pm eingefuegt fuer konsistentes Tracen
Wir haben gut 'gesprintet' und gehen auf die naechste beta
Beim Dialogbuchen die Kontensalden zu den jeweils ausgewählten Konten anzeigen. Fix für Bug 548.
Die Historiensuchmaske nicht mehr per JavaScript abschicken und dem <form>-Element den Action-Parameter mitgeben. Damit funktioniert nun auch das Abschicken per Enter-Taste, und der Request wird vom Browser nicht mehr zwei mal geschickt.
Variablen zwischenspeichern und wiederherstellen, sofern sie existieren, auch wenn sie undefiniert sind. Bugfix für diesen Fall: Angebot mit einem Kunden, der beim Kunden eine Sprache hinterlegt hat. Angebot hat explizit keine Sprache ausgewählt und wurde gespeichert. Wenn man das Angebot aufruft, wurde ohne diese Änderung nun wieder die beim Kunden hinterlegte Sprache ausgewählt....
Die Berechnung des Fälligkeitsdatums anhand des momentan eingetragenen Rechnungsdatums durchführen, und nicht anhand des Serverdatums.
Fix für Bug 927.
Beim Verschicken von Dokumenten per EMail die MIME-Header richtig setzen:
1. MIME-Header anhand des Dateinamens setzen; weniger anhand von $form->{format}, weil das nicht immer gesetzt ist und nicht immer zu einem richtigen MIME-Typ führt (so ist "format" z.B. "opendocument", und der MIME-Typ lautet aber "vnd.oasis.opendocument.text")....
Kosmetik.
Die JavaScript-Funktion "encodeURIComponent()" benutzt immer UTF-8 als Zeichensatz, egal, was die HTTP-Header oder das <form>-Element sagen. Also muss der Input bei Erhalt in den Zeichensatz der Installation konvertiert werden.
Bug 905.
check_currency sicherer gemacht und eine aufrufschwäche in do.pl beseitigt.
Whitespace Purge
Strict in 4 Dateien wieder deaktiviert.
Idee war gut, aber einige interne Mechaniken verhindern, dass strict so einfach eingesetzt werden kann.Diese Mechaniken, unter anderem die beliebte Array/Scalar Schizophrenie, lassen sich nicht ohne weiteres fixen,...
Bei Kreditorenbuchungen die Umsatzsteuer-Steuerschlüssel und bei Debitorenbuchungen die Vorsteuer-Steuerschlüssel nicht anzeigen.
Mehr Perlcode strict gemacht.
Die JavaScript-Funktion heißt jetzt "focus()".
Form einmal durchgecheckt. Einige kaputte Sachen deaktiviert, und das ganze mit strict durchgecheckt.
Konzeptioneller Fehler. Da es mehr als ein Form-Objekt geben kann (in diesem Falle beim Wiederherstellen von $form mittels restore_form()), darf das Standard-Datenbankhandle nicht geschlossen werden, wenn ein Form-Objekt vernichtet wird, sondern erst, wenn das Programm beendet wird.
Update des DHTML-Tab-Scripts auf Version 2.2.
Wir haben nun die erste Beta von Version 2.6.0.
Bei Druckvorschau einer Rechnung den Namen der herunterladbaren Datei nicht auf "is.pdf" belassen, sondern auf "Rechnung_(Druckvorschau).pdf" setzen.
Weitere Unterfunktionen tracen lassen.
Bei $form->parse_template() nur dann die ganzen Variablen employee_* überschreiben, wenn employee_id nicht gesetzt ist. In io.pl die ganzen employee_*-Variablen mit denen des ausgewählten Bearbeiters belegen und nicht mit denen des aktuellen Benutzers.
Die Signatur des Verkäufers ebenfalls als Variable <%salesman_signature%> zur Verfügung stellen.
1. Salesman-Daten wurden nicht in $form eingetragen, weil die User-Klasse nur noch einen Parameter erwartet.2. Kosmetik.
AJAX-Antworten nicht direkt $cgi->header() ausgeben, sondern über eine Funktion, die auch das Charset ausgibt.
JavaScript und Umlaute in UTF-8-Codierung funktioniert nicht mit der JavaScript-Funktion "encode()", deshalb "encodeURIComponent()" benutzen.
Kleiner Syntax-Highlighting-Fix für Emacs.
HTML-Templates vor und nicht nach der Verarbeitung durch die Template-Klasse mit iconv in das $db_charset konvertieren. Andernfalls würden Daten, die bereits im $db_charset vorliegen, erneut konvertiert und damit falsch codiert sein.
Form::format_amount_units() darf auch ohne die Parameter amount und part_unit aufgerufen werden. Kein amount wird einfach als 0 gewertet, und wenn part_unit fehlt, so wird schlicht ein leerer String zurückgegeben. Macht Ausgaben wie den Lagerinhalt inkl. leerer Lagerplätze aus wh.pl einfacher.
Vermeiden, dass SQL-Fehlermeldungen angezeigt werden, wenn noch kein Kunde/Lieferant ausgewählt wurden.
Typo
Doppeltes "use".
Die Tabelle "warehouse_access" gibt es in der offiziellen Version nicht. Fix für Bug 820.
Wenn get_standard_dbh() merkt, dass $standard_dbh zwar definiert ist aber zwischenzeitlich geschlossen wurde, dann eine Warnung ausgeben und eine neue Verbindung aufbauen.
Unterstützung für Lieferscheine in Form::lastname_used.
Ueberarbeitete Buecherkontrolle
Fokus Patch.
Angeregt durch Bug798, allerdings erweitert und verallgemeinert.
Essentiell merkt sich Lx-Office jetzt in den Bereichen Auftrag, Rechnung, Einkaufsrechnung und Lizenzen die Fokusposition bei Update.
Das Javascript ist in common.js enthalten. Um es in andere Bereiche einzubinden muessen die folgenden Schritte gemacht werden:...
Bugfix: Update im Warendialog hatte die Warengruppe verschluckt.
Wechselkurse.
Zum einen den unsaeglichen Algorithmus zum setzen von exchangerate und forex im ganzen Porgramm geaendert.Dann einen Bug mit der Angzeige der Wechselkurseingabe in oe.pl gefixt.Ausserdem Bug 666 gefixt.
Bugfix in isblank. (Tip: Benutzt nie split '.' wenn ihr nicht wirklich sicher seid was das macht.)
Ausserdem akzeptieren Einkaufsrechnungen jetzt keine leeren Rechnungsnummern mehr, da Einkaufsrechnungen immer unter der Rechnungsnummer des Lieferanten abgespeichert werden.
Weitere, nicht ganz so behutsame Codesaeuberungen.
Beim Verschicken von Belegen per Email den Betreff analog zum Namen des Anhangs vorbelegen, sofern der Betreff nicht vom Aufrufer vorgegeben wird.
Attachmentnamen (z.B. bei Emails): Weitere Sonderzeichen ( / und \ ) ersetzen, damit der Anhang leichter im Dateisystem gespeichert werden kann.
Parametername von "type" in "content_type" geändert.
Das Erzeugen der HTTP-Antwort in eine eigene Funktion ausgelagert, damit sie auch von anderer Stelle aus benutzt werden kann.
Das Quoten/Unquoten von speziellen Zeichen in zentrale Hilfsfunktionen in Locale verlagert.
Debugausgaben.
Projektverwaltung in eine eigene Datei ausgelagert und auf die Verwendung von Template umgestellt.
Lieferscheine im Einkauf und Verkauf. Bisher nur gemerget, noch nicht getestet.
API-Anpassung für $form->show_generic_error(): Man kann einen JavaScript-"Zurück"-Button anzeigen lassen, oder einen Button mit beliebigem anderen Text.
Zwei neue Features:1. Beliebige Notizen für Kunden und Lieferanten können angelegt werden. Solche Notizen können auf Wiedervorlage gelegt werden, was durch 2. implementiert ist.2. Einkaufs- und Verkaufsbelege können auf Wiedervorlage gelegt werden. Wiedervorlagen können für beliebige Nutzer erstellt werden (Aufgabe an andere Nutzer deligieren). Anstehende Wiedervorlagen und abgelaufene Angebote werden auf der Startseite in einer Aufgabenliste angezeigt.
Umstellung der Benutzerverwaltung von Dateien im Verzeichnis "users" auf die Verwendung einer Authentifizierungsdatenbank.Es ist erforderlich, die Dateien doc/UPGRADE und doc/INSTALL/index.html zu lesen und die angesprochenen Punkte auszuführen, um nach einem Upgrade weiter arbeiten zu können.
Eine Hilfsfunktion, die aus Array- und Hashstrukturen in $form eine Liste von Variablennamen und Werten erzeugt, die dann wieder als versteckte Inputs in HTML-Formularen ausgegeben werden kann. Dabei sind die Variablennamen strukturiert (so wird z.B. aus "$form->{filter}->[0]->{description}" der Name "filter[+].description"). Außerdem eine Anpassung von $form->isblank(), die solch strukturierte Variablennamen versteht.
Automatisches Erstellen von Arrays und Hashes in $form bei Verwendung spezieller Namen für Formularelemente: name[] kennzeichnet Arrays, name[+] ein neues Arrayelement, name.element kennzeichnet Hashes.
Um die Benutzung des Template Systems mal ein wenig zu foerdern.
Die bin/mozilla/oe.pl noch einmal umgeschrieben, so dass jetzt noch mehr Funktionen ins Frontend ausgelagert sind.
Ein neues Highlight ist die template/generic/multibox.html, die es erlaubt aus wenigen Steuerkommandos ein HTML-Eingabefeld zu erstellen, was bei kleinen Datenmengen als Dropdownbox erscheint, udn bei grossen asl Textfeld, mit dazugehörigem Popup-Button, um eine Auswahlliste aufzumachen. Saemtliche Funktionen lassen sich ueber Perlfunktionsreferenzen wieder zurück ins Backend leiten, und dort wieder mit komplexer Logik füllen. Dokumentation ist im Template direkt enthalten....
Die Funktion Form::parse_html_template2() in Form::parse_html_template() umbenannt (letztere wurde in Revision 2923 entfernt).
Das Modul HTML::Template wird nicht mehr benötigt.
Umstellung einiger Vorlagen aus templates/webpages/generic von HTML::Template auf Template. Die Vorlagen calculate_alu* werden gar nicht benutzt und deswegen entfernt.
Keine Debugmeldungen. Danke.
Den DOCTYPE nur dann setzen, wenn der Internet Explorer verwendet wird. Andere Browser haben ansonsten Probleme, u.a. mit dem JavaScript-Menü.
Diese Patch ist ein Merge der Revisionen2866, 5349, 5365, 5370, 5408, 5413, 5470, 5473, 5475, 5519, 5520, 5521, 5524, 5526, 5591, 5618, 5622, 5814, 5881, 5882 und 5961in das Unstable.
Hintergrund ist die Auslagerung der OE-Masken, das heisst aller Masken, die fuer Auftraege, Angebote und teilweise Rechnungen zustaendig sind....
Verbesserungen am Tag Script.
Ausserdem Merge der Revisionen 5239 5259 5340 5341 5342 und 5343.
Durch das Setzen eines entsprechendenden DOCTYPEs für alle Seiten schaltet der Internet Explorer 7 in den "standards mode", in dem er auch das CSS-Menü richtig darstellt.
Kosmetik: Einrückung mit zwei Leerzeichen.
Fehler beim Laden von Buchungen, wenn Konto nicht mit einer Steuer verknüpft ist
1. Fieser Bug der in format_amount auftritt, wenn eine sehr kleine Zahl in Exponentialschreibweise uebergebenwird wie bspw. 1.13686837721616e-13. BITTE UNBEDINGT PRUEFEN, TESTEN UND VERBESSERN.Siehe auch Forenbeitrag: http://lx-office.org/forum/forum_entry.php?id=5315...
Quoten von allen in regulären Ausdrücken verwendeten Variablen, die direkt oder indirekt von Benutzereingaben stammen können. Fix für Bug 302.
Wenn das Parsen eines Templates fehlschlägt, dann die dazugehörige Fehlermeldung auf STDERR ausgeben, damit sie analysiert werden kann.
Eine Funktion zur Formatierung von Strings, die Vorkommen von "#n" durch das n-te Argument ersetzt. Zur Benutzung mit $locale->text(), sodass die Reihenfolge von Parametern in Übersetzungen verändert werden kann.
Preisfatkoren implementiert.
Die Variable $form->{error_function} konnte dazu benutzt werden, die Authentifizierung komplett zu umgehen, indem sie z.B. auf header gesetzt und der HTTP_USER_AGENT vom Client leer gelassen wird. Analog zum SQL-Ledger-Problem, das in CVE-2007-1437 beschrieben wird.
Zahlungskonditionen: Zahlenwerte auf zwei Stellen gerundet ausgeben.
Zahlungskonditionen:1. Neue Variablen <%invtotal_wo_skonto%> und <%total_wo_skonto%> hinzugefügt, die die Belegsumme bzw. die noch offene Summe abzüglich des Skontobetrags beinhalten.2. Die Variablen <%total%> und <%invtotal%> waren nur bei Rechnungen gefüllt, nicht aber bei Angeboten und Aufträgen.
Umstellung der Kontenübersicht auf die Verwendung von "Template".
Form::redirect muss auch Zahlen in Scriptnamen zulassen, weil ansonsten z.B. menuv3.pl nicht ausgeführt wird.
Beim Versenden per Email eine anständige Überschrift anzeigen und nicht "email oe".
Verhindern, dass durch Manipulation von $form->{callback} beliebiger Code ausgeführt werden kann.
Pfadkomponenten entfernen, bevor exec aufgerufen wird, damit nicht beliebige Perlscripte ausgeführt werden können.
Das nächste Release ist 2.4.3.
Umwandlung von Angebot nach Auftrag hat nach Fehler verursacht, da gleiches Modul
Bei der Umwandlung eines Auftrags in eine Rechnung wurde die individuelle Lieferadresse nichtgespeichert
update_business und update_defaults: Bei sehr langen Zahlenkomponenten wurden die erzeugten Nummern leider auf -0000000...001 gesetzt. Grund ist, dass der Formatierer '%d' für sprintf auf 32bit-Systemen nun mal nur mit 32bit-Zahlen umgehen kann. Geriet die Zahlenkomponente größer als 2147483647, so erhielt man einen Überlauf.
Bei Template-Vorlagen per Default nicht vorne und hinten die Zeilen bereinigen -- ist zum Debuggen einfacher.
Wenn ein Hash namens %main::debug_options existiert, dann werden all seine Variablen 'key' in HTML-Vorlagen als DEBUG_KEY zur Verfügung gestellt. Wird bisher nur bei Mahnungsvorlagen benutzt. Und ist nur für Entwickler gedacht.
Debugmeldung entfernt
Einführung des Modules "Template" als schnellere Alternative (Faktor 9) zu "HTML::Template". Wird via $form->parse_html_template2() aufgerufen. Umstellung der von ReportGenerator verwendeten Vorlage auf die Verwendung von "Template".
Konvertierung von lokalisierten HTML-Seiten in den als $dbcharset angegebenen Zeichensatz.
Probleme mit mehreren Währungen und Wechselkursen behoben.
"Als bezahlt markieren" Button-Funktion in die common.pl verlegt.