public function addOsobaFormSubmitted(UpravitOsobuForm $form) { $potvrzeni = $this->getSession('potvrzeni'); $values = $form->getValues(); $osoba = new Osoba(); $osoba->setUdaje($values); if (isset($osoba->error)) { $form->addError($osoba->error); } else { //osoby s podobnými údaji (pokud se najdou, neukládat, pouze zobrazit) $podobne_osoby['narozeni'] = $this->osobyRepository->findByNarozeni($osoba->narozeni); $podobne_osoby['jmeno'] = $this->osobyRepository->findByJmenoPrijmeni($osoba->jmeno, $osoba->prijmeni); $this->template->podobne_osoby = $podobne_osoby; //jsou osoby se stejnými údaji? if (($podobne_osoby['narozeni']->count() > 0 || $podobne_osoby['jmeno']->count() > 0) && ($potvrzeni->narozeni != $values->narozeni || $potvrzeni->jmeno != $values->jmeno || $potvrzeni->prijmeni != $values->prijmeni)) { //vypsat do šablony a znova uložit hodnoty do session, NEUKLÁDÁ SE $potvrzeni->jmeno = $values->jmeno; $potvrzeni->prijmeni = $values->prijmeni; $potvrzeni->narozeni = $values->narozeni; } else { try { $zaznam = $this->osobyRepository->ulozitOsobu($osoba, TRUE); unset($potvrzeni->jmeno); unset($potvrzeni->prijmeni); unset($potvrzeni->narozeni); if (isset($zaznam['dotaz'])) { $potvrzeni_admina = $this->getSession('nova_osoba_admin'); $potvrzeni_admina->osoba = $osoba; $this->redirect('novaOsobaPotvrzeni'); // $this->template->rozhodnuti_admina = TRUE; // dd($this->template->rozhodnuti_admina, 'potrvzeni_admina'); } else { if (!isset($zaznam['dotaz'])) { if ($zaznam['akce'] == 'insert') { $this->logg("nová osoba {$zaznam->id} - jméno: {$zaznam->prijmeni} {$zaznam->jmeno}, narozeni: {$zaznam->narozeni}"); } elseif ($zaznam['akce'] == 'update') { $this->logg("osoba {$zaznam->id} upravena"); } if ($zaznam['novy_mail']) { $this->vygenerovatPristupoveUdaje($zaznam['id']); } $this->redirect('prehled', $zaznam->id); } } } catch (GException $e) { $form->addError($e->getMessage()); } } } }