AluCut — ตัดอลูมิเนียมตามแพทเทิร์น
ชินวัฒน์ กระจกอลูมิเนียม · ตัดเส้นอลูมิเนียมยาว 6,400 มม. ตามผังมาตรฐานของโรงงาน แล้วเก็บชิ้นที่ได้เข้าสต๊อก · นับของในชั้นแล้วกรอก → แอปบอกว่าควรตัดผังไหน สีอบอะไร กี่เส้น พร้อมเหตุผลเป็นตัวเลข
✂️
เปิดแอป AluCut
เข้าสู่ระบบด้วยอีเมล/รหัสผ่านของตัวเอง — เครื่องไหนก็ได้ ไม่ต้องตั้งค่าอะไร · ใช้ได้ทั้งคอมและมือถือ
เข้าใช้งาน →
🚦 สถานะวันนี้ (17 ต.ค. 2569) — ครบทั้ง 10 เมนู เดินวงจรได้ตั้งแต่นับสต๊อกถึงปิดใบ
ใช้งานได้ทั้งวงจรแล้ว: นับสต๊อก → สั่งตัด → ส่งขออนุมัติ → เจ้าของอนุมัติจากมือถือ →
เริ่มตัด → พิมพ์ใบหน้าเลื่อยให้ช่าง → ติ๊กรายเส้น → ปิดใบ → ดูสรุปและ CSV
เพิ่มทีหลังนอกแผนเดิม: 💰 ทุนต่อบานสินค้าและราคาขาย · 💾 สำรอง/กู้ข้อมูลในหน้า ⚙️
✅ ทำงานได้จริงทั้ง 10 เมนู
- 🧱 รุ่นเส้นและราคา · 📐 ชิ้นงาน (พิมพ์ป้ายติดช่องเก็บได้) · 🧩 ผังตัด
- 🔢 นับสต๊อก — เปิดใบนับ กรอกยอดที่นับได้ บันทึกเป็นใบมีวันที่ แก้ไม่ได้
- ✂️ สั่งตัด — การ์ดทางเลือก · โหมดปรับมือ · บันทึกร่าง · ส่งขออนุมัติ
- ✅ รออนุมัติ — เจ้าของกดอนุมัติ/ตีกลับจากมือถือ (ฝ่ายจัดซื้อกดไม่ได้ บังคับที่ฐานข้อมูล)
- 📜 ใบสั่งตัดทั้งหมด — ค้นหา · กรองสถานะ/ช่วงวันที่ · CSV · ปุ่มตามสถานะในใบ
- 📊 สรุปเส้นและเศษ — ยุบเป็น รุ่น × สีอบ (กระทบบิลร้านได้) · เศษ 3 กอง · ทุนต่อชิ้น · CSV
- ⚙️ ตั้งค่า — กติกาตัด · สีอบ · ชื่อโรงงาน · สมาชิก/สิทธิ์ · สำรองข้อมูล · ทุนและราคาขาย
- 💰 ทุนและราคาขาย — กรอก กว้าง × สูง ของบาน แล้วได้ทุนแยกบรรทัดและราคาขาย
🪚 ใบหน้าเลื่อย — อยู่ในใบ ไม่ใช่เมนู
- เปิดใบที่อนุมัติแล้ว → ปุ่ม 🪚 ใบหน้าเลื่อย → พิมพ์ A4 ให้ช่างถือไปหน้าเลื่อย
- ตัวเลข ขนาดตั้งเลื่อย ตัวใหญ่ หนึ่งบรรทัดหนึ่งเลข อ่านได้จากระยะยืน
- มีคอลัมน์ ตำแหน่งสะสมจากหัวเส้น — จับความเพี้ยนได้ตั้งแต่ชิ้นที่ 5 ไม่ต้องรอตัดจบ
- ออก PNG ส่งไลน์ได้ด้วย (ปุ่มแชร์โผล่เฉพาะเครื่องที่รองรับ)
⚠️ ยังไม่เคยใช้กับงานจริง
เทสในเครื่องผ่าน 560 ข้อ และซ้อมเดินวงจรทั้งสายแล้ว
แต่ ยังไม่เคยมีใครกดจริงบนฐานข้อมูลจริง — รอบแรกให้เดินช้า ๆ ทีละขั้น
แล้วเทียบตัวเลขกับที่นับมือไว้ก่อนเชื่อ
⚠️ เรื่องที่ต้องรู้ก่อนเริ่ม:
ราคาเส้นและขั้นต่ำ/เพดานต้องกรอกเองก่อน ระบบถึงจะคิดเงินให้ ·
ช่องไหนยังไม่มีราคา จอจะขึ้น "—" ไม่ใช่ 0 (0 แปลว่าฟรี ซึ่งไม่จริง) ·
ใบที่ส่งขออนุมัติแล้วแก้ไม่ได้ ต้องยกเลิกแล้วออกใบใหม่ · ใบลบไม่ได้ ใช้สถานะยกเลิกพร้อมเหตุผล
| TASK | ได้อะไร | สถานะ |
| 1 | ฐานข้อมูล 7 ตาราง · โครงแอป 9 เมนู · ล็อกอิน · สมาชิก/สิทธิ์ · ⚙️ ตั้งค่า (กติกาตัด · สีอบ · ชื่อโรงงาน) | เสร็จแล้ว |
| 2 | 🧱 รุ่นเส้นและราคา — 3 รุ่น (กล่องก้าน · กรอบบานกระทุ้ง · คิ้วกระทุ้ง) · ราคาต่อเส้น · "บาทต่อมิล" | เสร็จแล้ว |
| 3 | 📐 ชิ้นงาน 24 ขนาด · 2 ขนาดแยกสี · ขั้นต่ำ/เพดาน ต่อสีอบ · พิมพ์ป้ายติดช่องเก็บ 48 ใบ | เสร็จแล้ว |
| 4 | 🧩 ผังตัด 24 ผัง (+ ผังทางเลือก 6) · รูป SVG แถบยาว · ตัวตรวจผัง · นำเข้าจากไฟล์ seed | เสร็จแล้ว |
| 5 | เครื่องคิด + เทสตัวเลขที่รู้คำตอบล่วงหน้า (ด่านสำคัญสุด ทำก่อนหน้าจอคิดเงิน) | เสร็จแล้ว |
| 6 | 🔢 นับสต๊อก · ✂️ สั่งตัด (การ์ดทางเลือก + โหมดปรับมือ) · บันทึกร่าง · ส่งขออนุมัติ · ตารางใบสั่งตัดล่าสุด (ท้ายหน้า ✂️) | เสร็จแล้ว |
| 7 | ขึ้นออนไลน์ (เปิดจากมือถือที่ไหนก็ได้) — คู่มือทำเองอยู่ใน DEPLOY.md | กำลังทำ |
| 8 | ✅ อนุมัติจากมือถือ · 🪚 ใบหน้าเลื่อย · ติ๊กรายเส้น · ปิดใบเข้าสต๊อก · 📊 สรุปเส้นและเศษ · เมนู 📜 เต็มรูป | ยังไม่ทำ |
คู่มือด้านล่างเขียนไว้ครบทั้งวงจรเพื่อให้เห็นภาพปลายทาง · ขั้นตอนที่ยังไม่มีจะติด TASK 8 กำกับไว้ทุกจุด — ไม่มีชิปแปลว่าใช้ได้แล้ว · ในระบบ ไม่มีตัวเลขหลอกหรือข้อมูลตัวอย่าง ทุกตัวเลขมาจากที่กรอกเข้าไปเองทั้งหมด
🚪 เข้าใช้ครั้งแรก / เปิดจากเครื่องใหม่
- ครั้งแรกสุดของทั้งระบบ (ทำครั้งเดียว โดยเจ้าของ) — ตั้งฐานข้อมูลตาม supabase/SETUP.md ให้ครบก่อน: สร้างโปรเจกต์ Supabase ชื่อ alucut → รันไฟล์ SQL 3 ไฟล์ตามลำดับ (base.sql → migration-alucut-01.sql → migration-alucut-02.sql) → สร้างที่เก็บรูป photos → คัดลอก Project URL + publishable key ใส่ config.js
- เปิดแอป (ปุ่มด้านบน) แล้วกด เข้าสู่ระบบ ด้วยอีเมล/รหัสผ่านของตัวเอง — ไม่ต้องใส่กุญแจหรือตั้งค่าอะไรที่เครื่อง ค่าที่ต้องใช้ฝังมากับแอปแล้ว ทุกเครื่องเห็นข้อมูลชุดเดียวกัน
- ยังไม่มีบัญชี → กด สมัครสมาชิกใหม่ ด้วยอีเมลของตัวเอง จะได้สถานะ "รอสิทธิ์" ยังเข้าไม่ได้ → บอกเจ้าของให้เปิดสิทธิ์เป็น ออฟฟิศ ที่ ⚙️ ตั้งค่า → สมาชิก/สิทธิ์ → แล้วออก-เข้าระบบใหม่
- คนแรกที่สมัครจะเป็นเจ้าของอัตโนมัติ — ต้องให้เจ้าของสมัครก่อนเสมอ (เป็นกติกาในฐานข้อมูล ไม่มีปุ่มให้เลือก)
- มือถือ: เปิดลิงก์ใน Chrome/Safari แล้วเลือก "เพิ่มไปยังหน้าจอหลัก" จะได้ไอคอนเหมือนแอป · เมนูอยู่ที่ปุ่ม ☰ มุมซ้ายบน
- มีอัปเดตแอป (ช่างเขียนโปรแกรมบอก หรือหน้าจอดูแปลก ๆ) → คอมกด Ctrl+F5 · มือถือปิดแท็บแล้วเปิดใหม่ — เพื่อให้เบราว์เซอร์โหลดแอปรุ่นล่าสุด ไม่ใช้ของเก่าที่จำไว้
- ลืมรหัสผ่าน → บอกเจ้าของ · เจ้าของเข้าหน้า Supabase → Authentication → Users → เลือกอีเมลนั้น → Reset password แล้วพิมพ์รหัสใหม่ให้ตรง ๆ (แอปไม่มีปุ่มตั้งรหัสใหม่ · และอย่าใช้วิธีส่งลิงก์ทางอีเมลถ้าบัญชีนั้นสมัครด้วยอีเมลสมมติ ลิงก์จะไม่ถึงมือใคร)
⚠️ เรื่องที่ต้องเข้าใจก่อนใช้แอปนี้ — หนึ่งขนาดมี 2 ตัวเลข
รุ่นที่ตัด 45° (กรอบบานกระทุ้ง) ใบตัดกินอลูมิเนียมข้างละ 5 มม. ขนาดที่เขียนในผังจึง บวกเผื่อไว้ 10 มม. แล้ว · เอาสองตัวเลขนี้มาปนกัน = ตัดผิดทั้งล็อต แอปจึงติดชิปสีกำกับตัวเลขทุกที่ ห้ามโชว์เลขเปล่า
| ชิป | คือขนาดอะไร | ใช้ที่ไหน |
| 🔧 ขนาดตั้งเลื่อย | ตัวเลขที่ คนกรอก · ตรงกับรูปผังที่เจ้าของวาด · เอาไปตั้งเลื่อยจริง | ผังตัด · ใบหน้าเลื่อย · การคิดว่าเส้นหนึ่งตัดได้กี่ชิ้น |
| 🏷️ ขนาดชิ้นงาน | ตัวเลขที่ แอปคิดให้ = ขนาดตั้งเลื่อย − 10 (เฉพาะรุ่น 45°) · รุ่น 90° เท่ากันทั้งคู่ | สต๊อก · ขั้นต่ำ/เพดาน · ใบนับ · ป้ายติดช่องเก็บ 15×5 ซม. |
ตัวอย่างจริงของโรงงาน: กรอบบานกระทุ้งตัวตั้ง ตั้งเลื่อย 1167 → ชิ้นงานที่ติดป้าย 1157 · ตัวนอน ตั้งเลื่อย 370 → ชิ้นงาน 360
⭐ 10 มม. นี้ ไม่รวม ร่องใบเลื่อยระหว่างชิ้น — ตอนคิดว่าเส้นหนึ่งตัดได้กี่ชิ้น ยังต้องบวกร่องตัด 5 มม. อีกต่างหาก (แอปคิดให้ ไม่ต้องคิดในหัว) · ช่องขนาดชิ้นงาน แก้มือไม่ได้ ฐานข้อมูลเขียนให้เองเสมอ
✂️ ฝ่ายจัดซื้อ — ตัดหนึ่งรอบ ทำอะไรบ้าง
นับของในชั้น→🔢 กรอกใบนับ→✂️ 🧮 คำนวณทางเลือก→ใช้ทางนี้→💾 บันทึกร่าง→📤 ส่งขออนุมัติ→อนุมัติแล้ว→🪚 พิมพ์ใบหน้าเลื่อย→กำลังตัด (ติ๊กรายเส้น)→ตัดเสร็จ · เข้าสต๊อก
- นับของในชั้น ทุกขนาด ทุกสีอบ (อบดำ / อบขาว) จดเป็นจำนวนชิ้น — นับด้วย 🏷️ ขนาดชิ้นงาน ที่เขียนบนป้ายช่องเก็บ
- เมนู 🔢 นับสต๊อก → เปิดใบนับใหม่ → ตารางมี 3 ช่องต่อหนึ่งขนาด×สีอบ: คาดว่าควรมี (ระบบคิดจากใบนับก่อน + ชิ้นที่ตัดได้จริงหลังจากนั้น) · นับได้ (กรอก) · ส่วนต่าง → บันทึกเป็นใบมีวันที่ · ใบนับแก้ไม่ได้ นับใหม่ = ออกใบใหม่
- เมนู ✂️ สั่งตัด → ฝั่งซ้ายคือยอดคงเหลือ (ดึงจากใบนับล่าสุดให้ แก้ทับได้ · ช่องแดง = ต่ำกว่าขั้นต่ำ · คอลัมน์เทา "ค้างท่อ" = ของที่สั่งตัดไปแล้วแต่ยังไม่ปิดใบ) → กด 🧮 คำนวณทางเลือก
- ฝั่งขวาได้ การ์ดทางเลือก 1–5 แต่ละทางบอกว่า ตัดผังไหน สีอบอะไร กี่เส้น · ยอดเงิน · ชิปเศษ (มม. และบาท) · ชิปเพดาน เขียว/เหลือง · ชิปครบ/ไม่ครบ · เหตุผล 2–3 บรรทัดที่อ้างตัวเลขทุกคำ
เรียงลำดับแบบนี้: ยังขาดน้อยสุด → เกินเพดานน้อยสุด → ราคารวมต่ำสุด → เศษทิ้งน้อยสุด → ชิ้นเกินน้อยสุด · (ราคามาก่อนเศษ เพราะเศษเป็นส่วนหนึ่งของเงินที่จ่ายไปแล้ว ถ้าให้เศษนำ ระบบจะเชียร์ให้ซื้อเส้นเพิ่มเพื่อให้ % เศษสวยขึ้น) · เศษ กับ ของเกิน แสดงแยกบรรทัดกันเสมอ — เศษคือเงินที่ทิ้งลงถัง ของเกินคือเงินที่จอดอยู่บนชั้นและได้ใช้วันหน้า
- เพดานคือเส้นห้ามข้าม — ระบบจะไม่เสนอทางที่ทำให้ของล้นเกินเพดาน แต่ ยืดได้นิดหน่อย ตามค่าที่ตั้งไว้ที่ ⚙️ ตั้งค่า → กติกาตัด → "ยืดเพดานได้ไม่เกิน %" (ตั้งต้น 20% เช่น เพดาน 40 → ตัดได้ถึง 48 ชิ้น) · ถ้าเติมให้ครบขั้นต่ำไม่ได้เพราะติดเส้นนี้ แอปจะเสนอเท่าที่ทำได้ พร้อมบอกว่าติดชิ้นไหน และปุ่มลัดไปเพิ่มเพดาน (📐) หรือเพิ่ม % (⚙️)
- กด ใช้ทางนี้ ที่การ์ดที่ต้องการ (ปรับจำนวนเส้นเองได้ด้วย โหมดปรับมือ ตารางผลต่อชิ้นคิดใหม่ทันที) → 💾 บันทึกร่าง ได้เลขใบ ALC-xxxx → 📤 ส่งขออนุมัติ (ตารางใบสั่งตัดล่าสุดอยู่ท้ายหน้า ✂️ เดียวกันนี้)
- เมื่อเจ้าของกด อนุมัติแล้ว → เมนู 📜 ใบสั่งตัดทั้งหมด → เปิดใบ → 🪚 ใบหน้าเลื่อย พิมพ์ A4 ไปให้ช่าง (ออกรูป PNG ส่งไลน์ได้ด้วย) — 1 แผ่นต่อ 1 ผัง × 1 สีอบ TASK 8
- กด 🪚 เริ่มตัด ใบเปลี่ยนเป็นสถานะ กำลังตัด และแอปสร้างรายเส้นให้ (ใบ 12 เส้น = 12 แถว) · ช่างตัดเสร็จส่งกระดาษกลับมา → เปิดใบ → ติ๊กรายเส้น ทีละแถว กรอก ความยาวเส้นที่วัดได้จริง และจำนวนที่ได้จริง → ✅ ปิดใบ ของเข้าสต๊อกตามจำนวนจริง ไม่ใช่ตามที่สั่ง TASK 8
- เมนู 📊 สรุปเส้นและเศษ ยุบใบเป็น รุ่น × สีอบ × จำนวนเส้น × ราคาต่อเส้น (เอาไปกระทบบิลร้าน) + คอลัมน์เศษ (มม. · บาท · %) + ต้นทุนต่อชิ้นที่ใช้ได้ · มีปุ่ม CSV TASK 8
อ่านใบหน้าเลื่อยอย่างไร (รูปผังในแอปหน้าตาแบบนี้)
200020002000350
ตัวอย่างผัง ก้าน-ตั้ง-1 (ของจริงในทะเบียน): 2000×3 + 350 = 6,350 มม. + ร่องตัด 3 รอย 15 มม. + ปาดหัว 5 มม. → ใช้เนื้อ 6,370 มม. เหลือเศษ 30 มม. (ผังนี้อยู่ในกลุ่ม "เฉียด" ต้องวัดเส้นก่อนตัด) · เหลือง = ชิ้นแนวตั้ง · น้ำตาล = ชิ้นแนวนอน (ชิ้นสั้นที่เอามาเติมท้ายเส้นไม่ให้เหลือทิ้ง) · ขาว = ร่องตัด + ปาดหัว + เศษ รวม 50 มม.
ทะเบียนที่ฝ่ายจัดซื้อดูแล
- 🧱 รุ่นเส้นและราคา — 3 รุ่น: กล่องก้านยูเนี่ยน (90°) · กรอบบานกระทุ้งยูเนี่ยน (45° เผื่อ 10 มม.) · คิ้วกระทุ้งยูเนี่ยน (90°) · ราคากรอกช่องเดียวต่อรุ่น (2 สีอบราคาเท่ากัน ระบบเขียนให้ทั้งสองสี) · ใต้ช่องโชว์ "บาทต่อมิล" ให้เห็นว่าเศษ 1 มม. คือเงินเท่าไหร่
- 📐 ชิ้นงาน — 24 ขนาด (8 ต่อรุ่น) · 2 คอลัมน์แยกสีชัด 🔧 ตั้งเลื่อย กรอก / 🏷️ ชิ้นงาน อ่านอย่างเดียว · ขั้นต่ำ-เพดาน ต่อขนาด ต่อสีอบ · คอลัมน์ "อยู่ในผังไหน" · ปุ่มพิมพ์ ป้ายติดช่องเก็บ 15×5 ซม. 48 ใบ (24 ขนาด × 2 สีอบ)
- 🧩 ผังตัด — 24 ผังมาตรฐาน ของโรงงาน + ผังทางเลือก 6 ผัง (ของน้อยลง 1 ชิ้น แลกเศษน้อยลง — ให้ตัวจัดอันดับเลือกเอง) · การ์ดผังละใบมีรูป SVG คู่กับรูป SketchUp ต้นฉบับ · แถบสถานะ เหลือ 76 / เฉียด — วัดเส้นก่อนตัด / ตัดไม่ครบ เกิน 27 มม. · แก้ผังต้องผ่านตัวตรวจ · ปุ่มนำเข้าจากไฟล์ seed
- ⚙️ ตั้งค่า — ชื่อโรงงาน · สีอบ · กติกาตัด (ดูตารางหัวข้อถัดไป) · สมาชิก/สิทธิ์ · สิ่งที่ต้องตั้งก่อนเริ่มใช้ · สวิตช์เชื่อม Alu ERP (ปิดไว้) · การ์ดสำรอง/กู้ข้อมูลยังไม่มี (ดูหัวข้อ 💾 ข้างล่าง)
- ทุกตารางมีปุ่ม CSV เปิดใน Excel ได้ (ภาษาไทยไม่เพี้ยน)
ยกเลิกใบ
ตอนนี้ทำที่ตาราง 📜 ท้ายหน้า ✂️ สั่งตัด → เปิดใบ → ❌ ยกเลิกใบ ต้องใส่เหตุผลเสมอ · ใบที่ อนุมัติแล้วแก้รายการไม่ได้ → ยกเลิกแล้วออกใบใหม่ · ไม่มีปุ่มลบใบ เลขใบไม่ถอยหลัง ประวัติทุกใบดูย้อนได้ · ทุกใบจดว่าใครทำอะไรเมื่อไหร่ · เมนู 📜 ใบสั่งตัดทั้งหมด แบบเต็ม (ค้นหา · กรอง · CSV) ทำรอบหน้า TASK 8
✅ เจ้าของ — อนุมัติจากมือถือ
- มีใบรออนุมัติ → แถบบนของแอปขึ้นป้าย ⏳ รออนุมัติ n (และเลขที่เมนู ✅) — กดป้ายหรือเมนู ✅ รออนุมัติ TASK 8
- เปิดใบ → อ่านจบใน 1 จอ: กี่เส้น · กี่บาท · เศษกี่มิล คิดเป็นกี่บาท · ยืดเพดานกี่รายการ · ยังขาดอะไร · หมายเหตุจากฝ่ายจัดซื้อ · แตะหัวข้อผังตัด/ผลต่อชิ้นเพื่อกางดู
- กดปุ่มใหญ่ ✅ อนุมัติ (ใส่หมายเหตุได้) หรือ ↩️ ตีกลับ (ต้องใส่เหตุผล เช่น "ลดคิ้ว-ตั้ง-5 เหลือ 1 เส้น") — ตีกลับแล้วฝ่ายจัดซื้อแก้แล้วส่งใหม่ได้
- อนุมัติ/ตีกลับเป็นของเจ้าของคนเดียว และฐานข้อมูลบังคับเอง (ทริกเกอร์ guard_alucut_cut_order) — ไม่ใช่แค่ซ่อนปุ่ม ใครยิงคำสั่งข้ามแอปเข้ามาก็ไม่ผ่าน
สิทธิ์สมาชิก
⚙️ ตั้งค่า → สมาชิก/สิทธิ์ (เห็นเฉพาะเจ้าของ) · คนสมัครใหม่เป็น "รอสิทธิ์" → กด ✅ เปิดเป็นออฟฟิศ · พนักงานออก → ปิดบัญชี (ไม่ลบ ประวัติยังอยู่) · มี 2 บทบาทเท่านั้น คือ ออฟฟิศ และ เจ้าของ (ช่างใช้กระดาษ A4 ที่ฝ่ายจัดซื้อพิมพ์ให้ ไม่ต้องมีบัญชี) · ต้องมีเจ้าของอย่างน้อย 1 คนเสมอ
ขั้นต่ำ / เพดาน
📐 ชิ้นงาน → กรอกในตาราง (ต่อขนาด ต่อสีอบ) · ขั้นต่ำ = เหลือต่ำกว่านี้ถือว่าขาด ต้องตัด · เพดาน = มีเกินนี้ถือว่าของล้น ระบบไม่เสนอให้เกิน (ยืดได้ตาม % ที่ตั้ง) · ใส่ 0/0 = ไม่ใช้ขนาดนั้นในสีอบนั้น · แก้ค่าทีหลังไม่กระทบใบเก่า เพราะใบเก็บค่า ณ วันนั้นไว้ในตัวเอง
⚙️ กติกาตัด — ตัวเลขที่ทั้งแอปใช้ร่วมกัน (⚙️ ตั้งค่า)
| ค่า | ตั้งต้น | หมายถึง |
| ความยาวเส้น | 6,400 มม. | ทุกเส้น ทุกรุ่น · เส้นที่ร้านส่งมาบางเส้นสั้นกว่านี้ → กรอกความยาวจริงตอนติ๊กรายเส้นได้ แอปคิดใหม่ทันทีว่ายังตัดครบไหม |
| ใบเลื่อยกินเนื้อ (ร่องตัด) | 5 มม. | ชิ้น n ชิ้น = ร่องตัดคั่น n − 1 รอย |
| ปาดหัวเส้นทิ้ง | 5 มม. | ปาด ครั้งเดียวที่หัวเส้น |
| เกณฑ์ "เฉียด" | 30 มม. | ผังที่เหลือเศษน้อยกว่านี้ = ขึ้นเหลืองเตือน ให้วัดเส้นจริงก่อนตัด (ใบเลื่อยสึกนิดเดียวก็อาจตัดไม่ครบ) |
| ยืดเพดานได้ไม่เกิน | 20 % | เพดาน 40 → ตัดได้ถึง 48 ชิ้น · ใส่ 0 = ห้ามเกินเพดานเลย |
| จำนวนทางเลือกที่เสนอ | 5 ทาง | การ์ดทางเลือกในหน้า ✂️ สั่งตัด |
| เพดานเส้นต่อผัง | 30 เส้น | กันระบบเสนอตัวเลขที่ทำจริงไม่ได้ในรอบเดียว |
สูตรที่แอปใช้: เนื้อที่ใช้ = ผลรวมขนาดตั้งเลื่อย + (จำนวนชิ้น − 1) × 5 + 5 · ตัดได้เมื่อเนื้อที่ใช้ไม่เกินความยาวเส้น
⚠️ รูปผังที่วาดด้วยมือไม่ได้คิดร่องใบเลื่อยและไม่ได้ปาดหัว — ตัวเลขในรูปบวกกันลงตัวพอดีเฉย ๆ นี่คือเหตุผลหลักที่ต้องมีแอป: ผังที่ดูเหมือนพอดีในกระดาษอาจตัดไม่ครบจริงที่หน้าเลื่อย (เคยเจอแล้ว 2 ผัง แก้แล้ว) · ตัดครบทั้ง 24 ผังหนึ่งรอบ ได้ชิ้น 254 ชิ้น เสียเศษ 1,610 มม. ≈ หนึ่งในสี่ของเส้น · เศษทิ้งอย่างเดียว ไม่มีคลังเศษ เศษทุกมิลคือเงินที่หายไปถาวร
💾 สำรองข้อมูลรายสัปดาห์ ยังไม่มีในแอป
การ์ดสำรอง/กู้ข้อมูลยังไม่มีในหน้า ⚙️ (ยังไม่ถึงรอบที่ทำ ไม่ใช่แอปเสีย) — ระหว่างนี้ถ้าอยากเก็บสำเนาไว้ ใช้ ปุ่ม CSV ที่มีอยู่ทุกตาราง ได้ (🧱 · 📐 · 🧩 · ใบนับ · ยอดคงเหลือ) · ขั้นตอนข้างล่างคือวิธีทำเมื่อการ์ดนี้เปิดใช้แล้ว ทำทุกสัปดาห์ ใครทำก็ได้ ใช้เวลา 1 นาที
- เปิดแอป → ⚙️ ตั้งค่า → การ์ด สำรอง/กู้ข้อมูล → กด ⬇ สำรองข้อมูล (Export JSON) → ได้ไฟล์ alucut-backup-วันที่.json 1 ไฟล์ (ข้างในมีทะเบียนทั้งหมด + ใบสั่งตัดทุกใบ + ค่าตั้ง)
- เก็บไฟล์ไว้นอกระบบ — โฟลเดอร์ใน Google Drive ของโรงงาน หรือแฟลชไดรฟ์ · ไฟล์นี้มีราคาเส้น/ยอดสต๊อก/ใบสั่งจริง ห้ามส่งให้คนนอก และห้ามเอาขึ้นที่เก็บโค้ด (กันไว้ใน .gitignore แล้ว)
- กู้ข้อมูล (เฉพาะเจ้าของ) → เลือกไฟล์ → ตรวจไฟล์ก่อนนำเข้า แอปบอกก่อนว่าตารางไหนจะเพิ่ม/ทับ/เหมือนเดิมกี่แถว → ค่อยกดยืนยัน · ไม่ลบอะไรทั้งสิ้น
ไฟล์เดียวกันนี้คือเครื่องมือย้ายข้อมูลวันที่จะรวมแอปเข้ากับ Alu ERP
🔗 ลิงก์ที่เกี่ยวข้อง
| แอป (ในเครื่อง) | alucut/app.html — ดับเบิลคลิกเปิดได้เลย ไม่ต้องมีเซิร์ฟเวอร์ |
| แอป (เว็บจริง) | ยังไม่ขึ้นออนไลน์ — กำลังทำ (TASK 7) · ขึ้นแล้วจะเติมลิงก์ที่บรรทัดนี้ (โปรเจกต์ Cloudflare Pages ชื่อ alucut) · ขั้นตอนทั้งหมดอยู่ใน DEPLOY.md |
| โค้ด | ยังไม่ขึ้น GitHub — กำลังทำ (TASK 7) · ขึ้นแล้วเป็น repo แบบส่วนตัว เฉพาะโค้ด ไม่มีข้อมูลจริงและไม่มีกุญแจลับ |
| ฐานข้อมูล | Supabase โปรเจกต์ alucut (เจ้าของมีบัญชี) — ใช้ตอนรันไฟล์ SQL · ตั้งรหัสผ่านใหม่ให้พนักงาน (Authentication → Users → Reset password) · ดูรูปในที่เก็บรูป photos · วิธีตั้งทั้งหมดอยู่ใน supabase/SETUP.md |
| ผู้ช่วย AI | ไม่มีในแอปนี้ — ทุกอย่างทำงานได้ครบโดยไม่ต้องมี AI |
| เชื่อมกับ Alu ERP | ยังไม่เชื่อม — แอปนี้แยกฐานข้อมูลของตัวเอง (ค่าตั้ง alucut_link ปิดอยู่) · ชื่อตาราง alucut_* และรหัสเอกสาร AL* ตรวจแล้วว่าไม่ชนของ Alu ERP และของแอปสั่งกระจก วันรวมระบบจึงย้ายได้ด้วยไฟล์สำรองข้างบน |
| แอปสั่งกระจก | คนละแอป คนละฐานข้อมูล — แอปนั้นดูแลการสั่งกระจกแผ่นใหญ่จากซัพพลายเออร์ · กระจกของบานกระทุ้งที่ตัดจากเส้นในแอปนี้ ต้องไปสั่งที่แอปนั้น |
หน้านี้ไม่ต่อฐานข้อมูลและไม่มีกุญแจใด ๆ — เป็นแค่ประตูเข้าแอป + คู่มือสั้น · ระบบภายในของโรงงาน ใช้ได้เฉพาะผู้ที่มีบัญชี