PRE REGISTRATION

Leave your details for special offers

+62
{{ selectedLandingItem.type }}

{{ selectedLandingItem.name }}

{{ selectedLandingItem.description }}

Expert Coaches

{{ c }}

REDEEM SUCCESS

Penukaran voucher {{ redeemCompletedData.customerName }} berhasil.

Pilih Dokumen Cetak:

Pilih Voucher Kelas

Anda tidak memiliki voucher kelas aktif (Kategori: Class). Silakan lakukan pembelian paket di kasir terlebih dahulu.
Class Detail

{{ selectedClassDetail.className }}

Time

{{ selectedClassDetail.displayTime }}

Coach

{{ selectedClassDetail.coach }}

Description

{{ selectedClassDetail.description || 'No description available for this class.' }}

Current Booking
{{ selectedClassDetail.bookedCount }}/{{ selectedClassDetail.maxSlots }}
No one has booked this class yet.
Athlete Gender Time
{{ maskName(log.member_name) }} {{ new Date(log.checkin_time).toLocaleDateString('en-GB', {weekday: 'short', day: 'numeric', month: 'short'}) }} • {{ new Date(log.checkin_time).toLocaleTimeString('id-ID', {hour:'2-digit', minute:'2-digit'}) }}

Booking Instructions

  1. Ensure you are an active member of Vertex 8 and have an active Class Voucher or Bundle.
  2. Click the "Login to Book" button below to access the system.
  3. Select the "Member (OTP)" tab on the login screen.
  4. Enter your registered WhatsApp number to receive a secure 4-digit OTP code.
  5. Once logged in, navigate to "Hyrox Arena" from your dashboard menu.
  6. Select your desired class and click "Book Class" to secure your slot!
Loading...

{{ infoModalTitle }}

{{ infoModalMessage }}

{{ confirmModalData.title }}

Background

The Fittest Place at BSD

ORIGINAL
HYROX

Push your limits with our world-class Hyrox classes and professional Padel courts.

CLASS SCHEDULE

Click on a date to view Hyrox class slot availability.

{{ currentMonthName }} {{ currentYear }}

{{ day }}
{{ date }}
+

Today's Classes

No classes scheduled for today.

{{ sch.timeString }} {{ sch.bookedCount || 0 }}/{{ sch.maxSlots || 20 }} Booked

{{ sch.className }}

{{ sch.coachName || 'TBA' }}

Upcoming Classes

No upcoming classes scheduled.

{{ sch.displayDate }} {{ sch.timeString }}

{{ sch.className }}

{{ sch.coachName || 'TBA' }}

{{ sch.bookedCount || 0 }}/{{ sch.maxSlots || 20 }} Booked

OUR FACILITIES

{{ item.type }}

{{ item.name }}

View Details

About Us

{{ settings.landingAboutUs }}

Our Location

{{ settings.landingLocation }}

Open Maps

Support Contact

Chat on WhatsApp
Background

WELCOME BACK

Authorized Personnel & Members

Athlete Login

member.vertex8.co.id

Not a member yet? Visit our front desk to register.

Loading Warriors Data...

{{ board.raceName }}

2

{{ board.top3[1].nickname }}

{{ board.top3[1].time }}

1

{{ board.top3[0].nickname }}

{{ board.top3[0].time }}

3

{{ board.top3[2].nickname }}

{{ board.top3[2].time }}

© 2026 VERTEX 8 Eastvara BSD. Powered by Hive Colony.

Logo
{{ currentUser ? currentUser.name.split(' ')[0] : 'User' }}

Booking Status

Pantau daftar peserta yang telah booking per sesi.

Tidak ada jadwal di kategori {{ bookingStatusTab }}.
{{ sch.timeString }} {{ new Date(sch.date).toLocaleDateString('id-ID', {day:'numeric', month:'short'}) }}

{{ sch.className }}

{{ sch.coachName }}

{{ (getMembersInClass(sch.id)).length }} / {{ sch.maxSlots || 20 }}

{{ selectedBookingClass.className }}

{{ selectedBookingClass.displayDate }} | {{ selectedBookingClass.timeString }}

{{ (getMembersInClass(selectedBookingClass.id)).length }} Total 🟢 {{ (getMembersInClass(selectedBookingClass.id)).filter(m => !m.member_id.includes('GUEST') && !(m.id && m.id.includes('BOOK-FREE'))).length }} Regular 🟡 {{ (getMembersInClass(selectedBookingClass.id)).filter(m => m.member_id.includes('GUEST') || (m.id && m.id.includes('BOOK-FREE'))).length }} Free 🔵 {{ (getMembersInClass(selectedBookingClass.id)).filter(m => m.status === 'Valid' || m.status === 'Already Checked-in').length }} Checked-in
Belum ada member yang booking sesi ini.

{{ log.member_name }} 🟡 Free Class 🟡 Free Class 🔵 Checked-in 🟢 Regular

{{ getMemberPhone(log.member_id) }}

Booked At

{{ new Date(log.checkin_time).toLocaleTimeString('id-ID', {hour:'2-digit', minute:'2-digit'}) }}

Ganti Password

Perbarui kata sandi akun Staff Anda demi keamanan.

System Dashboard

Ringkasan performa dan data Vertex 8 System.

No Dashboard Access

You don't have permission to view any dashboard tab. Please contact your administrator.

Total Members

{{ members.length }}

{{ stat.name }} {{ stat.count }}
Tidak ada kelas hari ini atau besok.
{{ sch.dayLabel }}

{{ sch.timeString }}

{{ sch.className }}

{{ sch.coachName }}

