+ {format(new Date(), 'd MMMM yyyy', { locale: ru })} · Елена Смирнова +
+{s.value}
+{s.label}
+Смена закрыта
+Откройте смену для начала работы
+Последние чеки
+ {shiftReceipts.length} за смену +{formatCurrency(r.total)}
+{r.items.length} поз.
+
+
Добавьте товары из каталога
+{item.product.name}
+{formatCurrency(item.product.price * item.qty)}
+Оплата принята
+{formatCurrency(lastReceipt.total)}
++ {lastReceipt.method === 'cash' ? 'Наличными' : 'Терминал'} · {format(lastReceipt.createdAt, 'HH:mm')} +
+{form.name || 'Название объекта'}
++ {formatCurrency(form.pricePerHour)}/ч · {formatCurrency(form.pricePerDay)}/день · {String(form.openHour).padStart(2, '0')}:00–{String(form.closeHour).padStart(2, '0')}:00 +
+{objects.length} объектов · управление и расписание
+{s.value}
+{s.label}
+Объекты аренды
+ {objects.map(obj => { + const objBookings = bookings.filter(b => b.objectId === obj.id && b.status === 'confirmed') + const todayB = objBookings.filter(b => b.date === today) + const isSelected = selectedObj?.id === obj.id + return ( +{obj.name}
++ {formatCurrency(obj.pricePerHour)}/ч · {String(obj.openHour).padStart(2, '0')}:00–{String(obj.closeHour).padStart(2, '0')}:00 +
+Нет объектов аренды
+ ++ Бронирования — {selectedObj.name} +
+ +| {h} | + ))} +|||||
|---|---|---|---|---|---|
| + {format(new Date(b.date), 'd MMM', { locale: ru })} + {b.date === today && сегодня} + | +
+ {b.isFullDay ? (
+ |
+ {b.guestName} | +{b.guestPhone || '—'} | +{formatCurrency(b.totalAmount)} | +
+ |
+
Выберите объект слева для просмотра бронирований
+Сбор и модерация обратной связи
+{s.value}
+{s.label}
+{s.sub}
+Ссылка для сбора отзывов
++ Отправьте гостю при выезде или разместите QR-код в номере и на стойке +
+Перенаправление довольных (≥8) на:
+ {['Booking.com', 'Яндекс', 'Google'].map(s => ( + + ))} +Отзывов нет
+{review.guestName}
+{review.text}
+ + {/* Reply */} + {review.reply && ( +Ответ отеля:
+{review.reply}
+Заказы из номеров
+{s.value}
+{s.label}
+Активные
+{order.guestName}
+
+
+ 💬 {order.notes} +
+ )} +Завершённые
+| {h} | + ))} +|||||
|---|---|---|---|---|---|
| №{order.roomNumber} | +{order.guestName} | +{order.items.map(i => `${i.item.emoji}×${i.qty}`).join(' ')} | +{formatCurrency(order.total)} | +{format(order.updatedAt, 'HH:mm')} | +
{item.name}
+
+