ใบขอซื้อ
ใบขอซื้อ (PR) คือจุดเริ่มต้นของการจัดซื้อ ใช้แจ้งความต้องการของให้ฝ่ายจัดซื้อและผู้มีอำนาจอนุมัติก่อนสั่งซื้อจริง เช่น เห็นว่าของใกล้หมดก็เปิดใบขอซื้อระบุรายการ จำนวน เหตุผล และความเร่งด่วน ช่วยให้การซื้อของมีคนตรวจสอบก่อนเสมอ และเป็นต้นทางที่แปลงไปเป็นใบสั่งซื้อ (PO) ต่อได้ ใบขอซื้อใช้ร่วมกันทั้งบริษัท ไม่ได้ผูกกับสาขาเดียว

✨ คุณสมบัติเด่น
- เปิดใบขอซื้อพร้อมเลือกของได้ทั้งสินค้า วัสดุ และสมุนไพรจีน
- ระบุความเร่งด่วน (ปกติ / สูง / ด่วน) และเหตุผลของการขอซื้อ
- มีขั้นตอนส่งให้อนุมัติก่อน ค่อยแปลงเป็นใบสั่งซื้อ
- แก้ไขรายการได้ตอนยังเป็นฉบับร่าง
- ออกเลขใบอัตโนมัติแบบ PR-ปีเดือน-เลขลำดับ นับรวมทั้งบริษัท
- ทุกสาขาในบริษัทเดียวกันเห็นใบขอซื้อร่วมกัน (ฝ่ายจัดซื้อกลางดูได้หมด)
📝 วิธีใช้งาน
- เปิดเมนูใบขอซื้อไปที่เมนูคลังสินค้า > ใบขอซื้อ (procurement/requests) แล้วกดสร้างใบขอซื้อใหม่
- เลือกของและจำนวนเพิ่มรายการที่ต้องการ เลือกได้ทั้งสินค้า วัสดุ และสมุนไพร พร้อมระบุจำนวนที่ขอ
- ระบุความเร่งด่วนและเหตุผลเลือกความเร่งด่วน (ปกติ/สูง/ด่วน) และเลือกเหตุผลจากตัวเลือกที่ระบบมีให้ (พิมพ์เองไม่ได้) ใส่หมายเหตุเพิ่มได้
- ส่งให้อนุมัติตรวจรายการให้ครบแล้วกดส่ง ใบจะเปลี่ยนจากฉบับร่างเป็นสถานะรออนุมัติ และจะแก้ไขไม่ได้อีก
- ผู้มีอำนาจอนุมัติเจ้าของหรือผู้ดูแลเปิดใบที่ส่งมา แล้วกดอนุมัติหรือไม่อนุมัติ
- แปลงเป็นใบสั่งซื้อเมื่ออนุมัติแล้ว กดแปลงเป็นใบสั่งซื้อ (convert) ระบบจะสร้างใบสั่งซื้อให้พร้อมโยงกลับมาที่ใบขอซื้อนี้
⚠️ ข้อควรระวัง
- แก้ไขรายการได้เฉพาะตอนยังเป็นฉบับร่างเท่านั้น พอกดส่งแล้วแก้ไม่ได้ ถ้าผิดต้องยกเลิกแล้วเปิดใหม่
- เหตุผลต้องเลือกจากตัวเลือกที่ระบบกำหนด พิมพ์เหตุผลเองไม่ได้ (ผูกกับรายการกลางของระบบ)
- ถ้าสองคนเปิดใบเดียวกันแล้วคนหนึ่งกดส่งระหว่างที่อีกคนกำลังแก้ คนที่แก้จะเซฟไม่ผ่าน (ใบไม่อยู่ในสถานะร่างแล้ว)
- เส้นทางเดียวที่ทำให้เป็นใบสั่งซื้อคือกดปุ่มแปลง (convert) เท่านั้น
🔑 สิทธิ์การใช้งาน
- ดูใบขอซื้อ — inventory.purchase_requests.view
- สร้าง/แก้ไขร่าง/เพิ่มลบรายการ/ส่งอนุมัติ/ยกเลิก — inventory.purchase_requests.manage
- อนุมัติ — inventory.purchase_requests.approve
- แปลงเป็นใบสั่งซื้อ — inventory.purchase_requests.convert
💡 เคล็ดลับ
- ใบขอซื้อใช้ร่วมกันทั้งบริษัท ถ้าเปิดใบที่สาขาอื่นจะมองเห็นได้เหมือนกัน ระบุสาขาต้นทางให้ถูกเพื่อการรายงาน
- ถ้าใบขอซื้อยังไม่อนุมัติแต่ไม่อยากใช้แล้ว ให้กดยกเลิกได้จากทุกสถานะที่ยังไม่จบ
ใบสั่งซื้อ
ใบสั่งซื้อ (PO) คือเอกสารสั่งซื้อของจากผู้ขายอย่างเป็นทางการ ระบุผู้ขาย รายการ จำนวน ราคา และสาขาที่จะให้ส่งของไป เมื่ออนุมัติและส่งให้ผู้ขายแล้ว ใบสั่งซื้อจะรอการรับของเข้าคลัง เป็นตัวเชื่อมระหว่างการตัดสินใจซื้อกับการรับของจริง เปิดจากใบขอซื้อที่อนุมัติแล้วก็ได้ หรือเปิดตรงจากเมนูใบสั่งซื้อก็ได้

