Files
Odoo14Kanjabung/SCADA_EQUIPMENT_FIX_SUMMARY.md

5.2 KiB

RINGKASAN PERBAIKAN: SCADA Equipment Auto-Propagation to MO

📋 Masalah yang Diperbaiki

Issue: Ketika membuat Manufacturing Order (MO) dari BoM, informasi SCADA Equipment (Silo/Equipment) tidak otomatis dipropagasi ke component lines MO.

Impact: Pengguna harus manual mengisi SCADA Equipment untuk setiap material di MO, padahal sudah diatur di BoM.


Solusi yang Diimplementasikan

1. Enhanced Stock Move Creation

File: grt_scada/models/stock_move.py

Perubahan:

  • Upgrade method create() dengan 2-tier approach:
    • Tier 1 (Direct): Jika bom_line_id tersedia, ambil equipment langsung
    • Tier 2 (Fallback): Jika tidak ada bom_line_id di vals, cari matching BoM line berdasarkan product_id dan MO

Benefit: Memastikan equipment terambil bahkan jika bom_line_id tidak langsung available saat stock move creation

2. Manufacturing Order Sync Methods

File: grt_scada/models/mrp_production.py

Perubahan:

  • New Method: _sync_scada_equipment_to_moves()

    • Iterate semua raw_material moves di MO
    • Untuk setiap move, jika belum punya scada_equipment_id, ambil dari bom_line_id.scada_equipment_id
  • Enhanced create(): Panggil _sync_scada_equipment_to_moves() setelah super().create()

    • Jadi saat MO dibuat, semua equipment sudah ter-copy
  • New Method: Override action_confirm()

    • Panggil _sync_scada_equipment_to_moves() setelah confirm
    • Memastikan sinkronisasi terjadi saat moves di-generate

🔄 Flow Otomatis

User create MO from BoM
        ↓
MrpProduction.create() called
        ↓
Call _sync_scada_equipment_to_moves() [SYNC #1]
        ↓
MO created dengan components + SCADA Equipment
        ↓
User confirm MO
        ↓
action_confirm() called
        ↓
Call _sync_scada_equipment_to_moves() [SYNC #2]
        ↓
MO confirmed dengan semua equipment ter-map

📊 Comparison: Before vs After

Aspek Before Fix After Fix
Manual Input Per component di MO Only at BoM level
Auto-Fill Not guaranteed Always happens
Sync Points Manual/Manual 2 automatic points
Human Error High risk Drastically reduced
User Effort High (banyak input) Low (one-time setup)
Data Consistency Depends on user Always consistent

🧪 Testing Checklist

  • Create BoM dengan multiple components, assign SCADA Equipment ke setiap line
  • Create MO single quantity dari BoM
  • Verify: Semua component di MO sudah punya SCADA Equipment yang same dengan BoM
  • Confirm MO
  • Verify: SCADA Equipment masih ada dan correct setelah confirm
  • Test dengan quantity > 1
  • Test dengan BoM yang punya by-products
  • Verify constraint _check_unique_silo_equipment_per_mo masih enforce (1 equipment = 1 material)
  • Test manual override di MO (user should still bisa change equipment per MO)

📁 Files Modified

  1. grt_scada/models/mrp_production.py

    - Enhanced create() method: tambah call ke _sync_scada_equipment_to_moves()
    - New method _sync_scada_equipment_to_moves(): sync equipment to all raw moves
    - New method action_confirm(): override to sync before confirm
    
  2. grt_scada/models/stock_move.py

    - Enhanced create() method: tambah fallback logic untuk cari equipment via mo+product
    
  3. Documentation Files (for user reference)

    - FIX_SCADA_EQUIPMENT_PROPAGATION.md: Technical documentation
    - GUIDE_SCADA_EQUIPMENT_USAGE.md: User guide
    

🔒 Backward Compatibility

  • No Breaking Changes: Existing code dan database tidak terpengaruh
  • No Migration Needed: No schema changes
  • Existing Records Safe: Only affects new/edited MO
  • Manual Override Still Works: User bisa tetap override equipment per MO

⚠️ Known Limitations & Notes

  1. Fallback matching: Jika ada multiple BoM lines untuk same product dengan qty berbeda, system akan ambil first match. Ideal untuk single-level BoM, tidak ideal untuk nested BoM (tapi bukan use case grt_scada

  2. Constraint enforcement: Jika ada conflict (1 equipment untuk 2 material), constraint _check_unique_silo_equipment_per_mo akan throw error. This is intentional.

  3. By-products: By-products tidak ter-sync, hanya raw materials (ini benar, by-products tidak butuh SCADA equipment mapping)


🚀 Deployment Steps

  1. Copy updated files to production
  2. Restart Odoo service
  3. IMPORTANT: No migration needed, no downtime required
  4. Test dengan test data
  5. Monitor production MO creation to verify fix

📞 Questions & Support

If there are any issues or unexpected behavior:

  1. Check FIX_SCADA_EQUIPMENT_PROPAGATION.md for technical details
  2. Check GUIDE_SCADA_EQUIPMENT_USAGE.md for user guide
  3. Review MO timeline/chatter untuk error messages
  4. Check manufacturing order logs

Summary

Sebelum: User frustration, manual work, error-prone, time consuming Sesudah: Smooth workflow, automatic sync, reliable, time-saving

Fix ini adalah quality-of-life improvement yang significant untuk manufacturing workflow dengan SCADA equipment tracking.


Date: 02 March 2026 Module: grt_scada v7.0.73 Status: Ready for Testing