kivitendo-erp.git
9 years agoFinanzcontrollingbericht: wiedk. Rechnungen vom Enddatum immer bis heute
Moritz Bunkus [Tue, 26 Aug 2014 11:29:59 +0000 (13:29 +0200)]
Finanzcontrollingbericht: wiedk. Rechnungen vom Enddatum immer bis heute

Das konfigurierte Enddatum ist nur dann relevant, wenn die
wiederkehrende Rechnung gekündigt wurde. Ansonsten wird sie automatisch
verlängert, sprich ein maximales Enddatum gibt es dabei nicht.

9 years agoWiederkehrende Rechnungen: Berechnung maximales Enddatum gefixt
Moritz Bunkus [Tue, 26 Aug 2014 11:28:25 +0000 (13:28 +0200)]
Wiederkehrende Rechnungen: Berechnung maximales Enddatum gefixt

Das konfigurierte Enddatum ist nur dann relevant, wenn die
wiederkehrende Rechnung gekündigt wurde. Ansonsten wird sie automatisch
verlängert, sprich ein maximales Enddatum gibt es dabei nicht. Wir
nehmen der Einfachheit halber 100 Jahre.

Hiermit tauchen die Beträge der Aufträge im Finanzübersichtsbericht auch
richtig für jede Periode auf, nicht nur dann, wenn kein Enddatum in der
Konfiguration gesetzt ist.

9 years agoEinkaufs-/Verkaufsbelege: Spalte taxzone_id bereits beim INSERT befüllen
Moritz Bunkus [Tue, 26 Aug 2014 11:19:41 +0000 (13:19 +0200)]
Einkaufs-/Verkaufsbelege: Spalte taxzone_id bereits beim INSERT befüllen

Ansonsten gibt es wegen der neuen NOT NULL-Restriktion einen Fehler.

9 years agoForm->prepare_for_printing: output_*-Variablen als Fallback auf %myconfig-Werte setzen
Moritz Bunkus [Tue, 26 Aug 2014 11:03:40 +0000 (13:03 +0200)]
Form->prepare_for_printing: output_*-Variablen als Fallback auf %myconfig-Werte setzen

Wenn für eine Sprache kein Ausgabeformat für Datum und/oder Zahlen
festgelegt ist, so muss hier der Wert der angemeldeten Benutzerin
genommen werden, weil ansonsten die Werte falsch formatiert
werden. Außerdem kann es sein, dass die Vorlagen dann falsch rechnen,
wenn sie \numprint nutzen.

Behebt Formatierungsprobleme in wiederkehrenden Rechnungen, wenn der
Auftrag eine Sprache gewählt hat, in der die Ausgabeformate nicht
definiert sind.

9 years agoWiederkehrende Rechnungen: Variable period_end_date gefixt
Moritz Bunkus [Tue, 26 Aug 2014 09:16:24 +0000 (11:16 +0200)]
Wiederkehrende Rechnungen: Variable period_end_date gefixt

Das Periodenenddatum wird am Anfang der sub bereits richtig als »der
letzte Tag innerhalb des Abrechnungszeitraumes« berechnet und darf
hinterher daher nicht mehr auf den Monat abgeschnitten werden.

9 years agoBearb. Buchungsgruppen: Spalte taxzone_id in oe/delivery_orders konvertieren
Moritz Bunkus [Tue, 26 Aug 2014 08:53:15 +0000 (10:53 +0200)]
Bearb. Buchungsgruppen: Spalte taxzone_id in oe/delivery_orders konvertieren

1. Werte 0 und NULL durch neue ID für »Inland« ersetzen (oe,
   delivery_orders, ar, ap)

2. Spalte taxzone_id NOT NULL setzen (oe, delivery_orders, ar, ap)

3. Fremdschlüssel auf Tabelle tax_zones setzen (oe, delivery_orders)

9 years agolocales: Fehlende Übersetzungen ergänzt
Moritz Bunkus [Mon, 25 Aug 2014 13:00:48 +0000 (15:00 +0200)]
locales: Fehlende Übersetzungen ergänzt

9 years agoIBAN und BIC im Kunden/Lieferanten Detailfeld in Belegen anzeigen.
Sven Schöling [Fri, 25 Apr 2014 09:04:09 +0000 (11:04 +0200)]
IBAN und BIC im Kunden/Lieferanten Detailfeld in Belegen anzeigen.

9 years agoabweichende Lieferadresse für Lieferschein bei RB-Druckvorlagen
Jan Büren [Mon, 25 Aug 2014 10:15:33 +0000 (12:15 +0200)]
abweichende Lieferadresse für Lieferschein bei RB-Druckvorlagen
analog zu dem Commit von gerade. Hier auch die abweichende Lieferadresse
beachten. erledigt #2

9 years agoRB-Druckvorlagensatz: abweichende Lieferadresse für Kunden- Lieferantenauftrag
Jan Büren [Mon, 25 Aug 2014 10:08:13 +0000 (12:08 +0200)]
RB-Druckvorlagensatz: abweichende Lieferadresse für Kunden- Lieferantenauftrag
entsprechend shipto ergänzt

9 years agoBei Kundenauftrag -> Lieferantenauftrag Zahlungs- und Lieferbedingungen löschen
Jan Büren [Mon, 25 Aug 2014 09:47:35 +0000 (11:47 +0200)]
Bei Kundenauftrag -> Lieferantenauftrag Zahlungs- und Lieferbedingungen löschen
Zahlungs- und Lieferbedingungen aus dem Kundenauftrag zu übernehmen macht
i.d.R. keinen Sinn, da diese ja vom Lieferanten definiert werden.
S.a. Ticket 1 in Redmine und fixes #1

9 years agoWechselkurs-Inputfeld bei Debitorenbuchung richtig aufrufen
G. Richardson [Wed, 13 Aug 2014 20:22:58 +0000 (22:22 +0200)]
Wechselkurs-Inputfeld bei Debitorenbuchung richtig aufrufen

