Add modal for inlcuded services
This commit is contained in:
@@ -138,8 +138,8 @@ class ContingentRepository extends AbstractRepository implements ProviderInterfa
|
|||||||
|
|
||||||
$qb
|
$qb
|
||||||
->select('c.room_code as code', 'c.room_label as label', 'c.available as available', 'c.min_price as price',
|
->select('c.room_code as code', 'c.room_label as label', 'c.available as available', 'c.min_price as price',
|
||||||
'c.hotel_bus_pro_id as hotelBusProId',
|
'c.hotel_bus_pro_id as hotelBusProId', 'd.bus_pro_id as busProId',
|
||||||
'd.bus_pro_id as busProId', 'd.services_included as servicesIncluded')
|
'd.services_included as servicesIncluded', 'd.skipass_included as skipassIncluded')
|
||||||
->from('tx_epproducts_domain_model_contingent', 'c')
|
->from('tx_epproducts_domain_model_contingent', 'c')
|
||||||
->innerJoin('c', 'tx_epproducts_domain_model_daytrip', 'd', 'c.date = d.date AND c.hotel_code = d.hotel_code')
|
->innerJoin('c', 'tx_epproducts_domain_model_daytrip', 'd', 'c.date = d.date AND c.hotel_code = d.hotel_code')
|
||||||
->where('c.hotel = :hotelUid')
|
->where('c.hotel = :hotelUid')
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ class ContingentDataService
|
|||||||
'dateEnd' => $dateTo->format('Y-m-d'),
|
'dateEnd' => $dateTo->format('Y-m-d'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$row['servicesIncluded'] = unserialize($row['servicesIncluded']);
|
||||||
|
|
||||||
$rooms[] = $row;
|
$rooms[] = $row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -316,6 +316,7 @@ class DateImportService implements SingletonInterface
|
|||||||
static $datesAdded = [];
|
static $datesAdded = [];
|
||||||
|
|
||||||
$skiPass = $this->parseSelectionGroup($xmlDate, 'Leistungen Skipass');
|
$skiPass = $this->parseSelectionGroup($xmlDate, 'Leistungen Skipass');
|
||||||
|
$skiPassIncluded = (int) (count($skiPass) > 0);
|
||||||
$servicesBoard = $this->parseSelectionGroup($xmlDate, 'Leistungen Verpflegung');
|
$servicesBoard = $this->parseSelectionGroup($xmlDate, 'Leistungen Verpflegung');
|
||||||
$servicesIncluded = $this->parseSelectionGroup($xmlDate, 'Leistungen Sonstige');
|
$servicesIncluded = $this->parseSelectionGroup($xmlDate, 'Leistungen Sonstige');
|
||||||
|
|
||||||
@@ -342,6 +343,7 @@ class DateImportService implements SingletonInterface
|
|||||||
'hotel_bus_pro_id' => (int) $xmlHotel->attributes()['idbuspro'],
|
'hotel_bus_pro_id' => (int) $xmlHotel->attributes()['idbuspro'],
|
||||||
'hotel_code' => $hotelCode,
|
'hotel_code' => $hotelCode,
|
||||||
'services_included' => $servicesCombined,
|
'services_included' => $servicesCombined,
|
||||||
|
'skipass_included' => $skiPassIncluded,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1002,6 +1002,7 @@ CREATE TABLE tx_epproducts_domain_model_daytrip (
|
|||||||
hotel_bus_pro_id varchar(64) DEFAULT '' NOT NULL,
|
hotel_bus_pro_id varchar(64) DEFAULT '' NOT NULL,
|
||||||
hotel_code varchar(64) DEFAULT '' NOT NULL,
|
hotel_code varchar(64) DEFAULT '' NOT NULL,
|
||||||
services_included TEXT NOT NULL,
|
services_included TEXT NOT NULL,
|
||||||
|
skipass_included tinyint(4) unsigned DEFAULT '0' NOT NULL,
|
||||||
|
|
||||||
tstamp int(11) unsigned DEFAULT '0' NOT NULL,
|
tstamp int(11) unsigned DEFAULT '0' NOT NULL,
|
||||||
crdate int(11) unsigned DEFAULT '0' NOT NULL,
|
crdate int(11) unsigned DEFAULT '0' NOT NULL,
|
||||||
|
|||||||
@@ -17,15 +17,44 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Zimmerart</th>
|
<th>Zimmerart</th>
|
||||||
<th>Preis</th>
|
<th>Preis</th>
|
||||||
|
<th>inkl.</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="entry of availableRooms">
|
<tr v-for="(row, index) of availableRooms">
|
||||||
<td>{{entry.label}}</td>
|
<td>{{ row.label }}</td>
|
||||||
<td style="white-space: nowrap">ab {{entry.price * selectedNumberOfDays}} €</td>
|
<td style="white-space: nowrap">ab {{ row.price * selectedNumberOfDays }} €</td>
|
||||||
<td>
|
<td>
|
||||||
<a :href="entry.bookingUrl" target="_blank"
|
<i v-if="row.skipassIncluded" data-placement="top" title="Skipass inklusive" class="fa fa-tag tooltiptoggle"></i>
|
||||||
|
<a href="#" data-toggle="modal"
|
||||||
|
:data-target="'#services' + index"><i class="fa fa-info-circle"></i></a>
|
||||||
|
<div class="modal fade" :id="'services' + index" role="dialog">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button button--small" class="close" data-dismiss="modal">
|
||||||
|
<span>×</span>
|
||||||
|
</button>
|
||||||
|
<h5 class="modal-title">Inklusivleistungen</h5>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tbody>
|
||||||
|
<tr v-for="service of row.servicesIncluded">
|
||||||
|
<td><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> {{ service }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a :href="row.bookingUrl" target="_blank"
|
||||||
class="button button--small button--action">Buchen</a>
|
class="button button--small button--action">Buchen</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -41,6 +70,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import $ from 'jquery'
|
import $ from 'jquery'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import EventBus from '../_bus'
|
||||||
import flatpickr from 'flatpickr'
|
import flatpickr from 'flatpickr'
|
||||||
import { German } from 'flatpickr/dist/l10n/de'
|
import { German } from 'flatpickr/dist/l10n/de'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
@@ -164,6 +194,7 @@
|
|||||||
$.post(this.roomsEndpointUri, query, (json) => {
|
$.post(this.roomsEndpointUri, query, (json) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.availableRooms = json;
|
this.availableRooms = json;
|
||||||
|
EventBus.$emit('ajaxContentLoaded');
|
||||||
}, 'json');
|
}, 'json');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user