2520 lines
160 KiB
C#
2520 lines
160 KiB
C#
using Consulenza.ReportCommon;
|
||
using Consulenza.ReportWriter.Business;
|
||
using Consulenza.ReportWriter.Business.CUSTOM_PDF.ConsulenzaUnica;
|
||
using Consulenza.ReportWriter.Business.OBJ_PDF;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Linq;
|
||
|
||
namespace Consulenza.ReportWriter.Manager.Section.Unica
|
||
{
|
||
public class S56 : Entity.Section
|
||
{
|
||
/// <summary>
|
||
///S56.PropostaDettaglioOperazioni idSezione = 99
|
||
/// </summary>
|
||
public S56(EnvironmentFacade environmentFacade, int idSection)
|
||
: base(environmentFacade, idSection)
|
||
{
|
||
try
|
||
{
|
||
Draw();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
SectionLogger.Write("S56", 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") + ": dettaglio operazioni",
|
||
|
||
EnvironmentFacade.RendererFacade.XLeftLimit,
|
||
EnvironmentFacade.RendererFacade.YUpperLimit,
|
||
EnvironmentFacade.ReportEnvironment.FontFamily);
|
||
|
||
AddElement(intestazione.ToElement());
|
||
|
||
if (getTesto1().Length > 0)
|
||
{
|
||
AddElement(new SpacePDF(20));
|
||
AddElement(new FormattedTextAreaPDF(getTesto1(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
||
AddElement(new SpacePDF(15));
|
||
}
|
||
|
||
|
||
|
||
#region Tabella delle Sintesi
|
||
if (dati.Tables["sintesiOperazioni"].Rows.Count > 0)
|
||
{
|
||
var sintesiOperazioni = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["sintesiOperazioni"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("Sintesi delle operazioni proposte", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Standard_Grigio_SfondoColonnaTabella, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
AddElement(new SpacePDF(4));
|
||
#region Tabella
|
||
|
||
sintesiOperazioni.Columns.Add(new ColumnPDF("nuoveSottoscrizioni", 130, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Decimale, "nuoveSottoscrizioni", "(A) <font color=#000000>Nuove sottoscrizioni (€)</font>") { HeaderFontSize = 7 });
|
||
sintesiOperazioni.Columns.Add(new ColumnPDF("aggiuntivi", 130, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Decimale, "aggiuntivi", "(B) <font color=#000000>Investimenti aggiuntivi (€)</font>") { HeaderFontSize = 7 });
|
||
sintesiOperazioni.Columns.Add(new ColumnPDF("disinvestimenti", 130, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Decimale, "disinvestimenti", "(C) <font color=#000000>Disinvestimenti (€)</font>") { HeaderFontSize = 7 });
|
||
sintesiOperazioni.Columns.Add(new ColumnPDF("saldo", 130, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Decimale, "saldo", "(A+B-C) <font color=#000000>Saldo operazioni (€)</font>") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
for (int i = 0; i < dati.Tables["sintesiOperazioni"].Rows.Count; i++)
|
||
{
|
||
sintesiOperazioni.Cells[0, i].HorizontalAlignment =
|
||
sintesiOperazioni.Cells[1, i].HorizontalAlignment =
|
||
sintesiOperazioni.Cells[2, i].HorizontalAlignment =
|
||
sintesiOperazioni.Cells[3, i].HorizontalAlignment = HorizontalAlignmentType.Centrato;
|
||
}
|
||
#endregion
|
||
AddElement(sintesiOperazioni);
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Tabella delle Operazioni
|
||
|
||
if (dati.Tables["operazioni"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("Nuove sottoscrizioni, Investimenti aggiuntivi, Disinvestimenti", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var tabellaOperazioni = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioni"], dati.Tables["operazionifooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
// Modifica per Saving Map
|
||
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("SavingMap", 13, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 10, ScaleColumnTypeImage = 0.50F });
|
||
// Fine Modifica
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("codContratto", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "codContratto", "Codice<br>Contratto") { HeaderFontSize = 7 });
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("Prodotto", 142, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Prodotto", "Prodotto") { HeaderFontSize = 7 });
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("codInterno", 35, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "codInterno", "Codice<br>Interno") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("Controvaloreattuale", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Controvaloreattuale", "Controvalore<br>attuale (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("ApportiDisinvest", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ApportiDisinvest", "Apporti/<br>Disinvest. (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("Controvaloreproposto", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Controvaloreproposto", "Controvalore<br>" + (isAdeguata ? "proposto (€)" : "prospettico (€)")) { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaOperazioni.Columns.Add(new ColumnPDF("VaR", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "VaR", "Rischio<br>Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
tabellaOperazioni.FooterColumns.Add(new ColumnPDF("Prodotto", 265, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
tabellaOperazioni.FooterColumns.Add(new ColumnPDF("Controvaloreattuale", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaOperazioni.FooterColumns.Add(new ColumnPDF("ApportiDisinvest", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaOperazioni.FooterColumns.Add(new ColumnPDF("Controvaloreproposto", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaOperazioni.FooterColumns.Add(new ColumnPDF("VaR", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
for (int i = 0; i < dati.Tables["operazioni"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioni"].Rows[i][0].ToString() == "$")
|
||
{
|
||
tabellaOperazioni.Cells[1, i].FontBold =
|
||
tabellaOperazioni.Cells[2, i].FontBold =
|
||
tabellaOperazioni.Cells[4, i].FontBold =
|
||
tabellaOperazioni.Cells[5, i].FontBold =
|
||
tabellaOperazioni.Cells[6, i].FontBold = true;
|
||
tabellaOperazioni.Cells[1, i].ColSpan = 2;
|
||
|
||
}
|
||
else
|
||
{
|
||
tabellaOperazioni.Cells[1, i].FontBold =
|
||
tabellaOperazioni.Cells[2, i].FontBold =
|
||
tabellaOperazioni.Cells[4, i].FontBold =
|
||
tabellaOperazioni.Cells[5, i].FontBold =
|
||
tabellaOperazioni.Cells[6, i].FontBold = false;
|
||
tabellaOperazioni.Cells[1, i].ColSpan = 0;
|
||
|
||
}
|
||
}
|
||
|
||
for (int i = 0; i < dati.Tables["operazioni"].Rows.Count; i++)
|
||
{
|
||
tabellaOperazioni.Cells[4, i].HorizontalAlignment =
|
||
tabellaOperazioni.Cells[5, i].HorizontalAlignment =
|
||
tabellaOperazioni.Cells[6, i].HorizontalAlignment =
|
||
tabellaOperazioni.Cells[7, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
}
|
||
|
||
AddElement(tabellaOperazioni);
|
||
}
|
||
#endregion
|
||
|
||
#region Tabella Pac Terzi
|
||
|
||
if (dati.Tables["operazioniPACTerzi"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(A)</font> Nuove sottoscrizioni - Piani di accumulo capitale", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var operazioniPACTerzi = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniPACTerzi"], dati.Tables["operazioniPACTerziFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("nomeProdotto", 160, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "nomeProdotto", "Prodotto") { HeaderFontSize = 7 });
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("codiceInterno", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "codiceInterno", "Codice<br>Interno") { HeaderFontSize = 7 });
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("primoVersamento", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "primoVersamento", "Primo<br>versamento (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("rata", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "rata", "Rata (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("frequenza", 65, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "frequenza", "Frequenza/<br>Durata") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("valoreNominale", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "valoreNominale", "Valore<br>nominale (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACTerzi.Columns.Add(new ColumnPDF("var", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "var", "Rischio<br>Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
operazioniPACTerzi.FooterColumns.Add(new ColumnPDF("Prodotto", 210, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
operazioniPACTerzi.FooterColumns.Add(new ColumnPDF("primoVersamento", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPACTerzi.FooterColumns.Add(new ColumnPDF("rata", 50, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPACTerzi.FooterColumns.Add(new ColumnPDF("frequenza", 65, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniPACTerzi.FooterColumns.Add(new ColumnPDF("valoreNominale", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniPACTerzi.FooterColumns.Add(new ColumnPDF("var", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniPACTerzi"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniPACTerzi"].Rows[i][0].ToString() == "$")
|
||
{
|
||
operazioniPACTerzi.Cells[0, i].FontBold = true;
|
||
operazioniPACTerzi.Cells[0, i].ColSpan = 6;
|
||
}
|
||
else
|
||
{
|
||
operazioniPACTerzi.Cells[0, i].FontBold = false;
|
||
operazioniPACTerzi.Cells[0, i].ColSpan = 0;
|
||
operazioniPACTerzi.Cells[2, i].HorizontalAlignment =
|
||
operazioniPACTerzi.Cells[3, i].HorizontalAlignment =
|
||
operazioniPACTerzi.Cells[5, i].HorizontalAlignment =
|
||
operazioniPACTerzi.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
AddElement(operazioniPACTerzi);
|
||
}
|
||
#endregion
|
||
|
||
#region Tabella Fonditalia
|
||
|
||
if (dati.Tables["operazioniPACFonditalia"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(A)</font> Nuove sottoscrizioni - Piani di accumulo capitale", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var operazioniPACFonditalia = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniPACFonditalia"], dati.Tables["operazioniPACFonditaliaFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("nomeProdotto", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "nomeProdotto", "Prodotto") { HeaderFontSize = 7 });
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("codiceInterno", 40, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "codiceInterno", "Codice<br>Interno") { HeaderFontSize = 7 });
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("primoVersamento", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "primoVersamento", "Primo<br>versamento (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("rata", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "rata", "Rata (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("frequenza", 65, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "frequenza", "Frequenza") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("valoreNominale", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "valoreNominale", "Valore<br>nominale (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPACFonditalia.Columns.Add(new ColumnPDF("var", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "var", "Rischio<br>Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
operazioniPACFonditalia.FooterColumns.Add(new ColumnPDF("Prodotto", 210, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
operazioniPACFonditalia.FooterColumns.Add(new ColumnPDF("primoVersamento", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPACFonditalia.FooterColumns.Add(new ColumnPDF("rata", 50, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPACFonditalia.FooterColumns.Add(new ColumnPDF("frequenza", 65, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniPACFonditalia.FooterColumns.Add(new ColumnPDF("valoreNominale", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniPACFonditalia.FooterColumns.Add(new ColumnPDF("var", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniPACFonditalia"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniPACFonditalia"].Rows[i][0].ToString() == "$")
|
||
{
|
||
operazioniPACFonditalia.Cells[0, i].FontBold =
|
||
operazioniPACFonditalia.Cells[2, i].FontBold =
|
||
operazioniPACFonditalia.Cells[3, i].FontBold =
|
||
operazioniPACFonditalia.Cells[4, i].FontBold =
|
||
operazioniPACFonditalia.Cells[5, i].FontBold = true;
|
||
}
|
||
else
|
||
{
|
||
operazioniPACFonditalia.Cells[2, i].FontBold =
|
||
operazioniPACFonditalia.Cells[3, i].FontBold =
|
||
operazioniPACFonditalia.Cells[4, i].FontBold =
|
||
operazioniPACFonditalia.Cells[5, i].FontBold =
|
||
operazioniPACFonditalia.Cells[0, i].FontBold = false;
|
||
|
||
}
|
||
operazioniPACFonditalia.Cells[2, i].HorizontalAlignment =
|
||
operazioniPACFonditalia.Cells[3, i].HorizontalAlignment =
|
||
operazioniPACFonditalia.Cells[5, i].HorizontalAlignment =
|
||
operazioniPACFonditalia.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
}
|
||
|
||
|
||
AddElement(operazioniPACFonditalia);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Tabella Conversioni Programmate NS
|
||
if (dati.Tables["operazioniCPNS"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(A)</font> Nuove sottoscrizioni - Conversioni programmate", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var operazioniCPNS = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniCPNS"], dati.Tables["operazioniCPNSFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("Prodotto", 160, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Prodotto", "Nome prodotto") { HeaderFontSize = 7 });
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("CodiceInterno", 30, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "CodiceInterno", "Codice<br>Interno") { HeaderFontSize = 7 });
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("ControvaloreSottoscrizione", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreSottoscrizione", "Controvalore<br>sottoscrizione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("Durata", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Rata", "Rata (€)<br>Durata") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("Conversione", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Conversione", "Conversione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("ControvalorePropost", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvalorePropost", "Controvalore<br>proposto (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPNS.Columns.Add(new ColumnPDF("Var", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Var", "Rischio Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
operazioniCPNS.FooterColumns.Add(new ColumnPDF("NomeProdotto", 190, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
operazioniCPNS.FooterColumns.Add(new ColumnPDF("CtvSottoscrizione", 75, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniCPNS.FooterColumns.Add(new ColumnPDF("Durata", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniCPNS.FooterColumns.Add(new ColumnPDF("Conversione", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniCPNS.FooterColumns.Add(new ColumnPDF("ControvalorePropost", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniCPNS.FooterColumns.Add(new ColumnPDF("Var", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniCPNS"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniCPNS"].Rows[i][0].ToString() == "$")
|
||
{
|
||
operazioniCPNS.Cells[0, i].FontBold =
|
||
operazioniCPNS.Cells[2, i].FontBold =
|
||
operazioniCPNS.Cells[3, i].FontBold =
|
||
operazioniCPNS.Cells[4, i].FontBold =
|
||
operazioniCPNS.Cells[5, i].FontBold = true;
|
||
}
|
||
else
|
||
{
|
||
operazioniCPNS.Cells[2, i].FontBold =
|
||
operazioniCPNS.Cells[3, i].FontBold =
|
||
operazioniCPNS.Cells[4, i].FontBold =
|
||
operazioniCPNS.Cells[5, i].FontBold =
|
||
operazioniCPNS.Cells[0, i].FontBold = false;
|
||
|
||
}
|
||
operazioniCPNS.Cells[2, i].HorizontalAlignment =
|
||
operazioniCPNS.Cells[3, i].HorizontalAlignment =
|
||
operazioniCPNS.Cells[4, i].HorizontalAlignment =
|
||
operazioniCPNS.Cells[5, i].HorizontalAlignment =
|
||
operazioniCPNS.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
}
|
||
|
||
|
||
AddElement(operazioniCPNS);
|
||
|
||
}
|
||
#endregion
|
||
|
||
#region Tabella Conversioni Programmate PV
|
||
|
||
if (dati.Tables["operazioniCPCV"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(B)</font> Investimenti aggiuntivi / <font color=#FF0000>(C)</font> Disinvestimenti - Conversioni programmate", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var operazioniCPCV = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniCPCV"], dati.Tables["operazioniCPCVFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("Prodotto", 160, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Prodotto", "Nome prodotto") { HeaderFontSize = 7 });
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("CodiceInterno", 35, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "CodiceInterno", "Codice<br>Interno") { HeaderFontSize = 7 });
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("ControvaloreAttuale", 65, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreAttuale", "Controvalore<br>attuale (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("Rata", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Rata", "Rata(€)<br>Frequenza/<br>Durata") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("Conversione", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Conversione", "Conversione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("ControvaloreProposto", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreProposto", "Controvalore<br>proposto (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniCPCV.Columns.Add(new ColumnPDF("Var", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Var", "Rischio Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
operazioniCPCV.FooterColumns.Add(new ColumnPDF("NomeProdotto", 195, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
operazioniCPCV.FooterColumns.Add(new ColumnPDF("ControvaloreAttuale", 65, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniCPCV.FooterColumns.Add(new ColumnPDF("Durata", 50, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniCPCV.FooterColumns.Add(new ColumnPDF("Conversione", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniCPCV.FooterColumns.Add(new ColumnPDF("ControvaloreProposto", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniCPCV.FooterColumns.Add(new ColumnPDF("Var", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniCPCV"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniCPCV"].Rows[i][0].ToString() == "$")
|
||
{
|
||
operazioniCPCV.Cells[0, i].FontBold =
|
||
operazioniCPCV.Cells[2, i].FontBold =
|
||
operazioniCPCV.Cells[3, i].FontBold =
|
||
operazioniCPCV.Cells[4, i].FontBold =
|
||
operazioniCPCV.Cells[5, i].FontBold = true;
|
||
}
|
||
else
|
||
{
|
||
operazioniCPCV.Cells[2, i].FontBold =
|
||
operazioniCPCV.Cells[3, i].FontBold =
|
||
operazioniCPCV.Cells[4, i].FontBold =
|
||
operazioniCPCV.Cells[5, i].FontBold =
|
||
operazioniCPCV.Cells[0, i].FontBold = false;
|
||
|
||
}
|
||
operazioniCPCV.Cells[2, i].HorizontalAlignment =
|
||
operazioniCPCV.Cells[3, i].HorizontalAlignment =
|
||
operazioniCPCV.Cells[4, i].HorizontalAlignment =
|
||
operazioniCPCV.Cells[5, i].HorizontalAlignment =
|
||
operazioniCPCV.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
}
|
||
AddElement(operazioniCPCV);
|
||
}
|
||
#endregion
|
||
|
||
#region Tabella delle CP OLD
|
||
|
||
|
||
//if (dati.Tables["operazioniLabelCP"].Rows.Count > 0)
|
||
//{
|
||
// Boolean isPS = false;
|
||
// if (dati.Tables["tipoOperazioni"].Rows.Count > 0)//è una PS
|
||
// {
|
||
// isPS = true;
|
||
// }
|
||
// AddElement(new SpacePDF(25));
|
||
// #region Label
|
||
// AddElement(new FormattedTextAreaPDF(isPS ? "Operazioni Servizio Step Up" : "Nuova sottoscrizione e Servizio Step Up", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Standard_Grigio_SfondoColonnaTabella, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
// AddElement(new SpacePDF(15));
|
||
// AddElement(new FormattedTextAreaPDF("Tipologia Step Up: ", EnvironmentFacade.RendererFacade.XLeftLimit, 90) { FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false, FontSize = 8 });
|
||
// AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelCP"].Rows[0]["Tipologia"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 90, 50) { AutoIncrementYWritable = false, FontSize = 7 });
|
||
// AddElement(new FormattedTextAreaPDF("Importo Step Up (€): ", EnvironmentFacade.RendererFacade.XLeftLimit + 150, 120) { FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false, FontSize = 8 });
|
||
// AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(dati.Tables["operazioniLabelCP"].Rows[0]["Importo"].ToString()), EnvironmentFacade.RendererFacade.XLeftLimit + 250, 70) { AutoIncrementYWritable = false, FontSize = 7 });
|
||
// AddElement(new FormattedTextAreaPDF("Durata: ", EnvironmentFacade.RendererFacade.XLeftLimit + 340, 40) { FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false, FontSize = 8 });
|
||
// AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelCP"].Rows[0]["Durata"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 380, 40) { AutoIncrementYWritable = false, FontSize = 7 });
|
||
// #endregion
|
||
// AddElement(new SpacePDF(25));
|
||
// #region tabella
|
||
// var tabellaCP = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniCP"], dati.Tables["operazioniCPfooter"])
|
||
// {
|
||
// Style = Style.ConsulenzaUnica,
|
||
// AlternateRow = false,
|
||
// ShowSeparationLines = true,
|
||
// WidthSeparationLines = 0.5F,
|
||
// RowHeight = 25
|
||
// };
|
||
|
||
// tabellaCP.Columns.Add(new ColumnPDF("Prodotto", 126, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Prodotto", "Prodotto") { HeaderFontSize = 7 });
|
||
// tabellaCP.Columns.Add(new ColumnPDF("StatoCP", 29, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Immagine, "StatoCP", string.Empty) { DeltaYContent = 10, ScaleColumnTypeImage = 0.50F });
|
||
// tabellaCP.Columns.Add(new ColumnPDF("ControvaloreSottoscrizione", 85, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreSottoscrizione", (isPS ? "Controvalore<br>attuale (€)" : "Controvalore<br>sottoscrizione (€)")) { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaCP.Columns.Add(new ColumnPDF("ConversioneProgrammata", 85, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ConversioneProgrammata", "Servizio<br>Step Up (€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaCP.Columns.Add(new ColumnPDF("Rata", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Rata", "Rata (€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaCP.Columns.Add(new ColumnPDF("ControvaloreProposto", 85, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ControvaloreProposto", "Controvalore<br>" + (isAdeguata ? "proposto (€)" : "prospettico (€)")) { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaCP.Columns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "VaR", "VaR (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
// tabellaCP.FooterColumns.Add(new ColumnPDF("Prodotto", 155, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
// tabellaCP.FooterColumns.Add(new ColumnPDF("ControvaloreSottoscrizione", 85, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaCP.FooterColumns.Add(new ColumnPDF("ConversioneProgrammata", 85, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaCP.FooterColumns.Add(new ColumnPDF("Rata", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaCP.FooterColumns.Add(new ColumnPDF("ControvaloreProposto", 85, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaCP.FooterColumns.Add(new ColumnPDF("VaR", 40, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
// tabellaCP.Notes.Add(
|
||
// new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
|
||
// "Servizio Step Up in uscita.",
|
||
// new[] { "" },
|
||
// string.Empty,
|
||
// TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella,
|
||
// new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit, 0.60F, "cpInUscita.png"))
|
||
// { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left });
|
||
// tabellaCP.Notes.Add(
|
||
// new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
|
||
// "Servizio Step Up in entrata.",
|
||
// new[] { "" },
|
||
// string.Empty,
|
||
// TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella,
|
||
// new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit, 0.60F, "cpInEntrata.png"))
|
||
// { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left });
|
||
|
||
// #endregion
|
||
// for (int i = 0; i < dati.Tables["operazioniCP"].Rows.Count; i++)
|
||
// {
|
||
// tabellaCP.Cells[2, i].HorizontalAlignment =
|
||
// tabellaCP.Cells[3, i].HorizontalAlignment =
|
||
// tabellaCP.Cells[4, i].HorizontalAlignment =
|
||
// tabellaCP.Cells[5, i].HorizontalAlignment =
|
||
// tabellaCP.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
// }
|
||
// AddElement(tabellaCP);
|
||
|
||
|
||
// AddElement(new SpacePDF(20));
|
||
//}
|
||
#endregion
|
||
|
||
#region Tabella delle PPI NS
|
||
|
||
if (dati.Tables["operazioniPPINS"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(A)</font> Nuove sottoscrizioni - Programma periodico di investimento", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var operazioniPPINS = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniPPINS"], dati.Tables["operazioniPPINSFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("NomeProdotto", 160, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto") { HeaderFontSize = 7 });
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("CodiceInterno", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "CodiceInterno", "Codice<br>Interno") { HeaderFontSize = 7, HeaderPaddingLeft = 9, PaddingLeft = 9 });
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("CtvSottoscrizione", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "CtvSottoscrizione", "Controvalore<br>sottoscrizione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("Frequenza", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Frequenza", "Frequenza/<br>Durata") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("Conversione", 65, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Conversione", "Conversione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("CtvProposto", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "CtvProposto", "Controvalore<br>proposto (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniPPINS.Columns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Var", "Rischio Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
operazioniPPINS.FooterColumns.Add(new ColumnPDF("NomeProdotto", 210, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
operazioniPPINS.FooterColumns.Add(new ColumnPDF("CtvSottoscrizione", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPPINS.FooterColumns.Add(new ColumnPDF("Frequenza", 50, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniPPINS.FooterColumns.Add(new ColumnPDF("Conversione", 65, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPPINS.FooterColumns.Add(new ColumnPDF("CtvProposto", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniPPINS.FooterColumns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniPPINS"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniPPINS"].Rows[i][0].ToString() == "$")
|
||
{
|
||
operazioniPPINS.Cells[0, i].FontBold =
|
||
operazioniPPINS.Cells[2, i].FontBold =
|
||
operazioniPPINS.Cells[3, i].FontBold =
|
||
operazioniPPINS.Cells[4, i].FontBold =
|
||
operazioniPPINS.Cells[5, i].FontBold = true;
|
||
}
|
||
else
|
||
{
|
||
operazioniPPINS.Cells[2, i].FontBold =
|
||
operazioniPPINS.Cells[3, i].FontBold =
|
||
operazioniPPINS.Cells[4, i].FontBold =
|
||
operazioniPPINS.Cells[5, i].FontBold =
|
||
operazioniPPINS.Cells[0, i].FontBold = false;
|
||
|
||
}
|
||
operazioniPPINS.Cells[2, i].HorizontalAlignment =
|
||
operazioniPPINS.Cells[4, i].HorizontalAlignment =
|
||
operazioniPPINS.Cells[5, i].HorizontalAlignment =
|
||
operazioniPPINS.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
}
|
||
AddElement(operazioniPPINS);
|
||
}
|
||
#endregion
|
||
|
||
#region Tabella delle PPI PV
|
||
|
||
AddElement(new SpacePDF(25));
|
||
|
||
if (dati.Tables["operazioniPPIPV"].Rows.Count > 0)
|
||
{
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(B)</font> Investimenti aggiuntivi / <font color=#FF0000>(C)</font> Disinvestimenti - Programma periodico di investimento", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var tabellaKS = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniPPIPV"], dati.Tables["operazioniPPIPVFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
tabellaKS.Columns.Add(new ColumnPDF("NomeProdotto", 160, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto") { HeaderFontSize = 7 });
|
||
tabellaKS.Columns.Add(new ColumnPDF("CodiceInterno", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "CodiceInterno", "Codice<br>Interno") { HeaderFontSize = 7, HeaderPaddingLeft = 9, PaddingLeft = 9 });
|
||
tabellaKS.Columns.Add(new ColumnPDF("CtvSottoscrizione", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "CtvSottoscrizione", "Controvalore<br>sottoscrizione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaKS.Columns.Add(new ColumnPDF("Frequenza", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Frequenza", "Frequenza/<br>Durata") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaKS.Columns.Add(new ColumnPDF("Conversione", 65, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Conversione", "Conversione (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaKS.Columns.Add(new ColumnPDF("CtvProposto", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "CtvProposto", "Controvalore<br>proposto (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaKS.Columns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Var", "Rischio Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
tabellaKS.FooterColumns.Add(new ColumnPDF("NomeProdotto", 210, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
tabellaKS.FooterColumns.Add(new ColumnPDF("CtvSottoscrizione", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaKS.FooterColumns.Add(new ColumnPDF("Frequenza", 50, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
tabellaKS.FooterColumns.Add(new ColumnPDF("Conversione", 65, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaKS.FooterColumns.Add(new ColumnPDF("CtvProposto", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaKS.FooterColumns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniPPINS"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniPPINS"].Rows[i][0].ToString() == "$")
|
||
{
|
||
tabellaKS.Cells[0, i].FontBold =
|
||
tabellaKS.Cells[2, i].FontBold =
|
||
tabellaKS.Cells[3, i].FontBold =
|
||
tabellaKS.Cells[4, i].FontBold =
|
||
tabellaKS.Cells[5, i].FontBold = true;
|
||
}
|
||
else
|
||
{
|
||
tabellaKS.Cells[2, i].FontBold =
|
||
tabellaKS.Cells[3, i].FontBold =
|
||
tabellaKS.Cells[4, i].FontBold =
|
||
tabellaKS.Cells[5, i].FontBold =
|
||
tabellaKS.Cells[0, i].FontBold = false;
|
||
|
||
}
|
||
tabellaKS.Cells[2, i].HorizontalAlignment =
|
||
tabellaKS.Cells[4, i].HorizontalAlignment =
|
||
tabellaKS.Cells[5, i].HorizontalAlignment =
|
||
tabellaKS.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
}
|
||
|
||
AddElement(tabellaKS);
|
||
|
||
}
|
||
//if (dati.Tables["operazioniLabelKS"].Rows.Count > 0)
|
||
//{
|
||
// AddElement(new SpacePDF(25));
|
||
// #region Label
|
||
// AddElement(new FormattedTextAreaPDF("Nuova sottoscrizione di Old Mutual Wealth Italy - In Prima Persona con programma periodico di investimento", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundMarginLeft = 5, BackGroundColor = ColorPDF.Standard_Grigio_SfondoColonnaTabella, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
||
// AddElement(new SpacePDF(15));
|
||
// AddElement(new FormattedTextAreaPDF("Frequenza switch: ", EnvironmentFacade.RendererFacade.XLeftLimit, 90) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelKS"].Rows[0]["Frequenza"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 90, 50) { FontSize = 7, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF("Durata programma: ", EnvironmentFacade.RendererFacade.XLeftLimit + 180, 90) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelKS"].Rows[0]["Durata"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 275, 50) { FontSize = 7, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF("Importo programma: ", EnvironmentFacade.RendererFacade.XLeftLimit + 350, 100) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(dati.Tables["operazioniLabelKS"].Rows[0]["Importo"].ToString()), EnvironmentFacade.RendererFacade.XLeftLimit + 450) { FontSize = 7, AutoIncrementYWritable = true });
|
||
// AddElement(new SpacePDF(7));
|
||
// AddElement(new FormattedTextAreaPDF("Investimento iniziale: ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false, FontSize = 8 });
|
||
// AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(dati.Tables["operazioniLabelKS"].Rows[0]["Investimentoiniziale"].ToString()), EnvironmentFacade.RendererFacade.XLeftLimit + 105) { FontSize = 7, AutoIncrementYWritable = true });
|
||
// #endregion
|
||
// AddElement(new SpacePDF(15));
|
||
// #region tabella
|
||
// var tabellaKS = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniKS"], dati.Tables["operazioniKSfooter"])
|
||
// {
|
||
// Style = Style.ConsulenzaUnica,
|
||
// AlternateRow = false,
|
||
// ShowSeparationLines = true,
|
||
// WidthSeparationLines = 0.5F,
|
||
// RowHeight = 25
|
||
// };
|
||
|
||
// // Modifica per Saving Map
|
||
// tabellaKS.Columns.Add(new ColumnPDF("SavingMap", 13, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 10, ScaleColumnTypeImage = 0.50F });
|
||
// // Fine Modifica
|
||
// tabellaKS.Columns.Add(new ColumnPDF("Prodotto", 167, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "ProdottoDestinazione", "Prodotto di destinazione") { HeaderFontSize = 7 });
|
||
// tabellaKS.Columns.Add(new ColumnPDF("Controvaloreattuale", 95, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Controvaloreattuale", "Controvalore<br>attuale (€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaKS.Columns.Add(new ColumnPDF("Controvaloreproposto", 95, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Controvaloreproposto", "Controvalore<br>" + (isAdeguata ? "proposto (€)" : "prospettico (€)")) { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaKS.Columns.Add(new ColumnPDF("Rischiocredito", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Rischiocredito", "Rischio<br>Credito") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaKS.Columns.Add(new ColumnPDF("VaR", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "RischioVaR", "VaR (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
// tabellaKS.FooterColumns.Add(new ColumnPDF("Prodotto", 180, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
// tabellaKS.FooterColumns.Add(new ColumnPDF("Controvaloreattuale", 95, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaKS.FooterColumns.Add(new ColumnPDF("Controvaloreproposto", 95, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaKS.FooterColumns.Add(new ColumnPDF("Rischiocredito", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
// tabellaKS.FooterColumns.Add(new ColumnPDF("VaR", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
// #endregion
|
||
// for (int i = 0; i < dati.Tables["operazioniKS"].Rows.Count; i++)
|
||
// {
|
||
// tabellaKS.Cells[2, i].HorizontalAlignment =
|
||
// tabellaKS.Cells[3, i].HorizontalAlignment =
|
||
// tabellaKS.Cells[4, i].HorizontalAlignment =
|
||
// tabellaKS.Cells[5, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
// }
|
||
// AddElement(tabellaKS);
|
||
|
||
// AddElement(new SpacePDF(20));
|
||
//}
|
||
#endregion
|
||
|
||
#region Tabella delle RS
|
||
if (dati.Tables["operazioniFVI"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(A)</font> Nuove sottoscrizioni - Premio periodico", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
#endregion
|
||
var operazioniFVI = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniFVI"], dati.Tables["operazioniFVIFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
HeaderHeight = 30
|
||
};
|
||
|
||
operazioniFVI.Columns.Add(new ColumnPDF("NomeProdotto", 160, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto") { HeaderFontSize = 7 });
|
||
operazioniFVI.Columns.Add(new ColumnPDF("CodiceInterno", 55, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "CodiceInterno", "Codice<br>Interno") { HeaderFontSize = 7, PaddingLeft = 10, HeaderPaddingLeft = 10 });
|
||
operazioniFVI.Columns.Add(new ColumnPDF("PremioUnicoAggiuntivo", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "PremioUnicoAggiuntivo", "Premio unico<br>aggiuntivo (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniFVI.Columns.Add(new ColumnPDF("Frequenza", 50, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Frequenza", "Rata (€)/<br>Frequenza") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniFVI.Columns.Add(new ColumnPDF("NumeroAnnualita", 65, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NumeroAnnualita", "Numero<br>annualità") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniFVI.Columns.Add(new ColumnPDF("PianoVersamenti", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "PianoVersamenti", "Piano dei<br>versamenti (€)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
operazioniFVI.Columns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Var", "Rischio Mercato<br>(VaR %)") { HeaderPaddingLeft = 4, HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
operazioniFVI.FooterColumns.Add(new ColumnPDF("NomeProdotto", 215, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
operazioniFVI.FooterColumns.Add(new ColumnPDF("PremioUnicoAggiuntivo", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniFVI.FooterColumns.Add(new ColumnPDF("Frequenza", 50, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniFVI.FooterColumns.Add(new ColumnPDF("NumeroAnnualita", 65, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
operazioniFVI.FooterColumns.Add(new ColumnPDF("PianoVersamenti", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
operazioniFVI.FooterColumns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
//Formatto la riga di aggregazione
|
||
for (int i = 0; i < dati.Tables["operazioniFVI"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniFVI"].Rows[i][0].ToString() == "$")
|
||
{
|
||
operazioniFVI.Cells[0, i].FontBold =
|
||
operazioniFVI.Cells[2, i].FontBold =
|
||
operazioniFVI.Cells[3, i].FontBold =
|
||
operazioniFVI.Cells[4, i].FontBold =
|
||
operazioniFVI.Cells[5, i].FontBold = true;
|
||
}
|
||
else
|
||
{
|
||
operazioniFVI.Cells[2, i].FontBold =
|
||
operazioniFVI.Cells[3, i].FontBold =
|
||
operazioniFVI.Cells[4, i].FontBold =
|
||
operazioniFVI.Cells[5, i].FontBold =
|
||
operazioniFVI.Cells[0, i].FontBold = false;
|
||
|
||
}
|
||
operazioniFVI.Cells[2, i].HorizontalAlignment =
|
||
operazioniFVI.Cells[3, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
operazioniFVI.Cells[4, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
operazioniFVI.Cells[5, i].HorizontalAlignment =
|
||
operazioniFVI.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
|
||
}
|
||
AddElement(operazioniFVI);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Tabella delle RM OLD
|
||
//if (dati.Tables["operazioniLabelRM"].Rows.Count > 0)
|
||
//{
|
||
// AddElement(new SpacePDF(25));
|
||
// #region Label
|
||
// AddElement(new FormattedTextAreaPDF("Nuova sottoscrizione a premio periodico", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundMarginLeft = 5, BackGroundColor = ColorPDF.Standard_Grigio_SfondoColonnaTabella, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
||
// AddElement(new SpacePDF(15));
|
||
// AddElement(new FormattedTextAreaPDF("Tipo rateazione: ", EnvironmentFacade.RendererFacade.XLeftLimit, 80) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelRM"].Rows[0]["TipoRata"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 80) { FontSize = 7, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF("Rata programmata (€): ", EnvironmentFacade.RendererFacade.XLeftLimit + 180, 105) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(dati.Tables["operazioniLabelRM"].Rows[0]["Rata"].ToString()), EnvironmentFacade.RendererFacade.XLeftLimit + 290, 50) { FontSize = 7, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF("Numero annualità: ", EnvironmentFacade.RendererFacade.XLeftLimit + 380, 100) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelRM"].Rows[0]["Numero"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 470) { FontSize = 7, AutoIncrementYWritable = true });
|
||
// AddElement(new SpacePDF(7));
|
||
// AddElement(new FormattedTextAreaPDF("Premio unico aggiuntivo (€): ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
// AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(dati.Tables["operazioniLabelRM"].Rows[0]["Premio"].ToString()), EnvironmentFacade.RendererFacade.XLeftLimit + 135) { FontSize = 7, AutoIncrementYWritable = true });
|
||
// #endregion
|
||
// AddElement(new SpacePDF(15));
|
||
// #region tabella
|
||
// var tabellaRM = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniRM"], dati.Tables["operazioniRMfooter"])
|
||
// {
|
||
// Style = Style.ConsulenzaUnica,
|
||
// AlternateRow = false,
|
||
// ShowSeparationLines = true,
|
||
// WidthSeparationLines = 0.5F,
|
||
// RowHeight = 25
|
||
// };
|
||
|
||
// // Modifica per Saving Map
|
||
// tabellaRM.Columns.Add(new ColumnPDF("SavingMap", 13, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 10, ScaleColumnTypeImage = 0.50F });
|
||
// // Fine Modifica
|
||
// tabellaRM.Columns.Add(new ColumnPDF("Prodotto", 127, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Prodotto", "Prodotto") { HeaderFontSize = 7 });
|
||
// tabellaRM.Columns.Add(new ColumnPDF("Controvaloreattuale", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Rata", "Rata programm.<br>(€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaRM.Columns.Add(new ColumnPDF("Controvaloreproposto", 90, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Premioaggiuntivo", "Premio unico<br>aggiuntivo (€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaRM.Columns.Add(new ColumnPDF("Premiversati", 80, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Premiversati", "Premi versati<br>sottoscr. (€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaRM.Columns.Add(new ColumnPDF("Rischiocredito", 70, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Rischiocredito", "Rischio<br>Credito") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
// tabellaRM.Columns.Add(new ColumnPDF("VaR", 60, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "RischioVaR", "VaR (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
// tabellaRM.FooterColumns.Add(new ColumnPDF("Prodotto", 140, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
// tabellaRM.FooterColumns.Add(new ColumnPDF("Controvaloreattuale", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaRM.FooterColumns.Add(new ColumnPDF("Controvaloreproposto", 90, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaRM.FooterColumns.Add(new ColumnPDF("Premiversati", 80, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
// tabellaRM.FooterColumns.Add(new ColumnPDF("Rischiocredito", 70, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
// tabellaRM.FooterColumns.Add(new ColumnPDF("VaR", 60, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
|
||
// for (int i = 0; i < dati.Tables["operazioniRM"].Rows.Count; i++)
|
||
// {
|
||
// tabellaRM.Cells[2, i].HorizontalAlignment =
|
||
// tabellaRM.Cells[3, i].HorizontalAlignment =
|
||
// tabellaRM.Cells[4, i].HorizontalAlignment =
|
||
// tabellaRM.Cells[5, i].HorizontalAlignment =
|
||
// tabellaRM.Cells[6, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
// }
|
||
// #endregion
|
||
// AddElement(tabellaRM);
|
||
//}
|
||
#endregion
|
||
|
||
#region Fondo Pensione
|
||
if (dati.Tables["operazioniFondoPensione"].Rows.Count > 0)
|
||
{
|
||
AddElement(new SpacePDF(25));
|
||
#region Label
|
||
//AddElement(new FormattedTextAreaPDF(Helper.ReplaceVariables("Adesione al Fondo Pensione $/Banca/$", base.EnvironmentFacade.ReportEnvironment), EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundMarginLeft = 5, BackGroundColor = ColorPDF.Standard_Grigio_SfondoColonnaTabella, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify });
|
||
//AddElement(new SpacePDF(15));
|
||
//AddElement(new FormattedTextAreaPDF("Adesione con trasferimento da altra forma pensionistica: ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelFondoPensione"].Rows[0]["Adesionetrasferimento"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 260) { FontSize = 7, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(10));
|
||
//AddElement(new FormattedTextAreaPDF("Contributi programmati per la prestazione principale", EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 8, FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontBold = true, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(7));
|
||
//AddElement(new FormattedTextAreaPDF("Contributo dell'Aderente: ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.Nero, FontSize = 7, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelFondoPensione"].Rows[0]["ContributoAderente"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 110) { FontSize = 7, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(7));
|
||
//AddElement(new FormattedTextAreaPDF("Contributo del Datore di lavoro: ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.Nero, FontSize = 7, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelFondoPensione"].Rows[0]["ContributoDatorelavoro"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 135) { FontSize = 7, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(7));
|
||
//AddElement(new FormattedTextAreaPDF("Conferimento del TFR: ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.Nero, FontSize = 7, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelFondoPensione"].Rows[0]["ConferimentoTFR"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 100) { FontSize = 7, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(10));
|
||
//AddElement(new FormattedTextAreaPDF("Contributi e premi versati all'adesione (€)", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(7));
|
||
//AddElement(new FormattedTextAreaPDF("Contributo dell'Aderente: ", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.Nero, FontSize = 7, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF(Helper.FormatCurrency(dati.Tables["operazioniLabelFondoPensione"].Rows[0]["AdesioneAderente"].ToString()), EnvironmentFacade.RendererFacade.XLeftLimit + 110) { FontSize = 7, AutoIncrementYWritable = false });
|
||
|
||
////AddElement(new FormattedTextAreaPDF("Premio di primo anno per le prestazioni assicurative accessorie: ", EnvironmentFacade.RendererFacade.XLeftLimit+230) { FontColor = ColorPDF.Nero, FontSize = 7, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF("Contributo aggiuntivo dell’Aderente: ", EnvironmentFacade.RendererFacade.XLeftLimit + 230) { FontColor = ColorPDF.Nero, FontSize = 7, FontBold = true, AutoIncrementYWritable = false });
|
||
//AddElement(new FormattedTextAreaPDF(dati.Tables["operazioniLabelFondoPensione"].Rows[0]["PremioPrimoAnno"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 385) { FontSize = 7, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(15));
|
||
//AddElement(new FormattedTextAreaPDF("Destinazione dei versamenti al Fondo Pensione", EnvironmentFacade.RendererFacade.XLeftLimit) { FontColor = ColorPDF.ConsulenzaUnica_Rosso, FontSize = 8, FontBold = true, AutoIncrementYWritable = true });
|
||
//AddElement(new SpacePDF(10));
|
||
|
||
AddElement(new FormattedTextAreaPDF("<font color=#FF0000>(A)</font> Nuove sottoscrizioni - Fondo Pensione Fideuram", EnvironmentFacade.RendererFacade.XLeftLimit) { BackGroundColor = ColorPDF.Bianco, FontColor = ColorPDF.Nero, FontSize = 8, FontBold = true, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, BackGroundMarginLeft = 5 });
|
||
|
||
#endregion
|
||
|
||
#region tabella
|
||
var tabellaFondoPensione = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["operazioniFondoPensione"], dati.Tables["operazioniFondoPensioneFooter"])
|
||
{
|
||
Style = Style.ConsulenzaUnica,
|
||
AlternateRow = false,
|
||
ShowSeparationLines = true,
|
||
WidthSeparationLines = 0.5F,
|
||
RowHeight = 25,
|
||
RowsPadding = 3,
|
||
HeaderHeight = 30,
|
||
|
||
};
|
||
|
||
// Modifica per Saving Map
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("SavingMap", 13, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 10, ScaleColumnTypeImage = 0.50F });
|
||
// Fine Modifica
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("Prodotto", 149, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Prodotto", "Prodotto") { HeaderFontSize = 7 });
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("ContributiversatiAdesione", 75, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ContributiversatiAdesione", "Contributi versati<br>all'adesione (€)") { HeaderFontSize = 7, PaddingRight = 5 });
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("ContrAderenteDatorePerc", 60, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ContrAderenteDatorePerc", "Contributo Aderente/<br>Datore (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("ContrAderenteDatore", 60, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "ContrAderenteDatore", "Contributo Aderente/<br>Datore (€)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("TFR", 40, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "TFR", "TFR (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("Altraformapensione", 68, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Altraformapensione", "Trasf. da altra<br>forma pens. (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
tabellaFondoPensione.Columns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Var", "Rischio<br>Mercato<br>VaR (%)") { HeaderFontSize = 7, PaddingRight = 4 });
|
||
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("Prodotto", 162, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo));
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("ContributiversatiAdesione", 75, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("ContrAderenteDatorePerc", 60, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("ContrAderenteDatore", 60, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 4 });
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("TFR", 40, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("Altraformapensione", 68, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Testo) { PaddingRight = 4 });
|
||
tabellaFondoPensione.FooterColumns.Add(new ColumnPDF("Var", 45, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale));
|
||
|
||
for (int i = 0; i < dati.Tables["operazioniFondoPensione"].Rows.Count; i++)
|
||
{
|
||
if (dati.Tables["operazioniFondoPensione"].Rows[i][0].ToString() == "$")
|
||
{
|
||
tabellaFondoPensione.Cells[1, i].FontBold =
|
||
tabellaFondoPensione.Cells[2, i].FontBold =
|
||
tabellaFondoPensione.Cells[3, i].FontBold =
|
||
tabellaFondoPensione.Cells[4, i].FontBold =
|
||
tabellaFondoPensione.Cells[5, i].FontBold = true;
|
||
tabellaFondoPensione.Cells[1, i].ColSpan = 2;
|
||
}
|
||
else
|
||
{
|
||
tabellaFondoPensione.Cells[1, i].FontBold =
|
||
tabellaFondoPensione.Cells[2, i].FontBold =
|
||
tabellaFondoPensione.Cells[3, i].FontBold =
|
||
tabellaFondoPensione.Cells[4, i].FontBold =
|
||
tabellaFondoPensione.Cells[5, i].FontBold = false;
|
||
tabellaFondoPensione.Cells[1, i].ColSpan = 0;
|
||
}
|
||
tabellaFondoPensione.Cells[2, i].HorizontalAlignment =
|
||
tabellaFondoPensione.Cells[3, i].HorizontalAlignment =
|
||
tabellaFondoPensione.Cells[4, i].HorizontalAlignment =
|
||
tabellaFondoPensione.Cells[5, i].HorizontalAlignment =
|
||
tabellaFondoPensione.Cells[6, i].HorizontalAlignment =
|
||
tabellaFondoPensione.Cells[7, i].HorizontalAlignment = HorizontalAlignmentType.Destra;
|
||
}
|
||
|
||
#endregion
|
||
AddElement(tabellaFondoPensione);
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
|
||
protected sealed override DataTable GetDataTable()
|
||
{
|
||
return null;
|
||
}
|
||
|
||
|
||
protected sealed override DataSet GetDataSet()
|
||
{
|
||
#region datatable
|
||
var ds = new DataSet();
|
||
|
||
ds.Tables.Add(new DataTable("sintesiOperazioniLabel"));
|
||
ds.Tables.Add(new DataTable("sintesiOperazioni"));
|
||
//ds.Tables.Add(new DataTable("sintesiOperazionifooter"));
|
||
|
||
ds.Tables.Add(new DataTable("tipoOperazioni"));
|
||
ds.Tables.Add(new DataTable("operazioni"));
|
||
ds.Tables.Add(new DataTable("DToperazioni"));
|
||
ds.Tables.Add(new DataTable("operazionifooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelPACTerzi"));
|
||
ds.Tables.Add(new DataTable("operazioniPACTerzi"));
|
||
ds.Tables.Add(new DataTable("operazioniPACTerziFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelPACFonditalia"));
|
||
ds.Tables.Add(new DataTable("operazioniPACFonditalia"));
|
||
ds.Tables.Add(new DataTable("operazioniPACFonditaliaFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelCPNS"));
|
||
ds.Tables.Add(new DataTable("operazioniCPNS"));
|
||
ds.Tables.Add(new DataTable("operazioniCPNSFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelCPCV"));
|
||
ds.Tables.Add(new DataTable("operazioniCPCV"));
|
||
ds.Tables.Add(new DataTable("operazioniCPCVFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelCP"));
|
||
ds.Tables.Add(new DataTable("operazioniCP"));
|
||
ds.Tables.Add(new DataTable("operazioniCPfooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelPPINS"));
|
||
ds.Tables.Add(new DataTable("operazioniPPINS"));
|
||
ds.Tables.Add(new DataTable("operazioniPPINSFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelPPIPV"));//ex KE
|
||
ds.Tables.Add(new DataTable("operazioniPPIPV"));
|
||
ds.Tables.Add(new DataTable("operazioniPPIPVFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelFVI"));
|
||
ds.Tables.Add(new DataTable("operazioniFVI"));
|
||
ds.Tables.Add(new DataTable("operazioniFVIFooter"));
|
||
|
||
ds.Tables.Add(new DataTable("operazioniLabelFondoPensione"));
|
||
ds.Tables.Add(new DataTable("operazioniFondoPensione"));
|
||
ds.Tables.Add(new DataTable("operazioniFondoPensionefooter"));
|
||
#endregion
|
||
|
||
#region dati e condizioni
|
||
var posizioni = datiSeiUnico.propostaUnit().dettaglioProdotti.dettaglioProdotti;
|
||
var dettaglioOperazioni = datiSeiUnico.propostaUnit().dettaglioOperazioni.elencoDettagliOperazioni.ToList();
|
||
string[] codInterno = { };
|
||
string[] codTipoOperazione = { };
|
||
decimal ctvSottoprodotto;
|
||
|
||
|
||
#endregion
|
||
|
||
var listaopnormali = posizioni.ToList();
|
||
var listaoperazioninormali = dettaglioOperazioni.ToList();
|
||
|
||
var listaLiquiditaKEKSPV = new posizioneOperazione[0].ToList();
|
||
|
||
#region sintesiOperazioni
|
||
ds.Tables["sintesiOperazioni"].Columns.Add(new DataColumn("nuoveSottoscrizioni", typeof(decimal)));
|
||
ds.Tables["sintesiOperazioni"].Columns.Add(new DataColumn("aggiuntivi", typeof(decimal)));
|
||
ds.Tables["sintesiOperazioni"].Columns.Add(new DataColumn("disinvestimenti", typeof(decimal)));
|
||
ds.Tables["sintesiOperazioni"].Columns.Add(new DataColumn("saldo", typeof(decimal)));
|
||
|
||
decimal totaleNuoveSottoscrizioni = 0;
|
||
decimal totaleAggiuntivi = 0;
|
||
decimal totaleDisinvestimenti = 0;
|
||
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
var operazioni = item.dettaglioOperazione.listaOperzioni.FirstOrDefault();// && !(codTipoOperazione.Contains(item.posizione.tipoOperazione) && tipoContratto.Contains(l.stDettaglioContratto.tipoContratto)));
|
||
|
||
if (operazioni != null)
|
||
{
|
||
|
||
|
||
if (operazioni.codTipoOperazione.Equals("NS"))
|
||
{
|
||
totaleNuoveSottoscrizioni = totaleNuoveSottoscrizioni + item.posizione.ctvPro;
|
||
|
||
}
|
||
else if (operazioni.investi > 0)
|
||
{
|
||
totaleAggiuntivi = totaleAggiuntivi + item.posizione.investi;
|
||
}
|
||
else
|
||
{
|
||
totaleDisinvestimenti = totaleDisinvestimenti + item.posizione.disinvesti * (-1);
|
||
}
|
||
|
||
}
|
||
}
|
||
ds.Tables["sintesiOperazioni"].Rows.Add(
|
||
totaleNuoveSottoscrizioni,
|
||
totaleAggiuntivi,
|
||
totaleDisinvestimenti,
|
||
totaleNuoveSottoscrizioni + totaleAggiuntivi + totaleDisinvestimenti);
|
||
|
||
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
#region PAC Terzi
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("nomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("codiceInterno", typeof(string)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("primoVersamento", typeof(decimal)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("rata", typeof(decimal)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("frequenza", typeof(string)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("valoreNominale", typeof(decimal)));
|
||
ds.Tables["operazioniPACTerzi"].Columns.Add(new DataColumn("var", typeof(decimal)));
|
||
|
||
|
||
ds.Tables["operazioniPACTerziFooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniPACTerziFooter"].Columns.Add(new DataColumn("primoVersamento", typeof(decimal)));
|
||
ds.Tables["operazioniPACTerziFooter"].Columns.Add(new DataColumn("rata", typeof(string)));
|
||
ds.Tables["operazioniPACTerziFooter"].Columns.Add(new DataColumn("frequenza", typeof(string)));
|
||
ds.Tables["operazioniPACTerziFooter"].Columns.Add(new DataColumn("valoreNominale", typeof(string)));
|
||
ds.Tables["operazioniPACTerziFooter"].Columns.Add(new DataColumn("var", typeof(string)));
|
||
|
||
|
||
codTipoOperazione = new string[] { "NS" };
|
||
codInterno = new string[] { "01"};
|
||
string [] tipoProdotto = new string[] { "FI" };
|
||
string [] contestoWizard = new string[] { "PAC" };
|
||
var mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where !codInterno.Contains(p.prodotto.codInterno) && tipoProdotto.Contains(p.prodotto.tipoProdotto)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione) && contestoWizard.Contains(l.stDettaglioContratto.contestoWizard)
|
||
select l;
|
||
if (operazioni.Count() != 1)
|
||
continue;
|
||
|
||
listaopnormali.Remove(item.posizione);
|
||
|
||
var operazione = operazioni.LastOrDefault();
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
}
|
||
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniPACTerzi"].Rows.Add(
|
||
"$",descContratto, "", null, null, "",null, null
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniPACTerzi"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
posOper.operazione.primoVersamento,
|
||
posOper.operazione.importoRata,
|
||
decodeFrequenza(posOper.operazione.frequenza) + "<br>" + posOper.operazione.durata + " " + posOper.operazione.tipoDurata,
|
||
posOper.operazione.valoreNominalePiano,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
ds.Tables["operazioniPACTerziFooter"].Rows.Add(
|
||
"Totale",
|
||
ds.Tables["operazioniPACTerzi"].AsEnumerable().Where(x => x.Field<string>("ID") != "$").Sum(x => x.Field<decimal>("primoVersamento")),
|
||
"-",
|
||
"-",
|
||
"-",
|
||
"-"
|
||
);
|
||
|
||
|
||
#endregion
|
||
|
||
#region PAC Fonditalia
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("nomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("codiceInterno", typeof(string)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("primoVersamento", typeof(decimal)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("rata", typeof(decimal)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("frequenza", typeof(string)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("valoreNominale", typeof(decimal)));
|
||
ds.Tables["operazioniPACFonditalia"].Columns.Add(new DataColumn("var", typeof(decimal)));
|
||
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Columns.Add(new DataColumn("primoVersamento", typeof(decimal)));
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Columns.Add(new DataColumn("rata", typeof(string)));
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Columns.Add(new DataColumn("frequenza", typeof(string)));
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Columns.Add(new DataColumn("valoreNominale", typeof(string)));
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Columns.Add(new DataColumn("var", typeof(string)));
|
||
|
||
codTipoOperazione = new string[] { "NS" };
|
||
codInterno = new string[] { "01" };
|
||
tipoProdotto = new string[] { "FI" };
|
||
contestoWizard = new string[] { "PAC" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where codInterno.Contains(p.prodotto.codInterno) && tipoProdotto.Contains(p.prodotto.tipoProdotto)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione) && contestoWizard.Contains(l.stDettaglioContratto.contestoWizard)
|
||
select l;
|
||
if (operazioni.Count() != 1)
|
||
continue;
|
||
|
||
listaopnormali.Remove(item.posizione);
|
||
|
||
var operazione = operazioni.LastOrDefault();
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
}
|
||
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniPACFonditalia"].Rows.Add(
|
||
"$", descContratto, "",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.primoVersamento),
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.rataProgrammata),
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.valoreNominalePiano),
|
||
null
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniPACFonditalia"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
posOper.operazione.primoVersamento,
|
||
posOper.operazione.importoRata,
|
||
decodeFrequenza(posOper.operazione.stDettaglioContratto.frequenza),
|
||
posOper.operazione.valoreNominalePiano,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
ds.Tables["operazioniPACFonditaliaFooter"].Rows.Add(
|
||
"Totale",
|
||
ds.Tables["operazioniPACFonditalia"].AsEnumerable().Where(x => x.Field<string>("ID") != "$").Sum(x => x.Field<decimal>("primoVersamento")),
|
||
"-",
|
||
"-",
|
||
"-",
|
||
"-"
|
||
);
|
||
#endregion
|
||
|
||
#region Conversioni Programmate NS
|
||
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("ControvaloreSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("Rata", typeof(string)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("ControvalorePropost", typeof(decimal)));
|
||
ds.Tables["operazioniCPNS"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniCPNSFooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniCPNSFooter"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal)));
|
||
ds.Tables["operazioniCPNSFooter"].Columns.Add(new DataColumn("Rata", typeof(string)));
|
||
ds.Tables["operazioniCPNSFooter"].Columns.Add(new DataColumn("Conversione", typeof(string)));
|
||
ds.Tables["operazioniCPNSFooter"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniCPNSFooter"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
codTipoOperazione = new string[] { "NS" };
|
||
codInterno = new string[] { "XY", "FO" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where codInterno.Contains(p.prodotto.codInterno)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione) && (l.importoConversioneProgrammata != 0)
|
||
select l;
|
||
var operazione = operazioni.LastOrDefault();
|
||
if (operazione == null)
|
||
{
|
||
continue;
|
||
}
|
||
listaopnormali.Remove(item.posizione);
|
||
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
}
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniCPNS"].Rows.Add(
|
||
"$", descContratto, "",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.ctvSottoscrizione),
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro),
|
||
null
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniCPNS"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
posOper.operazione.ctvSottoscrizione,
|
||
posOper.operazione.importoRata,
|
||
posOper.operazione.durata + " Mesi",
|
||
posOper.operazione.importoConversioneProgrammata,
|
||
posOper.posizione.ctvPro,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
}
|
||
}
|
||
|
||
if (ds.Tables["operazioniCPNS"].Rows.Count > 0)
|
||
{
|
||
ds.Tables["operazioniCPNSFooter"].Rows.Add(
|
||
"Totale operazioni",
|
||
ds.Tables["operazioniCPNS"].AsEnumerable().Where(x => x.Field<string>("id") != "$").Sum(x => x.Field<decimal>("ControvaloreSottoscrizione")),
|
||
"-",
|
||
"-",
|
||
ds.Tables["operazioniCPNS"].AsEnumerable().Where(x => x.Field<string>("id") != "$").Sum(x => x.Field<decimal>("ControvalorePropost")),
|
||
"-"
|
||
);
|
||
}
|
||
#endregion
|
||
|
||
#region Conversioni Programmate CV
|
||
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("Rata", typeof(string)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(decimal)));
|
||
ds.Tables["operazioniCPCV"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniCPCVFooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniCPCVFooter"].Columns.Add(new DataColumn("ControvaloreAttuale", typeof(decimal)));
|
||
ds.Tables["operazioniCPCVFooter"].Columns.Add(new DataColumn("Rata", typeof(string)));
|
||
ds.Tables["operazioniCPCVFooter"].Columns.Add(new DataColumn("Conversione", typeof(string)));
|
||
ds.Tables["operazioniCPCVFooter"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniCPCVFooter"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
codTipoOperazione = new string[] { "CP" };
|
||
codInterno = new string[] { "XY", "FO" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where codInterno.Contains(p.prodotto.codInterno)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione)
|
||
select l;
|
||
var operazione = operazioni.LastOrDefault();
|
||
if (operazione == null)
|
||
{
|
||
continue;
|
||
}
|
||
listaopnormali.Remove(item.posizione);
|
||
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniCPCV"].Rows.Add(
|
||
"$", descContratto, "",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvAttuale),
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro),
|
||
null
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniCPCV"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
posOper.posizione.ctvAttuale,
|
||
posOper.operazione.importoRata,
|
||
posOper.operazione.durata + " Mesi",
|
||
posOper.operazione.investiSpecified ? posOper.operazione.investi : posOper.operazione.disinvesti * (-1),
|
||
posOper.posizione.ctvPro,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
if (ds.Tables["operazioniCPCV"].Rows.Count > 0)
|
||
{
|
||
ds.Tables["operazioniCPCVFooter"].Rows.Add(
|
||
"Totale operazioni",
|
||
ds.Tables["operazioniCPCV"].AsEnumerable().Where(x => x.Field<string>("id") != "$").Sum(x => x.Field<decimal>("ControvaloreAttuale")),
|
||
"-",
|
||
"-",
|
||
ds.Tables["operazioniCPCV"].AsEnumerable().Where(x => x.Field<string>("id") != "$").Sum(x => x.Field<decimal>("ControvaloreProposto")),
|
||
"-"
|
||
);
|
||
}
|
||
|
||
}
|
||
|
||
//è necessario aggiungere alla mappa dei contratti anche quelli dei fondi con attivazione della conversione programmata
|
||
|
||
codTipoOperazione = new string[] { "CV" };
|
||
tipoProdotto = new string[] { "FI" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where tipoProdotto.Contains(p.prodotto.tipoProdotto)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione) && (l.frequenza != null)
|
||
select l;
|
||
var operazione = operazioni.LastOrDefault();
|
||
if (operazione == null)
|
||
{
|
||
continue;
|
||
}
|
||
listaopnormali.Remove(item.posizione);
|
||
|
||
string key = item.posizione.codContratto + " - " + item.posizione.prodotto.nomeContratto;
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
|
||
|
||
}
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniCPCV"].Rows.Add(
|
||
"$", descContratto, "",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvAttuale),
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro),
|
||
null
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniCPCV"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodotto,
|
||
posOper.posizione.ctvAttuale,
|
||
posOper.operazione.importoRata,
|
||
decodeFrequenza(posOper.operazione.frequenza),
|
||
posOper.operazione.investiSpecified ? posOper.operazione.investi : posOper.operazione.disinvesti*(-1),
|
||
posOper.posizione.ctvPro,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region CP OLD
|
||
//ds.Tables["tipoOperazioni"].Columns.Add(new DataColumn("Tipologia", typeof(string)));
|
||
|
||
//ds.Tables["operazioniLabelCP"].Columns.Add(new DataColumn("Tipologia", typeof(string)));
|
||
//ds.Tables["operazioniLabelCP"].Columns.Add(new DataColumn("Importo", typeof(decimal)));
|
||
//ds.Tables["operazioniLabelCP"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("codiceInterno", typeof(string)));
|
||
////ds.Tables["operazioniCP"].Columns.Add(new DataColumn("StatoCP", typeof(string)));
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("ControvaloreSottoscrizione", typeof(decimal)));
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("Rata", typeof(decimal)));
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("ConversioneProgrammata", typeof(decimal)));
|
||
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(decimal)));
|
||
//ds.Tables["operazioniCP"].Columns.Add(new DataColumn("VaR", typeof(string)));
|
||
|
||
//ds.Tables["operazioniCPfooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
//ds.Tables["operazioniCPfooter"].Columns.Add(new DataColumn("ControvaloreSottoscrizione", typeof(decimal)));
|
||
//ds.Tables["operazioniCPfooter"].Columns.Add(new DataColumn("ConversioneProgrammata", typeof(decimal)));
|
||
//ds.Tables["operazioniCPfooter"].Columns.Add(new DataColumn("Rata", typeof(decimal)));
|
||
//ds.Tables["operazioniCPfooter"].Columns.Add(new DataColumn("ControvaloreProposto", typeof(decimal)));
|
||
//ds.Tables["operazioniCPfooter"].Columns.Add(new DataColumn("VaR", typeof(string)));
|
||
|
||
//codTipoOperazione = new string[] { "CP" };
|
||
//codInterno = new string[] { "XY", "FO" };
|
||
//foreach (var item in from p in posizioni
|
||
// join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
// where codInterno.Contains(p.prodotto.codInterno)
|
||
// orderby p.ctvPro descending
|
||
// select new { posizione = p, dettaglioOperazione = d })
|
||
//{
|
||
|
||
// var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
// where codTipoOperazione.Contains(l.codTipoOperazione) || (l.importoConversioneProgrammata != 0)
|
||
// select l;
|
||
// var operazione = operazioni.LastOrDefault();
|
||
// if (operazione == null)
|
||
// {
|
||
// continue;
|
||
// }
|
||
// Boolean isPS = false;
|
||
// var importoConversioneProgrammata = operazione.importoConversioneProgrammata;
|
||
// if (codTipoOperazione.Contains(operazione.codTipoOperazione))
|
||
// {
|
||
// ds.Tables["tipoOperazioni"].Rows.Add("PS");
|
||
// isPS = true;
|
||
// }
|
||
// if (item.posizione.isCPUscita)
|
||
// {//prendo solo la posizione in uscita CP
|
||
// string tipologiaCP = "totale";
|
||
// decimal importo = 0;
|
||
// if (codTipoOperazione.Contains(operazione.codTipoOperazione))//CP
|
||
// {
|
||
// if (operazione.ctv > 0)
|
||
// {
|
||
// tipologiaCP = "parziale";
|
||
// }
|
||
// importo = operazione.disinvesti;
|
||
// importoConversioneProgrammata = (-1) * importo;
|
||
// }
|
||
// else //è NS
|
||
// {
|
||
// if (operazione.investi != 0)
|
||
// {
|
||
// tipologiaCP = "parziale";
|
||
// }
|
||
// importo = (-1) * operazione.importoConversioneProgrammata;
|
||
// }
|
||
// ds.Tables["operazioniLabelCP"].Rows.Add(
|
||
// tipologiaCP,
|
||
// importo,
|
||
// operazione.durata + " Mesi"
|
||
// );
|
||
// }
|
||
// else
|
||
// {
|
||
// if (isPS)
|
||
// { //per PS l'importo sta su investi
|
||
// importoConversioneProgrammata = operazione.investi;
|
||
// }
|
||
// }
|
||
|
||
// var controvaloreattuale = item.posizione.ctvAttuale;
|
||
// var ctvSottoscrizione = operazione.ctvSottoscrizione;
|
||
// string statoCP = "";
|
||
// if (item.posizione.isCPEntrata)
|
||
// {
|
||
// statoCP = "cpInEntrata.png";
|
||
// }
|
||
// else if (item.posizione.isCPUscita)
|
||
// {
|
||
// statoCP = "cpInUscita.png";
|
||
// }
|
||
|
||
// ds.Tables["operazioniCP"].Rows.Add(
|
||
// item.posizione.prodotto.nomeProdotto,
|
||
// statoCP,
|
||
// isPS ? controvaloreattuale : ctvSottoscrizione,
|
||
// importoConversioneProgrammata,
|
||
// operazione.importoRata,
|
||
// item.posizione.ctvPro,
|
||
// item.posizione.prodotto.varProDec);
|
||
// // listaoperazioninormali.Remove(item.dettaglioOperazione);
|
||
//}
|
||
|
||
//ds.Tables["operazioniCPfooter"].Rows.Add(
|
||
// "Totale",
|
||
// ds.Tables["operazioniCP"].AsEnumerable().Sum(x => x.Field<decimal>("ControvaloreSottoscrizione")),
|
||
// ds.Tables["operazioniCP"].AsEnumerable().Sum(x => x.Field<decimal>("ConversioneProgrammata")),
|
||
// ds.Tables["operazioniCP"].AsEnumerable().Sum(x => x.Field<decimal>("Rata")),
|
||
// ds.Tables["operazioniCP"].AsEnumerable().Sum(x => x.Field<decimal>("ControvaloreProposto")),
|
||
// ""
|
||
// );
|
||
|
||
#endregion
|
||
|
||
string[] tipoContratto = { };
|
||
|
||
#region PPI NS
|
||
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("CtvSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniLabelPPINS"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("CtvSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniPPINS"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniPPINSFooter"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniPPINSFooter"].Columns.Add(new DataColumn("CtvSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniPPINSFooter"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniPPINSFooter"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniPPINSFooter"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniPPINSFooter"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
|
||
codInterno = new string[] { "KE", "KS" };
|
||
codTipoOperazione = new string[] { "NS"};
|
||
tipoContratto = new string[] { "PPI" };
|
||
ctvSottoprodotto = 0;
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where codInterno.Contains(p.prodotto.codInterno)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione) && l.stDettaglioContratto!=null && l.stDettaglioContratto.stDettaglioLinea[0]!=null && l.stDettaglioContratto.stDettaglioLinea[0].durataPPI != null
|
||
select l;
|
||
|
||
if (operazioni.Count() != 1)
|
||
continue;
|
||
|
||
var operazione = operazioni.LastOrDefault();
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
listaopnormali.Remove(item.posizione);
|
||
}
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
string codProd = mapPosizioneOperazioni[descContratto][0].posizione.prodotto.codInterno;
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
DataServices.fideuram.data.service.rsSTPosizione pos = new DataServices.fideuram.data.service.rsSTPosizione();
|
||
DataServices.fideuram.data.service.rsSTProdotto prod = new DataServices.fideuram.data.service.rsSTProdotto();
|
||
prod.nomeProdotto = codProd == "KE" ? "In Pers - Linea liquidità" : "In PPers - Linea liquidità";
|
||
prod.codSottoprodotto = "LIQUI";
|
||
prod.codSottoprodottoFE = "-";
|
||
pos.prodotto = new DataServices.fideuram.data.service.rsSTProdotto();
|
||
pos.prodotto = prod;
|
||
DataServices.fideuram.data.service.stDettaglioOperazioneBean oper = new DataServices.fideuram.data.service.stDettaglioOperazioneBean();
|
||
oper.ctvSottoscrizione = mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro);
|
||
pos.ctvPro = 0;
|
||
oper.stDettaglioContratto = new DataServices.fideuram.data.service.stDettaglioContrattoBean();
|
||
var listaLinea = new DataServices.fideuram.data.service.stDettaglioLineaBean[0].ToList();
|
||
DataServices.fideuram.data.service.stDettaglioLineaBean linea = new DataServices.fideuram.data.service.stDettaglioLineaBean();
|
||
linea.frequenzaPPI = mapPosizioneOperazioni[descContratto][0].operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPPI;
|
||
linea.durataPPI = mapPosizioneOperazioni[descContratto][0].operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI;
|
||
listaLinea.Add(linea);
|
||
oper.stDettaglioContratto.stDettaglioLinea = listaLinea.ToArray();
|
||
obj.posizione = pos;
|
||
obj.operazione = oper;
|
||
|
||
mapPosizioneOperazioni[descContratto].Add(obj);
|
||
listaLiquiditaKEKSPV.Add(obj);
|
||
}
|
||
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ctvSottoprodotto = mapPosizioneOperazioni[descContratto].AsEnumerable().Where(x => x.posizione.prodotto.codSottoprodotto == "LIQUI").Sum(x => x.operazione.ctvSottoscrizione);
|
||
ds.Tables["operazioniPPINS"].Rows.Add(
|
||
"$", descContratto, "-",
|
||
ctvSottoprodotto,
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro) - ctvSottoprodotto,
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro),
|
||
"-"
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniPPINS"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
//da verificare se funziona sulla operazioni che non abbiamo forzato
|
||
//posOper.operazione.ctvSottoscrizione,
|
||
"LIQUI" == (posOper.posizione.prodotto.codSottoprodotto) ? posOper.operazione.ctvSottoscrizione.ToString(): "0",
|
||
"W" == (posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPPI) ? "Settimanale" + "<br>" + decodeDurataPPI(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI).ToUpper() : "Mensile" + "<br>" + decodeDurataPPI(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI).ToUpper(),
|
||
decodeDurataPPI(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI),
|
||
//posOper.posizione.ctvPro - posOper.operazione.ctvSottoscrizione,
|
||
"LIQUI"==(posOper.posizione.prodotto.codSottoprodotto) ? (0 - posOper.operazione.ctvSottoscrizione) : posOper.posizione.ctvPro,
|
||
posOper.posizione.ctvPro,
|
||
posOper.operazione.rischioMercato
|
||
) ;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
ds.Tables["operazioniPPINSFooter"].Rows.Add(
|
||
"Totale operazioni",
|
||
ds.Tables["operazioniPPINS"].AsEnumerable().Where(x => x.Field<string>("ID") != "$").Sum(x => x.Field<decimal>("CtvSottoscrizione")),
|
||
"-",
|
||
ds.Tables["operazioniPPINS"].AsEnumerable().Where(x => x.Field<string>("ID") != "$").Sum(x => x.Field<decimal>("Conversione")),
|
||
ds.Tables["operazioniPPINS"].AsEnumerable().Where(x => x.Field<string>("ID") != "$").Sum(x => x.Field<decimal>("CtvProposto")),
|
||
"-"
|
||
);
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
#region PPI PV
|
||
// var ke = posizioni.Where(p => p.prodotto.codInterno.Equals("KE") && (p.tipoOperazione.Equals("NS") || p.tipoOperazione.Equals("CV"))).ToList();
|
||
//operazioniLabelKE
|
||
//operazioniKE
|
||
//operazioniKEfooter
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("CtvSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniLabelPPIPV"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("CtvSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniPPIPV"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("CtvSottoscrizione", typeof(decimal)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("Durata", typeof(string)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("Conversione", typeof(decimal)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("CtvProposto", typeof(decimal)));
|
||
ds.Tables["operazioniPPIPVFooter"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
|
||
codInterno = new string[] { "KE", "KS" };
|
||
codTipoOperazione = new string[] { "NS" };
|
||
tipoContratto = new string[] { "PPI" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where codInterno.Contains(p.prodotto.codInterno)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where !codTipoOperazione.Contains(l.codTipoOperazione) && l.stDettaglioContratto != null && l.stDettaglioContratto.stDettaglioLinea[0] != null && l.stDettaglioContratto.stDettaglioLinea[0].durataPPI != null
|
||
select l;
|
||
|
||
if (operazioni.Count() != 1)
|
||
continue;
|
||
|
||
var operazione = operazioni.LastOrDefault();
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
// non è necessario rimuovere le operazioni dalla lista delle operazioni normali perchè da specifiche paragrafo 5.4.2.1 Logiche Programma periodico di investimento
|
||
//è necessario forzare due operazioni, una che rappresenti l'apertura del PPI e verrà mostrata in questa tabella, e una conversione fittizia che
|
||
//invece è rappresentata nella tabella delle operazioni normali. è infatti necessario gestire l'operazione fittizia sulla liquidità
|
||
//listaopnormali.Remove(item.posizione);
|
||
}
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
string codProd = mapPosizioneOperazioni[descContratto][0].posizione.prodotto.codInterno;
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
DataServices.fideuram.data.service.rsSTPosizione pos = new DataServices.fideuram.data.service.rsSTPosizione();
|
||
DataServices.fideuram.data.service.rsSTProdotto prod = new DataServices.fideuram.data.service.rsSTProdotto();
|
||
prod.nomeProdotto = codProd == "KE" ? "In Pers - Linea liquidità" : "In PPers - Linea liquidità";
|
||
prod.codSottoprodotto = "LIQUI";
|
||
prod.codSottoprodottoFE = "-";
|
||
pos.prodotto = new DataServices.fideuram.data.service.rsSTProdotto();
|
||
DataServices.fideuram.data.service.stDettaglioOperazioneBean oper = new DataServices.fideuram.data.service.stDettaglioOperazioneBean();
|
||
oper.ctvSottoscrizione = mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro);
|
||
pos.ctvPro = 0;
|
||
oper.stDettaglioContratto = new DataServices.fideuram.data.service.stDettaglioContrattoBean();
|
||
oper.stDettaglioContratto.stDettaglioLinea = new DataServices.fideuram.data.service.stDettaglioLineaBean[0];
|
||
var listaLinea = new DataServices.fideuram.data.service.stDettaglioLineaBean[0].ToList();
|
||
DataServices.fideuram.data.service.stDettaglioLineaBean linea = new DataServices.fideuram.data.service.stDettaglioLineaBean();
|
||
linea.frequenzaPPI = mapPosizioneOperazioni[descContratto][0].operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPPI;
|
||
linea.durataPPI = mapPosizioneOperazioni[descContratto][0].operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI;
|
||
listaLinea.Add(linea);
|
||
oper.stDettaglioContratto.stDettaglioLinea = listaLinea.ToArray();
|
||
obj.posizione = pos;
|
||
obj.operazione = oper;
|
||
mapPosizioneOperazioni[descContratto].Add(obj);
|
||
|
||
}
|
||
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniPPIPV"].Rows.Add(
|
||
"$", descContratto, "-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.ctvSottoscrizione),
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro - x.operazione.ctvSottoscrizione),
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.posizione.ctvPro),
|
||
"-"
|
||
);
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
ds.Tables["operazioniPPIPV"].Rows.Add(
|
||
"-",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
//da verificare se funziona sulla operazioni che non abbiamo forzato
|
||
posOper.operazione.ctvSottoscrizione,
|
||
"W" == (posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPPI) ? "Settimanale" + "<br>" + decodeDurataPPI(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI).ToUpper() : "Mensile" + "<br>" + decodeDurataPPI(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI).ToUpper(),
|
||
decodeDurataPPI(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPPI),
|
||
posOper.posizione.ctvPro - posOper.operazione.ctvSottoscrizione,
|
||
posOper.posizione.ctvPro,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region FVI Premio periodico
|
||
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("PremioUnicoAggiuntivo", typeof(decimal)));
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("NumeroAnnualita", typeof(string)));
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("PianoVersamenti", typeof(decimal)));
|
||
ds.Tables["operazioniLabelFVI"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("id", typeof(string)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("CodiceInterno", typeof(string)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("PremioUnicoAggiuntivo", typeof(decimal)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("NumeroAnnualita", typeof(string)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("PianoVersamenti", typeof(decimal)));
|
||
ds.Tables["operazioniFVI"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniFVIfooter"].Columns.Add(new DataColumn("NomeProdotto", typeof(string)));
|
||
ds.Tables["operazioniFVIfooter"].Columns.Add(new DataColumn("PremioUnicoAggiuntivo", typeof(decimal)));
|
||
ds.Tables["operazioniFVIfooter"].Columns.Add(new DataColumn("Frequenza", typeof(string)));
|
||
ds.Tables["operazioniFVIfooter"].Columns.Add(new DataColumn("NumeroAnnualita", typeof(string)));
|
||
ds.Tables["operazioniFVIfooter"].Columns.Add(new DataColumn("PianoVersamenti", typeof(decimal)));
|
||
ds.Tables["operazioniFVIfooter"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
|
||
tipoContratto = new string[] { "PPR" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where tipoContratto.Contains(l.stDettaglioContratto.tipoContratto)
|
||
select l;
|
||
|
||
if (operazioni.Count() != 1)
|
||
continue;
|
||
|
||
var operazione = operazioni.FirstOrDefault();
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
|
||
listaopnormali.Remove(item.posizione);
|
||
}
|
||
|
||
|
||
|
||
|
||
decimal impAggiuntivo;
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
impAggiuntivo = mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.stDettaglioContratto.impAggiuntivo);
|
||
if(impAggiuntivo>0)
|
||
{
|
||
ds.Tables["operazioniFVI"].Rows.Add(
|
||
"$", descContratto, "",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.stDettaglioContratto.impAggiuntivo * x.operazione.percOperazione / 100),
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => (x.operazione.stDettaglioContratto.impAggiuntivo * x.operazione.percOperazione / 100) + x.operazione.rataProgrammata* x.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPpv * x.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPpv),
|
||
null
|
||
);
|
||
}
|
||
else{
|
||
ds.Tables["operazioniFVI"].Rows.Add(
|
||
"$", descContratto, "",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => x.operazione.stDettaglioContratto.stDettaglioLinea[0].impAggiuntivo * x.operazione.percOperazione / 100),
|
||
"-",
|
||
"-",
|
||
mapPosizioneOperazioni[descContratto].Sum(x => (x.operazione.stDettaglioContratto.stDettaglioLinea[0].impAggiuntivo * x.operazione.percOperazione / 100) + x.operazione.rataProgrammata * x.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPpv * x.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPpv),
|
||
null
|
||
);
|
||
}
|
||
|
||
|
||
|
||
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
var rata = Helper.FormatCurrency(posOper.operazione.rataProgrammata + "");
|
||
impAggiuntivo = posOper.operazione.stDettaglioContratto.impAggiuntivo > 0 ? posOper.operazione.stDettaglioContratto.impAggiuntivo : posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].impAggiuntivo;
|
||
ds.Tables["operazioniFVI"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
posOper.posizione.prodotto.codSottoprodottoFE,
|
||
//posOper.operazione.stDettaglioContratto.impAggiuntivo * posOper.operazione.percOperazione / 100,
|
||
impAggiuntivo * posOper.operazione.percOperazione / 100,
|
||
rata + "<br>"+ getFrequenza(posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPpv),
|
||
posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPpv,
|
||
//(posOper.operazione.stDettaglioContratto.impAggiuntivo * posOper.operazione.percOperazione / 100) + (posOper.operazione.rataProgrammata * posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPpv * posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPpv),
|
||
(impAggiuntivo * posOper.operazione.percOperazione / 100) + (posOper.operazione.rataProgrammata * posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].frequenzaPpv * posOper.operazione.stDettaglioContratto.stDettaglioLinea[0].durataPpv),
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
if (ds.Tables["operazioniFVI"].Rows.Count > 0)
|
||
{
|
||
ds.Tables["operazioniFVIFooter"].Rows.Add(
|
||
"Totale operazioni",
|
||
ds.Tables["operazioniFVI"].AsEnumerable().Where(x => x.Field<string>("id") != "$").Sum(x => x.Field<decimal>("PremioUnicoAggiuntivo")),
|
||
"-",
|
||
"-",
|
||
ds.Tables["operazioniFVI"].AsEnumerable().Where(x => x.Field<string>("id") != "$").Sum(x => x.Field<decimal>("PianoVersamenti")),
|
||
"-"
|
||
);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
#endregion
|
||
|
||
#region Fondo pensione
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("SavingMap", typeof(string)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("ContributiversatiAdesione", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("ContrAderenteDatorePerc", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("ContrAderenteDatore", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("TFR", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("Altraformapensione", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensione"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("ContributiversatiAdesione", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("ContrAderenteDatorePerc", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("ContrAderenteDatore", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("TFR", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("Altraformapensione", typeof(decimal)));
|
||
ds.Tables["operazioniFondoPensionefooter"].Columns.Add(new DataColumn("Var", typeof(string)));
|
||
|
||
|
||
codInterno = new string[] { "90" };
|
||
codTipoOperazione = new string[] { "NS" };
|
||
mapPosizioneOperazioni = new Dictionary<string, List<posizioneOperazione>>();
|
||
var fondoPensione = new DataServices.fideuram.data.service.stFondoPensioneBean();
|
||
|
||
foreach (var item in from p in posizioni
|
||
join d in dettaglioOperazioni on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }
|
||
where codInterno.Contains(p.prodotto.codInterno)
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
|
||
var operazioni = from l in item.dettaglioOperazione.listaOperzioni
|
||
where codTipoOperazione.Contains(l.codTipoOperazione)
|
||
select l;
|
||
|
||
if (operazioni.Count() != 1)
|
||
continue;
|
||
|
||
var operazione = operazioni.LastOrDefault();
|
||
|
||
fondoPensione = operazione.stDettaglioContratto.stFondoPensione;
|
||
if (fondoPensione != null)
|
||
{
|
||
|
||
string key = item.posizione.prodotto.nomeContratto + " - " + item.posizione.codContratto;
|
||
if (!mapPosizioneOperazioni.ContainsKey(key))
|
||
{
|
||
mapPosizioneOperazioni[key] = new List<posizioneOperazione>();
|
||
}
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazione;
|
||
|
||
mapPosizioneOperazioni[key].Add(obj);
|
||
|
||
listaopnormali.Remove(item.posizione);
|
||
}
|
||
}
|
||
|
||
|
||
foreach (var descContratto in mapPosizioneOperazioni.Keys)
|
||
{
|
||
ds.Tables["operazioniFondoPensione"].Rows.Add("$", descContratto, null, null, null, null, null, "");
|
||
foreach (var posOper in mapPosizioneOperazioni[descContratto])
|
||
{
|
||
fondoPensione = posOper.operazione.stDettaglioContratto.stFondoPensione;
|
||
|
||
var percAderenteDatore = posOper.operazione.percAderenteDatore;
|
||
var contributoAderenteDatore = (fondoPensione.caImportoAdesione + fondoPensione.caImportoAggiuntivoAdesione) * percAderenteDatore / 100;
|
||
var contributoAdesione = (fondoPensione.caImportoAnnuo + fondoPensione.cdImportoAnnuo) * percAderenteDatore / 100;
|
||
ds.Tables["operazioniFondoPensione"].Rows.Add(
|
||
"",
|
||
posOper.posizione.prodotto.nomeProdotto,
|
||
contributoAderenteDatore,
|
||
percAderenteDatore,
|
||
contributoAdesione,
|
||
posOper.operazione.percTFR,
|
||
posOper.operazione.percAltraFormaPensionistica,
|
||
posOper.operazione.rischioMercato
|
||
);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
if (ds.Tables["operazioniFondoPensione"].Rows.Count > 0)
|
||
{
|
||
ds.Tables["operazioniFondoPensioneFooter"].Rows.Add(
|
||
"Totale",
|
||
ds.Tables["operazioniFondoPensione"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("ContributiversatiAdesione")),
|
||
ds.Tables["operazioniFondoPensione"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("ContrAderenteDatorePerc")),
|
||
ds.Tables["operazioniFondoPensione"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("ContrAderenteDatore")),
|
||
ds.Tables["operazioniFondoPensione"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("TFR")),
|
||
ds.Tables["operazioniFondoPensione"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("Altraformapensione")),
|
||
"-"
|
||
);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region operazioni
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("SavingMap", typeof(string)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("codContratto", typeof(string)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("codInterno", typeof(string)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("Controvaloreattuale", typeof(decimal)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("ApportiDisinvest", typeof(decimal)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
|
||
ds.Tables["operazioni"].Columns.Add(new DataColumn("VaR", typeof(string)));
|
||
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("SavingMap", typeof(string)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("codContratto", typeof(string)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("codInterno", typeof(string)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("Controvaloreattuale", typeof(decimal)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("ApportiDisinvest", typeof(decimal)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("VaR", typeof(string)));
|
||
ds.Tables["DToperazioni"].Columns.Add(new DataColumn("ordinamento", typeof(int)));
|
||
|
||
ds.Tables["operazionifooter"].Columns.Add(new DataColumn("Prodotto", typeof(string)));
|
||
ds.Tables["operazionifooter"].Columns.Add(new DataColumn("Controvaloreattuale", typeof(decimal)));
|
||
ds.Tables["operazionifooter"].Columns.Add(new DataColumn("ApportiDisinvest", typeof(decimal)));
|
||
ds.Tables["operazionifooter"].Columns.Add(new DataColumn("Controvaloreproposto", typeof(decimal)));
|
||
ds.Tables["operazionifooter"].Columns.Add(new DataColumn("VaR", typeof(string)));
|
||
|
||
codInterno = new string[] { "RS", "RM", "KS", "KE", "90" };
|
||
codTipoOperazione = new string[] { "NS", "TR" };
|
||
tipoContratto = new string[] { "PPR", "PPI" };
|
||
var map = new Dictionary<string, itemObject>();
|
||
string stDurataPPI = "";
|
||
|
||
foreach (var item in from p in listaopnormali
|
||
join d in dettaglioOperazioni.ToList() on new { p.chiaveAggregazione, p.posizionePro } equals new { d.chiaveAggregazione, d.posizionePro }// on p.chiaveAggregazione equals d.chiaveAggregazione && d.posizionePro == p.
|
||
orderby p.ctvPro descending
|
||
select new { posizione = p, dettaglioOperazione = d })
|
||
{
|
||
|
||
var operazioni = item.dettaglioOperazione.listaOperzioni.FirstOrDefault();// && !(codTipoOperazione.Contains(item.posizione.tipoOperazione) && tipoContratto.Contains(l.stDettaglioContratto.tipoContratto)));
|
||
|
||
if (operazioni != null)
|
||
{
|
||
stDurataPPI = "";
|
||
if (operazioni.stDettaglioContratto.stDettaglioLinea != null)
|
||
{
|
||
stDurataPPI = operazioni.stDettaglioContratto.stDettaglioLinea[0].durataPPI == null ? "" : operazioni.stDettaglioContratto.stDettaglioLinea[0].durataPPI;
|
||
}
|
||
|
||
// identifico se è stato aperto un Piani periodici Conversione Skandia
|
||
if (operazioni.stDettaglioContratto != null && operazioni.stDettaglioContratto.stDettaglioLinea != null && stDurataPPI != "" && operazioni.codTipoOperazione == "RL")
|
||
{
|
||
if (!map.ContainsKey("Disinvestimenti"))
|
||
{
|
||
map.Add("Disinvestimenti", new itemObject { ctvAttuale = new decimal(0), ctvProposto = new decimal(0), movimenti = new decimal(0), posizioni = new List<posizioneOperazione>(), codOrdinamento = 3});
|
||
}
|
||
map["Disinvestimenti"].ctvAttuale = map["Disinvestimenti"].ctvAttuale + item.posizione.ctvAttuale;
|
||
map["Disinvestimenti"].ctvProposto = map["Disinvestimenti"].ctvProposto + 0;
|
||
map["Disinvestimenti"].movimenti = map["Disinvestimenti"].movimenti + (-1) * item.posizione.ctvAttuale; ;
|
||
map["Disinvestimenti"].codOrdinamento = 3;
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazioni;
|
||
obj.posizione.disinvesti = (-1) * obj.posizione.ctvAttuale;
|
||
obj.posizione.ctvPro = 0;
|
||
map["Disinvestimenti"].posizioni.Add(obj);
|
||
}
|
||
else
|
||
{
|
||
|
||
if (operazioni.codTipoOperazione.Equals("NS"))
|
||
{
|
||
if (!map.ContainsKey("Nuove sottoscrizioni"))
|
||
{
|
||
map.Add("Nuove sottoscrizioni", new itemObject { ctvAttuale = new decimal(0), ctvProposto = new decimal(0), movimenti = new decimal(0), posizioni = new List<posizioneOperazione>(), codOrdinamento = 1 });
|
||
}
|
||
|
||
map["Nuove sottoscrizioni"].ctvAttuale = map["Nuove sottoscrizioni"].ctvAttuale + item.posizione.ctvAttuale;
|
||
map["Nuove sottoscrizioni"].ctvProposto = map["Nuove sottoscrizioni"].ctvProposto + item.posizione.ctvPro;
|
||
map["Nuove sottoscrizioni"].movimenti = map["Nuove sottoscrizioni"].movimenti + item.posizione.investi - item.posizione.disinvesti; ;
|
||
map["Nuove sottoscrizioni"].codOrdinamento = 1;
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazioni;
|
||
map["Nuove sottoscrizioni"].posizioni.Add(obj);
|
||
|
||
}
|
||
else if (operazioni.investi > 0)
|
||
{
|
||
if (!map.ContainsKey("Investimenti aggiuntivi"))
|
||
{
|
||
map.Add("Investimenti aggiuntivi", new itemObject { ctvAttuale = new decimal(0), ctvProposto = new decimal(0), movimenti = new decimal(0), posizioni = new List<posizioneOperazione>(), codOrdinamento = 2 });
|
||
}
|
||
map["Investimenti aggiuntivi"].ctvAttuale = map["Investimenti aggiuntivi"].ctvAttuale + item.posizione.ctvAttuale;
|
||
map["Investimenti aggiuntivi"].ctvProposto = map["Investimenti aggiuntivi"].ctvProposto + item.posizione.ctvPro;
|
||
map["Investimenti aggiuntivi"].movimenti = map["Investimenti aggiuntivi"].movimenti + item.posizione.investi - item.posizione.disinvesti; ;
|
||
map["Investimenti aggiuntivi"].codOrdinamento = 2;
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazioni;
|
||
map["Investimenti aggiuntivi"].posizioni.Add(obj);
|
||
}
|
||
else
|
||
{
|
||
if (!map.ContainsKey("Disinvestimenti"))
|
||
{
|
||
map.Add("Disinvestimenti", new itemObject { ctvAttuale = new decimal(0), ctvProposto = new decimal(0), movimenti = new decimal(0), posizioni = new List<posizioneOperazione>(), codOrdinamento = 3 });
|
||
}
|
||
map["Disinvestimenti"].ctvAttuale = map["Disinvestimenti"].ctvAttuale + item.posizione.ctvAttuale;
|
||
map["Disinvestimenti"].ctvProposto = map["Disinvestimenti"].ctvProposto + item.posizione.ctvPro;
|
||
map["Disinvestimenti"].movimenti = map["Disinvestimenti"].movimenti + item.posizione.investi - item.posizione.disinvesti; ;
|
||
map["Disinvestimenti"].codOrdinamento = 3;
|
||
posizioneOperazione obj = new posizioneOperazione();
|
||
obj.posizione = item.posizione;
|
||
obj.operazione = operazioni;
|
||
map["Disinvestimenti"].posizioni.Add(obj);
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
foreach(var liquidita in listaLiquiditaKEKSPV)
|
||
{
|
||
|
||
if (!map.ContainsKey("Investimenti aggiuntivi"))
|
||
{
|
||
map.Add("Investimenti aggiuntivi", new itemObject { ctvAttuale = new decimal(0), ctvProposto = new decimal(0), movimenti = new decimal(0), posizioni = new List<posizioneOperazione>(), codOrdinamento = 2 });
|
||
}
|
||
map["Investimenti aggiuntivi"].ctvAttuale = map["Investimenti aggiuntivi"].ctvAttuale + liquidita.posizione.ctvAttuale;
|
||
map["Investimenti aggiuntivi"].ctvProposto = map["Investimenti aggiuntivi"].ctvProposto + liquidita.posizione.ctvPro;
|
||
map["Investimenti aggiuntivi"].movimenti = map["Investimenti aggiuntivi"].movimenti + liquidita.posizione.investi ; ;
|
||
map["Investimenti aggiuntivi"].codOrdinamento = 2;
|
||
map["Investimenti aggiuntivi"].posizioni.Add(liquidita);
|
||
}
|
||
|
||
|
||
string sCategoria = "";
|
||
foreach (var key in map.Keys)
|
||
{
|
||
switch (key.ToLower())
|
||
{
|
||
case "nuove sottoscrizioni":
|
||
sCategoria = "(A) ";
|
||
break;
|
||
case "investimenti aggiuntivi":
|
||
sCategoria = "(B) ";
|
||
break;
|
||
case "disinvestimenti":
|
||
sCategoria = "(C) ";
|
||
break;
|
||
}
|
||
|
||
ds.Tables["DToperazioni"].Rows.Add(
|
||
"$",
|
||
"<font color=#FF0000>" + sCategoria + "</font>" + key,
|
||
"",
|
||
"",
|
||
map[key].ctvAttuale,
|
||
map[key].movimenti,
|
||
map[key].ctvProposto,
|
||
"-",
|
||
map[key].codOrdinamento
|
||
);
|
||
|
||
|
||
|
||
foreach (var posOper in map[key].posizioni)
|
||
{
|
||
var posizione = posOper.posizione;
|
||
var operazione = posOper.operazione;
|
||
string sSaving = "";
|
||
if (posizione.savingMap)
|
||
sSaving = "SavingMap.png";
|
||
|
||
ds.Tables["DToperazioni"].Rows.Add(
|
||
sSaving,
|
||
posizione.codContratto,
|
||
posizione.prodotto.nomeProdotto,
|
||
posizione.prodotto.codSottoprodottoFE,
|
||
posizione.ctvAttuale,
|
||
posizione.investi - posizione.disinvesti,
|
||
posizione.ctvPro,
|
||
posizione.prodotto.varProDec,
|
||
map[key].codOrdinamento);
|
||
}
|
||
|
||
}
|
||
|
||
foreach (DataRow dr in from contact in ds.Tables["DToperazioni"].AsEnumerable()
|
||
orderby contact.Field<int>("ordinamento") ascending
|
||
select contact)
|
||
{
|
||
|
||
ds.Tables["operazioni"].Rows.Add(
|
||
dr["SavingMap"].ToString(),
|
||
dr["codContratto"].ToString(),
|
||
dr["Prodotto"].ToString(),
|
||
dr["codInterno"].ToString(),
|
||
dr["Controvaloreattuale"].ToString(),
|
||
dr["ApportiDisinvest"].ToString(),
|
||
dr["Controvaloreproposto"].ToString(),
|
||
dr["VaR"].ToString());
|
||
|
||
}
|
||
|
||
|
||
ds.Tables["operazionifooter"].Rows.Add(
|
||
"Totale",
|
||
ds.Tables["operazioni"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("Controvaloreattuale")),
|
||
ds.Tables["operazioni"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("ApportiDisinvest")),
|
||
ds.Tables["operazioni"].AsEnumerable().Where(x => x.Field<string>("SavingMap") != "$").Sum(x => x.Field<decimal>("Controvaloreproposto")),
|
||
//"",
|
||
""
|
||
);
|
||
#endregion
|
||
|
||
return ds;
|
||
}
|
||
|
||
public virtual string getTesto1()
|
||
{
|
||
bool isAdeguato = datiSeiUnico.flagAdeguatezzaPro();
|
||
string nota = isAdeguato ?
|
||
"In questa scheda è riportato il riepilogo delle operazioni effettuate all'interno della presente proposta." :
|
||
"In questa scheda è riportato il riepilogo delle operazioni da lei richieste al suo private banker.";
|
||
return nota;
|
||
|
||
}
|
||
|
||
private string decodeDurataPPI(string durataPPI)
|
||
{
|
||
string durata = "-";
|
||
switch (durataPPI)
|
||
{
|
||
case "M1":
|
||
durata = "1 Mese";
|
||
break;
|
||
case "M6":
|
||
durata = "6 Mesi";
|
||
break;
|
||
case "M12":
|
||
durata = "12 Mesi";
|
||
break;
|
||
case "M24":
|
||
durata = "24 Mesi";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
return durata;
|
||
}
|
||
private string decodeFrequenza(string freq)
|
||
{
|
||
string dec = "-";
|
||
if (freq != null) {
|
||
switch (freq) {
|
||
case "M":
|
||
dec = "Mensile";
|
||
break;
|
||
case "B":
|
||
dec = "Bimestrale";
|
||
break;
|
||
case "T":
|
||
dec = "Trimestrale";
|
||
break;
|
||
case "Q":
|
||
dec = "Quadrimestrale";
|
||
break;
|
||
case "S":
|
||
dec = "Semestrale";
|
||
break;
|
||
case "A":
|
||
dec = "Annuale";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
return dec;
|
||
}
|
||
|
||
//private string decodeDurata(string freq, decimal durata)
|
||
//{
|
||
// string dec = "-";
|
||
// if (freq != null)
|
||
// {
|
||
// switch (freq)
|
||
// {
|
||
// case "M":
|
||
|
||
// dec = durata > 1 ? "RATE":"RATA";
|
||
// break;
|
||
// case "B":
|
||
// dec = "Bimestrale";
|
||
// break;
|
||
// case "T":
|
||
// dec = "Trimestrale";
|
||
// break;
|
||
// case "Q":
|
||
// dec = "Quadrimestrale";
|
||
// break;
|
||
// case "S":
|
||
// dec = "Semestrale";
|
||
// break;
|
||
// case "A":
|
||
// dec = "Annuale";
|
||
// break;
|
||
// default:
|
||
// break;
|
||
// }
|
||
// }
|
||
// return dec;
|
||
//}
|
||
|
||
|
||
private partial class posizioneOperazione
|
||
{
|
||
private DataServices.fideuram.data.service.rsSTPosizione posizioneField;
|
||
private DataServices.fideuram.data.service.stDettaglioOperazioneBean operazioneField;
|
||
|
||
public DataServices.fideuram.data.service.rsSTPosizione posizione
|
||
{
|
||
get
|
||
{
|
||
return this.posizioneField;
|
||
}
|
||
set
|
||
{
|
||
this.posizioneField = value;
|
||
}
|
||
}
|
||
|
||
public DataServices.fideuram.data.service.stDettaglioOperazioneBean operazione
|
||
{
|
||
get
|
||
{
|
||
return this.operazioneField;
|
||
}
|
||
set
|
||
{
|
||
this.operazioneField = value;
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
private partial class itemObject
|
||
{
|
||
private decimal ctvAttualeField;
|
||
private decimal ctvPropostoField;
|
||
private decimal movimentiField;
|
||
private int codOrdinamentoField;
|
||
private List<posizioneOperazione> posizioniField;
|
||
|
||
public List<posizioneOperazione> posizioni
|
||
{
|
||
get
|
||
{
|
||
return this.posizioniField;
|
||
}
|
||
set
|
||
{
|
||
this.posizioniField = value;
|
||
}
|
||
}
|
||
public decimal ctvAttuale
|
||
{
|
||
get
|
||
{
|
||
return this.ctvAttualeField;
|
||
}
|
||
set
|
||
{
|
||
this.ctvAttualeField = value;
|
||
}
|
||
}
|
||
public decimal movimenti
|
||
{
|
||
get
|
||
{
|
||
return this.movimentiField;
|
||
}
|
||
set
|
||
{
|
||
this.movimentiField = value;
|
||
}
|
||
}
|
||
|
||
public decimal ctvProposto
|
||
{
|
||
get
|
||
{
|
||
return this.ctvPropostoField;
|
||
}
|
||
set
|
||
{
|
||
this.ctvPropostoField = value;
|
||
}
|
||
}
|
||
|
||
public int codOrdinamento
|
||
{
|
||
get
|
||
{
|
||
return this.codOrdinamentoField;
|
||
}
|
||
set
|
||
{
|
||
this.codOrdinamentoField = value;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
public virtual string getFrequenza(int frequenza)
|
||
{
|
||
string freq = "";
|
||
switch (frequenza)
|
||
{
|
||
case 1:
|
||
freq = "Annuale";
|
||
break;
|
||
case 2:
|
||
freq = "Semestrale";
|
||
break;
|
||
case 4:
|
||
freq = "Trimestrale";
|
||
break;
|
||
case 12:
|
||
freq = "Mensile";
|
||
break;
|
||
case 52:
|
||
freq = "Settimanale";
|
||
break;
|
||
}
|
||
return freq;
|
||
}
|
||
}
|
||
|
||
|
||
}
|