01 · 2026

ระบบใบเสนอราคา ใบแจ้งหนี้ และใบเสร็จQuotations, Invoices & Receipts

ระบบเอกสารขายสำหรับธุรกิจขนาดเล็ก — เสนอราคา → แปลงเป็นใบแจ้งหนี้ → รับชำระ → ออกใบเสร็จ คิด VAT 7% และหัก ณ ที่จ่าย ติดตามลูกหนี้ พิมพ์ PDF พร้อม QRSales paperwork for small businesses — quote → invoice → payment → receipt, with 7% VAT, withholding tax, receivables aging and printable PDFs with PromptPay QR.

tools/billing.ts
// VAT 7% แยกนอก / รวมใน — หัก ณ ที่จ่ายคิดจากยอดก่อน VATif (vatMode === "exclusive") {  vat = Math.round((base * 7) / 100);  total = base + vat;} else if (vatMode === "inclusive") {  base = Math.round((after * 100) / 107);  vat = after - base;}const wht = Math.round((base * whtRate) / 100);
01TESTS12

ปัญหา

ฟรีแลนซ์ ร้านรับงาน และ SME ส่วนใหญ่ทำใบเสนอราคาใน Word/Excel ทีละใบ — เลขที่เอกสารซ้ำ คิด VAT กับหัก ณ ที่จ่ายผิด ลืมว่าลูกค้าไหนยังไม่จ่าย และต้องพิมพ์ข้อมูลเดิมซ้ำตั้งแต่ใบเสนอราคาจนถึงใบเสร็จ

ขั้นตอนที่ระบบรองรับ

  1. ใบเสนอราคา — เลือกลูกค้าเดิมหรือพิมพ์ลูกค้าใหม่ (บันทึกให้อัตโนมัติ) เลือกรายการจากสินค้า/บริการที่ตั้งไว้ ดูตัวอย่างเอกสารสดๆ ข้างๆ ขณะพิมพ์
  2. ติดตามสถานะ ร่าง → ส่งแล้ว → ลูกค้าตกลง / ไม่ผ่าน (และแจ้งเมื่อเลยวันยืนราคา)
  3. แปลงเป็นใบแจ้งหนี้ คลิกเดียว รายการ เงื่อนไข และลูกค้าตามมาครบ พร้อมอ้างอิงเลขที่ใบเสนอราคา
  4. รับชำระ ทั้งจ่ายเต็มหรือแบ่งจ่าย ระบบไม่ยอมให้รับเกินยอดค้าง และ ออกใบเสร็จให้อัตโนมัติ
  5. พิมพ์ / บันทึก PDF ได้ทุกใบ ใบแจ้งหนี้ที่ยังค้างมี QR พร้อมเพย์ตามยอดคงค้าง

จุดที่ตั้งใจทำให้ถูกต้อง

  • คำนวณเป็น สตางค์ ทั้งหมด รองรับ VAT แบบบวกเพิ่มและแบบราคารวม VAT
  • หัก ณ ที่จ่ายคิดจากมูลค่าก่อน VAT (1% / 2% / 3% / 5%) และแสดงยอดชำระสุทธิ
  • ใบเสร็จของการแบ่งจ่ายคำนวณย้อนกลับให้ยอดสุทธิ ตรงกับเงินที่รับจริงทุกสตางค์ (มี test วนตรวจหลายยอด × ทุกโหมดภาษี) ถ้าปัดเศษไม่ลงตัวจะแสดงบรรทัด "ปัดเศษ" ชัดเจน
  • เลขที่เอกสารรันอัตโนมัติ INV-202609-001 แยกประเภท เริ่มนับใหม่ทุกเดือน และกันเลขซ้ำ
  • เก็บข้อมูลลูกค้าเป็น snapshot ในเอกสาร — แก้ที่อยู่ลูกค้าภายหลังไม่ทำให้เอกสารเก่าเปลี่ยน
  • ตรวจเลขผู้เสียภาษี 13 หลักด้วย checksum
  • เอกสารที่ออกแล้วยกเลิกได้แต่ไม่ลบ (เลขที่ยังอยู่ ไม่นับยอด) ตามแนวทางที่นักบัญชีต้องการ

