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("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 /// /// Disegna la tabella per il dettaglio monitoraggio x Area. /// /// /// /// 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("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("", " ", 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("", " ", 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("", " ", 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
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)); 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 } /// /// 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(); //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("NEED_AREA").ToUpper().Equals(area.ToUpper()) && row.Field("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("", " ", 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("", " ", 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
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)); 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("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 } } /// /// Disegna la tabella per Area (non d'investimento). /// /// /// /// 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("", " ", 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
da assoc. (€)", 90, TipoAllineamento.DESTRA, false, 7, false)); tabellaDettaglio_Area.Colonne.Add(new Colonna("UtilePerdita", "Utile/perdita
da assoc. (€)", 90, 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 %)", 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("", " ", 5, TipoAllineamento.DESTRA, false, fontdim, false, TipoColonna.IMMAGINE)); // NewtabellaTotali_Area.Colonne.Add(new Colonna("SaldoContabile", "   Saldo
Contabile", 80, TipoAllineamento.DESTRA, false, fontdim, false)); // NewtabellaTotali_Area.Colonne.Add(new Colonna("SaldoDisponibile", "    Saldo
Disponibile", 80, TipoAllineamento.DESTRA, false, fontdim, false)); // NewtabellaTotali_Area.Colonne.Add(new Colonna("Var", "Rischio
(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(x => x.Field("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(x => x.Field("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; } } } }