609 lines
28 KiB
C#
609 lines
28 KiB
C#
using System;
|
||
using Consulenza.ReportWriter.Business;
|
||
using Consulenza.ReportWriter.Business.OBJ_PDF;
|
||
using System.Data;
|
||
using Consulenza.ReportCommon;
|
||
using Consulenza.ReportWriter.Business.CHART_PDF;
|
||
using System.Collections.Generic;
|
||
using Consulenza.ReportWriter.Business.Entity;
|
||
using System.Linq;
|
||
using Consulenza.DataServices.fideuram.data.service;
|
||
using Consulenza.ReportWriter.Business.CUSTOM_PDF.ConsulenzaUnica;
|
||
using Dundas.Charting.WebControl;
|
||
|
||
|
||
namespace Consulenza.ReportWriter.Manager.Section.Unica
|
||
{
|
||
public class S68 : Entity.Section
|
||
{
|
||
|
||
|
||
/// <summary>
|
||
/// S68.MonitoraggioAreaRiserva idSezione = 111
|
||
/// </summary>
|
||
public S68(EnvironmentFacade environmentFacade, int idSection)
|
||
: base(environmentFacade, idSection)
|
||
{
|
||
try
|
||
{
|
||
|
||
Draw();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
SectionLogger.Write("S68", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
|
||
}
|
||
}
|
||
|
||
protected override sealed void Draw()
|
||
{
|
||
var dati = GetDataSet();
|
||
// 1st table
|
||
var dati1 = dati.Tables["risorseApportate"].Clone();
|
||
var dati2 = dati.Tables["risorseApportate"].Clone();
|
||
var dati3 = dati.Tables["risorseApportate"].Clone();
|
||
dati1.Rows.Clear();
|
||
dati2.Rows.Clear();
|
||
dati3.Rows.Clear();
|
||
|
||
for (int i = 0; i < 3; i++)
|
||
{
|
||
dati1.Rows.Add(dati.Tables["risorseApportate"].Rows[i].ItemArray);
|
||
}
|
||
for (int i = 3; i < 5; i++)
|
||
{
|
||
dati2.Rows.Add(dati.Tables["risorseApportate"].Rows[i].ItemArray);
|
||
}
|
||
for (int i = 5; i < dati.Tables["risorseApportate"].Rows.Count; i++)
|
||
{
|
||
dati3.Rows.Add(dati.Tables["risorseApportate"].Rows[i].ItemArray);
|
||
}
|
||
var serieCombination = new List<Serie>();
|
||
|
||
#region Tabella delle Risorse Apportate
|
||
|
||
var tabellaRisorseApportate = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati1)
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
Header = false,
|
||
Footer = false,
|
||
AlternateRow = false,
|
||
RowHeight = 25,
|
||
ID = "d1",
|
||
HeaderMargin = 3
|
||
};
|
||
//BugFix #3742 - distanziamento da destra
|
||
tabellaRisorseApportate.Columns.Add(new ColumnPDF("descrizione", 145, HorizontalAlignmentType.Sinistra, true, false, 7, ColumnType.Testo, "descrizione", string.Empty) { PaddingRight = 5 });
|
||
tabellaRisorseApportate.Columns.Add(new ColumnPDF("valore", 75, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "valore", string.Empty) { PaddingLeft = 5 });
|
||
|
||
tabellaRisorseApportate.Row[0].BackgroundGray = true;
|
||
|
||
//BugFix #3734 prolungamento riga bianca
|
||
tabellaRisorseApportate.Cells[0, 0].ColSpan = 2;
|
||
//BugFix #3730 concatenazione prima riga
|
||
tabellaRisorseApportate.Cells[0, 0].Value = dati.Tables["risorseApportate"].Rows[0].ItemArray[0].ToString() + " " + dati.Tables["risorseApportate"].Rows[0].ItemArray[1].ToString();
|
||
//tabellaRisorseApportate.Cells[0, 3].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
//tabellaRisorseApportate.Cells[0, 4].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
AddElement(tabellaRisorseApportate);
|
||
|
||
var rectangleGray1 = new RectanglePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 145, 1, 75, new ColorPDF(232, 236, 237))
|
||
{
|
||
AutoIncrementYWritable = false,
|
||
DeltaY = -1
|
||
};
|
||
var rectangleGray2 = new RectanglePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 145, 1, 75, new ColorPDF(232, 236, 237))
|
||
{
|
||
AutoIncrementYWritable = false,
|
||
DeltaY = 53.3f
|
||
};
|
||
|
||
AddElement(rectangleGray1);
|
||
AddElement(rectangleGray2);
|
||
var tabellaRisorseApportate2 = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit + 45, dati2)
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
Header = false,
|
||
Footer = false,
|
||
AlternateRow = false,
|
||
RowHeight = 25,
|
||
ID = "d2",
|
||
YOffset = 1f
|
||
};
|
||
tabellaRisorseApportate2.ShowSeparationLines = true;
|
||
tabellaRisorseApportate2.WidthSeparationLines = 0.2f;
|
||
|
||
tabellaRisorseApportate2.Columns.Add(new ColumnPDF("descrizione", 100, HorizontalAlignmentType.Sinistra, true, false, 7, ColumnType.Testo, "descrizione", string.Empty));
|
||
tabellaRisorseApportate2.Columns.Add(new ColumnPDF("valore", 75, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "valore", string.Empty)
|
||
{ PaddingLeft = 5 });
|
||
AddElement(tabellaRisorseApportate2);
|
||
|
||
var tabellaRisorseApportate3 = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati3)
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
Header = false,
|
||
Footer = false,
|
||
AlternateRow = false,
|
||
RowHeight = 25,
|
||
ID = "d3",
|
||
YOffset = 2f
|
||
};
|
||
tabellaRisorseApportate3.Columns.Add(new ColumnPDF("descrizione", 145, HorizontalAlignmentType.Sinistra, true, false, 7, ColumnType.Testo, "descrizione", string.Empty));
|
||
tabellaRisorseApportate3.Columns.Add(new ColumnPDF("valore", 75, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "valore", string.Empty)
|
||
{ PaddingLeft = 5 });
|
||
AddElement(tabellaRisorseApportate3);
|
||
|
||
if (GetNote1().Length > 0) {
|
||
AddElement(new SpacePDF(7));
|
||
AddElement(new FormattedTextAreaPDF(GetNote1(), EnvironmentFacade.RendererFacade.XLeftLimit, 520) {FontSize=6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
||
AddElement(new SpacePDF(15));
|
||
}
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
AddElement(new ResetterYPDF());
|
||
AddElement(new SpacePDF(90));
|
||
|
||
#region Grafico Risorse Apportate
|
||
|
||
AddElement(new FormattedTextAreaPDF("Valori espressi in migliaia di euro", EnvironmentFacade.RendererFacade.XLeftLimit, 520) {FontSize=7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right });
|
||
AddElement(new SpacePDF(7));
|
||
|
||
var coloreSerieRisorseApportate = new ColorPDF(95, 215, 95); //TODO
|
||
var coloreSerieControvaloreMonetario = ColorPDF.Nero; //TODO
|
||
|
||
var graficoCombination = new CombinationPDF(EnvironmentFacade.RendererFacade.XLeftLimit + 260, 1F)
|
||
{
|
||
Height = 190,
|
||
Width = 260,
|
||
MinorGridAxisY = true,
|
||
ShowLegend = true,
|
||
LegendWidthColumns = new List<int> { 20, 5, 100 },
|
||
LegendSymbolHeight = 1,
|
||
LegendDeltaX = 50,
|
||
LegendFontSizeText = 7,
|
||
LegendSymbolDeltaY = 9,
|
||
|
||
MarginAxisY = 0,
|
||
ShowLineAxisY = true,
|
||
ShowLabelAxisY = true,
|
||
LabelFormatAxisY = FormatType.Intero,
|
||
IntervalNumberAxisY = 5,
|
||
StartFromZeroAxisY = true,
|
||
|
||
LabelFormatAxisX = FormatType.DataSenzaOra,
|
||
ShowLineAxisX = true,
|
||
ShowLabelAxisX = true,
|
||
LegendYOffset = 6,
|
||
IntervalNumberAxisX = 4
|
||
};
|
||
|
||
|
||
serieCombination = new List<Serie>()
|
||
{
|
||
|
||
new Serie { Name = "RisorseApportate", Type = Dundas.Charting.WebControl.SeriesChartType.Area, Text = "Risorse apportate", Color = coloreSerieRisorseApportate},
|
||
new Serie { Name = "ControvaloreMonitorato", Type = Dundas.Charting.WebControl.SeriesChartType.Line, BorderWidth = 5, Text = "Controvalore monitorato", Color = coloreSerieControvaloreMonetario}
|
||
};
|
||
|
||
|
||
foreach (DataRow item in dati.Tables["risorseApportateMonitorato"].Rows)
|
||
{
|
||
|
||
#region Serie RisorseApportate
|
||
serieCombination[0].Points.Add(new Point
|
||
{
|
||
Color = coloreSerieRisorseApportate,
|
||
Values = new ValuesPointXY(Convert.ToDateTime(item["Data"]).ToOADate(), Convert.ToDouble(item["RisorseApportate"])),
|
||
|
||
ShowLabelAxisY = false,
|
||
LabelAxisY = "RisorseApportate",
|
||
FontSizeLabelAxisY = 7,
|
||
FontBoldLabelAxisY = false,
|
||
|
||
ShowLabelAxisX = false
|
||
});
|
||
#endregion
|
||
#region Serie ControvaloreMonitorato
|
||
serieCombination[1].Points.Add(new Point
|
||
{
|
||
Color = coloreSerieControvaloreMonetario,
|
||
Values = new ValuesPointXY(Convert.ToDateTime(item["Data"]).ToOADate(), Convert.ToDouble(item["ControvaloreMonitorato"])),
|
||
|
||
ShowLabelAxisY = false,
|
||
LabelAxisY = "ControvaloreMonitorato",
|
||
FontSizeLabelAxisY = 7,
|
||
FontBoldLabelAxisY = false,
|
||
|
||
ShowLabelAxisX = false
|
||
});
|
||
#endregion
|
||
|
||
|
||
}
|
||
|
||
|
||
graficoCombination.SeriesCollection = serieCombination;
|
||
|
||
AddElement(graficoCombination);
|
||
|
||
#endregion
|
||
|
||
|
||
if (GraficoRendimentoCumulato())
|
||
{
|
||
#region Grafico Rendimento Cumulato
|
||
|
||
AddElement(new SpacePDF(15));
|
||
AddElement(new FormattedTextAreaPDF(getTesto2(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
||
AddElement(new SpacePDF(15));
|
||
|
||
//AddElement(new FormattedTextAreaPDF("%", EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextVerticalDirection = true, DeltaY = 100 });
|
||
|
||
var coloreSerieRendimentoCumulato = ColorPDF.Nero;
|
||
var coloreSerieScenarioPessimistico = ColorPDF.Rosso;
|
||
var coloreSerieScenarioOttimistico = ColorPDF.Blu;
|
||
var graficoCombination_RendimentoCumulato = new CombinationPDF(EnvironmentFacade.RendererFacade.XLeftLimit + 30, 1F)
|
||
{
|
||
Height = 185,
|
||
Width = 470,
|
||
|
||
MinorGridAxisY = true,
|
||
//BugFix #3758 - Distanziamento voci legenda
|
||
LegendWidthColumns = new List<int> { 12, 5, 110 },
|
||
LegendSymbolHeight = 1,
|
||
ShowLegend = false,
|
||
LegendFontSizeText = 7,
|
||
LegendSymbolDeltaY = 9,
|
||
LegendDeltaX = !ConoEvoluzione() ? 230 : RendimentoCumulanto() ? 130:180,
|
||
showZeroInLabel = true,
|
||
MarginAxisY = 0,
|
||
|
||
ShowLineAxisY = true,
|
||
ShowLabelAxisY = true,
|
||
LabelFormatAxisY = FormatType.Decimale2,
|
||
|
||
ShowLineAxisX = true,
|
||
ShowLabelAxisX = true,
|
||
LabelFormatAxisX = FormatType.DataShort,
|
||
LegendYOffset = 6,
|
||
SeriesCollection = new List<Serie>(),
|
||
ChartBaseWidth = 840,
|
||
ChartBaseHeight = 350,
|
||
|
||
};
|
||
|
||
#region Serie ScenarioOttimistico
|
||
|
||
Serie ScenarioOttimistico = new Serie()
|
||
{
|
||
Name = "ScenarioOttimistico",
|
||
Type = Dundas.Charting.WebControl.SeriesChartType.Line,
|
||
Color = coloreSerieScenarioOttimistico,
|
||
BorderWidth = 2,
|
||
Text = "Scenario ottimistico ",
|
||
ShowInLegend = ConoEvoluzione()
|
||
};
|
||
graficoCombination_RendimentoCumulato.SeriesCollection.Add(ScenarioOttimistico);
|
||
#endregion
|
||
#region Serie RendimentoCumulato_Punto
|
||
Serie RendimentoCumulato_Punto = new Serie()
|
||
{
|
||
Name = "RendimentoCumulato_Punto",
|
||
Type = Dundas.Charting.WebControl.SeriesChartType.Point,
|
||
Text = "",
|
||
BorderWidth = 2,
|
||
Color = coloreSerieRendimentoCumulato,
|
||
ShowInLegend = false,
|
||
AutoCalculateLastPointLabelPosition = true
|
||
};
|
||
graficoCombination_RendimentoCumulato.SeriesCollection.Add(RendimentoCumulato_Punto);
|
||
#endregion
|
||
#region Serie RendimentoCumulato_Linea
|
||
Serie RendimentoCumulato_Linea = new Serie()
|
||
{
|
||
Name = "RendimentoCumulato_Linea",
|
||
Type = Dundas.Charting.WebControl.SeriesChartType.Line,
|
||
Color = coloreSerieRendimentoCumulato,
|
||
BorderWidth = 2,
|
||
Text = "Rendimento cumulato ",
|
||
ShowInLegend = RendimentoCumulanto(),
|
||
AutoCalculateLastPointLabelPosition = true
|
||
};
|
||
graficoCombination_RendimentoCumulato.SeriesCollection.Add(RendimentoCumulato_Linea);
|
||
#endregion
|
||
#region Serie ScenarioPessimistico
|
||
Serie ScenarioPessimistico = new Serie()
|
||
{
|
||
Name = "ScenarioPessimistico",
|
||
Type = Dundas.Charting.WebControl.SeriesChartType.Line,
|
||
Color = coloreSerieScenarioPessimistico,
|
||
BorderWidth = 2,
|
||
Text = "Scenario pessimistico",
|
||
ShowInLegend = ConoEvoluzione()
|
||
};
|
||
graficoCombination_RendimentoCumulato.SeriesCollection.Add(ScenarioPessimistico);
|
||
#endregion
|
||
|
||
|
||
foreach ( DataRow item in dati.Tables["rendimentoCumulato"].Rows) {
|
||
#region Serie RendimentoCumulato_Punto
|
||
RendimentoCumulato_Punto.Points.Add(new Point
|
||
{
|
||
Color = coloreSerieRendimentoCumulato,
|
||
Values = new ValuesPointXY(Convert.ToDateTime(item["Data"]).ToOADate(), Convert.ToDouble(item["Percentuale"])),
|
||
Visible = false,
|
||
Label = string.Format("Rend. cumulato {0}", Helper.FormatPercentage(Convert.ToDecimal(item["Percentuale"]), 2)),
|
||
Font = new System.Drawing.Font("verdana", 8.8F),
|
||
Marker = new PointMarker()
|
||
{
|
||
MarkerStyle = MarkerStyle.Circle,
|
||
MarkerColor = System.Drawing.Color.Black,
|
||
MarkerSize = 2.5f
|
||
}
|
||
});
|
||
#endregion
|
||
|
||
#region Serie RendimentoCumulato_Linea
|
||
RendimentoCumulato_Linea.Points.Add(new Point
|
||
{
|
||
Color = coloreSerieRendimentoCumulato,
|
||
Values = new ValuesPointXY(Convert.ToDateTime(item["Data"]).ToOADate(), Convert.ToDouble(item["Percentuale"])),
|
||
Visible = RendimentoCumulanto()
|
||
});
|
||
#endregion
|
||
}
|
||
|
||
var punto = RendimentoCumulato_Punto.Points.Last();
|
||
if (punto != null) {
|
||
punto.Visible = true;
|
||
}
|
||
|
||
|
||
foreach (DataRow item in dati.Tables["Cono"].Rows) {
|
||
|
||
#region Serie Scenario ottimistico
|
||
|
||
ScenarioOttimistico.Points.Add(new Point
|
||
{
|
||
Color = coloreSerieScenarioOttimistico,
|
||
Values = new ValuesPointXY(Convert.ToDateTime(item["Data"]).ToOADate(), Convert.ToDouble(item["ScenarioOttimistico"])),
|
||
Visible = ConoEvoluzione()
|
||
});
|
||
|
||
#endregion
|
||
#region Serie Scenario pessimistico
|
||
|
||
ScenarioPessimistico.Points.Add(new Point
|
||
{
|
||
Color = coloreSerieScenarioPessimistico,
|
||
Values = new ValuesPointXY(Convert.ToDateTime(item["Data"]).ToOADate(), Convert.ToDouble(item["ScenarioPessimistico"])),
|
||
Visible = ConoEvoluzione()
|
||
});
|
||
|
||
#endregion
|
||
|
||
}
|
||
|
||
AddElement(graficoCombination_RendimentoCumulato);
|
||
//#region Legenda
|
||
AddElement(new SpacePDF(25));
|
||
|
||
#region Legenda 1
|
||
float xLegenda = base.EnvironmentFacade.RendererFacade.XLeftLimit + 100;
|
||
if (ConoEvoluzione())
|
||
{
|
||
AddElement(new RectanglePDF(0.5F, 20, coloreSerieScenarioOttimistico) { DeltaY = 4, X = xLegenda, AutoIncrementYWritable = false });
|
||
xLegenda += 12;
|
||
var ftaNomeLabel = new FormattedTextAreaPDF
|
||
{
|
||
Text = "Scenario ottimistico",
|
||
FontColor = ColorPDF.Nero,
|
||
DeltaX = 12F,
|
||
AutoIncrementYWritable = false,
|
||
X = xLegenda,
|
||
FontSize = 7
|
||
};
|
||
xLegenda += 10 + (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length);
|
||
AddElement(ftaNomeLabel);
|
||
}
|
||
#endregion
|
||
|
||
#region Legenda 2
|
||
if (!RendimentoCumulanto())
|
||
{
|
||
AddElement(new ImagePDF(xLegenda, 0.1F, "PallinoPortafoglioAttuale.png") { DeltaY = 2.0F, AutoIncrementYWritable = false });
|
||
xLegenda += 5;
|
||
var ftaNomeLabel = new FormattedTextAreaPDF
|
||
{
|
||
Text = "Rendimento cumulato",
|
||
FontColor = ColorPDF.Nero,
|
||
DeltaX = 5F,
|
||
AutoIncrementYWritable = false,
|
||
X = xLegenda,
|
||
FontSize = 7
|
||
};
|
||
xLegenda += 10 + (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length);
|
||
AddElement(ftaNomeLabel);
|
||
}
|
||
else
|
||
{
|
||
AddElement(new RectanglePDF(0.5F, 20, coloreSerieRendimentoCumulato) { DeltaY = 4.5F, X = xLegenda, AutoIncrementYWritable = false });
|
||
xLegenda += 12;
|
||
var ftaNomeLabel = new FormattedTextAreaPDF
|
||
{
|
||
Text = "Rendimento cumulato",
|
||
FontColor = ColorPDF.Nero,
|
||
DeltaX = 12F,
|
||
AutoIncrementYWritable = false,
|
||
X = xLegenda,
|
||
FontSize = 7
|
||
};
|
||
xLegenda += 10 + (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length);
|
||
AddElement(ftaNomeLabel);
|
||
}
|
||
#endregion
|
||
|
||
#region Legenda 3
|
||
if (ConoEvoluzione())
|
||
{
|
||
xLegenda += 10;
|
||
AddElement(new RectanglePDF(0.5F, 20, coloreSerieScenarioPessimistico) { DeltaY = 4, X = xLegenda, AutoIncrementYWritable = false });
|
||
xLegenda += 12;
|
||
var ftaNomeLabel = new FormattedTextAreaPDF
|
||
{
|
||
Text = "Scenario pessimistico",
|
||
FontColor = ColorPDF.Nero,
|
||
DeltaX = 12F,
|
||
AutoIncrementYWritable = false,
|
||
X = xLegenda,
|
||
FontSize = 7
|
||
};
|
||
xLegenda += 10 + (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length);
|
||
AddElement(ftaNomeLabel);
|
||
}
|
||
#endregion
|
||
|
||
//#endregion
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
|
||
protected sealed override DataTable GetDataTable()
|
||
{
|
||
return null;
|
||
}
|
||
|
||
|
||
protected sealed override DataSet GetDataSet()
|
||
{
|
||
var ds = new DataSet();
|
||
ds.Tables.Add(new DataTable("risorseApportate"));
|
||
ds.Tables.Add(new DataTable("risorseApportateMonitorato"));
|
||
ds.Tables.Add(new DataTable("rendimentoCumulato"));
|
||
ds.Tables.Add(new DataTable("Cono"));
|
||
|
||
ds.Tables["risorseApportate"].Columns.Add(new DataColumn("Descrizione", typeof(string)));
|
||
ds.Tables["risorseApportate"].Columns.Add(new DataColumn("Valore", typeof(string)));
|
||
|
||
|
||
ds.Tables["risorseApportateMonitorato"].Columns.Add(new DataColumn("Data", typeof(DateTime)));
|
||
ds.Tables["risorseApportateMonitorato"].Columns.Add(new DataColumn("ControvaloreMonitorato", typeof(decimal)));
|
||
ds.Tables["risorseApportateMonitorato"].Columns.Add(new DataColumn("RisorseApportate", typeof(decimal)));
|
||
|
||
|
||
ds.Tables["rendimentoCumulato"].Columns.Add(new DataColumn("Data", typeof(DateTime)));
|
||
ds.Tables["rendimentoCumulato"].Columns.Add(new DataColumn("Percentuale", typeof(decimal)));
|
||
|
||
ds.Tables["Cono"].Columns.Add(new DataColumn("Data", typeof(DateTime)));
|
||
ds.Tables["Cono"].Columns.Add(new DataColumn("ScenarioOttimistico", typeof(decimal)));
|
||
ds.Tables["Cono"].Columns.Add(new DataColumn("ScenarioPessimistico", typeof(decimal)));
|
||
|
||
|
||
var rendimentiCumulati = new andamentoRendimento[0];
|
||
var progetto = new progettoMon();
|
||
var rendimento = new rendimentoProgetto();
|
||
var controvaloreMonitorato_RisorseApportate = new ctvRisorse[0];
|
||
var conoPianificazione = new conoBean[0];
|
||
try
|
||
{
|
||
var areaMonitorata = datiSeiUnico.monitoraggioUnit().monitoraggio.FirstOrDefault(o => o.area.Equals("Ris"));
|
||
progetto = areaMonitorata.progetti[0];
|
||
rendimento = progetto.rendimentoProgetto;
|
||
controvaloreMonitorato_RisorseApportate = progetto.ctvRisorse != null ? progetto.ctvRisorse : new ctvRisorse[0];
|
||
rendimentiCumulati = progetto.andamentiRedimenti;
|
||
conoPianificazione = datiSeiUnico.pianificazioneUnit().pianificazioneOrizzontale.LastOrDefault(o => o.portafoglioModello.area.Equals("Ris")).cono;
|
||
}
|
||
catch
|
||
{
|
||
|
||
}
|
||
|
||
#region Tabella e Grafico delle risorse apportate
|
||
|
||
|
||
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>MONITORAGGIO ATTIVATO IL</b>", string.Format("<b>{0}</b>", rendimento.dtAvvio.ToShortDateString()));
|
||
ds.Tables["risorseApportate"].Rows.Add(string.Format("<b>Controvalore (€){0}</b> <br> (Aggiornato il {1})", GetNote1().Length>0 ? "*" : "", rendimento.dtCtv.ToShortDateString()), string.Format("<b>{0}</b>", Helper.FormatCurrency(rendimento.ctvMonitorato.ToString())));
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>Risorse apportate (€)</b>", string.Format("<b>{0}</b>", Helper.FormatCurrency(rendimento.risorseApportate.ToString())));
|
||
ds.Tables["risorseApportate"].Rows.Add("Apporti iniziali", Helper.FormatCurrency(rendimento.apportoIniziale.ToString()));
|
||
ds.Tables["risorseApportate"].Rows.Add("Movimenti successivi", Helper.FormatCurrency(rendimento.movimentiSuccessivi.ToString()));
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>Plus/Minusvalenza (€)</b>", Helper.FormatCurrency(rendimento.minusPlusAreaProgetto.ToString()));
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>Cedole/Dividendi (€)</b>", Helper.FormatCurrency(rendimento.cedoleDividendi.ToString()));
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>Guadagno/Perdita totale (€)</b>", Helper.FormatCurrency((rendimento.minusPlusAreaProgetto + rendimento.cedoleDividendi).ToString()));
|
||
string rendimentoAnnualizzato = rendimento.rendimentoAnnualizzato != 0 ? "<br>(" + Helper.FormatDecimal(rendimento.rendimentoAnnualizzato.ToString(), 2) + " % su base annua)" : "";
|
||
if (FlagBaseAnnua())
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>Rendimento cumulato (%)</b>", Helper.FormatDecimal(rendimento.rendAvvio.ToString(), 2)+rendimentoAnnualizzato);
|
||
else
|
||
ds.Tables["risorseApportate"].Rows.Add("<b>Rendimento cumulato (%)</b>", Helper.FormatDecimal(rendimento.rendAvvio.ToString(), 2));
|
||
|
||
|
||
foreach (var item in from o in controvaloreMonitorato_RisorseApportate orderby o.dtValorizzazione select o) {
|
||
ds.Tables["risorseApportateMonitorato"].Rows.Add(
|
||
item.dtValorizzazione,
|
||
item.ctv / 1000,
|
||
item.risorseAssociate / 1000);
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (GraficoRendimentoCumulato()) {
|
||
#region Grafico del rendimento cumulato
|
||
|
||
foreach (var item in from o in rendimentiCumulati orderby o.dtRendimento select o)
|
||
{
|
||
ds.Tables["rendimentoCumulato"].Rows.Add(
|
||
item.dtRendimento,
|
||
item.percentuale
|
||
);
|
||
};
|
||
|
||
foreach (var item in from o in conoPianificazione orderby o.dtRiferimento select o )
|
||
{
|
||
ds.Tables["Cono"].Rows.Add(
|
||
item.dtRiferimento,
|
||
item.quantileSup * 100,
|
||
item.quantileInf * 100
|
||
|
||
);
|
||
}
|
||
|
||
|
||
#endregion
|
||
}
|
||
|
||
return ds;
|
||
}
|
||
|
||
|
||
public virtual bool GraficoRendimentoCumulato(){return GetOption<Opzione4_1>().Valore;}
|
||
public virtual bool FlagBaseAnnua() { return GetOption<Opzione4_4>().Valore; }
|
||
public virtual bool ConoEvoluzione(){return GetOption<Opzione4_2>().Valore;}
|
||
public virtual bool RendimentoCumulanto() { return ConoEvoluzione()?GetOption<Opzione4_3>().Valore:true; }
|
||
|
||
public virtual string GetNote1() {
|
||
string nota = "";
|
||
var areaMonitorata = datiSeiUnico.monitoraggioUnit().monitoraggio.FirstOrDefault(o => o.area.Equals("Ris"));
|
||
var progetto = areaMonitorata.progetti[0];
|
||
if (progetto.scarti != null && progetto.scarti.Length > 0)
|
||
nota += "(*) Il controvalore esclude alcuni prodotti che non è stato possibile considerare nel calcolo dei rendimenti.";
|
||
return nota;
|
||
}
|
||
public virtual string getTesto2() {
|
||
string testo= "";
|
||
if(ConoEvoluzione() && RendimentoCumulanto())
|
||
testo += "Il grafico riporta l'evoluzione, a partire dalla data di avvio del monitoraggio, del rendimento cumulato delle risorse da lei apportate all'area Riserva (linea nera), rispetto allo scenario pessimistico (linea rossa) e allo scenario ottimistico (linea blu), stimati all’avvio del monitoraggio.";
|
||
|
||
if(ConoEvoluzione() && !RendimentoCumulanto())
|
||
testo +="Il grafico riporta il rendimento cumulato, a partire dalla data di avvio del monitoraggio, delle risorse da lei apportate all'area Riserva (pallino nero), rispetto allo scenario pessimistico (linea rossa) e allo scenario ottimistico (linea blu), stimati all’avvio del monitoraggio.";
|
||
|
||
if(!ConoEvoluzione())
|
||
testo +="Il grafico riporta l'evoluzione del rendimento cumulato delle risorse da lei apportate all'area Riserva, a partire dalla data di avvio del monitoraggio.";
|
||
return testo;
|
||
}
|
||
}
|
||
}
|