40d563801a43bc001ea04b527c6cd24e614e4990
_fetch_banner_candidates collects (overdue) OR (critical-customer + open) records per type. _critical_customer_ids reuses partner.x_fc_rush and partner.x_fc_vip flags when defined (gracefully no-ops when absent). _critical_badge returns RUSH/VIP/AEROSPACE/AS9100 label when the banner reason is critical-customer (no badge when overdue). _build_banner ranks: overdue first by oldest, then critical-customer by oldest, takes top 6, reports total_matching. build() now collects banner candidates from every section in one pass + invokes _build_banner once. Tests cover overdue hold pickup, 6-cap with overflow count, and all_clear when DB is empty. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Odoo 19 custom modules
Languages
Python
56.6%
HTML
25.2%
JavaScript
14.8%
SCSS
2.1%
CSS
0.8%
Other
0.4%