Commit Graph
97 Commits
Author SHA1 Message Date
MichaelandClaude Sonnet 4.6 bc76237f48 feat: sort analytics by name (fournisseur) or code asc (nomenclature); show code in nomenclature label; remove diag-fournisseurs endpoint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 08:42:21 +02:00
Michael f0a360115f chore: inspect fouident table for correct supplier names 2026-03-31 17:32:54 +02:00
Michael 67b0c8c74f chore: inspect v_ca_fournisseur view structure 2026-03-31 13:52:22 +02:00
Michael 072479b30f chore: fix diag-fournisseurs to inspect real fouadr1 column structure 2026-03-31 13:44:19 +02:00
Michael 09f80b35cb chore: add diag-fournisseurs endpoint to investigate fouadr1 sit_code and naming 2026-03-31 13:40:08 +02:00
MichaelandClaude Sonnet 4.6 cfd3a7e601 chore: remove temporary diag-supplier investigation endpoint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 12:08:15 +02:00
MichaelandClaude Sonnet 4.6 51adac0349 fix: attribute CA to supplier of last stock entry (dernière entrée en stock)
Previous approach (artfou1 DISTINCT ON no_id DESC) picked the most recent
artfou1 record, but artfou1 is a commercial reference table that may not
reflect actual current sourcing.

New approach: for each article, find the most recent reception movement
(genremvt IN (1,2)) in mvtart — this is the actual last delivery. Join
artfou1 to get the supplier code (ORDER BY datmvt DESC, af.no_id DESC to
break ties). This correctly attributes CA to whoever last physically
delivered the goods, not to a historical commercial reference.

Articles with no reception history are excluded (no INNER JOIN fallback
needed as all sold articles must have been received at least once).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 12:05:38 +02:00
MichaelandClaude Sonnet 4.6 3d77f6b879 chore: add diag-supplier endpoint for artfou1 supplier attribution investigation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 11:08:23 +02:00
MichaelandClaude Sonnet 4.6 7e8b50e143 fix: remove function prop, unused import and useSearchParams in analytics
- page.tsx: move formatCA into client component (functions not serializable
  across server→client boundary in Next.js — root cause of 500)
- client.tsx: remove unused BarChart2 import
- client.tsx: replace useSearchParams() with direct URL construction to
  avoid Suspense boundary requirement
- pg-ff-client: use OR conditions instead of IN() for Drizzle compatibility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 10:32:21 +02:00
MichaelandClaude Sonnet 4.6 740aed3181 feat: add analytics page with CA TTC comparison by supplier/nomenclature
- pg-ff-client: add pgGetCaByFournisseur() and pgGetCaByNomenclature()
  returning CA TTC per site and month for monthly N vs N-1 comparison
- analytics/page.tsx: server component with pivot logic to reshape raw
  query data into store-separated columns (292/579/total) with evolution %
- analytics/client.tsx: client controls (mode dropdown, month selector)
  and responsive table with color-coded evolution badges
- sidebar: add "Analytics" link to navigation

