Beispiel #1
0
        /// <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);
        }
Beispiel #2
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);
        }
Beispiel #3
0
        //Non considero nessun vincolo sull'apertura delle pratiche
        public string AperturaPratica(int idPratica, DateTime dataApertura, int tipoPratica, int condominioRiferimento, int? personaRiferimento, string oggetto, Urgenza urgenza, ConformitaPratiche? conformita, int aziendaId, LogTransazione logTransazione, out Pratica pratOutput)
        {
            pratOutput = null;
            var message = string.Empty;

            try
            {
                _condominio = _daoFactory.GetCondominioDao().GetById(condominioRiferimento, false);
                var pratDao = _daoFactory.GetPraticaDao();
                var persDao = _daoFactory.GetPersonaDao();
                var tipoPratDao = _daoFactory.GetTipoPraticaDao();

                Persona persona = null;
                if(personaRiferimento != null)
                    persona = persDao.GetById(personaRiferimento.GetValueOrDefault(), false);

                var tipoPraticaRif = tipoPratDao.GetById(tipoPratica, false);
                var pratica = new Pratica(_condominio, persona, tipoPraticaRif, dataApertura, aziendaId, logTransazione) { StatoPratica = "Aperta", Oggetto = oggetto.Truncate(250), Conformita = conformita, Urgenza = urgenza };

                if(logTransazione == null)
                    pratOutput = pratDao.SaveOrUpdate(pratica);

                // Richiedente
                if (persona != null)
                {
                    var richiedente = new PraticaRichiedente(pratica, persona, pratica.DataApertura) { Note = "Apertura" };
                    _daoFactory.GetPraticaRichiedenteDao().SaveOrUpdate(richiedente);
                    pratica.Richiedenti.Add(richiedente);
                }

            }
            catch (Exception ex)
            {                
                _log.ErrorFormat("Non è stato possibile aprire la pratica. Errore durante il salvataggio delle informazioni - {0} - tipoPratica:{1}", ex, Utility.GetMethodDescription(), tipoPratica);
                message = "Non è stato possibile aprire la pratica. Errore durante il salvataggio delle informazioni";
            }
            
            return message;
        }
Beispiel #4
0
        private bool insert(PraticaDTO dto, out Pratica item)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {                
                var cond = daoFactory.GetCondominioDao().GetById(dto.IdCondominioRiferimento, false);
                var persRif = daoFactory.GetPersonaDao().GetById(dto.IdPersonaRiferimento, false);
                var tipoPratRif = daoFactory.GetTipoPraticaDao().GetById(dto.IdTipoPraticaRiferimento, false);

                item = new Pratica(cond, persRif, tipoPratRif, dto.DataApertura, dto.AziendaID, null)
                {
                    DataChiusura = dto.DataChiusura,
                    Oggetto = dto.Oggetto,
                    Conformita = dto.Conformita,
                    StatoPratica = dto.StatoPratica,
                    Urgenza = (Urgenza)dto.Urgenza
                };

                var rich = new PraticaRichiedente(item, persRif, dto.DataApertura.GetValueOrDefault()) {Note = "Apertura"};
                daoFactory.GetPraticaRichiedenteDao().SaveOrUpdate(rich);
                item.Richiedenti.Add(rich);
                
                daoFactory.GetPraticaDao().SaveOrUpdate(item);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'inserimento delle pratiche - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), dto.ID, _info.Azienda);
                throw;
            }
            return true;
        }
