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:
@@ -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)
|
||||||
|
|||||||
@@ -325,21 +325,23 @@ 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 ?? "-")),
|
||||||
("Tasso Rendimento Interno", info.IRR ?? "-"),
|
("Rend. Potenziale a Scadenza", string.IsNullOrWhiteSpace(info.RendimentoPotenziale) ? "-" : info.RendimentoPotenziale),
|
||||||
("Protezione Capitale", info.BufferKProt ?? "-"),
|
("Tasso Rendimento Interno", info.IRR ?? "-"),
|
||||||
("Protezione Cedola", info.BufferCPNProt ?? "-"),
|
("Protezione Capitale", info.BufferKProt ?? "-"),
|
||||||
("Valore Richiamo Anticipato", info.AutocallValue ?? "-"),
|
("Protezione Cedola", info.BufferCPNProt ?? "-"),
|
||||||
("Distanza Richiamo Anticipato", info.TriggerAutocallDistance ?? "-"),
|
("Valore Richiamo Anticipato", info.AutocallValue ?? "-"),
|
||||||
|
("Distanza Richiamo Anticipato", info.TriggerAutocallDistance ?? "-"),
|
||||||
("Rendimento Richiamo Anticipato", info.AutocallReturn ?? "-"),
|
("Rendimento Richiamo Anticipato", info.AutocallReturn ?? "-"),
|
||||||
("Fattore Airbag", string.IsNullOrWhiteSpace(info.FattoreAirbag) ? "—" : info.FattoreAirbag),
|
("Fattore Airbag", string.IsNullOrWhiteSpace(info.FattoreAirbag) ? "—" : info.FattoreAirbag),
|
||||||
("Livello OneStar", string.IsNullOrWhiteSpace(info.TriggerOneStar) ? "—" : info.TriggerOneStar),
|
("Livello OneStar", string.IsNullOrWhiteSpace(info.TriggerOneStar) ? "—" : info.TriggerOneStar),
|
||||||
};
|
};
|
||||||
|
|
||||||
float leftY = DrawKVList(g, leftItems, 0, ColW, y);
|
float leftY = DrawKVList(g, leftItems, 0, ColW, y);
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user