Wechselkurs verschwand immer, L.input_tag korrekt aufrufen

9 years agotypo in ustva
Jan Büren [Sun, 24 Aug 2014 09:21:59 +0000 (11:21 +0200)]
typo in ustva

9 years agoPgUpgrade: nicht während eines Upgrades commiten
Sven Schöling [Mon, 18 Aug 2014 09:49:44 +0000 (11:49 +0200)]
PgUpgrade: nicht während eines Upgrades commiten

9 years agoMerge branch 'cvar_partsgroup_filter'
Bernd Bleßmann [Thu, 14 Aug 2014 21:22:21 +0000 (23:22 +0200)]
Merge branch 'cvar_partsgroup_filter'

9 years agochangelog-Eintrag zu neuen Features bei benutzerdefinierten Variablen.
Bernd Bleßmann [Thu, 14 Aug 2014 21:07:12 +0000 (23:07 +0200)]
changelog-Eintrag zu neuen Features bei benutzerdefinierten Variablen.

9 years agoWarengruppen-Filter f. CVars bei Waren
Bernd Blessmann [Wed, 7 Mar 2012 10:57:19 +0000 (11:57 +0100)]
Warengruppen-Filter f. CVars bei Waren

cherry-pick aus Kundenprojekt und Anpassungen an unstable (hauptsächlich
Umstellung auf Controller)

Conflicts:

SL/CVar.pm
SL/DB/CustomVariableConfig.pm
bin/mozilla/amcvar.pl
bin/mozilla/io.pl
templates/webpages/amcvar/display_cvar_config_form.html
templates/webpages/amcvar/render_inputs_block.html

9 years agoPartPicker: Tab Event atomar, visuelles Feedback
Sven Schöling [Thu, 14 Aug 2014 12:20:06 +0000 (14:20 +0200)]
PartPicker: Tab Event atomar, visuelles Feedback

9 years agoNach dem Löschen von einer CVar wieder die Liste des entspr. Moduls anzeigen.
Bernd Bleßmann [Thu, 14 Aug 2014 11:21:11 +0000 (13:21 +0200)]
Nach dem Löschen von einer CVar wieder die Liste des entspr. Moduls anzeigen.

9 years agoSteuerzone - neue Customer/Vendor-Objekte brauchen Steuerzone
G. Richardson [Fri, 8 Aug 2014 11:50:23 +0000 (13:50 +0200)]
Steuerzone - neue Customer/Vendor-Objekte brauchen Steuerzone

Durch den not-NULL Constraint bei Kunden und Lieferanten muß
beim Anlegen eines neuen Objekts nun zwingend die Steuerzone mit
übergeben werden, ähnlich wie bei der Währung.
Dies wurde bei einigen automatischen Tests nachgeholt.

9 years agotest.pl: --fast switch, skippt 001compile und 003safesys
Sven Schöling [Fri, 8 Aug 2014 11:12:24 +0000 (13:12 +0200)]
test.pl: --fast switch, skippt 001compile und 003safesys

9 years agoRechtschreibfehler in RB Druckvorlagen behoben
G. Richardson [Thu, 7 Aug 2014 11:31:24 +0000 (13:31 +0200)]
Rechtschreibfehler in RB Druckvorlagen behoben

9 years agoCsvImport: Bei Imports ohne cvars nicht die cvars klobbern.
Sven Schöling [Tue, 5 Aug 2014 15:58:53 +0000 (17:58 +0200)]
CsvImport: Bei Imports ohne cvars nicht die cvars klobbern.

9 years agoMerge branch 'master' of github.com:kivitendo/kivitendo-erp
Sven Schöling [Thu, 7 Aug 2014 10:11:34 +0000 (12:11 +0200)]
Merge branch 'master' of github.com:kivitendo/kivitendo-erp

9 years agoPartPicker: Im Popup dem letzten Suchstring übernehmen
Sven Schöling [Thu, 7 Aug 2014 10:11:09 +0000 (12:11 +0200)]
PartPicker: Im Popup dem letzten Suchstring übernehmen

9 years agoSpaltenzahl f. benutzerdef. Variablen in Belegen in Benutzereinstellungen ...
Bernd Bleßmann [Tue, 5 Aug 2014 13:09:29 +0000 (15:09 +0200)]
Spaltenzahl f. benutzerdef. Variablen in Belegen in Benutzereinstellungen ...

.. angeben können. Default ist 3.

9 years agoBenutzerdef. Variablen in Belegen als Tabelle rendern ...
Bernd Bleßmann [Mon, 4 Aug 2014 16:14:01 +0000 (18:14 +0200)]
Benutzerdef. Variablen in Belegen als Tabelle rendern ...

... im Moment mit fester Spaltenzahl.

9 years agoBenutzerdef. Variablen f. Waren per Voreinstellung für Belege aktivieren/deaktivieren.
Bernd Bleßmann [Mon, 4 Aug 2014 10:58:59 +0000 (12:58 +0200)]
Benutzerdef. Variablen f. Waren per Voreinstellung für Belege aktivieren/deaktivieren.

9 years agoSteuerzone - korrekter Name von Warenbestand in Template
G. Richardson [Wed, 6 Aug 2014 10:59:21 +0000 (12:59 +0200)]
Steuerzone - korrekter Name von Warenbestand in Template

9 years agoconvert_taxzone - Fall keine Buchungsgruppen berücksichtigen
G. Richardson [Wed, 6 Aug 2014 10:32:23 +0000 (12:32 +0200)]
convert_taxzone - Fall keine Buchungsgruppen berücksichtigen

Für den Fall, daß in dem Mandanten gar keine Buchungsgruppen
konfiguriert sind (z.B. bei einem frischen Schweizer Kontenrahmen), wird
die Umwandlung der Buchungsgruppen übersprungen.