รายงาน

ยอดออกบิล / รับชำระ / ภาษีขาย รายเดือน กราฟ 6 เดือน อายุลูกหนี้ (ยังไม่ถึงกำหนด, 1–30, 31–60, 61–90, 90+ วัน) รายการที่ต้องตามเงิน ใบเสนอราคารอตอบ อัตราปิดการขาย ลูกค้าหลัก รายการเคลื่อนไหวรายลูกค้า และส่งออก CSV ให้นักบัญชี

ข้อมูล: ในเครื่อง หรือออนไลน์

  • ในเครื่อง (ค่าเริ่มต้น) — เก็บในเบราว์เซอร์ ไม่ต้องสมัคร ใช้ได้แม้ไม่มีเน็ต สำรอง/กู้คืนเป็นไฟล์ได้
  • ออนไลน์ — กด "ใช้ออนไลน์" เพื่อเก็บข้อมูลบน OTTO API (PostgreSQL) เปิดได้หลายเครื่อง ใช้ร่วมกับพนักงานในร้านได้ เลขที่เอกสารออกโดยเซิร์ฟเวอร์ ไม่ซ้ำแม้หลายคนออกพร้อมกัน และย้ายข้อมูลในเครื่องขึ้นไปได้ในคลิกเดียว — มีปุ่ม "ทดลองใช้ทันที" ไม่ต้องสมัคร

ทั้งสองโหมดใช้หน้าจอและ logic คำนวณชุดเดียวกัน · ระบบช่วยออกเอกสาร ไม่ใช่คำแนะนำทางภาษี

The problem

Freelancers, small agencies and SMEs usually build quotations one by one in Word or Excel. Numbers get duplicated, VAT and withholding tax get miscalculated, nobody remembers who hasn't paid, and the same details are retyped from quotation to invoice to receipt.

The flow

  1. Quotation — pick a saved customer or type a new one (saved automatically), add lines from your catalog, and watch a live preview of the document as you type
  2. Track status: draft → sent → accepted / declined (and see when a quote has expired)
  3. Convert to an invoice in one click — lines, terms and customer carry over, referencing the quote number
  4. Record payments, full or partial; overpaying is refused and a receipt is issued automatically
  5. Print or save any document as PDF; unpaid invoices carry a PromptPay QR for the outstanding balance

Getting it right

  • All money in satang, with both VAT-exclusive and VAT-inclusive pricing
  • Withholding tax is computed on the pre-VAT amount (1% / 2% / 3% / 5%) and the net payable is shown
  • Partial-payment receipts are back-calculated so the net matches the money received to the satang (tested across many amounts × every tax mode); when rounding can't land exactly, a visible "rounding" line makes up the difference
  • Automatic numbering like INV-202609-001, per type, restarting monthly, with duplicate checks
  • Customer details are snapshotted into each document, so editing a customer later never changes old paperwork
  • 13-digit tax IDs are checksum-validated
  • Issued documents can be voided but not deleted (the number stays, the amount is excluded), the way accountants expect

Reports

Monthly invoiced / collected / output VAT, a 6-month chart, receivables aging (current, 1–30, 31–60, 61–90, 90+ days), a follow-up list, quotes awaiting reply, win rate, top customers, per-customer statements and a CSV export for your accountant.

Data: on this device or online

  • This device (default) — stored in the browser, no sign-up, works offline, back up and restore as a file
  • Online — "Go online" keeps the data on the OTTO API (PostgreSQL): use it from any device and with your staff, document numbers are issued by the server and never collide, and local data moves up in one click — there's a "Try instantly" demo, no sign-up needed

Both modes share the same screens and the same calculation logic. This tool prepares documents; it isn't tax advice.