Artikelstamm: "Erneuert am" aus parts_price_history holen …
… und in "Preisänderung am" umbenennen.
Das ganze ist mit Rose gelöst und holt die Preise aus parts_price_history.Das hat den Nachteil, dass im Artikelbericht nicht nach der Preisanpassungsortiert werden kann und es wahrscheinlich nicht performant ist....
Mandantenkonfig: Lieferdatum bei VK-Auftrag und Gültigsdatum bei VK-Angebot
Anstatt diese beiden Werte zu berechnen, gibt es die Möglichkeitdiese konfigurativ gar nicht zu setzen. Hoffentlich letzmalig auchfür die OE.pm implementiert.
SL/DB/Helper/ThumbnailCreator.pm wird nicht benutzt
siehe SL/DB/Controller/ThumbnailCreator.pm
Mahnungen: Mit Rechnung verknüpfen
Erstellte Mahnungen werden mit den gemahnten Rechnungen verknüpft undunter "Verknüpfte Belege" gelistet.Außerdem werden Rechnungen über Mahnkosten wiederum zu den zugehörigenMahnungen verknüpft.
impl. #7440
DBUtils: Prüfung auf Trigram-Erweiterung aus S/D/ShopOrder in DBUtils verschoben
Order-Controller: Workflow Lieferantenauftrag → Preisanfrage
Order-Controller: Workflow Verkaufsauftrag → Verkaufsangebot
SL::DB::Order: überflüssigen Code entfernt
Kommentar zum Payment-Helper
Außer in den Testfällen wird der Helper nicht mit einemnegativen Amount aufgerufen. Im Helper befindet sich etwaszuviel automagie. Eigentlich braucht man den Param amount nicht,wird aber überall in kivi übergeben. Eigentlich darf der negativ...
Kunden/Lieferanten: UStId/Steuernr. eindeutig: Mandantenkonfiguration
BT: Punkte. Copy & Paste Fehler von a695c behoben
open_amount mit open_amount vergleichen
S:D:Helper:TransNumberGenerator: Warnung vermeiden.
Getriggert durch Tests (./t/wh/inventory.t). Tritt aber nur auf, wennder Nummerkreis noch leer ist.
Dialogbuchungen um Boolean imported erweitert.
Buchungen mit diesem Boolean können beim DATEV-Exportgefiltert werden. Anwendungsfall sind bspw. in DATEVerstellte Lohnbuchungen, die dann in kivi importiert werden
GLTransaction:: add_chart_booking um get_active_taxkey erweitert
Der Aufruf von add_chart_booking muss sich nicht mehrdarum kümmern welcher Steuerschlüssel gesetzt sein muss, wenner einfach nur den vorkonfigurierten Steuerschlüssel setzen will.Dementsprechend ist param{tax_id} kein Pflichtparameter mehr....
Merge branch 'f-factur-x-und-xrechnung'
Kontoauszug verbuchen: Verkaufsgutschriften nicht negativ bewerten
Punkte für wrong_sign höher gesetzt und beide Gutschriftentypenjetzt sauber abgegrenzt (credit_note und negative_ap_transaction)
BankTransaction: Treffer für Kreditorengutschriften erhöhen
negativ_ap_transaction sollte keine Strafpunkte mehr fürsVorzeichen erhalten. TODO: Verkaufs-Gutschriften prüfen
S/D/Order: new_from_multi: Leistungsdatum nur übernehmen, wenn überall gleich.
Für den Workflow, aus der Auftrags-Liste mehrere Aufträge zu einemzusammenzufasssen.
Kreditorenbuchungen: Zahlungsbedingungen in Belegvorlagen
Merge branch '2020-leistungsdatum'
SL::DB::Invoice->new_from: auch Leistungsdatum (tax_point) übernehmen
Preisanfrage/Aufträge: dort, wo es ein Liefertermin gibt, diesen f. Steuer nehmen
Auftrags-Controller: Leistungsdatum bei Workflow berücksichtigen
Factur-X/ZUGFeRD: Unterstütztung für Profil »XRechnung 2.0.0«
Factur-X/ZUGFeRD: in »Factur-X/ZUGFeRD« umbenannt
Mit ZUGFeRD-Standard Version 2.1.1 ist der offizielle Name desEU-Standards schlicht Factur-X. ZUGFeRD ist nur noch der toleriertealte Name.
In der Oberfläche ist nun überall von »Factur-X/ZUGFeRD« die Rede....
Factur-X/ZUGFeRD: neues Feld »Unsere Leitweg-ID beim Kunden« in Kundenstammdaten
Wird für XRechnungs-Profil von ZUGFeRD benötigt.
Factur-X/ZUGFeRD: UStID-Nr des Kunden nur ausgeben, wenn tatsächlich angegeben
Factur-X/ZUGFeRD: Verkäufernamen aus Employee-Objekt nehmen
Wichtig für Personen, die inzwischen aus der Auth-Datenbank gelöschtwurden. Für die existiert der Employee-Eintrag weiterhin, und von dortkann man den Namen beziehen.
SL::DB::Object: Methode update_collections für One-To-Many-Relationships
Der große Nachteil einer direkten Zuweisung wiez.B. `$customer->shiptos($::form->{shiptos} // [])` ist, dass Roseerst mal alle Objekte der Relationship löscht (auch wenn die neuen...
AttrDuration für minutes: _in_hours und _in_hours_as_number
Generierte Helfer-Methoden für Attribute, die normalerweise Minutenspeichern. Die Funktion `attribute_in_hours` rechnet die Minuten inStunden um (beim Lesen) und umgekehrt (beim Schreiben).
`attribute_in_hours_as_number` formatiert zusätzlich den Wert in...
CsvImport: dateformat Unterstützung
default ist auf dem dateformat des Benutzers
Leistungsdatum: Lieferscheine (nur als Hidden)
Leistungsdatum: wiederkehrende Rechnungen
Leistungsdatum: DATEV, Debitoren-/Kreditoren-/Dialogbuchungen
Einkauf/Verkauf: Feld »Leistungsdatum« für Steuerberechnung
SL::DB::Employee: Warnung vermeiden
VK/EK-Lieferschein: Warnung beim Workflow zur RG, falls nicht aus/eingelagert
In Mandantenkonfig einschaltbar.
Order->new from poso/sopo keine quonumber übernehmen
Im Lieferantenauftrag macht es keinen Sinn, dass dieVerkaufs-Angebotsnummer als Anfragenummer übernommen wird.
S:D:OrderItem: nicht benutzte Module nicht inkludieren
SEPA-Überweisungen: Zahlungsbedingungen f. Skonto aus EK-Rechnungen übernehmen …
… und nicht aus den Lieferanten-Stammdaten.
Hier könnte es im VK und EK noch eine Art fallback auf die Zahlungsbedingungenaus den Kunden-/Lieferanten-Stammdaten geben - so dass diese zusätzlich als...
Auslagern über VK-Rechnung, Erweiterung um Abgleich Seriennummer == Charge
Option in Mandantenkonfiguration->Lager
S/D/Order: before_save-hooks f. indiv. Lieferadressen, um …
- keine leeren zu speichern- das Modul immer auf 'OE' zu setzen
S/D/Shipto: Methode is_empty, um auf leere Lieferadresse zu prüfen
FlattenToForm: individuelle Lieferadresse und CVars berücksichtigen.
Mandanteneinstellung: Projekt zum Auftrag erzeugen auch für Order-Controller
Skontovorschläge: ungültige Steuer-Zeilen aus acc_trans ignorieren
Buchungen in acc_trans, die das Steuer-Konto ansprechen (also eines,bei dem chart_link AR_tax oder AP_tax enthält), haben oftmals eineungültige Kombination aus taxkey & tax_id (ungültig im Sinne von:...
Auftrags-Controller: Wechselkurs pro Beleg …
- Wechselkurs wird pro Beleg gespeichert- Wechselkurs ist immer änderbar- vorausgefüllt aus "alter" Tages-Wechselkurstabelle
Bezieht sich auch auf #135Refs #135
Wechselkurs pro Angebot/Auftrag: legacy-Methode exchangerate umbenannt
Wechselkurs pro Angebot/Auftrag: DB-Upgrade-Skript + Rose
exchangerate direkt in Tabelle oe ablegen.
Die Implementierung, um bei Angeboten/Aufträgen den Wechselkurs pro Belegzu speichern folgt in weiteren commits und wird erstmal nur für den neuenAuftrags-Controller umgesetzt....
S:D:Order: kein has_customervendor in kivitendo
Anpassung nach cherry-picks aus odyn
Auftragsschnellerfassung: Korrekturen für Währung/Wechselkurs
- Feld auf disabled setzen wenn nicht gebraucht- _as_null_number damit undef nicht zu 0 wird- Übersetzte Fehlermeldungen
ticket #9491
(cherry picked from commit c581e4685a217bdd5b73380b1f808037a473dd9f)...
Auftragsschnellerfassung: Währung und Wechselkurs definierbar
impl. #9491
(cherry picked from commit 6cdc5a4a33df4530ce4e141151e83138320e27a2)(cherry pick von odyn)
Rose-Attr-Helfer: _as_null_number
von odyn abgeguckt, aber nicht mit SL::Helper::Number implementiert(gibt es in kivitendo nicht)siehe auch odyn: commit b4177a76db52e94795314b527774f515fd8ee42f
SL::DB::ShopOrder - in convert_to_sales_order transdate übergeben
Um ein bestimmtes Datum zu forcieren, nützlich für Tests.
Außerdem Umstellung auf hartkodiertes Testjahr 2019 in 2020.
SL::DB::Invoice new_from - param transdate übergeben
Insbesondere bei Tests nützlich, um das Defaultverhalten zuüberschreiben.
Payment Helper - Logikfehler bei Parameter transdate
Es war eine Klammer falsch gesetzt, daher wurden nie DateTime-Objekteerkannt und man mußte das Datum immer als formatierten String übergeben.Jetzt sollte es auch wieder mit DateTime-Objekten funktionieren.
Merge remote-tracking branch 'origin/f-leistungsdatum'
ZUGFeRD: Gesamtsteuer nach PTC-Strukturänderung richtig ermitteln
Chart cache_taxkeys - startdate korrekt abfragen
Ansonsten werden Buchungen am 1.7.2020 (= startdate) nicht richtigzugeordnet.
S:D:Order: deliverydate Methode für PTC
PTC: Steuer nach Lieferdatum oder Rechnungsdatum
sollte nur für Rechnungen/Gutschriften gelten, nicht für Aufträge.
Lieferdatum in Dialogbuchung: DB-Upgrade + Rose
PTC: Rückgabehash taxes in taxes_by_chart_id umbenannt
Damit ist klarer, was zu erwarten ist
ZUGFeRD: Steuerwerte pro Steuer, nicht pro Steuerkonto ausweisen
PTC: Steuern auch nach Steuer-Id zurückgeben
Bisher kann der PTC die berechntete Steuer pro Steuerkonto zurückgeben.Allerdings kann kivi so konfiguriert sein, dass verschiedene Steuernauf ein Konto gebucht werden. Diese lassen sich dann durch die Rückgabe...
Finanzübersicht: Enddatum bei wied. Rechnungen ohne automatische Verlängerung gefixt
Ist eine wR gekündigt, so darf ihr Betrag nur bis zum Enddatumberücksichtigt werden. Das gleiche gilt aber, wenn eine Rechnung zwarnoch nicht gekündigt ist, wohl aber ein Enddatum aber keine...
Abteilungen bei Ansprechpersonen: Freitext-Feld und/oder Auswahlliste
Die Abteilung wird entweder nur mit einer Auswahlliste angezeigt oder mitFreitext-Feld und Auswahlliste. Das ist annähernd das alte Verhalten - imFreitext-Feld eingegebener Text wird auch in contact_departments gespeichert....
Abteilungen bei Ansprechpersonen: SimpleSettings-Controller zum Editieren
Abteilungen bei Ansprechpersonen in eigene Tabelle: DB-Upgrade und Rose
Titel von Ansprechpersonen: Freitext-Feld und/oder Auswahlliste
Der Titel wird entweder nur mit einer Auswahlliste angezeigt oder mitFreitext-Feld und Auswahlliste. Das ist annähernd das alte Verhalten - imFreitext-Feld eingegebener Text wird auch in contact_titles gespeichert....
Titel von Ansprechpersonen: SimpleSettings-Controller zum Editieren
Titel von Ansprechpersonen in eigene Tabelle: DB-Upgrade und Rose
Anreden: Kunden-/Lieferantenstamm: Freitext-Feld und/oder Auswahlliste
Die Anrede wird entweder nur mit einer Auswahlliste angezeigt oder mitFreitext-Feld und Auswahlliste. Das ist annähernd das alte Verhalten - imFreitext-Feld eingegebener Text wird auch in greetings gespeichert....
Anreden: SimpleSettings-Controller zum Editieren
Anreden in eigene Tabelle: DB-Upgrade und Rose
FlattenToForm: natural_person mit übernehmen
Kunden/-Lieferantenstamm: Flag "natürliche Person": DB-Upgrade + Rose
Bei Sortimenten Sortimentsartikel nach 'position' sortieren
Bisher wurde die Spalte 'position' in der Tabelle assortment_itemsignoriert.
Mahnungen: Optionales Feld Rechnungen ausdrucken für Mahnungs-Konfiguration
ZUGFeRD: Bankkonten: Standardwert »use_for_zugferd« auf FALSE gesetzt
ZUGFeRD: UStID-Nummern validieren und normalisiert ausgeben
Kunden/Lieferanten: UStID-Nummern beim Speichern validieren
ZUGFeRD: Zahlungsinfos ergänzt: Kontonummer, Typ=Einzug/Überweisung
ZUGFeRD: Einstellung bzgl. Erzeugung auch in Kundenstammdaten
ZUGFeRD: Kosmetik
ZUGFeRD: Zahlungsbedingungen: Skonto-Basis-Betrag mit ausgeben
ZUGFeRD: UStID des Kunden angeben, sofern bekannt
ZUGFeRD: Verkäufer-UStID ist über Validierung erzwungen vorhanden
ZUGFeRD: richtige Typencodes für Stornos
ZUGFeRD: Test-Modus über Mandantenkonfiguration konfigurierbar gemacht
ZUGFeRD: Feature über Mandantenkonfiguration abschaltbar
ZUGFeRD: Validierung diverser nötiger Parameter
ZUGFeRD: allgemeine Notizen für alle Rechnungen in Übersetzungen anlegen können
ZUGFeRD: Rechnungen mit ZUGFeRD-Daten erzeugen
PDF/A-Erzeugung: die XMP-Metadaten selber erzeugen
PDF-Erzeugung: Support fürs Erzeugen von PDF/A-konformen PDFs
Es gibt einen Rose-DB-Helfer `S:D:H:PDF_A`, der die erforderlicheStruktur für `SL::Template::LaTeX` (via`$form->{TEMPLATE_DRIVER_OPTIONS}->{pdf_a}`) erzeugt. Der Helfer istfür die üblichen Belegklassen (`S:D:{Order,DeliveryOrder,Invoice}`)...
Mandantenkonfiguration: Adress-Feld in einzelne Bestandteile aufgeteilt
Unterstützung für PostgreSQL 12 Teil 2
PostgreSQL 12 unterstützt OIDs nicht mehr. Daher die letzten Stellenumgestellt, an denen noch OIDs verwendet wurden.
Kundenspezifische Artikelpreise: Reihenfolge/sortorder berücksichtigen