9 years agoSteuerzone - Sortierreihenfolge bei Customer/Vendor
G. Richardson [Wed, 6 Aug 2014 09:01:42 +0000 (11:01 +0200)]
Steuerzone - Sortierreihenfolge bei Customer/Vendor

Sortierreihenfolge im Dropdown bei den Stammdaten einhalten.
Dadurch ist die Steuerzone mit der höchsten Sortierpriorität immer als
Defaults bei neuen Kunden/Lieferanten eingestellt (standardmäßig
Inland).

9 years agoSteuerzone: in Upgrade-Datei customer/vendor angepasst
G. Richardson [Wed, 6 Aug 2014 08:07:46 +0000 (10:07 +0200)]
Steuerzone: in Upgrade-Datei customer/vendor angepasst

Macht man eigentlich nachträglich nicht, aber da das Update noch so
frisch ist...

Beim Umstellen von taxzone wurde vergessen, auch die Einträge der
Standardsteuerzone bei den Kunden und Lieferanten anzupassen. Im Zuge
der Umstellung, wo bei taxzone keine 0 mehr erlaubt ist, und diese auf 4
umgemapped wurde, müssen auch die hinterlegten Daten bei Kunden und
Lieferanten konvertiert werden.
In diesem Schritt wurden dann auch gleich Fremdschlüssel für die
Steuerzone bei Kunden und Lieferanten angelegt.

Ist das Update schon durchgelaufen und muß man manuell nachbessern wären
dies die Schritte (unter der Voraussetzung, daß id 0 auch zu id 4
geworden ist):

UPDATE customer SET taxzone_id=4 WHERE taxzone_id=0;
UPDATE vendor SET taxzone_id=4 WHERE taxzone_id=0;
ALTER TABLE customer ALTER COLUMN taxzone_id DROP default;
ALTER TABLE vendor ALTER COLUMN taxzone_id DROP default;
ALTER TABLE customer ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id);
ALTER TABLE vendor ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id);

9 years agoNachtrag Steuerzone - Tests angepasst
G. Richardson [Wed, 6 Aug 2014 07:13:12 +0000 (09:13 +0200)]
Nachtrag Steuerzone - Tests angepasst

9 years agoTypo-Fix und kleine Verbesserungen in deutscher Übersetzung.
Bernd Bleßmann [Tue, 5 Aug 2014 12:04:34 +0000 (14:04 +0200)]
Typo-Fix und kleine Verbesserungen in deutscher Übersetzung.

9 years agoL.radio_button_tag: id erhalten wenn sie schon vorher gesetzt ist.
Sven Schöling [Tue, 5 Aug 2014 10:52:49 +0000 (12:52 +0200)]
L.radio_button_tag: id erhalten wenn sie schon vorher gesetzt ist.

9 years agoInstallcheck: Version von Archive::Zip korrigiert.
Sven Schöling [Tue, 5 Aug 2014 09:20:27 +0000 (11:20 +0200)]
Installcheck: Version von Archive::Zip korrigiert.

9 years agoCsvImport - Part : Anpassung für neue Steuerzonen
G. Richardson [Mon, 4 Aug 2014 12:19:28 +0000 (14:19 +0200)]
CsvImport - Part : Anpassung für neue Steuerzonen

statt income/expense_accno_id_0 werden jetzt bei importierten
Waren/Dienstleistungen die Konten-IDs der Standardsteuerzone verwendet.
(Wobei die genau ID ja egal ist, wichtig ist, ob etwas gesetzt ist).

9 years agoBuchungsgruppe anlegen/bearbeiten/anzeigen - Logik umgestellt
G. Richardson [Mon, 4 Aug 2014 10:51:35 +0000 (12:51 +0200)]
Buchungsgruppe anlegen/bearbeiten/anzeigen - Logik umgestellt

3 Fälle in Maske berücksichtigen:

* neue BG: Konten-Dropdown mit Standardkonten vorausgewählt
* existierende BG nicht in Benutzung: Konten-Dropdown mit gespeicherten
  Konten vorausgewählt
* existierende BG in Benutzung: gespeicherte Konten als Text anzeigen

9 years agoSteuerzone in price_tax_calculator.t angepasst
G. Richardson [Mon, 4 Aug 2014 10:09:09 +0000 (12:09 +0200)]
Steuerzone in price_tax_calculator.t angepasst

9 years agoNeue Methode orphaned für Buchungsgruppe
G. Richardson [Mon, 4 Aug 2014 10:07:54 +0000 (12:07 +0200)]
Neue Methode orphaned für Buchungsgruppe

Zum Prüfen, ob eine Buchungsgruppe gelöscht oder bearbeitet werden kann.

9 years agoFehlende MetaSetup Dateien für Steuerzonenupdate
G. Richardson [Sun, 3 Aug 2014 23:55:15 +0000 (01:55 +0200)]
Fehlende MetaSetup Dateien für Steuerzonenupdate

9 years agoConsole Shortcut für chart (analog zu part)
G. Richardson [Sun, 3 Aug 2014 23:44:53 +0000 (01:44 +0200)]
Console Shortcut für chart (analog zu part)

9 years agoDB Code für Buchungsgruppe und TaxzoneChart aufgeräumt
G. Richardson [Sun, 3 Aug 2014 23:40:27 +0000 (01:40 +0200)]
DB Code für Buchungsgruppe und TaxzoneChart aufgeräumt

In SL::DB::Manager::Buchungsgruppe die Methoden inventory_accno und
inventory_accno_description entfernt, da hier einfach
inventory_account->accno und inventory_account->description benutzt
werden können.

9 years agoBeim Erfassen von Steuerzonen Standardkonten verwenden
G. Richardson [Sun, 3 Aug 2014 23:35:45 +0000 (01:35 +0200)]
Beim Erfassen von Steuerzonen Standardkonten verwenden

