ข้ามไปยังเนื้อหาหลัก

หลายสาขาและการแบ่งปัน (ถ้าเปิดใช้)

จัดการกลุ่มร้าน นโยบายแบ่งปันแบบมีทิศทาง และการดำเนินงานร่วม (Twin) สำหรับธุรกิจหลายสาขา

หน้าจอแอปพลิเคชันปัจจุบัน

กลุ่มร้าน​

Admin → กลุ่มร้าน

กลุ่มร้านคือชุดร้านที่ตั้งชื่อ สองประเภท:

ประเภทวัตถุประสงค์สร้างโดย
ปฏิบัติการร้านที่ทำงานร่วมกัน (แชร์พนักงาน ปฏิบัติการร่วม)Super admin / Tenant admin
ย่านการจัดกลุ่มทางภูมิศาสตร์สำหรับวิเคราะห์ระบบ (สร้างอัตโนมัติ)

กลุ่มปฏิบัติการเป็นรากฐานของนโยบายแบ่งปันและ Twin

สร้างกลุ่ม​

  1. กลุ่มร้าน → สร้าง
  2. ตั้งชื่อกลุ่ม กลุ่มที่คุณสร้างเป็นประเภทปฏิบัติการโดยค่าเริ่มต้น — ประเภทแสดงเป็นป้ายในรายการและไม่ได้เลือกในฟอร์ม
  3. เพิ่มร้าน (จากร้านที่เข้าถึงได้)
  4. บันทึก

นโยบายแบ่งปัน — การอนุญาตแบบมีทิศทาง​

Admin → กลุ่มร้าน → เลือกกลุ่ม → แท็บนโยบายแบ่งปัน

นโยบายแบ่งปันบอกว่า: "ร้าน A อนุญาตร้าน B เข้าถึงทรัพยากร X ด้วยความสามารถ Y"

ร้านต้นทาง ──► ร้านปลายทาง
(ให้) (ได้รับการเข้าถึง)

หลักการสำคัญ​

  • ชัดเจน: ไม่มีอะไรแบ่งปันตามค่าเริ่มต้น ทุกการกระทำข้ามสาขาต้องมีนโยบาย
  • มีทิศทาง: A→B เป็นอิสระจาก B→A แบ่งปันสองทางต้องมีสองนโยบาย
  • ต่อทรัพยากร: แต่ละนโยบายครอบคลุมหนึ่งประเภททรัพยากร (พนักงาน ตารางเวร คิว POS ที่แชร์ สินค้า (แคตตาล็อกคลังสินค้า) Visit ลูกค้า นัดหมาย บัตรกำนัล แพ็กเกจ คูปอง เงินเดือน ปิดยอด)

สร้างนโยบาย​

  1. เปิดกลุ่มปฏิบัติการ → นโยบายแบ่งปัน → สร้าง
  2. เลือกร้านต้นทาง (ใครให้) และร้านปลายทาง (ใครรับ)
  3. เลือกประเภททรัพยากร
  4. เลือกพรีเซ็ต (ไม่มี / อ่านอย่างเดียว / ใช้ได้ / ทำงานร่วมกัน) หรือตั้งกำหนดเอง
  5. ประเภทสินทรัพย์ (บัตรกำนัล/แพ็กเกจ/คูปอง): เลือกความหมายการชำระบัญชี —
    • พูลร่วม (ค่าเริ่มต้น): สาขาในเครือเดียวกันแลกให้กันโดยไม่มีการจ่ายระหว่างสาขา
    • ต้องมีการชำระบัญชีระหว่างร้าน: กรอกเปอร์เซ็นต์ที่ร้านผู้แลกเก็บไว้ (เช่น 80%); ส่วนของร้านผู้ออก (20%) คำนวณให้อัตโนมัติ การแลก $100 ที่ร้านพันธมิตรจะสร้างภาระ $80 ระหว่างสาขา
  6. บันทึก

หน้าจอแอปพลิเคชันปัจจุบัน

Settlement ระหว่างสาขาและการปรับปรุง​

