MassRecordCreationAndPrinting: dbh transactions sicherer
SelfTest: ar_amount nicht bei Anzahlungs- oder Schlußrechnungen prüfen
Merge pull request #33 from kivitendo/f-send-emails-as-html
F send emails as html
MassRecordCreationAndPrinting - MassInvoiceCreatePrint: Auftrag schliessen
MassRecordCreationAndPrinting: Shopstatus setzen
E-Mails als HTML verschicken: Mail-Body wiederkehrende RGs: Variablenersetzung
E-Mails als HTML verschicken: Versand wiederkehrender Rechnungen
Benutzerdef. Var. als HTML-Feld: Druckunterstützung
Drucken: Variablen in Positionen interpolieren
Alle Variablen, die in Schleifen ausgegebenwerden (z.B. Artikelbeschreibung, Langtext, aber auch die Steuern)werden nun ebenfalls der Interpolation unterzogen, sodassz.B. in wiederkehrenden Rechnungen <%current_quarter%> in...
SL::DB::BackgroudJob::ALL entfernt
Wird nicht wirklich gebraucht und war bis vor dem letzten Release auchnicht richtig mitgepflegt worden.
SL::BackgroundJob::ALL.pm für BackgroundJobs aktualisiert
Zeiterfassung: Eingabe-Datum einzeln prüfen und nicht doppelt konvertieren
Zeiterfassung: Exaktere und lokalisierte Fehlermeldung inkl. Doku
Wiederkehrende Rechnungen: Preis-Fix für einmalige Ausführung
Bei einmaliger Ausführung ist der Preis immer derjenige, der in derRechnung angegeben ist, weil die Auftragswertperiodizität keinenSinn ergibt, wenn es keine Abrechnungsperiodizität gibt.
Zeiterfassung: Konvertierung: Artikel/Projekt: override- und default-Parameter
Zeiterfassung: Konvertierung: POD-Update und Kosmetik
Zeiterfassung: Konvertierung: Refoctored -> Fehlermeldungen
Zeiterfassung: Konvertierung: nur benötigte Paramter an new_from_time_recordings
Zeiterfassung: Konvertierung: Abbrechen, wenn keine Einträge zu verarbeiten sind
Zeiterfassung: Konvertierung: Refoctored -> zentrale Prüfung der Parameter
Zeiterfassung: Konvertierung: Prüfung Datums-Parameter
Revert "CTR: Benutzereingabe in data mit Try::Tiny auffangen"
DateTime->from_kivitindeo wirft keine Ausnahme, daher ist hier try/catchohne Funktion.
This reverts commit a6291ceb5b16c6faf4e24c6d1a5516f06df58e22.
Zeiterfassung: Konvertierung: angegebenen Auftrag als Vorgänger verwenden können
Zeiterfassung: Konvertierung: Einträge ohne Dauer nicht bearbeiten
Zeiterfassung: Konvertierung: geliefert/gelieferte Mengen in Auftrag anpassen
Zeiterfassung: Konvertierung: Auftrag als geliefert markieren, wenn komplett
Todo: hier gibt es einen Bug mit Einheiten
Zeiterfassung: Konvertierung: POD: Kundennummer ist nicht Format-abhängig
Zeiterfassung: Konvertierung: von-bis-Filter benutzt Datum statt End-Zeit.
End-Zeit gibt es nicht bei Eingabe mit Datum/Dauer.
Zeiterfassung: Konvertierung: Carp-Modul wird nicht gebraucht
Zeiterfassung: Konvertierung: Position aus zugehörigem Auftrag
Zeiterfassung: Parameter f. Konvertierung mit link_project/related order
Zeiterfassung: Parameter f. Konvertierung in params übergeben
Zeiterfassung: Fehlermeldungen: Leerzeichen; keine Angabe der Codestelle
Zeiterfassung: richtige Parameter f. Hintergrund-Job prüfen …
und- Hash mit validen Parametern umbenannt- exists statt trueish- "die" statt "croak"
CTR Mehr Benutzerparameter aus dem POD erlauben und prüfen
- Init rounding and link_project defaults- Check for valid user param names- Add params to each source entry for DO->new_from_time_recording- some TODOS
CTR: POD um neue Parameter erweitert
CTR: Wirklich mit "die", die Fehler werfen. Einrückung
CTR: Warnungen zu Fehlern hochgestuft - Variablenbenennung wie in CPI
CTR: Benutzereingabe in data mit Try::Tiny auffangen
Sinnvolle Fehlermeldung in einem Satz zurückgeben unddanach den kompletten Trace.
Zeiterfassung: Hintergrund-Job zum Umwandeln in Lieferscheine
wiederkehrende Rechnungen: auch bei E-Mail erzeugtes Dokument im DMS speichern
Leistungsdatum: wiederkehrende Rechnungen
Wiederkehrende Rechnungen: Druck-/E-Mail-Fehler in Zusammenfassungs-Mail
Wiederkehrende Rechnungen: bei E-Mail-Versand Rechnungsattribute als Variablen
Praxisbeispiel ist, dass man im Betreff der Rechnung dieRechnungsnummer angeben möchte; das geht nun mit z.B. »Rechnung <%invnumber%>«.
ZUGFeRD: auch wiederkehrende Rechnungen mit ZUGFeRD-Infos erzeugen
SelfTest: Transactions: check_summe_stornobuchungen optimiert
Für den zu beobachteten Zeitraum werden jetzt getrennt betrachtet, obRechnungen aus diesem Zeitraum storniert sind und mit Ihren Partnern inder Summe nicht 0 ergeben,oder obStornorechnungen in diesem Zeitraum erstellt wurden und mit Ihrem Partner...
SelfTest: Transactions: Stornosumme -> copy/paste-Fehler ar statt ap
SL/BackgroundJob/SelfTest: eine lfd. Modulnummer hinzufügen.
Die Ergebnisse für das E-Mail-Template liegen in einem Hash mit denModul-Namen als keys. Im Template wird über die keys iteriert, damit istdie Reihenfolge aber nicht garantiert. Deshalb wird hier eine Modulnummer...
Kosmetik: POD bei SelfTest: keine leeren Abschnitte
Das gibt Warnungen beim podchecker
Wiederkehrende Rechnungen: ge-e-mailte Rechnungen im WebDAV speichern
Rechnungsmassenerstellen: keine DB-Transaktion um convert_to_invoice()
convert_to_invoice() macht selber intern bereits eine Transaktion auf;daher ist die außen unnötig.
Weiterhin waren die Parameter merkwürdig übergeben:
• Für eine On-The-Fly-Unterscheidung für »diese Parameter« vs. »keine...
Massendruck: Kopieren ins Webdav in den Helper verschoben.
Damit erzeugen alle Druckvorgänge hierüber Kopien im Webdav
Massendruck Lieferscheine/Rechnungen: doc_storage_enabled importieren
SetNumberRange: Validitätsprüfung auf Benutzereingabe (data) im Job
SetNumberRange: Background-Job um Jahreszahlen im Nummernkreis zu erhöhen
Nimmt die vierstellige Zahl des nächsten Jahres und multipliziertdiese mit 1 oder einem anderen Faktor. Präfixe und Länge desNummernkreis bleibt erhalten. Bspw.:
Letzte Rechnungsnummer:...
SelfTest: Geschwindigkeitssteigerung durch »NOT EXISTS« anstelle von »NOT IN«
Nicht ganz frische PostgreSQL-Versionen (mindestens bis 9.6 inklusive)optimieren »NOT IN«-mit-Subquery nicht automatisch und müssen daherfür jede Zeile des äußeren Selects einen linearen Scan auf die...
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....
Wiederkehrende Rechnungen: Druckvorlage nach Auftragssprache auswählen
Bisher wurde immer die Standarddruckvorlage genutzt und die im Auftragund damit der Rechnung eingestellte Sprache komplett ignoriert.
Weiterhin wird der Dateiname des Anhangs nach der eingestellten...
Periodische Rechnungen: find_template-Aufruf gefit
find_template gibt je nach Kontext (Skalar vs. Array) unterschiedlicheDinge zurück. Innerhalb einer Hashzuweisung herrscht Array-Kontext,und damit kann je nach Reihenfolge, in der die Hash-Parameter von Perl...
Module: weitere Anpassungen für Exception::Lite → Exception::Class
Merge branch 'f-bundled-perl-modules'
SelfTest: gldate mit itime vergleichen - sollte übereinstimmen
Module: gebundletes YAML durch dünnen Wrapper über YAML::XS & YAML ersetzt
Variable »$query« nicht durch doppelts »my« shadowen
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,...
BackgroundJob SelfTest: unbenutzte Variable entfernt
Rechnungsadresse aus den Stammdaten bei periodischen Rechnungen verwenden (Anzeige beim Editieren)
SelfTests: check_ap_paid berücksichtigt Auswahl von fromdate und todate
Kosmetik (Einrückungen) zum Commit von gerade
CreatePeriodicInvoices: Transaktionssicher
Aufträge verarbeiten, Rechnungen erzeugen, Drucken und E-Mail-Versandin einer Transaktion
SelfTests: Transactions um Prüfung auf laxe Buchungskonfiguration erweitert
SelfTest: Fehlermeldung beim E-Mail-Versand an den Task-Server hochreichen
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
$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.
SelfTests: False Positive bei Buchungen auf ic_cogs als Sammelkonto vermeiden
Verknüpfte Belege um die Verknüpfung 'E-Mail Journal' erweitert.
Falls das E-Mail-Journal aktiviert ist wird zusätzlich zu derarchivierten E-Mail auch die Verknüpfung vom Beleg zu der E-Mail mitgespeichertund ist im Beleg zusätzlich direkt anwählbar.Etwas mehr Details im POD vom Mailer.pm, die Implementierung orientiert...
SelfTests/Transactions.pm erweitert
Da beim Löschen von Zahlungen mittlerweile auch kaskadieren diereconciliation_links gelöscht werden, können verwaiste abgeglichenBankbewegungen entstehen.Entsprechend Testfall ergänzt.
SelfTests: check_paid_ap ID in E-Mail-Bericht übergeben -> einfachere Analyse
fehlendes BCC in CreatePeriodicInvoices.pm(_email_invoice) hinzugefügt
POD-Fehler fixen
Wiederkehrende Rechnungen: Einmalige Rechnungen auch nur einmalig ausführen
Die kleinste Periode die calculate_dates verwendet ist monatlich.Falls eine einmalige Rechnungen ein Startdatum älter als einenMonat besitzt, werden mehrere Rechnungen erzeugt....
Wiederkehrende Aufträge mit einmaliger Periode verbessert
Die Deaktivierung erst nach der Generierung der Rechnung veranlassen.Andernfalls werden diese automatisch bei anderen Rechnungsläufen deaktiviert.
WebshopApi: BackgroundJob ShopPartMassUpload.pm
WebshopApi: BackgroundJob ShopOrderMassTransfer
Task-Server & FailedBackgroundJobsReport: Encoding des E-Mail-Bodys gefixt
SL::Mailer erwartet die Einträge in Perls internem Encoding. Daher istjegliche Verwendung von Encode::decode(…) falsch.
Zusätzlich muss aber dem Template-Toolkit mitegeteilt werden, dass die...
PDFs werden nicht mehr bei wiederkehrenden Rechnung per E-Mail erzeugt/angehangen
fix redmine #238
CsvImport: Controller erzeugt temporäres Profil, nicht der Hintergrund-Job.
BackgroundJob::CsvImport: unbenutztes Modul SessionFile::Random nicht laden
Dateimanagement: Massendruck
Der Massendruck per BackgroundJob nutzt nun das FileManagement
Die erzeugten Dateien werden ggf. mit PDF Anhängen erweitertund entsprechend abgespeichert.
Per Flag kann dem massendruck mitgeteilt werden,dass eine leere Seite ggf hinzugefügt wird...
Wiederkehrende Rechnungen, um neue Periode 'einmalig' erweitert.
Wiederkehrenden Rechnungen die aus einem Auftrag automatisch generiertwerden können jetzt die Periode 'einmalig' (engl. 'one time') mit demZeitwert 0 haben.Falls diese Periode angewählt wird, wird die Konfiguration des Auftrags...
Hintergrundjob zum Schließen bei geschlossenen Aufträgen verlinkten Projekten
Der Job ist per Default deaktiviert. Wenn eine solche Funktionalität füreine Installation benötigt wird, so muss der Admin manuell einenHintergrundjob dafür anlegen.
SelfTests: check_overpayments verbessert
i) chart_link muss nicht mehr über JOIN chart c c.link mit der acc_trans vereint werdenii) Der Test hat keine sinnvollen Daten an den Benutzer zurück- gegeben. Jetzt wird die Kunden- und die Rechnungsnummer gemeldet...
false positive in SelfTests gefiltert (Periode)
Hintergrund:Um nur die Daten-Analyse auf das aktuelle Geschäftsjahr (Geschäftsjahr gleichKalender-Jahr) zu machen, wird für die meisten Tests mit transdate == current_yeargefiltert.Problem: Periodenübergreifende Buchungen (Zahlungsein- und -ausgänge) werden...
SelfTest Kosmetik
Ein überflüssiges JOIN entfernt und etwas sinnvoller denCode formatiert.
SelfTests check_summe_stornobuchungen optimiert
Die Summenprüfung der Stornobuchungen mussauch über den Jahreswechsel hinaus Buchungen berücksichtigen.
Mehr als eine SelfTest-Modul prüfen
Der Aufruf der SelfTest funktionierte nur für genau eineDatei - Mit einer leicht anderen Aufruf-Syntax werden auch weitereTests durchgeführt.
Revert "Mehr als eine SelfTest-Modul prüfen"
git add --patch falsch angewandt.
This reverts commit db4680753f5ec1de62bdc0557f850afd810444d1.
BUGFIX: Benachrichtigung automatisch erstellter Rechnungen fehlerhaft
Dieses Problem wird im Redmine Ticket #218 angesprochen.
Durch Verwendung einer lokalen Variable behoben