public function init()
 {
     parent::init();
     /**
      * Arrival date
      */
     $element = new Zend_Form_Element_Select('hm_date_arrival_id');
     $element->setLabel('Van')->addMultiOption(null, '...')->setRequired(true);
     $availableDates = new Model_Hm_AvailableDates($this->getHomeId());
     $arrivalDates = $availableDates->getArrivalDates()->execute();
     foreach ($arrivalDates as $date) {
         $element->addMultiOption($date->id, $date->zend_date);
     }
     $this->addElement($element);
     /**
      * Departure date
      */
     $element = new Zend_Form_Element_Select('hm_date_departure_id');
     $element->setLabel('Tot')->addMultiOption(null, '...')->setRegisterInArrayValidator(false)->setRequired(true);
     $this->addElement($element);
     /**
      * Submit
      */
     $element = new Zend_Form_Element_Submit('submit_block');
     $element->setLabel('Verwerken')->setAttrib('class', 'submit');
     $this->addElement($element);
     /**
      * Display groups
      */
     $this->addDisplayGroup(array('hm_date_arrival_id', 'hm_date_departure_id'), 'dates', array('legend' => 'Blokkerings data'));
     $this->addDisplayGroup(array('submit_block'), 'submit', array('class' => 'submit'));
     /**
      * Decorators
      */
     $this->bhvkDecorators();
     $this->bhvkDecorateSubmitElement($this->getElement('submit_block'));
 }
 public function init()
 {
     parent::init();
     /**
      * 
      * General
      * 
      */
     $element = new Zend_Form_Element_Select('hm_home_id');
     $element->setLabel('Vakantiewoning')->setRequired(true)->addMultiOption('', '...');
     $homes = Model_Hm_Home::findAllForSelect()->execute(null, Doctrine_Core::HYDRATE_ARRAY);
     foreach ($homes as $home) {
         $element->addMultiOption($home['id'], $home['name']);
     }
     $this->addElement($element);
     $element = new Zend_Form_Element_Select('user_id');
     $element->setLabel('Gebruiker')->setRequired(true)->addMultiOption('', '...');
     $users = Model_User::findAllForAdmin()->execute(null, Doctrine_Core::HYDRATE_ARRAY);
     foreach ($users as $user) {
         $element->addMultiOption($user['id'], $user['surname'] . ', ' . $user['initials'] . ' ' . $user['insertion']);
     }
     $this->addElement($element);
     $element = new Zend_Form_Element_Select('hm_date_arrival_id');
     $element->setLabel('Aankomst datum')->setRequired(true)->addMultiOption('', '...');
     $availabelDates = new Model_Hm_AvailableDates($this->getHomeId());
     $arrivalDates = $availabelDates->getArrivalDates()->execute(null, Doctrine_Core::HYDRATE_ARRAY);
     foreach ($arrivalDates as $date) {
         $element->addMultiOption($date['id'], $date['zend_date']);
     }
     $this->addElement($element);
     $element = new Zend_Form_Element_Select('hm_date_departure_id');
     $element->setLabel('Vertrek datum')->setRequired(true)->setRegisterInArrayValidator(false)->addMultiOption('', '...');
     $this->addElement($element);
     $this->addDisplayGroup(array('hm_home_id', 'user_id', 'hm_date_arrival_id', 'hm_date_departure_id'), 'general', array('legend' => 'Algemeen', 'order' => 1));
     /**
      * 
      * Payments
      * 
      */
     $element = new Zend_Form_Element_Checkbox('payment_first_part');
     $element->setLabel('Aanbetaling voldaan')->setDecorators($this->_elementDecorators);
     $this->addElement($element);
     $element = new Zend_Form_Element_Text('payment_first_part_at');
     $element->setLabel('Aanbetaling op datum')->setAttrib('class', 'datepicker');
     $this->addElement($element);
     $element = new Zend_Form_Element_Checkbox('payment_last_part');
     $element->setLabel('Resterend bedrag voldaan');
     $this->addElement($element);
     $element = new Zend_Form_Element_Text('payment_last_part_at');
     $element->setLabel('Resterend bedrag op datum')->setAttrib('class', 'datepicker');
     $this->addElement($element);
     $element = new Zend_Form_Element_Checkbox('payment_guarentee');
     $element->setLabel('Borg teruggestort');
     $this->addElement($element);
     $element = new Zend_Form_Element_Text('payment_guarentee_at');
     $element->setLabel('Borg teruggestort op datum')->setAttrib('class', 'datepicker');
     $this->addElement($element);
     $this->addDisplayGroup(array('payment_first_part', 'payment_first_part_at', 'payment_last_part', 'payment_last_part_at', 'payment_guarentee', 'payment_guarentee_at'), 'payment_first', array('legend' => 'Betalingen', 'order' => 5));
     /**
      * Optional charges
      */
     $optionalCharges = Model_Hm_Charge_Optional_Home::findAllForReservationForm($this->getHomeId())->execute();
     if (count($optionalCharges)) {
         $optionalChargesElements = array();
         foreach ($optionalCharges as $charge) {
             $element = new Zend_Form_Element_Select($charge->id);
             $element->setLabel($charge->Charge->translationHandler()->display_title . ' (stukprijs: ' . $charge->zend_price . ')')->setDescription($charge->Charge->translationHandler()->description)->addMultiOption('', '...');
             for ($i = 1; $i <= 15; $i++) {
                 $element->addMultiOption($i, $i . ' x ' . $charge->zend_price);
             }
             $optionalChargesElements[] = $charge->id;
             $this->addElement($element);
         }
         $this->addDisplayGroup($optionalChargesElements, 'optional', array('legend' => 'Optionele kosten', 'class' => 'width100', 'order' => 3));
     }
     /**
      * 
      * Persons
      * 
      */
     $homeInfo = $this->getHomeInfo()->fetchOne();
     $persons = new Reservation_Form_Reservation_Persons(array('amount' => $homeInfo->persons, 'class' => 'persons'));
     $this->addSubForm($persons, 'Persons', 4);
     /**
      * 
      * submit
      * 
      */
     $element = new Zend_Form_Element_Submit('submit_reservation');
     $element->setLabel('Verwerken')->setAttrib('class', 'submit');
     $this->addElement($element);
     $this->addDisplayGroup(array('submit_reservation'), 'submit', array('class' => 'submit', 'order' => 6));
     /**
      * 
      * Decorators
      * 
      */
     $this->bhvkDecorators();
     $this->bhvkDecorateSubmitElement($this->getElement('submit_reservation'));
     $el = $this->getElement('payment_first_part');
     $el->setDecorators($this->_checkboxDecorator);
     $el = $this->getElement('payment_last_part');
     $el->setDecorators($this->_checkboxDecorator);
     $el = $this->getElement('payment_guarentee');
     $el->setDecorators($this->_checkboxDecorator);
 }
 /**
  * Get all departure dates by json request (action)
  */
 public function departuresjsonAction()
 {
     $id = $this->_getParam('id');
     $date = Doctrine_Core::getTable('Model_Hm_Date')->findOneById($id);
     $availableDepartures = new Model_Hm_AvailableDates($date->hm_home_id);
     $departureDates = $availableDepartures->getDepartureDates($date->id)->execute(null, Doctrine_Core::HYDRATE_ARRAY);
     $this->view->json = Zend_Json::encode($departureDates);
     $this->_helper->layout()->disableLayout(true);
 }