/** * 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) . "]);"; }
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; }