✨ คุณสมบัติเด่น
- สร้างใบสั่งซื้อโดยเลือกผู้ขาย รายการ จำนวน และราคา พร้อมคิดยอดรวมและภาษีให้
- เลือกสาขาปลายทางที่จะให้ส่งของไป (เห็นช่องนี้เฉพาะคลินิกหลายสาขา)
- มีขั้นตอนชัดเจน: ร่าง > ส่งอนุมัติ > อนุมัติ > ส่งให้ผู้ขาย
- รับของได้หลายครั้งต่อหนึ่งใบ (กรณีของทยอยส่ง) ใบจะปิดเองเมื่อรับครบทุกรายการ
- ออกเลขใบอัตโนมัติแบบ PO-ปีเดือน-เลขลำดับ แยกตามสาขา
- เปิดจากใบขอซื้อ (PR) ที่อนุมัติแล้วได้ โดยมีลิงก์ย้อนกลับไปต้นทาง
📝 วิธีใช้งาน
- สร้างใบสั่งซื้อไปที่เมนู จัดซื้อ แท็บใบสั่งซื้อ กดสร้างใหม่ แล้วเลือกผู้ขายจากช่องค้นหา
- ใส่รายการและราคาเพิ่มรายการที่จะสั่ง ระบุจำนวนและราคาต่อหน่วย ระบบจะรวมยอดให้
- เลือกสาขาปลายทางถ้าคลินิกมีหลายสาขา ให้เลือกสาขาที่จะให้ผู้ขายส่งของไป (ช่อง For branch)
- ส่งให้อนุมัติตรวจความถูกต้องแล้วกดส่ง ใบจะเข้าสถานะรออนุมัติ
- อนุมัติและส่งให้ผู้ขายผู้มีอำนาจกดอนุมัติ จากนั้นกดส่ง (send) เพื่อบอกว่าได้ส่งใบสั่งซื้อให้ผู้ขายแล้ว ใบจะพร้อมรับของ
- ติดตามการรับของเปิดใบเพื่อดูว่ารับของครบหรือยัง ใบจะปิดอัตโนมัติเมื่อรับของครบทุกรายการ
⚠️ ข้อควรระวัง
- หนึ่งใบสั่งซื้อรับของได้หลายครั้ง ระหว่างที่ยังรับไม่ครบใบจะยังอยู่สถานะ 'ส่งแล้ว' จนกว่ารับครบจึงปิดเป็น 'ปิดงาน'
- ช่องเลือกสาขาปลายทางจะขึ้นเฉพาะคลินิกที่มีมากกว่าหนึ่งสาขา
- รับของเกินจำนวนที่สั่งไม่ได้ ระบบกันไว้ที่ระดับฐานข้อมูล ทั้งใบจะรับของไม่ผ่านถ้ามีรายการใดเกิน
- ปุ่มส่งให้ผู้ขาย (send) ต้องใช้สิทธิ์ระดับอนุมัติ ไม่ใช่สิทธิ์จัดการทั่วไป (ตั้งใจให้คนอนุมัติเป็นคนส่ง)
🔑 สิทธิ์การใช้งาน
- ดูใบสั่งซื้อ — inventory.purchase_orders.view
- สร้าง/ส่งอนุมัติ/ยกเลิก — inventory.purchase_orders.manage
- อนุมัติและส่งให้ผู้ขาย — inventory.purchase_orders.approve
💡 เคล็ดลับ
- ใบสั่งซื้อมองเห็นได้ทั้งที่สาขาผู้สร้างและสาขาปลายทางที่จะรับของ
- อยากเริ่มเร็วโดยไม่ต้องพิมพ์รายการเอง ให้สร้างจากใบขอซื้อที่อนุมัติแล้วผ่านปุ่มแปลง
ใบรับของ
ใบรับของ (GR) ใช้บันทึกการรับของเข้าคลังตามใบสั่งซื้อ เจ้าหน้าที่กรอกจำนวนที่ได้รับจริง เลขล็อต วันหมดอายุ และจุดเก็บของแต่ละรายการ พอกดยืนยันรับของ ระบบจะเพิ่มจำนวนเข้าสต๊อกให้ทันทีและสร้างประวัติการเคลื่อนไหวให้อัตโนมัติ จุดสำคัญคือของจะเข้าสต๊อกจริงก็ต่อเมื่อ 'ยืนยันรับของ' เท่านั้น

