Sven Schöling [Mon, 9 Sep 2013 16:10:47 +0000 (18:10 +0200)]
SellPriceInformation: Layout nicht mit generieren.
Spart 10 Requests und umgeht einen interessanten Browserbug - Javascripte die aus ajax Request html eingelesen werden, werden vom Broweser mit einer zufälligen Nummer versehen um ein 304 zu vermeiden. Das hat gerade bei schwachen Leitungen zu massiv unnötigen Requests geführt.
Moritz Bunkus [Thu, 29 Aug 2013 11:19:52 +0000 (13:19 +0200)]
Einträge in employee aus User->login heraus aktualisieren
Vor der Mandanteneinführung war User->login bereits hierfür
verantwortlich. Dann wurde diese Funktionalität in den
Login-Controller verschoben. Allerdings kehrt die Ausführung in exakt
einem Fall nicht zum Logincontroller zurück: wenn noch
Datenbankupgrades eingespielt werden müssen.
In dem Fall werden die Updates eingespielt, dem User wird die
"Weiter"-Seite angezeigt, und von hier aus geht es direkt zum
company_logo.
User->login weiß daher als einzige Instanz, wann alle DB-Upgrades
User->installiert sind, und damit, wann RDBO-Instanzen sicher genutzt
User->werden können.
Daher die Funktionalität in die Employee-Manager-Klasse verschoben und
das Triggern der Funktion aus dem Login-Controller wieder zurück nach
User->login verschoben.
Moritz Bunkus [Mon, 26 Aug 2013 13:57:39 +0000 (15:57 +0200)]
AM.pm::get_warehouse: keinen teuren Cross Join
Ein Cross Join wird nicht benötigt, weil nur die Existenz einer Zeile
in mind. einer der beiden relevanten Tabellen interessant ist. Das
auch entsprechend coden.
Moritz Bunkus [Tue, 6 Aug 2013 09:57:45 +0000 (11:57 +0200)]
Wiederkehrende Rechnungen: nicht '_email' in Vorlagendateinamen hinzufügenn
In Form::prepare_for_printing wurde '_email' immer an den Dateinamen
angehängt, sofern es ein solches Template gibt (also
z.B. 'invoice_email.tex') -- egal, wohin letztlich ausgegeben werden
soll (via 'media'). Nun wird das nur noch gemacht, wenn 'media' == 'email' ist.
Man konnte sich bisher, auch ohne das Recht zu besitzen, eine Liste
von Kreditoren-/Debitorenbelegen erstellen, indem man folgenden Link
aufgerufen hat:
ar.pl?action=search (dann auf weiter)
oder direkt:
ar.pl?action=ar_transactions
Die Ursache hierfür war, dass das Recht "Dialogbuchen, Debitoren-
rechnungen, Kreditorenrechnungen" ausreichte, um die oben ge-
nannten actions aufzurufen.
G. Richardson [Mon, 5 Aug 2013 08:29:52 +0000 (10:29 +0200)]
Neue Rechte für Anzeige der Debitoren- und Kreditorenbuchungen
Damit kann man in den Berichten für Einkaufs- und Verkaufsrechnungen die
Debitoren- und Kreditorenbuchungen herausfiltern, so daß z.B. die
Einkäufer nicht mehr Kreditorenbuchungen aus dem Fibu-Bereich sehen
können.
Moritz Bunkus [Thu, 1 Aug 2013 08:58:51 +0000 (10:58 +0200)]
ClientJS: Argumente nur dann säubern, wenn sie richtigen Typ haben
- Stringifizierung nur für Instanzen von SL::Presenter::EscapedText
- Leading whitespace trimming nur für Skalare
Hintergrund ist, dass manche Funktionen komplexere Strukturen als
Parameter übergeben bekommen, namentlich jstree:create_node, das ein
Hash von key/value-Paaren benötigt. Diese dürfen nicht forçiert
stringifiziert werden.
Moritz Bunkus [Wed, 31 Jul 2013 09:19:44 +0000 (11:19 +0200)]
Nicht explizit Transaktion starten
$::form->get_standard_dbh liefert ein Handle, das AutoCommits aus hat
$::form->und daher eh immer explizit in einer Transaktion
$::form->steckt. Vermeidet zusätzlich eine Warnung.
Moritz Bunkus [Mon, 29 Jul 2013 13:07:38 +0000 (15:07 +0200)]
steuerfilterung.pl: Steuersätze nicht runden
Zum Einen verwendet z.B. der Schweizer Kontenrahmen Steuern mit
Nachkommastellen, und zum Anderen ist "tax.rate" eine Spalte vom Typ
"numeric", sodass die erhaltenen Werte eh kein
Fließkomma-Rundungsproblem haben.
G. Richardson [Wed, 24 Jul 2013 14:31:42 +0000 (16:31 +0200)]
Korrekte Upgradeskript-Reihenfolge
Für oe_do_delete_via_trigger.pl müssen schon alle pricegroup_ids von 0
auf NULL gesetzt worden sein, dies passiert in
orderitems_delivery_order_items_invoice_foreign_keys
Statt die tax_id aus einem Join auf die Tabelle taxkeys zu bekommen,
wird nun direkt von der acc_trans auf die Steuer zugegriffen. Dies
geschieht an verschiedenen Stellen:
Die tax_id wird jetzt in Kreditoren-/Debitoren- und Dialogbuchungen
aus der acc_trans gelesen statt aus der Tabelle taxkeys.
Im DATEV-Export wird jetzt die id über den Eintrag in der acc_trans
ermittelt anstatt über die Tabelle taxkeys.