Moritz Bunkus [Wed, 6 Apr 2016 14:45:50 +0000 (16:45 +0200)]
SL::Controller->send_file: trueish zurückgeben
send_file meldet Fehler (z.B. »kann Datei nicht öffnen«) durch
croak(). Im Erfolgsfall sollte die Funktion aber regulär einen wahren
Wert zurückgeben, um ordentlich in eval{} benutzt werden zu können.
Individuelle Lieferadressen werden nur von shipto.trans_id zu ar.id
verlinkt, nicht aber in ar.shipto_id. Die Implementation ist analog zu
SL::DB::DeliveryOrder->new_from.
Moritz Bunkus [Wed, 6 Apr 2016 11:59:31 +0000 (13:59 +0200)]
DeliveryOrder->new_from: kein $custom_shipto-Objekt zurückgeben
Falls das Quellobjekt eine individuelle Lieferadresse besaß, wurden bei
new_from() zwei Objekte zurückgegeben: das neue Lieferscheinobjekt und
ein Clone der individuellen Lieferadresse. Diese waren nicht verknüpft.
Der Aufrufer musste daher zuerst das Lieferscheinobjekt speichern,
dessen ID beim gecloneten Lieferadressenobjekt hinterlegen und das
anschließend speichern.
Dies ist umständlich und fehlerträchtig. So hat z.B. der einzige
bisherige Nutzer dieses Interfaces,
SL::DB::Order->convert_to_delivery_order, das bereits falsch gemacht und
vergessen, beim Lieferadressenobjekt die ID des neuen
Lieferscheinobjektes einzutragen. Somit wurden Lieferadressen erzeugt,
die keinerlei Verknüpfung hatten.
Das geänderte Interface hinterlegt das Objekt für die individuelle
Lieferadresse schlicht in $new_delivery_order->custom_shipto. Dort wird
das Objekt gespeichert, wenn der Lieferschein selber gespeichert wird.
PDF::Table - fehlerhafte Headerbearbeitung ab Seite 2
ab Seite 2 werden die benötigten Weiten der Spalten um die Zahl der Headerzeilen
nach hinten verschoben. Dann kommt es zu fehlenden Zeilenumbrüchen in manchen Zellen
Da Pushen von leerem Array führt zu diesem Fehler, d.h. es wird doppelt gepushed.
Dieser Fehler war schon in der alten PDF::Table
Moritz Bunkus [Mon, 4 Apr 2016 15:10:31 +0000 (17:10 +0200)]
JS: einige Scope-Fehler gefixt (von jshint)
Variablengültigheit hängt nicht von {} ab, sondern gelten immer für die
ganze Funktion. Daher ergibt mehrfachess »var xyz« innerhalb einer
Funktion keinen Sinn.
Moritz Bunkus [Fri, 1 Apr 2016 15:12:52 +0000 (17:12 +0200)]
ReportGenerator: Unterstützung für raw_header_data-Attribut in Spaltendefinitionen
Zuerst wurde dieses Attribut in Anlehnung an das Attribut bei den
Positionszeilen "raw_data" genannt. Leider kollidiert "raw_data" mit der
Benutzung des ReportGenerators aus dem Controller-Helfer-Modul
SL::Controller::ReportGenerator. Dieser verwendet "raw_data" in den
Spaltendefinitionen bereits für Defaults für die Erzeugung der
Positionszeilen.
Daher nun die Umbenennung des neuen Attributes nach "raw_header_data".
Moritz Bunkus [Fri, 1 Apr 2016 09:13:16 +0000 (11:13 +0200)]
QuickSearch: nicht anzeigen, wenn Datenbankupgrades eingespielt werden müssen
QuickSearch hat seine Konfiguration in gewissen Spalten in der
Datenbank. Um auf diese zugreifen zu können, müssen die dazugehörigen
Datenbankupgrades bereits eingespielt worden sein.
Da das Menü und damit die QuickSearch-Items auch während des Einspielens
der Upgrades angezeigt werden, kann es also dazu führen, dass die
Spalten noch nicht existieren. Daher wird QuickSearch nun komplett
deaktiviert, solange ausstehende Datenbankupgrades existieren.
Moritz Bunkus [Fri, 1 Apr 2016 08:27:28 +0000 (10:27 +0200)]
ReportGenerator: Unterstützung für raw_data-Attribut in Spaltendefinitionen
Analog zu Zellendaten: ist bei einer Spaltenüberschrift raw_data
gesetzt, so wird das ausgegeben. Nur andernfalls werden die Attribute
link, text und der Sortier-Indikator ausgegeben.
Damit ist es z.B. möglich, in der Spaltenüberschrift eine
»Check-All«-Checkbox zu rendern.
Moritz Bunkus [Fri, 1 Apr 2016 07:39:29 +0000 (09:39 +0200)]
SL::DB::Note: Funktion trans_object zum Auslesen des referenzierten Objekts
Ein Note-Objekt hängt immer an einem anderen Datenbankobject, das über
trans_module+trans_id referenziert wird. Diese Funktion entscheidet
anhand von trans_module, welche Rose-Klasse zu instantiieren ist, holt
das entsprechende Objekt aus der Datenbank und gibt es zurück.
Auch bei polymorphen Objekten wie Kunden/Lieferanten (für trans_module
== ct) wird das richtige getan.
Moritz Bunkus [Thu, 31 Mar 2016 13:31:32 +0000 (15:31 +0200)]
S:D:FollowUp: Namen der Relationen created_by…/created_for… eindeutig gemacht
Die Spalten heißen leider created_by und created_for_user. Damit es bei
der Benutzung nicht zu Verwirrungen zwischen Spaltennamen und den Namen
der Relationships kommt, werden die Relationshipnamen schlicht eindeutig
umbenannt.
Bisher hat kein Rose-Code diese Relationships genutzt. Nur der
CustomerVendor-Controller hat die Spaltennamen benutzt.
Sven Schöling [Wed, 30 Mar 2016 17:10:41 +0000 (19:10 +0200)]
.mailmap für git-shortlog -s
3 commits konnte ich nicht zuordnen:
- digifoto <digifoto@kivitendo.digifoto24.com>
- root <root@test.cine-logistics.de>
- root <root@vc-kivi.vitracom.org>
G. Richardson [Tue, 15 Mar 2016 14:07:44 +0000 (15:07 +0100)]
Konten neu anlegen repariert
get_account wurde nicht nur für das Laden bestehender Konten verwendet,
sondern auch für das Füllen von anderen form-Variablen, z.B. für
Steuerschlüssel.
Bei der Gelegenheit auch etwas Rose geübt und refactored.