Sven Schöling [Wed, 14 Feb 2018 15:13:03 +0000 (16:13 +0100)]
InstallationCheck: String::Shellcode nicht zur compilezeit laden
Sven Schöling [Wed, 14 Feb 2018 13:02:48 +0000 (14:02 +0100)]
TopQuickSearch::Contacts: direkt auf den Ansprechpartner tab springen
Sven Schöling [Wed, 14 Feb 2018 13:02:16 +0000 (14:02 +0100)]
Controller::Base: url_for unterstützt jetzt URI fragments.
Sven Schöling [Tue, 19 Jul 2016 12:03:50 +0000 (14:03 +0200)]
js: tab-widget cookie ignorieren wenn url hash vorhanden
Unter bestimmten umständen funktioniert das direkte Springen auf einen
Tab sonst nicht.
Sven Schöling [Tue, 13 Feb 2018 13:11:17 +0000 (14:11 +0100)]
Part/Customer/Vendor: Bei click auf ein autocomplete item sofort committen
Betrifft nur die beiden schon auf commit umgestellten Picker. Historisch
benutzen die Picker ein zweistufiges Modell: Nach Texteingabe wird bei
der ersten aktion (sei es tab oder enter) erstmal vervollständigt, aber
nicht committed. Erst wenn dadurch die Maske in einen definierten
zustand gerät wird beim zweiten tab committed.
Es gibt aber diverse Szenarien wo die Absicht des Benutzers eindeutig
ist. Dabei kann dann der zweite Schritt übersprungen werden. Bisher war
das vor allem Texteingabe die eindeutig gematcht hat und dann mit Enter
abgeschlossen wurde. Der Klick auf ein Element im Drop-Down ist aber
definitiv auch ein solcher Fall.
Sven Schöling [Tue, 13 Feb 2018 13:03:45 +0000 (14:03 +0100)]
HTML Menü: Javascript ausgelagert in eigene Datei
Sven Schöling [Tue, 13 Feb 2018 13:01:20 +0000 (14:01 +0100)]
Menü: CSS-Klasse an offene Menüeinträge setzen
Damit ist es möglich, in Stylesheets zwischen offenen und
geschlossenen Menüs zu unterscheiden.
Sven Schöling [Tue, 13 Feb 2018 12:45:00 +0000 (13:45 +0100)]
ustva: verwaiste Funktion entfernt
Sven Schöling [Tue, 13 Feb 2018 12:44:39 +0000 (13:44 +0100)]
Form: verwaiste Funktionen entfernt
Bernd Bleßmann [Wed, 7 Feb 2018 12:30:25 +0000 (13:30 +0100)]
Auftrags-Controller: Workflow von Angebot nach Auftrag (Ein- und Verkauf).
Bernd Bleßmann [Wed, 7 Feb 2018 12:29:18 +0000 (13:29 +0100)]
SL::DB::Order->new_from implementiert.
Im Moment nur von Angeboten zu Aufträgen (Ein- und Verkauf).
Bernd Bleßmann [Fri, 2 Feb 2018 13:32:15 +0000 (14:32 +0100)]
Auftrags-Controller: Speichern nicht accesskey "enter"
Bernd Bleßmann [Wed, 31 Jan 2018 14:38:51 +0000 (15:38 +0100)]
Auftrags-Controller: Angebote/Anfragen: Übersetzungen
Bernd Bleßmann [Wed, 31 Jan 2018 14:09:49 +0000 (15:09 +0100)]
Auftrags-Controller: auch für Angebote/Anfragen
Moritz Bunkus [Wed, 7 Feb 2018 09:48:29 +0000 (10:48 +0100)]
Zahlungsbedingungen bei Kundenwechsel aus Stammdaten holen
`IS::get_customer` kann die Entscheidung, ob die Zahlungsbedingungen
überschrieben werden sollen oder nicht, gar nicht treffen, weil es
nicht genug Informationen hat. Nur der Aufrufer hat die, und daher
muss `IS::get_customer` den Wert immer aus den Kundestammndaten
übernehmen.
Bernd Bleßmann [Wed, 7 Feb 2018 09:56:14 +0000 (10:56 +0100)]
Auftrags-Controller: Telmplate: '$' vor T8-Filter
Jan Büren [Wed, 7 Feb 2018 09:19:08 +0000 (10:19 +0100)]
Hinweis in UPGRADE: Fallback-Module entfernt.
Jan Büren [Wed, 7 Feb 2018 07:58:26 +0000 (08:58 +0100)]
Behebt: #343 Kontoauszug verbuchen Skontoautomatik bei Verkaufsrechnungen defekt
Werner Hahn [Tue, 6 Feb 2018 12:00:38 +0000 (13:00 +0100)]
p.link_tag anstatt p.link in bank_transactions Templates
Sven Schöling [Tue, 6 Feb 2018 10:45:17 +0000 (11:45 +0100)]
DATEV: Testanpassungen
Sven Schöling [Tue, 6 Feb 2018 10:10:34 +0000 (11:10 +0100)]
modules/fallback: Module entfernt.
In modules/fallback sollten nur module stehen die:
a) für installationcheck gebraucht werden oder
b) nicht per apt installierbar sind
Das gilt für die folgenden Module schon lange nicht mehr:
* DateTime::Set
* Email::Address
* List::MoreUtils
* List::UtilsBy
* PBKDF2::Tiny
* Regexp::IPv6
* Set::Infinite
* String::ShellQuote
* parent
Dabei waren DateTime::Set und Set::Infinite als Anhängigkeiten von
DateTime::Event::Cron reingekommen, das gibt es aber zusammen mit
Set::Crontab immernoch nicht in apt, also ist das weiter im fallback.
List::MoreUtils und List::UtilsBy sind meine ich für Debian 5
reingekommen, die Pakete sind aber seit Ewigkeiten in apt verfügbar.
parent ist seit 5.10.1 ein coremodul.
Die anderen wurden anscheinend einfach so reingeworfen, und hätten da
nie drin sein sollen.
Sven Schöling [Mon, 5 Feb 2018 13:28:05 +0000 (14:28 +0100)]
scripts/dbupgrade2_tool.pl: Datenbankverbindungen mit SL::DB->client
Sven Schöling [Mon, 5 Feb 2018 13:24:25 +0000 (14:24 +0100)]
AM::_get_warehouse: schnelleres Query
Das alte war extrem langsam für Installationen mit vielen Lagerplätzen
G. Richardson [Fri, 2 Feb 2018 13:39:14 +0000 (14:39 +0100)]
Typo in POD
Moritz Bunkus [Wed, 31 Jan 2018 13:55:36 +0000 (14:55 +0100)]
Aufträge speichern: Warnung bzgl. existierender wiederkehrender Rechnungen gefixt
Behebt #341.
Bernd Bleßmann [Wed, 31 Jan 2018 13:10:25 +0000 (14:10 +0100)]
Datepicker bei vorauss. Auftragsdatum: kein 'BL' mehr
Das war evtl. da, um den Datepicker bottom-left anzuzeigen, aber so geht das
nicht.
Sven Schöling [Tue, 30 Jan 2018 09:59:40 +0000 (10:59 +0100)]
PriceSource: unknown Flag um "fast" korrekt durchzureichen
Sven Schöling [Tue, 30 Jan 2018 09:59:07 +0000 (10:59 +0100)]
PriceSource: fast Flag für zukünftige Performanceoptimierungen
Sven Schöling [Mon, 29 Jan 2018 16:54:11 +0000 (17:54 +0100)]
CsvImport: Makemodels bei bestehenden Waren stabil sortieren
Sven Schöling [Mon, 29 Jan 2018 16:53:42 +0000 (17:53 +0100)]
Part: makemodels_sorted accessor
Sven Schöling [Mon, 29 Jan 2018 16:52:57 +0000 (17:52 +0100)]
Makemodel Manager mit _sort_spec
Moritz Bunkus [Mon, 29 Jan 2018 16:02:32 +0000 (17:02 +0100)]
jsTree: keine globalen Key-Handler installieren
Sollen wohl für Keyboard-Navigation im Baum sorgen — obwohl es dafür
extra ein jsTree-Plugin gibt. Leider kollidiert der Handler für Space
mit der Art, wie das inline_resize-Plugin des ckEditors seine Handler
registriert. Effekt war, dass die Leertaste dann nicht mehr beim
ckEditor ankam.
Behebt #306.
Bernd Bleßmann [Mon, 29 Jan 2018 12:23:57 +0000 (13:23 +0100)]
Auftrags-Controller: Konfiguration wiederkehrender Rechnungen.
Bernd Bleßmann [Mon, 29 Jan 2018 12:22:46 +0000 (13:22 +0100)]
Wiederkehrende Rechnungen: Template als Popup-Dialog verwenden können.
Dazu wird die Variable popup_dialog ausgewertet und es können
js-Rückkehrfunktionen für Abbruch und Übernehmen übergeben werden.
Bernd Bleßmann [Mon, 29 Jan 2018 15:17:49 +0000 (16:17 +0100)]
Wiederkehrende Rechnungen: Template: eindeutige DOM-Ids
printer_id / copies werden so auch in den print_options benannt. Wenn dieses
Template als Vorlage für ein Popup-Dialog verwendet wird, kann es sonst zu
gleichen DOM-Ids kommen.
Bernd Bleßmann [Mon, 29 Jan 2018 15:11:15 +0000 (16:11 +0100)]
Wiederkehrende Rechnungen: Templatevariablen in Hash oder Objekt übergeben
Damit lässt sich das Template auch mit einem PeriodicInvoiceConfig-Objekt
aufrufen und kann so von anderen Controllern verwendet werden.
Bernd Bleßmann [Wed, 24 Jan 2018 10:59:38 +0000 (11:59 +0100)]
Auftrags-Controller: E-Mail-Dialog aus common verwenden.
Bernd Bleßmann [Mon, 22 Jan 2018 15:22:19 +0000 (16:22 +0100)]
E-Mail-Dialog: Template: js-Funktion zum Verschicken der Mail mitgeben können
Bernd Bleßmann [Wed, 24 Jan 2018 10:58:43 +0000 (11:58 +0100)]
Auftrags-Controller: Beim Drucken Sprache richtig berücksichtigen.
Bernd Bleßmann [Fri, 12 Jan 2018 16:16:47 +0000 (17:16 +0100)]
Auftrags-Controller: Workflow Lieferschein: gelieferte Positionen filtern
Dieser commit enthält einen Hack, der nochmal diskutiert und geändert werden
sollte.
Bernd Bleßmann [Mon, 11 Dec 2017 15:05:11 +0000 (16:05 +0100)]
Auftrags-Controller: Fehler bei Anzeige von EK und Marge in 2. Zeile behoben
Wenn das Order-Objekt noch nicht gespeichert ist, kann darauf nicht über
$item->order zugegriffen werden. Darum muss an die 2. Zeile eine weitere
Variable durchgereicht werden, um zu bestimmen, ob wir im Verkauf sind und
EK und Margen angezeigt werden sollen.
Bernd Bleßmann [Fri, 8 Dec 2017 15:04:07 +0000 (16:04 +0100)]
Auftrags-Controller: Workflow -> Rechnung (Speichern und Rechnung erfassen)
Bernd Bleßmann [Fri, 8 Dec 2017 14:41:24 +0000 (15:41 +0100)]
Auftrags-Controller: Verkäufer bei Kundenwechsel ändern
Bernd Bleßmann [Fri, 8 Dec 2017 13:50:34 +0000 (14:50 +0100)]
Auftrags-Controller: Sortimente mit Mehrfachauswahl hinzufügen können.
Behebt #220 (redmine).
Sven Schöling [Thu, 25 Jan 2018 10:56:56 +0000 (11:56 +0100)]
Presenter::Tag::link - umbenannt in link_tag
um Namenskonflikte mit dem link builtin zu vermeiden
Sven Schöling [Wed, 24 Jan 2018 15:16:31 +0000 (16:16 +0100)]
Controller::LoginScreen: AuthHandler::handle ohne Argumente aufrufen
Abgesehen davon, dass die Parameter nicht mehr benutzt werden, behebt
das einen ganz ekeligen Bug: "panic: attempt to copy freed scalar"
Das Problem ist, dass der AuthHandler selber das Einloggen übernimmt und
dafür %::myconfig neu beschreibt. Wenn währenddessen aber ein Alias von
einem %::myconfig Value auf dem Stack liegt, wird der sofort freigegeben
weil der Stack nicht refcounted ist.
Normalerweise fällt das nicht weiter auf, und die Daten werden im
final pass aufgeräumt. Aber mit backtrace_on_error wird bei einem Fehler
sofort ein Carp::confess aufgerufen, und das nimmt für den Stacktrace
den Stack auseinander und stolpert dabei über den bereits freigegeben Wert.
Sven Schöling [Thu, 18 Jan 2018 14:03:37 +0000 (15:03 +0100)]
PriceSource: Objekte cachen.
Im Moment werden die einzelnen Worker im normalen Workflow mehrfach
angelegt, einmal für die verfügbaren, und dann noch einmal für den
besten und zum wiederherstellen der existierenden.
Für größere Belege wird das merklich, und bei komplexen
Implementationen, die auf die Datenbank zugreifen müssen, sogar mehrere
Sekunden.
Diese Patch ist der erste in einer Reihe, die es erlauben optional
Preisquellen
1. nicht unnötig zu erstellen
2. in sich cachen zu lassen
3. vorberechnen zu lassen und damit horizontal zu cachen
3. die Berechnungen in einen Ajax Call zu verzögern
Moritz Bunkus [Wed, 24 Jan 2018 12:40:23 +0000 (13:40 +0100)]
Presenter: Kosmetik: Anordnung
Moritz Bunkus [Wed, 24 Jan 2018 12:39:23 +0000 (13:39 +0100)]
Presenter: Klasse für SL::DB::PurchaseInvoice ist SL::Presenter::Invoice
Sichtbarer Effekt: in der Liste der verknüpften Belege wurde die
Rechnungsnummer und damit der Link zur Einkaufsrechnung nicht
angezeigt.
Moritz Bunkus [Tue, 23 Jan 2018 14:55:06 +0000 (15:55 +0100)]
LaTeX-Druck: Newlines nicht entfernen
Moritz Bunkus [Fri, 19 Jan 2018 10:21:44 +0000 (11:21 +0100)]
LaTeX-Druck: Unicode-Control-Zeichen und nicht druckbare Zeichen entfernen
Filtert z.B. das »bidirectional left-to-right«-Kontroll-Zeichen raus,
an dem sich LaTeX verschluckt.
Sven Schöling [Thu, 18 Jan 2018 13:01:26 +0000 (14:01 +0100)]
DATEV/CSV: Buchungstext exportieren
Durch einen Typo wurde da statt dem Slot "buchungstext" der Slot
"buhcungsbes" exportiert, der natürlich leer war.
Sven Schöling [Mon, 15 Jan 2018 16:51:01 +0000 (17:51 +0100)]
PriceSource: Doku Update
Sven Schöling [Thu, 9 Jun 2016 11:38:29 +0000 (13:38 +0200)]
Preisquelle Stammdaten: lastcost hat jetzt niedrige Priorität
Damit überstimmt der nicht mehr listprice sofern der vorhanden ist
Jan Büren [Tue, 16 Jan 2018 08:23:54 +0000 (09:23 +0100)]
DATEV: Festschreibung vergessener Commit zu
2ac999504a
Jan Büren [Mon, 15 Jan 2018 10:23:17 +0000 (11:23 +0100)]
fixt #337
Vergessene Presenter-Umstellung für Controller/Part.pm
Bernd Bleßmann [Fri, 12 Jan 2018 13:32:33 +0000 (14:32 +0100)]
Type in Übersetzung
Martin Helmling martin.helmling@octosoft.eu [Wed, 10 Jan 2018 15:55:14 +0000 (16:55 +0100)]
SEPA-Sammelanweisung (is_batch_transaction): BUGFIX Loop richtig beenden
Wurde eine Sammelanweisung gefunden, ist die Suche für die betroffenen Banktransaktion beendet.
Fälschlicherweise wurde nur die innere Schleife beendet, es muss aber die äußere Schleife beendet werden.
Sven Schöling [Tue, 9 Jan 2018 10:50:28 +0000 (11:50 +0100)]
tests: update zu "PartPicker kann auch nach EAN suchen"
Jan Büren [Tue, 9 Jan 2018 08:44:06 +0000 (09:44 +0100)]
DATEV: Buchungen festschreiben als Benutzer-Option
Hintergrund: Aktuell setzt kivitendo keinen Wert, was bei der
DATEV zu einer Warnung und anschließender Festschreibung im Stapel führt.
Die Option ist jetzt an der Oberfläche konfigurierbar und erhält gültige Werte
Jan Büren [Tue, 9 Jan 2018 08:31:06 +0000 (09:31 +0100)]
DATEV: Export-Periode Dezember ist häufig im Vorjahreszeitraum
Sven Schöling [Mon, 8 Jan 2018 17:23:51 +0000 (18:23 +0100)]
Presenter/RequirementSpec: typo
Sven Schöling [Mon, 8 Jan 2018 15:26:15 +0000 (16:26 +0100)]
Part: Javascripte nicht ins HTML schreiben sondern nach reinit_widgets
Sven Schöling [Mon, 8 Jan 2018 15:25:32 +0000 (16:25 +0100)]
Part: makemodels und customerprices automatisch stripen
Sven Schöling [Mon, 8 Jan 2018 15:24:18 +0000 (16:24 +0100)]
Part: partpicker enterverhalten direkt im picker setzen
Nachträglich drandongeln gibt Probleme
Sven Schöling [Mon, 8 Jan 2018 15:22:13 +0000 (16:22 +0100)]
Part: Speichern nicht accesskey enter
Sven Schöling [Fri, 5 Jan 2018 14:10:30 +0000 (15:10 +0100)]
is_wrong_ptype gibt es hier nicht
Sven Schöling [Fri, 5 Jan 2018 14:09:55 +0000 (15:09 +0100)]
PartCustomerPrices: Preisbehandlung nicht hart kodieren
Martin Helmling martin.helmling@octosoft.eu [Mon, 9 Jan 2017 10:55:21 +0000 (11:55 +0100)]
Kunden-Spezifische Artikeleigenschaften
neue Tabelle "PartCustomerPrices" mit SL/DB Dateien
in Artikelstammdaten eingebaut,
in Preisquellen analog zu den Lieferantenpreisen nun Kundenpreise eingebaut
(Unklar ist was bei Kundenpreisen der beste Preis ist !)
Analog zu Lieferanten "make" und "model" aus kundenspezifischen Daten
"customer" und "custnumber" zum Drucken pro Artikel anbieten
Bernd Bleßmann [Mon, 8 Jan 2018 16:02:01 +0000 (17:02 +0100)]
Inventur: Upgrade-Skript: Abhängigkeit von Release
Bernd Bleßmann [Fri, 5 Jan 2018 13:23:04 +0000 (14:23 +0100)]
Inventur: changelog
Bernd Bleßmann [Wed, 20 Dec 2017 13:25:18 +0000 (14:25 +0100)]
Inventur: Übersetzungen
Bernd Bleßmann [Mon, 27 Nov 2017 17:13:47 +0000 (18:13 +0100)]
Inventur: Eingabemaske und Journal im Inventory-Controller
Bernd Bleßmann [Wed, 20 Dec 2017 14:16:24 +0000 (15:16 +0100)]
Inventur: Inventurzählungen mit Lagerbewegungen im Backend SL::WH speichern können
Bernd Bleßmann [Wed, 29 Nov 2017 12:16:56 +0000 (13:16 +0100)]
Inventur: Mandantenkonfig: Voreinstellungen für Lager, Lagerplatz und Stichtag
Bernd Bleßmann [Wed, 29 Nov 2017 12:15:50 +0000 (13:15 +0100)]
Inventur: Voreinstellungen für Lager, Lagerplatz und Stichtag (DB und Rose)
Bernd Bleßmann [Mon, 4 Dec 2017 09:42:37 +0000 (10:42 +0100)]
Inventur: neue Tabelle für gezählte Artikel. DB-Upgrade und Rose
Bernd Bleßmann [Mon, 27 Nov 2017 17:08:52 +0000 (18:08 +0100)]
Inventur: Manager-Klasse für Inventory (f. sorting/paginating)
Bernd Bleßmann [Mon, 27 Nov 2017 12:14:43 +0000 (13:14 +0100)]
Inventur: neuer Transfer-Typ für Inventur ('stocktaking') (DB-Upgrade)
Bernd Bleßmann [Wed, 20 Dec 2017 14:11:53 +0000 (15:11 +0100)]
Lager: Mini-Stock: Einheiten und EAN (wenn vorhanden) mit ausgeben
Bernd Bleßmann [Wed, 8 Nov 2017 15:00:40 +0000 (16:00 +0100)]
PartPicker kann auch nach EAN suchen
Werner Hahn [Wed, 3 Jan 2018 16:19:09 +0000 (17:19 +0100)]
Formatierung und unnötiges Arrayelement entfernt
Werner Hahn [Wed, 3 Jan 2018 11:56:32 +0000 (12:56 +0100)]
Artikelliste bei Schnellsuche, wenn mehrere Treffer vorgeschlagen sind
und keiner ausgewählt ist
fix #282
Sven Schöling [Tue, 2 Jan 2018 12:22:03 +0000 (13:22 +0100)]
Presenter::CustomerVendor: interface normalisiert
es gibt jetzt zusätzlich:
- customer_picker
- vendor_picker
die auf den jeweiligen typ gecrurried sind
Sven Schöling [Wed, 27 Dec 2017 11:08:54 +0000 (12:08 +0100)]
Presenter::Tag: date_tag aus Plugin/L verschoben
Sven Schöling [Wed, 27 Dec 2017 11:07:41 +0000 (12:07 +0100)]
Presenter::Tag: textarea_tag aus Plugin/L verschoben
Sven Schöling [Wed, 27 Dec 2017 10:16:24 +0000 (11:16 +0100)]
Presenter::Tag: Optionale Precision für input_number_tag
Sven Schöling [Wed, 27 Dec 2017 10:10:41 +0000 (11:10 +0100)]
Presenter::Tag: singleton tags
Vorher wurden alle tags als singleton (also ohne schließenden Tag)
gerendert, wenn sie keinen content hatten. Das geht aber kaputt bei
textarea, weil ein einfaches <textarea> den kompletten folgenden HTML
Code als Content interpretiert.
Ab jetzt werden nur die Tags ohne Content als singleton gerendert, bei
denen das im Standard erlaubt ist.
Sven Schöling [Wed, 27 Dec 2017 10:08:52 +0000 (11:08 +0100)]
Presenter::EscapedText: quote_html nicht über $::locale laufen lassen
Die quote_html Liste in speacial_chars ist extrem langsam. Für HTML
Generierung lieber diese optimierte nehmen.
Sven Schöling [Wed, 27 Dec 2017 10:47:01 +0000 (11:47 +0100)]
SL::DB<->Presenter: Argumente aus Templates korrekt splicen
Jan Büren [Tue, 2 Jan 2018 11:01:53 +0000 (12:01 +0100)]
Objektmethode date für GLTransaction
In gl gibt es nur gldate. Entsprechend wie bei invnumber
die auf reference in gl verweist date auf gldate gesetzt.
Verbessert das Verhalten wenn es bei Details auflisten in Projekten
verknüpfte Dialogbuchungen gibt.
Jan Büren [Mon, 1 Jan 2018 10:01:34 +0000 (11:01 +0100)]
SelfTests: check_paid_ap ID in E-Mail-Bericht übergeben -> einfachere Analyse
Moritz Bunkus [Wed, 20 Dec 2017 14:29:27 +0000 (15:29 +0100)]
Presenter: can-Aufruf an geproxytes Objekt durchreichen & geproxyte Klasse laden
Moritz Bunkus [Wed, 20 Dec 2017 14:29:09 +0000 (15:29 +0100)]
Presenter: richtige Presenter-Klasse bei DB-Klassen Customer/Vendor laden
Sven Schöling [Wed, 20 Dec 2017 13:15:42 +0000 (14:15 +0100)]
Presenter: Neue Struktur in RecordLinks
Sven Schöling [Wed, 20 Dec 2017 13:15:35 +0000 (14:15 +0100)]
Presenter: Doku
Sven Schöling [Wed, 20 Dec 2017 13:15:20 +0000 (14:15 +0100)]
Presenter: Neue Struktur im DBUpgrade
Sven Schöling [Wed, 20 Dec 2017 13:14:45 +0000 (14:14 +0100)]
Presenter: Neue Struktur in weiteren Belegen
Moritz Bunkus [Fri, 10 Nov 2017 12:59:39 +0000 (13:59 +0100)]
Benutzerdefinierte Datenexporte: Standardwerte für Parameter angeben können
Moritz Bunkus [Thu, 9 Nov 2017 13:59:07 +0000 (14:59 +0100)]
Benutzerdefinierte Datenexporte zu CSV anlegen und ausführen können