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
Kosmetik, Kommentar verbessert, toter Code entfernt
BankTransaction(closed_period) Prüft Valutadatum gegen closedto
Gibt 1 (wahr) zurück falls das Valutadatum der Bankbewegunginnerhalb einer geschloßenen Periode ist. Andernfalls 0.
POD, Test und 2 Stellen im Controller geändert.Offen: Payment-Helper, der sollte allerdings nichts über den Zustand...
Payment pay_invoice alle acc_trans_ids sammeln
Hintergrund. new_acc_trans wird mehrfach für verschiedeneFälle verwendet, entsprechend nach jeder Änderung einsammeln
BankTransactionAccTrans für ALL.pm
BankTransaction new method not_assigned_amount
returns the current open amount of this bank transaction.Added to POD
Payment-Helper pay_invoice um Rückgabewert der acc_trans_ids erweitert
Neue Helper-Tabelle SL/DB/BankTransactionAccTrans.pm
Hintergrund: Verbuchte Bankbewegungen sind nur übereinen löschbaren RecordLink aktuell zuordenbar.Das macht ein verlässliche Aussage über die Verbuchungender Bankbewegung schwierig. Besser wäre es eine...
SL::DB::Invoice(closed) POD korrigiert s.a. #368
Ggf. die Routine ganz entfernen oder zumindestens fürGutschriften wie in 368 beschrieben patchen
SL::DB::BankTransactions(linked_invoices): Returns an array of record objects
Anstatt nur die Namen der Belege werden jetzt die Beleg-Objektezurückgegeben. Einziger Aufruf der Methode beim ReportGenerator inController::BankTransactions. Die Stelle entsprechend angepasst
PTC: Sortierung von items beachten bei Rechnungen die nachträglich geändert wurden
(cherry picked from commit eacfe1d260a6f9d4c12aa508b2c4d4cc018508c8)
Preisregeln: Präzedenzbug bei Mengenregel behoben
Durch eine fehlende Klammerung konnten Mengenregeln zufällig nichtgreifen.
(cherry picked from commit f1cf2062a7df1877e931f5655afe899e0dacb649)
Berechtigung, Verkaufsrechnungen persönlich zugeordneter Projekte einzusehen
Man kann nun Mitarbeiter*innen zu Projekten zuordnen, indem man sie inden Projektstammdaten hinzufügt.
Ist eine Mitarbeiter*in zu einem Projekt zugeordnet, so darf sie alleRechnungen ansehen, die über die Projektnummer der Rechnung (nicht der...
Ergebnis von SL::DB::Manager::Employee->current cachen
generische E-Mail-Adresse für Lieferscheine
Ähnlich wie bei Verkaufsrechnungen gibt es generischeEmpfänger für Lieferscheine beim E-Mail-Versand.Die jetzige Konfiguration (nicht änderbar) entsprichtdem Wert Stammdaten und Ansprechpartner in CC.Ist eine Stammdaten-Mail und ein Ansprechpartner definiert,...
DMS-Dateianhänge beim E-Mail-Versand Vorauswahl konfigurierbar
manueller Rechnungsversand per E-Mail. Vorbelegung mandantenweit konfigurierbar
DisplayableNamePrefs: SL::DB:xxx verwenden DB-Helper
erstmal nur Customer/Vendor/Part
DisplayableNamePrefs: DB-Helper als Mixin
Ansprechpartner um boolean Hauptansprechpartner erweitert
Entsprechend mit einigen Attributen für den Export von Kundenstammdatenhinzugefügt.Hintergrund: Ansprechpartner-Export gibt nur die Liste aller Ansprechpartner.Das Feld Kontakt (in der Tabelle Kunde) war wahrscheinlich der Vorgänger...
Stammdaten-Kunden: Neues Feld Amtsgericht. Weitere Export-Möglichkeiten
Ust-ID, Kreditlimit, Amtsgericht (benötigt bspw. für Factoring)
Verkaufsaufträge: konfigurierbares Intervall für Lieferdatum-Berechnung
fixt: #345 Mahnungsersteller im Ausdruck konfigurierbar machen
Im Menüpunkt Mahnungen konfigurieren, kann man nun wählen, obder aktuelle Mitarbeiter für die Mahnung/Zahlungserinnerung gesetzt istoder der ursprüngliche Mitarbeiter/Ersteller der Rechnung
Stammdaten -> Kunden um Textfelder Rechnungsmail und Herkunft personenbezogener Daten erweitert
i)Die Rechnungsmail ist die generische E-Mail des Kunden, welche dieRechnung in der Regel bearbeitet (buchhaltung@, einkauf@).ii)Aufgrund der DSGVO ist es im Zweifel sinnvoll den Erstkontakt...
PTC: Fehlerhafte ungerundete Berechnung von grossamount
Bei Rechnungen mit sehr vielen sehr kleinen Positionen wurde dieRundungsfehlerakkumulation nur in den finalen netamountsberücksichtigt, nicht aber in den daraus berechneten grossamounts was zuCent-Abweichungen geführt hat....
Korrektur PriceTaxCalculator: Falsches Objekt zum Prüfen genommen
mit Sven durchdiskutiert
(cherry picked from commit d4102550a27e2bee22d4faed2626fc1434d9e721)
PTC: item->discount auf 0, wenn nicht definiert, um Warnungen zu vermeiden
PTC: Rückgabe sellprice für items: Steuer und Rabatt berücksichtigen.
So war das vor dem PTC-Rundungs-Patch …"PTC rundet nicht mehr Rabatt vor Mengenmultiplikation"
PTC: Kosmetik/Kommentare
PTC rundet nicht mehr Rabatt vor Mengenmultiplikation
siehe Ticket #82
Neuer Test für 100000 Artikel zu 0,10€ bei 3% RabattEinen weiteren Test angepasst an die neuen Zahlen.
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." auscommit 075f64d61e999506517a304022525d83c29e6e3e rückgängig....
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...
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...
disable_one_time_config: Transaktionssicher (Testcode entfernt!)
disable_one_time_config: Transaktionssicher
Implementiert #357 Auftrag schliessen, falls einmalig wiederkehrende Rechnung inaktiv
Die Generierung einer periodische Rechnung mit der Periode einmaligsollte auch den Quell-Auftrag schliessen.
OrderItem-Manager: sortspec für sellprice und discount genau spezifiziert.
Sonst ist die Sortierung-Spalte evtl. nicht eindeutig, wenn z.B. dasPart-Objekt mit in der Abfrage ist.
behebt # #334"Sortierung Artikelstammdaten/Preisinformationen/Verkaufspreisinformation:...
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 dieserSchwellwert von der Menge in der Datenbank abweicht, dann wird eine Warnung...