150 lines
6.5 KiB
C#
150 lines
6.5 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Disegna l'oggetto P11
|
|
/// </summary>
|
|
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));
|
|
}
|
|
|
|
/// <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_P11", parametri)
|
|
: DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P11", 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;
|
|
}
|
|
}
|
|
}
|