示例#1
0
文件: Contact.php 项目: vih/vih.dk
 function postForm()
 {
     $tilmelding = $this->getTilmelding();
     $deltagere = $tilmelding->getDeltagere();
     if ($this->getForm()->validate()) {
         if ($tilmelding->save($this->body())) {
             $i = 0;
             $indkvartering = $this->body('indkvartering_key');
             $input = $this->body();
             foreach ($deltagere as $deltager) {
                 $var['id'] = $input['id'][$i];
                 $var['navn'] = $input['navn'][$i];
                 $var['cpr'] = $input['cpr'][$i];
                 if (!empty($indkvartering[$i])) {
                     $var['indkvartering_key'] = $indkvartering[$i];
                     $var['sambo'] = $input['sambo'][$i];
                 }
                 switch ($tilmelding->kursus->get('gruppe_id')) {
                     case 1:
                         // golf
                         $var['handicap'] = $input['handicap'][$i];
                         $var['klub'] = $input['klub'][$i];
                         $var['dgu'] = $input['dgu'][$i];
                         break;
                     case 3:
                         // bridge
                         $var['niveau'] = $input['niveau'][$i];
                         break;
                     case 4:
                         // golf og bridge
                         $var['handicap'] = $input['handicap'][$i];
                         $var['klub'] = $input['klub'][$i];
                         $var['dgu'] = $input['dgu'][$i];
                         $var['niveau'] = $input['niveau'][$i];
                         break;
                     case 5:
                         $var['speciale'] = $input['speciale'][$i];
                     default:
                         break;
                 }
                 // switch
                 $input = $this->body();
                 $deltager_object = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding, $input['id'][$i]);
                 if (!$deltager_object->save($var)) {
                     throw new Exception('Oplysningerne om en af deltagerne kunne ikke gemmes');
                 }
                 $i++;
             }
             // foreach
             if (!$tilmelding->setCode()) {
                 throw new Exception('Tilmeldingen kunne ikke tilføjes en kode');
             }
             return new k_SeeOther($this->getRedirectUrl());
         } else {
             throw new Exception('Tilmeldingen kunne ikke gemmes');
         }
     } else {
         return '<h1>Indtast oplysninger</h1><p class="notice" style="clear: both;"><strong>Vigtigt:</strong> Kontaktpersonen modtager al post angående tilmeldingen, og det er også kun kontaktpersonen, der modtager programmet. Hvis I er flere, der ønsker at få post, beder vi jer lave flere tilmeldinger.</p>' . $this->getForm()->toHTML();
     }
 }
示例#2
0
 function renderHtml()
 {
     $tilmelding = new VIH_Model_KortKursus_Tilmelding($this->name());
     if (is_numeric($this->query('sletdeltager'))) {
         $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding, $this->query('sletdeltager'));
         $deltager->delete();
     } elseif ($this->query('action') == 'sendemail') {
         if ($tilmelding->sendEmail()) {
             $historik = new VIH_Model_Historik('kortekurser', $tilmelding->get('id'));
             if (!$historik->save(array('type' => 'kode', 'comment' => 'Kode sendt med e-mail'))) {
                 throw new Exception('Historikken kunne ikke gemmes');
             }
         } else {
             throw new Exception('E-mailen kunne ikke sendes');
         }
     }
     if ($this->query('slet_historik_id')) {
         $historik = new VIH_Model_Historik(intval($this->query('slet_historik_id')));
         $historik->delete();
     }
     $deltagere = $tilmelding->getDeltagere();
     $historik_object = new VIH_Model_Historik('kortekurser', $tilmelding->get("id"));
     $betalinger = new VIH_Model_Betaling('kortekurser', $tilmelding->get("id"));
     if ($this->query('registrer_betaling')) {
         if ($betalinger->save(array('type' => 'giro', 'amount' => $this->query('beloeb')))) {
             $betalinger->setStatus('approved');
             return new k_SeeOther($this->url());
         } else {
             throw new Exception("Betalingen kunne ikke gemmes. Det kan skyldes et ugyldigt beløb");
         }
     }
     $tilmelding->loadBetaling();
     $this->document->setTitle('Tilmelding #' . $tilmelding->getId());
     $this->document->addOption('Tilbage til liste', $this->url('../'));
     $this->document->addOption('Ret', $this->url('edit'));
     $this->document->addOption('Slet', $this->url(null, array('delete')));
     if ($tilmelding->get('email')) {
         $this->document->addOption('E-mail', $this->url('email'));
     }
     $this->document->addOption('Kundens side', KORTEKURSER_LOGIN_URI . $tilmelding->get('code'));
     $data = array('deltagere' => $deltagere, 'indkvartering' => !$tilmelding->kursus->isFamilyCourse(), 'type' => $tilmelding->get('keywords'), 'vis_slet' => 'ja');
     $historik = array('historik' => $historik_object->getList(), 'tilmelding' => $tilmelding);
     $historik_tpl = $this->templates->create('tilmelding/historik');
     $betaling_data = array('caption' => 'Afventende betalinger', 'betalinger' => $betalinger->getList('not_approved'), 'msg_ingen', 'Der er ingen afventende betalinger.');
     $prisoversigt_data = array('tilmelding' => $tilmelding);
     $prisoversigt_tpl = $this->templates->create('kortekurser/tilmelding/prisoversigt');
     $deltager_tpl = $this->templates->create('kortekurser/deltagere');
     $betaling_tpl = $this->templates->create('tilmelding/betalinger');
     $tilmelding = array('tilmelding' => $tilmelding, 'historik_object' => $historik_object, 'deltagere' => $deltager_tpl->render($this, $data), 'status' => $tilmelding->get('status'), 'prisoversigt' => $prisoversigt_tpl->render($this, $prisoversigt_data), 'historik' => $historik_tpl->render($this, $historik), 'betalinger' => $betaling_tpl->render($this, $betaling_data));
     $tpl = $this->templates->create('kortekurser/tilmelding');
     return $tpl->render($this, $tilmelding);
 }