Vorauswahl von Erlös- und Aufwandskonten laut Mandantenkonfiguration.
Im Gegensatz zum Anlegen von Buchungsgruppen kann bei der Steuerzone
kein Bestandskonto konfiguriert werden, da dies nur von der
Buchungsgruppe abhängt.

9 years agoBuchungsgruppen - löschen und beim Erstellen Standardkonten benutzen
G. Richardson [Sun, 3 Aug 2014 23:26:14 +0000 (01:26 +0200)]
Buchungsgruppen - löschen und beim Erstellen Standardkonten benutzen

Wenn eine Buchungsgruppe noch nicht einer Waren zugeordnet ist kann
diese noch bearbeitet (Kontenzuordnung) oder gelöscht werden.

Beim neu Erstellen von Buchungsgruppen werden die Standardkonten aus der
Mandantenkonfiguration (Erlös/Aufwand/Bestand) vorausgewählt.

9 years agoSteuerzone - Default eingeführt (statt id 0)
G. Richardson [Thu, 31 Jul 2014 08:21:02 +0000 (10:21 +0200)]
Steuerzone - Default eingeführt (statt id 0)

Als Defaultsteuerzone gilt nun die Steuerzone mit dem höchsten Sortcode, der
nicht obsolet ist (in der Regel also id 1).

Bernd hatte noch ein paar Stellen gefunden, wo als Default 0 gesetzt wird.
Außerdem Doku angepasst, taxzone_id ist nun nicht mehr im Bereich 0-3.

9 years agoNachtrag zu Steuerzonen: benutzte Klassen mit require einbinden.
Bernd Bleßmann [Fri, 28 Jun 2013 12:21:25 +0000 (14:21 +0200)]
Nachtrag zu Steuerzonen: benutzte Klassen mit require einbinden.

9 years agoSteuerzonenfeature - tags auf Version 3.1.0 anpassen
G. Richardson [Wed, 30 Jul 2014 18:40:40 +0000 (20:40 +0200)]
Steuerzonenfeature - tags auf Version 3.1.0 anpassen

9 years agoChangelog Eintrag für konfigurierbare Steuerzonen
G. Richardson [Wed, 30 Jul 2014 18:39:11 +0000 (20:39 +0200)]
Changelog Eintrag für konfigurierbare Steuerzonen

9 years agoSteuerzonen ungültig machen
G. Richardson [Wed, 30 Jul 2014 18:38:28 +0000 (20:38 +0200)]
Steuerzonen ungültig machen

jede Steuerzone kann man unter "System->Steuerzonen->auf Steuerzone klicken"
individuell auf ungültig (obsolete) setzen.

ungültig heißt:

* Steuerzone erscheint nicht in der großen Buchungsgruppenübersicht
* Steuerzone erscheint nicht im Drop-Down Menü für Steuerzonen bei neuen
  Belegen (Angebot-Rechnung)

Bei alten Belegen, die erneut geöffnet werden, ist leider das Verhalten unterschiedlich:

* bei schon gebuchten EK/VK-Rechnungen (id) ist das Drop-Down ausgegraut und
  disabled und es wird nur die ausgewählte Steuerzone angezeigt -> funktioniert

* bei schon gebuchten Angeboten/Aufträgen müssen immer alle Steuerzonen
  angezeigt werden, da man die Steuerzone auch im Nachhinein ändern kann, aber
  auch alle alten Belege mit mittlerweile ungültigen Steuerzonen korrekt
  angezeigt werden müssen. Man kann also nicht einfach nach id fragen und
  entsprechend nach ungültig filtern.

Bucht man also einen Auftrag mit einer bestimmten Steuerzone, setzt die
Steuerzone auf ungültig, und generiert dann aus dem Auftrag z.B. eine Rechnung,
würde die Steuerzone aus dem Auftrag nicht übernommen werden, sondern die erste
Steuerzone aus der Liste standardmäßig ausgewählt sein.

9 years agoÄnderung von Upgrade-Script change_taxzone_id_0
Niclas Zimmermann [Mon, 9 Sep 2013 15:13:20 +0000 (17:13 +0200)]
Änderung von Upgrade-Script change_taxzone_id_0

Die Tabellen ar und ap werden jetzt auch an den ID-Wechsel angepasst.

Weiterhin werden 2 Fremdschlüssel gesetzt, die durch den Wechsel
aufgefallen sind.

9 years agoSortieren von Steuerzonen in Belegen
Niclas Zimmermann [Thu, 5 Sep 2013 10:09:59 +0000 (12:09 +0200)]
Sortieren von Steuerzonen in Belegen

Die Sortierreihenfolge von Steuerzonen in Belegen wurde bisher noch
nicht in den Belegen berücksichtigt.

9 years agoid ungleich Null setzen in tax_zones
Niclas Zimmermann [Thu, 5 Sep 2013 09:36:36 +0000 (11:36 +0200)]
id ungleich Null setzen in tax_zones

In der Tabelle tax_zones gibt es sehr häufig noch Einträge mit id=0.
Dadurch kommt es bei der Anzeige, und auch beim Bearbeiten dieses
Eintrags zu fehlern. Dieser Commit vergibt verändert den Wert der
id, s.d. die id einen von 0 verschiedenen Wert hat.

9 years agoSteuerzonen und Buchungsgruppen bearbeiten
Niclas Zimmermann [Thu, 18 Jul 2013 12:05:09 +0000 (14:05 +0200)]
Steuerzonen und Buchungsgruppen bearbeiten

Nachdem man Steuerzonen und Buchungsgruppen auf Datenbankebene
bearbeiten kann, ist jetzt auch eine Bearbeitung an der Ober-
fläche möglich.

Alter Code, der für die Anzeige/Bearbeitung/Erstellung von
Buchungsgruppen entwickelt wurde hat nicht mehr funktioniert
und wurde vollständig ersetzt.

