Exemple #1
0
 /// <summary>
 /// Crea un invio Messaggio valido
 /// </summary>
 public MessaggioInvio(string descrizione, string checkSumFile, Referente referente, Azienda azienda)
 {
     Descrizione = descrizione;
     CheckSumFile = checkSumFile;
     Referente = referente;
     Azienda = azienda;
     Stato = StatoInvioMessaggio.Inserito;
 }
Exemple #2
0
        /// <summary>
        /// Crea un Alert attività valido
        /// </summary>
        public AlertAttivita(NotifyType tipoAvviso, Referente destinatario, Attivita attivita)
        {
            TipoAvviso = tipoAvviso;
            Destinatario = destinatario;
            Attivita = attivita;

            if (Attivita != null)
                Attivita.Alert.Add(this);
        }
Exemple #3
0
		/// <summary>
        /// Crea una Attività valida
        /// </summary>
        public Attivita(Pratica praticaRiferimento, Referente responsabileRiferimento, Referente incaricato, DateTime? dataFinePrevista, int aziendaID)
        {
            PraticaRiferimento = praticaRiferimento;
            ResponsabileRiferimento = responsabileRiferimento;
            AziendaID = aziendaID;
            Incaricato = incaricato;
			DataFinePrevista = dataFinePrevista;
		    AlertScadenzaAbilitato = true;
            if(PraticaRiferimento != null)
                PraticaRiferimento.Attivita.Add(this);
        }
