2025-04-15 12:10:19 +02:00

1375 lines
65 KiB
C#

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;
using ceTe.DynamicPDF.PageElements;
namespace PDFGenerator.Presentation.Section
{
public class FD43BIS : ISezione
{
string Titolo = " ";
DataSetS43BIS set;
ImportedPage page;
private bool _versatonetto_utileperdita = false;
private bool _mostrarendimentodainizioanno = false;
private bool _mostrarendimentodadatasottoscrizione = false;
// private bool _mostratitolosezione = false;
//MIFID2 20180420
string notaSezione = string.Empty;
bool notaSezioneStampata = false;
bool moreTables = false;
int tableCount;
//--MIFID2
private TipoReport _tipologiaReport = TipoReport.MONITORAGGIO; // la S43BIS è usata solo per il monitoraggio fase 2 (monitoraggio senza albero.)
public FD43BIS()
{
}
string _Area;
string _Progetto;
private string _titolosezione = string.Empty;
private string _ordinamentoProgetto = string.Empty;
#region ISezione Members
public void writeSezione(DataThread dataThread)
{
bool _mostratitolosezione = true;
DocumentPDF document = dataThread.DocumentPDF;
DatiTabella datitab = new DatiTabella();
set = (DataSetS43BIS)dataThread.Data.DatiSezione;
//MIFID2 20180529 decremento il conteggio delle aree da stampare (per MONITORAGGIO)
document.AreasCount--;
//--MIFID2
//MIFID2 20180424
notaSezione = dataThread.SezioneReport.Nota;
//notaSezione = "NOTA PROVA 43Bis " + dataThread.Area;
/************* Modifica per la gestione della nota dinamica in base ai prodotti FAI 11/03/2021 - Pino *********************/
string testoNotaFAI = " Il controvalore dei fondi Perennius Global Yield Private 2011, Idea Crescita Globale, FAI Private Debt Special Opportunities e FAI Private Markets Insight esposto nella rendicontazione è determinato tramite il NAV trimestrale al #dataFAI# (ultimo disponibile alla data di predisposizione del presente rendiconto) al netto delle distribuzioni avvenute nel trimestre e accreditate sul conto corrente indicato in fase di sottoscrizione.";
string _flagNotaFAI = set.FlagNotaFAI.Rows[0][0].ToString();
if (_flagNotaFAI == "S")
{
testoNotaFAI = testoNotaFAI.Replace("#dataFAI#", set.FlagNotaFAI.Rows[0][1].ToString());
notaSezione += testoNotaFAI;
}
/***************************************************************************************************************************/
document.NotaPieDiPagina = notaSezione;
// Controlla se ci sono vari codici aree bisogno, in tal caso la nota statica va a fondo pagina, altrimenti, se c'è un solo codice area, va a fine tabella
DataView viewDistinctAreas = new DataView(set.Tables["ProdottiAreeBisogno"]);
DataTable distinctValues = viewDistinctAreas.ToTable(true, "CodiceAreaBisogno");
moreTables = distinctValues.Rows.Count > 1;
//--MIFID2
//if (document.checkMargin(datitab.GetRowDim() * 5)) {
// document.addPage();
//}
dataThread.UltimaSezioneStampata = "";
page = document.getCurrentPage();
DataView view;
#region stampo solo Robo
datitab.table = set.Tables["ProdottiAreeBisogno"];
DataRow[] drFilterAreaProgetto;
string titoloRibilanciato = "Portafoglio Direct Evo"; //"Portafoglio Ribilanciato";
drFilterAreaProgetto = set.Tables["ProdottiAreeBisogno"].Select(" CodiceAreaBisogno = 'Rob'");
if (drFilterAreaProgetto.Length > 0)
{
//MIFID2 20180514 se cambia pagina resetto il flag notastampata
//orig:
//if (document.checkMargin(datitab.GetRowDim() * 4))
// document.addPage();
if (document.checkMargin(datitab.GetRowDim() * 4))
{
document.addPage();
notaSezioneStampata = false;
}
//--MIFID2
//if (_mostratitolosezione)
//{
// if (string.IsNullOrEmpty(_titolosezione))
// {
// if (!titoloRibilanciato.Equals(""))
// {
// document.setTitolo(titoloRibilanciato);
// document.setSezTitoloWithoutNumber(drFilterAreaProgetto[0].Field<string>("Progetto").ToString());
// titoloRibilanciato = "";
// }
// }
// else
// document.setTitolo(_titolosezione);
//}
this.writeArea(datitab, document, "Rob", dataThread);
//MIFID2 20180514 una volta stampata la tabella, decremento il contatore
//tableCount--;
}
#endregion
//if (_Area == null || _Area == "Liq")
//{
// datitab.table = set.Tables["ProdottiAreeBisogno"];
// view = new DataView(datitab.table);
// view.RowFilter = ("CodiceAreaBisogno = 'Liq'");
// if (view.Count > 0)
// {
// //MIFID2 20180528 se cambia pagina resetto il flag notastampata
// //orig:
// //if (document.checkMargin(datitab.GetRowDim() * 4))
// // document.addPage();
// if (document.checkMargin(datitab.GetRowDim() * 4))
// {
// document.addPage();
// notaSezioneStampata = false;
// }
// //--MIFID2
// 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)
// {
// //MIFID2 20180528 se cambia pagina resetto il flag notastampata
// //orig:
// //if (document.checkMargin(datitab.GetRowDim() * 4))
// // document.addPage();
// if (document.checkMargin(datitab.GetRowDim() * 4))
// {
// document.addPage();
// notaSezioneStampata = false;
// }
// //--MIFID2
// 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)
// {
// //MIFID2 20180528 se cambia pagina resetto il flag notastampata
// //orig:
// //if (document.checkMargin(datitab.GetRowDim() * 4))
// // document.addPage();
// if (document.checkMargin(datitab.GetRowDim() * 4))
// {
// document.addPage();
// notaSezioneStampata = false;
// }
// //--MIFID2
// 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)
// {
// //MIFID2 20180528 se cambia pagina resetto il flag notastampata
// //orig:
// //if (document.checkMargin(datitab.GetRowDim() * 4))
// // document.addPage();
// if (document.checkMargin(datitab.GetRowDim() * 4))
// {
// document.addPage();
// notaSezioneStampata = false;
// }
// //--MIFID2
// 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)
// {
// //MIFID2 20180528 se cambia pagina resetto il flag notastampata
// //orig:
// //if (document.checkMargin(datitab.GetRowDim() * 4))
// // document.addPage();
// if (document.checkMargin(datitab.GetRowDim() * 4))
// {
// document.addPage();
// notaSezioneStampata = false;
// }
// //--MIFID2
// 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)
// //MIFID2 20180528 se cambia pagina resetto il flag notastampata
// //orig:
// //if (document.checkMargin(datitab.GetRowDim() * 4))
// // document.addPage();
// if (document.checkMargin(datitab.GetRowDim() * 4))
// {
// document.addPage();
// notaSezioneStampata = false;
// }
// //--MIFID2
// this.writeArea(datitab, document, "Na", dataThread);
// }
//}
if (document.Areas.Rows.Count == 0)
{
var segnaposto = 0;
if (document.DocumentNotes.Rows.Count > 0)
document.WriteNote2(notaSezione, dataThread.IsSavingMap, dataThread.IsAPC103);
}
document.setLastPos(5);
}
#endregion
/// <summary>
/// Disegna la tabella per il dettaglio monitoraggio x Area.
/// </summary>
/// <param name="datitab"></param>
/// <param name="document"></param>
/// <param name="area"></param>
private void writeArea(DatiTabella datitab, DocumentPDF document, string area, DataThread dataThread)
{
//MIFID2 20180528
tableCount--;
//--MIFID2
//MIFID2 20180529 Elimino dalla proprietà datatable del document la riga relativa all'area che sto stampando
if (dataThread.TipoReport.ToUpper().Equals("MONITORAGGIO"))
{
foreach (DataRow row in document.Areas.Rows)
{
if (row.Field<string>("NEED_AREA").ToUpper().Equals(area.ToUpper()))
row.Delete();
}
document.Areas.AcceptChanges();
}
//--MIFID2
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 = 23;
tabellaDettaglio_Area.LineaFineTabella = true;
#region Settaggio delle Note di piè di pagina e delle note a piedi della tabella
//MIFID2 20180619 Se il documento non ha nessuna nota nella lista di note, mi serve aggiungerne una "finta" per avere il numero di asterischi che parte da 2 (includendo la nota fissa sul Ctv)
if (document.Note.Count == 0)
document.Note.Add(new Nota(Nota.TipologiaNota.NonImpostato, tabellaDettaglio_Area.Id, ""));
//--MIFID2
//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);
}
document.Note.RemoveAt(0);
#endregion
//tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data ass.", 60, TipoAllineamento.SINISTRA, false, 7, false));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 5, TipoAllineamento.DESTRA, false, 7, false, TipoColonna.IMMAGINE));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 87, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data ass.", 45, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 5, TipoAllineamento.DESTRA, false, 7, false, TipoColonna.IMMAGINE));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 110, TipoAllineamento.SINISTRA, false, 7, false));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data assoc.", 55, TipoAllineamento.SINISTRA, false, 7, false));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 15, TipoAllineamento.DESTRA, false, 7, false, TipoColonna.IMMAGINE));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 82, TipoAllineamento.SINISTRA, false, 7, false));
//MIFID2 20180424 Asterisco + nota a pie' pagina (o fine tabella)
//tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)*", 80, TipoAllineamento.DESTRA, false, 7, false));
//--MIFID2
tabellaDettaglio_Area.Colonne.Add(new Colonna("VersatoNetto", "Versato netto<BR>da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("UtilePerdita", "Utile/perdita<BR>da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 55, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.ColoreDirectBankB = "green";
//MIFID2 20180530
string NomeArea = string.Format("{0}-{1}", area, datitab.table.Rows[0]["Progetto"]);
document.DocumentNotes.Rows.Add(NomeArea, 0, document.CurrentPage);
//--MIFID2
// Scrivo la tabella tabella Dati
//MIFID2 20180514
//orig:
//tabellaDettaglio_Area.Draw(datitab, document);
//tabellaDettaglio_Area.Draw(datitab, document, notaSezione, tableCount == 0, ref notaSezioneStampata);
tabellaDettaglio_Area.DrawMonitoraggio(datitab, document, notaSezione, tableCount == 0, ref notaSezioneStampata);
//--MIFID2
#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();
/*************************************** Fix Levi Trimestrale 10/2020 - Pino **********************************************************************/
//Tabella tabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDettaglio_Area.AltezzaTabella + 25);
Tabella tabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDettaglio_Area.AltezzaTabella + 29);
/**************************************************************************************************************************************************/
tabellaTotali_Area.HeaderFont = 8;
tabellaTotali_Area.Header = false;
tabellaTotali_Area.SaltoPagina = false;
/*************************************** Fix Levi Trimestrale 10/2020 - Pino **********************************************************************/
//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));
tabellaTotali_Area.Colonne.Add(new Colonna("Totale", "", 122, TipoAllineamento.SINISTRA, true, 8, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Controvalore", "", 118, 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%'
//MIFID2 20180528
{
document.addPage();
notaSezioneStampata = false;
}
//--MIFID2
// Scrive la tabella Totali
tabellaTotali_Area.Draw(datitab, document);
dim = tabellaTotali_Area.AltezzaTabella + tabellaDettaglio_Area.AltezzaTabella;
//MIFID2 20180529 DocumentNotes
// Memorizzare la posizione della nota e il numero pagina
//document.DocumentNotes.Rows.Add(NomeArea, document.getLastPos() + dim, document.CurrentPage);
//20180619 Se c'è anche la nota sulla Copertura, bisogna dare un po' di spazio in più
//document.AddDocumentNote(NomeArea, document.getLastPos() + dim, document.CurrentPage);
if (!string.IsNullOrEmpty(notaGradoCopertura))
{
document.AddDocumentNote(NomeArea, document.getLastPos() + dim + 10, document.CurrentPage);
document.setLastPos(dim);
}
else
{
document.AddDocumentNote(NomeArea, document.getLastPos() + dim, document.CurrentPage);
/************* Modifica per la gestione della nota dinamica in base ai prodotti FAI 12/03/2021 - Pino *********************/
//document.setLastPos(dim + 10);
document.setLastPos(dim + 50);
/******************************************************************************************************************************/
}
//--MIFID2
//page.Elements.Add(new TextArea("PROVA "+ document.NumPage.ToString(), document.getMargineLeft(), 500, 510, 10));
//var p = document.getPageAt(document.CurrentPage-1);
//p.Elements.Add(new TextArea("PROVA 0", document.getMargineLeft(), 500, 510, 10));
#endregion
//MIFID2 20180424 da collocare dopo l'ultima tabella (o a fondo pagina)
//if (!moreTables)
//{
// if (!string.IsNullOrEmpty(notaSezione) && !notaSezioneStampata)
// {
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), document.getLastPos(), 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page.Elements.Add(text);
// notaSezioneStampata = true;
// }
//}
//else
//{
// if (!string.IsNullOrEmpty(notaSezione) && !notaSezioneStampata)
// {
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), 720, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page.Elements.Add(text);
// notaSezioneStampata = true;
// }
//}
//if (!string.IsNullOrEmpty(notaSezione) && !notaSezioneStampata)
//{
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), 720, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page.Elements.Add(text);
// notaSezioneStampata = true;
//}
//--MIFID2
//MIFID2 20180528
notaSezioneStampata = true;
if (tableCount == 0)
document.setLastPos(10);
//--MIFID2
}
/// <summary>
/// Disegna la tabella per il dettaglio monitoraggio x Area/Progetto.
/// Usata per area Investimento.
/// </summary>
/// <param name="datitab"></param>
/// <param name="document"></param>
/// <param name="area"></param>
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();
//MIFID2 20180529 Elimino dalla proprietà datatable del document la riga relativa all'area che sto stampando
if (dataThread.TipoReport.ToUpper().Equals("MONITORAGGIO"))
{
foreach (DataRow row in document.Areas.Rows)
{
if (row.Field<string>("NEED_AREA").ToUpper().Equals(area.ToUpper()) && row.Field<string>("NOME_PROGETTO").ToUpper().Equals(nomeprogetto.ToUpper()))
row.Delete();
}
document.Areas.AcceptChanges();
}
//--MIFID2
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 = 23;
tabellaDettaglio_Area.LineaFineTabella = true;
#region Settaggio delle Note a piedi della tabella
//MIFID2 20180619 Se il documento non ha nessuna nota nella lista di note, mi serve aggiungerne una "finta" per avere il numero di asterischi che parte da 2 (includendo la nota fissa sul Ctv)
if (document.Note.Count == 0)
document.Note.Add(new Nota(Nota.TipologiaNota.NonImpostato, tabellaDettaglio_Area.Id, ""));
//--MIFID2
//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);
}
document.Note.RemoveAt(0);
#endregion
//tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data assoc.", 60, TipoAllineamento.SINISTRA, false, 7, false));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 5, TipoAllineamento.DESTRA, false, 7, false, TipoColonna.IMMAGINE));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 87, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data ass.", 45, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 5, TipoAllineamento.DESTRA, false, 7, false, TipoColonna.IMMAGINE));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 110, TipoAllineamento.SINISTRA, false, 7, false));
//MIFID2 20180424 Asterisco + nota a pie' pagina (o fine tabella)
//tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)*", 80, TipoAllineamento.DESTRA, false, 7, false));
//--MIFID2
tabellaDettaglio_Area.Colonne.Add(new Colonna("VersatoNetto", "Versato netto<BR>da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("UtilePerdita", "Utile/perdita<BR>da assoc. (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 55, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.ColoreDirectBankB = "green";
// Scrivo la tabella tabella Dati
//MIFID2 20180528
//tabellaDettaglio_Area.Draw(datitab, document);
//MIFID2 20180530
string NomeArea = string.Format("{0}-{1}", area, datitab.table.Rows[0]["Progetto"]);
document.DocumentNotes.Rows.Add(NomeArea, 0, document.CurrentPage);
//--MIFID2
//tabellaDettaglio_Area.Draw(datitab, document, notaSezione, tableCount == 0, ref notaSezioneStampata);
tabellaDettaglio_Area.DrawMonitoraggio(datitab, document, notaSezione, tableCount == 0, ref notaSezioneStampata);
//--MIFID2
#endregion Tabella Dati
////MIFID2 20180424 Serve per stampare la nota a piè pagina nelle pagine in cui viene splittata la tabella relativa agli investimenti
//int numPag = 1;
//foreach (var pag in tabellaDettaglio_Area.PagineDisegnate)
//{
// //Nell'ultima pagina la nota va a fine tabella
// if (numPag < tabellaDettaglio_Area.PagineDisegnate.Count)
// {
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), 720, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// pag.Pagina.Elements.Add(text);
// }
// numPag++;
//}
////--MIFID2
#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();
/*************************************** Fix Levi Trimestrale 10/2020 - Pino **********************************************************************/
//Tabella tabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDettaglio_Area.AltezzaTabella + 25);
Tabella tabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos() + tabellaDettaglio_Area.AltezzaTabella + 29);
/**************************************************************************************************************************************************/
tabellaTotali_Area.HeaderFont = 8;
tabellaTotali_Area.Header = false;
tabellaTotali_Area.SaltoPagina = false;
/*************************************** Fix Levi Trimestrale 10/2020 - Pino **********************************************************************/
//tabellaTotali_Area.Colonne.Add(new Colonna("Totale", "", 130, TipoAllineamento.SINISTRA, true, 8, true));
//tabellaTotali_Area.Colonne.Add(new Colonna("Controvalore", "", 102, TipoAllineamento.DESTRA, true, 8, true));
//tabellaTotali_Area.Colonne.Add(new Colonna("Var", "", 280, TipoAllineamento.DESTRA, true, 8, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Totale", "", 130, 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));
/**************************************************************************************************************************************************/
// Scrive la tabella Totali
tabellaTotali_Area.Draw(datitab, document);
dim = tabellaTotali_Area.AltezzaTabella + tabellaDettaglio_Area.AltezzaTabella;
//MIFID2 20180529 DocumentNotes
// Memorizzare la posizione della nota e il numero pagina
//document.DocumentNotes.Rows.Add(NomeArea, document.getLastPos() + dim, document.CurrentPage);
if (!string.IsNullOrEmpty(notaGradoCopertura))
{
document.AddDocumentNote(NomeArea, document.getLastPos() + dim + 10, document.CurrentPage);
document.setLastPos(dim);
}
else
{
document.AddDocumentNote(NomeArea, document.getLastPos() + dim, document.CurrentPage);
document.setLastPos(dim + 10); // document.setLastPos(dim + 10);
}
//--MIFID2
//MIFID2 20180424 INSERISCE LA NOTA STATICA ALLA FINE DELLA SEZIONE
//document.setLastPos(lastPosition + 10);
//document.setLastPos(dim);
//if (!string.IsNullOrEmpty(notaSezione))
//{
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), document.getLastPos(), 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page = document.getCurrentPage();
// page.Elements.Add(text);
//}
document.setLastPos(dim + 200);
//--MIFID2
//document.setLastPos(dim + 10);
notaSezioneStampata = true;
#endregion
}
}
#region Regione contenente la nuova gestione della pagina per FD
public void writeSezioneFD(DataThread dataThread)
{
bool _mostratitolosezione = true;
string printedArea = string.Empty;
DocumentPDF document = dataThread.DocumentPDF;
DatiTabella datitab = new DatiTabella();
set = (DataSetS43BIS)dataThread.Data.DatiSezione;
notaSezione = dataThread.SezioneReport.Nota;
/************* Modifica per la gestione della nota dinamica in base ai prodotti FAI 12/03/2021 - Pino *********************/
string testoNotaFAI = " Il controvalore dei fondi Perennius Global Yield Private 2011, Idea Crescita Globale, FAI Private Debt Special Opportunities e FAI Private Markets Insight esposto nella rendicontazione è determinato tramite il NAV trimestrale al #dataFAI# (ultimo disponibile alla data di predisposizione del presente rendiconto) al netto delle distribuzioni avvenute nel trimestre e accreditate sul conto corrente indicato in fase di sottoscrizione.";
string _flagNotaFAI = set.FlagNotaFAI.Rows[0][0].ToString();
if (_flagNotaFAI == "S")
{
testoNotaFAI = testoNotaFAI.Replace("#dataFAI#", set.FlagNotaFAI.Rows[0][1].ToString());
notaSezione += testoNotaFAI;
}
/******************************************************************************************************************************/
document.NotaPieDiPagina = notaSezione;
//MIFID2 20180514 se cambia pagina resetto il flag notastampata
//orig:
//if (document.checkMargin(datitab.GetRowDim() * 4))
// document.addPage();
if (document.checkMargin(datitab.GetRowDim() * 4))
{
document.addPage();
notaSezioneStampata = false;
}
//--MIFID2
page = document.getCurrentPage();
#region Recupero i dati da stampare
DataRow[] drFilterAreaProgetto;
DataTable dtTabellaDati = new DataTable();
DataTable tempdtTabellaDati = new DataTable();
DataView view;
datitab.table = set.Tables["ProdottiAreeBisogno"];
dtTabellaDati = datitab.table;
tempdtTabellaDati = datitab.table;
DataView viewDistinctAreas = new DataView(set.Tables["ProdottiAreeBisogno"]);
DataTable distinctValues = viewDistinctAreas.ToTable(true, "CodiceAreaBisogno");
moreTables = distinctValues.Rows.Count > 1;
tableCount = distinctValues.Rows.Count;
//--MIFID2
//view = new DataView(datitab.table);
//if (!string.IsNullOrEmpty(dataThread.Area) || !string.IsNullOrEmpty(dataThread.Progetto))
//{
// if (dataThread.Area.ToUpper() != "NA")
// {
// view.RowFilter = ("OrdinamentoProgetto ='" + _ordinamentoProgetto + "' and " + "CodiceAreaBisogno = '" + dataThread.Area + "' and progetto='" + dataThread.Progetto.Replace("'", "''") + "'");
// datitab.table = view.ToTable();
// dtTabellaDati = datitab.table;
// }
// else
// {
// view.RowFilter = ("CodiceAreaBisogno = '" + dataThread.Area + "' and progetto='" + dataThread.Progetto.Replace("'", "''") + "'");
// datitab.table = view.ToTable();
// dtTabellaDati = datitab.table;
// }
//}
#endregion
if (_Area.Equals("Inv"))
{
#region stampo solo Robo
string titoloRibilanciato = "Portafoglio Direct Evo"; //"Portafoglio Ribilanciato";
drFilterAreaProgetto = dtTabellaDati.Select(" CodiceAreaBisogno = 'Rob'");
if (drFilterAreaProgetto.Length > 0)
{
//MIFID2 20180514 se cambia pagina resetto il flag notastampata
//orig:
//if (document.checkMargin(datitab.GetRowDim() * 4))
// document.addPage();
if (document.checkMargin(datitab.GetRowDim() * 4))
{
document.addPage();
notaSezioneStampata = false;
}
//--MIFID2
if (_mostratitolosezione)
{
if (string.IsNullOrEmpty(_titolosezione))
{
if (!titoloRibilanciato.Equals(""))
{
document.setTitolo(titoloRibilanciato);
document.setSezTitoloWithoutNumber(drFilterAreaProgetto[0].Field<string>("Progetto").ToString());
titoloRibilanciato = "";
}
}
else
document.setTitolo(_titolosezione);
}
this.writeAreaFD(dataThread, datitab, document, "Rob");
//MIFID2 20180514 una volta stampata la tabella, decremento il contatore
//tableCount--;
}
#endregion
#region Stampo gli altri prodotti
string titoloAltriStrumenti = "Portafoglio base"; //"Altri strumenti finanziari";
drFilterAreaProgetto = dtTabellaDati.Select(" CodiceAreaBisogno <> 'Rob'");
/*Ciclo sull array e modifico il valore CodiceAreaBisogno*/
//foreach (var item in drFilterAreaProgetto)
//{
// item["CodiceAreaBisogno"] = "ASF";
//}
if (drFilterAreaProgetto.Length > 0)
{
//MIFID2 20180514 se cambia pagina resetto il flag notastampata
//orig:
//if (document.checkMargin(datitab.GetRowDim() * 4))
// document.addPage();
if (document.checkMargin(datitab.GetRowDim() * 4))
{
document.addPage();
notaSezioneStampata = false;
}
//--MIFID2
if (_mostratitolosezione)
{
if (string.IsNullOrEmpty(_titolosezione))
{
if (!titoloAltriStrumenti.Equals(""))
{
document.setTitolo(titoloAltriStrumenti);
titoloAltriStrumenti = "";
}
}
else
document.setTitolo(_titolosezione);
}
this.writeAreaFD(dataThread, datitab, document, "ASF");
//MIFID2 20180514 una volta stampata la tabella, decremento il contatore
//tableCount--;
}
#endregion
}
}
/// <summary>
/// Disegna la tabella per Area (non d'investimento).
/// </summary>
/// <param name="datitab"></param>
/// <param name="document"></param>
/// <param name="area"></param>
private void writeAreaFD(DataThread dataThread, DatiTabella datitab, DocumentPDF document, string area)
{
//MIFID2 20180514
tableCount--;
//--MIFID2
//if (area.ToUpper().Equals("INV"))
//{
// if (!string.IsNullOrEmpty(dataThread.Area) || !string.IsNullOrEmpty(dataThread.Progetto))
// this.writeAreaProgetto_Monitoraggio(dataThread, datitab, document, "Inv");
// else
// this.writeAreaProgetto(dataThread, datitab, document, "Inv");
// return;
//}
float lastPosition = 0;
int fontdim = 8;
page = document.getCurrentPage();
FormatNum conv = new FormatNum();
string notaGradoCopertura = string.Empty;
//setta la datatable
datitab.table = set.Tables["ProdottiAreeBisogno"];
// 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_" + area;
tabellaDettaglio_Area.LineaFineTabella = true;
tabellaDettaglio_Area.ColoreDirectBankB = "green";
// filtro per l'area
DataView view = new DataView(datitab.table);
view.RowFilter = ("CodiceAreaBisogno = '" + area + "'");
datitab.table = view.ToTable();
//MIFID2 20180619 Se il documento non ha nessuna nota nella lista di note, mi serve aggiungerne una "finta" per avere il numero di asterischi che parte da 2 (includendo la nota fissa sul Ctv)
if (document.Note.Count == 0)
document.Note.Add(new Nota(Nota.TipologiaNota.NonImpostato, tabellaDettaglio_Area.Id, ""));
//--MIFID2
#region Tutti tranne CC e INV
if (area.ToUpper() != "CC" && area.ToUpper() != "INV" && datitab.table.Rows.Count > 0)
{
notaGradoCopertura = datitab.table.Rows[0]["Copertura"] == DBNull.Value ? string.Empty : datitab.table.Rows[0]["Copertura"].ToString();
if (notaGradoCopertura.Length > 0)
{
//20180817 va mantenuta la nota fittizia altrimenti viene stampata la nota copertura con un solo asterisco così come quella fissa sul ctv
//document.Note.Clear();
//20180817
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);
}
//20180620 serve ad eliminare la nota finta, che altrimenti verrebbe stampata
document.Note.RemoveAt(0);
tabellaDettaglio_Area.Colonne.Add(new Colonna("DataAssociazione", "Data ass.", 45, TipoAllineamento.SINISTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 5, TipoAllineamento.DESTRA, false, 7, false, TipoColonna.IMMAGINE));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Descrizione", "Descrizione", 130, TipoAllineamento.SINISTRA, false, 7, false)); //110
//MIFID2 20180424 Asterisco + nota a pie' pagina (o fine tabella)
//tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)*", 90, TipoAllineamento.DESTRA, false, 7, false));
//--MIFID2
tabellaDettaglio_Area.Colonne.Add(new Colonna("VersatoNetto", "Versato netto<BR>da assoc. (€)", 90, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("UtilePerdita", "Utile/perdita<BR>da assoc. (€)", 90, TipoAllineamento.DESTRA, false, 7, false));
//tabellaDettaglio_Area.Colonne.Add(new Colonna("CreditRisk", "Rischio<BR>Credito", 65, TipoAllineamento.DESTRA, false, 7, false));
tabellaDettaglio_Area.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR %)", 70, TipoAllineamento.DESTRA, false, 7, false)); //55
tabellaDettaglio_Area.ColoreDirectBankB = "green";
//--MIFID2
//MIFID2 20180601 Gestione nota, salvare informazione su tabella corrente
document.DocumentNotes.Rows.Add(area, 0, document.CurrentPage);
//tabellaDettaglio_Area.Draw(datitab, document, notaSezione, tableCount == 0, ref notaSezioneStampata);
//tabellaDettaglio_Area.DrawDiagnosi(datitab, document, notaSezione);
tabellaDettaglio_Area.DrawMonitoraggio(datitab, document, notaSezione, tableCount == 0, ref notaSezioneStampata);
//--MIFID2
datitab = new DatiTabella();
datitab.table = set.Tables["ProdottiTotale"];
datitab.CellClear();
DataView view2 = new DataView(datitab.table);
if (area.Equals("ASF"))
{
view2.RowFilter = ("CodiceAreaBisogno = '" + area + "' and AreaBisogno = 'Portafoglio Base' and Progetto <> 'Default'");
}
else
view2.RowFilter = ("CodiceAreaBisogno = '" + area + "'");
datitab.table = view2.ToTable();
//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", "", 150, TipoAllineamento.SINISTRA, true, fontdim, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Controvalore", "", 120, TipoAllineamento.DESTRA, true, fontdim, true));
tabellaTotali_Area.Colonne.Add(new Colonna("Var", "", 250, TipoAllineamento.DESTRA, true, fontdim, true));
tabellaTotali_Area.Draw(datitab, document);
lastPosition = tabellaTotali_Area.AltezzaTabella + tabellaDettaglio_Area.AltezzaTabella;
//MIFID2 20180601 DocumentNotes
// Memorizzare la posizione della nota e il numero pagina
// 20180619 se c'è la nota grado copertura bisogna aggiungere spazio
//document.AddDocumentNote(NomeArea, document.getLastPos() + lastPosition, document.CurrentPage);
if (!string.IsNullOrEmpty(notaGradoCopertura))
{
document.AddDocumentNote(area, document.getLastPos() + lastPosition + 10, document.CurrentPage);
document.setLastPos(lastPosition + 10);
}
else
{
document.AddDocumentNote(area, document.getLastPos() + lastPosition, document.CurrentPage);
document.setLastPos(lastPosition);
}
//--20180619
//--MIFID2
//document.setLastPos(lastPosition);
}
#endregion
#region Conti correnti a saldo negativo
//if (area.ToUpper() == "CC" && set.ContoCorrente.Rows.Count > 0)
//{
// // 20181204 Per gestire lo spazio che bisogna lasciare per un'eventuale nota sul controvalore che va direttamente sotto la tabella area precedente
// if (document.DocumentNotes.Rows.Count > 0)
// {
// document.setLastPos(5);
// spazioNotaLasciato = true;
// }
// document.setTitolo("Conti correnti a saldo negativo");
// datitab = new DatiTabella();
// datitab.table = set.Tables["ContoCorrente"];
// datitab.CellClear();
// DataView view3 = new DataView(datitab.table);
// datitab.table = view3.ToTable();
// for (int i = 0; i < datitab.table.Rows.Count; i++)
// datitab.table.Rows[i]["Var"] = conv.ConvertNum(datitab.table.Rows[i]["Var"]);
// //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 NewtabellaTotali_Area = new Tabella(document.getMargineLeft(), document.getLastPos());
// NewtabellaTotali_Area.HeaderFont = 8;
// NewtabellaTotali_Area.Header = true;
// NewtabellaTotali_Area.SaltoPagina = false;
// NewtabellaTotali_Area.Colonne.Add(new Colonna("Data", "Data di apertura", 60, TipoAllineamento.SINISTRA, false, fontdim, false));
// NewtabellaTotali_Area.Colonne.Add(new Colonna("Numero", "Numero di c/c", 224, TipoAllineamento.SINISTRA, false, fontdim, false));
// NewtabellaTotali_Area.Colonne.Add(new Colonna("<IMAGE>", " ", 5, TipoAllineamento.DESTRA, false, fontdim, false, TipoColonna.IMMAGINE));
// NewtabellaTotali_Area.Colonne.Add(new Colonna("SaldoContabile", "&nbsp;&nbsp;&nbsp;Saldo<BR>Contabile", 80, TipoAllineamento.DESTRA, false, fontdim, false));
// NewtabellaTotali_Area.Colonne.Add(new Colonna("SaldoDisponibile", "&nbsp;&nbsp;&nbsp;&nbsp;Saldo<BR>Disponibile", 80, TipoAllineamento.DESTRA, false, fontdim, false));
// NewtabellaTotali_Area.Colonne.Add(new Colonna("Var", "Rischio<BR>(VaR%)", 60, TipoAllineamento.DESTRA, false, fontdim, false));
// // 20181204 Gestione nota, salvare informazione su tabella corrente
// //document.DocumentNotes.Rows.Add(area, 0, document.CurrentPage);
// // Scrive la tabella Totali
// NewtabellaTotali_Area.DrawDiagnosi(datitab, document, notaSezione);
// lastPosition = NewtabellaTotali_Area.AltezzaTabella;// +NewtabellaTotali_Area.AltezzaTabella;
// // 20181204 Gestione nota, salvare informazione su tabella corrente
// // document.AddDocumentNote(area, document.getLastPos() + lastPosition, document.CurrentPage);
// document.setLastPos(lastPosition);
//}
#endregion Conti correnti a saldo negativo
#region Linea Self a saldo negativo
// MIOFOGLIO 20181129
//AGGIUNGERE QUI LOGICA PER SEPARARE LE DUE TABELLE
//if (area.ToUpper() == "SELF" && set.LineaSelf.Rows.Count > 0)
//{
// // 20181204 Per gestire lo spazio che bisogna lasciare per un'eventuale nota sul controvalore che va direttamente sotto la tabella area precedente
// if (document.DocumentNotes.Rows.Count > 0 && !spazioNotaLasciato)
// document.setLastPos(5);
// set.LineaSelf.OrderBy(o => o.CodInterno);
// float altezzaTabella = 0;
// // 20181204 serve ad eliminare la nota finta, che altrimenti verrebbe stampata
// document.Note.RemoveAt(0);
// //--20181204
// // GP ELIGO
// var rows = set.Tables["LineaSelf"].AsEnumerable().Where<DataRow>(x => x.Field<string>("CodInterno").Equals("XY"));
// if (rows.Any())
// {
// document.setTitolo("Liquidità negativa \"Linee GP Eligo\"");
// datitab = new DatiTabella();
// datitab.table = rows.CopyToDataTable();
// datitab.CellClear();
// Tabella TabLineaSelfGP = new Tabella(document.getMargineLeft(), document.getLastPos());
// TabLineaSelfGP.HeaderFont = 8;
// TabLineaSelfGP.Header = true;
// TabLineaSelfGP.SaltoPagina = false;
// TabLineaSelfGP.LineaFineTabella = false;
// TabLineaSelfGP.Colonne.Add(new Colonna("DataSott", "Data Sott.", 80, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelfGP.Colonne.Add(new Colonna("NumContratto", "Num. Contratto", 170, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelfGP.Colonne.Add(new Colonna("NomeProdotto", "Nome", 162, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelfGP.Colonne.Add(new Colonna("controvalore", "Controvalore (€)*", 100, TipoAllineamento.DESTRA, false, fontdim, false));
// // 20181204 Gestione nota, salvare informazione su tabella corrente
// document.DocumentNotes.Rows.Add(string.Format("{0} - {1}", area, "GP"), 0, document.CurrentPage);
// TabLineaSelfGP.DrawDiagnosi(datitab, document, notaSezione);
// lastPosition = TabLineaSelfGP.AltezzaTabella;// +TabLineaSelf.AltezzaTabella;
// // 20181204 Gestione nota, salvare informazione su tabella corrente
// if (!string.IsNullOrEmpty(notaGradoCopertura))
// {
// document.AddDocumentNote(string.Format("{0} - {1}", area, "GP"), document.getLastPos() + lastPosition + 10, document.CurrentPage);
// lastPosition += 10;
// }
// else
// {
// document.AddDocumentNote(string.Format("{0} - {1}", area, "GP"), document.getLastPos() + lastPosition, document.CurrentPage);
// }
// document.setLastPos(lastPosition);
// altezzaTabella = lastPosition;
// }
// //--GP ELIGO
// // IL MIO FOGLIO
// rows = set.Tables["LineaSelf"].AsEnumerable().Where<DataRow>(x => x.Field<string>("CodInterno").Equals("FO"));
// if (rows.Any())
// {
// document.setTitolo("Liquidità negativa \"Il Mio Foglio\"");
// datitab = new DatiTabella();
// datitab.table = rows.CopyToDataTable();
// datitab.CellClear();
// Tabella TabLineaSelfFO = new Tabella(document.getMargineLeft(), document.getLastPos());
// TabLineaSelfFO.HeaderFont = 8;
// TabLineaSelfFO.Header = true;
// TabLineaSelfFO.SaltoPagina = false;
// TabLineaSelfFO.LineaFineTabella = false;
// TabLineaSelfFO.Colonne.Add(new Colonna("DataSott", "Data Sott.", 80, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelfFO.Colonne.Add(new Colonna("NumContratto", "Num. Contratto", 170, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelfFO.Colonne.Add(new Colonna("NomeProdotto", "Nome", 162, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelfFO.Colonne.Add(new Colonna("controvalore", "Controvalore (€)*", 100, TipoAllineamento.DESTRA, false, fontdim, false));
// // 20181204 Gestione nota, salvare informazione su tabella corrente
// document.DocumentNotes.Rows.Add(string.Format("{0} - {1}", area, "FO"), 0, document.CurrentPage);
// TabLineaSelfFO.DrawDiagnosi(datitab, document, notaSezione);
// lastPosition = altezzaTabella;// + TabLineaSelfFO.AltezzaTabella;// +TabLineaSelf.AltezzaTabella;
// // 20181204 Gestione nota, salvare informazione su tabella corrente
// if (!string.IsNullOrEmpty(notaGradoCopertura))
// {
// document.AddDocumentNote(string.Format("{0} - {1}", area, "FO"), document.getLastPos() + lastPosition + 10, document.CurrentPage);
// lastPosition += 10;
// }
// else
// {
// document.AddDocumentNote(string.Format("{0} - {1}", area, "FO"), document.getLastPos() + lastPosition, document.CurrentPage);
// }
// document.setLastPos(lastPosition);
// }
// //--IL MIO FOGLIO
//}
//-- MIOFOGLIO 20181129
//if (area.ToUpper() == "SELF" && set.LineaSelf.Rows.Count > 0)
//{
// document.setTitolo("Liquidità negativa \"Linee GP Eligo\"");
// datitab = new DatiTabella();
// datitab.table = set.Tables["LineaSelf"];
// datitab.CellClear();
// Tabella TabLineaSelf = new Tabella(document.getMargineLeft(), document.getLastPos());
// TabLineaSelf.HeaderFont = 8;
// TabLineaSelf.Header = true;
// TabLineaSelf.SaltoPagina = false;
// TabLineaSelf.Colonne.Add(new Colonna("DataSott", "Data Sott.", 80, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelf.Colonne.Add(new Colonna("NumContratto", "Num. Contratto", 170, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelf.Colonne.Add(new Colonna("NomeProdotto", "Nome", 162, TipoAllineamento.SINISTRA, false, fontdim, false));
// TabLineaSelf.Colonne.Add(new Colonna("controvalore", "Controvalore (€)", 100, TipoAllineamento.DESTRA, false, fontdim, false));
// TabLineaSelf.DrawDiagnosi(datitab, document,notaSezione);
// lastPosition = TabLineaSelf.AltezzaTabella;// +TabLineaSelf.AltezzaTabella;
// document.setLastPos(lastPosition);
//}
#endregion Linea Self a saldo negativo
//MIFID2 20180419 da collocare dopo l'ultima tabella (o a fondo pagina)
//if (!moreTables)
//{
// if (!string.IsNullOrEmpty(notaSezione) && !notaSezioneStampata)
// {
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), document.getLastPos(), 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page.Elements.Add(text);
// notaSezioneStampata = true;
// lastPosition += 100;
// document.setLastPos(lastPosition);
// }
//}
//else
//{
// if (!string.IsNullOrEmpty(notaSezione) && !notaSezioneStampata)
// {
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), 700, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page.Elements.Add(text);
// notaSezioneStampata = true;
// }
//}
//20180514
//float notaSezionePos;
//if (tableCount == 0)
//{
// notaSezionePos = document.getLastPos() - 30;
// document.setLastPos(lastPosition - 30);
//}
//else
// notaSezionePos = 700;
//if (!string.IsNullOrEmpty(notaSezione) && !notaSezioneStampata)
//{
// FormattedTextArea text = new FormattedTextArea(notaSezione, document.getMargineLeft(), notaSezionePos, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
// text.Height = text.GetRequiredHeight();
// text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
// page.Elements.Add(text);
// notaSezioneStampata = true;
//}
notaSezioneStampata = true;
if (tableCount == 0)
document.setLastPos(10);
//--MIFID2
}
#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; }
}
}
}