using System; using System.Collections.Generic; using System.Data; using System.Linq; using Consulenza.ReportWriter.Business.OBJ_PDF; using Consulenza.ReportCommon; using Consulenza.ReportWriter.Business; namespace Consulenza.ReportWriter.Manager.Section.Base.Proposta { public class T11 : Entity.Section { public T11(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("T11", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } /// /// Disegna l'oggetto T11 /// protected override sealed void Draw() { var dtT11Testo = GetText(); var dtT11Dati = GetDataTable(); if (dtT11Dati.Rows.Count <= 0) return; var labelIntestazione = new FormattedTextAreaPDF(dtT11Testo.Rows[0]["Testo1"].ToString(), EnvironmentFacade.RendererFacade.XLeftLimit + 5); AddElement(labelIntestazione); AddElement(new SpacePDF(7)); List stringheElencoPuntato; //Adriano //Adriano: bisogna poi avere anche l'informazione su cliente professionale/retail sul servizio di Consulenza Base var cliente = GetCliente(); bool profiloProfessionale = false; bool profiloAggressivo = Convert.ToInt32(cliente.Rows[0]["Profilo"].ToString().Substring(0, 1)) >= 5; bool profiloProfessionaleAggressivo = profiloProfessionale && profiloAggressivo; //E' richiesto di escludere dall'elenco puntato le motivazioni sull'inadeguatezza relative a complessità, frequenza e concentrazione prodotti complessi // la stored procedure non restituisce i campi id degli indicatori, quindi bisogna fare un controllo sui campi descrittivi if (profiloProfessionale) stringheElencoPuntato = (from DataRow row in dtT11Dati.Rows where !(row["Indicatore"].ToString().Contains("Complessità")) && !(row["Indicatore"].ToString().Contains("Frequenza")) && !(row["Indicatore"].ToString().Contains("Concentrazione prod")) select row["Indicatore"] + ": " + Helper.ReplaceVariables(row["Descrizione"].ToString(), EnvironmentFacade.ReportEnvironment)).ToList(); else stringheElencoPuntato = (from DataRow row in dtT11Dati.Rows select row["Indicatore"] + ": " + Helper.ReplaceVariables(row["Descrizione"].ToString(), EnvironmentFacade.ReportEnvironment)).ToList(); //--Adriano //originale: //var stringheElencoPuntato = (from DataRow row in dtT11Dati.Rows select row["Indicatore"] + ": " + Helper.ReplaceVariables(row["Descrizione"].ToString(), EnvironmentFacade.ReportEnvironment)).ToList(); var lista = new UnorderedListPDF(EnvironmentFacade.RendererFacade.XLeftLimit, stringheElencoPuntato, BulletType.Trattino); AddElement(lista); 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_T11", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_T11", 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; } } }