| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/sc/ |
Upload File : |
<?php
/* Smarty version 3.1.30, created on 2026-06-27 05:56:50
from "/var/www/clients/client1/web17/web/includes/templates/templates/worktime/employees.tpl" */
/* @var Smarty_Internal_Template $_smarty_tpl */
if ($_smarty_tpl->_decodeProperties($_smarty_tpl, array (
'version' => '3.1.30',
'unifunc' => 'content_6a3f4a0284c751_26741816',
'has_nocache_code' => false,
'file_dependency' =>
array (
'ce93b7a9969a0255dc8b1ae6c2f656a764261fde' =>
array (
0 => '/var/www/clients/client1/web17/web/includes/templates/templates/worktime/employees.tpl',
1 => 1780459678,
2 => 'file',
),
),
'includes' =>
array (
),
),false)) {
function content_6a3f4a0284c751_26741816 (Smarty_Internal_Template $_smarty_tpl) {
$_smarty_tpl->_assignInScope('employees', $_smarty_tpl->tpl_vars['worktime']->value->employees());
?>
<link rel="stylesheet" href="<?php echo @constant('SITE_URL');?>
/assets/css/worktime.css?v=<?php echo filemtime((@constant('PATH_SYSTEM')).('/assets/css/worktime.css'));?>
">
<div class="container-fluid p-4" id="wt-emp-page">
<div class="d-flex flex-wrap justify-content-between align-items-center mb-4 gap-2">
<div>
<a href="<?php echo @constant('SITE_URL');?>
/worktime/dashboard/" class="text-muted small text-decoration-none">← Zeiterfassung</a>
<h1 class="h3 mb-0">Mitarbeiterverwaltung</h1>
</div>
<button class="btn btn-primary" id="empNewBtn"><i class="material-icons sm">person_add</i> Mitarbeiter anlegen</button>
</div>
<div class="card shadow-sm">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead>
<tr>
<th>Mitarbeiter</th>
<th class="text-end">Soll/Monat</th>
<th class="text-end">Std. (Monat)</th>
<th class="text-end">Std. (Vormonat)</th>
<th>Status</th>
<th class="text-end">Aktionen</th>
</tr>
</thead>
<tbody id="wt-emp-tbody">
<?php
$_from = $_smarty_tpl->smarty->ext->_foreach->init($_smarty_tpl, $_smarty_tpl->tpl_vars['employees']->value, 'e');
if ($_from !== null) {
foreach ($_from as $_smarty_tpl->tpl_vars['e']->value) {
?>
<tr class="emp-row<?php if (!$_smarty_tpl->tpl_vars['e']->value->active) {?> text-muted<?php }?>" data-id="<?php echo $_smarty_tpl->tpl_vars['e']->value->id;?>
" data-name="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->first_name, ENT_QUOTES, 'UTF-8', true);?>
<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->last_name, ENT_QUOTES, 'UTF-8', true);?>
" style="cursor:pointer;">
<td class="fw-bold"><?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->last_name, ENT_QUOTES, 'UTF-8', true);?>
, <?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->first_name, ENT_QUOTES, 'UTF-8', true);?>
</td>
<td class="text-end"><?php if ($_smarty_tpl->tpl_vars['e']->value->max_hours == "0.00") {?><span class="badge bg-secondary">unbegrenzt</span><?php } else {
echo sprintf("%.2f",$_smarty_tpl->tpl_vars['e']->value->max_hours);
}?></td>
<td class="text-end"><?php echo sprintf("%.2f",$_smarty_tpl->tpl_vars['e']->value->hours_current);?>
</td>
<td class="text-end"><?php echo sprintf("%.2f",$_smarty_tpl->tpl_vars['e']->value->hours_last);?>
</td>
<td><?php if ($_smarty_tpl->tpl_vars['e']->value->active) {?><span class="badge bg-success">aktiv</span><?php } else { ?><span class="badge bg-secondary">inaktiv</span><?php }?></td>
<td class="text-end text-nowrap">
<button class="btn btn-sm btn-outline-secondary emp-edit" data-id="<?php echo $_smarty_tpl->tpl_vars['e']->value->id;?>
" data-first="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->first_name, ENT_QUOTES, 'UTF-8', true);?>
" data-last="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->last_name, ENT_QUOTES, 'UTF-8', true);?>
" data-max="<?php echo $_smarty_tpl->tpl_vars['e']->value->max_hours;?>
"><i class="material-icons sm">edit</i></button>
<?php if ($_smarty_tpl->tpl_vars['e']->value->active) {?>
<button class="btn btn-sm btn-outline-danger emp-toggle" data-id="<?php echo $_smarty_tpl->tpl_vars['e']->value->id;?>
" data-active="0" data-name="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->first_name, ENT_QUOTES, 'UTF-8', true);?>
<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->last_name, ENT_QUOTES, 'UTF-8', true);?>
" title="Deaktivieren"><i class="material-icons sm">person_off</i></button>
<?php } else { ?>
<button class="btn btn-sm btn-outline-success emp-toggle" data-id="<?php echo $_smarty_tpl->tpl_vars['e']->value->id;?>
" data-active="1" data-name="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->first_name, ENT_QUOTES, 'UTF-8', true);?>
<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['e']->value->last_name, ENT_QUOTES, 'UTF-8', true);?>
" title="Aktivieren"><i class="material-icons sm">person</i></button>
<?php }?>
</td>
</tr>
<?php
}
} else {
?>
<tr><td colspan="6" class="text-center text-muted py-4">Keine Mitarbeiter erfasst.</td></tr>
<?php
}
$_smarty_tpl->smarty->ext->_foreach->restore($_smarty_tpl);
?>
</tbody>
</table>
</div>
</div>
</div>
<div class="modal fade" id="empModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<form id="empForm" autocomplete="off">
<div class="modal-header">
<h5 class="modal-title" id="empModalTitle">Mitarbeiter</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Schließen"></button>
</div>
<div class="modal-body">
<input type="hidden" name="id" id="empId">
<div class="row g-3">
<div class="col-md-6"><label class="form-label">Vorname</label><input type="text" class="form-control" name="first_name" id="empFirst" required></div>
<div class="col-md-6"><label class="form-label">Nachname</label><input type="text" class="form-control" name="last_name" id="empLast" required></div>
<div class="col-12"><label class="form-label">Sollstunden / Monat <span class="text-muted">(0 = unbegrenzt)</span></label><input type="number" step="0.5" min="0" class="form-control" name="max_hours" id="empMax" value="0"></div>
</div>
<div class="alert alert-danger mt-3 d-none" id="empError"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" data-bs-dismiss="modal">Abbrechen</button>
<button type="submit" class="btn btn-primary" id="empSave"><i class="material-icons sm">save</i> Speichern</button>
</div>
</form>
</div>
</div>
</div>
<div class="offcanvas offcanvas-end" tabindex="-1" id="empPanel" aria-labelledby="empPanelTitle" style="width:600px;max-width:96vw;">
<div class="offcanvas-header border-bottom d-block">
<div class="d-flex justify-content-between align-items-start">
<div>
<h5 class="offcanvas-title mb-0" id="empPanelTitle">Mitarbeiter</h5>
<div class="text-muted small" id="empPanelSub"></div>
</div>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Schließen"></button>
</div>
<div class="d-flex flex-wrap gap-2 align-items-center mt-3">
<select id="empFilterMonth" class="form-select form-select-sm" style="width:auto;" aria-label="Monat">
<option value="all">– alle Monate –</option>
<option value="1">Januar</option><option value="2">Februar</option><option value="3">März</option>
<option value="4">April</option><option value="5">Mai</option><option value="6">Juni</option>
<option value="7">Juli</option><option value="8">August</option><option value="9">September</option>
<option value="10">Oktober</option><option value="11">November</option><option value="12">Dezember</option>
</select>
<select id="empFilterYear" class="form-select form-select-sm" style="width:auto;" aria-label="Jahr">
<option value="all">– alle Jahre –</option>
</select>
<button type="button" class="btn btn-sm btn-primary ms-auto" id="empAddHoursBtn"><i class="material-icons sm">add</i> Arbeitszeit</button>
</div>
</div>
<div class="offcanvas-body"><div id="empPanelBody"></div></div>
</div>
<div class="modal fade" id="empCapModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<form id="empCapForm" autocomplete="off">
<div class="modal-header">
<h5 class="modal-title">Arbeitszeit erfassen</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Schließen"></button>
</div>
<div class="modal-body">
<input type="hidden" name="employee" id="empCapEmployee">
<div class="mb-2"><span class="text-muted small">Mitarbeiter:</span> <strong id="empCapName"></strong></div>
<div class="row g-3">
<div class="col-12"><label class="form-label">Datum</label><input type="date" class="form-control" name="date" id="empCapDate" required></div>
<div class="col-6"><label class="form-label">Beginn</label><input type="time" class="form-control" name="start_time" id="empCapStart" required></div>
<div class="col-6"><label class="form-label">Ende</label><input type="time" class="form-control" name="end_time" id="empCapEnd" required></div>
<div class="col-12"><label class="form-label">Pause (Min.)</label><input type="number" class="form-control" name="break_duration" id="empCapBreak" min="0" max="240" step="5" value="0"></div>
<div class="col-12"><div class="wt-live" id="empCapLive">Arbeitszeit: <strong>–</strong></div></div>
</div>
<div class="alert alert-danger mt-3 d-none" id="empCapError"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" data-bs-dismiss="modal">Abbrechen</button>
<button type="submit" class="btn btn-primary" id="empCapSave"><i class="material-icons sm">save</i> Speichern</button>
</div>
</form>
</div>
</div>
</div>
<?php echo '<script'; ?>
src="<?php echo @constant('SITE_URL');?>
/assets/js/worktime-employees.js?v=<?php echo filemtime((@constant('PATH_SYSTEM')).('/assets/js/worktime-employees.js'));?>
"><?php echo '</script'; ?>
>
<?php }
}