✨ คุณสมบัติเด่น
- เปิดใบรับของจากใบสั่งซื้อโดยตรง
- กรอกจำนวนรับจริง เลขล็อต วันหมดอายุ และจุดเก็บรายรายการ
- ยืนยันแล้วเพิ่มสต๊อกอัตโนมัติ พร้อมสร้างล็อตของใหม่ในระบบทุกครั้ง
- รับของแบบทยอยได้ครั้งละบางส่วน หลายใบรับต่อหนึ่งใบสั่งซื้อ
- กรอกหลายรายการพร้อมกันได้ (รองรับการรับของจำนวนมากเป็นพันบรรทัด)
- ออกเลขใบอัตโนมัติแบบ GR-ปีเดือน-เลขลำดับ แยกตามสาขา
- กรอกต้นทุนต่อหน่วยของแต่ละบรรทัดตอนรับของได้ ระบบจะบันทึกเป็นต้นทุนของล็อตนั้น และใช้เป็นฐานคิดมูลค่าสต๊อกกับกำไรขั้นต้นต่อไป
📝 วิธีใช้งาน
- เปิดใบรับของจากใบสั่งซื้อเข้าไปที่ใบสั่งซื้อที่ส่งให้ผู้ขายแล้ว แล้วกดเริ่มรับของ (po/:id/receive) หรือสร้างใบรับของใหม่
- กรอกจำนวนรับจริงใส่จำนวนที่ได้รับจริงของแต่ละรายการ ซึ่งอาจน้อยกว่าที่สั่งได้ถ้าของมาไม่ครบ
- ใส่เลขล็อตและวันหมดอายุกรอกเลขล็อตและวันหมดอายุของแต่ละรายการ เพื่อให้ระบบจ่ายของแบบใกล้หมดอายุก่อนได้ (FEFO)
- เลือกจุดเก็บระบุจุดเก็บปลายทางของแต่ละรายการ (จำเป็นทุกบรรทัด ไม่กรอกจะยืนยันไม่ได้)
- ยืนยันรับของตรวจให้ครบแล้วกดยืนยัน ระบบจะเพิ่มสต๊อกทันที กดยืนยันได้ครั้งเดียว กดซ้ำไม่ได้
⚠️ ข้อควรระวัง
- ยืนยันรับของได้ครั้งเดียว ถ้ายืนยันผิดต้องแก้ด้วยการปรับยอดสต๊อกหรือทิ้งของ ไม่มีปุ่มย้อนกลับ
- รับเกินจำนวนที่สั่งไม่ได้เด็ดขาด ระบบจะปฏิเสธทั้งใบ
- ทุกรายการต้องระบุจุดเก็บเสมอ ปล่อยว่างไม่ได้
- รับของแทนสาขาอื่นไม่ได้ ต้องรับเฉพาะของที่ใบสั่งซื้อระบุให้ส่งมาที่สาขาตัวเอง
- ต้นทุนของล็อตถูกบันทึกครั้งเดียวตอนยืนยันรับของ แล้วแก้ไม่ได้อีก — ถ้ากรอกผิดต้องแก้ที่ใบรับของก่อนยืนยัน ไม่ใช่ไปแก้ที่ล็อตทีหลัง
- ไม่กรอกต้นทุนก็ยืนยันรับของได้ตามปกติ แต่ของล็อตนั้นจะขึ้นว่ายังไม่มีต้นทุนในรายงานมูลค่าสต๊อกและรายงานกำไรขั้นต้น
🔑 สิทธิ์การใช้งาน
- ดูใบรับของ — inventory.purchase_orders.view (ใช้สิทธิ์เดียวกับดูใบสั่งซื้อ ไม่มีสิทธิ์ดูแยกต่างหาก)
- สร้าง/กรอกรายการ/ยืนยัน/ยกเลิก — inventory.goods_receipts.manage
💡 เคล็ดลับ
- ถ้าของส่งมาทยอย ให้เปิดใบรับของแยกแต่ละครั้ง ระบบจะสะสมจำนวนรับเข้ากับใบสั่งซื้อให้เอง
- เลขล็อตเดียวกันที่กรอกสองบรรทัดจะถูกนับเป็นล็อตคนละก้อน ระบบจัดลำดับใกล้หมดอายุก่อนตามวันหมดอายุ ไม่ใช่ตามเลขล็อต
- ยกเลิกใบรับของได้เฉพาะตอนยังเป็นฉบับร่าง (ยังไม่ยืนยัน) เท่านั้น
ผู้ขาย/ผู้จำหน่าย
เป็นสมุดรายชื่อผู้ขายของคลินิก เก็บข้อมูลติดต่อ เลขผู้เสียภาษี และเงื่อนไขการชำระเงิน ไว้เลือกใส่ในใบสั่งซื้อได้สะดวก รายชื่อนี้ใช้ร่วมกันทุกสาขาในบริษัทเดียวกัน (สำนักงานกลางดูแลชุดเดียว) ทำให้การจัดซื้อข้ามสาขาใช้ผู้ขายชุดเดียวกันได้

✨ คุณสมบัติเด่น
- เพิ่ม/แก้ไขผู้ขายพร้อมข้อมูลติดต่อ เลขผู้เสียภาษี และเงื่อนไขชำระเงิน
- ค้นหาผู้ขายจากชื่อได้รวดเร็ว
- ใช้เป็นช่องเลือกผู้ขายตอนสร้างใบสั่งซื้อ
- ปิดการใช้งานผู้ขายที่ไม่ใช้แล้ว (ไม่ได้ลบทิ้ง เก็บประวัติไว้)
- ใช้รายชื่อร่วมกันทุกสาขาในบริษัทเดียวกัน
📝 วิธีใช้งาน
- เปิดหน้าผู้ขายไปที่เมนู ผู้จำหน่าย
- เพิ่มผู้ขายใหม่กดเพิ่ม กรอกชื่อผู้ขาย (จำเป็น) พร้อมชื่อผู้ติดต่อ เบอร์ อีเมล ที่อยู่ เลขผู้เสียภาษี และเงื่อนไขชำระเงิน
- บันทึกกดบันทึก ระบบตรวจรูปแบบอีเมลให้ถ้ากรอก และห้ามชื่อผู้ขายซ้ำกับรายที่ยังใช้งานอยู่ในบริษัท
- ค้นหาและแก้ไขพิมพ์ชื่อในช่องค้นหาเพื่อหาผู้ขาย แล้วกดเข้าไปแก้ไขข้อมูลเมื่อต้องอัปเดต
- ปิดการใช้งานผู้ขายที่เลิกใช้ให้กดปิดการใช้งาน ระบบจะซ่อนออกจากรายการเลือกแต่ยังเก็บประวัติไว้
⚠️ ข้อควรระวัง
- ปิดผู้ขายไม่ได้ถ้ายังมีใบสั่งซื้อที่ค้างอยู่ (ร่าง/รออนุมัติ/สั่งแล้วรอรับ) กับผู้ขายรายนั้น
- ชื่อผู้ขายห้ามซ้ำกันในบริษัทเดียวกัน (นับเฉพาะรายที่ยังใช้งานอยู่) ระบบจะไม่ยอมให้บันทึก
- ในหน้านี้ไม่มียอดเงินค้างจ่าย ประวัติการสั่งซื้อดูได้จากใบสั่งซื้อแทน
🔑 สิทธิ์การใช้งาน
- ดูผู้ขาย — inventory.suppliers.view
- เพิ่ม/แก้ไข/ปิดการใช้งาน — inventory.suppliers.manage
💡 เคล็ดลับ
- ใส่เลขผู้เสียภาษีของผู้ขายให้ถูก เพราะใช้กับใบกำกับภาษีและหนังสือรับรองหักภาษี ณ ที่จ่าย
- เงื่อนไขชำระเงินเป็นข้อความอิสระ พิมพ์ได้ตามจริง เช่น เครดิต 30 วัน หรือ เงินสด
จุดเก็บของในคลัง
จุดเก็บของใช้กำหนดที่เก็บของในคลินิก เช่น ชั้นวางหน้าร้าน ตู้ยา หรือห้องสต๊อก เพื่อให้รู้ว่าของแต่ละชิ้นอยู่ตรงไหน ทุกการรับของ ย้ายของ ปรับยอด หรือตัดของ จะอ้างอิงจุดเก็บเหล่านี้ ถ้าตั้งจุดเก็บไว้ดี การหาของและการนับสต๊อกจะง่ายขึ้นมาก

