ในสองบทความก่อนหน้า เราพูดถึงว่าทำไมโรงงานยาต้องการระบบ ERP และทำไม ERPNext น่าสนใจ บทความนี้จะลงมือจริง — setup ERPNext ให้พร้อมสำหรับโรงงานยาสามัญตั้งแต่วันแรก
เนื้อหานี้มาจากประสบการณ์จริงในการสำรวจ ERPNext สำหรับใช้งานใน generic pharma ไทย ตัวเลขและชื่อที่ใช้เป็นเพียงตัวอย่างเพื่อการศึกษา
ก่อนเริ่ม: สร้าง Demo Company
เปิด ERPNext → ไปที่ Setup → Company → New
กรอกข้อมูลดังนี้:
| Field | ค่าตัวอย่าง | หมายเหตุ |
|---|---|---|
| Company Name | Generic Pharma Demo Co., Ltd. | ชื่อสมมติ |
| Abbreviation | GPD | ใช้เป็น prefix |
| Default Currency | THB | บาทไทย |
| Country | Thailand | ดึง tax template อัตโนมัติ |
| Industry | Pharmaceutical |
เมื่อ Save ระบบจะ generate Chart of Accounts อัตโนมัติตามมาตรฐานของประเทศที่เลือก
Warehouse: จาก "โกดัง" สู่ GMP Zone
ใน GMP แต่ละพื้นที่จัดเก็บมี status และ condition ที่แตกต่างกัน วัตถุดิบที่รับเข้าใหม่ต้อง "hold" ก่อนจนกว่า QC จะ approve ERPNext จัดการเรื่องนี้ผ่าน Warehouse ที่แยกออกจากกัน
ไปที่ Stock → Warehouse → New สร้าง 6 warehouse นี้:
| Warehouse | บทบาทใน GMP |
|---|---|
| Raw Material Store | วัตถุดิบ approved รอใช้งาน |
| Quarantine Store | วัตถุดิบรับใหม่ รอ QC ตรวจ |
| Work in Progress | ระหว่างกระบวนการผลิต |
| Finished Goods Store | FG รอ QC release |
| Released Store | QC passed พร้อมส่งมอบ |
| Rejected Store | batch/lot ที่ไม่ผ่าน |
ทำไมต้องแยก Quarantine? ใน GMP จริง วัตถุดิบที่ยังไม่ผ่าน QC ต้องไม่ปะปนกับของที่ผ่านแล้ว ERPNext ใช้ warehouse transfer แทน status field ดังนั้น Quarantine → Raw Material = QC approved นั่นเอง
Item Master: หัวใจของ Inventory
ใน ERPNext ทุกสิ่งที่ซื้อ ขาย หรือผลิต คือ Item — ทั้ง API, excipient, packaging material และ finished product
สร้าง Item Group ก่อน
ไปที่ Stock → Item Group → New สร้าง:
- API
- Excipient
- Packaging Material
- Finished Product
ตัวอย่าง: สร้าง Item สำหรับ API
ไปที่ Stock → Item → New
Atorvastatin Calcium (API):
| Field | ค่า |
|---|---|
| Item Code | API-ATO-001 |
| Item Name | Atorvastatin Calcium |
| Item Group | API |
| UOM | kg |
| Has Batch No | ✓ (สำคัญมาก) |
| Has Expiry Date | ✓ |
| Is Purchase Item | ✓ |
| Default Warehouse | Raw Material Store |
สำคัญ: ต้องเปิด "Has Batch No" ตั้งแต่แรก เพราะหลังจากมี transaction แล้วจะแก้ไขไม่ได้
ตัวอย่าง: สร้าง Item สำหรับ Finished Product
Atorvastatin Tablet 20mg (FG):
| Field | ค่า |
|---|---|
| Item Code | FG-ATO-020 |
| Item Name | Atorvastatin Tablet 20mg |
| Item Group | Finished Product |
| UOM | tablet |
| Has Batch No | ✓ |
| Has Expiry Date | ✓ |
| Is Manufactured Item | ✓ |
| Is Sales Item | ✓ |
| Default Warehouse | Finished Goods Store |
Naming Convention ที่แนะนำ
การตั้ง Item Code แบบมีระบบช่วยให้ค้นหาและ filter รายงานได้ง่าย:
“ API-[3-letter-abbreviation]-[sequence] EXC-[abbreviation]-[sequence] PKG-[type]-[product]-[sequence] FG-[abbreviation]-[strength] “
ตัวอย่าง:
API-ATO-001= Atorvastatin APIEXC-MCC102-001= MCC PH102PKG-BLISTER-ATO20= Blister film สำหรับ ATO 20mgFG-ATO-020= Atorvastatin 20mg tablet
สิ่งที่ ERPNext ยังขาดสำหรับ Pharma
หลังจาก setup เบื้องต้น จะพบว่า ERPNext ยังไม่มี field เหล่านี้ใน Item master:
- Pharmacopoeial grade (USP, BP, Ph.Eur.)
- Retest date (นอกจาก expiry date)
- Approved supplier list
- Certificate of Analysis link per batch
สิ่งเหล่านี้ต้องสร้างเป็น Custom Field ใน Frappe — ซึ่งทำได้โดยไม่ต้อง code ถ้าใช้ Customize Form ใน ERPNext
บันทึก Observation ระหว่างทดลอง
การ setup ครั้งแรกนี้ไม่ใช่แค่การตั้งค่า — มันคือกระบวนการ เรียนรู้ว่าระบบคิดอย่างไร แนะนำให้บันทึกทุกจุดที่รู้สึกว่า:
- "ระบบบังคับให้ทำขั้นตอนแบบนี้ — ตรงหรือไม่ตรงกับ SOP จริง?"
- "Field นี้ไม่มี — ต้อง custom?"
- "Report ที่ออกมา auditor จะยอมรับได้ไหม?"
observation เหล่านี้จะกลายเป็น Gap Analysis ที่มีคุณค่าสูงในขั้นตอนถัดไป
สรุป
การ setup ERPNext สำหรับโรงงานยาในสัปดาห์แรก ครอบคลุม:
- Company — foundation ของทุกอย่างใน ERPNext
- Warehouse — จำลอง GMP zone ด้วย Warehouse logic
- Item Master — สร้าง API, excipient, packaging, FG ด้วย batch tracking เปิดอยู่
ขั้นตอนถัดไป: ทดสอบ Inventory transaction — รับ API เข้า batch → QC → transfer ไป Released — และดูว่า traceability รายงานให้ข้อมูลได้แค่ไหน