9 years agoAuf Datenbankebene Steuerzonen konfigurierbar gemacht
G. Richardson [Tue, 25 Jun 2013 11:10:59 +0000 (13:10 +0200)]
Auf Datenbankebene Steuerzonen konfigurierbar gemacht

Damit können jetzt mehr als die 4 Standardsteuerzonen eingerichtet
werden. Die bisherigen Steuerzonen wurden aus der Tabelle
buchungsgruppen in die neue Tabelle taxzone_charts ausgelagert.

Konzeption siehe Ticket #2295

Es wurden noch keinerlei Veränderungen an der Kivitendo
Benutzeroberfläche durchgeführt, durch dieses Upgrade können die
Buchungsgruppen also nicht mehr konfiguriert werden, dies muß auf
Datenbankebene passieren.

Rose schon angepasst.

Conflicts:

SL/DB/MetaSetup/Buchungsgruppe.pm

9 years agoInstallationcheck: --silent switch um es in shell scripte einzubinden
Sven Schöling [Mon, 4 Aug 2014 11:56:21 +0000 (13:56 +0200)]
Installationcheck: --silent switch um es in shell scripte einzubinden

9 years agoTypo-Fix: Trennzeichen für CVar-Flags ist ':' nicht ';'.
Bernd Bleßmann [Thu, 31 Jul 2014 22:04:34 +0000 (00:04 +0200)]
Typo-Fix: Trennzeichen für CVar-Flags ist ':' nicht ';'.

9 years agoround_amount: Fix für falsches Runden bestimmter Werte
Moritz Bunkus [Wed, 30 Jul 2014 09:32:12 +0000 (11:32 +0200)]
round_amount: Fix für falsches Runden bestimmter Werte

Gewisse Werte wie z.B. 33,675 wurden bei 2 Stellen falsch gerundet,
nämlich auf 33,67 anstelle von 33,68. Bei anderen Werten hingegen
funktionierte es (beispielsweise 149,175 @ 2 → 149,18).

Grund war, dass durch das Addieren von 0.5 wieder Fließkommaberechnung
und damit die Ungenauigkeit der Präsentation der IEEE-Fließkommazahlen
ins Spiel kommt. Das anschließende int() schneidet dann die
Fließkommazahl falsch ab, ungefähr so:

- Initial: 33,675
- Linksshift um 2 Dezimalstellen, also * 100: 3367,5
- Dann + 0.5 und truncate, hier passierts: +0.5 =
  3367,499999999999999999999958 (auch wenn Perl das in der Ausgabe als
  3368 darstellen würde) oder so, davon int() ergibt nun mal 3367 vor
  anschließendem Rechtsshift um 2 Dezimalstellen

Lösung ist, bis auf das Links-/Rechtsshiften um die Dezimalstellen gar
keine Fließkommaberechnung zu verwenden. Eine Variante ist, eine Stelle
mehr zu shiften als man an Genauigkeit will, dann 5 zu addieren und
anschließend auf das nächst kleinere Vielfache von 10 zu
reduzieren (durch simples Abziehen vom Modulo 10).

Um die Logik leicht einfacher zu halten, wird das Vorzeichen anfangs
ermittelt und ab dann nur noch mit dem Absolutwert der Zahl
gerechnet. Das ursprüngliche Vorzeichen wird erst nach dem erneuten
Rechtsshift, also ganz am Schluss der Berechnung, wieder hergestellt.

9 years agoGetModels: Funktion zum Setzen zusätzlicher URL-Parameter
Moritz Bunkus [Mon, 28 Jul 2014 10:04:22 +0000 (12:04 +0200)]
GetModels: Funktion zum Setzen zusätzlicher URL-Parameter

9 years agoL: Eindeutige ids für radio_tag wiederhergestellt.
Sven Schöling [Fri, 25 Jul 2014 13:56:49 +0000 (15:56 +0200)]
L: Eindeutige ids für radio_tag wiederhergestellt.

Die waren in da2fecb453416b3731a896ab6d35e9992be3d9eb kaputtgegangen.

9 years agoVERSION auf unstable gesetzt
G. Richardson [Wed, 23 Jul 2014 08:37:53 +0000 (10:37 +0200)]
VERSION auf unstable gesetzt

9 years agoRevert "POD-Dokumentation aktualisiert"
Jan Büren [Wed, 23 Jul 2014 08:37:50 +0000 (10:37 +0200)]
Revert "POD-Dokumentation aktualisiert"
die methoden werden jetzt generisch generiert.
Doku ist korrekt und aktuell.  My bad.
This reverts commit b04128a335772d4cb9a30b0fde52413796981de0.

9 years agoHTML-Tag richtig schliessen und Kosmetik
Jan Büren [Tue, 22 Jul 2014 16:33:55 +0000 (18:33 +0200)]
HTML-Tag richtig schliessen und Kosmetik

9 years agoStandardmässiges Ein- und Auslagern von Dienstleistungen per Mandantenkonfiguration...
Jan Büren [Tue, 22 Jul 2014 16:30:03 +0000 (18:30 +0200)]
Standardmässiges Ein- und Auslagern von Dienstleistungen per Mandantenkonfiguration eingestellt

9 years agoMandantenkonfiguration erweitert:Dienstleistungen NICHT automatisch Auslagern
Jan Büren [Tue, 22 Jul 2014 10:17:17 +0000 (12:17 +0200)]
Mandantenkonfiguration erweitert:Dienstleistungen NICHT automatisch Auslagern
Standardmässig werden Dienstleistungen wie Waren und Erzeungnisse behandelt und
so auch beim Standard-Auslager-Verfahren. Entsprechend die Mandantenkonfiguration (defaults)
angepasst.

9 years agoPOD-Dokumentation aktualisiert
Jan Büren [Tue, 22 Jul 2014 09:35:33 +0000 (11:35 +0200)]
POD-Dokumentation aktualisiert
get_ Methoden werden nicht mehr einzeln für die Tabelle defaults gesetzt

