BrightPath Hospitality
Opening BrightPath Restoring your secure portal session…

Dashboard · Panel

Preventive maintenance, work orders and carpet care in one place.

Property InventoryInventario de la Propiedad

Housekeeping, Front Desk, Breakfast, Maintenance or any assigned employee can complete inventory counts for the selected hotel.Housekeeping, Recepción, Desayuno, Mantenimiento o cualquier empleado asignado puede completar conteos para el hotel seleccionado.

Breakfast · Desayuno

Breakfast food, beverages and service supplies.Alimentos, bebidas y suministros de desayuno.

0

Miscellaneous · Misceláneos

Market items and miscellaneous hotel operating supplies.Artículos de market y suministros operativos misceláneos.

0

Housekeeping / Laundry · Housekeeping / Lavandería

Housekeeping supplies, laundry products and chemicals.Suministros de housekeeping, productos y químicos de lavandería.

0

Inventory item masterCatálogo maestro de inventario

Your complete product lists can be loaded later.Sus listas completas de productos se pueden cargar después.

Inventory assignmentsAsignaciones de inventario

Assign any saved employee to a property and category.Asigne cualquier empleado guardado a una propiedad y categoría.

Inventory itemsArtículos de inventario

Count historyHistorial de conteos

Front Desk Dashboard

Operationscomplete
Exceptions0need attention
Missing0required items
Need Review0audit items

Needs Attention

Today's Audit

Quick Operation Status

Maintenance & Housekeeping On Duty

Front Desk marks Maintenance and Housekeeping on duty. On-duty staff receive work-order and Message Center notifications.

Loading Maintenance & Housekeeping…

Daily Operations List

One sheet for everything still left to do.

StatusTime / ShiftAreaItemAssigned ToDueRemarksSource

Morning Operations

Critical room-blocking work first, then today's remaining morning work.

FRONT DESK SHIFT

Start today's shift

Choose AM, PM, or Night, enter your name, then start. Complete each item from top to bottom.

1
Start your shiftChoose the shift, enter your name, and select Start / Open Shift.
2
Complete each taskWork down the list. Mark each task Done, Report issue, or Not applicable.
3
Hand off clearlyLeave a note for the next shift, then finish and submit.
Three simple steps: open your shift, complete the checklist, then leave a clear handoff.

Shift History

Open prior AM, PM or Night shift records for this hotel/date.

Early Check-In & Late Checkout Reservations

Reserve the guest’s approved arrival or departure date and time for the selected hotel. The reservation date can be different from Work Date, and the same list appears in Front Desk Shift.

Choose the guest’s actual date. Work Date above stays unchanged.

Cash Count

Record two counts for the selected date and shift: In at takeover and Out at handoff.

1
Choose the dateUse Work date above, then select the month you want to review.
2
Save In at takeoverChoose the shift, select In, and count the drawer when you start.
3
Save Out at handoffSelect Out and count the drawer again when the shift ends.
Two records per shift: The Out count uses the In amount as the starting point. Any previous count variance (+ extra / − shortage) is included in the Out expected balance. Historical combined counts remain marked as legacy.
DateAMPMNightCard receiptsPaid outNotes
InOutPrior varianceVarianceCounted byDropInOutPrior varianceVarianceCounted byDropInOutPrior varianceVarianceCounted byDrop
View individual counts & manager notes
DateShiftCount typeEmployeeCountedOpeningExpectedActualVariancePrevious varianceDropDrop detailWitnessStatusAuditor remarksActions

Employee Time Cards

See who is clocked in, on break, or clocked out for the selected hotel and dates.

Add time record

Use this to enter a missed punch or correct an employee’s time. The event is tied to the selected hotel and employee.

Choose a date range to view time cards.
View clock-in, break, and clock-out events
DateTimeEmployeeHotelEventSourceActions

Pool & Spa Reading

Safety status is calculated from configured property limits.

Safety Settings

Pool & Spa — Full Month

Days 1–31 remain visible with 1st, 2nd, and 3rd daily tests.

Pool — Full Month

DateDisinfection TestsSafety ChecksRemarks
1st Test2nd Test3rd TestWater ClearSafety EquipmentGate SecureDeck Safe
ChlorinepHStatusChlorinepHStatusChlorinepHStatus

Spa / Hot Tub — Full Month

