using System;
using System.Collections.Generic;
using Consulenza.ReportCommon;
using System.Data;
namespace Consulenza.Immobiliare.Business
{
public static class DataService
{
///
/// Classe che fornisce metodi per il recupero di informazioni del cliente.
///
public static class ClienteManager
{
///
/// Recupera le informazioni relative al cliente la cui chiave è passata in input.
///
/// Chiave del cliente
///
public static Cliente RecuperaCliente(long chiaveCliente, bool unica)
{
var parametri = new List();
var cliente = new Cliente();
#region Definizione dei parametri
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "chiaveClientePb",
Value = chiaveCliente
};
parametri.Add(parametro);
#endregion
var dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_INFOCLIENTEPB", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_INFOCLIENTEPB", parametri);
if (dt.Rows.Count <= 0) return cliente;
cliente.Chiave = chiaveCliente;
cliente.CodiceFiscale = dt.Rows[0]["codFis"].ToString() != "" ? dt.Rows[0]["codFis"].ToString().ToUpper() : dt.Rows[0]["codFisGiuridiche"].ToString().ToUpper();
cliente.PartitaIva = dt.Rows[0]["pIva"].ToString().ToUpper();
cliente.Nome = dt.Rows[0]["nome_cliente"].ToString().ToUpper();
cliente.Cognome = dt.Rows[0]["cognome_cliente"].ToString().ToUpper();
cliente.FlagMonitoraggioImmobiliare = dt.Rows[0]["flagMonitoraggioImmobiliare"].Equals(true);
cliente.FlagNucleo = dt.Rows[0]["flagNucleo"].Equals(true);
cliente.FlagPianificazioneSuccessoria = dt.Rows[0]["flagPianificazioneSuccessoria"].Equals(true);
cliente.FlagMonitoraggioImmobiliare = dt.Rows[0]["flagMonitoraggioImmobiliare"].Equals(true);
cliente.FlagNucleo = dt.Rows[0]["flagNucleo"].Equals(true);
cliente.FlagPianificazioneSuccessoria = dt.Rows[0]["flagPianificazioneSuccessoria"].Equals(true);
if (cliente.CodiceFiscale == "")
cliente.CodiceFiscale = cliente.PartitaIva;
return cliente;
}
}
///
/// Classe che fornisce metodi per il recupero di informazioni del cliente.
///
public static class PrivateBankerManager
{
///
/// Recupera le informazioni relative al private banker a partire dalla chiave del cliente passata in input.
/// Nel caso in cui il pb recuperato è un livello TFA viene restituito il suo pb Manager, il cui codage è quello impostato nella proprietà CodiceManager.
///
/// Chiave del cliente a partire dalla quale recuperare il private banker associato
///
public static PrivateBanker RecuperaPrivateBanker(long chiaveCliente, bool unica)
{
var parametri = new List();
var privatebanker = new PrivateBanker();
#region Definizione dei parametri per REP_InfoClientePb
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "chiaveClientePb",
Value = chiaveCliente
};
parametri.Add(parametro);
#endregion
var dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_InfoClientePb", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_InfoClientePb", parametri);
var livelloPb = dt.Rows[0]["livello_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["livello_pb"].ToString().ToUpper();
var codiceAgenteManager = dt.Rows[0]["codManager_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["codManager_pb"].ToString().ToUpper();
var codiceRete = dt.Rows[0]["rete"] == DBNull.Value ? string.Empty : dt.Rows[0]["rete"].ToString().ToUpper();
var codiceLivelloUtenteTfa = codiceRete.Equals("F") ? "TFA" : "APF";
if (livelloPb.ToUpper().Equals(codiceLivelloUtenteTfa))
{
#region Definizione dei parametri per REP_InfoClientePbByCodAge
parametri.Clear();
parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.AnsiString,
ParameterName = "codage",
Value = codiceAgenteManager
};
var parametro2 = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.String,
ParameterName = "reteage",
Value = codiceRete
};
parametri.Add(parametro);
parametri.Add(parametro2);
#endregion
dt.Clear();
dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_InfoClientePbByCodAge", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_InfoClientePbByCodAge", parametri);
}
if (dt.Rows.Count <= 0) return privatebanker;
privatebanker.Cap = dt.Rows[0]["cap"] == DBNull.Value ? string.Empty : dt.Rows[0]["cap"].ToString().ToUpper();
privatebanker.Citta = dt.Rows[0]["citta"] == DBNull.Value ? string.Empty : dt.Rows[0]["citta"].ToString().ToUpper();
privatebanker.Codice = dt.Rows[0]["codage"] == DBNull.Value ? string.Empty : dt.Rows[0]["codage"].ToString().ToUpper();
privatebanker.CodiceRete = dt.Rows[0]["rete"] == DBNull.Value ? string.Empty : dt.Rows[0]["rete"].ToString().ToUpper();
privatebanker.Indirizzo = dt.Rows[0]["indirizzo"] == DBNull.Value ? string.Empty : dt.Rows[0]["indirizzo"].ToString().ToUpper();
privatebanker.Nominativo = dt.Rows[0]["nominativo_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["nominativo_pb"].ToString().ToUpper();
privatebanker.NumeroCivico = dt.Rows[0]["numcivico"] == DBNull.Value ? string.Empty : dt.Rows[0]["numcivico"].ToString().ToUpper();
privatebanker.PrefissoTelefono = dt.Rows[0]["ptel"] == DBNull.Value ? string.Empty : dt.Rows[0]["ptel"].ToString().ToUpper();
privatebanker.Telefono = dt.Rows[0]["tel"] == DBNull.Value ? string.Empty : dt.Rows[0]["tel"].ToString().ToUpper();
privatebanker.Livello = dt.Rows[0]["livello_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["livello_pb"].ToString().ToUpper();
privatebanker.CodiceManager = dt.Rows[0]["codManager_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["codManager_pb"].ToString().ToUpper();
return privatebanker;
}
//firma per nucleo
public static PrivateBanker RecuperaPrivateBanker(string codagente, string reteagente, bool unica)
{
var parametri = new List();
var privatebanker = new PrivateBanker();
#region Definizione dei parametri per REP_InfoClientePb
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.String,
ParameterName = "codage",
Value = codagente
};
var parametro2 = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.String,
ParameterName = "reteage",
Value = reteagente
};
parametri.Add(parametro);
parametri.Add(parametro2);
#endregion
var dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_InfoPbNucleo", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_InfoPbNucleo", parametri);
var livelloPb = dt.Rows[0]["livello_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["livello_pb"].ToString().ToUpper();
var codiceAgenteManager = dt.Rows[0]["codManager_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["codManager_pb"].ToString().ToUpper();
var codiceRete = dt.Rows[0]["rete"] == DBNull.Value ? string.Empty : dt.Rows[0]["rete"].ToString().ToUpper();
var codiceLivelloUtenteTfa = codiceRete.Equals("F") ? "TFA" : "APF";
if (livelloPb.ToUpper().Equals(codiceLivelloUtenteTfa))
{
#region Definizione dei parametri per REP_InfoClientePbByCodAge
parametri.Clear();
parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.AnsiString,
ParameterName = "codage",
Value = codiceAgenteManager
};
parametri.Add(parametro);
#endregion
dt.Clear();
dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_InfoClientePbByCodAge", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_InfoClientePbByCodAge", parametri);
}
if (dt.Rows.Count <= 0) return privatebanker;
privatebanker.Cap = dt.Rows[0]["cap"] == DBNull.Value ? string.Empty : dt.Rows[0]["cap"].ToString().ToUpper();
privatebanker.Citta = dt.Rows[0]["citta"] == DBNull.Value ? string.Empty : dt.Rows[0]["citta"].ToString().ToUpper();
privatebanker.Codice = dt.Rows[0]["codage"] == DBNull.Value ? string.Empty : dt.Rows[0]["codage"].ToString().ToUpper();
privatebanker.CodiceRete = dt.Rows[0]["rete"] == DBNull.Value ? string.Empty : dt.Rows[0]["rete"].ToString().ToUpper();
privatebanker.Indirizzo = dt.Rows[0]["indirizzo"] == DBNull.Value ? string.Empty : dt.Rows[0]["indirizzo"].ToString().ToUpper();
privatebanker.Nominativo = dt.Rows[0]["nominativo_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["nominativo_pb"].ToString().ToUpper();
privatebanker.NumeroCivico = dt.Rows[0]["numcivico"] == DBNull.Value ? string.Empty : dt.Rows[0]["numcivico"].ToString().ToUpper();
privatebanker.PrefissoTelefono = dt.Rows[0]["ptel"] == DBNull.Value ? string.Empty : dt.Rows[0]["ptel"].ToString().ToUpper();
privatebanker.Telefono = dt.Rows[0]["tel"] == DBNull.Value ? string.Empty : dt.Rows[0]["tel"].ToString().ToUpper();
privatebanker.Livello = dt.Rows[0]["livello_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["livello_pb"].ToString().ToUpper();
privatebanker.CodiceManager = dt.Rows[0]["codManager_pb"] == DBNull.Value ? string.Empty : dt.Rows[0]["codManager_pb"].ToString().ToUpper();
return privatebanker;
}
}
#region Nucleo 28 luglio 2015
public static class NucleoManager
{
///
/// Recupera le informazioni relative al nucleo la cui chiave è passata in input.
///
/// Chiave del cliente
///
///
public static Nucleo RecuperaNucleo(long chiaveNucleo, bool unica)
{
var parametri = new List();
var nucleo = new Nucleo();
#region Definizione dei parametri
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "chiaveNucleo",
Value = chiaveNucleo
};
parametri.Add(parametro);
#endregion
var dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_NUCLEOIMMOBILIARE", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_NUCLEOIMMOBILIARE", parametri);
if (dt.Rows.Count <= 0) return nucleo;
nucleo.ChiaveNucleo = chiaveNucleo;
nucleo.NomeNucleo = dt.Rows[0]["nome"].ToString();
nucleo.AgenteNucleo = dt.Rows[0]["AgenteNucleo"].ToString();
nucleo.ReteNucleo = dt.Rows[0]["retenucleo"].ToString();
nucleo.ChiaveClientePBPrincipale = 0;
// Gestione per MonitoraggioNucleiImmobiliare
if (!String.IsNullOrEmpty(dt.Rows[0]["chiaveClientePB"].ToString()))
nucleo.ChiaveClientePBPrincipale = Convert.ToInt64(dt.Rows[0]["chiaveClientePB"].ToString());
string[] chiaviClienti = new string[0];
chiaviClienti = dt.Rows[0]["chiaviClientePB"] != DBNull.Value ? dt.Rows[0]["chiaviClientePB"].ToString().Split(',') : chiaviClienti;
if (chiaviClienti.Length > 0)
{
foreach (string s in chiaviClienti)
{
if (!string.IsNullOrEmpty(s))
{
Cliente cli = new Cliente();
cli = ClienteManager.RecuperaCliente(int.Parse(s), unica);
cli.Nome = Helper.CapitalizeWords(cli.Nome.ToLower());
cli.Cognome = Helper.CapitalizeWords(cli.Cognome.ToLower());
nucleo.ListaClientiNucleo.Add(cli);
}
}
}
// Aggiunta caruso
if (nucleo.ChiaveClientePBPrincipale == 0)
nucleo.ChiaveClientePBPrincipale = nucleo.ListaClientiNucleo[0].Chiave;
if (nucleo.ChiaveClientePBPrincipale == 0)
nucleo.ChiaveClientePBPrincipale = nucleo.ListaClientiNucleo[0].Chiave;
return nucleo;
}
public static bool HasServizioAggiuntivoImmobiliare(long chiaveNucleo, bool unica)
{
var parametri = new List();
var nucleo = new Nucleo();
#region Definizione dei parametri
var parametro = new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "chiaveNucleo",
Value = chiaveNucleo
};
parametri.Add(parametro);
#endregion
var dt = unica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_NucleoImmobiliare_HaServizioImmobiliare", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_NucleoImmobiliare_HaServizioImmobiliare", parametri);
return Convert.ToInt32(dt.Rows[0]["result"].ToString()) > 0;
}
}
#endregion
}
}