Session Content: Query zum Einlesen gefixt
Operatorpräzedenz wurde falsch berücksichtigt.
Session Content: Race condition gehoben
Der ursprüngliche Mechanismus hat einfach nur alle Session Variablengespeichert und beim Session restore wieder geladen. Es hat sich abergezeigt, dass große Daten in der Session Requests deutlich langsamermachen, also wurde das Flag auto_restore eingeführt. Session Werte, die...
OrderController: nach Speichern hiddens der ids wieder setzen, …
… falls die Makse nicht neu geladen wird.
OrderController: Kosmetik
Sessions: keine Prüfung der Quell-IP-Adresse
Wenn ein Hostname sowohl A- (IPv4) als auch AAAA-Records (IPv6)aufweist, nutzen manche Reverse Proxies wie nginx mal IPv4, malIPv6. Dadurch prüft kivitendo manchmal (nämlich genau dann, wenn dieVerbindung über IPv4 reinkommt) die Quell-IP. Wurde die Session aber...
Merge branch 'f-bundled-perl-modules'
Module: implizite Anforderung auf Set::Crontab entfernt
kivitendo nutzt das Modul nicht direkt, sondern nurDateTime::Event::Cron. Das nutzt Set::Crontab unter der Haube, weshalbwir keine direkte Abhängigkeit deklarieren sollten.
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
SelfTest: gldate mit itime vergleichen - sollte übereinstimmen
OrderItem-Manager: Sortierung: runningnumber gibt es nicht -> position
Module: gebundletes YAML durch dünnen Wrapper über YAML::XS & YAML ersetzt
Variable »$query« nicht durch doppelts »my« shadowen
Module: Rose::DBx::Cache::Anywhere durch eigene Variante ersetzt
Module: überflüssige Prüfung auf Test::Harness entfernt
Perl 5.10.1 wird seit kivitendo 3.1.0 vorausgesetzt, und 5.10.1enthält Test::Harness im Core.
Merge branch 'f-project-search-custom-variables'
OrderController Sortierung berichtigt. Sort::Naturally hat auch nichtwie erwartet sortiert
Pflichtenhefte: Exportoption bzgl. benutzerdefinierter Variablen in Suchmaske gefixt
Projekte: benutzerdefinierte Variablen in Suchmaske
Projekte: alte Suchmaske entfernt
OrderController: reorder mit Sort::Naturally damit nach Preis ordentlichsortiert wird
BankTransaction: save_bt keinen bezahlten rechnungen akzeptieren
Telefonnummernsuche: Datenank-ID & Typ zurückgeben
Merge branch 'f-phone-number-lookup'
Bankverbuchungen: freies Skonto auch abziehen. Code-Vereinfachung (not_assigned)
Vergessen, den freien Skonto-Betrag von invoice_amountabzuziehen. Not-Aus-Schalter in feeb3fc8352. Jetzt auchim Controller saubere Fehlermeldung ausgeben.
Order-Controller: beim Neuberechnen auf Reihenfolge achten, …
… sonst kam es vor, dass die Zeilensummen durcheinander kamen, dadie Reihenfolge der items von PTC und Order nicht zwingend gleich ist.Wenn beide sortieren (PTC tat dies schon), dann stimmt's.
API für Telefonnummernrückwärtssuche
Authentifizierung: Unterstützung für HTTP Basic Authentication RFC 7617
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
Kontoauszug verbuchen rückgängig machen. Closedto und GL
Falls eine Buchung in einer geschlossenen Periode ist,erst gar nicht die Möglichkeit zum Anwählen geben.Ferner GLTransaction auch erlauben, allerdings diese dannkomplett (gl Nebenbuch) rauslöschen
BT valutadate anstelle transdate an pay_invoice
Der Tag der Buchung ist in diesem Fall der Tag derWertstellung, entsprechend "richtigeren" wert an pay_invoiceübergeben.
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...
SelfTest Transaction zum commit von gerade: weniger false positives
Bei Buchungen, bei denen nicht ein RecordLink existiert (GL),gelöscht, ist es nicht mehr möglich sauber auf verwaiste Einträge zutesten. Entsprechend min(itime) from bank_transaction_acc_trans als...
BankTransaction: want a whole lotta test
neuer Test full_workflow in bank_transactions1.Verbucht drei Verkaufsrechnungen nacheinander, davoneine mit Zahlungsbedingung Skonto nach ZB. Zusätzlichzu den Nebenbücher werden acc_trans Einträge kontrolliert,...
Reconciliation: Veto, kein invoice_amount nachträglich setzen.
Im Fehlerfall die Summe der Bank gegenüber der Buchungenan Benutzer (testfall) übergeben.
unlink_bank_transaction optionaler parameter für testfall
BankTransaction Die richtigen (erwarteten) Parameter von amount an pay_invoice
Stellt den vorherigen Zustand im Controller wieder her, der überFallunterschiede vom Invoice-Typ Vorzeichen verschoben hat.Tests laufen damit erstmal durch. Ferner kann und muss es mehr...
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: Neue Funktion um Bankverbuchungen wieder rückgängig zu machen
action_unlink_bank_transaction inkl. PODDer Bericht Bankbewegungen erhält im Presenter Anhakboxen (ähnlich wie bei SEPA)
BankTransaction: weniger im Controller rechnen -> ausgelagert in Objekt
s.a. Commit davor. Redundanzen hier direkt vorbeugen.
Dialogbuchungen aus Bankbewegungen teilweise Verbuchungen erlauben
Da vorher nur komplette Bankbewegungen verbucht werden konnten,war es nicht sinnvoll Teilbeträge im Dialog zu buchen.Das Verfahren ist jetzt geändert und übergeben wird der aktuelleRest-Betrag der Bankbewegung
BankTransaction new method not_assigned_amount
returns the current open amount of this bank transaction.Added to POD
BankTransaction: save_single_bank_transaction API-Änderung
S.a. POD und devel-ListeTestfälle angepasst
save_single_bank_transaction: acc_trans_ids von pay_invoice speichern
Payment-Helper pay_invoice um Rückgabewert der acc_trans_ids erweitert
Kosmetik/Perl-Detail Optionen als Hash anstatt array
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)
Order: Auftrag mit Items und Ware laden
Die werden überall gebraucht, also gleich mitladen
(cherry picked from commit cb546c6e64e4b3315dcd8b826261939a89baa543)
Order: second row javascript direkt indizieren.
Beschleunigt das Nachladen der zweiten Zeile bei großen Aufträgen (100+Zeilen), weil der client weit weniger DOM selectors auswerten muss.
(cherry picked from commit 87ca139b2162813d71dec8e4e8ecef21588c818d)
Preisregeln: Präzedenzbug bei Mengenregel behoben
Durch eine fehlende Klammerung konnten Mengenregeln zufällig nichtgreifen.
(cherry picked from commit f1cf2062a7df1877e931f5655afe899e0dacb649)
CreatePDF-Helper: UNLINK für temporäre Dateien (wieder) richtig setzen
Berechtigung, Einkaufsrechnungen persönlich zugeordneter Projekte einzusehen
Betrifft sowohl Einkaufsrechnungen als auch Kreditorenbuchungen.
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...
Autovervollständigung Kunden/Lieferanten auch ohne Stammdatenrechte
Ergebnis von SL::DB::Manager::Employee->current cachen
Order-Controller: Workflow -> *-Auftrag vorher Speichern
Ansonsten werden die cvars nicht übernommen.Außerdem ist es konsistenter, da bei allen anderenWorkflow-Aktionen auch immer gespeichert wird (Rechnung oder LS).
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
Rechnungsversand E-Mail-Body
Falls die generische E-Mail-Adresse verwendet wird, sollte auchdie generische Anrede hinterlegt sein, selbst wenn ein Ansprechpartnernoch in CC gesetzt wird.
manueller Rechnungsversand per E-Mail. Vorbelegung mandantenweit konfigurierbar
Verkauf->Rechnungsbericht Filter nach nicht per E-Mail verschickten Belegen
SL::RP: unbenutzte Subroutine entfernt.
DisplayableNamePrefs: Benutzereinstellungen
DisplayableNamePrefs: Mandantenkonfiguration
DisplayableNamePrefs: SL::DB:xxx verwenden DB-Helper
erstmal nur Customer/Vendor/Part
DisplayableNamePrefs: DB-Helper als Mixin
DisplayableNamePrefs: UserPreferences-Helper f. DisplayableName
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...
Kontoauszugsimport 2 Konten bei einer Bank. Bankgebührenbuchung wird als schon importiert makiertFix für #367
Stammdaten-Kunden: Neues Feld Amtsgericht. Weitere Export-Möglichkeiten
Ust-ID, Kreditlimit, Amtsgericht (benötigt bspw. für Factoring)
Aufruf von with_objects in RequirementSpecPart korrigiert
bei SL::DB::Object ist der Parameter "with", nicht "with_objects" (wiebei SL::DB::Manager::Object)
Das hatte allerdings keine kritischen Auswirkungen, der Parameter wurdeignoriert und die Daten wurden dann erst später geladen.
BackgroundJob SelfTest: unbenutzte Variable entfernt
Typos und spellcheck: unkown -> unknown
Ergänzung zu a3b8cfa7b7546 (Mahnungen konfigurierbar machen)
- bessere Fehlerbehandlung > send_mail läuft schon in einer Transaktion Von daher mit die hart aussteigen Die Signatur des E-Mail-Versenders sollte dann auch zur E-Mail-Adresse passen, entsprechend backup vars erstellt vor dem Aufruf von Form::create_signature
Verkaufsaufträge: konfigurierbares Intervall für Lieferdatum-Berechnung
Zahlungserinnerung an Rechnungsadresse schicken - Weiche für Absender
Mail-Absender aus defaults.dunning_creator ableiten.Falls die Rechnungsadresse E-Mail gesetzt ist, diese als Empfänger nehmen ansonsten dieglobale E-Mail des Kunden (abwärtskompatibel)....
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
Rechnungsadresse aus den Stammdaten bei periodischen Rechnungen verwenden (Anzeige beim Editieren)
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...
SelfTests: check_ap_paid berücksichtigt Auswahl von fromdate und todate
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 #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 partskeine solchen Spalten gibt, sondern in taxzone_charts...
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...
toten Code entfernt