using System; using System.Data; using Consulenza.ReportCommon; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Collections.Generic; using Consulenza.ReportWriter.Business; namespace Consulenza.ReportWriter.Manager.Section.Base.Proposta { public class P11 : Entity.Section { public P11(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("P11", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } /// /// Disegna l'oggetto P11 /// protected override sealed void Draw() { var dtP11 = GetDataTable(); if (dtP11.Rows.Count <= 0) return; var coperturaPatrimonioAttuale = Convert.ToDecimal(dtP11.Rows[0]["Copertura"]); var coperturaPatrimonioProspettico = Convert.ToDecimal(dtP11.Rows[1]["Copertura"]); //Adriano: bisogna poi avere anche il flag cliente professionale su Consulenza Base var cliente = GetCliente(); bool profiloProfessionale = false; if (cliente.Rows[0]["TipoConsulenza"].ToString() == "P") profiloProfessionale = true; bool profiloAggressivo = Convert.ToInt32(cliente.Rows[0]["Profilo"].ToString().Substring(0, 1)) >= 5; bool profiloProfessionaleAggressivo = profiloProfessionale && profiloAggressivo; if (profiloProfessionaleAggressivo) dtP11.Rows[2][2] = "50,00%"; //--Adriano var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtP11); tabella.Columns.Add(new ColumnPDF("Portafoglio", 163, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Portafoglio", "Portafoglio")); tabella.Columns.Add(new ColumnPDF("Controvalore", 120, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Controvalore", "Controvalore (€)")); tabella.Columns.Add(new ColumnPDF("RischioMercato", 120, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "RischioMercato", "Rischio Mercato (VaR)")); tabella.Columns.Add(new ColumnPDF("ClasseRischioCredito", 120, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "ClasseRischioCredito", "Rischio Credito")); tabella.Footer = false; tabella.ShowBorderLastLine = true; #region Note della tabella per grado copertura patrimonio attuale e prospettico var campiAsterisco = new[] { "RischioMercato", "ClasseRischioCredito" }; // campi del datasource su cui aggiungere gli asterischi di rimando alla note. var notaCoperturaPatrimonioAttuale = new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, "Grado di copertura del portafoglio attuale: " + Helper.FormatPercentage(coperturaPatrimonioAttuale, 2), campiAsterisco, "portafoglio='portafoglio attuale'"); var notaCoperturaPatrimonioProspettico = new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, "Grado di copertura del portafoglio prospettico: " + Helper.FormatPercentage(coperturaPatrimonioProspettico, 2), campiAsterisco, "portafoglio='portafoglio prospettico'"); if (!coperturaPatrimonioAttuale.Equals(100) && !coperturaPatrimonioAttuale.Equals(0)) tabella.Notes.Add(notaCoperturaPatrimonioAttuale); if (!coperturaPatrimonioProspettico.Equals(100) && !coperturaPatrimonioProspettico.Equals(0)) tabella.Notes.Add(notaCoperturaPatrimonioProspettico); #endregion AddElement(tabella); AddElement(new SpacePDF(20)); } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected sealed override DataTable GetDataTable() { var parametri = new List(); #region Definizione dei parametri var parametro = new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int64, ParameterName = "chiaveClientePB", Value = EnvironmentFacade.ReportEnvironment.Cliente.Chiave }; parametri.Add(parametro); parametro = new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int32, ParameterName = "chiaveProposta", Value = EnvironmentFacade.ReportEnvironment.Proposta.Chiave }; parametri.Add(parametro); #endregion return EnvironmentFacade.ReportEnvironment.Proposta.PropostaCBUnica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Prop_P11", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P11", parametri); } protected DataTable GetCliente() { var parametri = new List(); #region Definizione dei parametri var parametro = new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int64, ParameterName = "chiaveClientePB", Value = EnvironmentFacade.ReportEnvironment.Cliente.Chiave }; parametri.Add(parametro); parametro = new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int32, ParameterName = "chiaveProposta", Value = EnvironmentFacade.ReportEnvironment.Proposta.Chiave }; parametri.Add(parametro); #endregion return EnvironmentFacade.ReportEnvironment.Proposta.PropostaCBUnica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Prop_P10", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P10", parametri); } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected sealed override DataSet GetDataSet() { return null; } } }