Michael and Claude Opus 4.8
bd9bc78f4c
feat(qlik): extract 4 decision metrics (CA/mag, couverture, marge%, rupture%)
...
Adds CA par Magasin, Couverture stock Qte, Marge % and Stock Rupture %
network measures to the Qlik hypercube extraction (in-page Playwright ws
+ legacy server ws), persists them in qlik_network_metrics, joins them in
getProductRows and renders 4 new grid columns with buy-signal coloring
(low coverage / high margin = green; high rupture = rose).
- qlik-client: config IDs (env-overridable, master GUIDs of app 9872ee6e),
NetworkMetric fields, hypercube width 4->8, page height 2500->1250
- qlik-playwright: same 4 measures in the in-page hypercube + row mapping
- schema + db-init: 4 numeric columns (ALTER ADD COLUMN IF NOT EXISTS for
existing DBs)
- cache + grid types + enrich: plumb the new fields end to end
Note: percent measures stored as raw Qlik ratio; UI renders x100 when |v|<=1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 08:34:54 +02:00
Michael and Claude Opus 4.8
aee968d30f
feat(grid): replace ranking/AI/score with Qlik network data
...
Remove ranking, AI analysis (routes + ai-copilot module), and score-engine
from the grid. Add Qlik Sense network metrics (CA, Qte, nb magasins per
product) joined by code centrale (articles.artcentrale).
- qlik-client.ts: NTLM + ticket SSO auth, QIX hypercube extraction (master items)
- qlik-network-cache.ts + qlik_network_metrics table (db-init): cache layer
- POST /api/qlik/sync?fournisseur=: per-supplier sync into cache
- SyncQlikButton: per-supplier sync, grid reload, last-update date display
- get-product-rows Phase 8: enrich rows with cached network metrics
- heatmap-grid: CA reseau / Qte reseau / Magasins (/270) / % presence columns
- discovery: app 9872ee6e, master items CA N / Quantite N / Magasin Ventes Nb N
- deps: httpntlm, ws
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 22:52:39 +02:00
Michael
cd7b87aef8
feat: date de derniere entree en stock par magasin dans le tooltip des badges
2026-05-26 15:57:16 +02:00
Michael and Claude Sonnet 4.6
6b26676836
feat: flag products whose last registered supplier differs from current view
...
Instead of unreliable preference=1, use artfou1.no_id DESC (most recently
added artfou1 entry) to identify the last supplier for each product.
Shows an amber warning icon in the Désignation column when the last
supplier ≠ current supplier view, with tooltip showing who to attribute
the sales to.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 11:55:42 +02:00
Michael
ffa257fda1
feat: Implement product heatmap grid with comprehensive data aggregation and PostgreSQL client for product rows.
2026-03-23 16:09:09 +01:00
Michael
53b85381fa
feat: add server-side API for fetching and processing comprehensive product data for the grid.
2026-03-23 14:00:27 +01:00
Michael
aa69637f98
feat: Introduce bulk AI analyzer component to pre-classify products and prepare data for AI analysis, including context profiling.
2026-03-19 13:19:49 +01:00
Michael
8b7d81b20c
feat: implement product grid with comprehensive product data fetching, processing, and heatmap display.
2026-03-19 12:41:03 +01:00
Michael
95795ce7e3
feat: Introduce AI analysis engine for product A/Z recommendations based on detailed business rules.
2026-03-18 22:15:14 +01:00
Michael
aa02d019bd
feat: Implement AI Copilot for product analysis and add comprehensive product grid data fetching.
2026-03-18 21:25:53 +01:00
Michael
d616da8b91
feat: Introduce getProductRows API and related types for fetching and processing comprehensive product data, incorporating sales, stock, and classification.
2026-03-18 19:31:16 +01:00
Michael
1035489db1
feat: Add FF Nancy API client and status endpoint, implement grid product fetching and draft change saving, and introduce AI Copilot core logic.
2026-03-18 14:31:29 +01:00
Michael
f15fbe69ec
feat: Implement core grid state management with Zustand, define grid data types, and introduce a heatmap cell component.
2026-03-10 12:56:37 +01:00
Michael
b5b31a35af
feat: Introduce AI copilot with a refined analysis engine for product recommendations based on strategic weight and relative contribution.
2026-02-23 17:42:34 +01:00
Michael
7b95cee4c2
feat: Introduce AI copilot for product analysis, incorporating a scoring engine, dedicated state management, and insight display.
2026-02-23 17:07:51 +01:00
Michael
d3b349cc31
feat(grid): make gamme filters dynamic based on available data and support Aucune state
2026-02-21 19:02:44 +01:00
Michael
9493a39d12
feat(grid): preserve initial gamme reference and add modification icon
2026-02-21 18:30:48 +01:00
Michael
93e01a475a
fix(db): remove non-existent columns from schema and fix aggregation logic
2026-02-21 17:34:04 +01:00
Michael
33615bb1bd
feat(grid): implement hierarchical nomenclature filter (Secteur > Rayon > Famille)
2026-02-21 17:27:33 +01:00
Michael
cb7cbf873f
feat(grid): add store participation icons in designation column
2026-02-21 15:44:53 +01:00
Michael
3544c0c898
feat(grid): ajout algorithme score produit avec parametrage dynamique et page d'aide
2026-02-21 04:00:51 +01:00