ไอเดีย #17: ระบบออกใบเสนอราคา/ใบแจ้งหนี้/ใบกำกับภาษี
ฟรีแลนซ์และบริษัทเล็กจำนวนมากยังออกใบเสนอราคาด้วยไฟล์ Word ที่ copy มาแก้ทีละใบ ผลคือเลขที่เอกสารกระโดดบ้าง ซ้ำบ้าง คำนวณ VAT ผิดไปหนึ่งสตางค์บ้าง พอถึงสิ้นเดือนนักบัญชีขอรายงานภาษีขาย ก็ต้องมานั่งไล่เปิดไฟล์ทีละใบ ระบบออกเอกสารตั้งแต่ใบเสนอราคา ใบแจ้งหนี้ ไปจนถึงใบกำกับภาษี ที่รันเลขให้อัตโนมัติและออกเป็น PDF ได้ทันที เป็นสิ่งที่ SME ต้องการจริงและยอมจ่ายเงินให้
ใครจะใช้
- ฝ่ายขาย/เจ้าของกิจการ — ออกใบเสนอราคา แปลงเป็นใบแจ้งหนี้เมื่อลูกค้าตกลง
- ฝ่ายบัญชี — ออกใบกำกับภาษี บันทึกการรับชำระ และดึงรายงาน
- ลูกค้า — ได้รับไฟล์ PDF ทางอีเมลหรือ LINE
ฟีเจอร์ขั้นต่ำ (MVP)
- ข้อมูลบริษัทผู้ขายและลูกค้า: ชื่อ ที่อยู่ เลขประจำตัวผู้เสียภาษี 13 หลัก และสาขา (สำนักงานใหญ่หรือเลขสาขา)
- ออกใบเสนอราคา แล้วแปลงเป็นใบแจ้งหนี้และใบกำกับภาษีได้โดยไม่ต้องคีย์ใหม่
- รันเลขที่เอกสารอัตโนมัติแยกตามประเภทและปี เช่น QT2569-0001, INV2569-0001 ห้ามซ้ำและห้ามข้าม
- คำนวณยอดรวม ส่วนลด VAT 7% รองรับทั้งราคาแยก VAT และราคารวม VAT แล้ว
- แสดงจำนวนเงินเป็นตัวอักษรภาษาไทย เช่น "หนึ่งพันเจ็ดสิบบาทถ้วน"
- สร้าง PDF ที่ฟอนต์ไทยแสดงถูกต้อง พร้อมสถานะเอกสาร ร่าง/ออกแล้ว/ชำระแล้ว/ยกเลิก
- ยกเลิกเอกสารด้วยการเปลี่ยนสถานะ ไม่ลบทิ้ง
ต่อยอดได้อีก
- ใบลดหนี้/ใบเพิ่มหนี้ อ้างอิงใบกำกับภาษีเดิม
- บันทึกภาษีหัก ณ ที่จ่ายที่ลูกค้าหักไว้ และแนบหนังสือรับรอง 50 ทวิ
- รายงานภาษีขายรายเดือนส่งออกเป็น Excel ให้นักบัญชี
- แนบ PromptPay QR ในใบแจ้งหนี้ และแจ้งเตือนเมื่อใกล้ครบกำหนดชำระ
โครงข้อมูลตั้งต้น
customers— id, name, tax_id, branch_code, address, emaildocuments— id, type (QT/INV/TAX), doc_no, doc_date, customer_id, ref_document_id, vat_mode, subtotal, discount, vat_amount, grand_total, statusdocument_items— id, document_id, description, qty, unit_price, amountdoc_sequences— type, year, last_nopayments— id, document_id, paid_at, amount, method, wht_amount
ระดับความยาก และสิ่งที่จะได้เรียนรู้
ระดับ ปานกลาง ใช้ Yii2 หรือ Laravel + PostgreSQL/MySQL ร่วมกับไลบรารีสร้าง PDF ที่รองรับฟอนต์ไทย สิ่งที่จะได้เรียนรู้:
- การรันเลขเอกสารแบบปลอดภัยภายใต้ transaction
- การคำนวณเงินและปัดเศษสตางค์ให้ตรงทุกบรรทัด
- การสร้าง PDF ภาษาไทยที่สระและวรรณยุกต์ไม่ลอย
- การออกแบบเอกสารที่อ้างอิงต่อกันเป็นสายตั้งแต่ใบเสนอราคาถึงการรับชำระ
ข้อควรระวัง
- ถ้ากดออกเอกสารพร้อมกันสองคน อาจได้เลขซ้ำจาก race condition ควรล็อกแถวใน
doc_sequencesด้วยSELECT ... FOR UPDATE - ปัดเศษ VAT ต่อบรรทัดกับปัดที่ยอดรวมให้ผลต่างกันได้หนึ่งสตางค์ เลือกวิธีเดียวแล้วใช้ให้สม่ำเสมอ และใช้
DECIMALเสมอ - รายการที่ต้องมีในใบกำกับภาษีและการยกเลิกเอกสารมีระเบียบกำหนด ควรตรวจสอบกับนักบัญชีหรือระเบียบล่าสุดของกรมสรรพากรก่อนใช้งานจริง
ใครเคยทำระบบออกใบกำกับภาษีให้ลูกค้าบ้างครับ ใช้ไลบรารี PDF ตัวไหนแล้วภาษาไทยไม่เพี้ยน และเลือกปัดเศษ VAT แบบไหน ถ้าเป็นคุณจะต่อยอดไปทางใบกำกับภาษีอิเล็กทรอนิกส์ไหม มาแลกเปลี่ยนหรือโชว์งานในกระทู้นี้ได้เลย