kivitendo-erp.git
8 years agoDeliveryPlan: optional auch mit verlinkten Positionen suchen.
Bernd Bleßmann [Fri, 26 Feb 2016 11:02:30 +0000 (12:02 +0100)]
DeliveryPlan: optional auch mit verlinkten Positionen suchen.

8 years agoPflichtenheft: keine Fehlermeldung »template not found« bei Click auf »Abschnitte«
Moritz Bunkus [Wed, 2 Mar 2016 09:26:05 +0000 (10:26 +0100)]
Pflichtenheft: keine Fehlermeldung »template not found« bei Click auf »Abschnitte«

8 years agoNeue Chart Methode new_chart_valid
G. Richardson [Tue, 1 Mar 2016 16:21:27 +0000 (17:21 +0100)]
Neue Chart Methode new_chart_valid

die prüft, ob es für das Konto ein Folgekonto gibt, und ob das aktuelle
Tagesdatum >= dem Folgedatum ist, d.h. ob eigentlich das Folgekonto
benutzt werden soll. Diese Abfrage war bisher allerdings kaputt und wird
wahrscheinlich auch nirgends sinnvoll genutzt.

8 years agoRefactoring von orphaned in AM get_account
G. Richardson [Tue, 1 Mar 2016 16:20:37 +0000 (17:20 +0100)]
Refactoring von orphaned in AM get_account

8 years agoSL::DB::Chart - Refactoring der Transaktionsmethoden
G. Richardson [Tue, 1 Mar 2016 14:23:46 +0000 (15:23 +0100)]
SL::DB::Chart - Refactoring der Transaktionsmethoden

... der Methoden number_of_transactions und has_transaction.
Machen fast das Gleiche, aber has_transaction liefert nur 0 oder 1
zurück, und ist schneller.

8 years agoDebitorenbuchungen als CSV importieren
G. Richardson [Mon, 29 Feb 2016 10:56:49 +0000 (11:56 +0100)]
Debitorenbuchungen als CSV importieren

Ähnlich wie der Auftragsimport wird hier gemultiplexed, d.h. es gibt separate
Zeilen für die Debitorenbuchung (ar) und die Buchungszeilen (acc_trans).

Es handelt sich allerdings nicht exakt um acc_trans-Zeilen, die direkt
als acc_trans Objekte importiert werden, sondern es können die gleichen
Informationen wie bei der Debitorenbuchung übergeben werden, also Konto,
Betrag, Steuerschlüssel und Projekt, und daraus werden dann die
acc_trans-Zeilen generiert, inklusive Steuerautomatik.

Das Forderungskonto muß in der Rechnungszeile übergeben werden, der Betrag wird
dann anhand der Buchungszeilen bestimmt.

Beispiel für Import-Format (siehe auch mehr Beispiele in t/controllers/csvimport/artransactions.t)

datatype,customer_id,taxzone_id,currency_id,invnumber,taxincluded,archart
datatype,accno,amount,taxkey
"Rechnung",960,4,1,"invoice",f,1400
"AccTransaction",8400,159.48,3

8 years agoNeue Methoden um Debitorenbuchungen zu erstellen
G. Richardson [Mon, 29 Feb 2016 10:56:43 +0000 (11:56 +0100)]
Neue Methoden um Debitorenbuchungen zu erstellen

Vorbereitung für Debitorenbuchungsimport, neue Methoden für SL::DB::Invoice
Objekte:

add_ar_amount_row - Erlösbuchungen hinzufügen, mit Steuerschlüssel
create_ar_row -  acc-trans für Forderung hinzufügen
validate_acc_trans - Prüfen ob alle acc_trans-Einträge aufgehen
recalculate_amount - anhand acc_trans-Zeilen amount und netamount berechnen

8 years agoTypos und in SL/DB/Invoice.pm
G. Richardson [Mon, 29 Feb 2016 10:56:26 +0000 (11:56 +0100)]
Typos und in SL/DB/Invoice.pm

8 years agopost in SL::DB::Invoice funktioniert nur für Verkaufsrechnungen
G. Richardson [Mon, 29 Feb 2016 10:56:17 +0000 (11:56 +0100)]
post in SL::DB::Invoice funktioniert nur für Verkaufsrechnungen

Abbruch, wenn post bei einer Debitorenbuchung aufgerufen wird.

8 years agoAuftragsimport - Methoden ausgelagert
G. Richardson [Mon, 29 Feb 2016 10:55:50 +0000 (11:55 +0100)]
Auftragsimport - Methoden ausgelagert

für Prüfung von Abteilung, Projekt, Bearbeiter und Verkäufer

Vorbereitung für Debitorenbuchungsimport

8 years agoStandardforderungskonto und Verbindlichkeitskonto in Mandantenkonfiguration
G. Richardson [Mon, 29 Feb 2016 10:55:43 +0000 (11:55 +0100)]
Standardforderungskonto und Verbindlichkeitskonto in Mandantenkonfiguration

