📖 คู่มือระบบสต๊อกเนื้อ NNTN

สำหรับห้องเนื้อ — Supabase Web System vs Excel เดิม
← Meat Stock Hub
สารบัญ
ภาพรวม — ระบบใหม่เทียบกับเดิม ⚠️ ช่วง Parallel Run — ต้องทำอะไรบ้าง 1. รับเนื้อสดเข้าคลัง A 2. บันทึกผลผลิตตุ๋น (Section B) 3. แปรรูป / รีแพ็ค 4. ส่งออก (NT / FS) — ใบนำส่ง 5. เช็คสต๊อกปัจจุบัน 6. คอลัมน์ Excel → Supabase Field Map 7. FAQ — ถามบ่อย
ภาพรวม — ระบบใหม่เทียบกับเดิม
⚠️ ตอนนี้อยู่ในช่วง Parallel Run (06/04–~20/04) ยังต้องทำทั้ง Excel เดิม + Supabase ควบคู่กันไปก่อน จน verify ยอดตรงกัน 2 สัปดาห์
กระบวนการ 🟡 เดิม (Excel + Buffer) 🟢 ใหม่ (Supabase Web)
รับเนื้อสด กรอก Buffer V2 → copy CW sheet → คลัง A sheet เปิด Meat Stock → tab รับเนื้อสด → กรอก → บันทึก ✅ เสร็จ
ตุ๋น (Section B) กรอก Buffer V2 → copy CW sheet → คลัง B sheet tab บันทึกผลผลิต → กรอก → บันทึก ✅
แปรรูป / รีแพ็ค แก้ CW เดิม (Processed) + เพิ่ม row ใหม่ (คลัง B/C) tab แปรรูป → เลือกถุงต้นทาง → ระบุ output → บันทึก ✅
ส่งออก NT/FS กรอก Buffer V2 → DD tab → Archive tab (DD/MM) Hub → ออกใบนำส่ง → เลือกถุง → บันทึก + พิมพ์ ✅
เช็คสต๊อก เปิด Excel → CW sheet → filter In Stock → นับ tab สต๊อกปัจจุบัน → เห็นทันที ✅
Yield คำนวณเอง (น้ำหนักสด vs ตุ๋น) สต๊อกปัจจุบัน → Yield Summary คำนวณอัตโนมัติ ✅
CW row เลข r1, r2, r3... ใน Excel CW sheet ยังแสดง r123 เหมือนเดิม (legacy_cw_row field) ✅
✅ ข้อดีหลักของระบบใหม่ ไม่ต้อง Buffer แล้ว — กรอกครั้งเดียว บันทึกตรง Supabase เลย ไม่ต้อง copy-paste ระหว่าง sheet · สต๊อก real-time · เปิดโทรศัพท์ก็ดูได้
ช่วง Parallel Run — ต้องทำอะไรบ้าง
🔴 ช่วงนี้ (จนถึง ~20/04) ยังทำทั้งสองระบบ Excel เดิม = primary · Supabase = ทำควบคู่เพื่อ verify ยอด
ทำ Excel เดิมตามปกติ primary
Buffer V2 → CW sheet → คลัง A/B/C → DD → Archive — ทำครบทุกขั้นตอนเหมือนเดิม
กรอกซ้ำใน Supabase web ควบคู่
ทำขั้นตอนเดิมซ้ำในหน้าเว็บ — เพื่อเก็บข้อมูลไว้ verify
ปิดวัน: sync script รันอัตโนมัติ auto
supabase_cw_sync.py รันปิดงานทุกวัน — sync ยอด Excel → Supabase เพื่อ verify
~20/04: ถ้ายอดตรงครบ 2 สัปดาห์ → switch primary
หลัง verify ผ่าน จะใช้ Supabase เป็น primary และเลิกใช้ Excel CW sheet
1
🛒 รับเนื้อสดเข้าคลัง A
ขั้นตอนเดิมใหม่
1เปิด Buffer V2 (Google Sheets)เปิด Meat Stock → tab 🛒 รับเนื้อสด
2กรอก วันที่ / บิล / รายการ / น้ำหนักรายถุงเลือก วันที่รับเข้า + เลขที่ใบซื้อ → กด "+ เพิ่มรายการเนื้อ"
3กด Submit Bufferเลือก SKU → กรอกน้ำหนักแต่ละถุง (ใส่กี่ถุงก็ได้)
4Copy paste ไป CW sheet + คลัง A sheetกด ✅ บันทึกรับเนื้อสด — เสร็จเลย ไม่ต้อง paste ไปไหน
ผลCW rows เพิ่ม + คลัง A rows เพิ่มcatch_weight rows เพิ่ม (warehouse=คลัง_A, status=in_stock) ✅
💡 ใส่น้ำหนักแต่ละถุงแยกกัน เช่น ถุง 1 = 2.340 ถุง 2 = 1.890 — กด Enter หรือ Tab เพื่อไปถุงถัดไป
ถุงที่ใส่น้ำหนักเป็น 0 จะถูกข้ามโดยอัตโนมัติ
2
🫕 บันทึกผลผลิตตุ๋น (Section B)
ขั้นตอนเดิมใหม่
1Buffer V2 → กรอก Section Btab 🫕 บันทึกผลผลิต
2ระบุ วันที่ / ชื่อ / รายการตุ๋น / จำนวนถุง / น้ำหนักเลือกวันที่ผลิต + ชื่อผู้บันทึก → "+ เพิ่มรายการตุ๋น"
3Submit → copy ไป CW + คลัง Bเลือก SKU ตุ๋น → กรอกน้ำหนักรายถุง → กด ✅ บันทึกผลผลิต
ผลCW rows (status=In Stock) + คลัง B rowscatch_weight rows (warehouse=คลัง_B, status=in_stock) ✅
3
♻️ แปรรูป / รีแพ็ค
💡 แปรรูป = เนื้อถุงเดิม (input) → กลายเป็นถุงใหม่ (output)
ถุง input จะเปลี่ยนสถานะเป็น ♻️ Processed อัตโนมัติ
ขั้นตอนเดิมใหม่
Inputหา CW row เดิม → เปลี่ยน status เป็น Processedtab ♻️ แปรรูป → เลือกประเภท → กด "เลือกถุง" → แตะถุงต้นทาง
Outputเพิ่ม CW row ใหม่ (SKU output)เลือก SKU output → ระบุจำนวนถุง + น้ำหนักรายถุง
Submitแก้ 2 จุด (old row + new rows)กด ✅ บันทึกแปรรูป — ระบบทำทั้งสองอย่างให้เอง
ประเภทใช้เมื่อไหร่
ครัวกลางตัดแบ่งเนื้อสดออกเป็น SKU ใหม่ (เข้าคลัง C พร้อมขาย)
รีแพ็คเปลี่ยนขนาดถุง — item เดิม เช่น [500g] → [75g] หลายถุง
ผสมรวม lot — หลายถุงรวมเป็น 1 ถุงใหม่
4
🚛 ส่งออก (NT / FS) — ออกใบนำส่ง
⚠️ ส่งออกเนื้อ อยู่ที่ Hub → ออกใบนำส่ง (ไม่ใช่ใน Meat Stock โดยตรง) เพราะใบนำส่งรวมทั้งเนื้อ + Non-meat ในบิลเดียว
ขั้นตอนเดิมใหม่
เปิดBuffer V2 → Sheet 4Hub → 🚛 ออกใบนำส่ง
Headerกรอก วันที่ / ปลายทาย / เลขบิลเลือก วันที่ส่ง / ปลายทาง / เลขที่ใบนำส่ง
Block 1 เนื้อกรอก SKU + น้ำหนัก ทีละถุงกด "+ เพิ่มรายการเนื้อ" → เลือก SKU → "เลือกถุง" → แตะถุง (lot chip)
Block 2 Non-meatกรอกในช่อง non-meat ของ Bufferกด "+ เพิ่มรายการ Non-meat" → เลือก item → ใส่ qty
Previewดูใน Sheet 4 previewPreview ขึ้น real-time ด้านล่าง
SubmitSubmit Buffer → DD tab + Archive DD/MMกด 🚛 บันทึกส่งออก — ถุงเปลี่ยน status=delivered ทันที
พิมพ์print Sheet 4กด 🖨 พิมพ์ ใน Preview card
🚫 ถ้าเบิก Non-meat เกินสต๊อก: ระบบจะแจ้งเตือน ⚠️ และไม่ให้ submit
ข้อความ "เบิกได้สูงสุด X หน่วย" จะขึ้นใต้ช่อง qty ทันทีที่พิมพ์
5
📊 เช็คสต๊อกปัจจุบัน
ดูอะไรเดิมใหม่
ยอดรวมนับ rows ใน CW sheet ที่ filter In Stocktab 📊 สต๊อกปัจจุบัน → KPI card ด้านบน (X ถุง / X กก.)
รายการดู CW sheet ทีละ rowตาราง "รายการ In Stock" — คลิก row เพื่อดูถุงรายใบ
Yieldคำนวณเอง หรือดูไม่ได้ทันทีYield Summary — แสดง yield% พร้อม range ปกติ + status ✅/⚠️/🔴
คลังเปิด sheet คลัง A/B/C แยกKPI card แยก คลัง A (สด) / คลัง B (ตุ๋น)
CW rowr123 ใน column Aแสดง r123 ในช่อง #CW ทุกที่ เหมือนเดิม
6
📋 คอลัมน์ Excel → Supabase Field
Column A (row) legacy_cw_row
ยังแสดง r123 เหมือนเดิม — ใช้อ้างอิงช่วง parallel run
Column B (SKU / ชื่อ) item_id → items.name
Column C (น้ำหนัก กก.) weight_g (เก็บเป็นกรัม)
Column D (Lot วันที่) lot_date
Status (In Stock / Delivered) status: in_stock / delivered / processed / loss
คลัง A / B / C (sheet แยก) warehouse: คลัง_A / คลัง_B / คลัง_C
DD tab (Archive) status=delivered + notes=บิล (ใน catch_weight)
บิล / เลขที่ใบส่ง (หมายเหตุ) notes field
7
❓ FAQ — ถามบ่อย
Q: กรอกผิด แก้ยังไง? ตอนนี้ยังไม่มีหน้า edit โดยตรง — แจ้งไทน์หรือ Platform แก้ผ่าน Supabase dashboard
Q: lot chip ที่เลือกถุงคืออะไร? แต่ละ chip = 1 ถุง แสดงเลข CW (r123) + น้ำหนัก — แตะเพื่อเลือก/ยกเลิก สีน้ำเงิน = เลือกแล้ว
Q: ถ้า internet หาย ทำยังไง? ระบบต้องใช้ internet — ถ้าหายให้กรอก Buffer Excel เดิมไปก่อน แล้วค่อยมากรอก Supabase ทีหลัง
Q: เลข CW row ใน Supabase ตรงกับ Excel ไหม? ตรง — ช่วง parallel run sync script จะ map เลข row ให้ · ในระบบใหม่แสดงใน field "CW" ทุกที่
Q: [75g] [500g] น้ำหนักกรอกยังไง? กรอก nominal (75 หรือ 500) — ระบบรู้ว่าน้ำหนักนี้ไม่ชั่งจริง เหมือน Excel เดิม
Q: Yield Summary คำนวณจากอะไร? input น้ำหนักสด (รับเข้าคลัง A) เทียบกับ output น้ำหนักตุ๋น (คลัง B) per lot date · range ปกติ = 65–75%
🔗
URL หน้าสำคัญ
🥩
Meat Stock
รับเนื้อ / ตุ๋น / แปรรูป / ดูสต๊อก
ttt3p.github.io/nntn/meat-stock/
🚛
ออกใบนำส่ง
NT/FS — เนื้อ + Non-meat
ttt3p.github.io/nntn/hub-delivery.html
🏠
Hub
หน้าหลัก — เลือก module
ttt3p.github.io/nntn/hub.html
🧅
Non-meat Stock
สต๊อกวัตถุดิบครัว
ttt3p.github.io/nntn/index.html