TypeData: Füge Eigenschaft ob Beleg einen Workflow braucht hinzu
EmailJournal: Zeige verknüpfte Belege im Bericht an
SL::Presenter::Record: Schlichte Darstellung für verknüpfte Belege.
S:Presenter:Record: Alias Funktion "show" in verwendeten Objekten
Verknüpfte Belege nutzt folgende Objekte: DeliveryOrder, Dunning, EmailJournal, GL, Invoice, Letter, Order, Reclamation, RequirementSpec, ShopOrder
SL::DB::SepaExportItem: einfacher Presenter für SEPA-Überweisungen
SL::Presenter::BankTransaction: einfacher Presenter für Bankbuchungen
EmailJournal: Report: Sortiere nach verknüpften Emails
locales
EmailJournal: Workflow: Auswahl von Beleg optimiert
EmailJournal: Workflow: Filter Belege nach Belegnummer
EmailJournal: Workflow: Vorschlag der passenden Belege
EK/VK-Rechnung Typefilter für alle vorhandenen Typen erweitert
TypeData: nutze richtige Übersetzung für Typ
FIX: richtige Query fürs Suchen nach offenen VK-Rechnungen
S:C:File: Alle Optionen für Belege eingeschaltet
SL::IMAPClient: Nutze das richtige Encoding für Header und Body
S:D:H:RecordLink: FIX: mehrere Ursprungsbelege unterstützen
Workflow: E-Mail → Kreditorenbuchung hinzugefügt
Workflow: E-Mail → Debitorenbuchung hinzugefügt
Workflow: E-Mail → Reklamation hinzugefügt
Workflow: E-Mail → Lieferschein hinzugefügt
Workflow: E-Mail → Angebot/Auftrag überarbeitet
EmailJournal: Funktion für Anhangsvorschau hinzugefügt
EmailJournal: Workflow angepasst
EmailJournalAttachment: FIX: entferne nicht genutzten Import
Entferne Debug Statements
DeliveryOrder: Nutze Type und ID zum Erstellen von verknüpften Belegen
EmailJournal: Templates überarbeitet und Verknüpfte Belege hinzugefügt
S:D:Order::TypeData: Typenreihenfolge angepasst
TypeData: Füge Übersetzung für Typ hinzu
EmailJournal: Anhangsvorschau mit kopierbaren Text
S:C:Base: erlaube Überschreibung von content_disposition beim Datei senden
um PDFs in der Seite im PDF-Betrachter anzeigen zu können
IMAPClient: FIX: säubere den MIME-Type von Anhängen
S:C:Reclamation: nutze Helferfunktion zum Auslesen der Verknüpfungsinfo
SL::DB::Helper::ZUGFeRD: FIX: fehlendes use
IMAPClient: FIX: Fehler beim Parsen des Datum behoben
Workflow: E-Mail → Angebot/Auftrag
S:D:Reclamation: Nutze TypeData zum bestimmen ob VK/EK-Reklamation
Order: Nutze Type und ID zum Erstellen von verknüpften Belegen
Presenter::EmailJournal: Anhang-Vorschaufunktion mit ID oder Objekt
EmailJournal: Basisfunktionalität fürs Verlinken und Neu erstellen von Belegen
BJ::ImportRecordEmails: Nutze neuen Typ für Beleg-Importe
EmailJournal: Zusätzlicher Type für Beleg-Importe
Helper::EmailProcessing: Nutze neue Funktionen
EmailJournalAttachment: Funktion um Datei zum Beleg hinzufügen
EmailJournal: Zeige Vorschau von Anhängen an
Presenter: EmailJournal: Helferfunktion um E-mailanhänge anzuzeigen
HTML::Restrict: Tabellen-Tags zu eingeschränkten HTML-Tags hinzugefügt
Presenter: EmailJournal: Funktion zum Anzeigen des Status
ImportRecordEmails: BJ zum importieren von Emails als Beleg-Grundlage
Verallgemeinerung und Ersetzung von BJ "ImportPurchaseInvoiceEmails"
IMAPClient: Funktion zum setzen von Email-Flags
ImportPurchaseInvoiceEmails: Funktion zum Einlesen von ZUGFeRD-Rechnungen
FIX: EmailImport: korrigiere EmailJournal-Key zu email_journals
ImportPurchaseInvoiceEmails: Email Client und Ordner im Objekt speichern
EmailJournal: ZUGFeRD-Emailanhänge in Kreditorenbuchen konvertieren
ZUGFeRD: Kreditorenbuchung direkt aus ZUGFeRD-XML erstellen
BJ: ImportPurchaseInvoiceEmails hinzugefügt
IMAPClient: Funktion zum Aufräumen von importierten Emails hinzugefügt
IMAPClient: Funktion zum Aufräumen der Belegordner umbenannt
clean_up_subfolders → clean_up_record_subfolders
S:H:UserPreferences: login aus myconfig holen, nicht über S:D:M:Employee->current
Verhindert einen Fehler, falls user preferences bei einer neuen DB abgefragtwerden, da es dann u.U. noch keine Einträge in der employee-Tabelle gibt.
Der Fehler trat auf beim Prüfen auf den erzwungenen Layout-Stil bei neuen DBs.
ZUGFeRD: Importiere via SessionFile
Benutze das SessionFile aus
834abeb456898df96e69deaad4a7c27915ad6a57
um die strukturierten Daten der ZUGFeRD/Faktur-X-Rechnung indas Formular fuer die Kreditorenbuchung zu uebertragen. DieseLoesung ist deutlich eleganter als die bisherige, die fuer...
fix: mehr SL::DB zirkuläre includes
fix: kein use SL::DB in SL::DB
fix: kein explizites use SL::DB in SL::DB
SL::XMLInvoice: factory pattern etwas umgeschrieben
- braucht jetzt kein Module::Load oder runtime require mehr, weil die Factory nicht mehr gleichzeitig die Basisklasse der Implementoren ist- new ist jetzt nur noch in SL::XMLInvoice- die Basisklasse für die Implementoren ist jetzt SL::XMLInvoice::Base...
Revert "XMLInvoice: lade Subklassen dynamisch"
This reverts commit cfc1ced6c2ef0b93ab52dbf6806934061c4c11af.
ZUGFeRD: CAM::PDF durch PDF::API2 ersetzt
CAM::PDF wird seit 2014 nicht mehr gepflegt und kann PDF 1.7+ nichtrichtig öffnen. PDF::API2 ist aktiv maintained, hat aber nicht ganz soschöne Zugriffsmethoden.
Die Version hier ist mit einer Rechnung von kivitendo getestet (PDF/A-1,...
ZUGFErD: Fehlermeldungen beim PDF-Import repariert.
Rebase-Artifakt korrigiert.
SL::XMLInvoice::CrossindustryDocument hinzugefuegt
Dieses Modul ist der Parser fuer Eingangsrechnungen im FormatZUGFeRD 1.0 / CrossIndustryDocument.
XMLInvoice: Formaterkennung umgebaut
Fehlenden locale-Import in SL::XMLInvoice ergaenzt.
FIX: pod Syntax und Leerzeichen entfernt
XMLInvoice: lade Subklassen dynamisch
Subklassen erst zur Laufzeit laden, da diese miteinander im Konfliktstehen.
ZUGFeRD-Import: verschiedene behoben
Einrueckungen und weitere Stilprobleme repariert
ZUGFeRD-Import auf SL::XMLInvoice umgestellt
Wichtigste Aenderung dieses Commits ist die Umstellung desZUGFeRD-Imports in der Finanzbuchhaltung auf das neuhinzugefuegte Modul SL::XMLInvoice, das auch die Verabeitungvon Rechnungen im XRechnung-Format erlaubt. Darueber hinaus...
SL::XMLInvoice hinzugefuegt
Dieser Commit fuegt das Modul SL::XMLInvoice und seineUntermodule SL::XMLInvoice::CrossIndustryInvoice undSL::XMLInvoice::UBL hinzu. Diese Module dienen derVerarbeitung der folgenden XML-Rechnungsformate:
Schweizer QR-Rechnung: Adressen auf Adresstyp S umstellen
- innerhalb des QR-Code Adresstyp S verwenden- Validierung angepasst: Strasse und Hausnummer können leer sein- changelog Eintrag- locale update
EK-Rechnung: Änderung EK-Preis Preisfaktor berücksichtigen auch bei keinem inventory_accno
Und Erzeugnisse/Sortimente auch updaten.Und nur aktualisieren, wenn geändert.Genau wie in dem if-Zweig, wo es ein inventroy_accno gibt.
commit 6b8e3b8f9763a6a92c713092e232d8157ea4e772...
EK-Rechnung: EK-Preis nur aktualisieren, wenn geändert
EK-Rechnung: Änderung EK-Preis berücksichtigt Preisfaktor
EK von Erzeugnissen und Sortimenten setzen: Artikel nicht cachen.
Wenn hier die Erzeugnisse oder Sortimenten gechached werden, dann kannes passieren, das die Preise nicht richtig summiert werden, wenn sich ineinem Request die Preise mehrerer Bestandteile ändern (z.B. EK-Rechnung)....
S:C:Part: Prüfung, ob sich der EK geändert hat, berücksichtig Preisfaktor
S:D:Part: letztes Preise-Update: neben Datum auch nach Id sortieren, …
… sonst kommt ein evtl. ein falsches (nicht das letzte) letzte Preis-Updatezurück, wenn der Zeitstempel gleich ist.
Artikelstamm: Preishistorie: Preisfaktor anzeigen
Preisfaktor mit in Preishistorie aufnehmen: DB und Rose
Artikel-Stamm: Preisinfo aus Angebot/Auftrag: Preisfaktor berücksichtigen
Lagerbestand: Preisfaktor anzeigen, wenn ein Preis angezeigt wird
Artikelbericht: Preisfaktor anzeigen können
S:C:TimeRecording: Typo vom Typo-fixen gefixt ;(
Schweizer QR-Rechnung: Kreditor Adressdaten validieren
- Übersetzungen + locales lauf de/en
Bereinigung SL/Template/OpenDocument.pm hash keys ohne Anführungszeichen gesetzt, gem. Dok. Style Guide
Schweizer QR-Rechnung: Zusätzliche Rechnungsadressen in QR-Code Ausgabe eingebaut
S:C:BankTransaction: nicht initialisierter Wert: Warnungen vermeiden
S:C:DispositionManager: Warnung für nicht-initialisierte Variable vermeiden.
Getriggert durch Test-Lauf. Tritt so wohl im Programmablauf nicht auf.
S:C:DispositionManager: Kosmetik: keine Leerzeichen am Ende
S:C:SalesPurchase: keine Methode auf undefiniertem Wert aufrufen
Der Fehler tauchte an der Oberfläche dann zwar nicht auf, weil esein ajax-Aufruf ist.
SL:WH: nicht initialisierter Wert: Warnungen vermeiden
S:C:TimeRecording: Typo