Admin Booking

git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3443 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
adametz 2018-08-14 16:20:27 +00:00
parent e4f09da134
commit 73ed632267
4 changed files with 87 additions and 27 deletions

View file

@ -214,6 +214,53 @@
<h1>Verfügbarkeit</h1>
<style>
.table > tbody > tr > td.calendar-day-non {
background-color: #fff;
}
.table > tbody > tr > td.calendar-day-past {
background-color: rgba(242, 242, 242, 0.5);
}
.table > tbody > tr > td.calendar-light {
opacity: 0.5;
}
.table > tbody > tr > td.calendar-day-disabled-half {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #f0bcbc 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#f0bcbc',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > td.active {
background-color: rgba(88, 155, 92, 0.35);
padding: 0;
}
.table > tbody > tr > td.active:hover {
background-color: #648859;
}
.table > tbody > tr > td a.link {
color: #5a5a5a;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
}
.table > tbody > tr > td:hover a.link {
color: #fff;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
}
</style>
{% include 'default/admin/lodgingsEditCalendar.html.twig' %}
<br>

View file

@ -26,41 +26,29 @@
{% set is_past_date = dayState.date is not empty and date(dayState.date) < date('now') %}
{# Set cell class #}
{% if (dayState.isReserved and
not dayState.isReservationBegin and not dayState.isReservationEnd)
%}
{% set cell_class = 'admin-calendar-day-reservation' %}
{% elseif dayState.isReservationBegin %}
{% set cell_class = 'admin-calendar-day-reservation-begin' %}
{% elseif dayState.isReservationEnd %}
{% set cell_class = 'admin-calendar-day-reservation-end' %}
{% elseif dayState.isInSeason %}
{% set cell_class = 'admin-calendar-day-free' %}
{% else %}
{% set cell_class = '' %}
{% endif %}
<td class="{{ cell_class }}">
{% if dayState.isReserved and not dayState.isReservationEnd %}
<td class="{{ dayState.getCssClass }} {% if dayState.isBookable %}active{% endif %}">
{% if dayState.isReserved or dayState.isReservationBegin %}
{% if dayState.reservation.id is defined %}
<a href="/admin/fewo/lodgings/{{ lodging.id }}/reservations/{{ dayState.reservation.id }}">
<a class="link" href="/admin/fewo/lodgings/{{ lodging.id }}/reservations/{{ dayState.reservation.id }}">
{{ dayState.day }}
</a>
{% else %}
ID
{% endif %}
{% elseif dayState.isBookable and not is_past_date %}
<a href="/admin/fewo/lodgings/{{ lodging.id }}/reservations/new/{{ dayState.day < 10 ? '0':'' }}{{dayState.day}}{{ calendar_month['monthNumber'] < 10 ? '0':'' }}{{calendar_month['monthNumber']}}{{calendar_month['year']}}">
<a class="link" href="/admin/fewo/lodgings/{{ lodging.id }}/reservations/new/{{ dayState.day < 10 ? '0':'' }}{{dayState.day}}{{ calendar_month['monthNumber'] < 10 ? '0':'' }}{{calendar_month['monthNumber']}}{{calendar_month['year']}}">
{{ dayState.day }}
</a>
{% elseif dayState.day == 0 %}
-
&nbsp;
{% else %}
<del>{{ dayState.day }}</del>
{% if dayState.isPastDate %}
<del style="color:#989898;">{{ dayState.day }}</del>
{% else %}
{{ dayState.day }}
{% endif %}
{% endif %}
</td>
{% endfor %}
@ -69,4 +57,5 @@
{% endfor %}
</tbody>
{% endfor %}
</table>
</table>

View file

@ -250,11 +250,15 @@ class AdminController extends Controller
$reservations = $calendarService->getReservations($lodging);
$paddedCalendar = $calendarService->getCalendarWithPadding($calendarService->getMinCalendarEntriesByLodging($lodging));
$calendar = $calendarService->getCalendar($lodging);
// $calendar = $calendarService->getCalendar($lodging);
if (count($lodging->getPrices()->toArray()) != 0)
{
$calendar = $calendarService->calendarAndFillDayStates($paddedCalendar, $lodging);
/*
$calendar = $calendarService->createCalendarAndFillDayStates($lodging);
$calendar = $calendarService->mergeWithPaddedCalendar($calendar, $paddedCalendar);
*/
} else {
$calendar = $paddedCalendar;
}

View file

@ -525,7 +525,23 @@ class LodgingCalendarService
public function mergeWithPaddedCalendar($calendar, $paddedCalendar)
{
for($i = 0; $i < count($paddedCalendar); $i++)
$i = 0;
foreach ($paddedCalendar as $key => $data){
$calendarDataCurrMonth = $calendar[$i]['data'];
$paddedCalendarDataCurrMonth = $paddedCalendar[$key]['data'];
$startIndex = $this->findCalendarDayIndexInMonth(1, $paddedCalendarDataCurrMonth);
//$startIndex = array_search(1, $paddedCalendarDataCurrMonth);
for($j = 0; $j < count($calendarDataCurrMonth); $j++, $startIndex++)
{
$paddedCalendarDataCurrMonth[$startIndex] = $calendarDataCurrMonth[$j];
}
$paddedCalendar[$key]['data'] = $paddedCalendarDataCurrMonth;
$i++;
}
/*for($i = 0; $i < count($paddedCalendar); $i++)
{
$calendarDataCurrMonth = $calendar[$i]['data'];
$paddedCalendarDataCurrMonth = $paddedCalendar[$i]['data'];
@ -538,7 +554,7 @@ class LodgingCalendarService
$paddedCalendarDataCurrMonth[$startIndex] = $calendarDataCurrMonth[$j];
}
$paddedCalendar[$i]['data'] = $paddedCalendarDataCurrMonth;
}
}*/
return $paddedCalendar;
}
@ -691,6 +707,8 @@ class LodgingCalendarService
if(isset($paddedCalendar[$fromDate->format("Y-n")])){
$key = $this->findCalendarDayKey($paddedCalendar[$fromDate->format("Y-n")], $fromDate->format("d"));
$paddedCalendar[$fromDate->format("Y-n")]['data'][$key]->setIsReservationBegin(true);
$paddedCalendar[$fromDate->format("Y-n")]['data'][$key]->setReservation($reservation);
}
//last
if(isset($paddedCalendar[$toDate->format("Y-n")])) {
@ -702,6 +720,8 @@ class LodgingCalendarService
if(isset($paddedCalendar[$dt->format("Y-n")])) {
$key = $this->findCalendarDayKey($paddedCalendar[$dt->format("Y-n")], $dt->format("d"));
$paddedCalendar[$dt->format("Y-n")]['data'][$key]->setIsReserved(true);
$paddedCalendar[$dt->format("Y-n")]['data'][$key]->setReservation($reservation);
}
}
}