Dort kann man in Zukunft angeben, welche Konten vorausgewählt sein
sollen.
Wird allerdings noch nicht in den Masken benutzt.

8 years agoPayment Helper - Methode transactions wieder entfernt
G. Richardson [Mon, 29 Feb 2016 10:55:27 +0000 (11:55 +0100)]
Payment Helper - Methode transactions wieder entfernt

Es gibt schon eine Relationship transactions in SL::DB::Invoice und
SL::DB::PurchaseInvoice. Diese wird ansonsten überschrieben, und dann
kann man auch keine AccTransaction Objekte mehr zu Rechnungsobjekten
hinzufügen.

8 years ago4. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist(2)
Martin Helmling mh@waldpark.octosoft.eu [Mon, 29 Feb 2016 14:49:07 +0000 (15:49 +0100)]
4. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist(2)

fixup: Zu viel des Guten (patch hat falsch einsortiert)

8 years ago4. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist
Martin Helmling mh@waldpark.octosoft.eu [Mon, 29 Feb 2016 09:17:12 +0000 (10:17 +0100)]
4. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist

An einigen Stellen wird nach dem Speichern nicht neu gelesen,
sondern die alten Forms-Variablen zum Aufbau der Webseite verwendet, z.B. "Auslagern".

Deshalb wird $form->lastmtime nun nach jedem Speichern aktualisiert.

8 years agorp/report: Vorbelegung des freien Zeitraums - javascript Fixes
Sven Schöling [Fri, 26 Feb 2016 16:57:15 +0000 (17:57 +0100)]
rp/report: Vorbelegung des freien Zeitraums - javascript Fixes

8 years ago5.14 Abhängigkeit im DefaultManager ist unnötig
Sven Schöling [Fri, 26 Feb 2016 15:59:41 +0000 (16:59 +0100)]
5.14 Abhängigkeit im DefaultManager ist unnötig

8 years agoReportGenerator-Helper: (wiederholten) Export bei "Zurück" verhindern.
Bernd Bleßmann [Fri, 26 Feb 2016 10:59:03 +0000 (11:59 +0100)]
ReportGenerator-Helper: (wiederholten) Export bei "Zurück" verhindern.

Dazu export-actions nach Aufruf aus form löschen. Da die form-Variablen als
hidden in die Options-Maske übergeben werden, war auch immer die
export-action dabei. Drückte man "Zurück", dann waren beiden actions (für export
und für back) in form und es passierte manchmal, dass der Export (download)
erneut ausgeführt wurde.

Zum Nachstellen: Bei einem Controller mit Export-Möglichkeit den Export aufrufen
und "Zurück" drücken (evtl. wiederholen). Irgenwann wird statt zurückzugehen
doch exportiert.

8 years agoPDF::Table - einige undefined warnings gefixt
Sven Schöling [Fri, 26 Feb 2016 09:19:28 +0000 (10:19 +0100)]
PDF::Table - einige undefined warnings gefixt

8 years agoPDF::Table: Warnungen und "-" Artefakte bei undef entfernt
Sven Schöling [Thu, 25 Feb 2016 17:59:45 +0000 (18:59 +0100)]
PDF::Table: Warnungen und "-" Artefakte bei undef entfernt

8 years agoPDF::Table: Zusätzliche header richtigrum anzeigen
Sven Schöling [Thu, 25 Feb 2016 17:54:44 +0000 (18:54 +0100)]
PDF::Table: Zusätzliche header richtigrum anzeigen

8 years agoPDF::Table: Prop Index korrekt indizieren
Sven Schöling [Thu, 25 Feb 2016 17:25:44 +0000 (18:25 +0100)]
PDF::Table: Prop Index korrekt indizieren

8 years agoPDF::Table: Proportional skalieren statt adaptiv
Sven Schöling [Thu, 25 Feb 2016 17:03:12 +0000 (18:03 +0100)]
PDF::Table: Proportional skalieren statt adaptiv

8 years agoPDF::Table: Rahmen bei umgebrochenen Zeilen in der korrekten Länge zeichnen.
Sven Schöling [Thu, 25 Feb 2016 15:38:41 +0000 (16:38 +0100)]
PDF::Table: Rahmen bei umgebrochenen Zeilen in der korrekten Länge zeichnen.

8 years agoEndlosschleife im PDF-Tabellenmodul und damit im PDF-Export gefixt
Sven Schöling [Thu, 25 Feb 2016 14:51:05 +0000 (15:51 +0100)]
Endlosschleife im PDF-Tabellenmodul und damit im PDF-Export gefixt

Wenn die Tabelle zu breit wird und dann irgendwann nicht einmal mehr ein
Wort in eine Zeile passt, dann muss das Wort trotzdem gesetzt werden;
andernfalls würde das PDF::Table-Modul in einer Endlosschleife enden.

Fix für Bug 863.

Reimplementiert commit 23223ef4302931a6a141c659bfda7ef6c7546b77

