public RipartizioneSpeseDTO SetRipartoByMovimento(int idMovimento, int? idContoDetrazione)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var movimento = daoFactory.GetMovimentoContabileDao().Find(idMovimento, false);
            if (movimento != null)
            {
                // Restituisco il riparto
                var rep = new MovimentoContabileRepository(_info, _windsorRepository);
                var riparto = GetRipartizioneByMovimentoEsistente(rep.GetByDomainEntity(movimento, true, true), movimento.Testata.EsercizioRiferimento.ID, null, idContoDetrazione);

                if (!string.IsNullOrEmpty(movimento.LottiAddebito))
                    riparto.DescrizioneVoceSpesa = "L";
                else if (!string.IsNullOrEmpty(movimento.StabiliAddebito))
                    riparto.DescrizioneVoceSpesa = "S";
                else if (!string.IsNullOrEmpty(movimento.GruppiAddebito))
                    riparto.DescrizioneVoceSpesa = "G";
                else
                    riparto.DescrizioneVoceSpesa = "U";

                return riparto;
            }

            return new RipartizioneSpeseDTO();
        }
        private TestataMovimentoContabileDTO setDto(TestataMovimentoContabile item)
        {
            try
            {
                TestataMovimentoContabileDTO dto = null;
                if (item != null)
                {
                    var movRep = new MovimentoContabileRepository(_info, _windsorRepository);
                    var archiviazioneService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IArchiviazioneOtticaService>();

                    dto = new TestataMovimentoContabileDTO
                    {
                        DataRegistrazione = item.DataRegistrazione,
                        IdEsercizio = item.EsercizioRiferimento.ID,
                        ID = item.ID,
                        Tipo = item.Tipo,
                        NumeroProtocollo = item.NumeroProtocollo,
                        IsAbilitataArchiviazioneOttica = item.IsAbilitataArchiviazioneOttica,
                        Descrizione = item.Descrizione,
                        DataInizioCompetenza = item.DataInizioCompetenza,
                        DataFineCompetenza = item.DataFineCompetenza,
                        Note = item.Note
                    };
                    
                    if (item.ModelloRipartizione != null)
                        dto.IdModelloRipartizione = item.ModelloRipartizione.ID;
                    if (item.SpesaRiferimento != null)
                        dto.IdSpesa = item.SpesaRiferimento.ID;

                    string identificativoArchiviazione = string.Empty;
                    var movimenti = new List<MovimentoContabileDTO>(item.Movimenti.Count);
                    foreach (var movimento in item.Movimenti)
                    {
                        if (movimento.DettaglioRiferimento != null)
                            identificativoArchiviazione = archiviazioneService.GetIdentificativoArchiviazione(movimento.DettaglioRiferimento.SpesaRiferimento);

                        if (movimento.IsVisibileGestione)
                        {
                            var movDto = movRep.GetByDomainEntity(movimento, false, false);
                            movDto.IdTestata = dto.ID;
                            movimenti.Add(movDto);
                        }
                    }
                    dto.Movimenti = movimenti.ToArray();

                    if(string.IsNullOrEmpty(identificativoArchiviazione))
                        identificativoArchiviazione = archiviazioneService.GetIdentificativoArchiviazione(item);
                    dto.IdentificativoArchiviazioneOttica = identificativoArchiviazione;

                }

                return dto;
            }
            catch(Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento della Testata Contabile - {0} - testata:{1}", ex, Library.Utility.GetMethodDescription(), item != null ? item.ID.ToString() : "<NULL>");
                throw;
            }
        }
 public RipartizioneSpeseDTO GetRipartizioneByMovimentoEsistente(MovimentoContabile movimento)
 {
     var rep = new MovimentoContabileRepository(_info, _windsorRepository);
     return GetRipartizioneByMovimentoEsistente(rep.GetByDomainEntity(movimento, true, true), movimento.DettaglioRiferimento.SpesaRiferimento.EsercizioRiferimento.ID, null);
 }