Jan Büren [Fri, 14 Sep 2018 08:43:02 +0000 (10:43 +0200)]
Stammdaten -> Kunden um Textfelder Rechnungsmail und Herkunft personenbezogener Daten erweitert
i)
Die Rechnungsmail ist die generische E-Mail des Kunden, welche die
Rechnung in der Regel bearbeitet (buchhaltung@, einkauf@).
ii)
Aufgrund der DSGVO ist es im Zweifel sinnvoll den Erstkontakt
des Kunden zu dokumentieren (Messe xyz, Telefon-Aktion beta, ...)
Die beiden Felder sind als Suchfeld anhakbar.
Sven Schöling [Fri, 26 Oct 2018 10:52:36 +0000 (12:52 +0200)]
PTC: Fehlerhafte ungerundete Berechnung von grossamount
Bei Rechnungen mit sehr vielen sehr kleinen Positionen wurde die
Rundungsfehlerakkumulation _nur_ in den finalen netamounts
berücksichtigt, nicht aber in den daraus berechneten grossamounts was zu
Cent-Abweichungen geführt hat.
Bernd Bleßmann [Wed, 12 Dec 2018 15:53:28 +0000 (16:53 +0100)]
PTC: nicht einfach die Rundungsgenauigkeiten erhöhen …
… das verschiebt das Problem auf jeden Fall nur.
Siehe auch Ticket #82.
Diser commit macht den Teil
"Ferner Rundungsgenauigkeiten für wiederkehrende Rechnungen erhöht." aus
commit 075f64d61e999506517a304022525d83c29e6e3e rückgängig.
Andreas Rudin [Sun, 9 Dec 2018 18:20:18 +0000 (19:20 +0100)]
Fixt #350 Fehler p.income_accno_id does not exist
Die mehrmals in RP.pm vorkommenden Zeilen
'JOIN chart c on (p.income_accno_id = c.id)'
und
'JOIN chart c on (p.expense_accno_id = c.id)'
erzeugten einen Fehler, da es in der Tabelle parts
keine solchen Spalten gibt, sondern in taxzone_charts
Deshalb jeweils die Zeile
'JOIN taxzone_charts t ON (p.buchungsgruppen_id = t.id)'
vorher eingefügt und jeweils p.income bzw. p.expense durch
t.income bzw. t.expense ersetzt.
Der Fehler trat auf bei 'Berichte -> Projektbuchungen'
sowie bei der GUV und BWA mit ausgewähltem Projekt.
Jan Büren [Mon, 3 Sep 2018 14:52:00 +0000 (16:52 +0200)]
Fixt #352 Beim Drucken mehrerer Rechnung aus dem Bericht heraus wird der Rabatt falsch berechnet
Hotfix für die zweifache Berechnung vom Rabatt (Marge bei Berichten falsch) erstellt.
Hintergrund: Der alte Code erwartet keine vorformatierten Werte, wird aber bei
periodischen Jobs noch zwingend aufgerufen (sellprice mit fxsellprice in MassPrintCreatePDF überlagert)
Ferner Rundungsgenauigkeiten für wiederkehrende Rechnungen erhöht.
Jan Büren [Thu, 29 Nov 2018 13:45:33 +0000 (14:45 +0100)]
Fixt #348 DatevExport kommt mit bestimmten Zeichen im Buchungstext nicht klar
In der Mandantenkonfiguration befindet sich jetzt eine Einstellung,
welche die Kodierung des DATEV-Exports steuert. DATEV erwartet CP1252.
kivitendo kann diese Kodierung so vom kivitendo Nutzer einfordern, alternativ nicht
vorhandenen Zeichen versuchen zu ersetzen oder die DATEV-Erwartung ignorieren
und UTF-8 liefern. Voreingestellt ist CP1252 mit Ersetzungen
Moritz Bunkus [Mon, 26 Nov 2018 14:20:47 +0000 (15:20 +0100)]
LC_CTYPE-Locale auf eine UTF-8-Locale setzen
Beim Starten des Perl-Interpreters wird die Locale anhand von
Umgebungsvariablen wie `LC_CTYPE`, `LC_ALL` und `LANG`
gesetzt. Unter (F)CGI sind diese normalerweise leer, wodurch als
Locale die POSIX-Locale (`C`) gewählt wird — und die hat nur ASCII als
Zeichensatz.
Die iconv-Funktion scheint nun nicht transliterieren zu können, wenn
ASCII als Zeichensatz ausgewählt ist. Sie macht dann z.B. aus `ć` ein
`?` anstelle von `c`.
Beim Start der Programme wird nun `LC_CTYPE` auf eine sinnvoller
Locale gesetzt. Dies ist `de_DE.UTF-8` oder `en_US.UTF-8`, falls
erstere nicht verfügbar ist. Die Sprache ist hierbei irrelevant, da
nur `LC_CTYPE` gesetzt wird und und nicht z.B. auch `LC_MESSAGES` oder
`LC_TIME`.
Dies ist Voraussetzung dafür, das #348 gefixt werden kann.
Bernd Bleßmann [Fri, 23 Nov 2018 16:25:50 +0000 (17:25 +0100)]
Part-Controller: Normalisieren nach Parsen der Form und nicht als run_before
Das Problem enstand durch commit 2e97532c88dacf9523576df4028b6f7df5967ea8
"Fixt #349 (Normalisierung Artikel) - normalize_text_blocks nach Part-Controller
migriert"
normalize_text_blocks greift auf $self->part zu, welches beim Neuanlegen
noch nicht existiert, wenn normalize_text_blocks als aller erstes durch
run_before aufgerufen wird. Danach wurde init_part aufgerufen, welches
aber bei einem neue Artikel den part_type braucht, um part zu erzeugen.
Das ist aber nicht nötig, da das part in den action_add_xxx-Methoden
später erzeugt wird.
Ausserdem muss normalize_text_blocks z.B. auch nicht bei den Picker-Actions
aufgerufen werden.
Also normalize_text_blocks nur nach dem Parsen der Form aufrufen.
freiphone [Sun, 18 Nov 2018 22:57:03 +0000 (23:57 +0100)]
Neu angelegte Artikel in Shopware aktivieren.
Scheint seit Shopware 5.2 notwendig zu sein, damit der Artikel im Frontend erscheint.
s. https://forum.shopware.com/discussion/39006/artikel-nach-import-ueber-rest-api-im-frontend-nicht-sichtbar
Lager/Einlagern: Grund der Einlagerung wird ignoriert
- Abfrage der eindeutigen ID des Transfertypes statt der Bezeichnung hinzugefügt
- Abfrage nach der eindeutigen ID des Transfertyps erweitert:
- ist diese vorhanden so wird sie direkt verwendet
- ist sie nicht vorhanden so wird das Transferobjekt über den alten Weg erzeugt und die ID des Transfertyps daraus genommen
(letzteres tritt beim auslagern von Lieferscheinen auf)
Bernd Bleßmann [Wed, 7 Nov 2018 10:15:04 +0000 (11:15 +0100)]
Inventur: Schwellwert in Mandantenkonfig. für Warnung bei Mengenabweichung
In der Mandantenkonfiguration kann ein Mengenschwellwert eingegeben werden.
Wenn die bei der Inventur gezählte/eingegebene Zielmenge mehr als dieser
Schwellwert von der Menge in der Datenbank abweicht, dann wird eine Warnung
angezeigt.
Hintergrund: Mitarbeiter lesen den Artikel mit einem Barcode-Scanner ein und
vergessen manchmal, die vorher eingegebene Menge zu speichern. Dann wird die
Artikelnummer oder EAN in das Mengenfeld geschrieben und ein "Enter" ausgelöst.
Dann ist die Zielmenge sehr groß und falsch. Das kann damit verhindert bzw.
abgeschwächt werden.
Bernd Bleßmann [Mon, 29 Oct 2018 14:48:06 +0000 (15:48 +0100)]
Part-Controller: Als neu verwenden: neue Id für Kunden-/Lieferanten-Art-Nr.
bzw. nicht die alte Id (MakeModel / PartCustomerPrice) für die neuen Objekte
verwenden. Sonst gehen die Kunden-/Lieferanten-Art-Nr. beim Speichern im alten
Artikel verloren.
Bernd Bleßmann [Mon, 15 Oct 2018 14:34:25 +0000 (16:34 +0200)]
Auftrags-Controller: Variable besser benennen …
bin drüber gestolpert, weil ich gesucht habe, wo im Workflow -> Auftrag
die Verknüpfungen gespeichert werden. Wg. $quo nahm ich an, dass es hier
nur um Angebote geht.
Generell können generierte Dokumente nur alle den gleichen Namen haben.
Beim Umbennen wird ggf. auch die Version mitgeschickt. Diese muss aus de rID herausgefiltert werden
Angebote|Preisanfrage werden immer geschlossen, falls
es ein Auftrag oder Lieferantenauftrag daraus generiert wird.
Die ursprüngliche Funktion in OE.pm kann als Quelle noch
mehrere Belege haben, dies ist im aktuellen Workflow nur eine
1:1 Beziehungen. TODO: Testfall.
Auftrags-Controller: Beleg vor drucken und E-mailen speichern.
Das nur bei "speichern" auch gespeichert wird, ist vielleicht konsequent, aber
im Alltag eher unpraktisch. Viele Anwender hatten damit ein Problem, dass die
verschickte oder gedruckte Version des Belegs anders ist, als die gespeicherte,
weil oft nicht daran gedacht wurde, nach der letzten Änderung und nach dem
Drucken/versenden nochmals zu speichern.
Deshalb wird jetzt beim Drucken und E-Mailen immer gespeichert.
Auftrags-Controller: Wiederkehrende Rechnungen. Konfig nicht mit neuer id …
… speichern, wenn diese schon vorhanden ist, sondern die vorhandene mit
den neuen Attributen versehen.
Wenn sich die id ändert, lässt sich nicht mehr feststellen, ob für diese Konfig
bzw. diesen Auftrag schon wiederkehrende Rechnungen erzeugt wurden und es werden
evtl. alle nochmal erzeugt.
Bevor es den Customer-Picker gab, bestand die Möglichkeit
über einen Klick auf ein Fragezeichen den Kunden/Lieferanten
rauszusuchen. Die Funktion war noch ein bisschen erweitert,
da der Ansprechpartner noch separat angezeigt wurde (toter Projektcode im
Standard ?), die zusätzlich Auswahl-Funktion hatte keine weitere
Auswirkung. Die aktuelle einzige Stelle, wo der Code noch geladen
wurde ist im Letter-Controller. Das Deaktivieren des js-Codes
zeigt, wie erwartet, keine Unterschiede im Verhalten =>
Alles mittlerweile komplett überflüssig, inkl. edit_part.js (?) in Letter.pm
Werner Hahn [Tue, 25 Sep 2018 10:14:05 +0000 (12:14 +0200)]
TopQuickSearch für den Benutzer konfigurierbar gemacht.
Über UserPreferences, allerdings wird die Mandantenkonfiguration (quick_search_modules) nicht
berücksichtigt. Der Benutzer hat alle Schnellsuchen zur Verfügung.
Das L.multiselect2side macht Probleme deswegen auskommeniert. Wenn aktiv wird das
Emailsignaturfeld m Tab "Persönliche Einstellungen" doppelt angezeigt,
beide Felder und Links (Signatur bearbeiten und volle Signatur prüfen) sind sichtbar.