การแลกข้ามสาขาภายใต้นโยบายแบ่งตามเปอร์เซ็นต์จะถูกรวบรวมเป็น Settlement ระหว่างสาขารายเดือนโดยใช้อัตราที่ตรึงไว้ ณ เวลาแลก — การเปลี่ยนนโยบายภายหลังไม่เขียนทับเศรษฐกิจในอดีต เมื่อฝ่ายใดฝ่ายหนึ่งยืนยัน Settlement แล้ว ชุดบรรทัดจะถูกตรึง การแลกที่ปรากฏหลังการตรึง (หรือจากเดือนที่พลาด) จะถูกรวบรวมเป็นSettlement ปรับปรุงแยกต่างหากที่นับเข้าเดือนเดิม ดังนั้นภาระผูกพัน $150 ที่ยืนยันแล้วยังคงเป็น $150 และการแลก $100 ที่มาช้าจะปรากฏเป็นการปรับปรุง +$80 ของตัวเอง

พรีเซ็ต vs กำหนดเอง​

พรีเซ็ตใช้ทั่วไป
ไม่มีปฏิเสธทั้งหมด (บล็อกชัดเจน)
อ่านอย่างเดียวเห็นข้อมูลแต่ทำอะไรไม่ได้
ใช้ได้ใช้ทรัพยากรได้ (มอบหมายพนักงาน แลกบัตรกำนัล)
ทำงานร่วมกันเข้าถึงปฏิบัติการเต็ม (แก้ จัดตาราง จัดการ)
กำหนดเองเลือกความสามารถทีละตัว

ปิดใช้งาน / ลบนโยบาย​

  • ปิดใช้งาน: นโยบายยังมองเห็นแต่ปฏิเสธการกระทำใหม่ บันทึกเก่าไม่กระทบ
  • ลบ (อ่อน): ซ่อนจากรายการที่ใช้งาน กู้คืนได้

การดำเนินงานร่วม (Twin)​

Admin → การดำเนินงานร่วม

Twin คือ "ปุ่มง่าย" สำหรับร้านที่ดำเนินงานเป็นหนึ่ง — สร้างนโยบายแบ่งปันทั้งหมดอัตโนมัติที่คุณต้องตั้งค่าด้วยมือ

Twin ทำอะไร​

เมื่อเปิดใช้ Twin สร้างนโยบายสองทิศทางระหว่างร้านสมาชิกทั้งหมดสำหรับ:

  • คิว POS ที่แชร์ (ดู/มอบหมายพนักงานที่อยู่ในกะของกันและกัน)
  • ตารางเวร (ดู/จัดตาราง/ลงเวลาเข้าพนักงานที่แชร์)
  • Visit (ดู Visit ของสาขาพันธมิตร)
  • ลูกค้า (ดู/สร้าง/แก้ไขข้ามสาขา)
  • นัดหมาย (ดู/จัดการข้ามสาขา)
  • เงินเดือน (ดูข้อมูลรวม และรวมค่าตอบแทนของพนักงานแต่ละคนไปคำนวณที่สาขาหลัก — ดูเงินเดือน) และสรุปปิดยอด
  • บัตรกำนัล แพ็กเกจ คูปอง (แลกข้ามสาขาแบบพูลร่วม — ไม่มีการจ่ายระหว่างสาขา)

Twin ไม่สร้างนโยบายพนักงานหรือแคตตาล็อกสินค้า — การยืมพนักงานยังต้องมีนโยบายพนักงานที่ระบุชัดเจนพร้อมติ๊กมอบหมายพนักงานให้สาขาปลายทาง

สร้าง Twin​

  1. การดำเนินงานร่วม → สร้าง
  2. เลือกกลุ่มร้านปฏิบัติการ (ต้องมี ≥ 2 ร้าน)
  3. ตั้งชื่อ (เช่น "ชั้น 1 การดำเนินงานร่วม")
  4. ตรวจสอบและปรับแพ็กเกจเริ่มต้น (ความสามารถไหนจะเปิด)
  5. เลือกว่าทุกร้านต้องยืนยันก่อนเปิดใช้หรือไม่
  6. สร้าง

วงจรชีวิต​

ร่าง → (สมาชิกยืนยัน) → ใช้งาน → ไม่ใช้งาน
  • ร่าง: แก้ไขสมาชิกและแพ็กเกจเริ่มต้นได้
  • ใช้งาน: นโยบายทำงาน; แก้สมาชิก/แพ็กเกจต้องปิดใช้ก่อน
  • ไม่ใช้งาน: นโยบายที่จัดการทั้งหมดถูกปิด; เปิดใช้ใหม่ได้

การยืนยันสมาชิก​

