Auftrags-Controller: Positions-Update aus Artikel-Stamm
Jahresabschluß - YearEndTransactions neu implementiert
Der alte Jahresabschluß hatte eine Reihe von Schwächen, z.B. wurde nichtzwischen Bestands- und Erfolgskonten unterschieden, und es wurde auchkein Gewinn- oder Verlustvortrag gemacht. Der Anwender mußte selber...
balance_startdate_method_options nach AccountingPeriod Helper
verlagert, wird auch für YearEndTransactions benötigt.
Preisgruppenpreise als Preisliste bei Kunden anzeigen
Wenn dem Kunden eine Preisgruppe zugeordnet ist, werden die Preise inden Kundenstammdaten als Preisliste (eigener Tab) angezeigt.
BankTransaction: keine Leerzeichen am Ende vom Verwendungszweck einfügen
Wenn man mehrere Felder einfach mit `join(' ', @felder)` zusammenfügt,so entstehen nun mal ein Haufen Leerzeichen, auch wenn alle Felderselber leer sind. Das führt konkret beim Import von Banktransaktionen...
BankTransaction: Vorschlagslistencode aus action_list eigene Funktion verlagert
BankTransaction: Sortierungscode vereinfacht
Neuer Workflow Lieferantenauftrag->Kreditorenbuchung
Für jedes Aufwandskonto der Positionen im Lieferantenauftrag wird eineZeile in der Kreditorenbuchung erstellt. Gebucht wird standardmäßigauf des entsprechende Aufwandskonto. In der Mandantenkonfiguration...
Auftrags-Controller: mime-type füer odt
Part Controller - neuer Tab mit Lagerinformationen
Order Controller POD - Typos
Inventory stock_in - select_default_bin Modus
wird in der Form / URL ein select_default_bin=1 übergeben, wird derStandardlagerplatz des Artikels vorausgewählt (sofern vorhanden).
Ansonsten passiert das Aktualisieren von Lager/Lagerplatz nur, wenn sichder Artikel nach Laden der Seite ändert.
Inventory Controller - Datenbankoptimierungen für mini_journal
Aus Datenbanksicht war das Inventory mini-journal eine Katastrophe.
Die trans_id Abfrage führte zu einem ersten Seq Scan auf der Tabelle inventory. my $query = 'SELECT trans_id FROM inventory GROUP BY trans_id ORDER BY max(itime) DESC LIMIT 10';...
Auftrags-Controller: Kunden- bzw. Lieferanten-Art-Nr. in Pos-Zeile anzeigen.
… sofern in den Benutzereinstellungen auch die Suche danach ausgewählt ist.
Auftrags-Controller: PartPicker filtert nach Kunden- und Lieferanten-Art.-Nr., …
… sofern das in den Benutzereinstellungen ausgewählt ist.
PartPicker nach Kunden- und Lieferanten-Artikel-Nr. suchen und filtern können
PartPicker: Mehrfachauswahl: Ursprüngliche Filter für Dialog merken.
Damit klappt das auch hier mit der Suche nach gültigen/ungültigen/allenArtikeln.
Controller - alten unbenutzten Code entfernt
action Name in POD aktualisiert
EB/SB Buchungen minimale Kindersicherung für Datumswerte
Die Funktion lässt den Nutzer zuviele Freiheiten ;-(Ausreichend wäre es nur ein Datum (vgl. sql-ledger yearend) eingebenzu lassen und das Folgedatum ist dann automatisch der nächste Tag.
Kontoauszug verbuchen rückgängig: Mitarbeiter in history protokollieren
Kontoauszug rückgängig machen: Nur bei aktuellem Beleg arap.paid neu setzen
Hintergrundjobs: einmalige Jobausführung: Daten übergeben können
Entweder, man übergibt `data` als Parameter inURI-Hash-Form (z.B. '&data.var=value'), als normaler YAML-encodierterString, so wie er auch in der Datenbanksteht (z.B. '&data=---%0Avar%3Dvalue'), oder man übergibt...
Hintergrundjobs: Controller-Action zur einmaligen Ausführung eines Jobs
Gedacht für Aufruf von extern, gibt JSON zurück. Beispiel:
curl --silent --user "<username>:<password>" \ 'https://<hostname>/kivitendo/controller.pl?action=BackgroundJob/execute_class&class=CleanAuthSessions'
Part-Controller: Kosmetik
Part-Controller: Gültigkeit von CVars richtig speichern
Das behebt den Bug, dass sich CVars in den Warenstammdaten nicht mehrungültig/gültig gesetzt werden konnten.
Revert "CVars: in Artikelstammdaten sind alle CVars gültig"
This reverts commit ab45df2fa087f4b754ef02f238557ab0e28a676b.
CVars in den Warenstammdaten sind nicht immer gültig. Das Problem hier war,dass das Speichern des Gültig-Flags durch einen anderen Bug nicht funktionierte,...
Bugfix: Brieffunktion prüft im Einkauf auf Verkaufsbriefrechte
Ternärer Operator für Fallunterscheidung(is_sales or is_not_very_much_sales)
Auftrags-Controller: item-ids nach Speichern richtig setzen
Vergessen, den idx in jedem Fall weiterzuzählen. Dadurch konnte es passieren,das Positionen aus dem Auftrag gelöscht und evtl. Langtexte und Werte der2. Zeile falsch zugeordnet wurden.
Nachtrag zu:...
Auftrags-Controller: Einstellungen/Höhe des Scrollbereichs berücksichtigen …
… für den Positionsbereich
Kontoauszug verbuchen, bei DB Verwendungszweck übernehmen
Dialogbuchungen aus Kontoauszugs-Import erstellen,der Verwendungszweck wird in die Beschreibung übernommen
Admin-Controller: Anlegen der Vollzugriffs-Gruppe gefixt
Nach dem Anlegen einer neuen Auth-DB und neuer Session-Tabellen sollteeigenlich auch eine Gruppe namens »Vollzugriff« angelegt werden, dieZugriff auf alle Funktionen bekommt — wurde sie aber nicht....
Admin-Controller: falscher Funktionsname für Auth-Variablen gefixt
Die Umstellung auf Auth-Handler mit Einführung der Möglichkeit, sichauch über HTTP-Basic-Authentifizierung anzumelden, hat als Änderungmitgebracht, dass dieAuthentfizieriungsvariablen (z.B. »{AUTH}admin_password«) nicht mehr...
Module: weitere Anpassungen für Exception::Lite → Exception::Class
OrderController: nach Speichern hiddens der ids wieder setzen, …
… falls die Makse nicht neu geladen wird.
OrderController: Kosmetik
Module: Exception::Lite durch Exception::Class ersetzt
Module: gebundletes YAML durch dünnen Wrapper über YAML::XS & YAML ersetzt
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
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.
Redundanten Template-Code in bank_transactions/invoices.html aufgeräumt
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...
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...
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: 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
Kosmetik/Perl-Detail Optionen als Hash anstatt array
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
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)
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
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).
DisplayableNamePrefs: Mandantenkonfiguration
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
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.
Typos und spellcheck: unkown -> unknown
Verkaufsaufträge: konfigurierbares Intervall für Lieferdatum-Berechnung
Rechnungsadresse aus den Stammdaten bei periodischen Rechnungen verwenden (Anzeige beim Editieren)
Part-Controller: Normalisieren nach Parsen der Form und nicht als run_before
Das Problem enstand durch commit 2e97532c88dacf9523576df4028b6f7df5967ea8"Fixt #349 (Normalisierung Artikel) - normalize_text_blocks nach Part-Controllermigriert"
normalize_text_blocks greift auf $self->part zu, welches beim Neuanlegen...
Fehlermeldung bei 'als neu Speichern' bei Erzeugnissen ohne Erzeungisbestandteile werfen
Filemanagement: Mandantenkonfig "Erzeugte Dokumente löschbar" wird nicht berücksichtigt
Dieses Flag wurde bisher noch nirgend berücksichtigt.
fixed Issue #220
Fixt #349 (Normalisierung Artikel) - normalize_text_blocks nach Part-Controller migriert
Lager->Einlagern: kein extra EAN-Feld mehr
das funktionierte ohnehin nicht und seitcommit 87b5c8e4245710eec1c6257ab4e291080bc900bd"PartPicker kann auch nach EAN suchen"
kann der Partpicker auch nach der EAN suchen.
WH->transfer braucht die EAN auch nicht, da diese gar nicht in inventory...
Lager->Berichte->Lagerentnahme: richtige js-Funktionen einbinden
Hier wurde wohl bei der Übernahme aus einem anderen Projekt eineneue js-Datei vergessen. Aber es gibt eine andere, die es noch tut.
behebt #333"Bericht Lagerentnahme: Lagerplatz lässt sich nicht auswählen"
Lager/Einlagern: Grund der Einlagerung wird ignoriert
- Abfrage der eindeutigen ID des Transfertypes statt der Bezeichnung hinzugefügt- Abfrage nach der eindeutigen ID des Transfertyps erweitert:- ist diese vorhanden so wird sie direkt verwendet- ist sie nicht vorhanden so wird das Transferobjekt über den alten Weg erzeugt und die ID des Transfertyps daraus genommen...
Artikel nicht löschen können, wenn in Preisregeln verwendet.
behebt #353"Preisregeln Wenn Artikel gelöscht wird"
Auftrags-Controller: date_tags mit richtiger id ansprechen
Fehler kam rein mit:commit 43e74053df32b26b2e2ec5059bebc60d47be753b"Auftrags-Controller: date_tag mit _as_date füttern"
Inventur: Fehlermeldung an Benutzer, wenn kein Artikel ausgewählt wurde.
Inventur: Schwellwert in Mandantenkonfig. für Warnung bei Mengenabweichung
In der Mandantenkonfiguration kann ein Mengenschwellwert eingegeben werden.Wenn die bei der Inventur gezählte/eingegebene Zielmenge mehr als dieserSchwellwert von der Menge in der Datenbank abweicht, dann wird eine Warnung...
Part-Controller: Als neu verwenden: neue Id für Kunden-/Lieferanten-Art-Nr.
bzw. nicht die alte Id (MakeModel / PartCustomerPrice) für die neuen Objekteverwenden. Sonst gehen die Kunden-/Lieferanten-Art-Nr. beim Speichern im altenArtikel verloren.
Auftrags-Controller: Aufträge auch mit neuem Controller zusammenfassen können
Auftrags-Controller: Variable besser benennen …
bin drüber gestolpert, weil ich gesucht habe, wo im Workflow -> Auftragdie Verknüpfungen gespeichert werden. Wg. $quo nahm ich an, dass es hiernur um Angebote geht.
Mandantenkonfiguration: experimentelle Features einzeln an-/abschaltbar machen
es gibt nun "feature_experimental_order" und "feature_experimental_assortment"
angepasster cherry pick von odyn: bc94c40f2f64e7b40fbd90c49dbf41f86688c32d
Umbennenen von Datei mit mehreren Versionen
Generell können generierte Dokumente nur alle den gleichen Namen haben.Beim Umbennen wird ggf. auch die Version mitgeschickt. Diese muss aus de rID herausgefiltert werden
bei #102
POD Syntax repariert
Workflow quotation -> order. Quell-Beleg schließen.
Angebote|Preisanfrage werden immer geschlossen, fallses ein Auftrag oder Lieferantenauftrag daraus generiert wird.Die ursprüngliche Funktion in OE.pm kann als Quelle nochmehrere Belege haben, dies ist im aktuellen Workflow nur eine...
Auftrags-Controller: Beleg vor drucken und E-mailen speichern.
Das nur bei "speichern" auch gespeichert wird, ist vielleicht konsequent, aberim Alltag eher unpraktisch. Viele Anwender hatten damit ein Problem, dass dieverschickte oder gedruckte Version des Belegs anders ist, als die gespeicherte,...
Auftrags-Controller: Wiederkehrende Rechnungen. Konfig nicht mit neuer id …
… speichern, wenn diese schon vorhanden ist, sondern die vorhandene mitden neuen Attributen versehen.
Wenn sich die id ändert, lässt sich nicht mehr feststellen, ob für diese Konfig...
Toten Code entfernt: customer_or_vendor_selection.js
Bevor es den Customer-Picker gab, bestand die Möglichkeitüber einen Klick auf ein Fragezeichen den Kunden/Lieferantenrauszusuchen. Die Funktion war noch ein bisschen erweitert,da der Ansprechpartner noch separat angezeigt wurde (toter Projektcode im...
TopQuickSearch: UserPreferences kleinere Syntaxverbesserungen