Quality Control (QC)¶
Аддон до Essentials: 3-етапний потік приймання з ізоляцією блокованого запасу до перевірки якості.
1. Призначення¶
Стандартний GoodsReceipt одразу додає товар на склад. QC-потік уповільнює процес, розділяючи його на етапи:
- [1] Dock (розвантажувальна зона): товар прийнято на території, але ще не перевірено. Невелике потужне сховище.
- [2] QC Cage (зона контролю): товар перевіряється. Якщо дефекти — відокремлюється.
- [3] Stock (основний склад): товар доступний для продажу.
2. Моделі / стани¶
Реалізація через статус партії (Batch.status):
| Статус | Опис | Доступний для продажу |
|---|---|---|
received |
Прийнято на Dock | ❌ |
qc_pending |
Перевіряється QC | ❌ |
qc_passed |
Пройшов контроль, у Stock | ✅ |
qc_blocked |
Заблоковано (дефект) | ❌ |
qc_returned |
Повернуто постачальнику | ❌ |
Додатково фіксуються:
- qc_inspector → Person (хто перевіряв)
- qc_date — дата інспекції
- qc_notes — коментар
- defect_photos — фото дефектів
- defect_codes — коди дефектів (classifier)
3. Workflow¶
1. GoodsReceipt створено (post) → Batch.status = received
└── Batch у складі "Dock"
2. QC-інспектор переміщує партію:
receive_to_qc → Batch.status = qc_pending
└── Batch у складі "QC Cage"
3. Інспекція:
а) Проходить → qc_passed, Batch переміщується у Stock
б) Дефекти часткові → частина qc_blocked + частина qc_passed (split batch)
в) Повна партія дефектна → qc_blocked або qc_returned
4. Для qc_blocked:
а) Списання (GoodsWriteoff) — якщо неможливо повернути
б) Повернення постачальнику (SalesReturn to Supplier)
в) Розбирання на компоненти
4. UI¶
Компонент: QualityControlPage (process)
Функції: - Список партій на Dock / QC Cage / Blocked - Форма інспекції: поля + фото + класифікатор дефектів - Bulk actions: pass-все, block-все, split - Звіт "QC performance" — який % партій від постачальника потрапляє у blocked
5. Інтеграції¶
- Essentials GoodsReceipt — тригер запуску QC-потоку
- Batches — розширення
BatchStatusenum - Warehouse — окремі склади-локації "Dock", "QC Cage", "Blocked"
- Photos — збереження у локальному storage / S3
6. Увімкнення функції¶
Аддон вмикається через AppStore (appQuality). Якщо ESWF_PLUGINS не включає quality_control:
- Стандартний GoodsReceipt → одразу в Stock (без QC)
- Якщо включено → QC-потік обов'язковий для товарів категорії "потребує QC"
Налаштування per-ItemCategory: прапорець requires_qc.
🔮 Deferred / Ideas¶
AI-based visual inspection¶
Мотивація: замість ручної інспекції — AI класифікує дефекти з фото Чому відкладено: потрібен навчений CV-модель Trigger: автоматизація + великий обсяг
QC sampling rules¶
Мотивація: замість перевірки 100% партії — статистична вибірка (AQL) Чому відкладено: складна математика, потрібна конфігурація per-товар Trigger: клієнт зі стандартизованими товарами
Supplier quality scorecard¶
Мотивація: автоматичний рейтинг постачальників за % defect rate Чому відкладено: зараз звіт "QC performance" покриває базовий випадок Trigger: >5 активних постачальників
Integration with supplier portal¶
Мотивація: постачальник у особистому кабінеті бачить % відбракування Чому відкладено: потрібен модуль Client Portal Trigger: обмінний flow з постачальниками