示例#3
0
文件: Confirm.php 项目: vih/vih.dk
 function renderHtml()
 {
     $tilmelding = $this->getTilmelding();
     $tilmelding->loadPris();
     // Delete
     if (isset($_GET['delete']) and is_numeric($_GET['delete'])) {
         $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding, $_GET['delete']);
         $deltager->delete();
     }
     $this->document->setTitle('Bekræft tilmeldingen');
     $deltager_data = array('deltagere' => $tilmelding->getDeltagere(), 'indkvartering' => $tilmelding->kursus->get('indkvartering'), 'type' => $tilmelding->get('keywords'), 'kursus' => $tilmelding->kursus);
     $oplysninger_data = array('caption' => 'Tilmeldingsoplysninger', 'tilmelding' => $tilmelding);
     $tpl = $this->template->create('KortKursus/Tilmelding/oplysninger');
     $del_tpl = $this->template->create('KortKursus/Tilmelding/deltagere');
     $tilmelding_data = array('headline' => 'Bekræft reservationen', 'explanation' => '
         <p>Nu er du der næsten. Først skal du dog lige tjekke om oplysningerne er korrekte og godkende vores <a href="' . $this->url('../betingelser') . '">betingelser</a>.</p>
     ' . $tpl->render($this, $oplysninger_data) . $del_tpl->render($this, $deltager_data), 'content' => $this->getForm()->toHTML());
     $tpl = $this->template->create('KortKursus/Tilmelding/tilmelding');
     return $tpl->render($this, $tilmelding_data);
 }
示例#4
0
文件: Antal.php 项目: vih/vih.dk
 function postForm()
 {
     $tilmelding = $this->getTilmelding();
     if ($this->getForm()->validate()) {
         $kursus = new VIH_Model_KortKursus($this->body('kursus_id'));
         $kursus->getPladser();
         if ($kursus->get('pladser_ledige') < $this->body('antal_deltagere')) {
             return new k_SeeOther($this->context->url('../venteliste'), array('antal' => $this->body('antal_deltagere')));
         }
         if ($tilmelding->start($this->body())) {
             $tilmelding->kursus->getPladser();
             if ($tilmelding->kursus->get('pladser_ledige') >= $this->body('antal_deltagere')) {
                 $deltagere = $tilmelding->getDeltagere();
                 if (count($deltagere) == 0) {
                     for ($i = 1; $i <= $this->body('antal_deltagere'); $i++) {
                         $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding);
                         $deltager->add();
                     }
                 } elseif (count($deltagere) < $this->body('antal_deltagere')) {
                     for ($i = 1, $max = $this->body('antal_deltagere') - count($deltagere); $i <= $max; $i++) {
                         $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding);
                         $deltager->add();
                     }
                 } elseif (count($deltagere) > $tilmelding->get('antal_deltagere')) {
                     // burde nok lave et tjek på, om nogle af dem er tomme?
                     for ($i = 1, $max = count($deltagere) - $this->body('antal_deltagere'); $i <= $max; $i++) {
                         $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding, $deltagere[$i]->get('id'));
                         $deltager->delete();
                     }
                 }
                 return new k_SeeOther($this->url('kontakt'));
             }
         }
     }
     return $this->render();
 }
