コード例 #1
0
ファイル: Admin_OsobyPresenter.php プロジェクト: krecek/nrsn
 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());
             }
         }
     }
 }