2314 lines
135 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using Consulenza.ReportWriter.Business;
using Consulenza.ReportWriter.Business.OBJ_PDF;
using System.Data;
using System.Collections.Generic;
using Consulenza.ReportCommon;
using Consulenza.ReportWriter.Business.CUSTOM_PDF.ConsulenzaUnica;
using System.Linq;
using Consulenza.ReportWriter.Business.Entity;
using Consulenza.DataServices.fideuram.data.service;
using Consulenza.ReportWriter.Business.CHART_PDF;
using Dundas.Charting.WebControl;
namespace Consulenza.ReportWriter.Manager.Section.Unica
{
public class S40 : Entity.Section
{
/// <summary>
///S40.Adeguatezza idSezione = 83 //guardare la 62
/// </summary>
private bool notaindicatoricomplessitafe;
private string notagradoCoperturaComplessita;
private string notaConcentrazioneProdottiComplessi;
private bool gradoCoperturaRM;
private bool gradoCoperturaRC;
//Adriano: serve a determinare se il grado di concentrazione = 100, che nel caso dei clienti professionali significa valorizzare CC e CM a "n.a."
private bool maxConcentrazione;
//--Adriano
private bool flagFiduciariaPlurimandato;
public S40(EnvironmentFacade environmentFacade, int idSection)
: base(environmentFacade, idSection)
{
try
{
Draw();
}
catch (Exception ex)
{
SectionLogger.Write("S40", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
}
}
protected override sealed void Draw()
{
var dati = GetDataSet();
bool saltoPagina = false;
bool visualizzaTabellaIndicatoriSintesi = GetOption<Opzione4_1>().Valore;
bool visualizzaTabellaProdotti = GetOption<Opzione4_2>().Valore;
if (dati.Tables["indicatori"].Rows.Count > 0) {
if (saltoPagina)
AddElement(new PagePDF(PagePDF.PagePDFType.Generic));
saltoPagina = true;
if (getTesto1().Length > 0) {
AddElement(new SpacePDF(20));
AddElement(new FormattedTextAreaPDF(getTesto1(), EnvironmentFacade.RendererFacade.XLeftLimit) {FontSize=7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(15));
}
#region profilo finanziario
var dtPatrimonio = new DataTable();
dtPatrimonio.Columns.Add(new DataColumn("controvalore"));
dtPatrimonio.Columns.Add(new DataColumn("valore"));
dtPatrimonio.Columns.Add(new DataColumn("descrizione"));
dtPatrimonio.Columns.Add(new DataColumn("val"));
for (int i = 0; i < dati.Tables["patrimoni"].Rows.Count / 2; )
{
int r = 0;
foreach (DataRow ro in dati.Tables["patrimoni"].Rows)
{
if (r % 2 == 0)
{
DataRow row = dtPatrimonio.NewRow();
dtPatrimonio.Rows.Add(row);
dtPatrimonio.Rows[i]["controvalore"] = ro["Descrizione"].ToString();
dtPatrimonio.Rows[i]["valore"] = ro["Valore"].ToString();
}
else
{
dtPatrimonio.Rows[i]["descrizione"] = ro["Descrizione"].ToString();
dtPatrimonio.Rows[i]["val"] = ro["Valore"].ToString();
i++;
}
r++;
}
}
var countRow = dtPatrimonio.Rows.Count - 1;
var tabellaPatrimonio = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtPatrimonio)
{
Style = Style.ConsulenzaUnica,
Header = false,
Footer = false,
AlternateRow = false,
RowHeight = 25,
WidthSeparationLines = 0
};
tabellaPatrimonio.Columns.Add(new ColumnPDF("controvalore", 150, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo, "controvalore", string.Empty) {HeaderFontSize = 7});
tabellaPatrimonio.Columns.Add(new ColumnPDF("valore", 110, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "valore", string.Empty) { HeaderFontSize = 7, PaddingLeft = 5 });
tabellaPatrimonio.Columns.Add(new ColumnPDF("descrizione", 150, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo, "descrizione", string.Empty) { HeaderFontSize = 7});
tabellaPatrimonio.Columns.Add(new ColumnPDF("val", 110, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "val", string.Empty) { HeaderFontSize = 7, PaddingLeft = 5 });
tabellaPatrimonio.Cells[2, countRow].BackgroundColor = dtPatrimonio.Rows[countRow]["descrizione"].ToString() == "" ? ColorPDF.Bianco : ColorPDF.Standard_Grigio_SfondoColonnaTabella;
tabellaPatrimonio.Cells[1, countRow].FontColor =dtPatrimonio.Rows[countRow]["valore"].ToString().Equals("n.a.") ? ColorPDF.Nero : dtPatrimonio.Rows[countRow]["valore"].ToString().Equals("Adeguato") ? ColorPDF.Verde : ColorPDF.Rosso;
AddElement(tabellaPatrimonio);
AddElement(new SpacePDF(10));
#endregion
#region indicatore di sintesi
var dtIndicatori = new DataTable();
dtIndicatori.Columns.Add(new DataColumn("Indicatore", typeof(string)));
dtIndicatori.Columns.Add(new DataColumn("Patrimonio", typeof(string)));
dtIndicatori.Columns.Add(new DataColumn("Sogliamassima", typeof(string)));
dtIndicatori.Columns.Add(new DataColumn("Gradocopertura", typeof(string)));
dtIndicatori.Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
foreach (DataRow r in dati.Tables["indicatori"].Rows)
{
dtIndicatori.Rows.Add(r["Indicatore"].ToString(),r["Patrimonio"].ToString(),r["Sogliamassima"].ToString(), r["Gradocopertura"].ToString(),r["Adeguatezza"].ToString());
}
var tabellaIndicatori = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtIndicatori)
{
Style = Style.ConsulenzaUnica,
AlternateRow = false,
ShowSeparationLines = true,
Footer = false,
HeaderFontSize = 7,
HeaderHeight = 30,
RowHeight = 30,
ShowFooterSeparationLines = true
};
tabellaIndicatori.Columns.Add(new ColumnPDF("Indicatore", 150, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Indicatore", "Indicatore") { HeaderFontSize=7});
tabellaIndicatori.Columns.Add(new ColumnPDF("Patrimonio", 100, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Patrimonio", string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment))) { HeaderFontSize = 7, PaddingRight=7 });
tabellaIndicatori.Columns.Add(new ColumnPDF("Sogliamassima", 100, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Sogliamassima", "Soglia massima") {HeaderPaddingLeft=10, HeaderFontSize = 7, PaddingRight = 7 });
tabellaIndicatori.Columns.Add(new ColumnPDF("Gradocopertura", 100, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Gradocopertura", "Grado di copertura (%)") { HeaderFontSize = 7, PaddingRight = 7 });
tabellaIndicatori.Columns.Add(new ColumnPDF("Adeguatezza", 70, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "Adeguatezza", "Adeguatezza") { HeaderFontSize = 7, PaddingRight = 7 });
for (int a = 0; a < dtIndicatori.Rows.Count;a++ )
{
int iIndicatore = 0;
int iPatrimonio = 1;
int iSogliamassima = 2;
int iGradocopertura = 3;
int iAdeguatezza = 4;
tabellaIndicatori.Cells[iIndicatore, a].FontBold = true;
//tabellaIndicatori.Cells[iAdeguatezza, a].FontColor = dtIndicatori.Rows[a]["Adeguatezza"].ToString() == "n.a." ? ColorPDF.Nero : dtIndicatori.Rows[a]["Adeguatezza"].ToString().Contains("Non") ? ColorPDF.Rosso : ColorPDF.Verde;
tabellaIndicatori.Cells[iPatrimonio, a].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaIndicatori.Cells[iSogliamassima, a].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaIndicatori.Cells[iGradocopertura, a].HorizontalAlignment = HorizontalAlignmentType.Destra;
}
//string codiceFiscaleDelegato =
tabellaIndicatori.Notes.Add(
new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
getNoteTabellaIndicatori(),
new[] { "" },
string.Empty,
TableNotePDF.TableNoteAsteriskPositionType.CorpoTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }
);
AddElement(tabellaIndicatori);
if (gradoCoperturaRM || gradoCoperturaRC)
{
AddElement(new SpacePDF(5));
AddElement(new FormattedTextAreaPDF(getNota5RMRC(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
// tabellaIndicatori.Notes.Add(
// new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
// getNota5RMRC(),
// new[] { "" },
// string.Empty,
// TableNotePDF.TableNoteAsteriskPositionType.CorpoTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }
// );
}
if (notagradoCoperturaComplessita != "")
{
AddElement(new SpacePDF(5));
AddElement(new FormattedTextAreaPDF(notagradoCoperturaComplessita, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
//tabellaIndicatori.Notes.Add(
// new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
// getNota6(gradoCoperturaComplessita),
// new[] { "" },
// string.Empty,
// TableNotePDF.TableNoteAsteriskPositionType.CorpoTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }
// );
}
if (getNota407().Length > 0)
{
AddElement(new SpacePDF(5));
AddElement(new FormattedTextAreaPDF(getNota407(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
}
//AddElement(new SpacePDF(10));
//AddElement(new FormattedTextAreaPDF("(*) " + getNoteTabellaIndicatori(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
//if (gradoCoperturaRM || gradoCoperturaRC)
//{
// AddElement(new SpacePDF(10));
// AddElement(new FormattedTextAreaPDF("(*) " + getNota5RMRC(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
//}
//if (gradoCoperturaComplessita != "")
//{
// AddElement(new SpacePDF(10));
// AddElement(new FormattedTextAreaPDF("(*) " + getNota6(gradoCoperturaComplessita), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
//}
#endregion
}
#region prodotti
if (dati.Tables["prodotti"].Rows.Count>0)
{
if (visualizzaTabellaIndicatoriSintesi && visualizzaTabellaProdotti)
{
AddElement(new ImagePDF(435, 0.15F, "changepage.png") { Y = 745-5, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF("continua alla pagina successiva", 450, 200) { Y = 745-5, AutoIncrementYWritable = false, FontSize = 6, AbsolutePosition = true });
}
if (saltoPagina)
AddElement(new PagePDF(PagePDF.PagePDFType.Generic));
saltoPagina = true;
if (visualizzaTabellaIndicatoriSintesi && visualizzaTabellaProdotti)
{
AddElement(new SpacePDF(2));
AddElement(new ImagePDF(37, 0.15F, "changepage.png") { AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF("continua dalla pagina precedente", 37 + 15, 200) { FontSize = 6, AutoIncrementYWritable = true });
}
if (getTesto3().Length > 0)
{
AddElement(new SpacePDF(15));
AddElement(new FormattedTextAreaPDF(getTesto3(), EnvironmentFacade.RendererFacade.XLeftLimit) {FontSize=7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(15));
}
#region tabella prodotti - indicatori di rischio
var tabellaProdotti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["prodotti"])
{
Style = Style.ConsulenzaUnica,
Footer = true,
AlternateRow = false,
ShowBorderLastLine = false,
HeaderHeight = 28,
//RowHeight = 30,
// FooterHeight=30,
HeaderMargin=1,
WhiteSpacesHorizontalSeparator = false,
AdditionalSpaceBetweenHeadersAndTable = 2,
ShowSeparationLines = true,
ShowFooterSeparationLines = true,
HideLastSeparationLine = true,
HideFirstSeparationLine = true
};
tabellaProdotti.Columns.Add(new ColumnPDF("Immagine", 10, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Objectpdf, string.Empty, string.Empty) {HeaderFontSize=7, DeltaYContent = 4, PaddingLeft = 2 });
tabellaProdotti.Columns.Add(new ColumnPDF("Codicecontratto", 60, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "CodiceContratto", "Codice<br>contratto") { HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco });
// Modifica per Saving Map
tabellaProdotti.Columns.Add(new ColumnPDF("SavingMap", 10, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 6, ScaleColumnTypeImage = 0.50F });
// Fine Modifica
tabellaProdotti.Columns.Add(new ColumnPDF("Descrizione", 145, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Descrizione", "Descrizione") { HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco, PaddingRight = 2 });
tabellaProdotti.Columns.Add(new ColumnPDF("Controvaloreproposto", 75, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Decimale, "Controvalore", "Controvalore<br>attuale (€)") { PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco, HeaderPaddingLeft = 10 });
tabellaProdotti.Columns.Add(new ColumnPDF("rischiomercato", 40, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Rischiomercato", "VaR (%)") { PaddingRight = 10, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco, HeaderPaddingLeft = 4});
tabellaProdotti.Columns.Add(new ColumnPDF("Rischiocredito", 55, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Rischiocredito", "Rischio credito") { PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco, HeaderPaddingLeft=6 });
tabellaProdotti.Columns.Add(new ColumnPDF("Complessita", 60, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Complessita", "Complessità") { PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco, HeaderPaddingLeft = 4 });
tabellaProdotti.Columns.Add(new ColumnPDF("Liquidita", 60, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Liquidita", "Liquidità/<br>Liquidabilità") { PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco, HeaderPaddingLeft = 4});
for(int h=0; h<dati.Tables["prodotti"].Rows.Count;h++)
{
int iImmagine = 0;
int iCodicecontratto = 1;
int iSavingMap = 2;
int iDescrizione= 3;
int iControvaloreproposto = 4;
int iRischiomercato = 5;
int iRischiocredito = 6;
int iComplessita = 7;
int iLiquidita = 8;
DataRow pr = dati.Tables["prodotti"].Rows[h];
if (!pr["Area"].ToString().Equals("")) {
for (int j = 0; j< tabellaProdotti.Columns.Count; j++)
{
tabellaProdotti.Cells[j, h].HorizontalSeparatorColor = new ColorPDF(255, 255, 255);
}
if (raggruppaProdotti() == RaggruppaProdotti.AreaBisogno)
{
string codArea = pr["area"].ToString().Substring(0, 3);
AreaBisogno areaBisogno = new AreaBisogno(codArea);
tabellaProdotti.Cells[iCodicecontratto, h].ColSpan = 3;
if (areaBisogno.Visibile)
{
float deltaXSwitch;
float deltaYSwitch;
switch (codArea.ToUpper())
{
case "EXT":
deltaXSwitch = 1.5F;
deltaYSwitch = -0.3F;
break;
case "INV":
deltaXSwitch = 2.2F;
deltaYSwitch = -0.4F;
break;
case "PRE":
deltaXSwitch = 1.8F;
deltaYSwitch = -0.3F;
break;
case "RIS":
deltaXSwitch = 1.3F;
deltaYSwitch = -0.3F;
break;
case "LIQ":
deltaXSwitch = 1.5F;
deltaYSwitch = -0.2F;
break;
default:
deltaXSwitch = 2;
deltaYSwitch = 0;
break;
}
var listaOggetti = new List<ObjectPDF> {
new RectanglePDF(8, 8, ColorPDF.GetBy_AreaBisogno(codArea)),
new FormattedTextAreaPDF
{
Text = areaBisogno.Abbreviazione,
FontBold = true,
FontColor = ColorPDF.Bianco,
DeltaX = deltaXSwitch,
DeltaY = deltaYSwitch,
FontSize=7
}
};
tabellaProdotti.Cells[iImmagine, h].ValueObjectList.AddRange(listaOggetti);
}
tabellaProdotti.Cells[iCodicecontratto, h].Value = pr["Area"].ToString();
}
else
{
if (raggruppaProdotti() == RaggruppaProdotti.Contratto)
{
float iDeltaY = pr["Area"].ToString().Length > 48 ? -2.5F : 0.1F;
tabellaProdotti.Cells[iImmagine, h].ColSpan = 3;
tabellaProdotti.Cells[iImmagine, h].ValueObject = new FormattedTextAreaPDF
{
Text = pr["Area"].ToString(),
FontBold = true,
FontSize = 7,
DeltaX = 11,
DeltaY = iDeltaY,
Width = 215,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center
};
}
else
{
tabellaProdotti.Cells[iImmagine, h].ColSpan = 3;
tabellaProdotti.Cells[iImmagine, h].ValueObject = new FormattedTextAreaPDF
{
Text = pr["Area"].ToString(),
FontBold = true,
FontSize = 7,
DeltaX = 11
};
}
}
tabellaProdotti.Cells[iImmagine, h].BackgroundColor =
tabellaProdotti.Cells[iCodicecontratto, h].BackgroundColor =
tabellaProdotti.Cells[iDescrizione, h].BackgroundColor =
tabellaProdotti.Cells[iSavingMap, h].BackgroundColor =
tabellaProdotti.Cells[iControvaloreproposto, h].BackgroundColor =
tabellaProdotti.Cells[iRischiomercato, h].BackgroundColor =
tabellaProdotti.Cells[iRischiocredito, h].BackgroundColor =
tabellaProdotti.Cells[iComplessita, h].BackgroundColor =
tabellaProdotti.Cells[iLiquidita, h].BackgroundColor = ColorPDF.ConsulenzaUnica_Grigio_SfondoColonnaHeaderFooterTabella;
tabellaProdotti.Cells[iImmagine, h].FontBold =
tabellaProdotti.Cells[iCodicecontratto, h].FontBold =
tabellaProdotti.Cells[iDescrizione, h].FontBold =
tabellaProdotti.Cells[iControvaloreproposto, h].FontBold =
tabellaProdotti.Cells[iRischiomercato, h].FontBold =
tabellaProdotti.Cells[iRischiocredito, h].FontBold =
tabellaProdotti.Cells[iComplessita, h].FontBold =
tabellaProdotti.Cells[iLiquidita, h].FontBold = true;
} else if (!pr["Progetto"].ToString().Equals("")) {
tabellaProdotti.Cells[iCodicecontratto, h].ColSpan = 2;
tabellaProdotti.Cells[iCodicecontratto, h].Value = pr["Progetto"].ToString();
tabellaProdotti.Cells[iImmagine, h].BackgroundColor =
tabellaProdotti.Cells[iCodicecontratto, h].BackgroundColor =
tabellaProdotti.Cells[iDescrizione, h].BackgroundColor =
tabellaProdotti.Cells[iSavingMap, h].BackgroundColor =
tabellaProdotti.Cells[iControvaloreproposto, h].BackgroundColor =
tabellaProdotti.Cells[iRischiomercato, h].BackgroundColor =
tabellaProdotti.Cells[iRischiocredito, h].BackgroundColor =
tabellaProdotti.Cells[iComplessita, h].BackgroundColor =
tabellaProdotti.Cells[iLiquidita, h].BackgroundColor = Convert.ToBoolean(pr["BackgroundGray"]) ? ColorPDF.ConsulenzaUnica_Grigio_SfondoColonnaHeaderFooterTabella : ColorPDF.Bianco;
tabellaProdotti.Cells[iImmagine, h].FontBold =
tabellaProdotti.Cells[iCodicecontratto, h].FontBold =
tabellaProdotti.Cells[iDescrizione, h].FontBold =
tabellaProdotti.Cells[iControvaloreproposto, h].FontBold =
tabellaProdotti.Cells[iRischiomercato, h].FontBold =
tabellaProdotti.Cells[iRischiocredito, h].FontBold =
tabellaProdotti.Cells[iComplessita, h].FontBold =
tabellaProdotti.Cells[iLiquidita, h].FontBold = Convert.ToBoolean(pr["FontBold"]);
} else {
tabellaProdotti.Cells[iImmagine, h].BackgroundColor =
tabellaProdotti.Cells[iCodicecontratto, h].BackgroundColor =
tabellaProdotti.Cells[iDescrizione, h].BackgroundColor =
tabellaProdotti.Cells[iSavingMap, h].BackgroundColor =
tabellaProdotti.Cells[iControvaloreproposto, h].BackgroundColor =
tabellaProdotti.Cells[iRischiomercato, h].BackgroundColor =
tabellaProdotti.Cells[iRischiocredito, h].BackgroundColor =
tabellaProdotti.Cells[iComplessita, h].BackgroundColor =
tabellaProdotti.Cells[iLiquidita, h].BackgroundColor = Convert.ToBoolean(pr["BackgroundGray"]) ? ColorPDF.ConsulenzaUnica_Grigio_SfondoColonnaHeaderFooterTabella : ColorPDF.Bianco;
tabellaProdotti.Cells[iImmagine, h].FontBold =
tabellaProdotti.Cells[iCodicecontratto, h].FontBold =
tabellaProdotti.Cells[iDescrizione, h].FontBold =
tabellaProdotti.Cells[iControvaloreproposto, h].FontBold =
tabellaProdotti.Cells[iRischiomercato, h].FontBold =
tabellaProdotti.Cells[iRischiocredito, h].FontBold =
tabellaProdotti.Cells[iComplessita, h].FontBold =
tabellaProdotti.Cells[iLiquidita, h].FontBold = Convert.ToBoolean(pr["FontBold"]);
}
tabellaProdotti.Cells[ iControvaloreproposto,h].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaProdotti.Cells[ iRischiomercato,h].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaProdotti.Cells[ iRischiocredito,h].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaProdotti.Cells[iComplessita, h].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaProdotti.Cells[iLiquidita, h].HorizontalAlignment = HorizontalAlignmentType.Destra;
}
tabellaProdotti.FooterColumns.Add(new ColumnPDF("spazio", 15, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo) { FontSize = 6 });
tabellaProdotti.FooterColumns.Add(new ColumnPDF("Totale", 205, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo) { FontSize = 7 });
tabellaProdotti.FooterColumns.Add(new ColumnPDF("controvalore", 80, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { PaddingRight = 4, FontSize = 7 });
tabellaProdotti.FooterColumns.Add(new ColumnPDF("var", 40, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { PaddingRight = 10, FontSize = 7 });
tabellaProdotti.FooterColumns.Add(new ColumnPDF("risc", 55, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { PaddingRight = 4, FontSize = 7 });
tabellaProdotti.FooterColumns.Add(new ColumnPDF("compl", 60, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { PaddingRight = 5, FontSize = 7 });
tabellaProdotti.FooterColumns.Add(new ColumnPDF("liq", 60, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { FontSize = 7 });
DataRow drProdottifooter = dati.Tables["prodottifooter"].Rows[0];
tabellaProdotti.FooterCells[0, 0].Value = "";
tabellaProdotti.FooterCells[1, 0].Value = drProdottifooter["patrimonio"].ToString();
tabellaProdotti.FooterCells[2, 0].Value = Helper.FormatCurrency(drProdottifooter["Complessivo"].ToString());
tabellaProdotti.FooterCells[3, 0].Value = drProdottifooter["varDecodificato"].ToString();
tabellaProdotti.FooterCells[4, 0].Value = drProdottifooter["rischioCreditoDecodificato"].ToString();
tabellaProdotti.FooterCells[5, 0].Value = drProdottifooter["descrizioneClasseComplessita"].ToString(); ;
tabellaProdotti.FooterCells[6, 0].Value = "-";
//NOTA 40.2 - 40.9
if (getNota1().Length > 0)
{
AddElement(new SpacePDF(15));
tabellaProdotti.Notes.Add(
new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
getNota1(),
new[] { "compl" },
"",
TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { DeltaY = 5, FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }
);
}
AddElement(tabellaProdotti);
#endregion
}
#endregion
#region focus emittenti
if (dati.Tables["emittentiObb"].Rows.Count >0 || dati.Tables["emittentiAz"].Rows.Count > 0 || dati.Tables["fondi"].Rows.Count > 0)
{
if (saltoPagina)
AddElement(new PagePDF(PagePDF.PagePDFType.Generic));
saltoPagina = true;
var intestazioneEmittenti = new ChapterHeadingPDF(
getCapitolo4(),
getTesto4(),
EnvironmentFacade.RendererFacade.XLeftLimit,
EnvironmentFacade.RendererFacade.YUpperLimit,
EnvironmentFacade.ReportEnvironment.FontFamily);
AddElement(intestazioneEmittenti.ToElement());
}
#region emittenti obbligazionari
//Adriano 07/09/2017: Per i Clienti Professionali bisogna fare modifiche sulla tabellaEmittentiObb per la Soglia di Concentrazione = 50 (Colonna 4) e Adeguatezza = "Adeguato" (Colonna 5)
if (dati.Tables["emittentiObb"].Rows.Count > 0)
{
var tabellaEmittentiObb = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["emittentiObb"], dati.Tables["emittentiObbfooter"])
{
Style = Style.ConsulenzaUnica,
Footer = true,
AlternateRow = false,
ShowBorderLastLine = false,
HeaderHeight = 30,
HeaderFontSize = 7,
AutoIncrementYWritable=true,
ShowSeparationLines = true,
ShowFooterSeparationLines = true
};
tabellaEmittentiObb.Columns.Add(new ColumnPDF("Emittente", 185, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Testo, "Emittenti", "Emittenti obbligazionari") { HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco, PaddingRight = 5 });
tabellaEmittentiObb.Columns.Add(new ColumnPDF("Controvaloreproposto", 65, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Decimale, "Controvaloreproposto", "Controvalore attuale (€)") { PaddingRight = 5, HeaderFontSize =6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiObb.Columns.Add(new ColumnPDF("Franchigia", 65, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Testo, "Franchigia", "Franchigia (€)") { PaddingRight = 5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiObb.Columns.Add(new ColumnPDF("Concentrazione", 70, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Decimale, "Concentrazione", "Concentrazione (%)") { PaddingRight = 5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiObb.Columns.Add(new ColumnPDF("Soglia", 70, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Decimale, "Sogliaconcentrazione", "Soglia di concentrazione (%)") { PaddingRight = 5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiObb.Columns.Add(new ColumnPDF("Adeguatezza", 65, HorizontalAlignmentType.Centrato, false, false, 6, ColumnType.Testo, "Adeguatezza", "Adeguatezza") { HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiObb.FooterColumns.Add(new ColumnPDF("Emittente", 185, HorizontalAlignmentType.Sinistra, true, true, 6, ColumnType.Testo) );
tabellaEmittentiObb.FooterColumns.Add(new ColumnPDF("Controvaloreproposto", 65, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale) { PaddingRight = 4 });
tabellaEmittentiObb.FooterColumns.Add(new ColumnPDF("Franchigia", 65, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale) { PaddingRight = 4 });
tabellaEmittentiObb.FooterColumns.Add(new ColumnPDF("Concentrazione", 70, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale) { PaddingRight = 4 });
tabellaEmittentiObb.FooterColumns.Add(new ColumnPDF("Soglia", 70, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale) { PaddingRight = 4 });
tabellaEmittentiObb.FooterColumns.Add(new ColumnPDF("Adeguatezza", 65, HorizontalAlignmentType.Centrato, true, true, 6, ColumnType.Testo) { PaddingRight = 4 });
for (int l = 0; l < dati.Tables["emittentiObb"].Rows.Count; l++)
{
DataRow concetrazione = dati.Tables["emittentiObb"].Rows[l];
int indexEmittente = 0;
int indexAdeguatezza = 5;
tabellaEmittentiObb.Cells[0, l].Value =concetrazione["Emittenti"].ToString().ToLower().Contains("titoli") ? "&nbsp;<i>"+concetrazione["Emittenti"].ToString()+"</i>" : concetrazione["Emittenti"].ToString() ;
switch (concetrazione["Adeguatezza"].ToString())
{
case "Adeguato":
concetrazione["Adeguatezza"] = "Adeguato";
tabellaEmittentiObb.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Verde;
break;
case "Non adeguato":
concetrazione["Adeguatezza"] = "Non adeguato";
tabellaEmittentiObb.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Rosso;
break;
default:
concetrazione["Adeguatezza"] = "n.a.";
tabellaEmittentiObb.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Nero;
break;
}
tabellaEmittentiObb.Cells[1, l].HorizontalAlignment =
tabellaEmittentiObb.Cells[2, l].HorizontalAlignment =
tabellaEmittentiObb.Cells[3, l].HorizontalAlignment =
tabellaEmittentiObb.Cells[4, l].HorizontalAlignment = HorizontalAlignmentType.Destra;
}
AddElement(tabellaEmittentiObb);
if (flagFiduciariaPlurimandato)
{
string testoobbligazionarie = "In tabella sono riportati gli emittenti relativi a tutte le obbligazioni detenute dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + datiSeiUnico.getClienteReport().codiceMandato+".";
AddElement(new SpacePDF(10));
AddElement(new FormattedTextAreaPDF("(*) " + testoobbligazionarie, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
}
AddElement(new SpacePDF(25));
}
#endregion
#region emittenti azionari
//Adriano 07/09/2017: Per i Clienti Professionali bisogna fare modifiche sulla tabellaEmittentiAz per la Soglia di Concentrazione = 50 (Colonna 4) e Adeguatezza = "Adeguato" (Colonna 5)
if (dati.Tables["emittentiAz"].Rows.Count > 0) {
var tabellaEmittentiAz = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["emittentiAz"], dati.Tables["emittentiAzfooter"])
{
Style = Style.ConsulenzaUnica,
Footer = true,
AlternateRow = false,
ShowBorderLastLine = false,
HeaderHeight = 30,
HeaderFontSize = 7,
ShowSeparationLines = true,
ShowFooterSeparationLines = true
};
tabellaEmittentiAz.Columns.Add(new ColumnPDF("Emittente", 185, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Testo, "Emittenti", "Emittenti azionari") { HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco, PaddingRight = 5 });
tabellaEmittentiAz.Columns.Add(new ColumnPDF("Controvaloreproposto", 65, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Decimale, "Controvaloreproposto", "Controvalore attuale (€)") {PaddingRight=5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiAz.Columns.Add(new ColumnPDF("Franchigia", 65, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Testo, "Franchigia", "Franchigia (€)") { PaddingRight = 5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiAz.Columns.Add(new ColumnPDF("Concentrazione", 70, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Decimale, "Concentrazione", "Concentrazione (%)") { PaddingRight = 5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiAz.Columns.Add(new ColumnPDF("Soglia", 70, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Decimale, "Sogliaconcentrazione", "Soglia di concentrazione (%)") { PaddingRight = 5, HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiAz.Columns.Add(new ColumnPDF("Adeguatezza", 65, HorizontalAlignmentType.Centrato, false, false, 6, ColumnType.Testo, "Adeguatezza", "Adeguatezza") { HeaderFontSize = 6, BackgroundColor = ColorPDF.Bianco });
tabellaEmittentiAz.FooterColumns.Add(new ColumnPDF("Emittente", 185, HorizontalAlignmentType.Sinistra, true, true, 6, ColumnType.Testo));
tabellaEmittentiAz.FooterColumns.Add(new ColumnPDF("Controvaloreproposto", 65, HorizontalAlignmentType.Destra, true, true,6, ColumnType.Decimale) { PaddingRight=4});
tabellaEmittentiAz.FooterColumns.Add(new ColumnPDF("Franchigia", 65, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale){ PaddingRight=4});
tabellaEmittentiAz.FooterColumns.Add(new ColumnPDF("Concentrazione", 70, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale){ PaddingRight=4});
tabellaEmittentiAz.FooterColumns.Add(new ColumnPDF("Soglia", 70, HorizontalAlignmentType.Destra, true, true, 6, ColumnType.Decimale){ PaddingRight=4});
tabellaEmittentiAz.FooterColumns.Add(new ColumnPDF("Adeguatezza", 65, HorizontalAlignmentType.Centrato, true, true, 6, ColumnType.Testo) { PaddingRight = 4 });
for (int l = 0; l < dati.Tables["emittentiAz"].Rows.Count; l++)
{
DataRow concetrazione = dati.Tables["emittentiAz"].Rows[l];
int indexEmittente = 0;
int indexAdeguatezza = 5;
tabellaEmittentiAz.Cells[0, l].Value = concetrazione["Emittenti"].ToString().ToLower().Contains("titoli") ? "&nbsp;<i>" + concetrazione["Emittenti"].ToString() + "</i>" : concetrazione["Emittenti"].ToString();
switch (concetrazione["Adeguatezza"].ToString())
{
case "Adeguato":
concetrazione["Adeguatezza"] = "Adeguato";
tabellaEmittentiAz.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Verde;
break;
case "Non adeguato":
concetrazione["Adeguatezza"] = "Non adeguato";
tabellaEmittentiAz.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Rosso;
break;
default:
concetrazione["Adeguatezza"] = "n.a.";
tabellaEmittentiAz.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Nero;
break;
}
tabellaEmittentiAz.Cells[1, l].HorizontalAlignment =
tabellaEmittentiAz.Cells[2, l].HorizontalAlignment =
tabellaEmittentiAz.Cells[3, l].HorizontalAlignment =
tabellaEmittentiAz.Cells[4, l].HorizontalAlignment = HorizontalAlignmentType.Destra;
}
AddElement(tabellaEmittentiAz);
if (flagFiduciariaPlurimandato)
{
string testoazionarie = "In tabella sono riportati gli emittenti relativi a tutte le azioni detenute dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + datiSeiUnico.getClienteReport().codiceMandato + ".";
AddElement(new SpacePDF(10));
AddElement(new FormattedTextAreaPDF("(*) " + testoazionarie, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
}
AddElement(new SpacePDF(25));
}
#endregion
#region fondi speculativi
if (dati.Tables["fondi"].Rows.Count > 0)
{
var tabellaFondi = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["fondi"], dati.Tables["fondifooter"])
{
Style = Style.ConsulenzaUnica,
Footer = true,
AlternateRow = false,
ShowBorderLastLine = false,
HeaderHeight = 30,
HeaderFontSize = 7,
RowHeight = 25,
ShowSeparationLines = true,
ShowFooterSeparationLines = true
};
tabellaFondi.Columns.Add(new ColumnPDF("Emittente", 150, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Emittenti", "Fondi speculativi") { HeaderFontSize = 7, PaddingRight = 5, BackgroundColor = ColorPDF.Bianco, FontSize = 7 });
tabellaFondi.Columns.Add(new ColumnPDF("Controvaloreproposto", 110, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Controvaloreproposto", "Controvalore attuale (€)") { DeltaYContent=4, PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco });
//tabellaFondi.Columns.Add(new ColumnPDF("Franchigia", 65, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "Franchigia", "Franchigia<br>controvalore (€)") { BackgroundColor = ColorPDF.Bianco });
tabellaFondi.Columns.Add(new ColumnPDF("Concentrazione", 100, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Concentrazione", "Concentrazione (%)") { DeltaYContent=4, PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco });
tabellaFondi.Columns.Add(new ColumnPDF("Soglia", 90, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Sogliaconcentrazione", "Soglia di concentrazione (%)") { PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco });
tabellaFondi.Columns.Add(new ColumnPDF("Adeguatezza", 70, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "Adeguatezza", "Adeguatezza") { PaddingRight = 5, HeaderFontSize = 7, BackgroundColor = ColorPDF.Bianco });
tabellaFondi.FooterColumns.Add(new ColumnPDF("Emittente", 150, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
tabellaFondi.FooterColumns.Add(new ColumnPDF("Controvaloreproposto", 110, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
//tabellaFondi.FooterColumns.Add(new ColumnPDF("Franchigia", 65, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo));
tabellaFondi.FooterColumns.Add(new ColumnPDF("Concentrazione", 100, HorizontalAlignmentType.Destra, true, true,7, ColumnType.Decimale) { PaddingRight = 4 });
tabellaFondi.FooterColumns.Add(new ColumnPDF("Soglia", 90, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
tabellaFondi.FooterColumns.Add(new ColumnPDF("Adeguatezza", 70, HorizontalAlignmentType.Centrato, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
for (int l = 0; l < dati.Tables["fondi"].Rows.Count; l++)
{
DataRow concetrazione = dati.Tables["fondi"].Rows[l];
int indexEmittente = 0;
int indexAdeguatezza = 4;
tabellaFondi.Cells[0, l].Value = concetrazione["Emittenti"].ToString().ToLower().Contains("titoli") ? "&nbsp;<i>" + concetrazione["Emittenti"].ToString() + "</i>" : concetrazione["Emittenti"].ToString();
tabellaFondi.Cells[3, l].Value = "n.a.";
tabellaFondi.Cells[indexAdeguatezza, l].Value = "n.a.";
tabellaFondi.Cells[indexAdeguatezza, l].FontColor = ColorPDF.Nero;
tabellaFondi.Cells[1, l].HorizontalAlignment =
tabellaFondi.Cells[2, l].HorizontalAlignment =
tabellaFondi.Cells[3, l].HorizontalAlignment = HorizontalAlignmentType.Destra;
}
//switch (dati.Tables["fondiFooter"].Rows[0]["Adeguatezza"].ToString())
//{
// case "Adeguato":
// tabellaFondi.FooterCells[4, 0].FontColor = ColorPDF.Verde;
// break;
// case "Non adeguato":
// tabellaFondi.FooterCells[4, 0].FontColor = ColorPDF.Rosso;
// break;
// default:
// tabellaFondi.FooterCells[4, 0].FontColor = ColorPDF.Nero;
// break;
//}
AddElement(tabellaFondi);
if (flagFiduciariaPlurimandato)
{
string testofondi = "In tabella sono riportati tutti i fondi speculativi detenuti dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + datiSeiUnico.getClienteReport().codiceMandato + ".";
AddElement(new SpacePDF(10));
AddElement(new FormattedTextAreaPDF("(*) " + testofondi, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
}
AddElement(new SpacePDF(25));
}
#endregion
#endregion
#region Orizzonete Temporale Liquidità / Liquidabilità
if (dati.Tables["orizzonte"].Rows.Count == 5)
{
if (saltoPagina)
AddElement(new PagePDF(PagePDF.PagePDFType.Generic));
saltoPagina = true;
var intestazioneLiquidita = new ChapterHeadingPDF(
Helper.ReplaceVariables(getCapitolo5(), base.EnvironmentFacade.ReportEnvironment),
Helper.ReplaceVariables(getTesto6(), base.EnvironmentFacade.ReportEnvironment),
EnvironmentFacade.RendererFacade.XLeftLimit,
EnvironmentFacade.RendererFacade.YUpperLimit,
EnvironmentFacade.ReportEnvironment.FontFamily);
AddElement(intestazioneLiquidita.ToElement());
#region Grafico
var series = new List<Serie>();
var coloreSerieAreaAdeguata = new ColorPDF(228, 235, 238);
var coloreSerieAreaNonAdeguata = new ColorPDF(204, 217, 222);
var graficoCombination = new CombinationPDF(EnvironmentFacade.RendererFacade.XLeftLimit+80, 1F)
{
Name = "comb",
Height = 200,
Width = 400,
MinorGridAxisY = false,
BackColor = coloreSerieAreaNonAdeguata,
MarginAxisY = 0,
ShowLineAxisY = true,
ShowLabelAxisY = true,
StartFromZeroAxisY = true,
MaximumValueAxisY = 100, // valore fisso
IntervalNumberAxisY = 6,
CustomLabelAxisY = new List<CombinationPDFCustomLabel>(){
new CombinationPDFCustomLabel{Text = "0,00%", Value = 0d},
new CombinationPDFCustomLabel{Text = "20,00%", Value = 20d},
new CombinationPDFCustomLabel{Text = "40,00%", Value = 40d},
new CombinationPDFCustomLabel{Text = "60,00%", Value = 60d},
new CombinationPDFCustomLabel{Text = "80,00%", Value = 80d},
new CombinationPDFCustomLabel{Text = "100,00%", Value = 100d}
},
ShowLineAxisX = true,
ShowLabelAxisX = true,
StartFromZeroAxisX = true,
MaximumValueAxisX = 5, // valore fisso
IntervalNumberAxisX = 5,
CustomLabelAxisX = new List<CombinationPDFCustomLabel>(){
new CombinationPDFCustomLabel{Text = "", Value = 1d},
new CombinationPDFCustomLabel{Text = "", Value = 2d},
new CombinationPDFCustomLabel{Text = "", Value = 3d},
new CombinationPDFCustomLabel{Text = "", Value = 4d},
new CombinationPDFCustomLabel{Text = "", Value = 5d}
}
};
series.Add(
new Serie
{
Name = "AreaDiAdeguatezza",
Type = Dundas.Charting.WebControl.SeriesChartType.Area,
Color = coloreSerieAreaAdeguata,
BorderColor = ColorPDF.Nero,
BorderWidth = 1,
Points = new List<Point>() {
new Point {Values = new ValuesPointXY(0d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[4]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(1d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[4]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(1d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[3]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(2d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[3]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(2d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[2]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(3d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[2]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(3d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[1]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(4d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[1]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(4d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[0]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata},
new Point {Values = new ValuesPointXY(5d, Convert.ToDouble(dati.Tables["orizzonte"].Rows[0]["AdegOT"])),ShowLabelAxisY = false,ShowLabelAxisX = false,Color = coloreSerieAreaAdeguata}
}
}
);
graficoCombination.SeriesCollection = series;
AddElement(graficoCombination);
var wx = graficoCombination.Width / graficoCombination.IntervalNumberAxisX;
bool mostraAdeguatezza = dati.Tables["orizzonte"].AsEnumerable().FirstOrDefault(x => x.Field<string>("Adeguatezza").Equals("Adeguato")) != null ? true : false;
bool mostraNonAdeguatezza = dati.Tables["orizzonte"].AsEnumerable().FirstOrDefault(x => x.Field<string>("Adeguatezza").Equals("Non adeguato")) != null ? true : false;
if(mostraAdeguatezza)
AddElement(new FormattedTextAreaPDF("Area di adeguatezza", graficoCombination.X + 20) { DeltaY = -20, FontSize = 7, AutoIncrementYWritable = false });
if (mostraNonAdeguatezza)
AddElement(new FormattedTextAreaPDF("Area di non adeguatezza", graficoCombination.X + 300) { DeltaY = -190, FontSize = 7, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[4]["Orizzonte"].ToString(), graficoCombination.X + 18 + wx * 0) {DeltaY=5, FontSize = 7, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[3]["Orizzonte"].ToString(), graficoCombination.X + 18 + wx * 1) { DeltaY = 5, FontSize = 7, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[2]["Orizzonte"].ToString(), graficoCombination.X + 18 + wx * 2) { DeltaY = 5, FontSize = 7, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[1]["Orizzonte"].ToString(), graficoCombination.X + 18 + wx * 3) { DeltaY = 5, FontSize = 7, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[0]["Orizzonte"].ToString(), graficoCombination.X + 18 + wx * 4) { DeltaY = 5, FontSize = 7, AutoIncrementYWritable = false });
float allocOT = Convert.ToSingle(dati.Tables["orizzonte"].Rows[4]["AllocOT"]);
allocOT = allocOT > 97 ? 97 : allocOT < 4 ? 4 : allocOT;
float deltaY = allocOT * -2;
float iDeltaY0 = Convert.ToSingle(dati.Tables["orizzonte"].Rows[0]["AllocOT"]) == 0 ? -2.5F : Convert.ToSingle(dati.Tables["orizzonte"].Rows[0]["AllocOT"]) == 100 ? 11 : 4;
float iDeltaY1 = Convert.ToSingle(dati.Tables["orizzonte"].Rows[1]["AllocOT"]) == 0 ? -2.5F : Convert.ToSingle(dati.Tables["orizzonte"].Rows[1]["AllocOT"]) == 100 ? 11 : 4;
float iDeltaY2 = Convert.ToSingle(dati.Tables["orizzonte"].Rows[2]["AllocOT"]) == 0 ? -2.5F : Convert.ToSingle(dati.Tables["orizzonte"].Rows[2]["AllocOT"]) == 100 ? 11 : 4;
float iDeltaY3 = Convert.ToSingle(dati.Tables["orizzonte"].Rows[3]["AllocOT"]) == 0 ? -2.5F : Convert.ToSingle(dati.Tables["orizzonte"].Rows[3]["AllocOT"]) == 100 ? 11 : 4;
float iDeltaY4 = Convert.ToSingle(dati.Tables["orizzonte"].Rows[4]["AllocOT"]) == 0 ? -2.5F : Convert.ToSingle(dati.Tables["orizzonte"].Rows[4]["AllocOT"]) == 100 ? 11 : 4;
float xg = graficoCombination.X + wx / 2 + wx * 0;
//AddElement(new RectanglePDF(xg, 7.000f, 7.000f, new ColorPDF(4, 112, 190)) { DeltaY = deltaY - 4, AutoIncrementYWritable = false, Angle = 45 });
AddElement(new RectanglePDF(xg, 7.000f, 7.000f, new ColorPDF(4, 112, 190)) { DeltaY = deltaY - iDeltaY4, AutoIncrementYWritable = false, Angle = 45 });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[4]["AllocOTDesc"].ToString(), xg + 10) { DeltaY = deltaY - 3, FontSize = 7, AutoIncrementYWritable = false });
allocOT = Convert.ToSingle(dati.Tables["orizzonte"].Rows[3]["AllocOT"]);
allocOT = allocOT > 97 ? 97 : allocOT < 4 ? 4 : allocOT;
deltaY = allocOT * -2;
xg = graficoCombination.X + wx / 2 + wx * 1;
AddElement(new RectanglePDF(xg, 7.000f, 7.000f, new ColorPDF(4, 112, 190)) { DeltaY = deltaY - iDeltaY3, AutoIncrementYWritable = false, Angle = 45 });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[3]["AllocOTDesc"].ToString(), xg + 10) { DeltaY = deltaY - 3, FontSize = 7, AutoIncrementYWritable = false });
allocOT = Convert.ToSingle(dati.Tables["orizzonte"].Rows[2]["AllocOT"]);
allocOT = allocOT > 97 ? 97 : allocOT < 4 ? 4 : allocOT;
deltaY = allocOT * -2;
xg = graficoCombination.X + wx / 2 + wx * 2;
AddElement(new RectanglePDF(xg, 7.000f, 7.000f, new ColorPDF(4, 112, 190)) { DeltaY = deltaY - iDeltaY2, AutoIncrementYWritable = false, Angle = 45 });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[2]["AllocOTDesc"].ToString(), xg + 10) { DeltaY = deltaY - 3, FontSize = 7, AutoIncrementYWritable = false });
allocOT = Convert.ToSingle(dati.Tables["orizzonte"].Rows[1]["AllocOT"]);
allocOT = allocOT > 97 ? 97 : allocOT < 4 ? 4 : allocOT;
deltaY = allocOT * -2;
xg = graficoCombination.X + wx / 2 + wx * 3;
AddElement(new RectanglePDF(xg, 7.000f, 7.000f, new ColorPDF(4, 112, 190)) { DeltaY = deltaY - iDeltaY1, AutoIncrementYWritable = false, Angle = 45 });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[1]["AllocOTDesc"].ToString(), xg + 10) { DeltaY = deltaY - 3, FontSize = 7, AutoIncrementYWritable = false });
allocOT = Convert.ToSingle(dati.Tables["orizzonte"].Rows[0]["AllocOT"]);
allocOT = allocOT > 97 ? 97 : allocOT < 4 ? 4 : allocOT;
deltaY = allocOT * -2;
xg = graficoCombination.X + wx / 2 + wx * 4;
AddElement(new RectanglePDF(xg, 7.000f, 7.000f, new ColorPDF(4, 112, 190)) { DeltaY = deltaY - iDeltaY0, AutoIncrementYWritable = false, Angle = 45 });
AddElement(new FormattedTextAreaPDF(dati.Tables["orizzonte"].Rows[0]["AllocOTDesc"].ToString(), xg + 10) { DeltaY = deltaY - 3, FontSize = 7, AutoIncrementYWritable = false });
AddElement(new SpacePDF(30));
#endregion
#region ADEGUATEZZA CAP ultimo
var tabellaProgetti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["orizzonte"])
{
Style = Style.ConsulenzaUnica,
HeaderHeight = 30,
AlternateRow = false,
ShowSeparationLines = true,
Footer = false,
ShowFooterSeparationLines = true
};
tabellaProgetti.Columns.Add(new ColumnPDF("Oriztemp", 120, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Orizzonte", "Orizzonte<br>temporale") { HeaderFontSize = 7, FontSize=7});
tabellaProgetti.Columns.Add(new ColumnPDF("Quest", 90, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Questionario", "Questionario <br>MiFID (%)") { HeaderFontSize = 7, PaddingRight = 10, FontSize = 7 });
tabellaProgetti.Columns.Add(new ColumnPDF("Port", 90, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Portafoglioattuale", "Portafoglio <br>attuale (%)") { HeaderFontSize = 7, PaddingRight = 10, FontSize = 7 });
tabellaProgetti.Columns.Add(new ColumnPDF("Adeg", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "AdegOTString", "Adeguatezza per OT (%)") { HeaderFontSize = 7, PaddingRight = 10, FontSize = 7 });
tabellaProgetti.Columns.Add(new ColumnPDF("Alloc", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "AllocOTDesc", "Alloc. attuale per OT (%)") { HeaderFontSize = 7, PaddingRight = 10, FontSize = 7 });
tabellaProgetti.Columns.Add(new ColumnPDF("Adeguatezza", 80, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "Adeguatezza", "Adeguatezza") { HeaderFontSize = 7, FontSize = 7 });
int z = 0;
foreach (DataRow r in dati.Tables["orizzonte"].Rows)
{
switch (r["Adeguatezza"].ToString())
{
case "S":
r["Adeguatezza"] = "Adeguato";
tabellaProgetti.Cells[5, z].FontColor = ColorPDF.Verde;
break;
case "N":
r["Adeguatezza"] = "Non adeguato";
tabellaProgetti.Cells[5, z].FontColor = ColorPDF.Rosso;
break;
default:
r["Adeguatezza"] = "n.a.";
tabellaProgetti.Cells[5, z].FontColor = ColorPDF.Nero;
break;
}
//tabellaProgetti.Cells[5, z].Value = r["Adeguatezza"] == null ? "n.a." : r["Adeguatezza"].ToString().Equals("S") ? "Adeguato" : r["Adeguatezza"].ToString().Equals("N") ? "Non adeguato" : r["Adeguatezza"].ToString();
// tabellaProgetti.Cells[5, z].FontColor = r["Adeguatezza"] == null ? ColorPDF.Nero : r["Adeguatezza"].ToString().Equals("S") ? ColorPDF.Verde : r["Adeguatezza"].ToString().Equals("N") ? ColorPDF.Rosso : ColorPDF.Nero;
tabellaProgetti.Cells[1, z].HorizontalAlignment =
tabellaProgetti.Cells[2, z].HorizontalAlignment =
tabellaProgetti.Cells[3, z].HorizontalAlignment =
tabellaProgetti.Cells[4, z].HorizontalAlignment = HorizontalAlignmentType.Destra;
z++;
}
AddElement(tabellaProgetti);
if (flagFiduciariaPlurimandato)
{
string testoorizzonte = "La ripartizione del patrimonio $/Banca/$ sui diversi orizzonti temporali prende in considerazione tutti i prodotti detenuti dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + datiSeiUnico.getClienteReport().codiceMandato + ".";
AddElement(new SpacePDF(10));
AddElement(new FormattedTextAreaPDF("(*) " + datiSeiUnico.FormatBanca(testoorizzonte), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
}
#endregion
}
#endregion
}
protected sealed override DataTable GetDataTable()
{
return null;
}
protected sealed override DataSet GetDataSet()
{
//Adriano
#region Cliente professionale
var cliente = datiSeiUnico.clienteUnit().anagrafica;
bool profiloProfessionale;
bool profiloAggressivo;
bool profiloProfessionaleAggressivo;
Profiler profiler;
profiler = new Profiler(cliente);
profiloProfessionale = profiler.ProfiloProfessionale;
profiloAggressivo = profiler.ProfiloAggressivo;
profiloProfessionaleAggressivo = profiler.ProfiloProfessionaleAggressivo;
#endregion
//--Adriano
//Adriano: inserito var notaContrazioneProdottiComplessi da sostituire a chiamata diretta della getNota407() nel Draw(), da valorizzare solo in caso di Clienti retail
// essendo richiesta l'omissione della suddetta nota per i Clienti Professionali
notagradoCoperturaComplessita = "";
notaConcentrazioneProdottiComplessi = "";
if (!profiloProfessionale)
notaConcentrazioneProdottiComplessi = getNota407();
//--Adriano
#region datatable
var ds = new DataSet();
ds.Tables.Add(new DataTable("patrimoni"));
ds.Tables.Add(new DataTable("indicatori"));
ds.Tables.Add(new DataTable("prodotti"));
ds.Tables.Add(new DataTable("prodottifooter"));
ds.Tables.Add(new DataTable("emittentiObb"));
ds.Tables.Add(new DataTable("emittentiObbfooter"));
ds.Tables.Add(new DataTable("emittentiAz"));
ds.Tables.Add(new DataTable("emittentiAzfooter"));
ds.Tables.Add(new DataTable("fondi"));
ds.Tables.Add(new DataTable("fondifooter"));
ds.Tables.Add(new DataTable("orizzonte"));
ds.Tables["patrimoni"].Columns.Add(new DataColumn("Descrizione", typeof(string)));
ds.Tables["patrimoni"].Columns.Add(new DataColumn("Valore", typeof(string)));
ds.Tables["indicatori"].Columns.Add(new DataColumn("Indicatore", typeof(string)));
ds.Tables["indicatori"].Columns.Add(new DataColumn("Patrimonio", typeof(string)));
ds.Tables["indicatori"].Columns.Add(new DataColumn("Sogliamassima", typeof(string)));
ds.Tables["indicatori"].Columns.Add(new DataColumn("Gradocopertura", typeof(string)));
ds.Tables["indicatori"].Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Area", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Progetto", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("CodiceContratto", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Descrizione", typeof(string)));
// Modifica per Saving Map
ds.Tables["prodotti"].Columns.Add(new DataColumn("SavingMap", typeof(string)));
// Fine Modifica
ds.Tables["prodotti"].Columns.Add(new DataColumn("Controvalore", typeof(decimal)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Rischiomercato", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Rischiocredito", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Complessita", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Liquidita", typeof(string)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("Ordinamento", typeof(int)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("FontBold", typeof(bool)));
ds.Tables["prodotti"].Columns.Add(new DataColumn("BackgroundGray", typeof(bool)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("patrimonio", typeof(string)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("Complessivo", typeof(string)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("varDecodificato", typeof(string)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("rischioCreditoDecodificato", typeof(string)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("descrizioneClasseComplessita", typeof(string)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("FontBold", typeof(bool)));
ds.Tables["prodottifooter"].Columns.Add(new DataColumn("BackgroundGray", typeof(bool)));
#endregion
#region profilo finanziario
bool visualizzaTabellaIndicatoriSintesi = GetOption<Opzione4_1>().Valore;
bool visualizzaTabellaProdotti = GetOption<Opzione4_2>().Valore;
bool visualizzaSchedaEmittenti = GetOption<Opzione4_3>().Valore;
bool visualizzaSchedaLiquidita = GetOption<Opzione4_4>().Valore;
bool visualizzaDelegato = (String.IsNullOrEmpty(GetOption<Opzione5_3>().Valore)) ? false : true;
var adeguatezza = datiSeiUnico.rischioUnit().adeguatezza;
var dataprofilo = adeguatezza.adeguatezzaTopBean.caratteristicheCliente.dtInizioValiditaProfilo;
var dataProfiloEC = adeguatezza.adeguatezzaTopBean.caratteristicheCliente.dtInizioValiditaProfiloEC;
var delegato = getDelegato();
//var listaDelegati = adeguatezza.adeguatezzaTopBean.delegati;
//int idxDelegato = -1;
//if (visualizzaDelegato)
//{
// string cfDelegato = GetOption<Opzione5_3>().Valore;
// foreach ( var delegato in listaDelegati )
// {
// if (delegato.codiceFiscale.Equals(cfDelegato))
// {
// idxDelegato++;
// }
// }
//}
string profiloFinanziario = (adeguatezza.adeguatezzaTopBean.caratteristicheCliente.profilo.Equals(0) ?
"" : adeguatezza.adeguatezzaTopBean.caratteristicheCliente.profilo + " - ") + adeguatezza.adeguatezzaTopBean.profile;
ds.Tables["patrimoni"].Rows.Add(
"Profilo finanziario",
profiloFinanziario
);
ds.Tables["patrimoni"].Rows.Add(
"Data inizio validità",
dataprofilo != DateTime.MinValue ? dataprofilo.ToShortDateString().Substring(0, 10) : "n.a."
);
ds.Tables["patrimoni"].Rows.Add(
"Profilo esperienza e conoscenza",
adeguatezza.adeguatezzaTopBean.caratteristicheCliente.descrizioneEsperienzaConoscenza
);
ds.Tables["patrimoni"].Rows.Add(
"Data inizio validità",
dataProfiloEC != DateTime.MinValue ? dataProfiloEC.ToShortDateString().Substring(0, 10) : "n.a."
);
//if (!visualizzaDelegato)
//{
// ds.Tables["patrimoni"].Rows.Add(
// string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment)),
// dataprofilo == DateTime.MinValue
// ? "n.a." : adeguatezza.adeguatezzaTopBean.isAdeguato ? "Adeguato" : "Non adeguato"
// );
//}
//else
//{
// ds.Tables["patrimoni"].Rows.Add(
// string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment)),
// dataprofilo == DateTime.MinValue
// ? "n.a." : adeguatezza.adeguatezzaTopBean.isAdeguato ? "Adeguato" : "Non adeguato"
// );
//}
//ds.Tables["patrimoni"].Rows.Add(
// string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment)),
// dataprofilo == DateTime.MinValue
// ? "n.a." : adeguatezza.adeguatezzaTopBean.isAdeguato ? "Adeguato" : "Non adeguato"
//);
// ds.Tables["patrimoni"].Rows.Add(
// string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment)),
// dataprofilo == DateTime.MinValue
// ? "n.a." : adeguatezza.adeguatezzaTopBean.isAdeguato ? "Adeguato" : "n.a."
//);
ds.Tables["patrimoni"].Rows.Add(
string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment)),
//adeguatezza.adeguatezzaTopBean.isAdeguatoSpecified == false ? "n.a." : adeguatezza.adeguatezzaTopBean.isAdeguato ? "Adeguato" : "n.a."
//20180906 AC:
adeguatezza.adeguatezzaTopBean.isAdeguatoSpecified == false ? "Non Adeguato" : adeguatezza.adeguatezzaTopBean.isAdeguato ? "Adeguato" : "Non Adeguato"
);
#endregion
#region indicatore di sintesi
if (visualizzaTabellaIndicatoriSintesi)
{
try
{
gradoCoperturaRM = Convert.ToDouble(adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o => o.id == "RM").copertura.Replace(".", ",")) > 0 && Convert.ToDouble(adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o => o.id == "RM").copertura.Replace(".", ",")) < 90;
gradoCoperturaRC = Convert.ToDouble(adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o => o.id == "RC").copertura.Replace(".", ",")) > 0 && Convert.ToDouble(adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o => o.id == "RC").copertura.Replace(".", ",")) < 90;
}
catch
{}
foreach (var item in from a in adeguatezza.adeguatezzaTopBean.listaAdeguatezza orderby a.criterioOrdinamento select a)
{
//string adeguato = dataprofilo == DateTime.MinValue ? "<font color='#000000'>n.a.</font>" : item.isAdeguato.ToString().ToLower() == "true" ? "<font color='#00b046'>Adeguato</font>" : "<font color='#ff0000'>Non adeguato</font>";
string adeguato = item.isAdeguatoSpecified == false ? "<font color='#ff0000'>Non adeguato</font>" : item.isAdeguato.ToString().ToLower() == "true" ? "<font color='#00b046'>Adeguato</font>" : "<font color='#ff0000'>Non adeguato</font>";
//string indicatore = item.descrizioneFlag;
//BugFix #2398 Aggiunto controllo per mettere la lettera maiuscola al patrimonio e alla Sogliamassima
DataRow ro = ds.Tables["indicatori"].NewRow();
if (item.id == "CM" && profiloProfessionale == false)
notagradoCoperturaComplessita = getNota6(item.copertura);
ro["Indicatore"] = item.id=="CC" ? "Concentrazione prodotti <br>complessi (%)" : item.id=="CM" ? item.descrizioneFlag + "*" : (item.id=="RM" && gradoCoperturaRM) ? item.descrizioneFlag+"*" : item.id=="RC" && gradoCoperturaRC ? item.descrizioneFlag+"*" : item.descrizioneFlag;
ro["Patrimonio"] = item.descrizioneFlag.ToLower().Contains("emittenti") || item.descrizioneFlag.ToLower().Contains("liq") ? "-" : item.patrimonioFideuram.ToLower().Contains("n.a.") || item.patrimonioFideuram.ToLower().Contains("n.d.") || item.patrimonioFideuram.ToLower().Contains("n.c.") ? item.patrimonioFideuram.ToLower() : Helper.CapitalizeWords(item.patrimonioFideuram).Replace(".", ",");
#region gestione errata delegato
//if (visualizzaDelegato)
//{
// switch (item.descrizioneFlag.ToLower())
// {
// case "complessità":
// ro["Sogliamassima"] = delegato.desProfiloEC;
// ro["Adeguatezza"] = adeguato;
// break;
// case "frequenza":
// ro["Sogliamassima"] = item.soglia.ToLower().Contains("-") || item.soglia.ToLower().Contains("n.a.") || item.soglia.ToLower().Contains("n.d.") || item.soglia.ToLower().Contains("n.c.") ? item.soglia.ToLower() : item.soglia.ToLower().Contains("classe") || item.soglia.ToLower().Contains("alta") || item.soglia.ToLower().Contains("minima") || item.soglia.ToLower().Contains("bassa") || item.soglia.ToLower().Contains("media") || item.soglia.ToLower().Contains("rischio") ? Helper.CapitalizeWords(item.soglia) : item.soglia.Length == 2 ? item.soglia + ",00" : item.soglia.Contains(".") ? item.soglia.Replace(".", ",") : item.soglia;
// ro["Adeguatezza"] = adeguato;
// break;
// default:
// ro["Sogliamassima"] = item.soglia.ToLower().Contains("-") || item.soglia.ToLower().Contains("n.a.") || item.soglia.ToLower().Contains("n.d.") || item.soglia.ToLower().Contains("n.c.") ? item.soglia.ToLower() : item.soglia.ToLower().Contains("classe") || item.soglia.ToLower().Contains("alta") || item.soglia.ToLower().Contains("minima") || item.soglia.ToLower().Contains("bassa") || item.soglia.ToLower().Contains("media") || item.soglia.ToLower().Contains("rischio") ? Helper.CapitalizeWords(item.soglia) : item.soglia.Length == 2 ? item.soglia + ",00" : item.soglia.Contains(".") ? item.soglia.Replace(".", ",") : item.soglia;
// ro["Adeguatezza"] = adeguato;
// break;
// }
//}
//else
//{
// ro["Sogliamassima"] = item.soglia.ToLower().Contains("-") || item.soglia.ToLower().Contains("n.a.") || item.soglia.ToLower().Contains("n.d.") || item.soglia.ToLower().Contains("n.c.") ? item.soglia.ToLower() : item.soglia.ToLower().Contains("classe") || item.soglia.ToLower().Contains("alta") || item.soglia.ToLower().Contains("minima") || item.soglia.ToLower().Contains("bassa") || item.soglia.ToLower().Contains("media") || item.soglia.ToLower().Contains("rischio") ? Helper.CapitalizeWords(item.soglia) : item.soglia.Length == 2 ? item.soglia + ",00" : item.soglia.Contains(".") ? item.soglia.Replace(".", ",") : item.soglia;
// ro["Adeguatezza"] = adeguato;
//}
#endregion gestione errata delegato
ro["Sogliamassima"] = item.soglia.ToLower().Contains("-") || item.soglia.ToLower().Contains("n.a.") || item.soglia.ToLower().Contains("n.d.") || item.soglia.ToLower().Contains("n.c.") ? item.soglia.ToLower() : item.soglia.ToLower().Contains("classe") || item.soglia.ToLower().Contains("alta") || item.soglia.ToLower().Contains("minima") || item.soglia.ToLower().Contains("bassa") || item.soglia.ToLower().Contains("media") || item.soglia.ToLower().Contains("rischio") ? Helper.CapitalizeWords(item.soglia) : item.soglia.Length == 2 ? item.soglia + ",00" : item.soglia.Contains(".") ? item.soglia.Replace(".", ",") : item.soglia;
ro["Adeguatezza"] = adeguato;
ro["Gradocopertura"] = item.copertura.Contains("-") ? item.copertura : item.copertura !="n.c." ? item.copertura.Replace(".",",") : item.copertura;
ds.Tables["indicatori"].Rows.Add(ro);
}
}
#endregion
#region prodotti
if (visualizzaTabellaProdotti)
{
switch (raggruppaProdotti())
{
case RaggruppaProdotti.Categoria:
foreach (var item in from l in adeguatezza.listaProdottiCategoria.items orderby l.ordinamento, l.currentEquivalent descending select l)
{
ds.Tables["prodotti"].Rows.Add(
item.name,
"",//item.name, prova
"",
"",
// SavingMap
"",
// Fine
item.currentEquivalent,
getFormat(item.marketRisk),
"-",
"-",
"-",
item.ordinamento,
true,
true
);
ElencoProdotti(ds.Tables["prodotti"], item, item.ordinamento);
}
TotaleRisorseCategoria(ds.Tables["prodotti"], adeguatezza.listaProdottiCategoria, int.MaxValue);
break;
case RaggruppaProdotti.Contratto:
foreach (var item in from l in adeguatezza.listaProdottiContratti.items orderby l.currentEquivalent descending select l)
{
ds.Tables["prodotti"].Rows.Add(
item.name,
"",
"",
"",
// SavingMap
"",
// Fine
item.currentEquivalent,
getFormat(item.marketRisk),
"-",
"-",
"-",
item.ordinamento,
true,
true
);
ElencoProdotti(ds.Tables["prodotti"], item, item.ordinamento);
}
TotaleRisorseContratto(ds.Tables["prodotti"], adeguatezza.listaProdottiContratti, int.MaxValue);
break;
default:
foreach (var item in from l in adeguatezza.listaProdottiArea.items orderby l.ordinamento, l.currentEquivalent select l)
{
if (item.currentEquivalent > 0)
{
ds.Tables["prodotti"].Rows.Add(
item.name,
"",
"",
"",
// SavingMap
"",
// Fine
item.currentEquivalent,
getFormat(item.marketRisk),
"-",
"-",
"-",
item.ordinamento,
true,
true
);
ElencoProdotti(ds.Tables["prodotti"], item, item.ordinamento);
}
}
TotaleRisorseAreaBisogno(ds.Tables["prodotti"], adeguatezza.listaProdottiArea, int.MaxValue);
break;
}
DataRow rf = ds.Tables["prodottifooter"].NewRow();
rf["patrimonio"] = string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", base.EnvironmentFacade.ReportEnvironment));
rf["Complessivo"] = datiSeiUnico.CASA_TOTALE;
rf["varDecodificato"] = adeguatezza.listaProdottiArea.total.marketRisk;
rf["rischioCreditoDecodificato"] = adeguatezza.listaProdottiArea.total.creditRisk.Equals("n.a.") ? adeguatezza.listaProdottiArea.total.creditRisk : adeguatezza.listaProdottiArea.total.creditRisk.Substring(0, 1).ToUpper() + adeguatezza.listaProdottiArea.total.creditRisk.Substring(1, adeguatezza.listaProdottiArea.total.creditRisk.Length - 2) + adeguatezza.listaProdottiArea.total.creditRisk.Substring(adeguatezza.listaProdottiArea.total.creditRisk.Length - 1).ToUpper();
rf["descrizioneClasseComplessita"] = adeguatezza.listaProdottiArea.total.complexity.Substring(0, 1).ToUpper() + adeguatezza.listaProdottiArea.total.complexity.Substring(1);
rf["FontBold"] = true;
rf["BackgroundGray"] = true;
//rf["descrizioneClasseComplessita"] += getNota1().Length > 0 ? "*" : "";
ds.Tables["prodottifooter"].Rows.Add(rf);
}
#endregion
#region focus emittenti obbligazionari
if (visualizzaSchedaEmittenti)
{
ElencoConcentrazioneTitoli(
ds.Tables["emittentiObb"],
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.obbligazionari,
0
);
TotaleConcentrazioneTitoli(ds.Tables["emittentiObbfooter"],
"Totale emittenti obbligazionari",
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.ctvTotaleObbligazionari,
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.concentrazioneTotObbligazionari);
}
#endregion
#region focus emittenti azionari
if (visualizzaSchedaEmittenti)
{
ElencoConcentrazioneTitoli(
ds.Tables["emittentiAz"],
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.azionari,
0
);
TotaleConcentrazioneTitoli(
ds.Tables["emittentiAzfooter"],
"Totale emittenti azionari",
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.ctvTotaleAzionari,
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.concentrazioneTotAzionari
);
}
#endregion
#region focus fondi speculativi
if (visualizzaSchedaEmittenti)
{
ElencoConcentrazioneTitoli(
ds.Tables["fondi"],
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.speculativi,
0
);
if(ds.Tables["fondi"].AsEnumerable().FirstOrDefault(o => o.Field<string>("Emittenti").ToLower().Contains("fondi speculativi")) != null)
ds.Tables["fondi"].Rows.Remove(ds.Tables["fondi"].AsEnumerable().FirstOrDefault(o => o.Field<string>("Emittenti").ToLower().Contains("fondi speculativi")));
TotaleConcentrazioneTitoli(
ds.Tables["fondifooter"],
"Totale fondi speculativi",
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.ctvTotaleSpeculativi,
adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.concentrazioneTotSpeculativi);
}
#endregion
#region Orizzonte Temporale Liquidità / Liquidabilità
ds.Tables["orizzonte"].Columns.Add(new DataColumn("Orizzonte", typeof(string)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("Questionario", typeof(string)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("Portafoglioattuale", typeof(string)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("AdegOT", typeof(decimal)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("AdegOTString", typeof(string)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("AllocOT", typeof(string)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("AllocOTDesc", typeof(string)));
ds.Tables["orizzonte"].Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
if (adeguatezza.adeguatezzaTopBean.elencoOrizzontiTemporali != null)
{
if (visualizzaSchedaLiquidita)
{
foreach (var item in adeguatezza.adeguatezzaTopBean.elencoOrizzontiTemporali)
{
ds.Tables["orizzonte"].Rows.Add(
//Orizzonte
item.timeHorizon,
//Questionario
item.questionnaireMiFIDSpecified ? Convert.ToDecimal(item.questionnaireMiFID).ToString() : "n.a.",
//Portafoglioattuale
Convert.ToDecimal(item.currentPortfolio),
//Adeguatezza OT
!adeguatezza.adeguatezzaTopBean.caratteristicheCliente.profilo.Equals(0) ?
Convert.ToDecimal(item.adequacyForHorizon) :
0,
//Adeguatezza OT stringa
!adeguatezza.adeguatezzaTopBean.caratteristicheCliente.profilo.Equals(0) ?
Convert.ToDecimal(item.adequacyForHorizon).ToString() :
"n.a.",
//Allocazione OT
Convert.ToDecimal( item.locationToHorizon),
//Allocazione OT DESC
datiSeiUnico.FormatDecimal("{0}",item.locationToHorizon),
//Adeguatezza
!item.questionnaireMiFIDSpecified ? "n.a." : item.adequacy
);
}
//dtProfilo.Rows.Add("Oltre 10 anni", "10.82", "27.00","100.00","10.82", true);
//dtProfilo.Rows.Add("Tra 7 e 10 anni", "25.00", "25.00", "100.00","25.00", false);
}
}
#endregion
return ds;
}
private void ElencoProdotti(DataTable dt, Consulenza.DataServices.fideuram.data.service.prodottiAdeguatezzaBean item, int ordinamento)
{
if (item.items == null) return;
var items = !item.name.Contains("Previdenza") ?
from o in item.items orderby o.currentEquivalent descending select o :
from o in item.items orderby o.name select o ;
foreach (var it in from o in item.items orderby o.currentEquivalent descending select o)
{
string progetto = it.name;
string codiceContratto = "";
string descrizione = "";
string imageSaving = "";
if (it.contractId != null)
{
progetto = "";
codiceContratto = it.contractId;
descrizione = it.name;
if (it.savingMap)
//if (descrizione.Substring(0, 2).ToString().ToUpper() == "FV")
imageSaving = "SavingMap.png";
}
if (it.currentEquivalent > 0)
{
dt.Rows.Add(
"",
progetto,
codiceContratto,
descrizione,
imageSaving,
it.currentEquivalent,
it.marketRisk != null ? getFormat(it.marketRisk) : "-",
progetto.Equals("") && it.creditRisk != null ? getFormat(it.creditRisk) : "-",
progetto.Equals("") && it.complexity != null ? getFormat(it.complexity) : "-",
progetto.Equals("") && it.liquidity != null ? it.liquidity : "-",
ordinamento,
progetto.Equals("") ? false : true,
progetto.Equals("") ? false : true
);
}
ElencoProdotti(dt, it, item.ordinamento);
}
}
private void ElencoProdotti(DataTable dt, Consulenza.DataServices.fideuram.data.service.prodottoAdeguatezzaBean item, int ordinamento)
{
if (item.items == null) return;
foreach (var it in from o in item.items orderby o.currentEquivalent descending select o)
{
string progetto = it.name;
string codiceContratto = "";
string descrizione = "";
string imageSaving = "";
if (it.contractId != null)
{
progetto = "";
codiceContratto = it.contractId;
descrizione = it.name;
if (it.savingMap)
//if (descrizione.Substring(0, 2).ToString().ToUpper() == "FV")
imageSaving = "SavingMap.png";
}
dt.Rows.Add(
"",
progetto,
codiceContratto,
descrizione,
imageSaving,
it.currentEquivalent,
it.marketRisk != null ? getFormat(it.marketRisk) : "-",
progetto.Equals("") && it.creditRisk != null ? getFormat(it.creditRisk) : "-",
progetto.Equals("") && it.complexity != null ? getFormat(it.complexity) : "-",
progetto.Equals("") && it.liquidity != null ? it.liquidity : "-",
ordinamento,
false,
false
);
ElencoProdotti(dt, it, ordinamento);
}
}
// AC
private void TotaleRisorseAreaBisogno(DataTable dt, listaProdottiAdeguatezza lPro, int ordinamento)
{
prodottoAdeguatezzaBean other = lPro.other;
decimal CASA_OC = datiSeiUnico.CASA_OC;
decimal CASA_CCN = datiSeiUnico.CASA_CCN;
decimal CASA_GPELIGO = datiSeiUnico.CASA_GPELIGO;
decimal CASA_FOGLIO = datiSeiUnico.CASA_TUOFOGLIO;
if (CASA_OC != 0 || CASA_CCN != 0 || CASA_GPELIGO != 0 || CASA_FOGLIO!=0)
{
DataRow ro = dt.NewRow();
ro["Area"] = "Totale risorse finanziarie";//"Totale risorse allocate";
ro["Progetto"] = "";
ro["CodiceContratto"] = "";
ro["Descrizione"] = "";
ro["Controvalore"] = datiSeiUnico.CASA_SUBTOTALE;
ro["Rischiomercato"] = lPro.financialResources.marketRisk;
ro["Rischiocredito"] = lPro.financialResources.creditRisk.Equals("n.a.") ? lPro.financialResources.creditRisk : lPro.financialResources.creditRisk.Substring(0, 1).ToUpper() + lPro.financialResources.creditRisk.Substring(1, lPro.financialResources.creditRisk.Length - 2) + lPro.financialResources.creditRisk.Substring(lPro.financialResources.creditRisk.Length - 1).ToUpper();
ro["Complessita"] = lPro.financialResources.complexity.Substring(0, 1).ToUpper() + lPro.financialResources.complexity.Substring(1);
ro["Liquidita"] = "-";
ro["Ordinamento"] = ordinamento;
ro["FontBold"] = true;
ro["BackgroundGray"] = true;
dt.Rows.Add(ro);
if (CASA_OC != 0)
{
dt.Rows.Add(
"",
"Operazioni in corso",
"",
"",
// SavingMap
"",
// Fine
CASA_OC,
"n.c.",
"n.c.",
"n.c.",
"n.c.",
ordinamento,
false,
false
);
}
foreach (var ccn in from o in other.items where o.area == "Cc" && o.currentEquivalent < 0 orderby o.currentEquivalent select o)
{
dt.Rows.Add(
"",
ccn.name,
"",
"",
// SavingMap
"",
// Fine
ccn.currentEquivalent,
"n.c.",
"n.c.",
"n.c.",//ccn.complexity,
ccn.liquidity != null ? ccn.liquidity : "Entro 12 mesi",
ordinamento,
false,
false
);
}
foreach (var self in from o in other.items where o.area == "Self" && o.codiceSottoProdotto.Equals("L191") orderby o.currentEquivalent select o)
{
dt.Rows.Add(
"",
self.name,
"",
"",
// SavingMap
"",
// Fine
self.currentEquivalent,
"n.c.",
"n.c.",
"n.c.",
self.liquidity,
ordinamento,
false,
false
);
}
foreach (var self in from o in other.items where o.area == "Self" && o.codiceSottoProdotto.Equals("L192") orderby o.currentEquivalent select o)
{
dt.Rows.Add(
"",
self.name,
"",
"",
// SavingMap
"",
// Fine
self.currentEquivalent,
"n.c",
"n.c",
"n.c",
self.liquidity,
ordinamento,
false,
false
);
}
foreach (var self in from o in other.items where o.area == "Self" && o.codiceSottoProdotto.Equals("V301") orderby o.currentEquivalent select o)
{
dt.Rows.Add(
"",
self.name,
"",
"",
// SavingMap
"",
// Fine
self.currentEquivalent,
"n.c",
"n.c",
"n.c",
self.liquidity,
ordinamento,
false,
false
);
}
}
}
//private void TotaleRisorseAreaBisogno(DataTable dt, listaProdottiAdeguatezza lPro, int ordinamento)
//{
// prodottoAdeguatezzaBean other = lPro.other;
// decimal CASA_OC = datiSeiUnico.CASA_OC;
// decimal CASA_CCN = datiSeiUnico.CASA_CCN;
// decimal CASA_GPELIGO = datiSeiUnico.CASA_GPELIGO;
// if (CASA_OC != 0 || CASA_CCN != 0 || CASA_GPELIGO != 0)
// {
// DataRow ro = dt.NewRow();
// ro["Area"] = "Totale risorse finanziarie";//"Totale risorse allocate";
// ro["Progetto"] = "";
// ro["CodiceContratto"] = "";
// ro["Descrizione"] = "";
// ro["Controvalore"] = datiSeiUnico.CASA_SUBTOTALE;
// ro["Rischiomercato"] = lPro.financialResources.marketRisk;
// ro["Rischiocredito"] = lPro.financialResources.creditRisk.Equals("n.a.")? lPro.financialResources.creditRisk : lPro.financialResources.creditRisk.Substring(0, 1).ToUpper() + lPro.financialResources.creditRisk.Substring(1, lPro.financialResources.creditRisk.Length - 2) + lPro.financialResources.creditRisk.Substring(lPro.financialResources.creditRisk.Length - 1).ToUpper();
// ro["Complessita"] = lPro.financialResources.complexity.Substring(0, 1).ToUpper() + lPro.financialResources.complexity.Substring(1);
// ro["Liquidita"] = "-";
// ro["Ordinamento"] = ordinamento;
// ro["FontBold"] = true;
// ro["BackgroundGray"] = true;
// dt.Rows.Add(ro);
// if (CASA_OC != 0)
// {
// dt.Rows.Add(
// "",
// "Operazioni in corso",
// "",
// "",
// CASA_OC,
// "n.c.",
// "n.c.",
// "n.c.",
// "n.c.",
// ordinamento,
// false,
// false
// );
// }
// foreach (var ccn in from o in other.items where o.area == "Cc" && o.currentEquivalent < 0 orderby o.currentEquivalent select o)
// {
// dt.Rows.Add(
// "",
// ccn.name,
// "",
// "",
// ccn.currentEquivalent,
// "n.c.",
// "n.c.",
// "n.c.",//ccn.complexity,
// ccn.liquidity != null ? ccn.liquidity : "Entro 12 mesi",
// ordinamento,
// false,
// false
// );
// }
// foreach (var self in from o in other.items where o.area == "Self" && o.codiceSottoProdotto.Equals("L191") orderby o.currentEquivalent select o)
// {
// dt.Rows.Add(
// "",
// self.name,
// "",
// "",
// self.currentEquivalent,
// "n.c.",
// "n.c.",
// "n.c.",
// self.liquidity,
// ordinamento,
// false,
// false
// );
// }
// foreach (var self in from o in other.items where o.area == "Self" && o.codiceSottoProdotto.Equals("L192") orderby o.currentEquivalent select o)
// {
// dt.Rows.Add(
// "",
// self.name,
// "",
// "",
// self.currentEquivalent,
// "n.c",
// "n.c",
// "n.c",
// self.liquidity,
// ordinamento,
// false,
// false
// );
// }
// }
//}
// AC
private void TotaleRisorseContratto(DataTable dt, listaProdottiAdeguatezza lPro, int ordinamento)
{
prodottoAdeguatezzaBean other = lPro.other;
decimal CASA_OC = datiSeiUnico.CASA_OC;
decimal CASA_CCN = datiSeiUnico.CASA_CCN;
decimal CASA_GPELIGO = 0;
decimal CASA_FOGLIO = 0;
if (CASA_OC != 0 || CASA_CCN != 0 || CASA_GPELIGO != 0 || CASA_FOGLIO!=0)
{
DataRow ro = dt.NewRow();
ro["Area"] = "Totale risorse finanziarie";
ro["Progetto"] = "";
ro["CodiceContratto"] = "";
ro["Descrizione"] = "";
ro["Controvalore"] = datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO + datiSeiUnico.CASA_TUOFOGLIO;
ro["Rischiomercato"] = lPro.financialResources.marketRisk; ;
ro["Rischiocredito"] = lPro.financialResources.creditRisk.Equals("n.a.") ? lPro.financialResources.creditRisk : lPro.financialResources.creditRisk.Substring(0, 1).ToUpper() + lPro.financialResources.creditRisk.Substring(1, lPro.financialResources.creditRisk.Length - 2) + lPro.financialResources.creditRisk.Substring(lPro.financialResources.creditRisk.Length - 1).ToUpper();
ro["Complessita"] = lPro.financialResources.complexity.Substring(0, 1).ToUpper() + lPro.financialResources.complexity.Substring(1);
ro["Liquidita"] = "-";
ro["Ordinamento"] = ordinamento;
ro["FontBold"] = true;
ro["BackgroundGray"] = true;
dt.Rows.Add(ro);
if (CASA_OC != 0)
{
dt.Rows.Add(
"",
"Operazioni in corso",
"",
"",
CASA_OC,
"n.c.",
"n.c.",
"n.c.",
"n.c.",
ordinamento,
false,
false
);
}
foreach (var ccn in from o in other.items where o.area == "Cc" && o.currentEquivalent < 0 orderby o.currentEquivalent select o)
{
dt.Rows.Add(
"",
ccn.name,
"",
"",
ccn.currentEquivalent,
"n.c.",
"n.c.",
"n.c.",//ccn.complexity,
ccn.liquidity != null ? ccn.liquidity : "Entro 12 mesi",
ordinamento,
false,
false
);
}
}
}
//private void TotaleRisorseContratto(DataTable dt, listaProdottiAdeguatezza lPro, int ordinamento)
//{
// prodottoAdeguatezzaBean other = lPro.other;
// decimal CASA_OC = datiSeiUnico.CASA_OC;
// decimal CASA_CCN = datiSeiUnico.CASA_CCN;
// decimal CASA_GPELIGO = 0;
// if (CASA_OC != 0 || CASA_CCN != 0 || CASA_GPELIGO != 0)
// {
// DataRow ro = dt.NewRow();
// ro["Area"] = "Totale risorse finanziarie";
// ro["Progetto"] = "";
// ro["CodiceContratto"] = "";
// ro["Descrizione"] = "";
// ro["Controvalore"] = datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO;
// ro["Rischiomercato"] = lPro.financialResources.marketRisk; ;
// ro["Rischiocredito"] = lPro.financialResources.creditRisk.Equals("n.a.") ? lPro.financialResources.creditRisk : lPro.financialResources.creditRisk.Substring(0, 1).ToUpper() + lPro.financialResources.creditRisk.Substring(1, lPro.financialResources.creditRisk.Length - 2) + lPro.financialResources.creditRisk.Substring(lPro.financialResources.creditRisk.Length - 1).ToUpper();
// ro["Complessita"] = lPro.financialResources.complexity.Substring(0, 1).ToUpper() + lPro.financialResources.complexity.Substring(1);
// ro["Liquidita"] = "-";
// ro["Ordinamento"] = ordinamento;
// ro["FontBold"] = true;
// ro["BackgroundGray"] = true;
// dt.Rows.Add(ro);
// if (CASA_OC != 0)
// {
// dt.Rows.Add(
// "",
// "Operazioni in corso",
// "",
// "",
// CASA_OC,
// "n.c.",
// "n.c.",
// "n.c.",
// "n.c.",
// ordinamento,
// false,
// false
// );
// }
// foreach (var ccn in from o in other.items where o.area == "Cc" && o.currentEquivalent < 0 orderby o.currentEquivalent select o)
// {
// dt.Rows.Add(
// "",
// ccn.name,
// "",
// "",
// ccn.currentEquivalent,
// "n.c.",
// "n.c.",
// "n.c.",//ccn.complexity,
// ccn.liquidity != null ? ccn.liquidity : "Entro 12 mesi",
// ordinamento,
// false,
// false
// );
// }
// }
//}
//AC
private void TotaleRisorseCategoria(DataTable dt, listaProdottiAdeguatezza lPro, int ordinamento)
{
prodottoAdeguatezzaBean other = lPro.other;
decimal CASA_OC = datiSeiUnico.CASA_OC;
decimal CASA_CCN = datiSeiUnico.CASA_CCN;
decimal CASA_GPELIGO = 0;
decimal CASA_FOGLIO = 0;
if (CASA_OC != 0 || CASA_CCN != 0 || CASA_GPELIGO != 0|| CASA_FOGLIO!=0)
{
DataRow ro = dt.NewRow();
ro["Area"] = "Totale risorse finanziarie";
ro["Progetto"] = "";
ro["CodiceContratto"] = "";
ro["Descrizione"] = "";
ro["Controvalore"] = datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO +datiSeiUnico.CASA_TUOFOGLIO;
ro["Rischiomercato"] = lPro.financialResources.marketRisk; ;
ro["Rischiocredito"] = lPro.financialResources.creditRisk.Equals("n.a.") ? lPro.financialResources.creditRisk : lPro.financialResources.creditRisk.Substring(0, 1).ToUpper() + lPro.financialResources.creditRisk.Substring(1, lPro.financialResources.creditRisk.Length - 2) + lPro.financialResources.creditRisk.Substring(lPro.financialResources.creditRisk.Length - 1).ToUpper();
ro["Complessita"] = lPro.financialResources.complexity.Substring(0, 1).ToUpper() + lPro.financialResources.complexity.Substring(1);
ro["Liquidita"] = "-";
ro["Ordinamento"] = ordinamento;
ro["FontBold"] = true;
ro["BackgroundGray"] = true;
dt.Rows.Add(ro);
if (CASA_OC != 0)
{
dt.Rows.Add(
"",
"Operazioni in corso",
"",
"",
CASA_OC,
"n.c.",
"n.c.",
"n.c.",
"n.c.",
ordinamento,
false,
false
);
}
foreach (var ccn in from o in other.items where o.area == "Cc" && o.currentEquivalent < 0 orderby o.currentEquivalent select o)
{
dt.Rows.Add(
"",
ccn.name,
"",
"",
ccn.currentEquivalent,
"n.c.",
"n.c.",
"n.c.",//ccn.complexity,
ccn.liquidity != null ? ccn.liquidity : "Entro 12 mesi",
ordinamento,
false,
false
);
}
}
}
// private void TotaleRisorseCategoria(DataTable dt, listaProdottiAdeguatezza lPro, int ordinamento)
//{
// prodottoAdeguatezzaBean other = lPro.other;
// decimal CASA_OC = datiSeiUnico.CASA_OC;
// decimal CASA_CCN = datiSeiUnico.CASA_CCN;
// decimal CASA_GPELIGO = 0;
// if (CASA_OC != 0 || CASA_CCN != 0 || CASA_GPELIGO != 0)
// {
// DataRow ro = dt.NewRow();
// ro["Area"] = "Totale risorse finanziarie";
// ro["Progetto"] = "";
// ro["CodiceContratto"] = "";
// ro["Descrizione"] = "";
// ro["Controvalore"] = datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO;
// ro["Rischiomercato"] = lPro.financialResources.marketRisk; ;
// ro["Rischiocredito"] = lPro.financialResources.creditRisk.Equals("n.a.") ? lPro.financialResources.creditRisk : lPro.financialResources.creditRisk.Substring(0, 1).ToUpper() + lPro.financialResources.creditRisk.Substring(1, lPro.financialResources.creditRisk.Length - 2) + lPro.financialResources.creditRisk.Substring(lPro.financialResources.creditRisk.Length - 1).ToUpper();
// ro["Complessita"] = lPro.financialResources.complexity.Substring(0, 1).ToUpper() + lPro.financialResources.complexity.Substring(1);
// ro["Liquidita"] = "-";
// ro["Ordinamento"] = ordinamento;
// ro["FontBold"] = true;
// ro["BackgroundGray"] = true;
// dt.Rows.Add(ro);
// if (CASA_OC != 0)
// {
// dt.Rows.Add(
// "",
// "Operazioni in corso",
// "",
// "",
// CASA_OC,
// "n.c.",
// "n.c.",
// "n.c.",
// "n.c.",
// ordinamento,
// false,
// false
// );
// }
// foreach (var ccn in from o in other.items where o.area == "Cc" && o.currentEquivalent < 0 orderby o.currentEquivalent select o)
// {
// dt.Rows.Add(
// "",
// ccn.name,
// "",
// "",
// ccn.currentEquivalent,
// "n.c.",
// "n.c.",
// "n.c.",//ccn.complexity,
// ccn.liquidity != null ? ccn.liquidity : "Entro 12 mesi",
// ordinamento,
// false,
// false
// );
// }
// }
//}
private void ElencoConcentrazioneTitoli(DataTable dt, Consulenza.DataServices.fideuram.data.service.itemConcentrazioneBean[] items,int livello)
{
livello++;
if (dt.Columns.Count == 0) {
if (dt.TableName == "fondi")
{
dt.Columns.Add(new DataColumn("Livello", typeof(int)));
dt.Columns.Add(new DataColumn("Emittenti", typeof(string)));
dt.Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
dt.Columns.Add(new DataColumn("Concentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Sogliaconcentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
}
else
{
dt.Columns.Add(new DataColumn("Livello", typeof(int)));
dt.Columns.Add(new DataColumn("Emittenti", typeof(string)));
dt.Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
dt.Columns.Add(new DataColumn("Franchigia", typeof(string)));
dt.Columns.Add(new DataColumn("Concentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Sogliaconcentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
}
}
if (items != null)
{
foreach (var concentrazione in from e in items orderby e.currentEquivalent descending select e)
{
string fra = "";
string Threshold="";
if (concentrazione.franchise.ToString() != "n.a.")
{
fra = concentrazione.franchise.Contains(".") ? Helper.FormatCurrency(concentrazione.franchise.Replace(".", ",")) : Helper.FormatCurrency(concentrazione.franchise);
Threshold = concentrazione.concentrationThreshold.ToString();
}
else
{
fra = concentrazione.franchise.ToString();
Threshold = fra;
}
if (dt.TableName == "fondi")
{
dt.Rows.Add(
livello,
concentrazione.name,
concentrazione.currentEquivalent,
concentrazione.concentration,
Threshold,
!concentrazione.adequacySpecified ? "n.a." : concentrazione.adequacy ? "Adeguato" : "Non adeguato"
);
}
else
{
dt.Rows.Add(
livello,
concentrazione.name,
concentrazione.currentEquivalent,
fra,
concentrazione.concentration,
Threshold,
!concentrazione.adequacySpecified ? "n.a." : concentrazione.adequacy ? "Adeguato" : "Non adeguato"
);
}
ElencoConcentrazioneTitoli(dt, concentrazione.items, livello);
}
}
}
private void TotaleConcentrazioneTitoli(DataTable dt,string descrizione, decimal controvaloreTotale,decimal concentrazioneTotale)
{
if (dt.Columns.Count == 0)
{
if (descrizione.ToLower().Contains("fondi"))
{
dt.Columns.Add(new DataColumn("Emittenti", typeof(string)));
dt.Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
dt.Columns.Add(new DataColumn("Concentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Sogliaconcentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
}
else
{
dt.Columns.Add(new DataColumn("Emittenti", typeof(string)));
dt.Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
dt.Columns.Add(new DataColumn("Franchigia", typeof(string)));
dt.Columns.Add(new DataColumn("Concentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Sogliaconcentrazione", typeof(string)));
dt.Columns.Add(new DataColumn("Adeguatezza", typeof(string)));
}
}
if (!descrizione.ToLower().Contains("fondi"))
dt.Rows.Add(descrizione, controvaloreTotale, "-", concentrazioneTotale, "-", "");
else{
if (controvaloreTotale != 0)
dt.Rows.Add(descrizione, controvaloreTotale, concentrazioneTotale, "20,00", datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.elencoConcentrazioneTitoli.speculativi[0].adequacy ? "<font color='#00b046'>Adeguato</font>" : "<font color='#ff0000'>Non adeguato</font>");
else
dt.Rows.Add(descrizione, controvaloreTotale, concentrazioneTotale, "20,00", "");
}
}
private string getFormat(string _valore)
{
string valore = "";
try
{
if (_valore.ToLower().Contains("classe") || _valore.ToLower().Contains("alta") || _valore.ToLower().Contains("bassa") || _valore.ToLower().Contains("media") || _valore.ToLower().Contains("rischio") || _valore.ToLower().Contains("minima"))
valore = Helper.CapitalizeWords(_valore);
else if (_valore.ToLower().Contains("n.c.") || _valore.ToLower().Contains("n.a.") || _valore.ToLower().Contains("n.d."))
valore = _valore.ToLower();
else
{
valore = Helper.FormatDecimal(_valore, 2);
valore.Replace(".", ",");//le aree principali hanno punto, altri virgola
}
}
catch
{
valore = _valore;
}
return valore;
}
public virtual RaggruppaProdotti raggruppaProdotti()
{
return GetOption<Opzione6_2>().RaggruppaProdotti;
}
public virtual string getNota1() {
var flagFiduciariaPlurimandato = datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.flagfiduciariaPluriMandato;
string nota = "";
if (!flagFiduciariaPlurimandato)
{
nota += "Complessità massima dei prodotti che lei attualmente detiene presso $/Banca/$.";
}
else
nota += "Complessità massima dei prodotti detenuti dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + datiSeiUnico.getClienteReport().codiceMandato + ".";
return datiSeiUnico.FormatBanca(nota);
}
public virtual string getTesto1() {
return datiSeiUnico.FormatBanca("Di seguito sono riportati i risultati della valutazione di adeguatezza del patrimonio che lei detiene presso $/Banca/$, in riferimento a tutti gli indicatori di rischio che $/Banca/$ utilizza per valutare l'adeguatezza degli investimenti. Per ogni indicatore, ove previsti, sono riportati il livello massimo associato al suo profilo finanziario e il valore relativo al patrimonio che lei detiene presso $/Banca/$, con indicazione del corrispondente grado di copertura.");
}
//public virtual bool getIndicatoricomplessita(string copertura)
//{
// var grado = copertura.Replace(".", ",");
// if (Convert.ToDouble(grado) != 100)
// {
// notaindicatoricomplessitafe = true;
// return true;
// }
// else
// return false;
//}
//public virtual string getNotaIndicatori()
//{
// string nota = "";
// if (notaindicatoricomplessitafe)
// nota = " Alcuni dei prodotti del patrimonio $/Banca/$ non sono coperti in termini di Complessità. In questa casistica, a prescindere dai singoli indicatori di rischio, il patrimonio Fideuram viene considerato sempre come «Non Adeguato».";
// return datiSeiUnico.FormatBanca(nota);
//}
//indicatore di sintesi
public virtual string getNoteTabellaIndicatori()
{
var adeguatezzaFlag = datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean;
var flagSoggettoAdeguatezzaMifid = adeguatezzaFlag.flagSoggettoAdeguatezzaMifid;
flagFiduciariaPlurimandato = adeguatezzaFlag.flagfiduciariaPluriMandato;
string codicemandato = datiSeiUnico.getClienteReport().codiceMandato;
var flagEccessivaAdeguatezza = adeguatezzaFlag.flagVarAdeguatoExcessively; //datiSeiUnico.rischioUnit().rischio.rischioMercatoCredito.eccessivamenteAdeguato;
var delegato = getDelegato();
string nota = "";
string token = "";
if (!flagFiduciariaPlurimandato)
{
nota += "Complessità massima dei prodotti che lei attualmente detiene presso $/Banca/$.";
if (delegato.codiceFiscale != null)
{
nota += "<br><br>La soglia massima relativa allindicatore di Complessità fa riferimento al profilo di Esperienza e Conoscenza del Legale Rappresentante/Delegato $/CognomeDelegato/$ $/NomeDelegato/$.";
}
}
else
nota += "Complessità massima dei prodotti detenuti dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + codicemandato + ".";
token = " ";
//da fare quella sotto 40.2 e 40.9 per fiduciarie: mancano dati anche su fe
if (flagFiduciariaPlurimandato)
nota += token + "La valutazione di adeguatezza del patrimonio $/Banca/$ prende in considerazione il patrimonio detenuto presso $/Banca/$ da tutti i mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato <" + codicemandato + ">. Pertanto, gli indicatori di rischio presenti in questa scheda relativi al patrimonio Fideuram sono calcolati considerando tutti i prodotti detenuti dai mandati fiduciari associati al medesimo fiduciante a cui appartiene il mandato " + codicemandato + ".";
token = " ";
if (flagSoggettoAdeguatezzaMifid) //40.3
{
nota += token + "<br><br><br>La valutazione di adeguatezza del patrimonio che lei detiene presso $/Banca/$ non è necessaria in quanto tutti i prodotti da lei detenuti presso $/Banca/$ non sono soggetti alla valutazione di adeguatezza MiFID.";
token = " ";
}
if (flagEccessivaAdeguatezza)
{//40.4
nota += token + "<br><br><br>Il patrimonio che lei detiene presso $/Banca/$ risulta adeguato al suo profilo finanziario. Le segnaliamo, tuttavia, che il livello di Rischio Mercato (VaR) del patrimonio che lei detiene presso $/Banca/$ si posiziona su un valore sensibilmente inferiore rispetto alla soglia minima attribuita al suo profilo finanziario.";
token = " ";
}
token = " ";
if (delegato != null)
nota = datiSeiUnico.FormatDelegato(nota,delegato.nome,delegato.cognome);
return datiSeiUnico.FormatBanca(nota);
}
public virtual string getNota407() //40.7
{
var gradoCopertura =
(datiSeiUnico.rischioUnit().adeguatezza.listaProdottiArea.total.complexity.ToLower() == "alta" ||
datiSeiUnico.rischioUnit().adeguatezza.listaProdottiArea.total.complexity.ToLower() == "molto alta") &&
datiSeiUnico.rischioUnit().adeguatezza.listaProdottiArea.total.currentEquivalent < 100000m;
string nota = "";
//string rm = gradoCoperturaRM ? "Rischio Mercato (VaR)" : "";
//string rc = gradoCoperturaRM && gradoCoperturaRC ? " e di Rischio Credito" : !gradoCoperturaRM && gradoCoperturaRC ? " Rischio Credito" : "";
if (gradoCopertura)
{
nota += "Il patrimonio che lei detiene presso $/Banca/$ risulta non adeguato al suo profilo finanziario in quanto non è possibile detenere prodotti a complessità \"Alta\" o \"Molto Alta\" all'interno di un patrimonio inferiore a 100.000 Euro.";
}
return datiSeiUnico.FormatBanca(nota);
}
public virtual string getNota5RMRC() //40.5 copertura rischio mercato var e rischio credito
{
//gradoCoperturaRM =Convert.ToDecimal(datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o=>o.id=="RM").copertura) > 0 && Convert.ToDecimal(datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o=>o.id=="RM").copertura) < 90;
//gradoCoperturaRC = Convert.ToDecimal(datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o => o.id == "RC").copertura) > 0 && Convert.ToDecimal(datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.listaAdeguatezza.AsEnumerable().FirstOrDefault(o => o.id == "RC").copertura) < 90;
string nota = "";
string rm =gradoCoperturaRM ? "Rischio Mercato (VaR)" : "";
string rc=gradoCoperturaRM && gradoCoperturaRC ? " e di Rischio Credito" : !gradoCoperturaRM && gradoCoperturaRC ? " Rischio Credito" : "";
if (gradoCoperturaRM || gradoCoperturaRC)
{
nota += "Il patrimonio che lei detiene presso $/Banca/$ risulta non adeguato al suo profilo finanziario in quanto alcuni prodotti non sono coperti in termini di " + rm + rc + ", determinando un grado di copertura inferiore a 90%: in questo caso, a prescindere dai singoli indicatori di rischio, il patrimonio $/Banca/$ viene considerato sempre come non adeguato.";
}
return datiSeiUnico.FormatBanca(nota);
}
public virtual string getNota6(string copertura) //40.6 copertura complessità
{
var coperturagrado =copertura=="n.c." ? 0 : Convert.ToDouble(copertura.Replace(".",","));
string nota = "";
if (coperturagrado > 0 && coperturagrado < 100)
nota += "Il patrimonio che lei detiene presso $/Banca/$ risulta non adeguato al suo profilo finanziario in quanto alcuni prodotti non sono coperti in termini di Complessità: in questo caso, a prescindere dai singoli indicatori di rischio, il patrimonio $/Banca/$ viene considerato sempre come non adeguato.";
return datiSeiUnico.FormatBanca(nota);
}
//prodotti
public virtual string getTesto3()
{
string nota = "Nella tabella sottostante sono riportati i prodotti che lei detiene presso $/Banca/$, con evidenza dei principali indicatori di rischio.";
string token = "";
switch (raggruppaProdotti())
{
case RaggruppaProdotti.AreaBisogno:
nota+= token +" I prodotti sono raggruppati per area di bisogno e, dove necessario, per progetto di investimento.";
token = " ";
break;
case RaggruppaProdotti.Categoria:
nota+= token + " I prodotti sono raggruppati secondo la categoria di appartenenza.";
token = " ";
break;
case RaggruppaProdotti.Contratto:
nota+= token + " I prodotti sono raggruppati secondo il contratto di appartenenza.";
token = " ";
break;
}
return datiSeiUnico.FormatBanca(nota);
}
//focus emittenti
public virtual string getCapitolo4() {
return datiSeiUnico.FormatBanca("Adeguatezza: focus su concentrazione emittenti");
}
//focus emittenti
public virtual string getTesto4() {
return datiSeiUnico.FormatBanca("In questa scheda sono riportati i risultati della valutazione di adeguatezza del patrimonio che lei detiene presso $/Banca/$, in riferimento all'indicatore di concentrazione. Per gli emittenti e i fondi speculativi del patrimonio che lei detiene presso $/Banca/$ sono riportati, ove previsti, il confronto tra il controvalore \"attuale\" e il controvalore sotto il quale non si applica il controllo di concentrazione (\"franchigia\"), e il confronto tra la concentrazione \"attuale\" e la soglia massima definita dal modello di adeguatezza.");
}
//Orizzonete Temporale Liquidità / Liquidabilità
public virtual string getCapitolo5()
{
return "Adeguatezza: focus su liquidità/liquidabilità";
}
//Orizzonete Temporale Liquidità / Liquidabilità
public virtual string getTesto6()
{
return datiSeiUnico.FormatBanca("In questa scheda sono riportati i risultati della valutazione di adeguatezza del patrimonio che lei detiene presso $/Banca/$, in riferimento all'indicatore di liquidità/liquidabilità. Nel grafico sono indicate l'area di adeguatezza e l'area di non adeguatezza: la prima individua le situazioni in cui le caratteristiche di durata e di liquidità dei prodotti che lei detiene presso $/Banca/$ sono coerenti con i suoi orizzonti temporali di investimento, derivanti dalle risposte che lei ha fornito alla domanda 9 del questionario di profilatura.");
}
public dettDelegatoBean getDelegato()
{
var listaDelegati = datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.delegati;
bool visualizzaDelegato = (String.IsNullOrEmpty(GetOption<Opzione5_3>().Valore)) ? false : true;
string cfDelegato = GetOption<Opzione5_3>().Valore;
dettDelegatoBean delegato = new dettDelegatoBean();
if ( listaDelegati != null)
delegato = (from o in listaDelegati where o.codiceFiscale == cfDelegato select o).LastOrDefault();
return delegato;
}
}
}