public void GetProprietarioPrincipale_LoPresentaSeInternoAlEsercizio() { var persona = new Persona(TipoPersonaEnum.Fisica, "Secondo", "Proprietario", _azienda.ID, true); var proprietario = new Proprietario(_unitaImmobiliare, persona) { PercentualeRiferimento = 100, Principale = true, DataInizio = new DateTime(2015, 2, 1) }; var primoProprietario = _unitaImmobiliare.Soggetti.FirstOrDefault(); if (primoProprietario != null) primoProprietario.DataFine = proprietario.DataInizio.GetValueOrDefault().AddDays(-1); _unitaImmobiliare.Soggetti.Add(proprietario); var firstOrDefault = _unitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.Esercizi.OrderBy(item => item.DataChiusura).FirstOrDefault(); if (firstOrDefault != null) { var proprietarioPrincipale = _unitaImmobiliare.GetProprietarioPrincipale(firstOrDefault.DataChiusura.GetValueOrDefault().AddYears(1)); Assert.IsTrue(proprietarioPrincipale.Persona.Cognome == "Proprietario" && proprietarioPrincipale.Persona.Nome == "Secondo"); return; } throw new AssertionException("TEST Fallito"); }
public static UnitaImmobiliare GetCondominioMonoScalaMonoProprietario() { var azienda = new Azienda("TEST", "Azienda di Test") { ID = 1 }; var condominio = new Condominio("Test", 31, 12, 2014, azienda); var stabile = new Palazzina(condominio, "Stabile A - TEST"); var scala = new GruppoStabile(stabile, "Scala A - TEST"); var tipo = new TipoUnitaImmobiliare("Abitazione"); var unitaImmobiliare = new UnitaImmobiliare(scala, tipo); // Esercizio var annoGestionale = new AnnoGestionale(condominio, 2013, 2014); var esercizio = new Esercizio(condominio, new DateTime(2014, 1, 1), new DateTime(2014, 12, 31), annoGestionale, GestioneEsercizioEnum.Ordinario); condominio.Esercizi.Add(esercizio); // Proprietario var persona = new Persona(TipoPersonaEnum.Fisica, "Pinco", "Pallo", azienda.ID, true); var proprietario = new Proprietario(unitaImmobiliare, persona) { PercentualeRiferimento = 100, Principale = true }; unitaImmobiliare.Soggetti.Add(proprietario); return unitaImmobiliare; }
/// <summary> /// Crea un Contatto valido /// </summary> public PersonaDaNonSollecitare(Persona persona, Condominio condominio) { Condominio = condominio; Persona = persona; if (Condominio != null) Condominio.PersoneDaNonSollecitare.Add(this); }
public ContattoRepository(int idPersona, UserInfo info, WindsorConfigRepository windsorRepository) { _info = info; _windsorRepository = windsorRepository; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); _persona = daoFactory.GetPersonaDao().GetById(idPersona, false); }
public AgenziaAssicurativa(Persona persona, Fornitore fornitore, string agenzia, int? aziendaID) : base(persona, aziendaID) { if (aziendaID != null) { Fornitore = fornitore; _agenzia = agenzia; } }
/// <summary> /// Crea un Contatto valido /// </summary> public Contatto(string valore, bool predefinito, Persona persona) { Valore = valore; Predefinito = predefinito; Persona = persona; if (Persona != null) Persona.Contatti.Add(this); }
/// <summary> /// Crea un Richiedente di Pratica valido /// </summary> public PraticaRichiedente(Pratica pratica, Persona richiedente, DateTime? dataRichiesta) { Pratica = pratica; Richiedente = richiedente; DataRichiesta = dataRichiesta; if (Pratica != null) Pratica.Richiedenti.Add(this); }
/// <summary> /// Crea uno Referente valido /// </summary> public Referente(string sigla, Persona persona, Azienda azienda) { if (azienda != null) { Sigla = sigla; PersonaRiferimento = persona; Azienda = azienda; } }
/// <summary> /// Crea uno Fornitore valido /// </summary> public Fornitore(Persona personaRiferimento, int? aziendaID) { if (aziendaID != null) { _personaRiferimento = personaRiferimento; _aziendaID = aziendaID; Qualita = new ValutazioneQualita(); _stato = StatoFornitore.Attivo; } }
/// <summary> /// Crea una relazione valida tra persona e gruppo /// </summary> public PersonaGruppo(Persona persona, Gruppo gruppo) { Persona = persona; Gruppo = gruppo; if (Persona != null) Persona.Gruppi.Add(this); if (Gruppo != null) Gruppo.Persone.Add(this); }
public void SetUp() { _documentService = MockRepository.GenerateStub<IDocumentService>(); _fileSystem = MockRepository.GenerateStub<IFileSystem>(); const string str = "Documento Bolletta di Prova"; _documentoSpesa = new byte[str.Length * sizeof(char)]; Buffer.BlockCopy(str.ToCharArray(), 0, _documentoSpesa, 0, _documentoSpesa.Length); _fileSystem = MockRepository.GenerateStub<IFileSystem>(); _fileSystem.Stub(x => x.ReadAllBytes(Arg<string>.Is.Anything)).Return(_documentoSpesa); IList<Spesa> listaSpese = new List<Spesa>(); _utente = new Utente("PP"); _logTransazione = new LogTransazione(AzioneUtente.TransazioneContabile, _utente, Guid.NewGuid().ToString()); _azienda = new Azienda("PROV", "Prova") { ID = 1 }; _condominio1 = new Condominio("Condominio 1", 31, 12, 2014, _azienda) { CodiceFiscale = "91138030373" }; _annoGestionaleCondominio1 = new AnnoGestionale(_condominio1, 2014, 2014); _esercizioCondominio1 = new Esercizio(_condominio1, new DateTime(2014, 1, 1), new DateTime(2014, 12, 31), _annoGestionaleCondominio1, GestioneEsercizioEnum.Ordinario); _condominio2 = new Condominio("Condominio 2", 31, 12, 2014, _azienda) { CodiceFiscale = "90036640374" }; _annoGestionaleCondominio2 = new AnnoGestionale(_condominio2, 2014, 2014); _esercizioCondominio2 = new Esercizio(_condominio2, new DateTime(2014, 1, 1), new DateTime(2014, 12, 31), _annoGestionaleCondominio2, GestioneEsercizioEnum.Ordinario); _persona = new Persona(TipoPersonaEnum.Fisica, "Mario", "Rossi", _azienda.ID, true); _fornitore = new Fornitore(_persona, _azienda.ID); _documentiBolletteDTO = buildDocumentoBolletteDTO(); foreach (var documentoBollettaDTO in _documentiBolletteDTO) { var esercizio = _esercizioCondominio1; if (documentoBollettaDTO.CodiceFiscaleCliente == _condominio2.CodiceFiscale) esercizio = _esercizioCondominio2; listaSpese.Add(new Spesa(_fornitore, esercizio, _logTransazione) { ID = documentoBollettaDTO.IdSpesa, NumeroDocumento = documentoBollettaDTO.NumeroDocumento, DataDocumento = documentoBollettaDTO.DataDocumento }); } _daoFactory = MockRepository.GenerateStub<IDaoFactory>(); _daoFactory.Stub(x => x.GetCondominioDao().GetByCodiceFiscale(_condominio1.CodiceFiscale)).Return(_condominio1); _daoFactory.Stub(x => x.GetCondominioDao().GetByCodiceFiscale(_condominio2.CodiceFiscale)).Return(_condominio2); _spesaDao = MockRepository.GenerateStub<ISpesaDao>(); _documentoDao = MockRepository.GenerateStub<IDocumentoDao>(); _daoFactory.Stub(x => x.GetSpesaDao()).Return(_spesaDao); _daoFactory.Stub(x => x.GetDocumentoDao()).Return(_documentoDao); foreach (var spesa in listaSpese) _spesaDao.Stub(x => x.Find(spesa.ID, false)).Return(spesa); _utenzaDocumentoService = MockRepository.GenerateMock<UtenzaDocumentoService>(_daoFactory, _documentService, _fileSystem); }
/// <summary> /// Crea una Pratica valido /// </summary> public Pratica(Condominio stabile, Persona personaRiferimento, TipoPratica tipoPratica, DateTime? dataApertura, int? aziendaID, LogTransazione logTransazione) { _condominioRiferimento = stabile; _personaRiferimento = personaRiferimento; _tipoPraticaRiferimento = tipoPratica; _aziendaID = aziendaID; _dataApertura = dataApertura; LogTransazione = logTransazione; if (stabile != null) stabile.Pratiche.Add(this); }
/// <summary> /// Crea un sollecito valido. /// </summary> public Sollecito(Esercizio esercizio, Persona persona, DateTime data, DateTime dataLimiteRate, decimal importoLimite, decimal importoDaVersare, DatiBancariCondomini banca, string oggettoLettera, string testoLettera) { Esercizio = esercizio; Persona = persona; Data = data; DataLimiteRate = dataLimiteRate; ImportoLimite = importoLimite; ImportoDaVersare = importoDaVersare; OggettoLettera = oggettoLettera; TestoLettera = testoLettera; Banca = banca; }
/// <summary> /// Crea un Conduttore valido /// </summary> public Conduttore(UnitaImmobiliare unitaImmobiliare, Persona persona) : base(unitaImmobiliare, persona) { if (unitaImmobiliare != null) { unitaImmobiliare.Conduttori.Add(this); unitaImmobiliare.Soggetti.Add(this); if (unitaImmobiliare.Conduttori.Count == 1) { this.PercentualeRiferimento = 100m; this.Principale = true; } } }
/// <summary> /// Crea un Proprietario valido /// </summary> public Proprietario(UnitaImmobiliare unitaImmobiliare, Persona persona) : base(unitaImmobiliare, persona) { if (unitaImmobiliare != null) { unitaImmobiliare.Proprietari.Add(this); unitaImmobiliare.Soggetti.Add(this); if (unitaImmobiliare.Proprietari.Count == 1) { PercentualeRiferimento = 100m; Principale = true; } } }
public SoggettoCondominio GetSoggettoPrincipale(Persona persona, Esercizio esercizio) { try { var soggetti = _daoFactory.GetSoggettoCondominioDao().GetByCondominioPersona(esercizio.CondominioRiferimento.ID, persona.ID).Where(item => item.DataFine == null || item.DataFine > esercizio.DataApertura.GetValueOrDefault()).ToList(); var soggetto = soggetti.FirstOrDefault(item => item.UnitaImmobiliare.TipoUnitaImmobiliare.ID == 1) ?? soggetti.FirstOrDefault(); return soggetto; } catch (Exception ex) { _log.ErrorFormat("Errore durante la lettura del soggetto principale - {0} - persona:{1} - esercizio:{2}", ex, Library.Utility.GetMethodDescription(), persona.ID, esercizio.ID); throw; } }
/// <summary> /// Crea uno StoricoMessaggio valido /// </summary> public StoricoMessaggio(Persona persona, TipoMessaggio tipo, MotivoMessaggio tipoOggetto, string oggetto, string indirizzi, string mittente, string codiceInvio, string codiceMessaggio, bool invioCorretto, DateTime dataInvio) { Oggetto = oggetto; Mittente = mittente; CodiceInvio = codiceInvio; CodiceMessaggio = codiceMessaggio; InvioCorretto = invioCorretto; DataInvio = dataInvio; Tipo = tipo; Indirizzi = indirizzi; MotivoMessaggio = tipoOggetto; Stato = invioCorretto ? StatoMessaggio.InAttesa : StatoMessaggio.Fallito; Persona = persona; if (Persona != null) Persona.Messaggi.Add(this); }
private bool insert(PersonaDTO dto, out Persona item) { item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { if (dto.DataNascita != null) { if (!Conversione.IsSqlSmallDateTime(dto.DataNascita.GetValueOrDefault())) { dto.DataNascita = null; _log.WarnFormat("ATTENZIONE: Tentativo di memorizzare una data di nascita non corretta - {0} - persona:{1} - data:{2}", Utility.GetMethodDescription(), dto.ID, dto.DataNascita.GetValueOrDefault()); } } item = new Persona(dto.TipoPersona, dto.Nome, dto.Cognome, dto.Azienda, true) { AziendaID = dto.Azienda, CodiceFiscale = dto.CodiceFiscale, Cognome = dto.Cognome, DataNascita = dto.DataNascita, Nome = dto.Nome, Note = dto.Note, PartitaIva = dto.PartitaIva, RagioneSociale = dto.RagioneSociale, Sesso = dto.Sesso, Titolo = dto.Titolo, Iban = dto.Iban }; if(!string.IsNullOrEmpty(dto.Username)) item.DatiAutenticazione = new DatiAutenticazionePersona {Username = dto.Username, Password = dto.Password}; // Se iban è valorizzato i dati singoli devono sempre essere estrapolati dall'IBAN if (!string.IsNullOrEmpty(item.Iban)) { var coord = new CoordinateBancarie(); if (coord.SetIBAN(item.Iban)) { item.Abi = coord.Abi; item.Cab = coord.Cab; item.ContoCorrente = coord.ContoCorrente; item.Cin = coord.Cin; } } else { item.Abi = dto.Abi; item.Cab = dto.Cab; item.ContoCorrente = dto.ContoCorrente; item.Cin = dto.Cin; } if (dto.IndirizzoResidenza != null) { if (item.IndirizzoResidenza == null) item.IndirizzoResidenza = new Address(); item.IndirizzoResidenza.Cap = dto.IndirizzoResidenza.Cap; item.IndirizzoResidenza.Civico = dto.IndirizzoResidenza.Civico; item.IndirizzoResidenza.Indirizzo = dto.IndirizzoResidenza.Indirizzo; item.IndirizzoResidenza.Localita = dto.IndirizzoResidenza.Localita; item.IndirizzoResidenza.Presso = dto.IndirizzoResidenza.Presso; if (dto.IndirizzoResidenza.CodiceComune != null) item.IndirizzoResidenza.Comune = daoFactory.GetComuneDao().Find(dto.IndirizzoResidenza.CodiceComune, false); } if (dto.Domicilio != null) { if (item.Domicilio == null) item.Domicilio = new Address(); item.Domicilio.Cap = dto.Domicilio.Cap; item.Domicilio.Civico = dto.Domicilio.Civico; item.Domicilio.Indirizzo = dto.Domicilio.Indirizzo; item.Domicilio.Localita = dto.Domicilio.Localita; item.Domicilio.Presso = dto.Domicilio.Presso; if (dto.Domicilio.CodiceComune != null) item.Domicilio.Comune = daoFactory.GetComuneDao().Find(dto.Domicilio.CodiceComune, false); } if (dto.Recapito != null) { if (item.Recapito == null) item.Recapito = new Address(); item.Recapito.Cap = dto.Recapito.Cap; item.Recapito.Civico = dto.Recapito.Civico; item.Recapito.Indirizzo = dto.Recapito.Indirizzo; item.Recapito.Localita = dto.Recapito.Localita; item.Recapito.Presso = dto.Recapito.Presso; if (dto.Recapito.CodiceComune != null) item.Recapito.Comune = daoFactory.GetComuneDao().GetById(dto.Recapito.CodiceComune, false); } if (dto.ComuneNascita != null) { _idComune = dto.ComuneNascita.ID; item.ComuneNascita = daoFactory.GetComuneDao().GetById(_idComune, false); } else item.ComuneNascita = null; //Lista Contatti item.Contatti.Clear(); foreach (var t in dto.Contatti) { _id = t.ID; if (t.Stato != string.Empty) _id = getContattoRepository(item).ManageDomainEntity(t, false); item.Contatti.Add(daoFactory.GetContattoDao().GetById(_id.GetValueOrDefault(), false)); } // Lista Gruppi item.Gruppi.Clear(); foreach (var idGruppo in dto.Gruppi) { var gruppo = daoFactory.GetGruppoDao().Find(idGruppo, false); if (gruppo != null) { var personaGruppo = new PersonaGruppo(item, gruppo); daoFactory.GetPersonaGruppoDao().SaveOrUpdate(personaGruppo); } } daoFactory.GetPersonaDao().SaveOrUpdate(item); // Dati autenticazione (solo ora perchè necessita dell'ID) if(item.DatiAutenticazione == null || string.IsNullOrEmpty(item.DatiAutenticazione.Username)) { if(item.DatiAutenticazione == null) item.DatiAutenticazione = new DatiAutenticazionePersona(); var service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPersonaService>(); service.SetDatiAutenticazione(item); } // Unità Immobiliari var unitaImmobiliari = daoFactory.GetUnitaImmobiliareDao().GetByPersona(item.ID); foreach (var unitaImmobiliare in unitaImmobiliari) { unitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare); } } catch (Exception ex) { _log.Error("Errore nell'inserimento delle persone: " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } return true; }
private bool update(PersonaDTO dto, out Persona item) { bool result = false; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetPersonaDao().GetById(dto.ID, false); // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia // Per non viene più eseguito il controllo if (dto.Version == item.Version || true) { item.AziendaID = dto.Azienda; item.CodiceFiscale = dto.CodiceFiscale; item.Cognome = dto.Cognome; if (dto.DataNascita != null) { if (!Conversione.IsSqlSmallDateTime(dto.DataNascita.GetValueOrDefault())) _log.WarnFormat("ATTENZIONE: Tentativo di memorizzare una data di nascita non corretta - {0} - persona:{1} - data:{2}", Utility.GetMethodDescription(), dto.ID, dto.DataNascita.GetValueOrDefault()); else item.DataNascita = dto.DataNascita; } item.Nome = dto.Nome; item.Note = dto.Note; item.PartitaIva = dto.PartitaIva; item.RagioneSociale = dto.RagioneSociale; item.Sesso = dto.Sesso; item.TipoPersona = dto.TipoPersona; item.Titolo = dto.Titolo; if (!string.IsNullOrEmpty(dto.Username)) { if (item.DatiAutenticazione == null) item.DatiAutenticazione = new DatiAutenticazionePersona(); item.DatiAutenticazione.Username = dto.Username; item.DatiAutenticazione.Password = dto.Password; } item.Iban = dto.Iban; // Se iban è valorizzato i dati singoli devono sempre essere estrapolati dall'IBAN if (!string.IsNullOrEmpty(item.Iban)) { var coord = new CoordinateBancarie(); coord.SetIBAN(item.Iban); item.Abi = coord.Abi; item.Cab = coord.Cab; item.ContoCorrente = coord.ContoCorrente; item.Cin = coord.Cin; } else { item.Abi = dto.Abi; item.Cab = dto.Cab; item.ContoCorrente = dto.ContoCorrente; item.Cin = dto.Cin; } if (dto.IndirizzoResidenza != null) { if (item.IndirizzoResidenza == null) item.IndirizzoResidenza = new Address(); item.IndirizzoResidenza.Cap = dto.IndirizzoResidenza.Cap; item.IndirizzoResidenza.Civico = dto.IndirizzoResidenza.Civico; item.IndirizzoResidenza.Indirizzo = dto.IndirizzoResidenza.Indirizzo; item.IndirizzoResidenza.Localita = dto.IndirizzoResidenza.Localita; item.IndirizzoResidenza.Presso = dto.IndirizzoResidenza.Presso; item.IndirizzoResidenza.Comune = dto.IndirizzoResidenza.CodiceComune != null ? daoFactory.GetComuneDao().Find(dto.IndirizzoResidenza.CodiceComune, false) : null; } if (dto.Domicilio != null) { if (item.Domicilio == null) item.Domicilio = new Address(); item.Domicilio.Cap = dto.Domicilio.Cap; item.Domicilio.Civico = dto.Domicilio.Civico; item.Domicilio.Indirizzo = dto.Domicilio.Indirizzo; item.Domicilio.Localita = dto.Domicilio.Localita; item.Domicilio.Presso = dto.Domicilio.Presso; item.Domicilio.Comune = dto.Domicilio.CodiceComune != null ? daoFactory.GetComuneDao().Find(dto.Domicilio.CodiceComune, false) : null; } if (dto.Recapito != null) { if (item.Recapito == null) item.Recapito = new Address(); item.Recapito.Cap = dto.Recapito.Cap; item.Recapito.Civico = dto.Recapito.Civico; item.Recapito.Indirizzo = dto.Recapito.Indirizzo; item.Recapito.Localita = dto.Recapito.Localita; item.Recapito.Presso = dto.Recapito.Presso; item.Recapito.Comune = dto.Recapito.CodiceComune != null ? daoFactory.GetComuneDao().GetById(dto.Recapito.CodiceComune, false) : null; } if (dto.ComuneNascita != null) { _idComune = dto.ComuneNascita.ID; item.ComuneNascita = daoFactory.GetComuneDao().GetById(_idComune, false); } else item.ComuneNascita = null; // Lista Contatti item.Contatti.Clear(); foreach (var t in dto.Contatti) { _id = t.ID; if (t.Stato != string.Empty) _id = getContattoRepository(item).ManageDomainEntity(t, false); var contatto = daoFactory.GetContattoDao().Find(_id.GetValueOrDefault(), false); if(contatto != null) item.Contatti.Add(contatto); } // Lista Gruppi var gruppi = item.Gruppi.ToArray(); foreach (var personaGruppo in gruppi) { personaGruppo.Gruppo.Persone.Remove(personaGruppo); personaGruppo.Persona.Gruppi.Remove(personaGruppo); personaGruppo.Gruppo = null; personaGruppo.Persona = null; } item.Gruppi.Clear(); foreach (var idGruppo in dto.Gruppi) { var gruppo = daoFactory.GetGruppoDao().Find(idGruppo, false); if(gruppo != null) { var personaGruppo = new PersonaGruppo(item, gruppo); daoFactory.GetPersonaGruppoDao().SaveOrUpdate(personaGruppo); } } // Unità Immobiliari var unitaImmobiliari = daoFactory.GetUnitaImmobiliareDao().GetByPersona(item.ID); foreach (var unitaImmobiliare in unitaImmobiliari) { unitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare); } daoFactory.GetPersonaDao().Update(item); result = true; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.ErrorFormat("Errore nel salvataggio della persona - {0} id:{1} - il dato sul db è più recente di quello che si vuole salvare", Utility.GetMethodDescription(), dto.ID); } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio della persona - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return result; }
private ContattoRepository getContattoRepository(Persona persona) { if (_contattoRepository == null) _contattoRepository = new ContattoRepository(persona, _info, _windsorRepository); else _contattoRepository.Persona = persona; return _contattoRepository; }
private void setIndirizzo(PersonaContattoDTO dto, Persona persona, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioni) { try { // ================================================================== // Indirizzo // ================================================================== if (tipoIndirizzo == null) tipoIndirizzo = impostazioni.TipoIndirizzoComunicazioni; dto.Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = tipoIndirizzo.GetValueOrDefault() }; if (persona.IndirizzoResidenza != null) { dto.Indirizzo.CapResidenza = persona.IndirizzoResidenza.Cap; dto.Indirizzo.LocalitaResidenza = persona.IndirizzoResidenza.Localita; dto.Indirizzo.PressoResidenza = persona.IndirizzoResidenza.Presso; // Località per ora viene stampata com campo singolo // personaDto.Indirizzo.ComuneResidenza = soggetto.Persona.IndirizzoResidenza.Localita; if (persona.IndirizzoResidenza.Comune != null) { if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneResidenza)) dto.Indirizzo.ComuneResidenza += " - "; dto.Indirizzo.ComuneResidenza += persona.IndirizzoResidenza.Comune.Descrizione + " " + persona.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice; } dto.Indirizzo.ViaCivicoResidenza = persona.IndirizzoResidenza.Indirizzo + " " + persona.IndirizzoResidenza.Civico; //if (!string.IsNullOrEmpty(persona.IndirizzoResidenza.Presso)) // dto.Indirizzo.ViaCivicoResidenza += " - c/o:" + persona.IndirizzoResidenza.Presso; } if (persona.Recapito != null) { dto.Indirizzo.CapRecapito = persona.Recapito.Cap; dto.Indirizzo.LocalitaRecapito = persona.Recapito.Localita; dto.Indirizzo.PressoRecapito = persona.Recapito.Presso; // Località per ora viene stampata com campo singolo // personaDto.Indirizzo.ComuneRecapito = soggetto.Persona.Recapito.Localita; if (persona.Recapito.Comune != null) { if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneRecapito)) dto.Indirizzo.ComuneRecapito += " - "; dto.Indirizzo.ComuneRecapito += persona.Recapito.Comune.Descrizione + " " + persona.Recapito.Comune.ProvinciaAppartenenza.Codice; } dto.Indirizzo.ViaCivicoRecapito = persona.Recapito.Indirizzo + " " + persona.Recapito.Civico; //if (!string.IsNullOrEmpty(persona.Recapito.Presso)) // dto.Indirizzo.ViaCivicoRecapito += " - c/o:" + persona.Recapito.Presso; } else { dto.Indirizzo.ViaCivicoRecapito = dto.Indirizzo.ViaCivicoResidenza; dto.Indirizzo.CapRecapito = dto.Indirizzo.CapResidenza; dto.Indirizzo.ComuneRecapito = dto.Indirizzo.ComuneResidenza; dto.Indirizzo.PressoRecapito = dto.Indirizzo.PressoResidenza; dto.Indirizzo.LocalitaRecapito = dto.Indirizzo.LocalitaResidenza; } dto.ViaCivico = dto.Indirizzo.ViaCivicoRecapito; dto.Cap = dto.Indirizzo.CapRecapito; dto.Comune = dto.Indirizzo.ComuneRecapito; dto.Localita = dto.Indirizzo.LocalitaRecapito; dto.Presso = dto.Indirizzo.PressoRecapito; // ================================================================== } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura dell'indirizzo - {0} - id:{1}", ex, Utility.GetMethodDescription(), persona.ID); throw; } }
public IEnumerable<PersonaContattoDTO> SetContattoDto(Persona item, TipoNominativo? tipoNominativo, DateTime? dataRiferimento, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioniAzienda) { try { var listaDto = new List<PersonaContattoDTO>(); var mainDTO = new PersonaContattoDTO { ID = item.ID, Azienda = item.AziendaID.GetValueOrDefault(), Iban = item.Iban, CodiceFiscale = item.CodiceFiscale, Cognome = item.Cognome, DataNascita = item.DataNascita, DisplayName = item.DisplayName, Nome = item.Nome, Note = item.Note, PartitaIva = item.PartitaIva, RagioneSociale = item.RagioneSociale, Sesso = item.Sesso, TipoPersona = item.TipoPersona, Titolo = item.Titolo, IsDeleteAllow = false, Username = item.DatiAutenticazione?.Username, Password = item.DatiAutenticazione?.Password, Barcode = item.GetBarcode(), Version = item.Version }; if (string.IsNullOrEmpty(mainDTO.Cognome) && string.IsNullOrEmpty(mainDTO.Nome)) mainDTO.Cognome = mainDTO.RagioneSociale; var gruppi = string.Empty; foreach (var personaGruppo in item.Gruppi) { if (!string.IsNullOrEmpty(gruppi)) gruppi += ", "; gruppi += personaGruppo.Gruppo.DescrizioneBreve; } mainDTO.Gruppi = gruppi; if (item.ComuneNascita != null) { try { mainDTO.ComuneNascita = item.ComuneNascita.Descrizione; } catch (Exception ex) { _log.WarnFormat("Errore nel caricamento delle persone - COMUNE NASCITA - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID); } } // Indirizzi setIndirizzo(mainDTO, item, tipoIndirizzo, impostazioniAzienda); //if ((tipoIndirizzo == TipoIndirizzo.Residenza && item.IndirizzoResidenza != null) || (tipoIndirizzo == TipoIndirizzo.Recapito && item.Recapito == null)) //{ // var indirizzo = _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza); // mainDTO.Indirizzo = indirizzo.DisplayName; // mainDTO.Comune = indirizzo.DescrizioneComune + " " + indirizzo.CodiceProvincia; // mainDTO.Localita = indirizzo.Localita; // mainDTO.Cap = indirizzo.Cap; // mainDTO.Presso = indirizzo.Presso; //} //else if (item.Recapito != null) //{ // var recapito = _locRep.GetAddressByDomainEntity(item.Recapito); // mainDTO.Recapito = recapito.DisplayName; // mainDTO.Indirizzo = recapito.DisplayName; // mainDTO.Comune = recapito.DescrizioneComune + " " + recapito.CodiceProvincia; // mainDTO.Localita = recapito.Localita; // mainDTO.Cap = recapito.Cap; // mainDTO.Presso = recapito.Presso; //} // Contatti var contatti = new ContattoCollection(item.Contatti); var tel = contatti.GetFirstContatto<Telefono>(); if (tel != null) { mainDTO.Telefono = tel.Valore; if(!string.IsNullOrEmpty(tel.Descrizione)) mainDTO.Telefono += " (" + tel.Descrizione + ")"; } var cell = contatti.GetFirstContatto<Cellulare>(); if (cell != null) { mainDTO.Cellulare = cell.Valore; if (!string.IsNullOrEmpty(cell.Descrizione)) mainDTO.Cellulare += " (" + cell.Descrizione + ")"; } var mail = contatti.GetFirstContatto<Email>(); if (mail != null) { mainDTO.Email = mail.Valore; if (!string.IsNullOrEmpty(mail.Descrizione)) mainDTO.Email += " (" + mail.Descrizione + ")"; } var mailCertificata = contatti.GetFirstContatto<EmailCertificata>(); if (mailCertificata != null) { mainDTO.EmailCertificata = mailCertificata.Valore; if (!string.IsNullOrEmpty(mailCertificata.Descrizione)) mainDTO.EmailCertificata += " (" + mailCertificata.Descrizione + ")"; } var fax = contatti.GetFirstContatto<Fax>(); if (fax != null) { mainDTO.Fax = fax.Valore; if (!string.IsNullOrEmpty(fax.Descrizione)) mainDTO.Fax += " (" + fax.Descrizione + ")"; } // Dati condominio if (item.SoggettiCondominio.Count > 0) { SoggettoCondominio soggetto = null; if(item.SoggettiCondominio.Count(soggettoItem => soggettoItem.DataFine == null) == 1) soggetto = item.SoggettiCondominio.Where(soggettoItem => soggettoItem.DataFine == null).OrderBy(pers => pers.Tipo).FirstOrDefault(); if(soggetto == null) soggetto = item.SoggettiCondominio.OrderBy(soggettoItem => soggettoItem.Tipo).ThenByDescending(soggettoItem => soggettoItem.DataFine).ThenByDescending(soggettoItem => soggettoItem.DataInizio).ThenBy(soggettoItem => soggettoItem.UnitaImmobiliare.Ordine.GetValueOrDefault()).FirstOrDefault(); if(soggetto != null) { if (soggetto.UnitaImmobiliare != null) { if (tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo || dataRiferimento == null || soggetto.DataFine == null || soggetto.DataFine.GetValueOrDefault() > dataRiferimento.GetValueOrDefault()) { var dto = mainDTO.Clone() as PersonaContattoDTO; if (dto != null) { dto.IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID; dto.IdSoggetto = soggetto.ID; dto.DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione; dto.OrdineUnitaImmobiliare = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault(); dto.Interno = soggetto.UnitaImmobiliare.InternoCompleto; dto.TipoCondomino = soggetto.Tipo.ToString(); dto.TipoSoggetto = TipoNominativo.Condomino; dto.DescrizioneSoggetto = soggetto.DescrizioneAggiuntiva; dto.IsResidente = soggetto.IsResidente; dto.IsConsigliere = soggetto.Consigliere; dto.SoggettoAccorpamento = soggetto.GetDescrizioneAccorpamento(); dto.ModalitaConvocazione = soggetto.ModalitaConvocazione; dto.FoglioCatastale = soggetto.UnitaImmobiliare.FoglioCatastale; dto.Mappale = soggetto.UnitaImmobiliare.Mappale; dto.Subalterno = soggetto.UnitaImmobiliare.Subalterno; if(soggetto.FrazionePossesso != null) dto.Possesso = soggetto.FrazionePossesso.ToString(); if (soggetto.UnitaImmobiliare.GruppoStabileRiferimento != null) { dto.IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID; dto.DescrizioneGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione; dto.IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID; dto.DescrizioneStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione; dto.IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID; dto.DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName; } listaDto.Add(dto); } } } else { _log.WarnFormat("Attenzione presente soggetto condominio senza unità immobiliare - {0} - soggetto:{1} - persona:{2}", Utility.GetMethodDescription(), soggetto.ID, item.ID); } } } // Dati Fornitore if (item.Fornitori.Count > 0) { foreach (var fornitore in item.Fornitori) { var dto = mainDTO.Clone() as PersonaContattoDTO; if (dto != null) { dto.IdFornitore = fornitore.ID; dto.TipoFornitore = fornitore.Tipo?.Descrizione; dto.TipoSoggetto = TipoNominativo.Fornitore; listaDto.Add(dto); } } } // Dati Referente if (item.Referenti.Count > 0) { foreach (var dto in item.Referenti.Select(referente => mainDTO.Clone()).OfType<PersonaContattoDTO>()) { dto.TipoSoggetto = TipoNominativo.Referente; listaDto.Add(dto); } } if (listaDto.Count == 0 && tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo) { if (item.Attivita.Count == 0) mainDTO.IsDeleteAllow = true; mainDTO.TipoSoggetto = TipoNominativo.Contatto; listaDto.Add(mainDTO); } return listaDto; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento delle persone - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID); throw; } }
private PersonaDTO setDto(Persona item) { if(item != null) { var dto = new PersonaDTO { ID = item.ID, Abi = item.Abi, Cab = item.Cab, Cin = item.Cin, Iban = item.Iban, CodiceFiscale = item.CodiceFiscale, Cognome = item.Cognome, ContoCorrente = item.ContoCorrente, DataNascita = item.DataNascita, DisplayName = item.DisplayName, Nome = item.Nome, Note = item.Note, PartitaIva = item.PartitaIva, RagioneSociale = item.RagioneSociale, Sesso = item.Sesso, TipoPersona = item.TipoPersona, Titolo = item.Titolo, IndirizzoResidenza = item.IndirizzoResidenza != null ? _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza) : new AddressDTO(), Domicilio = item.Domicilio != null ? _locRep.GetAddressByDomainEntity(item.Domicilio) : new AddressDTO(), Recapito = item.Recapito != null ? _locRep.GetAddressByDomainEntity(item.Recapito) : new AddressDTO(), Username = item.DatiAutenticazione?.Username, Password = item.DatiAutenticazione?.Password, Version = item.Version }; if (!string.IsNullOrEmpty(item.IndirizzoResidenza?.Presso)) dto.DisplayName = $"{dto.DisplayName}{Environment.NewLine}c/o {item.IndirizzoResidenza.Presso}"; else if (!string.IsNullOrEmpty(item.Domicilio?.Presso)) dto.DisplayName = $"{dto.DisplayName}{Environment.NewLine}c/o {item.Domicilio.Presso}"; if (item.ComuneNascita != null) dto.ComuneNascita = _locRep.GetComuneByDomainEntity(item.ComuneNascita); if (item.AziendaID != null) dto.Azienda = item.AziendaID.Value; var contatti = new ContattoDTO[item.Contatti.Count]; var index = 0; foreach (var contatto in item.Contatti) { contatti[index] = getContattoRepository(item).GetByDomainEntity(contatto); index++; } dto.Contatti = contatti; foreach (var personaGruppo in item.Gruppi) dto.Gruppi.Add(personaGruppo.Gruppo.ID); return dto; } return new PersonaDTO(); }
public PersonaDTO GetByDomainEntity(Persona persona) { try { return setDto(persona); } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento delle persone - {0} - id:{1}", ex, Utility.GetMethodDescription(), persona.ID); throw; } }
public string LoadFornitori(string key, int idAzienda, string password) { string message = string.Empty; try { var databasePath = saveDatabase(key); var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var ds = new DataSet(); var fornitoriAdapter = new OleDbDataAdapter("SELECT * FROM Fornitori " + "ORDER BY Fornitori.F_RAG_SOC, Fornitori.F_TITOLARE", conn); fornitoriAdapter.Fill(ds, "Fornitori"); ds.Tables["Fornitori"].PrimaryKey = new[] { ds.Tables["Fornitori"].Columns["F_COD"] }; foreach (DataRow row in ds.Tables["Fornitori"].Rows) { try { // =========================== // Persona // =========================== Persona persona; var fornitore = _daoFactory.GetFornitoreDao().GetByCodiceImportazione(row["F_COD"].ToString().Trim(), azienda.ID); if (fornitore == null) { var tipoPersona = TipoPersonaEnum.Giuridica; if ((bool)row["F_PERSONA"]) tipoPersona = TipoPersonaEnum.Fisica; persona = new Persona(tipoPersona, string.Empty, row["F_TITOLARE"].ToString().Trim(), idAzienda, false); } else persona = fornitore.PersonaRiferimento; persona.RagioneSociale = row["F_RAG_SOC"].ToString().Trim(); if (persona.Nome != null && persona.Nome.Length > 50) persona.Nome = persona.Nome.Substring(0, 50); if (persona.Cognome != null && persona.Cognome.Length > 50) persona.Cognome = persona.Cognome.Substring(0, 50); if (persona.RagioneSociale != null && persona.RagioneSociale.Length > 100) persona.RagioneSociale = persona.RagioneSociale.Substring(0, 100); if (persona.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica && row["F_SESSO_PF"] != DBNull.Value) { if (row["F_SESSO_PF"].ToString().Trim() == "M") persona.Sesso = SessoEnum.Maschio; else if(row["F_SESSO_PF"].ToString().Trim() == "F") persona.Sesso = SessoEnum.Femmina; } if (row["F_COD_FISC"] != DBNull.Value && !string.IsNullOrEmpty(row["F_COD_FISC"].ToString().Trim())) persona.CodiceFiscale = row["F_COD_FISC"].ToString().Trim(); if (row["F_PIVA"] != DBNull.Value && !string.IsNullOrEmpty(row["F_PIVA"].ToString().Trim())) persona.PartitaIva = row["F_PIVA"].ToString().Trim(); if (row["F_NOTE"] != DBNull.Value && !string.IsNullOrEmpty(row["F_NOTE"].ToString().Trim())) persona.Note = row["F_NOTE"].ToString().Trim(); persona.IndirizzoResidenza = new Address(); if (row["F_LOCALITA"] != DBNull.Value && !string.IsNullOrEmpty(row["F_LOCALITA"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["F_LOCALITA"].ToString().Trim()); if (comuni.Count == 1) persona.IndirizzoResidenza.Comune = comuni[0]; else persona.IndirizzoResidenza.Localita = row["F_LOCALITA"].ToString(); } if(row["F_CAP"] != DBNull.Value) persona.IndirizzoResidenza.Cap = row["F_CAP"].ToString().Trim(); if (row["F_VIA"] != DBNull.Value) persona.IndirizzoResidenza.Indirizzo = row["F_VIA"].ToString().Trim(); if (row["F_LOCALITA_NASC"] != DBNull.Value && !string.IsNullOrEmpty(row["F_LOCALITA_NASC"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["F_LOCALITA_NASC"].ToString().Trim()); if (comuni.Count == 1) persona.ComuneNascita = comuni[0]; } if (row["F_DT_NASC"] != DBNull.Value && (DateTime)row["F_DT_NASC"] > new DateTime(1800, 1, 1) && (DateTime)row["F_DT_NASC"] < new DateTime(2050, 12, 31)) persona.DataNascita = (DateTime)row["F_DT_NASC"]; // --------- // Contatti // --------- persona.Contatti.Clear(); if (row["F_TEL"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_TEL"])) { var contatto = new Telefono(row["F_TEL"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["F_TELEFONINO"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_TELEFONINO"])) { var contatto = new Cellulare(row["F_TELEFONINO"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["F_EMAIL"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_EMAIL"])) { var contatto = new Email(row["F_EMAIL"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["F_FAX"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_FAX"])) { var contatto = new Fax(row["F_FAX"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } persona.CodiceImportazione = row["F_COD"].ToString().Trim(); // =========================== // Fornitore // =========================== if(fornitore == null) fornitore = new Fornitore(persona, idAzienda); if (row["F_ALQ_RIT_ACC"] != DBNull.Value) fornitore.AliquotaRitenutaAcconto = Convert.ToDecimal((float)row["F_ALQ_RIT_ACC"]) / 100m; if (row["F_ALQ_IVA"] != DBNull.Value) fornitore.AliquotaIva = row["F_ALQ_IVA"].ToString().Trim(); if (row["F_ALQ_CASSAP"] != DBNull.Value) fornitore.AliquotaCassaProfessionisti = Convert.ToDecimal((float)row["F_ALQ_CASSAP"]) / 100m; if (row["F_MAG_CASP_IVA"] != DBNull.Value && row["F_MAG_CASP_IVA"].ToString() == "B") fornitore.IsRitenutaCalcolataImponibile = true; if (row["F_TRIBUTO"] != DBNull.Value && !string.IsNullOrEmpty(row["F_TRIBUTO"].ToString().Trim())) fornitore.CodiceTributo = row["F_TRIBUTO"].ToString().Trim(); fornitore.CodiceImportazione = row["F_COD"].ToString().Trim(); fornitore.Qualita = new ValutazioneQualita(); if (row["F_TIPO_PAG"] != DBNull.Value && row["F_TIPO_PAG"].ToString() == "BON") fornitore.ModalitaPagamento = _daoFactory.GetModalitaPagamentoDao().GetById(4, false); if (row["F_TIPO_FORN"] != DBNull.Value) fornitore.Tipo = _daoFactory.GetTipoFornitoreDao().GetByCodice(row["F_TIPO_FORN"].ToString()); //----------------------------- // Banche //----------------------------- if (row["F_IBAN_COMPLETO"] != DBNull.Value || (row["F_ABI"] != DBNull.Value && row["F_CAB"] != DBNull.Value)) { if (row["F_IBAN_COMPLETO"] != DBNull.Value && !string.IsNullOrEmpty(row["F_IBAN_COMPLETO"].ToString())) { var coor = new CoordinateBancarie(); if (coor.CheckIBAN(row["F_IBAN_COMPLETO"].ToString().Trim().Replace(" ", ""))) { persona.Iban = row["F_IBAN_COMPLETO"].ToString().Trim().Replace(" ", ""); coor.SetIBAN(persona.Iban); persona.Abi = coor.Abi; persona.Cab = coor.Cab; persona.ContoCorrente = coor.ContoCorrente; persona.Cin = coor.Cin; } } else { var coor = new CoordinateBancarie { Abi = row["F_ABI"].ToString().Trim().PadLeft(5, '0'), Cab = row["F_CAB"].ToString().Trim().PadLeft(5, '0'), ContoCorrente = row["F_NR_CC"].ToString().Trim().PadLeft(12, '0') }; persona.Iban = coor.CalcolaIBAN(); } } _daoFactory.GetFornitoreDao().SaveOrUpdate(fornitore); } catch (Exception ex) { _log.Error("Errore inaspettato l'importazione di un fornitore da YStabili: " + Library.Utility.GetMethodDescription() + " (Fornitore) - idFornitore:" + row["F_COD"] + " - nome:" + row["F_RAG_SOC"] + " - cognome:" + row["F_TITOLARE"], ex); throw; } } } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
private IList<SoggettoCondominio> setSoggettiUnita(UnitaImmobiliare unita, ICollection<DataRow> condomini) { try { var soggetti = new List<SoggettoCondominio>(condomini.Count); foreach (var row in condomini) { // Persona // --------- var nomePersona = row["C_NOME"].ToString(); Persona persona = null; if(!string.IsNullOrEmpty(nomePersona) && _personeCondominio.ContainsKey(nomePersona)) persona = _personeCondominio[nomePersona]; if (persona == null) { var tipoPersona = row["C_TIT_ONOR"].ToString() == "1" ? TipoPersonaEnum.Giuridica : TipoPersonaEnum.Fisica; persona = new Persona(tipoPersona, string.Empty, nomePersona, unita.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.Azienda.ID, false) { IndirizzoResidenza = new Address { Indirizzo = row["C_VIA"].ToString(), Cap = row["C_CAP"].ToString() }, CodiceImportazione = row["C_COD_STA"] + "&" + row["C_COD_UNITA"] + "&" + row["C_COD_COND"] }; if (row["C_LOCALITA"] != DBNull.Value && !string.IsNullOrEmpty(row["C_LOCALITA"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["C_LOCALITA"].ToString().Trim()); if (comuni.Count == 1) persona.IndirizzoResidenza.Comune = comuni[0]; else persona.IndirizzoResidenza.Localita = row["C_LOCALITA"].ToString(); } if (row["C_NOTE"] != DBNull.Value && !string.IsNullOrEmpty(row["C_NOTE"].ToString())) persona.Note = row["C_NOTE"].ToString(); if (row["C_PRESSO"] != DBNull.Value && !string.IsNullOrEmpty(row["C_PRESSO"].ToString())) persona.IndirizzoResidenza.Presso = row["C_PRESSO"].ToString(); if (row["C_TEL"] != DBNull.Value && !string.IsNullOrEmpty(row["C_TEL"].ToString())) persona.Contatti.Add(new Telefono(row["C_TEL"].ToString(), true, persona)); if (row["C_TEL2"] != DBNull.Value && !string.IsNullOrEmpty(row["C_TEL"].ToString())) persona.Contatti.Add(new Telefono(row["C_TEL2"].ToString(), false, persona)); if (row["C_EMAIL"] != DBNull.Value && !string.IsNullOrEmpty(row["C_EMAIL"].ToString())) persona.Contatti.Add(new Email(row["C_EMAIL"].ToString(), true, persona)); if (row["C_EMAIL_CERT"] != DBNull.Value && !string.IsNullOrEmpty(row["C_EMAIL_CERT"].ToString())) persona.Contatti.Add(new EmailCertificata(row["C_EMAIL_CERT"].ToString(), false, persona)); if (row["C_CELLULARE"] != DBNull.Value && !string.IsNullOrEmpty(row["C_CELLULARE"].ToString())) persona.Contatti.Add(new Cellulare(row["C_CELLULARE"].ToString(), true, persona)); _daoFactory.GetPersonaDao().SaveOrUpdate(persona); _personeCondominio.Add(nomePersona, persona); } // Soggetto Condominio SoggettoCondominio soggetto; if (isConduttore(row)) { soggetto = new Conduttore(unita, persona) {PercentualeRiferimento = 100, Principale = true}; if (unita.Descrizione == "$proprietario1") unita.Descrizione += " - $conduttore1"; } else { soggetto = new Proprietario(unita, persona); if (row["C_TIPO_COND"].ToString() == "CONS") soggetto.Consigliere = true; if (row["C_PERC_POSS"].ToString() == "100") { soggetto.PercentualeRiferimento = 100; soggetto.Principale = true; } } soggetti.Add(soggetto); _daoFactory.GetSoggettoCondominioDao().SaveOrUpdate(soggetto); } return soggetti; } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili - " + Library.Utility.GetMethodDescription(), ex); throw; } }
private IList<SoggettoCondominio> setSoggettiUnita(UnitaImmobiliare unita, DataRow rowUnita, DataRow[] condomini, Dictionary<int, SoggettoCondominio> loadedSoggetti) { try { var soggetti = new List<SoggettoCondominio>(condomini.Length); foreach (var row in condomini) { // Persona // --------- string cognomePersona = row["NOME"].ToString().Trim(); if (!string.IsNullOrEmpty(cognomePersona)) { Persona persona = null; if (!string.IsNullOrEmpty(cognomePersona) && _personeCondominio.ContainsKey(cognomePersona)) persona = _personeCondominio[cognomePersona]; if (persona == null) { persona = new Persona(Sfera.Enums.TipoPersonaEnum.Fisica, string.Empty, cognomePersona, unita.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.Azienda.ID, false) { IndirizzoResidenza = new Address {Indirizzo = row["VIA"].ToString(), Cap = row["CAP"].ToString()} }; if (row["CODFISC"] != DBNull.Value && !string.IsNullOrEmpty(row["CODFISC"].ToString())) persona.CodiceFiscale = row["CODFISC"].ToString(); if (row["PIVA"] != DBNull.Value && !string.IsNullOrEmpty(row["PIVA"].ToString())) persona.PartitaIva = row["PIVA"].ToString(); if (row["TITOLO"] != DBNull.Value && !string.IsNullOrEmpty(row["TITOLO"].ToString())) persona.Titolo = row["TITOLO"].ToString(); persona.CodiceImportazione = row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["ESERCIZIO"] + "&" + row["CODPOS"]; if (row["LOC"] != DBNull.Value && !string.IsNullOrEmpty(row["LOC"].ToString())) { IList<Comune> comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["LOC"].ToString().Trim()); if (comuni.Count == 1) persona.IndirizzoResidenza.Comune = comuni[0]; else { DataRow row1 = row; var comuniDescr = comuni.Where(item => item.Descrizione.Trim().ToUpper() == row1["LOC"].ToString().Trim().ToUpper()).ToList(); int count = comuniDescr.Count(); if (count == 1) persona.IndirizzoResidenza.Comune = comuniDescr.SingleOrDefault(); } if (persona.IndirizzoResidenza.Comune == null) persona.IndirizzoResidenza.Localita = row["LOC"].ToString(); } if (row["TEL1"] != DBNull.Value && !string.IsNullOrEmpty(row["TEL1"].ToString().Trim())) persona.Contatti.Add(new Telefono(row["TEL1"].ToString(), true, persona)); if (row["TEL2"] != DBNull.Value && !string.IsNullOrEmpty(row["TEL2"].ToString().Trim())) persona.Contatti.Add(new Telefono(row["TEL2"].ToString(), false, persona)); if (row["E-MAIL"] != DBNull.Value && !string.IsNullOrEmpty(row["E-MAIL"].ToString().Trim())) persona.Contatti.Add(new Email(row["E-MAIL"].ToString(), true, persona)); _daoFactory.GetPersonaDao().SaveOrUpdate(persona); _personeCondominio.Add(cognomePersona, persona); } // Soggetto Condominio SoggettoCondominio soggetto; if (isConduttore(row)) { soggetto = new Conduttore(unita, persona) {PercentualeRiferimento = 100, Principale = true}; if (unita.Descrizione == "$proprietario1") unita.Descrizione += " - $conduttore1"; } else soggetto = new Proprietario(unita, persona); soggetti.Add(soggetto); int progressivoSoggetto = Convert.ToInt32(rowUnita["CODPOS"]); if (progressivoSoggetto == Convert.ToInt32(rowUnita["RAGRUP1"])) { if (!loadedSoggetti.ContainsKey(progressivoSoggetto)) loadedSoggetti.Add(progressivoSoggetto, soggetto); } else if (loadedSoggetti.ContainsKey(progressivoSoggetto)) soggetto.SoggettoPrincipale = loadedSoggetti[progressivoSoggetto]; _daoFactory.GetSoggettoCondominioDao().SaveOrUpdate(soggetto); } } if (unita.Proprietari.Count == 0) { var codRagrup = Convert.ToInt32(rowUnita["RAGRUP1"]); if (codRagrup < 8100 && loadedSoggetti.ContainsKey(codRagrup)) { var personaProp = loadedSoggetti[codRagrup].Persona; var prop = new Proprietario(unita, personaProp) {PercentualeRiferimento = 1, Principale = true}; _daoFactory.GetSoggettoCondominioDao().SaveOrUpdate(prop); } } return soggetti; } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription(), ex); throw; } }
public PersonaDTO GetNew(TipoPersonaEnum tipo, int idAzienda) { try { var persona = new Persona(tipo, null, null, idAzienda, true); return setDto(persona); } catch (Exception ex) { _log.ErrorFormat("Errore nella creazione di una nuova Persona - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
private string getNominativoPresso(Persona persona, SoggettoCondominio soggetto, Address indirizzo) { try { var nominativo = persona.DisplayName; try { if (!string.IsNullOrEmpty(soggetto?.Descrizione)) nominativo = soggetto.Descrizione; } catch (Exception ex) { _log.ErrorFormat("Errore nell'individuazione del nominativo completo di presso - DESCRIZIONE - {0} - persona:{1} - soggetto:{2}", ex, Utility.GetMethodDescription(), persona.ID.ToString(), soggetto?.ID.ToString() ?? "<NULL>"); } if (!string.IsNullOrEmpty(indirizzo?.Presso)) nominativo += $"{Environment.NewLine}c/o {indirizzo.Presso}"; return nominativo; } catch (Exception ex) { _log.ErrorFormat("Errore nell'individuazione del nominativo completo di presso - {0} - persona:{1} - soggetto:{2}", ex, Utility.GetMethodDescription(), persona?.ID.ToString() ?? "<NULL>", soggetto?.ID.ToString() ?? "<NULL>"); return string.Empty; } }
public IList<RisultatoInvioMessaggio> InvioMessaggio(int idAzienda, PersonaMessaggioDTO personaMessaggioDTO, Condominio condominio, int? idUnitaImmobiliare, int? idFornitore, int? idResponsabile, int? idIncaricatoAttivita, MotivoMessaggio motivoMessaggio, string oggetto, string testo, IList<string> destinatari, string mittente, string emailRapportino, IList<DocumentInfo> allegati, ParametriInvioLettera parametriInvioLettera) { // ========================================================= // Disabilito l'invio asincrono per problemi di gestione con Sertea // diversi messaggi non sono stati inviati bugid#3823 // ========================================================= parametriInvioLettera.Asincrono = false; var message = string.Empty; var invioRiuscito = false; Persona persona = null; if(personaMessaggioDTO != null) persona = _daoFactory.GetPersonaDao().Find(personaMessaggioDTO.ID, false); _persona = persona; _condominio = condominio; _motivoMessaggio = motivoMessaggio; _oggetto = oggetto; _testo = testo; _destinatari = destinatari; _mittente = mittente; _emailRapportino = emailRapportino; var results = new List<RisultatoInvioMessaggio>(); var result = new eMessageResultSendSMS(); try { var destinatariSend = new List<string>(); if (destinatari.Count > 0 && !destinatari.All(string.IsNullOrEmpty)) { foreach (var item in destinatari) { if (!string.IsNullOrEmpty(item)) { if (!item.Trim().StartsWith("+39")) destinatariSend.Add("+39" + Library.Conversione.ToPhoneNumber(item)); else destinatariSend.Add(Library.Conversione.ToPhoneNumber(item)); } } if (destinatariSend.Any()) { // ===================================== // Applico la stampa unione // ===================================== if (personaMessaggioDTO != null) { int? idCondominio = null; if (condominio != null) idCondominio = condominio.ID; var parametri = new ParametriStampaUnione(persona.ID, idUnitaImmobiliare, idResponsabile, idIncaricatoAttivita, idFornitore, idCondominio, null, personaMessaggioDTO.TipoIndirizzo, personaMessaggioDTO.Importo, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); oggetto = _messagisticaService.ApplicaStampaUnione(oggetto, parametri, idAzienda); testo = _messagisticaService.ApplicaStampaUnione(testo, parametri, idAzienda); } // ===================================== // Invio Messaggio // ===================================== var credenziali = _configurationService.GetLoginInfo(idAzienda); if (credenziali != null && !string.IsNullOrEmpty(credenziali.Value.Utente) && !string.IsNullOrEmpty(credenziali.Value.Password)) { var userService = new it.emessage.users.Users(); var success = false; try { var resultUsers = userService.Login(credenziali.Value.Utente, credenziali.Value.Password, null); success = resultUsers.success; } catch (Exception ex) { _log.WarnFormat("Errore durante il controllo delle credenziali - {0} - username:{1} - password:{2} - azienda:{3}", ex, Library.Utility.GetMethodDescription(), credenziali.Value.Utente, credenziali.Value.Password, idAzienda); } if (success) { var service = new Sms {Timeout = 999999999}; var identificazioneMittente = _configurationService.GetIdentificazioneMittente(idAzienda, TipoMessaggio.Sms, TipoIndirizzo.Recapito); if (!string.IsNullOrEmpty(identificazioneMittente.Email)) emailRapportino += "," + identificazioneMittente.Email; // Mittente if (string.IsNullOrEmpty(mittente)) mittente = identificazioneMittente.Nome; if (!string.IsNullOrEmpty(mittente) && mittente.Length > 11) mittente = mittente.Substring(0, 11); if (ConfigurationManager.AppSettings["IsTest"] != null && bool.Parse(ConfigurationManager.AppSettings["IsTest"])) destinatariSend = new List<string> {"+393382958239"}; var parameters = new List<OptionalParameters> { new OptionalParameters { ParameterName = "NotificationEmail", ParameterValue = emailRapportino }, new OptionalParameters { ParameterName = "DeliveryTime", ParameterValue = DateTime.Now.ToString() } }; // --------------------------------------- // Invio NON Asincrono // --------------------------------------- if (!parametriInvioLettera.Asincrono) { if (motivoMessaggio != MotivoMessaggio.ScadenzaContratto) { try { if (string.IsNullOrEmpty(parametriInvioLettera.Tipo)) parametriInvioLettera.Tipo = "NORMAL"; result = service.Send(credenziali.Value.Utente, credenziali.Value.Password, mittente, destinatariSend.ToArray(), testo, parametriInvioLettera.Tipo, parameters.ToArray()); } catch (Exception ex) { _log.FatalFormat("Errore inaspettato durante l'invio del sms - INVIO DIRETTO - {0} - oggetto:{1} - destinatari:{2} - testo:{3} - azienda:{4} - tipo:{5} - parameters:{6} - mittente:{7} - utente:{8}", ex, Library.Utility.GetMethodDescription(), oggetto, destinatariSend.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), testo, idAzienda, parametriInvioLettera.Tipo, parameters.Aggregate(string.Empty, (current, param) => current + (param + ", ")), mittente, credenziali.Value.Utente); throw; } } _log.InfoFormat("Risultato invio sms:{0} - destinatario:{1} - azienda:{2}", result, destinatariSend.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), idAzienda); if (result != null) { message += result; if (result.success) invioRiuscito = true; } } // --------------------------------------- // Invio Asincrono // --------------------------------------- else { try { service.SendCompleted += serviceSendCompleted; service.SendAsync(credenziali.Value.Utente, credenziali.Value.Password, mittente, destinatariSend.ToArray(), testo, parametriInvioLettera.Tipo, parameters.ToArray()); } catch (Exception ex) { _log.FatalFormat("Errore inaspettato durante l'invio del sms - INVIO ASINCRONO - {0} - oggetto:{1} - destinatari:{2} - testo:{3} - azienda:{4} - tipo:{5} - parameters:{6} - mittente:{7} - utente:{8}", ex, Library.Utility.GetMethodDescription(), oggetto, destinatariSend.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), testo, idAzienda, parametriInvioLettera.Tipo, parameters.Aggregate(string.Empty, (current, param) => current + (param + ", ")), mittente, credenziali.Value.Utente); throw; } // Se invio asincrono suppongo sia andato a buon fine invioRiuscito = true; results.Add(new RisultatoInvioMessaggio("N.D.", "N.D.", true, "Tutti gli sms sono stati accodati per l'invio", new DocumentInfo())); } if (invioRiuscito) { // ===================================== // Controllo rapportino // ===================================== if (parametriInvioLettera.Tipo == "NOTIFICATION") { // Crea un trigger che parte tra 10 minuti e ogni minuto per 30 volte controlla le mail in arrivo. Trigger trigger = new PeriodicTrigger(DateTime.UtcNow.AddSeconds(10), null, TimeSpan.FromMinutes(1), 30); var jobSpec = new JobSpec("Controllo rapportino", "Verifica e salvataggio email contenente rapportino di conferma di invio SMS", "ConfermaRicezioneMessaggio", trigger); _scheduler.CreateJob(jobSpec, CreateJobConflictAction.Replace); _scheduler.Start(); } } } else { _log.WarnFormat("Credenziali non valide - {0} - username:{1} - password:{2} - azienda:{3}", Library.Utility.GetMethodDescription(), credenziali.Value.Utente, credenziali.Value.Password, idAzienda); } } else { _log.FatalFormat("Errore inaspettato durante l'invio del sms. NON sono presenti le credenziali per l'invio del sms - {0} - oggetto:{1} - destinatari:{2} - azienda:{3}", Library.Utility.GetMethodDescription(), oggetto, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), idAzienda); message = "KO - Non sono definite le credenziali per l'invio dei sms"; } } else { _log.WarnFormat("Errore inaspettato durante l'invio del sms. NON è definito nessun destinatario - {0} - oggetto:{1} - destinatari:{2} - azienda:{3}", Library.Utility.GetMethodDescription(), oggetto, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), idAzienda); message = "KO - Non è definito nessun destinatario"; } } else { _log.WarnFormat("Errore inaspettato durante l'invio del sms. NON è definito nessun destinatario - {0} - oggetto:{1} - destinatari:{2} - azienda:{3}", Library.Utility.GetMethodDescription(), oggetto, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), idAzienda); message = "KO - Non è definito nessun destinatario"; } } catch (Exception ex) { invioRiuscito = false; _log.ErrorFormat("Errore inaspettato durante l'invio del sms - {0} - oggetto:{1} - destinatari:{2} - azienda:{3}", ex, Library.Utility.GetMethodDescription(), oggetto, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), idAzienda); message = "KO - Errore inaspettato durante l'invio del sms"; } // =================================================================== // Storicizzazione dei messaggi solo se l'invio non è stato asicrono // =================================================================== if (!parametriInvioLettera.Asincrono && motivoMessaggio != MotivoMessaggio.ScadenzaContratto && invioRiuscito) { results = elaboraResult(result, results); } else { if(!invioRiuscito) results.Add(new RisultatoInvioMessaggio("KO", null, false, message, new DocumentInfo())); } return results; }