public ModelloListaRegistrazioneContabileDTO GetById(int id) { try { ModelloListaRegistrazioneContabileDTO dto = null; var modello = _daoFactory.GetModelloRegistrazioneContabileDao().Find(id, false); if (modello != null) { dto = new ModelloListaRegistrazioneContabileDTO { ID = modello.ID, Descrizione = modello.Descrizione, DescrizioneVoceFattura = modello.DescrizioneVoceFattura, IdCondominio = modello.CondominioRiferimento.ID, Version = modello.Version, IsDeleteAllow = modello.IsDeleteAllow(), DisplayName = modello.Descrizione }; // ---------------------------------------- // Conti // ---------------------------------------- foreach (var conto in modello.Conti) { var contoDto = new ContiListaModelloRegistrazioneContabileDTO { ID = conto.ID, IdConto = conto.ContoRiferimento != null ? conto.ContoRiferimento.ID : 0, IdModello = dto.ID, PercentualeRipartizione = conto.PercentualeRipartizione.GetValueOrDefault(), Version = conto.Version, IsDeleteAllow = conto.IsDeleteAllow(), DisplayName = conto.ContoRiferimento != null ? conto.ContoRiferimento.Descrizione : string.Empty }; if (conto.SottoContoRiferimento != null) { contoDto.IdSottoConto = conto.SottoContoRiferimento.ID; contoDto.DisplayName += " - " + conto.SottoContoRiferimento.GetDescrizione(null, modello.CondominioRiferimento, null); } // ---------------------------------------- // Dettagli / Riparto // ---------------------------------------- foreach (var dettaglio in conto.Unita) { var dettaglioDto = new DettaglioListaModelloRegistrazioneContabileDTO { ID = dettaglio.ID, IsDeleteAllow = dettaglio.IsDeleteAllow(), }; if (dettaglio.LottoRiferimento != null) dettaglioDto.IdLotto = dettaglio.LottoRiferimento.ID; if (dettaglio.PalazzinaRiferimento != null) dettaglioDto.IdStabile = dettaglio.PalazzinaRiferimento.ID; if (dettaglio.GruppoStabileRiferimento != null) dettaglioDto.IdGruppoStabile = dettaglio.GruppoStabileRiferimento.ID; if (dettaglio.UnitaRiferimento != null) dettaglioDto.IdUnita = dettaglio.UnitaRiferimento.ID; contoDto.Riparto.Add(dettaglioDto); } dto.Conti.Add(contoDto); } // ---------------------------------------- // Fornitori // ---------------------------------------- foreach (var modelloFornitore in modello.Fornitori) { var dtoFornitore = new ModelloContabileFornitoreDTO { ID = modelloFornitore.ID, IdFornitore = modelloFornitore.Fornitore.ID, IdModello = modello.ID, DisplayName = modelloFornitore.Fornitore.DisplayName, Version = modelloFornitore.Version }; dto.Fornitori.Add(dtoFornitore); } } return dto; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), id); throw; } }
public List<ModelloListaRegistrazioneContabileDTO> GetByCondominio(int idCondominio) { try { var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false); var modelli = _daoFactory.GetModelloRegistrazioneContabileDao().GetByCondominio(idCondominio); var modelliDto = new List<ModelloListaRegistrazioneContabileDTO>(modelli.Count); // ---------------------------------------- // Modelli // ---------------------------------------- foreach (var modello in modelli) { try { var dto = new ModelloListaRegistrazioneContabileDTO { ID = modello.ID, Descrizione = modello.Descrizione, DescrizioneVoceFattura = modello.DescrizioneVoceFattura, IdCondominio = idCondominio, Version = modello.Version, IsDeleteAllow = modello.IsDeleteAllow(), DisplayName = modello.Descrizione }; // ---------------------------------------- // Conti // ---------------------------------------- foreach (var conto in modello.Conti) { try { var contoDto = new ContiListaModelloRegistrazioneContabileDTO { ID = conto.ID, IdModello = dto.ID, PercentualeRipartizione = conto.PercentualeRipartizione.GetValueOrDefault(), Version = conto.Version, IsDeleteAllow = conto.IsDeleteAllow() }; if(conto.ContoRiferimento != null) { contoDto.IdConto = conto.ContoRiferimento.ID; contoDto.DisplayName = conto.ContoRiferimento.Descrizione; // ---------------------------------------- // Dettagli / Riparto // ---------------------------------------- foreach (var dettaglio in conto.Unita) { try { var dettaglioDto = new DettaglioListaModelloRegistrazioneContabileDTO { ID = dettaglio.ID, IsDeleteAllow = dettaglio.IsDeleteAllow(), }; if (dettaglio.LottoRiferimento != null) dettaglioDto.IdLotto = dettaglio.LottoRiferimento.ID; if (dettaglio.PalazzinaRiferimento != null) dettaglioDto.IdStabile = dettaglio.PalazzinaRiferimento.ID; if (dettaglio.GruppoStabileRiferimento != null) dettaglioDto.IdGruppoStabile = dettaglio.GruppoStabileRiferimento.ID; if (dettaglio.UnitaRiferimento != null) dettaglioDto.IdUnita = dettaglio.UnitaRiferimento.ID; contoDto.Riparto.Add(dettaglioDto); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - SINGOLO DETTAGLIO - {0} - idConto:{1} - idDettaglio:{2} - idModello:{3} - idCondominio:{4}", ex, Library.Utility.GetMethodDescription(), conto.ID, dettaglio.ID, modello.ID, idCondominio); throw; } } } else { _log.WarnFormat("ATTENZIONE Modello con riga di riparto senza conto definito - {0} - idConto:{1} - idModello:{2} - idCondominio:{3}", Library.Utility.GetMethodDescription(), conto.ID, modello.ID, idCondominio); } if (conto.SottoContoRiferimento != null) { contoDto.IdSottoConto = conto.SottoContoRiferimento.ID; contoDto.DisplayName += " - " + conto.SottoContoRiferimento.GetDescrizione(null, condominio, null); } dto.Conti.Add(contoDto); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - SINGOLO CONTO - {0} - idConto:{1} - idModello:{2} - idCondominio:{3}", ex, Library.Utility.GetMethodDescription(), conto.ID, modello.ID, idCondominio); throw; } } // ---------------------------------------- // Fornitori // ---------------------------------------- foreach (var modelloFornitore in modello.Fornitori) { var dtoFornitore = new ModelloContabileFornitoreDTO { ID = modelloFornitore.ID, IdFornitore = modelloFornitore.Fornitore.ID, IdModello = modello.ID, DisplayName = modelloFornitore.Fornitore.DisplayName, Version = modelloFornitore.Version }; dto.Fornitori.Add(dtoFornitore); } modelliDto.Add(dto); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - SINGOLO MODELLO - {0} - idModello:{1} - idCondominio:{2}", ex, Library.Utility.GetMethodDescription(), modello.ID, idCondominio); throw; } } return modelliDto; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - {0} - idCondominio:{1}", ex, Library.Utility.GetMethodDescription(), idCondominio); throw; } }