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>
This commit is contained in:
2026-05-28 17:08:55 +02:00
parent 3c99159bd1
commit bb86c6ac20
3 changed files with 14 additions and 8 deletions

View File

@@ -73,6 +73,8 @@ public class CertificateInfo
public string Leva { get; set; } = string.Empty; public string Leva { get; set; } = string.Empty;
public string FattoreAirbag { get; set; } = string.Empty; public string FattoreAirbag { get; set; } = string.Empty;
public string TriggerOneStar { get; set; } = string.Empty; public string TriggerOneStar { get; set; } = string.Empty;
public string RendimentoPotenziale { get; set; } = string.Empty;
public int CategoryID { get; set; }
public string Note { get; set; } = string.Empty; public string Note { get; set; } = string.Empty;
// Stato quotazione (da SP rpt_Master_CFT_ISIN) // Stato quotazione (da SP rpt_Master_CFT_ISIN)

View File

@@ -325,13 +325,15 @@ public class AnagraficaSectionRenderer : IPdfSectionRenderer
("Barriera Capitale", info.LivelloBarriera ?? "-"), ("Barriera Capitale", info.LivelloBarriera ?? "-"),
("Tipo Barriera", info.BarrierType ?? "-"), ("Tipo Barriera", info.BarrierType ?? "-"),
("Tipo Basket", info.BasketType ?? "-"), ("Tipo Basket", info.BasketType ?? "-"),
("Direzione", string.IsNullOrWhiteSpace(info.Direzione) ? "-" : info.Direzione),
("Leva", string.IsNullOrWhiteSpace(info.Leva) ? "—" : info.Leva), ("Leva", string.IsNullOrWhiteSpace(info.Leva) ? "—" : info.Leva),
("Memoria", string.IsNullOrWhiteSpace(info.Memory) ? "—" : info.Memory), ("Memoria", string.IsNullOrWhiteSpace(info.Memory) ? "—" : info.Memory),
}; };
var rightItems = new (string Label, string Value)[] var rightItems = new (string Label, string Value)[]
{ {
("Rend. Capitale a Scadenza", info.CapitalReturnAtMaturity ?? "-"), ("Rend. Capitale a Scadenza", (info.CategoryID == 1 || info.CategoryID == 4) ? "" : (info.CapitalReturnAtMaturity ?? "-")),
("Rend. Potenziale a Scadenza", string.IsNullOrWhiteSpace(info.RendimentoPotenziale) ? "-" : info.RendimentoPotenziale),
("Tasso Rendimento Interno", info.IRR ?? "-"), ("Tasso Rendimento Interno", info.IRR ?? "-"),
("Protezione Capitale", info.BufferKProt ?? "-"), ("Protezione Capitale", info.BufferKProt ?? "-"),
("Protezione Cedola", info.BufferCPNProt ?? "-"), ("Protezione Cedola", info.BufferCPNProt ?? "-"),

View File

@@ -93,6 +93,8 @@ public class CertificateDataService : ICertificateDataService
info.Leva = r.GetStringSafe("Leva"); info.Leva = r.GetStringSafe("Leva");
info.FattoreAirbag = r.GetStringSafe("FattoreAirbag"); info.FattoreAirbag = r.GetStringSafe("FattoreAirbag");
info.TriggerOneStar = r.GetStringSafe("TriggerOneStar"); info.TriggerOneStar = r.GetStringSafe("TriggerOneStar");
info.RendimentoPotenziale = r.GetStringSafe("RendimentoPotenziale");
info.CategoryID = r.GetSafe<int>("CategoryID");
info.PrezzoEmissione = r.GetNullableDecimal("PrezzoEmissione"); info.PrezzoEmissione = r.GetNullableDecimal("PrezzoEmissione");
info.CpnInMemoria = r.GetNullableDecimal("CpnInMemoria"); info.CpnInMemoria = r.GetNullableDecimal("CpnInMemoria");
info.CpnDaPagare = r.GetNullableDecimal("CpnDaPagare"); info.CpnDaPagare = r.GetNullableDecimal("CpnDaPagare");