diff --git a/src/components/bookings/BookingModal.tsx b/src/components/bookings/BookingModal.tsx index 1e3874b..aee0496 100644 --- a/src/components/bookings/BookingModal.tsx +++ b/src/components/bookings/BookingModal.tsx @@ -112,6 +112,8 @@ export function BookingModal({ open, draft, rooms, bookings = [], onClose, onSav const [rentalPhone, setRentalPhone] = useState('') const [rentalNotes, setRentalNotes] = useState('') const [rentalSaving, setRentalSaving] = useState(false) + const [rentalPayMethod, setRentalPayMethod] = useState<'cash' | 'terminal' | null>(null) + const [rentalPaidAmount, setRentalPaidAmount] = useState(0) // Rental guest autocomplete const [rentalShowSugg, setRentalShowSugg] = useState(false) const [rentalDbResults, setRentalDbResults] = useState<{ id: string; firstName: string; lastName: string; middleName: string | null; phone: string | null }[]>([]) @@ -218,7 +220,7 @@ export function BookingModal({ open, draft, rooms, bookings = [], onClose, onSav guestPhone: rentalPhone.trim(), notes: rentalNotes.trim() || undefined, totalAmount: rentalTotal, - paidAmount: 0, + paidAmount: rentalPaidAmount, status: 'confirmed', }) onClose() @@ -464,124 +466,127 @@ export function BookingModal({ open, draft, rooms, bookings = [], onClose, onSav {/* ── RENTAL FORM ── */} {bookingType === 'rental' && rentalObj && ( -
- {/* Object picker */} - {rentalObjects && rentalObjects.length > 1 && ( -
- -
- {rentalObjects.map(o => ( - - ))} -
-
- )} - {rentalObjects?.length === 1 && ( -
- {rentalObj.icon} -
-

{rentalObj.name}

-

{rentalObj.pricePerHour} ₽/ч · {rentalObj.pricePerDay} ₽/день

-
-
- )} +
- {/* Date */} -
- - setRentalDate(e.target.value)} - /> + {/* ── LEFT: объект + дата + время ── */} +
+ + {/* Object picker */} + {rentalObjects && rentalObjects.length > 1 && ( +
+ +
+ {rentalObjects.map(o => ( + + ))} +
+
+ )} + {rentalObjects?.length === 1 && ( +
+ {rentalObj.icon} +
+

{rentalObj.name}

+

{rentalObj.pricePerHour} ₽/ч · {rentalObj.pricePerDay} ₽/день

+
+
+ )} + + {/* Date */} +
+ + setRentalDate(e.target.value)} /> +
+ + {/* Full day / time */} + {rentalHasFullDay ? ( +
+ + Объект уже забронирован на весь день +
+ ) : ( + <> +
+ + Весь день + {rentalHasTimed && Есть частичные брони} + +
+ {!rentalIsFullDay && ( + rentalNoSlots ? ( +
+ + Все слоты на этот день заняты +
+ ) : ( +
+ +
+
+ + +
+ +
+ + +
+
+
+ ) + )} + + )}
- {/* Full day / time */} - {rentalHasFullDay ? ( -
- - Объект уже забронирован на весь день -
- ) : ( - <> -
- - Весь день - {rentalHasTimed && Есть частичные брони} - -
- {!rentalIsFullDay && ( - rentalNoSlots ? ( -
- - Все слоты на этот день заняты -
- ) : ( -
- -
-
- - -
- -
- - -
-
-
- ) - )} - - )} + {/* ── RIGHT: гость + оплата ── */} +
- {/* Guest */} -
+ {/* Guest */}
- setRentalShowSugg(true)} onChange={e => { @@ -616,7 +621,7 @@ export function BookingModal({ open, draft, rooms, bookings = [], onClose, onSav ))} {rentalDbResults - .filter(g => !rentalFiltered.some(b => b.guestName === `${g.lastName} ${g.firstName}`)) + .filter(g => !rentalFiltered.some(b => b.guestName.startsWith(g.lastName))) .map(g => ( @@ -633,6 +638,8 @@ export function BookingModal({ open, draft, rooms, bookings = [], onClose, onSav )}
+ + {/* Phone */}
-
-
- -