Exemple #4
0
        public virtual IUpdatableBusinessEntity Copy()
        {
            var newPersona = (Persona)PersonaRiferimento.Copy();
            var referente = new Referente(string.Empty, newPersona, Azienda);

            return referente;
        }
 private static TipoReferenteExport GetTipoReferente(Referente referente)
 {
     if (referente.Azienda.ResponsabileDinamico != null && referente.ID == referente.Azienda.ResponsabileDinamico.ID)
         return TipoReferenteExport.ResponsabileAzienda;
     else if (referente.Azienda.ResponsabileDinamicoAssicurazioni != null && referente.ID == referente.Azienda.ResponsabileDinamicoAssicurazioni.ID)
         return TipoReferenteExport.ResponsabileAssicurazioni;
     else if (referente.Azienda.ResponsabileDinamicoPremiAssicurativi != null && referente.ID == referente.Azienda.ResponsabileDinamicoPremiAssicurativi.ID)
         return TipoReferenteExport.ResponsabilePremiAssicuartivi;
     else if (referente.Azienda.ResponsabileDinamicoIncaricatoAttivita != null && referente.ID == referente.Azienda.ResponsabileDinamicoIncaricatoAttivita.ID)
         return TipoReferenteExport.ResponsabileAttivita;
     else if (referente.Azienda.ResponsabileDinamicoCondominio != null && referente.ID == referente.Azienda.ResponsabileDinamicoCondominio.ID)
     {
         return TipoReferenteExport.ResponsabileCondominio;
     }
     else
         return TipoReferenteExport.ResponsabileCondominio;
 }
 public ReferenteDTO GetByDomainEntity(Referente referente)
 {
     try
     {
         return setDto(referente);
     }
     catch (Exception ex)
     {
         
         _log.Error("Errore nel caricamento dei referenti - " + Library.Utility.GetMethodDescription() + " - id:" + referente.ID, ex);
         throw;
     }
 }
        private bool insert(ReferenteDTO dto, out Referente item)
        {
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                // ===================================================================
                //  Creazione Persona
                // ===================================================================
                Persona personaRiferimento;
                if (dto.PersonaId > 0)
                    personaRiferimento = daoFactory.GetPersonaDao().GetById(dto.PersonaId, false);
                else
                {
                    personaRiferimento = new Persona(Gipasoft.Sfera.Enums.TipoPersonaEnum.Fisica, dto.Nome, dto.Cognome, dto.IdAzienda, true);
                    if (!string.IsNullOrEmpty(dto.Sesso))
                        personaRiferimento.Sesso = (Gipasoft.Sfera.Enums.SessoEnum)Enum.Parse(typeof(Gipasoft.Sfera.Enums.SessoEnum), dto.Sesso);
                    personaRiferimento.DataNascita = dto.DataNascita;
                    if (!string.IsNullOrEmpty(dto.CodiceComuneNascita))
                        personaRiferimento.ComuneNascita = daoFactory.GetComuneDao().GetById(dto.CodiceComuneNascita, false);
                    personaRiferimento.CodiceFiscale = dto.CodiceFiscale;
                    personaRiferimento.PartitaIva = dto.PartitaIva;

                    //Lista Contatti
                    personaRiferimento.Contatti.Clear();
                    foreach (var t in dto.Contatti)
                    {
                        _id = t.ID;
                        if (t.Stato != string.Empty)
                            _id = getContattoRepository(personaRiferimento).ManageDomainEntity(t, false);

                        personaRiferimento.Contatti.Add(daoFactory.GetContattoDao().GetById(_id.GetValueOrDefault(), false));
                    }

                    daoFactory.GetPersonaDao().SaveOrUpdate(personaRiferimento);
                }

                // ===================================================================
                //  Creazione Referente
                // ===================================================================
                item = new Referente(dto.Sigla, personaRiferimento, daoFactory.GetAziendaDao().GetById(dto.IdAzienda, false)) {Dinamico = dto.Dinamico};

                if (dto.Sostitutivo > 0)
                    item.ReferenteSostitutivo = daoFactory.GetReferenteDao().GetById(dto.Sostitutivo, false);

                daoFactory.GetReferenteDao().SaveOrUpdate(item);

                return true;
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nell'inserimento del referente - " + Library.Utility.GetMethodDescription() + " - id:" + dto.ID, ex);
                throw;
            }
        }
        private bool update(ReferenteDTO referenteDto, out Referente referente)
        {
            bool result;
            referente = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                referente = daoFactory.GetReferenteDao().GetById(referenteDto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (referenteDto.Version == referente.Version)
                {

                    if (referenteDto.Sostitutivo > 0)
                        referente.ReferenteSostitutivo = daoFactory.GetReferenteDao().GetById(referenteDto.Sostitutivo, false);
                    referente.Dinamico = referenteDto.Dinamico;

                    referente.Sigla = referenteDto.Sigla;

                    if (referenteDto.PersonaId > 0)
                        referente.PersonaRiferimento = daoFactory.GetPersonaDao().GetById(referenteDto.PersonaId, false);

                    // ---------------------------------------------------------
                    // Persona
                    // ---------------------------------------------------------
                    if (!referente.IsDinamico)
                    {
                        if (referente.PersonaRiferimento != null)
                        {
                            referente.PersonaRiferimento.Nome = referenteDto.Nome;
                            referente.PersonaRiferimento.Cognome = referenteDto.Cognome;
                            referente.PersonaRiferimento.DataNascita = referenteDto.DataNascita;
                            referente.PersonaRiferimento.CodiceFiscale = referenteDto.CodiceFiscale;
                            referente.PersonaRiferimento.PartitaIva = referenteDto.PartitaIva;

                            if (!string.IsNullOrEmpty(referenteDto.CodiceComuneNascita))
                                referente.PersonaRiferimento.ComuneNascita = daoFactory.GetComuneDao().GetById(referenteDto.CodiceComuneNascita, false);

                            if (referenteDto.Sesso == "Femmina")
                                referente.PersonaRiferimento.Sesso = Gipasoft.Sfera.Enums.SessoEnum.Femmina;
                            else if (referenteDto.Sesso == "Maschio")
                                referente.PersonaRiferimento.Sesso = Gipasoft.Sfera.Enums.SessoEnum.Maschio;
                            else
                                referente.PersonaRiferimento.Sesso = Gipasoft.Sfera.Enums.SessoEnum.Undefined;

                            //Lista Contatti
                            referente.PersonaRiferimento.Contatti.Clear();

                            foreach (var t in referenteDto.Contatti)
                            {
                                _id = t.ID;
                                if (t.Stato == "U" || t.Stato == "I")
                                    _id = getContattoRepository(referente.PersonaRiferimento).ManageDomainEntity(t, false);

                                if (_id > 0)
                                    referente.PersonaRiferimento.Contatti.Add(daoFactory.GetContattoDao().GetById(_id.Value, false));
                            }
                        }
                    }
                    else
                        referente.Descrizione = referenteDto.Cognome;

                    daoFactory.GetReferenteDao().Update(referente);
                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    
                    _log.Error("Errore nel salvataggio del referente: id:" + referenteDto.ID.ToString() + " - il dato sul db è più recente di quello che si vuole salvare");
                    result = false;
                }
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel salvataggio della referente - " + Library.Utility.GetMethodDescription() + " - id:" + referenteDto.ID, ex);
                throw;
            }

            return result;
        }
        private ReferenteDTO setDto(Referente item)
        {
            if (item != null)
            {
                var dto = new ReferenteDTO
                {
                    Version = item.Version,
                    Sigla = item.Sigla,
                    ID = item.ID,
                    Dinamico = item.Dinamico,
                    IdAzienda = item.Azienda.ID
                };

                if (item.ReferenteSostitutivo != null)
                    dto.Sostitutivo = item.ReferenteSostitutivo.ID;

                dto.IsDeleteAllow = true;
                if (item.CondominiAssemblea.Count > 0 || item.CondominiContabilita.Count > 0 || item.Condomini.Count > 0)
                    dto.IsDeleteAllow = false;

                if (item.Dinamico != null && item.Dinamico.Value)
                {
                    var referenteEffettivo = item.GetReferenteEffettivo(null, null);
                    dto.DisplayName = item.DisplayName;
                    if (referenteEffettivo != null && !string.IsNullOrEmpty(referenteEffettivo.Sigla))
                        dto.DisplayName += " (" + referenteEffettivo.Sigla + ")";
                }
                else
                {
                    dto.DisplayName = item.DisplayName;
                    dto.DisplayNameCompleto = $"{dto.Sigla} - {dto.DisplayName}";
                }


                if (item.PersonaRiferimento != null)
                {
                    dto.Nome = item.PersonaRiferimento.Nome;
                    dto.Cognome = item.PersonaRiferimento.Cognome;
                    dto.PersonaId = item.PersonaRiferimento.ID;
                    dto.NominativoPersona = item.DisplayName;
                    dto.PartitaIva = item.PersonaRiferimento.PartitaIva;
                    dto.CodiceFiscale = item.PersonaRiferimento.CodiceFiscale;
                    dto.Sesso = item.PersonaRiferimento.Sesso.ToString();
                    dto.DataNascita = item.PersonaRiferimento.DataNascita;

                    if (item.PersonaRiferimento.ComuneNascita != null)
                    {
                        dto.CodiceComuneNascita = item.PersonaRiferimento.ComuneNascita.Codice;
                        dto.ComuneNascita = item.PersonaRiferimento.ComuneNascita.Descrizione;
                    }

                    // ----------------------------
                    // Contatti
                    // ----------------------------
                    var contatti = new ContattoDTO[item.PersonaRiferimento.Contatti.Count];
                    var index = 0;
                    foreach (var contatto in item.PersonaRiferimento.Contatti)
                    {
                        contatti[index] = getContattoRepository(item.PersonaRiferimento).GetByDomainEntity(contatto);
                        index++;
                    }
                    dto.Contatti = contatti;

                    // Per Lista
                    var contattiColl = new ContattoCollection(item.PersonaRiferimento.Contatti);
                    var cell = contattiColl.GetFirstContatto<Cellulare>();
                    if (cell != null)
                        dto.Cellulare = cell.Valore;
                    var tel = contattiColl.GetFirstContatto<Telefono>();
                    if (tel != null)
                        dto.Telefono = tel.Valore;
                    var mail = contattiColl.GetFirstContatto<Email>();
                    if (mail != null)
                        dto.Email = mail.Valore;
                }
                else
                    dto.Cognome = item.Descrizione;

                dto.NumeroCondominiAssemblea = item.CondominiAssemblea.Count;
                foreach (var condominio in item.CondominiAssemblea)
                {
                    if (condominio.NumeroUnitaImmobiliari != null)
                        dto.NumeroUnitaImmobiliariAssemblea += condominio.NumeroUnitaImmobiliari.Value;
                }

                // ----------------------------
                // Condomini Assemblea
                // ----------------------------
                var condominiAssemblea = new int[item.CondominiAssemblea.Count];
                var indexCondominiAssemblea = 0;
                foreach (var condominio in item.CondominiAssemblea)
                {
                    condominiAssemblea[indexCondominiAssemblea] = condominio.ID;
                    indexCondominiAssemblea++;
                }
                dto.CondominiAssemblea = condominiAssemblea;

                return dto;
            }

            return null;
        }