Esempio n. 1
0
        public virtual string GetDescrizione(Esercizio esercizio, Condominio condominio, IRipartizioneSpesa movimento)
        {
            var descrizione = Descrizione;

            if (!string.IsNullOrEmpty(descrizione) && descrizione.Contains("$"))
            {
                try
                {
                    // ==========================================
                    //  Applico il template
                    // ==========================================

                    // ------------------------------------------
                    //  Creo le stringhe
                    // ------------------------------------------
                    DateTime? dataAperturaEsercizio = null;
                    DateTime? dataChiusuraEsercizio = null;
                    var fornitore = string.Empty;

                    if (esercizio == null && condominio != null)
                        esercizio = condominio.GetCurrentEsercizioOrdinario();
                    if (esercizio != null)
                    {
                        dataAperturaEsercizio = esercizio.DataApertura.GetValueOrDefault();
                        dataChiusuraEsercizio = esercizio.DataChiusura.GetValueOrDefault();
                    }

                    if (movimento != null && movimento.FornitoreRiferimento != null)
                        fornitore = movimento.FornitoreRiferimento.DisplayName;

                    // ------------------------------------------
                    //  NVelocity
                    // ------------------------------------------
                    var memoryEngine = NVelocityEngineFactory.CreateNVelocityMemoryEngine(true);

                    System.Collections.IDictionary context = new System.Collections.Hashtable();

                    context.Add("fornitore", fornitore);

                    if (dataAperturaEsercizio != null)
                    {
                        context.Add("dataaperturaesercizio", dataAperturaEsercizio.GetValueOrDefault().ToShortDateString());
                        context.Add("meseiniziocompetenza", Utility.GetMonthName(dataAperturaEsercizio.Value.Month, false));
                        context.Add("annoiniziocompetenza", dataAperturaEsercizio.GetValueOrDefault().Year);
                    }
                    if (dataChiusuraEsercizio != null)
                    {
                        context.Add("datachiusuraesercizio", dataChiusuraEsercizio.GetValueOrDefault().ToShortDateString());
                        context.Add("mesefinecompetenza", Utility.GetMonthName(dataChiusuraEsercizio.Value.Month, false));
                        context.Add("annofinecompetenza", dataChiusuraEsercizio.GetValueOrDefault().Year);
                    }

                    descrizione = memoryEngine.Process(context, descrizione);

                    if (!string.IsNullOrEmpty(descrizione))
                        descrizione = descrizione.Trim();
                }
                catch (Exception ex)
                {
                    _log.Error("Errore nella applicazione del template per la testata di movimento - " + Utility.GetMethodDescription() + " - id:" + ID, ex);
                }
            }

            return descrizione;
        }
