Fehlendes Objekt bei Funktionsaufruf.
Auch beim Aufruf von LXDebug::message() auf Veränderungen bei beobachteten Variablen testen.
Abfangen von doppelten Lieferantenadressen (beim Eintragen)
Einen Filter für den Kunden-/Lieferantentypen bei Berichten über Kunden-/Lieferantenstammdaten implementiert.
Weitere Unterfunktion zu Form::get_lists() zum Auslesen von Kunden-/Lieferantentypen.
Bei den Kunden- und Lieferantenstammdaten werden in den Berichten standardmäßig nur noch die gültigen angezeigt; die ungültigen können über Radiobuttons trotzdem angezeigt werden.
Rudimentäre Überwachungsfunktion für $form-Variablen in LXDebug implementiert.
Vergessen, einen Spaltennamen mit umzubenennen.
Doppelte Zeilen entfernt.
Mahnwesen: Die Tabelle dunning so umgebaut, dass gemeinsam gestartete Mahnungen auch später gemeinsam erneut ausgedruckt werden können. Dafür auch die Listenansicht bereits gestarteter Mahnungen verbessert.
Vermeidung von SQL injection durch Verwendung von parametrisierten Queries. Zusätzlich die Optik beim Bericht über laufende Mahnungen verbessert. Fehler beseitigt, dass das erneute Ausdrucken von Mahnungen alle Mahnungen zusammengefasst hat, auch über Kundengrenzen hinaus.
Nettobeträge bei taxincluded auf Druckvorschau angepasst (Bug 576)
Bugfix: SQL Fehler bei nicht vorhandenem salesman
Beim Anlegen von Waren/Dienstleistungen die Einheiten auch wirklich nach der in den Systemeinstellung vorgegebenen Reihenfolge sortieren.
CP.pm auf die Verwendung von parametrisierten Queries zur Vermeidung von SQL injections umgestellt.
CA.pm auf die Verwendung von parametrisierten Queries zur Vermeidung von SQL injections umgestellt.
Funktion get_config aus ustva.pl nach USTVA.pm verschoben, damit sie auch aus rp.pl aufgerufen werden kann.
Weitere Vorkommen von GIFI entfernt. GIFI müsste bis auf Spalte chart.gifi_accno und Tabelle chart komplett entfernt sein.
CT.pm auf die Verwendung von parametrisierten Queries zur Vermeidung von SQL injection umgestellt. Dabei Restfunktionalität von customertax und vendortax entfernt. Mehr Datenbankhilfsfunktionen hinzugefügt.
dump_query ersetzt bereits ?-Parameter durch ihre eigentlichen Werte, weswegen sie nicht noch einmal an das Query angefügt werden müssen.
Falsche Verwendung einer neu eingeführten Datenbankhilfsfunktion, die zu einer Endlosschleife geführt hat.
Loeblich, Doku wollte ich schon immer haben.
Ich hab mal die Authorschaft korrigiert (Moritz hat an den meisten Routinen schuld)und die Funktionen die sowieso ueber prepare_execute_query laufen von doppelten Dumps befreit.
Fehler beim Export von Buchungen mit 16% behoben
SL::DBUtils etwas verbessert. Bei jedem Query wird geprüft ob der Debugmoduseingeschaltet ist-> Eintrag ins Log.Auch habe ich eine Anleitung für das Modul angefangen, aber bisher nur denAufruf einiger Funktionen beschrieben siehe perldoc SL/DBUtils.
Betr. Frontendfunktionen ar, ap, ir, is Zahlungskonto.Die Abfrage von $form->create_links verbessert (vor Inf. Regress geschützt) und aufgeräumt.Vereinheitlichung: Umstellung der Datenbankanfragen auf SL::DBUtils.
OE.pm: Keine Daten aus $form direkt in SQL-Anfragen einsetzen und statt dessen parametrisierte Anfragen benutzen. Außerdem einen SQL-Fehler behoben, wenn mehrere Auftrage zu einem zusammengefasst werden. Behebt Bug #609.
Beim Ausdruck die Variablen für den Verkäufer (salesman_*) füllen.
Speichern und Anzeigen eines Verkäufers bei Verkaufsmasken.
Bei Kunden-/Lieferantentypen das Feld "Vertreter" ausblenden.
Speichern von Verkäufern bei Kundenstammdaten.
Formatierung
Bug 603: Interne Bemerkungen bei Workflow aus Lieferanten heraus
->message(0, ...) sollte wieder funktionieren
dump_query fuer Moritz modifiziert, damit er nicht immer die querys einzeilig machen muss.... :)
get_vendor auf aktuellen Stand gebracht.
Neue tolle Funktionen in DBUtils eingefuet
Teile von SL/Form.pm auf neuen stand gebracht
Bug: "my" variable $form masks earlier declaration in same scope at SL/DBUpgrade2.pm
und nochmal das debugging korrigiert
IS::get_customer auf neue DBUtils umgestellt,neue DBUtils funktion selectfirst_hashref_query
Bei "Als Neu Speichern" nur dann eine neue Anfrage-/Auftragsnummer vergeben, wenn der Benutzer die bisherige nicht manuell verändert hat; ansonsten die veränderte übernehmen. Fix für Bug 598.
Debugcode entfernt
Keine Form-Variablen direkt in SQL-Queries verwenden.
Mehr Datenbankhilfsfunktionen implementiert.
Keine Form-Variablen direkt in SQL-Queries verwenden. Ein paar kosmetische Änderungen wie Zeilenlängen.
In SQL-Queries keine Form-Variablen direkt benutzen.
Kosmetik: Klammern um Funktionsaufrufe.
Kreditorenrechnungen: Beim initialen Aufruf den richtigen Steuerschlüssel auswählen, wenn für den Lieferanten das zuletzt benutzte Konto ausgewählt wird.
Debitoren- und Kreditorenrechnungen: Beim Erstellen der Einträge in acc_trans keine leeren Felder für taxkey erzeugen.
Einkaufs- und Verkaufsrechnungen: Beim Erstellen der Einträge in acc_trans keine leeren Felder für taxkey erzeugen.
Debugcode...
Einkaufs-/Verkaufsmasken: Da es das Zahlungsziel in den Masken nicht mehr gibt, müssen zur Berechnung des voreingestellten Fälligkeitsdatums die beim Kunden/Lieferanten eingestellten Zahlungskonditionen benutzt werden.
Kreditorenrechnungsmaske: Drop-Down-Boxen für Konten werden jetzt bei jedem Seitenaufbau richtig aufgebaut (kein Mitschleppen der HTML-gecodeten Drop-Down-Box im Formular) analog zu ar.pl. Behebt außerdem ein paar Bugs mit Auswahl der Steuerschlüssel.
Sortierung beim Buchungsjournal leicht angepasst.
Nicht Hashfelder sowohl als Skalar als auch als Hash benutzen. Führt zu merkwürdigem Verhalten, z.B. dass zu viele Keys herauskommen etc.
Bei Buchungen mit IS::post_payment taxkey mitbuchen.Fix fuer Bug 583.
Debugmechanismus leicht verbessert.Tracing ist jetzt keine unabhaengige Variable mehr sondern ein Aspekt.Alle anderen Debuglevel sind jetzt bitexklusiv, und koennen einzeln an und ausgemacht werden.
Grund dafuer ist, dass jetzt mit QUERY ein Modus eingefuehrt wird, der es erlaubt alle SQL queries die ueber die Funktion do_query laufen zu loggen....
IS::post_payment auf derzeitigen Stand gebracht um hinterher bug 583 anzugehen.Aenderungen sind zum Grossteil sicherheitsrelevant oder kosmetisch.
- Aenderungen von perltidy wurden rueckgaengig gemacht (voellig unleserlich)- Queries werden jetzt sicher ueber do_query und DBI gehandhabt...
Eine Funktion auf Tracelevel 2 gesetzt
2 Funktionen auf trace level 2 gesetzt
Debitorenrechnungen: Beim Erstellen einer neuen Debitorenrechnung das richtige Steuerkonto für die erste Zeile auswählen, auch wenn das ausgewählte Konto nicht das erste Konto in der Liste ist.
Überflüssigen/unwirksamen Code entfernt.
Paranoiasicherheitscheck in IR.pm
System->Kontenuebersicht->Konten: Abfrage war falsch.
Kontenliste: Steuerschlüssel Prozentsatz fehlte
Codeduplikation vermeiden.
Einkaufsrechnungen: Vor dem Stornieren die Daten aus der Datenbank holen und nicht die aktuellen Formulardaten für das Storno benutzen.
Definitiv verhindern, dass Einkaufsrechnungen doppelt storniert werden können.
Rechnungsfunktionen gehören natürlich nach IS und nicht nach IC.
Das mehrmalige Stornieren von Kundenrechnungen definitiv verhindern.
Debugcode
Rechnungs- und Gutschriftsnummern werden nun direkt innerhalb der Backend-Routinen innerhalb der gleichen Transaktion vergeben, in der auch die eigentliche Rechnung etc gespeichert wird. Damit soll besser verhindert werden, dass sich Löcher in den Nummernkreisen ergeben.
Booleans als 't' oder 'f' an die Datenbank geben.
Dialogbuchen: Weitere Drop-Down-Boxen werden bei jedem Aufbau aus der Datenbank ausgelesen und durch das CGI-Modul ausgegeben.
Projektnummer nicht doppelt und schon gar nicht mit einem Subquery abholen.
Dialogbuchen: Die Drop-Down-Boxen bei jedem Formularaufbau aus der Datenbank heraus aufbauen und nicht in $form mitschleifen. Behebt auch den Fehler, dass das Steuerkonto beim initialen Aufbau nicht richtig ausgewählt wurde.
Hilfsfunktionen für Form::get_lists() weiter ausgelagert und mit einem Unterstrich vor dem Namen als interne Funktionen gekennzeichnet.
get_part - sql quoting
quote_db_date verschoben nach DBUtils
Quoting Funktion für Datumsangaben in sql queries.Beherrscht:- NULL fuer nicht definierte Werte- current_date als Schlüsselwort- Standardquoting fuer tainted strings (übernommen aus DBI.pm)
USTVA: Patch zur besseren Unterstuetzung der oesterreichischen Verhaeltnisse.
Eine Aenderung zuviel in den Abfragen: Lieferdatum wurde nicht mehr berucksichtigt
2 Fehler im USTVA Modul beseitigt. Zwei Steuerkonten wurden nicht beruecksichtigt und beiGL-Buchungen wurde die Steuer nicht immer korrekt aufsummiert
Fix für r1967 (und r2002) : Steueranzeige unterhalb von Rechnungen, Angeboten, etc. an die neuen Taxkeys angepasst.Der Steuersatz wird nicht mehr in der 'description' redundant gefuehrt, sondern aus der'rate' generiert. Getestet bei den EingabemaskenVerkauf: Rechnung, Gutschrift, Auftrag, Angebot...
Erste Version Druckqueue.Es ist nun wieder moeglich aus der Warteschlange zu drucken, und zwar auf selektierte Drucker.
Möglichkeit zum Löschen von gespeicherten Entwürfen eingebaut.
Loeschen von Drafts flexibler.Die Checkbos bestimmt ob ein Draft geloescht wird, nicht mehr automatisch beim laden.
Änderungen an Konten auch zulassen, wenn diese bereits bebucht wurden (der Benutzer darf sich hier selber in den Fuß schießen).
Vermeidung von SQL injection durch Verwendung parametrisierter Abfragen.
Erweiterte Liste von erlaubten Spaltennamen, nach denen sortiert werden darf.
Umformatieren der Abfragen und Vermeidung von SQL injection durch Verwendung von parametrisierten Abfragen.
Kreditorenbuchung: Beim initialen Buchen müssen die Projektnummern für die Zahlungsausgänge in acc_trans gespeichert werden.
Falsche Funktionsaufrufe. Fix für Bugzilla ID 560.
Einkaufs-, Verkaufs-, Debitoren- und Kreditorenrechnungen können als Entwurf gespeichert und später weiter bearbeitet werden. Dabei werden sie nicht gebucht.
Historie: Den Einfügezeitpunkt nur sekundengenau darstellen.
Tabelle für Historie wurde umbenannt.
Beim Drucken doch nicht die Arrays initialisieren. Momentan werden nämlich in $form unter dem selben Key sowohl Skalare als auch Arrays abgelegt (beispielsweise reqdate). Das Skalar fliegt durch die Initialisierung des Arrays hingegen raus.
Ja, das ist sehr sehr unsauber, stammt aber noch aus alten Tagen. Muss auch erst einmal so bleiben, bis ich eine geeignete Lösung habe, wie man das sauber trennt, ohne gleich wieder alle Variablen in den Vorlagen umzubenennen.