Substitute mit execute reimt sich.
Kosmetik: Formatoptionen nutzen, anstatt den Formatstring extra zusammenzusetzen.
In allen Einkaufs- und Verkaufsmasken die Drop-Down-Box für die Steuerzone bei jedem Formularaufbau neu generieren. Dadurch bleibt auch der bisher selektierte Eintrag selektiert, was er vorher nicht tat (sprang immer auf "Inland" zurück).
Beim Vergeben von neuen Angebotsnummern etc die "Breite" der Nummernkreisvorlagen berücksichtigen (also wird aus z.B. "A00000" auch wirklich "A00001" und nicht "A1").
Anpassung der Historienfunktion
Anpassung des Speichervorgangs der Historie. Parameter $form->{snumbers} wird erwartet.
Die Javascript-Funktion "fokus()" sollte immer definiert sein, um keine Javascript-Fehler zu produzieren. Ob sie auch was tut hängt dann davon ab, ob $form->{fokus} gesetzt ist.
Falsche DB-Hilfsfunktion verwendet.
Umstellung von IC.pm auf die Verwendung von parametrisierten Queries und gequoteter Werte zur Vermeidung von SQL injections.
Die Funktionen zum Bearbeiten von HTML-, LaTeX-Vorlagen und Stylesheets neu geschrieben.
Fix zu Bug 618.
Kommentar:perl -le 'map ${$a{$_}=1}{k}=$_, 0,1; print $a{1}{k}'
Geladene Buchungen zeigten nach r2145 keine Steuern mehr an.Das Query zum Abfragen der Kontodaten war falsch verkuerzt worden.
Umstellung von RP.pm auf die Verwendung von parametrisierten Queries bzw. Verwendung von gequoteten Variablen zur Vermeidung von SQL injections.
In Form.pm gibt es kein $form, nur $self.
Beim Verschicken von Emails auch die Variable $form->{EMAIL_RECIPIENT} als Empfaenger benutzen, falls in $form->{email} z.B. die Emailadresse des Kunden steht. Bei der Sammelrechnung genau deswegen $form->{EMAIL_RECIPIENT} benutzen.
Vermeidung von SQL injections durch die Verwendung von parametrisierten Queries.
Die Variable hieß vorher "all_partsgroup" und sollte danach ebenso heißen.
Noch ein Fallback, falls $language wirklich nicht definiert sein sollte.
%myconfig ist ein Hash.
Bei Nummernkreisen auch Sonderzeichen erlauben (Perls eigener Algorithmus hinter "$var++;" funktioniert z.B. nicht, wenn die Variable ein Gleichheitszeichen enthält).
Umstellung der Form.pm auf die Verwendung parametrisierter Queries zur Vermeidung von SQL injection. Zusätzlich etwas Kosmetik (trailing whitespace, TABs entfernt).
/Stornierte (Forderungen|Verbindlichkeiten)/ werden bei offene $1 nicht mehr angezeigt/
Fehlende Parameter und falsche Spaltennamen.
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.