Esempio n. 2
0
        private CondominioDTO setDto(Condominio item, bool fast)
        {
            CondominioDTO dto;

            try
            {
                dto = new CondominioDTO
                {
                    AziendaID = item.Azienda.ID,
                    Descrizione = item.Descrizione,
                    DisplayName = item.DisplayName,
                    Codice = item.Codice,
                    ID = item.ID,
                    CodiceFiscale = item.CodiceFiscale,
                    FascicoloCompleto = item.FascicoloCompleto,
                    PresenzaNote = !String.IsNullOrEmpty(item.Note),
                    Note = item.Note,
                    IndirizzoCompleto = item.IndirizzoCompleto,
                    CodiceSIA = item.CodiceSIA,
                    CodiceCUC = item.CodiceCUC,
                    FormatoDescrizioneSpesa = item.FormatoDescrizioneSpesa,
                    FormatoDescrizioneMovimento = item.FormatoDescrizioneMovimento,
                    DescrizioneSpeseAutomatica = item.DescrizioneSpeseAutomatica,
                    IsAbilitataArchiviazioneOtticaPassivi = item.IsAbilitataArchiviazioneOtticaPassivi.GetValueOrDefault(),
                    IsAbilitataArchiviazioneOtticaContratti = item.IsAbilitataArchiviazioneOtticaContratti.GetValueOrDefault(),
                    IsSupercondominio = item.IsSupercondominio,
                    Deleted = item.Deleted,
                    CodiceImportazione = item.CodiceImportazione,
                    CodiceCalcoloTariffaAcqua = item.CodiceCalcoloTariffaAcqua,
                    TipoVersamentoDopoChiusura = item.TipoVersamentoDopoChiusura,
                    TipoVersamentoPrimaApertura = item.TipoVersamentoPrimaApertura,
                    TemplateDescrizioneUnitaImmobiliare = item.TemplateDescrizioneUnitaImmobiliare,
                    Version = item.Version,
                    Indirizzo = new AddressDTO()
                };

                if (item.Indirizzo != null)
                {
                    dto.Indirizzo.Cap = item.Indirizzo.Cap;
                    dto.Indirizzo.Civico = item.Indirizzo.Civico;
                    dto.Indirizzo.DisplayName = item.Indirizzo.GetIndirizzoCompleto();
                    dto.Indirizzo.Indirizzo = item.Indirizzo.Indirizzo;
                    dto.Indirizzo.Localita = item.Indirizzo.Localita;
                    dto.Indirizzo.Presso = item.Indirizzo.Presso;
                    dto.Cap = item.Indirizzo.Cap;
                    dto.Localita = item.Indirizzo.Localita;

                    if (item.Indirizzo.Comune != null)
                    {
                        dto.Indirizzo.CodiceComune = item.Indirizzo.Comune.Codice;
                        dto.Indirizzo.DescrizioneComune = item.Indirizzo.Comune.Descrizione;
                        if (item.Indirizzo.Comune.ProvinciaAppartenenza != null)
                            dto.Indirizzo.CodiceProvincia = item.Indirizzo.Comune.ProvinciaAppartenenza.Codice;
                    }

                    dto.DisplayIndirizzo = dto.Indirizzo.Indirizzo;
                    if (!string.IsNullOrEmpty(dto.Indirizzo.Civico))
                        dto.DisplayIndirizzo += " " + dto.Indirizzo.Civico;
                }

                if (item.GeoReferenziazione != null)
                {
                    dto.Latitude = item.GeoReferenziazione.Latitude;
                    dto.Longitude = item.GeoReferenziazione.Longitude;
                }

                if (item.FoglioCatastale != null)
                    dto.FoglioCatastale = item.FoglioCatastale.GetValueOrDefault();
                if (item.MappaleCatastale != null)
                    dto.MappaleCatastale = item.MappaleCatastale.GetValueOrDefault();
                if (item.GiornoAssemblea != null)
                    dto.GiornoAssemblea = item.GiornoAssemblea.GetValueOrDefault();
                if (item.MeseAssemblea != null && item.MeseAssemblea > 0)
                    dto.MeseAssemblea = item.MeseAssemblea;
                dto.LuogoAssemblea = item.LuogoAssemblea;
                dto.UnitaImmobiliari = item.NumeroUnitaImmobiliari;
                if (item.DatiBancariPrincipale != null)
                {
                    dto.CodiceBancaPrincipale = item.DatiBancariPrincipale.ID;
                    dto.IbanPrincipale = item.DatiBancariPrincipale.Iban;
                }

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

                if (item.Responsabile != null)
                {
                    try
                    {
                        dto.IdResponsabile = item.Responsabile.ID;
                        dto.NomeResponsabile = item.Responsabile.DisplayName;
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nel responsabile del condominio - {0} - id:{1} - condominio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), item.ID, _info.Azienda);
                    }
                }

                if (item.ResponsabileContabilita != null)
                {
                    dto.IdResponsabileContabilita = item.ResponsabileContabilita.ID;
                    dto.NomeResponsabileContabilita = item.ResponsabileContabilita.DisplayName;
                }

                if (item.FornitoreDichiarazione770 != null)
                    dto.IdFornitoreDichiarazione770 = item.FornitoreDichiarazione770.ID;

                var lastEsercizio = item.GetCurrentEsercizioOrdinario();
                if (lastEsercizio != null && lastEsercizio.DataChiusura != null)
                    dto.DataChiusuraEsercizio = item.GetCurrentEsercizioOrdinario().DataChiusura.GetValueOrDefault();

                // Responsabili Assemblea
                if (item.ResponsabiliAssemblea != null)
                {
                    var indexResponsabile = 0;
                    dto.IdResponsabiliAssemblea = new int[item.ResponsabiliAssemblea.Count];
                    foreach (var responsabile in item.ResponsabiliAssemblea)
                    {
                        var idRespDto = responsabile.ID;
                        dto.IdResponsabiliAssemblea[indexResponsabile] = idRespDto;
                        indexResponsabile++;
                    }
                }

                // Dati Bancari
                if (item.DatiBancari != null)
                {
                    var indexDatiBancari = 0;
                    foreach (var datiBancari in item.DatiBancari)
                    {
                        if (dto.DatiBancari.Length == 0)
                            dto.DatiBancari = new DatiBancariDTO[item.DatiBancari.Count];
                        dto.DatiBancari[indexDatiBancari] = getDatiBancariRepository().GetByDomainEntity(datiBancari);
                        indexDatiBancari++;
                    }
                }

                // Esercizio
                if (item.Esercizi != null && !fast)
                {
                    var indexEsercizi = 0;
                    foreach (var esercizio in item.Esercizi.OrderByDescending(esercizio => esercizio.DataApertura.GetValueOrDefault()))
                    {
                        var esercizioDto = getEsercizioRepository().GetByDomainEntity(esercizio);
                        if (dto.Esercizi.Length == 0)
                            dto.Esercizi = new EsercizioDTO[item.Esercizi.Count];
                        dto.Esercizi[indexEsercizi] = esercizioDto;
                        indexEsercizi++;
                    }
                }
            }

            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato nel caricamento dei condomini - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID);
                throw;
            }

            return dto;
        }