zu 52f5223a1dcf, mehr als einen Filter im SQL-Statement erlauben
Mahnungsbericht: Anzeige f. Dokumente/Mails abschaltbar
Mahnungsbericht: E-Mails f. Mahnungen anzeigen
Verknüpfung zum E-Mail-Journal für Mahnungen.
Mahnungen: Rechnungsnummer der Mahnrechung im PDF-Dateinamen statt dunning_id
Der Dateiname wird auch als Name des Anhangs bei Mailversand verwendet und dannsieht es besser aus, wenn der Name auch mit der Rechnunsgnummer übereinstimmt.
Mahnungen: Status-Bericht nach Mahnlauf mit evtl. Fehlermeldungen.
Das Erzeugen der Mahnungen erfolgt je nach ausgewählten Rechnungen in mehrerenSchritten (Zusammenfassen je Kunde und Mahnlevel oder auch einzeln für jedeRechnung).Hierbei können in einem Schritt durchaus Mahnungen für einen Kunden oder einen...
Mahnungen: PDF an Drucker schicken: Druckbefehl erst prüfen, dann verwenden
Einfachen Presenter f. Webdav-Objekte
SL::Presenter::FileObject: link_tag verwenden
S:P:Dunning: Link führt nicht mehr zum Drucken, sondern zum Mahnungsbericht, …
… gefiltert für diese Mahnung. Hier kann man die Details sehen und auch drucken.
S:P:Dunning: Link mit link_tag erzeugen
S:P:Dunning: unbenutzten Parameter "type" entfernt
Mahnbericht: Nach Mahnungsnummer filtern können und diese Anzeigen
Mahnungsbericht: zweite Sortierung (fast) immer nach Mahnungslauf …
… bzw. dunning_id. Damit bleib das Zusammenfassen mehrer Rechnungen einesLaufes beim Sortieren erhalten, falls möglich.
Mahnungen: DMS/WebDAV: erzeugte Dokumente nach Mahnlauf ablegen.
Und zwar außerhalb der Transaktion und nur wenn diese erfolgreich war,sonst können bei eine abgebrochenen Transaktion abgelegte Dokumentevorhanden sein, ohne das eine Mahnung oder Mahnrechnung in der DB existiert.
Mahnungen: DMS/WebDAV: erzeugte Dokumente zum Mahnlauf ablegen …
und nicht zur gemahnten Rechnung.
Dateimanagement: Mahnung: Mahnrechnung bekommt Typ dunning_invoice statt dunning
Hintergrund: Es soll umgestellt werden, dass bei einem Mahnlauf erzeugteDokumente zur Mahnenden Rechnung gespeichert werden. Sattdessen sollen diesezum Mahnlauf gespeichert werden. Dazu wird dann der object_type "dunning"...
SL::Auth: Typo in Methodennamen korrigiert: create_unique_sesion_value …
-> create_unique_session_value
MT940: Zeichensatz der Datei bei Import auswählen können
MT940: Multi-Line-Varianten von Tag 86 unterstützen
Presenter: SL::Presenter::FileObject in ALL laden
Mahnungen: beim erneuten Drucken ggf. auch originale Rechnung mit drucken, …
… sofern diese beim Mahnlauf mit gedruckt wurde.
Mahnungen: merken, ob die originale Rechnung gedruckt wurde: DB+Rose
SL::DN: print_original_invoices in print_original_invoice umbenannt, …
… da nur eine Rechnung gedruckt wird.
SL::DN: überflüssigen Parameter dbh für print_original_invoices entfernt
Mahnungen: alle erzeugten Dokumente zu jeder gemahnten Rechnung ins WebDAV
Mahnungen: DMS: orig. Rechnung als eigenen Typ
Mahnungen: alle erzeugten Dokumente zu jeder gemahnten Rechnung im DMS ablegen
Dazu die Dateien nicht mehr in SL::Form::parse_template speichern lassen,sondern in SL::DN selber für jede gemahnt Rechnung ablegen.
Mahnungen: PDF d. Rechnung über Mahngebühren im DMS speichern
Die Id der zugehörigen Rechnung ist in $invoice_id,nicht in $form->{invoice_id}.
Mahnung per Mail: auch Rechnung über Mahngebühren anhängen
Der Mailer erwartet den Pfad für das Attachment mit dem key "path",nicht "filename".Zudem übersetzten Anhang-Namen verwenden.
Mailer: unbenutzen Code entfernt
Dateimanagement: Download-Aktion: Version richtig interpretieren
Dateimanagement: Fileystem-Backend: aussagekräftigere Fehlermeldung
File-Helper: unbenutzten Parameter file_number entfernt
Mahnungsbericht: Erzeugte Dokumente anzeigen
einfacher Presenter für SL::File::Object
Mahnungsbericht: letzte Sortierung immer nach Mahnungslauf …
Order: Vorbelegte E-Mail-Texte für Fall Ansprechpartner aktiviert
Dateimanagement: größere Vorschaubilder beim Drüberfahren
S:C:H:ThumbnailCreator: Thumbnail-Größe übergeben können
Dateimanagement: Thumbnails erzeugen und anzeigen
Dateimanagement: Hochladen als andere Quelle f. EK-Belege
Also dort, wo bisher auch der Import vom Scanner möglich ist.
S:C:File: Import (scanner): Debug-Warnung, wenn Verzeichnis nicht geöffnet werden kann
Einkaufsrechnungen: Vorgangsbezeichnung speichern und danach suchen können
Artikelstamm: "Erneuert am" aus parts_price_history holen …
… und in "Preisänderung am" umbenennen.
Das ganze ist mit Rose gelöst und holt die Preise aus parts_price_history.Das hat den Nachteil, dass im Artikelbericht nicht nach der Preisanpassungsortiert werden kann und es wahrscheinlich nicht performant ist....
Auftrag-Controller: Vergleich des Beleg-Typs einheitlicher …
- Zum Typ-Vergleich die Typ-Funktionen verwenden.War hier kein Problem, kann aber Typos verhindern - dafür sind die Funktionengedacht gewesen.
- Auf type nicht als Hash-Key, sondern als Methode zugreifen....
Kosmetik: Auftrags-Controller: Typo in Funktionsname
Mandantenkonfig: Lieferdatum bei VK-Auftrag und Gültigsdatum bei VK-Angebot
Anstatt diese beiden Werte zu berechnen, gibt es die Möglichkeitdiese konfigurativ gar nicht zu setzen. Hoffentlich letzmalig auchfür die OE.pm implementiert.
Auftrags-Controller: auch bei E-Mail erzeugtes Dokument im WebDAV/DMS speichern
Brief: erzeugtes Dokument im DMS speichern
wiederkehrende Rechnungen: auch bei E-Mail erzeugtes Dokument im DMS speichern
Presenter::Tag: img_tag aus Plugin/L verschoben
Presenter::Tag: radio_button_tag aus Plugin/L verschoben
Mailer: überflüssigen Nicht-Standard-Header entfernt
Einen Header namens »Type« gibt's nicht. Vermutlich war »ContentType«gemeint, aber der wird definitiv anders gesetzt und nicht aufmultipart/mixed.
HTML zu LaTeX: gewisse kaputte Konstrukte vom CKEditor entfernen
Dazu gehören leere Listen <ul></ul> oder Paragraphen mitZeilenumbrüchen und non-breakable spaces <p><br><br> </p>
MT940: Zeile 61: Felder »Buchungsdatum« und »Währungsart« sind optional
MT940 parse Feld 25 nach östereichischen Vorgaben
Es scheint Konvention zu sein nach zwei // noch die Länderkennungin Feld 25 zu schreiben und mit der optional gültigen Währung zu endenRegex um exakt dieses Präfix vor BLZ/Kontoerkennung erweitert
Order-Controller: Knopf f. E-Mail-Aktion nach "Speichern und drucken" freigeben
S:C:H:ThumbnailCreator: POD: Modulname korrigiert und leere Abschnitte raus
SL/DB/Helper/ThumbnailCreator.pm wird nicht benutzt
siehe SL/DB/Controller/ThumbnailCreator.pm
File: POD-Korrektur: File-Typen sind singular
Mahnungen: Mit Rechnung verknüpfen
Erstellte Mahnungen werden mit den gemahnten Rechnungen verknüpft undunter "Verknüpfte Belege" gelistet.Außerdem werden Rechnungen über Mahnkosten wiederum zu den zugehörigenMahnungen verknüpft.
impl. #7440
DBUtils: Prüfung auf Trigram-Erweiterung aus S/D/ShopOrder in DBUtils verschoben
Order-Controller: Historienfunktion implementiert (aufzeichnen & anzeigen)
Order-Controller: Artikelklassifizierung berücksichtigen
GetModels Filtered: neuer Modifer »any« für logisches oder
Kann benutzt werden, um z.B. verschiedene Part-Klassifizierungs-IDs imFilter zu nutzen:
<input type="hidden" name="filter.classification_id:any" value="0 1 3">
Order-Controller: TODO »credit limit« entfernt
In Besprechung letzte Woche festgehalten, dass wir die Funktion erstmal nicht wieder implementieren.
Order-Controller: Workflow Lieferantenauftrag → Preisanfrage
Order-Controller: Workflow Verkaufsauftrag → Verkaufsangebot
SL::DB::Order: überflüssigen Code entfernt
S:C:Letter: toten Code entfernt
S:C:Letter: kivi.SalesPurchase.js laden
S:C:Letter: Sprache an Druck-Template weitergeben
SL::File: Debug-Warnung ausgeben, wenn eine Version nicht geholt werden kann
Fehler kann auftreten, wenn z.B. die Datei im Dateisystem nicht lesbar ist.
Auftrags-Controller: Artikel-Mehrfachauswahl auf die des PartPickers umgestellt
PartPicker: Mehrfachauswahl: Option um Positions-Eingabefed anzuzeigen
Die Eingabe kann im Callback verwendet werden, um die Artikel an bestimmtePositionen zu setzen.
PartPicker: Mehrfachauswahl: Option um Anzeige-Begrenzung zu setzen
Diese war vorher fest auf 100 eingestellt. 100 bleibt die Voreinstellung.
PartPicker: Option für Mehrfachauswahl als default merken
Damit lässt sich die Option via js ändern, um z.B. einen Dialogmit Mehrfachauswahl über einen Knopf zu öffnen, während dieFunktion der Lupe bei der Einfachauswahl bleibt (oder andersherum).
POD fix: Rose Syntax im Beispiel
Vergleichsoperatoren werden als Hash-Ref angegeben.
Revert "POD fix: Rose Syntax"
ilike gibt es doch.
This reverts commit 95f21f71c1c5c2f6cf6a281a0174d8f247be1135.
Syntaxfehler behoben
kam rein mit commit d919a7dcc958edf6c7cd2546690347ea9c157f6e(all_parts Erzeugnis EK als separate Spalte im Bericht)
all_parts Erzeugnis EK als separate Spalte im Bericht
Problem: Bei der Mischauswahl von Waren und Erzeugnissen indem Bericht erscheinen dann Waren mit dem EK des Erzeugnisses, derggf. 0 sein kann. Das irritiert stark, deswegen lieber eine extraSpalte für den Erzeugnis-Fall spendieren und den EK bei Waren als...
Standardlagerplätze in Part sortiert anzeigen
Projekt-Picker: exact match auf GetModels umgestellt
Projekt-Picker: Parameter f. aktiv/gültig
und Filter-Daten via data an js übergeben
Projekt-Picker-Lupe: Copy/paste und Anpassungen vom Chart-Picker
Zahlungsbedingungen Kreditorenbuchung leere Werte mit conv_i abfangen
Kommentar zum Payment-Helper
Außer in den Testfällen wird der Helper nicht mit einemnegativen Amount aufgerufen. Im Helper befindet sich etwaszuviel automagie. Eigentlich braucht man den Param amount nicht,wird aber überall in kivi übergeben. Eigentlich darf der negativ...
Zahlungsbedingungen Kreditorenbeleg Speichern und Laden in Maske
Das was Commit 8b5bed7fe5 versprochen hat, jetzt auch in Echt ;-)
BankTransaction: Filter nach Konteninhaber-Namen
Kunden/Lieferanten: UStId/Steuernr. eindeutig: Prüfung im Controller
Kunden/Lieferanten: UStId/Steuernr. eindeutig: Mandantenkonfiguration
Quick-Suche: `auth` == undef oder leerer String gefixt
Laut Doku in `SL/Controller/TopQuickSearch/Base.pm` bedeuten undefoder leerer String als Rückgabewert der Sub `auth`, dass dieses Modulfür alle Benutzer*innen zur Verfügung steht, unabhängig von deren...
Kundenstammdaten: beim Anlegen Verkäufer*in setzen wenn kein »edit all«-Recht
Personen, die nur »edit«-Rechte, nicht aber »edit all«-Rechte haben,dürfen nur noch eigene Kunden bearbeiten. Daher ist es sinnvoll, dassbeim Neuanlegen das Feld »Verkäufer*in« bereits auf die aktuelle...
Kunden-/Lieferantenstammdaten: Berechtigungsmodell gefixt
Neues Modell sieht wie folgt aus:
1. Alle Personen haben Leserechte auf alle Kunden- & Lieferantenstammdaten. Das betrifft nicht nur die Stammdatenmasken, sondern auch die AJAJ-Autovervollständigung (Kunden-/...
POD fix: Rose Syntax
Zeitvergleich braucht { . ilike gibt es nicht in Rose:like_operator => 'like', # only applicable to Postgres, defaulted to undef, i.e. render_as_table() uses 'ilike' for Postgres by default
Bericht Angebote/Aufträge: internen Bemerkungen filtern und anzeigen können
BT: Punkte. Copy & Paste Fehler von a695c behoben
open_amount mit open_amount vergleichen
S:C:H:ReportGenerator: Spalteninformationen einzeln zuweisen.
Hintergrund: Das "fat-comma (=>)" interpretiert seine rechte Seite imListenkontext, was dazu führen kann, dass der Hash, der aufgebaut werdensoll, durcheinander gerät, wenn z.B. $def->{sub} eine Liste zurückliefert...
Buchungsjournal: auch globale Projektnummer im Bericht mit anzeigen