CustomerVendor: im Templatesystem vorhandenes instance_conf verwenden
CustomerVendor: instance_conf komplett im Template verfügbar machen
Keine "leere" Währungsauswahl in CustomerVendor erlauben
Unnötiger JOIN auf taxkeys
Hier werden keine Steuern berücksichtigt. Es gab zwar einen Join aufdie Tabelle taxkeys, aber es wurden keine Daten ausgelesen.
tax_id auslesen
Statt die tax_id aus einem Join auf die Tabelle taxkeys zu bekommen,wird nun direkt von der acc_trans auf die Steuer zugegriffen. Diesgeschieht an verschiedenen Stellen:
Die tax_id wird jetzt in Kreditoren-/Debitoren- und Dialogbuchungen...
CRM-Menü in der ERP speichern inklusive der Übersetzungen
Fixt #2328.
Menüs in Untermenü "menus" verschoben
Administrationsbereich mit Menüsystem versehen
CustomerVendor: namespace-Aufrufe entfernt
CustomerVendor: Vertreter gefixt/implementiert
CustomerVendor: nur "nicht gelöschte" Mitarbeiter laden
CustomerVendor: Umleitungs-URL mit url_for erzeugen
CustomerVendor: Redirect gefixt
CustomerVendor: Auskommentierten Code gelöscht
CustomerVendor: vergessenes run_before ergänzt
Cuddled else
CustomerVendor: Kaskadiertes Löschen/Speichern
CustomerVendor: Abfragen in Transaktionen ausführen
CustomerVendor: nichtssagende Fehlermeldung entfernt
CustomerVendor: redirect nach Speichern
Rose-DB-Query gefixt
Auf CustomerVendor auf currency_id umgestellt
CustomerVendor: History-Einträge erstellen
Kein use von DB-Objekten in DB-Objekten
Datenbank-Helper(*_as_number) verwenden
Kunden-CVars-Speicherung gefixt
Customer/Vendor-Pfade angepasst
SL::Controller::CustomerVendor::action_new in action_add umbenannt
SL::Controller::Customer entfernt
ct.pl als Controller
SL::DB::CustomVariable::value an Customer angepasst
als getter gibt die Methode ein SL::DB::Customer-Objekt zurück.als setter wird eine Customer-ID erwartet.
Relation zw. Note und FollowUp eingetragen
CustomVariables-Helper registrieren von neu erstellen CVars
SL::DB::Helper::CustomVariables::cvars_by_config fügt neue CVarsdem ursprünglichen Objekt hinzu.
CVar-Accessor für Optionen und Flags
Validity-Accessor für CVars
frame_header.css auch für JavaScript im Layout angeben, und nicht direkt in Form
Fixt #2329.
CRM-Menü automatisch einlesen, falls es existiert
Siehe #2328.
LoginScreen: im Check auf "schon angemeldet?" Client setzen
Beim Einlagern die letzte gewählte Einheit merken
mini_stock auch direkt nach dem einlagern anzeigen.
Nicht benutzte Action entfernt
Erst testen, dann committen Sven...
Einlagern: Journal nicht abstürzen lassen, wenn noch nichts umgelagert wurde
Javascript escape nach Ecmascript Spec.
Es gab einen Eckfall mit CR wo das kaputt gegangen ist, Spec kenntnoch als weitere Randfälle TAB, VT, ' und BS
Fehlendes Komma ergänzt
Fixt #2331.
JavaScript-Plugin: Carriage returns escapen
Neues Recht für Anzeige von Artikeldetails/-berichten
Statt nur ein Recht für die Bearbeitung von Artikeln zu haben, das gleichzeitig auch das Rechtfür die Anzeige von Details und Berichten über Artikel umfasst, wurde nun ein neues Recht eingeführt.Das alte Recht "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" wurde also in zwei...
InstanceConfiguration: currencies und default_currency nur auf Bedarf auslesen
DBUpgrade2: verhindern, dass $::form->get_standard_dbh eine zweite Verbindung öffnet
Ansonsten sind Deadlocks absolut möglich.
Beim Benutzerlogin keine Auth-DB-Upgrades anwenden
Inventory Controller und neue stock_in Maske
Alte Methode ist weiter im Code vorhanden, wird aber geplant nach und nachdurch das neue Interface ersetzt.
Benötigt Partpicker
Partpicker: Suchicon im css Menü
Partpicker: doppelte Dokumentation entfernt
ClientJS: automatisch Date- und Partpicker nach AJAX-Request initialisieren
Partpicker: Nicht kaputtgehen ohne default part.
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
part picker doku
Kosmetik: Alignment, Einrückung
Partpicker: Filtermöglichkeit nach konvertierbaren Einheiten ('convertible_unit')
Partpicker: Filtermöglichkeit nach Einheiten ('unit')
Part-Manager: leere Strings im Typenfilter ignorieren
Part-Manager: mit Hash-artigem Type richtig umgehen können
Partpicker: ID-Attribut manuell angeben können
Partpicker: Part manuell laden, wenn nur ID angegeben ist
Ansonsten wird initial nichts angezeigt.
Abhängigkeiten von Lieferscheinen und Aufträgen/Angeboten in der Datenbank löschen
und nicht mehr programmseitig. Das geschieht durch Verwendung vonsinnvollen 'ON DELETE CASCADE/SET NULL'-Foreign-Key-Anweisungen undTriggern, die aus diejenigen Tabellen löschen, in denen eine...
SL::DBUpgrade2::Base::drop_constraints: Schema-Namen nicht hardcoden
SL::DB::Helper::PriceTaxCalculator: Margenberechnung gefixt
Die Margenberechnung hat die Stückzahl nicht bei der Kostenberechnungberücksichtigt.
Form::get_duedate: SL::DB::PaymentTerm::calc_date nutzen
SL::DB::PaymentTerm::calc_date: Berechnung von Fälligkeitsdatum anhand von terms_netto/terms_skonto
Dokumentation
exact match funktion wieder hergestellt nach dem letzten commit
ajax_autocomplete umgestellt auf get_models und inline JSON (20% schneller als template)
Doku, picker nach Presenter verschoben
Bei tab und enter den ersten full match benutzen. nur wenn der nicht eindeutig ist resetten oder popup öffnen
Part Picker
SL::DB::DeliveryOrder: donumber in before_save-Hook erzeugen
SL::DB::Invoice: invnumber in before_save-Hook erzeugen
SL::DB::Order: quo/ordnumber in before_save-Hook erzeugen
SL::PrefixedNumber::set_to_max: mit undefinierten Werten klarkommen
with_objects in ParseFilter korrekt weiterreichen
SMTP-Mailer: Login-Konfigurationseinstellung heißt "login", nicht "user"
Die kivitendo.conf führt "login" als Namen für die Einstellungauf. Für Rückwärtskompatibilität aber beide Varianten unterstützen.
Admin: Zuordnungen User <-> Gruppen <-> Mandanten auch leeren können
InstanceConf: Funktionen get_default_(warehouse|bin)_id heißen inzwischen get_(warehouse|bin)_id
"WebDAV" einheitlich schreiben
Kosmetik: Alignment
Mandantenkonfig: Gewichtsoptionen nur anzeigen, wenn Gewichtseinheiten definiert sind
Nicht versuchen DESTROY mit AUTOLOAD zu dispatchen.
Commit nach DB-Upgrade auch, wenn AutoCommit aus ist
Fehlende Einträge in SL/DB/Helper/{ALL,Mappings}.pm
Kopieren nach WebDAV: $form->{tmpfile} immer als lokalen Namen in $form->{tmpdir} interpretieren
Temporäre Datei zum richtigen Zeitpunkt in WebDAV-Ordner kopieren
Beim Drucken immer zuerst in temporäre Datei speichern
Datei vor Kopieren schließen
Refactoring: weniger Funktionen importieren; Pfade nicht mehrfach joinen
Refactoring: Verwendung von POSIX::strftime anstelle von localtime() + sprintf
Ergebnis von File::stat nur dereferenzieren, wenn Datei existiert
Existiert sie nicht, gibt die Funktion nun mal undef zurück.
Kosmetik/Refactoring
Auth: Support für Verbindung zur Unit-Test-Datenbank
DBUpgrade2: Option zum Zurückgeben eines Fehlers bei DB-Upgrades anstelle von print&exit
TransNumberGenerator: mit leerer Sequenzstartnummer klarkommen