{{ new Date(sch.date).toLocaleDateString('id-ID', { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' }) }}

{{ sch.totalCount }}

Total

{{ sch.regularCount }}

Regular

{{ sch.freeCount }}

Free

{{ sch.checkedInCount }}

In

{{ sch.totalCount }}/{{ sch.maxSlots || 20 }} Slots

Today's Sales

Rp {{ (salesAnalystData.today.total).toLocaleString() }}

{{ method }} Rp {{ amount.toLocaleString() }}
Belum ada transaksi hari ini.

This Month

Rp {{ (salesAnalystData.month.total).toLocaleString() }}

{{ method }} Rp {{ amount.toLocaleString() }}
Belum ada transaksi bulan ini.

This Year

Rp {{ (salesAnalystData.year.total).toLocaleString() }}

{{ method }} Rp {{ amount.toLocaleString() }}
Belum ada transaksi tahun ini.

All Time Sales

Rp {{ (salesAnalystData.all.total).toLocaleString() }}

{{ method }} Rp {{ amount.toLocaleString() }}
Database kosong.

Sales Trend (Bulan Ini)

{{ new Date().toLocaleDateString('id-ID', { month: 'long', year: 'numeric' }) }}

Cek Sales per Tanggal

Total Revenue

Rp {{ salesAnalystSelectedDateSummary.total.toLocaleString() }}

Total Transaksi

{{ salesAnalystSelectedDateSummary.count }}({{ salesAnalystSelectedDateSummary.totalAll - salesAnalystSelectedDateSummary.count }} dibatalkan)

Waktu Customer Items Metode Sales Total Status
{{ new Date(tx.date).toLocaleTimeString('id-ID', { hour: '2-digit', minute: '2-digit' }) }} {{ tx.customerName }} {{ tx.items }} {{ tx.paymentMethod }} {{ tx.salesRef }} Rp {{ Number(tx.total).toLocaleString() }} {{ tx.status || 'PAID' }}
Tidak ada transaksi di tanggal ini.

Loading Warriors Data...

{{ board.raceName }}

2

{{ board.top3[1].nickname }}

{{ board.top3[1].time }}

1

{{ board.top3[0].nickname }}

{{ board.top3[0].time }}

3

{{ board.top3[2].nickname }}

{{ board.top3[2].time }}

Pre Renewed

Follow up member yang masa aktifnya akan/sudah habis.

Semua target sudah terfollow-up / tidak ditemukan.

{{ mem.fullname }}

{{ mem.whatsapp }}

{{ mem.statusLabel }}

Active Package

{{ mem.activePackage }}

{{ mem.displayPicSales }} {{ mem.calculatedStatus }}

{{ selectedPreRenewed.fullname }}

{{ selectedPreRenewed.whatsapp }} Chat

Status Paket

{{ selectedPreRenewed.statusLabel }}

{{ selectedPreRenewed.activePackage }}

Assigned Sales

{{ selectedPreRenewed.displayPicSales }}

Update Status

Sisa Voucher

{{ item.voucher_category }}

{{ item.voucher_name }}

{{ item.expiry_date ? 'Exp: ' + formatExpiryDate(item.expiry_date) : 'No Expiry' }}

{{ item.qty }}
Tidak ada voucher aktif.

Histori Pembelian

Date Items Total
{{ tx.date }} {{ tx.items }} Rp {{ tx.total.toLocaleString() }}
Belum ada transaksi.

Voucher Activity Logs

Date Voucher Type Ref
{{ log.date }} {{ log.voucherName }} +{{ log.qty }} -{{ log.qty }} {{ log.reference }}
Belum ada aktivitas voucher.

Check-in & Booking Logs

Date & Time Class Name Status
{{ log.date }} {{ log.className }} {{ log.status }}
Belum ada riwayat check-in/booking.

POS Detail

{{ selectedMilesTxDetail.txId }}

Customer: {{ selectedMilesTxDetail.customerName }}
Tanggal: {{ new Date(selectedMilesTxDetail.date).toLocaleString('id-ID') }}
Metode: {{ selectedMilesTxDetail.paymentMethod }}

Item Pembelian:

{{ selectedMilesTxDetail.items }}

Total Transaksi: Rp {{ (Number(selectedMilesTxDetail.total) || 0).toLocaleString() }}

{{ selectedActiveClass?.isToday ? '📅 Today' : '📅 Tomorrow' }} · {{ selectedActiveClass?.timeString }}

{{ selectedActiveClass?.className }}

{{ selectedActiveClass?.coachName }}

{{ selectedActiveClass?.totalCount || 0 }}

Total

{{ selectedActiveClass?.regularCount || 0 }}

🟢 Regular

{{ selectedActiveClass?.freeCount || 0 }}

🟡 Free

{{ selectedActiveClass?.checkedInCount || 0 }}

🔵 In

No members booked yet.
{{ idx + 1 }}

{{ log.member_name }} 🟡 Free 🔵 In 🟢 Booked

{{ getMemberPhone(log.member_id) }}

{{ new Date(log.checkin_time).toLocaleTimeString('id-ID', {hour:'2-digit', minute:'2-digit'}) }}

Slot Capacity

{{ selectedActiveClass?.totalCount || 0 }} / {{ selectedActiveClass?.maxSlots || 20 }}

{{ currentTimeStr }}

{{ currentDateStr }}

Live Session / Incoming

{{ currentActiveSchedule.className }}

{{ currentActiveSchedule.description }}

Time Slot

{{ currentActiveSchedule.timeString }}

Coach

{{ currentActiveSchedule.coaches && currentActiveSchedule.coaches.length ? currentActiveSchedule.coaches[0] : 'TBA' }}

Checked In

{{ currentSessionLogCount }} / 20

Next

Upcoming Class

{{ nextUpSchedule.className }}

{{ nextUpSchedule.timeString }}

{{ nextUpSchedule.coachName }}

Open Gym Mode

PUBLIC PERFORMANCE
ACCESS

Please tap the card to access Gym.
Free for all active members.

System Ready • Waiting for Tap

{{ checkInStatus === 'Valid' ? 'ACCESS GRANTED' : checkInStatus === 'Already Checked-in' ? 'ALREADY CHECKED-IN' : checkInStatus === 'Belum Booking' ? 'NOT BOOKED' : 'ACCESS DENIED' }}

{{ scannedMember.name || 'Unknown Member' }}

{{ scannedMember.id || '-' }}

Active Package

{{ scannedMember.package }}

NO PACKAGE

Expiration Date

{{ formatExpiryDate(scannedMember.expiry) }}

Anda sudah berada di dalam kelas ini

Silakan booking terlebih dahulu

Please contact admin immediately

{{ currentTimeStr }}

{{ currentDateStr }}

Open Gate Mode

GENERAL ACCESS

Tap member card to enter. Open for all active members.

Gate Ready • Waiting for Tap

{{ checkInStatus === 'Valid' ? 'ACCESS GRANTED' : checkInStatus === 'Already Checked-in' ? 'ALREADY CHECKED-IN' : checkInStatus === 'Belum Booking' ? 'NOT BOOKED' : 'ACCESS DENIED' }}

{{ scannedMember.name || 'Unknown Member' }}

{{ scannedMember.id || '-' }}

Active Package

{{ scannedMember.package }}

NO PACKAGE

Expiration Date

{{ formatExpiryDate(scannedMember.expiry) }}

Anda sudah berada di dalam kelas ini

Silakan booking via kasir terlebih dahulu

Please contact admin immediately

Check-In Report

Tanggal Class Jam (Sesi) Total Checkin
{{ group.date }}
{{ group.className }}
{{ group.time }}
{{ group.count }} Person

Member Details ({{ group.count }})

Time Member ID Name Status
{{ member.checkInTime }} {{ member.memberId }} {{ member.memberName }} {{ member.status }}

No check-in data found.

RFID Management

Assign atau perbarui kartu tap akses untuk member.

1. Pilih Member

Member tidak ditemukan.

{{ mem.fullname }}

{{ mem.id }}

Terhubung No Card

2. Tap Kartu Baru

Pilih member terlebih dahulu

Target Member

{{ selectedRfidMember.fullname }}

Member ini sudah punya kartu. Tap kartu baru untuk me-replace.

System WIKI

Daftar tautan referensi & dokumen penting internal.

Belum ada data WIKI yang disimpan.

{{ item.title }}

{{ item.url }}

{{ wikiForm.id ? 'EDIT' : 'CREATE' }} WIKI

SYSTEM SETTINGS

{{ pm }}
{{ branch }}

WhatsApp API (StarSender)

Laporan kelas besok (jam 9 malam) + preparation reminder (1 jam sebelum kelas).

Generate ulang & kirim laporan harian untuk tanggal yang dipilih. Tidak memotong voucher expired / sync founder status (itu cuma jalan di laporan hari ini).

Coach Group Report

Laporan kelas besok dikirim jam 9 malam + preparation reminder 1 jam sebelum kelas.

Test Nightly Report

*Kirim laporan kelas besok sekarang

Test Prep Reminder

*Kirim reminder kelas hari ini

Hari

Default: 40 hari. Package status Pending yang belum diaktivasi akan hangus setelah sejumlah hari ini dihitung dari tanggal invoice.

Info Activation Status

🟡 Pending — Package dibeli, belum pernah booking kelas. Expiry belum berjalan.

🟢 Active — Sudah pernah booking. Expiry berjalan dari tanggal jadwal kelas pertama.

🔴 Expired — Package habis masa aktif, atau Pending melebihi batas hari hangus.

Uji Coba Pengiriman Pesan (Personal)

*Test ini untuk mencoba format "Welcome Message (Personal)". Untuk test notifikasi grup, gunakan tombol di bawah.

Notification Triggers & Custom Templates

Japri E-Receipt ke member saat transaksi di POS berhasil diproses.

Gunakan Variabel: {{customer_name}}, {{invoice_no}}, {{date}}, {{items}}, {{discount}}, {{total}}, {{payment_method}}

Laporan ke grup admin saat ada member mendaftar.

Gunakan Variabel: {{fullname}}, {{member_id}}, {{email}}, {{whatsapp}}, {{emergency}}

Laporan realtime ke grup saat member tap kartu (Gate/Class).

Gunakan Variabel: {{fullname}}, {{class_name}}, {{time}}, {{status_icon}}, {{status}}, {{package}}

Laporan ke grup saat ada calon member mengisi form "Join Us" dari Landing Page.

Gunakan Variabel: {{fullname}}, {{gender}}, {{whatsapp}}, {{email}}, {{location}}, {{experience}}

Landing Page Content

Urutan Gallery Landing Page

Drag & drop (tahan dan geser) kartu di bawah ini untuk mengatur urutan fasilitas di halaman depan. Jangan lupa klik "Save Configuration" di paling bawah setelah selesai.

{{ item.name }}

{{ item.type }}
Belum ada fasilitas / kelas untuk diurutkan.

*Masukkan ID dari link Google Docs template aslimu. Pastikan Google Docs disetting "Anyone with the link".

*Masukkan ID dari link Google Docs template PAR-Q aslimu. Pastikan aksesnya "Anyone with the link".

PADEL Schedule

{{ currentMonthName }} {{ currentYear }}

{{ day }}
{{ date }}

Instructions

Klik pada tanggal di kalender untuk melihat detail booking lapangan.

*Jadwal booking dibuat otomatis dari transaksi POS (Pembelian Produk Padel).

PADEL Management

+{{ item.images.length - 1 }} Photos

{{ item.name }}

{{ item.description }}

Achievement Leaderboard

Rank Member Total Points Badge
#{{ idx + 1 }}
{{ mem.fullname }}{{ mem.id }}
{{ mem.points || 0 }} PTS -

Manage Missions

{{ msn.points }} PTS

{{ msn.title }}

{{ msn.description }}

Achievement Schedule

{{ currentMonthName }} {{ currentYear }}

{{ day }}
{{ date }}

Instructions

Klik tanggal untuk menambahkan Misi Harian.

Manage Classes

Kelola master data kelas dan fasilitas.

Belum ada data kelas.
+{{ cls.images.length - 1 }}

{{ cls.name }}

ID: {{ cls.id }} | {{ cls.category || 'Hyrox Class' }} | {{ cls.maxSlots || 20 }} Pax

{{ cls.description }}

{{ coach }} No Coach Assigned

Free Class Management

Atur kuota tiket gratis untuk promo Grand Opening.

Belum ada kuota Free Class yang dibuat.

{{ cls.className }}

{{ cls.date }} | {{ cls.time }}

{{ cls.coach || 'TBA' }}

Terpakai

{{ cls.bookedCount }} / {{ cls.freeQuota }}

{{ freeClassForm.id ? 'Edit Free Class' : 'Add Free Class' }}

HYROX Schedule

{{ currentMonthName }} {{ currentYear }}

{{ day }}
{{ date }}

Instructions

Klik pada tanggal di kalender untuk melihat detail kelas atau menambahkan jadwal baru.

Pre Registration Leads

Kelola data calon member baru.

-

Data leads tidak ditemukan.

Tanggal Daftar

{{ new Date(lead.timestamp).toLocaleDateString('id-ID', {day:'numeric', month:'short'}) }} • {{ new Date(lead.timestamp).toLocaleTimeString('id-ID', {hour:'2-digit', minute:'2-digit'}) }}

{{ lead.status }}

{{ lead.fullname }}

{{ lead.location }} | {{ lead.experience }}

{{ lead.whatsapp }}

{{ lead.email }}

{{ lead.assignedTo }}

Member List

PERINGATAN DATA DUPLIKAT!

  • {{ msg }}

*Harap edit dan perbaiki kontak member di atas agar Check-in dan notifikasi berjalan optimal.

Data member tidak ditemukan.

{{ mem.fullname }}

{{ mem.id }}

{{ getMemberTitle(mem.id) }} {{ mem.activePackage }} No Package

{{ mem.whatsapp }}

{{ mem.email }}

Joined: {{ mem.timestamp ? new Date(mem.timestamp).toLocaleDateString('id-ID') : '-' }}

Showing page {{ memberCurrentPage }} of {{ memberTotalPages }}

Referral Code

Kelola kode dan pantau komisi member.

Kode Referral Pemilik (Member) Diskon Customer Rincian Komisi Pemilik Action
Belum ada kode referral dibuat.
{{ ref.code }} {{ ref.member_name }} {{ ref.discount_percent }}%
  • {{ pkg.name }} (Komisi: {{ pkg.commission }}%)
Pemilik (Member) Kode Referral Total Dipakai Total Revenue Tercipta Total Komisi Pemilik
Belum ada data komisi.
{{ data.member_name }} {{ data.code }} {{ data.totalUsed }}x Rp {{ data.totalRevenue.toLocaleString() }} Rp {{ data.totalCommission.toLocaleString() }}

Create Referral

*Satu member hanya bisa memiliki 1 kode referral.

.VERTEX8
Komisi Didapat:
%

Rincian Komisi

Pemilik: {{ selectedReferralDetail.member_name }} | Kode: {{ selectedReferralDetail.code }}

-
Tanggal Customer Item Dibeli Net Revenue Komisi Didapat
Tidak ada transaksi pada periode ini.
{{ new Date(tx.date).toLocaleString('id-ID') }} {{ tx.customerName }} {{ tx.items }} Rp {{ tx.revenue.toLocaleString() }} Rp {{ tx.commissionAmount.toLocaleString() }} ({{ tx.commissionRate }}%)
Total Komisi Periode Ini: Rp {{ referralDetailTotals.commission.toLocaleString() }}

Banned Account

Manage frozen accounts & no-show penalty data

Search Frozen Member

{{ m.fullname }}

{{ m.whatsapp }} · {{ m.email }}

Frozen

{{ m.noShowCount }}x no-show

No frozen accounts found matching "{{ frozenMemberSearch }}"

Type to search all frozen accounts in real-time.

{{ selectedFrozenMember.fullname }}

{{ selectedFrozenMember.email }} · {{ selectedFrozenMember.whatsapp }}

{{ selectedFrozenMember.activePackage || '-' }} {{ selectedFrozenMember.noShowCount }}x No-Show Frozen: {{ selectedFrozenMember.freezeDate }}
Member No-Show Count Status Active Package Last No-Show Freeze Date Unfrozen By Penalty Notes
No penalty data found.

{{ p.memberName }}

{{ p.email }}

{{ p.whatsapp }}

{{ p.noShowCount }} / 3 {{ p.status }} {{ p.activePackage || '-' }} {{ p.lastNoShowDate || '-' }} {{ p.freezeDate !== '-' ? p.freezeDate : '-' }} {{ p.unfreezeBy }} -

{{ p.unfreezeDate }}

{{ p.penaltyNotes !== '-' ? p.penaltyNotes : '-' }}

Total: {{ filteredPenaltyList.length }} records

Simple POS

Tembak Bundle/Voucher ke 1 atau banyak member sekaligus (Bypass WA).

Pilih Target Member

{{ simplePosSelectedMembers.length }} Terpilih
Data tidak ditemukan.

Konfigurasi Penembakan

Manage Race

Buat template Race untuk Training Card Member.

{{ race.name }}

{{ race.description }}

TRAINING CARD

{{ tcSelectedMember.fullname }}

{{ race.name }}

{{ race.description }}

Previous Best Record:

{{ getPreviousRaceRecord(race.id) || 'No Record Yet' }}

{{ raceForm.id ? 'Edit Race' : 'Create Race' }}

{{ selectedRaceData?.name }}

Athlete: {{ tcSelectedMember?.fullname }}

{{ formattedSwTime }}

Previous Record

{{ getPreviousRaceRecord(selectedRaceData?.id) || 'None' }}

Growth (Est.)

{{ calculatedGrowth.text }}

RACE HISTORY

Athlete: {{ tcSelectedMember?.fullname }}

Tanggal Race Name Time Record Growth Action
Belum ada history race.
{{ new Date(rec.created_at).toLocaleDateString('id-ID', {day:'numeric', month:'short', year:'numeric'}) }} {{ getRaceName(rec.race_id) }} {{ rec.time_record }} {{ rec.growth_value || 'New' }}

POS History

Showing {{ filteredTransactions.length }} transactions
Total Rp {{ filteredTransactions.filter(t=>(t.status||'PAID')!=='Cancelled').reduce((s,t)=>s+t.total,0).toLocaleString() }}
Cancelled {{ filteredTransactions.filter(t=>(t.status||'PAID')==='Cancelled').length }}

Tidak ada riwayat transaksi.

Cancelled

Invoice No.

{{ tx.txId }}

Tanggal

{{ new Date(tx.date).toLocaleDateString('id-ID', {day:'numeric', month:'short', year:'numeric'}) }}

{{ tx.customerName }} {{ tx.type }}
Payment {{ tx.paymentMethod || 'Cash' }}
Referral Code {{ tx.referralCode }}

Rincian Pembelian:

{{ tx.items }}

Note: {{ tx.notes }}

Grand Total

Rp {{ tx.total.toLocaleString() }}

FOUNDER 100th

Daftar eksklusif 100 member pertama yang terus aktif memperbarui paket elit Vertex 8.

{{ mem.fullname }}

Inactive

{{ mem.gender }} | {{ mem.id }}

{{ mem.activePackage }}

First Joined

{{ mem.firstDateBuyStr }}

Loyalty

{{ mem.activeDays }}Days

Renewals

{{ mem.totalRenewed }}Times

Expires In

{{ mem.daysLeft }}Days

Belum ada member yang memenuhi syarat Founder 100th.

Effective Date Bulk

Set "Mulai Jalan" paket untuk banyak member sekaligus. Expiry Date dikalkulasi otomatis.

Member Info Active Package Current Expiry
Member dengan paket aktif tidak ditemukan.
{{ mem.fullname }} {{ mem.whatsapp }} | {{ mem.id }} {{ mem.activePackage }} {{ formatExpiryDate(mem.expiry) }}

Report Member List

Analitik spending & masa aktif member.

{{ mem.fullname }}

{{ mem.whatsapp }} | {{ mem.id }}

Total Packages

{{ mem.packageCount }}x Beli

Total Spending

Rp {{ (mem.totalSpending / 1000).toLocaleString() }}K

{{ mem.activePackage }} No Package

{{ mem.daysLeft < 0 ? 'Expired' : (mem.daysLeft === 0 ? 'Last Day' : `H-${mem.daysLeft}`) }}

Tidak ada member yang sesuai filter/pencarian.

SETTLEMENT SALES

Rekonsiliasi uang masuk dari POS ke Bank.

Total Sales POS

Rp {{ stlKpi.pos.toLocaleString() }}

Total Bank (Settled)

Rp {{ stlKpi.bank.toLocaleString() }}

Total Variance

Rp {{ stlKpi.variance.toLocaleString() }}

Status: NEW

{{ stlKpi.newCount }} Days

Status: SETTLED

{{ stlKpi.settledCount }} Days

Tanggal Transaksi Cabang Total Sistem (Kotor) Status Action
Belum ada data penjualan sesuai filter.
{{ new Date(item.date).toLocaleDateString('id-ID', { weekday: 'short', day: 'numeric', month: 'long', year: 'numeric' }) }} {{ item.branch }} Rp {{ item.systemTotal.toLocaleString() }} {{ item.status }}

SETTLEMENT DETAILS

Tanggal: {{ new Date(settlementForm.date).toLocaleDateString('id-ID', { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' }) }} | Cabang: {{ settlementForm.branch }}

Rincian Pembayaran di Sistem

{{ method }} Rp {{ amount.toLocaleString() }}
Total Sistem Rp {{ settlementForm.systemTotal.toLocaleString() }}

Sudah Di-settle Oleh

{{ settlementForm.settledBy || 'Unknown' }}

KPI Variance (Selisih) Rp {{ settlementForm.variance.toLocaleString() }}
{{ settlementForm.preview || 'Belum ada file dipilih' }}
Lihat File Saat Ini

SETTLEMENT KOMISI

Pembayaran komisi (Tiering System).

Total Gross Sales

Rp {{ ssKpi.gross.toLocaleString() }}

Komisi Sales (70%)

Rp {{ ssKpi.komisiSales.toLocaleString() }}

Komisi Head (30%)

Rp {{ ssKpi.komisiHead.toLocaleString() }}

Total Variance

Rp {{ ssKpi.variance.toLocaleString() }}

Outstanding

{{ ssKpi.outstanding }} Person

Settled

{{ ssKpi.settled }} Person

-
Salesman Head Sales Gross Sales Tier Komisi Sales (70%) Actual Paid Status Action
Belum ada data komisi.
{{ item.salesName }} {{ item.headName }} Rp {{ item.netSales.toLocaleString() }} {{ item.tier }} Rp {{ item.komisiSales.toLocaleString() }} {{ item.status === 'Settled' ? 'Rp ' + item.stlData.actual_paid.toLocaleString() : '-' }} {{ item.status }}
Head Sales Tim Sales Total Gross Sales (Tim) Komisi Head (30%) Actual Paid Status Action
Belum ada data komisi Head.
{{ item.headName }} {{ item.teamCount }} Orang Rp {{ item.netSales.toLocaleString() }} Rp {{ item.komisiHead.toLocaleString() }} {{ item.status === 'Settled' ? 'Rp ' + item.stlData.actual_paid.toLocaleString() : '-' }} {{ item.status }}

SETTLEMENT KOMISI

{{ ssForm.type === 'Sales' ? 'Salesman' : 'Head Sales' }}: {{ ssForm.type === 'Sales' ? ssForm.salesmanName : ssForm.headName }} | Periode: {{ new Date(ssStartDate).toLocaleDateString('id-ID') }} - {{ new Date(ssEndDate).toLocaleDateString('id-ID') }}

Rincian Komisi di Sistem

Total Gross Sales Rp {{ ssForm.totalSales.toLocaleString() }}
Komisi {{ ssForm.type }} {{ ssForm.type === 'Sales' ? '70%' : '30%' }} Rp {{ ssForm.commissionTotal.toLocaleString() }}
Total Payout Rp {{ ssForm.commissionTotal.toLocaleString() }}

Sudah Di-settle Oleh

{{ ssForm.settledBy }}

- {{ ssForm.taxAmount.toLocaleString() }}
Variance (Selisih) Rp {{ ssForm.variance.toLocaleString() }}
{{ ssForm.preview || 'Belum ada file dipilih' }}
Lihat File Saat Ini

SETTLEMENT REFERRAL

Pembayaran komisi (Referral System).

Total Gross Sales

Rp {{ srKpi.gross.toLocaleString() }}

Total Komisi Referral

Rp {{ srKpi.commission.toLocaleString() }}

Total Variance

Rp {{ srKpi.variance.toLocaleString() }}

Outstanding

{{ srKpi.outstanding }} Person

Settled

{{ srKpi.settled }} Person

-
Referral Owner (Member) Kode Referral Penggunaan Gross Sales Komisi Referral Actual Paid Status Action
Belum ada data komisi referral.
{{ item.memberName }} {{ item.referralCode }} {{ item.totalUsed }}x Rp {{ item.totalRevenue.toLocaleString() }} Rp {{ item.totalCommission.toLocaleString() }} {{ item.status === 'Settled' ? 'Rp ' + item.stlData.actual_paid.toLocaleString() : '-' }} {{ item.status }}

SETTLEMENT REFERRAL

Member: {{ srForm.memberName }} | Kode: {{ srForm.referralCode }} | Periode: {{ new Date(srStartDate).toLocaleDateString('id-ID') }} - {{ new Date(srEndDate).toLocaleDateString('id-ID') }}

Rincian Komisi di Sistem

Total Gross Sales Generated Rp {{ srForm.totalSales.toLocaleString() }}
Komisi Referral Sesuai Pckg Rp {{ srForm.commissionTotal.toLocaleString() }}
Total Payout Rp {{ srForm.commissionTotal.toLocaleString() }}

Sudah Di-settle Oleh

{{ srForm.settledBy }}

- {{ srForm.taxAmount.toLocaleString() }}
Variance (Selisih) Rp {{ srForm.variance.toLocaleString() }}
{{ srForm.preview || 'Belum ada file dipilih' }}
Lihat File Saat Ini

Commission Report

Kalkulasi 70/30 berdasarkan tier pencapaian individu bulan ini.

Nama Sales Head / Atasan Gross Sales (Bulan Ini) Current Tier Komisi Sales (70%) Komisi Head (30%)
Belum ada data penjualan bulan ini.
{{ data.salesName }} {{ data.headName }} Rp {{ data.netSales.toLocaleString() }}
(Limit Capped at 325 Jt)
{{ data.tier }} Rp {{ data.komisiSales.toLocaleString() }} Rp {{ data.komisiHead.toLocaleString() }} N/A

Whatsapp Broadcast

Kirim pesan massal dengan aman. (Jeda acak otomatis 20-35 detik per kontak).

Pilih Target Kontak

{{ waSelectedContacts.length }} Terpilih
Data tidak ditemukan.

Tulis Pesan

Auto Greeting Aktif

Gambar Lampiran (Opsional)

Tambahkan flyer atau poster promosi. Format: JPG/PNG. Pastikan ukuran gambar tidak terlalu besar.

BROADCASTING...

Tolong JANGAN TUTUP halaman ini sampai proses selesai!

{{ waSendingState.current }} of {{ waSendingState.total }}

{{ waSendingState.success }} Sukses {{ waSendingState.failed }} Gagal
> {{ log }}

Broadcast Outbox

Belum ada riwayat broadcast.

{{ item.date }}

Pengirim: {{ item.sender }}

✓ {{ item.report?.success || 0 }} Sukses ✗ {{ item.report?.failed || 0 }} Gagal

Pesan Terkirim:

{{ item.report?.message }}

Rincian Penerima:

Nama WhatsApp Status Keterangan Server
{{ tgt.name }} {{ tgt.phone }} {{ tgt.error }}

Manage Greetings

Variasi sapaan ini akan dipilih secara acak (random) setiap kali sistem mengirim pesan menggunakan variabel {{sapaan}}. Semakin banyak variasi, semakin aman dari blokir WhatsApp.

Daftar sapaan kosong.
{{ greet }}

Rincian Komisi Salesman

Salesman: {{ selectedCommissionDetail.salesName }} | Head: {{ selectedCommissionDetail.headName }}

-
Tanggal Invoice Customer Item Dibeli Gross Sales (Kotor)
Tidak ada transaksi pada periode ini.
{{ new Date(tx.date).toLocaleString('id-ID') }} {{ tx.txId }} {{ tx.customerName }} {{ tx.items }} Rp {{ tx.gross.toLocaleString() }}
Total Gross Sales Rp {{ commissionDetailTotals.netSales.toLocaleString() }}
Tier Achieved {{ commissionDetailTotals.tier }}
Komisi Sales ({{ commissionDetailTotals.rateSales }}%) Rp {{ commissionDetailTotals.komisiSales.toLocaleString() }}
Komisi Head ({{ commissionDetailTotals.rateHead }}%) Rp {{ commissionDetailTotals.komisiHead.toLocaleString() }}

Salesman Performance

Sales Name

{{ name }}

{{ stat.count }}

Transactions

Rp {{ (stat.total / 1000000).toFixed(1) }}M

Revenue

Salesman Total Ref Total Revenue Performance
{{ name }} {{ stat.count }} Rp {{ stat.total.toLocaleString() }}

My Booking Status

Your upcoming class bookings

No Upcoming Bookings

You don't have any upcoming class bookings. Go to Hyrox Arena to book a class.

{{ booking.className }}

{{ booking.status }}
{{ booking.coachName }}
{{ booking.date }}
{{ booking.time }}
Cancellable (>24h)
Less than 24h away

HYROX ARENA

Official Training Ground

LIVE NOW
Booked

{{ liveSessionBanner.className }}

{{ liveSessionBanner.displayTime }}
{{ liveSessionBanner.coach }}

No Live Session

Next Session
Booked

{{ nextSessionBanner.className }}

{{ nextSessionBanner.displayDate }} {{ nextSessionBanner.displayTime }}
{{ nextSessionBanner.coach }}

No Upcoming Classes

{{ currentMonthName }} {{ currentYear }}

{{ day }}
{{ date }}
{{ monthlyHyroxSchedules[date].length }}

Schedule List {{ selectedScheduleDateStr || 'Select Date' }}

Select a date to view classes.

{{ sch.timeString }}
{{ sch.bookedCount }}/{{ sch.maxSlots }} Booked Booked

{{ sch.className }}

{{ sch.coaches ? sch.coaches.join(', ') : 'Coach TBA' }}

{{ tcSelectedMember.fullname }}

{{ tcSelectedMember.id }}

Current Weight

{{ tcCurrentWeight }} kg

PERSONAL BEST

Belum ada rekor balapan.

{{ score.date }}

{{ score.raceName }}

{{ score.time }}

TRAINING

{{ race.name }}

{{ race.description }}

Belum ada riwayat latihan.

{{ new Date(log.date).getDate() }} {{ new Date(log.date).toLocaleString('id-ID', { month: 'short', year: 'numeric' }) }}

{{ log.wod_name }}

RPE: {{ log.rpe }}/10 {{ log.duration }} Mnt

Coach: {{ log.coach_name || 'Admin' }}

Belum ada riwayat komposisi tubuh.

Tanggal Weight Fat % Muscle View
{{ new Date(bc.date).toLocaleDateString('id-ID', { day: 'numeric', month: 'short', year: 'numeric' }) }} {{ bc.weight }} {{ bc.fat }} {{ bc.muscle }}

Belum ada catatan Personal Record (PR).

Tanggal Total Time 1km Run View
{{ new Date(pr.date).toLocaleDateString('id-ID', { day: 'numeric', month: 'short', year: 'numeric' }) }} {{ pr.total_time || '-' }} {{ getPrValue(pr.records, '1km Run') }}

TOP CHAMPIONS

Earn points by completing daily missions & classes.

Calculating Points...

2

{{ sortedMemberPoints[1].fullname }}

Runner Up

{{ sortedMemberPoints[1].points }} PTS
1

{{ sortedMemberPoints[0].fullname }}

The Champion

{{ sortedMemberPoints[0].points }} TOTAL POINTS
3

{{ sortedMemberPoints[2].fullname }}

3rd Place

{{ sortedMemberPoints[2].points }} PTS

Other Warriors

#{{ idx + 4 }}
{{ mem.fullname }}

{{ mem.id }}

{{ mem.points }} Points

Leaderboard data is empty.

Loading Warriors Data...

{{ board.raceName }}

2

{{ board.top3[1].nickname }}

{{ board.top3[1].time }}

1

{{ board.top3[0].nickname }}

{{ board.top3[0].time }}

3

{{ board.top3[2].nickname }}

{{ board.top3[2].time }}

MY MILES

Total Miles Balance

{{ (currentMemberDetails?.miles || 0).toLocaleString() }}

Transaction History

Belum ada riwayat Miles. Transaksi di POS untuk mulai mengumpulkan!

{{ new Date(log.created_at).toLocaleString('id-ID') }}

{{ log.reference }}

{{ log.type === 'Earn' ? '+' : '-' }}{{ log.amount }}

{{ log.type }}

MILES REDEEM SHOP

Your Available Miles

{{ (currentMemberDetails?.miles || 0).toLocaleString() }}

Miles Item

{{ vcr.name }}

{{ vcr.price.toLocaleString() }}
Belum ada produk yang bisa ditukar dengan Miles.

Report Miles

Pantau total saldo Miles seluruh member sistem.

Total KPI Miles Tersebar (Seluruh Member)

{{ totalMilesSystem.toLocaleString() }} Miles

Rank Nama Customer WhatsApp Total Saldo Miles Detail
Data tidak ditemukan.
#{{ idx + 1 }} {{ mem.fullname }} {{ mem.whatsapp }} {{ (Number(mem.miles) || 0).toLocaleString() }}

*Menampilkan Top 20 Member berdasarkan Saldo Miles.

Miles History

Customer: {{ selectedMilesMember.fullname }} | WA: {{ selectedMilesMember.whatsapp }}

Tanggal Waktu Keterangan (Ref) Tipe Jumlah Miles Action
Belum ada histori transaksi Miles.
{{ new Date(log.created_at).toLocaleString('id-ID') }} {{ log.reference }} {{ log.type }} {{ log.type === 'Earn' ? '+' : '-' }}{{ log.amount }} -
Total Saldo Miles Saat Ini: {{ (Number(selectedMilesMember.miles) || 0).toLocaleString() }}

MY PROFILE

{{ currentUser?.role || 'Member' }}

{{ currentMemberDetails?.nickname || currentUser?.name }}

{{ currentUser?.id }}

Founder 100th Inactive

Points

{{ (memberPointsMap && memberPointsMap[currentUser?.id]) ? memberPointsMap[currentUser?.id] : 0 }}

Gender

{{ currentMemberDetails?.gender || '-' }}

Active Bundle

{{ currentUser?.package || 'No Active Bundle' }}

Status

🟡 Pending 🔴 Inactive 🟢 Active

Expires On

Not Activated Yet

{{ formatExpiryDate(currentUser?.expiry) }}

My Vouchers

You have no active vouchers.
Buy a bundle to get started!

{{ item.voucher_category }}

{{ item.voucher_name }}

{{ item.expiry_date ? 'Exp: ' + formatExpiryDate(item.expiry_date) : 'Abadi / No Expiry' }}

{{ item.qty }} LEFT

Display Profile Private

Nick Name {{ currentMemberDetails?.nickname || 'Belum diatur' }}
Password Web {{ currentMemberDetails?.password ? '••••••••' : 'Default (4 Digit WA)' }}
Birth Date {{ currentMemberDetails?.dob ? new Date(currentMemberDetails.dob).toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric' }) : '-' }}
Nick Name
Update Password
Birth Date (Bawaan Sistem) {{ currentMemberDetails?.dob ? new Date(currentMemberDetails.dob).toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric' }) : '-' }}

Voucher Activity Logs

Date Voucher Type Ref
Belum ada riwayat aktivitas voucher.
{{ log.date }} {{ log.voucherName }} +{{ log.qty }} -{{ log.qty }} {{ log.reference }}

TRAINING CARD

Pilih member untuk mencatat atau melihat progres latihan mereka.

{{ mem.fullname }}

{{ mem.id }}

{{ mem.activePackage !== '-' ? 'Active' : 'Inactive' }}

Member tidak ditemukan.

Athlete Profile

{{ tcSelectedMember.fullname }}

{{ tcSelectedMember.id }} {{ tcSelectedMember.gender || '-' }}

Current Weight

{{ tcCurrentWeight }} kg

PERSONAL BEST

Top Records

Atlet ini belum memiliki catatan waktu (Personal Best).

{{ score.date }} | {{ score.timestamp }}

{{ score.raceName }}

Fastest Time

{{ score.time }}

LOG LATIHAN

{{ tcSelectedMember.fullname }}

Belum ada riwayat latihan.
Klik "Add Log" untuk mencatat sesi latihan.

{{ new Date(log.date).getDate() }} {{ new Date(log.date).toLocaleString('id-ID', { month: 'short', year: 'numeric' }) }}

{{ log.wod_name }}

RPE: {{ log.rpe }}/10

Coach: {{ log.coach_name || 'Admin' }}

{{ log.details || 'Tidak ada catatan spesifik.' }}

{{ log.duration }} Menit

BODY COMPOSITION

{{ tcSelectedMember.fullname }}

Belum ada riwayat komposisi tubuh.
Masukkan hasil InBody pertama atlet.

Tanggal Pengukuran Weight (Kg) Body Fat (%) Muscle Mass (Kg) Resting HR (BPM) Action
{{ new Date(bc.date).toLocaleDateString('id-ID', { weekday: 'short', day: 'numeric', month: 'long', year: 'numeric' }) }} {{ bc.weight }} {{ bc.fat }} % {{ bc.muscle }} {{ bc.rhr || '-' }}

{{ selectedLead.fullname }}

{{ selectedLead.location }}

{{ selectedLead.experience }}

WhatsApp

{{ selectedLead.whatsapp }}

Chat

Email

{{ selectedLead.email }}

Tanggal Daftar

{{ new Date(selectedLead.timestamp).toLocaleString('id-ID') }}

Status Saat Ini

{{ selectedLead.status }}

Delegasi Sales

Ubah Status / Tindakan

Activity Logs

Saat ini ditugaskan (assigned) ke: {{ selectedLead.assignedTo }}
Aktivitas terakhir (Update/Assign) oleh {{ selectedLead.updatedBy }} pada {{ new Date(selectedLead.updatedAt).toLocaleString('id-ID') }}

PAYMENT SUCCESS

Transaksi {{ posCompletedTransaction.customerName }} berhasil.

Total Tagihan Rp {{ posCompletedTransaction.total.toLocaleString() }}
Metode Bayar {{ posCompletedTransaction.paymentMethod }}

Pilih Dokumen Cetak:

{{ new Date(selectedTcBodyComp.date).toLocaleDateString('id-ID', { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' }) }}

BODY COMPOSITION

Weight

{{ selectedTcBodyComp.weight }}Kg

Body Fat

{{ selectedTcBodyComp.fat }}%

Muscle Mass

{{ selectedTcBodyComp.muscle }}Kg

Resting HR

{{ selectedTcBodyComp.rhr || '-' }}BPM

HYROX PROGRESS

{{ tcSelectedMember.fullname }}

Belum ada catatan Personal Record (PR).
Klik "Add PR" untuk mencatat waktu Hyrox.

Tanggal Uji Total Time 1km Run 1000m Ski 1000m Row Action
{{ new Date(pr.date).toLocaleDateString('id-ID', { day: 'numeric', month: 'short', year: 'numeric' }) }} {{ pr.total_time || '-' }} {{ getPrValue(pr.records, '1km Run') }} {{ getPrValue(pr.records, '1000m SkiErg') }} {{ getPrValue(pr.records, '1000m Row') }}

MANAGE KEY POINT

Atur Stasiun Log Latihan & Kategori Hyrox PR

Template Log Latihan (WOD)

Belum ada item. Silakan tambah.

Template Hyrox PR

Kategori kosong.

BODY COMPOSITION

Athlete: {{ tcSelectedMember.fullname }}

SALES PRESENTATION

Belum ada slide presentasi. Silakan upload di menu Catalog Setting.

Catalog Setting

Upload Slide PPT

Existing Slides

Belum ada slide terupload.
{{ item.category }}

User Management

Username Full Name Role Action
User tidak ditemukan.
{{ user.username }} {{ user.fullname }} {{ user.role }}

User Logs

Riwayat aktivitas administrator dan staff.

-
Waktu Username Aktivitas Detail Keterangan
Data log tidak ditemukan pada periode ini.
{{ log.time }} {{ log.username }} {{ log.action }} {{ log.details }}
Showing page {{ logCurrentPage }} of {{ logTotalPages }}

Product Management

{{ cat }}s

{{ prod.name }}

Rp {{ prod.price.toLocaleString() }}

{{ prod.duration }}
{{ prod.time }}

{{ prod.description }}

Bundle Packages

{{ bnd.category }}
{{ bnd.targetMember === 'non Founder 100' ? 'Non Founder' : (bnd.targetMember || 'All Member') }}

{{ bnd.name }}

Rp {{ bnd.price.toLocaleString() }}
{{ bnd.periodDays }} Days Validity

Bundle Includes:

  • {{ item.name }} x{{ item.qty }}
{{ bnd.id }}

{{ bundleForm.id ? 'Edit Bundle' : 'Create New Bundle' }}

Belum ada voucher yang dimasukkan.
{{ item.name }}
x{{ item.qty }}

Voucher Management

{{ vcr.category }} PUBLIC
HIDDEN

{{ vcr.name }}

{{ vcr.price === 0 ? 'FREE' : 'Rp ' + vcr.price.toLocaleString() }}

{{ vcr.id }}

POS

{{ posCustomer.fullname }}
{{ posCustomer.activePackage }} | Exp: {{ formatExpiryDate(posCustomer.expiry) }}
GUEST
{{ getMemberTitle(posCustomer.id) }}

COURT 1

BOOKED
{{ prod.time }}

Court 1

Rp {{ prod.price.toLocaleString() }}

No available slots (Closed/Finished).

COURT 2

BOOKED
{{ prod.time }}

Court 2

Rp {{ prod.price.toLocaleString() }}

No available slots (Closed/Finished).
{{ prod.category }}
{{ prod.targetMember === 'non Founder 100' ? 'Non Founder' : (prod.targetMember || 'All Member') }}

{{ prod.name }}

Rp {{ prod.price.toLocaleString() }}

{{ cart.length }}
Keranjang Rp {{ finalTotal.toLocaleString() }}
Lanjut
Current Order
Keranjang belanja kosong.

{{ item.name }}

Rp {{ (item.price * (item.qty || 1)).toLocaleString() }}

{{ item.qty || 1 }}

Apply Discount

*Tidak ada voucher diskon yang tersedia.

SubtotalRp {{ (cartTotal || 0).toLocaleString() }}
Discount (Ref + Promo)- Rp {{ totalCombinedDiscount.toLocaleString() }}
TotalRp {{ finalTotal.toLocaleString() }}
Sales Ref {{ selectedSalesmanName }}
{{ pm }}
Logo
{{ currentUser ? currentUser.name.split(' ')[0] : 'Member' }}

Member Registration

Profile Photo

Upload ID Card *

*Pastikan kursor aktif di sini saat scan kartu.

+62

{{ hyroxClassForm.id ? 'Edit Class' : 'Create Class' }}

Existing
New
{{ user.fullname }}
{{ vcr.name }}
Belum ada voucher kategori 'Class' di database.

*Jika tidak ada yang dicentang, SEMUA voucher Class bisa digunakan untuk kelas ini.

{{ padelFacilityForm.id ? 'Edit Facility' : 'Create Facility' }}

{{ missionForm.id ? 'Edit Mission' : 'Create Mission' }}

No tasks yet.
{{ idx + 1 }}.
* Total {{ missionForm.points }} poin akan diberikan jika semua task selesai.

{{ selectedScheduleDateStr }}

No mission scheduled.

{{ sch.missionTitle }}

{{ sch.points }} Points

{{ selectedScheduleDateStr }}

No classes scheduled yet.

{{ sch.className }}

{{ sch.bookedCount }}/{{ sch.maxSlots }} Booked
Coach: {{ sch.coaches && sch.coaches.length ? sch.coaches.join(', ') : 'TBA' }}
{{ slot }}

{{ sch.description || 'No description available.' }}

{{ selectedScheduleDateStr }}

Time
Court 1
Court 2
{{ slot.split(' - ')[0] }}
{{ getPadelSlotStatus('COURT 1', slot).label }} {{ getPadelSlotStatus('COURT 1', slot).sub }}
{{ getPadelSlotStatus('COURT 2', slot).label }} {{ getPadelSlotStatus('COURT 2', slot).sub }}

*Add new bookings via POS Menu

Add Schedule: {{ selectedScheduleDateStr }}

Class Name
{{ cls.name }}
:
:

Jadwal baru tidak boleh tumpang tindih (bentrok) dengan kelas lain yang sudah ada pada hari ini. Wajib memiliki jeda/istirahat minimal 30 menit antar kelas.

{{ scheduleForm.error }}

Transaction Details

EFFECTIVE DATE: HARI INI

Masa aktif dihitung otomatis dari tanggal transaksi hari ini.

✓ Diskon {{ referralDiscountValue }}% Berhasil Diterapkan!

Pilih Sales Referensi:

{{ sales.fullname }}

{{ isEditMode ? 'EDIT' : 'ADD' }} USER

Module Permissions

{{ group.label }}
{{ sub.label }}

*Superuser otomatis memiliki akses ke semua modul. Member memiliki dashboard terpisah.

{{ productForm.id ? 'Edit Product' : 'New Product' }}

Format harus persis seperti "06:00 - 07:00" agar validasi jalan.

Pilih Cabang / Lokasi

Pilih Jenis Transaksi

OR

REDEEM SYSTEM

Scan RFID atau masukkan Nomor WhatsApp.

{{ redeemMember.fullname }}

{{ redeemMember.whatsapp }} | {{ redeemMember.id }}

Voucher Tersedia

Member ini tidak memiliki voucher yang bisa ditukar.

{{ inv.voucher_name }}

{{ inv.voucher_category }}

{{ inv.qty }}

Daftar Penukaran

Klik voucher di sebelah kiri untuk menambah.

{{ item.voucherName }}
{{ item.qty }}

Select Member

{{ m.fullname }}{{ m.activePackage !== '-' ? 'Active' : 'No Pack' }}

{{ voucherForm.id ? 'Edit Voucher' : 'Create Voucher' }}

Konfigurasi Perpanjangan Masa Aktif

Expired date member akan bertambah sebanyak hari ini dari tanggal expired yang sedang berjalan.

*Voucher Add Ons ini akan muncul di POS jika SALAH SATU (OR) dari bundle di atas dimasukkan ke keranjang.

Set 0 for Free vouchers.

Berapa banyak kuota yang masuk ke dompet member. (Default: 1)

%

Harga normal Rp {{ voucherForm.price.toLocaleString() }} akan didiskon otomatis di kasir.

EDIT TRANSACTION

*Perhatian: Mengubah tanggal ini akan otomatis mengubah masa aktif member dan semua sisa voucher di dompetnya mengikuti tanggal ini.

{{ viewMemberData.fullname }}

{{ viewMemberData.id }}

Active Bundle: {{ viewMemberData.active_package || viewMemberData.activePackage || 'No Active Package' }} 🟡 Pending Activation 🔴 Expired 🟢 Active

Existing Vouchers

Member ini tidak memiliki voucher aktif.

{{ item.voucher_category }}

{{ item.voucher_name }}

{{ item.expiry_date ? 'Exp: ' + formatExpiryDate(item.expiry_date) : 'No Expiry' }}

{{ item.qty }}

Purchase History

Date Items Method Total
Belum ada riwayat transaksi.
{{ tx.date }} {{ tx.items }} {{ tx.payment }} Rp {{ tx.total.toLocaleString() }}

Voucher Activity Logs

Date & Time Voucher Type Reference
Belum ada riwayat aktivitas voucher.
{{ log.date }} {{ log.voucherName }} +{{ log.qty }} -{{ log.qty }} {{ log.reference }}

Account Frozen

Access Restricted

Your account has been frozen due to 3 consecutive no-shows during your active membership period.

You have missed the following booked classes without checking in, which violates our attendance policy.

Last No-Show

{{ noShowStatus.lastNoShowClass || '-' }}

{{ noShowStatus.lastNoShowDate || '-' }}

What to do next

Please visit our front desk / cashier to reactivate your account. A penalty fee may apply.

You cannot close this notice while your account is frozen.

No-Show Warning

Attendance Alert

Hi! We noticed you had a no-show on one of your booked classes:

Last No-Show

{{ noShowStatus.lastNoShowClass || '-' }}

{{ noShowStatus.lastNoShowDate || '-' }}

This is your 1st no-show during your current membership period.

⚠️ 1 / 3 No-Shows

Your account will be frozen after 3 no-shows.

This is your 2nd no-show during your current membership period.

⚠️ 2 / 3 No-Shows

⚡ ONE MORE NO-SHOW AND YOUR ACCOUNT WILL BE FROZEN!

If you believe this is an error, please contact our front desk.

Cancellation Not Allowed

You can only cancel a booking more than 24 hours before the class starts.

Booked Class

{{ selectedCancelBooking ? selectedCancelBooking.className : '' }}

{{ selectedCancelBooking ? selectedCancelBooking.date + ' | ' + selectedCancelBooking.time : '' }}

If you need assistance, please contact our front desk.

Cancel Booking

This action cannot be undone

Class {{ selectedCancelBooking ? selectedCancelBooking.className : '' }}
Coach {{ selectedCancelBooking ? selectedCancelBooking.coachName : '' }}
Date {{ selectedCancelBooking ? selectedCancelBooking.date : '' }}
Time {{ selectedCancelBooking ? selectedCancelBooking.time : '' }}

Your voucher/credit will be refunded upon cancellation.