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>
178 lines
5.0 KiB
Smarty
178 lines
5.0 KiB
Smarty
<div class="centersidebyside">
|
|
<div class="fifty">
|
|
|
|
{$type = $rechnung.typ_id}
|
|
{$headstr = 'per E-Mail versenden'}
|
|
|
|
{if $type==1}
|
|
{$typename="Rechnung"}
|
|
{elseif $type == 2}
|
|
{$typename="Gutschrift"}
|
|
{elseif $type == 3}
|
|
{$typename="Angebot"}
|
|
{elseif $type == 4}
|
|
{$typename="Auftragsbestätigung"}
|
|
{elseif $type == 5}
|
|
{$typename="Brief"}
|
|
{/if}
|
|
<h2>{$typename|escape} {$headstr|escape}:</h2>
|
|
<form action="?action=rechnungadd&mailformsent=1&mail=1&id={$smarty.get.id|intval}" name="mainform" id='rechnform' method='POST'>
|
|
<fieldset class='nolim'>
|
|
|
|
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
|
|
|
|
<p>
|
|
<br />
|
|
<label>Senden an:</label>
|
|
<select name='tomail'>
|
|
{html_options values=$mails output=$mails}
|
|
</select><br />
|
|
<label>Betreff:</label>
|
|
<input value='{$smarty.session.firma|escape}: anbei das von Ihnen gewünschte Dokument' id='sub' maxlength='150' name='sub' /><br />
|
|
<label>Anrede:</label>
|
|
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr1}
|
|
$rechnung.anr1
|
|
{else}
|
|
Sehr geehrter Herr{" "}
|
|
{if $adresse.titel_id > 1}
|
|
{$titels.{$adresse.titel_id}|escape}{" "}
|
|
{/if}
|
|
{if $adresse.vname}
|
|
{$adresse.vname|escape}{" "}
|
|
{/if}
|
|
{$adresse.nname|escape},
|
|
{/if}
|
|
' id='anr1' maxlength='150' name='anr1' /><br />
|
|
{/strip}
|
|
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr1}
|
|
$rechnung.anr1
|
|
{else}
|
|
Sehr geehrter Herr{" "}
|
|
{if $adresse.titel2_id > 1}
|
|
{$titels.{$adresse.titel2_id}|escape}{" "}
|
|
{/if}
|
|
{if $adresse.vname2}
|
|
{$adresse.vname2|escape}{" "}
|
|
{/if}
|
|
{$adresse.nname2|escape},
|
|
{/if}
|
|
' id='anr1' maxlength='150' name='anr1' /><br />
|
|
{/strip}
|
|
{elseif $anrs.{$adresse.anrede_id} == "Frau"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr1}
|
|
$rechnung.anr1
|
|
{else}
|
|
Sehr geehrte Frau{" "}
|
|
{if $adresse.titel_id > 1}
|
|
{$titels.{$adresse.titel_id}|escape}{" "}
|
|
{/if}
|
|
{if $adresse.vname}
|
|
{$adresse.vname|escape}{" "}
|
|
{/if}
|
|
{$adresse.nname|escape},
|
|
{/if}
|
|
' id='anr1' maxlength='150' name='anr1' /><br />
|
|
{/strip}
|
|
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr1}
|
|
$rechnung.anr1
|
|
{else}
|
|
Sehr geehrte Frau{" "}
|
|
{if $adresse.titel2_id > 1}
|
|
{$titels.{$adresse.titel2_id}|escape}{" "}
|
|
{/if}
|
|
{if $adresse.vname2}
|
|
{$adresse.vname2|escape}{" "}
|
|
{/if}
|
|
{$adresse.nname2|escape},
|
|
{/if}
|
|
' id='anr1' maxlength='150' name='anr1' /><br />
|
|
{/strip}
|
|
{else}
|
|
<input value='' id='anr1' maxlength='150' name='anr1' /><br />
|
|
{/if}
|
|
|
|
<label>Zweite Anrede:</label>
|
|
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id|escape} == "Herr" && $anrs.{$adresse.anrede2_id|escape} == "Herrn"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr2}
|
|
$rechnung.anr2
|
|
{else}
|
|
Sehr geehrte Frau{" "}
|
|
{if $adresse.titel_id > 1}
|
|
{$titels.{$adresse.titel_id}|escape}{" "}
|
|
{/if}
|
|
{if $adresse.vname}
|
|
{$adresse.vname|escape}{" "}
|
|
{/if}
|
|
{$adresse.nname|escape},
|
|
{/if}
|
|
' id='anr2' maxlength='150' name='anr2' /><br />
|
|
{/strip}
|
|
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr2}
|
|
$rechnung.anr2
|
|
{else}
|
|
Sehr geehrte Frau{" "}
|
|
{if $adresse.titel2_id > 1}
|
|
{$titels.{$adresse.titel2_id}|escape}{" "}
|
|
{/if}
|
|
{if $adresse.vname2}
|
|
{$adresse.vname2|escape}{" "}
|
|
{/if}
|
|
{$adresse.nname2|escape},
|
|
{/if}
|
|
' id='anr2' maxlength='150' name='anr2' /><br />
|
|
{/strip}
|
|
{else}
|
|
<input value='' id='anr2' maxlength='150' name='anr2' /><br />
|
|
{/if}
|
|
<label class='artlabel'>E-Mail Text:</label><br />
|
|
<center><textarea name='intro' id='intro' {if $type == 5}class='tinymce'{else}class='bigtextarea'{/if}>
|
|
Anbei senden wir Ihnen {if $typename == "Angebot"}das{elseif $typename == "Brief"}den{else}die{/if} geforderte{if $typename == "Brief"}n{/if} {$typename|escape}.
|
|
|
|
Mit freundlichen Grüßen
|
|
{$smarty.session.vname|escape} {$smarty.session.nname|escape}
|
|
{$smarty.session.firma|escape}
|
|
|
|
---
|
|
Das Dokument ist als PDF-Datei im Anhang hinterlegt.
|
|
Zum Lesen, Drucken und/oder Speichern von PDF-Dateien benötigen
|
|
Sie das Programm Acrobat Reader von Adobe. Sollte der Acrobat Reader
|
|
noch nicht auf Ihrem Computer installiert sein, können Sie ihn hier kostenlos
|
|
herunterladen:
|
|
http://www.adobe.de/products/acrobat/readstep2.html
|
|
</textarea></center>
|
|
</p>
|
|
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button>
|
|
<button type="button" class='preview' onclick="ajax_loadpreview();">Vorschau aktualisieren</button><br />
|
|
</fieldset>
|
|
<input type='submit' value='Senden' />
|
|
</form>
|
|
</div>
|
|
|
|
|
|
<div class="fifty">
|
|
<br />
|
|
<h2>Anhang:</h2>
|
|
<div id="pdfpreview">
|
|
<iframe src='{$pdffile|escape}' width='100%' height='600px'></iframe>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="question">
|
|
</div> |