/** * @deprecated */ public function fetchAllByReservation($reservation, $order = null, $count = null, $offset = null, $language = null) { if ($language == null) { $language = RM_Environment::getInstance()->getLocale(); } if ($reservation == null) { return null; } //1. we need all fields from reservation_config that have admin_edit_preferences!="" $reservationConfigModel = new RM_ReservationConfig(); $reservationDetailColumns = $reservationConfigModel->getAdminEdit(); //2. we need all fields from unit config that have admin_reservation=1 and language = 0 $unitConfigModel = new RM_UnitConfig(); $unitColumns = $unitConfigModel->getReservationFields(); //3. we need all fields from unit config that have admin_reservation=1 and language = 1 $unitLanguageColumns = $unitConfigModel->getReservationLanguageFields(); //4. create SQL $fieldsNames = array(); foreach ($reservationDetailColumns as $field) { $fieldsNames[] = 'rd.' . $field->name . ' AS ' . $field->name; } foreach ($unitColumns as $field) { $fieldsNames[] = 'rm_units.' . $field->column_name . ' AS ' . $field->column_name; } foreach ($unitLanguageColumns as $field) { $fieldsNames[] = 'rm_unit_language_details.' . $field->column_name . ' AS ' . $field->column_name; } if ($offset === null) { $offset = 0; } $sql = "\r\n SELECT\r\n " . implode(',', $fieldsNames) . "\r\n FROM\r\n {$this->_name} rd\r\n INNER JOIN\r\n rm_units ON rm_units.id = rd.unit_id\r\n LEFT OUTER JOIN\r\n rm_unit_language_details ON rm_unit_language_details.unit_id=rm_units.id AND rm_unit_language_details.iso = '{$language}'\r\n WHERE\r\n rd.reservation_id = '{$reservation->id}' "; if ($order !== null) { $sql .= " ORDER BY {$order} "; } if ($count !== null) { $sql .= " LIMIT {$offset}, {$count} "; } return $this->_getBySQL($sql); }