[Back] <?php
/**
* @var $bookings OsBookingModel[]
* @var $calendar_start OsWpDateTime
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
?>
<?php if(!empty($bookings)){
$loop_year = $calendar_start->format('Y');
$loop_month = $calendar_start->format('n');
$loop_day = false;
$total_locations = OsLocationHelper::count_locations(true);
?>
<div class="list-upcoming-bookings-w">
<?php
$first_booking_start_datetime = $bookings[0]->get_start_datetime_object();
if($first_booking_start_datetime->format('Y-n') != $loop_year.'-'.$loop_month) echo '<div class="no-upcoming-bookings">'.esc_html__('No bookings', 'latepoint').'</div>';
?>
<?php foreach($bookings as $booking){ ?>
<?php
$booking_start_datetime = $booking->get_start_datetime_object();
if($loop_day != $booking_start_datetime->format('d')){
$loop_day = $booking_start_datetime->format('d');
$is_new_day = true;
}else{
$is_new_day = false;
}
if($booking_start_datetime->format('Y') > $loop_year){
for($m = $loop_month+1; $m < 12; $m++){
echo '<div class="upcoming-bookings-month">'.esc_html(OsUtilHelper::get_month_name_by_number($m)).'</div>';
echo '<div class="no-upcoming-bookings">'.esc_html__('No bookings', 'latepoint').'</div>';
}
$loop_month = 1;
for($y = $loop_year + 1; $y < $booking_start_datetime->format('Y'); $y++){
echo '<div class="upcoming-bookings-year">'.esc_html($y).'</div>';
// loop months
for($m=$loop_month+1;$m<=12;$m++){
echo '<div class="upcoming-bookings-month">'.esc_html(OsUtilHelper::get_month_name_by_number($m)).'</div>';
echo '<div class="no-upcoming-bookings">'.esc_html__('No bookings', 'latepoint').'</div>';
}
$loop_month = 1;
}
$loop_year = $booking_start_datetime->format('Y');
echo '<div class="upcoming-bookings-year">'.esc_html($loop_year).'</div>';
}
if($booking_start_datetime->format('n') > $loop_month){
for($m = $loop_month + 1; $m < $booking_start_datetime->format('n'); $m++){
echo '<div class="upcoming-bookings-month">'.esc_html(OsUtilHelper::get_month_name_by_number($m)).'</div>';
echo '<div class="no-upcoming-bookings">'.esc_html__('No bookings', 'latepoint').'</div>';
}
$loop_month = $booking_start_datetime->format('n');
echo '<div class="upcoming-bookings-month">'.esc_html(OsUtilHelper::get_month_name_by_number($loop_month)).'</div>';
}
?>
<?php $max_capacity = OsServiceHelper::get_max_capacity($booking->service); ?>
<div class="upcoming-booking <?php echo ($is_new_day) ? 'is-new-day' : ''; ?>" <?php echo ($max_capacity > 1) ? OsBookingHelper::group_booking_btn_html($booking->id) : OsBookingHelper::quick_booking_btn_html($booking->id); ?>>
<div class="booking-main-info">
<div class="booking-color-elem" style="background-color: <?php echo esc_attr($booking->service->bg_color); ?>"></div>
<div class="booking-fancy-date">
<div class="fancy-day"><?php echo esc_html($booking_start_datetime->format('d')); ?></div>
<div class="fancy-month"><?php echo esc_html(OsUtilHelper::get_month_name_by_number($booking_start_datetime->format('n'),true)); ?></div>
</div>
<div class="booking-main-info-i">
<div class="avatar-w" style="background-image: url(<?php echo esc_url($booking->agent->get_avatar_url()); ?>);">
<div class="agent-info-tooltip"><?php echo esc_html($booking->agent->full_name); ?></div>
</div>
<div class="booking-date-w">
<div class="booking-service-name"><?php echo esc_html($booking->service->name); ?></div>
<div class="booking-date-i">
<div class="booking-date"><?php echo esc_html($booking->get_nice_start_date(true)).', '; ?></div>
<div class="booking-time"><?php echo esc_html($booking->get_nice_start_time()); ?>,</div>
<div class="booking-time-left">
<?php
// translators: %s is time left
echo sprintf(esc_html__('in %s', 'latepoint'), $booking->time_left); ?>
</div>
<?php if($total_locations > 1) echo '<div class="booking-location">'.esc_html($booking->location->name).'</div>'; ?>
<div class="booking-attendees">
<?php
if($max_capacity > 1) {
$total_attendees = $booking->total_attendees;
// translators: %1$d is number of booked appointments
// translators: %2$d is total available
echo '<div class="booked-count-label">'.esc_html(sprintf(__('Booked %1$d of %2$d', 'latepoint'), $total_attendees, $max_capacity)).'</div>';
echo '<div class="booked-percentage">
<div class="booked-bar" style="width: '.esc_attr(min(100, round($total_attendees / $max_capacity * 100))).'%;"></div>
</div>';
}else{
echo '<div class="booking-attendee">';
echo '<div class="avatar-w" style="background-image: url('.esc_url($booking->customer->get_avatar_url()).');"></div>';
echo '<div class="customer-name">'.esc_html($booking->customer->full_name).'</div>';
echo '</div>';
}
?>
</div>
</div>
</div>
</div>
<div class="booking-link">
<i class="latepoint-icon latepoint-icon-arrow-right"></i>
</div>
</div>
</div>
<?php } ?>
</div>
<?php }else{ ?>
<div class="no-results-w">
<div class="icon-w"><i class="latepoint-icon latepoint-icon-book"></i></div>
<h2><?php esc_html_e('No Upcoming Appointments', 'latepoint'); ?></h2>
<a href="#" <?php echo OsOrdersHelper::quick_order_btn_html(); ?> class="latepoint-btn">
<i class="latepoint-icon latepoint-icon-plus-square"></i>
<span><?php esc_html_e('Create Appointment', 'latepoint'); ?></span>
</a>
</div>
<?php } ?>