✨ คุณสมบัติเด่น
- สร้างจุดเก็บได้ตามจริงของแต่ละสาขา
- แก้ชื่อและคำอธิบายจุดเก็บ
- ปิดจุดเก็บที่ไม่ใช้แล้ว
- ระบบสร้างจุดเก็บพิเศษให้อัตโนมัติทุกสาขา 3 จุด (ของค้างรับจากผู้ขาย, ของระหว่างขนย้าย, ของทิ้ง) ไว้ใช้เบื้องหลัง
📝 วิธีใช้งาน
- เปิดหน้าจุดเก็บไปที่เมนู คลังสินค้า (จุดเก็บ)
- สร้างจุดเก็บใหม่กดเพิ่ม ตั้งชื่อจุดเก็บให้สื่อความ เช่น 'ตู้ยาหน้าร้าน' หรือ 'ห้องสต๊อก' และใส่คำอธิบายได้
- บันทึกกดบันทึก ชื่อจุดเก็บห้ามซ้ำกันภายในสาขาเดียวกัน
- ปิดจุดเก็บที่เลิกใช้ถ้าจุดเก็บไม่ใช้แล้วและไม่มีของค้างอยู่ ให้กดปิดการใช้งาน
⚠️ ข้อควรระวัง
- ปิดจุดเก็บไม่ได้ถ้ายังมีของค้างอยู่ในจุดนั้น (ต้องย้ายของออกหรือนับให้เป็นศูนย์ก่อน)
- ห้ามแก้ชื่อหรือลบจุดเก็บพิเศษที่ระบบสร้างให้ (จุดของระหว่างขนย้าย, จุดของทิ้ง) เพราะระบบเรียกใช้ตามชื่อ ถ้าเปลี่ยนชื่อจะทำให้การโอนย้ายและการทิ้งของพังทันที
- จุดเก็บแยกตามสาขา ของในจุดเก็บของสาขาหนึ่งไม่ปนกับอีกสาขา
🔑 สิทธิ์การใช้งาน
- ดูจุดเก็บ — inventory.stock.view
- สร้าง/แก้ไข/ปิดการใช้งาน — inventory.location.manage
💡 เคล็ดลับ
- ตั้งจุดเก็บให้ตรงกับการวางของจริงในคลินิก จะช่วยให้ตอนรับของและนับสต๊อกหาของเจอเร็ว
- จุดเก็บพิเศษของระบบจะมีให้อัตโนมัติทุกสาขาตั้งแต่เปิดสาขา ไม่ต้องสร้างเอง
ยอดสต๊อกและประวัติการเคลื่อนไหว
หน้านี้ใช้ดูว่าของแต่ละรายการเหลือเท่าไหร่ อยู่จุดเก็บไหน ล็อตไหนใกล้หมดอายุ และดูประวัติย้อนหลังว่าของเข้าออกเมื่อไหร่ จากเหตุการณ์อะไร (รับของ ขาย จ่ายยา ย้าย ทิ้ง ปรับยอด) ทุกการเปลี่ยนแปลงของจำนวนสินค้าจะถูกบันทึกเป็นประวัติที่แก้ไขไม่ได้ (เพิ่มได้อย่างเดียว) จึงตรวจสอบย้อนหลังได้เสมอว่ายอดมาจากไหน

