// Front Desk Manager — vodja recepcije: smene, eskalacije, dnevni izkaz, performance function FDDashboard({ dark, onNav }) { const muted = dark?'#9A9A9A':'#707070'; return <> Predaja smene Dnevni izkaz }/>
Trenutna smena
Vsi prisotni
{s.name.split(' ').map(w=>w[0]).join('')}
{s.name}
}, {key:'role', label:'Vloga'}, {key:'shift',label:'Smena', render:s=>{s.shift}}, {key:'tasks',label:'Naloge', align:'center', render:s=>{s.tasks}}, {key:'status',label:'Status', render:s=>{s.status}}, ]} rows={STAFF_ON_DUTY}/>
Eskalacije
{[ ['urgent','TV ne dela · soba 418','Hans Schneider · pred 25 min','#E53935'], ['high','Pritožba o hrupu · soba 207','Pred 1 ur · čaka odgovor','#FF9800'], ['med','Pozni check-out (do 14h)','Ana Novak · soba 213 · čaka odobritev','#2196F3'], ].map(([p,t,d,c],i)=>
{t}
{p}
{d}
)}
Zasedenost · 30 dni
Povprečje 78,4 % · vrh 88 %
Status sob
{[['clean','Čiste',ROOMS.filter(r=>r.status==='clean').length,'#2DD164'], ['occupied','Zasedene',ROOMS.filter(r=>r.status==='occupied').length,'#2196F3'], ['dirty','Umazane',ROOMS.filter(r=>r.status==='dirty').length,'#FF9800'], ['out_of_order','Izven',ROOMS.filter(r=>r.status==='out_of_order').length,'#E53935']].map(([k,l,n,c])=>
{l}
{n}
)}
; } function FDShifts({ dark }){ const muted = dark?'#9A9A9A':'#707070'; const days = ['Po 28.','To 29.','Sr 30.','Če 01.','Pe 02.','So 03.','Ne 04.']; return <> IzvoziNova smena}/>
Oseba
{days.map(d=>
{d}
)}
{STAFF_ON_DUTY.map((s,i)=>(
{s.name.split(' ').map(w=>w[0]).join('')}
{s.name}
{s.role}
{days.map((d,j)=>{ const shifts = ['07–15','15–23','08–16','09–17','12–22']; const has = (i+j)%4!==3; const sh = has ? shifts[(i+j*2)%shifts.length] : null; return
{sh ?
{sh}
: }
; })}
))}
; } function FDClosing({ dark }){ const muted = dark?'#9A9A9A':'#707070'; return <> Tiskaj in zaključi}/>
Promet po vrstah plačila
{r.v}}, ]} rows={[ {k:'Plačilna kartica', n:'24', v:'€2.840'}, {k:'Gotovina', n:'8', v:'€680'}, {k:'TRR / nakazilo', n:'2', v:'€760'}, {k:'Booking.com (predplačilo)', n:'4', v:'€640 (poravnano)'}, {k:'Skupaj', n:'34', v:'€4.280'}, ]}/>
FURS davčna blagajna
{[['Računi',34,'#2196F3'],['Stornirani',1,'#FF9800'],['Promet','€4.280','#2DD164']].map(([l,v,c])=>
{l}
{v}
)}
Predaja smene
{[['Check-in opravljenih','9/14','#2DD164'], ['Še čakajo','5','#FF9800'], ['Posebne opombe','2','#2196F3'], ['VIP gosti v hiši','3','#FF9800'], ['Odprte prošnje','3','#E53935']].map(([l,v,c])=>
{l} {v}
)}
⚑ Hans Schneider (418) — TV servis prihaja jutri ob 9h
; } Object.assign(window, { FDDashboard, FDShifts, FDClosing });