G. Richardson [Fri, 11 Dec 2015 13:48:48 +0000 (14:48 +0100)]
Rechnungstab mit Buchungen ausblenden je nach Recht
nur Leute mit FiBu-Rechten (general_ledger) sollen auch den Buchungstab
aufmachen können. Bisher tauchte der Tab immer auf aber war leer, wenn
man das Recht nicht hatte.
G. Richardson [Fri, 11 Dec 2015 13:21:13 +0000 (14:21 +0100)]
Bei Kunden/Lieferanten Recht customer_vendor_all_edit prüfen
Wenn man das Recht hat, nur eigene Kunden/Lieferanten (wo man selber der
Verkäufer ist) zu bearbeiten:
Bisher war es noch möglich Kunden und Lieferanten zu öffnen und zu
bearbeiten, wenn man die Datenbank-ID kannte. Jetzt wird nach dem Laden
noch geprüft, ob Benutzer und Verkäufer übereinstimmen.
Es gibt auch eine Fehlermeldung beim Speichern, wenn man nicht selber
als der Verkäufer eingetragen wird, standardmäßig ist das Verkäuferfeld
derzeit nämlich leer. Ansonsten wäre der Kunde nach dem Speichern sofort
nicht mehr erreichbar.
Wenn man nicht das Recht hat, alle Kunden / Lieferanten anzuzeigen / zu
bearbeiten, dann sollen die auch nicht vom Picker auswählbar / anzeigbar
sein. Im neuen Ordercontroller mit Picker kann man dann auch nur die
eigenen Kunden auswählen.
Bei Verkauf->Berichte->Kunden ist dieser Filter auch aktiv, aber nicht bei
den alten Belegmasken mit Kundendropdown / Suchfeld.
Wenn der Bearbeiter nur die eigenen Belege sehen soll, bzw. die Belege,
wo er als Verkäufer eingetragen ist, also das Recht "sales_all_edit"
nicht hat, dann sollen auch die angezeigten Aufträge im
FinancialControllingReport gefiltert werden.
Sven Schöling [Thu, 10 Dec 2015 12:21:24 +0000 (13:21 +0100)]
invoice_io.pl entfernt
sql_ledger hat versucht ein zentrales display_form zu halten. Das hat
aber in lx nur Probleme gemacht und weil Aufträge mehr und mehr
brauchten ist die invoice_io.pl als alternative reingekommen.
Mittlerweile bestand die aber nur noch aus Weichen für verschiedene
Belege, und war ausserdem by design unsafe (no strict refs).
Gleichzeitig fliegt auch das unsägliche if ($form->{display_form}) {
call_sub($form->{display_form}) } feature raus, was niemals jemand
benutzt hat.
Jan Büren [Thu, 3 Dec 2015 20:01:10 +0000 (21:01 +0100)]
convert_to_delivery_order um record_links auf item-Ebene erweitert
Bisher wurden nur die Belege verknüpft und nicht die einzelnen
Items. Analoge Implementierung wie bei convert_to_invoice.
Sinnvoll wäre ein Auslagern, dieser "zu ähnlichen" Verfahren in beiden
Fällen
Jan Büren [Wed, 2 Dec 2015 09:35:29 +0000 (10:35 +0100)]
io/select_item um optional part.notes erweitert
Standard: Konfigurierbar in Mandatenkonfiguration. Entsprechend Flag
für parse_template usw.
Einziger nicht optionaler Punkt: p.notes wird zusätzlich als Column in
retrieve_items geholt, kann ggf. auch noch optional geholt werden
Jan Büren [Wed, 2 Dec 2015 09:12:06 +0000 (10:12 +0100)]
retrieve_items in IR.pm bzgl. notes überarbeitet
notes wurde mit verschiedenen Aliasen (longdescription, partnotes)
geholt. In IS.pm sind diese Einträge nicht vorhanden. Die IR->retrieve_item
wird auf den ersten Blick auch nur für die $form->{item_list} verwendet,
die selbst in der ir.pl keine Verwendung für die beiden alten Aliase hat.
Jan Büren [Wed, 2 Dec 2015 08:54:04 +0000 (09:54 +0100)]
Abteilungsname für DATEV-Checks bei Einkaufsrechnungen setzen
If we filter DATEV transaction via department we need also a name for export.
At least if we have DATEV checks activated and force a valid department in
DATEV filter (currently customer extension)
Jan Büren [Wed, 2 Dec 2015 07:35:28 +0000 (08:35 +0100)]
Überflüssige Variable entfernt
$form->{webdav} wird seit dem Tabbing-Zeitalter nicht mehr als
Kennzeichen für webdav benötigt. Alle anderen Überprüfungen auf
webdav finden in den Templates schon lange sinnvollerweise
mit INSTANCE_CONF.get_webdav statt.
Bernd Bleßmann [Mon, 30 Nov 2015 16:27:22 +0000 (17:27 +0100)]
Einlagern: Bei einem Fehler die eingebenen Werte in der Maske wieder herstellen
Zwei Dinge:
Zum einen einen $::form->error abfangen und Fehler auch mit flash ausgeben,
wenn das Speichern der Lagerbewegung fehl schlägt (passiert z.B. wenn man ein
falsches Datumsformat beim Mindesthaltbarkeitsdatum eingibt).
Zum anderen bei einem Fehler dem redirect die ursprünglich eingegebenen Werte
wieder mitgeben, damit man den Fehler korrigieren und dann einlagern kann.
Moritz Bunkus [Tue, 3 Nov 2015 08:39:54 +0000 (09:39 +0100)]
SEPA: Zeilen ohne Bankinfo, die vorausgewählt wären, gesondert markieren
Bei Überweisungen sind diejenigen Zeilen vorausgewählt, bei denen in der
Rechnung der Lastschrifteinzug nicht aktiv ist, die ich also manuell
überweisen muss.
Bei Einzügen sind diejenigen Zeilen vorausgewählt, bei denen in der
Rechnung der Lastschrifteinzug aktiv ist, die ich also einziehen muss.
Sprich es werden die Zeilen mit (2) markiert und mit
Fehler-Hintergrundfarbe dargestellt, bei denen ich aktiv werden muss
aber es momentan aufgrund fehlender Bankinformationen nicht kann.
Sven Schöling [Thu, 22 Oct 2015 11:26:34 +0000 (13:26 +0200)]
Einkaufsrechnungen: Neu buchen SQL Fehler behoben
Fehler trat auf, wenn Aufwandsmethode eingestellt war, und eine
Einkaufsrechnung, für die bereits eine Verkaufsrechnung existierte
geändert wurde. Dann wurde fälschlicherweise beim Umkehren der Rechnung
versucht die Warenbestandsbuchungen zu ändern.
Ohne Verkaufsrechnung existieren die allocated < 0 Positionen nicht.
Moritz Bunkus [Mon, 2 Nov 2015 13:57:56 +0000 (14:57 +0100)]
DATEV: Benutzung undefinierter Werte vermeiden
Wenn der DATEV-Export vom Payment-Helfer mit aktivierten DATEV-Checks
heraus aufgerufen wird, so sind diverse Felder wie die KNE-Kopfdaten
nicht gesetzt (werden auch nicht benötigt).
Moritz Bunkus [Mon, 2 Nov 2015 13:41:08 +0000 (14:41 +0100)]
Hash-Zuweisung mit ungerader Anzahl Elemente vermeiden
In einem Hash wird eine leere Liste im ternären Ausdruck nun mal im
Listenkontext ausgewertet… und dadurch ist bei so einem Konstrukt die
rechte Seite potenziell leer (sie enthält kein Argument):
Jan Büren [Tue, 27 Oct 2015 10:24:39 +0000 (11:24 +0100)]
SelfTest um Testfall ac.amount == ar.netamount ergänzt
In Ergänzung zu #7915128c einen ähnlich sinnvollen Testfall für
Selftest ergänzt.
Im Datenbestand muss zwingend ar.netamount == acc_trans.amount für Typ
AR_amount identisch sein.
Ansonsten kommt / kam es in der Vergangenheit immer zu cent Differenz in
der Rechnungsübersicht und in der Rechnungseinzelansicht.
G. Richardson [Mon, 26 Oct 2015 08:55:59 +0000 (09:55 +0100)]
format_amount - negative 0 vermeiden
Ist eine Zahl z.B. -0.002, und wird auf 2 Stellen gerundet, so wird erst
das Minuszeichen gemerkt, dann gerundet (0.00), und schießlich wird das
Minus wieder hinzugefügt, dadurch bekommt man -0.00. Mit diesem Patch
wird das Minus-Zeichen entfernt wenn die gerundete Zahl genau 0 ergibt.
Bernd Bleßmann [Fri, 23 Oct 2015 16:25:51 +0000 (18:25 +0200)]
PriceSources: Namen der Quellen für Kunden- und Lieferantenrabatt berichtigt.
Die Klassen SL::PriceSource::Customer und Vendor verwenden als name
'customer_discount' bzw. 'vendor_discount' während SL::PriceSource::ALL
'customer' und 'vendor' benutzte.
Dadurch ließen sich z.B. diese Rabattquellen nicht deaktivieren.
Jan Büren [Fri, 23 Oct 2015 12:36:44 +0000 (14:36 +0200)]
Standardlagerplatz in Stammdaten beim Umlagern ändern
Scheinbar hat dies bisweilen immer nur bei gleichbleibenden Lagern funktioniert
(s.a. Ergänzung POD in Object.pm->update_attributes)
Ferner, sinnvollerweise das bestehende Part-Objekt verwenden und kein neues
erzeugen.