💧

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 }}

🔒

Beveiligingsmelding · {{ a.id }}

{{ a.titel }}

{{ a.samenvatting }}

Wat u moet doen: {{ a.actie_gebruiker }}

⚠️

  • {{ b.bedrag }} op {{ b.kassaNaam }}, {{ b.wanneer }} (SumUp {{ b.txId }})

Een klant betaalde op de kaartlezer, maar de kassa kon die betaling niet meer aan een bestelling koppelen. Er is geen machine gestart. Start de machine alsnog via Bedienen, of stort het bedrag terug in het SumUp-dashboard. Deze melding verdwijnt vanzelf na zeven dagen.

{{ nieuwsteRelease.bevat_beveiligingsfix ? '🔐' : '⬆️' }}

{{ nieuwsteRelease.samenvatting }}

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

Maandomzet

Jaaromzet

Nog geen jaardata

Top machines

Geen machines van dit type in deze periode

Betaalmethode

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 }}