✨ คุณสมบัติเด่น
- ดูยอดคงเหลือรวมของแต่ละรายการและแยกตามจุดเก็บ
- ค้นหาประวัติการเคลื่อนไหวของของแต่ละชิ้นได้ละเอียด พร้อมเลขที่เอกสารอ้างอิง (เลขใบรับของ/ใบสั่งซื้อ/ใบโอน/คำขอทิ้ง ฯลฯ)
- ดูล็อตและวันหมดอายุ รวมถึงค้นล็อตที่ใกล้หมดอายุ
- ยอดคงเหลือถูกตัดอัตโนมัติเมื่อบิลชำระเงินหรือเมื่อจ่ายยา ไม่ต้องตัดเอง
- ประวัติเป็นแบบบันทึกอย่างเดียว แก้หรือลบไม่ได้ การแก้ยอดทำผ่านปรับยอดหรือนับสต๊อกเท่านั้น
- ดูมูลค่าสต๊อกเป็นเงินได้ พร้อมเลือกวิธีคิดต้นทุน 3 แบบ: ต้นทุนจริงของแต่ละล็อต / ต้นทุนเฉลี่ยของแต่ละรายการ / ต้นทุนมาตรฐานจากรายการสินค้า
- บอกจำนวนหน่วยที่ยังไม่มีต้นทุนบันทึกไว้ให้เห็นชัด จะได้รู้ว่ามูลค่าที่เห็นครบแค่ไหน
📝 วิธีใช้งาน
- เปิดหน้ายอดสต๊อกไปที่เมนู สต็อกสินค้า เพื่อดูยอดคงเหลือของรายการต่าง ๆ และแยกตามจุดเก็บ
- ดูยอดของรายการที่ต้องการค้นหารายการแล้วดูว่าเหลือกี่หน่วย กระจายอยู่จุดเก็บไหนบ้าง
- ดูล็อตและวันหมดอายุเปิดดูล็อตของรายการเพื่อเช็กวันหมดอายุ หรือค้นหาล็อตที่กำลังจะหมดอายุเพื่อรีบใช้ก่อน
- ดูประวัติการเคลื่อนไหวเปิดหน้าประวัติการเคลื่อนไหว (movements) เพื่อตามดูว่าของเข้าออกจากเหตุการณ์ใด เมื่อไหร่ ใครทำ
⚠️ ข้อควรระวัง
- ประวัติการเคลื่อนไหวแก้หรือลบไม่ได้ ถ้ายอดผิดต้องแก้ด้วยการปรับยอดหรือนับสต๊อกใหม่ ไม่มีทางแก้ย้อนหลัง
- การดูรายละเอียดล็อตต้องมีสิทธิ์แยกต่างหากจากการดูยอดรวม บางคนเห็นยอดรวมได้แต่เห็นล็อตไม่ได้
- ยอดถูกตัดเองตอนบิลชำระเงินหรือจ่ายยา ไม่ต้องไปตัดเอง ถ้าตัดซ้ำยอดจะเพี้ยน
- ตัวเลขสต๊อกที่โชว์ในหน้าตั้งค่าสินค้าเป็นค่าโดยประมาณ (คนละที่เก็บกับบัญชีเคลื่อนไหว) ของจริงให้ยึดที่หน้าคลังสินค้านี้
- เปลี่ยนวิธีคิดต้นทุนแล้วมูลค่ารวมจะเปลี่ยนตาม เป็นเรื่องปกติ ไม่ใช่ข้อมูลผิด — แต่ละแบบตอบคนละคำถาม เวลาส่งตัวเลขให้บัญชีต้องบอกด้วยว่าใช้แบบไหน
- ไม่ได้เลือกวิธีคิดต้นทุน ระบบจะใช้ค่าที่คลินิกตั้งไว้ ซึ่งค่าเริ่มต้นคือต้นทุนเฉลี่ย
- ต้นทุนมาตรฐานคิดจากราคาทุนที่กรอกไว้ในรายการสินค้า จึงดู “ครบ” เสมอแม้ของจริงจะยังไม่เคยบันทึกต้นทุนตอนรับเข้า ระวังตีความเกินจริง
🔑 สิทธิ์การใช้งาน
- ดูยอดสต๊อกและประวัติการเคลื่อนไหว — inventory.stock.view
- ดูรายละเอียดล็อต — inventory.lot.view (สิทธิ์แยกต่างหากจากยอดรวม)
- มีรายงานสต๊อกในศูนย์รายงานอีก 2 ตัว (ยอดคงเหลือ ณ วันที่ และสรุปเข้า-ออกต่อรายการพร้อมดาวน์โหลด CSV) และตารางยอดสต๊อกจะขึ้นสัญลักษณ์เตือนเมื่อของต่ำกว่าจุดสั่งซื้อขั้นต่ำ
💡 เคล็ดลับ
- อยากรู้ว่าทำไมยอดเปลี่ยน ให้เปิดประวัติการเคลื่อนไหวของรายการนั้น จะเห็นทุกครั้งที่ของเข้าออกพร้อมเหตุการณ์และเลขที่เอกสาร
- ใช้การค้นหาล็อตใกล้หมดอายุช่วยวางแผนใช้ของหรือทิ้งของก่อนหมดอายุ
ปรับยอดสต๊อก
ปรับยอดสต๊อกใช้แก้ยอดคงเหลือเมื่อของจริงไม่ตรงกับในระบบ เช่น ของชำรุด ของหาย หรือนับเกิน/ขาด โดยต้องยื่นคำขอพร้อมเหตุผล แล้วให้อีกคนอนุมัติก่อนยอดถึงจะเปลี่ยนจริง การบังคับให้มีสองคน (คนยื่นกับคนอนุมัติคนละคน) ช่วยกันการแก้ยอดเองคนเดียว ซึ่งเป็นเรื่องของความซื่อตรงในคลังของมีค่า