Features:
- Switch between "Fournisseur" and "Nomenclature" views
- Select any month for comparison vs same month prior year
- Columns split by store: Frouard/Nancy (292), Houdemont (579), Total
- Each store shows: CA this month, CA N-1, evolution %
- Footer totals row matching sum of detail rows
- FR locale currency formatting (€)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 09:40:31 +02:00
Michael 2eb196861b feat: Implement initial dashboard page displaying network-level KPIs and individual store statistics. 2026-03-22 10:41:32 +01:00
Michael 38979debb8 feat: implement dashboard page with network KPIs and store statistics. 2026-03-21 19:41:59 +01:00
Michael 33deb033b5 feat: implement dashboard page with network-wide and site-specific KPIs, and top 10 items display. 2026-03-21 19:36:02 +01:00
Michael 46c799bd60 feat: Add dashboard page displaying network KPIs and store statistics, along with a new PostgreSQL data client. 2026-03-21 19:18:41 +01:00
Michael a705d0043d feat: Add dashboard page displaying network KPIs, site statistics, and top-selling items. 2026-03-21 18:55:33 +01:00
Michael 6ee0e3294d feat: Introduce direct PostgreSQL client for FF Nancy data to replace HTTP API calls and add a new dashboard page. 2026-03-21 14:37:02 +01:00
Michael d1bbe290da feat: Implement dashboard layout and a new PostgreSQL client for optimized FF Nancy data fetching via bulk SQL queries. 2026-03-21 13:07:59 +01:00
Michael e3d241a5ff feat: add PostgreSQL client for FF Nancy to replace per-article HTTP API calls with bulk SQL queries. 2026-03-21 11:59:36 +01:00
Michael 1664aaf4cc feat: Implement initial dashboard page displaying key performance indicators, site statistics, top items, and monthly evolution. 2026-03-21 08:54:52 +01:00
Michael 1e393753fa feat: Implement PostgreSQL client for FF Nancy to replace per-article HTTP calls with bulk SQL queries. 2026-03-21 08:37:33 +01:00
Michael 966b13cdf0 feat: implement dashboard page displaying KPIs, site statistics, top items, and monthly evolution using a new PostgreSQL client. 2026-03-21 00:22:14 +01:00
Michael 7cb96966aa feat: implement PostgreSQL client for FF Nancy data, replacing per-article HTTP calls with bulk SQL queries. 2026-03-20 16:09:22 +01:00
Michael d5a422e738 feat: Implement dashboard page, its data fetching client, and shared sidebar component. 2026-03-20 14:43:19 +01:00
Michael 41a8b32aff feat: Add API route to export modified gammes data to an Excel file. 2026-03-19 15:28:16 +01:00
Michael 2b7e7bc1f4 feat: Introduce AI analysis engine with detailed system prompt and user message generation for product recommendations, and add an OpenRouter client. 2026-03-19 09:50:28 +01:00
Michael d8a9329075 feat: Introduce AI Copilot feature with product analysis engine, state management, and UI components for insights. 2026-03-19 07:53:56 +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 9aca3b8ead feat: Add virtualized heatmap grid component with dynamic columns, filtering, and row selection. 2026-03-18 20:34:23 +01:00
Michael ab603e3a6f feat: Add a diagnostic API route and implement server-side logic for fetching and scoring product grid data. 2026-03-18 19:54:44 +01:00
MichaelandClaude Sonnet 4.6 ca467c73f6 chore: probe /api/articles/:no_id/referentiel in diag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 19:24:09 +01:00
MichaelandClaude Sonnet 4.6 06e1b1a238 chore: add ventesProduits diagnostic to diag endpoint
Shows row counts, gamme/code3 fill rates, and sample rows
for AUXENCE/A025 to diagnose missing classification data.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 19:17:22 +01:00
MichaelandClaude Sonnet 4.6 2d37a134d4 chore: update diag to probe new mensuel, stock/periode, and mouvements/types endpoints
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 16:44:01 +01:00
MichaelandClaude Sonnet 4.6 c33e22f7eb fix: extractList includes API-specific wrapper keys, diag uses real codefou
- extractList now explicitly checks "mouvements", "articles", "fournisseurs",
  "ventes", "stocks", "commandes" wrapper keys before generic array fallback
- Diag endpoint auto-fetches first real codefou from fournisseurs instead
  of hardcoded "AUXENCE" (which was supplier nom, not actual codefou)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 14:57:49 +01:00
MichaelandClaude Sonnet 4.6 9e500b6650 feat: enhance diag endpoint to probe mouvements API with multiple date param variants
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 14:50:32 +01:00
Michael c056750ea7 feat: implement FF Nancy API client including data models and functions for suppliers, articles, movements, and stock. 2026-03-18 14:44:44 +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 38e8fc1eac feat: implement AI analysis engine for generating retail product recommendation prompts. 2026-03-13 08:55:30 +01:00
Michael 5eb3f6732e feat: Add Drizzle ORM database setup, product data fetching and processing with scoring, and a diagnostic API endpoint. 2026-03-10 16:04:55 +01:00
Michael 10cea8c528 feat: Implement product grid with a new API for fetching and processing product sales data, including schema initialization and score computation, and a dashboard page for display. 2026-03-10 15:52:29 +01:00
Michael c7fa25a5d1 feat: Implement an Apple-inspired design system with dark/light modes and introduce the initial dashboard layout including a heatmap grid component. 2026-03-05 14:08:29 +01:00
Michael b921f5ad40 fix(ai): implement automatic network retry for OpenRouter 502/503/529 overloads in Bulk Analyzer 2026-02-27 14:57:14 +01:00
Michael 81fbe35e55 feat: Introduce product grid page with server-side data fetching for suppliers, stores, and nomenclature, supporting initial selection. 2026-02-27 13:37:18 +01:00
Michael 02fdd18a52 feat: implement AI product analysis endpoint using OpenRouter with optimized timeout handling and N+1 query prevention. 2026-02-27 10:36:34 +01:00
Michael 51a30b26e4 feat: establish Apple-inspired global design system and add initial AI analysis UI components. 2026-02-27 10:26:09 +01:00
Michael c95eb0ecb6 feat: Add new settings page with Apple-style UI, OpenRouter AI integration, and Mary v4 analysis. 2026-02-27 10:02:23 +01:00
Michael ea732bafc4 feat: implement AI analysis engine for product recommendation and justification by generating prompts and processing responses. 2026-02-26 16:15:20 +01:00
Michael 3438d1b35d feat: add HeatmapCell component and Apple-inspired global design system with dark/light mode support. 2026-02-26 15:54:47 +01:00
Michael 9d8ef0e4db feat: Implement dashboard layout, shared sidebar, AI copilot analysis and scoring engines, and a grid floating summary bar. 2026-02-26 15:21:16 +01:00
Michael a092572829 feat: Implement dashboard layout with new sidebar, bulk AI analysis, supplier AI context modal, and floating summary bar. 2026-02-26 15:11:04 +01:00
Michael 1c03403e9a feat: implement AI Copilot for product analysis, featuring dedicated API, business logic, UI components, and comprehensive documentation. 2026-02-25 10:58:12 +01:00