9 years agoHTML::Util: Tests, und Bugfixes für ein paar Randbedingungen
Sven Schöling [Mon, 21 Jul 2014 09:08:44 +0000 (11:08 +0200)]
HTML::Util: Tests, und Bugfixes für ein paar Randbedingungen

9 years agoHTML::Util: Short circuit ohne $value. Behebt gleichzeitig eine Warnung.
Sven Schöling [Mon, 21 Jul 2014 08:08:44 +0000 (10:08 +0200)]
HTML::Util: Short circuit ohne $value. Behebt gleichzeitig eine Warnung.

9 years agoTests: neue Background Job Klasse auch erwarten
Sven Schöling [Wed, 16 Jul 2014 15:53:53 +0000 (17:53 +0200)]
Tests: neue Background Job Klasse auch erwarten

9 years agoSL::Locale::String: @_ in neue Ref kopieren anstatt \@_
Moritz Bunkus [Tue, 15 Jul 2014 11:11:40 +0000 (13:11 +0200)]
SL::Locale::String: @_ in neue Ref kopieren anstatt \@_

ansonsten verschwinden aus irgend einem Grund alle Elemente außer dem
ersten.

9 years agoHintergrundjob zum Löschen abgelaufener Sessions
Moritz Bunkus [Thu, 10 Jul 2014 07:51:33 +0000 (09:51 +0200)]
Hintergrundjob zum Löschen abgelaufener Sessions

9 years agoCreatePDF-Helfer: Anpassung an API-Änderung SL::Template.*new
Moritz Bunkus [Fri, 4 Jul 2014 11:29:20 +0000 (13:29 +0200)]
CreatePDF-Helfer: Anpassung an API-Änderung SL::Template.*new

9 years agoPreisTaxCalculator: Caching-Abfrage für »keine Positionen« gefixt
Moritz Bunkus [Fri, 4 Jul 2014 08:40:23 +0000 (10:40 +0200)]
PreisTaxCalculator: Caching-Abfrage für »keine Positionen« gefixt

9 years agoKunden-/Lieferantenstammdaten: CVar-Input-Felder mit richtigem Namen versehen
Moritz Bunkus [Fri, 4 Jul 2014 07:03:22 +0000 (09:03 +0200)]
Kunden-/Lieferantenstammdaten: CVar-Input-Felder mit richtigem Namen versehen

Ging leider im Commit »CustomVariables: Verwendung mit RDBO als Writer
implementiert« kaputt, weil außerhalb dieses Templates »var_name«
bereits gesetzt war und somit alle CVar-Input-Felder denselben Namen
bekommen haben.

9 years agoHandle zur LXDebug-Logdatei auch UTF-8 encoden
Moritz Bunkus [Thu, 3 Jul 2014 09:03:01 +0000 (11:03 +0200)]
Handle zur LXDebug-Logdatei auch UTF-8 encoden

9 years agoWenn GREEK CAPITAL LETTER DELTA im Text, dann auch utf8 flaggen.
Sven Schöling [Thu, 3 Jul 2014 08:33:42 +0000 (10:33 +0200)]
Wenn GREEK CAPITAL LETTER DELTA im Text, dann auch utf8 flaggen.

9 years agoWiederkehrende Rechnungen: Variablen für lange Monatsnamen gefixt
Moritz Bunkus [Wed, 2 Jul 2014 07:19:55 +0000 (09:19 +0200)]
Wiederkehrende Rechnungen: Variablen für lange Monatsnamen gefixt

Ging im Commit »Wiederkehrende Rechnungen: Formatierung von
Datumsdruckvariablen über freie Formatstrings« kaputt. Danach waren die
Variablen <%current_month_long%> schlicht leer.

9 years agotask_server: pro Job mit Sprache vom konfiguriert initialisieren
Moritz Bunkus [Wed, 2 Jul 2014 07:18:55 +0000 (09:18 +0200)]
task_server: pro Job mit Sprache vom konfiguriert initialisieren

…und die Systemsprache nur als Fallback nutzen.

Hat in der Praxis vermutlich keinerlei Auswirkung, ist aber die
Implementation, wie sie sein sollte.

9 years agoLXDebug::log_time: Differenz zum letzten Aufruf in ms mit ausgeben
Moritz Bunkus [Tue, 1 Jul 2014 12:05:44 +0000 (14:05 +0200)]
LXDebug::log_time: Differenz zum letzten Aufruf in ms mit ausgeben

9 years agoDruckvorbereitung: Lieferschein-Model mit richtigem Primärattribut laden
Moritz Bunkus [Tue, 1 Jul 2014 07:59:52 +0000 (09:59 +0200)]
Druckvorbereitung: Lieferschein-Model mit richtigem Primärattribut laden

Das ging im Commit »Einkauf/Verkauf: Lieferadressenfelder nie aus
Stammdaten vorbelegen« kaputt.

9 years agoSL::DB::(Delivery)Order,(Purchase)Invoice: Aliase »add_items«
Moritz Bunkus [Tue, 1 Jul 2014 07:37:33 +0000 (09:37 +0200)]
SL::DB::(Delivery)Order,(Purchase)Invoice: Aliase »add_items«

Die Relationships für die Positionen heißen in allen Klassen
unterschiedlich. Daher gibt es schon seit Längerem den Alias »items« in
allen Klassen.

Das Hinzufügen von Positionen hingegen erforderte bisher, dass man den
Namen der Relationship kennt, z.B. für Invoice:
$obj->add_invoiceitems. Um das zu Vereinfachen: neuer Alias »add_items«
in allen vier Klassen.

9 years agoAufträge bei Anzeige der Lieferungen in Kundenstammdaten richtig zuordnen.
Bernd Bleßmann [Mon, 30 Jun 2014 13:35:41 +0000 (15:35 +0200)]
Aufträge bei Anzeige der Lieferungen in Kundenstammdaten richtig zuordnen.

