สัญญาบริการ¶
โมดูล สัญญาบริการ (roots_hemms_service_contracts) ช่วยให้ทีม BME บันทึกการรับประกัน สัญญาบำรุงรักษา (MA) และข้อตกลงกับผู้ขายทุกฉบับไว้ในที่เดียว จากนั้นเชื่อมโยงสัญญาที่ใช้งานอยู่กับคำขอซ่อมแก้ไขใหม่ทุกรายการโดยอัตโนมัติ เพื่อให้ ช่างเทคนิคทราบ — ในขณะที่เปิดใบงาน — ว่าผู้ขาย จะรับผิดชอบงานหรือโรงพยาบาลต้องชำระ
คุณสมบัติหลัก¶
1. หนึ่งเรกคอร์ดต่อหนึ่งข้อตกลงกับผู้ขาย¶
สัญญาแต่ละฉบับเป็น hemms.service.contract พร้อมเลขอ้างอิงต่อเนื่อง (SC/2026/00001) ที่ครอบคลุมเครื่องมือแพทย์หนึ่งหรือหลายรายการ ผู้ขายหนึ่งราย ประเภท สัญญาหนึ่งประเภท (Warranty / Extended Warranty / MA / Spare-only / Labor-only) วันที่เริ่ม และวันที่สิ้นสุด และระดับ SLA เสริม
2. ขอบเขตความครอบคลุมต่อประเภท¶
ภายในสัญญาทุกฉบับ แท็บ Coverage ให้คุณทำเครื่องหมายแต่ละ maintenance.kind ว่า Included (อยู่ในขอบเขต) และ Billable to Hospital (อะไหล่เรียกเก็บแยกแม้ในงานที่ครอบคลุม) Q3.5 อ่าน บูลีนสองตัวนี้เพื่อตั้ง roots_is_billable_to_hospital บนคำขอใหม่ทุกรายการ
3. เชื่อมโยงสัญญาที่ใช้งานอยู่กับ maintenance.request โดยอัตโนมัติ¶
เมื่อช่างเทคนิคเปิดคำขอซ่อมแก้ไขบนเครื่องมือแพทย์ที่อยู่ในความครอบคลุม ฟอร์มจะกรอก roots_service_contract_id โดยอัตโนมัติด้วยสัญญาที่ใช้งานอยู่ ล่าสุดของเครื่องมือแพทย์ — และแบนเนอร์ความครอบคลุมเหนือชื่อจะระบุ ผลที่ตามมาอย่างชัดเจน:
- ✅ ครอบคลุมโดย SC/2026/00003 (GE Healthcare) — ผู้ขายชำระ
- ✅ ครอบคลุมโดย SC/2026/00003 (GE Healthcare) — โรงพยาบาลต้องชำระ
- ⚠ ครอบคลุมโดย SC/2026/00003 แต่ประเภทไม่อยู่ในความครอบคลุม — โรงพยาบาลชำระ
- ⚠ อยู่นอกสัญญา — โรงพยาบาลชำระ
ช่างเทคนิคสามารถแทนที่สัญญาที่เลือกด้วยตนเองได้; การคำนวณ จะไม่เขียนทับการแทนที่นั้นในการแก้ไขครั้งต่อไป
4. การแจ้งเตือนการต่ออายุก่อนหมดอายุ¶
งานตามเวลา (cron) รายวันจะเลื่อนสถานะสัญญา draft → active → expired ตาม วันที่ จากนั้นสร้าง mail.activity บนผู้ใช้ Responsible สำหรับ สัญญาที่ใช้งานอยู่ใด ๆ ที่วันที่สิ้นสุดอยู่ภายใน roots_renewal_alert_days (ค่าเริ่มต้น 60) ค่าเริ่มต้นแบบเกณฑ์เดียว ตรงกับแผน D7 — แบบหลายระยะ (90/60/30/7) อยู่ในแผนงาน Q4
5. การแสดงระดับ SLA¶
สัญญาทุกฉบับมี roots_sla_tier (bronze / silver / gold / platinum) บวกกับ roots_sla_response_hours แบบอิสระ Q3 แสดง สิ่งเหล่านี้บนมุมมองฟอร์มและรายการ; การตรวจจับการละเมิด SLA เปรียบเทียบ request.create_date กับ first_response_date และเป็น hook สำหรับ สกอร์การ์ดผู้ขายของ Q4
6. สองภาษาทุกที่¶
ชื่อสัญญา ประเภทสัญญา และการค้นหาทั้งหมดรองรับ roots_name_th เพื่อให้ผู้ใช้ภาษาไทยสามารถค้นหาสัญญาด้วยป้ายชื่อ ภาษาไทยได้
7. การเจาะลึกด้วยปุ่มสถิติสามแบบ¶
- ฟอร์มผู้ขาย (partner) → "X Service Contracts"
- ฟอร์มเครื่องมือแพทย์ → "X Contracts" + ป้าย Under Warranty ในส่วนหัว
- ฟอร์มสัญญา → ปุ่มสถิติ "Equipment" + "Requests"
สถาปัตยกรรมโมดูล¶
Layer 3 — roots_hemms_service_contracts (this module)
↓
Layer 2 — maintenance_partner (OCA) ← vendor link on equipment
Layer 2 — roots_hemms_pm ← maintenance.kind vocabulary
Layer 2 — roots_hemms_asset_master ← equipment master with brand/model
↓
Layer 1 — maintenance + mail (Odoo base)
การไม่พึ่งพาโดยตั้งใจ: เรา ไม่ vendor OCA maintenance_equipment_contract โมดูลนั้นมีเพียง ~25 บรรทัดบน OCA contract (การออกใบแจ้งหนี้แบบประจำ) ซึ่งพึ่งพา account — โรงพยาบาลติดตามความครอบคลุมการรับประกัน/MA และระดับ SLA ไม่ใช่ใบแจ้งหนี้ แบบประจำ โมเดล Layer 3 ที่กระชับสะท้อนรูปแบบฟิลด์ m2m equipment ↔ contract โดยไม่มีภาระเรื่องการออกใบแจ้งหนี้ ดูแผน §2 (D1) สำหรับ เหตุผลและเงื่อนไขการทบทวน
ไปที่ใดต่อ¶
- เริ่มต้นใช้งาน — สร้างสัญญาฉบับแรกใน 10 นาที
- การตั้งค่า — ประเภทสัญญา ลำดับเลข SLA ACL
- กระบวนการทำงาน — การร่าง การเปิดใช้งาน การต่ออายุ การยกเลิก
- การรายงาน — ตัวกรอง การเจาะลึก KPI ที่ควรติดตาม