8 years agoReportGenerator: Unterstützung für das Verbinden von Tabellenzellen mit dem "colspan...
Sven Schöling [Thu, 25 Feb 2016 14:44:34 +0000 (15:44 +0100)]
ReportGenerator: Unterstützung für das Verbinden von Tabellenzellen mit dem "colspan"-Attribut in der PDF-Ausgabe.

Reimplementiert a18cc3f5dedae1c8b541b10df3b67153518663a6

8 years agoReportGenerator: Unterstützung für mehrzeilige und individuell festgelegte Tabellenkö...
Sven Schöling [Thu, 25 Feb 2016 13:14:02 +0000 (14:14 +0100)]
ReportGenerator: Unterstützung für mehrzeilige und individuell festgelegte Tabellenköpfe/Spaltenüberschriften implementiert.

Reimplementiert den PDF/Table.pm Teil von 84ba8214f6f1e68de5fa317b8239a7888a4aac03

8 years agoUnterstützung für zellenübergreifende Überschriften im PDF-Export des ReportGenerator...
Sven Schöling [Thu, 25 Feb 2016 10:41:47 +0000 (11:41 +0100)]
Unterstützung für zellenübergreifende Überschriften im PDF-Export des ReportGenerators verbessert.

Reimplementation von d3897394

8 years agoPDF::Table update auf aktuelle Version aus git
Sven Schöling [Thu, 25 Feb 2016 10:11:45 +0000 (11:11 +0100)]
PDF::Table update auf aktuelle Version aus git

cpan speist sich aus https://github.com/kamenov/PDF-Table

Diese hier ist aktuell aus Commit 5a9f499

8 years agoHistory-Popup: callback übergeben, damit Sortierung funktioniert.
Bernd Bleßmann [Wed, 24 Feb 2016 15:50:16 +0000 (16:50 +0100)]
History-Popup: callback übergeben, damit Sortierung funktioniert.

Behebt #136 (redmine).

8 years agoRevert "Warnung in regex eliminiert"
Sven Schöling [Tue, 23 Feb 2016 10:01:32 +0000 (11:01 +0100)]
Revert "Warnung in regex eliminiert"

This reverts commit 5ba69d08849773c459086a0f96484046a845159e.

Was auch immer Du da machen wolltest martin, ein .*? in ein .+ umwandeln
ist garantiert Blödsinn.

8 years agoWarnung in regex eliminiert
Martin Helmling mh@waldpark.octosoft.eu [Tue, 23 Feb 2016 08:51:26 +0000 (09:51 +0100)]
Warnung in regex eliminiert

Folgende Meldung:
Useless use of greediness modifier '?' in regex; marked by <-- HERE in m/(\b\S{60}? <-- HERE )(\S.*?\b)/ at modules/override/PDF/Table.pm line 334.

Das .*? ersetzt durch .+

8 years agoTextanpassung und Saubere Linie bei Multiselect
Martin Helmling mh@waldpark.octosoft.eu [Tue, 23 Feb 2016 08:41:36 +0000 (09:41 +0100)]
Textanpassung und Saubere Linie bei Multiselect

Im Artikelselektor bei Multiselect besseren Titel, je nachdem ob multiselect an ist oder nicht.
Auch die horizontale Linie über alle Spalten,
wenn long_description in der Mandanntenkonfig gesetzt ist.

8 years agoStylesheet aus DefaultManager holen
Sven Schöling [Mon, 22 Feb 2016 15:40:33 +0000 (16:40 +0100)]
Stylesheet aus DefaultManager holen

Damit, und dem logo commit von eben, kann man das Aussehen der
Loginmaske personalisieren indem man ein Company css anglegt, und einen
Mini DefaultManager dazu baut, der einfach nur eine Funktion enthält:

  sub stylesheet { 'company.css' }

und das dann in der Config der jeweiligen Installation benutzt:

  [system]

  default_manager = company

Da sowohl css, als auch Defaultmanager nicht im Standard sind, ist damit
das erste mal möglich das Programm umzubranden ohne ständig
Codeänderungen beim rebase mitmergen zu müssen.

Und nun bleibt mir vom Leib mit eurem Mist.

8 years agoKlasse für das Kivitendo Logo
Sven Schöling [Mon, 22 Feb 2016 15:08:16 +0000 (16:08 +0100)]
Klasse für das Kivitendo Logo

Weil immer wieder Leute meinen Sie müssen das Programm mit Ihrem
Firmenlogo versehen (was nur natürlich ist, schließlich macht man das
auch mit Windows, Word, Excel, Outlook, Firefox und all den anderen
Programmen die man täglich so benutzt, damit man genau ein Icon 26x auf
dem Desktop liegen hat) hat das Logo jetzt eine Klasse damit man es in
einem Custom CSS ändern kann. Beispiel:

  img.kivitendo-logo {
    display: inline-block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: url(../../image/<new_logo.png>) no-repeat;
    height: 183px;       /* Höhe des neuen Logos */
    width: 356px;        /* Breite des neuen Logos */
    padding-left: 356px; /* Breite des neuen Logos */
  }