✨ คุณสมบัติเด่น
- ยื่นคำขอปรับยอดแบบเพิ่มหรือลด (เลือกได้ว่าจะ ลบออก / เพิ่ม / ตั้งยอดใหม่) พร้อมเหตุผล
- เห็นยอดคงเหลือปัจจุบันและผลลัพธ์หลังปรับก่อนส่งคำขอ
- ต้องมีคนที่สองอนุมัติก่อนยอดจะเปลี่ยน (กฎสี่ตา)
- ยกเลิกคำขอที่ยังไม่อนุมัติได้
- พออนุมัติแล้วระบบสร้างประวัติการเคลื่อนไหวให้อัตโนมัติ
- คลินิกแพ็กเกจเล็ก (Solo/Starter) อนุมัติคำขอของตัวเองได้ (ข้อยกเว้นเดียวของกฎสี่ตาในคลัง)
📝 วิธีใช้งาน
- เปิดคำขอปรับยอดไปที่ศูนย์สต๊อก > แท็บปรับยอด แล้วกดยื่นคำขอใหม่ (inventory/stock-adjustments/new) หรือกดปรับด่วนจากแถวสินค้า/ล็อตในหน้าสต๊อกโดยตรง
- เลือกของและจุดเก็บระบุรายการ จุดเก็บ และล็อต (ถ้ามี) ที่ต้องการปรับ
- ใส่จำนวนและเหตุผลใส่จำนวนที่จะเพิ่มหรือลด แล้วเลือกเหตุผลจากตัวเลือกที่ระบบมีให้ (ของเสีย/ของหาย/แก้ยอดนับ/นับรอบ/จัดหมวดใหม่/อื่น ๆ) พิมพ์เองไม่ได้
- ส่งคำขอกดส่ง คำขอจะอยู่สถานะรออนุมัติ ตอนนี้ยอดสต๊อกยังไม่เปลี่ยน
- ให้อีกคนอนุมัติผู้มีสิทธิ์อนุมัติ (คนละคนกับคนยื่น) เปิดคำขอแล้วกดอนุมัติ ระบบจะปรับยอดจริงทันที
⚠️ ข้อควรระวัง
- คนยื่นกับคนอนุมัติต้องคนละคน คนยื่นอนุมัติคำขอตัวเองไม่ได้ (ยกเว้นคลินิก Solo/Starter ที่ระบบยอมให้อนุมัติเองได้)
- เหตุผลต้องเลือกจากตัวเลือกที่ระบบกำหนด พิมพ์เองไม่ได้
- ถ้าจะลดยอดแต่ของในระบบไม่พอ ระบบจะปฏิเสธตอนอนุมัติ (สต๊อกติดลบไม่ได้)
- ปรับยอดเป็นคนละเรื่องกับการทิ้งของ ถ้าจะทิ้งของหมดอายุให้ใช้เมนูทิ้ง/ทำลายสต๊อกแทน เพื่อให้มีหลักฐานเหตุผลชัด
🔑 สิทธิ์การใช้งาน
- ดูคำขอปรับยอด — inventory.stock.view
- ยื่น/ยกเลิกคำขอ — inventory.adjustment.request
- อนุมัติ — inventory.adjustment.approve
💡 เคล็ดลับ
- คนยื่นยกเลิกคำขอของตัวเองได้โดยไม่ต้องมีคนที่สอง และผู้มีสิทธิ์อนุมัติก็ยกเลิกคำขอที่ค้างได้
- ตราบใดที่ยังไม่อนุมัติ คำขอจะไม่มีผลต่อยอดและรายงานเลย มีแค่บันทึกว่าเคยยื่น
- ต้อนรับก็ยื่นคำขอปรับยอดได้ ไม่ใช่เฉพาะฝ่ายจัดซื้อ
นับสต๊อกpro+ เท่านั้น
นับสต๊อกใช้นับของจริงในคลังเทียบกับยอดในระบบ ระบบจะดึงรายการและยอดที่คาดไว้ในจุดเก็บมาให้ แล้วเดินนับกรอกจำนวนจริง พอกดอนุมัติ ระบบจะปรับยอดให้ตรงกับที่นับได้อัตโนมัติ เหมาะกับการนับรอบประจำเพื่อให้ยอดในระบบตรงกับของจริง เป็นเครื่องมือรักษาความถูกต้องของคลัง

✨ คุณสมบัติเด่น
- เปิดรอบนับโดยดึงรายการและยอดที่คาดไว้ในจุดเก็บมาอัตโนมัติ (สูงสุดหนึ่งหมื่นบรรทัดต่อรอบ)
- กรอกจำนวนจริงทีละรายการ (ใส่ศูนย์ได้ถ้านับแล้วไม่เหลือ)
- อนุมัติแล้วระบบปรับยอดให้ตรงกับที่นับให้อัตโนมัติ
- ตอนอนุมัติระบบใช้ยอดล่าสุดมาเทียบ ไม่ใช่ยอดตอนเริ่มนับ จึงคิดถูกแม้มีของขาย/รับเข้าระหว่างนับ
- ออกเลขรอบนับอัตโนมัติแบบ SC-ปีเดือน-เลขลำดับ
📝 วิธีใช้งาน
- เปิดรอบนับไปที่เมนู สต็อกสินค้า แท็บนับสต๊อก กดสร้างรอบนับใหม่ เลือกจุดเก็บที่จะนับ และเปิดตัวเลือกดึงรายการ (snapshot) เพื่อให้ระบบดึงของในจุดนั้นมาให้
- เดินนับของจริงเดินไปที่จุดเก็บ นับของจริงทีละรายการ
- กรอกจำนวนจริงใส่จำนวนที่นับได้ของแต่ละรายการ ถ้านับแล้วไม่เหลือให้ใส่ 0 (ไม่ใช่เว้นว่าง — รายการที่เว้นว่างจะถูกข้ามตอนอนุมัติ)
- ส่งให้อนุมัติเมื่อกรอกครบ ให้คนอื่นที่ไม่ใช่คนเปิดรอบนับเป็นผู้กดอนุมัติ
- ระบบปรับยอดให้พออนุมัติ ระบบจะปรับยอดทุกรายการที่นับได้ให้ตรงกับของจริงโดยอัตโนมัติ
⚠️ ข้อควรระวัง
- คนเปิดรอบนับอนุมัติเองไม่ได้ ต้องให้คนอื่นอนุมัติเสมอ ไม่มีข้อยกเว้นแม้เป็นคลินิกเล็ก (ต่างจากปรับยอดที่คลินิก Solo/Starter อนุมัติเองได้)
- รายการที่ยังไม่ได้กรอกจำนวนจริง (ปล่อยว่าง) จะถูกข้ามตอนอนุมัติ ไม่ถือว่านับได้ 0 ถ้าต้องการให้เป็นศูนย์ต้องพิมพ์ 0
- ตอนอนุมัติระบบเทียบกับยอดล่าสุด ณ ตอนนั้น ไม่ใช่ยอดตอนเริ่มนับ จึงปรับให้ลงตัวกับของจริง
- หน้ารายการนับจะอืดถ้ามีรายการเป็นพัน ๆ บรรทัด ควรนับเป็นจุดเก็บย่อยทีละจุด
🔑 สิทธิ์การใช้งาน
- ดูรอบนับ — inventory.counts.view
- เปิดรอบ/กรอกจำนวน/ยกเลิก — inventory.counts.manage
- อนุมัติ — inventory.counts.approve
💡 เคล็ดลับ
- ยกเลิกรอบนับได้เฉพาะรอบที่ยังไม่อนุมัติ
- ถ้านับเสร็จแล้วทุกรายการตรงพอดี (ไม่มีส่วนต่าง) อนุมัติได้ตามปกติ ระบบจะไม่สร้างการปรับยอด ถือว่าเป็นการยืนยันว่ายอดตรง
- นับสต๊อกใช้ได้ทุกแพ็กเกจ
โอนย้ายสต๊อกpro+ เท่านั้น
โอนย้ายสต๊อกใช้ย้ายของจากจุดเก็บหนึ่งไปอีกจุดหนึ่งภายในสาขาเดียวกัน ทำเป็นสองขั้นคือกดส่งของออกจากต้นทาง แล้วกดรับของที่ปลายทาง ระหว่างทางของจะอยู่ในสถานะกำลังขนย้าย (พักไว้ที่จุดของระหว่างขนย้าย) ทำให้รู้ตลอดว่าของอยู่ไหน ไม่หายไประหว่างทาง และยอดของแต่ละจุดเก็บถูกต้องเสมอ