DateDisinfection TestsSafety ChecksRemarks
1st Test2nd Test3rd TestWater ClearSafety EquipmentGate SecureDeck Safe
ChlorinepHStatusChlorinepHStatusChlorinepHStatus
Detailed Pool & Spa Records & Auditor Remarks
Date / TimeFacilityShift / TestEmployeeChlorinepHSafetyStatusNotesAuditor RemarksActions
Trips0selected date
Guest Trips0selected date
Staff Trips0selected date
Mileage Review0selected date
History Loaded0Fairfield records in portal

Fairfield Shuttle Log

The shuttle keeps the paper sheet. At the desk, use Quick Update From Paper to enter the whole sheet fast.

Selected Day Shuttle Sheet

Trips are ordered by trip time.

TimeGuest / StaffNameRouteDriverOdometer StartOdometer EndMilesNotes / ExceptionReview

Shuttle History

Historical and newly entered trips are live here. Default view shows the last 120 days.

0 records
DateTimeTypeRouteDriverOdo StartOdo EndMilesSourceReview

Front Desk Shift Audit Queue

Review shift times, checklist completion, exceptions, explanations and linked records.

Exceptions Inbox

Missing, abnormal, unresolved and critical items.

Scheduled Auditor Tasks

Reusable daily/weekly reviews that don't originate from another log.

Open Work Orders

Room-blocking work stays visible until the actual Work Order is completed.

Operations LogbooksBitácoras Operativas

Your remaining OneNote operations books rebuilt inside BrightPath: front desk checklists, guest relations, cash counts, fire monitoring and pool/spa records.Sus libros operativos restantes de OneNote reconstruidos dentro de BrightPath: listas de recepción, relaciones con huéspedes, caja, incendios y piscina/spa.

Choose a logbook and pageElija una bitácora y página

Open an existing page or create a new daily/monthly page.Abra una página existente o cree una página diaria/mensual.

Morning OperationsOperaciones de la Mañana

Build the maintenance morning list and complete Daily Clean in one place.Prepare la lista de mantenimiento y complete Limpieza Diaria en un solo lugar.

Morning workflow:Flujo de la mañana: Add PM rooms, work orders, carpet work, inspections, or any other task. Assign every task to a team member. Agregue habitaciones PM, órdenes de trabajo, alfombras, inspecciones o cualquier otra tarea. Asigne cada tarea a un miembro del equipo.

Add morning taskAgregar tarea de la mañana

Build today’s list fasterCree la lista de hoy más rápido

Show all open work orders, maintenance tasks, and Daily Clean items for the selected date.Muestre todas las órdenes abiertas, tareas de mantenimiento y elementos de Limpieza Diaria para la fecha seleccionada.

Front Desk / Manager: every open work order, maintenance task, and Daily Clean item appears here. Assign the whole list in bulk or assign each row to the person responsible.Recepción / Gerente: aquí aparecen todas las órdenes abiertas, tareas de mantenimiento y elementos de Limpieza Diaria. Asigne toda la lista en bloque o cada fila a la persona responsable.

Daily Clean ChecklistLista de Limpieza Diaria

Replaces the old OneNote Daily Clean pages and keeps completion/verification history by hotel and date.Reemplaza las páginas antiguas de Limpieza Diaria de OneNote y guarda el historial por hotel y fecha.

Used when marking an item done here; assign each item to a person in the Morning List.
Enter the Front Desk name only after the completed items are checked.
Auto-timestamped when first savedThe original creation time is preserved.

Daily Clean HistoryHistorial de Limpieza Diaria

Shift Notes / Pass-On

Record what happened, what matters now, and exactly what the next shift needs to know.

Add Shift Note

Recent Pass-On Items

Shift Notes / Pass-On History

Guest Relations & Incident Register

Guest follow-up, satisfaction calls, sales inquiries, complaints and management-level incident documentation in one place.

Guest Follow-Up

Track follow-up calls, satisfaction calls, sales inquiries and guest complaints.

Follow-Up Queue

Guest Relations History

Incident useUso del registro

Use Incidents for management-level safety, damage, security and employee documentation. Guest complaints and service follow-up live under Guest Relations.Use Incidentes para seguridad, daños, seguridad física y documentación de empleados. Las quejas y seguimiento de servicio están en Relaciones con Huéspedes.

Incident HistoryHistorial de Incidentes

Document CenterCentro de Documentos

A central property library for licenses, permits, SOPs, insurance, certificates, plans and reference documents.Biblioteca central para licencias, permisos, SOP, seguros, certificados, planos y documentos de referencia.

