using System; using System.Collections.Generic; using System.Linq; using System.Text; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator.BusinessLayer; using PDFGenerator.Presentation.Section.Tables; using System.Data; namespace PDFGenerator.Presentation.Section { class S333 : 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 S333() { // // TODO: Add constructor logic here // } public void writeSezione(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; document.setSezTitolo(dataThread.SezioneReport.Titolo); DataSetS333 set = (DataSetS333)dataThread.Data.DatiSezione; if (set.Protetti.Rows.Count > 0) { if (document.checkMargin(100)) document.addPage(); //set.ProfiloVersatoNetto.Rows.Count string testo = dataThread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", dataThread.NomeRete); 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); } } private void CapitaleProtetto(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DataSetS333 set = (DataSetS333)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","Contratto " + riga["COD_CONF"], 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["DESCRIZIONE"] = riga["DES_PROD"]; 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; } } }