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 dell’adeguatezza 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 dell’adeguatezza 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 } }