Bestehende Codebasis als Ausgangsstand aufgenommen. - .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen; Verzeichnisstruktur ueber .gitkeep erhalten - .gitattributes: Zeilenenden normalisiert (LF im Repo), Binaerformate markiert - db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der Anwendung aus der externen Konfiguration statt hartkodiert aus der Datei; Passwort wird ueber eine temporaere Optionsdatei statt per Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet, Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
512 lines
21 KiB
Smarty
512 lines
21 KiB
Smarty
<div class="centersidebyside">
|
|
<div class="sidebyside">
|
|
{if $rechnung.typ_id && !$newtype}
|
|
{$type = $rechnung.typ_id}
|
|
{$headstr = 'Bearbeiten'}
|
|
{else if $rechnung.typ_id && $newtype}
|
|
{$type = $newtype}
|
|
{$loadrech = ''}
|
|
{$headstr = 'Generieren'}
|
|
{else}
|
|
{$headstr = 'Neu'}
|
|
{/if}
|
|
{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"}
|
|
{elseif $type == 6}
|
|
{$typename="Mahnung"}
|
|
{/if}
|
|
<h2>{$typename} {$headstr}:</h2>
|
|
<form action="?action=rechnungadd&formsent=1&id={$loadrech}" 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>
|
|
{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>
|
|
{/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>
|
|
{/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>
|
|
{/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>
|
|
{/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>
|
|
{/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>
|
|
{/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>
|
|
{/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>
|
|
{/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}
|
|
{/if}
|
|
{if $adresse.ortsteil}
|
|
- {$adresse.ortsteil}
|
|
{/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>
|
|
{/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>
|
|
{/if}
|
|
<br />
|
|
<label>Adresserweiterung: </label><input name="adresserweiterung" value="{$rechnung.adresserweiterung}" />
|
|
<br />
|
|
<p>
|
|
<label>Währung:</label>
|
|
<select name='wahrung'>
|
|
{html_options values=$wahrids output=$wahrs selected="{$rechnung.wahrung_id|default:1}"}
|
|
</select><br />
|
|
<label>Mehrwertsteuer:</label>
|
|
<select name='mwst'>
|
|
{html_options values=$mwstids output=$mwsts selected="{$rechnung.mwst_id|default:2}"}
|
|
</select>
|
|
<br />
|
|
{if $type == 1}
|
|
<label>Zahlungsziel:</label>
|
|
<select name='zahlziel'>
|
|
{html_options values=$zzielids output=$zziels selected="{$rechnung.zahlziel_id|default:2}"}
|
|
</select>
|
|
{else}
|
|
<input type='hidden' name='zahlziel' value='1'>
|
|
{/if}
|
|
{if $rechnung.typ_id && !$newtype}
|
|
<label class='checktext'><input type="checkbox" name="change_date" value="1" />Datum auch ändern</label>
|
|
{/if}
|
|
{if $typename != "Gutschrift"}
|
|
<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>
|
|
<br />
|
|
<label>Rabatt Beschreibung:</label>
|
|
<input name='rabattdesc' id='rabattdesc' maxlength='100' value="{$rechnung.rabattdesc}" />
|
|
</div>
|
|
{/if}
|
|
|
|
<label class='checktext'><input type="checkbox" name="sub_mwst" value="1" {if $rechnung.sub_mwst == 1}checked="checked"{/if} />Eingetragene Preise sind bereits inkl. MwSt.</label>
|
|
<br />
|
|
</p>
|
|
{if $type != 1}
|
|
<p>
|
|
<br />
|
|
<label>Anrede:</label>
|
|
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr1}
|
|
$rechnung.anr1
|
|
{else}
|
|
Sehr geehrter Herr{" "}
|
|
{if $adresse.titel_id > 1}
|
|
{$titels.{$adresse.titel_id}}{" "}
|
|
{/if}
|
|
{if $adresse.vname}
|
|
{$adresse.vname}{" "}
|
|
{/if}
|
|
{$adresse.nname},
|
|
{/if}
|
|
' id='anr1' maxlength='150' name='anr1' /><br />
|
|
{/strip}
|
|
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr1}
|
|
$rechnung.anr1
|
|
{else}
|
|
Sehr geehrter Herr{" "}
|
|
{if $adresse.titel2_id > 1}
|
|
{$titels.{$adresse.titel2_id}}{" "}
|
|
{/if}
|
|
{if $adresse.vname2}
|
|
{$adresse.vname2}{" "}
|
|
{/if}
|
|
{$adresse.nname2},
|
|
{/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}}{" "}
|
|
{/if}
|
|
{if $adresse.vname}
|
|
{$adresse.vname}{" "}
|
|
{/if}
|
|
{$adresse.nname},
|
|
{/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}}{" "}
|
|
{/if}
|
|
{if $adresse.vname2}
|
|
{$adresse.vname2}{" "}
|
|
{/if}
|
|
{$adresse.nname2},
|
|
{/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} == "Herrn"}
|
|
{strip}
|
|
<input value='
|
|
{if $rechnung.anr2}
|
|
$rechnung.anr2
|
|
{else}
|
|
Sehr geehrte Frau{" "}
|
|
{if $adresse.titel_id > 1}
|
|
{$titels.{$adresse.titel_id}}{" "}
|
|
{/if}
|
|
{if $adresse.vname}
|
|
{$adresse.vname}{" "}
|
|
{/if}
|
|
{$adresse.nname},
|
|
{/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}}{" "}
|
|
{/if}
|
|
{if $adresse.vname2}
|
|
{$adresse.vname2}{" "}
|
|
{/if}
|
|
{$adresse.nname2},
|
|
{/if}
|
|
' id='anr2' maxlength='150' name='anr2' /><br />
|
|
{/strip}
|
|
{else}
|
|
<input value='' id='anr2' maxlength='150' name='anr2' /><br />
|
|
{/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}
|
|
</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 />
|
|
{else}
|
|
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:""}' 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}"}
|
|
</select>
|
|
{else}
|
|
<input type='hidden' name='buchKto' value='1'>
|
|
{/if}
|
|
<br />
|
|
<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>
|
|
|
|
<fieldset class='nolim'>
|
|
<legend>Artikel:</legend>
|
|
<div id="atrikeldiv">
|
|
<table cellspacing = '0' id='arttbl'>
|
|
{$artnr = 0}
|
|
{foreach $artikel as $art}
|
|
{$artnr = $artnr+1}
|
|
<tr id='artrow{$artnr|escape}' {if $artnr%2==0}bgcolor='#dddddd'{/if}>
|
|
<td>
|
|
{if $artnr > 1}
|
|
<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 />
|
|
{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" />
|
|
{/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' />
|
|
{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='' />
|
|
{/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}"}
|
|
</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}'>
|
|
{$eignr = 0}
|
|
{foreach $art.eig as $eigensch}
|
|
{$eignr = $eignr+1}
|
|
{if $eignr == 1}
|
|
<div class="sweig_spacer"></div>
|
|
{else}
|
|
<br />
|
|
<button type="button" class='sweig' onclick="sweig({$artnr},{$eignr});"></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}"}
|
|
</select>
|
|
{/foreach}
|
|
{$eignr = $eignr+1}
|
|
{if $eignr == 1}
|
|
<div class="sweig_spacer"></div>
|
|
{else}
|
|
<br />
|
|
<button type="button" class='sweig' onclick="sweig({$artnr},{$eignr});"></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'>
|
|
{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}' />
|
|
<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>
|
|
</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}"}
|
|
</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 />
|
|
<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>
|
|
<br />
|
|
</td>
|
|
</tr>
|
|
<script>
|
|
$(function() {
|
|
$( "#arthead{$artnr}" ).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});
|
|
i=0;
|
|
if(ui.item.eig)
|
|
{
|
|
$.each(ui.item.eig, function(index, value)
|
|
{
|
|
i++;
|
|
addEigBlock(1,i);
|
|
$("#arteig{$artnr}_"+i).val(value.des);
|
|
$("#artval{$artnr}_"+i).val(value.val);
|
|
$("#arteinh{$artnr}_"+i).val(value.einh);
|
|
});
|
|
}
|
|
return false;
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
{/foreach}
|
|
|
|
{$artnr = $artnr+1}
|
|
<tr id='artrow{$artnr|escape}' {if $artnr%2==0}bgcolor='#dddddd'{/if} >
|
|
<td>
|
|
{if $artnr > 1}
|
|
<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 />
|
|
{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" />
|
|
{/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='' />
|
|
|
|
<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="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}'>
|
|
{$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'>
|
|
{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}' />
|
|
<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>
|
|
</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'>
|
|
{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 />
|
|
<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>
|
|
<br />
|
|
</td>
|
|
</tr>
|
|
<script>
|
|
$(function() {
|
|
$( "#arthead{$artnr}" ).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});
|
|
i=0;
|
|
if(ui.item.eig)
|
|
{
|
|
$.each(ui.item.eig, function(index, value)
|
|
{
|
|
i++;
|
|
addEigBlock(1,i);
|
|
$("#arteig{$artnr}_"+i).val(value.des);
|
|
$("#artval{$artnr}_"+i).val(value.val);
|
|
$("#arteinh{$artnr}_"+i).val(value.einh);
|
|
});
|
|
}
|
|
return false;
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|
|
</table>
|
|
|
|
|
|
</div>
|
|
<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>
|
|
<fieldset class='nolim'>
|
|
<legend>Rechnungsabschluss:</legend>
|
|
<label class='artlabel'>Abschlusstext:</label><br />
|
|
<textarea class='bigtextarea' name='outro' id='outro' >{$rechnung.outro}</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}' />
|
|
</p>
|
|
{/if}
|
|
<br />
|
|
<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='Speichern' />
|
|
</form>
|
|
</div>
|
|
|
|
|
|
<div class="sidebysidePDF">
|
|
<br />
|
|
<h2>Vorschau:</h2>
|
|
<div id="savemsg">
|
|
|
|
</div>
|
|
<div id="pdfpreview">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="question">
|
|
</div>
|
|
|
|
{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});
|
|
</script>
|
|
{else}
|
|
<script>
|
|
startwithpreview = 1;
|
|
</script>
|
|
{/if} |