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 } }