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 ceTe.DynamicPDF.PageElements;
using System.Data;
using System.Xml.Linq;
using NLog;
namespace PDFGenerator.Presentation.Section
{
public class S185 : ISezione
{
private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
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;
///
/// Testo introduttivo della sezione.
///
public string TestoIntroduttivo
{
get
{
return _testointroduttivo;
}
set
{
_testointroduttivo = value;
}
}
///
/// Testo del titolo della sezione.
///
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)
{
dataThread.SETDATA();
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"];
datitab.table.Columns.Add(new DataColumn("label_PAI_A0", typeof(string)));
datitab.table.Columns.Add(new DataColumn("label_PAI_S0", typeof(string)));
//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.IsProfessionalClient ? 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);
logger.Info("Titolo della sezione " + _testointroduttivo);
document.setLastPos(-25);
#endregion
#region Tabella
Tabella tabellaDati = new Tabella(document.getMargineLeft() - 25, document.getLastPos(), 5, 0, 0.02F);
tabellaDati.Header = true;
tabellaDati.HeaderFont = 7;
tabellaDati.Datasource = datitab.table;
tabellaDati.AltezzaCella = 43;
tabellaDati.LineaFineTabella = false;
tabellaDati.stepAltezzaRigaSaltoPagina = 8;
tabellaDati.WithImage = true;
//% minima di investimento sostenibile
(SFDR)
tabellaDati.Colonne.Add(new Colonna("NomeProdotto", "Prodotto", 55, 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", "", 50, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("PERC_INVESTIMENTO_SFDR_AMBIENTALE", "", 68, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("PERC_INVESTIMENTO_SFDR_SOCIALE", "", 42, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
// nome colonna come imagine
tabellaDati.Colonne.Add(new Colonna("PERC_INVESTIMENTO_TAXONOMY", "% minima di investimento ecosostenibile (taxonomy)", 73, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("label_PAI_A0", string.Empty, 15, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("label_PAI_A", "PAI Ambientali considerati dal prodotto", 65, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("label_PAI_S0", string.Empty, 15, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("label_PAI_S", "PAI Sociali considerati dal prodotto", 63, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("label_U_INFO_ESG", "Ulteriori
elementi
ESG", 45, TipoAllineamento.CENTRATO, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.Colonne.Add(new Colonna("Controvalore", "Controvalore(€)", 75, TipoAllineamento.DESTRA, false, tabellaDati.HeaderFont, false, TipoColonna.TESTO));
tabellaDati.SezioneDiProvenienza = "S185";
tabellaDati.DrawUlterioriCaratteristicheESG(datitab, document, dataThread.TipoContratto, false, "S185");
/**********************************************************************************************/
#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("nome_progetto") != "S" || item.Field("nome_progetto") != null)
{
if (item.Field("Area") == string.Empty || item.Field("Area") != null)
totale += Convert.ToDecimal(item.Field("Controvalore"));
}
}
int totaleLarghezzaColonne = 0;
for (int i = 0; i < tabellaDati.Colonne.Count; i++)
{
totaleLarghezzaColonne = totaleLarghezzaColonne + tabellaDati.Colonne[i].Larghezza;
}
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() - 25, document.getLastPos() + dim);
//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", "", totaleLarghezzaColonne - 70, TipoAllineamento.SINISTRA, true, 8, true));
tabellaTotali_OUT.Colonne.Add(new Colonna("Totale", "", 70, 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. SDGs - 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. SDGs - 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. SDGs - 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. SDGs - 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. SDGs - 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. SDGs - 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
}
public void InseriscoRigaIntestazione_SFD(DocumentPDF document)
{
DataTable dt = new DataTable();
dt.Columns.Add("primo");
dt.Columns.Add("sfrd");
dt.Columns.Add("secondo");
dt.Rows.Add("", "SFDR", "");
DatiTabella dati = new DatiTabella();
dati.table = new DataTable();
Tabella tabellaDati = new Tabella(document.getMargineLeft(), document.getLastPos(), 2, 0, 0.02F);
tabellaDati.Header = false;
tabellaDati.Colonne.Add(new Colonna("primo", "", 73, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false));
tabellaDati.Colonne.Add(new Colonna("sfdr", "", 98, TipoAllineamento.SINISTRA, false, tabellaDati.HeaderFont, false));
tabellaDati.Colonne.Add(new Colonna("secondo", "", 351, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO));
tabellaDati.DrawESG(dati, document);
}
protected int calculateWidth()
{
int tot = 0;
tot += widthImporti;
tot += widthImporti;
tot += widthImporti;
tot += widthImporti;
tot += widthImporti;
tot += widthImporti;
tot += widthImporti;
tot += widthImporti;
return tot;
}
#endregion
}
public class UlterioriCaratteristicheESG
{
public string NomeProdotto { get; set; }
public string CodArea { get; set; }
public string Descrizione { get; set; }
public string FontBold { get; set; }
public string BackGroundColor { get; set; }
public string Area { get; set; }
public string Controvalore { get; set; }
public string needarea { get; set; }
public string nome_progetto { get; set; }
public string PERC_INVESTIMENTO_SFDR { get; set; }
public string PERC_INVESTIMENTO_TAXONOMY { get; set; }
public string label_PAI_A { get; set; }
public string label_PAI_S { get; set; }
public string label_U_INFO_ESG { get; set; }
public string Swicth { get; set; }
public int ID { get; set; }
}
}