Document libraryBiblioteca de documentos

Daily InspectionsInspecciones Diarias

Lightweight daily checks for guest rooms and public areas. Employees mark only exceptions; untouched items are automatically Good.Revisiones diarias ligeras para habitaciones y áreas públicas. Los empleados marcan solamente las excepciones; los elementos sin marcar quedan automáticamente Bien.

X Issue still openProblema pendiente Corrected during inspectionCorregido durante inspecciónblank Automatically GoodAutomáticamente Bien

Today’s inspection exceptionsExcepciones de inspección de hoy

Only X or corrected items appear here.Solo aparecen elementos X o corregidos.

Inspection historyHistorial de inspecciones

Life Safety Inspection SchedulePrograma de Inspecciones de Seguridad Vital

Track inspection due dates, responsible team members, vendors and completed reports in one property schedule.Controle fechas de vencimiento, responsables, proveedores e informes completados en un solo programa por propiedad.

Reminder rule:Regla de recordatorio: Each inspection has its own reminder window. Frequencies and due dates are completely customizable—nothing is treated as a legal requirement unless you enter it. Cada inspección tiene su propio período de recordatorio. Las frecuencias y fechas son totalmente personalizables; nada se considera un requisito legal a menos que usted lo ingrese.

Add / schedule inspectionAgregar / programar inspección

Record inspection & upload reportRegistrar inspección y cargar informe

A completion automatically rolls the schedule forward when a recurring frequency is selected.Al completar, el programa avanza automáticamente cuando se selecciona una frecuencia recurrente.

In this standalone prototype, uploaded files are stored in this browser. Shared cloud access will use the same document library after Supabase Storage is connected.En este prototipo independiente, los archivos se guardan en este navegador. El acceso compartido usará la misma biblioteca al conectar Supabase Storage.

Inspection reminder listLista de recordatorios de inspección

Sorted by next due date.Ordenada por próxima fecha de vencimiento.

Inspection report libraryBiblioteca de informes de inspección

Vendors, Contracts & ContactsProveedores, Contratos y Contactos

Keep vendor contacts, service categories, contract dates and supporting documents together.Mantenga contactos, categorías de servicio, fechas de contrato y documentos en un solo lugar.

Add vendorAgregar proveedor

Contract remindersRecordatorios de contratos

Contracts nearing expiration appear here.Los contratos próximos a vencer aparecen aquí.

Vendor contacts and contracts stay together with the full Contact Directory below.Los contactos y contratos de proveedores permanecen junto con el Directorio de Contactos abajo.

Vendor directory & documentsDirectorio de proveedores y documentos

ContactsContactos

Hotel, management, emergency, utility and vendor contacts in the same section.Contactos de hotel, gerencia, emergencia, servicios y proveedores en la misma sección.

Add contactAgregar contacto

Search all contactsBuscar todos los contactos

Vendor contacts included automaticallyContactos de proveedores incluidos automáticamente

All contactsTodos los contactos

SettingsConfiguración

Customize the portal, employee links, team members, roles, passwords and section access.Personalice el portal, enlaces de empleados, miembros del equipo, roles, contraseñas y acceso por sección.

☁ CLOUD SETTINGS
PortalPortal
People & AccessPersonas y acceso
Property SetupConfiguración del hotel

Portal identityIdentidad del portal

How customization worksCómo funciona la personalización

These settings are stored in Supabase, so approved managers see the same portal branding and module setup on every device.Estas configuraciones se guardan en Supabase, por lo que los gerentes aprobados ven la misma marca y configuración en todos los dispositivos.

Security: Management UI remains hidden until Supabase verifies an approved management session.

Visible modulesMódulos visibles

Hide modules you do not want in the sidebar. Settings always stays available.Oculte módulos que no quiera en la barra lateral. Configuración siempre permanece disponible.

Add employeeAgregar empleado

Enter the employee’s name and hotel. BrightPath creates their private username, and management assigns their password. Their signed-in account tracks every action.Ingrese el nombre y hotel del empleado. BrightPath crea su usuario privado y la gerencia asigna la contraseña. Su cuenta registra cada acción.

Used for mobile links and time cards. Managers can view it here after opening an employee profile.Se usa para enlaces móviles y tarjetas de tiempo. Los gerentes pueden verlo aquí después de abrir el perfil de un empleado.
Optional contact & notification settingsContacto y notificaciones opcionales

Employee accountsIdentidad del empleado

