Rechnungen: Betraege mit Tausenderpunkt, XSS in Templates und Suche

- formularZahl(): steht ein Komma im Betrag, sind Punkte Tausendertrenner
  ("1.234,50" -> 1234.50, vorher 1.23); ohne Komma bleibt der Punkt
  Dezimaltrenner wie bei der Artikel-Autovervollstaendigung ("12.50").
- Rechnungs-Templates (addrechnung, mailrechnung, changeadr, copyrech,
  umschlagshow, rechshow) geben alle Daten mit |escape aus; Werte aus der
  URL (id, type, newtype) als int.
- Rechnungssuche: Artikelnamen werden escaped statt als HTML ausgegeben
  (Trennung per Zeilenumbruch in SQL, artikelListeHtml() in PHP).
- Suchbegriffe kommen per encodeURIComponent als UTF-8, utf8_encode()
  entfaellt; vorher gingen Zeichen ausserhalb von Latin-1 verloren.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-17 11:18:29 +02:00
co-authored by Claude Opus 5
parent d8fff4aeb6
commit b76d883fbe
12 changed files with 219 additions and 206 deletions
+5 -4
View File
@@ -16,7 +16,8 @@ if(!isset($err))
if(!isset($_GET["link"])){
$_GET["link"] ="";
}
$fulltag = utf8_encode($_GET["search"]);
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$src = explode(" ",$fulltag);
$combiner = $_GET["link"];
if($combiner != "AND" && $combiner != "OR")
@@ -87,14 +88,14 @@ if(!isset($err))
if($res["storno"] == 1){
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'><font color='#FF0000'>".$res["drechnr"]."</font></a>",
$res["date"],
$res["artikel"],
artikelListeHtml($res["artikel"]),
$actions
);
}
else{
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["drechnr"]."</a>",
$res["date"],
$res["artikel"],
artikelListeHtml($res["artikel"]),
$actions
);
}
@@ -151,7 +152,7 @@ if(!isset($err))
{
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
$res["date"],
$res["artikel"],
artikelListeHtml($res["artikel"]),
"<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Dokument ".$res["rechnr"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=rechadd&rechid=".$res["id"]."&del=1\")'></span>");
}
$headings = array("Nummer","Datum","Artikel","Aktion");
+5 -4
View File
@@ -22,7 +22,8 @@ if(!isset($err))
if(!isset($_GET["kdnid"])){
$_GET["kdnid"]="";
}
$fulltag = utf8_encode($_GET["search"]);
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$src = explode(" ",$fulltag);
$combiner = $_GET["link"];
if($combiner != "AND" && $combiner != "OR")
@@ -82,14 +83,14 @@ if(!isset($err))
if($res["storno"] == 1){
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'><font color='#FF0000'>".$res["drechnr"]."</font></a>",
$res["date"],
$res["artikel"],
artikelListeHtml($res["artikel"]),
$actions
);
}
else{
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["drechnr"]."</a>",
$res["date"],
$res["artikel"],
artikelListeHtml($res["artikel"]),
$actions
);
}
@@ -142,7 +143,7 @@ if(!isset($err))
{
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
$res["date"],
$res["artikel"],
artikelListeHtml($res["artikel"]),
"<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Dokument ".$res["rechnr"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=rechadd&rechid=".$res["id"]."&del=1\")'></span>");
}
$headings = array("Nummer","Datum","Artikel","Aktion");
+10 -4
View File
@@ -195,7 +195,7 @@ function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
$query = "SELECT rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '<br />') AS artikel,
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '\n') AS artikel,
adresse_id,
storno,
rechnung.typ_id
@@ -216,7 +216,7 @@ function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
$query = "SELECT rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '<br />') AS artikel,
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '\n') AS artikel,
adresse_id,
rechnung.typ_id
FROM rechnung
@@ -304,7 +304,7 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '<br />') AS artikel,
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '\n') AS artikel,
adresse_id,
storno,
rechnung.typ_id
@@ -328,7 +328,7 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '<br />') AS artikel,
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '\n') AS artikel,
adresse_id,
storno = 0,
rechnung.typ_id
@@ -461,6 +461,12 @@ function createMsgQry($page,$pagesize,$src,$combiner,$user)
return $ret;
}
/* Artikelliste aus createRechQry()/createKdnRechQry() als escaptes HTML, eine Zeile je Artikel */
function artikelListeHtml($artikel)
{
return implode("<br />", array_map("htmlspecialchars", explode("\n", (string)$artikel)));
}
function displayPages($pagesize,$currpage,$numentries,$refreshfunc,$ad_params = "")
{
echo "Seite: ";
+8 -3
View File
@@ -12,12 +12,17 @@ function formularText($name)
}
/*
* Zahl aus $_POST, Komma als Dezimaltrenner. Leere oder ungültige Eingaben
* werden 0 - so hat sie der frühere, nicht strikte Modus gespeichert.
* Zahl aus $_POST in deutscher Schreibweise. Steht ein Komma darin, ist es
* der Dezimaltrenner und Punkte sind Tausendertrenner ("1.234,50"). Ohne
* Komma gilt ein Punkt als Dezimaltrenner ("12.50", so liefert ihn die
* Artikel-Autovervollständigung). Leere oder ungültige Eingaben werden 0 -
* so hat sie der frühere, nicht strikte Modus gespeichert.
*/
function formularZahl($name)
{
$wert = str_replace(",", ".", formularText($name));
$wert = str_replace(" ", "", formularText($name));
if(str_contains($wert, ","))
$wert = str_replace(array(".", ","), array("", "."), $wert);
return is_numeric($wert) ? $wert : "0";
}
+2 -2
View File
@@ -146,7 +146,7 @@ function ajax_searchkdnrech(page,skspage,typ,kdnid)
search_in_progress = 1;
document.getElementById("rechlist-"+typ).innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
//document.getElementById("kdnsrc_src").disabled = true;
search = escape(document.getElementById("src_rech-"+typ).value);
search = encodeURIComponent(document.getElementById("src_rech-"+typ).value);
var url = "ajax/searchkdnrech.php?page=" + page + "&skspage=" + skspage + "&search=" + search+"&typ=" + typ + "&kdnid=" + kdnid;
@@ -200,7 +200,7 @@ function ajax_searchrech(page,skspage)
search_in_progress = 1;
document.getElementById("rechlist").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
//document.getElementById("kdnsrc_src").disabled = true;
search = escape(document.getElementById("src_rech").value);
search = encodeURIComponent(document.getElementById("src_rech").value);
var url = "ajax/searchrech.php?page=" + page + "&skspage=" + skspage + "&search=" + search;
+5 -5
View File
@@ -17,7 +17,7 @@ elseif($_GET["changeadr"] == 1 && $_GET["id"])
if(!$_GET["adrid"])
{
$smarty->assign("felder",array("all"=>"Name, Adresse, Kd.Nr.","kdnr"=>"Kundennummer","name"=>"Name und Firma","str"=>"Straße","plz"=>"PLZ","ort"=>"Ort","tel"=>"Tel","kont"=>"Kontakt"));
$smarty->assign("rechid",$_GET["id"]);
$smarty->assign("rechid",(int)$_GET["id"]);
$smarty->display("changeadr.tpl");
}
else
@@ -32,7 +32,7 @@ elseif($_GET["copy"] == 1 && $_GET["id"])
if(!$_GET["adrid"])
{
$smarty->assign("felder",array("all"=>"Name, Adresse, Kd.Nr.","kdnr"=>"Kundennummer","name"=>"Name und Firma","str"=>"Straße","plz"=>"PLZ","ort"=>"Ort","tel"=>"Tel","kont"=>"Kontakt"));
$smarty->assign("rechid",$_GET["id"]);
$smarty->assign("rechid",(int)$_GET["id"]);
$smarty->display("copyrech.tpl");
}
else
@@ -141,7 +141,7 @@ else
}
else
{
$smarty->assign("loadrech",$_GET["id"]);
$smarty->assign("loadrech",(int)$_GET["id"]);
$rechnung=makerechnungsarray($dbconn, $_GET["id"], 0);
$kommission=makeadressarray($dbconn, $rechnung["kommission"]);
$smarty->assign("rechnung",$rechnung);
@@ -156,8 +156,8 @@ else
$smarty->assign("artikel",makeartikelarray($dbconn, $_GET["draft"], 1));
}
$smarty->assign("type",$_GET["type"]);
$smarty->assign("newtype",$_GET["newtype"]);
$smarty->assign("type",(int)$_GET["type"]);
$smarty->assign("newtype",(int)$_GET["newtype"]);
$kdnres=makeadressarray($dbconn, $_GET["adressid"]);
+128 -128
View File
@@ -23,72 +23,72 @@
{elseif $type == 6}
{$typename="Mahnung"}
{/if}
<h2>{$typename} {$headstr}:</h2>
<form action="?action=rechnungadd&formsent=1&id={$loadrech}" name="mainform" id='rechnform' method='POST'>
<h2>{$typename|escape} {$headstr|escape}:</h2>
<form action="?action=rechnungadd&formsent=1&id={$loadrech|escape}" name="mainform" id='rechnform' method='POST'>
<input type="hidden" name="type" value="{$type|escape}" />
<input type="hidden" name="adressid" value="{$adresse.id|escape}" />
<input type="hidden" name="partnerid" value="{$adresse.partner_id|escape}" />
<fieldset class='nolim'>
<legend>{$typename} an <a href="?action=kundenshow&id={$adresse.partner_id}">Kunde {$adresse.partner_id}</a></legend>
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
{if $adresse.firma}
<label class='checktext'><input type="checkbox" name="show_firmaanr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMAANR:1 || $rechnung.adressfields==0}checked="checked"{/if} />Firma</label>
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma}</label>
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma|escape}</label>
{/if}
{if $adresse.anrede_id > 1}
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}}</label>
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}|escape}</label>
{/if}
{if $adresse.titel_id > 1}
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}}</label>
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}|escape}</label>
{/if}
{if $adresse.vname || $adresse.nname}
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname} {$adresse.nname}</label>
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname|escape} {$adresse.nname|escape}</label>
{/if}
<br />
{if $adresse.anrede2_id > 1}
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}}</label>
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}|escape}</label>
{/if}
{if $adresse.titel2_id > 1}
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}}</label>
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}|escape}</label>
{/if}
{if $adresse.vname2 || $adresse.nname2}
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2} {$adresse.nname2}</label>
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2|escape} {$adresse.nname2|escape}</label>
{/if}
{if $adresse.str}
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str} {$adresse.hnr}</label>
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str|escape} {$adresse.hnr|escape}</label>
{/if}
{if $adresse.plz || $adresse.ort}
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz} {$adresse.ort}
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz|escape} {$adresse.ort|escape}
{/if}
{if $adresse.ortsteil}
- {$adresse.ortsteil}
- {$adresse.ortsteil|escape}
{/if}
{if $adresse.plz || $adresse.ort}
</label>
{/if}
{if $adresse.land}
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land}</label>
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land|escape}</label>
{/if}
{if $adresse.zusatz}
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false}</label>
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false|escape}</label>
{/if}
<br />
<label>Adresserweiterung: </label><input name="adresserweiterung" value="{$rechnung.adresserweiterung}" />
<label>Adresserweiterung: </label><input name="adresserweiterung" value="{$rechnung.adresserweiterung|escape}" />
<br />
<p>
<label>Währung:</label>
<select name='wahrung'>
{html_options values=$wahrids output=$wahrs selected="{$rechnung.wahrung_id|default:1}"}
{html_options values=$wahrids output=$wahrs selected="{$rechnung.wahrung_id|default:1|escape}"}
</select><br />
<label>Mehrwertsteuer:</label>
<select name='mwst'>
{html_options values=$mwstids output=$mwsts selected="{$rechnung.mwst_id|default:2}"}
{html_options values=$mwstids output=$mwsts selected="{$rechnung.mwst_id|default:2|escape}"}
</select>
<br />
{if $type == 1}
<label>Zahlungsziel:</label>
<select name='zahlziel'>
{html_options values=$zzielids output=$zziels selected="{$rechnung.zahlziel_id|default:2}"}
{html_options values=$zzielids output=$zziels selected="{$rechnung.zahlziel_id|default:2|escape}"}
</select>
{else}
<input type='hidden' name='zahlziel' value='1'>
@@ -100,10 +100,10 @@
<div class="leftalign">
<br />
<label>Rabatt:</label>
<input name='rabatt' id='rabatt' maxlength='3' pattern="[0-9]{ldelim}0,3{rdelim}" value="{$rechnung.rabatt}" /><b>%</b>
<input name='rabatt' id='rabatt' maxlength='3' pattern="[0-9]{ldelim}0,3{rdelim}" value="{$rechnung.rabatt|escape}" /><b>%</b>
<br />
<label>Rabatt Beschreibung:</label>
<input name='rabattdesc' id='rabattdesc' maxlength='100' value="{$rechnung.rabattdesc}" />
<input name='rabattdesc' id='rabattdesc' maxlength='100' value="{$rechnung.rabattdesc|escape}" />
</div>
{/if}
@@ -114,7 +114,7 @@
<p>
<br />
<label>Anrede:</label>
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
{if $anrs.{$adresse.anrede_id|escape} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -122,16 +122,16 @@
{else}
Sehr geehrter Herr{" "}
{if $adresse.titel_id > 1}
{$titels.{$adresse.titel_id}}{" "}
{$titels.{$adresse.titel_id}|escape}{" "}
{/if}
{if $adresse.vname}
{$adresse.vname}{" "}
{$adresse.vname|escape}{" "}
{/if}
{$adresse.nname},
{$adresse.nname|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
{elseif $anrs.{$adresse.anrede2_id|escape} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -139,16 +139,16 @@
{else}
Sehr geehrter Herr{" "}
{if $adresse.titel2_id > 1}
{$titels.{$adresse.titel2_id}}{" "}
{$titels.{$adresse.titel2_id}|escape}{" "}
{/if}
{if $adresse.vname2}
{$adresse.vname2}{" "}
{$adresse.vname2|escape}{" "}
{/if}
{$adresse.nname2},
{$adresse.nname2|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede_id} == "Frau"}
{elseif $anrs.{$adresse.anrede_id|escape} == "Frau"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -156,16 +156,16 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel_id > 1}
{$titels.{$adresse.titel_id}}{" "}
{$titels.{$adresse.titel_id}|escape}{" "}
{/if}
{if $adresse.vname}
{$adresse.vname}{" "}
{$adresse.vname|escape}{" "}
{/if}
{$adresse.nname},
{$adresse.nname|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
{elseif $anrs.{$adresse.anrede2_id|escape} == "Frau"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -173,12 +173,12 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel2_id > 1}
{$titels.{$adresse.titel2_id}}{" "}
{$titels.{$adresse.titel2_id}|escape}{" "}
{/if}
{if $adresse.vname2}
{$adresse.vname2}{" "}
{$adresse.vname2|escape}{" "}
{/if}
{$adresse.nname2},
{$adresse.nname2|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
@@ -187,7 +187,7 @@
{/if}
<label>Zweite Anrede:</label>
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id} == "Herrn"}
{if $anrs.{$adresse.anrede_id|escape} == "Frau" && $anrs.{$adresse.anrede2_id|escape} == "Herrn"}
{strip}
<input value='
{if $rechnung.anr2}
@@ -195,16 +195,16 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel_id > 1}
{$titels.{$adresse.titel_id}}{" "}
{$titels.{$adresse.titel_id}|escape}{" "}
{/if}
{if $adresse.vname}
{$adresse.vname}{" "}
{$adresse.vname|escape}{" "}
{/if}
{$adresse.nname},
{$adresse.nname|escape},
{/if}
' id='anr2' maxlength='150' name='anr2' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
{elseif $anrs.{$adresse.anrede2_id|escape} == "Frau"}
{strip}
<input value='
{if $rechnung.anr2}
@@ -212,12 +212,12 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel2_id > 1}
{$titels.{$adresse.titel2_id}}{" "}
{$titels.{$adresse.titel2_id}|escape}{" "}
{/if}
{if $adresse.vname2}
{$adresse.vname2}{" "}
{$adresse.vname2|escape}{" "}
{/if}
{$adresse.nname2},
{$adresse.nname2|escape},
{/if}
' id='anr2' maxlength='150' name='anr2' /><br />
{/strip}
@@ -226,22 +226,22 @@
{/if}
<label class='artlabel'>{if $type != 5}Einleitungstext{else}Text{/if}:</label><br />
<center><textarea name='intro' id='intro' {if $type == 5}class='tinymce'{else}class='bigtextarea'{/if}>{$rechnung.intro}
{if $newtype == 6}Leider haben wir bis zum heutigen Tag noch keinen vollständigen Zahlungseingang zur Rechnung Nr. {$rechnung.drechnr} erhalten. Deshalb bitten wir Sie, den fehlenden Betrag bis zum angegeben Zahlungsziel auf unser Konto zu überweisen.{/if}
<center><textarea name='intro' id='intro' {if $type == 5}class='tinymce'{else}class='bigtextarea'{/if}>{$rechnung.intro|escape}
{if $newtype == 6}Leider haben wir bis zum heutigen Tag noch keinen vollständigen Zahlungseingang zur Rechnung Nr. {$rechnung.drechnr|escape} erhalten. Deshalb bitten wir Sie, den fehlenden Betrag bis zum angegeben Zahlungsziel auf unser Konto zu überweisen.{/if}
</textarea></center>
</p>
{/if}
{if $type == 1}
{if $smarty.session.firma == "Wagner Markisen"}
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:"Lieferdatum ist gleich Rechnungsdatum"}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:"Lieferdatum ist gleich Rechnungsdatum"|escape}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
{else}
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:""}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:""|escape}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
{/if}
{/if}
{if $type == 1}
<label>Buchungskonto:</label>
<select name='buchKto'>
{html_options values=$buchKtoids output=$buchKtos selected="{$rechnung.buchungsKto_id|default:1}"}
{html_options values=$buchKtoids output=$buchKtos selected="{$rechnung.buchungsKto_id|default:1|escape}"}
</select>
{else}
<input type='hidden' name='buchKto' value='1'>
@@ -264,30 +264,30 @@
<button type="button" class='swart' onclick="swart({$artnr|escape});"></button>
{/if}
{if $type == 3}
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" {if $art.art.angtyp == 1}checked="checked"{/if} />Normal</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="2" {if $art.art.angtyp == 2}checked="checked"{/if} />Optional</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="3" {if $art.art.angtyp == 3}checked="checked"{/if} />Alternativ</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" {if $art.art.angtyp == 1}checked="checked"{/if} />Normal</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="2" {if $art.art.angtyp == 2}checked="checked"{/if} />Optional</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="3" {if $art.art.angtyp == 3}checked="checked"{/if} />Alternativ</label><br />
{else}
<input type="hidden" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" />
<input type="hidden" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="1" />
<input type="hidden" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="1" />
<input type="hidden" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" />
<input type="hidden" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="1" />
<input type="hidden" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="1" />
{/if}
</td>
<td>
{if $art.art.pagebreak}
<button type="button" class='pagebreak' id='pagebreakimg{$artnr}' onclick="togglePageBreak({$artnr});" title='<b>Manueller Seitenumbruch</b><br />Durch klick wird der erzwungene Seitenumbruch an dieser Stelle entfernt.'></button>
<input type='hidden' id='pagebreak{$artnr}' name='pagebreak{$artnr}' value='1' />
<button type="button" class='pagebreak' id='pagebreakimg{$artnr|escape}' onclick="togglePageBreak({$artnr|escape});" title='<b>Manueller Seitenumbruch</b><br />Durch klick wird der erzwungene Seitenumbruch an dieser Stelle entfernt.'></button>
<input type='hidden' id='pagebreak{$artnr|escape}' name='pagebreak{$artnr|escape}' value='1' />
{else}
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr}' onclick="togglePageBreak({$artnr});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
<input type='hidden' id='pagebreak{$artnr}' name='pagebreak{$artnr}' value='' />
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr|escape}' onclick="togglePageBreak({$artnr|escape});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
<input type='hidden' id='pagebreak{$artnr|escape}' name='pagebreak{$artnr|escape}' value='' />
{/if}
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr}" id="artact{$artnr}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr}' id='arttyp{$artnr}'>
{html_options values=$typids output=$typs selected="{$art.art.typ_id}"}
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr|escape}" id="artact{$artnr|escape}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr|escape}' id='arttyp{$artnr|escape}'>
{html_options values=$typids output=$typs selected="{$art.art.typ_id|escape}"}
</select><br />
<label class='artlabel'>Artikelbeschreibung:</label><br />
<input class='art' value='{$art.art.bezeichn|escape}' id='arthead{$artnr}' maxlength='50' name='arthead{$artnr}' onInput='addArtBlock({$type|escape},{$artnr});' /><br />
<div id='arteig{$artnr}'>
<input class='art' value='{$art.art.bezeichn|escape}' id='arthead{$artnr|escape}' maxlength='50' name='arthead{$artnr|escape}' onInput='addArtBlock({$type|escape},{$artnr|escape});' /><br />
<div id='arteig{$artnr|escape}'>
{$eignr = 0}
{foreach $art.eig as $eigensch}
{$eignr = $eignr+1}
@@ -295,12 +295,12 @@
<div class="sweig_spacer"></div>
{else}
<br />
<button type="button" class='sweig' onclick="sweig({$artnr},{$eignr});"></button>
<button type="button" class='sweig' onclick="sweig({$artnr|escape},{$eignr|escape});"></button>
{/if}
<input class='arteig' value='{$eigensch.bezeichn|escape}' id='arteig{$artnr}_{$eignr}' maxlength='100' name='arteig{$artnr}_{$eignr}' onChange='addEigBlock({$artnr},{$eignr});' />
<input class='artval' value='{$eigensch.wert|escape}' id='artval{$artnr}_{$eignr}' maxlength='50' name='artval{$artnr}_{$eignr}' />
<select name='arteinh{$artnr}_{$eignr}' id='arteinh{$artnr}_{$eignr}' class='arteinh'>
{html_options values=$einhids output=$einhs selected="{$eigensch.einheit_id}"}
<input class='arteig' value='{$eigensch.bezeichn|escape}' id='arteig{$artnr|escape}_{$eignr|escape}' maxlength='100' name='arteig{$artnr|escape}_{$eignr|escape}' onChange='addEigBlock({$artnr|escape},{$eignr|escape});' />
<input class='artval' value='{$eigensch.wert|escape}' id='artval{$artnr|escape}_{$eignr|escape}' maxlength='50' name='artval{$artnr|escape}_{$eignr|escape}' />
<select name='arteinh{$artnr|escape}_{$eignr|escape}' id='arteinh{$artnr|escape}_{$eignr|escape}' class='arteinh'>
{html_options values=$einhids output=$einhs selected="{$eigensch.einheit_id|escape}"}
</select>
{/foreach}
{$eignr = $eignr+1}
@@ -308,50 +308,50 @@
<div class="sweig_spacer"></div>
{else}
<br />
<button type="button" class='sweig' onclick="sweig({$artnr},{$eignr});"></button>
<button type="button" class='sweig' onclick="sweig({$artnr|escape},{$eignr|escape});"></button>
{/if}
<input class='arteig' value='' id='arteig{$artnr}_{$eignr}' maxlength='100' name='arteig{$artnr}_{$eignr}' onChange='addEigBlock({$artnr},{$eignr});' />
<input class='artval' value='' id='artval{$artnr}_{$eignr}' maxlength='50' name='artval{$artnr}_{$eignr}' />
<select name='arteinh{$artnr}_{$eignr}' id='arteinh{$artnr}_{$eignr}' class='arteinh'>
<input class='arteig' value='' id='arteig{$artnr|escape}_{$eignr|escape}' maxlength='100' name='arteig{$artnr|escape}_{$eignr|escape}' onChange='addEigBlock({$artnr|escape},{$eignr|escape});' />
<input class='artval' value='' id='artval{$artnr|escape}_{$eignr|escape}' maxlength='50' name='artval{$artnr|escape}_{$eignr|escape}' />
<select name='arteinh{$artnr|escape}_{$eignr|escape}' id='arteinh{$artnr|escape}_{$eignr|escape}' class='arteinh'>
{html_options values=$einhids output=$einhs selected="1"}
</select>
</div>
<p>
<label class='artlabel'>Bestellnummer (WA-Nr.):</label><br />
<input class='artwa' value='{$art.art.wanr}' id='artwa{$artnr}' maxlength='50' name='artwa{$artnr}' />
<input class='artwa' value='{$art.art.wanr|escape}' id='artwa{$artnr|escape}' maxlength='50' name='artwa{$artnr|escape}' />
<label>Mwst:</label>
<select name='artmwst{$artnr}' id='artmwst{$artnr}' class='arteinh'>
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1}"}
<select name='artmwst{$artnr|escape}' id='artmwst{$artnr|escape}' class='arteinh'>
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1|escape}"}
</select>
</p>
</td>
<td class="pricetd">
<label class='artlabel'>Menge:</label><br />
<input class='artmen' value='{$art.art.menge|replace:".":","}' id='artmen{$artnr}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr}' />
<select name='artmeneinh{$artnr}' id='artmeneinh{$artnr}' class='artmeneinh'>
{html_options values=$einhids output=$einhs selected="{$art.art.einheit_id}"}
<input class='artmen' value='{$art.art.menge|replace:".":","|escape}' id='artmen{$artnr|escape}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr|escape}' />
<select name='artmeneinh{$artnr|escape}' id='artmeneinh{$artnr|escape}' class='artmeneinh'>
{html_options values=$einhids output=$einhs selected="{$art.art.einheit_id|escape}"}
</select><br />
<label class='artlabel'>Preis:</label><br />
<input class='artpr' value='{$art.art.preis|replace:".":","}' id='artpr{$artnr}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr}' /><br />
<input class='artpr' value='{$art.art.preis|replace:".":","|escape}' id='artpr{$artnr|escape}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr|escape}' /><br />
<label class='artlabel'>Rabatt:</label><br />
<input class='artpr' value='{$art.art.rabatt}' id='artrab{$artnr}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr}' /><b>%</b>
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr}" id="artrabtyp{$artnr}" value="1" {if $art.art.rabatttyp} checked='checked'{/if} />Winterrabatt</label>
<input class='artpr' value='{$art.art.rabatt|escape}' id='artrab{$artnr|escape}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr|escape}' /><b>%</b>
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr|escape}" id="artrabtyp{$artnr|escape}" value="1" {if $art.art.rabatttyp} checked='checked'{/if} />Winterrabatt</label>
<br />
</td>
</tr>
<script>
$(function() {
$( "#arthead{$artnr}" ).autocomplete({
$( "#arthead{$artnr|escape}" ).autocomplete({
source: "ajax/auto/art.php",
minLength: 2,
select: function( event, ui ) {
i=0;
$("#arthead{$artnr}").val(ui.item.value);
$("#artpr{$artnr}").val(ui.item.preis);
$("#arttyp{$artnr}").val(ui.item.typ);
$("#artmeneinh{$artnr}").val(ui.item.einh);
cleareig({$artnr});
$("#arthead{$artnr|escape}").val(ui.item.value);
$("#artpr{$artnr|escape}").val(ui.item.preis);
$("#arttyp{$artnr|escape}").val(ui.item.typ);
$("#artmeneinh{$artnr|escape}").val(ui.item.einh);
cleareig({$artnr|escape});
i=0;
if(ui.item.eig)
{
@@ -359,9 +359,9 @@
{
i++;
addEigBlock(1,i);
$("#arteig{$artnr}_"+i).val(value.des);
$("#artval{$artnr}_"+i).val(value.val);
$("#arteinh{$artnr}_"+i).val(value.einh);
$("#arteig{$artnr|escape}_"+i).val(value.des);
$("#artval{$artnr|escape}_"+i).val(value.val);
$("#arteinh{$artnr|escape}_"+i).val(value.einh);
});
}
return false;
@@ -378,71 +378,71 @@
<button type="button" class='swart' onclick="swart({$artnr|escape});"></button>
{/if}
{if $type == 3 || $type == 5}
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" />Normal</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="2" />Optional</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="3" />Alternativ</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" />Normal</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="2" />Optional</label><br />
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="3" />Alternativ</label><br />
{else}
<input type="hidden" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" />
<input type="hidden" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="1" />
<input type="hidden" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="1" />
<input type="hidden" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" />
<input type="hidden" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="1" />
<input type="hidden" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="1" />
{/if}
</td>
<td>
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr}' onclick="togglePageBreak({$artnr});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
<input type='hidden' id='pagebreak{$artnr}' name='pagebreak{$artnr}' value='' />
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr|escape}' onclick="togglePageBreak({$artnr|escape});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
<input type='hidden' id='pagebreak{$artnr|escape}' name='pagebreak{$artnr|escape}' value='' />
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr}" id="artact{$artnr}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr}' id='arttyp{$artnr}'>
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr|escape}" id="artact{$artnr|escape}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr|escape}' id='arttyp{$artnr|escape}'>
{html_options values=$typids output=$typs selected="1"}
</select><br />
<label class='artlabel'>Artikelbeschreibung:</label><br />
<input class='art' value='' id='arthead{$artnr}' maxlength='50' name='arthead{$artnr}' onInput='addArtBlock({$type|escape},{$artnr});' /><br />
<div id='arteig{$artnr}'>
<input class='art' value='' id='arthead{$artnr|escape}' maxlength='50' name='arthead{$artnr|escape}' onInput='addArtBlock({$type|escape},{$artnr|escape});' /><br />
<div id='arteig{$artnr|escape}'>
{$eignr = 1}
<div class="sweig_spacer"></div>
<input class='arteig' value='' id='arteig{$artnr}_{$eignr}' maxlength='100' name='arteig{$artnr}_{$eignr}' onChange='addEigBlock({$artnr},{$eignr});' />
<input class='artval' value='' id='artval{$artnr}_{$eignr}' maxlength='50' name='artval{$artnr}_{$eignr}' />
<select name='arteinh{$artnr}_{$eignr}' id='arteinh{$artnr}_{$eignr}' class='arteinh'>
<input class='arteig' value='' id='arteig{$artnr|escape}_{$eignr|escape}' maxlength='100' name='arteig{$artnr|escape}_{$eignr|escape}' onChange='addEigBlock({$artnr|escape},{$eignr|escape});' />
<input class='artval' value='' id='artval{$artnr|escape}_{$eignr|escape}' maxlength='50' name='artval{$artnr|escape}_{$eignr|escape}' />
<select name='arteinh{$artnr|escape}_{$eignr|escape}' id='arteinh{$artnr|escape}_{$eignr|escape}' class='arteinh'>
{html_options values=$einhids output=$einhs selected="1"}
</select>
</div>
<p>
<label class='artlabel'>Bestellnummer (WA-Nr.):</label><br />
<input class='artwa' value='' id='artwa{$artnr}' maxlength='50' name='artwa{$artnr}' />
<input class='artwa' value='' id='artwa{$artnr|escape}' maxlength='50' name='artwa{$artnr|escape}' />
<label>Mwst:</label>
<select name='artmwst{$artnr}' id='artmwst{$artnr}' class='arteinh'>
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1}"}
<select name='artmwst{$artnr|escape}' id='artmwst{$artnr|escape}' class='arteinh'>
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1|escape}"}
</select>
</p>
</td>
<td class="pricetd">
<label class='artlabel'>Menge:</label><br />
<input class='artmen' value='' id='artmen{$artnr}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}+(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr}' />
<select name='artmeneinh{$artnr}' id='artmeneinh{$artnr}' class='artmeneinh'>
<input class='artmen' value='' id='artmen{$artnr|escape}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}+(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr|escape}' />
<select name='artmeneinh{$artnr|escape}' id='artmeneinh{$artnr|escape}' class='artmeneinh'>
{html_options values=$einhids output=$einhs selected="5"}
</select><br />
<label class='artlabel'>Preis:</label><br />
<input class='artpr' value='' id='artpr{$artnr}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr}' /><br />
<input class='artpr' value='' id='artpr{$artnr|escape}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr|escape}' /><br />
<label class='artlabel'>Rabatt:</label><br />
<input class='artpr' value='' id='artrab{$artnr}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr}' /><b>%</b>
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr}" id="artrabtyp{$artnr}" value="1" />Winterrabatt</label>
<input class='artpr' value='' id='artrab{$artnr|escape}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr|escape}' /><b>%</b>
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr|escape}" id="artrabtyp{$artnr|escape}" value="1" />Winterrabatt</label>
<br />
</td>
</tr>
<script>
$(function() {
$( "#arthead{$artnr}" ).autocomplete({
$( "#arthead{$artnr|escape}" ).autocomplete({
source: "ajax/auto/art.php",
minLength: 2,
select: function( event, ui ) {
i=0;
$("#arthead{$artnr}").val(ui.item.value);
$("#artpr{$artnr}").val(ui.item.preis);
$("#arttyp{$artnr}").val(ui.item.typ);
$("#artmeneinh{$artnr}").val(ui.item.einh);
cleareig({$artnr});
$("#arthead{$artnr|escape}").val(ui.item.value);
$("#artpr{$artnr|escape}").val(ui.item.preis);
$("#arttyp{$artnr|escape}").val(ui.item.typ);
$("#artmeneinh{$artnr|escape}").val(ui.item.einh);
cleareig({$artnr|escape});
i=0;
if(ui.item.eig)
{
@@ -450,9 +450,9 @@
{
i++;
addEigBlock(1,i);
$("#arteig{$artnr}_"+i).val(value.des);
$("#artval{$artnr}_"+i).val(value.val);
$("#arteinh{$artnr}_"+i).val(value.einh);
$("#arteig{$artnr|escape}_"+i).val(value.des);
$("#artval{$artnr|escape}_"+i).val(value.val);
$("#arteinh{$artnr|escape}_"+i).val(value.einh);
});
}
return false;
@@ -470,11 +470,11 @@
<fieldset class='nolim'>
<legend>Rechnungsabschluss:</legend>
<label class='artlabel'>Abschlusstext:</label><br />
<textarea class='bigtextarea' name='outro' id='outro' >{$rechnung.outro}</textarea>
<textarea class='bigtextarea' name='outro' id='outro' >{$rechnung.outro|escape}</textarea>
{if $kommission}
<p>
<label>Kommission: </label> {$kommission.vname} {$kommission.nname} {$kommission.str} {$kommission.hnr}, {$kommission.plz} {$kommission.ort}
<input type='hidden' name='kommission' id='kommission' value='{$kommission.id}' />
<label>Kommission: </label> {$kommission.vname|escape} {$kommission.nname|escape} {$kommission.str|escape} {$kommission.hnr|escape}, {$kommission.plz|escape} {$kommission.ort|escape}
<input type='hidden' name='kommission' id='kommission' value='{$kommission.id|escape}' />
</p>
{/if}
<br />
@@ -503,7 +503,7 @@
{if $draft && $loaddraft == 0}
<script>
askdraft("Sie haben {if $typename == "Angebot"}das{else if $typename == "Brief"}den{else}die{/if} zuletzt bearbeitete {$typename} nicht gespeichert.<br />{$draftname} ({$draftstr})<br />Möchten Sie daran nun weiter Arbeiten? Falls nein werden diese Daten gelöscht.",{$draft},{$type},{$draftadressid});
askdraft("Sie haben {if $typename == "Angebot"}das{else if $typename == "Brief"}den{else}die{/if} zuletzt bearbeitete {$typename|escape} nicht gespeichert.<br />{$draftname|escape} ({$draftstr|escape})<br />Möchten Sie daran nun weiter Arbeiten? Falls nein werden diese Daten gelöscht.",{$draft|escape},{$type|escape},{$draftadressid|escape});
</script>
{else}
<script>
+3 -3
View File
@@ -3,8 +3,8 @@
<fieldset class="big">
<legend>Neue Adresse:</legend>
<div class='centersrc'>
{html_options name=adrsrc_field onChange="ajax_searchadress({$rechid},'changeadr',0)" id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp="ajax_searchadress({$rechid},'changeadr',0)" title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
{html_options name=adrsrc_field onChange="ajax_searchadress({$rechid|escape},'changeadr',0)" id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp="ajax_searchadress({$rechid|escape},'changeadr',0)" title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
<br />
</div>
@@ -14,4 +14,4 @@
</fieldset>
</form>
<script language='javascript'>ajax_searchadress({$rechid},'changeadr',0);</script>
<script language='javascript'>ajax_searchadress({$rechid|escape},'changeadr',0);</script>
+3 -3
View File
@@ -3,8 +3,8 @@
<fieldset class="big">
<legend>Neue Adresse:</legend>
<div class='centersrc'>
{html_options name=adrsrc_field onChange='ajax_searchadress({$rechid},\'copy\',0)' id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp='ajax_searchadress({$rechid},'copy',0)' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
{html_options name=adrsrc_field onChange='ajax_searchadress({$rechid|escape},\'copy\',0)' id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp='ajax_searchadress({$rechid|escape},'copy',0)' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
<br />
</div>
@@ -14,4 +14,4 @@
</fieldset>
</form>
<script language='javascript'>ajax_searchadress({$rechid},'copy',0);</script>
<script language='javascript'>ajax_searchadress({$rechid|escape},'copy',0);</script>
+32 -32
View File
@@ -15,11 +15,11 @@
{elseif $type == 5}
{$typename="Brief"}
{/if}
<h2>{$typename} {$headstr}:</h2>
<form action="?action=rechnungadd&mailformsent=1&mail=1&id={$smarty.get.id}" name="mainform" id='rechnform' method='POST'>
<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} an <a href="?action=kundenshow&id={$adresse.partner_id}">Kunde {$adresse.partner_id}</a></legend>
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
<p>
<br />
@@ -28,9 +28,9 @@
{html_options values=$mails output=$mails}
</select><br />
<label>Betreff:</label>
<input value='{$smarty.session.firma}: anbei das von Ihnen gewünschte Dokument' id='sub' maxlength='150' name='sub' /><br />
<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} == "Herr"}
{if $anrs.{$adresse.anrede_id|escape} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -38,16 +38,16 @@
{else}
Sehr geehrter Herr{" "}
{if $adresse.titel_id > 1}
{$titels.{$adresse.titel_id}}{" "}
{$titels.{$adresse.titel_id}|escape}{" "}
{/if}
{if $adresse.vname}
{$adresse.vname}{" "}
{$adresse.vname|escape}{" "}
{/if}
{$adresse.nname},
{$adresse.nname|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
{elseif $anrs.{$adresse.anrede2_id|escape} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -55,16 +55,16 @@
{else}
Sehr geehrter Herr{" "}
{if $adresse.titel2_id > 1}
{$titels.{$adresse.titel2_id}}{" "}
{$titels.{$adresse.titel2_id}|escape}{" "}
{/if}
{if $adresse.vname2}
{$adresse.vname2}{" "}
{$adresse.vname2|escape}{" "}
{/if}
{$adresse.nname2},
{$adresse.nname2|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede_id} == "Frau"}
{elseif $anrs.{$adresse.anrede_id|escape} == "Frau"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -72,16 +72,16 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel_id > 1}
{$titels.{$adresse.titel_id}}{" "}
{$titels.{$adresse.titel_id}|escape}{" "}
{/if}
{if $adresse.vname}
{$adresse.vname}{" "}
{$adresse.vname|escape}{" "}
{/if}
{$adresse.nname},
{$adresse.nname|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
{elseif $anrs.{$adresse.anrede2_id|escape} == "Frau"}
{strip}
<input value='
{if $rechnung.anr1}
@@ -89,12 +89,12 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel2_id > 1}
{$titels.{$adresse.titel2_id}}{" "}
{$titels.{$adresse.titel2_id}|escape}{" "}
{/if}
{if $adresse.vname2}
{$adresse.vname2}{" "}
{$adresse.vname2|escape}{" "}
{/if}
{$adresse.nname2},
{$adresse.nname2|escape},
{/if}
' id='anr1' maxlength='150' name='anr1' /><br />
{/strip}
@@ -103,7 +103,7 @@
{/if}
<label>Zweite Anrede:</label>
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id} == "Herr" && $anrs.{$adresse.anrede2_id} == "Herrn"}
{if $anrs.{$adresse.anrede_id|escape} == "Frau" && $anrs.{$adresse.anrede2_id|escape} == "Herr" && $anrs.{$adresse.anrede2_id|escape} == "Herrn"}
{strip}
<input value='
{if $rechnung.anr2}
@@ -111,16 +111,16 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel_id > 1}
{$titels.{$adresse.titel_id}}{" "}
{$titels.{$adresse.titel_id}|escape}{" "}
{/if}
{if $adresse.vname}
{$adresse.vname}{" "}
{$adresse.vname|escape}{" "}
{/if}
{$adresse.nname},
{$adresse.nname|escape},
{/if}
' id='anr2' maxlength='150' name='anr2' /><br />
{/strip}
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
{elseif $anrs.{$adresse.anrede2_id|escape} == "Frau"}
{strip}
<input value='
{if $rechnung.anr2}
@@ -128,12 +128,12 @@
{else}
Sehr geehrte Frau{" "}
{if $adresse.titel2_id > 1}
{$titels.{$adresse.titel2_id}}{" "}
{$titels.{$adresse.titel2_id}|escape}{" "}
{/if}
{if $adresse.vname2}
{$adresse.vname2}{" "}
{$adresse.vname2|escape}{" "}
{/if}
{$adresse.nname2},
{$adresse.nname2|escape},
{/if}
' id='anr2' maxlength='150' name='anr2' /><br />
{/strip}
@@ -142,11 +142,11 @@
{/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}.
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} {$smarty.session.nname}
{$smarty.session.firma}
{$smarty.session.vname|escape} {$smarty.session.nname|escape}
{$smarty.session.firma|escape}
---
Das Dokument ist als PDF-Datei im Anhang hinterlegt.
@@ -169,7 +169,7 @@ http://www.adobe.de/products/acrobat/readstep2.html
<br />
<h2>Anhang:</h2>
<div id="pdfpreview">
<iframe src='{$pdffile}' width='100%' height='600px'></iframe>
<iframe src='{$pdffile|escape}' width='100%' height='600px'></iframe>
</div>
</div>
</div>
+2 -2
View File
@@ -1,6 +1,6 @@
{include file="heading.tpl" heading="Dokumentanzeige"}
<h2><div class='fifty'>Original:</div><div class='fifty'>Kopie:</div></h2>
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile}' width='45%' height='600px'></iframe>
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile|escape}' width='45%' height='600px'></iframe>
{if $pdffile2}
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile2}' width='45%' height='600px'></iframe>
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile2|escape}' width='45%' height='600px'></iframe>
{/if}
+16 -16
View File
@@ -1,55 +1,55 @@
{include file="heading.tpl" heading="Umschlag bedrucken"}
<div class="fifty">
<form action="?action=rechnungadd&formsent=1&id={$loadrech}" name="mainform" id='rechnform' method='POST'>
<form action="?action=rechnungadd&formsent=1&id={$loadrech|escape}" name="mainform" id='rechnform' method='POST'>
<fieldset class='nolim'>
<legend>{$typename} an <a href="?action=kundenshow&id={$adresse.partner_id}">Kunde {$adresse.partner_id}</a></legend>
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
{if $adresse.firma}
<label class='checktext'><input type="checkbox" name="show_firmaanr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMAANR:1 || $rechnung.adressfields==0}checked="checked"{/if} />Firma</label>
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma}</label>
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma|escape}</label>
{/if}
{if $adresse.anrede_id > 1}
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}}</label>
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}|escape}</label>
{/if}
{if $adresse.titel_id > 1}
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}}</label>
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}|escape}</label>
{/if}
{if $adresse.vname || $adresse.nname}
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname} {$adresse.nname}</label>
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname|escape} {$adresse.nname|escape}</label>
{/if}
<br />
{if $adresse.anrede2_id > 1}
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}}</label>
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}|escape}</label>
{/if}
{if $adresse.titel2_id > 1}
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}}</label>
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}|escape}</label>
{/if}
{if $adresse.vname2 || $adresse.nname2}
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2} {$adresse.nname2}</label>
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2|escape} {$adresse.nname2|escape}</label>
{/if}
{if $adresse.str}
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str} {$adresse.hnr}</label>
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str|escape} {$adresse.hnr|escape}</label>
{/if}
{if $adresse.plz || $adresse.ort}
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz} {$adresse.ort}
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz|escape} {$adresse.ort|escape}
{/if}
{if $adresse.ortsteil}
- {$adresse.ortsteil}
- {$adresse.ortsteil|escape}
{/if}
{if $adresse.plz || $adresse.ort}
</label>
{/if}
{if $adresse.land}
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land}</label>
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land|escape}</label>
{/if}
{if $adresse.zusatz}
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false}</label>
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false|escape}</label>
{/if}
<br />
<label class='artlabel'>Adresserweiterung: </label>
<input class='art' name="adresserweiterung" value="{$rechnung.adresserweiterung}" />
<input class='art' name="adresserweiterung" value="{$rechnung.adresserweiterung|escape}" />
<br />
<input name="adressid" type="hidden" value="{$adresse.adressid}" />
<input name="adressid" type="hidden" value="{$adresse.adressid|escape}" />
<button type="button" class='preview' onclick="ajax_loadUmschlagpreview();">Vorschau aktualisieren</button><br />
</fieldset>
</form>