8 years agoFreies Fälligkeitsdatum: richtige Variable an Berechnungsroutine weiterreichen
Moritz Bunkus [Mon, 22 Feb 2016 10:56:14 +0000 (11:56 +0100)]
Freies Fälligkeitsdatum: richtige Variable an Berechnungsroutine weiterreichen

Die Berechnungsroutine nutzt ein gesetztes Fälligkeitsdatum, wenn eine
freie Festlegung des Datums gewünscht ist. Leider heißt das Feld in der
Form »duedate« und nicht »due_due«. Der Effekt war, dass die
Berechnungsroutine dachte, es wäre kein Fälligkeitsdatum
gesetzt. Dadurch wurde in der Maske bei einem freien Fälligkeitsdatum
immer das Rechnungsdatum verwendet.

8 years agoSornorechnungen löschen können
Moritz Bunkus [Mon, 22 Feb 2016 10:45:18 +0000 (11:45 +0100)]
Sornorechnungen löschen können

Stornorechnungen (Rechnungsnummern »Storno zu 12345«), nicht aber
stornierte Rechnung (Rechnungsnummer »12345«), sollten vom Frontend her
löschbar sein, sofern die Mandantenkonfiguration dies
zulässt. Andernfalls hätte man keine Chance, eine fälschlicherweise
stornierte Rechnung wieder zu ent-stornieren.

Der Backendcode kann Stornorechnungen bereits seit langem richtig
löschen. Dadurch wird die stornierte Rechnung auch automatisch wieder
geöffnet.

8 years agoRechnungen: Sicherheitsnachfrage vor Stornierung
Moritz Bunkus [Mon, 22 Feb 2016 09:27:25 +0000 (10:27 +0100)]
Rechnungen: Sicherheitsnachfrage vor Stornierung

8 years agoAngebote/Aufträge: Beim "als neu Speichern" Wechselkurs richtig übernehmen.
Bernd Bleßmann [Fri, 19 Feb 2016 11:38:56 +0000 (12:38 +0100)]
Angebote/Aufträge: Beim "als neu Speichern" Wechselkurs richtig übernehmen.

Vorher ging die Formatierung kaputt, wenn zum aktuellen Datum (das des neuen
Belegs) noch kein Wechselkurs hinterlegt war.

Generell ist hier die Handhabung schlecht, denn man kann beim
"als neu Speichern" keinen neuen Wechselkurs eingeben, falls für den aktuellen
Tag noch keiner hinterlegt ist, sondern es wird der des alten Belegs
gespeichert.

Gleiches gilt beim Speichern des Belegs mit neuem Datum.

8 years agoselect_item für Erzeugnisse auch Langtext anzeigen, falls aktiviert
Jan Büren [Thu, 18 Feb 2016 13:44:15 +0000 (14:44 +0100)]
select_item für Erzeugnisse auch Langtext anzeigen, falls aktiviert

8 years agoFlash-Template Macro immer per INCLUDE dazunehmen
Martin Helmling mh@waldpark.octosoft.eu [Wed, 17 Feb 2016 13:55:54 +0000 (14:55 +0100)]
Flash-Template Macro immer per INCLUDE dazunehmen

Bei PROCESS bleiben Macro variable "typ", "title" und "message" für den Rest
des Templates gesetzt, bzw überschreiben gesetzte Template Variable,

aufgefallen z.B in ic/form_header.html :
Dort gibt es die HIDDEN Variable "title",
die dann vom Macro beim letzen Durchlauf auf Ok bzw (Übersetzung von Ok) gesetzt wird

Es gibt noch ein paar mehr template files (7), in denen PROCESS verwendet wird,
ob es dort Auswirkungen hat ist noch zu prüfen

8 years agoLieferadresse: Falsche Stadt wird angezeigt
Martin Helmling mh@waldpark.octosoft.eu [Wed, 17 Feb 2016 13:32:57 +0000 (14:32 +0100)]
Lieferadresse: Falsche Stadt wird angezeigt

Beim Öffnen der Lieferadresse wird eine falsche Stadt angezeigt (PLZ+Stadt)

Hier wird die Forms Variable "city" durch das Template in der Loop zum Lieferadressen-Erzeugen
verändert: Globale Varibale in Template.

Durch Umbenennen Behoben

8 years agoStammdaten->Berichte->Kunden/Lieferanten: Straße u. PLZ auch in Lieferadressen suchen
Bernd Bleßmann [Fri, 12 Feb 2016 16:58:36 +0000 (17:58 +0100)]
Stammdaten->Berichte->Kunden/Lieferanten: Straße u. PLZ auch in Lieferadressen suchen

So, wie es die Bezeichung auch suggeriert.

8 years agoStammdaten->Berichte->Kunden/Lieferanten: Filternamen deutlicher übersetzt
Bernd Bleßmann [Fri, 12 Feb 2016 16:36:20 +0000 (17:36 +0100)]
Stammdaten->Berichte->Kunden/Lieferanten: Filternamen deutlicher übersetzt

