Rechnungen: Anrede beim Bearbeiten, lokale Testumgebung, BOMs

Beim Test der Oberflaeche im Browser gefunden:

- addrechnung.tpl fragte die gespeicherte Anrede als $rechnung.anr1 ab
  (die Daten heissen anrede1) und gab sie ohne Klammern aus. Beim
  Bearbeiten von Angeboten/Briefen erschien deshalb immer die
  Standard-Anrede, eine geaenderte ging beim erneuten Speichern verloren.
- |escape innerhalb von {if}-Bedingungen wieder entfernt (dort ohne
  Wirkung, gehoert nicht dorthin).
- UTF-8-BOM aus sechs Dateien entfernt; makepdf.php gab es auf jeder
  Rechnungsseite vor dem HTML aus.
- makeImageFromPDF() loeschte bei der Aufraeumrunde auch .gitkeep;
  Pfade fuer convert per escapeshellarg().
- constants.php: Instanzname auch unter Windows (getcwd() mit
  Backslashes) korrekt; KV_CONFIG_PATH als Config-Pfad fuer lokale Tests.

Im Browser getestet (lokaler PHP-Webserver, migrierte Testdatenbank):
Login mit Sonderzeichen-Passwort, Entwurf automatisch speichern und
laden, Rechnung mit Umlauten/Anfuehrungszeichen/HTML im Artikelnamen und
Komma-Betraegen speichern, Anzeige als PDF (Original und Kopie),
Kundensuche nach Dokumenten mit Umlaut, Artikelnamen escaped, Storno,
Kopie auf andere Adresse, Umschlag, Angebot mit eigener Anrede anlegen und
wieder bearbeiten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-17 11:27:27 +02:00
co-authored by Claude Opus 5
parent b76d883fbe
commit 8fe43d6802
9 changed files with 43 additions and 37 deletions
+4 -4
View File
@@ -1,4 +1,4 @@
<?php
<?php
require_once('tcpdf/tcpdf.php');
function makerawPDF($ajax)
@@ -1144,8 +1144,8 @@ function makeImageFromPDF($PDFpath)
$handle=opendir($PDFpathpart);
while ($file = readdir($handle))
{
if (preg_match("=^\.{1,2}$=", $file))
continue; # . und .. Dateien ignorieren
if (preg_match("=^\.=", $file))
continue; # ., .. und versteckte Dateien (.gitkeep) ignorieren
if (is_dir($PDFpathpart.$file))
{
@@ -1164,7 +1164,7 @@ function makeImageFromPDF($PDFpath)
}
mkdir(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/");
//exec('');
exec("export PATH=\"/opt/bin\";/opt/bin/convert $PDFpath ".dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png");
exec("export PATH=\"/opt/bin\";/opt/bin/convert ".escapeshellarg($PDFpath)." ".escapeshellarg(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png"));
$i="0";
$ret = "";
if(is_file(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png"))