ข้ามไปที่เนื้อหา

สัญญาบริการ: การตั้งค่า

หน้านี้ครอบคลุมทุกแง่มุมที่ปรับตั้งค่าได้ของโมดูลสัญญาบริการ

ประเภทสัญญา

hemms.contract.type คือ master vocabulary ขนาดเล็กที่จำแนก สัญญาทุกฉบับ โมดูลมาพร้อมกับ ประเภทตั้งต้น 5 ประเภท (ผู้ดูแลขยายได้):

Code English Name Thai Name การใช้งานทั่วไป
warranty Manufacturer Warranty รับประกันจากผู้ผลิต รวมมากับการซื้อ 1–3 ปี
ext_warranty Extended Warranty รับประกันแบบขยายเวลา ส่วนขยายที่ซื้อหลังการรับประกันพื้นฐาน
ma Maintenance Agreement (MA) สัญญาบำรุงรักษา PM + ซ่อมแก้ไขครบวงจร; พบบ่อยใน MRI/CT
spare_only Spare Parts Only เฉพาะอะไหล่ ผู้ขายจัดหาอะไหล่ โรงพยาบาลทำงานเอง
labor_only Labor Only เฉพาะค่าแรง ผู้ขายให้ความเชี่ยวชาญ อะไหล่เรียกเก็บตามการใช้

การเพิ่มประเภทสัญญากำหนดเอง

  1. นำทางไปยัง :menuselection:Maintenance --> Configuration --> Contract Types
  2. คลิก :guilabel:New
  3. กรอกข้อมูล:
    • Name (แปลได้, ภาษาอังกฤษ)
    • Thai Name (roots_name_th)
    • Code — ตัวระบุที่เสถียรและไม่ซ้ำ เป็นตัวพิมพ์เล็ก ไม่มีช่องว่าง (ใช้ โดยตรรกะปลายทาง เช่น ข้อความแบนเนอร์ Q3.5 และการกำหนดเส้นทาง Q4)
    • Description — เมื่อใดควรใช้ประเภทนี้
    • Sequence — การจัดลำดับการแสดงผล
  4. บันทึก

Code ขับเคลื่อนตรรกะ — เลือกค่าที่เสถียร

ฟิลด์ code ถูกอ้างอิงโดยตรรกะปลายทาง (เช่น ค่าคงที่ _WARRANTY_CODES = ("warranty", "ext_warranty") ใน maintenance_equipment.py กำหนดว่าป้าย Under-Warranty จะปรากฏบนฟอร์มเครื่องมือแพทย์หรือไม่) การเปลี่ยนชื่อ code หลังจากมีข้อมูล อยู่แล้วต้องใช้สคริปต์ migration แบบครั้งเดียว

การเก็บถาวรประเภทที่ไม่ใช้งาน

ปิด Active บนประเภทสัญญาเพื่อซ่อนจากดรอปดาวน์สัญญา ใหม่ สัญญาที่มีอยู่ของประเภทนั้นจะไม่ได้รับผลกระทบ

ลำดับเลขสัญญาบริการ (SC/2026/00001)

เลขอ้างอิงสัญญาถูกกำหนดเมื่อสร้างจากเรกคอร์ด ir.sequence (code hemms.service.contract)

รูปแบบเริ่มต้น

การตั้งค่า ค่า
Code hemms.service.contract
Prefix SC/%(year)s/
Padding 5
Company (ใช้ร่วมกันทุกบริษัท — company_id=False)

การปรับแต่งคำนำหน้า

ลำดับเลขผู้ดูแลแก้ไขได้ผ่าน:

:menuselection:Settings --> Technical --> Sequences & Identifiers --> Sequences

ค้นหา HEMMS Service Contract การปรับแต่งทั่วไป:

  • เพิ่มรหัสบริษัท: SC/%(year)s/HMS/SC/2026/HMS/00001
  • สลับไปเป็นปีพุทธศักราช: คำนำหน้า SC/2569/ (คุณต้องอัปเดต รายปี; หรือเขียน server action ที่เปลี่ยนคำนำหน้าในวันที่ 1 มกราคม)
  • เพิ่ม padding มากขึ้นสำหรับโรงพยาบาลที่ออกสัญญาหลายพันฉบับ: ตั้ง padding เป็น 7

ลำดับเลขต่อบริษัท

หากต้องการให้มีลำดับเลขหนึ่งชุดต่อบริษัท ให้ทำสำเนาเรกคอร์ดลำดับเลข ตั้ง company_id บนแต่ละสำเนา และ Odoo จะกำหนดเส้นทางตาม บริษัทที่ใช้งานอยู่เมื่อสร้าง

ระดับ SLA

สัญญาทุกฉบับมี Selection roots_sla_tier สี่ระดับ:

Tier การตอบสนองทั่วไป กรณีใช้งาน
Bronze 24-72 ชั่วโมง เครื่องมือแพทย์ความเสี่ยงต่ำ เครื่องมอนิเตอร์ระดับหอผู้ป่วย
Silver 8-24 ชั่วโมง เครื่องสร้างภาพ เครื่องวิเคราะห์ทางห้องปฏิบัติการ
Gold 4-8 ชั่วโมง อุปกรณ์ห้องผ่าตัด เครื่องช่วยหายใจ
Platinum <4 ชั่วโมง อุปกรณ์ค้ำจุนชีวิต ICU

