Zeiterfassung: Im Bericht Einträge als gebucht markieren können, …
… wenn man das Recht hat, alle zu ändern.
Zeiterfassung: Auch beim Laden entsprechende Eingabe-Felder sperren:
- wenn Auftrag ausgewählt. so ist Kunde und Projekt gesperrt- wenn Projekt ausgewählt, und Projekt einen Kunden hat, so ist Kunde gesperrt
Zeiterfassung: Eingabe: keine Angebote in Auftragsliste anzeigen
E-Mail-Versand: CC an andere kivi-Benutzer per Auswahlliste
Zeiterfassung: Summe der Dauern mit Kontroll-Zeile anzeigen
S:C:H:ReportGenerator: Interface und Impmentierung von Kontroll-Zeilen
Es wurde eine Schnittstelle geschaffen, um Kontroll-Zeilen an denReportGenerator-Helfer zu übergeben.Umgesetzt sind Kontroll-Zeilen für einen Separator und für eigene Daten.
Zeiterfassung: Bei Projekten nur Projektnummer und Beschreibung anzeigen
Projekt-Picker: Stil der Beschreibung angeben können
dem Picker kann mit "description_style" mitgegeben werden, wie dieErgebnisse angezeigt werden. Mögliche Werte: "both", "number","description" und "full" (in SL::DB::Project->full_description)definiert).
Zeiterfassung: Bericht: Filter f. Auftragsnummer, Projekt und Beschreibung
Zeiterfassung: Eingabe: Einträge f. andere Mitarbeiter erlauben, wenn berechtigt
Hier reicht es, beim init_time_recording den Mitarbeiter für neue Einträgeauf den akuellten Bearbeiter zu setzen, wenn kein anderer Mitarbeiter aus derForm/Maske kommt.Die Rechte-Prüfung wird dann ohnehin im run_before-Hook 'check_auth_edit'...
Zeiterfassung: Placeholder-String im Template ermitteln
Zeiterfassung: Dauer und Min mit Attribut Placeholder vorbelegen
Zeiterfassung: Eingabe: Dauer auf 0 setzen können
Zeiterfassung: Eingabe: Aufträge nur mit Nummer und Kunden anzeigen
Zeiterfassung: Bei Projektauswahl ggf. Kunde daraus setzen
Wenn ein Projekt ausgewählt wird und dieses einen Kunden zugeordnet hat,so wird der Kunde daraus gesetzt und das Kunden-Feld gesperrt.
Wenn kein Projekt gewählt ist (oder eines wieder abgewählt wird,...
Zeiterfassung: Eingabemaske: Dauer auch in Stunden angeben können
Zeiterfassung: Controller: falsche Methodennamen korrigiert
Zeiterfassung: Eingabemaske und Bericht: Reihenfolge erst Projekt, dann Artikel
Zeiterfassung: Auftrag im Bericht anzeigen
Zeiterfassung: Auftrag auswählen können, Kunden und ggf. Projekt daraus setzen
Auftrag hat Vorrang und setzt Kunde und Projekt. Diese Felder sind danngesperrt.Wenn kein Auftrag gewählt ist (oder einer wieder abgtewählt wird,dann ist Kunde und Projekt wieder frei.
Zeiterfassung: Datum/Dauer statt Start/Ende wählbar (Benutzereinstellung)
Zeiterfassung: Erweiterung f. Datum und Dauer: DB-Upgrade/Rose; Berichtsanzeige
Zeiterfassung: Bericht: Titel auch im Browser-Titel
Zeiterfassung: Bericht: "gebucht" anzeigen und danach filtern können
Zeiterfassung: Artikel beim Erfassen wählen können und mit auflisten
Zeiterfassung: SimpleSettings für Artikel
Zeiterfassung: Keine Zeiterfassungstypen mehr
Revert "Zeiterfassung: SimpleSystemSettings für Typen"
This reverts commit d01aad90ec0e0f0800037e9753acbacccf819a0c.
Conflicts: menus/user/10-time-recording.yaml
Zeiterfassung: Mitarbeiter ändern können bei entspr. Recht
Zeiterfassung: Filtereinstellungen f. callbacks merken
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...