Overview
Cash Balance —
Net Margin 36.4%
🔔
🔍
รอ sync...
🔐
Login
การแจ้งเตือน (3 ใหม่)
⚠️ AP Overdue — ฿840,000 due May 21
Thai Steel Import · PO-2026-0198
📋 AR aging >30 days — 3 invoices
฿1,200,000 · requires follow-up
✅ Sheets sync complete
342 rows updated · 0 errors
📅 เลือกช่วงวันที่
เฉพาะปี
วันเริ่มต้น
วันสิ้นสุด
📈 Revenue MTD · รายได้
—
↑ 12.4%vs ฿16,300,000 last month
💚 Net Margin · กำไรสุทธิ
—
On trackTarget 35% · Profit ฿6,700,000
⏳ AR Outstanding · ลูกหนี้
—
3 overdue>30d: ฿1,200,000 · 8 invoices
📤 AP Payable · เจ้าหนี้
—
Due 5dNext: May 21 · ฿840,000
💳 Cash / OD · เงินสด
—
SafeOD ฿10,000,000 · Used 8%
Revenue vs Expenses · รายได้ vs ค่าใช้จ่าย
6-month YTD comparison · May 2026
Revenue ฿18,300,000
Expenses ฿11,600,000
Net Profit ฿6,700,000
Cash Flow · กระแสเงินสด
Inflow vs Outflow MTD
61%
Inflow ratio
Inflow ↑
฿12,400,000
Outflow ↓
฿7,600,000
Recent Transactions · รายการล่าสุด
Synced from Google Sheets · 8s ago
| Invoice # | Customer | วันที่ | จำนวน | สถานะ |
|---|---|---|---|---|
| กำลังโหลดจาก Google Sheets... | ||||
Alerts · การแจ้งเตือน
3 urgent
AP Overdue — ฿840,000 due May 21
Thai Steel Import · PO-2026-0198
2h
AR aging >30 days — 3 invoices
฿1,200,000 · requires follow-up
4h
Sheets sync complete
342 rows updated · 0 errors
8s
Budget Progress · งบประมาณ
Operations68%
Marketing91%
Gross Profit82%
Payroll74%
📈 รายรับรวม YTD ↗ คลิก
—
↑ 9.2%
🧾 Invoice เดือนนี้ ↗ คลิก
—
3 pending
✅ Paid (30 วัน) ↗ คลิก
—
19 inv
⚠️ Overdue ↗ คลิก
—
5 inv
🏆 Top Customer ↗ คลิก
—
฿8,200,000 YTD
📅 เดือน:
หรือ
📆 ตั้งแต่:
ถึง:
📋 รายการ —
💰 ยอดรวม —
✅ ชำระแล้ว —
⏳ รอชำระ —
⚠️ เกินกำหนด —
| วันที่เอกสาร | เลขที่เอกสาร | อ้างอิง | ลูกค้า | Class | สถานะ | มูลค่า | VAT 7% | สุทธิ | เครดิต | ประมาณรับเงิน | วันรับเงินจริง | OD/Days | แก้ไข |
|---|
แสดง 6 จาก 6 รายการ
⏳ AR ทั้งหมด ↗ คลิก
—
5 overdue
📤 AP ค้างจ่าย ↗ คลิก
—
3 due soon
🧾 VAT ค้างส่ง ↗ คลิก
—
ส่งวันที่ 7 มิ.ย.
🏢 Fixed Cost/เดือน ↗ คลิก
—
— รายการ
รายจ่ายแยกตามหมวด · Expense Breakdown — MTD
| หมวด | จำนวน (฿) | % ของรายจ่าย | สัดส่วน |
|---|---|---|---|
| กำลังโหลดข้อมูล… | |||
| รวมรายจ่าย | — | 100% | |
* Fixed cost เดือนนี้ ไม่รวม COGS และ variable cost จาก operations
เงินพอไหม? · Cash Sufficiency
—
—
รอข้อมูลจาก Google Sheet
💵 Cash in Bank
—
🏦 OD วงเงินคงเหลือ
—
📬 AR คาดรับเร็วๆ นี้
—
📤 AP ต้องจ่ายเร็วๆ นี้
—
P&L SUMMARY · พ.ค. 2026
Revenue—
COGS + Variable—
Fixed Cost—
Net Profit—
Net Margin—
รายรับแยกตาม Customer — พ.ค. 2026
🏪 Lotus's
฿9.8M
53.5% of revenue
🛒 Foodland
฿4.2M
22.9% of revenue
🏬 Big C
฿3.1M
16.9% of revenue
🏪 อื่นๆ
฿1,200,000
6.7% of revenue
📋 PO เดือนนี้ ↗ คลิก
—
—
⏸ Pending Approve ↗ คลิก
—
รอ CFO
TH DOM ในประเทศ ↗ คลิก
—
—
🌏 INTL ต่างประเทศ ↗ คลิก
—
—
🚢 Import Duty MTD ↗ คลิก
—
—
| PO # | Supplier | ประเภท | วันที่ | จำนวน | สถานะ | วิธีชำระ |
|---|---|---|---|---|---|---|
| กำลังโหลด... | ||||||
💳 Net Cash Position ↗ คลิก
—
Live
🏦 OD Available ↗ คลิก
—
—% used
📊 Gross Margin ↗ คลิก
—
vs Budget 35%
⚡ Risk Score ↗ คลิก
62/100
Moderate
📅 DSO (วัน) ↗ คลิก
—
Target 30 วัน
KBank — OD Credit Line
—
กำลังโหลด…
ดอกเบี้ย 6.5% p.a.—
ดอกเบี้ยเดือนนี้: —
Bank Accounts
| บัญชี | ธนาคาร | ยอด |
|---|---|---|
| Current Account | KBank | — |
| Savings | BBL | — |
| OD (ใช้งาน) | KBank | — |
Users ทั้งหมด
8
3 roles
Active Sessions
2
Online now
Last Sync
2 นาทีที่แล้ว
Auto ON
DB Size (Neon)
84 MB
ap-southeast-1
จัดการ Users & Roles — เฉพาะ ADMIN / SUPER_ADMIN เท่านั้น
| ชื่อ / User | Role (admin เปลี่ยนได้) | Last Active | Status | Action | |
|---|---|---|---|---|---|
NK Nack K. service.tech |
service.tech@peothailand.com | ● ออนไลน์ | Active |
💡 Role Management: เปลี่ยน role ใน dropdown → permissions ของ user นั้นเปลี่ยนทันที · ใน production จะมี API call จริง
🔍
Data Audit & Transparency
เอกสารแหล่งข้อมูลและสูตรคำนวณทุก Module — สำหรับผู้บริหารและ Auditor
✅ 5 Google Sheet Tabs
🔄 Auto-sync 5 นาที
📊 6 Modules
⚡ Real-time Calculation
Data Flow Architecture
Google Sheets
→
5 Sheet Tabs (AR, PO, AP, FIX, CASH)
SheetProxy.gs
→
GAS Web App · แปลง rows → JSON + คำนวณ KPI
Dashboard
→
fetch ?action=all → _cache.{kpi,ar,po,ap,fix,cash}
UI Render
→
updateXxx() functions ทุก module
Sync Configuration
| Auto-sync interval | 5 นาที (300,000 ms) |
| Timeout | 20 วินาที (AbortController) |
| Auto-retry | สูงสุด 3 ครั้ง (5s backoff) |
| Offline cache | localStorage: pt_kpi_cache |
| GAS URL storage | localStorage: pt_gas_url |
| Cache scope | ⚠ kpi เท่านั้น (ไม่ cache raw rows) |
Google Sheet Tabs → JavaScript Field Mapping
| Sheet Tab | _cache Variable | Key Columns (Thai → JS Field) | Used By |
|---|---|---|---|
| TRC-R3สรุป_ALL | _cache.ar | เลขที่เอกสาร→docNo · ลูกค้า→customer · สุทธิ→net · สถานะ→status · OD→od · VAT→vat · เครดิต→credit | Overview, Finance, Sales, Revenue KPIs |
| TRC-PO3รายละเอียด | _cache.po | เลขที่→docNo · ผู้ขาย→supplier · สุทธิ→net · Currency→currency · Rate→rate · Import Duty→importDuty · ประเภท_PO→type | Purchasing (DOM/INTL/Vendors) |
| TRC_F4จ่าย | _cache.ap | วันที่จ่าย→payDate · ผู้ขาย→vendor · สุทธิ→net · สถานะ→status · หัก ณ ที่จ่าย→wht · ประเภทคู่ค้า→tradeType | Finance AP, Expense Breakdown, AP KPIs |
| การจ่าย FIX | _cache.fix | รายการ→name · จำนวน→amount · วันครบกำหนด→dueDate · หมวด→category · ความถี่→freq | Finance Fixed Expenses, Expense Breakdown |
| CASH_Bank | _cache.cash | ธนาคาร→bank · ประเภท→type (OD/CURRENT/SAVINGS) · วงเงิน_OD→limit · ยอดคงเหลือ→balance · OD_ใช้ไป→odUsed | Management Bank/OD, Cash KPIs |
KPI Aggregation Formulas (คำนวณใน SheetProxy.gs)
| KPI Field | สูตร | หมายเหตุ |
|---|---|---|
| revenueMTD | SUM(ar.net) WHERE date เดือนปัจจุบัน | ar = TRC-R3สรุป_ALL |
| revenueYTD | SUM(ar.net) ทุก row ใน sheet | ไม่กรองปี |
| arOutstanding | SUM(ar.net) WHERE status ≠ Paid/ชำระแล้ว/ยกเลิก | ลูกหนี้ค้างทั้งหมด |
| arOverdueAmount | SUM(ar.net) WHERE od > 0 | od = วันเกินกำหนด |
| apPending | SUM(ap.net || ap.total) ทุก row | ap = TRC_F4จ่าย |
| fixedCostMTD | SUM(fix.amount) ทุก row | fix = การจ่าย FIX |
| expensesMTD | apPending + fixedCostMTD | ⚠ ใช้ยอด all-time ไม่ใช่แค่เดือนนี้ |
| netMargin | (revenueYTD − expensesMTD) / revenueYTD × 100 | ⚠ YTD rev / all-time exp อาจ skew |
| dso | AVG(ar.od) WHERE od > 0 | เป้า < 30 วัน |
| vatPayable | SUM(ar.vat) WHERE date เดือนปัจจุบัน | VAT จาก Invoice |
| whtPayable | SUM(ap.wht) | หัก ณ ที่จ่ายทั้งหมดใน AP |
| odAvailable | SUM(cash.limit) − SUM(cash.odUsed) | CASH_Bank type=OD rows |
| importDutyMTD / citPayable | Hardcoded = 0 | ⛔ ยังไม่ implement |