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

217 lines
13 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.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
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.Linq;
namespace PDFGenerator.Presentation.Section
{
class S184 : ISezione
{
private string _header = "";
public string Header
{
get { return _header; }
set { _header = value; }
}
private TipoReport _tipologiaReport;
public TipoReport TipologiaReport
{
get { return _tipologiaReport; }
set { _tipologiaReport = value; }
}
private string _testoIntroduttivo = string.Empty;
public string TestoIntroduttivo
{
get { return _testoIntroduttivo; }
set { _testoIntroduttivo = value; }
}
private string _testoChiusura = string.Empty;
public string TestoChiusura
{
get { return _testoChiusura; }
set { _testoChiusura = value; }
}
public S184()
{
//
// TODO: Add constructor logic here
//
}
#region ISezione Members
public void writeSezione(DataThread dataThread)
{
DatiTabella datitab = new DatiTabella();
DocumentPDF document = dataThread.DocumentPDF;
DataSetS184 set = (DataSetS184)dataThread.Data.DatiSezione;
if (!set.TabellaCoerenzaESG.Rows[0]["percESG"].ToString().Equals("n.d.", StringComparison.OrdinalIgnoreCase))
{
document.LastSectionCheckIn = "S184";
float fontSize = 5;
document.changePage();
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo);
//string nota = dataThread.SezioneReport.Nota;
// string tempTesto = dataThread.SezioneReport.TestoIntroduttivo;
//if (dataThread.Rete.ToUpper() == "S")
// tempTesto = tempTesto.Replace("Fideuram", "Sanpaolo Invest");
//document.setChapterHeader(tempTesto.Replace("$/Banca/$", dataThread.NomeRete).Replace("nel patrimonio Sanpaolo Invest", "nel portafoglio"), 0, 520, 8);
//document.setHeaderSpace(5);
//Header: non ho usato quello standard perché dovevo farlo su due righe
//Sfondo
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() - 5, document.getLastPos() - 18, 520 + 10, 23, 0, new RgbColor(232, 236, 237)));
//Leone: eliminata come da requisiti 20230509_Report Diagnosi Sei_FID_MUA+ESG.pptx
//Prima riga: Obbligazioni - Azioni
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Obbligazioni", document.getMargineLeft() + 5 + 132 + 90 -10, document.getLastPos() - 16, 520, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Azioni", document.getMargineLeft() + 5 + 132 + 90 + 95 + 90 +10, document.getLastPos() - 16, 520, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//Seconda riga: intestazioni colonne tabella
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Emittente", document.getMargineLeft(), document.getLastPos() - 12, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Controvalore (€)", document.getMargineLeft() + 5 + 132 + 30+2, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Concentrazione (%)", document.getMargineLeft() + 5 + 132 + 30 + 90-3+2, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Controvalore (€)", document.getMargineLeft() + 5 + 132 + 30 + 90 + 97+10, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Concentrazione (%)", document.getMargineLeft() + 5 + 132 + 30 + 90 + 97 + 90 +8, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//Leone: Modificate come da requisiti 20230509_Report Diagnosi Sei_FID_MUA+ESG.pptx
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Emittente", document.getMargineLeft(), document.getLastPos() - 12, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Controvalore (€)", document.getMargineLeft() + 5 + 132 + 30 + 2 - 20, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Concentrazione (%)", document.getMargineLeft() + 5 + 132 + 30 + 90 - 3 + 2 - 20, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Controvalore (€)", document.getMargineLeft() + 5 + 132 + 30 + 90 + 97 + 10 - 20, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Concentrazione (%)", document.getMargineLeft() + 5 + 132 + 30 + 90 + 97 + 90 + 8 - 20, document.getLastPos() - 6, 132, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
var currentX = document.getMargineLeft();
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Prodotti che soddisfano almeno un obiettivo ESG (%)", currentX, document.getLastPos() - 16, 150, 25, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Prodotti in linea con le preferenze di sostenibilità (%)", currentX, document.getLastPos() - 16, 150, 25, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
currentX += 200;
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Soglia di sostenibilità", currentX, document.getLastPos() - 12, 150, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Percentuale di sostenibilità", currentX, document.getLastPos() - 12, 150, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
currentX += 200;
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Esito di coerenza ESG", currentX, document.getLastPos() - 12, 150, 20, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Red));
document.setLastPos(20);
Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos());
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
tab.Header = false;
tab.LineaFineTabella = true;
tab.Datasource = datitab.table;
datitab.table = set.Tables["TabellaCoerenzaESG"];
tab.Colonne.Add(new Colonna("pesoSostESG", "", 150, TipoAllineamento.CENTRATO, false, 7, false));
tab.Colonne.Add(new Colonna("percESG", "", 200, TipoAllineamento.CENTRATO, false, 7, false));
tab.Colonne.Add(new Colonna("Coerenza", "", 170, TipoAllineamento.CENTRATO, false, 7, false));
tab.AltezzaCella = 23;
datitab.setCellSpace(0);
//setta posizione tabella
tab.Draw(datitab, document);
document.setLastPos(tab.AltezzaTabella - 43);
//Discolsure Adeguatezza Dinamico
string NotaDisclosure, notapieTabella = string.Empty;
bool isCoerente = set.Tables["TabellaCoerenzaESG"].Rows[0]["Coerenza"].ToString().Equals("COERENTE", StringComparison.OrdinalIgnoreCase);
if (isCoerente)
{
NotaDisclosure = $"La percentuale di prodotti finanziari ESG presenti nel portafoglio è COERENTE rispetto alla percentuale minima di Portafoglio che Lei ha scelto di destinare a investimenti volti a soddisfare le Preferenze di Sostenibilità - ambientale, sociale, di buona governance dichiarata nel questionario di Profilatura. Il suo private banker è a disposizione per ogni ulteriore chiarimento o approfondimento. Per maggiori dettagli in merito alle modalità e ai criteri di valutazione delladeguatezza del suo portafoglio si rimanda alla sezione «Avvertenze e Glossario».";
}
else
{
NotaDisclosure = $"La percentuale di prodotti finanziari ESG presenti nel portafoglio NON E COERENTE rispetto alla percentuale minima di Portafoglio che Lei ha scelto di destinare a investimenti volti a soddisfare le Preferenze di Sostenibilità - ambientale, sociale, di buona governance dichiarata nel questionario di Profilatura. La invitiamo a contattare il prima possibile il suo private banker per valutare le azioni necessarie a rendere coerente il suo portafoglio. Il suo private banker è a disposizione per ogni ulteriore chiarimento o approfondimento.";
}
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(NotaDisclosure, datitab.getX(), document.getLastPos() - 25, 500F, 40F, Globals.OpenTypeFontVerdana, fontSize + 1f));
//if (S178.isAdeguato.HasValue)
//{
// if (S178.isAdeguato.Value == true)
// {
// notapieTabella = $"Il suo private banker è a disposizione per ogni ulteriore chiarimento o approfondimento. Per maggiori dettagli in merito alle modalità e ai criteri di valutazione delladeguatezza del suo portafoglio si rimanda alla sezione «Avvertenze e Glossario».";
// }
// else
// {
// notapieTabella = $"La invitiamo a contattare il prima possibile il suo private banker per valutare le azioni necessarie a rendere coerente il suo portafoglio. Il suo private banker è a disposizione per ogni ulteriore chiarimento o approfondimento.";
// }
// //Nota a piè di tabella
// page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(notapieTabella, datitab.getX(), document.getLastPos() - 5, 500F, 30F, Globals.OpenTypeFontVerdana, fontSize + 1f));
//}
//COntrollo se la sezione successiva
//int currentId = Array.IndexOf(dataThread.SequenzaSezioniDaStampare, "S184");
//string nexIsS179 = dataThread.SequenzaSezioniDaStampare.ElementAtOrDefault(currentId + 1);
//if (!string.IsNullOrEmpty(nexIsS179) && nexIsS179.Equals("S170"))
// document.setLastPos(document.getLastPos() * -1);
//else
// document.setLastPos(tab.AltezzaTabella + 20);
//dataThread.AltezzaS184 = tab.AltezzaTabella + 20;
document.setLastPos((document.getLastPos() * -1));
document.setLastPos(document.getLastPos() + tab.AltezzaTabella + 150);
//document.setLastPos(document.getLastPos() - 230);
//document.setLastPos(document.getLastPos() *-1);
//if(dataThread.TipoReport.ToUpper().Equals("DIAGNOSI"))
document.nextPage(document.getMargineLeft());
}
}
#endregion
}
}