using System; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using Consulenza.ReportCommon; using System.Linq; using System.Collections.Generic; using Consulenza.DataServices.fideuram.data.service; using Consulenza.ReportWriter.Business.CUSTOM_PDF.ConsulenzaUnica; namespace Consulenza.ReportWriter.Manager.Section.Unica { public class S54 : Entity.Section { /// ///S54.PropostaPiramideBisogni idSezione = 97 /// public S54(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("S54", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } protected override sealed void Draw() { var dati = GetDataSet(); bool isAdeguata = datiSeiUnico.flagAdeguatezzaPro(); AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); var intestazione = new SectionHeadingPDF( (isAdeguata ? "Proposta" : "Operazioni richieste") + ": piramide dei bisogni", EnvironmentFacade.RendererFacade.XLeftLimit, EnvironmentFacade.RendererFacade.YUpperLimit, EnvironmentFacade.ReportEnvironment.FontFamily); AddElement(intestazione.ToElement()); #region Tabella delle Aree di Bisogno if (dati.Tables["area"].Rows.Count > 0) { #region Testo Introduttivo if (getTesto1().Length > 0) { AddElement(new SpacePDF(20)); AddElement(new FormattedTextAreaPDF(getTesto1(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); AddElement(new SpacePDF(7)); } #endregion var tabellaAree = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["area"], dati.Tables["areafooter"]) { Style = Style.ConsulenzaUnica, AlternateRow = false, ShowSeparationLines = false, RowsPadding = 10, HeaderHeight = 30, HeaderMargin = 5F, FooterYOffset = 5F }; #region Definizione Colonne string contro = ctvPianificato() ? "Controvalore
pianificato (€)" : "Controvalore
modello (€)"; tabellaAree.Columns.Add(new ColumnPDF("Area2", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Objectpdf, "Area", "Area di bisogno") { HeaderFontSize = 7, FontSize = 7, DeltaYContent = 1, ScaleColumnTypeImage = 0.5F }); tabellaAree.Columns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Var", "VaR (%)") { HeaderFontSize = 7, FontSize = 7, DeltaYContent = 5, HeaderPaddingRight = 10, PaddingRight = 10 }); tabellaAree.Columns.Add(new ColumnPDF("ControvaloreAttuale", 85, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "ControvaloreAttuale", "Controvalore
attuale (€)") { HeaderFontSize = 7, FontSize = 7, DeltaYContent = 5, HeaderPaddingRight = 10 }); tabellaAree.Columns.Add(new ColumnPDF("ControvalorePianificatoModello", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "ControvalorePianificatoModello", contro) { HeaderFontSize = 7, FontSize = 7, HeaderPaddingRight = 7, DeltaYContent = 5 }); tabellaAree.Columns.Add(new ColumnPDF("OperazioniProposte", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "OperazioniProposte", "Operazioni
" + (isAdeguata ? "proposte (€)" : "richieste (€)")) { HeaderFontSize = 7, FontSize = 7, HeaderPaddingRight = 3, DeltaYContent = 5, PaddingRight = 4 }); tabellaAree.Columns.Add(new ColumnPDF("ControvaloreProposto", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "ControvaloreProposto", "Controvalore
" + (isAdeguata ? "proposto (€)" : "prospettico (€)")) { HeaderFontSize = 7, FontSize = 7, HeaderPaddingRight = 3, DeltaYContent = 5, PaddingRight = 4 }); #endregion #region Definizione Footer tabellaAree.FooterColumns.Add(new ColumnPDF("Area", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo) { FontSize = 7 }); tabellaAree.FooterColumns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo) { PaddingRight = 9, FontSize = 7 }); tabellaAree.FooterColumns.Add(new ColumnPDF("ControvaloreAttuale", 85, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { FontSize = 7 }); tabellaAree.FooterColumns.Add(new ColumnPDF("ControvalorePianificatoModello", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { FontSize = 7 }); tabellaAree.FooterColumns.Add(new ColumnPDF("OperazioniProposte", 70, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { PaddingRight = 3, FontSize = 7 }); tabellaAree.FooterColumns.Add(new ColumnPDF("ControvaloreProposto", 75, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale) { FontSize = 7 }); #endregion #region Formattazione Tabella Area int i = 0; foreach (DataRow r in dati.Tables["area"].Rows) { // Aggiunge i puntini per le Migliaia tabellaAree.Cells[2, i].Value = Helper.FormatCurrency(r["ControvaloreAttuale"].ToString()); tabellaAree.Cells[3, i].Value = Helper.FormatCurrency(r["ControvalorePianificatoModello"].ToString()); tabellaAree.Cells[4, i].Value = Helper.FormatCurrency(r["OperazioniProposte"].ToString()); tabellaAree.Cells[5, i].Value = Helper.FormatCurrency(r["ControvaloreProposto"].ToString()); // Allinea i valori numerici a destra tabellaAree.Cells[1, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaAree.Cells[2, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaAree.Cells[3, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaAree.Cells[4, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaAree.Cells[5, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaAree.Cells[0, i].ValueObjectList.Add(new ImagePDF(0, 1, dati.Tables["area"].Rows[i].ItemArray[0].ToString()) { DeltaX = 3, DeltaY = 0, Scale = 0.66f, Height = 27, Width = 145 }); var textArea = new FormattedTextAreaPDF(dati.Tables["area"].Rows[i].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); tabellaAree.Cells[0, i].ValueObjectList.Add(textArea); i++; } int a = 0; foreach (DataRow r in dati.Tables["areafooter"].Rows) { tabellaAree.FooterCells[0, a].FontBold = tabellaAree.FooterCells[1, a].FontBold = tabellaAree.FooterCells[2, a].FontBold = tabellaAree.FooterCells[3, a].FontBold = tabellaAree.FooterCells[4, a].FontBold = tabellaAree.FooterCells[5, a].FontBold = Convert.ToBoolean(r["FontBold"]); a++; } #endregion #region Nota Tabella Area AddElement(tabellaAree); //AddElement(new SpacePDF(2)); AddElement(new LinePDF(EnvironmentFacade.RendererFacade.XLeftLimit, EnvironmentFacade.RendererFacade.XLeftLimit + tabellaAree.Width, 1F, ColorPDF.Standard_Grigio_SfondoColonnaTabella)); //if (getNota1().Length > 0) //{ // AddElement(new SpacePDF(5)); // AddElement(new FormattedTextAreaPDF(getNota1(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); //} if (getNota1().Length > 0) tabellaAree.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNota1(), new[] { "VaR" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaY = 5 } ); #endregion } #endregion #region Tabella dei Progetti di Investimento if (dati.Tables["investimento"].Rows.Count > 0) { DataTable dt = dati.Tables["investimento"].AsEnumerable().OrderByDescending(o => o.Field("ControvaloreAttuale")).CopyToDataTable(); #region Testo Introduttivo if (getTesto2().Length > 0) { AddElement(new SpacePDF(getNota1().Length > 0 ? 25 : 20)); AddElement(new FormattedTextAreaPDF(getTesto2(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); AddElement(new SpacePDF(7)); } #endregion var tabellaProgetti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dt, dati.Tables["investimentofooter"]) { Style = Style.ConsulenzaUnica, AlternateRow = false, ShowSeparationLines = false, HeaderHeight = 30, HeaderMargin = 5F, FooterYOffset = 5F }; #region Definizione Colonne tabellaProgetti.Columns.Add(new ColumnPDF("Progetto", 110, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Progetto", "Progetto di investimento") { HeaderFontSize = 7, FontSize = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("DurataResidua", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "DurataResidua", "Durata
residua") { PaddingRight = 3, HeaderFontSize = 7, FontSize = 7, HeaderPaddingLeft = 7, PaddingLeft = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Var", "VaR (%)") { PaddingRight = 10, HeaderFontSize = 7, FontSize = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("ControvaloreAttuale", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreAttuale", "Controvalore
attuale (€)") { PaddingRight = 4, FontSize = 7, HeaderFontSize = 7, HeaderPaddingLeft = 7 }); if (ctvPianificato()) tabellaProgetti.Columns.Add(new ColumnPDF("ControvalorePianificatoModello", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvalorePianificatoModello", "Controvalore
pianificato (€)") { PaddingRight = 4, HeaderFontSize = 7, FontSize = 7, HeaderPaddingLeft = 7 }); else tabellaProgetti.Columns.Add(new ColumnPDF("ControvaloreModello", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreModello", "Controvalore
modello (€)") { PaddingRight = 4, HeaderFontSize = 7, FontSize = 7, HeaderPaddingLeft = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("OperazioniProposte", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "OperazioniProposte", "Operazioni
" + (isAdeguata ? "proposte (€)" : "richieste (€)")) { PaddingRight = 4, HeaderFontSize = 7, FontSize = 7, HeaderPaddingLeft = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("ControvaloreProposto", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreProposto", "Controvalore
" + (isAdeguata ? "proposto (€)" : "prospettico (€)")) { PaddingRight = 5, FontSize = 7, HeaderFontSize = 7, HeaderPaddingLeft = 7 }); #endregion #region Definizione Footer tabellaProgetti.FooterColumns.Add(new ColumnPDF("Progetto", 110, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 3 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("DurataResidua", 60, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 3 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo)); tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvaloreAttuale", 85, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 3 }); if (ctvPianificato()) tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvalorePianificatoModello", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 3 }); else tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvaloreModello", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 3 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("OperazioniProposte", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 3 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvaloreProposto", 75, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 1 }); #endregion #region Formattazione Tabella Area int i = 0; foreach (DataRow r in dt.Rows) { // Aggiunge i puntini per le Migliaia tabellaProgetti.Cells[3, i].Value = Helper.FormatCurrency(r["ControvaloreAttuale"].ToString()); tabellaProgetti.Cells[4, i].Value = ctvPianificato() ? Helper.FormatCurrency(r["ControvalorePianificatoModello"].ToString()) : Helper.FormatCurrency(r["ControvaloreModello"].ToString()); tabellaProgetti.Cells[5, i].Value = Helper.FormatCurrency(r["OperazioniProposte"].ToString()); tabellaProgetti.Cells[6, i].Value = Helper.FormatCurrency(r["ControvaloreProposto"].ToString()); // Allinea i valori numerici a destra tabellaProgetti.Cells[2, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[3, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[4, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[5, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra; i++; } #region Nota Tabella Investimento if (getNota2().Length > 0) tabellaProgetti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNota2(), new[] { "VaR" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaY = 5 } ); AddElement(tabellaProgetti); #endregion #endregion } #endregion #region Tabella dei Progetti di previdenza if (dati.Tables["previdenza"].Rows.Count > 0) { if (dati.Tables["investimento"].Rows.Count + // progetto rows 1 + // progetto headerv 1 + // progetto footer (getNota1().Length > 0 ? 1 : 0) + // nota1 (getNota2().Length > 0 ? 1 : 0) + // nota2 (getNota3().Length > 0 ? 1 : 0) + // nota3 dati.Tables["areafooter"].Rows.Count // progetto footers > 9 && dati.Tables["previdenza"].Rows.Count > 0) { AddElement(new ImagePDF(435, 0.15F, "changepage.png") { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 5 }); AddElement(new FormattedTextAreaPDF("continua alla pagina successiva", 450, 200) { FontSize = 6, AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 5, AbsolutePosition = true }); AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); AddElement(new SpacePDF(2)); AddElement(new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit, 0.15F, "changepage.png") { Y = EnvironmentFacade.RendererFacade.YUpperLimit + 2, AutoIncrementYWritable = false }); AddElement(new FormattedTextAreaPDF("continua dalla pagina precedente", EnvironmentFacade.RendererFacade.XLeftLimit + 15, 200) { Y = EnvironmentFacade.RendererFacade.YUpperLimit + 2, FontSize = 6, AutoIncrementYWritable = true, AbsolutePosition = true }); //AddElement(new SpacePDF(20)); } else { //AddElement(new SpacePDF(15)); } DataTable dtpre = dati.Tables["previdenza"].AsEnumerable().OrderBy(o => o.Field("Progetto")).ThenByDescending(o => o.Field("ControvaloreAttuale")).CopyToDataTable(); #region Testo Introduttivo if (getTesto3().Length > 0) { AddElement(new SpacePDF(getNota2().Length > 0 ? 25 : 20)); AddElement(new FormattedTextAreaPDF(getTesto3(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); AddElement(new SpacePDF(7)); } #endregion var tabellaProgetti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtpre, dati.Tables["previdenzafooter"]) { Style = Style.ConsulenzaUnica, AlternateRow = false, ShowSeparationLines = false, HeaderHeight = 30, HeaderMargin = 5F, FooterYOffset = 5F }; #region Definizione Tabella Previdenza tabellaProgetti.Columns.Add(new ColumnPDF("Progetto", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Progetto", "Previdenza") { HeaderFontSize = 7, FontSize = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "Var", "VaR (%)") { PaddingRight = 10, HeaderFontSize = 7, FontSize = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("ControvaloreAttuale", 85, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreAttuale", "Controvalore
attuale (€)") { PaddingRight = 5, HeaderPaddingLeft = 7, FontSize = 7, HeaderFontSize = 7 }); if (ctvPianificato()) tabellaProgetti.Columns.Add(new ColumnPDF("ControvalorePianificatoModello", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvalorePianificatoModello", "Controvalore
pianificato (€)") { PaddingRight = 5, FontSize = 7, HeaderPaddingLeft = 7, HeaderFontSize = 7 }); else tabellaProgetti.Columns.Add(new ColumnPDF("ControvaloreModello", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreModello", "Controvalore
modello (€)") { PaddingRight = 5, FontSize = 7, HeaderFontSize = 7, HeaderPaddingLeft = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("OperazioniProposte", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "OperazioniProposte", "Operazioni
" + (isAdeguata ? "proposte (€)" : "richieste (€)")) { PaddingRight = 5, FontSize = 7, HeaderFontSize = 7, HeaderPaddingLeft = 7 }); tabellaProgetti.Columns.Add(new ColumnPDF("ControvaloreProposto", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreProposto", "Controvalore
" + (isAdeguata ? "proposto (€)" : "prospettico (€)")) { PaddingRight = 5, FontSize = 7, HeaderFontSize = 7, HeaderPaddingLeft = 7 }); #endregion #region Definizione Footer tabellaProgetti.FooterColumns.Add(new ColumnPDF("Progetto", 170, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo)); tabellaProgetti.FooterColumns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 10 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvaloreAttuale", 85, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 5 }); if (ctvPianificato()) tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvalorePianificatoModello", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 5 }); else tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvaloreModello", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 5 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("OperazioniProposte", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 5 }); tabellaProgetti.FooterColumns.Add(new ColumnPDF("ControvaloreProposto", 75, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 1 }); #endregion #region Formattazione Tabella Area int i = 0; foreach (DataRow r in dtpre.Rows) { //// Aggiunge i puntini per le Migliaia tabellaProgetti.Cells[2, i].Value = Helper.FormatCurrency(r["ControvaloreAttuale"].ToString()); tabellaProgetti.Cells[3, i].Value = Helper.FormatCurrency(ctvPianificato() ? r["ControvalorePianificatoModello"].ToString() : r["ControvaloreModello"].ToString()); tabellaProgetti.Cells[4, i].Value = Helper.FormatCurrency(r["OperazioniProposte"].ToString()); tabellaProgetti.Cells[5, i].Value = Helper.FormatCurrency(r["ControvaloreProposto"].ToString()); // Allinea i valori numerici a destra tabellaProgetti.Cells[1, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[2, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[3, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[4, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabellaProgetti.Cells[5, i].HorizontalAlignment = HorizontalAlignmentType.Destra; i++; } #endregion #region Nota Tabella Previdenza if (getNota3().Length > 0) tabellaProgetti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNota3(), new[] { "VaR" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaY = 5 } ); AddElement(tabellaProgetti); #endregion } #endregion } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected sealed override DataTable GetDataTable() { return null; } protected override DataSet GetDataSet() { #region Definizione Dataset var ds = new DataSet(); ds.Tables.Add(new DataTable("area")); ds.Tables.Add(new DataTable("areafooter")); ds.Tables.Add(new DataTable("investimento")); ds.Tables.Add(new DataTable("investimentofooter")); ds.Tables.Add(new DataTable("previdenza")); ds.Tables.Add(new DataTable("previdenzafooter")); ds.Tables["area"].Columns.Add(new DataColumn("Area", typeof(string))); ds.Tables["area"].Columns.Add(new DataColumn("Description", typeof(string))); ds.Tables["area"].Columns.Add(new DataColumn("VaR", typeof(string))); ds.Tables["area"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal))); ds.Tables["area"].Columns.Add(new DataColumn("ControvalorePianificatoModello", typeof(decimal))); ds.Tables["area"].Columns.Add(new DataColumn("OperazioniProposte", typeof(decimal))); ds.Tables["area"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(decimal))); ds.Tables["areafooter"].Columns.Add(new DataColumn("Area", typeof(string))); ds.Tables["areafooter"].Columns.Add(new DataColumn("VaR", typeof(string))); ds.Tables["areafooter"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(string))); ds.Tables["areafooter"].Columns.Add(new DataColumn("ControvalorePianificatoModello", typeof(string))); ds.Tables["areafooter"].Columns.Add(new DataColumn("OperazioniProposte", typeof(string))); ds.Tables["areafooter"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(string))); ds.Tables["areafooter"].Columns.Add(new DataColumn("FontBold", typeof(bool))); ds.Tables["areaFooter"].Columns.Add(new DataColumn("BackgroundGray", typeof(bool))); ds.Tables["investimento"].Columns.Add(new DataColumn("Progetto", typeof(string))); ds.Tables["investimento"].Columns.Add(new DataColumn("DurataResidua", typeof(string))); ds.Tables["investimento"].Columns.Add(new DataColumn("VaR", typeof(string))); ds.Tables["investimento"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal))); if (ctvPianificato()) ds.Tables["investimento"].Columns.Add(new DataColumn("ControvalorePianificatoModello", typeof(decimal))); else ds.Tables["investimento"].Columns.Add(new DataColumn("ControvaloreModello", typeof(decimal))); ds.Tables["investimento"].Columns.Add(new DataColumn("OperazioniProposte", typeof(decimal))); ds.Tables["investimento"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(decimal))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("Progetto", typeof(string))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("DurataResidua", typeof(string))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("VaR", typeof(string))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(string))); if (ctvPianificato()) ds.Tables["investimentofooter"].Columns.Add(new DataColumn("ControvalorePianificatoModello", typeof(string))); else ds.Tables["investimentofooter"].Columns.Add(new DataColumn("ControvaloreModello", typeof(string))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("OperazioniProposte", typeof(string))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(string))); ds.Tables["investimentofooter"].Columns.Add(new DataColumn("CanLastRow", typeof(bool))); ds.Tables["previdenza"].Columns.Add(new DataColumn("Progetto", typeof(string))); ds.Tables["previdenza"].Columns.Add(new DataColumn("VaR", typeof(string))); ds.Tables["previdenza"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal))); if (ctvPianificato()) ds.Tables["previdenza"].Columns.Add(new DataColumn("ControvalorePianificatoModello", typeof(decimal))); else ds.Tables["previdenza"].Columns.Add(new DataColumn("ControvaloreModello", typeof(decimal))); ds.Tables["previdenza"].Columns.Add(new DataColumn("OperazioniProposte", typeof(decimal))); ds.Tables["previdenza"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(decimal))); ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("Progetto", typeof(string))); ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("VaR", typeof(string))); ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(string))); if (ctvPianificato()) ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("ControvalorePianificatoModello", typeof(string))); else ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("ControvaloreModello", typeof(string))); ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("OperazioniProposte", typeof(string))); ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(string))); ds.Tables["previdenzafooter"].Columns.Add(new DataColumn("CanLastRow", typeof(bool))); #endregion #region DatiSeiUnico var piramideModello = datiSeiUnico.piramideModelloUnit().piramideModello.areaModello.Where(o => o.visible == true).OrderBy(o => o.ordinamento); var pianificazioneVerticaleAttuale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale; var pianificazioneVerticalePianificato = datiSeiUnico.propostaUnit().stPianificazioneVerticale; var stDettaglioProposta = datiSeiUnico.propostaUnit().stDettaglioProposta; #endregion #region OLD CODE Aree + Footer //#region Aree + Footer //foreach (var item in piramideModello) //{ // var valori = pianificazioneVerticalePianificato.stAreePianificazione.FirstOrDefault(oo => oo.area.Equals(item.area)); // ds.Tables["area"].Rows.Add( // string.Format("{0}.png", new AreaBisogno(item.area).NomePerImmagine), // item.descrizioneArea, // valori.coperturaAreaPro == 0 ? "n.c." : valori.varAreaPro.ToString(), // valori.ctvArea, // ctvPianificato() ? valori.ctvPianificato : (from o in piramideModello where o.area == item.area select o).LastOrDefault().percentualeArea / 100 * stDettaglioProposta.risorseFinanziarieBF, // valori.ctvAreaPro - valori.ctvArea, // valori.ctvAreaPro // ); //} //var PIANIFICATO_SUBTOTALE = ctvPianificato() ? // pianificazioneVerticalePianificato.ctvPianificato // - (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvPianificato).LastOrDefault() // - (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvPianificato).LastOrDefault() : // pianificazioneVerticaleAttuale.risorseFinanziarieBF; //var PIANIFICATO_OC = ctvPianificato() ? // pianificazioneVerticalePianificato.partiteViaggianti : // pianificazioneVerticaleAttuale.partiteViaggianti; //var PIANIFICATO_CCN = ctvPianificato() ? // (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvPianificato).LastOrDefault() : // pianificazioneVerticaleAttuale.contoCorrenteNegativo; //// AC ////var a = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self" && a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "XY").LastOrDefault().ctvPianificato; //decimal PIANIFICATO_GPELIGO; //if (ctvPianificato()) //{ // var e = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self" && a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "XY").LastOrDefault(); // if (e != null) // { // PIANIFICATO_GPELIGO = e.ctvPianificato; // } // else // PIANIFICATO_GPELIGO = 0; //} //else // PIANIFICATO_GPELIGO = datiSeiUnico.ATTUTALE_GPELIGO; //decimal PIANIFICATO_FOGLIO; //if (ctvPianificato()) //{ // var e = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self" && a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "FO").LastOrDefault(); // if (e != null) // { // PIANIFICATO_FOGLIO = e.ctvPianificato; // } // else // PIANIFICATO_FOGLIO = 0; //} //else // PIANIFICATO_FOGLIO = datiSeiUnico.ATTUTALE_TUOFOGLIO; ////var PIANIFICATO_GPELIGO = ctvPianificato() ? //// (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvPianificato).LastOrDefault() : //// datiSeiUnico.ATTUTALE_GPELIGO; //// var PIANIFICATO_FOGLIO = ctvPianificato() ? //////(from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvPianificato).LastOrDefault() ////: //// datiSeiUnico.ATTUTALE_TUOFOGLIO; ////--AC //var PIANIFICATO_TOTALE = ctvPianificato() ? // pianificazioneVerticalePianificato.ctvPianificato : // pianificazioneVerticaleAttuale.patrimonioTotaleRFA; //if ((datiSeiUnico.ATTUTALE_OC != 0 || PIANIFICATO_OC != 0 || datiSeiUnico.PROPOSTO_CCN != 0) || // (datiSeiUnico.ATTUTALE_CCN != 0 || PIANIFICATO_CCN != 0 || datiSeiUnico.PROPOSTO_CCN != 0) || // (datiSeiUnico.ATTUTALE_GPELIGO != 0 || PIANIFICATO_GPELIGO != 0 || datiSeiUnico.PROPOSTO_GPELIGO != 0) || // (datiSeiUnico.ATTUTALE_TUOFOGLIO != 0 || PIANIFICATO_FOGLIO != 0 || datiSeiUnico.PROPOSTO_TUOFOGLIO != 0) // ) //{ // DataRow dr = ds.Tables["areafooter"].NewRow(); // dr["Area"] = string.Format("Totale risorse allocate"); // dr["VaR"] = stDettaglioProposta.rischioMercatoDec; // dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_SUBTOTALE; // dr["ControvalorePianificatoModello"] = PIANIFICATO_SUBTOTALE; // dr["OperazioniProposte"] = datiSeiUnico.PROPOSTO_SUBTOTALE - datiSeiUnico.ATTUTALE_SUBTOTALE; // dr["ControvaloreProposto"] = datiSeiUnico.PROPOSTO_SUBTOTALE; // dr["FontBold"] = true; // dr["BackgroundGray"] = true; // ds.Tables["areafooter"].Rows.Add(dr); // if (datiSeiUnico.ATTUTALE_OC != 0 || PIANIFICATO_OC != 0 || datiSeiUnico.PROPOSTO_OC != 0) // { // dr = ds.Tables["areafooter"].NewRow(); // dr["Area"] = string.Format("Operazioni in corso"); // dr["VaR"] = "-"; // dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_OC; // dr["ControvalorePianificatoModello"] = "-"; // dr["OperazioniProposte"] = datiSeiUnico.PROPOSTO_OC - datiSeiUnico.ATTUTALE_OC; // dr["ControvaloreProposto"] = datiSeiUnico.PROPOSTO_OC; // dr["FontBold"] = false; // dr["BackgroundGray"] = false; // ds.Tables["areafooter"].Rows.Add(dr); // } // if (datiSeiUnico.ATTUTALE_CCN != 0 || PIANIFICATO_CCN != 0 || datiSeiUnico.PROPOSTO_CCN != 0) // { // dr = ds.Tables["areafooter"].NewRow(); // dr["Area"] = string.Format("Conto corrente"); // dr["VaR"] = "n.c."; // dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_CCN; // dr["ControvalorePianificatoModello"] = "-"; // dr["OperazioniProposte"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvAreaPro).LastOrDefault() != null ? // (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvAreaPro).LastOrDefault() - datiSeiUnico.ATTUTALE_CCN : 0;//datiSeiUnico.PROPOSTO_CCN - datiSeiUnico.ATTUTALE_CCN; // dr["ControvaloreProposto"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvAreaPro).LastOrDefault();//datiSeiUnico.PROPOSTO_CCN; // dr["FontBold"] = false; // dr["BackgroundGray"] = false; // ds.Tables["areafooter"].Rows.Add(dr); // } // // AC // if (datiSeiUnico.ATTUTALE_GPELIGO != 0 || PIANIFICATO_GPELIGO != 0 || datiSeiUnico.PROPOSTO_GPELIGO != 0) // { // dr = ds.Tables["areafooter"].NewRow(); // dr["Area"] = string.Format("Liquidità negativa GP Eligo"); // dr["VaR"] = "n.c."; // dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_GPELIGO; // dr["ControvalorePianificatoModello"] = "-"; // dr["OperazioniProposte"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() != null ? // (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() - datiSeiUnico.ATTUTALE_CCN : 0;//datiSeiUnico.PROPOSTO_CCN - datiSeiUnico.ATTUTALE_CCN; // dr["ControvaloreProposto"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault();//datiSeiUnico.PROPOSTO_GPELIGO; // dr["FontBold"] = false; // dr["BackgroundGray"] = false; // ds.Tables["areafooter"].Rows.Add(dr); // } // if (datiSeiUnico.ATTUTALE_TUOFOGLIO != 0 || PIANIFICATO_FOGLIO != 0 || datiSeiUnico.PROPOSTO_TUOFOGLIO != 0) // { // dr = ds.Tables["areafooter"].NewRow(); // dr["Area"] = string.Format("Liquidità Il Mio Foglio"); // dr["VaR"] = "n.c."; // dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_TUOFOGLIO; // dr["ControvalorePianificatoModello"] = "-"; // dr["OperazioniProposte"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() != null ? // (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() - datiSeiUnico.ATTUTALE_CCN : 0;//datiSeiUnico.PROPOSTO_CCN - datiSeiUnico.ATTUTALE_CCN; // dr["ControvaloreProposto"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault();//datiSeiUnico.PROPOSTO_GPELIGO; // dr["FontBold"] = false; // dr["BackgroundGray"] = false; // ds.Tables["areafooter"].Rows.Add(dr); // } // //--AC //} //DataRow drTot = ds.Tables["areafooter"].NewRow(); //drTot["Area"] = string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment)); //drTot["VaR"] = stDettaglioProposta.rischioMercatoDec + (getNota1().Length > 0 ? "*" : ""); //drTot["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_TOTALE; //drTot["ControvalorePianificatoModello"] = PIANIFICATO_SUBTOTALE; //drTot["OperazioniProposte"] = datiSeiUnico.PROPOSTO_TOTALE - datiSeiUnico.ATTUTALE_TOTALE; //drTot["ControvaloreProposto"] = datiSeiUnico.PROPOSTO_TOTALE; //drTot["FontBold"] = true; //drTot["BackgroundGray"] = true; //ds.Tables["areafooter"].Rows.Add(drTot); //#endregion #endregion #region Aree + Footer foreach (var item in piramideModello) { var valori = pianificazioneVerticalePianificato.stAreePianificazione.FirstOrDefault(oo => oo.area.Equals(item.area)); ds.Tables["area"].Rows.Add( string.Format("{0}.png", new AreaBisogno(item.area).NomePerImmagine), item.descrizioneArea, valori.coperturaAreaPro == 0 ? "n.c." : valori.varAreaPro.ToString(), valori.ctvArea, ctvPianificato() ? valori.ctvPianificato : (from o in piramideModello where o.area == item.area select o).LastOrDefault().percentualeArea / 100 * stDettaglioProposta.risorseFinanziarieBF, valori.ctvAreaPro - valori.ctvArea, valori.ctvAreaPro ); } var PIANIFICATO_SUBTOTALE = ctvPianificato() ? pianificazioneVerticalePianificato.ctvPianificato - (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvPianificato).LastOrDefault() - (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvPianificato).LastOrDefault() : pianificazioneVerticaleAttuale.risorseFinanziarieBF; var PIANIFICATO_OC = ctvPianificato() ? pianificazioneVerticalePianificato.partiteViaggianti : pianificazioneVerticaleAttuale.partiteViaggianti; var PIANIFICATO_CCN = ctvPianificato() ? (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvPianificato).LastOrDefault() : pianificazioneVerticaleAttuale.contoCorrenteNegativo; // AC //var a = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self" && a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "XY").LastOrDefault().ctvPianificato; decimal PIANIFICATO_GPELIGO = 0; decimal PIANIFICATO_FOGLIO = 0; if (ctvPianificato()) { //var e = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self" && a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "XY").LastOrDefault(); var eProgetti = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self"); if (eProgetti.ToList().FirstOrDefault().progetti.FirstOrDefault().posizioniPortafoglio == null) { PIANIFICATO_GPELIGO = 0; PIANIFICATO_FOGLIO = 0; } else { var eGPELIGO = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "XY").LastOrDefault(); if (eGPELIGO != null) PIANIFICATO_GPELIGO = eGPELIGO.ctvPianificato; else PIANIFICATO_GPELIGO = 0; var eFOGLIO = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "FO").LastOrDefault(); if (eFOGLIO != null) PIANIFICATO_FOGLIO = eFOGLIO.ctvPianificato; else PIANIFICATO_FOGLIO = 0; } } else { PIANIFICATO_GPELIGO = datiSeiUnico.ATTUTALE_GPELIGO; PIANIFICATO_FOGLIO = datiSeiUnico.ATTUTALE_TUOFOGLIO; } //if (ctvPianificato()) //{ // var e = pianificazioneVerticalePianificato.stAreePianificazione.Where(a => a.area == "Self" && a.progetti.FirstOrDefault().posizioniPortafoglio.FirstOrDefault().prodottoFinanziario.codInterno == "FO").LastOrDefault(); // if (e != null) // { // PIANIFICATO_FOGLIO = e.ctvPianificato; // } // else // PIANIFICATO_FOGLIO = 0; //} //else // PIANIFICATO_FOGLIO = datiSeiUnico.ATTUTALE_TUOFOGLIO; //var PIANIFICATO_GPELIGO = ctvPianificato() ? // (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvPianificato).LastOrDefault() : // datiSeiUnico.ATTUTALE_GPELIGO; // var PIANIFICATO_FOGLIO = ctvPianificato() ? ////(from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvPianificato).LastOrDefault() //: // datiSeiUnico.ATTUTALE_TUOFOGLIO; //--AC var PIANIFICATO_TOTALE = ctvPianificato() ? pianificazioneVerticalePianificato.ctvPianificato : pianificazioneVerticaleAttuale.patrimonioTotaleRFA; if ((datiSeiUnico.ATTUTALE_OC != 0 || PIANIFICATO_OC != 0 || datiSeiUnico.PROPOSTO_CCN != 0) || (datiSeiUnico.ATTUTALE_CCN != 0 || PIANIFICATO_CCN != 0 || datiSeiUnico.PROPOSTO_CCN != 0) || (datiSeiUnico.ATTUTALE_GPELIGO != 0 || PIANIFICATO_GPELIGO != 0 || datiSeiUnico.PROPOSTO_GPELIGO != 0) || (datiSeiUnico.ATTUTALE_TUOFOGLIO != 0 || PIANIFICATO_FOGLIO != 0 || datiSeiUnico.PROPOSTO_TUOFOGLIO != 0) ) { DataRow dr = ds.Tables["areafooter"].NewRow(); dr["Area"] = string.Format("Totale risorse allocate"); dr["VaR"] = stDettaglioProposta.rischioMercatoDec; dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_SUBTOTALE; dr["ControvalorePianificatoModello"] = PIANIFICATO_SUBTOTALE; dr["OperazioniProposte"] = datiSeiUnico.PROPOSTO_SUBTOTALE - datiSeiUnico.ATTUTALE_SUBTOTALE; dr["ControvaloreProposto"] = datiSeiUnico.PROPOSTO_SUBTOTALE; dr["FontBold"] = true; dr["BackgroundGray"] = true; ds.Tables["areafooter"].Rows.Add(dr); if (datiSeiUnico.ATTUTALE_OC != 0 || PIANIFICATO_OC != 0 || datiSeiUnico.PROPOSTO_OC != 0) { dr = ds.Tables["areafooter"].NewRow(); dr["Area"] = string.Format("Operazioni in corso"); dr["VaR"] = "-"; dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_OC; dr["ControvalorePianificatoModello"] = "-"; dr["OperazioniProposte"] = datiSeiUnico.PROPOSTO_OC - datiSeiUnico.ATTUTALE_OC; dr["ControvaloreProposto"] = datiSeiUnico.PROPOSTO_OC; dr["FontBold"] = false; dr["BackgroundGray"] = false; ds.Tables["areafooter"].Rows.Add(dr); } if (datiSeiUnico.ATTUTALE_CCN != 0 || PIANIFICATO_CCN != 0 || datiSeiUnico.PROPOSTO_CCN != 0) { dr = ds.Tables["areafooter"].NewRow(); dr["Area"] = string.Format("Conto corrente"); dr["VaR"] = "n.c."; dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_CCN; dr["ControvalorePianificatoModello"] = "-"; dr["OperazioniProposte"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvAreaPro).LastOrDefault() != null ? (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvAreaPro).LastOrDefault() - datiSeiUnico.ATTUTALE_CCN : 0;//datiSeiUnico.PROPOSTO_CCN - datiSeiUnico.ATTUTALE_CCN; dr["ControvaloreProposto"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Cc" select o.ctvAreaPro).LastOrDefault();//datiSeiUnico.PROPOSTO_CCN; dr["FontBold"] = false; dr["BackgroundGray"] = false; ds.Tables["areafooter"].Rows.Add(dr); } // AC if (datiSeiUnico.ATTUTALE_GPELIGO != 0 || PIANIFICATO_GPELIGO != 0 || datiSeiUnico.PROPOSTO_GPELIGO != 0) { dr = ds.Tables["areafooter"].NewRow(); dr["Area"] = string.Format("Liquidità negativa GP Eligo"); dr["VaR"] = "n.c."; dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_GPELIGO; dr["ControvalorePianificatoModello"] = "-"; dr["OperazioniProposte"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() != null ? (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() - datiSeiUnico.ATTUTALE_CCN : 0;//datiSeiUnico.PROPOSTO_CCN - datiSeiUnico.ATTUTALE_CCN; dr["ControvaloreProposto"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault();//datiSeiUnico.PROPOSTO_GPELIGO; dr["FontBold"] = false; dr["BackgroundGray"] = false; ds.Tables["areafooter"].Rows.Add(dr); } if (datiSeiUnico.ATTUTALE_TUOFOGLIO != 0 || PIANIFICATO_FOGLIO != 0 || datiSeiUnico.PROPOSTO_TUOFOGLIO != 0) { dr = ds.Tables["areafooter"].NewRow(); dr["Area"] = string.Format("Liquidità Il Mio Foglio"); dr["VaR"] = "n.c."; dr["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_TUOFOGLIO; dr["ControvalorePianificatoModello"] = "-"; dr["OperazioniProposte"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() != null ? (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault() - datiSeiUnico.ATTUTALE_CCN : 0;//datiSeiUnico.PROPOSTO_CCN - datiSeiUnico.ATTUTALE_CCN; dr["ControvaloreProposto"] = (from o in pianificazioneVerticalePianificato.stAreePianificazione where o.area == "Self" select o.ctvAreaPro).LastOrDefault();//datiSeiUnico.PROPOSTO_GPELIGO; dr["FontBold"] = false; dr["BackgroundGray"] = false; ds.Tables["areafooter"].Rows.Add(dr); } //--AC } DataRow drTot = ds.Tables["areafooter"].NewRow(); drTot["Area"] = string.Format("Patrimonio {0}", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment)); drTot["VaR"] = stDettaglioProposta.rischioMercatoDec + (getNota1().Length > 0 ? "*" : ""); drTot["ControvaloreAttuale"] = datiSeiUnico.ATTUTALE_TOTALE; drTot["ControvalorePianificatoModello"] = PIANIFICATO_SUBTOTALE; drTot["OperazioniProposte"] = datiSeiUnico.PROPOSTO_TOTALE - datiSeiUnico.ATTUTALE_TOTALE; drTot["ControvaloreProposto"] = datiSeiUnico.PROPOSTO_TOTALE; drTot["FontBold"] = true; drTot["BackgroundGray"] = true; ds.Tables["areafooter"].Rows.Add(drTot); #endregion #region Progetti Investimento if (mostraInvestimento()) { var areaInvProposta = (from v in pianificazioneVerticalePianificato.stAreePianificazione.ToList() where v.area == "Inv" select v).LastOrDefault(); var areaInvAttuale = (from v in pianificazioneVerticaleAttuale.aree.ToList() where v.area == "Inv" select v).LastOrDefault(); if (areaInvProposta.ctvAreaPro != 0 || areaInvAttuale.ctvArea != 0) { foreach (var item in from p in areaInvProposta.progetti join a in areaInvAttuale.progetti on p.chiaveProgetto equals a.chiaveProgetto select new { attuale = a, proposta = p }) { // Non devo inserire Progetti se "controvalore attuale" o "controvalore modello" // o "controvalore pianificato" o "controvalore proposto" = zero if ((item.proposta.ctvProgetto + item.proposta.ctvPianificato + item.proposta.ctvProgettoPro + (item.attuale.progettoModello.percentualeProgetto / 100) * pianificazioneVerticaleAttuale.risorseFinanziarieBF) != 0) { ds.Tables["investimento"].Rows.Add( item.proposta.nomeProgetto, item.attuale.durataResidua == null ? "-" : item.attuale.durataResidua.ToString(), item.proposta.varProgettoProDec, item.proposta.ctvProgetto, ctvPianificato() ? item.proposta.ctvPianificato : (item.attuale.progettoModello.percentualeProgetto / 100) * pianificazioneVerticaleAttuale.risorseFinanziarieBF, item.proposta.ctvProgettoPro - item.proposta.ctvProgetto, item.proposta.ctvProgettoPro ); } } } // tmp //ds.Tables["investimento"].Rows.Add("test", "test", "test", 0m, 0m, 0m, 0m); //ds.Tables["investimento"].Rows.Add("test", "test", "test", 0m, 0m, 0m, 0m); //ds.Tables["investimento"].Rows.Add("test", "test", "test", 0m, 0m, 0m, 0m); if (ds.Tables["investimento"].Rows.Count > 0) { ds.Tables["investimentofooter"].Rows.Add( "Totale Investimento", "", areaInvProposta.varAreaPro, Helper.FormatCurrency(areaInvAttuale.ctvArea.ToString()), ctvPianificato() ? Helper.FormatCurrency(areaInvAttuale.ctvPianificatoArea.ToString()) : Helper.FormatCurrency((areaInvAttuale.percArea / 100 * pianificazioneVerticaleAttuale.risorseFinanziarieBF).ToString()), Helper.FormatCurrency((areaInvProposta.ctvAreaPro - areaInvAttuale.ctvArea).ToString()), Helper.FormatCurrency(areaInvProposta.ctvAreaPro.ToString()), false ); } } #endregion #region Progetti Previdenza if (mostraPrevidenza()) { var areaPreProposta = (from v in pianificazioneVerticalePianificato.stAreePianificazione.ToList() where v.area == "Pre" select v).FirstOrDefault(); var areaPreAttuale = (from v in pianificazioneVerticaleAttuale.aree.ToList() where v.area == "Pre" select v).FirstOrDefault(); if (areaPreProposta.ctvAreaPro != 0 || areaPreAttuale.ctvArea != 0) { foreach (var item in from p in areaPreProposta.progetti join a in areaPreAttuale.progetti on p.chiaveProgetto equals a.chiaveProgetto select new { attuale = a, proposta = p }) { if ((item.proposta.ctvProgetto + item.proposta.ctvPianificato + item.proposta.ctvProgettoPro + (item.attuale.progettoModello.percentualeProgetto / 100) * pianificazioneVerticaleAttuale.risorseFinanziarieBF) != 0) { ds.Tables["previdenza"].Rows.Add( item.proposta.nomeProgetto, item.proposta.varProgettoProDec, item.proposta.ctvProgetto, ctvPianificato() ? item.proposta.ctvPianificato : (item.attuale.progettoModello.percentualeProgetto / 100) * pianificazioneVerticaleAttuale.risorseFinanziarieBF, item.proposta.ctvProgettoPro - item.proposta.ctvProgetto, item.proposta.ctvProgettoPro ); } } if (ds.Tables["previdenza"].Rows.Count > 0) { ds.Tables["previdenzafooter"].Rows.Add( "Totale Previdenza", areaPreProposta.varAreaPro, Helper.FormatCurrency(areaPreAttuale.ctvArea.ToString()), ctvPianificato() ? Helper.FormatCurrency(areaPreAttuale.ctvPianificatoArea.ToString()) : Helper.FormatCurrency((areaPreAttuale.percArea / 100 * pianificazioneVerticaleAttuale.risorseFinanziarieBF).ToString()), Helper.FormatCurrency((areaPreProposta.ctvAreaPro - areaPreAttuale.ctvArea).ToString()), Helper.FormatCurrency(areaPreProposta.ctvAreaPro.ToString()), false ); } } } #endregion return ds; } public virtual bool mostraInvestimento() { return GetOption().Valore; } public virtual bool mostraPrevidenza() { return GetOption().Valore; } public virtual bool ctvPianificato() { return GetOption().Valore; } public virtual string getTesto1() { string nota = string.Empty; bool Adeguata = datiSeiUnico.flagAdeguatezzaPro(); if (!Adeguata) { nota += "Nella tabella sottostante sono riportate, per ogni area di bisogno, l'allocazione corrente, pianificata e prospettica delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate ai singoli progetti di investimento. Inoltre viene mostrato il controvalore delle operazioni da lei richieste al suo private banker."; } else if (ctvPianificato()) nota += "Nella tabella sottostante sono riportate, per ogni area di bisogno, l'allocazione corrente, pianificata e proposta delle risorse finanziarie che lei detiene presso $/Banca/$. Inoltre viene mostrato il controvalore delle operazioni proposte su ogni area di bisogno."; else nota += "Nella tabella sottostante sono riportate, per ogni area di bisogno, l'allocazione corrente, ottimale e proposta delle risorse finanziarie che lei detiene presso $/Banca/$. Inoltre viene mostrato il controvalore delle operazioni proposte su ogni area di bisogno."; return nota.Replace("$/Banca/$", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment)); } public virtual string getNota1() { decimal gradoCopertura = datiSeiUnico.propostaUnit().stDettaglioProposta.copertura; string nota = ""; if (gradoCopertura < 100 && Convert.ToDouble(gradoCopertura) != 0) { nota += "(*) Grado di copertura prodotti in termini di Rischio Mercato (VaR): {0}."; } return string.Format(nota, Helper.FormatDecimal(gradoCopertura.ToString(), 2)); } public virtual string getTesto2() { bool _isControvalore = !GetOption().Valore; bool Adeguata = datiSeiUnico.flagAdeguatezzaPro(); string nota = ""; if (!Adeguata) { nota += "Nella tabella sottostante sono riportate l'allocazione corrente, pianificata e prospettica delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate ai singoli progetti di investimento. Inoltre viene mostrato il controvalore delle operazioni da lei richieste al suo private banker."; } else if (ctvPianificato()) nota += "Nella tabella sottostante sono riportate l'allocazione corrente, pianificata e proposta delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate ai singoli progetti di investimento. Inoltre viene mostrato il controvalore delle operazioni proposte su ogni progetto di investimento."; else nota += "Nella tabella sottostante sono riportate l'allocazione corrente, ottimale e proposta delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate ai singoli progetti di investimento. Inoltre viene mostrato il controvalore delle operazioni proposte su ogni progetto di investimento."; return datiSeiUnico.FormatBanca(nota);// nota.Replace("$/Banca/$", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment)); } public virtual string getNota2() { decimal gradoCopertura = datiSeiUnico.propostaUnit().stPianificazioneVerticale.stAreePianificazione.Where(o => o.area == "Inv").FirstOrDefault().coperturaAreaPro; string nota = ""; if (gradoCopertura < 100 && Convert.ToDouble(gradoCopertura) != 0) nota += "Grado di copertura prodotti in termini di Rischio Mercato (VaR): {0}."; return string.Format(nota, Helper.FormatDecimal(gradoCopertura.ToString(), 2)); } public virtual string getTesto3() { // bool _isControvalore = !GetOption().Valore; string nota = ""; bool Adeguata = datiSeiUnico.flagAdeguatezzaPro(); if (!Adeguata) { nota += "Nella tabella sottostante sono riportate l'allocazione corrente, pianificata e prospettica delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate alle aree \"Previdenza Essenziale\" e \"Previdenza Secondaria\". Inoltre viene mostrato il controvalore delle operazioni da lei richieste al suo private banker."; } else if (ctvPianificato()) nota += "Nella tabella sottostante sono riportate l'allocazione corrente, pianificata e proposta delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate alle aree \"Previdenza Essenziale\" e \"Previdenza Secondaria\". Inoltre viene mostrato il controvalore delle operazioni proposte su ognuna delle due aree."; else nota += "Nella tabella sottostante sono riportate l'allocazione corrente, ottimale e proposta delle risorse finanziarie, che lei detiene presso $/Banca/$, destinate alle aree \"Previdenza Essenziale\" e \"Previdenza Secondaria\". Inoltre viene mostrato il controvalore delle operazioni proposte su ognuna delle due aree."; return nota.Replace("$/Banca/$", Helper.ReplaceVariables("$/Banca/$", EnvironmentFacade.ReportEnvironment)); } public virtual string getNota3() { decimal gradoCopertura = datiSeiUnico.propostaUnit().stPianificazioneVerticale.stAreePianificazione.Where(o => o.area == "Pre").FirstOrDefault().coperturaAreaPro; string nota = ""; if (gradoCopertura < 100 && Convert.ToDouble(gradoCopertura) != 0) { nota += "Grado di copertura prodotti in termini di Rischio Mercato (VaR): {0}."; } return string.Format(nota, Helper.FormatDecimal(gradoCopertura.ToString(), 2)); } } }