예제 #1
0
        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;
            }

        }
예제 #2
0
        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;
            }
        }
예제 #3
0
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _personaClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _rowClick = DataGridHelper.GetCellEvent(lista, e);
         _personaClick = DataGridHelper.GetCellEvent<PersonaContattoDTO>(lista, e);
         if (_personaClick != null)
             contextMenuStrip1.Show(lista, e.X, e.Y);
     }
 }
예제 #4
0
 private void apriDettaglioPersona(PersonaContattoDTO persona)
 {
     if (persona != null)
     {
         if (persona.TipoSoggetto == TipoNominativo.Fornitore)
         {
             try
             {
                 var form = getDettaglioFornitoreService().GetFormDettaglio(persona.IdFornitore);
                 if (form != null)
                 {
                     getDettaglioFornitoreService().AfterUpdateFornitore -= listaPersoneUCAfterUpdateFornitore;
                     getDettaglioFornitoreService().AfterUpdateFornitore += listaPersoneUCAfterUpdateFornitore;
                     form.ShowDialog();
                     form.Dispose();
                 }
             }
             catch (Exception ex)
             {
                 _log.ErrorFormat("Errore nell'apertura del dettaglio - FORNITORE - {0} - persona:{1}", ex, Utility.GetMethodDescription(), persona.ID);
             }
         }
         else if (persona.ID > 0)
         {
             var form = getDettaglioPersonaService().GetFormDettaglio(persona.ID);
             if (form != null)
             {
                 try
                 {
                     getDettaglioPersonaService().AfterUpdatePersona -= listaPersoneUCAfterUpdatePersona;
                     getDettaglioPersonaService().AfterUpdatePersona += listaPersoneUCAfterUpdatePersona;
                     form.ShowDialog();
                     form.Dispose();
                 }
                 catch (Exception ex)
                 {
                     _log.ErrorFormat("Errore nell'apertura del dettaglio- PERSONA - {0} - persona:{1}", ex, Utility.GetMethodDescription(), persona.ID);
                 }
             }
         }
    }
 }
예제 #5
0
        public PersonaComunicazioneDTO ConvertPersonaPerEtichette(PersonaContattoDTO persona)
        {
            var personaLista = new PersonaComunicazioneDTO
            { 
                Nominativo = persona.Cognome, 
                ID = persona.ID, 
                Note = persona.Note,
                ViaCivico = persona.ViaCivico,
                Cap = persona.Cap,
                Comune = persona.Comune,
                Localita = persona.Localita,
                Presso = persona.Presso,
                Gruppi = persona.Gruppi,
                Possesso = persona.Possesso,
                Indirizzo = persona.Indirizzo,
                SoggettoAccorpamento = persona.SoggettoAccorpamento,
                Titolo = Decodifica.Instance.GetElement("TitoloPersona", persona.Titolo).Descrizione
            };

            if (!string.IsNullOrEmpty(persona.TipoCondomino))
                personaLista.Tipo = (TipoSoggetto)Enum.Parse(typeof(TipoSoggetto), persona.TipoCondomino);

            if (!string.IsNullOrEmpty(persona.Nome))
                personaLista.Nominativo += " " + persona.Nome;

            return personaLista;
        }