private static bool isRipartita(IMovimentiContainer testata) { return testata.Movimenti.Any(movimento => movimento.ContoRiferimento.IsSpesePersonali || movimento.DettaglioRipartizione.Count > 0); }
public ModelloRegistrazioneContabile SalvaModelloRipartizioneContabile(RipartizioneSpeseDTO ripartizione, IMovimentiContainer containerMovimenti, List<MovimentoContabileDTO> movimentiEconomici, decimal importo) { // Salvataggio modello if ( !string.IsNullOrEmpty(ripartizione?.NomeModello)) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var ripartizioneSpeseService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IRipartizioneSpeseService>(); var esercizio = daoFactory.GetEsercizioDao().GetById(ripartizione.Testata.IdEsercizio.GetValueOrDefault(), false); foreach (var movimento in movimentiEconomici) { if (ripartizione.UnitaImmobiliari != null) { var key = ripartizioneSpeseService.GetKey(movimento); if (ripartizione.Lotti.ContainsKey(key) && getListaModificata(ripartizione.Lotti[key])) ripartizioneSpeseService.SetLottiDataSource(key, ripartizione.Lotti[key]); if (ripartizione.Stabili.ContainsKey(key) && getListaModificata(ripartizione.Stabili[key])) ripartizioneSpeseService.SetStabiliDataSource(key, ripartizione.Stabili[key]); if (ripartizione.Gruppi.ContainsKey(key) && getListaModificata(ripartizione.Gruppi[key])) ripartizioneSpeseService.SetGruppiDataSource(key, ripartizione.Gruppi[key]); if(ripartizione.UnitaImmobiliari.ContainsKey(key)) ripartizioneSpeseService.SetUnitaDataSource(key, ripartizione.UnitaImmobiliari[key]); } } ISet<MovimentoContabile> movimenti = new HashSet<MovimentoContabile>(); foreach (var movimento in containerMovimenti.Movimenti.Where(movimento => movimento.IsEconomico())) { movimenti.Add(movimento); } var modello = ripartizioneSpeseService.CreateModelloRipartizione(esercizio.CondominioRiferimento.ID, movimenti, importo, ripartizione.NomeModello, ripartizione.DescrizioneVoceSpesa); daoFactory.GetModelloRegistrazioneContabileDao().SaveOrUpdate(modello); return modello; } return null; }