2025-04-15 12:10:19 +02:00

271 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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à dellinvestitore sulla base della metodologia interna adottata dal Gruppo Intesa Sanpaolo, che prevede, tra laltro, 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à dellinvestitore sulla base della metodologia interna adottata dal Gruppo Intesa Sanpaolo, che prevede, tra laltro, 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 dellEmittente e del sottostante ad uno o più degli obiettivi di investimento sostenibile (cd. SDG - Sustainable Development Goals): lo strumento soddisfa le preferenze di sostenibilità dellinvestitore sulla base della metodologia interna adottata dal Gruppo Intesa Sanpaolo, che prevede, tra laltro, la valutazione del grado di allineamento dellEmittente 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
}
}