✨ คุณสมบัติเด่น
- ย้ายของระหว่างจุดเก็บภายในสาขาเดียวกัน (ข้ามสาขาโดยตรงยังทำไม่ได้ — จุดเก็บของแต่ละสาขาแยกจากกัน)
- ทำสองขั้น: ส่งของออก แล้วรับของที่ปลายทาง
- ระหว่างทางของอยู่ในจุดพักระหว่างขนย้าย ไม่หายไปจากระบบ
- ระบุล็อตที่จะย้ายตอนกดส่งของออก (ตอนเป็นร่างยังไม่ต้องเลือกล็อต)
- ออกเลขใบโอนอัตโนมัติแบบ TR-ปีเดือน-เลขลำดับ
📝 วิธีใช้งาน
- สร้างใบโอนไปที่เมนู โอนย้ายระหว่างคลัง กดสร้างใหม่ เลือกจุดเก็บต้นทางและปลายทาง
- ใส่รายการที่จะย้ายเพิ่มรายการและจำนวนที่ต้องการย้าย (ตอนเป็นร่างยังไม่ต้องเลือกล็อต)
- กดส่งของออกเมื่อจะย้ายจริง กดส่งของออก ระบุล็อตที่จะย้ายของแต่ละรายการ (บังคับ — ของที่ไม่มีล็อตย้ายไม่ได้) ระบบจะตัดของจากต้นทางและพักไว้ในจุดขนย้าย
- กดรับของที่ปลายทางเมื่อของถึงปลายทาง กดรับของ ระบบจะย้ายของจากจุดขนย้ายเข้าจุดปลายทางและปิดใบโอน
⚠️ ข้อควรระวัง
- ต้องระบุล็อตตอนกดส่งของออก ของที่ไม่มีล็อตจะโอนไม่ได้
- พอกดส่งของออกไปแล้วยกเลิกไม่ได้ ถ้าส่งผิดต้องทำใบโอนย้อนกลับทางใหม่
- ยกเลิกได้เฉพาะตอนยังเป็นร่าง (ก่อนกดส่งของออก) เท่านั้น
- ส่งของออกจะติดลบสต๊อกไม่ได้ ถ้าต้นทางของไม่พอระบบจะปฏิเสธทั้งใบ
🔑 สิทธิ์การใช้งาน
- ดู/สร้าง/เพิ่มรายการ/ส่งของออก/รับของ/ยกเลิก — inventory.transfers.manage สิทธิ์เดียวครอบคลุมทุกอย่างรวมถึงการดู (ไม่มีสิทธิ์ดูแยก ไม่มีสิทธิ์อนุมัติแยก)
💡 เคล็ดลับ
- โอนภายในสาขาเดียวก็ได้ เช่น ย้ายจากห้องสต๊อกมาตู้ยาหน้าร้าน ต้นทางกับปลายทางแค่ต้องไม่ใช่จุดเดียวกัน
- อยากตามว่าของย้ายไปไหนแล้ว ดูสถานะใบโอนได้ (ร่าง / กำลังขนย้าย / รับแล้ว)
- โอนย้ายสต๊อกเป็นฟีเจอร์ของแพ็กเกจ Pro ขึ้นไป คลินิกแพ็กเกจเล็กจะไม่มีเมนูนี้
ทิ้ง/ทำลายสต๊อกpro+ เท่านั้น
ทิ้ง/ทำลายสต๊อกใช้ตัดของออกจากคลังเมื่อของหมดอายุ เสียหาย หรือต้องทำลาย โดยยื่นคำขอระบุของ จำนวน เหตุผล และพยาน (ถ้ามี) แล้วให้อีกคนอนุมัติ พออนุมัติของจะถูกย้ายไปจุดของทิ้งและตัดออกจากยอดใช้งาน การบังคับให้มีคนที่สองอนุมัติช่วยให้การทิ้งของมีค่ามีหลักฐานและตรวจสอบได้

