Massenerstellen von Rechnungen aus LS: Filtern nach Kundentyp
Reconciliation: Veto, kein invoice_amount nachträglich setzen.
auch nicht für Vorschläge
Auth: fehlerhafte JSON-Requests mit JSON und richtigem HTTP-Response-Code beantworten
Auftrags-Controller: Prüfung beim Holen der Kunden-/Lieferanten-Art.-Nr, …
… ob Option eingeschaltet ist und ob Kunde/Lieferant schon gewähltwurde. Sonst gibt es einen Fehler beim Workflow von VK in EK und umgekehrt.
Part: typo
(cherry picked from commit 8ce71088e51f6bce25c8406ff65f72fad3c15d1a)
CSV-Import Debitorenbuchungen: maximale Betragsabweichung (Einstellungen) parsen
S:C:Letter: Vergessene Presenter-Umstellung für ein select_tag
Auftrags-Controller: Positions-Update: auch Artikelnummern updaten
Auftrags-Controller: Spracheinstellungen aus Druck-/E-Mail-Dialog speichern.
Rechte zum Bearbeiten von Preisen in Belgen getrennt nach VK/EK anwenden
Recht zum Einsehen von Einkaufsdokumenten aller Mitarbeiter anwenden
Trennung VK/EK in Berichten
Auftrags-Controller: PDF-Download per ajax-send_file
Controller::send_file: rendern bei ajax abschalten können
Damit kann man weitere client_js-Kommandos absetzen.
Controller::send_file schickt jetzt über client_js wenn ajax
(cherry picked from commit 0f16bc87b4804cf05cefb5ac1514c7f565cfbfbd)
Controller::redirect_to: url_for nicht doppelt aufrufen, wenn ajax
Macht zwar nichts, muss aber auch nicht.
Jahresabschluß - GLTransaction->post und Tests
Der YearEnd Controller nutzt nun GLTransaction->post, damit muß man dieacc_trans-Einträge nicht mehr von Hand zusammenbauen, und die Buchungenpassieren automatisch als Transaktion, die Buchungen werden validiert...
S:C:YearEndTransactions: Warnung vermeiden: Variablen waren schon deklariert
S:C:YearEndTransactions: Kosmetik: Tab entfernt
Auftrags-Controller: self an _row-Template übergeben …
… und nicht einzelne Variablen aus self, die dort abgefragt werden.
Auftrags-Controller: Benutzereinstellung: Positions-Update aus Artikel-Stamm
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...
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