public void GerarArquivo(GerarArquivoRequest pRequest)
        {
            try
            {
                DBCobranca = new CobrancaDB();

                string lPath = ConfigurationManager.AppSettings["pathArquivoCobranca"].ToString();

                string lNomeArquivo = "CCOU" + DateTime.Now.ToString("MMdd") + ".DAT";

                GerarArquivoRequest lRequest = new GerarArquivoRequest();

                lRequest.StSituacao = 'A';

                List <string> lDetalhes = DBCobranca.ListarLinhasArquivo(lRequest);

                lock (gSingleton)
                {
                    StreamWriter lStream = new StreamWriter(Path.Combine(lPath, DateTime.Now.ToString("yyyy"), lNomeArquivo));

                    foreach (string linha in lDetalhes)
                    {
                        lStream.WriteLine(linha);
                    }

                    lStream.Close();
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro em GerarArquivo - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }
Example #2
0
        /// <summary>
        /// Retorna o arquivo já no layout certo para geração do mesmo no diretório específico
        /// </summary>
        /// <param name="pRequest">Objeto de request para geração de arquivo</param>
        /// <returns>Retorno </returns>
        public List <string> ListarLinhasArquivo(GerarArquivoRequest pRequest)
        {
            List <string> lRetorno = new List <string>();

            AcessaDados lAcesso = new AcessaDados();

            lAcesso.ConnectionStringName = _ConnStringControleAcesso;

            //Header do arquivo
            lRetorno.Add("00OUTROS  OUT");

            using (DbCommand cmd = lAcesso.CreateCommand(CommandType.StoredProcedure, "Prc_ClientesAtivos_lst"))
            {
                lAcesso.AddInParameter(cmd, "@pAtivo", DbType.AnsiString, pRequest.StAtivo);

                DataTable table = lAcesso.ExecuteDbDataTable(cmd);

                foreach (DataRow dr in table.Rows)
                {
                    //Monta detalhe do arquivo
                    lRetorno.Add(this.MontaDetalheArquivo(dr["id_cliente"].ToString()));
                }
            }

            //Trailer do arquivo
            lRetorno.Add("99OUTROS  OUT");

            return(lRetorno);
        }
        private void GerarArquivoPeriodico(object state, bool signaled)
        {
            Thread.Sleep(TemporizadorGeradorArquivo);

            GerarArquivoRequest lRequest = new GerarArquivoRequest();

            string[] lHoraVerif = ConfigurationManager.AppSettings["HoraVerificacaoArquivo"].ToString().Split(';');

            List <string> lHorasVerif = lHoraVerif.ToList <string>();

            lRequest.StSituacao = 'A';

            if (lHorasVerif.Contains(DateTime.Now.ToString("HH:mm")))
            {
                logger.InfoFormat("Entrou na verificação do dia {0}", DateTime.Now.ToString("HH:mm"));

                string lNomeArquivoNovo = "CCOU" + DateTime.Now.ToString("MMdd") + ".DAT";

                if (!lNomeArquivoNovo.Equals(_gUltimoArquivoGerado))
                {
                    this.GerarArquivo(lRequest);

                    this.GerarArquivoTravelCard(lRequest);

                    lock (gSingleton)
                    {
                        this.EnviaNotificacaoArquivoProntoImportacao();
                    }

                    _gUltimoArquivoGerado = "CCOU" + DateTime.Now.ToString("MMdd") + ".DAT";
                }
            }
        }
        /// <summary>
        /// Gera o arquivo no diretório específico
        /// </summary>
        /// <param name="pRequest">Dados de requesta para geração o arquivo</param>
        public void GerarArquivo(GerarArquivoRequest pRequest)
        {
            try
            {
                _gDb = new PersistenciaDB();

                string lPath = ConfigurationManager.AppSettings["pathArquivo"].ToString();

                string lNomeArquivo = "CCOU" + DateTime.Now.ToString("MMdd") + ".DTA";

                GerarArquivoRequest lRequest = new GerarArquivoRequest();

                lRequest.StAtivo = 'S';

                List <string> lDetalhes = _gDb.ListarLinhasArquivo(lRequest);

                StreamWriter lStream = new StreamWriter(Path.Combine(lPath, lNomeArquivo));

                foreach (string linha in lDetalhes)
                {
                    lStream.WriteLine(linha);
                }

                lStream.Close();
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro em GerarArquivo - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }
Example #5
0
        /// <summary>
        /// Retorna o arquivo já no layout certo para geração do mesmo no diretório específico
        /// </summary>
        /// <param name="pRequest">Objeto de request para geração de arquivo</param>
        /// <returns>Retorno </returns>
        public List <string> ListarLinhasArquivo(GerarArquivoRequest pRequest)
        {
            List <string> lRetorno = new List <string>();

            //Header do arquivo
            lRetorno.Add("00OUTROS  OUT".PadRight(250, ' '));

            lRetorno.AddRange(this.ListarLinhasArquivosIR(pRequest));
            lRetorno.AddRange(this.ListarLinhasArquivosIRPlanoFechado(pRequest));

            //Trailer do arquivo
            lRetorno.Add("99OUTROSOUT".PadRight(250, ' '));

            return(lRetorno);
        }
        private void GerarArquivoPeriodico(object sender)
        {
            GerarArquivoRequest lRequest = new GerarArquivoRequest();

            ///TODO: Verificar para puxar do sinacor
            string lDiaVencimento = ConfigurationManager.AppSettings["DiaVencimento"].ToString();

            lRequest.StAtivo = 'S';

            logger.InfoFormat("Entrou na verificação do dia {0}", lDiaVencimento);

            if (lDiaVencimento.Equals(DateTime.Now.ToString("dd")))
            {
                this.GerarArquivo(lRequest);

                this.EnviarEmailAviso();
            }
        }
Example #7
0
        private void btnAtivar_Click(object sender, EventArgs e)
        {
            Gradual.OMS.AtivacaoPlanoCliente.ServicoAtivacaoPlanoCliente lServico = new Gradual.OMS.AtivacaoPlanoCliente.ServicoAtivacaoPlanoCliente();

            GerarArquivoRequest lRequest = new GerarArquivoRequest();

            lRequest.StSituacao = 'A';

            //lServico.GerarArquivo(lRequest);

            lServico.GerarArquivoTravelCard(lRequest);

            //lServico.VerificaPosicaoClienteSinacor(null,true);



            //lServico.VerificaPosicaoClienteSinacor(null, true);//.GerarArquivo(lRequest);

            //lServico.GerarArquivoPeriodico(null, true);
        }
        public void IniciarServico()
        {
            try
            {
                log4net.Config.XmlConfigurator.Configure();

                _ServicoStatus = ServicoStatus.EmExecucao;

                GerarArquivoRequest lRequest = new GerarArquivoRequest();

                TimerCallback CallBack = GerarArquivoPeriodico;

                if (stateTimer == null)
                {
                    stateTimer = new Timer(CallBack, autoEvent, 0, TemporizadorGeradorArquivo);

                    logger.Info("Iniciando o serviço de Geração de Arquivo de Planos do cliente (Integração com o Solicitações - Sinacor)");
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro ao iniciar o serviço de IntegracaoSolicitacoes  - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }
Example #9
0
        public List <string> ListarLinhasArquivosIR(GerarArquivoRequest pRequest)
        {
            List <string> lRetorno = new List <string>();

            AcessaDados lAcesso = new AcessaDados();

            AcessaDados _AcessaDados = new AcessaDados();

            AcessaDados _AcessaDadosMyCapital = new AcessaDados("ResultSet");

            Conexao Conexao = new Generico.Dados.Conexao();

            DbCommand cmdIR;

            DbCommand cmdDataCobranca;

            DataTable tabelaIR;

            lAcesso.ConnectionStringName = _ConnStringControleAcesso;

            _AcessaDados.ConnectionStringName = _ConnStringControleAcesso;

            _AcessaDadosMyCapital.ConnectionStringName = _ConnStringControleMyCapital;



            using (DbCommand cmd = lAcesso.CreateCommand(CommandType.StoredProcedure, "Prc_ClientesAtivos_lst"))
            {
                lAcesso.AddInParameter(cmd, "@pSt_situacao", DbType.AnsiString, pRequest.StSituacao);

                lAcesso.AddInParameter(cmd, "@ID_PRODUTO_PLANO", DbType.Int32, GerarArquivoRequest.Plano.IRMensal);

                DataTable table = lAcesso.ExecuteDbDataTable(cmd);

                foreach (DataRow dr in table.Rows)
                {
                    cmdIR = _AcessaDadosMyCapital.CreateCommand(CommandType.StoredProcedure, "SP_MC_VERIFICA_INTEGRACAO");

                    _AcessaDadosMyCapital.AddInParameter(cmdIR, "piCodCliente", DbType.Int32, dr["CD_CBLC"]);

                    tabelaIR = _AcessaDadosMyCapital.ExecuteOracleDataTable(cmdIR);

                    if (tabelaIR.Rows.Count < 1) //significa que já foi importado para o sistema da mycapital
                    {
                        try
                        {
                            DateTime dataCobranca = this.BuscarProximoDiaUtil();

                            //Monta detalhe do arquivo
                            lRetorno.Add(this.MontaDetalheArquivo(dataCobranca, dr["cd_cblc"], dr["vl_preco"], "1014"));

                            cmdDataCobranca = _AcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_ATUALIZA_DATA_COBRANCA");

                            //Valor cobrado com virgula no número decimal
                            string valorCobrado = "0";

                            if (dr["vl_preco"].ToString() != string.Empty && dr["vl_preco"].ToString() != "0")
                            {
                                valorCobrado = dr["vl_preco"].ToString().Insert(dr["vl_preco"].ToString().Length - 2, ".");
                            }

                            _AcessaDados.AddInParameter(cmdDataCobranca, "@CODIGO_CBLC", DbType.Int32, dr["CD_CBLC"]);
                            _AcessaDados.AddInParameter(cmdDataCobranca, "@DATA_COBRANCA", DbType.DateTime, dataCobranca);
                            _AcessaDados.AddInParameter(cmdDataCobranca, "@ID_PRODUTO_PLANO", DbType.Int32, GerarArquivoRequest.Plano.IRMensal);
                            _AcessaDados.AddInParameter(cmdDataCobranca, "@VL_COBRADO", DbType.String, valorCobrado);

                            _AcessaDados.ExecuteNonQuery(cmdDataCobranca);

                            //Envia e-mail notificando cliente
                            EnviaNotificacaoAtivacaoPlanoIR(Convert.ToInt32(dr["CD_CBLC"]), (int)GerarArquivoRequest.Plano.IRIntervalo);
                        }
                        catch (Exception ex)
                        {
                            logger.ErrorFormat("Erro ao atualizar a tabela de cobrança para o Plano IRAberto - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
                        }
                    }
                }
            }



            return(lRetorno);
        }
Example #10
0
        public List <string> ListarLinhasArquivoTravelCard(GerarArquivoRequest pRequest)
        {
            List <string> lRetorno = new List <string>();

            //Header do arquivo
            lRetorno.Add("00OUTROS  OUT".PadRight(250, ' '));


            int lIdProduto = Convert.ToInt32(ConfigurationManager.AppSettings["IdProdutoTravelCard"]);

            AcessaDados lAcessaDados = new AcessaDados();

            Conexao lConexao = new Generico.Dados.Conexao();

            DbCommand lCommand;


            DataTable lTabelaParaExportar;

            lAcessaDados.ConnectionStringName = _ConnStringControleAcesso;

            lCommand = lAcessaDados.CreateCommand(CommandType.Text, "SELECT * FROM vw_compras_para_exportar");

            logger.Info("Iniciando exportação de arquivo do TravelCard; Buscando dados em vw_compras_para_exportar...");

            lTabelaParaExportar = lAcessaDados.ExecuteDbDataTable(lCommand);

            logger.InfoFormat("[{0}] compras emcontradas", lTabelaParaExportar.Rows.Count);


            foreach (DataRow lRow in lTabelaParaExportar.Rows)
            {
                try
                {
                    DateTime lDataCobranca = this.BuscarProximoDiaUtil();

                    lCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_ATUALIZA_DATA_COBRANCA");

                    //Valor cobrado com virgula no número decimal
                    string lValorCobrado = "0";

                    if (lRow["VL_VALOR_BRUTO"].ToString() != string.Empty && lRow["VL_VALOR_BRUTO"].ToString() != "0")
                    {
                        lValorCobrado = lRow["VL_VALOR_BRUTO"].ToString().Insert(lRow["VL_VALOR_BRUTO"].ToString().Length - 2, ".");
                    }

                    lAcessaDados.AddInParameter(lCommand, "@CODIGO_CBLC", DbType.Int32, lRow["CD_CBLC"]);
                    lAcessaDados.AddInParameter(lCommand, "@DATA_COBRANCA", DbType.DateTime, lDataCobranca);
                    lAcessaDados.AddInParameter(lCommand, "@ID_PRODUTO_PLANO", DbType.Int32, lIdProduto);
                    lAcessaDados.AddInParameter(lCommand, "@VL_COBRADO", DbType.String, lValorCobrado);

                    lAcessaDados.ExecuteNonQuery(lCommand);

                    lCommand.Dispose();

                    lCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_venda_marcar_como_exportada");

                    lAcessaDados.AddInParameter(lCommand, "@ID_VENDA", DbType.Int32, lRow["ID_VENDA"]);

                    lAcessaDados.ExecuteNonQuery(lCommand);


                    //Monta detalhe do arquivo
                    lRetorno.Add(this.MontaDetalheArquivo(lDataCobranca, lRow["CD_CBLC"], lRow["VL_VALOR_BRUTO"], "1034"));
                }
                catch (Exception ex)
                {
                    logger.ErrorFormat("Erro ao processar linha para o TravelCard - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
                }
            }



            //Trailer do arquivo
            lRetorno.Add("99OUTROSOUT".PadRight(250, ' '));

            return(lRetorno);
        }