private string MontarRegistroTE44()
        {
            int     totalTransacoesEmReal           = transacoesEloDAO.TransacoesConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 986).Count;
            decimal valorTransacoesEmReal           = transacoesEloDAO.TransacoesConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 986).Sum(x => x.Valor);
            int     totalTransacoesNaoAceitasEmReal = transacoesEloDAO.TransacoesNaoConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 986).Count;
            decimal valorTransacoesNaoAceitasEmReal = transacoesEloDAO.TransacoesNaoConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 986).Sum(x => x.Valor);

            int     totalTransacoesEmDolar           = transacoesEloDAO.TransacoesConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 840).Count;
            decimal valorTransacoesEmDolar           = transacoesEloDAO.TransacoesConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 840).Sum(x => x.Valor);
            int     totalTransacoesNaoAceitasEmDolar = transacoesEloDAO.TransacoesNaoConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 840).Count;
            decimal valorTransacoesNaoAceitasEmDolar = transacoesEloDAO.TransacoesNaoConciliadasPorCodigoMoeda(arquivo.NomeArquivo, 840).Sum(x => x.Valor);

            string valorDetail = new string('0', 168);

            try
            {
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, "44", 1, 2);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, "00", 3, 4);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, arquivo.FK_Emissor.CodigoEmissorFebraban, 5, 9);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, string.Empty.PadLeft((13 - 10) + 1, ' '), 10, 13);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, dataRemessa, 14, 21);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, numRemessa.ToString().PadLeft((27 - 22) + 1, '0'), 22, 27);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, LAB5Utils.DataUtils.RetornaDataYYYYMMDD(DateTime.Now), 28, 35);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, situacaoRemessa, 36, 36);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, motivoRejeicaoRemessa.PadLeft((38 - 37) + 1, ' '), 37, 38);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, "986", 39, 41);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, string.Empty.ToString().PadLeft((42 - 42) + 1, ' '), 42, 42);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, totalRegistros.ToString().PadLeft((57 - 43) + 1, '0'), 43, 57);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, totalTransacoesEmReal.ToString().PadLeft((72 - 58) + 1, '0'), 58, 72);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, valorTransacoesEmReal.ToString().Replace(',', ' ').Replace('.', ' ').ToString().PadLeft((87 - 73) + 1, '0'), 73, 87);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, totalTransacoesNaoAceitasEmReal.ToString().PadLeft((95 - 88) + 1, '0'), 88, 95);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, valorTransacoesNaoAceitasEmReal.ToString().Replace(',', ' ').Replace('.', ' ').PadLeft((110 - 96) + 1, '0'), 96, 110);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, "007", 111, 113);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, totalTransacoesEmDolar.ToString().PadLeft((121 - 114) + 1, '0'), 114, 121);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, valorTransacoesEmDolar.ToString().Replace(',', ' ').Replace('.', ' ').ToString().PadLeft((136 - 122) + 1, '0'), 122, 136);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, totalTransacoesNaoAceitasEmDolar.ToString().PadLeft((144 - 137) + 1, '0'), 137, 144);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, valorTransacoesNaoAceitasEmDolar.ToString().Replace(',', ' ').Replace('.', ' ').PadLeft((159 - 145) + 1, '0'), 145, 159);
                valorDetail = LAB5Utils.ArquivoUtils.AlterarInformacao(valorDetail, string.Empty.PadLeft((168 - 160) + 1, ' '), 160, 168);

                int idRegistroDetail    = new RegistroDAO().RegistroPorArquivo(arquivo.IdArquivo).Where(r => r.ChaveRegistro.Equals("REGISTRO_E44_0")).First().IdRegistro;
                InformacaoRegistro TE44 = new InformacaoRegistro(idRegistroDetail, arquivo.IdArquivo, "0", LAB5Utils.StringUtils.Zip(valorDetail), false);

                infRegDAO.Salvar(TE44);

                return(valorDetail);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gerar detail para o arquivo retorno." + ex.Message + " - " + ex.InnerException.Message);
            }
        }