259 lines
11 KiB
C#
259 lines
11 KiB
C#
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 ceTe.DynamicPDF.PageElements;
|
|
using ceTe.DynamicPDF.Text;
|
|
using PDFGenerator.Presentation.Section.Charts;
|
|
using System.Data;
|
|
using ceTe.DynamicPDF;
|
|
|
|
namespace PDFGenerator.Presentation.Section
|
|
{
|
|
class S331 : ISezione
|
|
{
|
|
private string _titolo = string.Empty;
|
|
private string _testointroduttivo = string.Empty;
|
|
|
|
float dim = 0;
|
|
|
|
/// <summary>
|
|
/// Titolo della sezione
|
|
/// </summary>
|
|
public string Titolo
|
|
{
|
|
get
|
|
{
|
|
return _titolo;
|
|
}
|
|
set
|
|
{
|
|
_titolo = value;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Testo introduttivo della Sezione.
|
|
/// </summary>
|
|
public string TestoIntroduttivo
|
|
{
|
|
get
|
|
{
|
|
return _testointroduttivo;
|
|
}
|
|
set
|
|
{
|
|
_testointroduttivo = value;
|
|
}
|
|
}
|
|
|
|
|
|
public S331()
|
|
{
|
|
//
|
|
// TODO: Add constructor logic here
|
|
//
|
|
}
|
|
|
|
|
|
public void writeSezione(DataThread dataThread)
|
|
{
|
|
//DocumentPDF document = dataThread.DocumentPDF;
|
|
//document.setSezTitolo(dataThread.SezioneReport.Titolo);
|
|
//string tempTesto = dataThread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", dataThread.NomeRete);
|
|
//string tempTestoAlt = dataThread.SezioneReport.TestoIntroduttivoAlternativo.Replace("/$Banca$/", dataThread.NomeRete);
|
|
|
|
////if (dataThread.Rete.ToUpper() == "S")
|
|
//// {
|
|
//// tempTesto = tempTesto.Replace("Banca Fideuram", "Sanpaolo Invest");
|
|
//// tempTestoAlt = tempTesto.Replace("Banca Fideuram", "Sanpaolo Invest");
|
|
//// }
|
|
////setChapterHeader(string label, int x, int width, float font)
|
|
//document.setChapterHeader(tempTesto, 0, 520, 8);
|
|
|
|
|
|
//DataSetS331 set = (DataSetS331)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();
|
|
|
|
|
|
decimal totalePatrimonioCalcolato = 0;
|
|
decimal totaleControvaloreProtettoCalcolato = 0;
|
|
|
|
//totalePatrimonioCalcolato += Convert.ToDecimal(row["ControvaloreAttuale"]);
|
|
//totaleControvaloreProtettoCalcolato += Convert.ToDecimal(row["ControvaloreProtetto"]);
|
|
|
|
|
|
FormatNum conv = new FormatNum();
|
|
|
|
DocumentPDF document = dataThread.DocumentPDF;
|
|
DataSetS331 set = (DataSetS331)dataThread.Data.DatiSezione;
|
|
|
|
|
|
|
|
|
|
document.setSezTitolo(dataThread.SezioneReport.Titolo);
|
|
document.setChapterHeader(dataThread.SezioneReport.TestoIntroduttivo, 0, 520, 8);
|
|
|
|
|
|
|
|
float YTable = document.getLastPos();
|
|
float XTable = document.getMargineLeft();
|
|
|
|
DatiTabella datitab = new DatiTabella();
|
|
datitab.table = set.Tables["GraficoPiramide"];
|
|
datitab.SetRowDim(15);
|
|
|
|
Tabella tabellaDati = new Tabella(XTable, YTable);
|
|
tabellaDati.DimensioneLinea = 0;
|
|
tabellaDati.Header = true;
|
|
tabellaDati.AltezzaCella = 15;
|
|
tabellaDati.Datasource = datitab.table;
|
|
tabellaDati.Colonne.Add(new Colonna("areaBisogno", "Area di bisogno", 172, TipoAllineamento.SINISTRA, false, 9, false));
|
|
tabellaDati.Colonne.Add(new Colonna("controvalore", "Controvalore (€)", 85, TipoAllineamento.DESTRA,false, 9, false));
|
|
tabellaDati.Colonne.Add(new Colonna("controvaloreProtetto", "Controvalore protetto (€)", 90, TipoAllineamento.DESTRA, false, 9, false));
|
|
tabellaDati.Colonne.Add(new Colonna("contributoAllaProtezione", "Contributo alla protezione (%)", 165, TipoAllineamento.DESTRA, false, 9, false));
|
|
tabellaDati.Draw(datitab, document);
|
|
|
|
bool notaNeeded = false;
|
|
if (notaNeeded)
|
|
|
|
document.getCurrentPage().Elements.Add(new Label(Resource.Nota_TabellaEmittenti, XTable, YTable + tabellaDati.AltezzaTabella, 500F, 30F, Globals.OpenTypeFontVerdana, 8));
|
|
|
|
//document.addPage();
|
|
|
|
IEnumerable<DataRow> queryControvalore =
|
|
from controvalore in datitab.table.AsEnumerable()
|
|
select controvalore;
|
|
|
|
|
|
foreach (DataRow p in queryControvalore)
|
|
{
|
|
Console.WriteLine("controvalore letto: " + Convert.ToDecimal(p.Field<string>("controvalore")));
|
|
|
|
totalePatrimonioCalcolato += Convert.ToDecimal(p.Field<string>("controvalore"));
|
|
Console.WriteLine("totalePatrimonioCalcolato: " + totalePatrimonioCalcolato);
|
|
}
|
|
|
|
IEnumerable<DataRow> queryControvaloreProtetto =
|
|
from controvaloreProtetto in datitab.table.AsEnumerable()
|
|
select controvaloreProtetto;
|
|
|
|
foreach (DataRow cp in queryControvaloreProtetto)
|
|
{
|
|
Console.WriteLine("controvaloreprotetto letto: " + Convert.ToDecimal(cp.Field<string>("controvaloreProtetto")));
|
|
|
|
totaleControvaloreProtettoCalcolato += Convert.ToDecimal(cp.Field<string>("controvaloreProtetto"));
|
|
Console.WriteLine("totaleControvaloreProtettoCalcolato: " + totaleControvaloreProtettoCalcolato);
|
|
}
|
|
|
|
|
|
|
|
#region Piramide
|
|
//disegno la parte della piramide
|
|
Piramide modello = new Piramide();
|
|
modello.writeSezione(document);
|
|
#endregion
|
|
|
|
|
|
#region Grafico Istogramma
|
|
|
|
DatiGrafico dati = new DatiGrafico();
|
|
|
|
//ripopolo la datitab perché in uscita dalla draw precedente non ha più la quarta colonna che mi serve qui
|
|
//datitab.table = set.Tables["GraficoPiramide"];
|
|
|
|
DataView view = new DataView(datitab.table);
|
|
dati.dataTab = view.ToTable(false, "contributoAllaProtezione");
|
|
dati.setHeight(185);
|
|
//dati.setWidth(123);
|
|
dati.setWidth(160);
|
|
dati.ActLabelSeries();
|
|
//IstoDoppio isto = new IstoDoppio();
|
|
IstoDoppio331 isto = new IstoDoppio331();
|
|
|
|
|
|
//document.InsertGrafico(isto.getGrafico(dati), document.getMargineLeft() + 405, document.getLastPos() + 14);
|
|
//Istogramma isto = new Istogramma();
|
|
document.InsertGrafico(isto.getGrafico(dati),400, document.getLastPos() - 12);
|
|
//document.InsertGrafico(isto.getGrafico(dati), document.getMargineLeft() + 380, document.getLastPos() + 14);
|
|
|
|
#endregion
|
|
|
|
//intestazione grafico istogramma
|
|
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
|
this.headerChart(page, document.getMargineLeft() + 396, document.getLastPos()-6);
|
|
|
|
#region Totale Patrimonio
|
|
float marginePiramide = 37;
|
|
float x = document.getMargineLeft();
|
|
float y = document.getLastPos() + tabellaDati.AltezzaTabella + marginePiramide + 5;
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("TOTALE PATRIMONIO", x, y, 120, 10, Globals.OpenTypeFontVerdanaB, 9, ceTe.DynamicPDF.TextAlign.Right));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(totalePatrimonioCalcolato.ToString(), datitab.getX()+135, y, 120, 10, Globals.OpenTypeFontVerdanaB, 9, ceTe.DynamicPDF.TextAlign.Right));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(totaleControvaloreProtettoCalcolato.ToString(), datitab.getX() + 225, y, 120, 10, Globals.OpenTypeFontVerdanaB, 9, ceTe.DynamicPDF.TextAlign.Right));
|
|
|
|
|
|
//DataSetS331.TotalePatrimonioRow rowDSS331TotalePatrimonio;
|
|
//rowDSS331TotalePatrimonio = ds331.TotalePatrimonio.NewTotalePatrimonioRow();
|
|
|
|
//rowDSS331TotalePatrimonio.Descrizione = "TOTALE PATRIMONIO";
|
|
|
|
//decimal totalePatrimonio = totalePatrimonioCalcolato;
|
|
//rowDSS331TotalePatrimonio.ControValore = conv.ConvertNum(totalePatrimonio);
|
|
|
|
//decimal totaleControvaloreProtetto = totaleControvaloreProtettoCalcolato;
|
|
//rowDSS331TotalePatrimonio.ControvaloreProtetto = conv.ConvertNum(totaleControvaloreProtetto);
|
|
|
|
//ds331.TotalePatrimonio.AddTotalePatrimonioRow(rowDSS331TotalePatrimonio);
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
//aggiungo la nota incondizionatamente
|
|
dim += (datitab.GetRowDim() * datitab.getNumRow()) + 100;
|
|
addNota(document);//vedi s134.cs
|
|
|
|
|
|
document.setHeaderSpace(0);
|
|
document.addPage();
|
|
|
|
}
|
|
|
|
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''");
|
|
//FC 26062015 Aggionamento nuova Ragione Sociale
|
|
doc.setSezFooter("(*)Le linee protette ''Fideuram Vita Insieme My Protection 80 Credit Suisse'' e ''Fideuram Vita Insieme My Protection 80 Citigroup'' che lei detiene presso Fideuram, prevedono una protezione del capitale pari all'80% del controvalore massimo raggiunto dalla data di partenza: il ''controvalore protetto'' è stato distribuito sulle aree di bisogno sulla base del peso percentuale del controvalore del singolo fondo, rispetto al controvalore complessivo della linea, disponibile al momento della produzione del report.",dim);
|
|
//doc.StampaNote("(*) Alcuni prodotti non rientrano nel calcolo del rendimento. Il dettaglio del patrimonio non considerato viene fornito nel capitolo ''Patrimonio non rappresentabile''");
|
|
}
|
|
|
|
private void headerChart(ceTe.DynamicPDF.Page page, float x, float y)
|
|
{
|
|
//Header grafico a farfalla
|
|
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(x + 100, y + 2, 10, 5, 0, new RgbColor(121, 142, 185)));
|
|
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(x + 100, y - 9, 10, 5, 0, new RgbColor(239, 65, 53)));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Contributo alla protezione (%)", x-30, y, 140, 10, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Right));
|
|
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Piramide Attuale", x - 25, y - 11, 120, 10, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Right));
|
|
//////
|
|
}
|
|
}
|
|
} |