using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using ceTe.DynamicPDF.Merger;
using PDFGenerator.BusinessLayer.DataSection;
using PDFGenerator.Presentation.Section.Tables;
using PDFGenerator.BusinessLayer;
using ceTe.DynamicPDF.Text;
using PDFGenerator.Presentation.Section;
namespace PDFGenerator.Presentation.Section
{
public class S43BIS : ISezione
{
string Titolo = " ";
DataSetS43BIS set;
ImportedPage page;
private bool _versatonetto_utileperdita = false;
private bool _mostrarendimentodainizioanno = false;
private bool _mostrarendimentodadatasottoscrizione = false;
// private bool _mostratitolosezione = false;
private TipoReport _tipologiaReport = TipoReport.MONITORAGGIO; // la S43BIS è usata solo per il monitoraggio fase 2 (monitoraggio senza albero.)
public S43BIS()
{
}
string _Area;
string _Progetto;
#region ISezione Members
public void writeSezione(DataThread dataThread)
{
DocumentPDF document = dataThread.DocumentPDF;
DatiTabella datitab = new DatiTabella();
set = (DataSetS43BIS)dataThread.Data.DatiSezione;
//if (document.checkMargin(datitab.GetRowDim() * 5)) {
// document.addPage();
//}
dataThread.UltimaSezioneStampata = "";
page = document.getCurrentPage();
DataView view;
if (_Area == null || _Area == "Liq")
{
datitab.table = set.Tables["ProdottiAreeBisogno"];
view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = 'Liq'");
if (view.Count > 0)
{
if (document.checkMargin(datitab.GetRowDim() * 4))
document.addPage();
this.writeArea(datitab, document, "Liq", dataThread);
}
}
if (Area == null || Area == "Ris")
{
datitab.table = set.Tables["ProdottiAreeBisogno"];
view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = 'Ris'");
if (view.Count > 0) {
if (document.checkMargin(datitab.GetRowDim() * 4))
document.addPage();
this.writeArea(datitab, document, "Ris", dataThread);
}
}
if (Area == null || Area == "Pre")
{
datitab.table = set.Tables["ProdottiAreeBisogno"];
view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = 'Pre'");
if (view.Count > 0) {
if (document.checkMargin(datitab.GetRowDim() * 4))
document.addPage();
this.writeArea(datitab, document, "Pre", dataThread);
}
}
if (Area == null || Area == "Inv")
{
datitab.table = set.Tables["ProdottiAreeBisogno"];
view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = 'Inv'");
if (view.Count > 0) {
if (document.checkMargin(datitab.GetRowDim() * 4))
document.addPage();
this.writeAreaProgetto(datitab, document, "Inv", dataThread.Progetto, dataThread);
}
}
if (Area == null || Area == "Ext")
{
datitab.table = set.Tables["ProdottiAreeBisogno"];
view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = 'Ext'");
if (view.Count > 0)
{
if (document.checkMargin(datitab.GetRowDim() * 4))
document.addPage();
this.writeArea(datitab, document, "Ext", dataThread);
}
}
if (Area == null || Area == "Na")
{
// Risorse non associate
datitab.table = set.Tables["ProdottiAreeBisogno"];
view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = 'Na'");
if (view.Count > 0) {
if (Area == null)
if (document.checkMargin(datitab.GetRowDim() * 4))
document.addPage();
this.writeArea(datitab, document, "Na", dataThread);
}
}
}
#endregion
///
/// Disegna la tabella per il dettaglio monitoraggio x Area.
///
///
///
///
private void writeArea(DatiTabella datitab, DocumentPDF document, string area, DataThread dataThread)
{
float dim = 0;
page = document.getCurrentPage();
FormatNum conv = new FormatNum();
string notaGradoCopertura = string.Empty;
//setta la datatable
datitab.table = set.Tables["ProdottiAreeBisogno"];
// filtro per l'area
DataView view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = '" + area + "'");
datitab.table = view.ToTable();
#region Tabella Dati
// Disegno la tabella
Tabella tabellaDettaglio_Area = new Tabella(document.getMargineLeft(), document.getLastPos());
tabellaDettaglio_Area.HeaderFont = 8;
tabellaDettaglio_Area.Header = true;
tabellaDettaglio_Area.Datasource = datitab.table;
tabellaDettaglio_Area.Id = "tabella_S43BIS" + area;
tabellaDettaglio_Area.AltezzaCella = 30;
#region Settaggio delle Note di piè di pagina e delle note a piedi della tabella
//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, tabellaDettaglio_Area.Id, notaGradoCopertura));
tabellaDettaglio_Area.NotaTabella.Add(document.Note.Find(Nota.TipologiaNota.GradoCopertura, tabellaDettaglio_Area.Id).Testo);
}
#endregion
tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data assoc.", 60, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 87, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("", " ", 5, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("VersatoNetto", "Versato netto
da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("UtilePerdita", "Utile/perdita
da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("CreditRisk", "Rischio
Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Var", "Rischio
(VaR %)", 55, TipoAllineamento.DESTRA, false, 7, false));
// Scrivo la tabella tabella Dati
tabellaDettaglio_Area.Draw(datitab, document);
#endregion Tabella Dati
#region Tabella Totali
datitab = new DatiTabella();
datitab.table = set.Tables["ProdottiTotale"];
datitab.CellClear();
//Imposto gli asterischi di rimando nel caso in cui sia presente la nota del grado copertura
if (notaGradoCopertura.Length > 0)
datitab.table.Rows[0]["Var"] = datitab.table.Rows[0]["Var"].ToString() + document.Note.Find(Nota.TipologiaNota.GradoCopertura, tabellaDettaglio_Area.Id).ToString();
Tabella tabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDettaglio_Area.AltezzaTabella + 25);
tabellaTotali_Area.HeaderFont = 8;
tabellaTotali_Area.Header = false;
tabellaTotali_Area.SaltoPagina = false;
tabellaTotali_Area.Colonne.Add(new Colonna("Totale", "", 122, TipoAllineamento.SINISTRA, true, 8, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Controvalore", "", 110, TipoAllineamento.DESTRA, true, 8, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Var", "", 280, TipoAllineamento.DESTRA, true, 8, true));
// it should fix problem
if (document.checkMargin(datitab.GetRowDim() * 4 + 20)) // + 20 because of '(*) Grado di copertura: 80,29%'
document.addPage();
// Scrive la tabella Totali
tabellaTotali_Area.Draw(datitab, document);
dim = tabellaTotali_Area.AltezzaTabella + tabellaDettaglio_Area.AltezzaTabella;
document.setLastPos(dim);
#endregion
}
///
/// Disegna la tabella per il dettaglio monitoraggio x Area/Progetto.
/// Usata per area Investimento.
///
///
///
///
private void writeAreaProgetto(DatiTabella datitab, DocumentPDF document, string area, string nomeprogetto, DataThread dataThread)
{
//bool checkPartiteViaggiantiCrossProgetto = false;
FormatNum conv = new FormatNum();
float dim = 0;
page = document.getCurrentPage();
//decimal totProgetto = 0;
// string varProgetto = " ";
//bool stampatatabellaTitoloProgetto = false;
// float ytabella = 0; // unico incremento per la y di tutte le tabelle.
string notaGradoCopertura = string.Empty;
//Tabella tabellaDatiProgetto = null;
//Tabella tabTotali = null;
//setta la datatable
datitab.table = set.Tables["ProdottiAreeBisogno"];
// filtro per l'area
DataView view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = '" + area + "' and Progetto='" + nomeprogetto.Replace("'", "''") + "'");
datitab.table = view.ToTable();
if (datitab.table.Rows.Count > 0)
{
#region Tabella Dati
// Disegno la tabella
//Tabella tabellaDettaglio_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + ytabella);
Tabella tabellaDettaglio_Area = new Tabella(document.getMargineLeft(), document.getLastPos());
tabellaDettaglio_Area.HeaderFont = 8;
tabellaDettaglio_Area.Header = true;
tabellaDettaglio_Area.Datasource = datitab.table;
tabellaDettaglio_Area.Id = "tabella_S43BIS" + area + "_" + nomeprogetto;
tabellaDettaglio_Area.AltezzaCella = 30;
#region Settaggio delle Note a piedi della tabella
//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, tabellaDettaglio_Area.Id, notaGradoCopertura));
tabellaDettaglio_Area.NotaTabella.Add(document.Note.Find(Nota.TipologiaNota.GradoCopertura, tabellaDettaglio_Area.Id).Testo);
}
#endregion
tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data assoc.", 60, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 87, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("", " ", 5, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("VersatoNetto", "Versato netto
da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("UtilePerdita", "Utile/perdita
da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("CreditRisk", "Rischio
Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Var", "Rischio
(VaR %)", 55, TipoAllineamento.DESTRA, false, 7, false));
// Scrivo la tabella tabella Dati
tabellaDettaglio_Area.Draw(datitab, document);
#endregion Tabella Dati
#region Tabella Totali
datitab = new DatiTabella();
datitab.table = set.Tables["ProdottiTotale"];
datitab.CellClear();
//Imposto gli asterischi di rimando nel caso in cui sia presente la nota del grado copertura
if (notaGradoCopertura.Length > 0)
datitab.table.Rows[0]["Var"] = datitab.table.Rows[0]["Var"].ToString() + document.Note.Find(Nota.TipologiaNota.GradoCopertura, tabellaDettaglio_Area.Id).ToString();
Tabella tabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDettaglio_Area.AltezzaTabella + 25);
tabellaTotali_Area.HeaderFont = 8;
tabellaTotali_Area.Header = false;
tabellaTotali_Area.SaltoPagina = false;
tabellaTotali_Area.Colonne.Add(new Colonna("Totale", "", 130, TipoAllineamento.SINISTRA, true, 8, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Controvalore", "", 112, TipoAllineamento.DESTRA, true, 8, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Var", "", 270, TipoAllineamento.DESTRA, true, 8, true));
// Scrive la tabella Totali
tabellaTotali_Area.Draw(datitab, document);
dim = tabellaTotali_Area.AltezzaTabella + tabellaDettaglio_Area.AltezzaTabella;
document.setLastPos(dim);
#endregion
}
}
public void setTitolo(string label)
{
Titolo = label;
}
public string Area
{
get
{
return _Area;
}
set
{
_Area = value;
}
}
public string Progetto
{
get
{
return _Progetto;
}
set
{
_Progetto = value;
}
}
public bool VersatoNetto_UtilePerdita
{
get { return _versatonetto_utileperdita; }
set { _versatonetto_utileperdita = value; }
}
public bool MostraRendimentoDaInizioAnno
{
get { return _mostrarendimentodainizioanno; }
set { _mostrarendimentodainizioanno = value; }
}
public bool MostraRendimentoDaDataSottoscrizione
{
get { return _mostrarendimentodadatasottoscrizione; }
set { _mostrarendimentodadatasottoscrizione = value; }
}
public TipoReport TipologiaReport
{
get { return _tipologiaReport; }
set { _tipologiaReport = value; }
}
}
}