Пример #1
0
 /**
  * Edit JS - Used to load all configuration for Edit Reservation Form
  *
  * This method loads only configuration information required by the edit.js
  * reservation page.
  *
  * @return   js variable used directly by edit.js
  */
 public function edit_Js_Action()
 {
     $fieldsDAO = new RM_ReservationConfig();
     $configFields = $fieldsDAO->getAdminEdit()->toArray();
     foreach ($configFields as $key => $configField) {
         $metainfo[] = $configField['admin_edit_preferences'];
     }
     $fieldsDAO = new RM_UnitConfig();
     $configFields = $fieldsDAO->getAllReservationFields()->toArray();
     foreach ($configFields as $key => $configField) {
         $metainfo[] = $configField['admin_edit_reservation_preferences'];
     }
     return "RM.Common.Reservations_Edit_Setup([" . implode(',', $metainfo) . "]);";
 }
Пример #2
0
 public function getAll($order, $count, $offset, $filters = array())
 {
     $select = $this->select()->from(array('rd' => 'rm_reservation_details'))->setIntegrityCheck(false);
     foreach ($filters as $filter) {
         //TODO: another hardocode
         //'cause rm_reservation_details and rm_unit_language_details has same columns: unit_id
         if ($filter['field'] == 'unit_id') {
             $filter['field'] = 'rd.unit_id';
         }
         $filterContidions = $this->_getConditions($filter);
         foreach ($filterContidions as $condition) {
             $select = $select->where($condition);
         }
     }
     $fieldsDAO = new RM_ReservationConfig();
     $configFields = $fieldsDAO->getAdminList()->toArray();
     $columns = array();
     foreach ($configFields as $configField) {
         //TODO: omg this is so hardcode
         if ($configField['details'] == 0 && $configField['name'] !== 'total_price' && $configField['name'] !== 'first_name' && $configField['name'] !== 'last_name') {
             $columns[] = $configField['name'];
         }
     }
     //$columns[] = 'user_id';
     //$columns[] = 'confirmed';
     //$columns[] = 'creation_datetime';
     //$columns[] = 'is_read';
     $select = $select->join(array('r' => 'rm_reservations'), 'r.id = rd.reservation_id', $columns);
     $columns = array();
     $columns[] = 'first_name';
     $columns[] = 'last_name';
     $select = $select->joinLeft(array('u' => 'rm_users'), 'r.user_id = u.id', $columns);
     // This breaks the reservation list, if a unit is removed then reservations for that unit will not be return.
     // if a unit is removed then the unit_language_details becomes empty and so there is no link to the uld and the reservation details.
     $lang = RM_Environment::getInstance()->getLocale();
     $columns = array();
     $columns[] = 'name';
     $select = $select->joinLeft(array('uld' => 'rm_unit_language_details'), 'rd.unit_id = uld.unit_id AND uld.iso = "' . $lang . '"', $columns);
     if ($count !== null) {
         $select->limit($count, $offset);
     }
     $select->order($order);
     $reservations = $this->fetchAll($select);
     return $reservations;
 }