Each employee signs in with their own username and password. Their account determines their hotel, permissions, and activity history automatically. Disabling an employee keeps all historical activity.Cada empleado inicia sesión con su propio usuario y contraseña. Su cuenta determina automáticamente el hotel, permisos e historial. Desactivarlo conserva todo el historial.

Employee directoryDirectorio de empleados

WhatsApp Test

Send the approved Work Order template to a verified test recipient.Envíe la plantilla aprobada a un destinatario verificado.

Employee activity historyHistorial de actividad del empleado

Hotel-scoped, read-only history of records created in BrightPath.Historial por hotel, de solo lectura, de los registros creados en BrightPath.

Open this section to load activity.

Rooms & AreasHabitaciones y Áreas

Room rosters, floors and public areas are preloaded from the property layout files. Manual additions are still available.Las habitaciones, pisos y áreas públicas están precargados desde los planos de cada hotel. También se pueden agregar ubicaciones manualmente.

Add roomAgregar habitación

Add public / back-of-house areaAgregar área pública / de servicio

Loaded locationsUbicaciones cargadas

Hotel ConfigurationConfiguración de Hoteles

Owner control for adding future hotels and updating the portfolio. Rooms and areas are configured separately after the hotel is created.Control del propietario para agregar hoteles futuros y actualizar el portafolio. Las habitaciones y áreas se configuran por separado después de crear el hotel.

Future hotel onboardingIncorporación de hoteles futuros

1. Create the hotel here. 2. Add Rooms & Areas. 3. Add team members. 4. Create employee links. 5. Assign management access. Existing operational modules will then recognize the new property.1. Cree el hotel aquí. 2. Agregue Habitaciones y Áreas. 3. Agregue miembros del equipo. 4. Cree enlaces de empleados. 5. Asigne acceso gerencial. Los módulos operativos reconocerán la nueva propiedad.

Owner onlySolo propietario
Hotel master records cannot be modified by property-level managers.Los registros maestros del hotel no pueden ser modificados por gerentes de propiedad.

Portfolio HotelsHoteles del Portafolio

Management accountCuenta gerencial

Owner chooses the account password and role. Leave password blank when editing an existing account unless you want to change it.El Propietario elige la contraseña y el rol. Deje la contraseña vacía al editar una cuenta existente salvo que quiera cambiarla.

Optional. Can be any unique name; users may sign in with this instead of email.Opcional. Puede ser cualquier nombre único; se puede usar en vez del correo.
Uncheck a hotel to remove it from this user's portal access.Desmarque un hotel para quitarlo del acceso de este usuario.
At least 10 characters with uppercase, lowercase and a number.Mínimo 10 caracteres con mayúscula, minúscula y número.

Custom rolesRoles personalizados

Create a role and choose exactly which portal sections it can open.Cree un rol y elija exactamente qué secciones puede abrir.

Authorized management usersUsuarios gerenciales autorizados

Roles & section accessRoles y acceso por sección

My passwordMi contraseña

Customize your dashboardPersonalice su panel Drag the dotted handle on any panel, then choose Done.Arrastre el control punteado de cualquier panel y luego seleccione Terminar.

Room Operations Board

Room-by-room maintenance status for the selected hotel.

Today's OperationsOperaciones de Hoy

What management needs to act on today—without PMS data.Lo que gerencia necesita atender hoy—sin datos del PMS.

Recent Work OrdersÓrdenes de Trabajo Recientes

Upcoming / Pending TasksTareas Próximas / Pendientes

Maintenance OverviewResumen de Mantenimiento

Safety & ComplianceSeguridad y Cumplimiento

Room PM InspectionInspección PM de Habitación

Complete the room checklist. Any item marked “Needs Repair” can automatically create a linked work order.Complete la lista de la habitación. Cualquier elemento marcado “Necesita Reparación” puede crear automáticamente una orden de trabajo vinculada.

Guest Room PM ChecklistLista PM de Habitación

117 inspection items organized by room area.117 puntos de inspección organizados por área de la habitación.

