Umbau der bisherigen Saldenbilanz zu einer richtigen Summen- Saldenliste unter Benutzung desReportgenerator Frameworks
Reportgenerator erweitert, so dass man fuer die Reports beliebige Templates verwenden kann
Lieferscheine im Einkauf und Verkauf. Bisher nur gemerget, noch nicht getestet.
Syntaxfehler in SQL-Query.
Falsche Anzahl Parameter für SQL-Query.
Anzahl der Lager in der Lagerübersicht anzeigen.
Kosmetik.
Lagerverwaltung implementiert.
API-Anpassung für $form->show_generic_error(): Man kann einen JavaScript-"Zurück"-Button anzeigen lassen, oder einen Button mit beliebigem anderen Text.
Zelleninhalte, die nur "0" sind (also die Zahl "0"), wurden in PDF- und HTML-Ausgabe nicht angezeigt.
Benutzerauthentifizierung: Unterscheidung zwischen "Falsches Passwort" und "Session abgelaufen".
Benutzerkonfiguration um Einstellungen zur Aufgabenliste erweitert.
Das Session-Timeout konfigurierbar gemacht; Standardwert weiterhin acht Stunden.
Eine Session maximal acht Stunden inaktiv lassen.
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.
Debugcode
Implementation des Features "Benutzerdefinierte Variablen für Kunden- und Lieferantenstammdaten".
Dokumentation ergänzt.
Ausserdem zwei Bugs in Auth.pm behoben
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.
Ein Template-Plugin zum Escape von Angaben für JavaScript-Strings.
Und noch ein Bugfix.
size/count etc. wurden nicht rihctig exportiert.
MultiColumnIterator
Verhält sich wie der normale Template::Iterator (siehe man Template::Iterator), akzeptiert aber einen zusätzlichen Parameter fuer eine Spaltenbreite.
Hat man Beispielsweise ein Array mit 11 Eintraegen und mochte diese auf 3 Zeilen im Template ausgeben, so gibt ein mit...
Es muss beim Bearbeiten von Konten möglich sein, einen Steuerschlüssel auf "0" anzulegen, weil das intern überall gemacht wird, wo keine Steuerautomatik vorhanden ist.
Unterstützung für strukturierte Variablennamen und Hash- und Arraystrukturen in $form in den mitzuschleifenden Variablen.
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.
Presiaktualisierung Schritt 1 auf Templates umgestellt
Wenn in get_vendor() die id des Vendors abgeholt wird, dann wird dadurch die ID des aktuellen Vorgangs im Einkauf (Preisanfrage, Lieferantenauftrag etc) überschrieben.
Den Test, ob ein Artikel noch nicht benutzt wurde und deshalb gelöscht werden kann, auf weitere Tabellen ausgedehnt.
Das Bearbeiten der Einstellungen, die in der Tabelle "defaults" gespeichert werden, wurde in eine eigene Maske ausgelagert, die unter "System -> Nummernkreise und Standardkonten" aufrufbar ist. Bei "Programm -> Benutzereinstellungen" hingegen befinden sich nur noch Einstellungen, die pro Benutzer einstellbar sind (also die Sachen aus %myconfig).
1. Schreibfehler in Variablenname. 2. Hashreferenzen in Hashes speichern, nicht Hashes selber.
Falsche Funktion aufgerufen.
Report-Generator: Spaltenüberschriften in HTML- und PDF-Ausgaben nicht erneut HTML-Escapen, weil die Übersetzungen meist bereits HTML-encodet sind. Dafür aber die HTML-encodierten Zeichen zurückkonvertieren.
SQL-Injection vermeiden. Fix für Revisionen 2936, 2937.
Wenn eine Tabellenzelle gar keinen Inhalt hat, dann zumindest ein erzwingen, damit der Browser die Zelle auch formatiert (Tabellenränder etc).
Fehler bei neuen Rechnungen ohne Umwandlung
Beim Umwandeln von Auftrag in Rechnung wurden die Zahlungsbedingungen des Kunden und nicht diedes Auftrags verwendet
Trennstriche in Berichten als Rahmen der Tabellenzellen zeichnen, nicht als <hr>.
Verhindern, dass zwei von Lx-Office erzeugte Mails identische message IDs haben können.
Beim Verschicken von Emails wird das Kommando $sendmail durch Lx-Offices Template-System geschleust. Vordefiniert ist, dass Sendmail der Parameter "-f emailadresse" mitgegeben wird, sodass die Envelope-From-Adresse die des aktuellen Lx-Office-Benutzers und nicht die des Webservers ist. Das vermeidet, dass Emails wegen Spam/nicht existierender Domänennamen von Providern abgelehnt wedren.
Die globale Variable $sendmail wird nur in SL/Mailer.pm benötigt und sollte deswegen auch nur dort benutzt werden.
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....
Auslagern des HTML-Codes aus login.pl in HTML-Vorlagen.
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 der HTML-Vorlagen aus templates/webpages/report_generator von HTML::Template auf Template.
Sprachen alphabetisch sortieren.
Umstellung einiger Vorlagen aus templates/webpages/generic von HTML::Template auf Template. Die Vorlagen calculate_alu* werden gar nicht benutzt und deswegen entfernt.
XML basiertes Menue, siehe Bug #771
Umstellung der Vorlagen aus templates/webpages/dbupgrade von HTML::Template auf Template.
Query Aufrufe loggen nun auch woher sie kommen
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ü.
Debugcode entfernt (Fix zu Bug 768)
...und das gemoddete Templating
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.
Eine Funtion zur Überprüfung der Existenz von hash-basierten Funktionsparameter.
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.
Deutliche Beschleunigung der USTVA-Berechnung durch Einschränkung der betrachteten Datensätze aus acc_trans.
Die Variable "ranking" für Zahlungsbedinungen konnte nirgends konfiguriert werden. Zusätzlich werden beim Wechsel des Kunden in einer Verkaufsmaske die beim Kunden hinterlegten Zahlungsbedingungen immer ausgewählt, nicht nur dann, wenn vorher keine ausgewählt waren.
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...
Bug 760: Mahnungen drucken: Kunden Kontakt eingefügt. Betr. Tabelle: contacts, Templatevariablen cp_*
Quoten von allen in regulären Ausdrücken verwendeten Variablen, die direkt oder indirekt von Benutzereingaben stammen können. Fix für Bug 302.
Verkauf->Berichte: Auftrag und Angebot Suche nach Salesman implementiert.
Eine Funktion zur Überprüfung der Existens von Funktionsparametern hinzugefügt, wenn diese als Hash übergeben werden.
Das Modul "Data::Dumper" hat die Eigenheit, dass es den Iterator von gedumpten Hashes nicht zurücksetzt bzw. ihn nicht bis zum Ende ausliest, wenn "Sortkeys" wahr ist. Das hat zur Folge, dass der folgende Aufrufe von "each" für dieses Hash sofort beendet wird. Also muss der Iterator manuell zurückgesetzt werden. Siehe auch die Diskussion in "perldoc -f each".
Vor dem Aufruf von Funktionen auf der Instanz $self muss $self ge-blesst werden.
Die Option zum Setzen des Tag-Stils etwas verallgemeinert und dokumentiert.
Debugcode entfernt.
Beim Parsen von text-basierten Vorlagen (HTML, LaTeX) kann jetzt in der ersten Zeile das Format der Tags bestimmt werden. Dazu wird etwas wie "((set-tag-style))" benutzt. Die Nicht-Leerzeichen links und rechts vom Wort "set-tag-style" bestimmen, wie ein von Lx-Office zu parsendes Tag beginnt und wie es endet.
Sonderzeichen hochgestellte 2 und 3 für LaTeX escapen.
Fehlendes "return".
$locale->text() so erweitert, dass weitere Argumente direkt an Form::format_string() übergeben werden. Damit muss man nicht mehr $form->format_string($locale->text("#1 and #2"), $arg1, $arg2) schreiben, sondern kann direkt $locale->text("#1 and #2", $arg1, $arg2) schreiben.
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.
Bei den Entwürfen nicht die Variable "stylesheet" speichern.
Die Tabellenspalte "v_customer_id" ist eine Text- und keine Integer-Spalte. Fix für Bug 733.
Falsche Variable.
SQL-Fehler "description is ambiguous"
Einheitliche Benennung der Margen-Formular-Variablen analog zu den Namen der Spalten in der Datenbank.
Bei Gutschriften wurde der Lagerbestand falsch aktualisiert
Fehler beim Erstellen von Rechnungen fuer Gebuehren und Zinsen
Bei Lieferanten wurden nicht alle Daten der Ansprechpartner gespeichert
Wenn bei Kundenberichten Rechnungen etc ausgewaehlt waren, wurden nicht genug Variablen insQuery gesteckt
1. Klammer-Fehler im SQL-Query. Fix für Bug 727.2. BWA: Steuern müssen vom Gesamtergebnis abgezogen und nicht hinzugezählt werden. Fix für Bug 728.
Preisfatkoren implementiert.
Kosmetik: trailing whitespace entfernt.
Bugfix Rabattberechnung: Berechnung so umgestellt, dass der Rabatt von der Zeilensumme genommen wird und nicht vom Einzelpreis (Rundung). Fix für Bug 325.Bugfix Zwischensummen: Bei Belegen aus OE.pm (Angebote, Aufträge, Anfragen) wurde die Variable <%runningnumber%> innerhalb eines Zwischensummenblocks nicht "1.1, 1.2, 1.3" etc hochgezählt, sondern normal "1, 2, 3" etc....
Kosmetik/Vereinfachung
Kosmetikmerge aus Revisionen 5187, 5191, 5193, 5194, 5218, 5219, 5222, 5228, 5229
Group_BY muss conditional sein
Kosmetikmerge aus r5130
Ein fehlender Platzhalter beim Speichern von neuen Mahnungsleveln.