765 lines
37 KiB
C#
765 lines
37 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 ceTe.DynamicPDF.PageElements;
|
|
using System.Collections.Generic;
|
|
using PDFGenerator.Presentation.Section.Charts;
|
|
using System.Data;
|
|
using System.Linq.Expressions;
|
|
using System.Windows.Forms;
|
|
using Dundas.Charting.WebControl;
|
|
using NUnit.Framework;
|
|
using ceTe.DynamicPDF.Imaging;
|
|
using System.Dynamic;
|
|
|
|
namespace PDFGenerator.Presentation.Section
|
|
{
|
|
public class S181 : SIstogramma, ISezione
|
|
{
|
|
NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
|
string Titolo = string.Empty;
|
|
string _testotitolo;
|
|
string _testointroduttivo;
|
|
string _testoAlternativo;
|
|
|
|
public string TestoIntroduttivo
|
|
{
|
|
get
|
|
{
|
|
return _testointroduttivo;
|
|
}
|
|
set
|
|
{
|
|
_testointroduttivo = value;
|
|
}
|
|
}
|
|
|
|
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 S181()
|
|
{
|
|
//
|
|
// TODO: Add constructor logic here
|
|
//
|
|
}
|
|
|
|
protected string[] setTableForIsto()
|
|
{
|
|
string[] Columns = new String[4];
|
|
Columns[0] = "PercentualeESG";
|
|
Columns[1] = "Red";
|
|
Columns[2] = "Green";
|
|
Columns[3] = "Blue";
|
|
return Columns;
|
|
}
|
|
|
|
#region Nuove funzionalità ESG 2024
|
|
public void writeSezione(DataThread datathread)
|
|
{
|
|
datathread.SETDATA();
|
|
DocumentPDF document = datathread.DocumentPDF;
|
|
DataSetS181AnalisiDiPortafoglioESG set = (DataSetS181AnalisiDiPortafoglioESG)datathread.Data.DatiSezione;
|
|
DatiTabella datitab = new DatiTabella();
|
|
DatiTabella datitabObiettivo = new DatiTabella();
|
|
DatiTabella datiRating = new DatiTabella();
|
|
DatiTabella datiTest = new DatiTabella();
|
|
DatiTabella datiCaratteristiche = new DatiTabella();
|
|
DatiTabella datiHeaderCaratteristiche = new DatiTabella();
|
|
DatiTabella datiPercSostenibilita = new DatiTabella();
|
|
|
|
float left = document.getMargineLeft();
|
|
float right = document.getLastPos();
|
|
Tabella tab = new Tabella(left, right);
|
|
|
|
// Titolo della sezione
|
|
logger.Info("Titolo della sezione " + _testointroduttivo);
|
|
document.setLastPos(-40);
|
|
document.setChapterHeader(string.Concat(_testointroduttivo, "<br>"), 0, 520, 8);
|
|
|
|
|
|
// VECCHIE SEZIONI CHE C'ERANO ANCHE PRIMA DI ESG 2024 E MODIFICATE
|
|
writeSezione_PreferenzeFattoriSostenibilita(set, document);
|
|
writeSezione_PercentualePortafoglio(set, document);
|
|
|
|
///////////////////////////////////////
|
|
// NUOVE SEZIONI ESG 2024
|
|
writeSezione_UlterioriPreferenzeSostenibilità(set, document);
|
|
writeSezione_SFDR_Taxonomy(set, document);
|
|
writeSezione_PrincipalAdverseImpact(set, document);
|
|
///////////////////////////////////////
|
|
|
|
writeSezione_ProdottiLineaPreferenzeSostenibilita(set, document);
|
|
//document.setLastPos(8);
|
|
document.setLastPos(9);
|
|
|
|
|
|
#region Titolo Seconda tabella
|
|
|
|
switch (datathread.Rete)
|
|
{
|
|
case "F":
|
|
{
|
|
_testoAlternativo = _testoAlternativo.Replace("$/Banca/$", "Fideuram");
|
|
break;
|
|
}
|
|
case "S":
|
|
{
|
|
//Rosaspina Andrea//
|
|
_testoAlternativo = _testoAlternativo.Replace("$/Banca/$", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest");
|
|
//_testoAlternativo = _testoAlternativo.Replace("$/Banca/$", "Sanpaolo Invest");
|
|
break;
|
|
}
|
|
case "W":
|
|
{
|
|
_testoAlternativo = _testoAlternativo.Replace("$/Banca/$", "IW Private Investments");
|
|
break;
|
|
}
|
|
}
|
|
|
|
logger.Info("Titolo della seconda tabella " + _testointroduttivo);
|
|
//document.setLastPos(55); //-20
|
|
// è stato chiesto più spazio tra Prodotti in linea con le... e la nota alternativa
|
|
document.setLastPos(55);
|
|
document.setChapterHeader(string.Concat(_testoAlternativo, "<br>"),0, 520, 8);
|
|
logger.Info("Fine Titolo della seconda tabella " + _testointroduttivo);
|
|
#endregion
|
|
|
|
#region Seconda Tabella
|
|
|
|
writeSezione_IntestazioneGrafico(datathread, document,left);
|
|
|
|
ceTe.DynamicPDF.Merger.ImportedPage page1 = document.getCurrentPage();
|
|
|
|
|
|
/**************** Per Test quella buona - per miglioramento abilitare il codice "Nuova Versione in corso di verifiche" **********************/
|
|
logger.Info("Inizio impostazione grafico");
|
|
List<IValoriSerie> listaValoriPesoRelativo = new List<IValoriSerie>();
|
|
foreach (var item in set.Tables["dtCaratteristiche"].AsEnumerable())
|
|
{
|
|
|
|
IValoriSerie IvaloriSeriePesoRelativo = new IValoriSerie();
|
|
IvaloriSeriePesoRelativo.chiave = item[0].ToString();
|
|
IvaloriSeriePesoRelativo.valore = Convert.ToDecimal(item[1]);
|
|
IvaloriSeriePesoRelativo.colore = (System.Drawing.Color)item["ColorePercentuale"]; // System.Drawing.Color.FromArgb((int)item["Red"], (int)item["Green"], (int)item["Blue"]);
|
|
listaValoriPesoRelativo.Add(IvaloriSeriePesoRelativo);
|
|
|
|
}
|
|
|
|
IstoFarfallaS133BIS graficoCaratteristiche = new IstoFarfallaS133BIS(750, 150); //92 //85
|
|
graficoCaratteristiche.DocumentPDF = document;
|
|
graficoCaratteristiche.PositionX = 184; // 145;
|
|
graficoCaratteristiche.PositionY = Convert.ToInt32(document.getLastPos()); // + 22); //32 //38 //42 //542;
|
|
graficoCaratteristiche.AxisY_LineColor = true;
|
|
graficoCaratteristiche.AxisY_Hide = false;
|
|
graficoCaratteristiche.AxysX_Increment = Convert.ToDecimal(1);
|
|
graficoCaratteristiche.AxisY_DashStyle = Dundas.Charting.WebControl.ChartDashStyle.DashDot;
|
|
graficoCaratteristiche.isShadowOffset = false; // Abilita l'ombreggiatura delle barre per ESG è fissato a 40
|
|
graficoCaratteristiche.isPixelPointWidth = "40"; // 40"; // serve per dimensionare l'altezza delle barre
|
|
graficoCaratteristiche.BorderLineColor = System.Drawing.Color.FromArgb(0, 0, 0);
|
|
graficoCaratteristiche.BorderLineWidth = 10;
|
|
|
|
|
|
SerieIstoFarfallaS133BIS seriePesoRelativo = new SerieIstoFarfallaS133BIS();
|
|
seriePesoRelativo.Name = "S181_Caratteristiche%";
|
|
seriePesoRelativo.Values = listaValoriPesoRelativo;
|
|
seriePesoRelativo.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(0, -5F, 50.7F, 120F);
|
|
seriePesoRelativo.AxisY_CustumizedByValues = false;
|
|
seriePesoRelativo.ReverseAxisY = false;
|
|
seriePesoRelativo.Axisy_Interval = 10;
|
|
seriePesoRelativo.PixelPointWidth = 40;
|
|
seriePesoRelativo.ShowLabelAsValue = false;
|
|
|
|
// QUESTA CHIAMATA DISEGNA SIA LE LINEE VERTICALI CHE LE 3 BARRE COLORATE GROSSE SOTTO
|
|
// IN BASE AI VALORI di seriePesoRelativo. Essendo un ChartArea è fuori dal nostro controllo
|
|
// E' un controllo Cete. Ci ho perso 2gg per capire che le barre non si possono posizionare
|
|
// dove si vuole. Andrebbe rifatta la sezione ESG delle due tabelle sotto la principale!
|
|
graficoCaratteristiche.SerieList.Add(seriePesoRelativo);
|
|
|
|
|
|
//graficoCaratteristiche.SerieList.Add(seriePesoRelativo_2);
|
|
|
|
|
|
logger.Info("Inizio grafico caratteristiche");
|
|
// Disegno il grafico
|
|
graficoCaratteristiche.Draw(); //// Pino Test 15/09/2022
|
|
logger.Info("Fine grafico caratteristiche ");
|
|
|
|
|
|
// Inserisco riga bianca per effetto distanziatore
|
|
logger.Info("Inizio inserimento riga bianca sotto caratteristiche");
|
|
//page1.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() + 22, 500, 6, 0, new RgbColor(255, 255, 255)));
|
|
// page1.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() + 22, 300, 6, 0, new RgbColor(255, 255, 255)));
|
|
|
|
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
|
|
|
// page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() + 168, 500, 6, 0, new RgbColor(255, 255, 255)));
|
|
|
|
#region RIGHE "di cui in linea con le Preferenze di Sostenibilità"
|
|
//////////////////////////////////////////
|
|
// inserimento righe di non sostenibilità
|
|
|
|
int widthLabel = 765;
|
|
int startX = 180;
|
|
|
|
// BARRA NUMERI DA 0 a 100 Percentuali
|
|
for (int i = 0; i < 110; i += 10)
|
|
{
|
|
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(i.ToString() + ",00",
|
|
// startX, document.getLastPos() + 146, widthLabel, 20, Globals.OpenTypeFontCourierB,
|
|
// 7, TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(i.ToString() ,
|
|
startX, document.getLastPos() + 146, widthLabel, 20, Globals.OpenTypeFontCourierB,
|
|
7, TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
|
|
|
|
startX = startX + 36;
|
|
}
|
|
|
|
string labelNonSostenibilita = "di cui in linea con le\nPreferenze di Sostenibilità"; //
|
|
//" + GetPercentualeSostenibilita("Ambientali", set.Tables["dtCaratteristiche"]).ToString() ;
|
|
//float y = document.getLastPos() + 58;
|
|
float lineHeight = 20; // Altezza della riga
|
|
|
|
float xLabelSost = left+9;//sommo 9 perche' il pallino ha size 15. Faccio /2+2
|
|
// AMBIENTALI
|
|
if (TitoloAttivo("Ambientali", set.Tables["dtCaratteristiche"]))
|
|
{
|
|
foreach (string linea in labelNonSostenibilita.Split('\n'))
|
|
{
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(labelNonSostenibilita.ToString(),
|
|
xLabelSost, document.getLastPos() + 38, 765, lineHeight, Globals.OpenTypeFontVerdana,
|
|
6, TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
|
|
}
|
|
/////////////////////
|
|
}
|
|
|
|
// SOCIALI
|
|
if (TitoloAttivo("Sociali", set.Tables["dtCaratteristiche"]))
|
|
{
|
|
foreach (string linea in labelNonSostenibilita.Split('\n'))
|
|
{
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(labelNonSostenibilita.ToString(),
|
|
xLabelSost, document.getLastPos() + 77, 765, lineHeight, Globals.OpenTypeFontVerdana,
|
|
6, TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
|
|
// y -= lineHeight; // Spostare la posizione y per la riga successiva
|
|
}
|
|
///// PERCENTUALE SOSTENIBILITA' /////
|
|
/////////////////////////////////////
|
|
}
|
|
// BUONA GOVERNANCE
|
|
if (TitoloAttivo("di", set.Tables["dtCaratteristiche"]))
|
|
{
|
|
foreach (string linea in labelNonSostenibilita.Split('\n'))
|
|
{
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(labelNonSostenibilita.ToString(),
|
|
xLabelSost, document.getLastPos() + 120, 765, lineHeight, Globals.OpenTypeFontVerdana, 6, TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
|
|
//y -= lineHeight; // Spostare la posizione y per la riga successiva
|
|
}
|
|
}
|
|
//////////////////////////////////////////
|
|
#endregion
|
|
|
|
#region rettangoli sostenibilità
|
|
|
|
int numeroRiga = 1;
|
|
foreach (DataRow row in set.Tables["dtCaratteristiche"].Rows)
|
|
{
|
|
double W_PercentualeSostenibilita = 3.63;
|
|
double percESG = Convert.ToDouble(row["PercentualeESG"]);
|
|
|
|
if (percESG > 0 && percESG < 5)
|
|
{
|
|
W_PercentualeSostenibilita = 3.30;
|
|
}
|
|
if (percESG > 5 && percESG < 10)
|
|
{
|
|
W_PercentualeSostenibilita = 3.54;
|
|
}
|
|
if (percESG > 10 && percESG < 15)
|
|
{
|
|
W_PercentualeSostenibilita = 3.55;
|
|
}
|
|
if (percESG > 20 && percESG < 30)
|
|
{
|
|
W_PercentualeSostenibilita = 3.61;
|
|
}
|
|
if (percESG > 30 && percESG < 35)
|
|
{
|
|
W_PercentualeSostenibilita = 3.612;
|
|
}
|
|
if (percESG > 35 && percESG < 40)
|
|
{
|
|
W_PercentualeSostenibilita = 3.613;
|
|
}
|
|
if (percESG > 40 && percESG < 50)
|
|
{
|
|
W_PercentualeSostenibilita = 3.615;
|
|
}
|
|
if (percESG > 50 && percESG < 55)
|
|
{
|
|
W_PercentualeSostenibilita = 3.615;
|
|
}
|
|
|
|
if (percESG > 55 && percESG < 60)
|
|
{
|
|
W_PercentualeSostenibilita = 3.615;
|
|
}
|
|
|
|
if (percESG > 60 && percESG < 65)
|
|
{
|
|
W_PercentualeSostenibilita = 3.615;
|
|
}
|
|
|
|
if (percESG > 65 && percESG < 70)
|
|
{
|
|
W_PercentualeSostenibilita = 3.618;
|
|
}
|
|
|
|
if (percESG > 70 && percESG < 75)
|
|
{
|
|
W_PercentualeSostenibilita = 3.62;
|
|
}
|
|
|
|
if (percESG > 75 && percESG < 80)
|
|
{
|
|
W_PercentualeSostenibilita = 3.625;
|
|
}
|
|
|
|
if (percESG > 80 && percESG < 85)
|
|
{
|
|
W_PercentualeSostenibilita = 3.625;
|
|
}
|
|
|
|
if (percESG > 85 && percESG < 90)
|
|
{
|
|
W_PercentualeSostenibilita = 3.63;
|
|
}
|
|
|
|
if (percESG > 90 && percESG < 95)
|
|
{
|
|
W_PercentualeSostenibilita = 3.635;
|
|
}
|
|
if (percESG > 95)
|
|
{
|
|
W_PercentualeSostenibilita = 3.64;
|
|
}
|
|
if (!row["ColoreSostenibilita"].ToString().Equals("0"))
|
|
{
|
|
System.Drawing.Color col = (System.Drawing.Color)row["ColoreSostenibilita"];
|
|
float Y_RettangoloSostenibilita = 0;
|
|
switch (numeroRiga)
|
|
{
|
|
|
|
case 1:
|
|
//incrementa = 53;
|
|
Y_RettangoloSostenibilita = 52.5f;
|
|
break;
|
|
case 2:
|
|
// incrementa = 95;
|
|
Y_RettangoloSostenibilita = 94.2f;
|
|
break;
|
|
case 3:
|
|
//incrementa = 136;
|
|
Y_RettangoloSostenibilita = 135.5f;
|
|
break;
|
|
}
|
|
double perc = (Convert.ToDouble(row["PercentualeSostenibilita"])) * W_PercentualeSostenibilita;
|
|
//129
|
|
double x = left + 146;
|
|
|
|
/////////////////////////////////////
|
|
///// RETTANGOLO SOSTENIBILITA' /////
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle((float)x,document.getLastPos() + Y_RettangoloSostenibilita - 22, (float)perc,6, 0, new RgbColor(col.R, col.G, col.B)));
|
|
/////////////////////////////////////
|
|
|
|
}
|
|
|
|
numeroRiga++;
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
// Inserimento tabella con le due colonne e con la colonna delle Caratteristiche riempita
|
|
logger.Info("Inizio inserimento tabella caratteristiche");
|
|
datiCaratteristiche.table = set.Tables["dtCaratteristiche"];
|
|
//Tabella tabellaCaratteristiche = new Tabella(document.getMargineLeft() + 15, document.getLastPos() + 85, 0, -2, 0.009F);
|
|
//Tabella tabellaCaratteristiche = new Tabella(document.getMargineLeft() +15 , document.getLastPos() + 89, 0, -2, 0.009F);
|
|
Tabella tabellaCaratteristiche = new Tabella(left, document.getLastPos() + 67, 0, -2, 0.009F);
|
|
|
|
tabellaCaratteristiche.Datasource = datiCaratteristiche.table;
|
|
tabellaCaratteristiche.Header = false;
|
|
tabellaCaratteristiche.DimensioneLinea = 0;
|
|
tabellaCaratteristiche.AltezzaCella = 45; //25;
|
|
tabellaCaratteristiche.Colonne.Add(new Colonna("CaratteristicheESG", "Caratteristiche", 0, TipoAllineamento.SINISTRA, false, 0, false, TipoColonna.TESTO));
|
|
tabellaCaratteristiche.Colonne.Add(new Colonna("Titolo", "", 110, TipoAllineamento.SINISTRA, true, 7, false, TipoColonna.TESTO));
|
|
tabellaCaratteristiche.Colonne.Add(new Colonna("PercentualiMostrate", "Distribuzione (%)", 26, TipoAllineamento.DESTRA, false, 6, false, TipoColonna.TESTO));
|
|
tabellaCaratteristiche.DrawESG(datiCaratteristiche, document);
|
|
logger.Info("Fine inserimento tabella caratteristiche");
|
|
|
|
|
|
#endregion
|
|
|
|
InsertPallinoFattore(document, "Ambientali", set, "logo-ambientaleSM_182.png", "logo-ambientaleGray.png", 41,left);
|
|
InsertPallinoFattore(document, "Sociali", set, "logo-socialeSM_182.png", "logo-socialeGray.png", 85,left);
|
|
InsertPallinoFattore(document, "di", set, "logo-governanceSM_182.png", "logo-governanceGray.png", 132, left);
|
|
|
|
//document.setLastPos(180); //120;
|
|
document.addPage();
|
|
}
|
|
|
|
void InsertPallinoFattore(DocumentPDF doc, string elemento, DataSet set, string IconaOK, string IconaGray, int incrementa, float indent)
|
|
{
|
|
|
|
string nameImage = System.IO.Path.Combine(CACHE.pathGraf,
|
|
TitoloAttivo(elemento, set.Tables["dtCaratteristiche"]) ?
|
|
IconaOK : IconaGray);
|
|
|
|
ceTe.DynamicPDF.PageElements.Image img = new Image(nameImage, indent-7, doc.getLastPos() - 22 + incrementa);
|
|
img.SetSize(15, 15); // diminuisco size
|
|
|
|
doc.getCurrentPage().Elements.Add(img);
|
|
}
|
|
|
|
public void writeSezione_IntestazioneGrafico(DataThread datathread, DocumentPDF document, float x)
|
|
{
|
|
|
|
document.setLastPos(1);
|
|
DataTable dtInt = new DataTable()
|
|
{
|
|
Columns = { "Titolo1", "blank", "Titolo2" }
|
|
};
|
|
|
|
string titolo1 = Utility.setColoreTesto("Fattori ESG", datathread); // string.Format("<font color =\"green\">{0}</font>", "Fattori ESG");
|
|
string titolo2 = Utility.setColoreTesto("Distribuzione (%)", datathread); // string.Format("<font color =\"green\">{0}</font>", "(%)");
|
|
dtInt.Rows.Add(titolo1, "", titolo2);
|
|
|
|
DatiTabella datiTabIntestazioneGrafico = new DatiTabella();
|
|
datiTabIntestazioneGrafico.table = dtInt;
|
|
Tabella tabellaIntestazioneGrafico = new Tabella(x, document.getLastPos() + 15, 0, -2, 0.2F);
|
|
tabellaIntestazioneGrafico.Header = false;
|
|
tabellaIntestazioneGrafico.AltezzaCella = tabellaIntestazioneGrafico.AltezzaCella - 5;
|
|
tabellaIntestazioneGrafico.Colonne.Add(new Colonna("Titolo1", titolo1, 133, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO));
|
|
tabellaIntestazioneGrafico.Colonne.Add(new Colonna("blank", "", 6, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); //45
|
|
tabellaIntestazioneGrafico.Colonne.Add(new Colonna("Titolo2", titolo2, 370, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO)); //45
|
|
tabellaIntestazioneGrafico.Draw(datiTabIntestazioneGrafico, document);
|
|
|
|
}
|
|
public void writeSezione_PreferenzeFattoriSostenibilita(DataSet set, DocumentPDF document)
|
|
{
|
|
|
|
|
|
|
|
////if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
|
////tab.Header = true;
|
|
////tab.LineaFineTabella = false;
|
|
////tab.Datasource = datitab.table;
|
|
|
|
datitab.table = set.Tables["dtPreferenze"];
|
|
|
|
/**** ESG - Fix faccio una copia del datatable per impostazione della tabella - Pino ****/
|
|
DataTable _dtCopy = set.Tables["dtPreferenze"].Copy();
|
|
/***************************************************************************************/
|
|
|
|
/**** ESG - Fix elimino le colonne delle preferenze impostate a null- Pino *****/
|
|
if (datitab.table.Rows[0]["Ambientale"].Equals(DBNull.Value))
|
|
datitab.table.Columns.Remove("Ambientale");
|
|
|
|
if (datitab.table.Rows[0]["Sociale"].Equals(DBNull.Value))
|
|
datitab.table.Columns.Remove("Sociale");
|
|
|
|
if (datitab.table.Rows[0]["Governance"].Equals(DBNull.Value))
|
|
datitab.table.Columns.Remove("Governance");
|
|
/****************************************************************************************/
|
|
|
|
datitab.SetRowDim(25);
|
|
datitab.setIsLinee(2);
|
|
|
|
|
|
document.setLastPos(2);
|
|
Tabella tabellaDatiRap = new Tabella(document.getMargineLeft(), document.getLastPos(), 0, -2, 0.2F);
|
|
tabellaDatiRap.Header = false;
|
|
|
|
/***** ESG - Fix elimino le colonne delle preferenze impostate a null - Pino *****/
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Descrizione", "Preferenze di sostenibilità", 170, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO)); //170 120
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Preferenza", "", 40, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); //40 //20
|
|
//tabellaDatiRap.Colonne.Add(new Colonna("Ambientale", "", 100, TipoAllineamento.SINISTRA, false, 9, false,TipoColonna.IMMAGINE));
|
|
//tabellaDatiRap.Colonne.Add(new Colonna("Sociale", "", 100, TipoAllineamento.SINISTRA, false, 9, false,TipoColonna.IMMAGINE));
|
|
//tabellaDatiRap.Colonne.Add(new Colonna("Governance", "", 100, TipoAllineamento.SINISTRA, false, 9, false,TipoColonna.IMMAGINE));
|
|
|
|
|
|
|
|
if (!(_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value)) && !(_dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value)) && !(_dtCopy.Rows[0]["Governance"].Equals(DBNull.Value)))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Ambientale", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE)); //100 //75
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Sociale", "", 80, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE)); //100 //60
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Governance", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE)); //100 //75
|
|
}
|
|
|
|
if (_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value) && _dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value) && !(_dtCopy.Rows[0]["Governance"].Equals(DBNull.Value)))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Governance", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
}
|
|
|
|
if (_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value) && !(_dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value)) && _dtCopy.Rows[0]["Governance"].Equals(DBNull.Value))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Sociale", "", 80, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
}
|
|
|
|
if (!(_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value)) && _dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value) && _dtCopy.Rows[0]["Governance"].Equals(DBNull.Value))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Ambientale", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
}
|
|
|
|
if (_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value) && !(_dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value)) && !(_dtCopy.Rows[0]["Governance"].Equals(DBNull.Value)))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Sociale", "", 80, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Governance", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
}
|
|
|
|
if (!(_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value)) && !(_dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value)) && _dtCopy.Rows[0]["Governance"].Equals(DBNull.Value))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Ambientale", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Sociale", "", 80, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
}
|
|
|
|
if (!(_dtCopy.Rows[0]["Ambientale"].Equals(DBNull.Value)) && _dtCopy.Rows[0]["Sociale"].Equals(DBNull.Value) && !(_dtCopy.Rows[0]["Governance"].Equals(DBNull.Value)))
|
|
{
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Ambientale", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
tabellaDatiRap.Colonne.Add(new Colonna("Governance", "", 100, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE));
|
|
}
|
|
/*******************************************************************************/
|
|
|
|
|
|
tabellaDatiRap.Draw(datitab, document);
|
|
|
|
}
|
|
|
|
public void writeSezione_PercentualePortafoglio(DataSet set, DocumentPDF document)
|
|
{
|
|
DatiTabella datiPercSostenibilita = new DatiTabella();
|
|
document.setLastPos(2);
|
|
datiPercSostenibilita.table = set.Tables["dtPreferenze"];
|
|
Tabella tabellaDatiPercSost = new Tabella(document.getMargineLeft(), document.getLastPos(), 0, -2, 0.2F);
|
|
tabellaDatiPercSost.Header = false;
|
|
|
|
tabellaDatiPercSost.Colonne.Add(new Colonna("DescPercSostenibilita", "Soglia di sostenibilità", 170, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO));
|
|
tabellaDatiPercSost.Colonne.Add(new Colonna("ValPercSostenibilita", "", 120, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); //45
|
|
|
|
tabellaDatiPercSost.Draw(datiPercSostenibilita, document);
|
|
}
|
|
|
|
public void writeSezione_UlterioriPreferenzeSostenibilità(DataSet set, DocumentPDF document)
|
|
{
|
|
// ESG 2024 - Nuova sezione -PS-
|
|
document.setLastPos(2);
|
|
DatiTabella datiUlterioriPreferenze = new DatiTabella();
|
|
datiUlterioriPreferenze.table = set.Tables["dtUlterioriPrefSostenibilita"];
|
|
Tabella tabellaUlterioriPreferenze = new Tabella(document.getMargineLeft(), document.getLastPos(), 0, -2, 0.2F);
|
|
tabellaUlterioriPreferenze.Header = false;
|
|
|
|
tabellaUlterioriPreferenze.Colonne.Add(new Colonna("NomeCampo", "", 170, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO));
|
|
tabellaUlterioriPreferenze.Colonne.Add(new Colonna("Risposta", "", 120, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); //45
|
|
|
|
tabellaUlterioriPreferenze.Draw(datiUlterioriPreferenze, document);
|
|
}
|
|
|
|
public void writeSezione_SFDR_Taxonomy(DataSet set, DocumentPDF document)
|
|
{
|
|
// ESG 2024 - Nuova sezione -PS-
|
|
document.setLastPos(2);
|
|
DatiTabella datiSFRD_Taxonomy = new DatiTabella();
|
|
datiSFRD_Taxonomy.table = set.Tables["dtSFDR_Taxonomy"];
|
|
Tabella tabellaDatiSFRD_Tax = new Tabella(document.getMargineLeft(), document.getLastPos(), 0, -2, 0.2F);
|
|
tabellaDatiSFRD_Tax.Header = false;
|
|
tabellaDatiSFRD_Tax.Colonne.Add(new Colonna("TitoloSFDR", "", 170, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO));
|
|
tabellaDatiSFRD_Tax.Colonne.Add(new Colonna("ValoreSFDR", "", 50, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); //45
|
|
tabellaDatiSFRD_Tax.Colonne.Add(new Colonna("TitoloTaxonomy", "", 190, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO));
|
|
tabellaDatiSFRD_Tax.Colonne.Add(new Colonna("ValoreTaxonomy", "", 50, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); //45
|
|
|
|
tabellaDatiSFRD_Tax.Draw(datiSFRD_Taxonomy, document);
|
|
|
|
}
|
|
|
|
protected ceTe.DynamicPDF.Imaging.ImageData GetImageData(string imgUrl)
|
|
{
|
|
ImageData imgData = null;
|
|
using (System.Net.WebClient wc = new System.Net.WebClient())
|
|
{
|
|
imgData = ImageData.GetImage(wc.DownloadData(imgUrl));
|
|
}
|
|
return imgData;
|
|
}
|
|
|
|
public void writeSezione_PrincipalAdverseImpact(DataSet set, DocumentPDF document)
|
|
{
|
|
try
|
|
{
|
|
DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable();
|
|
dt1.Columns.Add("Titolo"); dt1.Columns.Add("Image"); dt1.Columns.Add("Descrizione");
|
|
dt2.Columns.Add("Titolo"); dt2.Columns.Add("Image"); dt2.Columns.Add("Descrizione");
|
|
|
|
bool primaRiga = true;
|
|
foreach (DataRow row in set.Tables["dtPai"].Rows)
|
|
{
|
|
if (primaRiga == true)
|
|
{
|
|
dt1.ImportRow(row);
|
|
primaRiga = false;
|
|
}
|
|
dt2.ImportRow(row);
|
|
}
|
|
|
|
DatiTabella datiPrincipalAdverseImpact_1 = new DatiTabella();
|
|
datiPrincipalAdverseImpact_1.table = dt1;
|
|
Tabella tabellaPAI = new Tabella(document.getMargineLeft(), document.getLastPos() + 49, 0, -2, 0.2F);
|
|
tabellaPAI.Header = false;
|
|
tabellaPAI.AltezzaCella = 45;
|
|
tabellaPAI.Colonne.Add(new Colonna("Titolo", "", 170, TipoAllineamento.SINISTRA, true, 9, true, TipoColonna.TESTO));
|
|
tabellaPAI.Draw(datiPrincipalAdverseImpact_1, document);
|
|
|
|
if (set.Tables["dtPai"].Rows.Count > 1)
|
|
{
|
|
DatiTabella datiPrincipalAdverseImpact_2 = new DatiTabella();
|
|
datiPrincipalAdverseImpact_2.table = dt2;
|
|
datiPrincipalAdverseImpact_2.table.Columns.Remove("Titolo");
|
|
Tabella tabellaPAI_2 = new Tabella(document.getMargineLeft() + 170, document.getLastPos() + 27, 0, -2, 0.2F);
|
|
if (dt2.Rows[1]["Descrizione"].Equals("")) // sta solo ambientali
|
|
{
|
|
tabellaPAI_2 = new Tabella(document.getMargineLeft() + 170, document.getLastPos() + 37, 0, -2, 0.2F);
|
|
if (!dt2.Rows[0]["Descrizione"].ToString().Contains("Preferisco non dettagliare"))
|
|
{
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Image", "", 20, TipoAllineamento.DESTRA, false, 9, false, TipoColonna.IMMAGINE)); //45
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Descrizione", "", 310, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //45
|
|
}
|
|
else
|
|
{
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Descrizione", "", 310, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //45
|
|
tabellaPAI_2.X = tabellaPAI_2.X + 10;
|
|
}
|
|
}
|
|
if (dt2.Rows[0]["Descrizione"].Equals("")) // sta solo sociali
|
|
{
|
|
tabellaPAI_2 = new Tabella(document.getMargineLeft() + 170, document.getLastPos() + 15, 0, -2, 0.2F);
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Image", "", 20, TipoAllineamento.DESTRA, false, 9, false, TipoColonna.IMMAGINE)); //45
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Descrizione", "", 310, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //45
|
|
}
|
|
if (dt2.Rows[0]["Descrizione"].Equals("") && dt2.Rows[1]["Descrizione"].Equals("-"))
|
|
{
|
|
tabellaPAI_2 = new Tabella(document.getMargineLeft() + 180, document.getLastPos() + 15, 0, -2, 0.2F);
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Descrizione", "", 20, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //45
|
|
}
|
|
if (!dt2.Rows[0]["Descrizione"].Equals("") && !dt2.Rows[1]["Descrizione"].Equals(""))
|
|
{
|
|
tabellaPAI_2 = new Tabella(document.getMargineLeft() + 170, document.getLastPos() + 27, 0, -2, 0.2F);
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Image", "", 20, TipoAllineamento.DESTRA, false, 9, false, TipoColonna.IMMAGINE)); //45
|
|
tabellaPAI_2.Colonne.Add(new Colonna("Descrizione", "", 310, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //45
|
|
}
|
|
|
|
|
|
|
|
tabellaPAI_2.Header = false;
|
|
tabellaPAI.AltezzaCella = 12;
|
|
|
|
tabellaPAI_2.LineeTabella = false;
|
|
tabellaPAI_2.LineaFineTabella = false;
|
|
|
|
tabellaPAI_2.Draw(datiPrincipalAdverseImpact_2, document);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
|
|
}
|
|
|
|
public void writeSezione_ProdottiLineaPreferenzeSostenibilita(DataSet set, DocumentPDF document)
|
|
{
|
|
Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos());
|
|
DatiTabella datitabObiettivo = new DatiTabella();
|
|
datitabObiettivo.table = set.Tables["dtObiettivo"];
|
|
|
|
datitabObiettivo.SetRowDim(25);
|
|
datitabObiettivo.setIsLinee(3);
|
|
datitabObiettivo.setCell(170, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true);
|
|
datitabObiettivo.setCell(350, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false, 7);
|
|
|
|
datitabObiettivo.setY(document.getLastPos() + 50);
|
|
datitabObiettivo.setX(document.getMargineLeft());
|
|
|
|
document.InsertTable(tab.getTabella(datitabObiettivo));
|
|
}
|
|
|
|
private bool TitoloAttivo(string titolo, DataTable dt)
|
|
{
|
|
bool result = false;
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
if (row["Titolo"].ToString().StartsWith(titolo))
|
|
{
|
|
result = (bool)row["Sostenibilita"];
|
|
break;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private object GetPercentualeSostenibilita(string titolo, DataTable dt)
|
|
{
|
|
object result = 0;
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
if (row["Titolo"].ToString().Contains(titolo))
|
|
{
|
|
result = (object)row["PercentualeSostenibilita"];
|
|
break;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private object GetPercentuale(string titolo, DataTable dt)
|
|
{
|
|
object result = 0;
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
if (row["Titolo"].ToString().Contains(titolo))
|
|
{
|
|
result = (object)row["PercentualeESG"];
|
|
break;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|