Felix Eichler [Wed, 19 Sep 2018 10:02:40 +0000 (12:02 +0200)]
Mahnungen: Mit Rechnung verknüpfen
Erstellte Mahnungen werden mit den gemahnten Rechnungen verknüpft und
unter "Verknüpfte Belege" gelistet.
Außerdem werden Rechnungen über Mahnkosten wiederum zu den zugehörigen
Mahnungen verknüpft.
Bernd Bleßmann [Tue, 26 Jan 2021 11:29:31 +0000 (12:29 +0100)]
PartPicker: Option für Mehrfachauswahl als default merken
Damit lässt sich die Option via js ändern, um z.B. einen Dialog
mit Mehrfachauswahl über einen Knopf zu öffnen, während die
Funktion der Lupe bei der Einfachauswahl bleibt (oder andersherum).
Jan Büren [Tue, 26 Jan 2021 12:05:52 +0000 (13:05 +0100)]
all_parts Erzeugnis EK als separate Spalte im Bericht
Problem: Bei der Mischauswahl von Waren und Erzeugnissen in
dem Bericht erscheinen dann Waren mit dem EK des Erzeugnisses, der
ggf. 0 sein kann. Das irritiert stark, deswegen lieber eine extra
Spalte für den Erzeugnis-Fall spendieren und den EK bei Waren als
Spalte so lassen.
Jan Büren [Thu, 14 Jan 2021 13:44:25 +0000 (14:44 +0100)]
Zu ZB bei Kreditorenbuchung - Vorbelegung Stammdaten Lieferant
Falls kein invoice_obj vorhanden, wieder auf form->payment_id gehen,
da hier die Werte aus den Stammdaten des Lieferanten vorbelegt sind (!)
Jetzt müssten alle Fälle passen:
1. Gespeicherte Werte anzeigen, auch bei ungültigen ZB
2. Lieferanten-Werte aus Stammdaten übernehmen
3. Lieferanten-Werte beim Wechsel des Lieferanten übernehmen
Jan Büren [Thu, 14 Jan 2021 13:07:24 +0000 (14:07 +0100)]
Kommentar zum Payment-Helper
Außer in den Testfällen wird der Helper nicht mit einem
negativen Amount aufgerufen. Im Helper befindet sich etwas
zuviel automagie. Eigentlich braucht man den Param amount nicht,
wird aber überall in kivi übergeben. Eigentlich darf der negativ
sein, verfälscht aber das multiplizieren im Helper.
Bernd Bleßmann [Thu, 7 Jan 2021 17:30:32 +0000 (18:30 +0100)]
locales-Skript: all/more berücksichtigen, …
indem Texte, die ausschließlich dort vorhanden sind, nicht in all
eingetragen werden. Texte, die vorher schon in all sind, bleiben aber
erhalten. Das sind dann (vermutlich) die Texte, die in more für ein
Kundenprojekt eine andere Übersetzung haben sollen (und nicht neu hinzu
kamen).
Moritz Bunkus [Mon, 4 Jan 2021 12:50:05 +0000 (13:50 +0100)]
Quick-Suche: `auth` == undef oder leerer String gefixt
Laut Doku in `SL/Controller/TopQuickSearch/Base.pm` bedeuten undef
oder leerer String als Rückgabewert der Sub `auth`, dass dieses Modul
für alle Benutzer*innen zur Verfügung steht, unabhängig von deren
vorhandenen Gruppenrechten.
Moritz Bunkus [Thu, 17 Dec 2020 10:37:35 +0000 (11:37 +0100)]
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, dass
beim Neuanlegen das Feld »Verkäufer*in« bereits auf die aktuelle
Person gesetzt ist.
1. Alle Personen haben Leserechte auf alle Kunden- &
Lieferantenstammdaten. Das betrifft nicht nur die Stammdatenmasken,
sondern auch die AJAJ-Autovervollständigung (Kunden-/
Lieferanten-Picker) oder die Detail-Popup-Fenster in Einkaufs-/
Verkaufsbelegmasken.
2. Personen mit »edit«-Recht aber ohne »edit all«-Recht dürfen nur die
eigenen Kundenstammdaten verändern (speichern/löschen), wobei
»eigen« definiert ist als »aktuelle Person ist Verkäufer*in des
Kunden«. Neue Kunden dürfen angelegt werden. Bei Lieferanten dürfen
hingegen alle Stammdaten bearbeitet werden.
3. Personen mit »edit all«-Recht haben Vollzugriff auf alle Kunden- &
Lieferantenstammdaten.
Jan Büren [Fri, 1 Jan 2021 09:46:24 +0000 (10:46 +0100)]
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
Hintergrund: Das "fat-comma (=>)" interpretiert seine rechte Seite im
Listenkontext, was dazu führen kann, dass der Hash, der aufgebaut werden
soll, durcheinander gerät, wenn z.B. $def->{sub} eine Liste zurückliefert
oder gar nichts ($def->{sub} = sub { return }).
Interessant im Zusammenhang:
https://stackoverflow.com/questions/3435122/whats-the-difference-between-return-and-return-undef-in-perl
Bernd Bleßmann [Mon, 14 Dec 2020 16:28:32 +0000 (17:28 +0100)]
Menü Produktivität: Zugriffsrechte nicht am Haupteintrag fest machen …
und eigene Zugriffssregel für E-Mail-Journal.
So kann z.B. das Recht, E-Mail-Journal ansehen, getrennt von der
Produktivität gesetzt werden.
Ein Hauptmenüpunkt wird nicht angezeigt, wenn keiner seiner Kinder
(z.B. wg. fehlender Rechte) angezeigt wird - wenn also keines der Rechte
vorhanden ist, so wird, wie vorher auch, der Haupteintrag auch nicht
gezeigt.
Jan Büren [Mon, 28 Sep 2020 15:24:57 +0000 (17:24 +0200)]
Dialogbuchungen um Boolean imported erweitert.
Buchungen mit diesem Boolean können beim DATEV-Export
gefiltert werden. Anwendungsfall sind bspw. in DATEV
erstellte Lohnbuchungen, die dann in kivi importiert werden
Jan Büren [Mon, 14 Dec 2020 08:31:32 +0000 (09:31 +0100)]
GLTransaction:: add_chart_booking um get_active_taxkey erweitert
Der Aufruf von add_chart_booking muss sich nicht mehr
darum kümmern welcher Steuerschlüssel gesetzt sein muss, wenn
er einfach nur den vorkonfigurierten Steuerschlüssel setzen will.
Dementsprechend ist param{tax_id} kein Pflichtparameter mehr.
POD ergänzt und mit Testfällen abgesichert (19% / 16% Fall).
Moritz Bunkus [Fri, 11 Dec 2020 10:07:47 +0000 (11:07 +0100)]
Artikelstammdaten: in Übersetzungen Zeilenumbrüche verwenden können
Das Eingabefeld für die Beschreibung im Basisdaten-Tab erlaubt die
Eingabe von Zeilenumbrüchen. Daher muss das auch für die übersetzen
Beschreibungen gehen.
Jan Büren [Wed, 9 Dec 2020 10:35:59 +0000 (11:35 +0100)]
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
einen Beleg gebucht hat. Das ist mittlerweile besser gelöst.