Initialer Commit: Kundenverwaltung (PHP/Smarty)
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>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
<div class='widthlimiter'>
|
||||
<form action="?action=settings&formsent=1&do=buchKto&id={$id}&add=1" name="mainform" method='POST'>
|
||||
<fieldset>
|
||||
<legend>Buchungskonto:</legend>
|
||||
<label>Nummer:</label>
|
||||
<input name='kto' id='kto' maxlength='8' value='{$kto}' pattern='[0-9]+' />
|
||||
<br />
|
||||
<label>Name:</label>
|
||||
<input name='name' id='name' maxlength='100' value='{$name}' />
|
||||
<br />
|
||||
<label>Beschreibung:</label>
|
||||
<input name='descr' id='descr' maxlength='255' value='{$descr}' />
|
||||
<br />
|
||||
</fieldset>
|
||||
<input type='submit' value='Speichern' />
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,66 @@
|
||||
<h2>Projekt bearbeiten:</h2>
|
||||
<form action="?action=projectadd&formsent=1&id={$loadproject}" name="mainform" id='rechnform' method='POST'>
|
||||
<input type="hidden" name="partnerid" value="{$project.partner_id|escape}" />
|
||||
|
||||
|
||||
<fieldset>
|
||||
<label>Projektname:</label>
|
||||
<input value='{$project.name}' id='name' maxlength='150' name='name' /><br />
|
||||
|
||||
<legend>Arbeiten:</legend>
|
||||
<div id="arbeitendiv">
|
||||
<table cellspacing = '0' id='worktbl'>
|
||||
{$worknr = 0}
|
||||
{foreach $work as $workline}
|
||||
{$worknr = $worknr+1}
|
||||
<tr id='artrow{$worknr|escape}' {if $worknr%2==0}bgcolor='#dddddd'{/if}>
|
||||
<td>
|
||||
<label class='checktext'><input type='checkbox' class='' value='1' {if $workline.rechn == 1}checked='checked'{/if} id='workrechn{$worknr}' name='workrechn{$worknr}' onChange='checkPrevWork({$worknr});' />Rechn </label><br />
|
||||
</td>
|
||||
<td>
|
||||
<label class='artlabel'>Arbeit:</label><br />
|
||||
<input class='work' value='{$workline.bezeichn|escape}' id='workhead{$worknr}' maxlength='150' name='workhead{$worknr}' onInput='addWorkBlock({$worknr});' /><br />
|
||||
</td>
|
||||
<td>
|
||||
<label class='artlabel'>Stunden:</label><br />
|
||||
<input class='workstd' value='{$workline.std|replace:".":","}' id='workstd{$worknr}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}(,\d{ldelim}0,3{rdelim})?" name='workstd{$worknr}' />
|
||||
<br />
|
||||
</td>
|
||||
<td>
|
||||
<label class='artlabel'>Datum:</label><br />
|
||||
<input class='workdate' value='{$workline.datetime}' id='workdate{$worknr}' maxlength='8' pattern="(0[1-9]|1[0-9]|2[0-9]|3[01]).(0[1-9]|1[012]).[0-9]{ldelim}2{rdelim}" name='workdate{$worknr}' />
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
{$worknr = $worknr+1}
|
||||
<tr id='artrow{$worknr|escape}' {if $worknr%2==0}bgcolor='#dddddd'{/if}>
|
||||
<td>
|
||||
<label class='checktext'><input type='checkbox' class='' value='1' {if $workline.rechn == 1}checked='checked'{/if} id='workrechn{$worknr}' name='workrechn{$worknr}' onChange='checkPrevWork({$worknr});' />Rechn </label><br />
|
||||
</td>
|
||||
<td>
|
||||
<label class='artlabel'>Arbeit:</label><br />
|
||||
<input class='work' value='' id='workhead{$worknr}' maxlength='150' name='workhead{$worknr}' onInput='addWorkBlock({$worknr});' />
|
||||
</td>
|
||||
<td>
|
||||
<label class='artlabel'>Stunden:</label><br />
|
||||
<input class='workstd' value='' id='workstd{$worknr}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}(,\d{ldelim}0,3{rdelim})?" name='workstd{$worknr}' />
|
||||
</td>
|
||||
<td>
|
||||
<label class='artlabel'>Datum:</label><br />
|
||||
<input class='workdate' value='{$date}' id='workdate{$worknr}' maxlength='8' pattern="(0[1-9]|1[0-9]|2[0-9]|3[01]).(0[1-9]|1[012]).[0-9]{ldelim}2{rdelim}" name='workdate{$worknr}' />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button>
|
||||
|
||||
<input type='submit' value='Speichern' />
|
||||
</form>
|
||||
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
@@ -0,0 +1,512 @@
|
||||
<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}
|
||||
@@ -0,0 +1,238 @@
|
||||
<div class='widthlimiter'>
|
||||
{if {$kunde.partner_id}}
|
||||
{if $termin.typ == 0}
|
||||
{$termin.typ = 1}
|
||||
{/if}
|
||||
<h2>Termin für Kunde Nummer:</h2>
|
||||
<span class='big'>{$kunde.partner_id}</span><br />
|
||||
{$kunde.vname} {$kunde.nname} {$kunde.firma}<br />{$kunde.str} {$kunde.hnr}<br />{$kunde.plz} {$kunde.ort}
|
||||
{/if}
|
||||
{if $user}
|
||||
{$termin.user = $user}
|
||||
{/if}
|
||||
<br />
|
||||
<form action="?action=terminadd&formsent=1&adressid={$kunde.id}&id={$termin.id}&user={$user}" name="mainform" method='POST'>
|
||||
<fieldset>
|
||||
<legend>Termin Informationen:</legend>
|
||||
{if {$user} > 0 || (($termin.typ == 0 || $termin.typ == 5 )&& $termin.id > 0)}
|
||||
<label>Terminart:</label>
|
||||
<select name='typ'>
|
||||
{html_options values=$vac_types_id output=$vac_types_name selected="{$termin.typ|default:0}"}
|
||||
</select>
|
||||
{else}
|
||||
<label>Terminart:</label>
|
||||
<select name='typ'>
|
||||
{html_options values=$typids output=$typs selected="{$termin.typ|default:1}"}
|
||||
</select>
|
||||
{/if}
|
||||
<br />
|
||||
<label>Mitarbeiter:</label>
|
||||
<select name='user'>
|
||||
{html_options values=$optuserids output=$optusers selected="{$termin.user|default:{$smarty.session.user}}"}
|
||||
</select><br />
|
||||
{if $termin.typ != 0 && $termin.typ != 5}
|
||||
<label>Zweiter Mitarbeiter:</label>
|
||||
<select name='user2'>
|
||||
{html_options values=$optuserids output=$optusers selected="{$termin.user2|default:0}"}
|
||||
</select><br />
|
||||
<label>Dritter Mitarbeiter:</label>
|
||||
<select name='user3'>
|
||||
{html_options values=$optuserids output=$optusers selected="{$termin.user3|default:0}"}
|
||||
</select><br />
|
||||
<label>Vierter Mitarbeiter:</label>
|
||||
<select name='user4'>
|
||||
{html_options values=$optuserids output=$optusers selected="{$termin.user4|default:0}"}
|
||||
</select><br />
|
||||
{/if}
|
||||
<label>Beschreibung:</label>
|
||||
<input name='head' id='head' maxlength='100' value='{$termin.head}' />
|
||||
<br />
|
||||
<label kundeclass='artlabel'>Notizen:</label>
|
||||
<textarea class='bigtextarea' id='text' name='text'>{$termin.text}</textarea><p>
|
||||
<label class='checktext'><input type="checkbox" id='done' name="done" value="1" {if $termin.done == 1}checked="checked"{/if} />Termin ist erledigt</label>
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<label id='folgelbl' {if $termin.done == 0}style='color: #ddd;'{/if} class='checktext'><input type="checkbox" id='folge' name="folge" value="1" {if $termin.done == 0}disabled='disabled'{/if}{if $termin.folge == 1}checked="checked"{/if} />Folgetermin vormerken
|
||||
</label>
|
||||
<br />
|
||||
<label id='folgetyplbl' {if $termin.folge == 0}style='color: #ddd;'{/if} class='checktext_align'>
|
||||
<select id='folgetyp' name='folgetyp' {if $termin.folge == 0}disabled='disabled'{/if}>
|
||||
{html_options values=$typids output=$typs selected="{$termin.folgetyp|default:1}"}
|
||||
</select>
|
||||
</label><label id='folgedayslbl' {if $termin.folge == 0}style='color: #ddd;'{/if} > in <select id='folgedays' name='folgedays' {if $termin.folge == 0}disabled='disabled'{/if}>
|
||||
{html_options values=$days output=$days selected="{$termin.folgedays|default:0}"}
|
||||
</select> Tagen</label>
|
||||
</p>
|
||||
<br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
|
||||
{if $termin.typ != 0 && $termin.typ != 5}
|
||||
<legend>Termin Zeitraum:</legend>
|
||||
<label>Von:</label><input name='datetime_start' id='datetime_start' pattern='\d{ldelim}2{rdelim}.\d{ldelim}2{rdelim}.\d{ldelim}4{rdelim}\s\um\s\d{ldelim}2{rdelim}\:\d{ldelim}2{rdelim}' value='{$termin.termtime|mysql_date_to_dispdate}' /><br />
|
||||
<label>Bis:</label><input name='datetime_end' id='datetime_end' pattern='\d{ldelim}2{rdelim}.\d{ldelim}2{rdelim}.\d{ldelim}4{rdelim}\s\um\s\d{ldelim}2{rdelim}\:\d{ldelim}2{rdelim}' value='{$termin.termend|mysql_date_to_dispdate}' /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button>
|
||||
{else}
|
||||
<legend>Urlaubs- / Krankheitszeitraum:</legend>
|
||||
<label>Von:</label><input name='datetime_start' id='datetime_start' pattern='\d{ldelim}2{rdelim}.\d{ldelim}2{rdelim}.\d{ldelim}4{rdelim}' value='{$termin.termtime|mysql_date_to_urlaubdispdate}' /><br />
|
||||
<label>Bis:</label><input name='datetime_end' id='datetime_end' pattern='\d{ldelim}2{rdelim}.\d{ldelim}2{rdelim}.\d{ldelim}4{rdelim}' value='{$termin.termend|mysql_date_to_urlaubdispdate}' /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button>
|
||||
{/if}
|
||||
</fieldset>
|
||||
<input type='submit' value='Speichern' />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$('#done').change(function() {
|
||||
|
||||
if($('#done:checked').val() == 1)
|
||||
{
|
||||
$('#folge').removeAttr('disabled');
|
||||
$('#folgelbl').removeAttr('style');
|
||||
if($('#folge:checked').val() == 1)
|
||||
{
|
||||
$('#folgedays').removeAttr('disabled');
|
||||
$('#folgetyp').removeAttr('disabled');
|
||||
$('#folgetyplbl').removeAttr('disabled');
|
||||
$('#folgedayslbl').removeAttr('style');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#folgedays').attr('disabled', 'disabled');
|
||||
$('#folgetyp').attr('disabled', 'disabled');
|
||||
$('#folgetyplbl').attr('disabled', 'disabled');
|
||||
$('#folgedayslbl').attr('style', 'color: #ddd;');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#folge').attr('disabled', 'disabled');
|
||||
$('#folgedays').attr('disabled', 'disabled');
|
||||
$('#folgetyp').attr('disabled', 'disabled');
|
||||
$('#folgetyplbl').attr('disabled', 'disabled');
|
||||
$('#folgelbl').attr('style', 'color: #ddd;');
|
||||
$('#folgedayslbl').attr('style', 'color: #ddd;');
|
||||
}
|
||||
});
|
||||
$('#folge').change(function() {
|
||||
|
||||
if($('#folge:checked').val() == 1)
|
||||
{
|
||||
$('#folgedays').removeAttr('disabled');
|
||||
$('#folgetyp').removeAttr('disabled');
|
||||
$('#folgetyplbl').removeAttr('disabled');
|
||||
$('#folgedayslbl').removeAttr('style');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#folgedays').attr('disabled', 'disabled');
|
||||
$('#folgetyp').attr('disabled', 'disabled');
|
||||
$('#folgedayslbl').attr('style', 'color: #ddd;');
|
||||
}
|
||||
});
|
||||
|
||||
{if $termin.typ != 0 && $termin.typ != 5}
|
||||
$('#datetime_start').datetimepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 15,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
timeFormat: 'hh:mm',
|
||||
separator: ' um ',
|
||||
onClose: function(dateText, inst) {
|
||||
var endDateTextBox = $('#datetime_end');
|
||||
if (endDateTextBox.val() != '') {
|
||||
var testStartDate = new Date(dateText);
|
||||
var testEndDate = new Date(endDateTextBox.val());
|
||||
if (testStartDate > testEndDate)
|
||||
endDateTextBox.val(dateText);
|
||||
}
|
||||
else {
|
||||
endDateTextBox.val(dateText);
|
||||
}
|
||||
},
|
||||
onSelect: function (selectedDateTime){
|
||||
var start = $(this).datetimepicker('getDate');
|
||||
$('#datetime_end').datetimepicker('option', 'minDate', new Date(start.getTime()));
|
||||
}
|
||||
});
|
||||
$('#datetime_end').datetimepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 15,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
timeFormat: 'hh:mm',
|
||||
separator: ' um ',
|
||||
onClose: function(dateText, inst) {
|
||||
var startDateTextBox = $('#datetime_start');
|
||||
if (startDateTextBox.val() != '') {
|
||||
var testStartDate = new Date(startDateTextBox.val());
|
||||
var testEndDate = new Date(dateText);
|
||||
if (testStartDate > testEndDate)
|
||||
startDateTextBox.val(dateText);
|
||||
}
|
||||
else {
|
||||
startDateTextBox.val(dateText);
|
||||
}
|
||||
},
|
||||
onSelect: function (selectedDateTime){
|
||||
var end = $(this).datetimepicker('getDate');
|
||||
$('#datetime_start').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
|
||||
}
|
||||
});
|
||||
{else}
|
||||
$('#datetime_start').datetimepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 15,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
timeFormat: '',
|
||||
separator: '',
|
||||
onClose: function(dateText, inst) {
|
||||
var endDateTextBox = $('#datetime_end');
|
||||
if (endDateTextBox.val() != '') {
|
||||
var testStartDate = new Date(dateText);
|
||||
var testEndDate = new Date(endDateTextBox.val());
|
||||
if (testStartDate > testEndDate)
|
||||
endDateTextBox.val(dateText);
|
||||
}
|
||||
else {
|
||||
endDateTextBox.val(dateText);
|
||||
}
|
||||
},
|
||||
onSelect: function (selectedDateTime){
|
||||
var start = $(this).datetimepicker('getDate');
|
||||
$('#datetime_end').datetimepicker('option', 'minDate', new Date(start.getTime()));
|
||||
}
|
||||
});
|
||||
$('#datetime_end').datetimepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 15,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
timeFormat: '',
|
||||
separator: '',
|
||||
onClose: function(dateText, inst) {
|
||||
var startDateTextBox = $('#datetime_start');
|
||||
if (startDateTextBox.val() != '') {
|
||||
var testStartDate = new Date(startDateTextBox.val());
|
||||
var testEndDate = new Date(dateText);
|
||||
if (testStartDate > testEndDate)
|
||||
startDateTextBox.val(dateText);
|
||||
}
|
||||
else {
|
||||
startDateTextBox.val(dateText);
|
||||
}
|
||||
},
|
||||
onSelect: function (selectedDateTime){
|
||||
var end = $(this).datetimepicker('getDate');
|
||||
$('#datetime_start').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
|
||||
}
|
||||
});
|
||||
|
||||
{/if}
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class='widthlimiter'>
|
||||
<form action="?action=settings&formsent=1&do=zahlziel&id={$id}&add=1" name="mainform" method='POST'>
|
||||
<fieldset>
|
||||
<legend>Zahlung:</legend>
|
||||
<label>Zahlbar innerhalb:</label>
|
||||
<input name='days' id='days' maxlength='3' value='{$days}' pattern='[0-9]+' /><b>Tagen</b>
|
||||
<br />
|
||||
<label>Skonto abziehen bis zu:</label>
|
||||
<input name='skontodays' id='skontodays' maxlength='3' value='{$skontodays}' pattern='[0-9]+' /><b>Tage</b>
|
||||
<br />
|
||||
<label>Skonto:</label>
|
||||
<input name='skontodays' id='skontodays' maxlength='3' value='{$skontodays}' pattern='[0-9]+' /><b>%</b>
|
||||
<br />
|
||||
</fieldset>
|
||||
<input type='submit' value='Speichern' />
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,197 @@
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br />
|
||||
<div id='weekview'>
|
||||
<a href='?action=termin&show=list'><span class='cal-list' title="Terminliste anzeigen" style='position: absolute; left: 50%;top: -11em;'></span></a><br />
|
||||
<a href='?action=termin&page={$page-1}'><span class='left' title="8 Tage zurück" style='position: absolute; left: 0;top: -8em;'></span></a>
|
||||
<a href='?action=termin&page=0'><span class='now' title="heute" style='position: absolute; left: 50%;top: -8em;'></span></a>
|
||||
<a href='?action=termin&page={$page+1}'><span class='right' title="8 Tage vor" style='position: absolute; right: 0;top: -8em;'></span></a>
|
||||
{foreach $weekdays as $weekday}
|
||||
{$dayXpos = 10*$i+3.5}
|
||||
{if $i == 1 && $page == 0}
|
||||
<div class='nowweekdayhead' style='left: {$dayXpos}em;'>{$weekday.weekday}
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine von heute drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{else if {$weekday.weekday|substr:0:7} != "Samstag" && {$weekday.weekday|substr:0:7} != "Sonntag" && {$weekday.feiertag} == ""}
|
||||
<div class='weekdayhead' style='left: {$dayXpos}em;'>{$weekday.weekday}<br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {$dayXpos+0.5}em;'></div>{*</a>*}
|
||||
{else if {$weekday.feiertag} == ""}
|
||||
<div class='weekdayhead' style='left: {$dayXpos}em;background-color: #FFDDDD;'>{$weekday.weekday}<br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {$dayXpos+0.5}em;background-color: #FFFFFF;'></div>{*</a>*}
|
||||
{else}
|
||||
<div class='weekdayhead' style='left: {$dayXpos}em;background-color: #FFFF55;'>{$weekday.weekday} {$weekday.feiertag} <br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {$dayXpos+0.5}em;background-color: #FFFFFF;'></div>{*</a>*}
|
||||
{/if}
|
||||
<div class='weekday_line' style='left: {$dayXpos}em;'></div>
|
||||
{*FULL DAY TERMINE*}
|
||||
{$shift = 0}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
{foreach $weekday.fulldaytermine as $key=>$termin}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift + $dayXpos}em;background-color: {$users.{$termin.user}.color};'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate' style='padding-top: {$shift}em;'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
</a>
|
||||
{$shift = $shift+1.1}
|
||||
{/foreach}
|
||||
{$lastFullDayterm = $shift}
|
||||
|
||||
{*TERMINE IN SLOTS SORTIEREN*}
|
||||
{$termNr = 0}
|
||||
{$currlayer = 0}
|
||||
{$usedslots = 0}
|
||||
{$layer = 0}
|
||||
{foreach $weekday.termine as $key=>$termin}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{if {$terminstart} == 0}
|
||||
{$terminlength = {$termin.termdauer}*60}
|
||||
{$terminstart = 450+$lastarbtermend+15}
|
||||
{$lastarbtermend = $terminstart-450 + $termin.termdauer * 60}
|
||||
{/if}
|
||||
{for $slot = 0 to 10}
|
||||
{if $terminstart > $layer[$slot]}
|
||||
{$weekday.termine[$termNr].slot = $slot}
|
||||
{$layer[$slot] = $terminstart + $terminlength}
|
||||
{if $slot > $usedslots}
|
||||
{$usedslots = $usedslots+1}
|
||||
{/if}
|
||||
{break}
|
||||
{/if}
|
||||
{/for}
|
||||
{$termNr = $termNr + 1}
|
||||
{/foreach}
|
||||
|
||||
{*TERMINE ANZEIGEN*}
|
||||
{$lastarbtermend = 0}
|
||||
{$width = (10-$lastFullDayterm) / ($usedslots+1)}
|
||||
{foreach $weekday.termine as $key=>$termin}
|
||||
{$shift = $lastFullDayterm + $width*$termin.slot}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{if {$terminstart} == 0}
|
||||
<a href='?action=projectadd&id={$termin.projectid}'>
|
||||
{$terminlength = {$termin.termdauer}*60}
|
||||
{$terminstart = 450+$lastarbtermend+15}
|
||||
{$lastarbtermend = $terminstart-450 + $termin.termdauer * 60}
|
||||
{$termin.typ = 'Arbeitsleistung'}
|
||||
{else}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{/if}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
|
||||
|
||||
{if {$termin.typ} != 'Arbeitsleistung'}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width-0.3}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.1 + $shift}em;background-color: {$users.{$termin.user}.color}'
|
||||
title='
|
||||
{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br />
|
||||
Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if}
|
||||
{if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br />
|
||||
<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />
|
||||
Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
{else}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width-0.3}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.1 + $shift}em;background-color: {if $termin.done}#CFC{else}{$users.{$termin.user}.color}{/if};'
|
||||
title='{$termin.typ} - {$termin.firma} {$termin.vname} {$termin.nname}<br /> <b>{$termin.projectname}</b> <br /> {$termin.head}<br /> <b>Dauer: </b>{$termin.termdauer|string_format:"%.1f"}h'>
|
||||
{/if}
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
</a>
|
||||
{/foreach}
|
||||
|
||||
|
||||
{*ANWESENDE MITARBEITER ANZEIGEN*}
|
||||
{$ma_nr = 0}
|
||||
{foreach $weekday.ma_check as $key=>$mitarb}
|
||||
{$ma_nr = $ma_nr + 1.2}
|
||||
{$height = 1.2}
|
||||
{$width = 9}
|
||||
{$start = $ma_nr + 0.5}
|
||||
<div class='mabox'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.5}em;background-color: {$mitarb.color};'
|
||||
title='{$mitarb.vname} {$mitarb.nname} - Anwesend {if {$mitarb.complete} == 0} aber noch nicht ausgestempelt{/if}<br />'>
|
||||
{if {$mitarb.complete} == 0}<font color='#aa0000'>{else}<font color='#000000'>{/if}{$mitarb.vname} {$mitarb.nname|substr:0:1}.</font>
|
||||
</div>
|
||||
</a>
|
||||
{/foreach}
|
||||
{$i=$i+1}
|
||||
{/foreach}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{$i = 0}
|
||||
{while $i < 16}
|
||||
{$i = $i+1}
|
||||
<div class='hourline_desc' style='top: {$i*4-0.5}em'>{{$i+6}|str_pad:2:'0':0}:00</div>
|
||||
<div class='hourline' style='top: {$i*4}em'></div>
|
||||
{/while}
|
||||
{$time = {$smarty.now|date_format:"%H"}*60 + {$smarty.now|date_format:"%M"}}
|
||||
<div id='timeline' style='top: {4 + ($time - 420)/15}em'></div>
|
||||
|
||||
{*{if $page == 0}
|
||||
{for $i = 1 to 7}
|
||||
<div class='weatherinfo' style="left: {3+10*$i}em;background-image: url('{$weather.{$i}.icon}');">
|
||||
{$weather.{$i}.low}°C - {$weather.{$i}.high}°C
|
||||
</div>
|
||||
{/for}
|
||||
{/if}*}
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
{foreach $users as $user}
|
||||
{if $user.openvacation < 0}
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color}'>{$user.vname} {$user.nname} <font color='#cc0000'><b>({$user.openvacation})</b></font></span></a>
|
||||
{else}
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color}'>{$user.vname} {$user.nname} <b>({$user.openvacation})</b></span></a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
<br />
|
||||
<br />
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
$(".terminbox").tooltip({
|
||||
track: true,
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
showBody: " - ",
|
||||
|
||||
});
|
||||
$(".doneterminbox").tooltip({
|
||||
track: true,
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
showBody: " - ",
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,276 @@
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br />
|
||||
<div id='monthview'>
|
||||
<a href='?action=termin&show=list'><span class='cal-list' title="Terminliste anzeigen" style='position: absolute; left: 50%;top: -11em;'></span></a><br />
|
||||
<a href='?action=termin&show=month&page={$page-1}'><span class='left' title="6 Monate zurück" style='position: absolute; left: 0;top: -8em;'></span></a>
|
||||
<a href='?action=termin&show=month&page=0'><span class='now' title="heute" style='position: absolute; left: 50%;top: -8em;'></span></a>
|
||||
<a href='?action=termin&show=month&page={$page+1}'><span class='right' title="6 Monate Tage vor" style='position: absolute; right: 0;top: -8em;'></span></a>
|
||||
{if $page == 0}
|
||||
{*<a href='?action=terminadd&date=0' title='Neuer Termin'>*}<div class='nowweekdaybg'></div>{*</a>*}
|
||||
{else}
|
||||
<div class='weekdaybg' style='left: 14em;'>
|
||||
</div>
|
||||
{/if}
|
||||
{foreach $weekdays as $weekday}
|
||||
{$lastarbtermend = 0}
|
||||
{if $i == 1 && $page == 0}
|
||||
<div class='nowweekdayhead' style='left: {10*$i+3.5}em;'>{$weekday.weekday}
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine von heute drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{else if {$weekday.weekday|substr:0:7} != "Samstag" && {$weekday.weekday|substr:0:7} != "Sonntag"}
|
||||
<div class='weekdayhead' style='left: {10*$i+3.5}em;'>{$weekday.weekday}<br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {10*$i+4}em;'></div>{*</a>*}
|
||||
{else}
|
||||
<div class='weekdayhead' style='left: {10*$i+3.5}em;background-color: #FFDDDD;'>{$weekday.weekday}<br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {10*$i+4}em;background-color: #FFFFFF;'></div>{*</a>*}
|
||||
{/if}
|
||||
<div class='weekday_line' style='left: {10*$i+3.5}em;'></div>
|
||||
|
||||
{$shift = 0}
|
||||
{$prevtermin= ""}
|
||||
{$absmaxshift.{$weekday.weekday} = 1}
|
||||
{$absmaxshiftone.{$weekday.weekday} = 0}
|
||||
{$shiftone = 0}
|
||||
{foreach $weekday.termine as $key=>$termin}
|
||||
|
||||
{if {$termin.termdauer} == "24:00:00"}
|
||||
{$termin.termdauer = "23:59:59"}
|
||||
{/if}
|
||||
{if {$prevtermin.termtime|date_format:"%H%M"} <= {$termin.termtime|date_format:"%H%M"} && {{$prevtermin.termtime|date_format:"%H%M"}+{$prevtermin.termdauer|date_format:"%H%M"}} > {$termin.termtime|date_format:"%H%M"}} {*starttime of next term is within the prev term*}
|
||||
{if {$prevtermin.termdauer} == "23:59:59"}
|
||||
{$shiftone = $shiftone+1}
|
||||
{else}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{/if}
|
||||
{if $termin.termdauer == "23:59:59"}
|
||||
{if $termin.user2 > 0}
|
||||
{$shiftone = $shiftone+1}
|
||||
{/if}
|
||||
{if $termin.user3 > 0}
|
||||
{$shiftone = $shiftone+1}
|
||||
{/if}
|
||||
{if $termin.user4 > 0}
|
||||
{$shiftone = $shiftone+1}
|
||||
{/if}
|
||||
{else}
|
||||
{if $termin.user2 > 0}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{if $termin.user3 > 0}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{if $termin.user4 > 0}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{/if}
|
||||
{$weekday.termine.{$key}.shift = $shift}
|
||||
{$weekday.termine.{$key}.shiftone = $shiftone}
|
||||
|
||||
{if $shift+1 > $absmaxshift.{$weekday.weekday}}
|
||||
{$absmaxshift.{$weekday.weekday} = $shift+1}
|
||||
{/if}
|
||||
{if $shiftone > $absmaxshiftone.{$weekday.weekday}}
|
||||
{$absmaxshiftone.{$weekday.weekday} = $shiftone}
|
||||
{/if}
|
||||
{$prevtermin = $termin}
|
||||
{/foreach}
|
||||
|
||||
{$width = ((18 / $absmaxshift.{$weekday.weekday})-$absmaxshiftone.{$weekday.weekday})}
|
||||
{foreach $weekday.termine as $key=>$termin}
|
||||
|
||||
{$shift = 10*$i + 3.9 + ($width/2)*$termin.shift + $termin.shiftone}
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{if {$terminstart} == 0}
|
||||
<a href='?action=projectadd&id={$termin.projectid}'>
|
||||
{$terminlength = {$termin.termdauer}*60}
|
||||
{$terminstart = 450+$lastarbtermend}
|
||||
{$lastarbtermend = $terminstart-450 + $termin.termdauer * 60}
|
||||
{$termin.typ = 'Arbeitsleistung'}
|
||||
{else}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{/if}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
{if {$termin.typ} != 'Arbeitsleistung'}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user}.color}'
|
||||
title='
|
||||
{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br />
|
||||
Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if}
|
||||
{if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br />
|
||||
<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />
|
||||
Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
{else}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width/3}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {if $termin.done}#CFC{else}{$users.{$termin.user}.color}{/if}'
|
||||
title='
|
||||
{$termin.typ} -
|
||||
{$termin.firma} {$termin.vname} {$termin.nname}<br />
|
||||
<b>{$termin.projectname}</b> <br />
|
||||
{$termin.head}<br />
|
||||
<b>Dauer: </b>{if {$termin.termdauer} > 1} {$termin.termdauer|string_format:"%.1f"}h{/if}<br />
|
||||
{/if}
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{if $termin.user2}
|
||||
{$shift = 10*$i + 3.9 + ($width)*($termin.shift-1) + $termin.shiftone}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user2}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname2} {$termin.usernname2}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user2}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname2} {$termin.usernname2}</b><br /> Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if} {if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br /> <b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{if $termin.user3}
|
||||
{$shift = 10*$i + 3.9 + ($width)*($termin.shift-2) + $termin.shiftone}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user3}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname3} {$termin.usernname3}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user3}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname3} {$termin.usernname3}</b><br /> Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if} {if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br /> <b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{if $termin.user4}
|
||||
{$shift = 10*$i + 3.9 + ($width)*($termin.shift-3) + $termin.shiftone}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user4}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname4} {$termin.usernname4}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user4}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname4} {$termin.usernname4}</b><br /> Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if} {if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br /> <b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{$i=$i+1}
|
||||
{/foreach}
|
||||
|
||||
{$i = 0}
|
||||
{while $i < 16}
|
||||
{$i = $i+1}
|
||||
<div class='hourline_desc' style='top: {$i*4-0.5}em'>{{$i+6}|str_pad:2:'0':0}:00</div>
|
||||
<div class='hourline' style='top: {$i*4}em'></div>
|
||||
{/while}
|
||||
{$time = {$smarty.now|date_format:"%H"}*60 + {$smarty.now|date_format:"%M"}}
|
||||
<div id='timeline' style='top: {4 + ($time - 420)/15}em'></div>
|
||||
|
||||
{if $page == 0}
|
||||
{for $i = 1 to 7}
|
||||
<div class='weatherinfo' style="left: {3+10*$i}em;background-image: url('{$weather.{$i}.icon}');">
|
||||
{$weather.{$i}.low}°C - {$weather.{$i}.high}°C
|
||||
</div>
|
||||
{/for}
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<br />
|
||||
|
||||
{foreach $users as $user}
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color}'>{$user.vname} {$user.nname}</span></a>
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
$(".terminbox").tooltip({
|
||||
track: true,
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
showBody: " - ",
|
||||
|
||||
});
|
||||
$(".doneterminbox").tooltip({
|
||||
track: true,
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
showBody: " - ",
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,17 @@
|
||||
{include file="heading.tpl" heading="Rechnungsadresse ändern"}
|
||||
<form action='#' method='post'>
|
||||
<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.' />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<div id='adrsrc_list'>
|
||||
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchadress({$rechid},'changeadr',0);</script>
|
||||
@@ -0,0 +1,110 @@
|
||||
<div class="widthlimiter">
|
||||
<h2> Fremdenverkehrssumme {$ffyear0}:</h2>
|
||||
<div class="line"></div><br />
|
||||
<fieldset class='smallcenter'>
|
||||
<b>Excl. Ust.:</b><br />
|
||||
{$ffexcl0|number_format:2:",":"."}€<br />
|
||||
<b>Incl. Ust.:</b><br />
|
||||
{$ffincl0|number_format:2:",":"."}€<br />
|
||||
</fieldset>
|
||||
<br />
|
||||
<h2> Fremdenverkehrssumme {$ffyear1}:</h2>
|
||||
<div class="line"></div><br />
|
||||
<fieldset class='smallcenter'>
|
||||
<b>Excl. Ust.:</b><br />
|
||||
{$ffexcl1|number_format:2:",":"."}€<br />
|
||||
<b>Incl. Ust.:</b><br />
|
||||
{$ffincl1|number_format:2:",":"."}€<br />
|
||||
</fieldset>
|
||||
<br />
|
||||
<h2> Fremdenverkehrssumme {$ffyear2}:</h2>
|
||||
<div class="line"></div><br />
|
||||
<fieldset class='smallcenter'>
|
||||
<b>Excl. Ust.:</b><br />
|
||||
{$ffexcl2|number_format:2:",":"."}€<br />
|
||||
<b>Incl. Ust.:</b><br />
|
||||
{$ffincl2|number_format:2:",":"."}€<br />
|
||||
</fieldset>
|
||||
<br />
|
||||
|
||||
|
||||
<h2>Top 25 Kunden {$ffyear0}:</h2>
|
||||
<div class="line"></div><br />
|
||||
<table cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Platz </th>
|
||||
<th>Kd. Nummer </th>
|
||||
<th>Jahressumme </th>
|
||||
</tr>
|
||||
{$i = 0}
|
||||
{foreach from=$partnercharts0 key=partner item=sum}
|
||||
{$i = $i+1}
|
||||
<tr style="background-color: {cycle values="#e2e2e2,#f0f0f0"}">
|
||||
<td>{$i}:</td>
|
||||
<td><a href="?action=kundenshow&id={$partner}">{$partner}</a></td>
|
||||
<td>{$sum|number_format:2:",":"."}€</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<h2>Top 25 Kunden {$ffyear1}:</h2>
|
||||
<div class="line"></div><br />
|
||||
<table cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Platz </th>
|
||||
<th>Kd. Nummer </th>
|
||||
<th>Jahressumme </th>
|
||||
</tr>
|
||||
{$i = 0}
|
||||
{foreach from=$partnercharts1 key=partner item=sum}
|
||||
{$i = $i+1}
|
||||
<tr style="background-color: {cycle values="#e2e2e2,#f0f0f0"}">
|
||||
<td>{$i}:</td>
|
||||
<td><a href="?action=kundenshow&id={$partner}">{$partner}</a></td>
|
||||
<td>{$sum|number_format:2:",":"."}€</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<h2>Top 25 Kunden {$ffyear2}:</h2>
|
||||
<div class="line"></div><br />
|
||||
<table cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Platz </th>
|
||||
<th>Kd. Nummer </th>
|
||||
<th>Jahressumme </th>
|
||||
</tr>
|
||||
{$i = 0}
|
||||
{foreach from=$partnercharts2 key=partner item=sum}
|
||||
{$i = $i+1}
|
||||
<tr style="background-color: {cycle values="#e2e2e2,#f0f0f0"}">
|
||||
<td>{$i}:</td>
|
||||
<td><a href="?action=kundenshow&id={$partner}">{$partner}</a></td>
|
||||
<td>{$sum|number_format:2:",":"."}€</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Umsätze gesamt:</h2>
|
||||
<div class="line"></div><br />
|
||||
<fieldset class='smallcenter'>
|
||||
<b>{$ffyear0}:</b><br />
|
||||
{$completesum0|number_format:2:",":"."}€<br />
|
||||
<b>{$ffyear1}:</b><br />
|
||||
{$completesum1|number_format:2:",":"."}€<br />
|
||||
<b>{$ffyear2}:</b><br />
|
||||
{$completesum2|number_format:2:",":"."}€<br />
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
{include file="heading.tpl" heading="Dokument kopieren"}
|
||||
<form action='#' method='post'>
|
||||
<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.' />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<div id='adrsrc_list'>
|
||||
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchadress({$rechid},'copy',0);</script>
|
||||
@@ -0,0 +1,80 @@
|
||||
|
||||
|
||||
<div class="setupdiv">
|
||||
<form method="POST" id="mainform" action="?action=setup&formsent=1" enctype="multipart/form-data">
|
||||
<div class="textbox">
|
||||
<p>
|
||||
Das ist das erste mal, dass sie die Kundenverwaltung starten. <br />
|
||||
Bitte machen Sie die folgenden Angaben, damit das Programm richtig arbeiten kann.
|
||||
</p>
|
||||
<p>
|
||||
Nachdem alle Angaben ordnungsgemäß gemacht wurden wird das Setup folgende Sritte durchführen: <br />
|
||||
<ol>
|
||||
<li>Verbindung zu Datenbanken prüfen</li>
|
||||
<li>Die Grundlegende Datenbankstruktur erstellen. </li>
|
||||
<li>Die Datenbank mit nötigen Standartwerten füllen</li>
|
||||
<li>Eventuell vorhandene SKS Daten (dBase) einlesen</li>
|
||||
<li>Auf eine neuere Version der Kundenverwaltung updaten</li>
|
||||
<li>Eventuell vorhandene Datensicherung dieser Version einlesen</li>
|
||||
<li>Auf die aktuellste Version der Kundenverwaltung updaten</li>
|
||||
<li>Den Super User anlegen</li>
|
||||
</ol>
|
||||
Mit diesem Benutzer können Sie sich nach Ende des Setups direkt am Programm anmelden und alle weiteren Einstellungen vornehmen.
|
||||
</p>
|
||||
</div>
|
||||
{if $permissionerror}
|
||||
<div class="error">Ins Kunfigurationsverzeichnis kann nicht geschrieben werden, bitte ändern sie für die Installation die Rechte auf chmod 777 /kundenverwaltung/config.</div>
|
||||
{/if}
|
||||
<div class="warning">Vergessen Sie nicht das Verzeichnis nach der Installation <b>gegen änderungen zu sichern</b> (Schreibrechte entfernen <b>chmod 555 /kundenverwaltung/config</b>)!!</div>
|
||||
<fieldset>
|
||||
<legend>Allgemeines</legend>
|
||||
<label>Firma: </label><input type="text" required="required" name="firma" id="firma" value="{$firma|escape|default:"Wagner Markisen"}" title="Bitte geben sie Hier den Firmennamen ein." /><br />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Datenbank Optionen</legend>
|
||||
<label>Datenbank-Server: </label><input type="text" required="required" name="mysqlserver" id="mysqlserver" value="{$mysqlserver|escape|default:"localhost"}" title="Bitte geben sie Hier die Adresse des Servers an, auf dem die MySQL Datenbank läuft. (localhost, wenn sie auf diesen Server läuft)" /><br />
|
||||
<label>Leere db für die Kundenverwaltung: </label><input type="text" required="required" name="mysqldb" id="mysqldb" value="{$mysqldb|escape|default:"test"}" title="Hier muss der Name der Datenbank angegeben werden, in der die Tabellen für die Kundenverwaltung angelegt werden sollen." /><br />
|
||||
<label>opengeodb db (Bereits voll mit Daten): </label><input type="text" required="required" name="opengeodb" id="opengeodb" value="{$opengeodb|escape|default:"opengeodb"}" title="Bitte geben Sie hier den Namen der Datenbank an, inder sich ein vollständiges Abbild der OpenGeoDB befindet." /><br />
|
||||
<label>MySQL Benutzer: </label><input type="text" required="required" name="mysqluser" id="mysqluser" value="{$mysqluser|escape|default:"root"}" title="Bitte geben Sie den MySQL Benutzernamen hier an. Dieser Benutzer muss mindestens SELECT-Rechte auf die OpenGeoDB-Datenbank, und vollständige Rechte für die Kundenverwaltungs-datenbank haben." /><br />
|
||||
<label>MySQL Passwort: </label><input type="text" required="required" name="mysqlpw" id="mysqlpw" value="{$mysqlpw|escape|default:"root"}" title="Bitte geben Sie hier das MySQL Passwort passend zum Benutzer an." /><br />
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Super User</legend>
|
||||
<label>Alte Daten und Tabellen löschen, bevor Datenbank neu angelegt wird.</label>
|
||||
{html_checkboxes name="deletedb" values=1 output="" id="deletedb" selected=$deletedb onChange="checkenable(this.checked,\"suinfo\")" title="Wenn dieses Feld aktiv ist, wird die Datenbank vor dem Anlegen zunächst komplett gelöscht!!"}<br />
|
||||
<label>Super User Vorname:</label><input type="text" required="required" class="suinfo" name="suvname" id="suvname" value="{$suvname|escape|default:"Moritz"}" x-webkit-speech title="Bitte geben Sie hier den Vollständigen Vornamen des Super Users (Programmverwalters) an." /><br />
|
||||
<label>Super User Nachname:</label><input type="text" required="required" class="suinfo" name="sunname" id="sunname" value="{$sunname|escape|default:"Wagner"}" x-webkit-speech title="Bitte geben Sie hier den Vollständigen Nachnamen des Super Users (Programmverwalters) an." /><br />
|
||||
<label>Super User Benutzername:</label><input type="text" required="required" class="suinfo" name="sunick" id="sunick" pattern="^([A-z]|[0-9]){ldelim}2,50{rdelim}" value="{$sunick|escape|default:"m0"}" x-webkit-speech title="Bitte geben Sie hier den gewünschten Anmeldenamen des Super Users (Programmverwalters) an." /><br />
|
||||
<label>Super User Passwort:</label><input type="text" required="required" class="suinfo" name="newpw" pattern="^(\S){ldelim}6,50{rdelim}" id="newpw" value="" autocomplete="off" onkeyup="chkPass(this.value);" title="Bitte geben Sie hier ein möglichst sicheres Passwort für den Super User an. Vergessen sie dieses niemals!!" /><br />
|
||||
<div id="pwdscore">
|
||||
<div id="scorebar">0%</div><div id="complexity">zu kurz</div><br />
|
||||
</div><br />
|
||||
<label>Super User E-Mail:</label><input type="email" required="required" class="suinfo" name="sumail" id="sumail" value="{$sumail|escape|default:"m0w1337@gmail.com"}" title="Bitte geben Sie eine sichere E-Mail Adresse des Super Users an, diese wird unter anderem dazu verwendet, neue Passwörter zu generieren, falls eines vergessen wurde." /><br />
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Importfunktionen</legend>
|
||||
<label>Daten von SKS Auftrag importieren:</label>
|
||||
{html_checkboxes name="importsks" values=1 output="" id="importsks" selected=$importsks onChange="checkenable(this.checked,\"sksim\")" title="Durch wählen dieses Feldes werden direkt nach der Datenbank-Einrichtung alle Daten der Früheren SKS Auftrag Premium für Windows in die Kundenverwaltung eingespielt."}<br />
|
||||
<div class="warning">Bitte ersetzen Sie alle MEMO felder durch CHAR felder, da die Daten ansonsten nicht importiert werden können!!!<br /><b>Dafür kann das Programm DBF-Explorer verwendet werden.</b></div><br />
|
||||
<label>ADRESSEN.DBF Datei: </label><input type='file' name='adressen' id='adressen' required='required' class='sksim' title='Hier muss die dBASE datenbank der adressen ausgewählt werden.' /><br />
|
||||
<label>FAKTU.DBF Datei: </label><input type='file' name='faktu' id='faktu' required='required' class='sksim' title='Hier muss die dBASE datenbank der Fakturierung ausgewählt werden.' /><br />
|
||||
<label>FPOS.DBF Datei: </label><input type='file' name='fpos' id='fpos' required='required' class='sksim' title='Hier muss die dBASE datenbank der Fakturierungs-positionen ausgewählt werden.' /><br />
|
||||
<div class='line'></div>
|
||||
<label>Daten von vorigem Kundenstand importieren:</label>
|
||||
{html_checkboxes name="importpre" values=1 output="" id="importpre" selected=$importpre onChange="checkenable(this.checked,\"preim\")" title="Durch wählen dieses Feldes werden direkt nach der Datenbank-Einrichtung alle Daten einer Sicherungskopie der Kundenverwaltung eingespielt."}<br />
|
||||
<div class='warning'>Falls sie eine Datensicherung von einer alten Version der Kundenverwaltung importieren möchten, wählen Sie bitte die entsprechende Version aus der Liste, wird eine falsche angegeben kann der Import fehlschlagen.</div>
|
||||
<label>Version der Sicherungskopie:</label>
|
||||
{html_options name=version options=$versions selected=$version required='required' class='preim' title='Bitte wählen Sie hier die Version aus, aus der die Sicherungskopie stammt.'}
|
||||
</select><br />
|
||||
<label class='side'>kunden.sql Datei: </label><input type='file' name='adressen' id='adressen' required='required' class='preim' title='Hier bitte die sql-Datei der Datenbanksicherung auswählen, die eingespielt werden soll.' /><br />
|
||||
</fieldset>
|
||||
<input type='submit' value='Speichern' id='speichern' name='speichern' />
|
||||
</form>
|
||||
<script type='text/javascript' language='javascript'>
|
||||
checkenable(document.getElementById('importsks').checked,'sksim');
|
||||
checkenable(document.getElementById('importpre').checked,'preim');
|
||||
checkenable(document.getElementById('deletedb').checked,'suinfo');
|
||||
</script>
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
{*
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<div id='include_content'>
|
||||
*}
|
||||
{*
|
||||
<div id='notes'>
|
||||
<div class='noteshead'>Persönliche Notizen:</div>
|
||||
<textarea id='personalnotes' onkeyup='ajax_saveprivatenotes(this.value)' maxlength='200'>{$smarty.session.privateNotes|escape}</textarea>
|
||||
<div class='noteshead'>Notizen für alle:</div>
|
||||
<textarea id='globalnotes' onkeyup='ajax_saveglobalnotes(this.value)' maxlength='200'>{$smarty.session.globalNotes|escape}</textarea>
|
||||
</div>
|
||||
*}
|
||||
<div id='statusbar'>
|
||||
<div class='stat'><b>Benutzer: </b>{$smarty.session.nick}</div><div class='stat'><b>Termine: </b>{$termine}</div>
|
||||
<div class='stat' id="footertime">{$smarty.now|date_format:"%d.%m.%Y %H:%M Uhr"}</div><div class='stat'><b>Zoom: </b><span id='zoomdisplay'>{$zoom*100}%</span></div>
|
||||
</div>
|
||||
|
||||
<!-- overlayed elements -->
|
||||
<div id='loading'>
|
||||
<p>Bitte warten, es wird geladen...</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='bottomspace'></div>
|
||||
<script>zoom({$smarty.session.zoom|default:1});</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,72 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
<title>Kundenverwaltung V{$text_version|escape|default:'X.x.X'} --{$SWfirma|default:"UNKONFIGURIERT"|escape}--</title>
|
||||
<meta name="description" content="Software zur Kunden- und Terminverwaltung der Firma {$firma|default:"UNKONFIGURIERT"|escape}">
|
||||
<meta name="keywords" content="Kundenverwaltung, wagner-markisen, verwaltung, termine, kunden, adressen">
|
||||
|
||||
|
||||
|
||||
{*<script type="text/javascript" src="js/jquery.tools.min.js"></script> *}
|
||||
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>
|
||||
<script type="text/javascript" src="js/tooltips/jquery.tooltip.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery_timepicker_addon.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="js/bumpbox/mootools.js"></script>
|
||||
<script type="text/javascript" src="js/bumpbox/bumpbox-2.1.js"></script>
|
||||
<script type="text/javascript" src="js/bumpbox/assets.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/pwdmeter.js"></script>
|
||||
<script type="text/javascript" src="js/interface.js"></script>
|
||||
<script type="text/javascript" src="js/ajaxlists.js"></script>
|
||||
<script type="text/javascript" src="js/forms.js"></script>
|
||||
|
||||
<script type='text/javascript' src='spellcheck/include.js' ></script>
|
||||
|
||||
<script type="text/javascript" src="js/tiny_mce/jquery.tinymce.js"></script>
|
||||
<script type='text/javascript'>
|
||||
//$(function() {
|
||||
// $('textarea').spellAsYouType();
|
||||
//});
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="styles/default.css?v=2" type="text/css">
|
||||
<link rel="stylesheet" href="styles/pwdmeter.css" type="text/css">
|
||||
<link rel="stylesheet" href="styles/jquery_ui/redmond/jquery-ui-1.8.18.custom.css" type="text/css">
|
||||
<link rel="stylesheet" href="js/tooltips/jquery.tooltip.css" type="text/css">
|
||||
|
||||
<link rel="shortcut icon" href="./pics/favicon.png">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id='schnellbar'>
|
||||
|
||||
<a href='?action=kunden' title='<b>Kundenverwaltung</b>'><img src='pics/icons/kunden.png' class='schnellicon' alt='kunden' /></a>
|
||||
<a href='?action=termin' title='<b>Termine</b>'><img src='pics/icons/termine.png' class='schnellicon' alt='termine' /></a>
|
||||
<a href='?action=suchen' title='<b>Suche</b>'><img src='pics/icons/search.png' class='schnellicon' alt='suche' /></a>
|
||||
{*<a href='#' onClick='zoom("out")' class='noloading' title='<b>Verkleinern</b>'><img src='pics/icons/zoom-out.png' class='schnellicon' alt='kleiner' /></a>
|
||||
<a href='#' onClick='zoom(1)' class='noloading' title='<b>Originalgröße</b>'><img src='pics/icons/zoom-original.png' class='schnellicon' alt='normal' /></a>
|
||||
<a href='#' onClick='zoom("in")' class='noloading' title='<b>Vergrößern</b>'><img src='pics/icons/zoom-in.png' class='schnellicon' alt='größer' /></a>*}
|
||||
|
||||
{*<a href='?action=neu' title='<b>Neue Rechnung <br /> Neues Angebot <br /> Neue Gutschrift</b>'><img src='pics/icons/newdoc.png' class='schnellicon' alt='neues doc' /></a>*}
|
||||
|
||||
{*<a href='?action=messages' id='schnellicon_messages' title='<b>Nachrichten</b>'><img src='pics/icons/mail{$smarty.session.newmail}.png' class='schnellicon' alt='Nachrichten' /></a>*}
|
||||
|
||||
<a href='?action=liefer' title='<b>Zulieferer</b>'><img src='pics/icons/zulieferer.png' class='schnellicon' alt='zulieferer' /></a>
|
||||
|
||||
<a href='?action=stexp' title='<b>Steuerexport</b>'><img src='pics/icons/steuerExport.png' class='schnellicon' alt='steuer-export' /></a>
|
||||
|
||||
<a href='?action=charts'><img src='pics/icons/chart.png' class='schnellicon' title='<b>Statistiken</b>' alt='statistik' /></a>
|
||||
<a href='?action=zeiten'><img src='pics/icons/zeiterfassung.png' class='schnellicon' title='<b>Zeiterfassung</b>' alt='zeiterfassung' /></a>
|
||||
<a href='?action=settings'><img src='pics/icons/einstellungen.png' class='schnellicon' title='<b>Einstellungen</b>' alt='einstellungen' /></a>
|
||||
<a href='?action=logout'><img src='pics/icons/logout.png' class='schnellicon' title='<b>Abmelden</b>' alt='abmelden' /></a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id='include_content'>
|
||||
@@ -0,0 +1,47 @@
|
||||
{if $heading|stristr:"Einstellung"}
|
||||
<img src="./pics/icons/einstellungen.png" class="headingimgL" />
|
||||
<img src="./pics/icons/einstellungen.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Kunde"}
|
||||
<img src="./pics/icons/kunden.png" class="headingimgL" />
|
||||
<img src="./pics/icons/kunden.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Termin"}
|
||||
<img src="./pics/icons/termine.png" class="headingimgL" />
|
||||
<img src="./pics/icons/termine.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Statistik"}
|
||||
<img src="./pics/icons/chart.png" class="headingimgL" />
|
||||
<img src="./pics/icons/chart.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Steuerexport"}
|
||||
<img src="./pics/icons/steuerExport.png" class="headingimgL" />
|
||||
<img src="./pics/icons/steuerExport.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Suchen"}
|
||||
<img src="./pics/icons/search.png" class="headingimgL" />
|
||||
<img src="./pics/icons/search.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Dokumen"}
|
||||
<img src="./pics/icons/newdoc.png" class="headingimgL" />
|
||||
<img src="./pics/icons/newdoc.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Nachricht"}
|
||||
<img src="./pics/icons/mail.png" class="headingimgL" />
|
||||
<img src="./pics/icons/mail.png" class="headingimgR" />
|
||||
{elseif $heading|stristr:"Zeiter"}
|
||||
<img src="./pics/icons/zeiterfassung.png" class="headingimgL" />
|
||||
<img src="./pics/icons/zeiterfassung.png" class="headingimgR" />
|
||||
{/if}
|
||||
<h1>
|
||||
{if $smarty.now|date_format:"%H" < 3}
|
||||
{$heading|escape|default:"Immer noch nicht im Bett?? oder etwa schon aufgestanden??"}
|
||||
{elseif $smarty.now|date_format:"%H" < 8}
|
||||
{$heading|escape|default:"So früh schon da? Wäre Ausschlafen nicht besser gewesen?"}
|
||||
{elseif $smarty.now|date_format:"%H" < 10}
|
||||
{$heading|escape|default:"Guten Morgen!"}
|
||||
{elseif $smarty.now|date_format:"%H" < 16}
|
||||
{$heading|escape|default:"Mahlzeit"}
|
||||
{elseif $smarty.now|date_format:"%H" < 17}
|
||||
{$heading|escape|default:"Servus!!"}
|
||||
{elseif $smarty.now|date_format:"%H" < 19}
|
||||
{$heading|escape|default:"Guten Abend"}
|
||||
{elseif $smarty.now|date_format:"%H" < 22}
|
||||
{$heading|escape|default:"So spät noch hier Jetzt wird's aber Zeit für Feierabend"}
|
||||
{else}
|
||||
{$heading|escape|default:"Willkommen"}
|
||||
{/if}
|
||||
</h1>
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
<form action='#' method='post'>
|
||||
<fieldset class="big">
|
||||
<legend>Kundensuche:</legend>
|
||||
<a href='?action=kundenadd'><span class='addcenter' title="Neuer Kunde"></span></a><br />
|
||||
<div class='centersrc'>
|
||||
{html_options name=kdnsrc_field onChange='ajax_searchkunden(0)' id=kdnsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='kdnsrc_src' id='kdnsrc_src' value='{$search}' class='searchform' onKeyUp='ajax_searchkunden(0)' autofocus='autofocus' 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>
|
||||
|
||||
<div id='kdnsrc_list'>
|
||||
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchkunden({$page});</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
@@ -0,0 +1,273 @@
|
||||
{include file="heading.tpl" heading="Kundendetails"}
|
||||
{if $kunde.id}
|
||||
<div class="widthlimiter">
|
||||
|
||||
<span>Kunde Nummer:<br /><span class='big'>{$kunde.id}</span></span><br /> <span>Angelegt am <b>{$kunde.datetime_new|date_format:"%A, den %d.%m.%Y"}</b></span><br />
|
||||
<p>
|
||||
<h3>Alle Versionen dieses Kunden:</h3><br />
|
||||
{foreach $newrecords as $newrecord}
|
||||
<div style="background-color: #ccc;"><a href="?action=kundenshow&id={$newrecord.id}"><img src="./pics/icons/hist_f.png" class="histico">Kunde {$newrecord.id}</a> Angelegt am {$newrecord.datetime_new|date_format:"%a, den %d.%m.%Y"}</div>
|
||||
{/foreach}
|
||||
{if $newrecords}
|
||||
<div style="background-color: #fcc;"><b><img src="./pics/icons/cross.png" class="histico">{$kunde.id} Die Angezeigte Version ist veraltet</b></div>
|
||||
{else}
|
||||
<div style="background-color: #cfc;"><b><img src="./pics/icons/check.png" class="histico">{$kunde.id} Die Angezeigte Version ist die aktuellste</b></div>
|
||||
{/if}
|
||||
{foreach $oldrecords as $oldrecord}
|
||||
<div style="background-color: #ccc;"><a href="?action=kundenshow&id={$oldrecord.id}"><img src="./pics/icons/hist_b.png" class="histico">Kunde {$oldrecord.id}</a> Angelegt am {$oldrecord.datetime_new|date_format:"%a, den %d.%m.%Y"}</div>
|
||||
{/foreach}
|
||||
</p>
|
||||
|
||||
<h2>Adressen: </h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=adress'><span class='add' title="Neue Adresse"></span></a>
|
||||
{$i=0}
|
||||
{foreach $adressen as $adresse}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$adresse.typ|escape|default:""}</legend>
|
||||
{if $adresse.firma}
|
||||
<b>Firma:</b><br />
|
||||
{$adresse.firma|escape|default:""}<br />
|
||||
{/if}
|
||||
{if $adresse.vname || $adresse.nname}
|
||||
<legend>Erste Person:</legend>
|
||||
{$anr.{$adresse.anrede_id}|escape|default:""} {$titel.{$adresse.titel_id}|escape|default:""}<br />
|
||||
{if $adresse.vname || $adresse.nname}
|
||||
{$adresse.vname|escape|default:""} {$adresse.nname|escape|default:""}<br />
|
||||
{/if}
|
||||
{if $adresse.gebdat != "01.01.2100" && $adresse.gebdat != "00.00.0000"}
|
||||
{if $adresse.gebdat|substr:6:4 != "2099"}
|
||||
(Geburtstag: {$adresse.gebdat})<br />
|
||||
{else}
|
||||
(Geburtstag: {$adresse.gebdat|substr:0:5})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
{if $adresse.vname2 || $adresse.nname2}
|
||||
<legend>Zweite Person:</legend>
|
||||
{$anr.{$adresse.anrede2_id}|escape|default:""} {$titel.{$adresse.titel2_id}|escape|default:""}<br />
|
||||
{if $adresse.vname2 || $adresse.nname2}
|
||||
{$adresse.vname2|escape|default:""} {$adresse.nname2|escape|default:""}<br />
|
||||
{/if}
|
||||
{if $adresse.gebdat2 != "01.01.2100" && $adresse.gebdat2 != "00.00.0000"}
|
||||
{if $adresse.gebdat2|substr:6:4 != "2099"}
|
||||
(Geburtstag: {$adresse.gebdat2})<br />
|
||||
{else}
|
||||
(Geburtstag: {$adresse.gebdat2|substr:0:5})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
<legend>Adresse:</legend>
|
||||
{if $adresse.zusatz}
|
||||
{$adresse.zusatz|escape|default:""}<br />
|
||||
{/if}
|
||||
<p>
|
||||
{$adresse.str|escape|default:""} {$adresse.hnr|escape|default:""}<br />
|
||||
{$adresse.plz|escape|default:""} {$adresse.ort|escape|default:""} {$adresse.ortsteil|escape|default:""}<br />
|
||||
|
||||
<span>{$adresse.land|escape|default:""}</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href='?action=kundenchange&do=adress&adressid={$adresse.id}&kunde={$kunde.id}'><span class='edit' title="Adresse ändern"></span></a>
|
||||
{if $adresse.typ_id != 1}
|
||||
<span class='del' title="Adresse löschen" onClick='askdel("Möchten Sie diese Adresse<br /><b>UND ALLE ZUGEHÖRIGEN RECHNUNGEN</b><br />wirklich unwiederruflich löschen?","?action=kundenchange&do=adress&adressid={$adresse.id}&del=1")'></span>
|
||||
{/if}
|
||||
<a href="http://maps.google.com?q={$adresse.plz}+{$adresse.ort}+{$adresse.str}+{$adresse.hnr}" class="noloading" target="_blank"><span class='map' title="Auf Karte zeigen"></span></a>
|
||||
<a href='?action=terminadd&adressid={$adresse.id}'><span class='termadd' title="Termin anlegen"></span></a><br />
|
||||
|
||||
<a href='?action=rechnungadd&type=1&adressid={$adresse.id}'><span class='rechnadd' title="Rechnung anlegen"></span></a>
|
||||
<a href='?action=rechnungadd&type=2&adressid={$adresse.id}'><span class='gutschradd' title="Gutschrift anlegen"></span></a>
|
||||
<a href='?action=rechnungadd&type=3&adressid={$adresse.id}'><span class='angadd' title="Angebot anlegen"></span></a>
|
||||
<a href='?action=rechnungadd&type=5&adressid={$adresse.id}'><span class='letteradd' title="Brief anlegen"></span></a><br />
|
||||
<a href='?action=umschlagshow&adressid={$adresse.id}'><span class='projectadd' title="Briefumschlag drucken"></span></a><br />
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
{if $kommadressen}
|
||||
<fieldset class='big-scroll'>
|
||||
<legend>Kommissionsadressen:</legend>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='kommsrc_src' id='kommsrc_src' value='' class='searchform' onKeyUp='ajax_searchkomm(0,{$kunde.id})' autofocus='autofocus' 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.' />
|
||||
</div>
|
||||
<br />
|
||||
<div id='kommsrc_list'>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
<h2>Telefonnummern:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=tel'><span class='add' title="Neue Telefonnummer"></span></a>
|
||||
{$i=0}
|
||||
{foreach $telnrn as $telnr}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$telnr.typ|escape|default:""}</legend>
|
||||
|
||||
{$telnr.nr|escape|default:""}<br />
|
||||
{if $telnr.ort_id && {$telnr.typ|lower} != "mobil"}
|
||||
In {$telnr.plz|escape|default:""} {$telnr.ort|escape|default:""}
|
||||
{if $telnr.ortsteil}
|
||||
({$telnr.ortsteil|escape})
|
||||
{/if}<br />
|
||||
{if $telnr.vwahl}
|
||||
({$telnr.vwahl|escape|default:""})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{if $telnr.name}
|
||||
Anschluss von: {$telnr.name|escape|default:""}<br />
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=kundenchange&do=tel&telid={$telnr.id}'><span class='edit' title="Telefon ändern"></span></a>
|
||||
<span class='del' id='del' title="Telefon löschen" onClick='askdel("Möchten Sie diese Telefonnummer wirklich unwiederruflich löschen?","?action=kundenchange&do=tel&telid={$telnr.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Sonstige Kontaktmöglichkeiten:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=kontakt'><span class='add' title="Neue Kontaktadresse"></span></a>
|
||||
{$i=0}
|
||||
{foreach $contacts as $kontakt}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kontakt.typ|escape|default:""}</legend>
|
||||
{if {$kontakt.typ|lower} == "e-mail"}
|
||||
<a href='mailto:{$kontakt.kontakt|escape|default:""}' class='noloading'>{$kontakt.kontakt|escape|default:""}</a><br />
|
||||
{elseif {$kontakt.typ|lower} == "website"}
|
||||
<a href='http://{$kontakt.kontakt|escape|default:""}' class='noloading' target="_blank">http://{$kontakt.kontakt|escape|default:""}</a><br />
|
||||
{else}
|
||||
{$kontakt.kontakt|escape|default:""}
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=kundenchange&do=kontakt&kontaktid={$kontakt.id}'><span class='edit' title="Kontakt ändern"></span></a>
|
||||
<span class='del' id='del' title="Kontakt löschen" onClick='askdel("Möchten Sie diese Kontaktadresse wirklich unwiederruflich löschen?","?action=kundenchange&do=kontakt&kontaktid={$kontakt.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Notizen:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=notiz'><span class='add' title="Neue Notiz"></span></a>
|
||||
{$i=0}
|
||||
{foreach $notes as $note}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'};">
|
||||
<legend>{$note.datetime|date_format:"%a, %d.%m.%Y <br /> %R Uhr"}</legend>
|
||||
{$note.notiz|nl2br|default:""}<br />
|
||||
<p>
|
||||
{if $note.id}
|
||||
{if $note.file}
|
||||
<a href='{$note.file}' target="_Blank" class='noloading'><span class='file' title="Angehängte Datei anzeigen"></span></a>
|
||||
{/if}
|
||||
<a href='?action=kundenchange&do=notiz¬izid={$note.id}'><span class='edit' title="Notiz ändern"></span></a>
|
||||
<span class='del' id='del' title="Notiz löschen" onClick='askdel("Möchten Sie diese Notiz wirklich unwiederruflich löschen?","?action=kundenchange&do=notiz¬izid={$note.id}&del=1")'></span>
|
||||
{/if}
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
{if $kunde.sks_kdnotiz}
|
||||
<fieldset class='note' style="background-color: '#fff';">
|
||||
<legend>SKS Notiz:</legend>
|
||||
{$kunde.sks_kdnotiz|escape}<br />
|
||||
</fieldset>
|
||||
{/if}
|
||||
<br />
|
||||
|
||||
<h2>Konten:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=konto'><span class='add' title="Neues Konto"></span></a>
|
||||
{$i=0}
|
||||
{foreach $kontos as $kto}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kto.bank} <br />{$kto.blz|chunk_split:3:" "}</legend>
|
||||
Konto Nr.: {$kto.ktonr|escape|chunk_split:3:" "}<br />
|
||||
Inhaber: {$kto.inhaber|escape}<br />
|
||||
{if $kto.iban}
|
||||
IBAN: {$kto.iban|escape|chunk_split:3:" "}<br />
|
||||
{/if}
|
||||
{if $kto.swift}
|
||||
SWIFT: {$kto.swift|escape|chunk_split:3:" "}<br />
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=kundenchange&do=konto&kontoid={$kto.id}'><span class='edit' title="Konto ändern"></span></a>
|
||||
<span class='del' id='del' title="Konto löschen" onClick='askdel("Möchten Sie dieses Konto wirklich unwiederruflich löschen?","?action=kundenchange&do=konto&kontoid={$kto.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
<h2>Verkaufte Artikel:</h2>
|
||||
<div class='line'></div>
|
||||
<br />
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<li><a href="#tabs-{$rechtyp.id}" class='noloading' onClick='ajax_searchkdnrech(0,0,{$rechtyp.id},{$kunde.id})'>{$rechtyp.typ}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<div id="tabs-{$rechtyp.id}">
|
||||
<div class='centersmallsrc'>
|
||||
<input name='kdnrech_src' id='src_rech-{$rechtyp.id}' value='' class='searchform' onKeyUp='ajax_searchkdnrech(0,0,{$rechtyp.id},{$kunde.id})' 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>
|
||||
<div id='rechlist-{$rechtyp.id}'>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
ajax_searchkdnrech(0,0,1,{$kunde.id});
|
||||
{if $kommadressen}
|
||||
setTimeout(function() {
|
||||
ajax_searchkomm(0,{$kunde.id});
|
||||
},1000);
|
||||
{/if}
|
||||
</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
{else}
|
||||
{include file="message.tpl" msgtype="error" message="Dieser Kunde existiert nicht."}
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
<form action='#' method='post'>
|
||||
<fieldset class="big">
|
||||
<legend>Lieferantensuche:</legend>
|
||||
<a href='?action=lieferadd'><span class='addcenter' title="Neuer Lieferant"></span></a><br />
|
||||
<div class='centersrc'>
|
||||
{html_options name=kdnsrc_field onChange='ajax_searchliefer(0)' id=kdnsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='kdnsrc_src' id='kdnsrc_src' value='' class='searchform' onKeyUp='ajax_searchliefer(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>
|
||||
|
||||
<div id='kdnsrc_list'>
|
||||
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchliefer(0);</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
@@ -0,0 +1,193 @@
|
||||
{include file="heading.tpl" heading="Lieferantendetails"}
|
||||
{if $kunde.id}
|
||||
<div class="widthlimiter">
|
||||
|
||||
<span>Lieferant Nummer:<br /><span class='big'>{$kunde.id}</span></span><br /> <span>Angelegt am <b>{$kunde.datetime_new|date_format:"%A, den %d.%m.%Y"}</b></span><br />
|
||||
<p>
|
||||
<h3>Alle Versionen dieses Lieferanten:</h3><br />
|
||||
{foreach $newrecords as $newrecord}
|
||||
<div style="background-color: #ccc;"><a href="?action=liefershow&id={$newrecord.id}"><img src="./pics/icons/hist_f.png" class="histico">Kunde {$newrecord.id}</a> Angelegt am {$newrecord.datetime_new|date_format:"%a, den %d.%m.%Y"}</div>
|
||||
{/foreach}
|
||||
{if $newrecords}
|
||||
<div style="background-color: #fcc;"><b><img src="./pics/icons/cross.png" class="histico">{$kunde.id} Die Angezeigte Version ist veraltet</b></div>
|
||||
{else}
|
||||
<div style="background-color: #cfc;"><b><img src="./pics/icons/check.png" class="histico">{$kunde.id} Die Angezeigte Version ist die aktuellste</b></div>
|
||||
{/if}
|
||||
{foreach $oldrecords as $oldrecord}
|
||||
<div style="background-color: #ccc;"><a href="?action=liefershow&id={$oldrecord.id}"><img src="./pics/icons/hist_b.png" class="histico">Lieferant {$oldrecord.id}</a> Angelegt am {$oldrecord.datetime_new|date_format:"%a, den %d.%m.%Y"}</div>
|
||||
{/foreach}
|
||||
</p>
|
||||
|
||||
<h2>Adressen: </h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=lieferchange&kunde={$kunde.id}&do=adress'><span class='add' title="Neue Adresse"></span></a>
|
||||
{foreach $adressen as $adresse}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$adresse.typ|escape|default:""}</legend>
|
||||
{$anr.{$adresse.anrede_id}|escape|default:""} {$titel.{$adresse.titel_id}|escape|default:""}<br />
|
||||
{if $adresse.firma}
|
||||
{$adresse.firma|escape|default:""}<br />
|
||||
{/if}
|
||||
{if $adresse.vname || $adresse.nname}
|
||||
{$adresse.vname|escape|default:""} {$adresse.nname|escape|default:""}<br />
|
||||
{/if}
|
||||
{if $adresse.vname2 || $adresse.nname2}
|
||||
{$adresse.vname2|escape|default:""} {$adresse.nname2|escape|default:""}<br />
|
||||
{/if}
|
||||
{if $adresse.zusatz}
|
||||
{$adresse.zusatz|escape|default:""}<br />
|
||||
{/if}
|
||||
<p>
|
||||
{$adresse.str|escape|default:""} {$adresse.hnr|escape|default:""}<br />
|
||||
{$adresse.plz|escape|default:""} {$adresse.ort|escape|default:""} {$adresse.ortsteil|escape|default:""}<br />
|
||||
|
||||
<span>{$adresse.land|escape|default:""}</span>
|
||||
</p>
|
||||
<p>
|
||||
<a href='?action=lieferchange&do=adress&adressid={$adresse.id}&kunde={$kunde.id}'><span class='edit' title="Adresse ändern"></span></a>
|
||||
{if $adresse.typ_id != 1}
|
||||
<span class='del' id='del' title="Adresse löschen" onClick='askdel("Möchten Sie diese Adresse wirklich unwiederruflich löschen?","?action=lieferchange&do=adress&adressid={$adresse.id}&del=1")'></span>
|
||||
{/if}
|
||||
<a href="http://maps.google.com?q={$adresse.plz}+{$adresse.ort}+{$adresse.str}+{$adresse.hnr}" class="noloading" target="_blank"><span class='map' title="Auf Karte zeigen"></span></a>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
|
||||
|
||||
<h2>Telefonnummern:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=lieferchange&kunde={$kunde.id}&do=tel'><span class='add' title="Neue Telefonnummer"></span></a>
|
||||
{foreach $telnrn as $telnr}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$telnr.typ|escape}</legend>
|
||||
|
||||
{$telnr.nr|escape|chunk_split:2:" "}<br />
|
||||
{if $telnr.ort && {$telnr.typ|lower} != "mobil"}
|
||||
In {$telnr.plz|escape|default:""} {$telnr.ort|escape|default:""}
|
||||
{if $telnr.ortsteil}
|
||||
({$telnr.ortsteil|escape})
|
||||
{/if}<br />
|
||||
{if $telnr.vwahl}
|
||||
({$telnr.vwahl|escape})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{if $telnr.name}
|
||||
Anschluss von: {$telnr.name|escape|default:""}<br />
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=lieferchange&do=tel&telid={$telnr.id}'><span class='edit' title="Telefon ändern"></span></a>
|
||||
<span class='del' id='del' title="Telefon löschen" onClick='askdel("Möchten Sie diese Telefonnummer wirklich unwiederruflich löschen?","?action=lieferchange&do=tel&telid={$telnr.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Sonstige Kontaktmöglichkeiten:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=lieferchange&kunde={$kunde.id}&do=kontakt'><span class='add' title="Neue Kontaktadresse"></span></a>
|
||||
{foreach $contacts as $kontakt}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kontakt.typ|escape|default:""}</legend>
|
||||
{if {$kontakt.typ|lower} == "e-mail"}
|
||||
<a href='mailto:{$kontakt.kontakt|escape|default:""}' class='noloading'>{$kontakt.kontakt|escape|default:""}</a><br />
|
||||
{elseif {$kontakt.typ|lower} == "website"}
|
||||
<a href='http://{$kontakt.kontakt|escape|default:""}' class='noloading' target="_blank">http://{$kontakt.kontakt|escape|default:""}</a><br />
|
||||
{else}
|
||||
{$kontakt.kontakt|escape|default:""}
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=lieferchange&do=kontakt&kontaktid={$kontakt.id}'><span class='edit' title="Kontakt ändern"></span></a>
|
||||
<span class='del' id='del' title="Kontakt löschen" onClick='askdel("Möchten Sie diese Kontaktadresse wirklich unwiederruflich löschen?","?action=lieferchange&do=kontakt&kontaktid={$kontakt.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Notizen:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=lieferchange&kunde={$kunde.id}&do=notiz'><span class='add' title="Neue Notiz"></span></a>
|
||||
{foreach $notes as $note}
|
||||
{strip}
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'};">
|
||||
<legend>{$note.datetime|date_format:"%a, %d.%m.%Y <br /> %R Uhr"}</legend>
|
||||
{$note.notiz|escape|default:""}<br />
|
||||
<p>
|
||||
<a href='?action=lieferchange&do=notiz¬izid={$note.id}'><span class='edit' title="Notiz ändern"></span></a>
|
||||
<span class='del' id='del' title="Notiz löschen" onClick='askdel("Möchten Sie diese Notiz wirklich unwiederruflich löschen?","?action=lieferchange&do=notiz¬izid={$note.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Konten:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=lieferchange&kunde={$kunde.id}&do=konto'><span class='add' title="Neues Konto"></span></a>
|
||||
{foreach $kontos as $kto}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kto.bank} <br />{$kto.blz|chunk_split:3:" "}</legend>
|
||||
Konto Nr.: {$kto.ktonr|escape|chunk_split:3:" "}<br />
|
||||
Inhaber: {$kto.inhaber|escape}<br />
|
||||
{if $kto.iban}
|
||||
IBAN: {$kto.iban|escape|chunk_split:3:" "}<br />
|
||||
{/if}
|
||||
{if $kto.swift}
|
||||
SWIFT: {$kto.swift|escape|chunk_split:3:" "}<br />
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=lieferchange&do=konto&kontoid={$kto.id}'><span class='edit' title="Konto ändern"></span></a>
|
||||
<span class='del' id='del' title="Konto löschen" onClick='askdel("Möchten Sie dieses Konto wirklich unwiederruflich löschen?","?action=lieferchange&do=konto&kontoid={$kto.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Eingekaufte Artikel:</h2>
|
||||
<div class='line'></div>
|
||||
<br />
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<li><a href="#tabs-{$rechtyp.id}" class='noloading' onClick='ajax_searchkdnrech(0,{$rechtyp.id},{$kunde.id})'>{$rechtyp.typ}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<div id="tabs-{$rechtyp.id}">
|
||||
<div class='centersrc'>
|
||||
|
||||
<input name='kdnsrc_src' id='src_rech-{$rechtyp.id}' value='' class='searchform' onKeyUp='ajax_searchkdnrech(0,{$rechtyp.id},{$kunde.id})' 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>
|
||||
<div id='rechlist-{$rechtyp.id}'>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
ajax_searchkdnrech(0,1,{$kunde.id});
|
||||
</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
{else}
|
||||
{include file="message.tpl" msgtype="error" message="Dieser Kunde existiert nicht."}
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{if $smarty.session.login != "valid"}
|
||||
{include "message.tpl"
|
||||
message="<p>Sie sind nun abgemeldet, das Programm kann nun geschlossen werden!</p><p> Bis zum nächsten mal!!</p>"
|
||||
msgtype="ok"
|
||||
}
|
||||
{else}
|
||||
{include "message.tpl"
|
||||
message="<p>Die Abmeldung war nicht erfolgreich, bitte versuchen Sie es erneut!</p>"
|
||||
msgtype="error"
|
||||
}
|
||||
{/if}
|
||||
@@ -0,0 +1,178 @@
|
||||
<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} {$headstr}:</h2>
|
||||
<form action="?action=rechnungadd&mailformsent=1&mail=1&id={$smarty.get.id}" 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>
|
||||
|
||||
<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}: 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"}
|
||||
{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} == "Herr" && $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'>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}.
|
||||
|
||||
Mit freundlichen Grüßen
|
||||
{$smarty.session.vname} {$smarty.session.nname}
|
||||
{$smarty.session.firma}
|
||||
|
||||
---
|
||||
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}' width='100%' height='600px'></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="{$msgtype|escape|default:'message'}">{$message|default:'default message box'}</div>
|
||||
@@ -0,0 +1,33 @@
|
||||
<div class='widthlimiter'>
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
{foreach $users as $user}
|
||||
<li><a href="#tabs-{$user.id}" onclick='ajax_displaymsgs(0,{$user.id})' class='noloading'>{$user.vname} {$user.nname}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
{foreach $users as $user}
|
||||
<div id="tabs-{$user.id}">
|
||||
<div id="msgdiv-{$user.id}">
|
||||
</div>
|
||||
<div>
|
||||
<br />
|
||||
<input id="message-{$user.id}" />
|
||||
<input type="button" value="Senden" id="sendmsg-{$user.id}" onclick="sendmsg({$user.id})"/>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
{foreach $users as $user}
|
||||
var messages = {$user.id};
|
||||
{break}
|
||||
{/foreach}
|
||||
</script>
|
||||
@@ -0,0 +1,199 @@
|
||||
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=adress&kunde={$kunde|escape}&formsent=1&adressid={$adressid}" name="mainform" method='POST'>
|
||||
|
||||
<fieldset>
|
||||
<label>Adresstyp:</label><select name="typ" id="typ" >
|
||||
{if $typ == 1}
|
||||
<option value='1'>Hauptadresse</option>
|
||||
{else}
|
||||
{html_options values=$typids output=$typs selected="{$typ}"}
|
||||
{/if}
|
||||
</select><br />
|
||||
<label>Firma:</label><input name='firma' id='firma' value="{$firma|escape}" /><br />
|
||||
<label>Straße/Hausnr:</label><input name='str' id='str' value="{$str|escape}" pattern="[^0-9]*" /><input name='hnr' id='hnr' value="{$hnr|escape}" pattern="([0-9/a-zA-Z-\s\/]*[-/])?[0-9/a-zA-Z-\s\/]*" /><br />
|
||||
<label>PLZ/Ort:</label><input name='plz' id='plz' value="{$plz|escape}" pattern="[0-9/a-zA-Z-]*" /><input name='ort' id='ort' value="{$ort|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Ortsteil:</label><input name='oteil' id='oteil' value="{$oteil|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Land:</label><input name='land' id='land' value="{$land|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Zusatz:</label><input name='zusatz' id='zusatz' value="{$zusatz|escape}" /><br />
|
||||
<input type="hidden" name='overwrite' id='overwrite' value="0" />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Erste Person</legend>
|
||||
<label>Anrede:</label><select name="anrede" id="anrede" >
|
||||
{html_options values=$anrids output=$anrs selected="{$anrede}"}
|
||||
</select><br />
|
||||
<label>Titel:</label><select name="titel" id="titel" >
|
||||
{html_options values=$titelids output=$titels selected="{$titel}"}
|
||||
</select><br />
|
||||
<label>Vorname:</label><input name='vname' id='vname' value="{$vname|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Nachname:</label><input name='nname' id='nname' value="{$nname|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Geburtsdatum:</label><input name='gebdat' id='gebdat' value="{$gebdat|escape}" pattern="\d{ldelim}2{rdelim}\.\d{ldelim}2{rdelim}(\.\d{ldelim}4{rdelim})?" /><br />
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Zweite Person</legend>
|
||||
<label>Anrede 2:</label><select name="anrede2" id="anrede2" >
|
||||
{html_options values=$anrids output=$anrs selected="{$anrede2}"}
|
||||
</select><br />
|
||||
<label>Titel 2:</label><select name="titel2" id="titel2" >
|
||||
{html_options values=$titelids output=$titels selected="{$titel2}"}
|
||||
</select><br />
|
||||
<label>Vorname2:</label><input name='vname2' id='vname2' value="{$vname2|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Nachname2:</label><input name='nname2' id='nname2' value="{$nname2|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Geburtsdatum2:</label><input name='gebdat2' id='gebdat2' value="{$gebdat2|escape}" pattern="\d{ldelim}2{rdelim}\.\d{ldelim}2{rdelim}(\.\d{ldelim}4{rdelim})?" /><br />
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset id='telset'>
|
||||
<legend>Telefon:</legend>
|
||||
<label>Nummer:</label><input name='nr' id='nr' value="{$nr|escape}" pattern="[0-9-]*" /><br />
|
||||
<label>Vorwahl:</label><input name='vwahl' id='vwahl' value="{$vwahl|escape}" pattern="[0-9]*" /><br />
|
||||
<label>PLZ/Ort:</label><input name='telplz' id='telplz' value="{$telplz|escape}" pattern="[0-9/a-zA-Z-]*" /><input name='telort' id='telort' value="{$telort|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Ortsteil:</label><input name='teloteil' id='teloteil' value="{$teloteil|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Land:</label><input name='telland' id='telland' value="{$telland|escape}" pattern="[^0-9]*" /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
|
||||
<br />
|
||||
{if $adressid > 0}
|
||||
<button type='button' onClick='askoverwrite("Möchten Sie sämtliche alte Rechnungen auf diese Adresse auch ändern?")' name='ask'>Speichern</button>
|
||||
{else}
|
||||
<button type='button' onClick='document.getElementById("overwrite").value = 1;document.forms["mainform"].submit();' name='ask'>Speichern</button>
|
||||
{/if}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
if($("#typ").val() == 5)
|
||||
{
|
||||
$("#telset").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#telset").hide();
|
||||
}
|
||||
$("#typ").change(function() {
|
||||
if($("#typ").val() == 5)
|
||||
{
|
||||
$("#telset").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#telset").hide();
|
||||
}
|
||||
});
|
||||
$(function() {
|
||||
$( "#str" ).autocomplete({
|
||||
source: "ajax/auto/str.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#oteil" ).val( ui.item.otl);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#plz" ).autocomplete({
|
||||
source: "ajax/auto/plz.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#ort" ).autocomplete({
|
||||
source: "ajax/auto/ort.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#oteil" ).autocomplete({
|
||||
source: "ajax/auto/oteil.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#vwahl" ).autocomplete({
|
||||
source: "ajax/auto/vwahl.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#teloteil" ).val( ui.item.otl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#telplz" ).autocomplete({
|
||||
source: "ajax/auto/plz.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#telort" ).autocomplete({
|
||||
source: "ajax/auto/ort.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#teloteil" ).autocomplete({
|
||||
source: "ajax/auto/oteil.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#telland" ).autocomplete({
|
||||
source: "ajax/auto/land.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=kontakt&kunde={$kunde|escape}&formsent=1&kontaktid={$kontaktid}" method='POST'>
|
||||
<fieldset>
|
||||
<label>Typ:</label><select name="typ" id="typ" >
|
||||
{html_options values=$typids output=$typs selected="{$typ}"}
|
||||
</select><br />
|
||||
<label>Kontaktadresse:</label><input name='kontakt' id='kontakt' value="{$kontakt|escape}" required="required" /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
<input type="submit" value="Speichern" />
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=konto&kunde={$kunde|escape}&formsent=1&kontoid={$kontoid}" method='POST'>
|
||||
<fieldset>
|
||||
|
||||
<label>Bank:</label><input name='bank' id='bank' value="{$bank|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>BLZ:</label><input name='blz' id='blz' value="{$blz|escape}" pattern="[0-9]*" /><br />
|
||||
<label>Konto Nr.:</label><input name='ktonr' id='ktonr' value="{$ktonr|escape}" pattern="[0-9]*" /><br />
|
||||
<label>Inhaber:</label><input name='inhaber' id='inhaber' value="{$inhaber|escape}" /><br />
|
||||
<label>IBAN:</label><input name='iban' id='iban' value="{$iban|escape}" pattern="[0-9a-zA-Z]*" /><br />
|
||||
<label>SWIFT:</label><input name='swift' id='swift' value="{$swift|escape}" pattern="[0-9]*" /><br />
|
||||
<button type="button" class='spell' onclick="$('input').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
<input type="submit" value="Speichern" />
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#bank" ).autocomplete({
|
||||
source: "ajax/auto/bank.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#blz" ).val( ui.item.blz);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#blz" ).autocomplete({
|
||||
source: "ajax/auto/blz.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#bank" ).val( ui.item.bank);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=notiz&kunde={$kunde|escape}&formsent=1¬izid={$notizid}" method='POST' enctype="multipart/form-data">
|
||||
|
||||
|
||||
<fieldset class='colorchooser'>
|
||||
<legend>Farbe:</legend>
|
||||
{html_radios name='color' options=$colors selected={$color|default:'#fff'} separator=' ' escape=0 labels=1}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Notiz:</legend>
|
||||
<textarea name='notiz' id='notiz' class='bigtextarea'>{$notiz}</textarea><br />
|
||||
<label>Dateianhang zu dieser Notiz: </label><input type="file" id='notefile' name='notefile' /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
<input type="submit" value="Speichern" />
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,192 @@
|
||||
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&formsent=1" method='POST'>
|
||||
<fieldset>
|
||||
<legend>Hauptadresse</legend>
|
||||
<label>Straße/Hausnr:</label><input name='str' id='str' value="{$str|escape}" pattern="[^0-9]*" /><input name='hnr' id='hnr' value="{$hnr|escape}" pattern="([0-9/a-zA-Z-\s\/]*[-/])?[0-9/a-zA-Z-\s\/]*" /><br />
|
||||
<label>PLZ/Ort:</label><input name='plz' id='plz' value="{$plz|escape}" pattern="[0-9/a-zA-Z-]*" /><input name='ort' id='ort' value="{$ort|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Ortsteil:</label><input name='oteil' id='oteil' value="{$oteil|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Land:</label><input name='land' id='land' value="{$land|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Zusatz:</label><input name='zusatz' id='zusatz' value="{$zusatz|escape}" /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Erste Person</legend>
|
||||
<label>Anrede:</label><select name="anrede" id="anrede" >
|
||||
{html_options values=$anrids output=$anrs selected="{$anrede}"}
|
||||
</select><br />
|
||||
<label>Titel:</label><select name="titel" id="titel" >
|
||||
{html_options values=$titelids output=$titels selected="{$titel}"}
|
||||
</select><br />
|
||||
<label>Firma:</label><input name='firma' id='firma' value="{$firma|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Vorname:</label><input name='vname' id='vname' value="{$vname|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Nachname:</label><input name='nname' id='nname' value="{$nname|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Geburtsdatum:</label><input name='gebdat' id='gebdat' value="{$gebdat|escape}" pattern="\d{ldelim}2{rdelim}\.\d{ldelim}2{rdelim}(\.\d{ldelim}4{rdelim})?" /><br />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Zweite Person:</legend>
|
||||
<label>Anrede2:</label><select name="anrede2" id="anrede2" >
|
||||
{html_options values=$anrids output=$anrs selected="{$anrede2}"}
|
||||
</select><br />
|
||||
<label>Titel2:</label><select name="titel2" id="titel2" >
|
||||
{html_options values=$titelids output=$titels selected="{$titel2}"}
|
||||
</select><br />
|
||||
<label>Vorname2:</label><input name='vname2' id='vname2' value="{$vname2|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Nachname2:</label><input name='nname2' id='nname2' value="{$nname2|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Geburtsdatum2:</label><input name='gebdat2' id='gebdat2' value="{$gebdat2|escape}" pattern="\d{ldelim}2{rdelim}\.\d{ldelim}2{rdelim}(\.\d{ldelim}4{rdelim})?" /><br />
|
||||
</fieldset>
|
||||
<br />
|
||||
<fieldset>
|
||||
<legend>Telefon:</legend>
|
||||
<label>Typ:</label><select name="teltyp" id="teltyp" >
|
||||
{html_options values=$typids output=$typs selected="{$typ}"}
|
||||
</select><br />
|
||||
<label>Name:</label><input name='name' id='name' value="{$name|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Nummer:</label><input name='nr' id='nr' value="{$nr|escape}" pattern="[0-9-]*" /><br />
|
||||
<label>Vorwahl:</label><input name='vwahl' id='vwahl' value="{$vwahl|escape}" pattern="([\+]\d{ldelim}2{rdelim})?(\s)?[0-9]*" /><br />
|
||||
<label>PLZ/Ort:</label><input name='telplz' id='telplz' value="{$telplz|escape}" pattern="[0-9/a-zA-Z-]*" /><input name='telort' id='telort' value="{$telort|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Ortsteil:</label><input name='teloteil' id='teloteil' value="{$teloteil|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Land:</label><input name='telland' id='telland' value="{$telland|escape}" pattern="[^0-9]*" /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
<input type="submit" value="Speichern" />
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#str" ).autocomplete({
|
||||
source: "ajax/auto/str.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#oteil" ).val( ui.item.otl);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#teloteil" ).val( ui.item.otl);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#plz" ).autocomplete({
|
||||
source: "ajax/auto/plz.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#ort" ).autocomplete({
|
||||
source: "ajax/auto/ort.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#oteil" ).autocomplete({
|
||||
source: "ajax/auto/oteil.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$(function() {
|
||||
$( "#telplz" ).autocomplete({
|
||||
source: "ajax/auto/plz.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#telort" ).autocomplete({
|
||||
source: "ajax/auto/ort.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#teloteil" ).autocomplete({
|
||||
source: "ajax/auto/oteil.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#vwahl" ).autocomplete({
|
||||
source: "ajax/auto/vwahl.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#telplz" ).val( ui.item.plz);
|
||||
$( "#telort" ).val( ui.item.ort);
|
||||
$( "#telland" ).val( ui.item.lnd);
|
||||
$( "#teloteil" ).val( ui.item.otl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#land" ).autocomplete({
|
||||
source: "ajax/auto/land.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#telland" ).autocomplete({
|
||||
source: "ajax/auto/land.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,85 @@
|
||||
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=tel&kunde={$kunde|escape}&formsent=1&telid={$telid}" method='POST'>
|
||||
<fieldset>
|
||||
<label>Typ:</label><select name="typ" id="typ" >
|
||||
{html_options values=$typids output=$typs selected="{$typ}"}
|
||||
</select><br />
|
||||
|
||||
<label>Name:</label><input name='name' id='name' value="{$name|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Nummer:</label><input name='nr' id='nr' value="{$nr|escape}" pattern="[0-9-]*" /><br />
|
||||
<label>Vorwahl:</label><input name='vwahl' id='vwahl' value="{$vwahl|escape}" pattern="([\+]\d{ldelim}2{rdelim})?(\s)?[0-9]*" /><br />
|
||||
<label>PLZ/Ort:</label><input name='plz' id='plz' value="{$plz|escape}" pattern="[0-9/a-zA-Z-]*" /><input name='ort' id='ort' value="{$ort|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Ortsteil:</label><input name='oteil' id='oteil' value="{$oteil|escape}" pattern="[^0-9]*" /><br />
|
||||
<label>Land:</label><input name='land' id='land' value="{$land|escape}" pattern="[^0-9]*" /><br />
|
||||
|
||||
<button type="button" class='spell' onclick="$('input').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
<input type="submit" value="Speichern" />
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#vwahl" ).autocomplete({
|
||||
source: "ajax/auto/vwahl.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#oteil" ).val( ui.item.otl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#plz" ).autocomplete({
|
||||
source: "ajax/auto/plz.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#ort" ).autocomplete({
|
||||
source: "ajax/auto/ort.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#oteil" ).autocomplete({
|
||||
source: "ajax/auto/oteil.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
$( "#ort" ).val( ui.item.ort);
|
||||
$( "#land" ).val( ui.item.lnd);
|
||||
$( "#plz" ).val( ui.item.plz);
|
||||
$( "#vwahl" ).val( ui.item.vwl);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$( "#land" ).autocomplete({
|
||||
source: "ajax/auto/land.php",
|
||||
minLength: 2,
|
||||
focus: function( event, ui ) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="widthlimiter">
|
||||
<img src="./pics/icons/stop.png" class="headingimgL" />
|
||||
<img src="./pics/icons/stop.png" class="headingimgR" />
|
||||
<h1>Zugriff Verweigert</h1>
|
||||
<div class="error"><p>Es tut mir leid, aber Sie haben nicht die nötigen Rechte, um auf diese Seite zugreifen zu können.</p><p>Falls Sie glauben, diese Seite wird aufgrund eines Programmfehlers angezeigt wenden Sie sich bitte an den verantwortlichen Betreuer.</p></div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="widthlimiter">
|
||||
<img src="./pics/icons/warning.png" class="headingimgL" />
|
||||
<img src="./pics/icons/warning.png" class="headingimgR" />
|
||||
<h1>Seite nicht gefunden</h1>
|
||||
<div class="warning"><p>Die angeforderte Seite konnte leider nicht gefunden werden.</p><p>Falls Sie glauben, diese Seite wird aufgrund eines Programmfehlers angezeigt wenden Sie sich bitte an den verantwortlichen Betreuer.</p></div>
|
||||
</div>
|
||||
@@ -0,0 +1,141 @@
|
||||
{include file="heading.tpl" heading="Projektliste"}
|
||||
{if $kunde.id}
|
||||
<div class="widthlimiter">
|
||||
|
||||
<span>Kunde Nummer:<br /><span class='big'>{$kunde.id}</span></span><br /> <span>Angelegt am <b>{$kunde.datetime_new|date_format:"%A, den %d.%m.%Y"}</b></span><br />
|
||||
<p>
|
||||
<h3>Alle Versionen dieses Kunden:</h3><br />
|
||||
{foreach $newrecords as $newrecord}
|
||||
<div style="background-color: #ccc;"><a href="?action=kundenshow&id={$newrecord.id}"><img src="./pics/icons/hist_f.png" class="histico">Kunde {$newrecord.id}</a> Angelegt am {$newrecord.datetime_new|date_format:"%a, den %d.%m.%Y"}</div>
|
||||
{/foreach}
|
||||
{if $newrecords}
|
||||
<div style="background-color: #fcc;"><b><img src="./pics/icons/cross.png" class="histico">{$kunde.id} Die Angezeigte Version ist veraltet</b></div>
|
||||
{else}
|
||||
<div style="background-color: #cfc;"><b><img src="./pics/icons/check.png" class="histico">{$kunde.id} Die Angezeigte Version ist die aktuellste</b></div>
|
||||
{/if}
|
||||
{foreach $oldrecords as $oldrecord}
|
||||
<div style="background-color: #ccc;"><a href="?action=kundenshow&id={$oldrecord.id}"><img src="./pics/icons/hist_b.png" class="histico">Kunde {$oldrecord.id}</a> Angelegt am {$oldrecord.datetime_new|date_format:"%a, den %d.%m.%Y"}</div>
|
||||
{/foreach}
|
||||
{$adressen.ort}
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Telefonnummern:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=tel'><span class='add' title="Neue Telefonnummer"></span></a>
|
||||
{$i=0}
|
||||
{foreach $telnrn as $telnr}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$telnr.typ|escape|default:""}</legend>
|
||||
|
||||
{$telnr.nr|escape|default:""}<br />
|
||||
{if $telnr.ort_id && {$telnr.typ|lower} != "mobil"}
|
||||
In {$telnr.plz|escape|default:""} {$telnr.ort|escape|default:""}
|
||||
{if $telnr.ortsteil}
|
||||
({$telnr.ortsteil|escape})
|
||||
{/if}<br />
|
||||
{if $telnr.vwahl}
|
||||
({$telnr.vwahl|escape|default:""})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{if $telnr.name}
|
||||
Anschluss von: {$telnr.name|escape|default:""}<br />
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=kundenchange&do=tel&telid={$telnr.id}'><span class='edit' title="Telefon ändern"></span></a>
|
||||
<span class='del' id='del' title="Telefon löschen" onClick='askdel("Möchten Sie diese Telefonnummer wirklich unwiederruflich löschen?","?action=kundenchange&do=tel&telid={$telnr.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Sonstige Kontaktmöglichkeiten:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=kontakt'><span class='add' title="Neue Kontaktadresse"></span></a>
|
||||
{$i=0}
|
||||
{foreach $contacts as $kontakt}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kontakt.typ|escape|default:""}</legend>
|
||||
{if {$kontakt.typ|lower} == "e-mail"}
|
||||
<a href='mailto:{$kontakt.kontakt|escape|default:""}' class='noloading'>{$kontakt.kontakt|escape|default:""}</a><br />
|
||||
{elseif {$kontakt.typ|lower} == "website"}
|
||||
<a href='http://{$kontakt.kontakt|escape|default:""}' class='noloading' target="_blank">http://{$kontakt.kontakt|escape|default:""}</a><br />
|
||||
{else}
|
||||
{$kontakt.kontakt|escape|default:""}
|
||||
{/if}
|
||||
<p>
|
||||
<a href='?action=kundenchange&do=kontakt&kontaktid={$kontakt.id}'><span class='edit' title="Kontakt ändern"></span></a>
|
||||
<span class='del' id='del' title="Kontakt löschen" onClick='askdel("Möchten Sie diese Kontaktadresse wirklich unwiederruflich löschen?","?action=kundenchange&do=kontakt&kontaktid={$kontakt.id}&del=1")'></span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<h2>Notizen:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=kundenchange&kunde={$kunde.id}&do=notiz'><span class='add' title="Neue Notiz"></span></a>
|
||||
{$i=0}
|
||||
{foreach $notes as $note}
|
||||
{if $i%3 == 0}
|
||||
<br />
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'};">
|
||||
<legend>{$note.datetime|date_format:"%a, %d.%m.%Y <br /> %R Uhr"}</legend>
|
||||
{$note.notiz|nl2br|default:""}<br />
|
||||
<p>
|
||||
{if $note.id}
|
||||
{if $note.file}
|
||||
<a href='{$note.file}' target="_Blank" class='noloading'><span class='file' title="Angehängte Datei anzeigen"></span></a>
|
||||
{/if}
|
||||
<a href='?action=kundenchange&do=notiz¬izid={$note.id}'><span class='edit' title="Notiz ändern"></span></a>
|
||||
<span class='del' id='del' title="Notiz löschen" onClick='askdel("Möchten Sie diese Notiz wirklich unwiederruflich löschen?","?action=kundenchange&do=notiz¬izid={$note.id}&del=1")'></span>
|
||||
{/if}
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
{if $kunde.sks_kdnotiz}
|
||||
<fieldset class='note' style="background-color: '#fff';">
|
||||
<legend>SKS Notiz:</legend>
|
||||
{$kunde.sks_kdnotiz|escape}<br />
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
<br />
|
||||
<h2>Projekte:</h2>
|
||||
<div class='line'></div>
|
||||
<a href='?action=projectadd&kundeid={$kunde.id}'><span class='add' title="Neues Projekt anlegen"></span></a>
|
||||
<br />
|
||||
<div class='centersmallsrc'>
|
||||
<input name='src_project' id='src_project' value='' class='searchform' onKeyUp='ajax_searchkdnprojects(0,{$kunde.id})' 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>
|
||||
<div id='projectlist'>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
ajax_searchkdnprojects(0,{$kunde.id});
|
||||
</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
{else}
|
||||
{include file="message.tpl" msgtype="error" message="Dieser Kunde existiert nicht."}
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
{include file="heading.tpl" heading="Projektblatt"}
|
||||
<iframe src='{$pdffile}' width='70%' height='600px'></iframe>
|
||||
@@ -0,0 +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>
|
||||
{if $pdffile2}
|
||||
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile2}' width='45%' height='600px'></iframe>
|
||||
{/if}
|
||||
@@ -0,0 +1,131 @@
|
||||
{if $smarty.session.login == "valid"}
|
||||
|
||||
<h2>Diese Einstellungen gelten nur für Ihren Benutzer.</h2>
|
||||
<br />
|
||||
<div class='widthlimiter'>
|
||||
|
||||
<form method='POST' id='mainform' action='?action=settings&formsent=1'>
|
||||
<div id="tabs">
|
||||
{* ANZEIGE PANE *}
|
||||
<ul>
|
||||
<li><a href="#tabs-1" class='noloading'>Design</a></li>
|
||||
<li><a href="#tabs-2" class='noloading'>Kunden</a></li>
|
||||
<li><a href="#tabs-3" class='noloading'>Termine</a></li>
|
||||
<li><a href="#tabs-4" class='noloading'>Dokumente</a></li>
|
||||
<li><a href="#tabs-5" class='noloading'>Suche</a></li>
|
||||
{if $superadmin}
|
||||
<li><a href="#tabs-6" class='noloading'>Benutzer</a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
<label>Design</label>
|
||||
{html_options name=style options=$styles selected=$smarty.session.style class='preim' title='Bitte wählen Sie hier das gewünschte Programmdesign aus.'}
|
||||
<br />
|
||||
</div>
|
||||
{* KUNDEN PANE *}
|
||||
<div id="tabs-2">
|
||||
|
||||
</div>
|
||||
{* TERMINE PANE *}
|
||||
<div id="tabs-3">
|
||||
|
||||
</div>
|
||||
{* DOKUMENTE PANE *}
|
||||
<div id="tabs-4">
|
||||
<fieldset>
|
||||
<legend>Buchungskonten:</legend>
|
||||
<a href="?action=settings&do=buchKto&add=1"><span class="add" title="Neues Buchungskonto anlegen"></span></a>
|
||||
<table>
|
||||
<tr><th>Konto:</th><th>Name:</th><th>Beschreibung:</th></tr>
|
||||
{section name=rows loop=$buchKto}
|
||||
<tr style='background-color: #{cycle values="f0f0f0,e2e2e2"}'>
|
||||
<td>{$buchKto[rows].kto}</td>
|
||||
<td>{$buchKto[rows].name}</td>
|
||||
<td>{$buchKto[rows].descr}</td>
|
||||
</tr>
|
||||
{/section}
|
||||
</table>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Zahlungsziele:</legend>
|
||||
<a href="?action=settings&do=zahlziel&add=1"><span class="add" title="Neues Zahlungsziel anlegen"></span></a>
|
||||
<table>
|
||||
<tr><th>Zahlungsziel</th></tr>
|
||||
{section name=rows loop=$zahlziele}
|
||||
<tr style='background-color: #{cycle values="f0f0f0,e2e2e2"}'>
|
||||
<td>{$zahlziele[rows].ziel}</td>
|
||||
</tr>
|
||||
{/section}
|
||||
</table>
|
||||
</fieldset>
|
||||
{if $show_sks}
|
||||
<label>SKS Artikel bei Kundendetails auflisten</label><input type='checkbox' id='show_sks' name='show_sks' value='1' checked='checked'></input>
|
||||
{else}
|
||||
<label>SKS Artikel bei Kundendetails auflisten</label><input type='checkbox' id='show_sks' name='show_sks' value='1'></input>
|
||||
{/if}
|
||||
<br />
|
||||
</div>
|
||||
{* SUCHE PANE *}
|
||||
<div id="tabs-5">
|
||||
|
||||
</div>
|
||||
{if $superadmin}
|
||||
{* USER PANE *}
|
||||
<div id="tabs-6">
|
||||
|
||||
<h3>Benutzer</h3>
|
||||
<table class='userlist' cellpadding='0' cellspacing='0'>
|
||||
<tr><th>Benutzer:</th><th colspan = '2'>Wochenstd.: </th><th>Urlaubstage: </th><th>RFID: </th><th>Zeiterfassung ab: </th><th>Rechte:</th><th></th></tr>
|
||||
<tr><th></th><th>Mo-Fr</th><th>Sa</th><th></th><th></th><th></th><th></th></tr>
|
||||
{if $superadmin == "add" || $superadmin == "change"}
|
||||
{foreach $users as $user}
|
||||
{if $user.blocked}
|
||||
<tr class='blocked'><td>{$user.nick} ({$user.vname} {$user.nname})</td><td>{$user.weekhours|string_format:"%.1f"}</td><td>{$user.sahours|string_format:"%.1f"}</td><td>{$user.vacationdays|string_format:"%.1f"}</td><td>{$user.rfid}</td><td>{$user.timelog_start}</td><td>{$user.rights}</td><td><a href="?action=useradd&id={$user.id}"><span class="edit" title="Benutzerdaten ändern"></span></a><a href="?action=useradd&id={$user.id}&block=tgl"><span class="deblock" title="Benutzer freigeben"></span></a></td></tr>
|
||||
{else}
|
||||
<tr><td>{$user.nick} ({$user.vname} {$user.nname})</td>
|
||||
<td>{$user.weekhours|string_format:"%.1f"}</td>
|
||||
<td>{$user.sahours|string_format:"%.1f"}</td>
|
||||
<td>{$user.vacationdays|string_format:"%.1f"}</td>
|
||||
<td>{$user.rfid}</td><td>{$user.timelog_start}</td>
|
||||
<td>{$user.rights}</td>
|
||||
<td><a href="?action=useradd&id={$user.id}"><span class="edit" title="Benutzerdaten ändern"></span></a>
|
||||
<a href="?action=useradd&id={$user.id}&block=tgl"><span class="block" title="Benutzer blockieren"></span></a>
|
||||
<a href="?action=userkeys&id={$user.id}"><span class="key" title="Passkeys verwalten"></span></a>
|
||||
</td></tr>
|
||||
{/if}
|
||||
{/strip}
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach $users as $user}
|
||||
{strip}
|
||||
{if $user.blocked}
|
||||
<tr class='blocked'><td>{$user.nick} ({$user.vname} {$user.nname})</td><td>{$user.rights}</td><td></td></tr>
|
||||
{else}
|
||||
<tr><td>{$user.nick} ({$user.vname} {$user.nname})</td><td>{$user.rights}</td><td></td></tr>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</table>
|
||||
{if $superadmin == "add"}
|
||||
<br />
|
||||
<button type="button" onClick="window.location='?action=useradd';">Neuen Benutzer anlegen</button>
|
||||
<br />
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<input type="submit">
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
</script>
|
||||
<br />
|
||||
|
||||
|
||||
{/if}
|
||||
@@ -0,0 +1,65 @@
|
||||
|
||||
{if $smarty.session.login != "valid"}
|
||||
<script src="js/auth.js"></script>
|
||||
{include "message.tpl"
|
||||
message="Um dieses Programm nutzen zu können müssen Sie sich zunächst anmelden,
|
||||
bitte geben Sie ins unten stehende Formular Ihren Benutzernamen und Ihr Kennwort ein.
|
||||
Falls Sie noch keine Anmeldedaten haben wenden Sie sich bitte an den Hauptbenutzer (In den meisten Fällen der Chef)."
|
||||
}
|
||||
|
||||
<form method='POST' id='mainform' action='?action=auth&formsent=1'>
|
||||
<fieldset>
|
||||
<legend>Anmeldung:</legend>
|
||||
<label></label><br />
|
||||
<label>Benutzer:</label><input class='enableEnter' name='user' required='required' autofocus='autofocus' id='user' title='Bitte geben Sie hier ihren Benutzernamen ein.' value='{$user|escape}' /><a href="#" onclick="checkRegistration(document.getElementById('user').value)"><span class="key" style="display:block;margin-top: -5px;margin-left: 10px;"></span></a><br />
|
||||
{if $local == true}
|
||||
<label>Passwort:</label><input type='password' class='enableEnter' name='pass' required='required' id='pass' title='Hier müssen Sie das passende Passwort eingeben. Bitte auf Groß- und Kleinschreibung achten!' value='' /><br />
|
||||
{/if}
|
||||
<input type='submit' value='Anmelden' />
|
||||
</fieldset>
|
||||
</form>
|
||||
{else}
|
||||
<h2>Kundenverwaltung Version {$text_version|escape|default:"x.X.x"}</h2>
|
||||
{if !$smarty.session.logedout}
|
||||
{include "message.tpl"
|
||||
message="Nach der letzten Sitzung haben Sie sich nicht ordnungsgemäß abgemeldet.<br />
|
||||
Bitte achten Sie darauf, dass Sie sich vor dem Schließen des Programms mit dem <br /><img src='./pics/icons/logout.png' class='schnellicon' /><br /> Knopf abmelden!!"
|
||||
msgtype="error"
|
||||
}
|
||||
{/if}
|
||||
{include "message.tpl"
|
||||
message="Sie sind korrekt am Programm angemeldet,
|
||||
bitte verwenden Sie die Navigationsleiste,
|
||||
die im unteren Bereich zu finden ist, um sich im Programm zu bewegen."
|
||||
msgtype="ok"
|
||||
}
|
||||
|
||||
{include "message.tpl"
|
||||
message="Im unteren bereich des Fensters finden Sie alle nötigen Informationen und Navigationsmöglichkeiten, um zu den einzelnen Funktionen des Programms zu gelangen.
|
||||
Durch diese Leiste haben Sie folgende Möglichkeiten:
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/kunden.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf gelangen Sie direkt zur Kundenübersicht. Hier können Sie dann auch neue Kunden anlegen oder Kundendaten ändern. Falls Sie füe einen Neuen Kunden einen Termin, eine Rechnung oder ein Angebot anlegen wollen, können Sie den Kunden auch direkt dort neu anlegen.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/termine.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf gelangen Sie direkt zur Terminübersicht. Hier können Sie dann auch neue Termine anlegen, erledigte Termine aus der Liste entfernen oder Termine ändern.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/search.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf gelangen Sie direkt zur Suche. Hier können Sie alle Daten durchsuchen. Einfache Suchanfragen sind auch direkt in den Ansichten (Kunden oder Termine) möglich, jedoch ist diese Suche ist flexibler und mächtiger.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/newdoc.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf gelangen Sie direkt zur Eingabemaske zur erstellung eines neuen Dokuments. Hier können direkt Angebote, Gutschriften oder Rechnungen erstellt werden.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/chart.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf gelangen Sie zur statistik Seite. Hier können verschiedene Statistiken über Kunden aufgerufen werden.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/einstellungen.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf können Sie einstellungen ändern. Hier ist es möglich die Anzeige des Programms auf Ihre Bedürfnisse anzupassen.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/logout.png' class='schnellicon' /><br />
|
||||
Mit einem Klick auf diesen Knopf melden Sie sich vom System ab. Es ist empfehlenswert, dass Sie bei Feierabend das Programm so beenden.
|
||||
<div class='line'></div>
|
||||
<img src='pics/icons/zoom-in.png' class='schnellicon' /><img src='pics/icons/zoom-original.png' class='schnellicon' /><img src='pics/icons/zoom-out.png' class='schnellicon' /><br />
|
||||
Mit diesen Knöpfen können Sie die Größe der Anzeige Ihren Bedürfnissen anpassen."
|
||||
}
|
||||
{/if}
|
||||
@@ -0,0 +1,14 @@
|
||||
<div class="widthlimiter">
|
||||
<h2> Export starten:</h2>
|
||||
<div class="line"></div><br />
|
||||
<form action="?action=stexp&do=generate" name="mainform" method='POST'>
|
||||
<fieldset class='smallcenter'>
|
||||
<b>Für Monat:</b><br />
|
||||
|
||||
<select name="month">
|
||||
{html_options values=$month_ids output=$month_names selected=$curr_month_id}
|
||||
</select>
|
||||
</fieldset>
|
||||
<input type="submit" value="Erzeugen" />
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,46 @@
|
||||
<div class='widthlimiter'>
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1" class='noloading'>Kunde</a></li>
|
||||
<li><a href="#tabs-2" class='noloading' onClick='ajax_searchrech(0,0)'>Dokument</a></li>
|
||||
<li><a href="#tabs-3" class='noloading'>Lieferant</a></li>
|
||||
<li><a href="#tabs-4" class='noloading'>Wahreneingang</a></li>
|
||||
<li><a href="#tabs-5" class='noloading'>Benutzer</a></li>
|
||||
</ul>
|
||||
{* KUNDE PANE *}
|
||||
<div id="tabs-1">
|
||||
{include file='kunden.tpl'}
|
||||
</div>
|
||||
{* DOKUMENT PANE *}
|
||||
<div id="tabs-2">
|
||||
<fieldset class='big'>
|
||||
<legend>Dokumentensuche:</legend>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='rech_src' id='src_rech' value='' class='searchform' onKeyUp='ajax_searchrech(0,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>
|
||||
<div id='rechlist'>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
{* LIEFERANT PANE *}
|
||||
<div id="tabs-3">
|
||||
{include file='liefer.tpl'}
|
||||
</div>
|
||||
{* WAHRENEINGANG PANE *}
|
||||
<div id="tabs-4">
|
||||
|
||||
</div>
|
||||
{* BENUTZER PANE *}
|
||||
<div id="tabs-5">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
</script>
|
||||
<script language='javascript'>ajax_searchkunden(0);</script>
|
||||
@@ -0,0 +1,4 @@
|
||||
{include file="heading.tpl" heading="Terminanzeige"}
|
||||
<h2><div class='fifty'>Ohne Anfahrt:</div><div class='fifty'>Mit Anfahrt:</div></h2>
|
||||
<iframe src='{$pdffile}' width='40%' height='600px'></iframe>
|
||||
<iframe src='{$pdffile2}' width='40%' height='600px'></iframe>
|
||||
@@ -0,0 +1,95 @@
|
||||
<a href='?action=termin'><span class='cal' title="Terminkalender anzeigen" style='margin-left: 50%;'></span></a><br />
|
||||
<div id="tabs">
|
||||
{* ANZEIGE PANE *}
|
||||
<div class='widthlimiter'>
|
||||
<ul>
|
||||
<li><a href="#tabs-1" class='noloading' onclick='ajax_searchterm(0,1)'>Offen</a></li>
|
||||
<li><a href="#tabs-2" class='noloading' onclick='ajax_searchterm(0,2)'>Nicht terminiert</a></li>
|
||||
<li><a href="#tabs-3" class='noloading' onclick='ajax_searchterm(0,3)'>Erledigt</a></li>
|
||||
<li><a href="#tabs-4" class='noloading' onclick='ajax_searchterm(0,4)'>Inaktiv</a></li>
|
||||
<li><a href="#tabs-5" class='noloading' onclick='ajax_searchterm(0,5)'>Ganztags-termine</a></li>
|
||||
</ul>
|
||||
|
||||
{* offen PANE *}
|
||||
<div id="tabs-1">
|
||||
<h3>Offene Termine</h3>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='term_src-1' id='term_src-1' value='' class='searchform' onKeyUp='ajax_searchterm(0,1)' title='Geben Sie hier das Suchmuster ein - % ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
<div id='termcontainer-1'>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
{* nicht terminiert PANE *}
|
||||
<div id="tabs-2">
|
||||
<h3>Nicht terminierte Termine</h3>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='term_src-2' id='term_src-2' value='' class='searchform' onKeyUp='ajax_searchterm(0,2)' title='Geben Sie hier das Suchmuster ein - % ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
<div id='termcontainer-2'>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
{* erledigt PANE *}
|
||||
<div id="tabs-3">
|
||||
<h3>Erledigte Termine</h3>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='term_src-3' id='term_src-3' value='' class='searchform' onKeyUp='ajax_searchterm(0,3)' title='Geben Sie hier das Suchmuster ein - % ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
<div id='termcontainer-3'>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
{* inaktiv PANE *}
|
||||
<div id="tabs-4">
|
||||
<h3>Inaktive Termine</h3>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='term_src-4' id='term_src-4' value='' class='searchform' onKeyUp='ajax_searchterm(0,4)' title='Geben Sie hier das Suchmuster ein - % ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
<div id='termcontainer-4'>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
{* mehrtages PANE *}
|
||||
<div id="tabs-5">
|
||||
<h3>Ganztags-termine</h3>
|
||||
<div class='centersmallsrc'>
|
||||
<input name='term_src-5' id='term_src-5' value='' class='searchform' onKeyUp='ajax_searchterm(0,5)' title='Geben Sie hier das Suchmuster ein - % ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
<div id='termcontainer-5'>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
{if $tabs}
|
||||
$( "#tabs" ).tabs( "option", "selected", {$tabs-1} );
|
||||
{/if}
|
||||
});
|
||||
|
||||
</script>
|
||||
{if $tabs}
|
||||
<script language='javascript'>ajax_searchterm(0,{$tabs});</script>
|
||||
{else}
|
||||
<script language='javascript'>ajax_searchterm(0,1);</script>
|
||||
{/if}
|
||||
<br />
|
||||
@@ -0,0 +1,66 @@
|
||||
{include file="heading.tpl" heading="Umschlag bedrucken"}
|
||||
|
||||
<div class="fifty">
|
||||
<form action="?action=rechnungadd&formsent=1&id={$loadrech}" 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>
|
||||
{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 class='artlabel'>Adresserweiterung: </label>
|
||||
<input class='art' name="adresserweiterung" value="{$rechnung.adresserweiterung}" />
|
||||
<br />
|
||||
<input name="adressid" type="hidden" value="{$adresse.adressid}" />
|
||||
<button type="button" class='preview' onclick="ajax_loadUmschlagpreview();">Vorschau aktualisieren</button><br />
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="fifty">
|
||||
<div id="pdfpreview">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
startwithUmschlagpreview = 1;
|
||||
</script>
|
||||
@@ -0,0 +1,52 @@
|
||||
<div class="widthlimiter">
|
||||
<form action='?action=useradd&formsent=1&id={$id}' rel="#overlay" enctype="multipart/form-data" method='post'>
|
||||
<fieldset>
|
||||
<legend>Benutzerinformationen</legend>
|
||||
<label>Vorname:</label><input name='vname' id='vname' value='{$vname|escape}' required='required' title='Bitte geben Sie hier den Vornamen des Benutzers an' /><br />
|
||||
<label>Nachname:</label><input name='nname' id='nname' value='{$nname|escape}' required='required' title='Bitte geben Sie hier den Nachamen des Benutzers an' /><br />
|
||||
<label>E-Mail Adresse:</label><input name='mail' id='mail' value='{$mail|escape}' title='Bitte geben Sie hier die E-Mail Adresse des Benutzers an' /><br />
|
||||
<label>Telefon privat:</label><input name='telpriv' id='telpriv' value='{$telpriv|escape}' title='Bitte geben Sie hier die private Telefonnummer des Benutzers an' /><br />
|
||||
<label>Telefon mobil:</label><input name='telmob' id='telmob' value='{$telmob|escape}' title='Bitte geben Sie hier die Mobilfunknummer des Benutzers an' /><br />
|
||||
<label>Wochenarbeitsstunden (Mo.-Fr.)</label><input name='weekhours' id='weekhours' value='{$weekhours|escape}' title='Bitte geben Sie hier die die regulären Wochenarbeitsstunden von Mo. bis Fr. an' /><br />
|
||||
<label>Wochenarbeiststunden (Sa.):</label><input name='sahours' id='sahours' value='{$sahours|escape}' title='Bitte geben Sie hier die die regulären Wochenarbeitsstunden an Samstagen an (Falls z.B. jeden zweiten Sa., dann den Durchnitt)' /><br />
|
||||
<label>Urlaubstage (Jährl.):</label><input name='vacationdays' id='vacationdays' value='{$vacationdays|escape}' title='Bitte geben Sie hier die die Jährlich verfügbaren Urlaubstage an.' /><br />
|
||||
<label>Beginn der Zeiterfassung:</label><input type='date' name='timelog_start' id='timelog_start' value='{$timelog_start|escape}' title='Bitte geben Sie hier Den ersten Arbeitstag an.' /><br />
|
||||
<label>RFID:</label><input name='rfid' id='rfid' value='{$rfid|escape}' title='Bitte geben Sie hier die ID des Transponders an.' /><br />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Anmeldeinformationen</legend>
|
||||
<label>Benutzername:</label><input name='nick' id='nick' required='required' value='{$nick|escape}' title='Bitte geben Sie hier den gewünschten Benutzernamen ein, der später zur Anmeldung verwendet wird.' /><br />
|
||||
<label>Unterschrift:</label><input type='file' name='sign' id='sign' title='Hier kann die Unterschrift des Benutzers eingelesen werden, wählen Sie dazu eine Bilddatei mit der Größe von 300x100 Pixeln aus.' /><br />
|
||||
{if $update}
|
||||
{if $smarty.session.rights != 777777}
|
||||
<label>Altes Passwort:</label><input name='oldpw' id='oldpw' value='' type='password' title='Bitte geben Sie hier das alte Passwort des Benutzers ein.' /><br />
|
||||
{/if}
|
||||
<label>Neues Passwort:</label><input name='newpw' id='newpw' value='' type='password' onkeyup="chkPass(this.value);" title='Bitte geben Sie hier das neue Passwort ein, achten Sie auf die unten stehende Anzeige und wählen sie ein möglichst starkes Passwort' /><br />
|
||||
<label>Neues Passwort (Wiederholung):</label><input name='newpw2' id='newpw2' value='' type='password' title='Bitte geben Sie hier das neue Passwort erneut ein, um Tippfehler zu vermeiden' /><br />
|
||||
{else}
|
||||
<label>Passwort:</label><input name='newpw' id='newpw' value='' required='required' type='password' onkeyup="chkPass(this.value);" title='Bitte geben Sie hier das gewünschte Passwort ein, achten Sie auf die unten stehende Anzeige und wählen sie ein möglichst starkes Passwort' /><br />
|
||||
<label>Passwort Wiederholung:</label><input name='newpw2' id='newpw2' value='' required='required' type='password' title='Bitte geben Sie hier das gewünschte Passwort erneut ein, um Tippfehler zu vermeiden' /><br />
|
||||
{/if}
|
||||
<div id="pwdscore">
|
||||
<div id="scorebar">0%</div><div id="complexity">zu kurz</div><br />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Rechte</legend>
|
||||
<label>Kunden:</label>
|
||||
{html_options name=rkunden options=$rechte selected=$rkunden required='required' class='preim' title='Bitte vergeben Sie die gewünschten Rechte'}<br />
|
||||
<label>Termine:</label>
|
||||
{html_options name=rtermine options=$rechte selected=$rtermine required='required' class='preim' title='Bitte vergeben Sie die gewünschten Rechte'}<br />
|
||||
<label>Rechnungen,Angebote,etc.:</label>
|
||||
{html_options name=rrechnungen options=$rechte selected=$rrechnungen required='required' class='preim' title='Bitte vergeben Sie die gewünschten Rechte'}<br />
|
||||
<label>Zulieferer:</label>
|
||||
{html_options name=rliefer options=$rechte selected=$rliefer required='required' class='preim' title='Bitte vergeben Sie die gewünschten Rechte'}<br />
|
||||
<label>Super Admin:</label>
|
||||
{html_options name=radmin options=$rechte selected=$radmin required='required' class='preim' title='Bitte vergeben Sie die gewünschten Rechte'}<br />
|
||||
</fieldset>
|
||||
{if $update}
|
||||
<input type='submit' value='ändern' />
|
||||
{else}
|
||||
<input type='submit' value='anlegen' />
|
||||
{/if}
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
{*<a href='?action=termin'><span class='cal' title="Passkeys verwalten" style='margin-left: 50%;'></span></a><br />*}
|
||||
<div id="tabs">
|
||||
{* ANZEIGE PANE *}
|
||||
<div class='widthlimiter'>
|
||||
<h3>{$user.vname} {$user.nname}</h3>
|
||||
<div id='termcontainer-{$user.id}'>
|
||||
{if $local == true}
|
||||
<a href='addKey.php?id={$user.id}&add=new'><span class='addcenter' title="Neuer Passkey"></span></a><br />
|
||||
{/if}
|
||||
<table><tr><th>Name</th><th>Aktion</th></tr>
|
||||
{foreach $keys as $key}
|
||||
<tr>
|
||||
<td>{$key.name}</td>
|
||||
<td><a href="?action=userkeys&id={$user.id}&del={$key.id}"><span class="del" title="Passkey löschen"></span></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,88 @@
|
||||
{*<a href='?action=termin'><span class='cal' title="Terminkalender anzeigen" style='margin-left: 50%;'></span></a><br />*}
|
||||
<div id="tabs">
|
||||
{* ANZEIGE PANE *}
|
||||
<div class='widthlimiter'>
|
||||
<ul>
|
||||
{foreach $users as $user}
|
||||
<li><a href="#tabs-{$user.id}" class='noloading' onclick='ajax_searchzeit(0,{$user.id})'>{$user.vname} {$user.nname|substr:0:1}.</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
{* PANES *}
|
||||
{$tabnr = 0}
|
||||
{foreach $users as $user}
|
||||
<div id="tabs-{$user.id}">
|
||||
<h3>{$user.vname} {$user.nname}</h3>
|
||||
<div class='fifty'>
|
||||
<table><tr><td>
|
||||
Überstunden (Dieser Monat):</td><td>{if $user.Mueberstd < 0}<font color="#AA0000">{else}<font color="#00AA00">{/if}{$user.Mueberstd|intval}h, {(($user.Mueberstd*60)%60)|abs}min </font></td></tr>
|
||||
<tr><td>
|
||||
Überstunden (Gesamt):</td><td> {if $user.ueberstd < 0}<font color="#AA0000">{else}<font color="#00AA00">{/if}{$user.ueberstd|intval}h, {(($user.ueberstd*60)%60)|abs}min</font></td></tr>
|
||||
<tr><td>
|
||||
Ungeplante Urlaubstage:</td><td> {$user.urlaub}</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class='fifty'>
|
||||
<table><tr><td>
|
||||
Stunden (Mo.-Fr.):</td><td> {$user.weekhours|intval}h, {(($user.weekhours*60)%60)|abs}min</td></tr>
|
||||
<tr><td>
|
||||
Stunden Samstag:</td><td>{$user.sahours|intval}h, {(($user.sahours*60)%60)|abs}min</td></tr>
|
||||
<tr><td>
|
||||
Urlaubstage:</td><td> {$user.vacation} + {$user.oldvacation}</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class='centersmallsrc'>
|
||||
<input type = 'hidden' name='zeit_src-{$user.id}' id='zeit_src-{$user.id}' value='' class='searchform' onKeyUp='ajax_searchzeit(0,{$user.id})' title='Geben Sie hier das Suchmuster ein - % ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
{*<br />*}
|
||||
<form action="?action=zeiten&do=save&user={$user.id}&formsent=1&tabs={$tabnr}" method='POST' enctype="multipart/form-data">
|
||||
<label class='artlabel'>Farbe:</label>{html_options name={$user.colorname} id={$user.colorname} options=$colors selected=$user.color class='searchform' title='Bitte wählen Sie die Farbe, in der der Mitarbeiter in der Terminliste geführt wird.' onchange='#'}
|
||||
<br />
|
||||
<label class='artlabel'>RFID: {$user.rfid}</label>
|
||||
<br />
|
||||
<input type="submit" value="Speichern" />
|
||||
</form>
|
||||
<span class='printcenter' title='Drucken' onClick='askmonth("",{$user.id})'></span><br />
|
||||
</div>
|
||||
<div id='termcontainer-{$user.id}'>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
{$tabnr = $tabnr + 1}
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="question">
|
||||
Welchen Monat möchten Sie drucken?<br />
|
||||
<div id="print_month"></div>
|
||||
<input type="hidden" id="printmonth" name="printmonth" />
|
||||
<input type="hidden" id="printuser" name="printuser" />
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
{if $tabs}
|
||||
$( "#tabs" ).tabs( "option", "selected", {$tabs} );
|
||||
{/if}
|
||||
});
|
||||
$('#print_month').datepicker({
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showButtonPanel: true,
|
||||
dateFormat: 'mm.yy',
|
||||
onClose: function(dateText, inst) {
|
||||
},
|
||||
onSelect: function (selectedDate){
|
||||
var date = $(this).datepicker('getDate');
|
||||
window.location= "?action=zeitenprint&user=" + document.getElementById("printuser").value + "&month="+(date.getMonth()+1) + "&year="+date.getYear();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{if $tabs}
|
||||
<script language='javascript'>ajax_searchzeit(0,{$users[{$tabs}].id});</script>
|
||||
{else}
|
||||
<script language='javascript'>ajax_searchzeit(0,{$users[0].id});</script>
|
||||
{/if}
|
||||
<br />
|
||||
@@ -0,0 +1,85 @@
|
||||
<div class='widthlimiter'>
|
||||
{if {$user.id}}
|
||||
<h2>Arbeitszeit für {$user.vname} {$user.nname}:</h2>
|
||||
{/if}
|
||||
<br />
|
||||
<form action="?action=zeitenadd&formsent=1&userid={$user.id}&id={$zeit.id}" name="mainform" method='POST'>
|
||||
<fieldset>
|
||||
<legend>Arbeitszeit Informationen:</legend>
|
||||
<label>Mitarbeiter:</label>
|
||||
<select name='user'>
|
||||
{html_options values=$optuserids output=$optusers selected="{$user.id|default:{$smarty.session.user}}"}
|
||||
</select><br />
|
||||
|
||||
<legend>Zeitraum:</legend>
|
||||
<br />
|
||||
<label>Von:</label><input name='datetime_kommen' id='datetime_kommen' pattern='\d{ldelim}2{rdelim}.\d{ldelim}2{rdelim}.\d{ldelim}4{rdelim}\s\um\s\d{ldelim}2{rdelim}\:\d{ldelim}2{rdelim}' value='{$zeit.kommen|mysql_date_to_dispdate}' /><br />
|
||||
<label>Bis:</label><input name='datetime_gehen' id='datetime_gehen' pattern='\d{ldelim}2{rdelim}.\d{ldelim}2{rdelim}.\d{ldelim}4{rdelim}\s\um\s\d{ldelim}2{rdelim}\:\d{ldelim}2{rdelim}' value='{$zeit.gehen|mysql_date_to_dispdate}' /><br />
|
||||
<label>Pause:</label><input name='pause' id='pause' pattern='\d{ldelim}2{rdelim}:\d{ldelim}2{rdelim}' value='{$zeit.pause_mins|mins_to_disppause}' /><br />
|
||||
|
||||
</fieldset>
|
||||
<input type='submit' value='Speichern' />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$('#datetime_kommen').datetimepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 1,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
timeFormat: 'hh:mm',
|
||||
separator: ' um ',
|
||||
onClose: function(dateText, inst) {
|
||||
var endDateTextBox = $('#datetime_end');
|
||||
if (endDateTextBox.val() != '') {
|
||||
var testStartDate = new Date(dateText);
|
||||
var testEndDate = new Date(endDateTextBox.val());
|
||||
if (testStartDate > testEndDate)
|
||||
endDateTextBox.val(dateText);
|
||||
}
|
||||
else {
|
||||
endDateTextBox.val(dateText);
|
||||
}
|
||||
},
|
||||
onSelect: function (selectedDateTime){
|
||||
var start = $(this).datetimepicker('getDate');
|
||||
$('#datetime_end').datetimepicker('option', 'minDate', new Date(start.getTime()));
|
||||
}
|
||||
});
|
||||
$('#datetime_gehen').datetimepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 1,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
timeFormat: 'hh:mm',
|
||||
separator: ' um ',
|
||||
onClose: function(dateText, inst) {
|
||||
var startDateTextBox = $('#datetime_start');
|
||||
if (startDateTextBox.val() != '') {
|
||||
var testStartDate = new Date(startDateTextBox.val());
|
||||
var testEndDate = new Date(dateText);
|
||||
if (testStartDate > testEndDate)
|
||||
startDateTextBox.val(dateText);
|
||||
}
|
||||
else {
|
||||
startDateTextBox.val(dateText);
|
||||
}
|
||||
},
|
||||
onSelect: function (selectedDateTime){
|
||||
var end = $(this).datetimepicker('getDate');
|
||||
$('#datetime_start').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
|
||||
}
|
||||
});
|
||||
|
||||
$('#pause').timepicker({
|
||||
minuteGrid: 15,
|
||||
hourGrid: 5,
|
||||
stepMinute: 1,
|
||||
timeFormat: 'hh:mm',
|
||||
timeOnlyTitle: "Dauer:",
|
||||
timeText: "Pause:"
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,2 @@
|
||||
{include file="heading.tpl" heading="Arbeitszeiten {$user.vname} {$user.nname}"}
|
||||
<iframe src='{$pdffile}' width='70%' height='600px'></iframe>
|
||||
Reference in New Issue
Block a user