Jan Büren [Tue, 7 Nov 2017 09:24:15 +0000 (10:24 +0100)]
Weitere Überarbeitung DATEV/CSV.pm
Default-Werte falls definiert in datev_csv gesetzt.
Pflichtfelder markiert
Kern-Algorithmus klarer definiert (Hinweise von Sven)
- Formatierung in Array pro Feldwert ausgelagert
- Eingangs-Werte prüfen (input_check)
- Logikstruktur klarer (kein unless nach if-bedingung)
Jan Büren [Thu, 2 Nov 2017 11:51:04 +0000 (12:51 +0100)]
DATEV: Nummernkreislänge muss konstant sein.
Entsprechende Prüfung am Anfang des Exports
Jan Büren [Thu, 2 Nov 2017 11:50:00 +0000 (12:50 +0100)]
DATEV: Warnungen as DATEV::CSV auch weiterreichen
Jan Büren [Thu, 2 Nov 2017 09:44:16 +0000 (10:44 +0100)]
DATEV: csv_buchungsexport nach DATEV::CSV.pm ausgelagert
Testfälle angepasst. POD angepasst.
Details:
DATEV.pm
- Klassenvariable locked hinzugefügt.
- Aufruf der CSV-Klasse anstatt der internen Methode
CSV.pm
- Konstruktor wie in DATEV.pm ergänzt und um minimale
Pflichtfeldprüfung ergänzt.
- datetofour durch SL::Helper::DateTime ersetzt
- Helper _format_amount auch aufrufen
- Routinen umbenannt (pseudoprivat mit Unterstrich)
- Prüfung auf locked als perlish boolean
- _csv_buchungsexport um zweiten return array_ref mit warnungen ergänzt
t/datev/*
- Testfälle enstprechend dem neuen API-Call umgeschrieben
- Einen Testfall zur Überprüfung von keiner Warnung ergänzt
Moritz Bunkus [Tue, 7 Nov 2017 08:57:08 +0000 (09:57 +0100)]
HTML- und PDF-Dokumentation neu erzeugt
Moritz Bunkus [Tue, 7 Nov 2017 07:57:57 +0000 (08:57 +0100)]
Merge pull request #15 from chrisdecker1201/master
exclude alpha version in xml-doku
Christian Decker [Mon, 6 Nov 2017 16:09:22 +0000 (17:09 +0100)]
change explanation
Christian Decker [Sat, 4 Nov 2017 15:55:02 +0000 (16:55 +0100)]
exclude alpha version in xml-doku
Bernd Bleßmann [Fri, 27 Oct 2017 14:01:32 +0000 (16:01 +0200)]
Bericht Lagerbuchungen: Richtige ids verwenden zur Anzeige des Dokuments
Beim Lagern über Lieferscheine steht die delivery_orders.id in inventory.oe_id
und beim Lagern über Rechnungen steht die invoice.id in inventory.invoice_id.
Lagern aus anderen Dokumenten als Lieferschein oder Rechnung gibt es nicht.
Jan Büren [Mon, 30 Oct 2017 16:12:07 +0000 (17:12 +0100)]
DATEV-Tests auch sauber für perl 5.22
Jan Büren [Fri, 27 Oct 2017 14:01:24 +0000 (16:01 +0200)]
vergessen für c4409b: Filter nach Namen für Buchungsvorlagen
Ohne die Funktion 'filter_templates' in RecordTemplate.js macht
ein Aufruf dieser aus template/record_template/dialog.html gar
keinen Sinn.
Jan Büren [Fri, 27 Oct 2017 13:52:05 +0000 (15:52 +0200)]
Erzeugnis nach Fertigen editieren -> Recht in template ausgelagert
Vorher buggy und konzeptionell schlecht, da keine Unterscheidung
von orphaned zu 'darf doch nach fertigen editierbar sein' möglich war.
Ferner auch keine Differenzierung zum Sortiment möglich.
Mit diesem Commit ist verwaist wieder verwaist und das zusätzliche
Aushebeln des Schreibschutz beim Erzeugnis sauber nur über das Recht definiert.
Jan Büren [Tue, 24 Oct 2017 06:13:01 +0000 (08:13 +0200)]
DATEV::CSV Parameterübergabe sauber vereinheitlicht. Helper format_amount
Jan Büren [Thu, 19 Oct 2017 10:00:16 +0000 (12:00 +0200)]
DATEV-Struktur params und lib
Moritz Bunkus [Fri, 27 Oct 2017 11:26:56 +0000 (13:26 +0200)]
unbenutzte HTML-Vorlage entfernt
Moritz Bunkus [Fri, 27 Oct 2017 10:38:33 +0000 (12:38 +0200)]
Konten: Berichtskonfigurationsübersicht
Listet für die Berichte EÜR, BWA, Bilanz und Erfolgsrechnung alle
Konten gruppiert nach ihrer Position im Bericht auf.
Martin Helmling martin.helmling@octosoft.eu [Fri, 27 Oct 2017 09:17:29 +0000 (11:17 +0200)]
Dateianhang umbenennen funktioniert nicht.
Der Umbau von Mosu im commit
c60cb1f08f fixed das mehrfache Aufrufen eines Tabs,
der replace_dialog wird aber sowohl vom "documents" Tab als auch vom "attachment" Tab verwendet,
und ist somit zweimal vorhanden. Das Umbenennen funktioniert somit nur einmal,
dann muss ein reload gemacht werden.
Jetzt haben die Dialoge unterschiedliche Id Namen per suffix _attachment oder _document
Sven Schöling [Thu, 26 Oct 2017 13:00:16 +0000 (15:00 +0200)]
kivi.js: Und den wirren "00" Sonderfall auch wiederhergestellt
Sven Schöling [Thu, 26 Oct 2017 09:25:44 +0000 (11:25 +0200)]
kivi.js: parse_date füllt fehlende Werte aus aktuellem Datum auf
. -> heute
.. -> heute
..2016 -> heutiger Tag im Jahr 20016
Moritz Bunkus [Thu, 26 Oct 2017 08:36:46 +0000 (10:36 +0200)]
ActionBar: Verwendung bei Hinzufügen-zu-Beleg-Artikel-Auswahlliste
Sven Schöling [Wed, 18 Oct 2017 11:54:13 +0000 (13:54 +0200)]
kivi.Validator: Jahreszahlen mit mehr als 4 Stellen ablehnen
Das ist in der Praxis mehrfach vorgekommen. Ja, theoretisch ist der
18.10.20017 ein korrektes Datum. In der Praxis ist es zu 100% ein
Vertipper.
Sven Schöling [Wed, 18 Oct 2017 11:53:40 +0000 (13:53 +0200)]
kivi.Validator: Spezialbehandlung von 0 für heute wieder hergestellt
Sven Schöling [Wed, 18 Oct 2017 11:52:31 +0000 (13:52 +0200)]
kivi.Validator: Tests auf strikteres parse_date geändert
Sven Schöling [Wed, 18 Oct 2017 11:50:58 +0000 (13:50 +0200)]
kivi.Validator: Tests auf strikteres parse_amount geändert
Moritz Bunkus [Wed, 18 Oct 2017 09:06:11 +0000 (11:06 +0200)]
console: Fix für Entfernen von . aus @INC
Sven Schöling [Tue, 17 Oct 2017 12:39:53 +0000 (14:39 +0200)]
Tests: Fix für String-Evaluation-Änderung in Perl 5.26 Teil 2
Sven Schöling [Tue, 17 Oct 2017 12:38:45 +0000 (14:38 +0200)]
Test für "$foo::$bar" Parsingunterschiede
Seieh https://rt.perl.org/Public/Bug/Display.html?id=128478
Moritz Bunkus [Tue, 17 Oct 2017 11:22:06 +0000 (13:22 +0200)]
Rose-Models erzeugen: Auth-Objekt erst resetten, wenn Auth-Schema angelegt
Wenn `--test-client` benutzt wird und die Datenbank bereits existiert,
so wird sie zuerst gedropt und anschließend neu angelegt. Wenn direkt
nach dem Droppen `$::auth->reset` aufgerufen wird, so versucht
`$::auth` aber, die Tabellen- und Spalteninformationen für die
Datenbank auszulesen, was mit einem gerade geschlossenen DB-Handle
versucht wird.
Also die Struktur später neu einlesen.
Moritz Bunkus [Tue, 17 Oct 2017 11:16:46 +0000 (13:16 +0200)]
Tests: Fix für String-Evaluation-Änderung in Perl 5.26
Vorher wurde "$a::$b" als "${a}::${b}" gewertet. Nun wird das aber als
"${a::}${b}" gewertet.
Moritz Bunkus [Tue, 17 Oct 2017 11:01:23 +0000 (13:01 +0200)]
Installation-Check: nicht benutztes Perl::Tags entfernt
Moritz Bunkus [Tue, 17 Oct 2017 09:18:40 +0000 (11:18 +0200)]
POD-Fehler fixen
Sven Schöling [Fri, 13 Oct 2017 16:59:43 +0000 (18:59 +0200)]
kivi.Validator: In AP Suche und Maske als check registriert
Sven Schöling [Fri, 13 Oct 2017 16:57:11 +0000 (18:57 +0200)]
kivi.Validator: In AR Suche und Maske als check registriert
Sven Schöling [Fri, 13 Oct 2017 16:52:18 +0000 (18:52 +0200)]
kivi.Validator: In IR Maske als check registriert
Sven Schöling [Fri, 13 Oct 2017 16:36:48 +0000 (18:36 +0200)]
kivi.Validator: In IS Maske als check registriert
Sven Schöling [Fri, 13 Oct 2017 16:32:41 +0000 (18:32 +0200)]
kivi.Validator: In DO Suche und Normaler Maske als check registriert
Sven Schöling [Fri, 13 Oct 2017 16:19:00 +0000 (18:19 +0200)]
kivi.Validator: Leere Checks ignorieren
Ermöglicht so etwas in templates:
L.some_tag(....,
"data-validate"=INSTANCE_CONF.get_some_value) ? "required" : ""
)
Sven Schöling [Fri, 13 Oct 2017 16:18:05 +0000 (18:18 +0200)]
kivi.Validator: In OE Suche und Normaler Maske als check registriert
Sven Schöling [Fri, 13 Oct 2017 16:17:07 +0000 (18:17 +0200)]
kivi.Validator: validate_all muss Ergebnis auch zurückgeben
Sven Schöling [Fri, 13 Oct 2017 15:17:25 +0000 (17:17 +0200)]
kivi.Validator: Syntaxfehler
Sven Schöling [Fri, 13 Oct 2017 13:45:05 +0000 (15:45 +0200)]
kivi.Validator: Bei validate_all das erste fehlschlagende Element fokussieren
Sven Schöling [Fri, 13 Oct 2017 13:35:01 +0000 (15:35 +0200)]
kivi.Validator: Validaotr in restlichen Belegcontrollern eingebunden
Sven Schöling [Fri, 13 Oct 2017 13:32:53 +0000 (15:32 +0200)]
kivi.Validator: css Klassen für invalid Inputs
Sven Schöling [Fri, 13 Oct 2017 13:32:25 +0000 (15:32 +0200)]
kivi.Validator: check_right_[number|date]_format entfernt
Sven Schöling [Fri, 13 Oct 2017 13:31:38 +0000 (15:31 +0200)]
kivi.Validator: display_row: qty und sellprice als Nummerninputs geflaggt
Sven Schöling [Fri, 13 Oct 2017 13:30:56 +0000 (15:30 +0200)]
kivi.Validator: check_right_*_format in display_row auf Validator geändert
Sven Schöling [Fri, 13 Oct 2017 13:29:04 +0000 (15:29 +0200)]
kivi.Validator: In Controller eingebunden, die validate_form benutzen
... alle die auf "ack validate_form" in SL/Controller matchen
Sven Schöling [Fri, 13 Oct 2017 13:28:39 +0000 (15:28 +0200)]
kivi.Validator: date_tag angepasst und input_number_tag eingeführt
Sven Schöling [Fri, 13 Oct 2017 13:27:35 +0000 (15:27 +0200)]
kivi.Validator: explizites check_right_*_format auf Validator umgestellt
Sven Schöling [Fri, 13 Oct 2017 13:24:28 +0000 (15:24 +0200)]
kivi.Validator
Sven Schöling [Fri, 13 Oct 2017 13:20:56 +0000 (15:20 +0200)]
kivi.js: parse_amount darf "00" nicht ablehnen.
Sven Schöling [Fri, 13 Oct 2017 11:41:04 +0000 (13:41 +0200)]
kivi.js: parse_amount und parse_date quirks
- Parsing von 1,2,4,6,8-stelligen Daten ohne Separator
- Parsing von yyyy-mm-dd Format ohne Separator
- Parsing von 0-Präfixen bei Zahlen
Sven Schöling [Thu, 12 Oct 2017 13:55:35 +0000 (15:55 +0200)]
setupPoints und setupDateFormat entfernt
Sven Schöling [Thu, 12 Oct 2017 13:54:27 +0000 (15:54 +0200)]
js/common.js: show_alert_and_focus auf annotate umgeschrieben
Sven Schöling [Thu, 12 Oct 2017 13:48:10 +0000 (15:48 +0200)]
common.js: getDateArray und validate_dates entfernt
Die sind seit 2007 unbenutzt
Moritz Bunkus [Thu, 12 Oct 2017 12:59:05 +0000 (14:59 +0200)]
Datenbank anlegen: Super-User-Rechte abfragen, sofern nötig
Moritz Bunkus [Thu, 12 Oct 2017 12:47:49 +0000 (14:47 +0200)]
Admin: bei Fehler in DB-Lösch-Maske die richtige Maske erneut anzeigen
Sven Schöling [Tue, 10 Oct 2017 14:21:37 +0000 (16:21 +0200)]
Part/Customer Picker: Bei Enter auf geändertem Text default verhindern
Martin Helmling martin.helmling@octosoft.eu [Sat, 30 Sep 2017 13:24:27 +0000 (15:24 +0200)]
Dateimanagment: itime/mtime in DB kann gesetzt werden, mtime kann in Filesystem-Backend gesetzt werden
Wird benötigt falls man bestehende Dateien übernehmen will
Martin Helmling martin.helmling@octosoft.eu [Sat, 30 Sep 2017 11:59:08 +0000 (13:59 +0200)]
Dateimanagement: lokalisiertes Datum in Darstellung
Martin Helmling martin.helmling@octosoft.eu [Fri, 29 Sep 2017 12:50:25 +0000 (14:50 +0200)]
Dateimanagement: Checkbox zum Löschen/Umbenennen fehlt teilweise bei ERP-Dokumenten
Umgebaut, damit jede einzelne Version eines Dokumentes löschbar ist
fix #51
Martin Helmling martin.helmling@octosoft.eu [Thu, 28 Sep 2017 05:41:29 +0000 (07:41 +0200)]
Dateimanagement: Stammdaten: DOM-Elemente bei multiples Tab-Aufrufen nicht duplizieren(2): weitere Stelle
siehe
69e526ee5
Sven Schöling [Tue, 10 Oct 2017 12:22:52 +0000 (14:22 +0200)]
Warnings
Sven Schöling [Tue, 10 Oct 2017 10:31:52 +0000 (12:31 +0200)]
Menu: Order Einträge automatisch Ergänzen, damit Sortierung stabil ist.
Sven Schöling [Tue, 10 Oct 2017 10:31:00 +0000 (12:31 +0200)]
Menu: id für MT940 Export Eintrag
Sven Schöling [Tue, 10 Oct 2017 10:30:07 +0000 (12:30 +0200)]
Menu: Keine nodes mehr ohne id erlauben.
Dir werden während des erstellens der Baumstruktur nach id indiziert,
und so gibt das potentielle Kollisionen
Moritz Bunkus [Tue, 10 Oct 2017 10:30:51 +0000 (12:30 +0200)]
Dokumentation: Info zu Super-User-Rechten bei Test-Suite ergänzt
Moritz Bunkus [Tue, 10 Oct 2017 10:30:23 +0000 (12:30 +0200)]
Dokumentation: Info zu manuellem Anlegen der Trigramm-Erweiterung entfernt
Moritz Bunkus [Tue, 10 Oct 2017 09:46:54 +0000 (11:46 +0200)]
Tests: Eigene Verbindungsdaten für DB-Upgrades mit Super-User-Rechten
Wenn der Benutzer, der in der Konfiguration mit `user` & `password`
angegeben ist, keine Super-User-Rechte hat, so kann ein weiterer
Account dafür mit `superuser_user` & `superuser_password` angegeben
werden. Nur diejenigen Datenbankuprade-Scripte, die über den Tag
`@superuser_privileges` signalisieren, dass sie Super-User-Rechte
benötigen, werden auch wirklich mit Super-User-Rechten ausgeführt.
Moritz Bunkus [Tue, 10 Oct 2017 09:22:57 +0000 (11:22 +0200)]
Trigramm-Erweiterung installieren & Trigramm-Indizes anlegen
Moritz Bunkus [Tue, 10 Oct 2017 09:19:48 +0000 (11:19 +0200)]
Datenbankupgrades: Unterstützung für einzelne Updates mit Superuser-Rechten
Setzt man den neuen Tag `@superuser_privileges` auf 1, so schaut
kivitendo vor dem Einspielen aller Upgrades nach, ob der konfigurierte
Datenbankuser Superuser-Rechte hat. Falls nicht, wird die Benutzer*in
nach entsprechenden Logindaten gefragt.
Nur die Upgradescripte, die tatsächlich Superuser-Rechte benötigen,
werden mit diesem User ausgeführt, alle anderen mit den normalen
Rechten, um Besitzer-Wildwuchs bei neu angelegten Objekten zu
vermeiden.
Moritz Bunkus [Tue, 10 Oct 2017 08:01:48 +0000 (10:01 +0200)]
SL::DBUpgrade2: unbenutzte Funktion `update2_available` entfernen
Moritz Bunkus [Tue, 10 Oct 2017 07:59:09 +0000 (09:59 +0200)]
Datenbankupgrades: unbekannte Control-Felder als Fehler werten
Moritz Bunkus [Tue, 10 Oct 2017 07:37:16 +0000 (09:37 +0200)]
Übersetzungen: Umlaute nicht als HTML-Entitäten schreiben
Sven Schöling [Tue, 10 Oct 2017 09:12:11 +0000 (11:12 +0200)]
Warnings: PTC - lastcost kann undefined sein
Sven Schöling [Tue, 10 Oct 2017 09:11:32 +0000 (11:11 +0200)]
t/ship/ship_order.t: Fake STDOUT muss schreibbar sein.
Sven Schöling [Tue, 10 Oct 2017 09:11:15 +0000 (11:11 +0200)]
SL::DB::ShopOrder: Warnings
Jan Büren [Sun, 8 Oct 2017 16:34:16 +0000 (18:34 +0200)]
Wiederkehrende Rechnungen: Einmalige Rechnungen auch nur einmalig ausführen
Die kleinste Periode die calculate_dates verwendet ist monatlich.
Falls eine einmalige Rechnungen ein Startdatum älter als einen
Monat besitzt, werden mehrere Rechnungen erzeugt.
Sinnvoller ist es, dass die foreach @dates Schleife bei der
Prüfung auf Einmaligkeit auch direkt beendet wird (last).
Ferner Debug und typo
Sven Schöling [Fri, 6 Oct 2017 11:45:56 +0000 (13:45 +0200)]
is: kivi.CustomerVendor.js korrekt einbinden
Jan Büren [Thu, 5 Oct 2017 13:09:03 +0000 (15:09 +0200)]
Vorbelegte E-Mail-Texte um Vorbelegung periodic invoices ergänzt
G. Richardson [Wed, 4 Oct 2017 08:00:58 +0000 (10:00 +0200)]
PartsGroup - Rose relationship für parts
G. Richardson [Wed, 4 Oct 2017 08:00:35 +0000 (10:00 +0200)]
Business - Rose relationships customers und vendors
Jan Büren [Mon, 2 Oct 2017 12:16:00 +0000 (14:16 +0200)]
Bessere Rückmeldung für Personenkonten-Export DATEV
Damit dem Anwender bewußt wird, dass es diese Funktion gibt
ist es sinnvoller die anzuzeigen und auszugrauen mit dem
Hinweis, dass die Kunden- und Lieferantennummernkreise nicht
der DATEV Personenkonto Spezifikation (Sachkontenlänge + 1)
entsprechen.
G. Richardson [Mon, 2 Oct 2017 07:10:30 +0000 (09:10 +0200)]
DATEV Export: invoices.t generate_datev_lines mit Encode::decode prüfen
G. Richardson [Mon, 2 Oct 2017 06:58:21 +0000 (08:58 +0200)]
DATEV-Export: Testfall invoices.t erweitert
* Prüfung von Personenkontenerweiterung (use_vk)
* Test um Einkaufsrechnung erweitert
G. Richardson [Mon, 2 Oct 2017 08:37:03 +0000 (10:37 +0200)]
DATEV-Export: Personenkontenoption nur anzeigen wenn Konten passen
Die Option "als Personenkonten exportieren" wird nur angezeigt, wenn
alle Kunden- und Lieferantennummern in das DATEV-Kontonummerschema
passen. Anhaken muß man die Checkbox allerdings trotzdem noch.
Besser wäre eine zentrale Konfiguration "DATEV-Export mit Personenkonten
exportieren" die dann auch beim Speichern/Anlegen von Konten immer
prüft, ob das Kontenschema eingehalten wird.
G. Richardson [Mon, 2 Oct 2017 06:54:16 +0000 (08:54 +0200)]
DATEV-Export: Option "als Personenkonten exportieren"
statt der Sammelkontonummer wird beim Export immer die Kunden- bzw.
Lieferantennummer exportiert. Es wird noch nicht auf eine gültige
Kontonummer (z.B. 10000-69999 und 70000-99999) geprüft.
Jan Büren [Mon, 2 Oct 2017 11:24:32 +0000 (13:24 +0200)]
Wiederkehrende Aufträge mit einmaliger Periode verbessert
Die Deaktivierung erst nach der Generierung der Rechnung veranlassen.
Andernfalls werden diese automatisch bei anderen Rechnungsläufen deaktiviert.
G. Richardson [Mon, 2 Oct 2017 08:41:37 +0000 (10:41 +0200)]
Typos in POD
G. Richardson [Mon, 2 Oct 2017 07:44:47 +0000 (09:44 +0200)]
spellcheck.t um lenght erweitert
G. Richardson [Mon, 2 Oct 2017 07:44:18 +0000 (09:44 +0200)]
DATEV: Typos
G. Richardson [Mon, 2 Oct 2017 05:20:13 +0000 (07:20 +0200)]
datev_format_2018.t - gl Eintrag ebenfalls aufräumen
Werner Hahn [Sat, 30 Sep 2017 13:14:33 +0000 (15:14 +0200)]
WebshopApi: Dokumentation Installations und UPGRADE für Trigram(trgm_pg)
Werner Hahn [Sat, 30 Sep 2017 13:12:41 +0000 (15:12 +0200)]
WebshopApi: Trigram Abhängigkeit aufgelöst.
Wird nur genutzt, wenn auch installiert
Tests dementsprechend angepasst und erweitert
Werner Hahn [Sat, 30 Sep 2017 13:10:24 +0000 (15:10 +0200)]
WebshopApi: Recht Shoperstellen und bearbeiten in richtige Kategorie und
englische Übersetzungen
Jan Büren [Sat, 30 Sep 2017 10:49:11 +0000 (12:49 +0200)]
Errata: Nummernkreis für Rechte max 4-stellig
Ausreißer: Letter
Jan Büren [Sat, 30 Sep 2017 10:31:12 +0000 (12:31 +0200)]
Templates für OrderController: areainput_tag für Art.Beschreibung
Wie in den Stammdaten auch, sorgt für automatischen Umbruch bei
der Artikel-Beschreibung
Jan Büren [Sat, 30 Sep 2017 09:15:12 +0000 (11:15 +0200)]
Neues Benutzer-Recht Erzeugnisbestandteile editieren
Erlaubt das Änderun von Erzeugnisbestandteilen auch nachdem es
schon produziert wurde. Standardmäßig nicht gesetzt.
Jan Büren [Sat, 30 Sep 2017 08:02:09 +0000 (10:02 +0200)]
Abteilungs-Dropdown konsequent alphabetisch vorsortieren
$dep->get_all ==> $dep->get_all_sorted
Jan Büren [Sat, 30 Sep 2017 07:45:08 +0000 (09:45 +0200)]
Filter nach Namen für Buchungsvorlagen implementiert
Hintergrund: Nachdem einige Vorlagen erstellt worden sind,
ist der Standard-Fall nicht mehr Anlegen oder Ändern, sondern
Suchen und Buchen. Entsprechend den Focus auch auf das Suchfeld gesetzt.