Das Update definiert nun die Spalte chart.link als Pflichtfeld bevor
in der acc_trans die Spalte chart_link hinzugefügt wird. Alle Einträge
in chart.link, die bisher NULL waren werden durch '' ersetzt.
Moritz Bunkus [Wed, 27 Feb 2013 13:18:26 +0000 (14:18 +0100)]
SL::{Controller,Presenter}->render: $template kann auch ref auf Instanz von EscapedText sein
Die folgenden Fälle werden nun für $template wie folgt behandelt:
- keine Ref: $tempalte wird als Dateiname interpretiert
- Ref auf einen String (ref eq 'SCALAR'): Zu rendernder String,
direkte Übergabe an Template
- Instanz von EscapedText und Ref auf Instanz von EscapedText: Zu
rendernder String ist der von EscapedText geproxite Text, direkte
Übergabe an Template mit "process => 1" und direktes Zurückgeben mit
"process => 0"
Damit ist es aus Caller-Sicht einfacher, den Aufruf richtig
hinzubekommen:
my $some_result = $self->presenter->grouped_record_list($objects);
# Don't care whether or not $some_result is already an instance of
# EscapedText: never treat this as a file name
$self->render(\$some_result, { layout => 0 });
Fügt einen zufälligen GET-Parameter an jeden JavaScript-/CSS-Link
hinzu, der via $layout->use_javascript()/use_stylesheet() ausgegeben
wird. Sorgt dafür, dass der Browser Resourcen jedes Mal neu lädt.
Hilfreich, wenn man gerade CSS oder JavaScript bastelt und nicht
dauernd F5 drücken möchte.
Dieser Commit fügt dem Script add_fkey_tax_id_to_acc_trans.sql noch
eine Abhängigkeit hinzu. Es trat der Fehler auf, dass ein Fremdschl-
üssel von acc_trans.tax_id auf tax.id gesetzt wird, aber die Spalte
tax_id noch gar nicht in der acc_trans vorhanden war.
Dieser Commit macht Steuern unveränderbar, wenn mit diesen schon
gebucht wurde, d.h. ein Eintrag in der acc_trans steht. Man kann nur
noch Namen und Automatikkonten verändern. Weiterhin findet eine
Prüfung statt, ob Steuerschlüssel 0 ohne Steuern gespeichert wird.
Die Abfrage isblank war leider fehlerhaft und wurde ebenfalls ersetzt.
Bisher lieferte kivitendo auch Fehler, wenn man Namen von Konten
mit Steuerschlüssel 0 ändert. Das sollte nicht so sein.
Enthält noch einige Ergänzungen zu commit d1408ca13458a782cbde2b768cdd7abdbdcb9348. Es werden jetzt auch
periodisch erzeugte Rechnungen berücksichtigt und SEPA-Überweisungen
funktionieren wieder.
Weiterhin werden noch einige Syntax-Fehler behoben.
Dieser Commit enthält noch einige kleine Verbesserungen zum Update
tax_constraints.pl. Es wurden Einrückungen verändert, trailing white-
spaces entfernt und eine Abhängigkeit hinzugefügt.
Dieser Commit fügt für die Tabellen tax und taxkeys folgende
Constraints hinzu:
Tabelle tax:
1.chart_id hat jetzt einen Fremdschlüssel auf chart.id.
2.rate darf nicht mehr NULL sein und hat DEFAULT-Wert 0.
3.taxkey darf nicht mehr NULL sein.
4.taxdescription darf nicht mehr NULL sein.
Tabelle taxkeys:
1.chart_id darf nicht mehr NULL sein, hat jetzt einen Fremdschlüssel
auf chart.id.
2.tax_id darf nicht mehr NULL sein.
3.taxkey_id darf nicht mehr NULL sein.
4.startdate darf nicht mehr NULL sein.
5.chart_id und startdate müssen eindeutig sein.
Moritz Bunkus [Mon, 11 Feb 2013 09:53:07 +0000 (10:53 +0100)]
SEPA-Überweisung: Rechnungen mit NICHT gesetztem "Lastschrifteinzug" vorauswählen
Die Logik ist im Einkauf genau umgekehrt zum
Verkauf. "Lastschrifteinzug" bedeutet im Verkauf, dass wir einziehen,
also dass wir die Rechnung via SEPA anweisen müssen.
Im Einkauf bedeutet es, dass der Lieferant direkt von uns einzieht und
wir deshalb nichts manuell machen müssen.
Moritz Bunkus [Fri, 8 Feb 2013 12:16:33 +0000 (13:16 +0100)]
ActsAsList: mit remove_from_list() entfernte Items auf position = -1 setzen
position ist in allen Tabellen NOT NULL deklariert. Nur in der einen,
die ich zum Testen genutzt hatte, nicht. Das habe ich nun
nachgeholt. Jetzt wird -1 als magischer "not in list"-Wert benutzt.
Stücklisten-Druck von Erzeugnissen wird entsprechend selten angehakt und wurde deshalb bei
der Erweiterung für TEMPLATE_ARRAYS übersehen.
Ferner hab ich den Ausdruck der Stückliste auch genauso wie bei der Rechnung formatiert, da es sich
hier um "denselben" Code handelt.
Optimalerweise sollte man den Stücklisten-Code auch noch für alle Druckvorlagen in ein- und.
diesselbe Funktion auslagen (DRY), dann wird das beim nächsten Mal nicht vergessen und die.
Formatierung ist in allen Verkaufsvorlagen einheitlich.
Bei Dialogbuchungen war bisher die tax_id für keine Steuern hartcodiert
0. Das muss allerdings nicht so sein und führt zu Problemen, wenn
der Steuerschlüssel 0 unter einer anderen id gespeichert wurde.
Dieser Commit enthält das Update-Script um eine neue Spalte Namens
'tax_id' in die Tabelle 'acc_trans' einzufügen. Diese Spalte hat
Constrait NOT NULL und einen Fremdschlüssel auf die id von tax.
Bisher gab es noch sehr viele Konten, für die kein Eintrag in der
Tabelle taxkeys und damit kein Steuerschlüssel vorhanden war.
Dieses Update erstellt für jedes Konto ohne Steuerschlüssel einen
in der taxkeys, s.d. solche Konten den Steuerschlüssel 0 haben.
Hierfür ist unbedingt erforderlich, dass der Steuerschlüssel 0
existiert (also in tax vorhanden ist) und dieser Eintrag den
Steuersatz 0% hat. Existiert der Steuerschlüssel 0 nicht, so
wird er angelegt. Existiert ein Steuerschlüssel 0 mit mehr als 0%
Steuern, so wird das Update mit Fehlermeldung abgebrochen.
Bisher wurde beim Anlegen eines neuen Kontos nicht unbedingt auch
ein Steuerschlüssel gespeichert. Jetzt kommt eine Fehlermeldung,
wenn man keinen Steuerschlüssel angibt, bzw. versucht alle Steuer-
schlüssel aus einem bestehenden Konto zu löschen.