Und richtigen Beleg (VK/EK) öffnen.

Behebt #2467.

9 years agoHinweis von Sven format_amount hat nichts in Template Verzweigung zu suchen.
Jan Büren [Mon, 30 Jun 2014 11:51:53 +0000 (13:51 +0200)]
Hinweis von Sven format_amount hat nichts in Template Verzweigung zu suchen.
Keine Ahnung warum mein Test am Freitag, dass nicht korrekt evaluiert hat.
Wahrscheinlich ist qty undef. Es reicht hier aber auch aus, einfach zu prüfen, ob
es sich um einen oder mehrere Einträge in STOCK_INFO handelt.

9 years agoHinweis von Sven format_amount hat nichts in Template Verzweigung zu suchen.
Jan Büren [Mon, 30 Jun 2014 11:42:59 +0000 (13:42 +0200)]
Hinweis von Sven format_amount hat nichts in Template Verzweigung zu suchen.
Keine Ahnung warum mein Test am Freitag, dass nicht korrekt evaluiert hat.
Wahrscheinlich ist qty undef. Es reicht hier auch aus, einfach zu prüfen, ob
es sich um einen oder mehrere Einträge in STOCK_INFO handelt

9 years agoDB-Trigger, um sicher zu stellen, dass ein Lagerplatz auch zum Lager gehört.
Bernd Bleßmann [Mon, 30 Jun 2014 09:14:45 +0000 (11:14 +0200)]
DB-Trigger, um sicher zu stellen, dass ein Lagerplatz auch zum Lager gehört.

Betrifft #2485.

9 years agoMerge branch 'master' of github.com:kivitendo/kivitendo-erp
Jan Büren [Fri, 27 Jun 2014 11:48:32 +0000 (13:48 +0200)]
Merge branch 'master' of github.com:kivitendo/kivitendo-erp

9 years agoEinkaufslieferschein, Einlagern mit mehreren Lagern verbessert
Jan Büren [Fri, 27 Jun 2014 11:45:43 +0000 (13:45 +0200)]
Einkaufslieferschein, Einlagern mit mehreren Lagern verbessert
Mehrfaches Aufrufen vom Fragezeichen Einlagern-Knopf, bzw. Erneuern der Posititonseinlagermaske
hat die Zuordnung zu Lager -> Lagerplatz fehlerhaft gesetzt, falls ein Standardlagerplatz in
den Stammdaten gesetzt war.
Details s.a. Ticket: 2485

9 years agoUStVA: Position 47 in Summe 53 mit aufnehmen
Sven Schöling [Thu, 26 Jun 2014 14:29:34 +0000 (16:29 +0200)]
UStVA: Position 47 in Summe 53 mit aufnehmen

9 years ago2 Warnungen in den Tests beseitigen
Sven Schöling [Thu, 26 Jun 2014 13:10:08 +0000 (15:10 +0200)]
2 Warnungen in den Tests beseitigen

9 years agoLieferadresse eingeben: Möglichkeit zum Kopieren aus Stammdaten
Moritz Bunkus [Thu, 26 Jun 2014 08:19:45 +0000 (10:19 +0200)]
Lieferadresse eingeben: Möglichkeit zum Kopieren aus Stammdaten

Im Dialog für die Eingabe einer individuellen Lieferanschrift gibt es
nun die Möglichkeit, die Felder aus den Stammdaten des
Kunden/Lieferanten vorzubelegen. Dabei werden sowohl die
Rechnungsadresse als auch alle Lieferadressen angeboten.

Ist beim Abschicken in mindestens einem Feld etwas eingetragen, so wird
eine eventuell vorher ausgewählte shipto_id abgewählt, ansonsten
beibehalten.

Was momentan noch nicht angeboten wird, ist die Firmenadresse aus den
Mandantendaten, weil hier das Adressfeld leider nicht nach Straße,
Postleitzahl, Ort aufgeteilt ist. Ansonsten wäre das für Einkaufsbelege
sinnvoll.

9 years agoVerkauf: leeren Eintrag in Lieferadressendropdown klarer benennen
Moritz Bunkus [Thu, 26 Jun 2014 07:32:56 +0000 (09:32 +0200)]
Verkauf: leeren Eintrag in Lieferadressendropdown klarer benennen

Angezeigt wird nun »Keine/individuelle Lieferadresse«, um es den
Benutzern klarer zu machen, dass die über den Button »Lieferadresse«
eingetragene Lieferadresse greift.

9 years agoEinkauf/Verkauf: Lieferadressenfelder nie aus Stammdaten vorbelegen
Moritz Bunkus [Thu, 26 Jun 2014 07:12:38 +0000 (09:12 +0200)]
Einkauf/Verkauf: Lieferadressenfelder nie aus Stammdaten vorbelegen

Das neue Verhalten ist wie folgt:

- Weder die shipto_id (die Drop-Down-Box in den Belegmasken) noch die
  individuellen shipto*-Felder werden weder beim Neuanlegen eines
  Beleges noch bei Wechsel des Kunden aus den Datenbanken belegt.

- Beim Ausdruck werden die shipto*-Felder nicht mehr aus der
  Mandantenkonfiguration vorbelegt, wenn keine Lieferadresse gesetzt
  ist.

- Beim Ausdruck werden die shipto*-Felder mit den Daten aus den
  Kundenstammdaten belegt, wenn die shipto_id (die Drop-Down-Box in den
  Belegmasken) gesetzt ist.

Die ursprüngliche Intention war, möglichst viele Fälle abzudecken. Ganz
ursprünglich war es nämlich in den Druckvorlagen gar nicht möglich,
Kontrollstrukturen zu benutzen und damit die Ausgabe konditional zu
steuern. Es konnte also rein in den Druckvorlagen nicht unterschieden
werden zwischen »der Benutzer hat keine Lieferadresse eingegeben« und
»der Benutzer hat eine eingegeben oder ausgewählt«.

