using System; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using Consulenza.ReportCommon; using System.Linq; using Consulenza.DataServices.fideuram.data.service; using System; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using System.Collections.Generic; using Consulenza.ReportCommon; using Consulenza.ReportWriter.Business.CUSTOM_PDF.ConsulenzaUnica; using System.Linq; using Consulenza.ReportWriter.Business.Entity; using Consulenza.DataServices.fideuram.data.service; using Consulenza.ReportWriter.Business.CHART_PDF; using Dundas.Charting.WebControl; namespace Consulenza.ReportWriter.Manager.Section.Unica { /// /// Scheda 12. Patrimonio Fideuram: dettaglio prodotti. IdSezione 55 /// public class S12 : Entity.Section { public S12(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { bool saltoPagina = false; if (requiredProdottiCasa()) { if (saltoPagina) AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); saltoPagina = true; var intestazioneCasa = new ChapterHeadingPDF( Helper.ReplaceVariables(getCapitolo1(), base.EnvironmentFacade.ReportEnvironment), // Helper.ReplaceVariables(getTesto1(), base.EnvironmentFacade.ReportEnvironment), EnvironmentFacade.RendererFacade.XLeftLimit, EnvironmentFacade.RendererFacade.YUpperLimit, EnvironmentFacade.ReportEnvironment.FontFamily); AddElement(intestazioneCasa.ToElement()); productsTypeSelected = PRODUCT_TYPE_CASA; Draw(); } if(requiredProdottiCointestati()) { productsTypeSelected = PRODUCT_TYPE_COINTESTATI; if (saltoPagina) AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); saltoPagina = true; var intestazioneCointestati = new ChapterHeadingPDF( Helper.ReplaceVariables(getCapitolo2(), base.EnvironmentFacade.ReportEnvironment), //Helper.ReplaceVariables(getTesto1(), base.EnvironmentFacade.ReportEnvironment), EnvironmentFacade.RendererFacade.XLeftLimit, EnvironmentFacade.RendererFacade.YUpperLimit, EnvironmentFacade.ReportEnvironment.FontFamily); AddElement(intestazioneCointestati.ToElement()); Draw(); } if (requiredProdottiTCM()) { productsTypeSelected = PRODUCT_TYPE_TCM; if (saltoPagina) AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); saltoPagina = true; var intestazionetcm = new ChapterHeadingPDF( Helper.ReplaceVariables(getCapitolo3(), base.EnvironmentFacade.ReportEnvironment), EnvironmentFacade.RendererFacade.XLeftLimit, EnvironmentFacade.RendererFacade.YUpperLimit, EnvironmentFacade.ReportEnvironment.FontFamily); AddElement(intestazionetcm.ToElement()); DrawTCM(); } } catch (Exception ex) { SectionLogger.Write("S12", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } public bool gpOmniaPresent = false;//campo a catalogo codInterno=XY public bool gpEligoFondPresent = false;//campo a catalogo codSottoprodotto = L191 public bool gpEligoTitPresent = false;//campo a catalogo codSottoprodotto = L192 public bool gpFoglioPresent = false;//campo a catalogo codInterno=fo public bool gpPresent = false; public bool fondiPresent = false; public bool ulPresent = false; public bool apPresent = false; public bool titPresent = false; public bool fondiEurizonPresent = false;//campo a catalogo CODICE_INTERNO = US o CODICE_INTERNO = WS public bool mcGestioniSgrPresent = false;//campo a catalogo CODICE_INTERNO = MK public bool fidProgettoPensionePresent = false;//campo a catalogo CODICE_INTERNO = 80 public bool evProgettoPensionePresent = false;//campo a catalogo CODICE_INTERNO = PP public bool isCategorieProdotto = false; public bool fondiAGaranziaPresent = false;//campo a catalogo CODICE_INTERNO = ?? public bool isAreeDiBisogno = false; int fontsize = 6; int headerFontSize = 6; int widthData = 50; int widthPerc = 50; int widthImporti = 70; int width60 = 60; private String productsTypeSelected = ""; private const String PRODUCT_TYPE_CASA = "TYPE_CASA"; private const String PRODUCT_TYPE_COINTESTATI = "TYPE_COINTESTATI"; private const String PRODUCT_TYPE_TCM = "TYPE_TCM"; protected override sealed void Draw() { var dati = GetDataSet(); if (getTesto1().Length > 0) { AddElement(new SpacePDF(20)); AddElement(new FormattedTextAreaPDF(getTesto1(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); AddElement(new SpacePDF(15)); } var tabellaProdotti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["prodotti"]) { Style = Style.ConsulenzaUnica, Footer = true, AlternateRow = false, ShowBorderLastLine = false, HeaderHeight = 30, HeaderMargin = 2 }; int widthTotaleAltre = calculateWidth() + 15; int widthNomeProdotto = 520 - widthTotaleAltre; int numeroCaratteri = widthNomeProdotto <= 100 ? 25 : widthNomeProdotto <= 140 ? 30 : widthNomeProdotto <= 160 ? 38 : 52; // Modifica per Saving Map tabellaProdotti.Columns.Add(new ColumnPDF("SavingMap", 10, HorizontalAlignmentType.Destra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 6, ScaleColumnTypeImage = 0.50F,PaddingRight = 20 }); //tabellaProdotti.Columns.Add(new ColumnPDF("SavingMap", 15, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Immagine, "immagineValue", string.Empty) { DeltaYContent = 6, ScaleColumnTypeImage = 0.50F }); // Fine Modifica tabellaProdotti.Columns.Add(new ColumnPDF("Immagine", 15, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Objectpdf, string.Empty, string.Empty) { HeaderFontSize = headerFontSize, PaddingLeft = 2 }); if (getColonne().NomeProdotto) tabellaProdotti.Columns.Add(new ColumnPDF("NomeProdotto", widthNomeProdotto-10, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "NomeProdotto", "Nome prodotto") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); if (getColonne().ContrattoDossier) tabellaProdotti.Columns.Add(new ColumnPDF("ContrattoDossier", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "ContrattoDossier", "Contratto /
Dossier") { HeaderFontSize = headerFontSize }); if (getColonne().CodIsin) tabellaProdotti.Columns.Add(new ColumnPDF("CodIsin", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "CodIsin", "Cod. ISIN") { HeaderFontSize = headerFontSize, PaddingLeft = 6, HeaderPaddingLeft = 3 }); if (getColonne().DistrCedoleDividendi) tabellaProdotti.Columns.Add(new ColumnPDF("DistrCedoleDividendi", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DistrCedoleDividendi", "Distr. cedole /
dividendi") { HeaderFontSize = headerFontSize, PaddingRight = 2 }); if (getColonne().RatingMorningstar) tabellaProdotti.Columns.Add(new ColumnPDF("RatingMorningstar", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RatingMorningstar", "Rating Morningstar Overall") { HeaderFontSize = headerFontSize, PaddingLeft = 6, HeaderPaddingLeft = 3 }); if (getColonne().NumqQuantValnom) tabellaProdotti.Columns.Add(new ColumnPDF("NumqQuantValnom", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "NumqQuantValnom", "Num. Quote / Quant. / Val. nom.") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().QuotaPrezzoEuro) tabellaProdotti.Columns.Add(new ColumnPDF("QuotaPrezzoEuro", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "QuotaPrezzoEuro", "Quota /
Prezzo Euro") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 15, HeaderPaddingRight = 10 }); if (getColonne().ControvaloreAttuale) tabellaProdotti.Columns.Add(new ColumnPDF("ControvaloreAttuale", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "ControvaloreAttuale", "Controvalore attuale (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 15, HeaderPaddingRight = 15 }); if (getColonne().DataAgg) tabellaProdotti.Columns.Add(new ColumnPDF("DataAgg", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataAgg", "Data agg.") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 10, PaddingRight = 2 }); if (getColonne().VersatoNettoSott) tabellaProdotti.Columns.Add(new ColumnPDF("VersatoNettoSott", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "VersatoNettoSott", "Versato netto
da sott. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().UtilePerditaSott) tabellaProdotti.Columns.Add(new ColumnPDF("UtilePerditaSott", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "UtilePerditaSott", "Utile / Perdita
da sott. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().RendAnnualSott) tabellaProdotti.Columns.Add(new ColumnPDF("RendAnnualSott", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendAnnualSott", "Rend. da
sott. (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 6 }); if (getColonne().DataSott) tabellaProdotti.Columns.Add(new ColumnPDF("DataSott", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataSott", "Data sott.") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 10, PaddingRight = 2 }); if (getColonne().VersatoNettoAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("VersatoNettoAssoc", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "VersatoNettoAssoc", "Versato netto
da assoc. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().UtilPerditaAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("UtilPerditaAssoc", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "UtilPerditaAssoc", "Utile / Perdita
da assoc. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().RendCumAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("RendCumAssoc", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendCumAssoc", "Rend. cum.
da assoc. (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 3 }); if (getColonne().DataAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("DataAssoc", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataAssoc", "Data assoc.") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 10, PaddingRight = 2 }); if (getColonne().RendInizioTrimestre) tabellaProdotti.Columns.Add(new ColumnPDF("RendInizioTrimestre", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendInizioTrimestre", "Rend. inizio
trimestre (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 3 }); if (getColonne().RendInizioAnno) tabellaProdotti.Columns.Add(new ColumnPDF("RendInizioAnno", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendInizioAnno", "Rend. inizio
anno (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10 }); if (getColonne().VaR) tabellaProdotti.Columns.Add(new ColumnPDF("VaR", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "VaR", "VaR (%)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 15 }); if (getColonne().RischioCredito) tabellaProdotti.Columns.Add(new ColumnPDF("RischioCredito", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RischioCredito", "Rischio
Credito") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10 }); if (getColonne().Complessità) tabellaProdotti.Columns.Add(new ColumnPDF("Complessità", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "Complessità", "Complessità") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingRight = 2, HeaderPaddingLeft = 6 }); if (getColonne().ValoriDiCarico) tabellaProdotti.Columns.Add(new ColumnPDF("ValoriDiCarico", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "ValoriDiCarico", "Prezzo medio
di carico (€)" + getAsterischiForValoriDiCarico()) { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().UtilePerditaCaricoEuro) tabellaProdotti.Columns.Add(new ColumnPDF("UtilePerditaCaricoEuro", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "UtilePerditaCaricoEuro", "Utile / Perdita
di Carico (€)" + getAsterischiForUtilePerditaCaricoEuro()) { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().UtilePerditaCaricoPerc) tabellaProdotti.Columns.Add(new ColumnPDF("UtilePerditaCaricoPerc", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "UtilePerditaCaricoPerc", "Utile / Perdita
di Carico (%)" + getAsterischiForUtilePerditaCaricoPerc()) { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 5, HeaderPaddingRight = 2 }); Boolean isSavingMap = false; for (int h = 0; h < dati.Tables["prodotti"].Rows.Count; h++) { DataRow prodotto = dati.Tables["prodotti"].Rows[h]; if (!prodotto["SavingMap"].Equals("")) { isSavingMap = true; } if (!prodotto["CodArea"].Equals("")) { string codArea = prodotto["CodArea"].ToString(); tabellaProdotti.Cells[1, h].ColSpan = 2; var listaOggetti = new List { new RectanglePDF(8,8, ColorPDF.GetBy_AreaBisogno(codArea)){DeltaY = 4.8F}, new FormattedTextAreaPDF { Text = codArea.Substring(0,1), FontBold = true, FontColor = ColorPDF.Bianco, DeltaX = codArea.Substring(0,1).Equals("I")?2.3F:2.0F, FontSize= 6, DeltaY = 2.3F }, new FormattedTextAreaPDF { Text = prodotto["Descrizione"].ToString(), FontBold = Convert.ToBoolean(prodotto["FontBold"]), FontColor = ColorPDF.Nero, DeltaX = 14F, FontSize= 6, DeltaY = 2.2F } }; if ((prodotto["Descrizione"].ToString().Equals("GP ET - Liquidità") || prodotto["Descrizione"].ToString().Equals("GP EF- Liquidità")) && Convert.ToDecimal(prodotto["ControvaloreAttuale"]) < 0) { listaOggetti = new List { new RectanglePDF(8, 8, ColorPDF.Bianco){DeltaY = 4.8F}, new FormattedTextAreaPDF { Text = "-", FontBold = true, FontColor = ColorPDF.Nero, DeltaX = 2F, FontSize = 6, DeltaY = 2.3F }, new FormattedTextAreaPDF { Text = prodotto["Descrizione"].ToString(), FontBold = false, FontColor = ColorPDF.Nero, DeltaX = 14F, FontSize=6, DeltaY = 2.2F } }; } tabellaProdotti.Cells[1, h].ValueObjectList.AddRange(listaOggetti); tabellaProdotti.Cells[1, h].YContentOffset = 10; } else if (!prodotto["Descrizione"].Equals("")) { int lenght = prodotto["Descrizione"].ToString().Length < numeroCaratteri ? prodotto["Descrizione"].ToString().Length : numeroCaratteri; int lastIndexOfSpace = prodotto["Descrizione"].ToString().Substring(0, lenght).LastIndexOf(' '); string nomeProdotto = prodotto["Descrizione"].ToString().Length <= numeroCaratteri ? prodotto["Descrizione"].ToString() : prodotto["Descrizione"].ToString().Substring(0, lastIndexOfSpace) + "
" + prodotto["Descrizione"].ToString().Substring(lastIndexOfSpace + 1); tabellaProdotti.Cells[1, h].ColSpan = 2; int lunghezza = widthNomeProdotto; float iDeltaY = prodotto["Descrizione"].ToString().Length <= numeroCaratteri ? 2.5F : 0.3F; tabellaProdotti.Cells[1, h].ValueObject = new FormattedTextAreaPDF { Text = nomeProdotto, FontBold = Convert.ToBoolean(prodotto["FontBold"]), FontColor = ColorPDF.Nero, DeltaX = 14.0F, FontSize = 6, DeltaY = iDeltaY, Width = widthNomeProdotto }; } else if (!prodotto["NomeProdotto"].Equals("")) { int lenght = prodotto["NomeProdotto"].ToString().Length < numeroCaratteri ? prodotto["NomeProdotto"].ToString().Length : numeroCaratteri; int lastIndexOfSpace = prodotto["NomeProdotto"].ToString().Substring(0, lenght).LastIndexOf(' '); string nomeProdotto = prodotto["NomeProdotto"].ToString().Length <= numeroCaratteri ? prodotto["NomeProdotto"].ToString() : prodotto["NomeProdotto"].ToString().Substring(0, lastIndexOfSpace) + "
" + prodotto["NomeProdotto"].ToString().Substring(lastIndexOfSpace); tabellaProdotti.Cells[1, h].ColSpan = 2; int lunghezza = widthNomeProdotto; float iDeltaY = prodotto["NomeProdotto"].ToString().Length <= numeroCaratteri ? 2.5F : 0.3F; tabellaProdotti.Cells[1, h].ValueObject = new FormattedTextAreaPDF { Text = nomeProdotto, FontBold = false, FontColor = ColorPDF.Nero, DeltaX = 4.0F, FontSize = 6, DeltaY = iDeltaY, Width = widthNomeProdotto }; } for (int c = 0; c < tabellaProdotti.Columns.Count; c++) { if (Convert.ToBoolean(prodotto["BackGroundColor"])) tabellaProdotti.Cells[c, h].BackgroundColor = ColorPDF.ConsulenzaUnica_Grigio_SfondoColonnaHeaderFooterTabella; if (Convert.ToBoolean(prodotto["FontBold"])) tabellaProdotti.Cells[c, h].FontBold = true; if (tabellaProdotti.Columns[c].Id.Equals("Immagine")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; //if (tabellaProdotti.Columns[c].Id.Equals("Area")) // tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("ContrattoDossier")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("NomeProdotto")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("CodIsin")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("DistrCedoleDividendi")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("RatingMorningstar")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("NumqQuantValnom")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("QuotaPrezzoEuro")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("ControvaloreAttuale")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("DataAgg")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("VersatoNettoSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("UtilePerditaSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendAnnualSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("DataSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("VersatoNettoAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("UtilPerditaAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendCumAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("DataAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendInizioTrimestre")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendInizioAnno")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("VaR")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RischioCredito")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("Complessità")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("ValoriDiCarico")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("UtilePerditaCaricoEuro")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("UtilePerditaCaricoPerc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; } } if (getNote3().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote3(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); if (getNote1().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote1(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6 }); if (getNote2().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote2(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6 }); if (getNote4().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote4(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); if (getNote5().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote5(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); if (getNote6().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote6(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); if (isSavingMap) { tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, "Servizio Saving Map attivo.", new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella, new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit, 0.60F, "SavingMap.png")) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left }); } AddElement(tabellaProdotti); } protected void DrawTCM() { var dati = GetDataSetTCM(); if (getTesto1().Length > 0) { AddElement(new SpacePDF(20)); AddElement(new FormattedTextAreaPDF(getTesto1(), EnvironmentFacade.RendererFacade.XLeftLimit) { FontSize = 7, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); AddElement(new SpacePDF(15)); } for (int h = 0; h < dati.Tables["prodottiTCM"].Rows.Count; h++) { var tableName = "prodottiTCM" + h; var ds = new DataSet(); ds.Tables.Add(tableName); DataTable dataTable = ds.Tables[tableName]; dataTable.Columns.Add("Prodotto", typeof(string)); dataTable.Columns.Add("NumPolizza", typeof(string)); dataTable.Columns.Add("DataDecorrenza", typeof(string)); dataTable.Columns.Add("DataScadenza", typeof(string)); dataTable.Columns.Add("PremioAnnuo", typeof(string)); dataTable.Columns.Add("Periodicita", typeof(string)); dataTable.Columns.Add("TotaleVersato", typeof(string)); dataTable.Columns.Add("Contratto", typeof(string)); DataRow prodotto = dati.Tables["prodottiTCM"].Rows[h]; dataTable.ImportRow(prodotto); var tabellaProdotti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dataTable) { Style = Style.ConsulenzaUnica, Footer = false, AlternateRow = false, ShowBorderLastLine = false, HeaderHeight = 30, HeaderMargin = 2 }; int widthTotaleAltre = 370; int widthNomeProdotto = 520 - widthTotaleAltre; int numeroCaratteri = widthNomeProdotto <= 100 ? 25 : widthNomeProdotto <= 140 ? 30 : widthNomeProdotto <= 160 ? 38 : 52; //RIGA AGGREGATA tabellaProdotti.Columns.Add(new ColumnPDF("Contratto", widthNomeProdotto, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "Prodotto", "Contratto "+prodotto["Contratto"]) { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); tabellaProdotti.Columns.Add(new ColumnPDF("NumPolizza", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "NumPolizza", "Numero di polizza") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); tabellaProdotti.Columns.Add(new ColumnPDF("DataDecorrenza", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataDecorrenza", "Data decorrenza") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); tabellaProdotti.Columns.Add(new ColumnPDF("DataScadenza", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataScadenza", "Data scadenza") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); tabellaProdotti.Columns.Add(new ColumnPDF("PremioAnnuo", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "PremioAnnuo", "Premio annuo (€)") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); tabellaProdotti.Columns.Add(new ColumnPDF("Periodicita", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "Periodicita", "Periodicità") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2, PaddingLeft = 3 }); tabellaProdotti.Columns.Add(new ColumnPDF("TotaleVersato", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "TotaleVersato", "Totale versato (€)") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); for (int c = 0; c < tabellaProdotti.Columns.Count; c++) { if (tabellaProdotti.Columns[c].Id.Equals("PremioAnnuo")) tabellaProdotti.Cells[c, 0].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("TotaleVersato")) tabellaProdotti.Cells[c, 0].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; } AddElement(tabellaProdotti); } /* // var tabellaProdotti = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati.Tables["prodottiTCM"]) { Style = Style.ConsulenzaUnica, Footer = true, AlternateRow = false, ShowBorderLastLine = false, HeaderHeight = 30, HeaderMargin = 2 }; prodotti.Columns.Add("ContrattoProdotto", typeof(string)); prodotti.Columns.Add("NumPolizza", typeof(string)); 50 prodotti.Columns.Add("DataSott", typeof(string)); 50 prodotti.Columns.Add("DataScadenza", typeof(string));50 prodotti.Columns.Add("PremioAnnuo", typeof(string));70 prodotti.Columns.Add("TotaleVersato", typeof(string));70 prodotti.Columns.Add("Periodicita", typeof(string));50 prodotti.Columns.Add("FontBold", typeof(bool)); prodotti.Columns.Add("BackGroundColor", typeof(bool)); if (getColonne().NomeProdotto) tabellaProdotti.Columns.Add(new ColumnPDF("NomeProdotto", widthNomeProdotto, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "NomeProdotto", "Nome prodotto") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 2 }); if (getColonne().ContrattoDossier) tabellaProdotti.Columns.Add(new ColumnPDF("ContrattoDossier", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "ContrattoDossier", "Contratto /
Dossier") { HeaderFontSize = headerFontSize }); if (getColonne().CodIsin) tabellaProdotti.Columns.Add(new ColumnPDF("CodIsin", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "CodIsin", "Cod. ISIN") { HeaderFontSize = headerFontSize, PaddingLeft = 6, HeaderPaddingLeft = 3 }); if (getColonne().DistrCedoleDividendi) tabellaProdotti.Columns.Add(new ColumnPDF("DistrCedoleDividendi", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DistrCedoleDividendi", "Distr. cedole /
dividendi") { HeaderFontSize = headerFontSize, PaddingRight = 2 }); if (getColonne().RatingMorningstar) tabellaProdotti.Columns.Add(new ColumnPDF("RatingMorningstar", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RatingMorningstar", "Rating Morningstar Overall") { HeaderFontSize = headerFontSize, PaddingLeft = 6, HeaderPaddingLeft = 3 }); if (getColonne().NumqQuantValnom) tabellaProdotti.Columns.Add(new ColumnPDF("NumqQuantValnom", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "NumqQuantValnom", "Num. Quote / Quant. / Val. nom.") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().QuotaPrezzoEuro) tabellaProdotti.Columns.Add(new ColumnPDF("QuotaPrezzoEuro", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "QuotaPrezzoEuro", "Quota /
Prezzo Euro") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 15, HeaderPaddingRight = 10 }); if (getColonne().ControvaloreAttuale) tabellaProdotti.Columns.Add(new ColumnPDF("ControvaloreAttuale", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "ControvaloreAttuale", "Controvalore attuale (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 15, HeaderPaddingRight = 15 }); if (getColonne().DataAgg) tabellaProdotti.Columns.Add(new ColumnPDF("DataAgg", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataAgg", "Data agg.") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 10, PaddingRight = 2 }); if (getColonne().VersatoNettoSott) tabellaProdotti.Columns.Add(new ColumnPDF("VersatoNettoSott", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "VersatoNettoSott", "Versato netto
da sott. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().UtilePerditaSott) tabellaProdotti.Columns.Add(new ColumnPDF("UtilePerditaSott", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "UtilePerditaSott", "Utile / Perdita
da sott. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().RendAnnualSott) tabellaProdotti.Columns.Add(new ColumnPDF("RendAnnualSott", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendAnnualSott", "Rend. da
sott. (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 6 }); if (getColonne().DataSott) tabellaProdotti.Columns.Add(new ColumnPDF("DataSott", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataSott", "Data sott.") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 10, PaddingRight = 2 }); if (getColonne().VersatoNettoAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("VersatoNettoAssoc", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "VersatoNettoAssoc", "Versato netto
da assoc. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().UtilPerditaAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("UtilPerditaAssoc", widthImporti, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "UtilPerditaAssoc", "Utile / Perdita
da assoc. (€)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10, HeaderPaddingRight = 5 }); if (getColonne().RendCumAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("RendCumAssoc", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendCumAssoc", "Rend. cum.
da assoc. (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 3 }); if (getColonne().DataAssoc) tabellaProdotti.Columns.Add(new ColumnPDF("DataAssoc", widthData, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "DataAssoc", "Data assoc.") { HeaderFontSize = headerFontSize, HeaderPaddingLeft = 10, PaddingRight = 2 }); if (getColonne().RendInizioTrimestre) tabellaProdotti.Columns.Add(new ColumnPDF("RendInizioTrimestre", width60, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendInizioTrimestre", "Rend. inizio
trimestre (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 3 }); if (getColonne().RendInizioAnno) tabellaProdotti.Columns.Add(new ColumnPDF("RendInizioAnno", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RendInizioAnno", "Rend. inizio
anno (%)*") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10 }); if (getColonne().VaR) tabellaProdotti.Columns.Add(new ColumnPDF("VaR", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "VaR", "VaR (%)") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 15 }); if (getColonne().RischioCredito) tabellaProdotti.Columns.Add(new ColumnPDF("RischioCredito", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "RischioCredito", "Rischio
Credito") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingLeft = 10 }); if (getColonne().Complessità) tabellaProdotti.Columns.Add(new ColumnPDF("Complessità", widthPerc, HorizontalAlignmentType.Sinistra, false, false, fontsize, ColumnType.Testo, "Complessità", "Complessità") { HeaderFontSize = headerFontSize, PaddingRight = 2, HeaderPaddingRight = 2, HeaderPaddingLeft = 6 }); for (int h = 0; h < dati.Tables["prodotti"].Rows.Count; h++) { DataRow prodotto = dati.Tables["prodotti"].Rows[h]; if (!prodotto["CodArea"].Equals("")) { string codArea = prodotto["CodArea"].ToString(); tabellaProdotti.Cells[0, h].ColSpan = 2; var listaOggetti = new List { new RectanglePDF(8,8, ColorPDF.GetBy_AreaBisogno(codArea)){DeltaY = 4.8F}, new FormattedTextAreaPDF { Text = codArea.Substring(0,1), FontBold = true, FontColor = ColorPDF.Bianco, DeltaX = codArea.Substring(0,1).Equals("I")?2.3F:2.0F, FontSize= 6, DeltaY = 2.3F }, new FormattedTextAreaPDF { Text = prodotto["Descrizione"].ToString(), FontBold = Convert.ToBoolean(prodotto["FontBold"]), FontColor = ColorPDF.Nero, DeltaX = 14F, FontSize= 6, DeltaY = 2.2F } }; if ((prodotto["Descrizione"].ToString().Equals("GP ET - Liquidità") || prodotto["Descrizione"].ToString().Equals("GP EF- Liquidità")) && Convert.ToDecimal(prodotto["ControvaloreAttuale"]) < 0) { listaOggetti = new List { new RectanglePDF(8, 8, ColorPDF.Bianco){DeltaY = 4.8F}, new FormattedTextAreaPDF { Text = "-", FontBold = true, FontColor = ColorPDF.Nero, DeltaX = 2F, FontSize = 6, DeltaY = 2.3F }, new FormattedTextAreaPDF { Text = prodotto["Descrizione"].ToString(), FontBold = false, FontColor = ColorPDF.Nero, DeltaX = 14F, FontSize=6, DeltaY = 2.2F } }; } tabellaProdotti.Cells[0, h].ValueObjectList.AddRange(listaOggetti); tabellaProdotti.Cells[0, h].YContentOffset = 10; } else if (!prodotto["Descrizione"].Equals("")) { int lenght = prodotto["Descrizione"].ToString().Length < numeroCaratteri ? prodotto["Descrizione"].ToString().Length : numeroCaratteri; int lastIndexOfSpace = prodotto["Descrizione"].ToString().Substring(0, lenght).LastIndexOf(' '); string nomeProdotto = prodotto["Descrizione"].ToString().Length <= numeroCaratteri ? prodotto["Descrizione"].ToString() : prodotto["Descrizione"].ToString().Substring(0, lastIndexOfSpace) + "
" + prodotto["Descrizione"].ToString().Substring(lastIndexOfSpace + 1); tabellaProdotti.Cells[0, h].ColSpan = 2; int lunghezza = widthNomeProdotto; float iDeltaY = prodotto["Descrizione"].ToString().Length <= numeroCaratteri ? 2.5F : 0.3F; tabellaProdotti.Cells[0, h].ValueObject = new FormattedTextAreaPDF { Text = nomeProdotto, FontBold = Convert.ToBoolean(prodotto["FontBold"]), FontColor = ColorPDF.Nero, DeltaX = 14.0F, FontSize = 6, DeltaY = iDeltaY, Width = widthNomeProdotto }; } else if (!prodotto["NomeProdotto"].Equals("")) { int lenght = prodotto["NomeProdotto"].ToString().Length < numeroCaratteri ? prodotto["NomeProdotto"].ToString().Length : numeroCaratteri; int lastIndexOfSpace = prodotto["NomeProdotto"].ToString().Substring(0, lenght).LastIndexOf(' '); string nomeProdotto = prodotto["NomeProdotto"].ToString().Length <= numeroCaratteri ? prodotto["NomeProdotto"].ToString() : prodotto["NomeProdotto"].ToString().Substring(0, lastIndexOfSpace) + "
" + prodotto["NomeProdotto"].ToString().Substring(lastIndexOfSpace); tabellaProdotti.Cells[0, h].ColSpan = 2; int lunghezza = widthNomeProdotto; float iDeltaY = prodotto["NomeProdotto"].ToString().Length <= numeroCaratteri ? 2.5F : 0.3F; tabellaProdotti.Cells[0, h].ValueObject = new FormattedTextAreaPDF { Text = nomeProdotto, FontBold = false, FontColor = ColorPDF.Nero, DeltaX = 14.0F, FontSize = 6, DeltaY = iDeltaY, Width = widthNomeProdotto }; } for (int c = 0; c < tabellaProdotti.Columns.Count; c++) { if (Convert.ToBoolean(prodotto["BackGroundColor"])) tabellaProdotti.Cells[c, h].BackgroundColor = ColorPDF.ConsulenzaUnica_Grigio_SfondoColonnaHeaderFooterTabella; if (Convert.ToBoolean(prodotto["FontBold"])) tabellaProdotti.Cells[c, h].FontBold = true; if (tabellaProdotti.Columns[c].Id.Equals("Immagine")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; //if (tabellaProdotti.Columns[c].Id.Equals("Area")) // tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("ContrattoDossier")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("NomeProdotto")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("CodIsin")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("DistrCedoleDividendi")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("RatingMorningstar")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Sinistra; if (tabellaProdotti.Columns[c].Id.Equals("NumqQuantValnom")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("QuotaPrezzoEuro")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("ControvaloreAttuale")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("DataAgg")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("VersatoNettoSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("UtilePerditaSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendAnnualSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("DataSott")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("VersatoNettoAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("UtilPerditaAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendCumAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("DataAssoc")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendInizioTrimestre")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RendInizioAnno")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("VaR")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("RischioCredito")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; if (tabellaProdotti.Columns[c].Id.Equals("Complessità")) tabellaProdotti.Cells[c, h].HorizontalAlignment = Business.OBJ_PDF.HorizontalAlignmentType.Destra; } } if (getNote3().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote3(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }); if (getNote1().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote1(), new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6 }); if (getNote2().Length > 0) tabellaProdotti.Notes.Add( new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, getNote2(), new[] { "" }, new[] { "" }, string.Empty, TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella) { FontSize = 6 }); */ } private int calculateWidth() { int tot = 0; //if (getColonne().Area) // tot += widthImporti; if (getColonne().ContrattoDossier) tot += widthData; if (getColonne().CodIsin) tot += width60; if (getColonne().DistrCedoleDividendi) tot += width60; if (getColonne().RatingMorningstar) tot += widthData; if (getColonne().NumqQuantValnom) tot += widthImporti; if (getColonne().QuotaPrezzoEuro) tot += widthImporti; if (getColonne().ControvaloreAttuale) tot += widthImporti; if (getColonne().DataAgg) tot += widthData; if (getColonne().VersatoNettoSott) tot += widthImporti; if (getColonne().UtilePerditaSott) tot += widthImporti; if (getColonne().RendAnnualSott) tot += widthPerc; if (getColonne().DataSott) tot += widthData; if (getColonne().VersatoNettoAssoc) tot += widthImporti; if (getColonne().UtilPerditaAssoc) tot += widthImporti; if (getColonne().RendCumAssoc) tot += width60; if (getColonne().DataAssoc) tot += widthData; if (getColonne().RendInizioTrimestre) tot += width60; if (getColonne().RendInizioAnno) tot += widthPerc; if (getColonne().VaR) tot += widthPerc; if (getColonne().RischioCredito) tot += widthPerc; if (getColonne().Complessità) tot += widthPerc; if (getColonne().ValoriDiCarico) tot += widthImporti; if (getColonne().UtilePerditaCaricoEuro) tot += widthImporti; if (getColonne().UtilePerditaCaricoPerc) tot += widthImporti; return tot; } protected sealed override DataTable GetDataTable() { return null; } protected sealed override DataSet GetDataSet() { var ds = new DataSet(); ds.Tables.Add("prodotti"); ds.Tables["prodotti"].Columns.Add("CodArea", typeof(string)); ds.Tables["prodotti"].Columns.Add("Descrizione", typeof(string)); ds.Tables["prodotti"].Columns.Add("FontBold", typeof(bool)); ds.Tables["prodotti"].Columns.Add("BackGroundColor", typeof(bool)); ds.Tables["prodotti"].Columns.Add("Area", typeof(string)); ds.Tables["prodotti"].Columns.Add("ContrattoDossier", typeof(string)); ds.Tables["prodotti"].Columns.Add("NomeProdotto", typeof(string)); // Modifica per Saving Map ds.Tables["prodotti"].Columns.Add("SavingMap", typeof(string)); // Fine Modifica ds.Tables["prodotti"].Columns.Add("CodIsin", typeof(string)); ds.Tables["prodotti"].Columns.Add("DistrCedoleDividendi", typeof(string)); ds.Tables["prodotti"].Columns.Add("FreqCedoleDividendi", typeof(string)); ds.Tables["prodotti"].Columns.Add("RatingMorningstar", typeof(string)); ds.Tables["prodotti"].Columns.Add("NumqQuantValnom", typeof(string)); ds.Tables["prodotti"].Columns.Add("QuotaPrezzoEuro", typeof(string)); ds.Tables["prodotti"].Columns.Add("ControvaloreAttuale", typeof(string)); ds.Tables["prodotti"].Columns.Add("DataAgg", typeof(string)); ds.Tables["prodotti"].Columns.Add("VersatoNettoSott", typeof(string)); ds.Tables["prodotti"].Columns.Add("UtilePerditaSott", typeof(string)); ds.Tables["prodotti"].Columns.Add("RendAnnualSott", typeof(string)); ds.Tables["prodotti"].Columns.Add("DataSott", typeof(string)); ds.Tables["prodotti"].Columns.Add("VersatoNettoAssoc", typeof(string)); ds.Tables["prodotti"].Columns.Add("UtilPerditaAssoc", typeof(string)); ds.Tables["prodotti"].Columns.Add("RendCumAssoc", typeof(string)); ds.Tables["prodotti"].Columns.Add("DataAssoc", typeof(string)); ds.Tables["prodotti"].Columns.Add("RendInizioTrimestre", typeof(string)); ds.Tables["prodotti"].Columns.Add("RendInizioAnno", typeof(string)); ds.Tables["prodotti"].Columns.Add("VaR", typeof(string)); ds.Tables["prodotti"].Columns.Add("RischioCredito", typeof(string)); ds.Tables["prodotti"].Columns.Add("Complessità", typeof(string)); ds.Tables["prodotti"].Columns.Add("ValoriDiCarico", typeof(string)); ds.Tables["prodotti"].Columns.Add("UtilePerditaCaricoEuro", typeof(string)); ds.Tables["prodotti"].Columns.Add("UtilePerditaCaricoPerc", typeof(string)); rsDettaglioProdotti dettaglioProdotti1 = GetDettaglioProdotti(); var dettaglioProdotti = dettaglioProdotti1.dettaglioProdotti.ToList(); string[] notChAgg = { "PAT", "RA" }; foreach (rsAggregatoPosizioni rsA in dettaglioProdotti1.elencoAggregati.elencoCategoria) { if (rsA.descrizione.Equals("Gestioni Patrimoniali")) gpPresent = true; else if (rsA.descrizione.Equals("Fondi")) fondiPresent = true; else if (rsA.descrizione.Equals("Unit Linked")) ulPresent = true; else if (rsA.descrizione.Equals("Assicurativi Previdenziali")) apPresent = true; else if (rsA.descrizione.Equals("Titoli")) titPresent = true; } switch (raggruppaProdotti()) { case RaggruppaProdotti.AreaBisogno: rsAggregatoPosizioni[] elencoAreeProgetti = dettaglioProdotti1.elencoAggregati.elencoAreeProgetti; var areeDisplayInfos = datiSeiUnico.displayInfos().areeDisplayInfos; List elencoAreeProgettiOrdinati = new List(); rsAggregatoPosizioni areeProgettoPreSecondaria = null; rsAggregatoPosizioni areeProgettoPreEssenziale = null; rsAggregatoPosizioni altro = null; foreach (rsAggregatoPosizioni areeProgetti in from o in elencoAreeProgetti join a in areeDisplayInfos on o.chiaveAggregazione.ToUpper() equals a.key.ToUpper() where o.posizioniAggregate != null && !notChAgg.Contains(o.chiaveAggregazione) orderby a.value.order ascending, o.ctvAttuale descending select o) { if (areeProgetti.descrizione.ToLower().Equals("previdenza secondaria")) { altro = null; areeProgettoPreSecondaria = areeProgetti; } else if (areeProgetti.descrizione.ToLower().Equals("previdenza essenziale")) { altro = null; areeProgettoPreEssenziale = areeProgetti; } else altro = areeProgetti; if (altro == null && areeProgettoPreSecondaria != null && areeProgettoPreEssenziale != null) { elencoAreeProgettiOrdinati.Add(areeProgettoPreEssenziale); elencoAreeProgettiOrdinati.Add(areeProgettoPreSecondaria); areeProgettoPreSecondaria = null; areeProgettoPreEssenziale = null; } else if (altro != null) { if (areeProgettoPreSecondaria != null) { elencoAreeProgettiOrdinati.Add(areeProgettoPreSecondaria); areeProgettoPreSecondaria = null; } if (areeProgettoPreEssenziale != null) { elencoAreeProgettiOrdinati.Add(areeProgettoPreEssenziale); areeProgettoPreEssenziale = null; } elencoAreeProgettiOrdinati.Add(areeProgetti); } } if (areeProgettoPreSecondaria != null) { elencoAreeProgettiOrdinati.Add(areeProgettoPreSecondaria); areeProgettoPreSecondaria = null; } if (areeProgettoPreEssenziale != null) { elencoAreeProgettiOrdinati.Add(areeProgettoPreEssenziale); areeProgettoPreEssenziale = null; } foreach (rsAggregatoPosizioni areeProgetti in elencoAreeProgettiOrdinati) { string codArea = areeProgetti.chiaveAggregazione; if (areeProgetti.chiaveProgettoLinea == null) { ElencoProdotti(ds.Tables["prodotti"], areeProgetti, codArea, areeProgetti.descrizione); if (codArea.Equals("Inv") || codArea.Equals("Pre")) continue; } if (codArea.Equals("Inv") || codArea.Equals("Pre")) ElencoProdotti(ds.Tables["prodotti"], areeProgetti, "", areeProgetti.descrizione); foreach (rsPosizione dettaglioProdotto in from a in areeProgetti.posizioniAggregate join d in dettaglioProdotti on a.chiaveAggregazione equals d.chiavePosizionePortafoglio orderby d.ctv descending select d) { if (dettaglioProdotto.prodotto.codInterno.Equals("FO")) gpFoglioPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("XY")) gpOmniaPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L191")) gpEligoFondPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L192")) gpEligoTitPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("US") || dettaglioProdotto.prodotto.codInterno.Equals("WS")) fondiEurizonPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("MK")) mcGestioniSgrPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("80")) fidProgettoPensionePresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("PP")) evProgettoPensionePresent = true; if (dettaglioProdotto.custodiaGaranzia != null && dettaglioProdotto.custodiaGaranzia.Equals("2")) fondiAGaranziaPresent = true; ElencoProdotti(ds.Tables["prodotti"], dettaglioProdotto, "", ""); } } TotaleRisorseAllocate(ds.Tables["prodotti"], elencoAreeProgetti); isAreeDiBisogno = true; break; case RaggruppaProdotti.Categoria: var elencoCategoria = dettaglioProdotti1.elencoAggregati.elencoCategoria; rsAggregatoPosizioni[] elencoAP = dettaglioProdotti1.elencoAggregati.elencoCategoria; rsAggregatoPosizioni[] elencoAPAree = dettaglioProdotti1.elencoAggregati.elencoAreeProgetti; var catDisplayInfos = datiSeiUnico.displayInfos().categoriaDisplayInfos; foreach (rsAggregatoPosizioni Categoria in from o in elencoCategoria join a in catDisplayInfos on o.chiaveAggregazione.ToUpper() equals a.key.ToUpper() where o.posizioniAggregate != null && !notChAgg.Contains(o.chiaveAggregazione) orderby a.value.order ascending select o) { if (Categoria.chiaveAggregazione == "CONTICORRENTI" && Categoria.ctvAttuale < 0 && datiSeiUnico.CASA_CC == 0)//i cc negativi sono considerati dopo continue; if (Categoria.chiaveAggregazione == "CONTICORRENTI" && Categoria.ctvAttuale < 0) ElencoProdotti(ds.Tables["prodotti"], Categoria, "", Categoria.descrizione)["ControvaloreAttuale"] = Helper.FormatCurrency((datiSeiUnico.CASA_CC).ToString()); else ElencoProdotti(ds.Tables["prodotti"], Categoria, "", Categoria.descrizione); foreach (rsPosizione dettaglioProdotto in from a in Categoria.posizioniAggregate join d in dettaglioProdotti on a.chiaveAggregazione equals d.chiavePosizionePortafoglio orderby d.ctv descending select d) { if (dettaglioProdotto.area == "Cc" && dettaglioProdotto.ctv < 0)//i cc negativi sono considerati dopo continue; if (dettaglioProdotto.prodotto.codInterno.Equals("FO")) gpFoglioPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("XY")) gpOmniaPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L191")) gpEligoFondPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L192")) gpEligoTitPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("US") || dettaglioProdotto.prodotto.codInterno.Equals("WS")) fondiEurizonPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("MK")) mcGestioniSgrPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("80")) fidProgettoPensionePresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("PP")) evProgettoPensionePresent = true; if (dettaglioProdotto.custodiaGaranzia != null && dettaglioProdotto.custodiaGaranzia.Equals("2")) fondiAGaranziaPresent = true; ElencoProdotti(ds.Tables["prodotti"], dettaglioProdotto, getColonne().Area ? dettaglioProdotto.area : "", getColonne().Area ? dettaglioProdotto.prodotto.nomeProdotto : ""); } } TotaleRisorseFinanziarieCategorie(ds.Tables["prodotti"], elencoAP, elencoAPAree); isCategorieProdotto = true; break; case RaggruppaProdotti.Contratto: var elencoContrattiLinea = dettaglioProdotti1.elencoAggregati.elencoContrattiLinea; var listaContrattiLinee = (from o in elencoContrattiLinea where o.posizioniAggregate != null && !notChAgg.Contains(o.chiaveAggregazione) select o).ToList(); var listaContratti = (from o in listaContrattiLinee where o.chiaveProgettoLinea == null orderby o.ctvAttuale descending select o).ToList(); var listaLinee = (from o in listaContrattiLinee where o.chiaveProgettoLinea != null orderby o.ctvAttuale descending select o).ToList(); rsAggregatoPosizioni[] elencoAPr = dettaglioProdotti1.elencoAggregati.elencoContrattiLinea; rsAggregatoPosizioni[] elencoAPrAree = dettaglioProdotti1.elencoAggregati.elencoAreeProgetti; foreach (rsAggregatoPosizioni Contratto in listaContratti) { bool rowContratto = false; var listaPosizioni = new List(); if (PRODUCT_TYPE_CASA.Equals(productsTypeSelected)) { listaPosizioni = (from a in Contratto.posizioniAggregate join d in dettaglioProdotti on a.chiaveAggregazione equals d.chiavePosizionePortafoglio where !(a.flagLinea) && !d.area.ToLower().Equals("cc") && d.ctv >= 0 orderby d.ctv descending select d).ToList(); } else { listaPosizioni = (from a in Contratto.posizioniAggregate join d in dettaglioProdotti on a.chiaveAggregazione equals d.chiavePosizionePortafoglio where !(a.flagLinea) orderby d.ctv descending select d).ToList(); } foreach (rsPosizione dettaglioProdotto in listaPosizioni) { if (!rowContratto) { ElencoProdotti(ds.Tables["prodotti"], Contratto, "", Contratto.descrizione); rowContratto = true; } if (dettaglioProdotto.prodotto.codInterno.Equals("FO")) gpFoglioPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("XY")) gpOmniaPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L191")) gpEligoFondPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L192")) gpEligoTitPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("US") || dettaglioProdotto.prodotto.codInterno.Equals("WS")) fondiEurizonPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("MK")) mcGestioniSgrPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("80")) fidProgettoPensionePresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("PP")) evProgettoPensionePresent = true; if (dettaglioProdotto.custodiaGaranzia != null && dettaglioProdotto.custodiaGaranzia.Equals("2")) fondiAGaranziaPresent = true; ElencoProdotti(ds.Tables["prodotti"], dettaglioProdotto, getColonne().Area ? dettaglioProdotto.area : "", getColonne().Area ? dettaglioProdotto.prodotto.nomeProdotto : ""); } foreach (rsAggregatoPosizioni Linea in listaLinee) { if (Linea.chiaveAggregazione.Equals(Contratto.chiaveAggregazione)) { if (!rowContratto) { ElencoProdotti(ds.Tables["prodotti"], Contratto, "", Contratto.descrizione); rowContratto = true; } ElencoProdotti(ds.Tables["prodotti"], Linea, "", Linea.descrizione); foreach (rsPosizione dettaglioProdotto in from a in Linea.posizioniAggregate join d in dettaglioProdotti on a.chiaveAggregazione equals d.chiavePosizionePortafoglio where (a.flagLinea) orderby d.ctv descending select d) { if (dettaglioProdotto.area == "Cc" && dettaglioProdotto.ctv < 0)//i cc negativi sono considerati dopo continue; if (dettaglioProdotto.prodotto.codInterno.Equals("FO")) gpFoglioPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("XY")) gpOmniaPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L191")) gpEligoFondPresent = true; if (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L192")) gpEligoTitPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("US") || dettaglioProdotto.prodotto.codInterno.Equals("WS")) fondiEurizonPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("MK")) mcGestioniSgrPresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("80")) fidProgettoPensionePresent = true; if (dettaglioProdotto.prodotto.codInterno.Equals("PP")) evProgettoPensionePresent = true; if (dettaglioProdotto.custodiaGaranzia != null && dettaglioProdotto.custodiaGaranzia.Equals("2")) fondiAGaranziaPresent = true; ElencoProdotti(ds.Tables["prodotti"], dettaglioProdotto, getColonne().Area ? dettaglioProdotto.area : "", getColonne().Area ? dettaglioProdotto.prodotto.nomeProdotto : ""); } } } } if (PRODUCT_TYPE_CASA.Equals(productsTypeSelected)) { TotaleRisorseFinanziarieContratti(ds.Tables["prodotti"], elencoAPr, elencoAPrAree); } else { TotalePosizioniCointestate(ds.Tables["prodotti"], elencoAPr); } break; } return ds; } protected DataSet GetDataSetTCM() { var ds = new DataSet(); ds.Tables.Add("prodottiTCM"); var prodotti = ds.Tables["prodottiTCM"]; prodotti.Columns.Add("Prodotto", typeof(string)); prodotti.Columns.Add("NumPolizza", typeof(string)); prodotti.Columns.Add("DataDecorrenza", typeof(string)); prodotti.Columns.Add("DataScadenza", typeof(string)); prodotti.Columns.Add("PremioAnnuo", typeof(string)); prodotti.Columns.Add("Periodicita", typeof(string)); prodotti.Columns.Add("TotaleVersato", typeof(string)); prodotti.Columns.Add("Contratto", typeof(string)); var dettaglioProdotti = datiSeiUnico.patrimonioUnit().patrimonioCasa.dettaglioProdottiTCM.ToList(); var visualizzazione = visualizzazioneScelta(); foreach (rsAssicurativoDanniTCM rsTCM in dettaglioProdotti) { if((visualizzazione.Equals(VisualizzazioneProdotti.PosizioniAttive) || visualizzazione.Equals(VisualizzazioneProdotti.PosizioniLiquidate)) && rsTCM.statoContratto.Equals("L")) { break; } DataRow dr1 = prodotti.NewRow(); dr1["Contratto"] = rsTCM.codiceContratto; dr1["Prodotto"] = rsTCM.nome; dr1["NumPolizza"] = rsTCM.numeroPolizza; dr1["DataDecorrenza"] = rsTCM.dataDecorrenzaSpecified ? Convert.ToDateTime(rsTCM.dataDecorrenza).ToShortDateString() : "-"; dr1["DataScadenza"] = rsTCM.dataScadenzaSpecified ? Convert.ToDateTime(rsTCM.dataScadenza).ToShortDateString() : "-"; dr1["PremioAnnuo"] = Helper.FormatCurrency(rsTCM.premioAnnuo.ToString()); dr1["Periodicita"] = rsTCM.periodicita != string.Empty && rsTCM.periodicita!=null ? rsTCM.periodicita : "-"; dr1["TotaleVersato"] = Helper.FormatCurrency(rsTCM.totaleVersato.ToString()); prodotti.Rows.Add(dr1); } return ds; } private rsDettaglioProdotti GetDettaglioProdotti() { switch (productsTypeSelected) { case PRODUCT_TYPE_CASA: return datiSeiUnico.patrimonioUnit().patrimonioCasa.dettaglioProdotti; case PRODUCT_TYPE_COINTESTATI: return datiSeiUnico.patrimonioUnit().patrimonioCasa.dettaglioProdottiCointestati; default: return datiSeiUnico.patrimonioUnit().patrimonioCasa.dettaglioProdotti; } } private DataRow ElencoProdotti(DataTable prodotti, rsAggregatoPosizioni areaProgetti, string codArea, string descrizione, bool fontBold = true, bool backGroundColor = true) { DataRow dr = prodotti.NewRow(); dr["CodArea"] = codArea; dr["Descrizione"] = descrizione; dr["FontBold"] = fontBold; dr["BackGroundColor"] = backGroundColor; dr["RendInizioTrimestre"] = "n.c."; dr["RendInizioAnno"] = "n.c."; dr["RendAnnualSott"] = "n.c."; dr["RendCumAssoc"] = "n.c."; dr["VersatoNettoSott"] = "n.c."; dr["UtilePerditaSott"] = "n.c."; if (areaProgetti != null) { dr["Area"] = areaProgetti.chiaveAggregazione; dr["ContrattoDossier"] = ""; dr["NomeProdotto"] = ""; dr["CodIsin"] = ""; dr["DistrCedoleDividendi"] = ""; dr["RatingMorningstar"] = ""; dr["NumqQuantValnom"] = "-";// areaProgetti.quantitaNominale; dr["QuotaPrezzoEuro"] = "-";//areaProgetti.prezzoEuro; dr["ControvaloreAttuale"] = Helper.FormatCurrency(areaProgetti.ctvAttuale.ToString()); dr["DataAgg"] = ""; dr["VersatoNettoSott"] = areaProgetti.versatoNettoSottoscrizioneSpecified ? Helper.FormatCurrency(areaProgetti.versatoNettoSottoscrizione.ToString()) : "n.c."; dr["UtilePerditaSott"] = areaProgetti.utilePerditaSottoscrizioneSpecified ? Helper.FormatCurrency(areaProgetti.utilePerditaSottoscrizione.ToString()) : "n.c."; dr["DataSott"] = ""; dr["VersatoNettoAssoc"] = areaProgetti.versatoNettoAssociazioneSpecified ? Helper.FormatCurrency(areaProgetti.versatoNettoAssociazione.ToString()) : "n.c."; dr["UtilPerditaAssoc"] = areaProgetti.utilePerditaAssociazioneSpecified ? Helper.FormatCurrency(areaProgetti.utilePerditaAssociazione.ToString()) : "n.c."; dr["RendCumAssoc"] = areaProgetti.rendimentoAssociazioneSpecified ? Helper.FormatDecimal(areaProgetti.rendimentoAssociazione.ToString(), 2) : "n.c."; dr["DataAssoc"] = ""; dr["RendInizioTrimestre"] = areaProgetti.rendimentoInizioTrimestreSpecified ? areaProgetti.rendimentoInizioTrimestre.ToString() : "n.c."; dr["RendInizioAnno"] = areaProgetti.rendimentoInizioAnnoSpecified ? areaProgetti.rendimentoInizioAnno.ToString() : "n.c."; dr["RendAnnualSott"] = areaProgetti.rendimentoDaSottoscrizioneSpecified ? !Helper.FormatDecimal(areaProgetti.rendimentoDaSottoscrizione.ToString(), 2).Equals("0,00") ? Helper.FormatDecimal(areaProgetti.rendimentoDaSottoscrizione.ToString(), 2) : "n.c." : "n.c."; dr["VaR"] = areaProgetti.prometeiaInfos.varDecodificato; dr["RischioCredito"] = "-"; dr["Complessità"] = "-"; dr["ValoriDiCarico"] = "-"; dr["UtilePerditaCaricoEuro"] = "-"; dr["UtilePerditaCaricoPerc"] = "-"; } prodotti.Rows.Add(dr); return dr; } private DataRow ElencoProdotti(DataTable prodotti, rsPosizione dettaglioProdotto, string codArea, string descrizione, bool fontBold = false, bool backGroundColor = false) { if (dettaglioProdotto.area.Equals("Self") && (dettaglioProdotto.prodotto.codSottoprodotto.Equals("L191") || dettaglioProdotto.prodotto.codSottoprodotto.Equals("L192"))) return ElencoEligoNegativi(prodotti, dettaglioProdotto, codArea, descrizione); //AC if (dettaglioProdotto.area.Equals("Self") && (dettaglioProdotto.prodotto.codSottoprodotto.Equals("V301"))) return ElencoFogliNegativi(prodotti, dettaglioProdotto, codArea, descrizione); //--AC var rendAnnualSott = dettaglioProdotto.rendimentoDaSottoscrizioneSpecified && !Helper.FormatDecimal(dettaglioProdotto.rendimentoDaSottoscrizione.ToString(), 2).Equals("0,00") ? dettaglioProdotto.rendimentoDaSottoscrizione.ToString().Replace(".", ",") : "n.c."; DataRow dr = prodotti.NewRow(); dr["CodArea"] = codArea; dr["Descrizione"] = descrizione; dr["FontBold"] = fontBold; dr["BackGroundColor"] = backGroundColor; if (dettaglioProdotto != null) { dr["Area"] = dettaglioProdotto.area; dr["ContrattoDossier"] = dettaglioProdotto.codContratto; dr["NomeProdotto"] = dettaglioProdotto.prodotto.nomeProdotto; // Modifica per Saving Map if (dettaglioProdotto.prodotto.savingMap) //if (dettaglioProdotto.prodotto.nomeProdotto.Substring(0, 2).ToUpper() =="FV") dr["SavingMap"] = "SavingMap.png"; else dr["SavingMap"] = ""; // Fine Modifica dr["CodIsin"] = dettaglioProdotto.prodotto.codIsinFE; dr["DistrCedoleDividendi"] = dettaglioProdotto.prodotto.distrCedoleDividendi.Contains("Frequenza") ? dettaglioProdotto.prodotto.distrCedoleDividendi.Replace("Frequenza", "
Freq.") : dettaglioProdotto.prodotto.distrCedoleDividendi; dr["RatingMorningstar"] = dettaglioProdotto.prodotto.ratingMorningstar > 0 ? getStar(dettaglioProdotto.prodotto.ratingMorningstar) : "-"; dr["NumqQuantValnom"] = dettaglioProdotto.quantitaNominaleSpecified ? Helper.FormatCurrency(dettaglioProdotto.quantitaNominale.ToString()) : "-"; dr["QuotaPrezzoEuro"] = dettaglioProdotto.prodotto.prezzoEuroSpecified ? Helper.FormatCurrency(dettaglioProdotto.prodotto.prezzoEuro.ToString()) : "-"; dr["ControvaloreAttuale"] = Helper.FormatCurrency(dettaglioProdotto.ctv.ToString()); dr["DataAgg"] = dettaglioProdotto.dtRiferimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtRiferimento).ToShortDateString() : "-"; dr["VersatoNettoSott"] = dettaglioProdotto.versamentoNettoSpecified ? Helper.FormatCurrency(dettaglioProdotto.versamentoNetto.ToString()) : "n.c."; dr["UtilePerditaSott"] = dettaglioProdotto.utilePerditaSpecified ? Helper.FormatCurrency(dettaglioProdotto.utilePerdita.ToString()) : "n.c."; dr["RendAnnualSott"] = rendAnnualSott != "n.c." ? Helper.FormatCurrency(rendAnnualSott.ToString()) : rendAnnualSott; dr["DataSott"] = dettaglioProdotto.dtInizioRendimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtInizioRendimento).ToShortDateString() : dettaglioProdotto.dtSottoscrizioneSpecified ? Convert.ToDateTime(dettaglioProdotto.dtSottoscrizione).ToShortDateString() : "-"; dr["VersatoNettoAssoc"] = dettaglioProdotto.versatoNettoAssociazioneSpecified && !dettaglioProdotto.prodotto.tipoProdotto.Equals("CC") ? Helper.FormatCurrency(dettaglioProdotto.versatoNettoAssociazione.ToString()) : "n.c."; dr["UtilPerditaAssoc"] = dettaglioProdotto.utilePerditaAssociazioneSpecified && !dettaglioProdotto.prodotto.tipoProdotto.Equals("CC") ? Helper.FormatCurrency(dettaglioProdotto.utilePerditaAssociazione.ToString()) : "n.c."; dr["RendCumAssoc"] = dettaglioProdotto.rendimentoAssociazioneSpecified && !dettaglioProdotto.prodotto.tipoProdotto.Equals("CC") ? Helper.FormatDecimal(dettaglioProdotto.rendimentoAssociazione.ToString(), 2) : "n.c."; dr["DataAssoc"] = dettaglioProdotto.dataAssociazioneMonitoraggioSpecified ? Convert.ToDateTime(dettaglioProdotto.dataAssociazioneMonitoraggio).ToShortDateString() : "-"; dr["RendInizioTrimestre"] = dettaglioProdotto.rendimentoInizioTrimestreSpecified ? dettaglioProdotto.rendimentoInizioTrimestre.ToString() : "n.c."; dr["RendInizioAnno"] = dettaglioProdotto.rendimentoInizioAnnoSpecified ? dettaglioProdotto.rendimentoInizioAnno.ToString() : "n.c."; dr["VaR"] = dettaglioProdotto.prodotto.varDecodificato; dr["RischioCredito"] = dettaglioProdotto.prodotto.rischioCreditoDecodificato; dr["Complessità"] = dettaglioProdotto.prodotto.complessitaDec; dr["ValoriDiCarico"] = dettaglioProdotto.costoMedioPonderatoFiscaleSpecified ? Helper.FormatCurrency(dettaglioProdotto.costoMedioPonderatoFiscale.ToString()) : "-"; dr["UtilePerditaCaricoEuro"] = dettaglioProdotto.utilePerditaDiCaricoSpecified ? Helper.FormatCurrency(dettaglioProdotto.utilePerditaDiCarico.ToString()) : "-"; dr["UtilePerditaCaricoPerc"] = dettaglioProdotto.utilePerditaDiCaricoPercentualeSpecified ? Helper.FormatCurrency(dettaglioProdotto.utilePerditaDiCaricoPercentuale.ToString()) : "-"; } prodotti.Rows.Add(dr); return dr; } private string getAsterischiForValoriDiCarico() { int nota1 = getNote1().Length > 0 ? 1 : 0; int nota2 = getNote2().Length > 0 ? 1 : 0; int nota3 = getNote3().Length > 0 ? 1 : 0; int nota4 = 1 + nota1 + nota2 + nota3 ; return getStar(nota4); } private string getAsterischiForUtilePerditaCaricoEuro() { int nota1 = getNote1().Length > 0 ? 1 : 0; int nota2 = getNote2().Length > 0 ? 1 : 0; int nota3 = getNote3().Length > 0 ? 1 : 0; int nota4 = getNote4().Length > 0 ? 1 : 0; int nota5 = 1 + nota1 + nota2 + nota3 + nota4; return getStar(nota5); } private string getAsterischiForUtilePerditaCaricoPerc() { int nota1 = getNote1().Length > 0 ? 1 : 0; int nota2 = getNote2().Length > 0 ? 1 : 0; int nota3 = getNote3().Length > 0 ? 1 : 0; int nota4 = getNote4().Length > 0 ? 1 : 0; int nota5 = getNote5().Length > 0 ? 1 : 0; int nota6 = 1 + nota1 + nota2 + nota3 + nota4 + nota5; return getStar(nota6); } private string getStar(int ratingMorningstar) { string stars = ""; for (int i = 0; i < ratingMorningstar; i++) stars += "*"; return stars; } //AC private void TotaleRisorseAllocate(DataTable prodotti, rsAggregatoPosizioni[] aggregatoPosizioni, bool fontBold = false, bool backGroundColor = false) { var dettaglioProdotti = GetDettaglioProdotti().dettaglioProdotti.ToList(); // var pianificazioneVerticale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale; decimal OC_CASA = datiSeiUnico.CASA_OC; decimal CCN_CASA = datiSeiUnico.CASA_CCN; decimal CASA_GPELIGO = datiSeiUnico.CASA_GPELIGO; decimal CASA_FOGLIO = datiSeiUnico.CASA_TUOFOGLIO; rsAggregatoPosizioni RA = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("RA") select o).LastOrDefault(); rsAggregatoPosizioni PAT = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); string asteriscoVar = getNote3().Length > 0 && getNote1().Length > 0 ? "**" : getNote1().Length > 0 ? "*" : ""; if (CCN_CASA != 0 || OC_CASA != 0 || CASA_GPELIGO != 0 || CASA_FOGLIO != 0) { DataRow row = ElencoProdotti(prodotti, RA, "", "Totale risorse allocate"); row["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_SUBTOTALE.ToString()); string rischioFormattato = RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? RA.prometeiaInfos.rischioCreditoDecodificato.ToLower() : RA.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, RA.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + RA.prometeiaInfos.rischioCreditoDecodificato.Substring(RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); row["RischioCredito"] = rischioFormattato + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); row["VaR"] = row["VaR"] + asteriscoVar; row["RendAnnualSott"] = RA.rendimentoDaSottoscrizioneSpecified ? RA.rendimentoDaSottoscrizione.ToString() : "n.c."; row["VersatoNettoAssoc"] = "n.c."; row["UtilPerditaAssoc"] = "n.c."; row["RendCumAssoc"] = "n.c."; if (OC_CASA != 0) { rsAggregatoPosizioni pv = null; ElencoProdottiOC(prodotti, "", "Operazioni in corso")["ControvaloreAttuale"] = Helper.FormatCurrency(OC_CASA.ToString()); } foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Cc" && o.ctv < 0 orderby o.ctv select o) { ElencoCcNegativi(prodotti, dettaglioProdotto, "", ""); } foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Self" && o.prodotto.codSottoprodotto.Equals("L191") orderby o.ctv select o) { ElencoEligoNegativi(prodotti, dettaglioProdotto, "", ""); } foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Self" && o.prodotto.codSottoprodotto.Equals("L192") orderby o.ctv select o) { ElencoEligoNegativi(prodotti, dettaglioProdotto, "", ""); } //AC foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Self" && o.prodotto.codSottoprodotto.Equals("V301") orderby o.ctv select o) { ElencoFogliNegativi(prodotti, dettaglioProdotto, "", ""); } //--AC } string rischioFormattatoPAT = PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower() : PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, PAT.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); DataRow row2 = ElencoProdotti(prodotti, PAT, "", datiSeiUnico.FormatBanca(labelPatrimonioTotale(productsTypeSelected))); row2["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_TOTALE.ToString()); row2["RendAnnualSott"] = PAT.rendimentoDaSottoscrizioneSpecified ? PAT.rendimentoDaSottoscrizione.ToString() : "n.c."; row2["Complessità"] = PAT.complessitaDec; row2["VersatoNettoAssoc"] = "n.c."; row2["UtilPerditaAssoc"] = "n.c."; row2["RendCumAssoc"] = "n.c."; row2["RischioCredito"] = rischioFormattatoPAT + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); row2["VaR"] = row2["VaR"] + asteriscoVar; } private static string labelPatrimonioTotale(String typeSelected) { switch (typeSelected) { case PRODUCT_TYPE_CASA: return "Patrimonio $/Banca/$"; case PRODUCT_TYPE_COINTESTATI: return "Posizioni cointestate"; default: return "Patrimonio $/Banca/$"; } } private void TotalePosizioniCointestate(DataTable prodotti, rsAggregatoPosizioni[] aggregatoPosizioni) { rsAggregatoPosizioni PAT = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); string asteriscoVar = getNote3().Length > 0 && getNote1().Length > 0 ? "**" : getNote1().Length > 0 ? "*" : ""; string rischioFormattatoPAT = PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower() : PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, PAT.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); DataRow row2 = ElencoProdotti(prodotti, PAT, "", datiSeiUnico.FormatBanca(labelPatrimonioTotale(productsTypeSelected))); row2["ControvaloreAttuale"] = Helper.FormatCurrency(PAT.ctvAttuale.ToString()); row2["Complessità"] = PAT.complessitaDec; row2["RischioCredito"] = rischioFormattatoPAT + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); row2["VaR"] = row2["VaR"] + asteriscoVar; row2["VersatoNettoSott"] = ""; row2["UtilePerditaSott"] = ""; row2["RendAnnualSott"] = ""; row2["CodIsin"] = ""; row2["RatingMorningstar"] = ""; row2["NumqQuantValnom"] = ""; row2["QuotaPrezzoEuro"] = ""; row2["VersatoNettoAssoc"] = ""; row2["UtilPerditaAssoc"] = ""; row2["RendCumAssoc"] = ""; row2["DataAssoc"] = ""; row2["RendInizioTrimestre"] = ""; row2["RendInizioAnno"] = ""; } //private void TotaleRisorseAllocate(DataTable prodotti, rsAggregatoPosizioni[] aggregatoPosizioni, bool fontBold = false, bool backGroundColor = false) //{ // var dettaglioProdotti = datiSeiUnico.patrimonioUnit().patrimonioCasa.dettaglioProdotti.dettaglioProdotti.ToList(); // var pianificazioneVerticale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale; // decimal OC_CASA = datiSeiUnico.CASA_OC; // decimal CCN_CASA = datiSeiUnico.CASA_CCN; // decimal CASA_GPELIGO = datiSeiUnico.CASA_GPELIGO; // rsAggregatoPosizioni RA = (from o in aggregatoPosizioni // where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("RA") // select o).LastOrDefault(); // rsAggregatoPosizioni PAT = (from o in aggregatoPosizioni // where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") // select o).FirstOrDefault(); // string asteriscoVar = getNote3().Length > 0 && getNote1().Length > 0 ? "**" : getNote1().Length > 0 ? "*" : ""; // if (CCN_CASA != 0 || OC_CASA != 0 || CASA_GPELIGO != 0) // { // DataRow row = ElencoProdotti(prodotti, RA, "", "Totale risorse allocate"); // row["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_SUBTOTALE.ToString()); // string rischioFormattato = RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? RA.prometeiaInfos.rischioCreditoDecodificato.ToLower() : RA.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, RA.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + RA.prometeiaInfos.rischioCreditoDecodificato.Substring(RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); // row["RischioCredito"] = rischioFormattato + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); // row["VaR"] = row["VaR"] + asteriscoVar; // row["RendAnnualSott"] = RA.rendimentoDaSottoscrizioneSpecified ? RA.rendimentoDaSottoscrizione.ToString() : "n.c."; // row["VersatoNettoAssoc"] = "n.c."; // row["UtilPerditaAssoc"] = "n.c."; // row["RendCumAssoc"] = "n.c."; // if (OC_CASA != 0) // { // rsAggregatoPosizioni pv = null; // ElencoProdottiOC(prodotti, "", "Operazioni in corso")["ControvaloreAttuale"] = Helper.FormatCurrency(OC_CASA.ToString()); // } // foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Cc" && o.ctv < 0 orderby o.ctv select o) // { // ElencoCcNegativi(prodotti, dettaglioProdotto, "", ""); // } // foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Self" && o.prodotto.codSottoprodotto.Equals("L191") orderby o.ctv select o) // { // ElencoEligoNegativi(prodotti, dettaglioProdotto, "", ""); // } // foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Self" && o.prodotto.codSottoprodotto.Equals("L192") orderby o.ctv select o) // { // ElencoEligoNegativi(prodotti, dettaglioProdotto, "", ""); // } // //AC // foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Self" && o.prodotto.codSottoprodotto.Equals("V301") orderby o.ctv select o) // { // ElencoFogliNegativi(prodotti, dettaglioProdotto, "", ""); // } // //--AC // } // string rischioFormattatoPAT = PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower() : PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, PAT.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); // DataRow row2 = ElencoProdotti(prodotti, PAT, "", datiSeiUnico.FormatBanca("Patrimonio $/Banca/$")); // row2["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_TOTALE.ToString()); // row2["RendAnnualSott"] = PAT.rendimentoDaSottoscrizioneSpecified ? PAT.rendimentoDaSottoscrizione.ToString() : "n.c."; // row2["Complessità"] = PAT.complessitaDec; // row2["VersatoNettoAssoc"] = "n.c."; // row2["UtilPerditaAssoc"] = "n.c."; // row2["RendCumAssoc"] = "n.c."; // row2["RischioCredito"] = rischioFormattatoPAT + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); // row2["VaR"] = row2["VaR"] + asteriscoVar; //} //AC private void TotaleRisorseFinanziarie(DataTable prodotti, rsAggregatoPosizioni[] aggregatoPosizioni, bool fontBold = false, bool backGroundColor = false) { var dettaglioProdotti = GetDettaglioProdotti().dettaglioProdotti.ToList(); //var pianificazioneVerticale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale; decimal OC_CASA = datiSeiUnico.CASA_OC; decimal CCN_CASA = datiSeiUnico.CASA_CCN; rsAggregatoPosizioni RA = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("RA") select o).LastOrDefault(); rsAggregatoPosizioni PAT = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); string asteriscoVar = getNote3().Length > 0 && getNote1().Length > 0 ? "**" : getNote1().Length > 0 ? "*" : ""; if (CCN_CASA != 0 || OC_CASA != 0) { DataRow row = ElencoProdotti(prodotti, RA, "", "Totale risorse finanziarie"); string rischioFormattato = RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? RA.prometeiaInfos.rischioCreditoDecodificato.ToLower() : RA.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, RA.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + RA.prometeiaInfos.rischioCreditoDecodificato.Substring(RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); row["RischioCredito"] = rischioFormattato + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); row["ControvaloreAttuale"] = Helper.FormatCurrency((datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO + datiSeiUnico.CASA_TUOFOGLIO).ToString()); row["RendAnnualSott"] = RA.rendimentoDaSottoscrizioneSpecified ? RA.rendimentoDaSottoscrizione.ToString() : "n.c."; row["VersatoNettoAssoc"] = "n.c."; row["UtilPerditaAssoc"] = "n.c."; row["RendCumAssoc"] = "n.c."; row["VaR"] = row["VaR"] + asteriscoVar; if (OC_CASA != 0) { rsAggregatoPosizioni pv = null; ElencoProdottiOC(prodotti, "", "Operazioni in corso")["ControvaloreAttuale"] = Helper.FormatCurrency(OC_CASA.ToString()); } foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Cc" && o.ctv < 0 orderby o.ctv select o) { ElencoCcNegativi(prodotti, dettaglioProdotto, "", ""); } } string rischioFormattatoPAT = PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower() : PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, PAT.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); DataRow row2 = ElencoProdotti(prodotti, PAT, "", datiSeiUnico.FormatBanca(labelPatrimonioTotale(productsTypeSelected))); row2["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_TOTALE.ToString()); row2["RendAnnualSott"] = PAT.rendimentoDaSottoscrizioneSpecified ? PAT.rendimentoDaSottoscrizione.ToString() : "n.c."; row2["Complessità"] = PAT.complessitaDec; row2["VersatoNettoAssoc"] = "n.c."; row2["UtilPerditaAssoc"] = "n.c."; row2["RendCumAssoc"] = "n.c."; row2["VaR"] = row2["VaR"] + asteriscoVar; row2["RischioCredito"] = rischioFormattatoPAT + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); } private void TotaleRisorseFinanziarieContratti(DataTable prodotti, rsAggregatoPosizioni[] aggregatoPosizioni, rsAggregatoPosizioni[] aggregatoPosizioniAree, bool fontBold = false, bool backGroundColor = false) { var dettaglioProdotti = GetDettaglioProdotti().dettaglioProdotti.ToList(); //var pianificazioneVerticale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale; decimal OC_CASA = datiSeiUnico.CASA_OC; decimal CCN_CASA = datiSeiUnico.CASA_CCN; rsAggregatoPosizioni RA = (from o in aggregatoPosizioniAree where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("RA") select o).LastOrDefault(); rsAggregatoPosizioni PAT = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); if (PAT == null) { PAT = (from o in aggregatoPosizioniAree where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); } string asteriscoVar = getNote3().Length > 0 && getNote1().Length > 0 ? "**" : getNote1().Length > 0 ? "*" : ""; if (CCN_CASA != 0 || OC_CASA != 0) { DataRow row = ElencoProdotti(prodotti, RA, "", "Totale risorse finanziarie"); string rischioFormattato = RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? RA.prometeiaInfos.rischioCreditoDecodificato.ToLower() : RA.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, RA.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + RA.prometeiaInfos.rischioCreditoDecodificato.Substring(RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); row["RischioCredito"] = rischioFormattato + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); row["ControvaloreAttuale"] = Helper.FormatCurrency((datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO + datiSeiUnico.CASA_TUOFOGLIO).ToString()); row["RendAnnualSott"] = RA.rendimentoDaSottoscrizioneSpecified ? RA.rendimentoDaSottoscrizione.ToString() : "n.c."; row["VersatoNettoAssoc"] = "n.c."; row["UtilPerditaAssoc"] = "n.c."; row["RendCumAssoc"] = "n.c."; row["VaR"] = row["VaR"] + asteriscoVar; if (OC_CASA != 0) { rsAggregatoPosizioni pv = null; ElencoProdottiOC(prodotti, "", "Operazioni in corso")["ControvaloreAttuale"] = Helper.FormatCurrency(OC_CASA.ToString()); } foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Cc" && o.ctv < 0 orderby o.ctv select o) { ElencoCcNegativi(prodotti, dettaglioProdotto, "", ""); } } string rischioFormattatoPAT = PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower() : PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, PAT.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); DataRow row2 = ElencoProdotti(prodotti, PAT, "", datiSeiUnico.FormatBanca(labelPatrimonioTotale(productsTypeSelected))); row2["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_TOTALE.ToString()); row2["RendAnnualSott"] = PAT.rendimentoDaSottoscrizioneSpecified ? PAT.rendimentoDaSottoscrizione.ToString() : "n.c."; row2["Complessità"] = PAT.complessitaDec; row2["VersatoNettoAssoc"] = "n.c."; row2["UtilPerditaAssoc"] = "n.c."; row2["RendCumAssoc"] = "n.c."; row2["VaR"] = row2["VaR"] + asteriscoVar; row2["RischioCredito"] = rischioFormattatoPAT + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); } private void TotaleRisorseFinanziarieCategorie(DataTable prodotti, rsAggregatoPosizioni[] aggregatoPosizioni, rsAggregatoPosizioni[] aggregatoPosizioniAree, bool fontBold = false, bool backGroundColor = false) { var dettaglioProdotti = GetDettaglioProdotti().dettaglioProdotti.ToList(); //var pianificazioneVerticale = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale; decimal OC_CASA = datiSeiUnico.CASA_OC; decimal CCN_CASA = datiSeiUnico.CASA_CCN; rsAggregatoPosizioni RA = (from o in aggregatoPosizioniAree where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("RA") select o).LastOrDefault(); rsAggregatoPosizioni PAT = (from o in aggregatoPosizioni where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); if (PAT == null) { PAT = (from o in aggregatoPosizioniAree where o.posizioniAggregate != null && o.chiaveAggregazione.Equals("PAT") select o).FirstOrDefault(); } string asteriscoVar = getNote3().Length > 0 && getNote1().Length > 0 ? "**" : getNote1().Length > 0 ? "*" : ""; if (CCN_CASA != 0 || OC_CASA != 0) { DataRow row = ElencoProdotti(prodotti, RA, "", "Totale risorse finanziarie"); string rischioFormattato = RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? RA.prometeiaInfos.rischioCreditoDecodificato.ToLower() : RA.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, RA.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + RA.prometeiaInfos.rischioCreditoDecodificato.Substring(RA.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); row["RischioCredito"] = rischioFormattato + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); row["ControvaloreAttuale"] = Helper.FormatCurrency((datiSeiUnico.CASA_SUBTOTALE + datiSeiUnico.CASA_GPELIGO + datiSeiUnico.CASA_TUOFOGLIO).ToString()); row["RendAnnualSott"] = RA.rendimentoDaSottoscrizioneSpecified ? RA.rendimentoDaSottoscrizione.ToString() : "n.c."; row["VersatoNettoAssoc"] = "n.c."; row["UtilPerditaAssoc"] = "n.c."; row["RendCumAssoc"] = "n.c."; row["VaR"] = row["VaR"] + asteriscoVar; if (OC_CASA != 0) { rsAggregatoPosizioni pv = null; ElencoProdottiOC(prodotti, "", "Operazioni in corso")["ControvaloreAttuale"] = Helper.FormatCurrency(OC_CASA.ToString()); } foreach (rsPosizione dettaglioProdotto in from o in dettaglioProdotti where o.area == "Cc" && o.ctv < 0 orderby o.ctv select o) { ElencoCcNegativi(prodotti, dettaglioProdotto, "", ""); } } string rischioFormattatoPAT = PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Equals("n.a.") ? PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower() : PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(0, 1).ToUpper() + PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Substring(1, PAT.prometeiaInfos.rischioCreditoDecodificato.Length - 2) + PAT.prometeiaInfos.rischioCreditoDecodificato.Substring(PAT.prometeiaInfos.rischioCreditoDecodificato.ToLower().Length - 1).ToUpper(); DataRow row2 = ElencoProdotti(prodotti, PAT, "", datiSeiUnico.FormatBanca(labelPatrimonioTotale(productsTypeSelected))); row2["ControvaloreAttuale"] = Helper.FormatCurrency(datiSeiUnico.CASA_TOTALE.ToString()); row2["RendAnnualSott"] = PAT.rendimentoDaSottoscrizioneSpecified ? PAT.rendimentoDaSottoscrizione.ToString() : "n.c."; row2["Complessità"] = PAT.complessitaDec; row2["VersatoNettoAssoc"] = "n.c."; row2["UtilPerditaAssoc"] = "n.c."; row2["RendCumAssoc"] = "n.c."; row2["VaR"] = row2["VaR"] + asteriscoVar; row2["RischioCredito"] = rischioFormattatoPAT + (getNote2().Length > 0 ? !asteriscoVar.Equals("") ? asteriscoVar + "*" : getNote3().Length > 0 ? "**" : "*" : ""); } private DataRow ElencoEligoNegativi(DataTable prodotti, rsPosizione dettaglioProdotto, string codArea, string descrizione, bool fontBold = false, bool backGroundColor = false) { DataRow dr = prodotti.NewRow(); dr["CodArea"] = codArea; dr["Descrizione"] = descrizione; dr["FontBold"] = fontBold; dr["BackGroundColor"] = backGroundColor; if (dettaglioProdotto != null) { dr["Area"] = dettaglioProdotto.area; dr["ContrattoDossier"] = dettaglioProdotto.codContratto; dr["NomeProdotto"] = dettaglioProdotto.prodotto.nomeProdotto; dr["DistrCedoleDividendi"] = "-"; dr["ControvaloreAttuale"] = Helper.FormatCurrency(dettaglioProdotto.ctv.ToString()); dr["DataAgg"] = dettaglioProdotto.dtRiferimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtRiferimento).ToShortDateString() : "-"; dr["DataSott"] = dettaglioProdotto.dtInizioRendimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtInizioRendimento).ToShortDateString() : dettaglioProdotto.dtSottoscrizioneSpecified ? Convert.ToDateTime(dettaglioProdotto.dtSottoscrizione).ToShortDateString() : "-"; dr["VaR"] = dettaglioProdotto.prodotto.varDecodificato; dr["RischioCredito"] = dettaglioProdotto.prodotto.rischioCreditoDecodificato; dr["VersatoNettoSott"] = "n.c."; dr["UtilePerditaSott"] = "n.c."; dr["RendAnnualSott"] = "n.c."; dr["CodIsin"] = "-"; dr["Complessità"] = "n.c."; dr["RatingMorningstar"] = "-"; dr["NumqQuantValnom"] = "-"; dr["QuotaPrezzoEuro"] = "-"; dr["VersatoNettoAssoc"] = "n.c."; dr["UtilPerditaAssoc"] = "n.c."; dr["RendCumAssoc"] = "n.c."; dr["DataAssoc"] = "-"; dr["RendInizioTrimestre"] = "n.c."; dr["RendInizioAnno"] = "n.c."; dr["ValoriDiCarico"] = dettaglioProdotto.costoMedioPonderatoFiscaleSpecified ? dettaglioProdotto.costoMedioPonderatoFiscale.ToString() : "n.c."; dr["UtilePerditaCaricoEuro"] = dettaglioProdotto.utilePerditaDiCaricoSpecified ? dettaglioProdotto.utilePerditaDiCarico.ToString() : "n.c."; dr["UtilePerditaCaricoPerc"] = dettaglioProdotto.utilePerditaDiCaricoPercentualeSpecified ? dettaglioProdotto.utilePerditaDiCaricoPercentuale.ToString() : "n.c."; } prodotti.Rows.Add(dr); return dr; } //AC private DataRow ElencoFogliNegativi(DataTable prodotti, rsPosizione dettaglioProdotto, string codArea, string descrizione, bool fontBold = false, bool backGroundColor = false) { DataRow dr = prodotti.NewRow(); dr["CodArea"] = codArea; dr["Descrizione"] = descrizione; dr["FontBold"] = fontBold; dr["BackGroundColor"] = backGroundColor; if (dettaglioProdotto != null) { dr["Area"] = dettaglioProdotto.area; dr["ContrattoDossier"] = dettaglioProdotto.codContratto; dr["NomeProdotto"] = dettaglioProdotto.prodotto.nomeProdotto; dr["DistrCedoleDividendi"] = "-"; dr["ControvaloreAttuale"] = Helper.FormatCurrency(dettaglioProdotto.ctv.ToString()); dr["DataAgg"] = dettaglioProdotto.dtRiferimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtRiferimento).ToShortDateString() : "-"; dr["DataSott"] = dettaglioProdotto.dtInizioRendimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtInizioRendimento).ToShortDateString() : dettaglioProdotto.dtSottoscrizioneSpecified ? Convert.ToDateTime(dettaglioProdotto.dtSottoscrizione).ToShortDateString() : "-"; dr["VaR"] = dettaglioProdotto.prodotto.varDecodificato; dr["RischioCredito"] = dettaglioProdotto.prodotto.rischioCreditoDecodificato; dr["VersatoNettoSott"] = "n.c."; dr["UtilePerditaSott"] = "n.c."; dr["RendAnnualSott"] = "n.c."; dr["CodIsin"] = "-"; dr["Complessità"] = "n.c."; dr["RatingMorningstar"] = "-"; dr["NumqQuantValnom"] = "-"; dr["QuotaPrezzoEuro"] = "-"; dr["VersatoNettoAssoc"] = "n.c."; dr["UtilPerditaAssoc"] = "n.c."; dr["RendCumAssoc"] = "n.c."; dr["DataAssoc"] = "-"; dr["RendInizioTrimestre"] = "n.c."; dr["RendInizioAnno"] = "n.c."; dr["ValoriDiCarico"] = dettaglioProdotto.costoMedioPonderatoFiscaleSpecified ? dettaglioProdotto.costoMedioPonderatoFiscale.ToString() : "n.c."; dr["UtilePerditaCaricoEuro"] = dettaglioProdotto.utilePerditaDiCaricoSpecified ? dettaglioProdotto.utilePerditaDiCarico.ToString() : "n.c."; dr["UtilePerditaCaricoPerc"] = dettaglioProdotto.utilePerditaDiCaricoPercentualeSpecified ? dettaglioProdotto.utilePerditaDiCaricoPercentuale.ToString() : "n.c."; } prodotti.Rows.Add(dr); return dr; } //--AC private DataRow ElencoProdottiOC(DataTable prodotti, string codArea, string descrizione) { DataRow dr = prodotti.NewRow(); dr["CodArea"] = codArea; dr["Descrizione"] = descrizione; dr["FontBold"] = false; dr["BackGroundColor"] = false; prodotti.Rows.Add(dr); return dr; } private DataRow ElencoCcNegativi(DataTable prodotti, rsPosizione dettaglioProdotto, string codArea, string descrizione, bool fontBold = false, bool backGroundColor = false) { DataRow dr = prodotti.NewRow(); dr["CodArea"] = codArea; dr["Descrizione"] = descrizione; dr["FontBold"] = fontBold; dr["BackGroundColor"] = backGroundColor; if (dettaglioProdotto != null) { dr["Area"] = dettaglioProdotto.area; dr["ContrattoDossier"] = dettaglioProdotto.codContratto; dr["NomeProdotto"] = dettaglioProdotto.prodotto.nomeProdotto; dr["DistrCedoleDividendi"] = dettaglioProdotto.prodotto.distrCedoleDividendi.Contains("Frequenza") ? dettaglioProdotto.prodotto.distrCedoleDividendi.Replace("Frequenza", "
Freq.") : dettaglioProdotto.prodotto.distrCedoleDividendi; dr["ControvaloreAttuale"] = Helper.FormatCurrency(dettaglioProdotto.ctv.ToString()); dr["DataAgg"] = dettaglioProdotto.dtRiferimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtRiferimento).ToShortDateString() : "-"; dr["DataSott"] = dettaglioProdotto.dtInizioRendimentoSpecified ? Convert.ToDateTime(dettaglioProdotto.dtInizioRendimento).ToShortDateString() : dettaglioProdotto.dtSottoscrizioneSpecified ? Convert.ToDateTime(dettaglioProdotto.dtSottoscrizione).ToShortDateString() : "-"; dr["VaR"] = dettaglioProdotto.prodotto.varDecodificato; dr["RischioCredito"] = dettaglioProdotto.prodotto.rischioCreditoDecodificato; dr["VersatoNettoSott"] = "n.c."; dr["UtilePerditaSott"] = "n.c."; dr["RendAnnualSott"] = "n.c."; dr["CodIsin"] = "-"; dr["Complessità"] = "Minima"; dr["RatingMorningstar"] = "-"; dr["NumqQuantValnom"] = "-"; dr["QuotaPrezzoEuro"] = "-"; dr["VersatoNettoAssoc"] = "n.c."; dr["UtilPerditaAssoc"] = "n.c."; dr["RendCumAssoc"] = "n.c."; dr["DataAssoc"] = "-"; dr["RendInizioTrimestre"] = "n.c."; dr["RendInizioAnno"] = "n.c."; dr["ValoriDiCarico"] = dettaglioProdotto.costoMedioPonderatoFiscaleSpecified ? dettaglioProdotto.costoMedioPonderatoFiscale.ToString() : "n.c."; dr["UtilePerditaCaricoEuro"] = dettaglioProdotto.utilePerditaDiCaricoSpecified ? dettaglioProdotto.utilePerditaDiCarico.ToString() : "n.c."; dr["UtilePerditaCaricoPerc"] = dettaglioProdotto.utilePerditaDiCaricoPercentualeSpecified ? dettaglioProdotto.utilePerditaDiCaricoPercentuale.ToString() : "n.c."; } prodotti.Rows.Add(dr); return dr; } public virtual string getTesto1() { if (PRODUCT_TYPE_CASA.Equals(productsTypeSelected)) { string testo = "In questa scheda sono riportati i prodotti che lei detiene presso $/Banca/$ per i quali è primo intestatario di contratto, "; if (raggruppaProdotti() == ReportCommon.RaggruppaProdotti.Categoria) testo += "raggruppati secondo la categoria di appartenenza."; if (raggruppaProdotti() == ReportCommon.RaggruppaProdotti.AreaBisogno) testo += "raggruppati per area di bisogno e, dove necessario, per progetto di investimento."; if (raggruppaProdotti() == ReportCommon.RaggruppaProdotti.Contratto) testo += "raggruppati secondo il contratto di appartenenza."; return datiSeiUnico.FormatBanca(testo); } else if(PRODUCT_TYPE_COINTESTATI.Equals(productsTypeSelected)) { string testo = "In questa scheda sono riportati i prodotti presso $/Banca/$ per i quali è intestatario di contratto diverso dal primo, " + "raggruppati secondo il contratto di appartenenza."; return datiSeiUnico.FormatBanca(testo); } else { string testo = "In questa scheda sono riportati i prodotti appartenenti alle categorie \"Assicurativi danni\" e \"Temporanee caso morte\" che lei detiene presso $/Banca/$, " + "raggruppati secondo il contratto di appartenenza."; return datiSeiUnico.FormatBanca(testo); } } public virtual RaggruppaProdotti raggruppaProdotti() { switch(productsTypeSelected) { case PRODUCT_TYPE_CASA: return GetOption().RaggruppaProdotti; case PRODUCT_TYPE_COINTESTATI: return ReportCommon.RaggruppaProdotti.Contratto; default: return ReportCommon.RaggruppaProdotti.Contratto; } } public virtual Opzione12 getColonne() { return GetOption(); } public virtual string getNote1() { string nota = ""; string token = ""; decimal GCRM = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale.varInfos.stat.copertura; if (GCRM < 100 && getColonne().VaR) { nota += token + datiSeiUnico.FormatDecimal("Grado di copertura (%) prodotti in termini di Rischio Mercato (VaR): {0}.", GCRM); } return datiSeiUnico.FormatBanca(nota); } public virtual string getNote2() { string nota = ""; string token = ""; decimal GCRC = datiSeiUnico.pianificazioneUnit().pianificazioneVerticale.varInfos.stat.copertura; if (GCRC < 100 && GCRC > 0 && getColonne().RischioCredito) { nota += token + datiSeiUnico.FormatDecimal("Grado di copertura (%) prodotti in termini di Rischio Credito: {0}.", GCRC); } return datiSeiUnico.FormatBanca(nota); } public virtual string getNote3() { string nota = ""; string token = ""; if (getColonne().RendAnnualSott || getColonne().RendInizioTrimestre || getColonne().RendInizioAnno) { nota += token + "I rendimenti"; token = " "; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) { nota += token + "da inizio anno"; } token = " "; nota += token + "sono calcolati utilizzando la metodologia del \"Tasso Interno di Rendimento (T.I.R.)\"."; if (getColonne().RendAnnualSott) { nota += token + "Per gli investimenti di durata superiore all'anno, i rendimenti da sottoscrizione sono espressi su base annua."; } nota += token + "I rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) { nota += token + "da inizio anno"; } token = " "; nota += token + "dei singoli prodotti sono calcolati ogni giorno"; if (getColonne().RaggruppaProdotti == ReportCommon.RaggruppaProdotti.Categoria) { nota += ", mentre quelli a livello di categoria prodotto"; nota += token + "e portafoglio"; nota += token + "sono calcolati ogni fine settimana"; } if (getColonne().RaggruppaProdotti == ReportCommon.RaggruppaProdotti.Contratto) { nota += ", mentre quelli a livello di contratto"; nota += token + "e portafoglio"; nota += token + "sono calcolati ogni fine settimana"; } nota += "."; # region Omnia No Foglio if (gpOmniaPresent && !gpFoglioPresent) { token = " "; nota += token + "Fanno eccezione a queste regole i rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) { nota += token + "da inizio anno"; } token = " "; nota += token + "delle gestioni patrimoniali \"Omnia\""; if (getColonne().RaggruppaProdotti == ReportCommon.RaggruppaProdotti.Contratto) { nota += " e del relativo contratto"; } nota += ", che sono calcolati utilizzando la metodologia del \"Money Weighted Rate Of Return (M.W.R.R.)\""; if (getColonne().RendAnnualSott) { nota += token + "e, a prescindere dalla durata dell'investimento, sono espressi su base cumulata"; } nota += "."; if (gpEligoFondPresent || gpEligoTitPresent) { token = " "; nota += token + "I rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) nota += token + "da inizio anno"; token = " "; nota += token + " dei"; if (gpEligoFondPresent) nota += token + "fondi sottostanti la \"GP Eligo Fondi\""; if (gpEligoFondPresent && gpEligoTitPresent) nota += token + "e"; if (gpEligoTitPresent) nota += token + "dei basket sottostanti la \"GP Eligo Titoli\""; nota += token + "sono invece calcolati utilizzando la metodologia del \"Tasso Interno di Rendimento (T.I.R.)\""; if (getColonne().RendAnnualSott) nota += token + "e, per gli investimenti di durata superiore all'anno, sono espressi su base annua"; nota += "."; } } # endregion # region Omnia + Foglio if (gpOmniaPresent && gpFoglioPresent) { token = " "; nota += token + "Fanno eccezione a queste regole i rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) { nota += token + "da inizio anno"; } token = " "; nota += token + "delle gestioni patrimoniali \"Omnia\", dei \"Fogli\""; if (getColonne().RaggruppaProdotti == ReportCommon.RaggruppaProdotti.Contratto) { nota += " e del relativo contratto"; } nota += ", che sono calcolati utilizzando la metodologia del \"Money Weighted Rate Of Return (M.W.R.R.)\""; if (getColonne().RendAnnualSott) { nota += token + "e, a prescindere dalla durata dell'investimento, sono espressi su base cumulata"; } nota += "."; if (gpEligoFondPresent || gpEligoTitPresent) { token = " "; nota += token + "I rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) nota += token + "da inizio anno"; token = " "; nota += token + " dei"; if (gpEligoFondPresent) nota += token + "fondi sottostanti la \"GP Eligo Fondi\""; if (gpEligoFondPresent && gpEligoTitPresent) nota += token + "e"; if (gpEligoTitPresent) nota += token + "dei basket sottostanti la \"GP Eligo Titoli\""; nota += token + "sono invece calcolati utilizzando la metodologia del \"Tasso Interno di Rendimento (T.I.R.)\""; if (getColonne().RendAnnualSott) nota += token + "e, per gli investimenti di durata superiore all'anno, sono espressi su base annua"; nota += "."; } } # endregion # region No Omnia Si Foglio if (!gpOmniaPresent && gpFoglioPresent) { token = " "; nota += token + "Fanno eccezione a queste regole i rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) { nota += token + "da inizio anno"; } token = " "; nota += token + "dei \"Fogli\""; if (getColonne().RaggruppaProdotti == ReportCommon.RaggruppaProdotti.Contratto) { nota += " e del relativo contratto"; } nota += ", che sono calcolati utilizzando la metodologia del \"Money Weighted Rate Of Return (M.W.R.R.)\""; if (getColonne().RendAnnualSott) { nota += token + "e, a prescindere dalla durata dell'investimento, sono espressi su base cumulata"; } nota += "."; if (gpEligoFondPresent || gpEligoTitPresent) { token = " "; nota += token + "I rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) nota += token + "da inizio anno"; token = " "; nota += token + " dei"; if (gpEligoFondPresent) nota += token + "fondi sottostanti la \"GP Eligo Fondi\""; if (gpEligoFondPresent && gpEligoTitPresent) nota += token + "e"; if (gpEligoTitPresent) nota += token + "dei basket sottostanti la \"GP Eligo Titoli\""; nota += token + "sono invece calcolati utilizzando la metodologia del \"Tasso Interno di Rendimento (T.I.R.)\""; if (getColonne().RendAnnualSott) nota += token + "e, per gli investimenti di durata superiore all'anno, sono espressi su base annua"; nota += "."; } } # endregion token = " "; if (getColonne().RendAnnualSott && (gpPresent || fondiPresent || ulPresent || apPresent || titPresent)) { nota += token + "I rendimenti da sottoscrizione sono calcolati a partire dall'effettiva data di sottoscrizione dei prodotti"; if (fondiEurizonPresent || gpPresent || titPresent) { nota += ", con le seguenti eccezioni:"; if (fondiEurizonPresent) nota += token + "per i fondi di \"Eurizon\""; if (fondiEurizonPresent && gpPresent) nota += token + "e"; if (gpPresent) nota += token + "per le gestioni patrimoniali"; if (fondiEurizonPresent || gpPresent) { nota += token + "se la data di sottoscrizione è precedente al 01/01/2007, i rendimenti da sottoscrizione sono calcolati a partire dal 01/01/2007"; token = ", "; } if (titPresent) nota += token + "per i titoli, se la data di sottoscrizione è precedente al 01/01/1999, i rendimenti da sottoscrizione sono calcolati a partire dal 01/01/1999"; } nota += "."; } token = " "; if (fondiAGaranziaPresent && isCategorieProdotto) { nota += token + "I rendimenti"; if (getColonne().RendAnnualSott) { nota += token + "da sottoscrizione"; token = " e "; if (getColonne().RendInizioTrimestre && getColonne().RendInizioAnno) token = ", "; } if (getColonne().RendInizioTrimestre) { nota += token + "da inizio trimestre"; token = " e "; } if (getColonne().RendInizioAnno) nota += token + "da inizio anno"; token = " "; nota += token + "della categoria \"Fondi\" non considerano i rendimenti dei fondi a garanzia, che contribuiscono invece al rendimento da sottoscrizione della categoria \"Titoli\"."; } token = " "; if (getColonne().RendAnnualSott && mcGestioniSgrPresent) { nota += token + "Le gestioni patrimoniali di \"MC Gestioni Sgr\" contribuiscono al calcolo dei rendimenti da sottoscrizione a livello di"; if (isCategorieProdotto) nota += token + "categoria prodotto e"; nota += token + "portafoglio a partire dal 01/10/2011, anche se l'effettiva data di sottoscrizione è precedente al 01/10/2011."; } token = " "; if (getColonne().RendAnnualSott && ulPresent) { nota += token + "Le polizze unit linked contribuiscono al calcolo dei rendimenti da sottoscrizione a livello di"; if (isCategorieProdotto) nota += token + "categoria prodotto e"; nota += token + "portafoglio a partire dal 30/06/2013, anche se l'effettiva data di sottoscrizione è precedente al 30/06/2013."; } if (getColonne().RendAnnualSott && apPresent) { nota += token + "I prodotti assicurativi previdenziali non contribuiscono al calcolo dei rendimenti da sottoscrizione a livello di"; if (isCategorieProdotto) nota += token + "categoria prodotto e"; nota += token + "portafoglio."; } if (getColonne().RendAnnualSott && fidProgettoPensionePresent) { nota += token + "Il rendimento da sottoscrizione del prodotto previdenziale \"FID Progetto Pensione\" è calcolato considerando esclusivamente la componente di tipo unit linked."; } if (getColonne().RendAnnualSott && evProgettoPensionePresent) { nota += token + "I rendimenti da sottoscrizione del prodotto previdenziale \"EV Progetto Pensione\" sono calcolati considerando esclusivamente la componente di tipo unit linked."; } } if (getColonne().RendCumAssoc) { nota += token + "I rendimenti da associazione sono calcolati ogni fine settimana utilizzando la metodologia del \"Tasso Interno di Rendimento (T.I.R.)\". I rendimenti da associazione dei singoli prodotti sono calcolati a partire dalla data in cui un prodotto viene associato ad un'area o ad un progetto di Investimento con Monitoraggio avviato."; if (isAreeDiBisogno) nota += token + "I rendimenti da associazione a livello di area / progetto sono calcolati a partire dalla data di avvio del Monitoraggio."; nota += token + "A prescindere dalla durata del Monitoraggio, i rendimenti da associazione sono espressi su base cumulata."; } return datiSeiUnico.FormatBanca(nota); } public virtual string getNote4() { string nota = ""; if (getColonne().ValoriDiCarico) { nota = "II \"Prezzo medio di carico\" rappresenta il \"costo medio ponderato fiscale\", ossia il valore comprensivo di commissioni, spese di negoziazione e di eventuali coefficienti di rivalutazione o disaggio di emissione ed il relativo cambio medio ponderato fiscale. I valori di carico, espressi in Euro, sono disponibili esclusivamente per i fondi collocati à la carte, per le azioni e per gli ETF."; } return datiSeiUnico.FormatBanca(nota); } public virtual string getNote5() { string nota = ""; if (getColonne().UtilePerditaCaricoEuro) { nota = " L' \"Utile / Perdita di carico in Euro\" è calcolato come differenza tra il valore attuale (NAV o prezzo) dello strumento e il relativo prezzo medio di carico, moltiplicata per il numero di quote/ quantità in portafoglio."; } return datiSeiUnico.FormatBanca(nota); } public virtual string getNote6() { string nota = ""; if (getColonne().UtilePerditaCaricoPerc) { nota = "L' \"Utile / Perdita di carico in percentuale\" rappresenta la variazione percentuale tra il valore attuale (NAV o prezzo) dello strumento e il relativo prezzo medio di carico."; } return datiSeiUnico.FormatBanca(nota); } private bool requiredProdottiCointestati () { var opt4_2 = GetOption(); return opt4_2.Valore; } private bool requiredProdottiCasa() { var opt4_1 = GetOption(); return opt4_1.Valore; } private bool requiredProdottiTCM() { var opt4_3 = GetOption(); return opt4_3.Valore; } private VisualizzazioneProdotti visualizzazioneScelta() { var opzione = GetOption(); var paramList = opzione.Valore.Split(','); string paramVisualizzazione = paramList[paramList.Length - 1]; switch (paramVisualizzazione) { case "A": return VisualizzazioneProdotti.PosizioniAttive; case "SL": return VisualizzazioneProdotti.PosizioniLiquidate; case "CL": return VisualizzazioneProdotti.ContrattiLiquidati; default: return VisualizzazioneProdotti.All; } } //Prodotti Casa public virtual string getCapitolo1() { return "Patrimonio $/Banca/$: dettaglio contratti primo intestatario"; } //Prodotti Cointestati public virtual string getCapitolo2() { return "Patrimonio $/Banca/$: dettaglio altre posizioni cointestate"; } //Prodotti TCM public virtual string getCapitolo3() { return "Patrimonio $/Banca/$: dettaglio prodotti \"Assicurativi danni e TCM\""; } } }