Kufrik/app/UI/Zakaznik/ZakaznikPresenter.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');
}
}