ระบบถูกระงับการใช้งาน

Serial Number ไม่ถูกต้อง หรือหมดอายุการใช้งานแล้ว กรุณากรอก S/N ใหม่เพื่อต่ออายุ

Copyright © V-Pro Badminton | {{ appVersion }}

ระบบรอการต่ออายุ

กรุณาแจ้ง Owner เพื่อดำเนินการต่ออายุระบบ

{{ db.settings.posName }}

{{ appVersion }}

Copyright © V-Pro Badminton. All Rights Reserved.

LIVE BOARD

{{ currentTimeLive }}

WAITING FOR SESSION

Next Up

คิวเตรียมตัว {{ idx + 1 }}

{{ p.name }}

Active Courts

COURT {{ c.id }}

Playing
{{ p.name }}
Available

Waitlist

{{ waitingPlayers.length }}
ไม่มีคนรอคิวในขณะนี้
{{ p.name }} Linked

{{ getTabTitle() }}

ยังไม่เปิดก๊วน
{{ toastMsg }}

จัดการรายชื่อเช็คอิน

ขาประจำ

{{ regularMembers.length }} คน
ไม่มีรายชื่อขาประจำ (หรือค้นหาไม่พบ)
{{ m.name }}

ขาจร (แขก/มาไม่บ่อย)

{{ guestMembers.length }} คน
ไม่มีรายชื่อขาจร (หรือค้นหาไม่พบ)
{{ m.name }}

ยังไม่ได้เปิดก๊วน กรุณาไปหน้าเช็คชื่อ

ไม่มีข้อมูลก๊วน

ลูกแบดคงเหลือในคลัง

{{ db.inventory?.stock || 0 }} ลูก

คิดเป็น {{ Math.floor((db.inventory?.stock || 0) / 12) }} หลอด กับอีก {{ (db.inventory?.stock || 0) % 12 }} ลูก

รับของเข้าสต๊อก

ประวัติเข้า-ออก

วันที่In/Outจำนวน(ลูก)หมายเหตุ
ยังไม่มีประวัติ
{{ log.date }} {{ log.type.toUpperCase() }} {{ log.type === 'in' ? '+' : '-' }}{{ log.qty }} {{ log.note }}

สรุปยอดรับเข้าสต๊อก (สำหรับเคลียร์บิล)

เลือกรูปแบบการดูยอด:
{{ invSummaryFilter === 'daily' ? 'วันที่' : 'ช่วงเวลา' }} ยอดรับเข้า (ลูก) คิดเป็นหลอด
ไม่มีประวัติการรับเข้าลูกแบด
{{ g.label }} {{ g.qty.toLocaleString() }} {{ Math.floor(g.qty / 12) }} หลอด กะอีก {{ g.qty % 12 }} ลูก

ประวัติแมตช์ย้อนหลัง

ไม่มีประวัติการลงสนาม
แมตช์ที่ {{ displayMatchHistory.length - idx }} คอร์ด {{ match.courtId }} {{ match.time }}
{{ pn }}
ลูก: {{ match.shuttles && match.shuttles.length > 0 ? match.shuttles.join(', ') : '-' }}

ประวัติการตีของ: {{ viewingPlayerHistoryName }}

ลงไปทั้งหมด: {{ playerHistoryMatches.length }} แมตช์ ใช้ลูกรวม: {{ playerHistoryTotalShuttles }} ลูก
ไม่พบประวัติการลงสนาม
คอร์ด {{ m.courtId }} {{ m.time }} ลูก: {{ m.shuttles && m.shuttles.length > 0 ? m.shuttles.join(', ') : '-' }}

เพื่อนร่วมก๊วนในแมตช์นี้:

{{ p }} ไม่มีเพื่อนร่วมก๊วน

สรุปบัญชีหุ้นส่วน

ยอดขายรวม

฿{{ Math.round(pnlSummary.rev).toLocaleString() }}

ต้นทุนรวม

฿{{ Math.round(pnlSummary.cost).toLocaleString() }}

กำไรสุทธิ

฿{{ Math.round(pnlSummary.profit).toLocaleString() }}

{{ reportFilter === 'daily' ? 'วันที่' : 'ช่วงเวลา' }} รายละเอียด ยอดเก็บ (Rev) ต้นทุน (Cost) กำไร (Profit)
ไม่มีข้อมูล
{{ h.dateStr }} {{ Math.round(h.revenue || 0).toLocaleString() }} {{ Math.round(h.cost || 0).toLocaleString() }} {{ Math.round(h.profit || 0).toLocaleString() }}

สรุปบัญชี: {{ pastMatchView.dateStr }}

1. ชำแหละกำไรขั้นต้น (Gross Profit)

บัญชีค่าสนาม
รายรับค่าสนาม ({{ pastMatchView.playersCount }} คน) ฿{{ Math.round(pastMatchView.courtRev ?? (pastMatchView.playersCount * db.settings.chargeCourtFlat)).toLocaleString() }}
ต้นทุนค่าเช่าคอร์ด ({{ Number(pastMatchView.courtHours||0).toFixed(1) }} ชม.) - ฿{{ Math.round(pastMatchView.courtCost ?? (pastMatchView.courtHours * db.settings.costCourtHr)).toLocaleString() }}
กำไรจากสนาม ฿{{ Math.round((pastMatchView.courtRev ?? (pastMatchView.playersCount * db.settings.chargeCourtFlat)) - (pastMatchView.courtCost ?? (pastMatchView.courtHours * db.settings.costCourtHr))).toLocaleString() }}
บัญชีค่าลูกแบด
รายรับจากลูก ฿{{ Math.round(pastMatchView.shuttleRev ?? (pastMatchView.revenue - (pastMatchView.playersCount * db.settings.chargeCourtFlat))).toLocaleString() }}
ต้นทุนลูกแบด ({{ pastMatchView.shuttlesUsed }} ลูก) - ฿{{ Math.round(pastMatchView.shuttleCost ?? (pastMatchView.shuttlesUsed * db.settings.costShuttle)).toLocaleString() }}
กำไรจากลูก ฿{{ Math.round((pastMatchView.shuttleRev ?? (pastMatchView.revenue - (pastMatchView.playersCount * db.settings.chargeCourtFlat))) - (pastMatchView.shuttleCost ?? (pastMatchView.shuttlesUsed * db.settings.costShuttle))).toLocaleString() }}

2. สรุปช่องทางรับเงิน

  • ไม่มีข้อมูลแยกช่องทาง
  • {{ method }} ฿{{ Math.round(amount).toLocaleString() }}

3. สถานะลูกหนี้ & จ่ายเงิน (ขุนทอง)

ไม่มีข้อมูลรายบุคคลในรอบนี้

{{ p.name }} ({{ p.games }} ลูก)

{{ p.paymentMethod }}

฿{{ Math.round(p.paidAmount) }}
✓ เคลียร์แล้ว
แก้ไขบิล: {{ p.name }}

ตั้งค่าระบบ

License (การต่ออายุใช้งาน) {{ isLicenseValid ? 'ปกติ' : 'หมดอายุ' }}

สถานะ: {{ isLicenseValid ? 'ใช้งานได้' : 'หมดอายุ / ระงับการใช้งาน' }}

หมดอายุวันที่: {{ getLicenseExpiryDate }}

1. ธีมและโลโก้

2. ราคา & ต้นทุน

3. จัดการพนักงาน *Owner เท่านั้น

ชื่อPINตำแหน่งลบ
{{ s.name }}

4. สิทธิ์การใช้งาน (Permissions) *Owner

{{ r.name }}

5. จัดการฐานข้อมูล (Database)