💧

Wassalon

Eigenaar-portal

{{ error }}

{{ resetMessage }}

Stel je nieuwe wachtwoord in. Daarna word je automatisch ingelogd.

Minstens 6 tekens.

{{ error }}

Je account heeft tweestapsverificatie aanstaan. Voer de 6-cijfer code uit je Authenticator-app in.

{{ error }}

Bevestig met je 6-cijfer code uit je Authenticator-app om het nieuwe wachtwoord op te slaan.

{{ error }}

Geen account? Vraag de wassalon-installateur om je toe te voegen.

💧

Wassalon-portal

{{ session.user.email }}

Account

{{ session.user.email }}

Tweestapsverificatie (2FA)

Extra beveiliging via een Authenticator-app (Google Authenticator, Authy, 1Password). Aanbevolen maar niet verplicht.

Aan Uit

Stap 1: Scan deze QR-code met je Authenticator-app (Google Authenticator, Authy, 1Password).

QR-code voor 2FA

QR niet scanbaar? Voer deze geheime sleutel handmatig in:

{{ mfaSecret }}

Stap 2: Typ de 6-cijfer code uit je app:

{{ mfaError }}

✓ 2FA staat aan. Bij je volgende login moet je naast je wachtwoord ook een 6-cijfer code uit je Authenticator-app invoeren.

{{ mfaError }}

{{ mfaSavedMsg }}

Geen wassalon gekoppeld aan dit account.

Vraag de installateur om je als eigenaar toe te voegen.

{{ loading ? 'Laden…' : ('Laatste sync: ' + lastSyncDisplay) }}

Periode

Geselecteerd: {{ periodLabel }} — over {{ wassalons.length }} wassalons ({{ rangeTxCount }} transacties totaal)

Totale omzet — alle wassalons

€ {{ rangeRevenue.toFixed(2) }}

Transacties

{{ rangeTxCount }}

Gemiddelde transactie

€ {{ rangeAvg.toFixed(2) }}

Omzet per wassalon

Geen data in deze periode

Totale omzet over tijd

{{ rangeBinLabel }}
Geen data in deze periode

Top machines (alle wassalons)

Geen machines van dit type in deze periode

Betaalmethode (totaal)

Jaaromzet per wassalon

Gestapelde balken — toont welke wassalon hoeveel bijdraagt aan het totaal per jaar.

Nog geen jaardata

Per wassalon — detail

Wassalon Omzet Transacties Gem. transactie
{{ name }} € {{ byWassalon.values[i].toFixed(2) }} {{ byWassalon.txCounts[i] }} € {{ byWassalon.txCounts[i] > 0 ? (byWassalon.values[i] / byWassalon.txCounts[i]).toFixed(2) : '0.00' }}

Periode

Geselecteerd: {{ periodLabel }} — {{ rangeTxCount }} transacties

Totale omzet

€ {{ rangeRevenue.toFixed(2) }}

Transacties

{{ rangeTxCount }}

Gemiddelde transactie

€ {{ rangeAvg.toFixed(2) }}

Omzet over tijd

{{ rangeBinLabel }}
Geen data in deze periode

Top machines

Geen machines van dit type in deze periode

Betaalmethode

Maandomzet

Jaaromzet

Nog geen jaardata

Patroon-analyses

Gemiddelde omzet per categorie binnen de gekozen periode. Helpt bij staffing en machine-onderhoud-planning.

Per weekdag

Beste dag: {{ bestWeekday }}

Per uur (0-23u)

Drukste uur: {{ bestHour }}

Per maand

Sterkste maand: {{ bestMonth }}

Bezetting

Rood = (bijna) vol → kandidaat om uit te breiden. Gearceerde cellen = buiten openingsuren (gebruik daar = deur bleef open).

Geen actieve {{ (occKinds.find(k=>k.id===occKindFilter)||{}).label.toLowerCase() }} voor deze wassalon

Betrouwbaarheid per machine

Percentage van de gekozen periode dat de machine niet als defect gemarkeerd stond. Sorteert oplopend zodat de meest problematische machines bovenaan staan.

Geen machine-events in deze periode
Machine Uptime Defect-tijd # storingen
{{ machineDisplay(row.machineId) }} {{ row.uptimePct.toFixed(1) }}% {{ formatDuration(row.defectMs) }} {{ row.incidents }}

Filters

{{ filteredTx.length }} transactie{{ filteredTx.length === 1 ? '' : 's' }}

Totaal: € {{ filteredTotal.toFixed(2) }}
Laden…
Geen transacties matchen deze filters.
Tijd {{ sortDir === 'desc' ? '↓' : '↑' }} Machine Methode Min {{ sortDir === 'desc' ? '↓' : '↑' }} Bedrag {{ sortDir === 'desc' ? '↓' : '↑' }}
{{ formatTime(t.ts) }} {{ machineLabel(t) }} {{ t.payment_method || 'cash' }} {{ t.minutes != null ? t.minutes : '—' }} € {{ (t.amount_cents/100).toFixed(2) }}
{{ (txPage - 1) * txPageSize + 1 }}–{{ Math.min(txPage * txPageSize, filteredTx.length) }} van {{ filteredTx.length }}
{{ txPage }} / {{ totalPages }}

ID: {{ expandedTxId }}

SumUp tx-id: {{ expandedTx.sumup_tx_id }}

Order-id: {{ expandedTx.raw.order_id }}

Lokale machine: {{ expandedTx.raw.local_machine_id }}

{{ JSON.stringify(expandedTx?.raw || {}, null, 2) }}

Kassa {{ kassaStatus.online ? 'online' : 'offline' }} — laatst gezien {{ kassaStatus.ageLabel }}

Nog geen machines geconfigureerd.

{{ group.label }}

{{ kindLabel(m.kind) }} {{ m.number }}
Defect Vrij
Geen actieve {{ group.label.toLowerCase() }} — activeer ze in de Instellingen-tab.

Kassa {{ kassaStatus.online ? 'online' : 'offline' }} — laatst gezien {{ kassaStatus.ageLabel }}

{{ kassaStatus.message }}

Cloud-update gedetecteerd

De wassalon-config wijzigde in de cloud (bv. een kassa-save of andere sessie). Je niet-opgeslagen wijzigingen blijven staan — sla op om je versie door te duwen, of klik Herstel in de betrokken sectie om de cloud-versie te laden.

Feedback versturen

{{ feedback.title.length }}/200

{{ feedback.description.length }}/5000

Screenshot preview

of Ctrl+V plakken in beschrijving

{{ feedback.screenshotError }}

{{ feedback.error }}

Vermijd persoonsgegevens van klanten in de beschrijving.

{{ feedback.toast.title }}

{{ feedback.toast.message }}