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);
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''");
}
}
}