Auftrags-Controller: Sprache aus Kunden-/Lieferantenstammdaten vorbelegen.
Auftrags-Controller: totalen Ertrag unten anzeigen
Auftrags-Controller: Verkäufer aus Benutzer vorbelegen, wenn nicht beim Kunden
Beim Anlegen eines Angebots/Auftrags wird der Verkäufer mit dem Verkäufer ausden Kundenstamdaten gefüllt. Ist hier keiner gestezt, so wird der Verkäufer mitdem aktuellen Benutzer vorbelegt.
Auftrags-Controller: "Speichern und Lieferschein/Rechnung" unter Workflow
Auch, wenn hier gespeichert wird, ist es doch ein Workflow.
Kundenstatistik: Rechte abgefragt
Kundenstatistik: Typo und Formatierung
Kundenstatistik: POD Syntaxfehler behoben
Payment-Helper: get_payment_select_options_for_bank_transaction verbessern
Falls es kein Skonto-Datum gibt, d.h. der Beleg hat überhaupt keineSkonto-Option, dann auch dem Benutzer erst gar nicht die Auswahlanbieten.Prinzipiell die Auswahl anzeigen ist sinnvoll, damit das Verhalten...
SEPA-Export: Überweisungen via SEPA - Feature Überweisungsdatum vorbelegen
Muss aktiv in der Mandantenkonfiguration (Feature -> SEPA) aktiviert werden.Entweder wird ein vorhandenes Skontoziel als Ausführungsdatum andie Bank/Export übergeben oder die Netto-Fälligkeit....
Kundenstatistik: javascript uas Templates in eigene js ausgelagert
Kundenstatistik: Rechte
1 Recht um den Tab Belege bei Kunden anzeigen zu lassen1 Recht um den Tab Belege bei Lieferanten anzeigen zulassen
Kundenstatistik: POD
Kundenstatistik: Briefe
Kundenstatistik: Emails
Kundenstatistik: offene Rechnungen, offene Aufträge, Angebote, Aufträge,
Kunden und LieferantenKunden Angebote, Aufträge, RechnungenLieferanten Preisanfragen, Lieferantenaufträge, Rechnungen
Kundenstatistik: dbh auf SL::DB->client->dbh umgestellt
Kundenstatistik: erster commit ohne Webtemplates
Ergänzend zu #359 DB->load anstatt croak
croak|die liefert keine Meldung an den ajax-Aufrufer zurück.SL::DB::..->load hingegen schon. Entsprechend geändert.
fix #359 get_payment_select_options_for_bank_transaction vereinfachen
OrderController Einrückung/Formatierung
OrderController Typo
get_storage_enabled war falsch in MassInvoiceCreatePrint
auch in MassDeliveryOrderPrint eingefügt
Kreditorenbuchungen: Warnung bei vorhandener Rechnungsnummer für diesen Kreditor
Vorbedingung:AP.js erweitert, sodass der Prüfcode entsprechende Inputs von IR oder AP prüft.
Erweiterungen:Einkaufsrechnung (IR) mit derselben Prüfung wie Kreditorenbeleg beim Speichern versehen...
Fixt #336 Can't locate object method "doc_storage_enabled" via Package SL::Controller::MassInvoiceCreatePrin
Auftrags-Controller: OpenDocument-Druck
CustomerVendor-Picker: 'type' nicht als html-Attribut setzen
Die Parameter des Picker-Aufrufs werden an das Input-Tag weitergeben und sowurde das type-Attribut mit dem Typ (customer/vendor) des Pickersüberschrieben.
Dateimanagement: nicht implementierte Speichertypen nicht anbieten/entfernen
Aus Maske und Datenbank (defaults)
DATEV-CSV-Export Belegfeld 2: trim statt regex verwenden
DATEV-CSV-Export Belegfeld 2 6- oder 5-stellig formatieren
Ansonsten gibt es bei führenden 0en immer eine Warnung beimDATEV-Import.
Auftrags-Controller: gelieferte Menge in Auftragsposition anzeigen.
ShippedQty: Typo in POD
Workflow VK-Rechnung->Auftrag auf neuen Controller bei experimentellen Features
Auftrags-Controller: weitere Links hierhin bei experimentellen Features
Auftrags-Controller: nur neue Maske/Links hierhin, wenn experimentelle Features an
- in Menüs Verkauf/Einkauf: Links zu Angebot u. Auftrag)- in Berichten Angebot/Auftrag und Lieferscheine: Links zu Angeboten und Auträgen- im Presenter (und damit in der Liste der verknüpfte Belege)...
SL::Menu: Negierung (!) beim access_string erlauben
und Tests hierzu
SL::Auth: evaluate_rights_ary: Negierung (!) ermöglichen
Auftrags-Controller: S:D:PartsGroup mit use einbinden, nicht mit require
Auftrags-Controller: kein run_before für create_pdf.
Es gibt schon länger keine action_create_pdf mehr.Auch den Namen des session-keys umbenannt.
Auftrags-Controller: kein Unterstrich vor privaten Funktionen
In einem Controller wird den von aussen zugänglichen Funktionen "action_" vorangestellt, deshalb ist zur Unterscheidung das Voranstellen einesUnterstrichs unnötig und verschlechtert die Lesbarkeit.
Auftrags-Controller: Kosmetik, alignement
Auftrags-Controller: Auftrag aus DB mit new(id => ...)->load laden …
und nicht mit find_by, damit ein Fehler bei nicht vorhandener idgeworfen wird.
Auftrags-Controller: kein all_projects mehr nötig, da Projekt-Picker
FlattenToForm - Verkäufer-Daten und gelöschte Benutzer berücksichtigen.
Analog zur Behandlung der Benutzer-Daten, die nur in auth vorhanden sind,auch die Verkäufer-Daten berücksichtigen.
Zudem Daten gelöschter Benutzer/Verkäufer, die der Beleg referenziert, zur...
installation_check: shell_quote mit vorangestelltem Modulnamen aufrufen, …
… sonst wird die subroutine nicht gefunden, wenn mit require eingebunden wird.
Kam im commit 1cff7d8034b00f4fd365a716596b54b798f035d7"InstallationCheck: String::Shellcode nicht zur compilezeit laden"...
Auftrags-Controller: Null-Werte in Eingabezeile von leer unterscheiden.
Die Idee war, bei einem leeren Wert in der Eingabezeile ein default zunehmen (Menge => 1, Preis => "bester" Preis, Rabatt => "bester" Rabatt).
Bisher wurde aber nicht zwischen leer und 0 bzw. 0,00 unterschieden, so dass...
Auftrags-Controller: Bei Angeboten das richtige Nummern-Feld nehmen
Fehler waren hier: keine Angebotsnummer in Name des Anhangs, kein Speichernim Webdav oder Datei-Storage.
Auftrags-Controller: Email: Anhang-Policy anders prüfen
Wenn das Dateimanagement ausgeschaltet ist, gibt es keine attachement_policy imDialog, also nicht auf 'normal' testen.
Sonst wurden keine Anhänge bei ausgeschaltetem Dateinmanagement verschickt.
Auftrags-Controller: print-options aus E-Mail-Dialog für Form::send_email
Sonst wurde z.B. der letzte Ausdruck nicht nicht als Anhang verschickt,wenn dies ausgewählt wurde, da z.B. formname nicht bekannt war.
Added greeting to "my @vc_fields" in flatten_to_form to be able to use the greeting variable in periodic invoices_
Liefertermin Erinnerung für Auftrags-Controller
Falls in Mandanten-Konfig aktiviert, wird ein leerer Eintrag inLiefertermin in Aufträgen beim Speichern oderbeim Workflow 'Speichern und Lieferschein' angemahnt.
DATEV-CSV Export Belegfeld2 wieder mit Fälligkeitsdatum YYMMDD belegen
Buchungsgruppen-Auswahl in Waren alphabetisch sortieren
behebt #356 Bei Zuweisung von zwei Kreditorengutschrift per Kontoauszug verbuchen fehlerhaft
Programmkorrektur für Testfall #b75c6cbb82023b0d6
BankTransactions.pm proposals an Testfall übergeben
BankTransaction.pm POD verbessert, Feedback von Sven verarbeitet
Kontoauszug verbuchen: Nur unabgeglichene Buchungen anzeigen
implementiert teilweise Issue #163
MT940 import: transaction_code statt transactionCode
aqbanking-cli benutzt im Standardprofil transactionCode, und das wurdeauch hier beim umwandeln im Header generiert. Das interne Feld wurdeaber mittlerweile umbenannt zu transaction_code, also wurdetransaction_code nicht mitimportiert. Das hatte dann zur Folge, dass...
Dialogbuchen, Betrag aus Kontoauszug verbuchen schreibschützen (Maske)
Als Konsequenz aus dem vorherigen Commit, sollte der Benutzererstmal nicht fröhlich Freitext-Werte in das Feld füllen.
Bullshit von meinem commit 81ce5300bddff980 rausgeworfen
Nein, Jan. Eben nicht so implementieren, sondern klarerund hoffentlich wartungsärmer.
BankTransaction weniger Code ist mehr Wert
Aufgrund des klarer formulierten PODs kann eine Routine undeine weitere zu "schwache" Bedingung entfernt werden.Fast alle kivi-Testfälle inkl. adaptierter odyn-Testfälle laufen sauber durch.
save_single_bank_transaction dem caller weniger erlauben
Als Konsequenz zum beschriebenem Verhalten im POD
POD Ergänzungen
BankTransaction::save_single_bank_transaction kann nur1 noch niemals vorher verbuchte Bankbewegung mit n Belegen verbuchen.Sollte etwas klarer im POD und später in der Methode deutlich gemacht werden.
Kontoauszug verbuchen -> Dialogbuchungsentwürfe verbessert
Nette Idee aus odyn (Start des Gedankens #f09c2b407faa7 Ende des Gedankens #765a3d421e7).Zwei Sollbruchstellen in odyn, deshalb in kivi neu formuliert:
Sollbruchstellen:a) Ein Aufruf von BankTransaction::action_list kann Zustände im Datenmodell verändern...
Bericht BankTransaction auch Verknüpfungen mit Dialogbuchungen anzeigen
Zahlungsverkehr -> Berichte -> Bankbewegung -> verknüpfte Rechnungenzeigt die record_links zum Typ ar|ap, erweitert für den Typ gl.
Bankimport: Fehler beim Verbuchen von Teilzahlungen: Rollback bei Fehler
Falls ein Fehler auftritt wird kein Rollback von der bereits gemachten Zahlung und dem neuen Recordlink gemacht,lediglich die Banktransaktion wird nicht verändert
Erweiterung durch ein Test test_bt_error...
Bankimport: Rundungsproblem beim Vergleich Rechnungsbetrag - Kontobetrag
Durch explizites Runden konnte die perl Floatingpoint Arithmetik nicht überzeugt werden,deshalb werden nun die Formatierten Strings der Beträge noch zusätzlich verglichen.
Hiermit wird der "exact_match" beim Vergleich von z.B. 3456,28 und 3456,29 nicht mehr gefunden...
Bankimport: Prüfung des reinen Ziffernanteils der Rechnung
Falls Rechnungen in der Rechnungsnummer ein Prefix vor der Nummer habenund dies nicht exakt im Verwendungszweck der Kontobewegung aufgeführt ist,wurde dies nicht als Bewertungskriterium herangezogen....
SL::Mailer: content_type statt contenttype, so wie im POD beschrieben
RecordLinks: Support für Kreditore/Debitorenbuchungen
Conflicts: SL/Controller/RecordLinks.pm
ergänzung cherry-pick: form->format_sellprice existiert nicht
BankTransaction/list: vorhandene sepa_export_items an get_agreement übergeben
Conflicts: SL/Controller/BankTransaction.pm
Ergänzung zum cherry-pick von gerade format_sellprice ist nicht in Form.pm
Ferner doppelt gepickte Bibliothek entfernt.
BankTransaction/list: sepa_export_items mit partition_by splitten
Spart eine Doppelschleife
BankTransaction::get_agreement_with_invoice - sepa_export_items optional übergeben
CSV-Import Aufträge: Bei History-Eintrag zwischen Ver- und Einkauf unterscheiden
Auftrags-Controller: Lieferantendetails ("D"): keine Preisgruppe bei Lieferanten
CsvImport Aufträge: interne Bemerkungen aus Kunden-/Lieferantenbemerkunen setzen
falls keine intnotes in der CSV-Datei angegeben sind.
LaTeX-Escaping: gewisse Formen von »no line to end here« vermeiden
Passiert, wenn im HTML so ein Konstrukt existert:
…Text</p><p> <br>
Das wird zu einem Paragraphen, einem Leerzeichen und einem forciertenZeilenumbruch:
----schipp----Text
\newline...
Finanzübersicht: »einmalige« Periodizität bei wiederkehrenden Rechnung gefixt
Die Finanzübersicht nutzt die Funktion`SL::DB::PeriodicInvoicesConfig::calculate_invoice_dates`, um jedesAusführungsdatum innerhalb eines Zeitraumes zu berechnen. Dort wurde»einmalig« fälschlicherweise wie »jeden Monat wiederholen«...
Kontoauszug verbuchen: Fehlermeldungen visuell (flash) besser hervorheben
Beim Analysieren von #355 aufgefallen. Falls Probleme beimVerbuchen der Kontoauszüge auftreten, sollte auch die Flash-Anzeigenicht grün sein.
SelfTest false positive vermeiden
Der #b4cc349b ist leider auch Schrott.Im Array hab ich nur failed mit 0 oder 1 als zuverlässige Status-Meldung
Kreditorenbuchungen: Flag »cleared« beim Zahlungsbuchen beibehalten
Existierende Zahlungen werden aus acc_trans komplett gelöscht und neueingefügt. Dabei geht der Status des Flags »cleared« verloren, deranzeigt, dass eine Zahlung mit dem Konto abgeglichen wurde....
Debitorenbuchungen: Flag »cleared« beim Zahlungsbuchen beibehalten
Einkaufsrechnungen: Flag »cleared« beim Zahlungsbuchen beibehalten
Verkaufsrechnungen: Flag »cleared« beim Zahlungsbuchen beibehalten
$self->all_passed enthält nicht mehr den Zustand, ob alleTests erfolgreich waren. Als Workaround auf zwei negativStatus-Meldungen prüfen, die bei Problemen gesetzt sind.
Payment::pay_invoice with skonto -> Steuersatz ist eindeutig
tax_id in acc_trans definiert sicherer den Steuersatz als dertaxkey (Steuerschlüssel von DATEV), s.a. FK-Constraint:"acc_trans_tax_id_fkey" FOREIGN KEY (tax_id) REFERENCES tax(id)
DATEV::CSV Typo in Datenstruktur
SelfTests: False Positive bei Buchungen auf ic_cogs als Sammelkonto vermeiden
CSV-Helfer: Leere Zeilen ignorieren.
Als leere Zeilen hier gelten auch Zeilen, die nur das Trennzeichen enthalten.
Mit leeren Zeilen gab es immer wieder Probleme, teils mit schwer zuinterpretierenden Fehlermeldungen, teils mit nicht gewünschtem Verhalten, z.B....
Auftrags-Controller: Workflow Auftrag VK <-> EK
SL::DB::Order->new_from: Prüfung auf Quell- und Ziel-Typ refactored
Typo in Fehlermeldung
Auftrags-Controller: fake id für Items nach Workflow setzen.
Für items, die hinzugefügt werden, also noch nicht in der DB gespeichert sind,muss eine fake id gesetzt werden, damit diese bei den actions, die einzelneitems betreffen, auch richtig gefunden/zugeordnet werden können....
Lieferplan um Filter nach Abteilungen ergänzt
Auftrags-Controller: Kunde/Lieferant vorbelegen, wenn deren id übergeben wird
Für die Workflow-Links aus den Kunden-/Lieferantenstammdaten heraus werdendie customer_id oder vendor_id berücksichtigt und die Kunden-/Lieferanten-abhängigen Attribute im Order-Objekt entprechend gesetzt.
Workflow aus Kundenstammdaten zum neuen Auftrags-Controller, …
… wenn experimentelle Features eingeschaltet sind
Auftrags-Controller: Formelberechnung
Sollte evtl. auf Dialog umgestellt werden.
Auftrags-Controller: Kunden-/Lieferantendetails ("D")
Hier sollte die alte Makse auch umgestellt werden, erstens auf Dialog undzweitens damit via Rose zugegriffen wird.
Payment Helper - Parameter in POD korrigiert