roots_sla_response_hours แบบอิสระ (Float) ให้คุณบันทึก ข้อผูกพันที่แน่นอนของผู้ขาย Q3 แสดงสิ่งเหล่านี้บนฟอร์มสัญญาและ ตัวกรองค้นหา; การตรวจจับการละเมิด SLA เป็นของ Q4

การแจ้งเตือนการต่ออายุ

สัญญาแต่ละฉบับมี roots_renewal_alert_days (Integer, ค่าเริ่มต้น 60) — จำนวนวันก่อน date_end ที่ cron รายวัน จะสร้างกิจกรรมการต่ออายุ

วิธีปรับแต่งต่อสัญญา:

  1. เปิดฟอร์มสัญญา
  2. ในกลุ่ม Validity เปลี่ยน Renewal Alert (days before end)
  3. ฟิลด์ Alert On จะคำนวณใหม่เป็น date_end - roots_renewal_alert_days
  4. บันทึก

วิธีปรับแต่งแบบทั่วทั้งระบบ ให้ตั้งค่าเริ่มต้นในนิยามโมเดล hemms.service.contract (ต้องใช้โมดูลกำหนดเองหรือเรกคอร์ด ir.default) เกณฑ์แบบหลายระยะ (90/60/30/7) ถูกเลื่อนไปเป็น Q4

cron รายวัน

HEMMS Service Contract — daily state + renewal alert ทำงานวันละ ครั้งและทำสองสิ่งในธุรกรรมเดียว:

  1. การเปลี่ยนสถานะ (draft → active → expired) ตาม date_start / date_end สถานะ Cancelled จะยึดติด
  2. การแจ้งเตือนการต่ออายุ สำหรับสัญญาที่ใช้งานอยู่ที่ถึงหรือเลยวันที่แจ้งเตือน หาก roots_renewal_alerted=False

หากต้องการหยุด cron ชั่วคราว ให้แก้ไขผ่าน :menuselection:Settings --> Technical --> Automation --> Scheduled Actions และปิด Active

การตั้งค่าสองภาษา

โมดูลแสดงป้ายภาษาไทยบนสามเรกคอร์ด:

ฟิลด์ สองภาษา? ที่ใด
hemms.contract.type.name แปลได้ ต่อประเภทตั้งต้น
hemms.contract.type.roots_name_th ใช่ ต่อประเภทตั้งต้น
hemms.service.contract.name ไม่แปล (ภาษาอังกฤษ) ต่อสัญญา
hemms.service.contract.roots_name_th ใช่ ต่อสัญญา

การค้นหาบน hemms.service.contract จะดูที่ reference + name + roots_name_th ดังนั้นผู้ใช้ที่พิมพ์ข้อความภาษาไทยจะพบสัญญา

หากต้องการเพิ่มภาษาของหน่วยงานคุณ ให้ติดตั้ง language pack base ที่ตรงกันและแปลฟิลด์ Name ของประเภทสัญญาในแต่ละ locale

ACL / กลุ่มความปลอดภัย

มีกฎการเข้าถึงสองกฎมาพร้อมโมดูล:

Group Read Write Create Unlink
base.group_user (ผู้ใช้ภายในใด ๆ)
maintenance.group_equipment_manager

รูปแบบเดียวกันใช้กับทั้งสามโมเดล (hemms.contract.type, hemms.service.contract, hemms.service.contract.coverage.line)

การจำกัดการมองเห็นสัญญาเพิ่มเติม

สำหรับโรงพยาบาลขนาดใหญ่ที่มีทีม BME หลายทีม ให้ซ้อนกฎเรกคอร์ด (record rule) บน ACL — เช่น แสดงเฉพาะสัญญาที่ user_id = uid หรือผู้ใช้สังกัดทีม เพิ่มผ่าน :menuselection:Settings --> Technical --> Security --> Record Rules

ตัวกรองผู้ขาย — supplier domain ถูกเลื่อน

ปัจจุบันโมดูล ไม่ จำกัดตัวเลือก Vendor ให้เป็น partner ที่เป็น "supplier" ฟิลด์ supplier_rank มาจากโมดูล purchase ซึ่งเป็นทางเลือก และไม่อยู่ใน depends ของโมดูลนี้ สองวิธีในการ เพิ่มตัวกรองเมื่อคุณต้องการ:

  • เพิ่ม purchase ลงใน depends — ตัวเลือกที่หนักที่สุด; กระบวนการ PO เต็มรูปแบบจะพร้อมใช้งาน
  • เพิ่มบูลีน roots_is_vendor บน res.partner จากโมดูลติดตามผล เล็ก ๆ — เบากว่า เฉพาะเจาะจงต่อโรงพยาบาล

ทั้งสองตัวเลือกถูกติดตามเป็นงานติดตามผลของ Q3