示例#1
0
        public static string CriarArquivoCSVDisco(int idSolicitacao, string nomeArquivo)
        {
            string ArquivoDownload = Path.Combine(@"e:\home\agilus\Temp\", nomeArquivo);

            //Se o arquivo não existir, ele é criado
            if (!System.IO.File.Exists(ArquivoDownload))
            {
                string ArquivoTempGerado = new ConexaoDb2().RecuperarResultado(idSolicitacao, TipoRetorno.csv);

                //Renomeando o arquivo gerado
                System.IO.File.Move(ArquivoTempGerado, ArquivoDownload);
            }

            return(ArquivoDownload);
        }
示例#2
0
        public string GeraXmlResultado(NpgsqlDataReader ResultadosSolicitacao)
        {
            string       caminho      = @"e:\home\agilus\Temp\" + Path.GetRandomFileName().Replace(".", "");
            bool         aindaHaDados = true;
            StreamWriter ArquivoTemp  = new StreamWriter(caminho, true);

            //var resultado = ResultadosSolicitacao.Tables[0].Rows;
            var regras = new ConexaoDb2().ObterRegraCalculoMargem();

            ArquivoTemp.WriteLine("<?xml version=\"1.0\" encoding=\"utf-16\"?>");
            ArquivoTemp.WriteLine("<ExtratoBeneficio xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");

            while (aindaHaDados)
            {
                bool gravou = !ResultadosSolicitacao.Read();
                aindaHaDados = !gravou;

                while (!gravou)
                {
                    ExtratoTitular titular;
                    ExtratoRV      rv;
                    ExtratoConbas  conbas;

                    titular = ProcessarResultadoTitular(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString()));
                    ResultadosSolicitacao.Read();

                    rv = ProcessarResultadoRv(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString()));
                    rv.GetMargem(regras);
                    ResultadosSolicitacao.Read();

                    conbas = ProcessarResultadoConbas(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString()));
                    ExtratoBeneficio eb = new ExtratoBeneficio()
                    {
                        nb = titular.Matricula, Titular = titular, Rv = rv, Conbas = conbas
                    };

                    string elemento = ToXML <ExtratoBeneficio>(eb);
                    ArquivoTemp.WriteLine("<Beneficio>");
                    ArquivoTemp.Write(elemento.Substring(162, elemento.Length - 181));
                    ArquivoTemp.WriteLine("</Beneficio>");
                    gravou = true;
                }
            }
            ArquivoTemp.WriteLine("</ExtratoBeneficio>");
            ArquivoTemp.Close();

            return(caminho);
        }
示例#3
0
        public string GerarCsvResultado(NpgsqlDataReader ResultadosSolicitacao)
        {
            string       caminho     = @"e:\home\agilus\Temp\" + Path.GetRandomFileName().Replace(".", "");
            StreamWriter ArquivoTemp = new StreamWriter(caminho, true);

            ArquivoTemp.WriteLine(new String(' ', 2000));
            int           maxRubricas         = 0;
            StringBuilder cabecalhoRubricasrv = new StringBuilder();
            bool          aindaHaDados        = true;
            var           regras = new ConexaoDb2().ObterRegraCalculoMargem();

            while (aindaHaDados)
            {
                bool gravou = !ResultadosSolicitacao.Read();
                aindaHaDados = !gravou;

                while (!gravou)
                {
                    //Esse bloco só existe para controle dos meus objetos referenciados

                    ExtratoTitular titular;
                    ExtratoRV      rv;
                    ExtratoConbas  conbas;
                    StringBuilder  linha = new StringBuilder();

                    titular = ProcessarResultadoTitular(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString()));
                    ResultadosSolicitacao.Read();

                    rv = ProcessarResultadoRv(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString()));
                    rv.GetMargem(regras);
                    ResultadosSolicitacao.Read();

                    conbas = ProcessarResultadoConbas(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString()));

                    if (rv.Rubricas.Count > maxRubricas)
                    {
                        maxRubricas = rv.Rubricas.Count;
                    }

                    ManipulaCsv gravarResultado = new ManipulaCsv();

                    //A quebra de linha está no extrato rv última linha, por isso na concatenação ele ficou por último
                    linha.Append(gravarResultado.GerarCsvTitular(titular) + gravarResultado.GerarCsvConbas(conbas) + gravarResultado.GerarCsvRv(rv));

                    // Gravando o arquivo em disco
                    try
                    {
                        ArquivoTemp.Write(linha.ToString());
                    }

                    catch (Exception)
                    {
                        throw new Exception("Erro ao gerar o arquivo (Fluxo de resultados congestionado). Entre em contato com o administrador do site.");
                    }

                    gravou = true;
                }
            }

            ArquivoTemp.Close();

            for (int i = 1; i < maxRubricas + 1; i++)
            {
                cabecalhoRubricasrv.Append("Codigo Rubrica [" + i.ToString() + "];");
                cabecalhoRubricasrv.Append("Nome Rubrica [" + i.ToString() + "];");
                cabecalhoRubricasrv.Append("Valor Rubrica [" + i.ToString() + "];");
                cabecalhoRubricasrv.Append("Sinal Rubrica [" + i.ToString() + "];");
            }

            //Cabeçalho do arquivo
            string cabecalho = "MATRICULA;SITUACAO;NOME TITULAR;NOME MAE;CPF;IDENTIDADE;MUNICIPIO DA IDENTIDADE;UF DA IDENTIDADE;SEXO;DATA DE NASCIMENTO;ENDERECO;CEP;MUNICIPIO;UF;BAIRRO;DDD;RAMAL;FONE;EMAIL;CODIGO ESPECIE;ESPECIE;CODIGO RAMO ATIVIDADE;RAMO ATIVIDADE;CODIGO FORMA FILIACAO;FORMA FILIACAO;DATA DE ADMISSAO;SALARIO;MES COMPETENCIA;COMPETENCIA INICIAL;COMPETENCIA FINAL;CODIGO AGENCIA;VALIDADE INICIAL;VALIDADE FINAL;BANCO;CONTA CORRENTE;VALOR LIQUIDO CREDITO;MARGEM;" + cabecalhoRubricasrv.ToString();

            FileStream arquivo = new FileStream(caminho, FileMode.Open, FileAccess.Write);

            arquivo.Seek(0, SeekOrigin.Begin);
            arquivo.Write(Encoding.UTF8.GetBytes(cabecalho), 0, cabecalho.Length);
            arquivo.Close();

            return(caminho);
        }