8 years agoKosmetik
Bernd Bleßmann [Fri, 12 Feb 2016 16:33:55 +0000 (17:33 +0100)]
Kosmetik

8 years agoStammdaten->Berichte->Kunden/Lieferanten: Sucheinstellungen richtig anzeigen.
Bernd Bleßmann [Fri, 12 Feb 2016 16:31:41 +0000 (17:31 +0100)]
Stammdaten->Berichte->Kunden/Lieferanten: Sucheinstellungen richtig anzeigen.

Für Postleitzahl, Straße und Land waren die Variablennamen nicht richtig.

8 years agoGLN: changelog und Doku
Bernd Bleßmann [Fri, 12 Feb 2016 16:03:35 +0000 (17:03 +0100)]
GLN: changelog und Doku

8 years agoGLN: CsvImport Kunden u. Lieferanten und Lieferadressen.
Bernd Bleßmann [Fri, 12 Feb 2016 15:47:50 +0000 (16:47 +0100)]
GLN: CsvImport Kunden u. Lieferanten und Lieferadressen.

8 years agoGLN: In Bericht Kunden/Lieferanten anzeigen und danach suchen können.
Bernd Bleßmann [Fri, 12 Feb 2016 15:25:40 +0000 (16:25 +0100)]
GLN: In Bericht Kunden/Lieferanten anzeigen und danach suchen können.

8 years agoGLN: Berücksichtigung in Belegmasken
Bernd Bleßmann [Thu, 11 Feb 2016 22:02:25 +0000 (23:02 +0100)]
GLN: Berücksichtigung in Belegmasken

8 years agoGLN: Speichern und Anzeigen in den Stammdaten (Rechnungs- u. Lieferadressen).
Bernd Bleßmann [Thu, 11 Feb 2016 21:57:46 +0000 (22:57 +0100)]
GLN: Speichern und Anzeigen in den Stammdaten (Rechnungs- u. Lieferadressen).

8 years agoGLN: neue Spalte bei customer, vendor und shipto; DB-Upgrade-Skript u. Rose
Bernd Bleßmann [Thu, 11 Feb 2016 21:56:03 +0000 (22:56 +0100)]
GLN: neue Spalte bei customer, vendor und shipto; DB-Upgrade-Skript u. Rose

8 years agoSuSa Abteilungsauswahl liefert SQL-Fehler
Jan Büren [Fri, 12 Feb 2016 12:40:09 +0000 (13:40 +0100)]
SuSa Abteilungsauswahl liefert SQL-Fehler

Im Nachgang zu b8fee3fc (dpt_trans aus RP.pm entfernen) - Vergessene
dpt_where weiter entfernt, sodass die SuSa nach Abteilungsauswahl
wieder geht.
Getestet mit Soll- und Ist-Haken bei SuSa

8 years agobehebt #123 Ist-Versterungs-Auswahl für SuSa
Jan Büren [Fri, 12 Feb 2016 11:48:13 +0000 (12:48 +0100)]
behebt #123 Ist-Versterungs-Auswahl für SuSa

8 years agoVerkaufsrechnungen: Beim Öffnen individuelle Lieferadresse laden.
Bernd Bleßmann [Fri, 12 Feb 2016 10:11:57 +0000 (11:11 +0100)]
Verkaufsrechnungen: Beim Öffnen individuelle Lieferadresse laden.

8 years agoBriefe mit anderen Dokumenten verknüpfen können
Moritz Bunkus [Thu, 11 Feb 2016 13:25:29 +0000 (14:25 +0100)]
Briefe mit anderen Dokumenten verknüpfen können

8 years agoBrieffunktion: Verwendung von HTML im Body
Moritz Bunkus [Wed, 10 Feb 2016 12:55:35 +0000 (13:55 +0100)]
Brieffunktion: Verwendung von HTML im Body

8 years agoSL::DBUpgrade2::Base: Spalte-zu-HTML-Funktion ausgelagert
Moritz Bunkus [Wed, 10 Feb 2016 12:29:54 +0000 (13:29 +0100)]
SL::DBUpgrade2::Base: Spalte-zu-HTML-Funktion ausgelagert

Damit diese Funktion auch aus anderen Datenbankupgradescripten heraus
benutzt werden kann, wurde sie nun in die Basisklasse verschoben.

8 years agoCustomerVendor-Controller: Callback nicht 2x escapen
Moritz Bunkus [Wed, 10 Feb 2016 12:26:58 +0000 (13:26 +0100)]
CustomerVendor-Controller: Callback nicht 2x escapen

url_for() escapet die Parameter bereits, daher ist es schädlich, das
vorher auch noch manuell zu tun.

Behebt #128.

8 years agoLetter-Controller: benutzte Pakete auch einbinden
Moritz Bunkus [Wed, 10 Feb 2016 11:05:05 +0000 (12:05 +0100)]
Letter-Controller: benutzte Pakete auch einbinden

In Nicht-FCGI-Umgebungen ist CT ansonsten nicht geladen.

8 years agotypo de/all
Jan Büren [Wed, 10 Feb 2016 09:23:52 +0000 (10:23 +0100)]
typo de/all

