9a73ae9a1b
fix: negative perf color, parallel SP calls in chart controller, sort comment
2026-06-08 18:01:20 +02:00
461cffa442
feat: add FundReportOrchestrator (anagrafica + chart + merge + cache)
2026-06-08 17:49:59 +02:00
5347424e42
feat: add FundChartSectionRenderer (chart PNG wrapped as PDF landscape page)
2026-06-08 17:47:21 +02:00
d26ca9f7bd
fix: correct Y-grid to 5 lines, add defensive date sort in GetChartPricesAsync
2026-06-08 17:46:26 +02:00
7dbcb8ab16
feat: add FundSkiaChartRenderer (SkiaSharp price line chart)
...
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-06-08 17:44:50 +02:00
8e6341d980
feat: add FundAnagraficaRenderer (layout C: title strip + 3 columns)
...
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-06-08 17:41:48 +02:00
d3c5395c58
fix: add error handling to FindIsinByAliasIdAsync, use NullIfEmpty
2026-06-08 17:39:02 +02:00
bbb7e4207a
feat: add FundDataService (sfih_GetOptDettagli + sfih_GetChartPrices)
2026-06-08 17:37:26 +02:00
fa1fc94fd8
feat: add IFundDataService, IFundReportOrchestrator interfaces
2026-06-08 17:35:59 +02:00
c655cdd31e
fix: null-safe string reader, chart V2 label collision avoidance
...
- ChartDataServiceV2: aggiunto helper ToStr() per GetString null-safe su
colonne nullable (Sottostante, NomeCFT); pattern analogo a ToDecimal
- SkiaChartRendererV2: collision avoidance label margine destro — tutti i
label (barriere, strike, autocall, end-label serie) raccolti in lista,
ordinati per Y e distribuiti con spacing minimo 13px (push-down +
clamp-up) prima del disegno
- CLAUDE.md: documentati i due fix e la root cause cedlab_Chart_UL1
divide-by-zero su Strike=0 (fix DB: NULLIF(cu.Strike,0))
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-05-29 10:27:44 +02:00
bb86c6ac20
feat: add Direzione, RendimentoPotenziale, CategoryID to Analisi section
...
- Sezione Analisi sinistra: aggiunto campo Direzione (dopo Tipo Basket)
- Sezione Analisi destra: aggiunto Rend. Potenziale a Scadenza (dopo Rend. Capitale a Scadenza)
- Rend. Capitale a Scadenza nascosto per CategoryID 1 (Bonus) e 4 (Step Up)
- Aggiunto CategoryID (int) e RendimentoPotenziale (string) a CertificateInfo
- Letti da SP rpt_Master_CFT_ISIN
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-05-28 17:08:55 +02:00
52bda26a4b
fix: calculate current price for non-WorstOf end labels from series data
...
PriceWorst is only populated by the SP for the WorstOf underlying.
For others, derive current price as (last Performance% / 100) * Strike.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-05-28 11:16:46 +02:00
6454420230
feat: add price value to non-WorstOf underlyings end labels
...
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-05-28 11:13:56 +02:00
5579915fbc
feat: restyle chart v2 colors, end labels and legend
...
- CTF line: black instead of red
- WorstOf line: red + end label shows "Name (value)" format
- Other underlyings: vivid palette (teal/amber/purple/sky/indigo/orange) instead of grey shades; end label shows name
- Barriera Capitale: brown to avoid confusion with WorstOf red
- PrezzoWorst dashed line: red aligned with WorstOf
- Legend font increased 10→12px
- Legend entry for WorstOf shows "Name (Worst Of)"
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-05-28 11:10:43 +02:00
c350b7d3b5
feat: add format=jpgEnc support (filename from rpt_CertificatesChartsAlias SP)
2026-05-27 18:38:52 +02:00
d60296aebd
fix: X-axis dates now use month-based intervals (fixes missing dates for short/long date ranges)
2026-05-27 18:24:39 +02:00
a848d21519
fix: hide CTF series when NumPrezziCFT < 30 (same behavior as old DevExpress)
2026-05-27 18:19:19 +02:00
f9a7d7a8d2
feat: add JPEG support to /api/chart/v2 (?format=jpg|jpeg)
2026-05-27 18:06:34 +02:00
0dd74b0d59
fix: use ToDecimal helper for float/decimal compatibility in cedlab_Chart_UL1 reader (PriceWorst, PriceWorstPerc are float)
2026-05-27 17:37:38 +02:00
e4728cf79e
fix: revert to cedlab_Chart_UL1 (already has all V2 fields); remove cedlab_Chart_UL2; fix AllSeriesV2 SQL with DailyUL1 logic
2026-05-27 16:35:48 +02:00
a866a2f7d5
fix: use cedlab_Chart_UL2 (new SP, don't modify UL1); add correct SQL scripts with Prices table
2026-05-27 16:28:26 +02:00
0caccc72d5
feat: add SkiaChartRendererV2 (title, colored series, line labels, bottom legend)
2026-05-27 15:50:05 +02:00
494443ede3
feat: add ChartDataServiceV2 with IChartDataServiceV2 (2-SP approach)
2026-05-27 15:45:15 +02:00
a3f6d6000c
fix: fallback to Categoria when natixis=true but Nome is empty
2026-03-26 14:06:25 +01:00
79b02b39b6
fix: align Memoria em-dash fallback with AnagraficaSectionRenderer
2026-03-26 12:55:40 +01:00
7a3a8114bd
feat: rename Memoria Cedola and add natixis support to ExpiredAnagraficaSectionRenderer
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-26 12:52:48 +01:00
716f191fc5
feat: add Memoria field to Analisi and natixis support to AnagraficaSectionRenderer
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-26 12:48:51 +01:00
7595530490
feat: propagate showNatixis through orchestrator and cache keys
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-26 12:46:18 +01:00
59ff3e9ac8
feat: add showNatixis param to IReportOrchestrator interface
2026-03-26 12:30:08 +01:00
5e9598e9dd
feat: dim unreachable event rows in expired certificate reports
2026-03-24 16:28:04 +01:00
76145ad0d2
fix: rinomina header gruppo DIVIDENDI → DIVIDENDI ANNUALI nella tabella sottostanti+dividendi
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 10:13:40 +01:00
7c7d1658ea
fix: rinomina etichette UI nei report PDF
...
- Sezione Analisi: Prossimo Autocall → Prossimo Richiamo Anticipato
- Lista Eventi: Ex Date → Data Stacco
- Tabella Sottostanti: % Perf. → Performance (tutti i renderer)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 09:42:13 +01:00
b3cf03e3d4
fix: widen Rendimento/Rendimento Futuro columns to prevent mid-word wrap
2026-03-23 17:32:29 +01:00
088a95cafb
fix: use Small/Header fonts in sottostanti table in expired renderer
2026-03-23 17:23:51 +01:00
f95242df1a
fix: use Small/Header fonts in dividend table (consistent with eventi)
2026-03-23 17:23:50 +01:00
1f67285ae6
fix: use Small/Header fonts in sottostanti table (consistent with eventi)
2026-03-23 17:23:49 +01:00
b93a16ce6e
fix: DrawSectionLabel title style + thin borders + correct font in dividend renderer
2026-03-23 17:17:49 +01:00
b1003bc3f1
fix: DrawSectionLabel title style in scenario renderer
2026-03-23 17:17:36 +01:00
031a1acc1a
fix: DrawSectionLabel title style in eventi renderer
2026-03-23 17:17:21 +01:00
de7148c5cb
fix: restore 'Soglia Rimborso' label in expired eventi (revert incorrect rename)
2026-03-23 17:07:53 +01:00
bd51bb4d26
fix: Italian labels + section title style + double header row height in dividend renderer
2026-03-23 17:05:39 +01:00
15a4034a77
fix: consistent title style in scenario renderer
2026-03-23 17:04:29 +01:00
9c78b3f852
fix: Italian column labels + consistent title style in eventi renderer
...
Changes applied:
1. Updated column names in active certificates (quotazione):
- "Trigger Cedola" → "Livello Cedola"
- "Trigger Autocall" → "Livello Richiamo Anticipato"
- "Valore Autocall" → "Valore Richiamo Anticipato"
2. Updated column names in expired certificates:
- "Soglia Rimborso" → "Livello Richiamo Anticipato"
- "Valore Autocall" → "Valore Richiamo Anticipato"
3. Synchronized title style in EventiSectionRenderer with AnagraficaSectionRenderer:
- Uses AccentBlue color instead of generic SectionTitle
- Added blue separator line below title (AccentBluePen)
- Aligned spacing and font sizing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 17:04:28 +01:00
3e52f807a5
fix: translate labels to Italian in anagrafica section (analisi + sottostanti)
2026-03-23 17:03:47 +01:00
1edfccfc62
fix: translate sottostanti column labels to Italian in expired anagrafica
2026-03-23 17:03:46 +01:00
26f818486c
feat: wire DividendSectionRenderer into orchestrator — both active and expired flows
...
Also fix darkBlueBrush undefined reference in DividendSectionRenderer.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 16:16:19 +01:00
069e33f0ec
feat: add DividendSectionRenderer with landscape two-level header table
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 16:09:41 +01:00
5b6400903d
feat: skip sottostanti table in expired anagrafica when ShowDividend=true
2026-03-23 16:00:14 +01:00
35b2e9ae43
feat: skip sottostanti table in anagrafica when ShowDividend=true
2026-03-23 15:56:56 +01:00
f79423219f
feat: add showDividend param to IReportOrchestrator interface
2026-03-23 15:50:56 +01:00