313 lines
16 KiB
C#
313 lines
16 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Consulenza.ReportCommon;
|
|
using System.Data;
|
|
|
|
namespace Consulenza.Immobiliare.Business
|
|
{
|
|
public static class DataService
|
|
{
|
|
/// <summary>
|
|
/// Classe che fornisce metodi per il recupero di informazioni del cliente.
|
|
/// </summary>
|
|
public static class ClienteManager
|
|
{
|
|
/// <summary>
|
|
/// Recupera le informazioni relative al cliente la cui chiave è passata in input.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <returns></returns>
|
|
public static Cliente RecuperaCliente(long chiaveCliente, bool unica)
|
|
{
|
|
var parametri = new List<Parametro>();
|
|
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Classe che fornisce metodi per il recupero di informazioni del cliente.
|
|
/// </summary>
|
|
public static class PrivateBankerManager
|
|
{
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente a partire dalla quale recuperare il private banker associato</param>
|
|
/// <returns></returns>
|
|
public static PrivateBanker RecuperaPrivateBanker(long chiaveCliente, bool unica)
|
|
{
|
|
var parametri = new List<Parametro>();
|
|
|
|
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<Parametro>();
|
|
|
|
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
|
|
{
|
|
/// <summary>
|
|
/// Recupera le informazioni relative al nucleo la cui chiave è passata in input.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <returns></returns>
|
|
/// </summary>
|
|
public static Nucleo RecuperaNucleo(long chiaveNucleo, bool unica)
|
|
{
|
|
var parametri = new List<Parametro>();
|
|
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<Parametro>();
|
|
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
|
|
}
|
|
}
|