8 years agoHTML-zu-LaTeX: diverse Sonderfälle bzgl. Zeilenumbrüchen behandeln
Moritz Bunkus [Tue, 9 Feb 2016 10:29:16 +0000 (11:29 +0100)]
HTML-zu-LaTeX: diverse Sonderfälle bzgl. Zeilenumbrüchen behandeln

Zeilenumbrüche an verschiedenen Stellen sorgten dafür, dass LaTeX die
Fehlmerldung »There's no line to end here« ausspuckte. Die folgenden
Sonderfälle werden nun abgefangen und in \vspace*-Anweisungen
umgewandelt:

✓ Zeilenumbrüche direkt am Anfang des Texts
✓ Zeilenumbrüche direkt am Anfang eines Absatzes
✓ Zeilenumbrüche nach Umgebungen wie Strich- und Aufzählugnslisten

Zusätzlich werden Zeilenumbrüche am Ende des Texts schlicht entfernt.

8 years agoKundenstammdaten: Nachnamensfeld eindeutiger beschriftet
Moritz Bunkus [Tue, 9 Feb 2016 08:57:12 +0000 (09:57 +0100)]
Kundenstammdaten: Nachnamensfeld eindeutiger beschriftet

8 years agospecial_chars - detailverbesserung
Jan Büren [Wed, 3 Feb 2016 12:23:33 +0000 (13:23 +0100)]
special_chars - detailverbesserung

zum commit von gerade, wenn dann richtig auf für latex escapen

8 years agoAnpassungen RB-Druckvorlagen
Jan Büren [Wed, 3 Feb 2016 11:48:51 +0000 (12:48 +0100)]
Anpassungen RB-Druckvorlagen

8 years agospecial chars: zero-width-space (U+200b) escapen
Jan Büren [Wed, 3 Feb 2016 11:00:57 +0000 (12:00 +0100)]
special chars: zero-width-space (U+200b) escapen

Ferner Variablen-Ersetzung für registered TM und Copyright-Zeichen verbessert.
Falls man ein Leerzeichen nach dieser Variable hat, wurde diese nicht gedruckt

8 years agoIBAN-Validierung bei Kunden-/Lieferantenstammdaten sowie bei Bankkonten
Moritz Bunkus [Wed, 3 Feb 2016 09:33:41 +0000 (10:33 +0100)]
IBAN-Validierung bei Kunden-/Lieferantenstammdaten sowie bei Bankkonten

8 years agoLetter: Fehler beim Druck
Sven Schöling [Tue, 2 Feb 2016 10:15:27 +0000 (11:15 +0100)]
Letter: Fehler beim Druck

8 years agoSelf-Tests Haupt- / Nebenbuchprüfung verbessert
Jan Büren [Mon, 1 Feb 2016 16:01:47 +0000 (17:01 +0100)]
Self-Tests Haupt- / Nebenbuchprüfung verbessert

8 years agoGetModels Sorted: tiebreaker für deterministisches sortieren
Sven Schöling [Fri, 29 Jan 2016 13:42:21 +0000 (14:42 +0100)]
GetModels Sorted: tiebreaker für deterministisches sortieren

8 years agotypo in de/all
Jan Büren [Fri, 29 Jan 2016 12:09:44 +0000 (13:09 +0100)]
typo in de/all

8 years agoFlattenToForm - business nicht als Objekt übergeben
G. Richardson [Fri, 29 Jan 2016 10:08:19 +0000 (11:08 +0100)]
FlattenToForm - business nicht als Objekt übergeben

8 years agospecial_chars: Hyphen 0x2010 für LaTeX ersetzen
Bernd Bleßmann [Thu, 28 Jan 2016 14:05:28 +0000 (15:05 +0100)]
special_chars: Hyphen 0x2010 für LaTeX ersetzen

8 years agoLetter: model sortierung benutzen
Sven Schöling [Wed, 27 Jan 2016 14:14:39 +0000 (15:14 +0100)]
Letter: model sortierung benutzen

8 years agoLetter: Sortierung default neue zuerst
Sven Schöling [Wed, 27 Jan 2016 13:42:28 +0000 (14:42 +0100)]
Letter: Sortierung default neue zuerst

8 years agoLetter: Anzeigesicherheit gegen nicht mehr existierende Kunden
Sven Schöling [Wed, 27 Jan 2016 13:31:48 +0000 (14:31 +0100)]
Letter: Anzeigesicherheit gegen nicht mehr existierende Kunden

8 years agoLetter: 30 pro Seite anzeigen
Sven Schöling [Wed, 27 Jan 2016 13:29:59 +0000 (14:29 +0100)]
Letter: 30 pro Seite anzeigen

8 years agoLetter: Paginierung
Sven Schöling [Wed, 27 Jan 2016 13:03:46 +0000 (14:03 +0100)]
Letter: Paginierung

8 years agoLetter: überflüssige locales enternt.
Sven Schöling [Wed, 27 Jan 2016 14:21:36 +0000 (15:21 +0100)]
Letter: überflüssige locales enternt.

