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
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
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
49014c1544
feat: move Barriera/Rimborso Capitale from eventi table to anagrafica analisi
...
Expired certificate report: removed 'Barriera Capitale' and 'Rimborso Capitale'
columns from the eventi table (9 columns now). Added the same two fields to
the Analisi section on page 1, mapped from LivelloBarriera and CapitalValue.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 11:04:43 +01:00
14d4baa629
feat: add sottostanti table to expired certificate report (sezione 1)
...
Adds the 9-column underlyings table (identical to the active report) to
ExpiredAnagraficaSectionRenderer, with overflow-to-new-page guard.
Also excludes Logs/** from csproj build and updates README accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 09:32:28 +01:00
2546990556
fix: set Analisi section width to match Caratteristiche Prodotto (ColW)
2026-03-21 11:42:57 +01:00