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; }
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; }