315 lines
19 KiB
C#
315 lines
19 KiB
C#
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 ceTe.DynamicPDF.Merger;
|
||
|
||
namespace PDFGenerator.Presentation.Section
|
||
{
|
||
public class S165 : ISezione
|
||
{
|
||
|
||
DataThread dsParam = null;
|
||
string notaGradoCopertura = string.Empty;
|
||
ImportedPage page;
|
||
|
||
public S165()
|
||
{
|
||
//
|
||
// TODO: Add constructor logic here
|
||
//
|
||
}
|
||
|
||
|
||
|
||
public void writeSezione(DataThread dataThread)
|
||
{
|
||
|
||
DocumentPDF document = dataThread.DocumentPDF;
|
||
|
||
DatiTabella datitab = new DatiTabella();
|
||
DataSetS165 set = (DataSetS165)dataThread.Data.DatiSezione;
|
||
datitab.table = set.Tables["Fondi"];
|
||
dsParam = dataThread;
|
||
|
||
if (document.checkMargin(datitab.GetRowDim() * (datitab.getNumRow() + 3)))
|
||
document.addPage();
|
||
document.setTitolo(dataThread.SezioneReport.Titolo);
|
||
|
||
Tabella tabellaDati = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabellaDati.HeaderFont = 8;
|
||
tabellaDati.Header = true;
|
||
tabellaDati.Datasource = datitab.table;
|
||
tabellaDati.Id = "tabellaS50";
|
||
tabellaDati.AltezzaCella = 30;
|
||
|
||
#region Settaggio delle Note di piè di pagina, delle note a piedi della tabella e degli * per i varProxati
|
||
|
||
//Imposto le nota a pie di pagina.
|
||
ImpostaNote(datitab.table, tabellaDati.Id, ref document);
|
||
|
||
|
||
//Nota a piedi della tabella
|
||
// Imposto la nota a piedi della Tabella
|
||
notaGradoCopertura = datitab.table.Rows[0]["Copertura"] == DBNull.Value ? string.Empty : datitab.table.Rows[0]["Copertura"].ToString();
|
||
if (notaGradoCopertura.Length > 0)
|
||
{
|
||
document.Note.Add(new Nota(Nota.TipologiaNota.GradoCopertura, tabellaDati.Id, notaGradoCopertura));
|
||
tabellaDati.NotaTabella.Add(document.Note.Find(Nota.TipologiaNota.GradoCopertura, tabellaDati.Id).Testo);
|
||
}
|
||
|
||
|
||
#endregion
|
||
|
||
|
||
if (dataThread.NumeroIntermediari > 1)
|
||
{
|
||
tabellaDati.Colonne.Add(new Colonna("Intermediario", "Intermediario", 105, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("DataSottoscrizione", "Data sott.", 55, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Descrizione", "Descrizione", 157, TipoAllineamento.SINISTRA, false, 7, false));
|
||
//tabellaDati.Colonne.Add(new Colonna("Aggiornamento", "Aggiornamento", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 50, TipoAllineamento.DESTRA, false, 7, false));
|
||
}
|
||
else
|
||
{
|
||
tabellaDati.Colonne.Add(new Colonna("DataSottoscrizione", "Data sott.", 55, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Descrizione", "Descrizione", 97, TipoAllineamento.SINISTRA, false, 7, false));
|
||
//tabellaDati.Colonne.Add(new Colonna("Aggiornamento", "Aggiornamento", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("TipoVersamento", "Tipo di versamento", 85, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Ammontare", "Ammontare versamento", 80, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabellaDati.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 50, TipoAllineamento.DESTRA, false, 7, false));
|
||
}
|
||
datitab.setCellSpace(0);
|
||
|
||
|
||
tabellaDati.Draw(datitab, document);
|
||
|
||
|
||
datitab = new DatiTabella();
|
||
datitab.table = set.Tables["FondiTotale"];
|
||
|
||
|
||
|
||
Tabella tabellaTotale = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDati.AltezzaTabella + 25);
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabellaTotale.HeaderFont = 8;
|
||
tabellaTotale.SaltoPagina = false;
|
||
tabellaTotale.Header = false;
|
||
if (dataThread.NumeroIntermediari > 1)
|
||
{
|
||
tabellaTotale.Colonne.Add(new Colonna("Totale", "", 317, TipoAllineamento.SINISTRA, true, 8, true));
|
||
tabellaTotale.Colonne.Add(new Colonna("Controvalore", "", 80, TipoAllineamento.DESTRA, true, 8, true));
|
||
tabellaTotale.Colonne.Add(new Colonna("Var", "", 115, TipoAllineamento.DESTRA, true, 8, true));
|
||
}
|
||
else
|
||
{
|
||
tabellaTotale.Colonne.Add(new Colonna("Totale", "", 152, TipoAllineamento.SINISTRA, true, 8, true));
|
||
tabellaTotale.Colonne.Add(new Colonna("Controvalore", "", 80, TipoAllineamento.DESTRA, true, 8, true));
|
||
tabellaTotale.Colonne.Add(new Colonna("Var", "", 280, TipoAllineamento.DESTRA, true, 8, true));
|
||
}
|
||
|
||
string sVerticalText = "";
|
||
ceTe.DynamicPDF.PageElements.TextArea testoPaginaVerticale = null;
|
||
sVerticalText = "Le eventuali informazioni riguardanti investimenti da lei detenuti presso altri intermediari vengono elaborate secondo le indicazioni da lei ";
|
||
//if (dataThread.Rete.Equals("F"))
|
||
//{
|
||
// sVerticalText = sVerticalText + "fornite e/ o disponibili sul mercato, per le quali Fideuram non garantisce la completezza e la veridicità. ";
|
||
// sVerticalText = sVerticalText + "La preghiamo di comunicare a Fideuram ogni successiva variazione a tali informazioni, al fine di consentire a Fideuram la correzione e l’aggiornamento dei dati contenuti ";
|
||
// sVerticalText = sVerticalText + "nel presente report.Gli investimenti detenuti presso altri intermediari vengono utilizzati da Fideuram con finalità meramente informative e secondo le indicazioni da lei fornite, ";
|
||
// sVerticalText = sVerticalText + "in modo da offrire una rappresentazione unitaria degli investimenti, senza con ciò formare oggetto di raccomandazioni personalizzate o di rendicontazione ufficiale.";
|
||
//}
|
||
//else
|
||
//{
|
||
// sVerticalText = sVerticalText + "fornite e/ o disponibili sul mercato, per le quali Sanpaolo Invest SIM non garantisce la completezza e la veridicità. ";
|
||
// sVerticalText = sVerticalText + "La preghiamo di comunicare a Sanpaolo Invest SIM ogni successiva variazione a tali informazioni, al fine di consentire a Sanpaolo Invest SIM la correzione e l’aggiornamento dei dati contenuti ";
|
||
// sVerticalText = sVerticalText + "nel presente report.Gli investimenti detenuti presso altri intermediari vengono utilizzati da Sanpaolo Invest SIM con finalità meramente informative e secondo le indicazioni da lei fornite, ";
|
||
// sVerticalText = sVerticalText + "in modo da offrire una rappresentazione unitaria degli investimenti, senza con ciò formare oggetto di raccomandazioni personalizzate o di rendicontazione ufficiale.";
|
||
//}
|
||
|
||
//************************************** Cecco modifiche dicitura IWBANK***********************************
|
||
switch (dataThread.Rete)
|
||
{
|
||
case "F":
|
||
{
|
||
sVerticalText = sVerticalText + "fornite e/ o disponibili sul mercato, per le quali Fideuram non garantisce la completezza e la veridicità. ";
|
||
sVerticalText = sVerticalText + "La preghiamo di comunicare a Fideuram ogni successiva variazione a tali informazioni, al fine di consentire a Fideuram la correzione e l’aggiornamento dei dati contenuti ";
|
||
sVerticalText = sVerticalText + "nel presente report.Gli investimenti detenuti presso altri intermediari vengono utilizzati da Fideuram con finalità meramente informative e secondo le indicazioni da lei fornite, ";
|
||
sVerticalText = sVerticalText + "in modo da offrire una rappresentazione unitaria degli investimenti, senza con ciò formare oggetto di raccomandazioni personalizzate o di rendicontazione ufficiale.";
|
||
break;
|
||
}
|
||
case "S":
|
||
{
|
||
sVerticalText = sVerticalText + "fornite e/ o disponibili sul mercato, per le quali Fideuram S.p.A. non garantisce la completezza e la veridicità. ";
|
||
sVerticalText = sVerticalText + "La preghiamo di comunicare a Fideuram S.p.A. ogni successiva variazione a tali informazioni, al fine di consentire alla Banca la correzione e l’aggiornamento dei dati contenuti ";
|
||
sVerticalText = sVerticalText + "nel presente report.Gli investimenti detenuti presso altri intermediari vengono utilizzati da Fideuram S.p.A., tramite la ‘‘rete di private banker Sanpaolo Invest’’ con finalità meramente informative e secondo le indicazioni da lei fornite, ";
|
||
sVerticalText = sVerticalText + "in modo da offrire una rappresentazione unitaria degli investimenti, senza con ciò formare oggetto di raccomandazioni personalizzate o di rendicontazione ufficiale.";
|
||
break;
|
||
}
|
||
case "W":
|
||
{
|
||
sVerticalText = sVerticalText + "fornite e/ o disponibili sul mercato, per le quali IW Private Investments non garantisce la completezza e la veridicità. ";
|
||
sVerticalText = sVerticalText + "La preghiamo di comunicare a IW Private Investments ogni successiva variazione a tali informazioni, al fine di consentire a IW Private Investments la correzione e l’aggiornamento dei dati contenuti ";
|
||
sVerticalText = sVerticalText + "nel presente report.Gli investimenti detenuti presso altri intermediari vengono utilizzati da IW Private Investments con finalità meramente informative e secondo le indicazioni da lei fornite, ";
|
||
sVerticalText = sVerticalText + "in modo da offrire una rappresentazione unitaria degli investimenti, senza con ciò formare oggetto di raccomandazioni personalizzate o di rendicontazione ufficiale.";
|
||
break;
|
||
}
|
||
}
|
||
//*********************************************************************************************
|
||
|
||
testoPaginaVerticale = new ceTe.DynamicPDF.PageElements.TextArea(sVerticalText, document.getMargineLeft() - 30, 750, 620, 100)
|
||
{
|
||
Angle = 270,
|
||
Align = ceTe.DynamicPDF.TextAlign.Justify,
|
||
FontSize = 5
|
||
};
|
||
|
||
page = document.getCurrentPage();
|
||
page.Elements.Add(testoPaginaVerticale);
|
||
|
||
tabellaTotale.Draw(datitab, document);
|
||
|
||
// setto la posizione aggiornata
|
||
document.setLastPos(tabellaTotale.AltezzaTabella + tabellaDati.AltezzaTabella);
|
||
}
|
||
|
||
|
||
//public void writeSezioneOLD(DataThread dataThread)
|
||
//{
|
||
|
||
// DocumentPDF document = dataThread.DocumentPDF;
|
||
|
||
// DatiTabella datitab = new DatiTabella();
|
||
// DataSetS165 set = (DataSetS165)dataThread.Data.DatiSezione;
|
||
// datitab.table = set.Tables["Fondi"];
|
||
// dsParam = dataThread;
|
||
|
||
// if (document.checkMargin(datitab.GetRowDim() * (datitab.getNumRow() + 3)))
|
||
// document.addPage();
|
||
// document.setTitolo(dataThread.SezioneReport.Titolo);
|
||
|
||
// Tabella tabellaDati = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
// if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabellaDati.HeaderFont = 8;
|
||
// tabellaDati.Header = true;
|
||
// tabellaDati.Datasource = datitab.table;
|
||
// tabellaDati.Id = "tabellaS50";
|
||
// tabellaDati.AltezzaCella = 30;
|
||
|
||
// #region Settaggio delle Note di piè di pagina, delle note a piedi della tabella e degli * per i varProxati
|
||
|
||
// //Imposto le nota a pie di pagina.
|
||
// ImpostaNote(datitab.table, tabellaDati.Id, ref document);
|
||
|
||
|
||
// //Nota a piedi della tabella
|
||
// // Imposto la nota a piedi della Tabella
|
||
// notaGradoCopertura = datitab.table.Rows[0]["Copertura"] == DBNull.Value ? string.Empty : datitab.table.Rows[0]["Copertura"].ToString();
|
||
// if (notaGradoCopertura.Length > 0)
|
||
// {
|
||
// document.Note.Add(new Nota(Nota.TipologiaNota.GradoCopertura, tabellaDati.Id, notaGradoCopertura));
|
||
// tabellaDati.NotaTabella.Add(document.Note.Find(Nota.TipologiaNota.GradoCopertura, tabellaDati.Id).Testo);
|
||
// }
|
||
|
||
|
||
// #endregion
|
||
|
||
|
||
// if (dataThread.NumeroIntermediari > 1)
|
||
// {
|
||
// tabellaDati.Colonne.Add(new Colonna("Intermediario", "Intermediario", 105, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("DataSottoscrizione", "Data sott.", 55, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Descrizione", "Descrizione", 157, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// //tabellaDati.Colonne.Add(new Colonna("Aggiornamento", "Aggiornamento", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 50, TipoAllineamento.DESTRA, false, 7, false));
|
||
// }
|
||
// else
|
||
// {
|
||
// tabellaDati.Colonne.Add(new Colonna("DataSottoscrizione", "Data sott.", 55, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Descrizione", "Descrizione", 97, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// //tabellaDati.Colonne.Add(new Colonna("Aggiornamento", "Aggiornamento", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("TipoVersamento", "Tipo di versamento", 85, TipoAllineamento.SINISTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Ammontare", "Ammontare versamento", 80, TipoAllineamento.DESTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
|
||
// tabellaDati.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 50, TipoAllineamento.DESTRA, false, 7, false));
|
||
// }
|
||
// datitab.setCellSpace(0);
|
||
|
||
|
||
// tabellaDati.Draw(datitab, document);
|
||
|
||
|
||
// datitab = new DatiTabella();
|
||
// datitab.table = set.Tables["FondiTotale"];
|
||
|
||
|
||
|
||
// Tabella tabellaTotale = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDati.AltezzaTabella + 25);
|
||
// if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabellaTotale.HeaderFont = 8;
|
||
// tabellaTotale.SaltoPagina = false;
|
||
// tabellaTotale.Header = false;
|
||
// if (dataThread.NumeroIntermediari > 1)
|
||
// {
|
||
// tabellaTotale.Colonne.Add(new Colonna("Totale", "", 317, TipoAllineamento.SINISTRA, true, 8, true));
|
||
// tabellaTotale.Colonne.Add(new Colonna("Controvalore", "", 80, TipoAllineamento.DESTRA, true, 8, true));
|
||
// tabellaTotale.Colonne.Add(new Colonna("Var", "", 115, TipoAllineamento.DESTRA, true, 8, true));
|
||
// }
|
||
// else
|
||
// {
|
||
// tabellaTotale.Colonne.Add(new Colonna("Totale", "", 152, TipoAllineamento.SINISTRA, true, 8, true));
|
||
// tabellaTotale.Colonne.Add(new Colonna("Controvalore", "", 80, TipoAllineamento.DESTRA, true, 8, true));
|
||
// tabellaTotale.Colonne.Add(new Colonna("Var", "", 280, TipoAllineamento.DESTRA, true, 8, true));
|
||
// }
|
||
|
||
|
||
|
||
// tabellaTotale.Draw(datitab, document);
|
||
|
||
// // setto la posizione aggiornata
|
||
// document.setLastPos(tabellaTotale.AltezzaTabella + tabellaDati.AltezzaTabella);
|
||
//}
|
||
|
||
|
||
/// <summary>
|
||
/// Verifica se nel datatable passato in input è presente almeno un campo della colonna VarProxato con valore 1.
|
||
/// Se si aggiungo al documento un oggetto Nota di tipo VarProxato e aggiungo al valore del campo VaR gli *.
|
||
/// La S50 può avere le note a fondo pagina solo per i var proxati.
|
||
/// </summary>
|
||
/// <param name="dataTable">fonte dati</param>
|
||
/// <param name="idtabellaassociata">id della tabella a cui andrà associata la nota</param>
|
||
/// <param name="document">documento</param>
|
||
private void ImpostaNote(DataTable dataTable, string idtabellaassociata, ref DocumentPDF document)
|
||
{
|
||
DataRow[] drVarProxato = dataTable.Select("VarProxato=1");
|
||
|
||
if (drVarProxato.Length > 0)
|
||
if (!document.Note.Exists(delegate(Nota t) { return t.TipoNota == Nota.TipologiaNota.VarProxato; }))
|
||
document.Note.Add(new Nota(Nota.TipologiaNota.VarProxato, idtabellaassociata, Resource.Nota_VarProxato));
|
||
|
||
//aggiungo al valore del campo VaR gli *
|
||
foreach (DataRow row in drVarProxato)
|
||
{
|
||
if (row["VaR"].ToString().ToLower() != "n.c.")
|
||
row["VaR"] += document.Note.Find(delegate(Nota nota) { return nota.TipoNota == Nota.TipologiaNota.VarProxato; }).ToString();
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
} |