Hotel-specific Guest Room PM.PM de habitación específico por hotel.
Based on the guest-room checklist on IHG pages 413–415, with BrightPath property-specific equipment rules. Employees only mark exceptions: X if repair is still needed, or ✓ if they fixed it during the PM. Every untouched item is automatically recorded as Good / OK.Basado en la lista de habitación de IHG de las páginas 413–415, con reglas específicas de equipos de BrightPath. El empleado solamente marca excepciones: X si todavía necesita reparación, o ✓ si lo corrigió durante el PM. Todo elemento sin marcar se registra automáticamente como Bien / OK.
X Needs repairNecesita reparación Fixed during PMCorregido durante PM blank Automatically Good / OKAutomáticamente Bien / OK
Fast PM rule:Regla rápida de PM: Do not mark good items. Only tap X when something still needs repair, or when you fixed it. Everything else is automatically Good. No marque los elementos que están bien. Solo toque X cuando algo todavía necesita reparación, o cuando lo haya corregido. Todo lo demás queda automáticamente Bien.

Work Orders & ProjectsÓrdenes y Proyectos

Report, schedule, assign and track daily repairs and long-term maintenance projects in one place.Reporte, programe, asigne y controle reparaciones diarias y proyectos de mantenimiento a largo plazo en un solo lugar.

Completed Work Orders — By DateÓrdenes Completadas — Por Fecha

Scroll down to review completed work. Newest closed/completed dates appear first; All Hotels shows every authorized hotel together.Desplácese para revisar trabajos completados. Las fechas más recientes aparecen primero; Todos los Hoteles muestra todos los hoteles autorizados.

Quick Work OrderOrden de Trabajo Rápida

Designed for phone use: choose the location, take multiple photos, describe the problem, and submit.Diseñado para el teléfono: seleccione la ubicación, tome varias fotos, describa el problema y envíe.

Common hotel-maintenance terms are translated automatically; staff can edit either language.Los términos comunes de mantenimiento se traducen automáticamente; el personal puede editar cualquiera de los idiomas.

Scheduled Work OrdersÓrdenes Programadas

Plan repairs or projects for a future date and time.Planifique reparaciones o proyectos para una fecha y hora futura.

Front Desk To-Do / Shift TasksTareas de Recepción / Turno

Front Desk tasks, stayovers, handoffs, and scheduled follow-ups live with Shift Notes.Las tareas de recepción, estancias, entregas y seguimientos programados viven con las Notas de Turno.

Completed Work OrdersÓrdenes de Trabajo Completadas

Completed repairs remain available here with the full Work Order, photos, assignment and completion time.Las reparaciones completadas permanecen aquí con la orden completa, fotos, asignación y hora de finalización.

Maintenance LogBitácora de Mantenimiento

The OneNote Maintenance Log now lives with Work Orders. Sync completed Work Orders automatically or add manual maintenance work.La Bitácora de Mantenimiento de OneNote ahora vive con Órdenes de Trabajo. Sincronice órdenes completadas o agregue trabajo manual.

DateRoom / AreaWork / IssueCompleted ByVerified ByStatusWO

Carpet Shampoo ProgramPrograma de Limpieza de Alfombras

Track guest rooms and public spaces, service cycles, last completed date, next due date, photos, and comments.Controle habitaciones y áreas públicas, ciclos, última fecha, próxima fecha, fotos y comentarios.

Add / complete carpet serviceAgregar / completar servicio de alfombra

Public-area examplesEjemplos de áreas públicas

Add these or any custom location for each hotel.Agregue estas o cualquier ubicación personalizada por hotel.

Lobby / Vestíbulo
Hallways / Pasillos
Meeting Room / Sala
Breakfast Area / Desayuno
Elevator Landings / Elevadores
Office / Oficina

Carpet schedule & historyPrograma e historial de alfombras

Invoices

Upload every vendor invoice, capture the cost, and keep the original document with the hotel record.

BrightPath OperationsInvoices uploaded here sync automatically to BrightPath Financials for reporting, review, and payment tracking.

Add invoice

Save the document and the expense details together.

Choose a PDF or image and the fields will be filled for review.

Invoice queue

Pending and approved invoices stay visible until they are paid or voided.

Bulk invoice upload

Upload multiple invoice files for the selected hotel. BrightPath reads each eligible PDF or image, creates a pending invoice, and keeps it ready for review.

Invoice register

Every invoice with its hotel, vendor, category, amount, and source document.

BRIGHTPATH FINANCIALS

Accounting Hub

Financial reporting, statement uploads, invoices, accounts payable, and P&L reporting for the hotel selected in the portal header.

Accounting Hub

Loading BrightPath Financials…

Budget vs. actual

Set a monthly expense budget for each category and compare it with approved and paid invoices.

Upload statements