8 years agoBeschreibung für Korrekturen im Hauptbuch erweitert
Jan Büren [Tue, 26 Jan 2016 07:34:29 +0000 (08:34 +0100)]
Beschreibung für Korrekturen im Hauptbuch erweitert

Falls der Selftest fehlende Steuerbuchungen findet, können diese
mit Korrekturen im Hauptbuch bereinigt werden. Der Vollständigkeit halber
hier eine weitere Beschreibung für diese Massnahmen (fehlerhafter Import von
Buchungen) angegeben.

8 years agoWeitere Selftests
Jan Büren [Tue, 26 Jan 2016 07:24:36 +0000 (08:24 +0100)]
Weitere Selftests

- Kreditoren Haupt und Nebenbuch Netto-Prüfung (ap.netamount == acc_trans.amount)
- Für alle Taxkeys <> 0 muss auch eine Steuerbuchung in acc_trans vorhanden sein

8 years agoSelfTest -> Transaction. Test verbessert (ar.amount invoice.amount)
Jan Büren [Fri, 22 Jan 2016 10:11:42 +0000 (11:11 +0100)]
SelfTest -> Transaction. Test verbessert (ar.amount invoice.amount)

Summe laut Verkaufsbericht gleich Summe der Rechnungen (ar).
Der Test schlägt fehl, wenn es Debitorenbuchungen gibt, da hier keine
invoice Einträge gemacht werden. Entsprechend die Abfrage verbessert.

8 years agoLetter: Nur Druckoptionen anzeigen, die momentan unterstützt werden.
Bernd Bleßmann [Mon, 25 Jan 2016 11:00:56 +0000 (12:00 +0100)]
Letter: Nur Druckoptionen anzeigen, die momentan unterstützt werden.

Drucken geht nur mit PDF und Bildschirm.

8 years agoLetter: PrintOptions-Helper verwenden.
Bernd Bleßmann [Mon, 25 Jan 2016 10:54:48 +0000 (11:54 +0100)]
Letter: PrintOptions-Helper verwenden.

8 years agoPrintOptions-Helper: Ausgabe der Header ermöglichen.
Bernd Bleßmann [Sat, 16 Jan 2016 22:02:27 +0000 (23:02 +0100)]
PrintOptions-Helper: Ausgabe der Header ermöglichen.

8 years agoPrintOptions_Helper: Dokumentation
Bernd Bleßmann [Mon, 25 Jan 2016 11:45:10 +0000 (12:45 +0100)]
PrintOptions_Helper: Dokumentation

8 years agoPrintOptions_Helper: Angabe eines prefix ermöglichen.
Bernd Bleßmann [Fri, 15 Jan 2016 17:11:26 +0000 (18:11 +0100)]
PrintOptions_Helper: Angabe eines prefix ermöglichen.

8 years agoprint_options in Helper ausgelagert.
Bernd Bleßmann [Fri, 15 Jan 2016 11:40:08 +0000 (12:40 +0100)]
print_options in Helper ausgelagert.

8 years agoPresenter: hidden ist ein value_less attribut
Sven Schöling [Tue, 19 Jan 2016 13:34:09 +0000 (14:34 +0100)]
Presenter: hidden ist ein value_less attribut

8 years agoBelege: »Details initial anzeigen« richtig behandeln
Moritz Bunkus [Tue, 19 Jan 2016 14:39:34 +0000 (15:39 +0100)]
Belege: »Details initial anzeigen« richtig behandeln

Die Einstellungen in der Benutzerkonfiguration, ob die Details per
default angezeigt werden sollen, wurde nur beim initialen Aufbau der
Einkaufs- und Verkaufsbelegmasken berücksichtigt. Da der Wert aber nicht
in der dafür vorgesehenen Hidden mitgeschliffen wurde, war die
Einstellung ab dem zweiten Maskenaufbau dahin.

Grund ist, dass die Hidden in form_header() ausgegeben wird, bevor in
display_row() die dazugehörige Einstellung aus der Benutzerkonfiguration
geladen wird.

Gegenmittel: In den Einstiegspunkten zum Hinzufügen und Bearbeiten von
Belegen (add() respektive edit()) bereits die Einstellung aus der
Benutzerkonfiguration laden und so der Hidden zur Verfügung stellen.

8 years agoWarenauswahl: EAN in »Andere Treffer« nur ausweisen, wenn nach Artikelnummer gesucht...
Moritz Bunkus [Tue, 19 Jan 2016 14:12:03 +0000 (15:12 +0100)]
Warenauswahl: EAN in »Andere Treffer« nur ausweisen, wenn nach Artikelnummer gesucht wird

8 years agoLetter: Aussagekräftigere Fehlermeldung, wenn Vorlage nicht gefunden wird.
Bernd Bleßmann [Mon, 18 Jan 2016 15:20:34 +0000 (16:20 +0100)]
Letter: Aussagekräftigere Fehlermeldung, wenn Vorlage nicht gefunden wird.

