53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\UI\Zakaznik;
|
|
|
|
use App\UI\BasePresenter;
|
|
use App\Model\Facade\ZakaznikFacade;
|
|
|
|
class ZakaznikPresenter extends BasePresenter
|
|
{
|
|
/** @persistent */
|
|
public string $search = '';
|
|
|
|
/** @persistent */
|
|
public string $zobrazit = 'aktivni';
|
|
|
|
public function __construct(
|
|
private ZakaznikFacade $zakaznikFacade
|
|
) {
|
|
parent::__construct();
|
|
}
|
|
|
|
public function renderDefault(): void
|
|
{
|
|
$this->template->zakaznici = $this->zakaznikFacade->getFiltered($this->search, $this->zobrazit);
|
|
$this->template->search = $this->search;
|
|
$this->template->zobrazit = $this->zobrazit;
|
|
}
|
|
|
|
public function handleToggleAktivni(int $id): void
|
|
{
|
|
$novyStav = $this->zakaznikFacade->toggleAktivni($id);
|
|
|
|
$this->flashMessage(
|
|
$novyStav ? 'Zákazník byl aktivován.' : 'Zákazník byl deaktivován.',
|
|
'success'
|
|
);
|
|
|
|
$this->redirect('this');
|
|
}
|
|
|
|
public function handleDelete(int $id): void
|
|
{
|
|
try {
|
|
$this->zakaznikFacade->delete($id);
|
|
$this->flashMessage('Zákazník byl úspěšně smazán.', 'info');
|
|
} catch (\PDOException $e) {
|
|
// Pokud je navázán na FAKTURA, FK v MS SQL odmítne smazání
|
|
$this->flashMessage('Zákazníka nelze smazat, protože má v systému vystavené faktury. Můžete jej deaktivovat.', 'warning');
|
|
}
|
|
|
|
$this->redirect('this');
|
|
}
|
|
} |