119 lines
4.2 KiB
C#

using System.Collections.Generic;
using System.Data;
namespace Consulenza.ReportModeler.Business.Base.Proposta
{
/// <summary>
/// Classe di business per che si interfaccia con il database di ConsulenzaBase
/// e che si occupa di recuperare le informazioni legate alla logica di modellazione del report (ReportModeler).
/// </summary>
public class ReportStructBusiness
{
/// <summary>
/// Recupera l'id del report.
/// E' definito a livello di database. Campo ID di [ReportModeler2].[dbo].[Report]
/// </summary>
/// <returns></returns>
public int GetIdReport()
{
return 1;
}
/// <summary>
/// Recupera l'id del modello in funzione dello stato di adeguatezza della proposta.
/// L'id del modello per il report di Proposta di ConsulenzaBase è determinato dallo stato di adeguatezza della proposta il cui id è passato in input.
/// Eseguendo la stored "REP_CheckStatoProposta_Adeguata" avrò idmodello = 1 per la proposta in stato "ADEGUATA", idmodello = 2 per proposta "NON ADEGUATA".
/// </summary>
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
/// <param name="chiaveProposta">chiave della proposta</param>
/// <returns></returns>
public int GetIdModel(long chiaveCliente, int chiaveProposta, bool unica)
{
int idModel;
var parametri = new List<Parametro>();
#region Definizione dei parametri
parametri.Clear();
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "ChiaveClientePB",
Value = chiaveCliente
};
parametri.Add(parametro);
parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int32,
ParameterName = "ChiaveProposta",
Value = chiaveProposta
};
parametri.Add(parametro);
#endregion
var dtEsitoAdeguatezza = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_CheckStatoProposta_Adeguata", parametri)
: DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_CheckStatoProposta_Adeguata", parametri);
var codice = dtEsitoAdeguatezza.Rows[0]["STATO_ADEGUATEZZA"].ToString();
if (!codice.Equals(string.Empty))
{
idModel = codice.Equals("ADEGUATA") ? 1 : 2;
}
else
{
idModel = 2; // Fisso definito a livello database
}
return idModel;
}
public int GetIdModelBaseUnica(long chiaveCliente, int chiaveProposta)
{
int idModel;
var parametri = new List<Parametro>();
#region Definizione dei parametri
parametri.Clear();
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "ChiaveClientePB",
Value = chiaveCliente
};
parametri.Add(parametro);
parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int32,
ParameterName = "ChiaveProposta",
Value = chiaveProposta
};
parametri.Add(parametro);
#endregion
var dtEsitoAdeguatezza = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_CheckStatoProposta_Adeguata", parametri);
var codice = dtEsitoAdeguatezza.Rows[0]["STATO_ADEGUATEZZA"].ToString();
if (!codice.Equals(string.Empty))
{
idModel = codice.Equals("ADEGUATA") ? 1 : 2;
}
else
{
idModel = 2; // Fisso definito a livello database
}
return idModel;
}
}
}