| - Heads - | -- Bill ID - | -- Amount - | -- Bill Date - | -
|---|---|---|---|
| - {item.heads} - | -- {item.bill} - | -- {item.heads.includes("Spent") - ? `-${item.amount}` - : item.amount} - | -- {item.bill_date} - | -
| - Intender - | -- Booking From - | -- Booking To - | -- Total Bill - | -- Bill ID - | -- Bill Date - | -
|---|---|---|---|---|---|
|
- |
- - {item.booking_from} - | -- {item.booking_to} - | -- {item.total_bill} - | -- {item.bill_id} - | -- {item.bill_date} - | -
| - Item Name - | -- Bill ID - | -- Amount - | -
|---|---|---|
|
- |
- - {item.id} {/* Assuming 'id' is used as Bill ID */} - | -- {item.quantity * item.total_usable}{" "} - {/* Assuming 'quantity' is the amount */} - {console.log("Item :", item)} - | -
| - Intender - | -- Booking From - | -- Booking To - | -- Category - | - {role === "VhIncharge" && ( -- Modified Category - | - )} -- Status - | -- Actions - | -
|---|---|---|---|---|---|---|
|
- |
- - {booking.bookingFrom} - | -- {booking.bookingTo} - | -- {booking.category || booking.modifiedCategory} - {/* {console.log("BOOKING: ", booking)} */} - | - {role === "VhIncharge" ? ( -- {booking.modifiedCategory} - | - ) : null} -
- |
-
- |
-
| - Intender - | -- Booking From - | -- Booking To - | -- Category - | -- Status - | -
|---|---|---|---|---|
|
- |
- - {booking.bookingFrom} - | -- {booking.bookingTo} - | -- {booking.category} - | -
- |
-
| - Intender - | -- Booking Date - | -- Check In - | -- Check Out - | -- Category - | -
|---|---|---|---|---|
|
- |
- - {booking.bookingDate} - | -- {booking.checkIn} - | -- {booking.checkOut} - | -- {booking.modifiedVisitorCategory} - | -
| Date | +Visitor | +Morning Tea | +Breakfast | +Lunch | +Evening Tea | +Dinner | +Cost | +
|---|---|---|---|---|---|---|---|
| {new Date(booking.meal_date).toLocaleDateString()} | +{booking.visitor_name} | +{booking.meals.morning_tea || "-"} | +{booking.meals.breakfast || "-"} | +{booking.meals.lunch || "-"} | +{booking.meals.eve_tea || "-"} | +{booking.meals.dinner || "-"} | +₹{booking.meal_cost} | +
Booking ID: ${bookingData.id}
+Status: ${bookingData.status || "N/A"}
+Check-In Date: ${bookingData.checked_in_date ? new Date(bookingData.checked_in_date).toLocaleDateString() : "Not checked in yet"}
+ +Name: ${primaryVisitor.name || "N/A"}
+Email: ${primaryVisitor.email || "N/A"}
+Phone: ${primaryVisitor.phone || "N/A"}
+Organization: ${primaryVisitor.organization || "N/A"}
+ +Name: ${bookingData.intender_name || "N/A"}
+Email: ${bookingData.intender_email || "N/A"}
+Phone: ${bookingData.intender_phone || "N/A"}
+ +Check-In: ${bookingData.booking_from || "N/A"}
+Check-Out: ${bookingData.booking_to || "N/A"}
+Room Category: ${bookingData.visitor_category || "N/A"}
+ + ${assignedRooms.length > 0 ? ` +${assignedRooms.map((room) => room.room_number).join(", ")}
+ ` : ""} + ++ Printed on: ${new Date().toLocaleString()} +
+Booking ID: ${bookingData.id}
+Status: ${bookingData.status || "N/A"}
+Booking Date: ${bookingData.created_at ? new Date(bookingData.created_at).toLocaleDateString() : "N/A"}
+ +Name: ${bookingData.intender_name || "N/A"}
+Email: ${primaryVisitor.email || "N/A"}
+Phone: ${primaryVisitor.phone || "N/A"}
+Organization: ${primaryVisitor.organization || "N/A"}
+Address: ${primaryVisitor.address || "N/A"}
+ +Check-In: ${bookingData.booking_from || "N/A"}
+Check-Out: ${bookingData.booking_to || "N/A"}
+Room Category: ${bookingData.visitor_category || "N/A"}
+Number of Rooms: ${bookingData.number_of_rooms || "N/A"}
+Number of Persons: ${bookingData.person_count || "N/A"}
+ + ${bookingData.purpose_of_visit ? `${bookingData.purpose_of_visit}
` : ""} + + ${assignedRooms.length > 0 ? ` +${assignedRooms.map((room) => room.room_number).join(", ")}
+ ` : ""} + ++ Printed on: ${new Date().toLocaleString()} +
+Checkout form implementation pending...
+| ID | +Guest Name | +Check-In | +Check-Out | +Requested Rooms | +Allocated Rooms | +Status | +Meals | +Source | +Actions | +|
|---|---|---|---|---|---|---|---|---|---|---|
| {booking.id} | +{booking.intender_name} | +{booking.visitor_email} | +{booking.booking_from} | +{booking.booking_to} | +{booking.number_of_rooms || "N/A"} | ++ {Array.isArray(booking.allocated_rooms) && booking.allocated_rooms.length > 0 + ? booking.allocated_rooms.join(", ") + : "Not allocated"} + | +
+ |
+
+ {/* UC-VH-010: Meal booking indicators with fallback */}
+ {booking.has_meal_bookings ? (
+ |
+
+ {/* UC-VH-006: Show booking source */}
+ |
+
+ |
+
| ID | +Guest Name | +Check-In | +Status | +Est. Charges | +Reason | + {isStaff &&Actions | } +|
|---|---|---|---|---|---|---|---|
| {booking.id} | +{booking.intender_name} | +{booking.visitor_email} | +{booking.booking_from} | +{booking.status || "N/A"} | +Rs. {Number(booking.estimated_cancellation_charges || 0)} | +
+ |
+ {isStaff && (
+
+ |
+ )}
+
| ID | +Guest Name | +Booking Status | +Check-In | +Check-Out | +Duration | +Source | +Meal Bill | +Room Bill | +Extra Charges | +Cancellation Charges | +Total Bill | +Payment Mode | +Transaction ID | +Offline Bill ID | +Proof | +Settled By | +Bill Status | + {isIncharge &&Actions | } +
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {booking.id} | +{booking.intender_name} | +
+ |
+ {booking.booking_from} | +{booking.booking_to} | +
+ |
+
+ {/* UC-VH-006: Show booking source */}
+ |
+ Rs. {Number(booking.meal_bill || 0)} | +Rs. {Number(booking.room_bill || 0)} | +Rs. {Number(booking.extra_charges || 0)} | +Rs. {Number(booking.cancellation_charges || 0)} | +Rs. {Number(booking.total_bill || 0)} | +{booking.payment_mode || "-"} | +{booking.transaction_id || "-"} | +{booking.offline_bill_id || "-"} | ++ {booking.payment_mode === "online" && booking.payment_screenshot ? ( + Screenshot + ) : booking.payment_mode === "offline" && booking.offline_bill_photo ? ( + Bill Photo + ) : ( + "-" + )} + | ++ {isIncharge && booking.bill_status !== "paid" ? ( + | +
+ |
+ {isIncharge && (
+
+ {booking.bill_status !== "paid" ? (
+ |
+ )}
+
| Item Name | +Current Stock | +Threshold | +Status | +Category | +Total Stock | +In Use | + {isStaff &&Actions | } +
|---|---|---|---|---|---|---|---|
|
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+ {item.total_stock} | +{item.inuse} | + {isStaff && ( +
+ |
+ )}
+
| Booking ID | +Visitors | +Rooms | +Expected Checkout | +Overstay Duration | +Urgency | +Intender | +Actions | +
|---|---|---|---|---|---|---|---|
|
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
| ID | +Guest Name | +Check-In | +Check-Out | +Status | +Category | +Source | +Persons | +Actions | +|
|---|---|---|---|---|---|---|---|---|---|
| {booking.id} | +{booking.guest_name} | +{booking.guest_email} | +{booking.booking_from} | +{booking.booking_to} | +
+ |
+
+ |
+
+ {/* UC-VH-006: Show booking source */}
+ |
+ {booking.person_count || 1} | +
+ |
+
| Item Name | +Current Stock | +Requested Qty | +Urgency | +Status | +Requested By | +Days Pending | +Justification | +Actions | +
|---|---|---|---|---|---|---|---|---|
|
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+ {request.requested_by} | +
+ |
+
+ |
+
+ {request.status === 'pending' && (
+ |
+
| Booking ID | +Date | +From | +To | +Status | +Source | +Audit Flag | +Intender | +
|---|---|---|---|---|---|---|---|
| {item.booking_id} | +{item.booking_date} | +{item.booking_from} | +{item.booking_to} | +{item.status} | +{item.source} | +{item.audit_flag ? "TRUE" : "FALSE"} | +{item.intender} | +
| Request ID | +Item | +Requested Qty | +Approved Qty | +Status | +Urgency | +Requested By | +Created At | +
|---|---|---|---|---|---|---|---|
| {item.request_id} | +{item.item_name} | +{item.requested_quantity} | +{item.approved_quantity ?? "-"} | +{item.status} | +{item.urgency} | +{item.requested_by} | +{item.created_at} | +
| Item | +Quantity | +Threshold | +Critical | +Pending Replenishment | +Item ID | +Category | +
|---|---|---|---|---|---|---|
| {item.item_name} | +{item.quantity} | +{item.threshold_quantity} | +{item.is_critical ? "YES" : "NO"} | +{item.pending_replenishment ? "YES" : "NO"} | +{item.item_id} | +{item.category || "-"} | +
| - Booking From - | -- Booking To - | -
|---|---|
|
- |
-
- |
-