738 lines
42 KiB
C#
738 lines
42 KiB
C#
using System;
|
|
using Consulenza.ReportWriter.Business;
|
|
using Consulenza.ReportWriter.Business.OBJ_PDF;
|
|
using System.Data;
|
|
using Consulenza.ReportCommon;
|
|
using System.Linq;
|
|
using Consulenza.DataServices.fideuram.data.service;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Consulenza.ReportWriter.Manager.Section.Unica
|
|
{
|
|
/// <summary>
|
|
/// S71.MonitoraggioEvoluzionePatrimonioERischio idSezione = 114
|
|
/// </summary>
|
|
public class S71 : Entity.Section
|
|
{
|
|
private int _numeroFasiPresenti = 2;
|
|
|
|
/// <summary>
|
|
/// S71.MonitoraggioEvoluzionePatrimonioERischio idSezione = 114
|
|
/// </summary>
|
|
public S71(EnvironmentFacade environmentFacade, int idSection)
|
|
: base(environmentFacade, idSection)
|
|
{
|
|
try
|
|
{
|
|
Draw();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SectionLogger.Write("S71", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
|
|
}
|
|
}
|
|
|
|
protected override sealed void Draw()
|
|
{
|
|
var dati = GetDataSet();
|
|
|
|
|
|
var fase1Data = Convert.ToDateTime(dati.Tables[0].Select().Max(r => r["Fase1_Data"]));
|
|
var sFase1Data = fase1Data.Equals(DateTime.MinValue) ? "-" : fase1Data.ToShortDateString();
|
|
|
|
var fase2Data = Convert.ToDateTime(dati.Tables[0].Select().Max(r => r["Fase2_Data"]));
|
|
var sFase2Data = fase2Data.Equals(DateTime.MinValue) ? "-" : fase2Data.ToShortDateString();
|
|
|
|
var fase3Data = Convert.ToDateTime(dati.Tables[0].Select().Max(r => r["Fase3_Data"]));
|
|
var sFase3Data = fase3Data.Equals(DateTime.MinValue) ? "-" : fase3Data.ToShortDateString();
|
|
|
|
// int larghezzaColonnaImmagine = 20;
|
|
int larghezzaColonnaSingolaFase = 130;
|
|
int larghezzaColonnaVariabile = 520 - (larghezzaColonnaSingolaFase * _numeroFasiPresenti);
|
|
|
|
|
|
int larghezzaColonnaImmagine2 = 25;
|
|
int larghezzaColonnaSingolaFase2 = 108;
|
|
int larghezzaColonnaVariabile2 = 520 - (larghezzaColonnaSingolaFase2 * _numeroFasiPresenti) - (larghezzaColonnaImmagine2 * _numeroFasiPresenti);
|
|
|
|
|
|
#region Tabella Evoluzione del Controvalore
|
|
if (evoluzionePatrimonio())
|
|
{
|
|
|
|
AddElement(new SpacePDF(20));
|
|
AddElement(new FormattedTextAreaPDF(GetTesto1(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize=7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
|
AddElement(new SpacePDF(15));
|
|
|
|
|
|
var tabellaEvoluzioneControvalore = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["EvoluzioneControvalore"], dati.Tables["FooterEvoluzioneControvalore"])
|
|
{
|
|
Style = Style.ConsulenzaUnica,
|
|
AlternateRow = false,
|
|
ShowSeparationLines = false,
|
|
RowsPadding = 10,
|
|
HeaderHeight = 30,
|
|
HeaderMargin = 5
|
|
|
|
};
|
|
|
|
tabellaEvoluzioneControvalore.Columns.Add(new ColumnPDF("Area2", larghezzaColonnaVariabile, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Objectpdf, "Area", "Area di bisogno") { DeltaYContent = -1, ScaleColumnTypeImage = 0.5F, HeaderFontSize = 7, FontSize = 7 });
|
|
tabellaEvoluzioneControvalore.Columns.Add(new ColumnPDF("Fase1", larghezzaColonnaSingolaFase, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Fase1_Controvalore", string.Format("Avvio monitoraggio<BR>({0})", sFase1Data))
|
|
{
|
|
|
|
HeaderVerticalAlignment = VerticalAlignmentType.Centrato,
|
|
HeaderGroupWidth = larghezzaColonnaSingolaFase,
|
|
HeaderGroupPathImage ="freccia71b.png",
|
|
HeaderGroupScaleImage = 0.30F,
|
|
HeaderGroupTextDeltaX = larghezzaColonnaSingolaFase,//-4,
|
|
// HeaderGroupTextDeltaY = 35,
|
|
HeaderGroupBorderLine = true,
|
|
DeltaYContent = 3,
|
|
HeaderFontSize = 7,
|
|
FontSize = 7
|
|
|
|
});
|
|
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
tabellaEvoluzioneControvalore.Columns.Add(new ColumnPDF("Fase2", larghezzaColonnaSingolaFase, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Fase2_Controvalore", string.Format("Precedente invio report<BR>({0})", sFase2Data))
|
|
{
|
|
// HeaderPaddingRight = 2,
|
|
HeaderVerticalAlignment = VerticalAlignmentType.Centrato,
|
|
HeaderGroupWidth = larghezzaColonnaSingolaFase,
|
|
HeaderGroupPathImage = "freccia71b.png",
|
|
HeaderGroupScaleImage = 0.30F,
|
|
HeaderGroupTextDeltaX = larghezzaColonnaSingolaFase,//-4,
|
|
// HeaderGroupTextDeltaY = 35,
|
|
HeaderGroupBorderLine = true,
|
|
DeltaYContent = 3,
|
|
HeaderFontSize = 7,
|
|
FontSize = 7
|
|
});
|
|
|
|
tabellaEvoluzioneControvalore.Columns.Add(new ColumnPDF("Fase3", larghezzaColonnaSingolaFase, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Fase3_Controvalore", string.Format("Situazione corrente<BR>({0})", sFase3Data))
|
|
{
|
|
DeltaYContent = 3,
|
|
HeaderFontSize = 7,
|
|
FontSize = 7
|
|
});
|
|
|
|
tabellaEvoluzioneControvalore.FooterColumns.Add(new ColumnPDF("Area", larghezzaColonnaVariabile, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo) { FontSize = 7 });
|
|
tabellaEvoluzioneControvalore.FooterColumns.Add(new ColumnPDF("Fase1", larghezzaColonnaSingolaFase, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { FontSize = 7 });
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
tabellaEvoluzioneControvalore.FooterColumns.Add(new ColumnPDF("Fase2", larghezzaColonnaSingolaFase, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { FontSize = 7 });
|
|
tabellaEvoluzioneControvalore.FooterColumns.Add(new ColumnPDF("Fase3", larghezzaColonnaSingolaFase, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { FontSize = 7 });
|
|
|
|
|
|
for (int a = 0; a < dati.Tables["EvoluzioneControvalore"].Rows.Count; a++)
|
|
{
|
|
tabellaEvoluzioneControvalore.Cells[0, a].ValueObjectList.Add(new ImagePDF(0, 1, dati.Tables["EvoluzioneControvalore"].Rows[a].ItemArray[0].ToString())
|
|
{
|
|
DeltaX = 3,
|
|
DeltaY = 0,
|
|
Scale = 0.66f,
|
|
Height = 27,
|
|
Width = 145
|
|
});
|
|
var textArea = new FormattedTextAreaPDF(dati.Tables["EvoluzioneControvalore"].Rows[a].ItemArray[1].ToString(), 0)
|
|
{
|
|
DeltaY = 8f,
|
|
FontSize = 8f
|
|
};
|
|
var labelSize = Helper.GetNumericStringWidth(textArea.Text);
|
|
float addition = 0;
|
|
switch (textArea.Text)
|
|
{
|
|
case "Investimento":
|
|
case "Previdenza":
|
|
addition = 3;
|
|
break;
|
|
case "Riserva":
|
|
addition = 2;
|
|
break;
|
|
case "Liquidità":
|
|
addition = 1;
|
|
break;
|
|
case "Extra Rendimento":
|
|
addition = 6;
|
|
break;
|
|
}
|
|
textArea.DeltaX = 76 + addition - labelSize;
|
|
textArea.Text = Helper.FirstCharToUpper(textArea.Text);
|
|
tabellaEvoluzioneControvalore.Cells[0, a].ValueObjectList.Add(textArea);
|
|
}
|
|
|
|
AddElement(tabellaEvoluzioneControvalore);
|
|
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
#region Tabella Evoluzione del Rischio
|
|
if (evoluzioneRischio())
|
|
{
|
|
// Testo introduttivo
|
|
AddElement(new SpacePDF(20));
|
|
AddElement(new FormattedTextAreaPDF(Helper.ReplaceVariables(GetTesto2(), EnvironmentFacade.ReportEnvironment), EnvironmentFacade.RendererFacade.XLeftLimit, 520) { TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, FontSize = 7 });
|
|
AddElement(new SpacePDF(15));
|
|
|
|
// Tabella
|
|
var tabellaEvoluzioneRischio = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["EvoluzioneRischio"])
|
|
{
|
|
Style = Style.ConsulenzaUnica,
|
|
AlternateRow = true,
|
|
ShowSeparationLines = false,
|
|
RowHeight = 30,
|
|
HeaderHeight = 30
|
|
};
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Descrizione", larghezzaColonnaVariabile2, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo, "Descrizione", "") { HeaderFontSize = 7, FontSize = 7 });
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Fase1", larghezzaColonnaSingolaFase2, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Fase1_sValore", string.Format("Avvio monitoraggio<BR>({0})", sFase1Data))
|
|
{
|
|
HeaderVerticalAlignment = VerticalAlignmentType.Centrato,
|
|
HeaderGroupWidth = larghezzaColonnaSingolaFase,
|
|
// HeaderGroupPathImage = "freccia71b.png",
|
|
// HeaderGroupScaleImage = 0.30F,
|
|
HeaderGroupTextDeltaX = larghezzaColonnaSingolaFase,//-4,
|
|
// HeaderGroupTextDeltaY = 35,
|
|
HeaderGroupBorderLine = true,
|
|
// DeltaYContent = 35,
|
|
HeaderFontSize = 7,
|
|
FontSize = 7
|
|
});
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Fase1_Immagine", larghezzaColonnaImmagine2, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Immagine, "Fase1_Immagine", "") { DeltaYContent = 8, ScaleColumnTypeImage = 0.15F, HeaderGroupScaleImage = 0.30F, HeaderGroupPathImage = "freccia71b.png" });
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
{
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Fase2", larghezzaColonnaSingolaFase2, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Fase2_sValore", string.Format("Precedente invio report<BR>({0})", sFase2Data))
|
|
{
|
|
|
|
HeaderVerticalAlignment = VerticalAlignmentType.Centrato,
|
|
HeaderGroupWidth = larghezzaColonnaSingolaFase,
|
|
//HeaderGroupPathImage = "freccia71b.png",
|
|
//HeaderGroupScaleImage = 0.30F,
|
|
HeaderGroupTextDeltaX = larghezzaColonnaSingolaFase,//-4,
|
|
// HeaderGroupTextDeltaY = 35,
|
|
HeaderGroupBorderLine = true,
|
|
|
|
// DeltaYContent = 35,
|
|
HeaderFontSize = 7,
|
|
FontSize = 7
|
|
});
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Fase2_Immagine", larghezzaColonnaImmagine2, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Immagine, "Fase2_Immagine", "") { HeaderFontSize = 7, FontSize = 7, DeltaYContent = 8, HeaderGroupScaleImage = 0.30F, ScaleColumnTypeImage = 0.15F, HeaderGroupPathImage = "freccia71b.png" });
|
|
}
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Fase3", larghezzaColonnaSingolaFase2, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Fase3_sValore", string.Format("Situazione corrente<BR>({0})", sFase3Data)) { HeaderFontSize = 7, FontSize = 7, HeaderPaddingRight = 5, PaddingRight = 5 });
|
|
tabellaEvoluzioneRischio.Columns.Add(new ColumnPDF("Fase3_Immagine", larghezzaColonnaImmagine2, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Immagine, "Fase3_Immagine", "") { HeaderFontSize = 7, FontSize = 7, DeltaYContent = 8, ScaleColumnTypeImage = 0.15F });
|
|
|
|
AddElement(tabellaEvoluzioneRischio);
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
|
|
protected sealed override DataTable GetDataTable()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
protected sealed override DataSet GetDataSet()
|
|
{
|
|
//Adriano
|
|
#region Cliente/Nucleo professionale
|
|
|
|
bool profiloProfessionale;
|
|
bool profiloAggressivo;
|
|
bool profiloProfessionaleAggressivo;
|
|
|
|
Profiler profiler;
|
|
|
|
if (EnvironmentFacade.ReportEnvironment.ReportId == 6) //nuclei
|
|
{
|
|
DataServices.fideuram.data.service.rsAnagraficaNucleo nucleo = datiSeiUnico.nucleiUnit().anagrafica;
|
|
profiler = new Profiler(nucleo);
|
|
}
|
|
else
|
|
{
|
|
DataServices.fideuram.data.service.rsClienteAnagrafica cliente = datiSeiUnico.clienteUnit().anagrafica;
|
|
profiler = new Profiler(cliente);
|
|
}
|
|
|
|
profiloProfessionale = profiler.ProfiloProfessionale;
|
|
profiloAggressivo = profiler.ProfiloAggressivo;
|
|
profiloProfessionaleAggressivo = profiler.ProfiloProfessionaleAggressivo;
|
|
|
|
#endregion
|
|
//--Adriano
|
|
var ds = new DataSet();
|
|
ds.Tables.Add("EvoluzioneControvalore");
|
|
ds.Tables.Add("FooterEvoluzioneControvalore");
|
|
ds.Tables.Add("EvoluzioneRischio");
|
|
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Area", typeof(string)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Description", typeof(string)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Fase1_Controvalore", typeof(decimal)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Fase1_Data", typeof(DateTime)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Fase2_Controvalore", typeof(decimal)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Fase2_Data", typeof(DateTime)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Fase3_Controvalore", typeof(decimal)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("Fase3_Data", typeof(DateTime)));
|
|
ds.Tables["EvoluzioneControvalore"].Columns.Add(new DataColumn("ReplaceIfZero", typeof(string)));
|
|
|
|
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Descrizione", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase1_Valore", typeof(decimal)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase1_sValore", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase1_Data", typeof(DateTime)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase1_Immagine", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase2_Valore", typeof(decimal)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase2_sValore", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase2_Data", typeof(DateTime)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase2_Immagine", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase3_Valore", typeof(decimal)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase3_sValore", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase3_Data", typeof(DateTime)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("Fase3_Immagine", typeof(string)));
|
|
ds.Tables["EvoluzioneRischio"].Columns.Add(new DataColumn("ReplaceIfZero", typeof(string)));
|
|
|
|
areaMon areaRiferimento;
|
|
fase fase1;
|
|
fase fase2;
|
|
fase fase3;
|
|
|
|
var piramideModello = datiSeiUnico.piramideModelloUnit()
|
|
.piramideModello.areaModello.ToList()
|
|
.OrderBy(o => o.ordinamento).ToList().FindAll(o => o.visible);
|
|
decimal fase2NA = 0;
|
|
var areeMonotorate = datiSeiUnico.monitoraggioUnit().monitoraggio.ToList();
|
|
#region Tabella evoluzione controvalore
|
|
|
|
foreach (var item in piramideModello)
|
|
{
|
|
areaRiferimento = areeMonotorate.FirstOrDefault(o => o.area.Equals(item.area));
|
|
if (areaRiferimento != null)
|
|
{
|
|
fase1 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(1));
|
|
fase2 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(2));
|
|
fase3 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(3));
|
|
_numeroFasiPresenti = _numeroFasiPresenti != areaRiferimento.fasi.Count() && _numeroFasiPresenti < areaRiferimento.fasi.Count()
|
|
? areaRiferimento.fasi.Count() : _numeroFasiPresenti;
|
|
if (areaRiferimento.fasi.Count().Equals(3) && fase2 != null && fase2NA == 0)
|
|
fase2NA += fase2.risorseNA + fase2.risorseAllocate;
|
|
}
|
|
else
|
|
{
|
|
fase1 = null;
|
|
fase2 = null;
|
|
fase3 = null;
|
|
}
|
|
|
|
|
|
var row = ds.Tables["EvoluzioneControvalore"].NewRow();
|
|
row["Area"] = string.Format("{0}.png", new AreaBisogno(item.area).NomePerImmagine);
|
|
row["Description"] = item.descrizioneArea;
|
|
row["Fase1_Controvalore"] = fase1 != null ? fase1.ctv : 0;
|
|
row["Fase1_Data"] = fase1 != null ? fase1.dtFase : DateTime.MinValue;
|
|
|
|
row["Fase2_Controvalore"] = fase2 != null ? fase2.ctv : 0;
|
|
row["Fase2_Data"] = fase2 != null ? fase2.dtFase : DateTime.MinValue;
|
|
|
|
row["Fase3_Controvalore"] = fase3 != null ? fase3.ctv : 0;
|
|
row["Fase3_Data"] = fase3 != null ? fase3.dtFase : DateTime.MinValue;
|
|
|
|
row["ReplaceIfZero"] = "0,00";
|
|
ds.Tables["EvoluzioneControvalore"].Rows.Add(row);
|
|
|
|
}
|
|
|
|
if (!sintesiMovimento())
|
|
_numeroFasiPresenti--;
|
|
|
|
|
|
#region Footer della tabella Aree
|
|
|
|
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("DescrizioneProgetto", typeof(string)));
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("VaR", typeof(decimal)));
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal)));
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("AllocazioneAttuale", typeof(decimal)));
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("ReplaceIfZero", typeof(string)));
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("FontBold", typeof(bool)));
|
|
ds.Tables["FooterEvoluzioneControvalore"].Columns.Add(new DataColumn("BackgroundGray", typeof(bool)));
|
|
|
|
areaRiferimento = areeMonotorate.FirstOrDefault(o => o.area.Equals("Liq"));
|
|
if (areaRiferimento != null) {
|
|
fase1 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(1));
|
|
fase2 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(2));
|
|
fase3 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(3));
|
|
} else {
|
|
fase1 = null;
|
|
fase2 = null;
|
|
fase3 = null;
|
|
}
|
|
DataRow dr = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
bool risorseNA = fase2 != null ?
|
|
fase2.risorseNA == 0 && fase1.risorseNA == 0 && fase3.risorseNA == 0 :
|
|
fase1.risorseNA == 0 && fase3.risorseNA == 0;
|
|
|
|
// Fase2 rimane valorizzata per l'ultima area presa; dato che no nsempre presente, ricontrollo ne esista una.
|
|
if (_numeroFasiPresenti.Equals(3) && fase2 == null){
|
|
foreach (var item in piramideModello)
|
|
{
|
|
areaRiferimento = areeMonotorate.FirstOrDefault(o => o.area.Equals(item.area));
|
|
if (areaRiferimento != null)
|
|
if (areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(2)) != null)
|
|
{
|
|
fase2 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(2));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (risorseNA)
|
|
{
|
|
//bisogna inserire le non allocate: qualora sianopresenti il footer totale allocate diventerà 1 tot risorse allocate, 2 risorse non allocate, 3 totale risorse finanziarie"
|
|
//altrimenti resta così com'è: totale risorse allocate.
|
|
if (fase1.investimentiInCorso != 0 || (_numeroFasiPresenti.Equals(3) && fase2 != null && fase2.investimentiInCorso != 0) || fase3.investimentiInCorso != 0 ||
|
|
fase1.contoCorrente != 0 || (_numeroFasiPresenti.Equals(3) && fase2 != null && fase2.contoCorrente != 0) || fase3.contoCorrente != 0 ||
|
|
fase1.lineaself != 0 || (_numeroFasiPresenti.Equals(3) && fase2 != null && fase2.lineaself != 0) || fase3.lineaself != 0)
|
|
{
|
|
|
|
|
|
|
|
dr["DescrizioneProgetto"] = datiSeiUnico.FormatBanca("Totale risorse allocate");
|
|
dr["VaR"] = Convert.ToDecimal(fase1.risorseAllocate);
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.risorseAllocate;
|
|
dr["AllocazioneAttuale"] = fase3.risorseAllocate;
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = true;
|
|
dr["BackgroundGray"] = true;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dr["DescrizioneProgetto"] = datiSeiUnico.FormatBanca("Totale risorse allocate");
|
|
dr["VaR"] = Convert.ToDecimal(fase1.risorseAllocate);
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.risorseAllocate;
|
|
dr["AllocazioneAttuale"] = fase3.risorseAllocate;
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = true;
|
|
dr["BackgroundGray"] = true;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
|
|
dr = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
dr["DescrizioneProgetto"] = "Risorse non allocate";
|
|
dr["VaR"] = fase1.risorseNA;
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.risorseNA;
|
|
dr["AllocazioneAttuale"] = fase3.risorseNA;
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = false;
|
|
dr["BackgroundGray"] = false;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
|
|
if (fase1.investimentiInCorso != 0 || (_numeroFasiPresenti.Equals(3) && fase2.investimentiInCorso != 0) || fase3.investimentiInCorso != 0 ||
|
|
fase1.contoCorrente != 0 || (_numeroFasiPresenti.Equals(3) && fase2.contoCorrente != 0) || fase3.contoCorrente != 0 ||
|
|
fase1.lineaself != 0 || (_numeroFasiPresenti.Equals(3) && fase2.lineaself != 0) || fase3.lineaself != 0)
|
|
{
|
|
dr = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
dr["DescrizioneProgetto"] = datiSeiUnico.FormatBanca("Totale risorse finanziarie");
|
|
dr["VaR"] = Convert.ToDecimal(fase1.risorseAllocate+ fase1.risorseNA);
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.risorseAllocate + fase2.risorseNA;
|
|
dr["AllocazioneAttuale"] = fase3.risorseAllocate; //per fase 3 le risorseNA non esistono perchè non contemplate nel nuovo sei
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = true;
|
|
dr["BackgroundGray"] = true;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
}
|
|
}
|
|
if (fase1.investimentiInCorso != 0 || (_numeroFasiPresenti.Equals(3) && fase2 != null && fase2.investimentiInCorso != 0) || fase3.investimentiInCorso != 0)
|
|
{
|
|
dr = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
dr["DescrizioneProgetto"] = "Operazioni in corso";
|
|
dr["VaR"] = fase1.investimentiInCorso;
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.investimentiInCorso;
|
|
dr["AllocazioneAttuale"] = fase3.investimentiInCorso;
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = false;
|
|
dr["BackgroundGray"] = false;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
}
|
|
|
|
if (fase1.contoCorrente != 0 || (_numeroFasiPresenti.Equals(3) && fase2 != null && fase2.contoCorrente != 0) || fase3.contoCorrente != 0)
|
|
{
|
|
dr = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
dr["DescrizioneProgetto"] = "Conto corrente";
|
|
dr["VaR"] = fase1.contoCorrente;
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.contoCorrente;
|
|
dr["AllocazioneAttuale"] = fase3.contoCorrente;
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = false;
|
|
dr["BackgroundGray"] = false;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
}
|
|
if (fase1.lineaself != 0 || (_numeroFasiPresenti.Equals(3) && fase2 != null && fase2.lineaself != 0) || fase3.lineaself != 0)
|
|
{
|
|
dr = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
dr["DescrizioneProgetto"] = " Liquidità negativa GP Eligo";
|
|
dr["VaR"] = fase1.lineaself;
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
dr["ControvaloreAttuale"] = fase2.lineaself;
|
|
dr["AllocazioneAttuale"] = fase3.lineaself;
|
|
dr["ReplaceIfZero"] = "-";
|
|
dr["FontBold"] = false;
|
|
dr["BackgroundGray"] = false;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(dr);
|
|
}
|
|
|
|
|
|
var totfase1=fase1.risorseNA+fase1.lineaself+fase1.contoCorrente+fase1.investimentiInCorso+fase1.risorseAllocate;
|
|
var totfase2 = fase2 != null ? fase2.risorseNA + fase2.lineaself + fase2.contoCorrente + fase2.investimentiInCorso + fase2.risorseAllocate : fase2NA;
|
|
var totfase3 = fase3.risorseNA + fase3.lineaself + fase3.contoCorrente + fase3.investimentiInCorso + fase3.risorseAllocate;
|
|
|
|
// Patrimonio Casa
|
|
var rowFooter = ds.Tables["FooterEvoluzioneControvalore"].NewRow();
|
|
rowFooter["DescrizioneProgetto"] = string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment));
|
|
rowFooter["VaR"] = totfase1;
|
|
if (_numeroFasiPresenti.Equals(3))
|
|
rowFooter["ControvaloreAttuale"] = totfase2;
|
|
rowFooter["AllocazioneAttuale"] = totfase3;
|
|
rowFooter["ReplaceIfZero"] = "-";
|
|
rowFooter["FontBold"] = true;
|
|
rowFooter["BackgroundGray"] = true;
|
|
ds.Tables["FooterEvoluzioneControvalore"].Rows.Add(rowFooter);
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Tabella evoluzione rischio
|
|
areaRiferimento = areeMonotorate.FirstOrDefault();
|
|
foreach (var areaMon in areeMonotorate)
|
|
{
|
|
fase2 = areaMon.fasi.FirstOrDefault(o => o.fase1.Equals(2));
|
|
if (fase2 != null)
|
|
{
|
|
areaRiferimento = areaMon;
|
|
break;
|
|
}
|
|
}
|
|
if (areaRiferimento != null)
|
|
{
|
|
fase1 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(1));
|
|
fase2 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(2));
|
|
fase3 = areaRiferimento.fasi.FirstOrDefault(o => o.fase1.Equals(3));
|
|
}
|
|
else
|
|
{
|
|
fase1 = null;
|
|
fase2 = null;
|
|
fase3 = null;
|
|
}
|
|
|
|
#region VaR massimo profilo finanziario (%)
|
|
|
|
//Adriano: per i clienti professionali il varMaxProfilo è 50, ma solo per le fasi successive alla sottoscrizione di un contratto professionale
|
|
// verificare che il valore sia fornito dal WS
|
|
|
|
DateTime dtSottoscrizione = datiSeiUnico.clienteUnit().anagrafica.dtSottoscrizione;
|
|
decimal varMaxProfilo = 50;
|
|
string varMaxProfiloString = Helper.FormatDecimal(varMaxProfilo.ToString(), 2);
|
|
|
|
bool fase1Successiva = fase1.dtFase.CompareTo(dtSottoscrizione) > 0;
|
|
bool fase2Successiva = fase2 != null ? fase2.dtFase.CompareTo(dtSottoscrizione) > 0 : false;
|
|
bool fase3Successiva = fase3.dtFase.CompareTo(dtSottoscrizione) > 0;
|
|
|
|
if (profiloProfessionaleAggressivo)
|
|
ds.Tables["EvoluzioneRischio"].Rows.Add(
|
|
"VaR massimo profilo finanziario (%)",
|
|
|
|
fase1 != null ? fase1Successiva ? varMaxProfilo : fase1.varMaxProfilo : 0,
|
|
fase1 != null ? fase1Successiva ? varMaxProfiloString : Helper.FormatDecimal(fase1.varMaxProfilo.ToString(), 2) : "-",
|
|
fase1 != null ? fase1.dtFase : DateTime.MinValue,
|
|
string.Empty,
|
|
|
|
fase2 != null ? fase2Successiva ? varMaxProfilo : fase2.varMaxProfilo : 0,
|
|
fase2 != null ? fase2Successiva ? varMaxProfiloString : Helper.FormatDecimal(fase2.varMaxProfilo.ToString(), 2) : "-",
|
|
fase2 != null ? fase2.dtFase : DateTime.MinValue,
|
|
string.Empty,
|
|
|
|
fase3 != null ? fase3Successiva ? varMaxProfilo : fase3.varMaxProfilo : 0,
|
|
fase3 != null ? fase3Successiva ? varMaxProfiloString : Helper.FormatDecimal(fase3.varMaxProfilo.ToString(), 2) : "-",
|
|
fase3 != null ? fase3.dtFase : DateTime.MinValue,
|
|
string.Empty
|
|
);
|
|
else
|
|
ds.Tables["EvoluzioneRischio"].Rows.Add(
|
|
"VaR massimo profilo finanziario (%)",
|
|
|
|
fase1 != null ? fase1.varMaxProfilo : 0,
|
|
fase1 != null ? Helper.FormatDecimal(fase1.varMaxProfilo.ToString(), 2) : "-",
|
|
fase1 != null ? fase1.dtFase : DateTime.MinValue,
|
|
string.Empty,
|
|
|
|
fase2 != null ? fase2.varMaxProfilo : 0,
|
|
fase2 != null ? Helper.FormatDecimal(fase2.varMaxProfilo.ToString(), 2) : "-",
|
|
fase2 != null ? fase2.dtFase : DateTime.MinValue,
|
|
string.Empty,
|
|
|
|
fase3 != null ? fase3.varMaxProfilo : 0,
|
|
fase3 != null ? Helper.FormatDecimal(fase3.varMaxProfilo.ToString(), 2) : "-",
|
|
fase3 != null ? fase3.dtFase : DateTime.MinValue,
|
|
string.Empty
|
|
);
|
|
|
|
//--Adriano
|
|
// originale:
|
|
//ds.Tables["EvoluzioneRischio"].Rows.Add(
|
|
// "VaR massimo profilo finanziario (%)",
|
|
|
|
// fase1 != null ? fase1.varMaxProfilo : 0,
|
|
// fase1 != null ? Helper.FormatDecimal(fase1.varMaxProfilo.ToString(), 2) : "-",
|
|
// fase1 != null ? fase1.dtFase : DateTime.MinValue,
|
|
// string.Empty,
|
|
|
|
// fase2 != null ? fase2.varMaxProfilo : 0,
|
|
// fase2 != null ? Helper.FormatDecimal(fase2.varMaxProfilo.ToString(), 2) : "-",
|
|
// fase2 != null ? fase2.dtFase : DateTime.MinValue,
|
|
// string.Empty,
|
|
|
|
// fase3 != null ? fase3.varMaxProfilo : 0,
|
|
// fase3 != null ? Helper.FormatDecimal(fase3.varMaxProfilo.ToString(), 2) : "-",
|
|
// fase3 != null ? fase3.dtFase : DateTime.MinValue,
|
|
// string.Empty
|
|
// );
|
|
|
|
#endregion
|
|
|
|
#region Rischio Mercato (VaR %)
|
|
|
|
ds.Tables["EvoluzioneRischio"].Rows.Add(
|
|
"Rischio Mercato<br>(VaR %)",
|
|
|
|
fase1 != null ? fase1.varComplessivo : 0,
|
|
fase1 != null ? Helper.FormatDecimal(fase1.varComplessivo.ToString(), 2) : "-",
|
|
fase1 != null ? fase1.dtFase : DateTime.MinValue,
|
|
fase1 != null ? fase1.varComplessivo <= fase1.varMaxProfilo ? "FlagOK.png" : "FlagNO.png" : string.Empty,
|
|
|
|
fase2 != null ? fase2.varComplessivo : 0,
|
|
fase2 != null ? Helper.FormatDecimal(fase2.varComplessivo.ToString(), 2) : "-",
|
|
fase2 != null ? fase2.dtFase : DateTime.MinValue,
|
|
fase2 != null ? fase2.varComplessivo <= fase2.varMaxProfilo ? "FlagOK.png" : "FlagNO.png" : string.Empty,
|
|
|
|
fase3 != null ? fase3.varComplessivo : 0,
|
|
fase3 != null ? Helper.FormatDecimal(fase3.varComplessivo.ToString(), 2) : "-",
|
|
fase3 != null ? fase3.dtFase : DateTime.MinValue,
|
|
fase3 != null ? fase3.varComplessivo <= fase3.varMaxProfilo ? "FlagOK.png" : "FlagNO.png" : string.Empty
|
|
);
|
|
|
|
#endregion
|
|
|
|
#region Rischio Credito massimo
|
|
|
|
ds.Tables["EvoluzioneRischio"].Rows.Add(
|
|
"Rischio Credito massimo",
|
|
|
|
fase1 != null ? fase1.classeRischioMax : 0,
|
|
fase1 != null ? fase1.classeRischioMaxDec.Contains("CLASSE") ? Helper.CapitalizeWords(fase1.classeRischioMaxDec) : fase1.classeRischioMaxDec : "-",
|
|
fase1 != null ? fase1.dtFase : DateTime.MinValue,
|
|
string.Empty,
|
|
|
|
fase2 != null ? fase2.classeRischioMax : 0,
|
|
fase2 != null ? fase2.classeRischioMaxDec.Contains("CLASSE") ? Helper.CapitalizeWords(fase2.classeRischioMaxDec) : fase2.classeRischioMaxDec : "-",
|
|
fase2 != null ? fase2.dtFase : DateTime.MinValue,
|
|
string.Empty,
|
|
|
|
fase3 != null ? fase3.classeRischioMax : 0,
|
|
fase3 != null ? fase3.classeRischioMaxDec.Contains("CLASSE") ? Helper.CapitalizeWords(fase3.classeRischioMaxDec) : fase3.classeRischioMaxDec : "-",
|
|
fase3 != null ? fase3.dtFase : DateTime.MinValue,
|
|
string.Empty
|
|
);
|
|
|
|
#endregion
|
|
|
|
#region Rischio Credito
|
|
string value1 = fase1 != null ? fase1.classeRischioDec != null ? fase1.classeRischioDec.Contains("CLASSE") ? Helper.CapitalizeWords(fase1.classeRischioDec) : fase1.classeRischioDec : "n.a." : "n.a.";
|
|
string value2 = fase2 != null ? fase2.classeRischioDec != null ? fase2.classeRischioDec.Contains("CLASSE") ? Helper.CapitalizeWords(fase2.classeRischioDec) : fase2.classeRischioDec : "n.a." : "n.a.";
|
|
string value3 = fase3 != null ? fase3.classeRischioDec != null ? fase3.classeRischioDec.Contains("CLASSE") ? Helper.CapitalizeWords(fase3.classeRischioDec) : fase3.classeRischioDec : "n.a." : "n.a.";
|
|
ds.Tables["EvoluzioneRischio"].Rows.Add(
|
|
"Rischio Credito",
|
|
|
|
fase1 != null ? Convert.ToInt32(fase1.classeRischio) : 0,
|
|
value1,
|
|
fase1 != null ? fase1.dtFase : DateTime.MinValue,
|
|
fase1 != null ? value1.Equals("n.a.") ? string.Empty : Convert.ToInt32(fase1.classeRischio) <= fase1.classeRischioMax ? "FlagOK.png" : "FlagNO.png" : string.Empty,
|
|
|
|
fase2 != null ? Convert.ToInt32(fase2.classeRischio) : 0,
|
|
value2,
|
|
fase2 != null ? fase2.dtFase : DateTime.MinValue,
|
|
fase2 != null ? value2.Equals("n.a.") ? string.Empty : Convert.ToInt32(fase2.classeRischio) <= fase2.classeRischioMax ? "FlagOK.png" : "FlagNO.png" : string.Empty,
|
|
|
|
fase3 != null ? Convert.ToInt32(fase3.classeRischio) : 0,
|
|
value3,
|
|
fase3 != null ? fase3.dtFase : DateTime.MinValue,
|
|
fase3 != null ? value3.Equals("n.a.") ? string.Empty : Convert.ToInt32(fase3.classeRischio) <= fase3.classeRischioMax ? "FlagOK.png" : "FlagNO.png" : string.Empty
|
|
|
|
);
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
return ds;
|
|
}
|
|
|
|
public virtual bool evoluzionePatrimonio() { return GetOption<Opzione4_1>().Valore; }
|
|
public virtual bool sintesiMovimento() { return true; } // tanto deve essere sempre vibile, ne caso gestire la Opzione X_2 che arriva dai vincoli
|
|
public virtual bool evoluzioneRischio() { return GetOption<Opzione4_3>().Valore; }
|
|
|
|
|
|
public virtual string GetTesto1() {
|
|
return datiSeiUnico.FormatBanca("Nella tabella sottostante è riportata l'evoluzione, in termini di controvalore, del patrimonio che lei detiene presso $/Banca/$ dall'avvio del monitoraggio alla situazione attuale.");
|
|
}
|
|
public virtual string GetTesto2()
|
|
{
|
|
return datiSeiUnico.FormatBanca("Nella tabella sottostante è riportata l'evoluzione, in termini di Rischio Mercato (VaR) e di Rischio Credito, del patrimonio che lei detiene presso $/Banca/$, dall'avvio del monitoraggio alla situazione attuale.");
|
|
}
|
|
|
|
public bool isAltro(List<KeyValuePair<string, string>> l1, List<KeyValuePair<string, string>> l2, List<KeyValuePair<string, string>> l3, string type) {
|
|
if (decimal.Parse(l1.FirstOrDefault(x => x.Key.Equals(type)).Value) != 0 ||
|
|
decimal.Parse(l3.FirstOrDefault(x => x.Key.Equals(type)).Value) != 0)
|
|
if (l2 == null)
|
|
return true;
|
|
else
|
|
if (decimal.Parse(l2.FirstOrDefault(x => x.Key.Equals(type)).Value) != 0)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
public List<KeyValuePair<string, string>> getListaProdotti(fase fase)
|
|
{
|
|
var listaProdotti = new List<KeyValuePair<string, string>>();
|
|
{
|
|
// listaProdotti.Add(new KeyValuePair<string, string>("c/c negativo", pianificazione.altro.ToString()));
|
|
|
|
listaProdotti.Add(new KeyValuePair<string, string>("Operazioni in corso", fase.investimentiInCorso.ToString()));
|
|
|
|
listaProdotti.Add(new KeyValuePair<string, string>("Conto corrente", fase.contoCorrente.ToString()));
|
|
|
|
listaProdotti.Add(new KeyValuePair<string, string>("Liquidità negativa GP Eligo", fase.lineaself.ToString()));
|
|
}
|
|
|
|
return listaProdotti;//.FindAll(o => o.Value != "0");
|
|
}
|
|
}
|
|
}
|