示例#1
0
        public void MontarArquivoRetorno(int idArquivo)
        {
            Arquivo            incoming = new ArquivoDAO().Buscar(idArquivo);
            InformacaoRegistro headerIncoming, trailerIncoming;
            Registro           regHeader = new RegistroDAO().RegistroPorArquivo(idArquivo).Where(r => r.FK_TipoRegistro.NomeTipoRegistro.ToLower().Equals("header")).First();

            headerIncoming  = infRegistroDAO.BuscarHeaderArquivo(idArquivo);
            trailerIncoming = infRegistroDAO.BuscarTrailerArquivo(idArquivo);
            string detail = new string('0', 168);

            string headerReal = LAB5Utils.StringUtils.Unzip(headerIncoming.Valor);

            headerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(headerReal, LAB5Utils.DataUtils.RetornaDataYYYYMMDD(DateTime.Now), regHeader.Campos.Where(c => c.NomeCampo.Equals("DATA DE RETORNO DO ARQUIVO")).First().PosInicio, regHeader.Campos.Where(c => c.NomeCampo.Equals("DATA DE RETORNO DO ARQUIVO")).First().PosFim);
            headerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(headerReal, LAB5Utils.DataUtils.RetornaHoraHHMMSS(DateTime.Now), regHeader.Campos.Where(c => c.NomeCampo.Equals("HORA DE RETORNO DO ARQUIVO")).First().PosInicio, regHeader.Campos.Where(c => c.NomeCampo.Equals("HORA DE RETORNO DO ARQUIVO")).First().PosFim);
            headerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(headerReal, "2", regHeader.Campos.Where(c => c.NomeCampo.Equals("INDICADOR DE ROTA DO ARQUIVO")).First().PosInicio, regHeader.Campos.Where(c => c.NomeCampo.Equals("INDICADOR DE ROTA DO ARQUIVO")).First().PosFim);

            headerIncoming.Valor = LAB5Utils.StringUtils.Zip(headerReal);

            infRegistroDAO.Salvar(headerIncoming);

            List <Campo> camposDetail = new RegistroDAO().RegistroPorArquivo(idArquivo).Where(r => r.ChaveRegistro.Equals("REGISTRO_E44_0")).First().Campos.OrderBy(c => c.PosInicio).ToList();

            foreach (Campo campo in camposDetail)
            {
            }
        }
示例#2
0
        private string MontarTrailer()
        {
            TransacoesEloDAO   transacaoDAO    = new TransacoesEloDAO(arquivo.IdEmissor);
            InformacaoRegistro trailerIncoming = infRegDAO.BuscarTrailerArquivo(arquivo.IdArquivo);

            if (trailerIncoming.Equals(null))
            {
                throw new Exception("Trailer não localizado");
            }
            trailerIncoming.IdInformacaoRegistro = 0;
            int     totalTransacoesCredReal, totalTransacoesCredDolar, totalTransacoesDebReal, totalTransacoesDebDolar;
            decimal valorTransacaoesCredReal, valorTransacoesCredDolar, valorTransacoesDebReal, valorTransacoesDedDolar;

            string trailerReal = LAB5Utils.StringUtils.Unzip(trailerIncoming.Valor);

            string strValorCredReal, strValorCredDolar, strValorDebReal, strValorDebDolar;



            totalTransacoesCredReal  = transacaoDAO.TransacoesCredito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 986).ToList().Count;
            valorTransacaoesCredReal = Math.Round(transacaoDAO.TransacoesCredito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 986).ToList().Sum(t => t.Valor), 2);
            totalTransacoesCredDolar = transacaoDAO.TransacoesCredito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 840).ToList().Count;
            valorTransacoesCredDolar = Math.Round(transacaoDAO.TransacoesCredito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 840).ToList().Sum(t => t.Valor), 2);
            totalTransacoesDebReal   = transacaoDAO.TransacoesDebito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 986).ToList().Count;
            totalTransacoesDebDolar  = transacaoDAO.TransacoesDebito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 840).ToList().Count;
            valorTransacoesDebReal   = Math.Round(transacaoDAO.TransacoesDebito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 986).Sum(t => t.Valor), 2);
            valorTransacoesDedDolar  = Math.Round(transacaoDAO.TransacoesDebito(arquivo.NomeArquivo).Where(t => t.CodigoMoeda == 840).Sum(t => t.Valor), 2);

            strValorCredDolar = valorTransacoesCredDolar > 0 ? valorTransacoesCredDolar.ToString().Remove(valorTransacoesCredDolar.ToString().IndexOf(','), 1).PadLeft(15, '0') : new string('0', 15);
            strValorCredReal  = valorTransacaoesCredReal > 0 ? valorTransacaoesCredReal.ToString().Remove(valorTransacaoesCredReal.ToString().IndexOf(','), 1).PadLeft(15, '0') : new string('0', 15);
            strValorDebReal   = valorTransacoesDebReal > 0 ? valorTransacoesDebReal.ToString().Remove(valorTransacoesDebReal.ToString().IndexOf(','), 1).PadLeft(15, '0') : new string('0', 15);
            strValorDebDolar  = valorTransacoesDedDolar > 0 ? valorTransacoesDedDolar.ToString().Remove(valorTransacoesDedDolar.ToString().IndexOf(','), 1).PadLeft(15, '0') : new string('0', 15);

            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, totalTransacoesCredReal.ToString().PadLeft(8, '0'), 9, 16);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, strValorCredReal, 17, 31);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, totalTransacoesDebReal.ToString().PadLeft(8, '0'), 32, 39);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, strValorDebReal, 40, 54);

            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, totalTransacoesCredDolar.ToString().PadLeft(8, '0'), 55, 62);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, strValorCredDolar, 63, 77);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, totalTransacoesDebDolar.ToString().PadLeft(8, '0'), 78, 85);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, strValorDebDolar, 86, 100);

            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, totalRegistros.ToString().PadLeft(8, '0'), 101, 108);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, new string(' ', (116 - 109) + 1), 109, 116);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, new string(' ', (131 - 117) + 1), 117, 131);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, new string(' ', (167 - 132) + 1), 132, 167);
            trailerReal = LAB5Utils.ArquivoUtils.AlterarInformacao(trailerReal, "2", 168, 168);

            trailerIncoming.Valor = LAB5Utils.StringUtils.Zip(trailerReal);

            try
            {
                infRegDAO.Salvar(trailerIncoming);
                return(LAB5Utils.StringUtils.Unzip(trailerIncoming.Valor));
            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível gerar o trailer do arquivo de retorno. " + ex.Message + " - " + ex.InnerException);
            }
        }