kufrikExplorer->query($sql, ...$params)->fetchAll(); } /** * Detail zákazníka podle ID */ public function getById(int $id) { return $this->kufrikExplorer->table('ZAKAZNIK')->where('ID', $id)->fetch(); } /** * Uložení / Aktualizace zákazníka */ public function save(array $data, ?int $id = null, int $firmaId): void { // Sanitizace prázdných řetězců na NULL pro volitelné položky $values = [ 'FIRMA_ID' => $firmaId, 'JMENO' => $data['JMENO'] ?: null, 'PRIJMENI' => $data['PRIJMENI'], 'ULICE' => $data['ULICE'] ?: null, 'MESTO' => $data['MESTO'] ?: null, 'PSC' => $data['PSC'] ?: null, 'IC' => $data['IC'] ?: null, 'DIC' => $data['DIC'] ?: null, 'TELEFON' => $data['TELEFON'] ?: null, 'EMAIL' => $data['EMAIL'] ?: null, 'AKTIVNI' => (int) ($data['AKTIVNI'] ?? 1), ]; if ($id) { unset($values['FIRMA_ID']); // FIRMA_ID se při úpravě nemění $this->kufrikExplorer->table('ZAKAZNIK')->where('ID', $id)->update($values); } else { $this->kufrikExplorer->table('ZAKAZNIK')->insert($values); } } /** * Přepnutí stavu Aktivní / Neaktivní */ public function toggleAktivni(int $id): bool { $zakaznik = $this->getById($id); if (!$zakaznik) { return false; } $novyStav = !$zakaznik->AKTIVNI; // OPRAVA: Provedeme update přímo přes Selection podle sloupce 'ID' $this->kufrikExplorer->table('ZAKAZNIK') ->where('ID', $id) ->update(['AKTIVNI' => (int) $novyStav]); return $novyStav; } /** * Smazání zákazníka */ public function delete(int $id): void { $this->kufrikExplorer->table('ZAKAZNIK')->where('ID', $id)->delete(); } }