| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/kadernictvidenisa_cz/api/ |
Upload File : |
<?php
// ============================================
// api/pracovni-doba.php (admin only)
// GET /api/pracovni-doba – načíst všechny dny
// PUT /api/pracovni-doba – uložit všechny dny
// ============================================
admin_required();
if ($method === 'GET') {
$stmt = db()->query("SELECT den, od_min, do_min, aktivni FROM pracovni_doba ORDER BY den");
$rows = $stmt->fetchAll();
$data = [];
foreach ($rows as $r) {
$data[(int)$r['den']] = [
'od_min' => (int)$r['od_min'],
'do_min' => (int)$r['do_min'],
'aktivni' => (bool)$r['aktivni'],
'od_cas' => sprintf('%02d:%02d', intdiv($r['od_min'], 60), $r['od_min'] % 60),
'do_cas' => sprintf('%02d:%02d', intdiv($r['do_min'], 60), $r['do_min'] % 60),
];
}
json_response(['ok' => true, 'data' => $data]);
}
if ($method === 'PUT') {
$dny = $input['dny'] ?? [];
if (!is_array($dny)) json_error('Neplatná data.');
$stmt = db()->prepare("
INSERT INTO pracovni_doba (den, od_min, do_min, aktivni)
VALUES (?, ?, ?, ?)
ON DUPLICATE KEY UPDATE od_min = VALUES(od_min), do_min = VALUES(do_min), aktivni = VALUES(aktivni)
");
db()->beginTransaction();
try {
foreach ($dny as $den => $hodnoty) {
$den = (int) $den;
$aktivni = isset($hodnoty['aktivni']) ? (int)(bool)$hodnoty['aktivni'] : 0;
$od_min = (int)($hodnoty['od_min'] ?? 480);
$do_min = (int)($hodnoty['do_min'] ?? 1020);
if ($den < 1 || $den > 7) continue;
if ($do_min <= $od_min) json_error('Konec pracovní doby musí být po začátku (den ' . $den . ').');
$stmt->execute([$den, $od_min, $do_min, $aktivni]);
}
db()->commit();
} catch (Exception $e) {
db()->rollBack();
json_error('Chyba při ukládání: ' . $e->getMessage(), 500);
}
json_response(['ok' => true, 'zprava' => 'Pracovní doba uložena.']);
}
json_error('Metoda není podporována.', 405);