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_idtersedia, ambil equipment langsung - Tier 2 (Fallback): Jika tidak ada
bom_line_iddi vals, cari matching BoM line berdasarkan product_id dan MO
- Tier 1 (Direct): Jika
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 daribom_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
- Panggil
🔄 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_momasih enforce (1 equipment = 1 material) - Test manual override di MO (user should still bisa change equipment per MO)
📁 Files Modified
-
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 -
grt_scada/models/stock_move.py
- Enhanced create() method: tambah fallback logic untuk cari equipment via mo+product -
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
-
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
-
Constraint enforcement: Jika ada conflict (1 equipment untuk 2 material), constraint
_check_unique_silo_equipment_per_moakan throw error. This is intentional. -
By-products: By-products tidak ter-sync, hanya raw materials (ini benar, by-products tidak butuh SCADA equipment mapping)
🚀 Deployment Steps
- Copy updated files to production
- Restart Odoo service
- IMPORTANT: No migration needed, no downtime required
- Test dengan test data
- Monitor production MO creation to verify fix
📞 Questions & Support
If there are any issues or unexpected behavior:
- Check
FIX_SCADA_EQUIPMENT_PROPAGATION.mdfor technical details - Check
GUIDE_SCADA_EQUIPMENT_USAGE.mdfor user guide - Review MO timeline/chatter untuk error messages
- 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