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
Mahnungen: Die Konfiguration so umgestellt, dass jetzt nicht mehr global entschieden wird, ob automatisch Rechnungen für die Mahngebühren und Zinsen erzeugt werden, sondern pro Mahnlevel. Die Dokumentation um die von Lx-Office erzeugten Namen für die Mahnungsvorlagen (auch für die Rechnung) erweitert.
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.
ReportGenerator: Man kann jetzt die Standardanordnung (align) in den Spalten angegeben werden.
Mehr perldoc
ReportGenerator: Wenn keine Datensätze hinzugefügt wurden, dann wird eine entsprechende Meldung anstelle der Spaltenüberschriften ausgegeben. Die Export-Buttons werden in diesem Fall ebenfalls nicht angezeigt.
Kosmetik
Waren-/Dienstleistungs-/Erzeugnisberichte auf die Verwendung von ReportGenerator umgestellt.
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
Beim Drucken von Mahnungen stand die Kundennummer nicht zur Verfuegung
Kunden- und Liferantenstammdatenliste auf die Verwendung von ReportGenerator umgestellt.
Mahnungen: Neuer Variable für jede Rechnung: <%dn_linetotal%> als für diese Rechnung zu zahlender Betrag (offener Betrag zuzüglich Mahngebühren und Zinsen).
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".
Erweiterung um Anzeige des Ertrages im Verkauf
Buchungsliste:1. $form->{sort} nicht ohne Überprüfung in einem SQL-Query benutzen.2. Nur dann mehrere Zeilen zusammenfassen, wenn auch ihre ID übereinstimmen (was vermutlich nie der Fall sein wird, aber anders ist es schlicht falsch, weil dann Buchungen zusammengefasst werden können, die zu unterschiedlichen Belegen gehören).
ReportGenerator: Möglichkeit zum Einfügen einer "leeren" Zeile, die die ganze Tabellenbreite einnimmt.
ReportGenerator: Die Spaltendatenfelder 'data' und 'link' können jetzt auch Array-Referenzen sein, die in der Zelle zeilenweise ausgegeben werden.
Konvertierung von lokalisierten HTML-Seiten in den als $dbcharset angegebenen Zeichensatz.
ReportGenerator: Unix-Zeilenenden als Standard aktiviert. Grund ist, dass Excel nicht damit zurecht kommt, wenn Zelleninhalte mit \r\n umgebrochen werden, wohl aber, wenn die ganze Datei nur mit Unix-Zeilenenden formatiert ist.
Beim CSV-Export Zeilenumbrüche in Zellendaten durch das ausgewählte Format ersetzen.
Durch das Verschieben der Headerausgabe beim PDF-Export wurde der Name des Attachments nicht richtig gesetzt (jeweils nur '.pdf'). Fix für Bug 681.
Stornierte Rechnnung muss auf storno = true haben
Stornomechanismus mal auf Dialogbuchen ausgeweitet
storno fix: acc_trans query muessen nach oid sortieren
1. $form->{title} wird nicht mehr zwangsweise umgeschrieben und nach $form->header() wiederhergestellt.2. Kosmetik: lokale Variable $form anstelle von $self->{form}.
Storno Fix nr. 29283574983745
Es werden beim Storno jetzt nur noch die urspruenglichen acc_trans Eintraege storniert,nachtraegliche Zahlungseingaenge bleiben unberuehrt.
Paket 'List::Util' wird nun benutzt (sollte aber eh zu jeder Standard-Perl-Installation gehören). Die Teile der URLs entfernt, die spezifische Versionsnummern der Pakete enthalten.
Reportgenerator: Beim Listenexport als PDF kann das PDF auch direkt ausgedruckt werden.
Zahlungseingang:Das Buchungskonto wird nicht benutzt, und wird deshalb nicht mehr angezeigt.Die Backendfunktion holt sich das benoetigte Konto sowieso aus den Rechnungen.
Ausserdem ein Bugfix:currency ist bei alten Rechnungen auf '' gesetzt, bei neuen auf NULL (nach sql-injection fix)...
Debugmodi umgeschrieben auf das viel schoenere shiftingformat.Neuer Debugmodus "DEVEL", der genau das enthaelt was man ueblicherweise zum debuggen braucht,ohne den overhead von ALL.
Beim Laden von Dialogbuchungen wurde das Belegfeld nicht mitgeladen
und das ganze nochmal für Kreditorenbuchungen und deren Stornos
bin/mozilla/ar.pl auf use strict standard gebracht.
Debitoren storno umgeschrieben und Bug gefixt.
Etwas mehr Übersicht.
Reportgenerator: Man kann jetzt auch Trennzeilen einfügen, die in der HTML-Ausgabe als horizontale Linie über die gesamte Tabellenbreite realisiert sind.
Berichtsklasse:1. Commit der vorher vergessenen HTML-Templates für die Berichte und die Exportoptionen.2. HTML-Berichte: Zeilenumbrüche mit "\n" werden in "<br>" umgewandelt.3. CSV-Export: Richtiger MIME-Type; Download der Datei forcieren; Option für die Spaltenüberschriften gefixt.
Eine Report-Klasse geschrieben, der die Ergebnisse von Datenbankabfragen übergeben werden. Diese Klasse kann daraus dann entweder die bekannten Listenansichten oder auch CSV- und PDF-Exporte erzeugen. Dazu werden entsprechende Buttons eingeblendet.Dazu werden einige neue Perl-Module (Text::CSV_XS und IO::Wrap) sowie zwei weitere Hilfsprogramme (html2ps und Ghostscript) benötigt, deren Pfade über die lx-erp.conf eingestellt werden müssen.
Webdav-Feature: Pfadtrennzeichen aus den Nummern (Angebotsnummer, Rechnungsnummer etc) entfernen.
In der Kürze liegt die Würze.
Eingangsrechnungen: Wirklich das Datum der zuletzt erstellten Rechnung benutzen, nicht das maximale Datum.
Eingangsrechnung: Als Rechnungsdatum wird das Datum der letzten Eingangsrechnung vorausgewählt. Zusätzlich wird das Fälligkeitsdatum in Abhängigkeit von den beim Lieferanten ausgewählten Zahlungsbedingungen gesetzt.
Zur Überwachung von $form-Variablen können jetzt mehrere gleichzeitig ein- oder ausgeschaltet werden. Syntax: $form->{"Watchdog::var1,var2,var3"} = 1;
Der letzte Einkauspreis wurde nicht geladen und daher auch keine MArgenberechnung
Mahnwesen:1. Beim Erzeugen neuer Mahnungen wurden unter Umständen überall die falschen nächsten Mahnstufen vorausgewählt.2. Rechnungen, die bereits auf der höchsten Mahnstufe waren, wurden nicht mehr angezeigt.
Probleme mit mehreren Währungen und Wechselkursen behoben.
"Als bezahlt markieren" Button-Funktion in die common.pl verlegt.
neuen button und Funktion für "als bezahlt markieren" eingeführt.
Buchungen wurden nicht korrekt angezeigt, wenn gleiche Referenz aber unterschiedlicheBeschreibung
Der benannte Parameter $copy_accnos wird ansonsten nicht verwendet.
ic.pl auf use strict umgeschrieben (experimentell)ic.pl generate_reports konsistenzchecks umgeschirben, und kommentiert, wird im weiteren mit verbesserter datenbanklogikverwendet.SL/IC.pm: kosmetik
Eine neue Funktion eingebaut, mit der eine einzelne Datenbankverbindung zum Abholen verschiedener Funktionen genutzt werden kann. Diese Datenbankverbindung wird erst beim Ende der Lebenszeit von $form wieder geschlossen. Momentan bauen fast alle Backendfunktionen eine eigene Datenbankverbindung auf. Hiermit ist das teilweise überflüssig.
Die Funktion "Zahlung buchen" bei Kreditorenrechnungen komplett umgeschrieben. Sie verlässt sich nun nicht mehr auf die aktuellen Daten in $form, um die alten Einträge in acc_trans zu löschen, sondern lädt den vorherigen Stand aus der Datenbank, entfernt darauf basierend die Einträge in acc_trans und lässt AP->post_transaction() selber die Zahlungen eintragen....
Ein Fehler an dieser Stelle ist nicht schlimm, da er auch dadurch zustande gekommen sein kann, dass die Tabelle 'schema_info' noch nicht existiert. Das passiert z.B., wenn man eine pre-2.4.0.0-Datenbank im Admin-Menü aktualisieren möchte.
Mehrere Fehler in der Kontenuebersicht behoben
Bei Artikelsuche Groß-/Kleinschreibung ignorieren.
Nur die Lieferanten und Händler zurückliefern, die nicht 'ungültig' markiert sind.
Spalte taxzone_id darf nicht NULL sein.
Spalte "ordnumber" oder "quonumber" muss eindeutig sein.
Die Funktion "Zahlung buchen" bei Debitorenrechnungen komplett umgeschrieben. Sie verlässt sich nun nicht mehr auf die aktuellen Daten in $form, um die alten Einträge in acc_trans zu löschen, sondern lädt den vorherigen Stand aus der Datenbank, entfernt darauf basierend die Einträge in acc_trans und lässt AR->post_transaction() selber die Zahlungen eintragen.
Copy & Paste-Fehler
Auch bei undefinierten Wechselkursen 1 zurueckliefern, Workaround fuer Wechselkursproblem
Debug-Code entfernt.
Copy&Paste-Fehler.
Die Funktion "Zahlung buchen" bei Ausgangsrechnungen komplett umgeschrieben. Sie verlässt sich nun nicht mehr auf die aktuellen Daten in $form, um die alten Einträge in acc_trans zu löschen, sondern lädt den vorherigen Stand aus der Datenbank, entfernt darauf basierend die Einträge in acc_trans und lässt IS->post_transaction() selber die Zahlungen eintragen.
Revision 2532 rückgängig gemacht (Befehl aus falschem Verzeichnis abgeschickt)
Merge der Änderungen zwischen https://ls-bs-si1.bs.linet-services.de/svn/prog/vendor/lxoffice-erp/2.4.2 und https://ls-bs-si1.bs.linet-services.de/svn/prog/vendor/lxoffice-erp/unstable-rev-2530
Verkaufsrechnung: Die Drop-Down-Box für den Bearbeiter heißt nun employee_id (wie auch in oe.pl) und wird richtig befüllt und vorausgewählt.
Wechselkurse dürfen nicht 0 sein.
Debugmeldungen entfernt
Die Funktion "Zahlung buchen" bei Eingangsrechnungen komplett umgeschrieben. Sie verlässt sich nun nicht mehr auf die aktuellen Daten in $form, um die alten Einträge in acc_trans zu löschen, sondern lädt den vorherigen Stand aus der Datenbank, entfernt darauf basierend die Einträge in acc_trans und lässt IR->post_transaction() selber die Zahlungen eintragen.
Wenn der Benutzer Leerzeichen am Ende will, dann diese nicht entfernen.
Überarbeitung der Ausgabe der Kontenansichten. Alle Buchungen - bis auf stornierte - werden gruppiert (je nach Sortierung) angezeigt.
Codevereinfachung
Eine Funktion zum tabellarischen Ausgeben von SQL-Ergebnissen (erwartet eine Referenz auf ein Array mit Hashreferenzen) hinzugefügt.
Die Ausgabe von Data::Dumper sortieren lassen, damit sie besser durchsuchbar ist.
Funktion zum Dumpen von Objekten via YAML hinzugefügt. Ist manchmal besser lesbar als die Ausgabe von Data::Dumper;
Rückwärtskompatibilität mit in der Datenbank gespeicherten Entwürfen, bei denen noch '!!' zum Escapen benutzt wurde.
Beim Emailversand von Mahnungen wurden die falschen Dateinamen benutzt, sodass die angehängten PDFs leer waren.
Aus Debuggründen war $dbh->commit() auskommentiert, sodass Änderungen bei den Mahnungen nicht dauerhaft waren.
Mahnwesen:1. Neues Feature: Automatisches Erzeugen von Debitorenrechnungen über die Mahngebühren und -zinsen. Diese werden ebenfalls als PDFs ausgegeben.2. Neues Feature: Beim Bericht über aktive Mahnungen ermöglichen, dass mehrere Mahnungen und die eventuell dazu erstellen Debitorenrechnungen auf einmal ausgedruckt werden können....
Minimale Erweiterung um PlainTextTemplate, um Variablen in Strings leicht ersetzen zu können.
Das Escapen von Ausrufezeichen darf nicht durch zwei Ausrufezeichen geschehen, weil die Rückwandlung sonst eventuell falsch verläuft.Beispiel:abc!nop -> abc!!nop -> abc!\nop
Beim Speichern von Angeboten etc den Bearbeiter nicht aus $form->{employee} ableiten, weil die Drop-Down-Box jetzt $form->{employee_id} heißt.
Diverse Listen nach Namen sortieren. Fix für Bug 661.
Das Filtern von Angebots-/Auftrags-/Anfragenberichten nach dem Bearbeiter ermöglicht.
Bug: Bind Variable wurde mitgegeben, aber nicht verwendet
storno_id spalte in ap, und die dazugehoerigen aenderungen in AP->post_transaction
Bindestriche und ID aus den PopupMenus entfernt und in der FOrm.pm die Speicherung der Historie angepasst, damit nur der aktuell eingeloggte Bearbeiter gespeichert wird und somitManipulationen vermieden werden können.
fix von salesmen und employee bzw. split in zwei eigenständige Funktionen durch get_list aufgerufen. Fixing von Bug 658
Gutschriften heben jetzt auch den Lagerbestand an (Bug 636)
storno_id spalte in ar eingefuegt, und die post_transaction angepasst um diese auch zu nutzen
zusaetzlich zu der vorhandenen has_storno funktion (bugfix)eine is_storno funktion die die halbherzigen checks auf das mitgeschleifte $form->{storno} ersetzt
Die Funtktionen save_form() und restore_form() aus common.pl in ein eigenes Modul verlagert, das sie auch automatisch in den Namensraum des Aufrufers exportiert. Damit können sie auch von den Modulen in SL/ benutzt werden.
Die ausgewiesenen Mahngebühren gelten pro Rechnung, nicht pro erzeugter Mahnung, auch wenn Rechnungen in einer Mahnung zusammengefasst werden.
Auch die ID des Kontos zurückliefern.
Beim Erstellen eines Lieferantenauftrages aus einem Kundenauftrag wird überprüft, ob eine Lieferadresse ausgewählt oder eingegeben war. Wenn ja, so wird der Benutzer gefragt, ob er diese Lieferadresse beibehalten will, damit der Lieferant direkt an den Kunden liefern kann.