Anzahlungs-Rg.: eigener Typ for Schlussrechnung (final_invoice (F))
Anzahlungs-Rg.: Workflow Auftrag -> Anzahlungs-Rg.
Fix: Anzahlungs-Rg.: neuen Typ beim Erzeugen der record items berücksichtigen
Anzahlungs-Rg.: neuen Typ beim Erzeugen der record items berücksichtigen
ShopPart-Controller Kosmetik -> Einrückungen
Shop: Bestellungen abholen, korrekten Variablennamen für Fehlermeldung
Merge pull request #33 from kivitendo/f-send-emails-as-html
F send emails as html
MassRecordCreationAndPrinting - MassInvoiceCreatePrint: Auftrag schliessen
MassRecordCreationAndPrinting: Shopstatus setzen
OrderController: Wiederkehrende Rechnungen: vorbelegte E-Mail-Texte setzen falls leer
Vorher wurde nur geprüft, ob die Konfiguration schon gesetzt wurde. Sollte ein Kunde im Nachhinein auf E-Mail-Versand umstelle ist das Verhalten jetzt komfortabler
Vorbelegte E-Mail-Texte für wiederkehrende Rechnungen genau wie in oe.pl
Inventory-Import keine Spalte target_qty
Kosmetik Inventory Import
CSV Lagerbewegungs-Import: Numberformat für Fließkommazahlen (qty)
E-Mails als HTML verschicken: Versand in Einkaufs-/Verkaufsbelegen
E-Mails als HTML verschicken: Bearbeiten Benutzer-Signatur (Admin-Bereich)
E-Mails als HTML verschicken: Bearbeiten Firmensignatur
Order-Controller: abweichende Rechnungsadresse nur bei Kunden behandeln
Swiss QR-Bill: Controller für BankAccount Datenfelder
Auftrags-Controller: DMS: Druck-Variante berücksichtigen
Kosmetik: Einrückung
Auftrags-Controller: Email/DMS falls kein Dokument vorhanden, eines erstellen, …
… wenn die Policy sagt, dass der letzte Ausdruck mitgeschickt werden soll
Merge branch 'f-cvar-htmlfield'
Lohnbuchhaltungsimport: Leere Werte für Abteilungen abfangen
Order-Controller: Unterstützung für Drucken & E-Mailen von HTML-Vorlagen
Auftrags-Controller: kivi.Validator.js vor kivi.Order.js einbinden, …
damit die Datumseingabe angepasst wird, bevor es bei onchange zum Servergeschickt wird.
Warenstammdaten: EAN: Leerzeichen trimmen
_convert_pdf_to_png: Mehr Warnungen - quotemeta für Dateinamen mit whitespace
E-Mail-Versand: CC: nur kivi-Benutzer mit hinterlegter E-Mail-Adresse anzeigen
E-Mail-Versand: CC: kivi-Benutzer sortieren
Kosmetik
CSV-Import von zusätzlichen Rechnungsadressen
Benutzerdef. Var. als HTML-Feld: Druckunterstützung
Benutzerdef. Var. als HTML-Feld: Projekte
Benutzerdef. Var. als HTML-Feld: Pflichtenhefte
Benutzerdef. Var. als HTML-Feld: Kunden-/Lieferantenstammdaten-Controller
Betrifft Typen für Kunden-/Lieferantenstammdaten, Ansprechpersonen undLieferadressen.
Benutzerdef. Var. als HTML-Feld: CSV-Import
Benutzerdef. Var. als HTML-Feld: allgemeine Infrastruktur
Order-Controller: PDF-Handling-Funktionen in Objektmethoden umgewandelt
Erlaubt die einfachere Wiederverwendung, wenn man z.B. mit Mixins fürKundenanpassungen arbeiten möchte.
Zusätzliche Rechnungsadressen: in Verkaufsbelegmasken auswählbar
Zusätzliche Rechnungsadressen: in Kundenstammdaten bearbeiten
Auftrag: Projekt automatisch in verknüpftem Pflichtenheft eintragen
Pflichtenhefte: bei Pflichtenheft → Angebot → Auftrag auch PH mit Auftrag verknüpfen
Lieferplan: Geschwindigkeitssteigerung durch »NOT EXISTS« anstelle von »NOT IN«
Auftragzentrische verknüpfte Belege: Leere Ergebnismengen berücksichtigen
Falls keine Aufträge gefunden werden, auch keinen Aufruf
Optionale auftragszentrische Verknüpfte Belege
Konfigurierbar in der Mandantenkonfiguration. Unabhängig vomaktuellen Belegort werden die verknüpften Belege immer vom VK-Auftragaufgebaut
BankTransaction: Kreditorenvorlagen auch nach Namen sortiert
BankTransaction: Dialogbuchungsvorlagen sortiert nach Name
spellcheck test
CsvImport: Interface für zusätzliche Angaben beim Import immer speichern
Lagerbewegungsimport: Testfehler wg. undef vermeiden
Belege verknüpfen: auch nach Belegnummer filtern können
Auftrags-Controller: Warnung bei nicht vorhandener Kundenbestellummer …
… kann in der Mandantenkonfiguration eingeschaltet werden.
Auftrags-Controller: Warnung bei fehlendem Transportkosten-Artikel …
bei VK-Angebot und -Auftrag, wenn in der Mandanten-Konfiguration angegeben.
Employee::current statt manuell an weiteren Stellen
CsvImport Lieferscheine: Zusammenfassen von Lieferpositionen
Wenn in mehreren Positionen Teilmengen einer Position eines Auftragsgeliefert werden, dann diese Zusammenfassen.
CsvImport Lieferscheine: ShippedQty-Helper für Prüfung, ob komplett geliefert
PPI: Offenbar typo in Fehlermeldungstext
kam mit "Auch escapte DTVF Namen erkennen" rein.
PPI: Auch escapte DTVF Namen erkennen
Scheinbar kann die Kopfzeile des CSV-Format noch Hochkommatas enthaltenoder ggf. wurde diese mit einer Tabellenkalkulation geöffnet.
Auftrags-Controller: Reihenfolge Histore/Wiedervolage (Menüpunkt mehr) geändert
Ist nun so, wie in den anderen Masken (alte OE, Lieferscheine und Rechnungen)
Waren: Nur gültige Preisgruppen anzeigen
S:C:PayPostingImport Bei Erfolg, importierte Buchungen anzeigen
S/C/PayPostingImport Prototyp
Verarbeitet DATEV Lohnbuchungen aus einer CSV-Datei
DeliveryPlan: Berechnung nur noch über verlinkte Positionen
Auftrags-Controller: Debug-Statment raus
Developer Recht und neue Menüeinträge für Testcontroller
ImageUpload: nur mime-type image/* akzeptieren
ImageUpload: resolve
ImageUpload: local storage erste Version
MaterialComponents: modal test page
ImageUpload: erste Version
MaterialComponents Presenter
Erstmal für die wichtigsten Elemente:
- buttons- submit- input felder- icons
Zusammen mit einem Testcontroller zum rendern
Mobile Layout: Loginscreen für mobile User
Revert "ShopConnector get_part in WooCommerce implemented"
This reverts commit 875ae0f6f2ec3de097926910f64d9e6c214e0e82.
ShopConnector get_part in WooCommerce implemented
Auftrags-Controller: neuen Artikel aus Maske heraus anlegen können
S/C/BankTransaction Vorschlagsliste auch für Sammelüberweisungen berechnen
Part Controller: Aktion save_as_new wird nicht verwendet, sondern use_as_new
Part Controller: Kosmetik: einzelnes ';' weg
Auftrag-Controller: Aufträge manuell auf nicht-/geliefert setzen können.
Erzeugnisse: Gewicht aus einzelnen Bestandteilen ermitteln und speichern.
CsvImport: Aufträge: Modul SL::TransNumber wird nicht mehr gebraucht
zu "CsvImport Aufträge: Auftragsnummer nicht mit SL::TransNumber setzen, …"
CsvImport: Aufträge: Preise/Rabatte aus Preisquellen ermitteln, …
… wenn in der CSV-Datei nicht angegeben. Und Preisquelle auch setzen.
Csv-Import-Controller: Richtiges Feld f. Zeile bei Fehlermeldung des Csv-Helper
Evtl. war hier tatsächlich das erste Feld [0] gemeint, das wäre der"raw_input", aber der ist oft leer. Da ergibt die Zeilenummer mehr Sinn.
Revert "Csv-Import-Controller: Fehlermeldung des Csv-Helper mit ausgeben."
This reverts commit 63183d06c5d1631c93068ac4cd3b373b08714c31.
Neues Kundenattribut Rechnungsversand per Post -> Deaktiviert E-Mail für Rechnung
Zeiterfassung: als gebucht markieren: Manager-Methode update_all statt Schleife
Zeiterfassung: Eingabe: geschlossene Aufträge von bestehenden Einträgen anzeigen
Zeiterfassung: Im Bericht Einträge als gebucht markieren können, …
… wenn man das Recht hat, alle zu ändern.
Zeiterfassung: Auch beim Laden entsprechende Eingabe-Felder sperren:
- wenn Auftrag ausgewählt. so ist Kunde und Projekt gesperrt- wenn Projekt ausgewählt, und Projekt einen Kunden hat, so ist Kunde gesperrt
Zeiterfassung: Eingabe: keine Angebote in Auftragsliste anzeigen
E-Mail-Versand: CC an andere kivi-Benutzer per Auswahlliste
Zeiterfassung: Summe der Dauern mit Kontroll-Zeile anzeigen
S:C:H:ReportGenerator: Interface und Impmentierung von Kontroll-Zeilen
Es wurde eine Schnittstelle geschaffen, um Kontroll-Zeilen an denReportGenerator-Helfer zu übergeben.Umgesetzt sind Kontroll-Zeilen für einen Separator und für eigene Daten.
Zeiterfassung: Bei Projekten nur Projektnummer und Beschreibung anzeigen
Projekt-Picker: Stil der Beschreibung angeben können
dem Picker kann mit "description_style" mitgegeben werden, wie dieErgebnisse angezeigt werden. Mögliche Werte: "both", "number","description" und "full" (in SL::DB::Project->full_description)definiert).
Zeiterfassung: Bericht: Filter f. Auftragsnummer, Projekt und Beschreibung
Zeiterfassung: Eingabe: Einträge f. andere Mitarbeiter erlauben, wenn berechtigt
Hier reicht es, beim init_time_recording den Mitarbeiter für neue Einträgeauf den akuellten Bearbeiter zu setzen, wenn kein anderer Mitarbeiter aus derForm/Maske kommt.Die Rechte-Prüfung wird dann ohnehin im run_before-Hook 'check_auth_edit'...
Zeiterfassung: Placeholder-String im Template ermitteln
Zeiterfassung: Dauer und Min mit Attribut Placeholder vorbelegen