using System;
using System.Collections.Generic;
using Consulenza.ReportWriter.Business.OBJ_PDF;
using System.Data;
using Consulenza.ReportWriter.Business;
namespace Consulenza.ReportWriter.Manager.Section.Base.Proposta
{
public class P10 : Entity.Section
{
public P10(EnvironmentFacade environmentFacade, int idSection)
: base(environmentFacade, idSection)
{
try
{
Draw();
}
catch (Exception ex)
{
SectionLogger.Write("P10", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
}
}
///
/// Disegna l'oggetto P10
///
protected override sealed void Draw()
{
var dtP10 = GetDataTable();
if (dtP10.Rows.Count <= 0) return;
#region Cliente professionale/retail?
//Adriano
//Adriano: bisogna poi avere anche l'info sul tipo cliente (pro/ret)
bool profiloProfessionale = false;
if (dtP10.Rows[0]["TipoConsulenza"].ToString() == "P")
profiloProfessionale = true;
bool profiloAggressivo = Convert.ToInt32(dtP10.Rows[0]["Profilo"].ToString().Substring(0, 1)) >= 5;
bool profiloProfessionaleAggressivo = profiloProfessionale && profiloAggressivo;
//--Adriano
#endregion
#region Tabella
var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit , 3, 4)
{
ID = "P10",
Header = false,
Footer = false,
AlternateRow = false,
ShowSeparationLines = true,
WidthSeparationLines = 2,
ShowBorderContent = true
};
tabella.Columns.Add(new ColumnPDF("Descrizione", 180, HorizontalAlignmentType.Sinistra, true, true, 8, ColumnType.Testo));
tabella.Columns.Add(new ColumnPDF("Valori", 343, HorizontalAlignmentType.Sinistra, false, false, 8, ColumnType.Objectpdf));
tabella.Columns[0].PaddingLeft = 10;
tabella.Columns[1].PaddingLeft = 5;
tabella.Cells[0, 0].Value = "Profilo finanziario";
// to do if delegato
if ( EnvironmentFacade.ReportEnvironment.PrivateDelegato.chiaveDelegato > 0 )
tabella.Cells[0, 1].Value = "Livello di esperienza e conoscenza *";
else
tabella.Cells[0, 1].Value = "Livello di esperienza e conoscenza";
tabella.Cells[0, 2].Value = "Limite massimo rischio mercato (VaR)";
tabella.Cells[0, 3].Value = "Limite massimo rischio credito";
var textFormattedTextAreaProfilo = string.Format("{0} {1}", dtP10.Rows[0]["Profilo"], dtP10.Rows[0]["DescProfilo"]);
//Adriano
var textFormattedTextAreaEsperienza = string.Format("{0}", profiloProfessionale? "n.a.": dtP10.Rows[0]["EspConoscenza"]);
var textFormattedTextAreaLimiteRischioMercato = string.Format("{0}%", profiloProfessionale? "50,00" : dtP10.Rows[0]["RischioMercatoMax"]);
//--Adriano
//originale:
//var textFormattedTextAreaEsperienza = string.Format("{0}", dtP10.Rows[0]["EspConoscenza"]);
//var textFormattedTextAreaLimiteRischioMercato = string.Format("{0}%", dtP10.Rows[0]["RischioMercatoMax"]);
var textFormattedTextAreaLimiteRischioCredito = string.Format("{0}", dtP10.Rows[0]["RischioCreditoMax"]);
var ftaProfilo = new FormattedTextAreaPDF(textFormattedTextAreaProfilo, 0, 338);
var ftaEsperienza = new FormattedTextAreaPDF(textFormattedTextAreaEsperienza, 0, 338);
var ftaLimiteRischioMercato = new FormattedTextAreaPDF(textFormattedTextAreaLimiteRischioMercato, 0, 338);
var ftaLimiteRischioCredito = new FormattedTextAreaPDF(textFormattedTextAreaLimiteRischioCredito, 0, 338);
tabella.Cells[1, 0].ValueObject = ftaProfilo;
tabella.Cells[1, 1].ValueObject = ftaEsperienza;
tabella.Cells[1, 2].ValueObject = ftaLimiteRischioMercato;
tabella.Cells[1, 3].ValueObject = ftaLimiteRischioCredito;
#endregion
var descrizioneNota ="* Il 'Livello di esperienza e conoscenza' indicato rappresenta il profilo di Esperienza e Conoscenza del Legale Rappresentante/Delegato";
var delegato = EnvironmentFacade.ReportEnvironment.PrivateDelegato.Nome + " " + EnvironmentFacade.ReportEnvironment.PrivateDelegato.Cognome;
var textNotaLivelloEsperienzaeConoscenza = new FormattedTextAreaPDF(string.Format("{0} {1}", descrizioneNota, delegato), EnvironmentFacade.RendererFacade.XLeftLimit, 550, ceTe.DynamicPDF.TextAlign.Left) { Y = 265, FontSize = 8 };
AddElement(tabella);
if (EnvironmentFacade.ReportEnvironment.PrivateDelegato.chiaveDelegato > 0)
AddElement(textNotaLivelloEsperienzaeConoscenza);
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_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;
}
}
}