271 lines
12 KiB
C#
271 lines
12 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using ceTe.DynamicPDF;
|
||
using ceTe.DynamicPDF.Text;
|
||
using PDFGenerator.Presentation.Section.Tables;
|
||
using PDFGenerator.BusinessLayer.DataSection;
|
||
using PDFGenerator.BusinessLayer;
|
||
using ContrattoSei.Utilities;
|
||
using ceTe.DynamicPDF.PageElements;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
|
||
namespace PDFGenerator.Presentation.Section
|
||
{
|
||
public class S185 : ISezione
|
||
{
|
||
string Titolo = string.Empty;
|
||
string _testotitolo;
|
||
string _testointroduttivo;
|
||
string _testoAlternativo;
|
||
public int widthImporti = 75;
|
||
public int widthData = 50;
|
||
public int fontsize = 6;
|
||
public int headerFontSize = 5;
|
||
NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||
|
||
/// <summary>
|
||
/// Testo introduttivo della sezione.
|
||
/// </summary>
|
||
public string TestoIntroduttivo
|
||
{
|
||
get
|
||
{
|
||
return _testointroduttivo;
|
||
}
|
||
set
|
||
{
|
||
_testointroduttivo = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Testo del titolo della sezione.
|
||
/// </summary>
|
||
public string TestoTitolo
|
||
{
|
||
get
|
||
{
|
||
return _testotitolo;
|
||
}
|
||
set
|
||
{
|
||
_testotitolo = value;
|
||
}
|
||
}
|
||
|
||
public string TestoAlternativo
|
||
{
|
||
get { return _testoAlternativo; }
|
||
set { _testoAlternativo = value; }
|
||
}
|
||
|
||
public void setTitolo(string label)
|
||
{
|
||
Titolo = label;
|
||
}
|
||
|
||
public S185()
|
||
{
|
||
//
|
||
// TODO: Add constructor logic here
|
||
//
|
||
}
|
||
|
||
#region ISezione Members
|
||
public void writeSezione(DataThread dataThread)
|
||
{
|
||
DocumentPDF document = dataThread.DocumentPDF;
|
||
DataSetS185UlterioriCaratteristicheESG set = (DataSetS185UlterioriCaratteristicheESG)dataThread.Data.DatiSezione;
|
||
//DataSet set = (DataSet)dataThread.Data.DatiSezione;
|
||
DatiTabella datitab = new DatiTabella();
|
||
|
||
datitab.table = set.Tables["dtUlterioriCaratteristicheESG"];
|
||
|
||
//set.Tables["dtprodotti"].Columns.Add("Immagine");
|
||
//datitab.table = set.Tables["dtprodotti"];
|
||
|
||
#region Titolo Seconda tabella
|
||
// Titolo della sezione
|
||
|
||
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo, "S185");
|
||
|
||
document.setLastPos(2);
|
||
|
||
string tempTesto = dataThread.IsProffesionalClient ? dataThread.SezioneReport.TestoIntroduttivoAlternativo : dataThread.SezioneReport.TestoIntroduttivo;
|
||
|
||
document.setChapterHeader(tempTesto.Replace("$/Banca/$", dataThread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., tramite la rete di private banker Sanpaolo Invest,"), 0, 520, 8, "S177", dataThread.TipoReport);
|
||
|
||
//switch (dataThread.Rete)
|
||
//{
|
||
// case "F":
|
||
// {
|
||
// _testointroduttivo = _testointroduttivo.Replace("$/Banca/$", "Fideuram");
|
||
// break;
|
||
// }
|
||
// case "S":
|
||
// {
|
||
// _testointroduttivo = _testointroduttivo.Replace("$/Banca/$", "Fideuram S.p.A., commercializzati tramite la rete di private banker Sanpaolo Invest,");
|
||
// break;
|
||
// }
|
||
// case "W":
|
||
// {
|
||
// _testointroduttivo = _testointroduttivo.Replace("$/Banca/$", "IW Private Investments");
|
||
// break;
|
||
// }
|
||
//}
|
||
|
||
logger.Info("Titolo della sezione " + _testointroduttivo);
|
||
//document.setLastPos(-40);
|
||
document.setLastPos(-25);
|
||
//document.setChapterHeader(string.Concat(_testointroduttivo, "<br>"), 0, 520, 8);
|
||
#endregion
|
||
|
||
|
||
#region Tabella
|
||
|
||
/***** Disegno la tabella con oggetti della solution trimestrale *************/
|
||
int widthTotaleAltre = calculateWidth();
|
||
int widthNomeProdotto = 600 - widthTotaleAltre + 14; //15
|
||
|
||
Tabella tabellaDati = new Tabella(document.getMargineLeft(), document.getLastPos(), 2, 0, 0.02F);
|
||
tabellaDati.Header = true;
|
||
tabellaDati.HeaderFont = 8;
|
||
tabellaDati.Datasource = datitab.table;
|
||
tabellaDati.AltezzaCella = 30; //15;
|
||
tabellaDati.LineaFineTabella = false;
|
||
tabellaDati.stepAltezzaRigaSaltoPagina = 7;
|
||
|
||
tabellaDati.WithImage = true;
|
||
|
||
tabellaDati.Colonne.Add(new Colonna("NomeProdotto", "Prodotto", widthNomeProdotto, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Nome_Progetto", string.Empty, 0, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false));
|
||
/********************************************************************************************/
|
||
tabellaDati.Colonne.Add(new Colonna("PERC_INVESTIMENTO_SFDR", "% minima di investimento sostenibile<br>(SFDR)", 63, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
|
||
tabellaDati.Colonne.Add(new Colonna("PERC_INVESTIMENTO_TAXONOMY", "% minima di investimenti<br>ecosostenibili<br>(Taxonomy)", 70, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
|
||
tabellaDati.Colonne.Add(new Colonna("label_PAI_A", string.Empty, 85, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
|
||
tabellaDati.Colonne.Add(new Colonna("label_PAI_S", string.Empty, 85, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
|
||
tabellaDati.Colonne.Add(new Colonna("label_U_INFO_ESG", "Ulteriori<br>elementi<br>ESG", 60, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
|
||
tabellaDati.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", widthImporti, TipoAllineamento.DESTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
|
||
|
||
tabellaDati.DrawUlterioriCaratteristicheESG(datitab, document);
|
||
/**********************************************************************************************/
|
||
|
||
#region Nuova versione Tabella Totale Risorse Finanziarie
|
||
// Recupero le altezze delle tabelle
|
||
float dim = (datitab.GetRowDim() * datitab.getNumRow()) + datitab.getHeaderDim() + 30 + tabellaDati.stepAltezzaRigaSaltoPagina;
|
||
|
||
Tabella tabellaTotali_OUT = null;
|
||
|
||
|
||
if (!dataThread.Periodico)
|
||
{
|
||
decimal totale = 0.0M;
|
||
foreach(var item in set.Tables["dtUlterioriCaratteristicheESG"].AsEnumerable())
|
||
{
|
||
if (item.Field<string>("nome_progetto") != "S" || item.Field<string>("nome_progetto") != null)
|
||
{
|
||
if (item.Field<string>("Area") == string.Empty || item.Field<string>("Area") != null)
|
||
totale += Convert.ToDecimal(item.Field<string>("Controvalore"));
|
||
}
|
||
|
||
}
|
||
|
||
|
||
DataSet _ds = new DataSet();
|
||
DataTable _dt = new DataTable();
|
||
_dt.Columns.Add("PatrimonioFideuram", typeof(System.String));
|
||
_dt.Columns.Add("Totale", typeof(System.String));
|
||
|
||
_ds.Tables.Add(_dt);
|
||
DataRow dr = _dt.NewRow();
|
||
dr[0] = "Totale portafoglio";
|
||
dr[1] = UtilityBusinessLayer.FormatDecimal(totale.ToString(), 2);
|
||
|
||
_dt.Rows.Add(dr);
|
||
|
||
datitab = new DatiTabella();
|
||
datitab.table = _dt;
|
||
|
||
tabellaTotali_OUT = new Tabella(document.getMargineLeft(), document.getLastPos() + dim);
|
||
tabellaTotali_OUT.HeaderFont = 8;
|
||
tabellaTotali_OUT.Header = false;
|
||
tabellaTotali_OUT.SaltoPagina = false;
|
||
|
||
tabellaTotali_OUT.Colonne.Add(new Colonna("PatrimonioFideuram", "", 155, TipoAllineamento.SINISTRA, true, 8, true));
|
||
tabellaTotali_OUT.Colonne.Add(new Colonna("Totale", "", 370, TipoAllineamento.DESTRA, true, 8, true));
|
||
|
||
// Scrive la tabella Totale Risorse Finanziari
|
||
tabellaTotali_OUT.Draw(datitab, document);
|
||
}
|
||
#endregion
|
||
|
||
|
||
#region Nota tabella
|
||
bool flgNota1 = false;
|
||
bool flgNota2 = false;
|
||
foreach (var item in set.Tables["dtUlterioriCaratteristicheESG"].AsEnumerable())
|
||
{
|
||
if (item["Swicth"].ToString().Equals("false") || item["Swicth"].ToString() == String.Empty)
|
||
{
|
||
if (item.ItemArray[11].ToString() == "nota1")
|
||
flgNota1 = true;
|
||
|
||
if (item.ItemArray[11].ToString() == "nota2")
|
||
flgNota2 = true;
|
||
}
|
||
else
|
||
{
|
||
flgNota1 = false;
|
||
flgNota2 = true;
|
||
}
|
||
}
|
||
|
||
if (flgNota2)
|
||
{
|
||
if (flgNota1)
|
||
document.setNotaPieDiPagina("2. Allineamento ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals): lo strumento soddisfa le preferenze di sostenibilità dell’investitore sulla base della metodologia interna adottata dal Gruppo Intesa Sanpaolo, che prevede, tra l’altro, la valutazione del grado di allineamento ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals) in termini ambientali e/o sociali, definiti dalle Nazioni Unite");
|
||
else
|
||
document.setNotaPieDiPagina("1. Allineamento ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals): lo strumento soddisfa le preferenze di sostenibilità dell’investitore sulla base della metodologia interna adottata dal Gruppo Intesa Sanpaolo, che prevede, tra l’altro, la valutazione del grado di allineamento ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals) in termini ambientali e/o sociali, definiti dalle Nazioni Unite");
|
||
}
|
||
|
||
if (flgNota1) document.setNotaPieDiPagina("1. Allineamento dell’Emittente e del sottostante ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals): lo strumento soddisfa le preferenze di sostenibilità dell’investitore sulla base della metodologia interna adottata dal Gruppo Intesa Sanpaolo, che prevede, tra l’altro, la valutazione del grado di allineamento dell’Emittente e del sottostante ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals) in termini ambientali e/o sociali, definiti dalle Nazioni Unite");
|
||
|
||
|
||
//string nota = "*Il controvalore non considera i saldi negativi di conto corrente e/o le operazioni in corso.";
|
||
|
||
//document.setSezFooter(nota, tabellaDati.AltezzaTabella + tabellaTotali_OUT.AltezzaTabella + tabellaTotali_OUT.AltezzaCella, 0, 7);
|
||
//tabellaTotali_OUT.NotaTabella.Add(nota);
|
||
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
/*** ATTENZIONE Forzatura - Pino ************************/
|
||
//dataThread.Periodico = true;
|
||
//dataThread.CodiceFiscale = "DGSMHL70H08Z404F";
|
||
//dataThread.Rete = "S";
|
||
/********************************************************/
|
||
}
|
||
|
||
protected int calculateWidth()
|
||
{
|
||
int tot = 0;
|
||
tot += widthImporti;
|
||
tot += widthImporti;
|
||
tot += widthImporti;
|
||
tot += widthImporti;
|
||
tot += widthImporti;
|
||
tot += widthImporti;
|
||
tot += widthImporti;
|
||
return tot;
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
}
|
||
}
|