Example #1
0
        /// <summary>
        /// Crea una Persona valida
        /// </summary>
        public Persona(TipoPersonaEnum? tipoPersona, string nome, string cognome, int? aziendaID, bool insertContatti)
        {
            TipoPersona = tipoPersona;
            AziendaID = aziendaID;
            Nome = nome;
            Cognome = cognome;

            IndirizzoResidenza = new Address();

            // Contatti di default
            if (aziendaID != null && tipoPersona != TipoPersonaEnum.Undefined && insertContatti)
            {
                Contatti.Add(new Telefono(string.Empty, true, this));
                Contatti.Add(new Email(string.Empty, true, this));
                Contatti.Add(new Cellulare(string.Empty, true, this));
            }
        }
Example #2
0
        /// <summary>
        /// Crea uno Stabile valido
        /// </summary>
        public Palazzina(Condominio condominioRiferimento, string descrizione, bool insertGruppo)
        {
            _descrizione = descrizione;
            _condominioRiferimento = condominioRiferimento;
            if (condominioRiferimento != null)
            {
                // Scala di default
                GruppoStabile gruppoDefault;
                if(insertGruppo)
                    gruppoDefault = new GruppoStabile(this, "Scala A");

                if (condominioRiferimento.Indirizzo != null)
                    Indirizzo = (Address)condominioRiferimento.Indirizzo.Clone();
                else
                    Indirizzo = new Address();
                condominioRiferimento.Palazzine.Add(this);
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
        private AddressDTO setDto(Address item)
        {
            var dto = new AddressDTO();
            if (item != null)
            {
                dto.Cap = item.Cap;
                dto.Civico = item.Civico;
                if (item.Comune != null)
                {
                    dto.CodiceProvincia = item.Comune.ProvinciaAppartenenza.Codice;
                    dto.DescrizioneComune = item.Comune.Descrizione;
                    dto.CodiceComune = item.Comune.Codice;
                }
                //dto.Comune = setComuneDto(indirizzo.Comune);
                dto.Indirizzo = item.Indirizzo;
                dto.Presso = item.Presso;
                dto.Localita = item.Localita;
                dto.Presso = item.Presso;
                dto.DisplayName = item.GetIndirizzoCompleto();
                dto.LongDisplayName = item.LongDiplayName;
                if (item.Nazione != null)
                    dto.Nazione = item.Nazione.Descrizione;
            }

            return dto;
        }
Example #5
0
 public AddressDTO GetAddressByDomainEntity(Address indirizzo)
 {
     try
     {
         return setDto(indirizzo);
     }
     catch (Exception ex)
     {
         
         _log.Error("Errore nel caricamento degli indirizzi - " + Library.Utility.GetMethodDescription(), ex);
         throw;
     }
 }
Example #6
0
        public GestioneCondomini.Domain.Persona SetNew(PersonaDTO personaDto)
        {
            var persona = new GestioneCondomini.Domain.Persona(personaDto.TipoPersona, personaDto.Nome, personaDto.Cognome, personaDto.Azienda, true)
            {
                Abi = personaDto.Abi,
                Cab = personaDto.Cab,
                Cin = personaDto.Cin,
                CodiceFiscale = personaDto.CodiceFiscale,
                ContoCorrente = personaDto.ContoCorrente,
                DataNascita = personaDto.DataNascita,
                Iban = personaDto.Iban,
                Note = personaDto.Note,
                PartitaIva = personaDto.PartitaIva,
                RagioneSociale = personaDto.RagioneSociale,
                Sesso = personaDto.Sesso,
                Titolo = personaDto.Titolo
            };

            if (personaDto.ComuneNascita != null)
                persona.ComuneNascita = _daoFactory.GetComuneDao().GetById(personaDto.ComuneNascita.ID, false);

            // Indirizzo
            if (personaDto.IndirizzoResidenza != null)
            {
                var indirizzoResidenza = new Address
                {
                    Cap = personaDto.IndirizzoResidenza.Cap,
                    Civico = personaDto.IndirizzoResidenza.Civico,
                    Indirizzo = personaDto.IndirizzoResidenza.Indirizzo,
                    Localita = personaDto.IndirizzoResidenza.Localita
                };
                persona.IndirizzoResidenza = indirizzoResidenza;
                if (!string.IsNullOrEmpty(personaDto.IndirizzoResidenza.CodiceComune))
                    indirizzoResidenza.Comune = _daoFactory.GetComuneDao().GetById(personaDto.IndirizzoResidenza.CodiceComune, false);

            }

            // Contatti
            if (personaDto.Contatti != null)
            {
                foreach (var t in personaDto.Contatti)
                {
                    Contatto contatto;
                    switch (t.TipoContatto)
                    { 
                        case "Email":
                            contatto = new Email(t.Valore, t.Predefinito, persona);
                            break;

                        case "Telefono":
                            contatto = new Telefono(t.Valore, t.Predefinito, persona);
                            break;

                        case "Fax":
                            contatto = new Fax(t.Valore, t.Predefinito, persona);
                            break;

                        case "Cellulare":
                            contatto = new Cellulare(t.Valore, t.Predefinito, persona);
                            break;

                        case "EmailCertificata":
                            contatto = new EmailCertificata(t.Valore, t.Predefinito, persona);
                            break;

                        case "WWW":
                            contatto = new SitoInternet(t.Valore, t.Predefinito, persona);
                            break;

                        default:
                            contatto = new Email(t.Valore, t.Predefinito, persona);
                            break;
                    }

                    contatto.Descrizione = t.Descrizione;

                    persona.Contatti.Add(contatto);
                }
            }

            // Unità Immobiliari
            var unitaImmobiliari = _daoFactory.GetUnitaImmobiliareDao().GetByPersona(persona.ID);
            foreach (var unitaImmobiliare in unitaImmobiliari)
            {
                unitaImmobiliare.Descrizione = _daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare);
            }

            _daoFactory.GetPersonaDao().SaveOrUpdate(persona);

            // Dati autenticazione (solo ora perchè necessita dell'ID)
            SetDatiAutenticazione(persona); 

            return persona;
        }
Example #7
0
        private bool update(CondominioDTO dto, out Condominio item)
        {
            var result = false;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = daoFactory.GetCondominioDao().GetById(dto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (dto.Version == item.Version || true)
                {
                    item.Codice = dto.Codice;
                    item.CodiceFiscale = dto.CodiceFiscale;
                    item.Descrizione = dto.Descrizione;

                    #region Indirizzo

                    var indirizzo = new Address();
                    if (item.Indirizzo == null)
                        item.Indirizzo = indirizzo;
                    else
                        indirizzo = item.Indirizzo;

                    indirizzo.Indirizzo = dto.Indirizzo.Indirizzo;

                    var civico = dto.Indirizzo.Civico;
                    if (!string.IsNullOrEmpty(civico) && civico.Length > 200)
                        civico = civico.Substring(0, 200);
                    indirizzo.Civico = civico;

                    indirizzo.Cap = dto.Indirizzo.Cap;
                    indirizzo.Localita = dto.Indirizzo.Localita;
                    if (dto.Indirizzo.CodiceComune != null)
                        indirizzo.Comune = daoFactory.GetComuneDao().GetById(dto.Indirizzo.CodiceComune, false);
                    else
                        indirizzo.Comune = null;

                    // Georeferenziazione- Solo se l'indirizzo è cambiato
                    var geoAddress = item.Indirizzo.GetGeoLocationAddress();
                    if (item.GeoReferenziazione == null || (geoAddress != item.GeoReferenziazione.AddressUsed))
                    {
                        var geoLocationService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IGeoLocationService>();
                        var latLong = geoLocationService.GetLatLong(geoAddress);
                        if (latLong != null)
                        {
                            if (item.GeoReferenziazione == null)
                                item.GeoReferenziazione = new GeoReference();
                            item.GeoReferenziazione.AddedDate = DateTime.Now;
                            item.GeoReferenziazione.AddressUsed = geoAddress;
                            item.GeoReferenziazione.Latitude = latLong.Value.Latitude;
                            item.GeoReferenziazione.Longitude = latLong.Value.Longitude;

                            if (item.GeoReferenziazione.AddressUsed.Length > 256)
                                item.GeoReferenziazione.AddressUsed = item.GeoReferenziazione.AddressUsed.Substring(0, 256);
                        }
                    }

                    #endregion Indirizzo

                    item.NumeroUnitaImmobiliari = dto.UnitaImmobiliari;
                    item.FoglioCatastale = dto.FoglioCatastale;
                    item.MappaleCatastale = dto.MappaleCatastale;
                    item.GiornoAssemblea = dto.GiornoAssemblea;
                    item.MeseAssemblea = dto.MeseAssemblea;
                    item.LuogoAssemblea = dto.LuogoAssemblea;
                    item.CodiceSIA = dto.CodiceSIA;
                    item.CodiceCUC = dto.CodiceCUC;
                    item.Note = dto.Note;
                    item.FormatoDescrizioneSpesa = dto.FormatoDescrizioneSpesa;
                    item.FormatoDescrizioneMovimento = dto.FormatoDescrizioneMovimento;
                    item.DescrizioneSpeseAutomatica = dto.DescrizioneSpeseAutomatica;
                    item.IsAbilitataArchiviazioneOtticaPassivi = dto.IsAbilitataArchiviazioneOtticaPassivi;
                    item.IsAbilitataArchiviazioneOtticaContratti = dto.IsAbilitataArchiviazioneOtticaContratti;
                    item.CodiceCalcoloTariffaAcqua = dto.CodiceCalcoloTariffaAcqua;
                    item.CodiceImportazione = dto.CodiceImportazione;
                    item.TipoVersamentoDopoChiusura = dto.TipoVersamentoDopoChiusura;
                    item.TipoVersamentoPrimaApertura = dto.TipoVersamentoPrimaApertura;
                    item.TemplateDescrizioneUnitaImmobiliare = dto.TemplateDescrizioneUnitaImmobiliare;

                    if (string.IsNullOrEmpty(item.TemplateDescrizioneUnitaImmobiliare))
                    {
                        var impostazioni = item.Azienda.Impostazioni.FirstOrDefault();
                        if (impostazioni != null)
                            item.TemplateDescrizioneUnitaImmobiliare = impostazioni.TemplateDescrizioneUnitaImmobiliare;
                    }

                    item.IsSupercondominio = dto.IsSupercondominio;

                    #region Dati Esercizio

                    item.GiornoChiusuraEsercizioOrdinario = dto.GiornoChiusuraEsercizioOrdinario;
                    item.MeseChiusuraEsercizioOrdinario = dto.MeseChiusuraEsercizioOrdinario;
                    item.AnnoInizio = dto.AnnoInizio;

                    #endregion Dati Esercizio

                    // ------------------------------------------------------
                    // Responsabile
                    // ------------------------------------------------------
                    if (dto.IdResponsabile > 0)
                        item.Responsabile = daoFactory.GetReferenteDao().GetById(dto.IdResponsabile.GetValueOrDefault(), false);

                    // ------------------------------------------------------
                    // Responsabile Contabilita
                    // ------------------------------------------------------
                    if (dto.IdResponsabileContabilita > 0)
                        item.ResponsabileContabilita = daoFactory.GetReferenteDao().Find(dto.IdResponsabileContabilita.GetValueOrDefault(), false);

                    // ------------------------------------------------------
                    // Responsabili Assemblea
                    // ------------------------------------------------------
                    item.ResponsabiliAssemblea.Clear();
                    foreach (var idResponsabileAssemblea in dto.IdResponsabiliAssemblea)
                    {
                        var responsabile = daoFactory.GetReferenteDao().Find(idResponsabileAssemblea, false);
                        if(responsabile != null)
                            item.ResponsabiliAssemblea.Add(responsabile);
                    }

                    // ------------------------------------------------------
                    // Soggetto che presenta la parte della dichiarazione relativa ai contributi del dipendente
                    // ------------------------------------------------------
                    item.FornitoreDichiarazione770 = dto.IdFornitoreDichiarazione770 > 0 ? daoFactory.GetFornitoreDao().Find(dto.IdFornitoreDichiarazione770.GetValueOrDefault(), false) : null;

                    // ------------------------------------------------------
                    // Dati Bancari
                    // ------------------------------------------------------
                    item.DatiBancari.Clear();
                    foreach (var t in dto.DatiBancari)
                    {
                        t.IdCondominio = item.ID;
                        DatiBancariCondomini dbc = null;
                        if ((t.Stato == "U") || (t.Stato == "I") || (t.Stato == "D"))
                            dbc = getDatiBancariRepository().ManageDomainEntity(t);

                        if (dbc != null)
                        {
                            item.DatiBancari.Add(dbc);
                            dbc.CondominioRiferimento = item;
                        }
                    }
                    
                    _log.InfoFormat("Aggiornato condominio - id:{0} - codice:{1}", dto.ID, dto.Codice);
                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    
                    _log.ErrorFormat("Errore nel salvataggio del condominio: id:{0} - il dato sul db è più recente di quello che si vuole salvare", dto.ID);
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del condominio - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID);
                throw;
            }

            return result;
        }
Example #8
0
        private CBIPostalAddress6 getPostalAddress6(Address indirizzo)
        {
            var postalAddress = new CBIPostalAddress6 {AddressType = AddressType2Code.ADDR};
            if (indirizzo != null)
            {
                var indirizzoCompleto = indirizzo.DisplayNameArray;
                if(!string.IsNullOrEmpty(indirizzoCompleto[0].TrimForSepa()))
                    postalAddress.AddressLine = new List<string> { indirizzoCompleto[0].TrimForSepa(), $"{indirizzoCompleto[1].TrimForSepa()} IT" };
            }

            return postalAddress;
        }
Example #9
0
        private Address getIndirizzoFiscale(DataRow row, OleDbConnection conn)
        {
            var indirizzo = new Address
            {
                Indirizzo = row["IndirizzoFisc"].ToString(),
                Cap = row["CAPFisc"].ToString(),
                Localita = row["LocalitàFisc"].ToString(),
                Comune = getCodiceComuneById((int) row["idComuneFisc"], conn)
            };

            return indirizzo;
        }
Example #10
0
        private Address getIndirizzo(DataRow row)
        {
            var indirizzo = new Address();

            var via = row["Indirizzo"].ToString().Trim();
            if (via.Length > 256)
                via = via.Substring(0, 256);
            indirizzo.Indirizzo = via;
            
            if (row.Table.Columns.Contains("CAP"))
                indirizzo.Cap = row["CAP"].ToString();
            else if (row.Table.Columns.Contains("TabFornitori.CAP"))
                indirizzo.Cap = row["TabFornitori.CAP"].ToString();

            var localita = row["Località"].ToString().Trim();
            if (localita.Length > 256)
                localita = localita.Substring(0, 256);
            indirizzo.Localita = localita;

            var codiceComune = getCodiceComuneByNome(row["TabCodComune.Nome"].ToString());
            if(!string.IsNullOrEmpty(codiceComune))
                indirizzo.Comune = _daoFactory.GetComuneDao().GetById(codiceComune, false);

            if (row.Table.Columns.Contains("NumeroCivico"))
            {
                var civico = row["NumeroCivico"].ToString().Trim();
                if(civico.Length > 20)
                    civico = civico.Substring(0, 20);
                indirizzo.Civico = civico;
            }

            return indirizzo;
        }
Example #11
0
		/// <summary>
		/// Crea un Condominio valido
		/// </summary>
		public Condominio(string descrizione, int giornoChiusuraEsercizio, int meseChiusuraEsercizio, int annoInizio, Azienda azienda)
		{
			_isDirty = true;
			_descrizione = descrizione;
			_azienda = azienda;
			GiornoChiusuraEsercizioOrdinario = giornoChiusuraEsercizio;
			MeseChiusuraEsercizioOrdinario = meseChiusuraEsercizio;
			AnnoInizio = annoInizio;
		    Indirizzo = new Address {Indirizzo = string.Empty};
		    FormatoDescrizioneSpesa = "<sottoconto>";

			// Default
            if (_azienda != null)
            {
                var stabileDefault = new Palazzina(this, "Stabile A");
            }
		}
Example #12
0
        public object Clone()
        {
            Address newAddress = new Address();
            newAddress.Indirizzo = Indirizzo;
            newAddress.Civico = Civico;
            newAddress.Localita = Localita;
            newAddress.Comune = Comune;
            newAddress.Cap = Cap;

            return newAddress;
        }