Upload bank and credit-card statements for the hotel selected in the portal header. No additional hotel selection is needed; these files stay separate from invoices for reconciliation and monthly close.

Bank statements

Credit-card statements

Accounts payable calendar

Unpaid invoices grouped by urgency.

Next payments

The next invoices due, across the selected hotel scope.

Spending by category

Spending by vendor

Monthly expense detail

Use this register as the source for your monthly P&L. Download all attached invoice files for the selected hotel and month.

Accounting

One hotel-scoped workspace for invoices, expenses, accounts payable, and the expense side of your P&L.

This is the expense and payable side of the P&L. Revenue, payroll journal entries, and bank balances can be added when those data sources are connected.

Expense categories

Approved and paid invoices in the selected month.

Vendor spending

Where this month’s expense is going.

Accounts payable

Pending or approved invoices; due soon appears first.

Six-month expense trend

Approved and paid expense by month.

Largest invoices

Highest-value invoices for the selected month.

Year-to-date expenses

Approved and paid invoices for the selected hotel.

Accounting register

Open an invoice to review its document, edit details, or add manager notes.

History & Reports

Operational reporting across shifts, audits, cash, pool/spa, inspections, maintenance and guest operations.

Operations Report Center

Select a hotel, date range and module. Reports use the same source records employees and auditors worked from.

PM Inspection History

Completed Work Orders

Data & BackupDatos y Respaldo

This standalone build stores data in this browser. Export a JSON backup before changing devices or clearing browser data.Esta versión independiente guarda datos en este navegador. Exporte un respaldo JSON antes de cambiar de dispositivo o borrar datos.

Portable backupRespaldo portátil

Includes operational records, schedules, vendor/contact metadata and document references. Uploaded contract/inspection file blobs remain in this browser in the prototype.Incluye registros operativos, programas, datos de proveedores/contactos y referencias de documentos. Los archivos cargados permanecen en este navegador en el prototipo.

Local data resetRestablecer datos locales

Deletes all locally stored operational data from this browser only.Elimina todos los datos operativos guardados solamente en este navegador.

Production note:Nota de producción: To make these links truly shared across employee phones, the portal should be hosted with a shared database and authentication. This build is fully functional as a local prototype and preserves the workflow/data model for that upgrade.Para que estos enlaces funcionen compartidos entre teléfonos, el portal debe publicarse con una base de datos compartida y autenticación. Esta versión funciona como prototipo local y conserva el flujo/modelo de datos para esa mejora.

Select Your HotelSeleccione Su Hotel

Choose the property first. The correct rooms, floors and public areas will load automatically for PMs, work orders and carpet service.Seleccione primero el hotel. Las habitaciones, pisos y áreas públicas correctas se cargarán automáticamente para PM, órdenes de trabajo y limpieza de alfombras.

🔔
New Work Order
' +'
BRIGHTPATH OPERATIONS

Cash Count & Drop Details Report

'+text(property.name||session.property_id||'Property')+'
'+text(date(session.business_date))+' · '+text(session.shift)+' shift
Printed '+text(new Date().toLocaleString())+'
' +'
Place this report and the cash drop details inside the cash envelope before closing the shift.
' +'
Counted by'+text(row.employee_name||session.employee_name||'—')+'
Witness / verified by'+text(row.witness_name||'—')+'
Business date'+text(date(session.business_date))+'
Shift'+text(session.shift||'—')+'
' +'

Cash count summary

'+metrics.map(function(metric){return ''}).join('')+'
'+text(metric[0])+''+((metric[0]==='Variance')?signed(metric[1]):money(metric[1]))+'
' +'

Cash drop details

'+dropTable +(row.paid_out_detail?'

Paid out detail

'+text(row.paid_out_detail)+'
':'') +(row.employee_remarks?'

Notes for manager

