public function postForm() { $tilmelding = new VIH_Model_LangtKursus_OnlineTilmelding($this->context->name()); if ($this->getForm()->validate()) { if (!$tilmelding->setStatus('tilmeldt')) { throw new Exception('Status kunne ikke sættes'); } if ($this->body('confirm')) { if (!$tilmelding->confirm()) { throw new Exception('Tilmelding ' . $tilmelding->getId() . ' kunne ikke bekr�ftes'); } if ($tilmelding->get('email')) { $historik = new VIH_Model_Historik('langekurser', $tilmelding->get('id')); if (!$tilmelding->sendEmail()) { if (!$historik->save(array('type' => 'kode', 'comment' => 'Bekræftelse på onlinetilmelding kunne ikke sendes'))) { throw new Exception('Historikken kunne ikke gemmes'); } throw new Exception('E-mailen kunne ikke sendes til ordre ' . $tilmelding->getId()); } else { if (!$historik->save(array('type' => 'kode', 'comment' => 'Bekræftelse på onlinetilmelding'))) { throw new Exception('Historikken kunne ikke gemmes'); } } } return new k_SeeOther($this->context->url('kvittering')); } } else { return $this->getForm()->toHTML(); } return $this->render(); }
function testResavingDoesNotAlterStatus() { $data = array('kursus_id' => 1, 'navn' => 'Test', 'adresse' => 'Test', 'postnr' => 'Test', 'postby' => 'Test', 'email' => 'Test', 'mobil' => 'Test', 'telefonnummer' => 'Test', 'mobil' => 'Test', 'arbejdstelefon' => 'Test', 'kontakt_navn' => 'Test', 'kontakt_adresse' => 'Test', 'kontakt_postnr' => 'Test', 'kontakt_postby' => 'Test', 'kontakt_email' => 'Test', 'kontakt_mobil' => 'Test', 'kontakt_telefon' => 'Test', 'kontakt_arbejdstelefon' => 'Test', 'uddannelse' => 'Test', 'betaling' => 'Test', 'besked' => 'test', 'nationalitet' => 'DK', 'kommune' => 'Test', 'ryger' => 'Nej', 'sex' => 'M', 'fag_id' => 1, 'tekst_diplom' => 'test'); $session_id = rand(1, 1000000000); $tilmelding = new VIH_Model_LangtKursus_OnlineTilmelding($session_id); $tilmelding->start(1); $this->assertTrue($tilmelding->save($data) > 0); $this->assertEquals('undervejs', $tilmelding->get('status')); $tilmelding->setStatus('tilmeldt'); $this->assertTrue($tilmelding->save($data) > 0); $this->assertEquals('tilmeldt', $tilmelding->get('status')); }
protected function getForm() { if ($this->form) { return $this->form; } $kurser = VIH_Model_LangtKursus::getList('åbne'); $list = array(); if ($this->query('kursus_id')) { $kursus_id = intval($this->query('kursus_id')); } else { $kursus_id = 0; } foreach ($kurser as $kursus) { $list[$kursus->getId()] = $kursus->getKursusNavn() . ' som starter ' . $kursus->getDateStart()->format('%d-%m-%Y'); } $tilmelding = new VIH_Model_LangtKursus_OnlineTilmelding($this->name()); $this->form = new HTML_QuickForm('langekurser', 'POST', $this->url($this->subspace())); $this->form->addElement('header', null, 'Hvilket kursus vil du tilmelde dig?'); $this->form->addElement('select', 'kursus_id', 'Kursus', $list); $this->form->addElement('header', null, 'Navn og adresse'); $this->form->addElement('text', 'navn', 'Navn'); $this->form->addElement('text', 'adresse', 'Adresse'); $this->form->addElement('text', 'postnr', 'Postnummer'); $this->form->addElement('text', 'postby', 'Postby'); $this->form->addElement('text', 'cpr', 'Cpr-nummer'); $this->form->addElement('text', 'telefonnummer', 'Telefonnummer'); $this->form->addElement('text', 'kommune', 'Bopælskommune'); $this->form->addElement('text', 'nationalitet', 'Nationalitet'); $this->form->addElement('text', 'email', 'E-mail'); $this->form->addElement('header', null, 'Nærmeste pårørende - hvem skal vi rette henvendelse til ved sygdom'); $this->form->addElement('text', 'kontakt_navn', 'Navn'); $this->form->addElement('text', 'kontakt_adresse', 'Adresse'); $this->form->addElement('text', 'kontakt_postnr', 'Postnummer'); $this->form->addElement('text', 'kontakt_postby', 'Postby'); $this->form->addElement('text', 'kontakt_telefon', 'Telefon'); $this->form->addElement('text', 'kontakt_arbejdstelefon', 'Arbejdstelefon'); $this->form->addElement('text', 'kontakt_email', 'E-mail'); $this->form->addElement('header', null, 'Hvordan er din uddannelsesmæssige baggrund?'); foreach ($tilmelding->uddannelse as $key => $value) { $udd[] =& HTML_QuickForm::createElement('radio', null, null, $value, $key, 'id="uddannelse_' . $key . '"'); } $this->form->addGroup($udd, 'uddannelse', 'Uddannelse'); $this->form->addElement('header', null, 'Hvordan betaler du?'); foreach ($tilmelding->betaling as $key => $value) { $bet[] =& HTML_QuickForm::createElement('radio', null, null, $value, $key, 'id="payment_' . $key . '"'); } $this->form->addGroup($bet, 'betaling', 'Betaling'); $this->form->addElement('header', null, 'Besked til Vejle Idrætshøjskole'); $this->form->addElement('textarea', 'besked', 'Er der andet vi bør vide?', array('cols' => 50, 'rows' => 5)); $this->form->addElement('submit', 'submit', 'Tilmelding'); $defaults = array('navn' => $tilmelding->get('navn'), 'adresse' => $tilmelding->get('adresse'), 'cpr' => $tilmelding->get('cpr'), 'telefonnummer' => $tilmelding->get('telefon'), 'postnr' => $tilmelding->get('postnr'), 'postby' => $tilmelding->get('postby'), 'nationalitet' => $tilmelding->get('nationalitet'), 'kommune' => $tilmelding->get('kommune'), 'email' => $tilmelding->get('email'), 'kontakt_navn' => $tilmelding->get('kontakt_navn'), 'kontakt_adresse' => $tilmelding->get('kontakt_adresse'), 'kontakt_postnr' => $tilmelding->get('kontakt_postnr'), 'kontakt_postby' => $tilmelding->get('kontakt_postby'), 'kontakt_telefon' => $tilmelding->get('kontakt_telefon'), 'kontakt_arbejdstelefon' => $tilmelding->get('kontakt_arbejdstelefon'), 'kontakt_email' => $tilmelding->get('kontakt_email'), 'betaling' => $tilmelding->get('betaling_key'), 'uddannelse' => $tilmelding->get('uddannelse_key'), 'besked' => $tilmelding->get('besked')); if ($tilmelding->get('kursus_id') > 0) { $defaults['kursus_id'] = $tilmelding->get('kursus_id'); } else { $defaults['kursus_id'] = $this->context->getLangtKursusId(); } $this->form->setDefaults($defaults); $this->form->applyFilter('__ALL__', 'trim'); $this->form->applyFilter('__ALL__', 'strip_tags'); //$this->form->registerRule('validate_cpr', 'callback', 'validateCpr'); $this->form->addRule('kursus_id', 'Du skal vælge et kursus', 'required'); $this->form->addRule('kursus_id', 'Du skal vælge et kursus', 'numeric'); $this->form->addRule('navn', 'Du skal skrive et navn', 'required'); $this->form->addRule('adresse', 'Du skal skrive en adresse', 'required'); $this->form->addRule('postnr', 'Postnummer', 'required'); $this->form->addRule('postnr', 'Postnummer skal være numerisk', 'numeric'); $this->form->addRule('postby', 'Postby', 'required'); $this->form->addRule('telefonnummer', 'Telefonnummer', 'required'); $this->form->addRule('email', 'Du har ikke skrevet en gyldig e-mail', 'email'); $this->form->addRule('kommune', 'Du har ikke skrevet en kommune', 'required'); $this->form->addRule('nationalitet', 'Du har ikke skrevet en nationalitet', 'required'); $this->form->addRule('cpr', 'Du skal skrive et cpr-nummer', 'required'); //$this->form->addRule('cpr', 'Du skal skrive et gyldigt cpr-nummer', 'validate_cpr'); $this->form->addRule('kontakt_navn', 'Du har ikke skrevet et gyldigt kontaktnavn', 'required'); $this->form->addRule('kontakt_adresse', 'Du har ikke skrevet et gyldig kontaktadresse', 'required'); $this->form->addRule('kontakt_postnr', 'Du har ikke skrevet en kontaktpostnummer', 'required'); $this->form->addRule('kontakt_postnr', 'Postnummeret skal være et tal', 'numeric'); $this->form->addRule('kontakt_postby', 'Du har ikke skrevet en kontaktpostby', 'required'); $this->form->addRule('kontakt_telefon', 'Du har ikke skrevet et nummer under telefon', 'required'); $this->form->addRule('kontakt_arbejdstelefon', 'Du har ikke skrevet et nummer under arbejdstelefon', 'required'); $this->form->addRule('kontakt_email', 'Du har ikke skrevet en gyldig kontakte-mail', 'email'); $this->form->addGroupRule('uddannelse', 'Du skal vælge din uddannelsesmæssige baggrund', 'required', null); $this->form->addGroupRule('betaling', 'Du skal vælge, hvordan du betaler', 'required', null); return $this->form; }