Moritz Bunkus [Thu, 31 Aug 2017 11:46:34 +0000 (13:46 +0200)]
AreaInputTag: kleines Icon neben Input zum Umschalten auf Textarea
In Masken, in denen es keinen »Erneuern«-Button gab (neuer
Artikelcontroller), hatten die Benutzer*innen somit auch keine
Möglichkeit, aus dem normalen Input eine Textarea zu machen. Dies hier
ist nun eine manuelle Möglichkeit dafür.
Moritz Bunkus [Thu, 31 Aug 2017 11:05:59 +0000 (13:05 +0200)]
ActionBar: `accesskey` mit Aufruftyp `call` gefixt
Wenn eine Action mit Aufruftyp `call` eine JavaScript-Funktion aufruft
und mit `accesskey = 'enter'` auf Return reagieren soll, so hat der
bisherige Setup-Code den Keyboard-Handler an das komplette
Document-Objekt gebunden. Das funktioniert aber zumindest in Chrome
nicht: der Handler wird nie aufgerufen.
Also an Body binden, und nicht an Document, was zumindest in Chrome
und Firefox gut funktioniert.
Moritz Bunkus [Mon, 28 Aug 2017 11:36:48 +0000 (13:36 +0200)]
Quicksuche: bei Stammdatensuche keine ungültigen anbieten
Betrifft:
• Artikelstammdaten in allen Varianten (Waren, Dienstleistungen,
Erzeugnisse, Sortimente)
• Kunden & Lieferanten
• Ansprechpersonen (hier werden nur diejenigen angeboten, die zu
gültigen Kunden/Lieferanten gehören)
* die %common_params aus SL/Dev/File sind nur für den speziellen Test
filesystem.t, daher in den Test verlagert.
* ebenfalls die get_all, get_all_count entfernt, SL/Dev/ soll nicht nur die
Anzahl der zu tippenden Zeichen in Tests verringern, sondern allgemeine
Funktionen für verschiedene Tests bereitstellen oder sinnvolle Defaults
vorbelegen
Sven Schöling [Tue, 22 Aug 2017 14:23:37 +0000 (16:23 +0200)]
SL::Dev: EXPORT rewrite und create/new split
- SL::Dev module exportieren nicht mehr ungefragt
- SL::Dev::ALL exportiert jetzt den übergebenen tag aus allen Modulen
- Funktionen nicht nicht speichern (Part/CustomerVendor) heißen jetzt
"new_X" anstatt "create_X"
Bernd Bleßmann [Sun, 20 Aug 2017 11:19:54 +0000 (13:19 +0200)]
IS::get_customer: ersten Kunden zurückliefern, wenn keine Id vorgegeben ist.
Durch Umstellung auf den Customer/Vendor-Picker der Belegmasken konnte der
Picker unter bestimmten Umständen initial leer sein. Dadurch wurden dann bei
einem Wechsel von leer auf einen Kunden nicht alle Form-Variablen richtig
gefüllt (z.B. taxzone_id) und z.B. ein Lieferschein konnte nicht gespeichert
werden.
Das jetzige Verhalten gleicht dann dem von IR::get_vendor.
Jan Büren [Thu, 17 Aug 2017 08:38:16 +0000 (10:38 +0200)]
Fixt: Auslagern über Standardlagerplatz ohne Auslagern von Dienstleistungen
Die Prüfung, ob es sich um eine Dienstleistung handelt, wird
über part_type gemacht.
Andernfalls wird die auszulagernde Menge in diesem Fall bei
allen Positionen auf 0 gesetzt.
Zusätzlich die Prüfung auf gesetzte Menge über das Fragezeichen-Feld
entfernt (ist mit ActionBar reingekommen).
Jan Büren [Sat, 12 Aug 2017 14:54:31 +0000 (16:54 +0200)]
Kontoauszug verbuchen -> Buchung erstellen -> Dialogbuchung nur abs()
Ob die Zahlung positiv oder negativ ist, bestimmt die Soll und Haben
in der Maske Dialogbuchung und liegt somit in der Hand des Anwenders,
in welche Vorlage er buchen will.
a) Filter erweitert, um nach Vorlagenname zu suchen
b) Filter korrekt in <form> gepackt, um submit und reset form
wie gewohnt zu unterstützen
c) Buchungsmöglichkeit um gl_transactions (Dialogbuchungsvorlagen)
erweitert, dass heißt in der Auswahlliste der Vorlagen werden
jetzt Dialogbuchungsvorlagen angezeigt, falls ein Buchungskonto
mit dem aktuellem Bankkonto übereinstimmt:
(bank_accounts.chart_id == record_template_items.chart_id)
d) Filter erweitert, um nach Referenz (nur in gl_transactions)
zu suchen
e) gl.pl erweitert, sodass die Metadaten der Vorlage geladen werden
und mit den sinnvollen Vorgaben aus bank_transactions gefüllt werden
Bernd Bleßmann [Fri, 11 Aug 2017 12:14:02 +0000 (14:14 +0200)]
CsvImport: worker kann Csv-Helper auch mit scalar-ref als Datei aufrufen.
Der Csv-Helper kann für die Datendatei auch eine Referenz auf Daten erhalten.
Die Basis-Klasse der Worker des CsvImports unterstützt das jetzt auch. Damit
kann dann z.B. in den Tests $worker->run auch verwendet werden, wenn der Worker
in file eben eine Referenz auf die Csv-Daten enthält.
G. Richardson [Tue, 21 Mar 2017 16:16:59 +0000 (17:16 +0100)]
DATEV-Export nach Erfassungsdatum filtern
Hat man einen DATEV-Export schon für einen bestimmten Zeitraum
exportiert, und muß nachträglich noch ein paar Buchungen in dem Zeitraum
tätigen, kann man diese nachträglichen Buchungen nun gesondert
exportieren, indem man ein Datum nach dem letzten Exportdatum
angibt.
BankTransaction: Überarbeitung von "Kontoauszug verbuchen" , SEPA-Export wieder integriert
Die Punktebewertung findet wieder ausschließlich in "get_agreement_with_bank_transactions" statt,
auch die SEPA-Sammelüberweisung. Diese bekommt dor extra Punkte, da ggf. für bestimmte Rechnungen negative Punkte entstehen.
Auch gibt es dort keine Remote Banknummer etc.
Die Testdatei t/bank/bank_transactions.t wurde um zwei Tests erweitert,
1. ein Test der das Verbuchen ohne SEPA-Export macht,
2. ein Test mit SEPA-Export
Die war noch aus der Zeit vor GetModels, und war nötig damit Paginating
die gleichen Filter hatte wie das Hauptquery. Mittlerweile ist das aber
nicht mehr nötig, weil die GetModels-Architektur die einzelnen Plugins
eh chained.
Beschleunigt einige Queries, wo der Queryplaner in Bedingungen in Joins
die Duplizierung nicht automatisch entfernen kann, und dann in nested
loops nachprüfen muss.
Bernd Bleßmann [Tue, 1 Aug 2017 12:36:04 +0000 (14:36 +0200)]
S:C:H:ReportGenerator: Ergebnis von layout->get als Liste verwenden
Sonst ist der Export (PDF/CSV) von Controllern, die diesen Helper verwenden,
kaputt. Fehlermeldung war:
Can't locate object method "add" via package "1" (perhaps you forgot to load "1"?)
at SL/Controller/Helper/ReportGenerator.pm line 25.
Jan Büren [Tue, 1 Aug 2017 09:25:35 +0000 (11:25 +0200)]
Debitoren/Kreditorenbuchungen. Buchungsnummer als Info ausgeben
Buchungsnummer ist im gesamten Programm eindeutig und
für die Verknüpfung vom Papierbeleg zur Buchung ein sinnvoller
Nummernkreis. Dementsprechend wie bei den Dialogbuchungen diese
an den Bearbeiter zurückmelden.
Sven Schöling [Thu, 27 Jul 2017 13:47:46 +0000 (15:47 +0200)]
t/helper/shipped_qty.t: diverse Kleinigkeiten
- delivered flag is boolean und muss mit ok() geprüft werden falls
internas geändert werden
- wenn write_to in die items schreiben soll, müssen die auch vorher
geladen sein.
Jan Büren [Mon, 31 Jul 2017 07:52:00 +0000 (09:52 +0200)]
Fixt #281 Fertigen nicht transaktionssicher
return 0 verlässt den eval block, aber macht kein Rollback
Ein sauberes "die" funktioniert wie gewollt.
Die Rückmeldung an den Anwender ist jetzt allerdings etwas kryptischer.
Jan Büren [Sat, 29 Jul 2017 18:19:10 +0000 (20:19 +0200)]
GenericTranslation um Vorbelegungen für E-Mail-Texte erweitert
Neuer Menüpunkt:
System-> Sprachen und Übersetzungen -> Vorbelegte Texte für E-Mail
Falls ein Ansprechpartner hinterlegt ist, wird entsprechend des
Geschlechts und der vorbelegten Textbaustein die Anrede zusammengesetzt.
Falls kein Ansprechpartner gewählt ist, kommt die allgemeine Grußformel.
Bis auf Gutschrift und Mahnung(en) sind alle Workflow Masken im Ein- und
Verkauf umgesetzt.