diff --git a/backend/src/routes/deposit.ts b/backend/src/routes/deposit.ts index c698c47..d0b1b1f 100644 --- a/backend/src/routes/deposit.ts +++ b/backend/src/routes/deposit.ts @@ -497,10 +497,13 @@ ${refund > 0 && (!items || items.length === 0) ? `

Ос if (!bRows[0]?.room_id) return { items: [], total: 0 } // Get all minibar consumptions from housekeeping tasks for this room + // Use current item price (mi.price) — so price changes in settings are reflected const { rows } = await db.query( - `SELECT mc.quantity, mc.price_per_unit, + `SELECT mc.quantity, + mc.price_per_unit AS recorded_price, + mi.price AS current_price, mi.name AS item_name, - (mc.quantity * mc.price_per_unit) AS line_total + (mc.quantity * mi.price) AS line_total FROM minibar_consumptions mc JOIN minibar_items mi ON mi.id = mc.item_id JOIN housekeeping_tasks ht ON ht.id = mc.task_id diff --git a/src/components/bookings/BookingDetailPanel.tsx b/src/components/bookings/BookingDetailPanel.tsx index ad86f74..e81fcd1 100644 --- a/src/components/bookings/BookingDetailPanel.tsx +++ b/src/components/bookings/BookingDetailPanel.tsx @@ -72,7 +72,7 @@ function DepositWidget({ slug, bookingId }: { slug: string; bookingId: string }) const [yookassaMsg, setYookassaMsg] = useState(null) const [releaseError, setReleaseError] = useState(null) const [presets, setPresets] = useState([]) - const [minibarItems, setMinibarItems] = useState>([]) + const [minibarItems, setMinibarItems] = useState>([]) const [minibarTotal, setMinibarTotal] = useState(0) useEffect(() => { @@ -330,20 +330,32 @@ function DepositWidget({ slug, bookingId }: { slug: string; bookingId: string })

- {minibarItems.map((it, i) => ( -
- - {it.itemName} × {it.quantity} ({formatCurrency(it.pricePerUnit)} / шт.) - - {formatCurrency(it.lineTotal)} - -
- ))} + {minibarItems.map((it, i) => { + const priceChanged = Math.abs(it.currentPrice - it.recordedPrice) > 0.001 + return ( +
+ + {it.itemName} × {it.quantity} + {' '} + + ({formatCurrency(it.currentPrice)} / шт.) + + {priceChanged && ( + + ↑ + + )} + + {formatCurrency(it.lineTotal)} + +
+ ) + })}
)} diff --git a/src/lib/api.ts b/src/lib/api.ts index e5bafc2..610c40a 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -806,7 +806,7 @@ export const api = { req('DELETE', `/api/hotels/${slug}/bookings/${bookingId}/deposit`), getMinibarForBooking: (slug: string, bookingId: string) => - req<{ items: Array<{ itemName: string; quantity: number; pricePerUnit: number; lineTotal: number }>; total: number }>( + req<{ items: Array<{ itemName: string; quantity: number; recordedPrice: number; currentPrice: number; lineTotal: number }>; total: number }>( 'GET', `/api/hotels/${slug}/bookings/${bookingId}/deposit/minibar`, ),