private decimal getImportoNettoAcconti(RiepilogoRipartoDTO riparto, IEnumerable<PianoRatealeDettaglio> acconti) { var importoNetto = riparto.Importo; if (acconti != null) { var rateAcconto = new List<RataSoggetto>(); foreach (var dettaglioPiano in acconti) { rateAcconto.AddRange(dettaglioPiano.RateSoggetti.Where(item => !item.DaRichiamare && item.Stato != StatoRataEnum.Richiamata && item.Soggetto.ID == riparto.IdSoggettoCondominio)); } var importoAcconto = rateAcconto.Sum(item => item.Importo); importoNetto -= importoAcconto; } return importoNetto; }
private RiepilogoRipartoDTO setRiepilogoRiparto(ReportRipartizioneBilancioDTO reportRipartizioneBilancioDTO, Esercizio esercizio) { try { var unitaImmobiliare = _daoFactory.GetUnitaImmobiliareDao().Find(reportRipartizioneBilancioDTO.IdUnitaImmobiliare, false); if (unitaImmobiliare != null) { var riepilogoPreventivo = new RiepilogoRipartoDTO { CodiceTipoUnita = unitaImmobiliare.TipoUnitaImmobiliare.ID, DescrizioneTipoUnita = reportRipartizioneBilancioDTO.TipoUnitaImmobiliare, DescrizioneUnitaImmobiliare = unitaImmobiliare.Descrizione, IdPersona = reportRipartizioneBilancioDTO.IdPersona, IdSoggettoCondominio = reportRipartizioneBilancioDTO.IdPartecipante, IdUnitaImmobiliare = reportRipartizioneBilancioDTO.IdUnitaImmobiliare, Importo = getImporto(reportRipartizioneBilancioDTO.Importo.GetValueOrDefault(), esercizio), Interno = reportRipartizioneBilancioDTO.InternoUnitaImmobiliare, Nominativo = reportRipartizioneBilancioDTO.Nominativo, OrdineUnitaImmobiliare = reportRipartizioneBilancioDTO.OrdineUnitaImmobiliare, Subalterno = reportRipartizioneBilancioDTO.SubalternoUnitaImmobiliare, TipoSoggettoCondominio = reportRipartizioneBilancioDTO.TipoNominativoEffettivo == "P" ? TipoSoggetto.Proprietario : TipoSoggetto.Conduttore }; return riepilogoPreventivo; } else { _log.ErrorFormat("Non trovato unità immobiliare - {0} idUnita:{1}", Utility.GetMethodDescription(), reportRipartizioneBilancioDTO.IdUnitaImmobiliare); throw new InvalidDataException($"Non trovata unità immobiliare id#{reportRipartizioneBilancioDTO.IdUnitaImmobiliare}"); } } catch (Exception ex) { _log.ErrorFormat("Errore nel riepilogo del riparto - {0} - unità immobiliare:{1} - esercizio:{2}", ex, Utility.GetMethodDescription(), reportRipartizioneBilancioDTO.IdUnitaImmobiliare, esercizio?.ID.ToString() ?? "<NULL>"); throw; } }