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); } }
/// <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); } }
/// <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(); } }
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); } }
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); }
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); }