'+text(row.employee_remarks)+'
':'') +'
Prepared by
Witness / verifier
Envelope / bag number
'; } async function markPrinted(item,row){ var meta=copy(item.source_metadata),by=(document.getElementById('opsShiftEmployee')||{}).value||managementUser?.brightpathEmail||managementUser?.email||'Front Desk'; meta.cash_handled=true;meta.cash_report_required=true;meta.cash_count_id=row.id;meta.cash_report_printed_at=new Date().toISOString();meta.cash_report_printed_by=by; try{ var result=await supabaseClient.from('operations_shift_items').update({ status:'Done',required:true,completed_at:new Date().toISOString(),completed_by:by,source_id:row.id,source_metadata:meta,updated_at:new Date().toISOString() }).eq('id',item.id).select('*').single(); if(result.error)throw result.error;if(result.data)Object.assign(item,result.data); if(typeof window.renderOpsShift==='function')window.renderOpsShift(); if(typeof window.renderOperationsMode==='function')window.renderOperationsMode(); }catch(error){console.warn('Could not mark cash report as printed',error)} } window.bpPrintCashEnvelopeReport=async function(itemId){ var item=(operationsShiftItems||[]).find(function(candidate){return candidate.id===itemId;}); var session=(operationsShiftSessions||[]).find(function(candidate){return candidate.id===item?.session_id;}); if(!item||!session)return; item=await sync(session)||item; var out=outRow(session); if(!out||!handledCash(out)){toast('Save the Out cash count first. This report becomes required only when the shift handled cash.');return} var popup=window.open('','bpCashEnvelopeReport','width=880,height=930'); if(!popup){toast('Allow pop-ups to print the cash count report.');return} try{popup.opener=null}catch(ignore){} popup.document.open();popup.document.write(report(session,out));popup.document.close();popup.focus(); setTimeout(function(){try{popup.print()}catch(ignore){}},180); await markPrinted(item,out); toast('Cash Count & Drop Details Report opened for printing.'); }; function decorate(){ Array.prototype.forEach.call(document.querySelectorAll('button.bp-shift-module[onclick*="cash_print"]'),function(button){ button.textContent='🖨 Print Cash Report';button.title='Print Cash Count & Drop Details Report'; var root=button.closest('.bp-shift-item,.bp-shift-focus-item');if(!root)return; Array.prototype.forEach.call(root.querySelectorAll('button[onclick*="updateOpsShiftItem"]'),function(action){ if(/['"]Done['"]/.test(action.getAttribute('onclick')||''))action.remove(); }); var copy=root.querySelector('.bp-shift-item-main,.bp-shift-focus-copy'); if(copy&&!copy.querySelector('.bp-cash-envelope-hint')){ var hint=document.createElement('small');hint.className='bp-cash-envelope-hint';hint.textContent='Required only when the Out count shows cash activity.';copy.appendChild(hint); } }); } var oldRender=window.renderOpsShift; if(typeof oldRender==='function')window.renderOpsShift=function(){ var result=oldRender.apply(this,arguments);decorate(); var session=currentSession(); if(session&&session.status==='In Progress'&&!itemFor(session))window.bpEnsureCashEnvelopeChecklist(session).then(function(item){if(item&&typeof window.renderOpsShift==='function')window.renderOpsShift()}); return result; }; var oldStart=window.startOrOpenOpsShift; if(typeof oldStart==='function')window.startOrOpenOpsShift=async function(){ var result=await oldStart.apply(this,arguments),session=currentSession(); if(session&&session.status==='In Progress'){await window.bpEnsureCashEnvelopeChecklist(session);if(typeof window.renderOpsShift==='function')window.renderOpsShift()} return result; }; var oldSave=window.saveOpsCashCount; if(typeof oldSave==='function')window.saveOpsCashCount=async function(event){ var sessionId=(document.getElementById('opsCashSessionId')||{}).value||'',shift=(document.getElementById('opsCashShift')||{}).value||'',propertyId=typeof opsPid==='function'?opsPid():'',businessDate=typeof opsDate==='function'?opsDate():''; var result=await oldSave.apply(this,arguments); var session=(operationsShiftSessions||[]).find(function(candidate){return candidate.id===sessionId}) ||(operationsShiftSessions||[]).find(function(candidate){return candidate.property_id===propertyId&&String(candidate.business_date||'')===String(businessDate||'')&&candidate.shift===shift&&candidate.status==='In Progress'}); if(session){await sync(session);if(typeof window.renderOpsShift==='function')window.renderOpsShift()} return result; }; var oldOpen=window.openOpsShiftLinkedModule; if(typeof oldOpen==='function')window.openOpsShiftLinkedModule=function(itemId,module){ if(module==='cash_print')return window.bpPrintCashEnvelopeReport(itemId); return oldOpen.apply(this,arguments); }; setTimeout(function(){ decorate();var session=currentSession(); if(session&&session.status==='In Progress')window.bpEnsureCashEnvelopeChecklist(session).then(function(item){if(item&&typeof window.renderOpsShift==='function')window.renderOpsShift()}); },900); })();