Daher wurde die ganze Logik immer im Perl-Code abgehandelt.

Das macht aber erhebliche Probleme für den Benutzer, für den es absolut
intransparent ist, wann welche Lieferadresse wie vorbelegt wird. Hinzu
kommt, dass in den Belegmasken nicht ersichtlich ist, dass eine
individuelle Lieferadresse eingetragen wurde.

Hinzu kommt, dass die Druckvorlagen inzwischen verschiedene Mechanismen
zur Verfügung haben, um Fallunterscheidungen zu treffen (z.B. die
kivitendo-Mechanismen $(if shipto…)$ oder die LaTeX-eigenen
\IfThenElse{\equal{$(shipto…)$}{…}}}…). Leider war es mit dem vorherigen
Code für die Druckvorlagen nicht mehr möglich festzustellen, ob der
Benutzer nun eine Lieferadresse eingegeben hat oder nicht.

Die neue Situation ist recht einfach:

Steht in »shiptoname« oder »shiptostreet« ein nicht leerer Wert, so ist
eine Lieferadresse vorhanden, ansonsten nicht.

Für die »nicht«-Fall kann dann jede Vorlage selber entscheiden, was zu
tun ist. Für Vorlagen im Verkaufsbereich sinnvollerweise gar keine
Lieferadresse ausgeben (oder einfach die Lieferadresse aus den
Kundenrechnungsdaten), für Vorlagen im Einkaufsbereich ebenfalls keine
Lieferadresse oder die Adresse aus der Mandantenkonfiguration.

Behebt #2345, #2400.

9 years agoDateTime: (add|subtract)_businessdays Funktionen
Sven Schöling [Wed, 25 Jun 2014 14:20:01 +0000 (16:20 +0200)]
DateTime: (add|subtract)_businessdays Funktionen

9 years agoRundungsfehler bei periodischen Rechnungen mit Einzelpreisen ...
Bernd Bleßmann [Wed, 25 Jun 2014 11:59:41 +0000 (13:59 +0200)]
Rundungsfehler bei periodischen Rechnungen mit Einzelpreisen ...

... mit einer Nachkommastelle und Rabatt behoben.

siehe auch commit a22b8118e0bd68acac8a2d7b02a2d4f9fd0eaff1

Zudem einen Test dazu angelegt. Allerdings weicht die Art, wie der
PriceTaxCalculator und die Beleg-Masken rechnen, von einander ab.
Da müsste nochmal geprüft werden, was die richtige Art ist
(erst Rabatt abziehen und dann runden,
oder gerundeten Rabatt abziehen und wieder runden).
Auch beim Errechnen des Amounts gibt es unterschiede
(netamount * (1+Steuersatz),
oder aufsummieren).

9 years agoFollowUp(Access)-Rose-Models: sinnvollere Namen für Relationships
Moritz Bunkus [Wed, 25 Jun 2014 09:50:22 +0000 (11:50 +0200)]
FollowUp(Access)-Rose-Models: sinnvollere Namen für Relationships

9 years agorose_auto_create_model.pl: Relationship-Namen anhand der Spaltennamen mappen
Moritz Bunkus [Wed, 25 Jun 2014 09:31:34 +0000 (11:31 +0200)]
rose_auto_create_model.pl: Relationship-Namen anhand der Spaltennamen mappen

Bisher wurde das Umbenennen der generierten Relationships anhand des von
Rose vergebenen Namens der Relationship vorgenommen. Das ist
problematisch, weil diese wiederum von der Reihenfolge abhängen, in der
die Fremdschlüsseldefinitionen von der Datenbank zurückgeliefert werden.

Konkretes Beispiel: Tabelle »follow_up_access« mit den Spalten »who« und
»what«, die beide Fremdschlüssel auf employee sind.

Rose benennt die erzeugten Relationships nach dem Klassennamen
derjenigen Tabelle, auf die die Schlüssel verweisen. Tabelle »employee«
→ Klasse »SL::DB::Employee« → Default-Relationshipname »employee«.

Die erste von der Datenbank gemeldete Fremdschlüsseldefinition bekommt
nun den Namen »employee«. Die zweite sollte diesen ebenfalls bekommen,
aber da der schon vergeben ist, bekommt sie das Suffix »_obj«, ergo
»employee_obj«. Soweit, so gut. Ändert sich nun aber die Reihenfolge, so
werden die Namen genau umgekehrt herum vergeben.

Die Umbenennung anhand des Tripels <Domäne, Tabelle, Spaltennamen>
hingegen ist immer eindeutig.

9 years agoKunden-/Lieferantenstammdaten: Maps-Link mit Firmenadresse als Routing-Ausgang
Moritz Bunkus [Wed, 25 Jun 2014 07:57:43 +0000 (09:57 +0200)]
Kunden-/Lieferantenstammdaten: Maps-Link mit Firmenadresse als Routing-Ausgang

9 years agoSpaltentyp Text anstelle von varchar() in diversen Tabellen Teil 3
Moritz Bunkus [Wed, 25 Jun 2014 07:32:00 +0000 (09:32 +0200)]
Spaltentyp Text anstelle von varchar() in diversen Tabellen Teil 3

9 years agoKunden-/Lieferantenstammdaten: Beschränkungen für Feldlängen entfernt
Moritz Bunkus [Wed, 25 Jun 2014 07:02:31 +0000 (09:02 +0200)]
Kunden-/Lieferantenstammdaten: Beschränkungen für Feldlängen entfernt

…da die Datenbankspalten inzwischen alle vom Typ TEXT und nicht mehr
VARCHAR sind.

9 years agoSpaltentyp Text anstelle von varchar() in diversen Tabellen Teil 2
Moritz Bunkus [Wed, 25 Jun 2014 07:01:13 +0000 (09:01 +0200)]
Spaltentyp Text anstelle von varchar() in diversen Tabellen Teil 2

Tabelle »shipto«