示例#5
0
 function testDeltagerOplysningCanSaveEmptyValue()
 {
     $kort_kursus_id = $this->createKortKursusId();
     $data = array('kursus_id' => $kort_kursus_id, 'antal_deltagere' => 1);
     $session_id = uniqid();
     $tilmelding = new VIH_Model_KortKursus_OnlineTilmelding($session_id);
     $tilmelding->start($data);
     // add a beginner
     $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding);
     $data = array('navn' => 'tester', 'cpr' => '140676-9999', 'handicap' => 70, 'klub' => 'none', 'dgu' => 'nej');
     $deltager->save($data);
     $data = array('navn' => 'tester', 'cpr' => '140676-9999', 'handicap' => 70, 'klub' => '', 'dgu' => 'nej');
     $deltager->save($data);
 }
示例#6
0
文件: Tilmelding.php 项目: vih/vih.dk
 /**
  * Rules:
  * - People older than 2 takes a bed
  * - More than three persons takes another room
  * @see	Kortkursus
  */
 function getRoomsNeeded()
 {
     $vaerelser = 0;
     $person = 0;
     foreach ($this->getDeltagere() as $d) {
         $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($this, $d['id']);
         if ($deltager->calculateAge($deltager->get('birthday'), $this->kursus->get('startdato')) > 2) {
             $person++;
         }
     }
     return ceil($person / 2);
 }
示例#7
0
 function testGetBegyndereReturnsTheCorrectNumberOfDeltagereWhenOneIsAdded()
 {
     $kursus = $this->createKortKursus();
     $session_id = rand(1, 1000000000);
     $tilmelding = new VIH_Model_KortKursus_OnlineTilmelding($session_id);
     $data = array('kursus_id' => $kursus->getId(), 'antal_deltagere' => 1);
     $tilmelding->start($data);
     $data = array('kursus_id' => $this->createKortKursus()->getId(), 'kontaktnavn' => 'Test', 'adresse' => 'Test', 'postnr' => 'Test', 'postby' => 'Test', 'email' => 'Test', 'mobil' => 'Test', 'telefonnummer' => 'Test', 'mobil' => 'Test', 'besked' => '', 'afbestillingsforsikring' => '');
     $tilmelding->save($data);
     // add a beginner
     $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding);
     $data = array('navn' => 'tester', 'cpr' => '140676-9999', 'handicap' => 70, 'klub' => 'none', 'dgu' => 'nej');
     $deltager->save($data);
     // add a nonbeginner
     $deltager = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding);
     $data = array('navn' => 'tester', 'cpr' => '140676-9999', 'handicap' => 10, 'klub' => 'none', 'dgu' => 'nej');
     $deltager->save($data);
     $tilmelding->confirm();
     $this->assertEquals(1, $kursus->getBegyndere());
 }
示例#8
0
 function postForm()
 {
     if ($this->getForm()->validate()) {
         $tilmelding = new VIH_Model_KortKursus_Tilmelding($this->context->name());
         $deltagere = $tilmelding->getDeltagere();
         if ($id = $tilmelding->save($this->body())) {
             $i = 0;
             $indkvartering = $this->body('indkvartering_key');
             $post = $this->body();
             foreach ($deltagere as $deltager) {
                 $var['id'] = $post['deltager_id'][$i];
                 $var['navn'] = $post['navn'][$i];
                 $var['cpr'] = $post['cpr'][$i];
                 if (!empty($indkvartering[$i])) {
                     $var['indkvartering_key'] = $indkvartering[$i];
                     $var['sambo'] = $post['sambo'][$i];
                 }
                 switch ($tilmelding->kursus->get('gruppe_id')) {
                     case 1:
                         // golf
                         $var['handicap'] = $post['handicap'][$i];
                         $var['klub'] = $post['klub'][$i];
                         $var['dgu'] = $post['dgu'][$i];
                         break;
                     case 3:
                         // bridge
                         $var['niveau'] = $post['niveau'][$i];
                         break;
                     case 4:
                         // golf og bridge
                         $var['handicap'] = $post['handicap'][$i];
                         $var['klub'] = $post['klub'][$i];
                         $var['dgu'] = $post['dgu'][$i];
                         $var['niveau'] = $post['niveau'][$i];
                         break;
                     default:
                         break;
                 }
                 // switch
                 $deltager_object = new VIH_Model_KortKursus_Tilmelding_Deltager($tilmelding, $post['deltager_id'][$i]);
                 if (!$deltager_object->save($var)) {
                     // saving was unsuccessful. What @todo
                 }
                 $i++;
             }
             // foreach
             return new k_SeeOther($this->context->url());
         }
     }
     return $this->render();
 }