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.
Sven Schöling [Tue, 20 Oct 2015 15:44:05 +0000 (17:44 +0200)]
Symlinks entfernt
Die bevorzugte Art das Programm an den Apache anzubinden ist seit Jahren
über ein AliasMatch der direkt dispatcher.<typ> aufruft.
Das letzte mal haben wir das 2010 probiert, da gab es aber noch viele
Installationen deren Update nicht trivial gewesen wäre. Das sollte heute
nicht mehr so sein.
Aufgrund der Code-QS von Bernd folgende Details bei der Massenkonvertierung
von Lieferscheinen nach Rechnungen eingebaut:
a) Das Model filtert jetzt nur nach offenen Verkaufslieferscheinen und
nicht noch zusätzlich nach offenen, aber gelieferten Verkaufslieferscheinen.
b) Felder die mit CKEditor editiert wurden, werden zwar völlig richtig
in das Invoice-Objekt editiert, ABER beim Massenausdruck über den Background-Job
wird nicht automatisch der HTML-Code in LaTeX Code gewandelt. Daher erfolgte
der Ausdruck als HTML-Code (<strong>Dies ist fett</strong>) im PDF.
Entsprechend für die manuelle Auswahl als auch für die Background-Job geändert.
c) Der Filter im Bericht filtert nach transdate (Belegdatum) und nicht nach Lieferdatum.
Entsprechend hier die richtige Beschriftung gesetzt.
Daniel Popiuk [Fri, 28 Aug 2015 11:46:30 +0000 (13:46 +0200)]
Auslagern über Standardlagerplatz: Artikel mit Chargennummern auslagern
Standardmässig funktioniert das Auslagern über Standardlagerplatz nicht, sobald eine Chargenummer
oder eine Mindesthaltbarkeit definiert ist, da dass Programm nicht entscheiden kann, welche Charge oder MHD
gemeint ist.
Ein Sonderfall ist aber, wenn gar keine Chargen/MHDs mehr eingelagert sind, dann kann die Ware
wieder automatisch, da eindeutig über den Standardlagerplatz ausgelagert werden.