แต่ละร้านใน Twin ต้องยืนยันการเข้าร่วม (เว้นแต่ปิด require_all_confirmed) ผู้จัดการภูมิภาคยืนยันร้านที่จัดการได้

ขอบเขตข้ามสาขา​

การยืมพนักงาน​

ด้วยนโยบายแบ่งปันที่ถูกต้อง (employee.assign_to_local_store):

  • นักบำบัดจากร้าน A สามารถถูกมอบหมายทำงานที่ร้าน B
  • กะที่ร้าน B มี sharing_policy_id เชื่อมกลับนโยบายที่อนุญาต
  • คอมมิชชันบันทึกที่ร้านที่ให้บริการจริง ค่าตอบแทนคำนวณที่สาขาหลักของพนักงาน (การจ้างงานหลัก) เมื่อร้าน B ให้สิทธิ์ payroll.consolidate แก่สาขาหลัก — Twin ให้สิทธิ์นี้อัตโนมัติ มิฉะนั้นร้าน B คำนวณเฉพาะส่วนของตน การจ้างงานที่เกิดจากการยืมตัวตั้งเป็นสาขาหลักไม่ได้

Settlement ระหว่างสาขา​

เมื่อทรัพยากรที่แชร์สร้างรายรับที่สาขาพันธมิตร (เช่น บัตรกำนัลขายที่ A แลกที่ B) นโยบายแบบแบ่งเปอร์เซ็นต์จะสร้างรายการ settlement ระหว่างสาขา — นโยบายพูลร่วม (ค่าเริ่มต้น Twin สำหรับสินทรัพย์) ไม่สร้างภาระระหว่างสาขา จำนวนเงินใช้อัตราที่ตรึงไว้ตอนแลก และการแลกที่มาถึงหลังการยืนยัน/เดือนที่พลาดจะเข้าsettlement ปรับปรุงแยกที่อ้างอิงเดือนเดิม โดยไม่แก้ไขภาระที่ยืนยันแล้ว

Settlement ระหว่างสาขาสร้างรายเดือนโดย Celery task ใช้ Admin → Settlement ระหว่างสาขา เพื่อ:

  1. กรองคิวตามสาขาที่ได้รับอนุญาตและสถานะ แล้วเปิดดูบรรทัดต้นทางที่ถูกตรึง
  2. เลือกฝั่งสาขาที่คุณเป็นตัวแทนอย่างเจาะจงก่อนยืนยันหรือโต้แย้ง
  3. ระบุเหตุผลเมื่อโต้แย้ง หรือแก้ข้อโต้แย้งเพื่อเริ่มการยืนยันทั้งสองฝั่งใหม่
  4. หลังผู้ดูแลคนละคนยืนยันทั้งสองฝั่งแล้ว super admin หรือ tenant admin จึงบันทึกเลขอ้างอิงการโอนภายนอกขั้นสุดท้าย

เซิร์ฟเวอร์ตรวจขอบเขตของทั้งสองสาขา ผู้ดำเนินการ สถานะ ยอดรวมบรรทัด และรายการ Ledger ที่สมดุลอีกครั้ง หน้านี้แก้ไขหรือลบ Settlement และบรรทัดที่ถูกตรึงไม่ได้ นโยบายพูลร่วมไม่ปรากฏที่นี่เพราะไม่สร้างภาระระหว่างสาขา

เคล็ดลับ​

  • เริ่มจาก Twin — ถ้าร้านเป็นเจ้าของเดียวกันและดำเนินงานเป็นหน่วยเดียว Twin ให้ 90% ของที่ต้องการโดยไม่ต้องตั้งค่านโยบายด้วยมือ
  • นโยบายด้วยมือสำหรับข้อยกเว้น — ใช้นโยบายเดี่ยวสำหรับกรณีเฉพาะ (เช่น แชร์แคตตาล็อกคลังสินค้ากับร้านพันธมิตรแต่ไม่แชร์คิว)
  • ตรวจนโยบายเป็นระยะ — ปิดนโยบายสำหรับพันธมิตรที่จบแล้ว นโยบายที่ใช้งาน = ความไว้วางใจที่ใช้งาน
  • พูลร่วมภายใน Twin — นี่คือการออกแบบ ร้านเจ้าของเดียวกันไม่ต้อง "จ่ายให้กัน" สำหรับการแลกข้ามสาขา