getUser()->getIdentity()->firma_id ?? null; if (!$firmaId) { $this->flashMessage('K účtu není přiřazena žádná aktivní firma.', 'danger'); $this->redirect('Home:'); } $firma = $this->kufrikExplorer->table('FIRMA')->get($firmaId); if (!$firma) { $this->flashMessage('Firma nebyla v databázi nalezena.', 'danger'); $this->redirect('Home:'); } // Predvyplnění formuláře $this['firmaForm']->setDefaults([ 'nazev' => $firma->NAZEV, 'ic' => $firma->IC, 'dic' => $firma->DIC, 'platce_dph' => (bool) $firma->PLATCE_DPH, 'telefon' => $firma->TELEFON, 'email' => $firma->EMAIL, 'ulice' => $firma->ULICE, 'mesto' => $firma->MESTO, 'psc' => $firma->PSC, 'cislo_uctu' => $firma->CISLO_UCTU, 'banka_kod' => $firma->BANKA_KOD, 'iban' => $firma->IBAN, 'bic' => $firma->BIC, ]); } protected function createComponentFirmaForm(): Form { $form = new Form(); // Základní údaje $form->addText('nazev', 'Název firmy / OSVČ:') ->setRequired('Zadejte název firmy nebo Vaše jméno.'); $form->addText('ic', 'IČO:') ->setMaxLength(8); $form->addText('dic', 'DIČ:') ->setMaxLength(12); $form->addCheckbox('platce_dph', 'Jsem plátce DPH'); // Kontakty $form->addText('telefon', 'Telefon:'); $form->addEmail('email', 'E-mail:'); // Sídlo $form->addText('ulice', 'Ulice a ČP:'); $form->addText('mesto', 'Město:'); $form->addText('psc', 'PSČ:'); // Bankovní spojení $form->addText('cislo_uctu', 'Číslo účtu:'); $form->addText('banka_kod', 'Kód banky:'); $form->addText('iban', 'IBAN:'); $form->addText('bic', 'BIC / SWIFT:'); $form->addSubmit('send', 'Uložit firmu'); $form->onSuccess[] = [$this, 'firmaFormSucceeded']; return $form; } public function firmaFormSucceeded(Form $form, \stdClass $data): void { $firmaId = $this->getUser()->getIdentity()->firma_id; try { $this->kufrikExplorer->table('FIRMA') ->where('ID', $firmaId) ->update([ 'NAZEV' => $data->nazev, 'IC' => $data->ic, 'DIC' => $data->dic, 'PLATCE_DPH' => $data->platce_dph ? 1 : 0, 'TELEFON' => $data->telefon, 'EMAIL' => $data->email, 'ULICE' => $data->ulice, 'MESTO' => $data->mesto, 'PSC' => $data->psc, 'CISLO_UCTU' => $data->cislo_uctu, 'BANKA_KOD' => $data->banka_kod, 'IBAN' => $data->iban, 'BIC' => $data->bic, ]); // Potvrzení s časovým razítkem uložení $casUlozeni = (new \DateTime())->format('H:i:s'); $this->flashMessage("Údaje firmy byly úspěšně uloženy v {$casUlozeni}.", 'success'); } catch (\Nette\Application\AbortException $e) { throw $e; } catch (\Throwable $e) { $form->addError('Chyba při ukládání firmy: ' . $e->getMessage()); return; } $this->redirect('this'); } }