using System;
using Consulenza.ReportWriter.Business;
using Consulenza.ReportWriter.Business.OBJ_PDF;
using System.Data;
using Consulenza.ReportCommon;
using System.Collections.Generic;
using Consulenza.ReportWriter.Business.CHART_PDF;
using Consulenza.ReportWriter.Business.Entity;
using System.Linq;
namespace Consulenza.ReportWriter.Manager.Section.Unica
{
///
/// S78.PropostaDiversificazione idSezione = 237
///
public class S78 : Entity.Section
{
private bool _visualizzaSintesiComponenti;
private bool _visualizzaDettaglioComponenti;
private bool _presenzaNotaPortafoglioAttuale = false;
private bool _presenzaNotaPortafoglioProposto = false;
private bool _stampaNota = false;
private string _asteriscoAttuale = "";
private string _asteriscoProposto = "";
public S78(EnvironmentFacade environmentFacade, int idSection)
: base(environmentFacade, idSection)
{
try
{
//_visualizzaAltriIstituti = GetOption().Valore;
_visualizzaSintesiComponenti = GetOption().Valore;
_visualizzaDettaglioComponenti = GetOption().Valore;
Draw();
}
catch (Exception ex)
{
SectionLogger.Write("S78", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
}
}
protected override sealed void Draw()
{
var dati = GetDataSet();
var testi = GetText();
var nota = Helper.ReplaceVariables(GetNote(), EnvironmentFacade.ReportEnvironment);
var series = new List();
float axisWidth = 0;
float Y1TabellaDiversificazionePortafoglio = 225f;
float Y2TabellaDiversificazionePortafoglio = 288f;
float Y1TabellaSintesiComponentiAttuale = Y2TabellaDiversificazionePortafoglio + 178f;
float Y2TabellaSintesiComponentiProposto = Y2TabellaDiversificazionePortafoglio + 274f;
float Y1TabellaDettaglioComponentiAttuale = 298f;
//float Y2TabellaDettaglioComponentiProposto = 585f;
float Y2TabellaDettaglioComponentiProposto = 522f;
_asteriscoAttuale = _presenzaNotaPortafoglioAttuale ? "*" : "";
_asteriscoProposto = _presenzaNotaPortafoglioProposto ? "*" : "";
_stampaNota = _presenzaNotaPortafoglioAttuale || _presenzaNotaPortafoglioProposto;
string portafoglioAttuale = dati.Tables["Portafoglio"].Rows[0]["Controvalore"].ToString();
string portafoglioProposto = dati.Tables["Portafoglio"].Rows[1]["Controvalore"].ToString();
AddElement(new SpacePDF(20) { AutoIncrementYWritable = true });
#region Sezione Diversificazione Portafoglio
#region Testo Introduttivo Sezione Diversificazione Portafoglio
var testoIntroPortafoglio = string.Empty;
testoIntroPortafoglio = testi.Rows[0]["testo1"].ToString();
testoIntroPortafoglio = Helper.ReplaceVariables(testoIntroPortafoglio, EnvironmentFacade.ReportEnvironment);
var textArea = new FormattedTextAreaPDF(testoIntroPortafoglio, EnvironmentFacade.RendererFacade.XLeftLimit)
{ FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = true };
AddElement(new FormattedTextAreaPDF(testoIntroPortafoglio, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = true });
AddElement(new SpacePDF(20));
#endregion Testo Introduttivo Sezione Diversificazione Portafoglio
#region Tabella Diversificazione Portafoglio
int i = 0;
DataTable dtPortafoglio = dati.Tables["Portafoglio"];
var tabellaDiversificazionePortafoglio = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtPortafoglio)
{
Style = Style.ConsulenzaUnica,
AlternateRow = false,
ShowSeparationLines = true,
RowHeight = 30,
Footer = false,
HeaderHeight = 30,
HideLastSeparationLine = false,
AdditionalSpaceBetweenHeadersAndTable = 3
};
tabellaDiversificazionePortafoglio.Columns.Add(new ColumnPDF("Portafoglio", 110, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Portafoglio", "Portafoglio") { HeaderFontSize = 7, PaddingRight = 4 });
tabellaDiversificazionePortafoglio.Columns.Add(new ColumnPDF("ControvaloreAttuale", 115, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Controvalore", "Controvalore (€)") { PaddingRight = 15, HeaderFontSize = 7 });
tabellaDiversificazionePortafoglio.Columns.Add(new ColumnPDF("GradoCopertura", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "GradoCopertura", "Grado di copertura
(%)") { PaddingRight = 15, HeaderFontSize = 7 });
tabellaDiversificazionePortafoglio.Columns.Add(new ColumnPDF("DiversificazioneObject", 225, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Objectpdf, "DiversificazionePortafoglio", "Diversificazione di portafoglio") { VerticalAlignment = VerticalAlignmentType.Centrato, HeaderFontSize = 7, FontSize = 7, DeltaYContent = 6, HeaderPaddingLeft = 10 });
var list = new List();
list.Add(Convert.ToDouble(dtPortafoglio.AsEnumerable().Max(x => x["DiversificazionePortafoglio"])));
//var valoreMassimo = (float)Helper.Round(list.Max());
var valoreMassimo = 100.00f;
float larghezzaBarra = 0;
float larghezzaSpazioTestoPercentuale = 0;
float larghezzaMinimaSpazioTestoPercentuale = 35;
float deltaXBarra = 0;
float width = tabellaDiversificazionePortafoglio.Columns[3].Width - 50;
foreach (DataRow row in dtPortafoglio.Rows)
{
var colore = new ColorPDF(Convert.ToInt32(row["Red"]), Convert.ToInt32(row["Green"]), Convert.ToInt32(row["Blue"]));
//Allineamento a destro delle colonne numeriche (Controvalore attuale e Grado di Copertura)
tabellaDiversificazionePortafoglio.Cells[1, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
tabellaDiversificazionePortafoglio.Cells[2, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
//Aggiunge l'asterisco se c'è la nota
row["Portafoglio"] += i == 0 ? _asteriscoAttuale : _asteriscoProposto;
larghezzaBarra = Helper.GetWidthProportional((float)Convert.ToDecimal(row["DiversificazionePortafoglio"]), valoreMassimo, tabellaDiversificazionePortafoglio.Columns[3].Width - 35);
larghezzaSpazioTestoPercentuale = tabellaDiversificazionePortafoglio.Columns[3].Width - larghezzaBarra;
deltaXBarra = larghezzaBarra + 10;
if (larghezzaSpazioTestoPercentuale < larghezzaMinimaSpazioTestoPercentuale)
{
deltaXBarra = -(tabellaDiversificazionePortafoglio.Columns[3].Width - larghezzaMinimaSpazioTestoPercentuale);
larghezzaSpazioTestoPercentuale = larghezzaMinimaSpazioTestoPercentuale;
}
if (Convert.ToDouble(row["Controvalore"]) == 0)
{
tabellaDiversificazionePortafoglio.Cells[3, i].ValueObjectList = new List()
{
new RectanglePDF(20, 1 , ColorPDF.Bianco),
new FormattedTextAreaPDF(row["DiversificazionePortafoglio"].ToString()=="0.00"? "0.00" : Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazionePortafoglio"]).ToString(), 2),
0, larghezzaSpazioTestoPercentuale)
{
DeltaY = 3,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
else
{
tabellaDiversificazionePortafoglio.Cells[3, i].ValueObjectList = new List()
{
new RectanglePDF(20, larghezzaBarra , colore),
new FormattedTextAreaPDF(row["DiversificazionePortafoglio"].ToString()=="0.00"? "0.00" : Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazionePortafoglio"]).ToString(), 2),
0, larghezzaSpazioTestoPercentuale)
{
DeltaY = 3,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
i++;
}
AddElement(tabellaDiversificazionePortafoglio);
//ASSE X
axisWidth = Helper.GetWidthProportional(100, valoreMassimo, tabellaDiversificazionePortafoglio.Columns[3].Width - larghezzaMinimaSpazioTestoPercentuale);
XAxisDraw(295, Y2TabellaDiversificazionePortafoglio, 295 + axisWidth, Y2TabellaDiversificazionePortafoglio + 2);
//ASSE Y
AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 295 - 0.5f, Y1TabellaDiversificazionePortafoglio + 2, EnvironmentFacade.RendererFacade.XLeftLimit + 295 - 0.5f, Y2TabellaDiversificazionePortafoglio + 2, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
#endregion Tabella Diversificazione Portafoglio
#endregion Sezione Diversificazione Portafoglio
#region Sezione Sintesi Componenti
if (_visualizzaSintesiComponenti)
{
#region Titolo e Testo Introduttivo
AddElement(new SpacePDF(20));
string titoloSintesi = "Sintesi delle componenti di diversificazione";
AddElement(new FormattedTextAreaPDF(titoloSintesi, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 10, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(20));
string testoIntroSintesi = string.Empty;
testoIntroSintesi = testi.Rows[0]["testo3"].ToString();
testoIntroSintesi = Helper.ReplaceVariables(testoIntroSintesi, EnvironmentFacade.ReportEnvironment);
AddElement(new FormattedTextAreaPDF(testoIntroSintesi, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(20));
#endregion Titolo e Testo Introduttivo
#region Tabella Sintesi Componenti Portafoglio
AddElement(new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 10, 0.20f, "PallinoPortafoglioAttuale_new.png") { AutoIncrementYWritable = false, DeltaY = -1 });
AddElement(new FormattedTextAreaPDF(String.Format("Portafoglio attuale (€){0}", _asteriscoAttuale), EnvironmentFacade.RendererFacade.XLeftLimit + 25) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(portafoglioAttuale), EnvironmentFacade.RendererFacade.XLeftLimit + 220) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(10));
AddElement(new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 10, 0.20f, "PallinoPortafoglioProposto_new.png") { AutoIncrementYWritable = false, DeltaY = -1 });
AddElement(new FormattedTextAreaPDF(String.Format("Portafoglio proposto (€){0}", _asteriscoProposto), EnvironmentFacade.RendererFacade.XLeftLimit + 25) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(portafoglioProposto), EnvironmentFacade.RendererFacade.XLeftLimit + 220) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(10));
if (dati.Tables["SintesiComponentiPortafoglio"].Rows.Count > 0)
{
#region Definizione e Creazione
var tabellaSintesiComponentiPortafoglio = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["SintesiComponentiPortafoglio"])
{
Style = Style.ConsulenzaUnica,
AlternateRow = false,
ShowSeparationLines = true,
RowHeight = 30,
Footer = false,
HeaderHeight = 30,
HideLastSeparationLine = false,
AdditionalSpaceBetweenHeadersAndTable = 3
};
tabellaSintesiComponentiPortafoglio.Columns.Add(new ColumnPDF("Componente", 210, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Componente", "Componenti diversificazione di portafoglio") { HeaderFontSize = 7, FontSize = 7 });
tabellaSintesiComponentiPortafoglio.Columns.Add(new ColumnPDF("DiversificazioneAObject", 155, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "DiversificazioneAttuale", "Portafoglio attuale") { VerticalAlignment = VerticalAlignmentType.Centrato, HeaderFontSize = 7, FontSize = 7, DeltaYContent = 6, HeaderPaddingRight = 30 });
tabellaSintesiComponentiPortafoglio.Columns.Add(new ColumnPDF("DiversificazionePObject", 155, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Objectpdf, "DiversificazioneProposto", "Portafoglio proposto") { VerticalAlignment = VerticalAlignmentType.Centrato, HeaderFontSize = 7, FontSize = 7, DeltaYContent = 6, HeaderPaddingLeft = 30 });
#endregion
#region Creazione Stacked Bar
list = new List();
list.Add(Convert.ToDouble(dati.Tables["SintesiComponentiPortafoglio"].AsEnumerable().Max(x => x["DiversificazioneAttuale"])));
list.Add(Convert.ToDouble(dati.Tables["SintesiComponentiPortafoglio"].AsEnumerable().Max(x => x["DiversificazioneProposto"])));
//valoreMassimo = (float)Helper.Round(list.Max());
valoreMassimo = 100f;
larghezzaBarra = 0;
larghezzaSpazioTestoPercentuale = 0;
larghezzaMinimaSpazioTestoPercentuale = 35;
deltaXBarra = 0;
width = tabellaSintesiComponentiPortafoglio.Columns[1].Width - 50;
i = 0;
foreach (DataRow row in dati.Tables["SintesiComponentiPortafoglio"].Rows)
{
#region Barra Attuale
var colore = new ColorPDF(195, 195, 195);
larghezzaBarra = Helper.GetWidthProportional((float)Convert.ToDecimal(row["DiversificazioneAttuale"]), valoreMassimo, tabellaSintesiComponentiPortafoglio.Columns[1].Width - 35);
larghezzaSpazioTestoPercentuale = tabellaSintesiComponentiPortafoglio.Columns[1].Width - larghezzaBarra;
deltaXBarra = -larghezzaBarra - 10;
if (larghezzaSpazioTestoPercentuale < larghezzaMinimaSpazioTestoPercentuale)
{
deltaXBarra = -(tabellaSintesiComponentiPortafoglio.Columns[1].Width - larghezzaMinimaSpazioTestoPercentuale);
larghezzaSpazioTestoPercentuale = larghezzaMinimaSpazioTestoPercentuale;
}
if (Convert.ToDouble(row["DiversificazioneAttuale"]) == 0)
{
tabellaSintesiComponentiPortafoglio.Cells[1, i].ValueObjectList = new List()
{
new RectanglePDF(20, 1 , ColorPDF.Bianco),
new FormattedTextAreaPDF(row["DiversificazioneAttuale"].ToString()=="0.00"? "0.00" : Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazioneAttuale"]).ToString(), 2),
0, larghezzaSpazioTestoPercentuale)
{
DeltaY = 3,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
else
{
tabellaSintesiComponentiPortafoglio.Cells[1, i].ValueObjectList = new List()
{
new RectanglePDF(20, larghezzaBarra , colore),
new FormattedTextAreaPDF(row["DiversificazioneAttuale"].ToString()=="0.00"? "0.00" : Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazioneAttuale"]).ToString(), 2),
0, larghezzaSpazioTestoPercentuale)
{
DeltaY = 3,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
#endregion Barra Attuale
#region Barra Proposto
colore = new ColorPDF(91, 155, 213);
larghezzaBarra = Helper.GetWidthProportional((float)Convert.ToDecimal(row["DiversificazioneProposto"]), valoreMassimo, tabellaSintesiComponentiPortafoglio.Columns[2].Width - 35);
larghezzaSpazioTestoPercentuale = tabellaSintesiComponentiPortafoglio.Columns[2].Width - larghezzaBarra;
deltaXBarra = larghezzaBarra + 10;
if (larghezzaSpazioTestoPercentuale < larghezzaMinimaSpazioTestoPercentuale)
{
deltaXBarra = (tabellaSintesiComponentiPortafoglio.Columns[2].Width - larghezzaMinimaSpazioTestoPercentuale);
larghezzaSpazioTestoPercentuale = larghezzaMinimaSpazioTestoPercentuale;
}
if (row["DiversificazioneProposto"].ToString() == "0.00")
{
tabellaSintesiComponentiPortafoglio.Cells[2, i].ValueObjectList = new List()
{
new RectanglePDF(20, 1, ColorPDF.Bianco),
new FormattedTextAreaPDF( "0.00",
0,
30 )
{
DeltaY = 3,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
else
{
tabellaSintesiComponentiPortafoglio.Cells[2, i].ValueObjectList = new List()
{
new RectanglePDF(20, larghezzaBarra, colore),
new FormattedTextAreaPDF( Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazioneProposto"]).ToString(), 2),
0,
larghezzaSpazioTestoPercentuale)
{
DeltaY = 3,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left,
TextVerticalAlign = ceTe.DynamicPDF.VAlign.Center,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
#endregion Barra Proposto
i++;
}
AddElement(tabellaSintesiComponentiPortafoglio);
//ASSE X
axisWidth = Helper.GetWidthProportional(100, valoreMassimo, tabellaSintesiComponentiPortafoglio.Columns[1].Width - larghezzaMinimaSpazioTestoPercentuale);
//asse x attuale
XAxisDraw(365, Y2TabellaSintesiComponentiProposto, 365 + axisWidth, Y2TabellaSintesiComponentiProposto + 2, 2);
//asse x proposto
XAxisDraw(365, Y2TabellaSintesiComponentiProposto, 365 - axisWidth, Y2TabellaSintesiComponentiProposto + 2, 2);
//ASSE Y
AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 365 - 0.5f, Y1TabellaSintesiComponentiAttuale + 2, EnvironmentFacade.RendererFacade.XLeftLimit + 365 - 0.5f, Y2TabellaSintesiComponentiProposto + 2, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
}
#endregion Tabella Sintesi Componenti Portafoglio
#endregion Sezione Sintesi Componenti
#region Nota a pie' pagina
if (_stampaNota)
{
AddElement(new SpacePDF(15));
AddElement(new FormattedTextAreaPDF(string.Format("{0}", nota), EnvironmentFacade.RendererFacade.XLeftLimit) { Y = 700, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false, FontSize = 7, AbsolutePosition = true });
}
#endregion Nota a pie' pagina
}
else
{
#region Nota a pie' pagina
if (_stampaNota)
{
AddElement(new SpacePDF(15));
AddElement(new FormattedTextAreaPDF(string.Format("{0}", nota), EnvironmentFacade.RendererFacade.XLeftLimit) { Y = 300, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false, FontSize = 7, AbsolutePosition = true });
}
#endregion Nota a pie' pagina
}
#endregion Sezione Sintesi Componenti
#region Sezione Dettaglio Componenti
if (_visualizzaDettaglioComponenti)
{
#region Nota a pie' pagina e cambio pagina
//if (_stampaNota)
//{
// AddElement(new SpacePDF(15));
// //AddElement(new FormattedTextAreaPDF(string.Format("{0}", nota), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
// AddElement(new FormattedTextAreaPDF(string.Format("{0}", nota), EnvironmentFacade.RendererFacade.XLeftLimit) { Y = 700, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false, FontSize = 7, AbsolutePosition = true });
//}
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 });
AddElement(new PagePDF());
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 });
#endregion Nota a pie' pagina e cambio pagina
#region Titolo e Testo Introduttivo
AddElement(new SpacePDF(20));
string titoloDettaglio = "Dettaglio delle componenti di diversificazione";
AddElement(new FormattedTextAreaPDF(titoloDettaglio, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 10, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(10));
string testoIntroDettaglio = string.Empty;
testoIntroDettaglio = testi.Rows[0]["testo5"].ToString();
testoIntroDettaglio = Helper.ReplaceVariables(testoIntroDettaglio, EnvironmentFacade.ReportEnvironment);
AddElement(new FormattedTextAreaPDF(testoIntroDettaglio, EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(20));
#endregion Titolo e Testo Introduttivo
#region Tabella Dettaglio Componenti Attuale
AddElement(new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 10, 0.20f, "PallinoPortafoglioAttuale_new.png") { AutoIncrementYWritable = false, DeltaY = -1 });
AddElement(new FormattedTextAreaPDF(String.Format("Portafoglio attuale (€){0}", _asteriscoAttuale), EnvironmentFacade.RendererFacade.XLeftLimit + 25) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(portafoglioAttuale), EnvironmentFacade.RendererFacade.XLeftLimit + 220) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(10));
AddElement(new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 10, 0.20f, "PallinoPortafoglioProposto_new.png") { AutoIncrementYWritable = false, DeltaY = -1 });
AddElement(new FormattedTextAreaPDF(String.Format("Portafoglio proposto (€){0}", _asteriscoProposto), EnvironmentFacade.RendererFacade.XLeftLimit + 25) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false });
AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(portafoglioProposto), EnvironmentFacade.RendererFacade.XLeftLimit + 220) { FontSize = 7, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new SpacePDF(10));
if (dati.Tables["DettaglioComponentiPortafoglio"].Rows.Count > 0)
{
#region Definizione e Creazione
var tabellaDettaglioComponentiPortafoglio = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["DettaglioComponentiPortafoglio"])
{
Style = Style.ConsulenzaUnica,
AlternateRow = false,
ShowSeparationLines = true,
RowHeight = 30,
Footer = false,
HeaderHeight = 30,
HideLastSeparationLine = false,
AdditionalSpaceBetweenHeadersAndTable = 3
};
tabellaDettaglioComponentiPortafoglio.Columns.Add(new ColumnPDF("Componente", 210, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Componente", "Componenti diversificazione di portafoglio") { HeaderFontSize = 7, FontSize = 7 });
tabellaDettaglioComponentiPortafoglio.Columns.Add(new ColumnPDF("DiversificazioneAObject", 155, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "DiversificazioneAttuale", "Portafoglio attuale") { VerticalAlignment = VerticalAlignmentType.Centrato, HeaderFontSize = 7, FontSize = 7, DeltaYContent = 6, HeaderPaddingRight = 30 });
tabellaDettaglioComponentiPortafoglio.Columns.Add(new ColumnPDF("DiversificazionePObject", 155, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Objectpdf, "DiversificazioneAttuale", "Portafoglio proposto") { VerticalAlignment = VerticalAlignmentType.Centrato, HeaderFontSize = 7, FontSize = 7, DeltaYContent = 6, HeaderPaddingLeft = 30 });
#endregion Definizione e Creazione
#region Creazione Stacked Bar
i = 0;
list = new List();
list.Add(Convert.ToDouble(dati.Tables["DettaglioComponentiPortafoglio"].AsEnumerable().Max(x => x["DiversificazioneAttuale"])));
list.Add(Convert.ToDouble(dati.Tables["DettaglioComponentiPortafoglio"].AsEnumerable().Max(x => x["DiversificazioneProposto"])));
//valoreMassimo = (float)Helper.Round(list.Max());
valoreMassimo = 100;
larghezzaBarra = 0;
larghezzaSpazioTestoPercentuale = 0;
larghezzaMinimaSpazioTestoPercentuale = 35;
deltaXBarra = 0;
width = tabellaDettaglioComponentiPortafoglio.Columns[1].Width - 50;
foreach (DataRow row in dati.Tables["DettaglioComponentiPortafoglio"].Rows)
{
#region Barra Attuale
var colore = new ColorPDF(195, 195, 195);
tabellaDettaglioComponentiPortafoglio.Row[i].BackgroundGray = Convert.ToBoolean(row["IsHeader"].ToString());
tabellaDettaglioComponentiPortafoglio.Row[i].FontBold = Convert.ToBoolean(row["IsHeader"].ToString());
tabellaDettaglioComponentiPortafoglio.Row[i].ForceStyleFontBold = Convert.ToBoolean(row["IsHeader"].ToString());
if (!Convert.ToBoolean(row["IsHeader"].ToString()))
tabellaDettaglioComponentiPortafoglio.Cells[0, i].XContentOffset = 20;
tabellaDettaglioComponentiPortafoglio.Cells[1, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
larghezzaBarra = Helper.GetWidthProportional((float)Convert.ToDecimal(row["DiversificazioneAttuale"]), valoreMassimo, tabellaDettaglioComponentiPortafoglio.Columns[1].Width - 35);
larghezzaSpazioTestoPercentuale = tabellaDettaglioComponentiPortafoglio.Columns[1].Width - larghezzaBarra;
deltaXBarra = -larghezzaBarra - 10;
if (larghezzaSpazioTestoPercentuale < larghezzaMinimaSpazioTestoPercentuale)
{
deltaXBarra = -(tabellaDettaglioComponentiPortafoglio.Columns[1].Width - larghezzaMinimaSpazioTestoPercentuale);
larghezzaSpazioTestoPercentuale = larghezzaMinimaSpazioTestoPercentuale;
}
if (Convert.ToDouble(row["DiversificazioneAttuale"]) == 0)
{
tabellaDettaglioComponentiPortafoglio.Cells[1, i].ValueObjectList = new List()
{
new RectanglePDF(20, 1 , ColorPDF.Bianco),
new FormattedTextAreaPDF(row["DiversificazioneAttuale"].ToString()=="0.00"? "0.00" : Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazioneAttuale"]).ToString(), 2),
0, larghezzaSpazioTestoPercentuale)
{
DeltaY = 2,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
else
{
tabellaDettaglioComponentiPortafoglio.Cells[1, i].ValueObjectList = new List()
{
new RectanglePDF(20, larghezzaBarra , colore),
new FormattedTextAreaPDF(row["DiversificazioneAttuale"].ToString()=="0.00"? "0.00" : Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazioneAttuale"]).ToString(), 2),
0, larghezzaSpazioTestoPercentuale)
{
DeltaY = 2,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
#endregion Barra Attuale
#region Barra Proposto
colore = new ColorPDF(91, 155, 213);
tabellaDettaglioComponentiPortafoglio.Cells[2, i].HorizontalAlignment = HorizontalAlignmentType.Sinistra;
larghezzaBarra = Helper.GetWidthProportional((float)Convert.ToDecimal(row["DiversificazioneProposto"]), valoreMassimo, tabellaDettaglioComponentiPortafoglio.Columns[2].Width - 35);
larghezzaSpazioTestoPercentuale = tabellaDettaglioComponentiPortafoglio.Columns[2].Width - larghezzaBarra;
deltaXBarra = larghezzaBarra + 10;
if (larghezzaSpazioTestoPercentuale < larghezzaMinimaSpazioTestoPercentuale)
{
deltaXBarra = (tabellaDettaglioComponentiPortafoglio.Columns[2].Width - larghezzaMinimaSpazioTestoPercentuale);
larghezzaSpazioTestoPercentuale = larghezzaMinimaSpazioTestoPercentuale;
}
if (row["DiversificazioneProposto"].ToString() == "0.00")
{
tabellaDettaglioComponentiPortafoglio.Cells[2, i].ValueObjectList = new List()
{
new RectanglePDF(20, 1, ColorPDF.Bianco),
new FormattedTextAreaPDF( "n.c.",
0,
30 )
{
DeltaY = 2,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
else
{
tabellaDettaglioComponentiPortafoglio.Cells[2, i].ValueObjectList = new List()
{
new RectanglePDF(20, larghezzaBarra, colore),
new FormattedTextAreaPDF( Helper.FormatDecimal(Convert.ToDecimal(row["DiversificazioneProposto"]).ToString(), 2),
0,
larghezzaSpazioTestoPercentuale)
{
DeltaY = 2,
TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left,
DeltaX = deltaXBarra,
FontSize = 7
}
};
}
#endregion Barra Proposto
i++;
}
#endregion Creazione Stacked Bar
AddElement(tabellaDettaglioComponentiPortafoglio);
//ASSE X
//axisWidth = Helper.GetWidthProportional(100, valoreMassimo, tabellaDettaglioComponentiFideuram.Columns[1].Width - larghezzaMinimaSpazioTestoPercentuale);
//XAxisDraw(210, 210 + axisWidth);
//ASSE X
axisWidth = Helper.GetWidthProportional(100, valoreMassimo, tabellaDettaglioComponentiPortafoglio.Columns[1].Width - larghezzaMinimaSpazioTestoPercentuale);
// asse x attuale
XAxisDraw(365, Y2TabellaDettaglioComponentiProposto, 365 + axisWidth, Y2TabellaDettaglioComponentiProposto + 2, 2);
// asse x proposto
XAxisDraw(365, Y2TabellaDettaglioComponentiProposto, 365 - axisWidth, Y2TabellaDettaglioComponentiProposto + 2, 2);
//ASSE Y
AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 365 - 0.5f, Y1TabellaDettaglioComponentiAttuale + 2, EnvironmentFacade.RendererFacade.XLeftLimit + 365 - 0.5f, Y2TabellaDettaglioComponentiProposto + 2, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
}
#endregion Tabella Dettaglio Componenti
#region Nota a pie' pagina
if (_stampaNota)
{
//AddElement(new SpacePDF(15));
//AddElement(new FormattedTextAreaPDF(string.Format("{0}", nota), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
AddElement(new FormattedTextAreaPDF(string.Format("{0}", nota), EnvironmentFacade.RendererFacade.XLeftLimit) { Y = 700, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, AutoIncrementYWritable = false, FontSize = 7, AbsolutePosition = true });
}
#endregion Nota a pie' pagina
}
#endregion Sezione Dettaglio Componenti
}
///
/// Recupera i dati necessari alla Section restituendo un DataTable.
///
///
protected sealed override DataTable GetDataTable()
{
return null;
}
///
/// Recupera i dati necessari alla Section restituendo un DataSet.
///
///
protected sealed override DataSet GetDataSet()
{
var ds = new DataSet();
var rischio = datiSeiUnico.rischioUnit().rischio.rischioMercatoCredito;
//Adriano 20180125 Per eliminare la gestione profilazione per i nuclei (non più gestita nel WS)
decimal varMassimoProfiloCliente = datiSeiUnico.piramideModelloUnit().questionarioMifid.profileVarMax;
//if (EnvironmentFacade.ReportEnvironment.ReportId == 6)
//{
// profilo = 5;
// varMassimoProfiloCliente = rischio.soglieMassime.FirstOrDefault(o => o.key == profilo).value.varMax;
//}
//else
//{
// profilo = rischio.profileId;
// varMassimoProfiloCliente = rischio.soglieMassime.FirstOrDefault(o => o.key == profilo).value.varMax;
//}
//var profilo = rischio.profileId;
//var varMassimoProfiloCliente = rischio.soglieMassime.FirstOrDefault(o => o.key == profilo).value.varMax;
//Adriano 20180125
//var totCasa = datiSeiUnico.rischioUnit().rischio.rischioCreditoConcetrazione.totaliFideuram;
//var totTerzi = datiSeiUnico.rischioUnit().rischio.rischioCreditoConcetrazione.totaliAltriIstituti;
//var totalePatrimonioCasa = totCasa.risorseFinanziarie + totCasa.partiteViaggianti;
//var totalePatrimonioTerzi = totTerzi.risorseFinanziarie;
//var totalePatrimonioFinanziario = totCasa.risorseFinanziarie + totCasa.partiteViaggianti + totTerzi.risorseFinanziarie;
//var rischioFideuram = rischio.bancaFideuram;
//var rischioAltriIstituti = rischio.altriIstituti;
//var rischioComplessivo = rischio.totale;
//_presenzaNotaEccessivaAdeguatezza = rischio.eccessivamenteAdeguato;
var datiPortaglioAttuale = datiSeiUnico.rischioUnit().adeguatezza.adeguatezzaTopBean.datiPortafoglio;
var portafoglioproposto = datiSeiUnico.propostaUnit().stDettaglioProposta;
#region DataTable Portafoglio
ds.Tables.Add(new DataTable("Portafoglio"));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("Portafoglio", typeof(string)));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("Controvalore", typeof(decimal)));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("GradoCopertura", typeof(decimal)));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("DiversificazionePortafoglio", typeof(decimal)));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("Red", typeof(int)));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("Green", typeof(int)));
ds.Tables["Portafoglio"].Columns.Add(new DataColumn("Blue", typeof(int)));
//ds.Tables["Portafoglio"].Rows.Add("Portafoglio attuale", 400247.20, 75.02, 29.18, 0, 0, 0);
ds.Tables["Portafoglio"].Rows.Add("Portafoglio attuale",
datiSeiUnico.ATTUTALE_TOTALEPOSITIVO,
datiPortaglioAttuale != null ? datiPortaglioAttuale.copertura : 0.00,
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("BENEFICIO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("BENEFICIO")).value,
195, 195, 195);
//ds.Tables["Portafoglio"].Rows.Add("Portafoglio proposto", 400247.20, 100.00, 34.82, 157, 195, 230);
ds.Tables["Portafoglio"].Rows.Add("Portafoglio proposto",
datiSeiUnico.PROPOSTO_TOTALEPOSITIVO,
portafoglioproposto.copertura,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("BENEFICIO")).value,
91, 155, 213);
#endregion DataTable Portafoglio
#region DataTable SintesiComponentiPortafoglio
ds.Tables.Add(new DataTable("SintesiComponentiPortafoglio"));
ds.Tables["SintesiComponentiPortafoglio"].Columns.Add("Componente", typeof(string));
ds.Tables["SintesiComponentiPortafoglio"].Columns.Add("DiversificazioneAttuale", typeof(decimal));
ds.Tables["SintesiComponentiPortafoglio"].Columns.Add("DiversificazioneProposto", typeof(decimal));
//ds.Tables["SintesiComponentiPortafoglio"].Rows.Add("Diversificazione del rischio mercato", 56, 63);
ds.Tables["SintesiComponentiPortafoglio"].Rows.Add("Diversificazione del rischio mercato",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATO")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATO")).value);
//ds.Tables["SintesiComponentiPortafoglio"].Rows.Add("Diversificazione del rischio credito", 43, 45);
ds.Tables["SintesiComponentiPortafoglio"].Rows.Add("Diversificazione del rischio credito",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITO")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITO")).value);
//ds.Tables["SintesiComponentiPortafoglio"].Rows.Add("Diversificazione del rischio concentrazione", 9, 10);
ds.Tables["SintesiComponentiPortafoglio"].Rows.Add("Diversificazione del rischio concentrazione",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECONCENTRAZIONE")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECONCENTRAZIONE")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECONCENTRAZIONE")).value);
#endregion DataTable SintesiComponentiPortafoglio
#region DataTable DettaglioComponentiPortafoglio
ds.Tables.Add(new DataTable("DettaglioComponentiPortafoglio"));
ds.Tables["DettaglioComponentiPortafoglio"].Columns.Add("Componente", typeof(string));
ds.Tables["DettaglioComponentiPortafoglio"].Columns.Add("DiversificazioneAttuale", typeof(decimal));
ds.Tables["DettaglioComponentiPortafoglio"].Columns.Add("DiversificazioneProposto", typeof(decimal));
ds.Tables["DettaglioComponentiPortafoglio"].Columns.Add("IsHeader", typeof(bool));
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("Diversificazione del rischio mercato", 56, 63, true);
ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("Diversificazione del rischio mercato",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATO")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATO")).value,
true);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("breve periodo", 86, 95, false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("breve periodo",
// rischio.diversicazioneCasa.beneficio.Count() > 0 ?
// rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATOBREVEPERIODO")).value
// : 0,
// //rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATOBREVEPERIODO")).value,
// portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATOBREVEPERIODO")).value,
// false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("lungo periodo", 95, 100, false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("lungo periodo",
// rischio.diversicazioneCasa.beneficio.Count() > 0 ?
// rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATOLUNGOPERIODO")).value
// : 0,
// //rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATOLUNGOPERIODO")).value,
// portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOMERCATOLUNGOPERIODO")).value,
// false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("Diversificazione del rischio credito", 43, 45, true);
ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("Diversificazione del rischio credito",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITO")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITO")).value,
true);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("risparmio gestito", 85, 94, false);
ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("risparmio gestito",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITOGESTITO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITOGESTITO")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITOGESTITO")).value,
false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("risparmio amministrato", 20, 23, false);
ds.Tables["dettagliocomponentiportafoglio"].Rows.Add("risparmio amministrato",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITOAMMINISTRATI")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITOAMMINISTRATI")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONERISCHIOCREDITOAMMINISTRATI")).value,
false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("Diversificazione del rischio concentrazione", 9, 10, true);
ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("Diversificazione del rischio concentrazione",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECONCENTRAZIONE")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECONCENTRAZIONE")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECONCENTRAZIONE")).value,
true);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("case di investimento", 40, 55, false);
ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("case di investimento",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECASEINVESTIMENTO")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECASEINVESTIMENTO")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONECASEINVESTIMENTO")).value,
false);
//ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("numerosità titoli", 20, 36, false);
ds.Tables["DettaglioComponentiPortafoglio"].Rows.Add("numerosità titoli",
rischio.diversicazioneCasa.beneficio.Count() > 0 ?
rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONENUMEROTITOLI")).value
: 0,
//rischio.diversicazioneCasa.beneficio.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONENUMEROTITOLI")).value,
portafoglioproposto.diversificazioneProposta.FirstOrDefault(o => o.key.ToUpper().Equals("DIVERSIFICAZIONENUMEROTITOLI")).value,
false);
#endregion DataTable DettaglioComponentiPortafoglio
return ds;
}
///
/// Recupera la nota dinamica
///
///
///
public virtual string GetNote()
{
string nota = "";
string token = "";
var pianificazioneVerticale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale;
var proposta = datiSeiUnico.propostaUnit().stDettaglioProposta;
decimal CCN_ATTUALE = pianificazioneVerticale.contoCorrenteNegativo; //cc negativi del patrimonio casa
decimal GPELIGOFONDI_ATTUALE = pianificazioneVerticale.liqEligoFondiNeg; // liquidità sottostante la GP Eligo Fondi del patrimonio casa
decimal GPELIGOTITOLI_ATTUALE = pianificazioneVerticale.liqEligoTitoliNeg; //liquidità sottostante la GP Eligo Titoli del patrimonio casa
decimal CCN_PROPOSTO = proposta.contoCorrenteNegativo;
decimal GPELIGOFONDI_PROPOSTO = proposta.liqEligoFondiNeg;
decimal GPELIGOTITOLI_PROPOSTO = proposta.liqEligoTitoliNeg;
// 20181009 AC
decimal TUOFOGLIO_ATTUALE = pianificazioneVerticale.liqFogliNeg; // liquidità sottostante Il Mio Foglio del patrimonio casa
decimal TUOFOGLIO_PROPOSTO = proposta.liqFogliNeg; // liquidità sottostante Il Mio Foglio del patrimonio casa
//--20181009 AC
//**************************************SIMULAZIONE******************************************************
//decimal CCN_ATTUALE = 0;
//decimal GPELIGOFONDI_ATTUALE = 10;
//decimal GPELIGOTITOLI_ATTUALE = 0;
//decimal TUOFOGLIO_ATTUALE = 0;
//decimal CCN_PROPOSTO = 210;
//decimal GPELIGOFONDI_PROPOSTO = 0;
//decimal GPELIGOTITOLI_PROPOSTO = 0;
//decimal TUOFOGLIO_PROPOSTO = 0;
//**************************************FINE SIMULAZIONE*************************************************
// 20181009 AC
//_presenzaNotaPortafoglioAttuale = CCN_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0;
//_presenzaNotaPortafoglioProposto = CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0;
//--20181009 AC
_presenzaNotaPortafoglioAttuale = CCN_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0 || TUOFOGLIO_ATTUALE != 0;
_presenzaNotaPortafoglioProposto = CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0 || TUOFOGLIO_PROPOSTO != 0;
//decimal GC = 100;
//decimal OC_CASA = 0;//patrimonioCasa.totaliPatrimonio.partiteViaggianti; //Operazioni in corso del patrimonio casa
//decimal CC_CASA = 0;// patrimonioCasa.totaliPatrimonio.contoCorrentePositivo; //cc positivo del patrimonio casa
//decimal CC_TERZI = 0;// patrimonioTerzi.totaliPatrimonio.contoCorrentePositivo; //cc positivo del patrimonio terzi
//decimal PNR_CASA = 0; //Patrimonio non rappresentabile per macroassetclass del patrimonio casa
//decimal PNR_TERZI = 0;
// 20181009 AC
//if (CCN_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0 || CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0)
if (CCN_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0 || TUOFOGLIO_ATTUALE != 0 || CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0 || TUOFOGLIO_PROPOSTO != 0)
{
// 20181009 AC
//if (CCN_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0)
if (CCN_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0 || TUOFOGLIO_ATTUALE != 0)
//--20181009 AC
{
nota += token + "Il controvalore";
token = " ";
nota += token + "del portafoglio attuale esclude il saldo negativo";
if (CCN_ATTUALE != 0)
{
nota += token + datiSeiUnico.FormatDecimal("dei conti correnti ({0} €)", CCN_ATTUALE);
token = (TUOFOGLIO_ATTUALE != 0 || GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0) ? ", " : "";
}
// 20181009 AC
if (TUOFOGLIO_ATTUALE != 0)
{
nota += token + datiSeiUnico.FormatDecimal("della liquidità sottostante Il Mio Foglio ({0} €)", TUOFOGLIO_ATTUALE);
token = (GPELIGOFONDI_ATTUALE != 0 || GPELIGOTITOLI_ATTUALE != 0) ? ", " : "";
}
//--20181009 AC
if (GPELIGOFONDI_ATTUALE != 0)
{
nota += token + datiSeiUnico.FormatDecimal("della liquidità sottostante la GP Eligo Fondi ({0} €)", GPELIGOFONDI_ATTUALE);
token = (GPELIGOTITOLI_ATTUALE != 0) ? ", " : "";
}
if (GPELIGOTITOLI_ATTUALE != 0)
{
nota += token + datiSeiUnico.FormatDecimal("della liquidità sottostante la GP Eligo Titoli ({0} €)", GPELIGOTITOLI_ATTUALE);
}
token = ". ";
}
// 20181009 AC
//if (CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0)
if (CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0 || TUOFOGLIO_PROPOSTO != 0)
//--20181009 AC
{
nota += token + "Il controvalore";
token = " ";
nota += token + "del portafoglio proposto esclude il saldo negativo";
// 20181009 AC ELIMINARE??
//if (CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0)
if (CCN_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0 || TUOFOGLIO_PROPOSTO != 0)
//--20181009 AC
{
if (CCN_PROPOSTO != 0)
{
nota += token + datiSeiUnico.FormatDecimal("dei conti correnti ({0} €)", CCN_PROPOSTO);
token = (TUOFOGLIO_PROPOSTO != 0 || GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0) ? ", " : "";
}
// 20181009 AC
if (TUOFOGLIO_PROPOSTO != 0)
{
nota += token + datiSeiUnico.FormatDecimal("della liquidità sottostante Il Mio Foglio ({0} €)", TUOFOGLIO_PROPOSTO);
token = (GPELIGOFONDI_PROPOSTO != 0 || GPELIGOTITOLI_PROPOSTO != 0) ? ", " : "";
}
//--20181009 AC
if (GPELIGOFONDI_PROPOSTO != 0)
{
nota += token + datiSeiUnico.FormatDecimal("della liquidità sottostante la GP Eligo Fondi ({0} €)", GPELIGOFONDI_PROPOSTO);
token = (GPELIGOTITOLI_PROPOSTO != 0) ? ", " : "";
}
if (GPELIGOTITOLI_PROPOSTO != 0)
{
nota += token + datiSeiUnico.FormatDecimal("della liquidità sottostante la GP Eligo Titoli ({0} €)", GPELIGOTITOLI_PROPOSTO);
}
token = ". ";
}
}
}
nota += ".";
nota = !nota.Equals("") ? "(*) " + nota : nota;
return datiSeiUnico.FormatBanca(nota);
}
private void XAxisDraw(float x1, float x2)
{
AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + x1 - 1, EnvironmentFacade.RendererFacade.XLeftLimit + x2 + 1, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
var incr = (x2 - x1) / 5;
float currentX = EnvironmentFacade.RendererFacade.XLeftLimit + x1;
for (int i = 0; i <= 100; i += 20)
{
AddElement(new FormattedTextAreaPDF(i.ToString(), currentX, 20) { FontSize = 6, AutoIncrementYWritable = false });
currentX += incr;
}
}
private void XAxisDraw(float x1, float y1, float x2, float y2)
{
//AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + x1 - 1, EnvironmentFacade.RendererFacade.XLeftLimit + x2 + 1, 0.8F, new ColorPDF(137, 137, 137))
AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + x1, EnvironmentFacade.RendererFacade.XLeftLimit + x2, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
var incr = (x2 - x1) / 5;
float currentX = EnvironmentFacade.RendererFacade.XLeftLimit + x1;
for (int i = 0; i <= 100; i += 20)
{
//currentX - 3 serve a centrare la label rispetto al trattino
AddElement(new FormattedTextAreaPDF(i.ToString(), currentX - 3, 20) { FontSize = 6, AutoIncrementYWritable = false, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left });
XAxisLabelLineDraw(currentX, y1, currentX, y2);
currentX += incr;
}
}
private void XAxisDraw(float x1, float y1, float x2, float y2, int interval)
{
//AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + x1 - 1, EnvironmentFacade.RendererFacade.XLeftLimit + x2 + 1, 0.8F, new ColorPDF(137, 137, 137))
AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit + x1, EnvironmentFacade.RendererFacade.XLeftLimit + x2, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
var incr = (x2 - x1) / interval;
float currentX = EnvironmentFacade.RendererFacade.XLeftLimit + x1;
for (int i = 0; i <= 100; i += (100 / interval))
{
//currentX - 3 serve a centrare la label rispetto al trattino
AddElement(new FormattedTextAreaPDF(i.ToString(), currentX - 3, 20) { FontSize = 6, AutoIncrementYWritable = false, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left });
XAxisLabelLineDraw(currentX, y1, currentX, y2);
currentX += incr;
}
}
private void XAxisLabelLineDraw(float x1, float y1, float x2, float y2)
{
float leftShift = -0.5f;
AddElement(new LinePDF(x1 + leftShift, y1, x2 + leftShift, y2, 0.8F, new ColorPDF(137, 137, 137))
{ AutoIncrementYWritable = false });
}
public virtual string GetTesto1()
{
bool isAdeguata = datiSeiUnico.flagAdeguatezzaPro();
string testo = "";
string banca = "$/Banca/$";
banca = /*"altri Istituti";*/ banca.Replace("$/Banca/$", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment));
testo = isAdeguata ?
"In questa scheda è riportato il confronto, in termini di Rischio Mercato (VaR) e di Diversificazione, tra il patrimonio che lei attualmente detiene presso " + banca + " (\"portafoglio attuale\") e il patrimonio derivante dalla presente proposta (\"portafoglio proposto\"). " :
"In questa scheda è riportato il confronto, in termini di Rischio Mercato (VaR) e di Diversificazione, tra il patrimonio che lei attualmente detiene presso " + banca + " (\"portafoglio attuale\") e il patrimonio derivante dalle operazioni da lei richieste al suo private banker (\"portafoglio prospettico\"). ";
return testo;
}
}
}