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
S:D:Invoice: _post_add_acctrans: Keine Tranaktionen mit Summe == 0 speichern.
Das liefert einen Fehler beim DATEV-Export. Zudem filtert die Buchungsroutineder Rechnungsmaske diese Buchungen aus raus.
Bezieht sich auch auf #414Refs #414
S:D:Manager:ReconciliationLink: nicht initialisierter Wert: Warnungen vermeiden
Durch Tests getriggert, konkret: durch t/bank/bank_transactions.t
Presenter Mapping für Dialogbuchungen repariert
War bei Umstellung vergessen worden.
add_{ap|ar}_amount_row berücksichtigen gldate
Ansonsten konnte gldate in ar/ap und acc_trans abweichen, wenn gldateexplizit gesetzt war und nicht dem aktuellen Tag entsprach.
S:D:Invoice->new_from: Auftragsdatum aus Auftrag bei Erzeugen aus Lieferschein
GLTransaction - Dialogbuchungen per Rose erstellen
An einigen Stellen im Code werden Dialogbuchungen per Hand erstellt,inkl. Steuern, das soll hiermit vereinheitlicht und vereinfacht...
Jahresabschluß - YearEndTransactions neu implementiert
Der alte Jahresabschluß hatte eine Reihe von Schwächen, z.B. wurde nichtzwischen Bestands- und Erfolgskonten unterschieden, und es wurde auchkein Gewinn- oder Verlustvortrag gemacht. Der Anwender mußte selber...
AccountingPeriod - Methode an get_balance_starting_date übergeben
Für den Fall, daß man die Methode zur Ermittlung des Startdatums nichtaus der Mandantenkonfiguration nehmen möchte, sondern diese selbervorgeben, gibt es nun einen neuen Parameter, um die Methode selber zu...
balance_startdate_method_options nach AccountingPeriod Helper
verlagert, wird auch für YearEndTransactions benötigt.
CSV-Import-Bericht: beim Löschen nur verwaiste Profile löschen
Unter gewissen Umständen kann es passieren, dass es mehrere`csv_import_reports` mit derselben `profile_id` gibt. In so einem Falldarf nur dann versucht werden, die Einträge aus `csv_import_profiles`...
Rose: MetaSetups bzgl. Fließkommazahlen erneuert
bank_transaction_acc_trans: überflüssige Spalte »id« entfernt
Primärschlüssel sind zwei andere Spalten, und die Präsenz dieserNicht-Primärschlüssel-Spalte zusammen mit Typ »serial« macht Probleme,weil Rose kein Default für solche Spalten kennt.
SL::DB::Unit: Warnungen wegen nicht initialisierten Werten vermeiden
Durch Tests getriggert, konkret: durch t/wh/transfer.t
AttrSorted-Helfer: Warnungen wegen nicht initialisierten Werten vermeiden
Durch Tests getriggert, konkret: durch t/controllers/csvimport/parts.t
Rose-Models anhand des tatsächlichen Schemas aktualisiert
Task-Server auf unterschiedlichen Maschinen laufen lassen können
Jede Task-Server-Instanz und jeder Hintergrundjob haben nun ein neuesAttribute »node_id«. Darüber kann gesteuert werden, dass bestimmteJobs nur von einer bestimmten Instanz ausgeführt werden....
Neuer Workflow Lieferantenauftrag->Kreditorenbuchung
Für jedes Aufwandskonto der Positionen im Lieferantenauftrag wird eineZeile in der Kreditorenbuchung erstellt. Gebucht wird standardmäßigauf des entsprechende Aufwandskonto. In der Mandantenkonfiguration...
Payment Helper - POD repariert
Neuer index auf inventory über itime und parts_id
Part Controller - neuer Tab mit Lagerinformationen
SL::DB::Part - get_simple_stock_sql: Mengen pro Bin
und Summen über Lager und Gesamtmenge.
PriceRule Manager - selectall_ids -> selectcol_array_query
Spalte taxnumber aus Tabelle tax entfernt
tax.taxnumber war ein redundanter Eintrag, und entsprach dem Wert vonchart.accno aus tax.chart_id.
Z.B. in SKR04 hatte Steuerschlüssel 3 (Umsatzsteuer 19%) die taxnumber1776 und die chart_id 775 (chart mit id 775 ist das Konto 1776)....
Part: Filter-Specs für Kunden- und Lieferanten-Artikel.-Nr.
PTC: zur Margenberechnung die Nettozeilensumme nehmen.
So ist der Verhalten in den anderen (alten) Masken. Sonst ergeben sichunterschiedliche Werte in den verschiedenen Masken, wenn"Steuer im Preis inbegriffen" gewählt ist.
ungenutzte Spalte "ranking" aus Tabelle "payment_terms" entfernt
Überbleibsel aus uraltem Zahlungsbedingungsfeature
Mahnungs-Tabelle: Fremdschlüsselverknüpfung auf Rechnungstabelle
Merge branch 'f-bundled-perl-modules'
SL::DB::Cache nach SL::DB::Helper::Cache verschoben
Da es sich nicht um eine Mapping-Klasse einer Tabelle handelt, solltesie nicht direkt innerhalb von SL::DB liegen.
Module: Exception::Lite durch Exception::Class ersetzt
OrderItem-Manager: Sortierung: runningnumber gibt es nicht -> position
Module: gebundletes YAML durch dünnen Wrapper über YAML::XS & YAML ersetzt
Module: Rose::DBx::Cache::Anywhere durch eigene Variante ersetzt
Schnellsuche für Verkaufs- & Einkaufslieferscheine
Kontoauszug verbuchen: Neuen Skonto-Typ
Eingabe eines freien Skonto-Betrags in der Maske aktiv.Ferner Anzeigen des Skonto-Betrags bei with_skonto_pt, damitder Anwender besser visuell unterstützt wird.
Payment::pay_invoice um Zahlungsbedingung freies Skonto erweitert
POD angepasst. Falls der Zahlungstyp free_skonto und der Parameterskonto_amount übergeben wird, so wird dieser anstelle von einemberechneten Skonto-Betrag verbucht. Das Vorzeichen wird entsprechend...
Redundanten Template-Code in bank_transactions/invoices.html aufgeräumt
Payment Kosmetik/Konvention
POD aktualisiert. Pflicht-Parameter am Anfangder Methode prüfen