143 lines
6.0 KiB
C#
143 lines
6.0 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Disegna l'oggetto T11
|
|
/// </summary>
|
|
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<string> 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));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataTable.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected sealed override DataTable GetDataTable()
|
|
{
|
|
var parametri = new List<Parametro>();
|
|
|
|
#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<Parametro>();
|
|
|
|
#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);
|
|
}
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataSet.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected sealed override DataSet GetDataSet()
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|