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; } } }