Beispiel #5
0
        private bool update(PraticaDTO dto, out Pratica item)
        {
            var result = false;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = daoFactory.GetPraticaDao().Find(dto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (item != null)
                {
                    // Per ora non viene controllato un eventuale problema di concorrenza
                    if (dto.Version == item.Version || true)
                    {
                        item.CondominioRiferimento = daoFactory.GetCondominioDao().GetById(dto.IdCondominioRiferimento, false);
                        item.TipoPraticaRiferimento = daoFactory.GetTipoPraticaDao().GetById(dto.IdTipoPraticaRiferimento, false);
                        item.PersonaRiferimento = daoFactory.GetPersonaDao().GetById(dto.IdPersonaRiferimento, false);

                        item.Oggetto = dto.Oggetto;
                        item.DataApertura = dto.DataApertura;
                        item.StatoPratica = dto.StatoPratica;
                        item.Conformita = dto.Conformita;
                        item.Urgenza = (Urgenza) dto.Urgenza;

                        daoFactory.GetPraticaDao().Update(item);
                        result = true;
                    }
                    else
                    {
                        // Eccezione: Sul db c'è qualche cosa di più nuovo.
                        _log.ErrorFormat("Errore nel salvataggio delle pratiche: id:{0} - il dato sul db è più recente di quello che si vuole salvare", dto.ID);
                    }
                }
                else
                    result = true;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio delle pratiche - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), dto.ID, _info.Azienda);
                throw;
            }

            return result;
        }
Beispiel #6
0
        private PraticaDTO setDto(Pratica item)
        {
            var dto = new PraticaDTO
            {
                Conformita = item.Conformita,
                NumDocumenti = item.Documenti.Count,
                DataApertura = item.DataApertura,
                DataChiusura = item.DataChiusura,
                Oggetto = item.Oggetto,
                StatoPratica = item.StatoPratica,
                Urgenza = (int)item.Urgenza,
                ID = item.ID,
                Version = item.Version
            };
            
            if (item.CondominioRiferimento != null)
            {
                dto.DisplayName = item.CondominioRiferimento.DisplayName + " - " + item.TipoPraticaRiferimento.Descrizione;
                if (!string.IsNullOrWhiteSpace(dto.Oggetto))
                    dto.DisplayName += " - " + item.Oggetto;
                dto.IdCondominioRiferimento = item.CondominioRiferimento.ID;
                dto.DescrizioneCondominioRiferimento = item.CondominioRiferimento.Codice + " - " + item.CondominioRiferimento.Descrizione;
            }

            if (item.TipoPraticaRiferimento != null)
            {
                dto.IdTipoPraticaRiferimento = item.TipoPraticaRiferimento.ID;
                dto.DescrizioneTipoPraticaRiferimento = item.TipoPraticaRiferimento.Descrizione;
            }

            if (item.PersonaRiferimento != null)
            {
                dto.IdPersonaRiferimento = item.PersonaRiferimento.ID;
                var richiedenti = new HashSet<Persona> {item.PersonaRiferimento};
                foreach (var rich in item.Richiedenti)
                    richiedenti.Add(rich.Richiedente);
                foreach (var persona in richiedenti)
                {
                    if (!string.IsNullOrEmpty(dto.NominativoPersona))
                        dto.NominativoPersona += " - ";
                    dto.NominativoPersona += persona.DisplayName;
                }
            }

            if (item.AziendaID != null)
                dto.AziendaID = (int)item.AziendaID;
            
            return dto;
        }
Beispiel #7
0
 public PraticaDTO GetByDomainEntity(Pratica pratica)
 {
     try
     {
         return setDto(pratica);
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nel caricamento delle pratiche - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), pratica != null ? pratica.ID.ToString() : "<NULL>", _info.Azienda);
         throw;
     }
 }
Beispiel #8
0
        //private string getEstensioneFromBytes(byte[] bytes)
        //{
        //    var tipo = Library.MimeTypeLibrary.GetMimeFromByteArray(bytes);
        //    var listaMimeType = _daoFactory.GetMimeTypeDao().GetByTipo(tipo);
        //    var estensione = ".txt";
        //    if (listaMimeType.Count > 0)
        //        estensione = listaMimeType[0].Estensione;

        //    return estensione;
        //}

        private string checkDataChiusura(Pratica pratica)
        {
            string result = "";

            if (pratica.DataApertura > pratica.DataChiusura)
                result = "La data di chiusura non è ammessa in quanto inferiore alla data di apertura della pratica." + Environment.NewLine + "Chiusura non eseguita";

            return result;
        }
Beispiel #9
0
        public IUpdatableBusinessEntity Copy()
        {
            var prat = new Pratica
            {
                Oggetto = Oggetto,
                DataApertura = DataApertura,
                DataChiusura = DataChiusura,
                StatoPratica = StatoPratica
            };
		
            return prat;
        }