8 years agojs/switchmenuframe.js entfernt
Sven Schöling [Thu, 14 Jan 2016 10:57:22 +0000 (11:57 +0100)]
js/switchmenuframe.js entfernt

seit dem letzten Layout rework ist das nicht mehr benutzt,
also weg damit

8 years agoLetter Controller rewrite
Sven Schöling [Mon, 21 Dec 2015 15:16:39 +0000 (16:16 +0100)]
Letter Controller rewrite

Jetzt auf einigermassen aktuellem technischen Stand.

8 years agoSelfTest: Datenbanknamen gefixt; Client-Namen auch mit ausgeben
Moritz Bunkus [Tue, 12 Jan 2016 13:51:24 +0000 (14:51 +0100)]
SelfTest: Datenbanknamen gefixt; Client-Namen auch mit ausgeben

8 years agoSL::DB::Buchungsgruppe: Relationsnamen inventory_account gefixt
Moritz Bunkus [Mon, 11 Jan 2016 16:35:46 +0000 (17:35 +0100)]
SL::DB::Buchungsgruppe: Relationsnamen inventory_account gefixt

Aus irgend einem Grund registriert Rose keine neue Relationship, wenn es
bereits eine (mit leicht anderem Namen) als Foreign Key für dieselbe
Spalte gibt.

8 years agoAdmin User-Bearbeiten-Maske: JavaScript.escape() nicht als Filter aufrufen
Moritz Bunkus [Mon, 11 Jan 2016 15:36:24 +0000 (16:36 +0100)]
Admin User-Bearbeiten-Maske: JavaScript.escape() nicht als Filter aufrufen

Siehe Commit-Nachricht 70654da für die Begründung.

8 years agoRevert "JavaScript-Plugin: auch als Filter einsetzen können"
Moritz Bunkus [Mon, 11 Jan 2016 15:32:34 +0000 (16:32 +0100)]
Revert "JavaScript-Plugin: auch als Filter einsetzen können"

Dies revertet Commit 20d730acdbb52b5b75af783aa010609e25b73024. Grund
ist, dass aus bisher nicht zu analysierenden Gründen in manchen
Situationen der Template-Toolkit-Compiler oder eine andere Komponente
Quark erzeugt und daher das Plugin nicht findet.

Wenn es geht, dann sieht das compilierte Template an der Stelle wie
folgt aus:

------ snip ------
$output .=  do {
    my $output = '';
    my $_tt_filter = $context->filter('js')
              || $context->throw($context->error);
------ snip ------

Wenn es aber nicht geht, dann wie folgt:

------ snip ------
$output .=  do {
    my $output = '';
    my $_tt_filter = $context->filter($stash->get('js'))
              || $context->throw($context->error);
------ snip ------

Im nicht funktionierenden Fall wird das Plugin selber im Stash gesucht,
wo es aber nicht vorhanden ist.

Warum das passiert ist noch rätselhaft und wird mangels Zeit erst einmal
nicht weiter untersucht.

8 years agoPasswörter: Unterstützung für crypt, MD5 und SHA-1 entfernt
Moritz Bunkus [Mon, 11 Jan 2016 12:34:30 +0000 (13:34 +0100)]
Passwörter: Unterstützung für crypt, MD5 und SHA-1 entfernt

Diese Algorithmen gelten allesamt als unsicher.

Falls die Datenbank jemals in falsche Hände geraten sollte, so würden
zumindest die mit crypt und MD5 gehashten Passwörter schnell zu knacken
sein. Die mit SHA-1 gehashten dürften etwas länger dauern, aber auch sie
sind gefährdet. Daher werden sie in der Datenbank schlicht
entfernt. Admins müssen für solche Accounts neue Passwörter vergeben.

Dies sollte nur Accounts betreffen, deren Passwort sich seit der
Einführung von SHA256S als Mechanismus in kivitendo 2.7.0 Mitte 2011
nicht mehr geändert hat.

8 years agoPasswörter: Hash-Verfahren PBKDF2 unterstützen und als Standard nutzen
Moritz Bunkus [Mon, 11 Jan 2016 10:55:53 +0000 (11:55 +0100)]
Passwörter: Hash-Verfahren PBKDF2 unterstützen und als Standard nutzen

Der aktuelle Stand der Technik sind die SHA-*-Varianten schon lange
nicht mehr. In der Zwischenzeit wurden der PBKDF2-Mechanismus
entwickelt, um schnelles Berechnen zu erschweren. Noch neuer und in
ASICs noch schwerer umsetzbar sind BCrypt und SCrypt, für die es aber
noch keine weit verbreiteten Perl-Module gibt.

8 years agoSEPA: Button »Zahlungsliste als PDF« nicht anzeigen, wenn nichts ausgeführt wurde
Moritz Bunkus [Fri, 8 Jan 2016 15:23:03 +0000 (16:23 +0100)]
SEPA: Button »Zahlungsliste als PDF« nicht anzeigen, wenn nichts ausgeführt wurde