✨ คุณสมบัติเด่น
- ยื่นคำขอทิ้งของพร้อมเหตุผลและระบุพยานได้
- ต้องมีคนที่สองอนุมัติก่อนของถึงจะถูกตัด (กฎสี่ตา ไม่มีข้อยกเว้นแม้คลินิกเล็ก)
- พออนุมัติ ของจะถูกย้ายไปจุดของทิ้งและตัดออกจากยอดใช้งาน
- ยกเลิกคำขอที่ยังไม่อนุมัติได้
- ออกเลขคำขออัตโนมัติแบบ DP-ปีเดือน-เลขลำดับ
📝 วิธีใช้งาน
- เปิดคำขอทิ้งของไปที่เมนู สต็อกสินค้า แท็บทิ้ง/ทำลาย แล้วกดยื่นคำขอใหม่
- เลือกของและจำนวนระบุรายการ จุดเก็บต้นทาง ล็อต (ถ้ามี) และจำนวนที่จะทิ้ง
- ใส่เหตุผลและพยานเลือกเหตุผลจากตัวเลือกที่ระบบมีให้ (พิมพ์เองไม่ได้) และระบุชื่อพยานได้ถ้าต้องการเป็นหลักฐาน
- ส่งคำขอกดส่ง คำขอจะอยู่สถานะรออนุมัติ ตอนนี้ของยังไม่ถูกตัด
- ให้อีกคนอนุมัติผู้มีสิทธิ์อนุมัติ (คนละคนกับคนยื่น) เปิดคำขอแล้วกดอนุมัติ ระบบจะตัดของและย้ายไปจุดของทิ้งทันที
⚠️ ข้อควรระวัง
- คนยื่นกับคนอนุมัติต้องคนละคน คนยื่นอนุมัติเองไม่ได้ (ไม่มีข้อยกเว้นสำหรับคลินิกเล็กเหมือนปรับยอด)
- เมื่ออนุมัติแล้วย้อนไม่ได้ ถ้าทิ้งผิดต้องแก้ด้วยการปรับยอดสต๊อก
- เหตุผลการทิ้งต้องเลือกจากตัวเลือกที่ระบบกำหนด พิมพ์เองไม่ได้
- ถ้าของในระบบไม่พอตามจำนวนที่จะทิ้ง ระบบจะปฏิเสธตอนอนุมัติ
🔑 สิทธิ์การใช้งาน
- เห็นแท็บทิ้ง/ทำลายในหน้าจอ — ต้องมีสิทธิ์ขอทิ้งหรืออนุมัติทิ้งอย่างใดอย่างหนึ่ง (คนที่มีแค่สิทธิ์ดูสต๊อกจะไม่เห็นแท็บนี้)
- ยื่น/ยกเลิกคำขอ — inventory.disposal.request
- อนุมัติ — inventory.disposal.approve
💡 เคล็ดลับ
- ใช้พยานช่วยเป็นหลักฐานตอนทำลายของที่ต้องระมัดระวัง เช่น ยาหรือของมีค่า
- ของหมดอายุที่เจอตอนนับสต๊อก ให้เปิดคำขอทิ้งแยก ไม่ใช่ปรับยอดให้หาย เพื่อให้มีเหตุผลและหลักฐานชัด
- ทิ้ง/ทำลายสต๊อกใช้ได้ทุกแพ็กเกจ
นำเข้ายอดสต๊อกตั้งต้นเบื้องหลัง
นำเข้ายอดสต๊อกตั้งต้นใช้ตอนเริ่มเปิดใช้ระบบครั้งแรก เพื่อใส่ยอดของที่มีอยู่จริงในคลังเข้าระบบทีเดียวจากไฟล์ เป็นงานตั้งค่าเริ่มต้นที่ทำผ่านหน้าศูนย์นำเข้าข้อมูลในแอป ไม่ได้ใช้ในงานประจำวัน เพื่อให้ระบบรู้ยอดของจริงตั้งแต่วันแรก และจ่ายของออกได้โดยไม่ติดยอดเป็นศูนย์

✨ คุณสมบัติเด่น
- นำเข้ายอดของที่มีอยู่จริงเข้าระบบทีเดียวจากไฟล์ Excel (สินค้า/วัสดุ/สมุนไพร)
- กรอกต้นทุนต่อหน่วยมาด้วยได้ ระบบจะบันทึกเป็นต้นทุนของล็อตตั้งต้น ทำให้รายงานมูลค่าสต๊อกมีตัวเลขตั้งแต่วันแรก
- นำเข้าซ้ำได้ปลอดภัย รายการที่มียอดอยู่แล้วที่จุดเก็บนั้นจะถูกข้าม ไม่ซ้ำซ้อน
- แต่ละบรรทัดในไฟล์ทำงานแยกกัน บรรทัดที่ผิดจะข้ามไป บรรทัดที่ถูกยังลงยอดได้
📝 วิธีใช้งาน
- ดาวน์โหลดแม่แบบในหน้า ศูนย์นำเข้าข้อมูล เลือกยอดสต๊อกตั้งต้น แล้วดาวน์โหลดแม่แบบ Excel ภาษาไทยที่เติมรายการสินค้าจากระบบให้แล้ว (สูงสุด 5,000 แถว) เว้นช่องจุดเก็บ = เข้าห้องสต๊อกหลักอัตโนมัติ
- กรอกจำนวนแล้วอัปโหลดตรวจกรอกจำนวนคงเหลือ (สมุนไพรเป็นกรัม) อัปโหลดให้ระบบตรวจความถูกต้องก่อน แก้บรรทัดที่ติดแดงจนผ่าน
- ยืนยันนำเข้ากดยืนยันครั้งเดียวตอนเริ่มใช้งาน ระบบจะลงยอดและสร้างประวัติให้ทุกบรรทัด
⚠️ ข้อควรระวัง
- ทำผ่านหน้าศูนย์นำเข้าข้อมูล (Migration Center) ในแอป — ต้องมีสิทธิ์นำเข้าข้อมูล และต้องเลือกสาขาให้ตรงกับไฟล์ที่ตรวจไว้ ไม่งั้นระบบจะไม่ให้ยืนยัน (ชุดข้อมูลที่ตรวจไว้จะยังอยู่ ยืนยันใหม่ได้) พนักงานทั่วไปไม่ต้องยุ่ง
- เป็นคนละเมนูกับการนำเข้ารายการสินค้า (catalog) การนำเข้ารายการสินค้าจะไม่ลงยอดสต๊อกจริงให้ ต้องนำเข้ายอดตั้งต้นนี้แยกเพื่อให้จ่ายของออกได้
🔑 สิทธิ์การใช้งาน
- ยืนยันนำเข้ายอดสต๊อกตั้งต้น: สิทธิ์นำเข้าข้อมูล — platform.migration.manage (สิทธิ์เดียวกับทุกขั้นของศูนย์นำเข้าข้อมูล ไม่ต้องมีสิทธิ์ปรับยอดสต๊อกแยกอีก)