Zeiterfassung: Recht f. Bearbeitung aller Einträge berücksichtigen
Zeiterfassung: Beim Bearbeiten fremder Einträge, Mitarbeiter behalten
Zeiterfassung: Recht berücksichtigen, Einträge von anderen (nicht) zu sehen
Zeiterfassung: Defaultfilter: aktueller Benutzer, letzte 2 Wochen
Zeiterfassung: Nur nicht-gelöschte Mitarbeiter angezeigen
Zeiterfassung: Ein Recht dafür
Zeiterfassung: Controller
Zeiterfassung: SimpleSystemSettings für Typen
Order: Warnung/Fehler bei Liefertermin auch bei kombinierten Export-Aktionen
Order-Controller: Neue Action preview_pdf (Druckvorschau für PDFs)
Artikel-BDVs unter Basisdaten anzeigen, falls konfiguriert
Die benutzerdefinierten Variablen für Artikel können konfigurierbar im Tab Basisdatenangezeigt werden
locales Lauf "de" überwiegend Shopübersetzungen
Dateianhänge aus Projekten auch in E-Mail anzeigen
In Anlehnung an odyn fa2f21bb7d9247782f5eIm E-Mail-Dialog werden hochgeladene Dateianhänge aus einemglobalen Projekt angeboten und sind vorausgewählt.
Projekte: Dateianhänge auch für Projekte
Cherry-pick aus odyn (Upgrade Skript entsprechend geändert)implemntiert EGW #6889
WebshopApi: Controller/ShopOrder.pm überarbeitet
CSV-Import CustomerVendor: Warnungen wegen nicht initialisierter Variable vermeiden
CSV-Importe: Warnungen wegen nicht initialisierter Variable vermeiden
CsvImport: Mulitplex: handle_cvars-Routine verlassen, wenn Objekt keine CVars kann
CsvImport: Bei Imports ohne CVars deren Standard setzen, wenn vorhanden.
CsvImport: Parts: CVars von handle_cvars behandeln lassen.
Dabei aber beachten, dass das bei einen Import, wo nur die Preise aktualisiertwerden sollen, nicht geschieht.
CSV-Import: CustomerVender benutzerdefinierte Variable aktualisieren
handle_cvars erst aufrufen, wenn das zu speichernde Objekt bekannt ist. Dasbetrifft den Fall, wenn vorhandene Objekte aktualisiert werden sollen.
behebt #237 (redmine)
CsvImport: handle_cvars: CVars für das zu speichernde Objekt setzen.
Revert "CSV-Import: CustomerVender benutzerdefinierte Variable aktualisieren"
This reverts commit a8628c6af6ab8303fe67d874adbee0211bd86c1e.
Hier wird das eigentliche Problem nur umgangen.Zudem, wie im commit schon erwähnt, sollte handle_cvars nur einmal aufgerufen...
CsvImport: CustomerVendor: Nummer vom Helper des Objekts vergeben lassen.
Vorher wurde hier SL::TransNumber verwendet - das ist kein Problem, aber diees den Helper gibt, ist das hier einfacher.
Zudem wurde vorher auch eine neue Nummer für die zu aktualisierenden Objekte...
CsvImport: Im Report die Werte des gespeicherten Objekts speichern.
Bei den Workern, die Objekte aktualisieren können, kann statt dem objectdas object_to_save gespeichert werden. Die Werte dieses Objekts sollten imReport angezeigt werden, auch wenn die eigentlich gleich sein müssten....
Dateimanagement: größere Vorschaubilder: Versionen berücksichtigen
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
Mahnungen: DMS: orig. Rechnung als eigenen Typ
Dateimanagement: Download-Aktion: Version richtig interpretieren
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
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
Order-Controller: Knopf f. E-Mail-Aktion nach "Speichern und drucken" freigeben
S:C:H:ThumbnailCreator: POD: Modulname korrigiert und leere Abschnitte raus
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
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
S:C:Letter: toten Code entfernt
S:C:Letter: kivi.SalesPurchase.js laden
S:C:Letter: Sprache an Druck-Template weitergeben
Auftrags-Controller: Artikel-Mehrfachauswahl auf die des PartPickers umgestellt
PartPicker: Mehrfachauswahl: Option um Anzeige-Begrenzung zu setzen
Diese war vorher fest auf 100 eingestellt. 100 bleibt die Voreinstellung.
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.
Standardlagerplätze in Part sortiert anzeigen
Projekt-Picker: exact match auf GetModels umgestellt
Projekt-Picker-Lupe: Copy/paste und Anpassungen vom Chart-Picker
BankTransaction: Filter nach Konteninhaber-Namen
Kunden/Lieferanten: UStId/Steuernr. eindeutig: Prüfung im Controller
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
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...
Merge branch 'f-factur-x-und-xrechnung'
Kontoauszug verbuchen: Vorschlagsliste verbessern
- Kommentar stimmt nicht mit dem Code überein.- Die Prüfung verhindert das Banktransaktionen mit einer Summe größer der Rechnungssumme als Vorschlag zugewiesen werden. Das war wichtig, weil der Payment-Helper zu Beginn immer die komplette Bankbewegung auf...
Order-Controller: Umwandlung: gemeinsamen Code in eigene Funktion ausgelagert
Factur-X/ZUGFeRD-Import: Falsche Nutzung von t8() für Fehlermeldung korrigiert
Factur-X/ZUGFeRD: in »Factur-X/ZUGFeRD« umbenannt
Mit ZUGFeRD-Standard Version 2.1.1 ist der offizielle Name desEU-Standards schlicht Factur-X. ZUGFeRD ist nur noch der toleriertealte Name.
In der Oberfläche ist nun überall von »Factur-X/ZUGFeRD« die Rede....
CSV-Import Waren: bestehende Makemodels als Array, nicht als Array-Ref
makdemodels verhält sich als makemodels_sorted: Die von Rose erzeugte Methodeberücksichtig offenbar den Kontext - makemodels_sorted gibt immer ein array-ref
[$part->makemodels_sorted] ergibt [ [] ]...
CsvImport: dateformat Unterstützung
default ist auf dem dateformat des Benutzers
Massenerstellen von RG aus LS: geschlossene LS nicht (erneut) verarbeiten
Geschlossene Lieferscheine werden nicht zum Umwandeln in der Liste angezeigt,das war auch bisher so. Aber weenn man nach dem Erzeuigen der Rechnungen vonder Folgeseite den Browser-Zurück-Knopf drückt, konnten aus den selben...
Massenerstellen von Rechnungen aus LS: sumbit direkt von der Aktion machen
Das submit, das die Umwandlung der Rechnungen startet, kann direkt über dieActionBar angegeben werden. Damit fällt die js-Funktion ganz weg.
Massenerstellen von Rechnungen aus LS: Aktion nur einmal ausführen
Dafür den Action-Parameter only_once verwenden.Damit das aber klappt, muss die Prüfung, ob etwas angehakt ist, auch als checkan die Action gehängt werden. Denn sonst wird der Knopf abgeschaltet, auch wenn...
Neuer Auftragscontroller: veralteten TODO-Eintrag gelöscht
Neuer Auftragscontroller: Drucker-ID an Template-Auswahlmechanismus durchreichen
Der Auswahlmechanismus kann bei der Suche nach der zu verwendendenVorlage das beim Drucker hinterlegte Vorlagenkürzelberücksichtigen. Dafür muss er aber auch gesagt bekommen, welcher...
Pflichtenhefte: Gültigkeitsdatum in Angeboten auch ohne Zahlungsbedingungen setzen
Neuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 3
Die longdescription wird jetzt doch als Hidden im Formular mitübertragen. Dadurch werden gewisse Randfälle und Diskrepanzen zwischenForm-Inhalt und Datenbank-Inhalt vermieden. Nur hiermit ist es jetzt...
Neuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 2
Bei Funktion »Artikeldaten aus Stammdaten holen«.
Funktioniert noch nicht für die Langbeschreibung, weil die Funktiondas von der Architektur her bisher gar nicht unterstützt.
Neuer Angebots-/Auftragscontroller: Unterstützung für Artikelübersetzungen 1
Bisher nur beim Hinzfügen von Artikeln.
Neuer Angebots-/Auftragscontroller: Sprach-Drop-Down aus Print-Optionen in Hauptbeleg verschoben
Employee-Controller: beim Gelöscht-Setzen Verknüpfung in Auth-DB lösen
Beim Anlegen von Benutzer*inen in der Auth-DB werden sie nichtzwangsweise auch in der Mandanten-DB angelegt, z.B. wenn die in demMoment noch nicht existiert. Daher werden bei jedem Login in einem...
MT940-Import: Implementation eines eigenen Parsers anstelle von AQBanking
Inventur-Modul: DateTime-Methode heißt subtract, nicht substract
Warenimport: Auch für object_to_save priceupdate berechnen
Ansonsten wird in neuer Preis angelegt, aber in der Basis-Maskestimmt die Information "Erneuert am" dann nicht. Das istetwas irreführend.
CSV-Import Waren: Fehlermeldungen verbessern bei nicht vorhandenen Warengruppen
Auftrags-Controller: Wiedervorlage: kein Fehler anzeigen , wenn kein Recht, …
… sondern nur die Action nicht anzeigen.
Sonst kann man gar keine Angebote/Aufträge erstellen/öffnen, wenn man das"productivity"-Recht nicht hat.
Dank an Sven.
Auftrags-Controller: Wiedervorlage
Hier werden die vorhandenen Funktionenn und das Template verwendet, wobeidie Eingabemaske in einem eigenen Browser-Fenster gerendert wird.
Todo: Umstellung auf Dialog für alle Masken (evtl. ein eigenerFollowUp-Controller und Methoden dafür in SL::DB::FollowUp)...
S:C:CustomerVendorTurnover: Sortierung der Belege absteigend nach Datum
S:C:CustomerVendorTurnover: unnütze Zeile weg
E-Mail Betreff auch mit Kundenbestellnummer vorbelegen.
Auftrags-Controller: Beleg neu Laden nach Mail
Damit sind auch die verknüpften Belege, in denen die Mail verlinkt ist,aktualisiert.
Auftrags-Controller: Beleg-Id für Mailer setzen, damit verknüpft wird
Das sit nur nötig, wenn vor dem Mailen nicht gespeichert wurde. Daswurde zwar gerade erzwungen, aber falls es wieder rausgenommen wird,funktioniert die Verknüpfung auch.
Order-Controller E-Mail nur nach Speichern möglich
Hotfix um einen wirklich gesicherte $::form zu haben
Auftrags-Controller: Speichern und E-Mail-Dialog über vorhandene Funktion
Die js-Funktion email() tut praktisch das gleiche wie save(). Dann kannauch diese benutzt werden.Damit auch klar ist, dass vor dem Aufruf des E-Mail-Dialogs gespeichertwird, ist die action im Controller umbenannt worden.
Auftrags-Controller: Vor dem Aufruf des E-Mail-Dialogs speichern
Das geschieht zwar auch beim Verschicken der Mail wenn man den Dialog bestätigt,aber beim Speichern wird die Belegnummer generiert, die sonst beiungespeicherten Belegen im Dialog selbst (für den Betreff) nicht zur Verfügung...