โหมดมืด
โครงสร้างข้อมูลสำหรับรายงาน
เอกสารและฟิลด์ที่ Insight ใช้เก็บกระดาษทำการ การตั้งค่า และรายการปรับปรุง
Insight ไม่มีฐานข้อมูลของตัวเอง ตัวเลขทั้งหมดอ่านจากรายการบัญชีของ ERP แล้วเก็บ ผลลัพธ์ ไว้ในเอกสารของตัวเองเพื่อให้ย้อนดูได้ว่างวดนั้นคำนวณออกมาเป็นอะไร เอกสารในหน้านี้จึงแบ่งเป็นสามกลุ่ม — การตั้งค่า (บอกว่าบัญชีไหนทำหน้าที่อะไร) ผลลัพธ์ (กระดาษทำการหนึ่งงวด) และ รายการปรับปรุง
Manufacturing Worksheet Config — การตั้งค่ารายบริษัท
หนึ่งบริษัทหนึ่งเอกสาร ชื่อเอกสารคือชื่อบริษัท
| ฟิลด์ | ชนิด | บังคับ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|---|
company | Link → Company | ใช่ | — | บริษัทเจ้าของการตั้งค่านี้ |
inventory_method | Select | ใช่ | A1 | วิธีบันทึกสินค้าคงเหลือ — A1 / A2 / B |
rm_inventory_account | Link → Account | — | — | บัญชีวัตถุดิบ |
wip_inventory_account | Link → Account | — | — | บัญชีงานระหว่างทำ |
fg_inventory_account | Link → Account | — | — | บัญชีสินค้าสำเร็จรูป |
purchases_account | Link → Account | — | — | ซื้อวัตถุดิบ |
import_tax_account | Link → Account | — | — | ภาษีนำเข้า |
purchase_returns_account | Link → Account | — | — | รับคืน |
purchase_discount_account | Link → Account | — | — | ส่วนลดซื้อ |
direct_labor_account | Link → Account | — | — | ค่าแรงทางตรง |
cogs_account | Link → Account | — | — | ต้นทุนขาย |
sales_account | Link → Account | — | — | ขายสินค้า |
retained_earnings_account | Link → Account | — | — | กำไรสะสม |
mfg_summary_account | Link → Account | — | — | บัญชีสรุปต้นทุนการผลิต |
income_summary_account | Link → Account | — | — | บัญชีสรุปกำไรขาดทุน |
pl_scope | Select | — | Cumulative as-at | ขอบเขตงบกำไรขาดทุน |
production_only_accounts | Table MultiSelect → Insight Account Item | — | — | บัญชีที่ถือว่าเป็นต้นทุนผลิต 100% ไม่ต้องปันส่วน |
section_groups | Table → Insight COA Section Group | — | — | การจัดกลุ่มบัญชีลงหัวข้อในงบ |
allocation_rows | Table → Worksheet Allocation Row | — | — | ตารางปันส่วนค่าใช้จ่ายเข้าห้าแผนก |
การตั้งค่าอ้างอิงด้วย "เลขที่บัญชี" ไม่ใช่ชื่อบัญชี
เครื่องคำนวณรับเฉพาะเลขที่บัญชี บัญชีที่ผูกไว้ในหน้านี้แต่ยังไม่ได้ตั้ง Account Number ใน ERP จะกลายเป็นค่าว่างเมื่อส่งเข้าเครื่องคำนวณ และผลที่ได้คือ "งบทดลองไม่สมดุล" ทั้งที่ตัวเลขใน ERP ถูกต้อง
Worksheet Allocation Row (ตารางย่อย)
| ฟิลด์ | ชนิด | บังคับ | คำอธิบาย |
|---|---|---|---|
account | Link → Account | ใช่ | บัญชีค่าใช้จ่ายที่ต้องปันส่วน |
raw_material_pct | Percent | — | สัดส่วนเข้าแผนกวัตถุดิบ |
production_pct | Percent | — | สัดส่วนเข้าแผนกผลิต — ตัวนี้คือส่วนที่ไปเป็นต้นทุนการผลิต |
warehouse_pct | Percent | — | สัดส่วนเข้าแผนกคลัง |
sales_pct | Percent | — | สัดส่วนเข้าแผนกขาย |
admin_pct | Percent | — | สัดส่วนเข้าแผนกบริหาร |
total_pct | Percent | — | ผลรวม ต้องเท่ากับ 100 พอดี มิฉะนั้นสั่งคำนวณไม่ผ่าน |
Insight COA Section Group (ตารางย่อย)
| ฟิลด์ | ชนิด | บังคับ | คำอธิบาย |
|---|---|---|---|
section | Select | ใช่ | หัวข้อในงบ — Manufacturing Overhead (C) / Selling / Admin / Revenue |
approach | Select | ใช่ | Group (parent account) เอาทั้งกิ่ง หรือ Explicit (select accounts) เลือกทีละตัว |
parent_account | Link → Account | — | ใช้เมื่อเลือกแบบเอาทั้งกิ่ง |
accounts | Table MultiSelect → Insight Account Item | — | ใช้เมื่อเลือกทีละตัว |
Manufacturing Worksheet — กระดาษทำการหนึ่งงวด
เอกสารแบบยืนยันได้ (มีสถานะร่าง/ยืนยัน/ยกเลิก) ตั้งชื่อด้วยชุดเลข MW-.YYYY.-
| ฟิลด์ | ชนิด | บังคับ | คำอธิบาย |
|---|---|---|---|
company | Link → Company | ใช่ | บริษัท |
fiscal_year | Link → Fiscal Year | — | ปีบัญชี |
period_from / period_to | Date | ใช่ | ช่วงงวดที่คำนวณ |
inventory_method | Data | — | คัดลอกมาจาก Config ตอนสั่งคำนวณ — ไม่ใช่ช่องที่กรอกเอง |
rm_opening / rm_closing | Currency | — | วัตถุดิบต้นงวด / ปลายงวด |
wip_opening / wip_closing | Currency | — | งานระหว่างทำต้นงวด / ปลายงวด |
fg_opening / fg_closing | Currency | — | สินค้าสำเร็จรูปต้นงวด / ปลายงวด |
rm_used | Currency | — | ผลคำนวณ — วัตถุดิบใช้ไป |
direct_labor | Currency | — | ผลคำนวณ — ค่าแรงทางตรง |
moh | Currency | — | ผลคำนวณ — ค่าใช้จ่ายการผลิต |
total_mfg_cost | Currency | — | ผลคำนวณ — ต้นทุนการผลิตรวม |
cogm | Currency | — | ผลคำนวณ — ต้นทุนสินค้าที่ผลิตเสร็จ |
cogs | Currency | — | ผลคำนวณ — ต้นทุนขาย |
net_profit | Currency | — | ผลคำนวณ — กำไรสุทธิ |
total_assets | Currency | — | ผลคำนวณ — สินทรัพย์รวม |
columns | Table → Worksheet Column Row | — | กระดาษทำการ 12 ช่อง หนึ่งแถวต่อหนึ่งบัญชี |
checksum | Data | — | ลายนิ้วมือของผลลัพธ์ ใช้เทียบว่าสองการคำนวณให้ผลเดียวกันหรือไม่ |
computed_json | Long Text | — | ผลลัพธ์เต็มรูปแบบ รวมงบที่จัดรูปแล้ว — เป็นสิ่งที่หน้าจอแสดงผลอ่าน |
excel_export | Attach | — | ไฟล์ .xlsx ที่สั่งสร้างล่าสุด |
ช่องยอด "ต้นงวด/ปลายงวด" เป็นข้อมูลนำเข้า ไม่ใช่ผลคำนวณ
ระบบไม่ได้ไปนับสต๊อกให้ ยอดหกช่องนี้ต้องกรอกจากผลนับหรือจากรายงานสต๊อก ถ้าเว้น wip_opening หรือ fg_opening ไว้ ระบบจะไม่ยอมคำนวณ
Worksheet Column Row (ตารางย่อย) — กระดาษทำการ 12 ช่อง
หนึ่งแถวคือหนึ่งบัญชี คู่เดบิต–เครดิตหกคู่เรียงจากซ้ายไปขวาตามลำดับการทำงาน
| คู่ | ฟิลด์ | หมายถึง |
|---|---|---|
| 1 | tb_debit / tb_credit | งบทดลอง ตัวเลขดิบจาก ERP |
| 2 | adj_debit / adj_credit | รายการปรับปรุงที่อนุมัติแล้ว |
| 3 | pc_debit / pc_credit | หลังปิดบัญชี |
| 4 | mfg_debit / mfg_credit | ต้นทุนการผลิต |
| 5 | is_debit / is_credit | งบกำไรขาดทุน |
| 6 | bs_debit / bs_credit | งบดุล |
อีกสามช่องคือ account (เลขที่บัญชี), account_name (ชื่อ) และ is_adjusted ซึ่งเป็นธงบอกว่าแถวนี้ถูกรายการปรับปรุงแตะ
Worksheet Adjustment — รายการปรับปรุง
เอกสารแบบยืนยันได้ ตั้งชื่อด้วยชุดเลข ADJ-.YYYY.-
| ฟิลด์ | ชนิด | บังคับ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|---|
worksheet | Link → Manufacturing Worksheet | ใช่ | — | กระดาษทำการที่รายการนี้สังกัด |
company | Link → Company | — | — | บริษัท |
description | Small Text | ใช่ | — | เหตุผลของการปรับ — บังคับกรอกโดยตั้งใจ |
status | Select | — | Draft | Draft / In Review / Approved / Posted |
lines | Table → Worksheet Adjustment Line | ใช่ | — | บรรทัดเดบิต–เครดิต |
total_debit / total_credit | Currency | — | — | คำนวณให้อัตโนมัติตอนบันทึก |
posted_je | Link → Journal Entry | — | — | ใบสำคัญทั่วไปที่ระบบสร้างกลับเข้า ERP |
proposed_by / approved_by | Link → User | — | — | ผู้เสนอ / ผู้อนุมัติ |
Worksheet Adjustment Line มีสี่ช่อง — account (Link → Account, บังคับ), debit, credit และ description
สองกติกาที่บังคับตั้งแต่ตอนบันทึก
เดบิตต้องเท่ากับเครดิต และยอดรวมต้องมากกว่าศูนย์ ไม่ผ่านสองข้อนี้จะบันทึกไม่ได้เลย ไม่ต้องรอถึงขั้นอนุมัติ
Worksheet Run History — บันทึกการคำนวณแต่ละครั้ง
สร้างอัตโนมัติทุกครั้งที่สั่งคำนวณสำเร็จ ไม่ต้องกรอกเอง
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
worksheet | Link → Manufacturing Worksheet | กระดาษทำการที่ถูกคำนวณ |
company, period_from, period_to | Link / Date | บริบทของรอบนั้น |
run_status | Select | Pending / Running / Completed / Failed |
ran_by / ran_at | Link → User / Datetime | ใครสั่ง เมื่อไร |
duration_ms | Int | ใช้เวลากี่มิลลิวินาที |
checksum | Data | ลายนิ้วมือของผลลัพธ์รอบนั้น |
cogm_total, cogs_total, net_profit, total_assets | Currency | ยอดสรุปที่จับภาพไว้ |
source_snapshot | Long Text | ภาพงบทดลองที่ใช้คำนวณรอบนั้น (JSON) |
ใช้ checksum ตอบคำถาม "ทำไมตัวเลขเปลี่ยน"
ถ้าคำนวณสองรอบแล้วได้ checksum ต่างกัน แปลว่ามีข้อมูลต้นทางเปลี่ยนจริงระหว่างสองรอบนั้น ไม่ใช่ความคลาดเคลื่อนของการคำนวณ เทียบ source_snapshot ของสองรอบจะเห็นว่าบัญชีไหนขยับ
ค่าที่รับได้
| ฟิลด์ | ค่าที่รับได้ |
|---|---|
Manufacturing Worksheet Config.inventory_method | A1, A2, B |
Manufacturing Worksheet Config.pl_scope | Cumulative as-at, Fiscal year (scope P&L) |
Insight COA Section Group.section | Manufacturing Overhead (C), Selling, Admin, Revenue |
Insight COA Section Group.approach | Group (parent account), Explicit (select accounts) |
Worksheet Adjustment.status | Draft, In Review, Approved, Posted |
Worksheet Run History.run_status | Pending, Running, Completed, Failed |
บทบาทที่ติดตั้งมาพร้อมแอปมีสองตัว — Worksheet User และ Worksheet Manager
หมายเหตุความเข้ากันได้
สิ่งที่ยึดได้ ชื่อเอกสารและชื่อฟิลด์ในหน้านี้เป็นของ Insight เอง จึงเปลี่ยนเฉพาะเมื่อ Insight เปลี่ยนรุ่น ไม่ได้เปลี่ยนตามการอัปเกรด ERPNext
สิ่งที่ยึดไม่ได้ โครงสร้างภายในของ computed_json และ source_snapshot เป็นรูปแบบภายในของเครื่องคำนวณ ไม่มีการรับประกันระหว่างรุ่น ถ้าต้องการตัวเลขไปใช้ต่อ ให้อ่านจากฟิลด์สรุปบนเอกสารหรือจากตาราง columns แทน
สองช่องที่ต้องระวังเป็นพิเศษ
statusบน Worksheet Adjustment เป็นสำเนาของสถานะใน workflow ซึ่งไม่ได้ติดตั้ง ทุกไซต์ ไซต์ที่ไม่ได้ติดตั้ง workflow จะใช้ช่องstatusตรง ๆ เขียนโค้ดให้รองรับทั้งสองแบบManufacturing Worksheet Configเคยเป็นการตั้งค่าแบบมีชุดเดียวทั้งไซต์ ก่อนจะย้ายมาเป็น หนึ่งเอกสารต่อหนึ่งบริษัท โค้ดเก่าที่สมมติว่ามีชุดเดียวจะยังทำงานได้เฉพาะไซต์ที่มีบริษัทเดียว