using System; using System.Collections.Generic; using System.Linq; using System.Text; using PDFGenerator.BusinessLayer; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator.Presentation.Section.Tables; using System.Data; namespace PDFGenerator.Presentation.Section { class S334: ISezione { private string _titolo = string.Empty; private string _testointroduttivo = string.Empty; /// /// Titolo della sezione /// public string Titolo { get { return _titolo; } set { _titolo = value; } } /// /// Testo introduttivo della Sezione. /// public string TestoIntroduttivo { get { return _testointroduttivo; } set { _testointroduttivo = value; } } public S334() { // // TODO: Add constructor logic here // } public void writeSezione(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; document.setSezTitolo(dataThread.SezioneReport.Titolo); //DataSetS137 set = (DataSetS137)dataThread.Data.DatiSezione; DataSetS334 set = (DataSetS334)dataThread.Data.DatiSezione; //ToDo //if (dataThread.TipoContratto != TipoContratto.Private) //{ // if ( (set.Protetti.Rows.Count == 1)) // { // if (document.checkMargin(280)) // document.addPage(); // } // else // { // if (document.checkMargin(260)) // document.addPage(); // } //} if (set.Protetti.Rows.Count > 0) { if (document.checkMargin(100)) document.addPage(); string testo = dataThread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", dataThread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"); ; testo = testo.Replace("$/Prodotto/$", set.Protetti.Rows[0]["DES_PROD"].ToString()); testo = testo.Replace("$/QMaxPerc/$", set.Protetti.Rows[0]["QUOTA_MAX_PERC"].ToString()); document.setChapterHeader(testo, 0, 520, 8); CapitaleProtetto(dataThread); //addNota(document); } //document.setChapterHeader(tempTesto, 0, 520, 8); //DataSetS334 set = (DataSetS334)dataThread.Data.DatiSezione; //document.setHeaderSpace(35); //document.writeText(document.getMargineLeft() - 5, document.getLastPos(), tempTestoAlt, 8, 520, ceTe.DynamicPDF.TextAlign.Justify); ////document.setHeaderSpace(60); //document.setLastPos(40); //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("(*) Grado di copertura: ", 5, 7, 7, 7)); //document.addPage(); //DocumentPDF document = dataThread.DocumentPDF; //DataSetS137 set = (DataSetS137)dataThread.Data.DatiSezione; //float htestosotto = 0; //for (int r = 0; r < set.Protetti.Rows.Count; r++) //{ // Tabella tabellaDati = new Tabella(); // tabellaDati.HeaderFont = 8; // DataRow riga = set.Protetti.Rows[r]; // if (r == set.Protetti.Rows.Count - 1) htestosotto = 100; // if (document.checkMargin((tabellaDati.AltezzaCella * 4) + htestosotto)) // document.addPage(); // tabellaDati.Header = true; // tabellaDati.Y = document.getLastPos(); // tabellaDati.X = document.getMargineLeft(); // tabellaDati.Colonne.Add(new Colonna("DESCRIZIONE", "Descrizione", 232, TipoAllineamento.SINISTRA, false, 7, false)); // tabellaDati.Colonne.Add(new Colonna("QUOTA", "Quota (€)", 60, TipoAllineamento.DESTRA, false, 7, false)); // tabellaDati.Colonne.Add(new Colonna("NUMEROQUOTE", "Numero Quote", 60, TipoAllineamento.DESTRA, false, 7, false)); // tabellaDati.Colonne.Add(new Colonna("CONTROVALORE", "Controvalore (€)", 90, TipoAllineamento.DESTRA, false, 7, false)); // tabellaDati.Colonne.Add(new Colonna("DATARIF", "Data di riferimento", 70, TipoAllineamento.DESTRA, false, 7, false)); // tabellaDati.Draw(new DatiTabella(TabellaCapitaleProtetto(riga)), document); // document.setLastPos(tabellaDati.AltezzaTabella - 15); //} //string nota = dataThread.SezioneReport.NotaAlternativa; //nota = nota.Replace("$/QMaxPerc/$", set.Protetti.Rows[0]["QUOTA_MAX_PERC"].ToString()); //document.setChapterHeader(nota, 0, 520, 8); } private void CapitaleProtetto(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DataSetS334 set = (DataSetS334)dataThread.Data.DatiSezione; float htestosotto = 0; for (int r = 0; r < set.Protetti.Rows.Count; r++) { Tabella tabellaDati = new Tabella(); tabellaDati.HeaderFont = 8; DataRow riga = set.Protetti.Rows[r]; if (r == set.Protetti.Rows.Count - 1) htestosotto = 100; if (document.checkMargin((tabellaDati.AltezzaCella * 4) + htestosotto)) document.addPage(); tabellaDati.Header = true; tabellaDati.Y = document.getLastPos(); tabellaDati.X = document.getMargineLeft(); string titoloDescrizione = null; switch ( riga["TIP_PROD"].ToString() ) { case "ASU1" : //switch per codice sotto prodotto RS RV RM per gestione label titoloDescrizione = "Fideuram Vita Insieme Premium " + "Contratto " + riga["Cod_Conf"]; break; case "GP": titoloDescrizione = "GP Eligo Fondi " + "Contratto " + riga["Cod_Conf"]; break; default: titoloDescrizione = "Contratto " + riga["Cod_Conf"]; break; } tabellaDati.Colonne.Add(new Colonna("DESCRIZIONE", titoloDescrizione, 232, TipoAllineamento.SINISTRA, false, 7, false)); tabellaDati.Colonne.Add(new Colonna("QUOTA", "Quota (€)", 60, TipoAllineamento.DESTRA, false, 7, false)); tabellaDati.Colonne.Add(new Colonna("NUMEROQUOTE", "Numero Quote", 60, TipoAllineamento.DESTRA, false, 7, false)); tabellaDati.Colonne.Add(new Colonna("CONTROVALORE", "Controvalore (€)", 90, TipoAllineamento.DESTRA, false, 7, false)); tabellaDati.Colonne.Add(new Colonna("DATARIF", "Data di riferimento", 70, TipoAllineamento.DESTRA, false, 7, false)); tabellaDati.Draw(new DatiTabella(TabellaCapitaleProtetto(riga)), document); document.setLastPos(tabellaDati.AltezzaTabella - 15); } string nota = dataThread.SezioneReport.NotaAlternativa; nota = "(*) La quota protetta è pari all’80% della quota massima giornaliera raggiunta dal fondo dalla data di partenza: la quota massima potrebbe variare in funzione delle condizioni di mercato. Il controvalore protetto è calcolato ipotizzando che il numero delle quote si mantenga costante nel tempo e sia quindi uguale a quello disponibile alla data di produzione del report: il numero delle quote potrebbe variare nel tempo in seguito a movimentazione da parte del cliente o in seguito ad attività di ribilanciamento, prevista dal contratto."; //nota = nota.Replace("$/QMaxPerc/$", set.Protetti.Rows[0]["QUOTA_MAX_PERC"].ToString()); document.setChapterHeader(nota, 0, 520, 8); } private DataTable TabellaCapitaleProtetto(DataRow riga) { DataTable dt = new DataTable(); dt.Columns.Add("DESCRIZIONE"); dt.Columns.Add("QUOTA"); dt.Columns.Add("NUMEROQUOTE"); dt.Columns.Add("CONTROVALORE"); dt.Columns.Add("DATARIF"); DataRow dr = dt.NewRow(); dr["DESCRIZIONE"] = riga["DES_PROD"];// +" " + riga["COD_CONF"]; dr["QUOTA"] = riga["QUOTA"]; dr["NUMEROQUOTE"] = riga["NUMEROQUOTE"]; dr["CONTROVALORE"] = riga["CONTROVALORE"]; dr["DATARIF"] = riga["DATARIF"]; dt.Rows.Add(dr); dr = dt.NewRow(); dr["DESCRIZIONE"] = riga["DES_MAX"]; dr["QUOTA"] = riga["QUOTA_MAX"]; dr["NUMEROQUOTE"] = "-"; dr["CONTROVALORE"] = "-"; dr["DATARIF"] = riga["DATARIF_MAX"]; dt.Rows.Add(dr); dr = dt.NewRow(); dr["DESCRIZIONE"] = riga["DES_PROT"]; dr["QUOTA"] = riga["QUOTA_PROT"]; dr["NUMEROQUOTE"] = riga["NUMEROQUOTE_PROT"]; dr["CONTROVALORE"] = riga["CONTROVALORE_PROT"]; dr["DATARIF"] = "-"; dt.Rows.Add(dr); return dt; } private void addNota(DocumentPDF doc) { FormatNum con = new FormatNum(); //doc.setNotaPièDiPagina("(*) Alcuni prodotti non rientrano nel calcolo del rendimento. Il dettaglio del patrimonio non considerato viene fornito nel capitolo ''Patrimonio non rappresentabile''"); doc.setSezFooter("",80); //doc.StampaNote("(*) Alcuni prodotti non rientrano nel calcolo del rendimento. Il dettaglio del patrimonio non considerato viene fornito nel capitolo ''Patrimonio non rappresentabile''"); } } }