public static void AtualizaSenadorValores() { using (var banco = new Banco()) { banco.ExecuteNonQuery("UPDATE sf_senador SET valor_total_ceaps=0;"); var dt = banco.GetTable(@"select id from sf_senador WHERE id IN ( select distinct id_sf_senador from sf_despesa )" ); object valor_total_ceaps; foreach (DataRow dr in dt.Rows) { banco.AddParameter("id_sf_senador", dr["id"]); valor_total_ceaps = banco.ExecuteScalar("select sum(valor) from sf_despesa where id_sf_senador=@id_sf_senador;"); banco.AddParameter("valor_total_ceaps", valor_total_ceaps); banco.AddParameter("id_sf_senador", dr["id"]); banco.ExecuteNonQuery( @"update sf_senador set valor_total_ceaps=@valor_total_ceaps where id=@id_sf_senador" ); } } }
protected void Page_Load(object sender, EventArgs e) { using (var banco = new Banco()) { GridViewDepudadoFederal.PreRender += GridViewDepudadoFederal_PreRender; DataTable dt; banco.AddParameter("@ideCadastro", Request.QueryString["id"]); dt = banco.GetTable(@"SELECT ideCadastro, txNomeParlamentar, uf, partido, condicao, email, nome FROM parlamentares WHERE ideCadastro=@ideCadastro" ); frvDeputadoFederal.DataSource = dt; frvDeputadoFederal.DataBind(); Master.Page.Title = "OPS :: Dep. " + dt.Rows[0]["txNomeParlamentar"].ToString(); banco.AddParameter("@ideCadastro", Request.QueryString["id"]); dt = banco.GetTable(@"SELECT SUM(vlrLiquido) AS ValorTotal, txtDescricao AS Despesa FROM lancamentos WHERE ideCadastro=@ideCadastro GROUP BY txtDescricao ORDER BY 1 DESC" ); GridViewDepudadoFederal.DataSource = dt; GridViewDepudadoFederal.DataBind(); Session["pesquisa0"] = dt; ValorTotal.InnerText = Convert.ToDecimal(dt.Compute("Sum(ValorTotal)", "")).ToString("#,###.00"); banco.AddParameter("@ideCadastro", Request.QueryString["id"]); TotalFuncionarios.InnerText = banco.ExecuteScalar(@"SELECT count(1) FROM secretario WHERE deputado=@ideCadastro").ToString(); } }
private static DataRow LocalizaInsereAtividade(DataTable dtFornecedoresAtividade, IAtividade atividadesSecundaria) { var drs = dtFornecedoresAtividade.Select("codigo='" + atividadesSecundaria.code + "'"); var dr = dtFornecedoresAtividade.NewRow(); if (drs.Length == 0) { using (var banco = new Banco()) { var strSql = @"insert into fornecedor_atividade (codigo, descricao) values (@codigo, @descricao); SELECT LAST_INSERT_ID();"; banco.AddParameter("@codigo", atividadesSecundaria.code); banco.AddParameter("@descricao", atividadesSecundaria.text); dr["id"] = Convert.ToInt32(banco.ExecuteScalar(strSql)); dr["codigo"] = atividadesSecundaria.code; dr["descricao"] = atividadesSecundaria.text; dtFornecedoresAtividade.Rows.Add(dr); return(dr); } } return(drs[0]); }
public dynamic Consulta(string cnpj, string nome) { string sSql = @"SELECT id as id_fornecedor , cnpj_cpf , nome , doador FROM fornecedor WHERE (1=1)"; using (Banco banco = new Banco()) { if (!string.IsNullOrEmpty(cnpj)) { cnpj = Utils.RemoveCaracteresNaoNumericos(cnpj); if (cnpj.Length == 14 || cnpj.Length == 11) { banco.AddParameter("cnpj", cnpj); sSql += " AND cnpj_cpf = @cnpj"; } else { banco.AddParameter("cnpj", cnpj + "%"); sSql += " AND cnpj_cpf like @cnpj"; } } else { if (!string.IsNullOrEmpty(nome)) { banco.AddParameter("nome", "%" + Utils.MySqlEscape(nome) + "%"); sSql += " AND nome like @nome"; } } sSql += " order by nome limit 100;"; var lstFornecedor = new List <dynamic>(); using (MySqlDataReader reader = banco.ExecuteReader(sSql)) { while (reader.Read()) { lstFornecedor.Add(new { id_fornecedor = reader["id_fornecedor"].ToString(), cnpj_cpf = reader["cnpj_cpf"].ToString(), nome = reader["nome"].ToString(), }); } return(lstFornecedor); } } }
private static void InserirControle(int controle, string cnpj_cpf, string mensagem) { using (var banco = new Banco()) { banco.AddParameter("@cnpj_cpf", cnpj_cpf); banco.AddParameter("@controle", controle); banco.AddParameter("@mensagem", mensagem); banco.ExecuteNonQuery(@"update fornecedor set controle=@controle, mensagem=@mensagem where cnpj_cpf=@cnpj_cpf;"); } }
public dynamic RecebimentosMensaisPorAnoSenadores(int id) { using (Banco banco = new Banco()) { string strSql = @" SELECT l.mes, l.ano, SUM(l.valor) AS valor_total FROM sf_despesa l WHERE l.id_fornecedor = @id group by l.ano, l.mes order by l.ano, l.mes; " ; banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString())) { List <dynamic> lstRetorno = new List <dynamic>(); var lstValoresMensais = new decimal?[12]; string anoControle = string.Empty; bool existeGastoNoAno = false; while (reader.Read()) { if (reader["ano"].ToString() != anoControle) { if (existeGastoNoAno) { lstRetorno.Add(new { name = anoControle.ToString(), data = lstValoresMensais }); lstValoresMensais = new decimal?[12]; existeGastoNoAno = false; } anoControle = reader["ano"].ToString(); } if (Convert.ToDecimal(reader["valor_total"]) > 0) { lstValoresMensais[Convert.ToInt32(reader["mes"]) - 1] = Convert.ToDecimal(reader["valor_total"]); existeGastoNoAno = true; } } if (existeGastoNoAno) { lstRetorno.Add(new { name = anoControle.ToString(), data = lstValoresMensais }); } return(lstRetorno); } } }
//public static void ConsultarCNPJ() //{ // int totalErros = 0, totalAcertos = 0; // while (true) // { // DataTable dtFornecedores; // using (var banco = new Banco()) // { // dtFornecedores = banco.GetTable( // @"select cnpj_cpf, f.id, fi.id_fornecedor // from fornecedor f // left join fornecedor_info fi on f.id = fi.id_fornecedor // where char_length(f.cnpj_cpf) = 14 // and f.cnpj_cpf <> '00000000000000' // -- and obtido_em < '2017-01-01' // and fi.id_fornecedor is null // -- and ip_colaborador is null -- not in ('170509', '170510', '170511', '170512') // -- and controle is null // -- and controle = 1 // and controle <> 5 // -- and (f.mensagem is null or f.mensagem <> 'O número do CNPJ não foi localizado na Receita Federal') // order by 1 desc"); // } // if (dtFornecedores.Rows.Count == 0) break; // Console.WriteLine("Consultando CNPJ's Local: {0} itens.", dtFornecedores.Rows.Count); // foreach (DataRow item in dtFornecedores.Rows) // { // try // { // Receita.ConsultarCNPJ(item["cnpj_cpf"].ToString(), ref totalAcertos, ref totalErros); // } // catch (Exception e) // { // Console.WriteLine(e.Message); // System.Threading.Thread.Sleep(3600000); // } // } // }; //} public static void AtualizaFornecedorDoador() { using (var banco = new Banco()) { var dt = banco.GetTable("select id, cnpj_cpf from fornecedor"); foreach (DataRow dr in dt.Rows) { banco.AddParameter("cnpj", dr["cnpj_cpf"]); var existe = banco.ExecuteScalar("select 1 from eleicao_doacao where raiz_cnpj_cpf_doador=@cnpj;"); if (existe != null) { banco.AddParameter("id", dr["id"]); banco.ExecuteNonQuery("update fornecedor set doador=1 where id=@id"); } } } }
public dynamic Consultar(int id) { using (Banco banco = new Banco()) { var strSql = @" SELECT d.id as id_sf_senador , d.nome as nome_parlamentar , d.nome_completo as nome_civil , d.nascimento , d.sexo , d.id_partido , p.sigla as sigla_partido , p.nome as nome_partido , d.id_estado , e.sigla as sigla_estado , e.nome as nome_estado , d.email , d.valor_total_ceaps FROM sf_senador d LEFT JOIN partido p on p.id = d.id_partido LEFT JOIN estado e on e.id = d.id_estado WHERE d.id = @id " ; banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql)) { if (reader.Read()) { return(new { id_sf_senador = reader["id_sf_senador"], nome_parlamentar = reader["nome_parlamentar"].ToString(), nome_civil = reader["nome_civil"].ToString(), nascimento = Utils.FormataData(reader["nascimento"]), sexo = reader["sexo"].ToString(), id_partido = reader["id_partido"], sigla_estado = reader["sigla_estado"].ToString(), nome_partido = reader["nome_partido"].ToString(), id_estado = reader["id_estado"], sigla_partido = reader["sigla_partido"].ToString(), nome_estado = reader["nome_estado"].ToString(), email = reader["email"].ToString(), valor_total_ceaps = Utils.FormataValor(reader["valor_total_ceaps"]), }); } return(null); } } }
private void Gravar() { try { using (Banco banco = new Banco()) { banco.BeginTransaction(); banco.AddParameter("UserName", System.Web.HttpContext.Current.User.Identity.Name); banco.ExecuteNonQuery("DELETE FROM senador_usuario WHERE UserName = @UserName"); foreach (GridViewRow row in GridView.Rows) { if (row.RowType == DataControlRowType.DataRow) { CheckBox chkRow = (row.Cells[0].FindControl("CheckBoxSelecionar") as CheckBox); if (chkRow.Checked && chkRow.Enabled == true) { try { banco.AddParameter("UserName", System.Web.HttpContext.Current.User.Identity.Name); banco.AddParameter("CodigoParlamentar", row.Cells[3].Text); banco.ExecuteNonQuery("INSERT INTO senador_usuario (UserName, CodigoParlamentar) VALUES (@UserName, @CodigoParlamentar)"); } catch (Exception ex) { } } } } banco.CommitTransaction(); } } catch (Exception ex) { } }
public dynamic MaioresNotas(int id) { using (Banco banco = new Banco()) { var strSql = new StringBuilder(); strSql.AppendLine(@" SELECT l1.id as id_sf_despesa , l1.id_fornecedor , pj.cnpj_cpf , pj.nome AS nome_fornecedor , l1.valor from ( SELECT l.id , l.valor , l.id_fornecedor FROM sf_despesa l WHERE l.id_sf_senador = @id order by l.valor desc LIMIT 10 ) l1 LEFT JOIN fornecedor pj on pj.id = l1.id_fornecedor order by l1.valor desc " ); banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString())) { List <dynamic> lstRetorno = new List <dynamic>(); while (reader.Read()) { lstRetorno.Add(new { id_sf_despesa = reader["id_sf_despesa"].ToString(), id_fornecedor = reader["id_fornecedor"].ToString(), cnpj_cpf = reader["cnpj_cpf"].ToString(), nome_fornecedor = reader["nome_fornecedor"].ToString(), valor = Utils.FormataValor(reader["valor"]) }); } return(lstRetorno); } } }
public dynamic QuadroSocietario(int id) { try { using (Banco banco = new Banco()) { string strSql = @"SELECT fs.nome , fsq1.descricao as qualificacao , fs.nome_representante as nome_representante_legal , fsq2.descricao as qualificacao_representante_legal FROM fornecedor_socio fs LEFT JOIN fornecedor_socio_qualificacao fsq1 on fsq1.id = fs.id_fornecedor_socio_qualificacao LEFT JOIN fornecedor_socio_qualificacao fsq2 on fsq2.id = fs.id_fornecedor_socio_representante_qualificacao where fs.id_fornecedor = @id" ; banco.AddParameter("id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql)) { List <dynamic> lstRetorno = new List <dynamic>(); while (reader.Read()) { lstRetorno.Add(new { nome = reader["nome"].ToString(), qualificacao = reader["qualificacao"].ToString(), nome_representante_legal = reader["nome_representante_legal"].ToString(), qualificacao_representante_legal = reader["qualificacao_representante_legal"].ToString() }); } return(lstRetorno); } } } catch (Exception) { } //TODO: logar erro return(null); }
public dynamic DeputadoFederalMaioresGastos(int id) { using (Banco banco = new Banco()) { var strSql = new StringBuilder(); strSql.Append( @"SELECT l1.id_cf_deputado , p.nome_parlamentar , l1.valor_total FROM ( select SUM(l.valor_liquido) AS valor_total , l.id_cf_deputado from cf_despesa l WHERE l.id_fornecedor = @id GROUP BY l.id_cf_deputado ORDER BY valor_total desc LIMIT 10 ) l1 LEFT JOIN cf_deputado p ON p.id = l1.id_cf_deputado" ); banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString())) { List <dynamic> lstRetorno = new List <dynamic>(); while (reader.Read()) { lstRetorno.Add(new { id_cf_deputado = reader["id_cf_deputado"].ToString(), nome_parlamentar = reader["nome_parlamentar"].ToString(), valor_total = Utils.FormataValor(reader["valor_total"]) }); } return(lstRetorno); } } }
public dynamic SenadoresMaioresGastos(int id) { using (Banco banco = new Banco()) { var strSql = @"SELECT l1.id_sf_senador , p.nome as nome_parlamentar , l1.valor_total FROM ( select SUM(l.valor) AS valor_total , l.id_sf_senador from sf_despesa l WHERE l.id_fornecedor = @id GROUP BY l.id_sf_senador ORDER BY valor_total desc LIMIT 10 ) l1 LEFT JOIN sf_senador p ON p.id = l1.id_sf_senador" ; banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql)) { List <dynamic> lstRetorno = new List <dynamic>(); while (reader.Read()) { lstRetorno.Add(new { id_sf_senador = reader["id_sf_senador"].ToString(), nome_parlamentar = reader["nome_parlamentar"].ToString(), valor_total = Utils.FormataValor(reader["valor_total"]) }); } return(lstRetorno); } } }
public dynamic SecretariosPorDeputado(int id) { using (Banco banco = new Banco()) { var strSql = new StringBuilder(); strSql.AppendLine(@" SELECT s.id as id_cf_secretario , s.id_cf_gabinete , s.nome , s.orgao , s.data FROM cf_secretario s WHERE s.id_cf_deputado = @id " ); banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString())) { var lstRetorno = new List <dynamic>(); while (reader.Read()) { lstRetorno.Add(new { id_cf_secretario = reader["id_cf_secretario"], id_cf_gabinete = reader["id_cf_gabinete"], nome = reader["nome"].ToString(), orgao = reader["orgao"].ToString(), data = Utils.FormataData(reader["data"]) }); } return(lstRetorno); } } }
//internal dynamic Pesquisa(FiltroDropDownDTO filtro) //{ // using (Banco banco = new Banco()) // { // var strSql = new StringBuilder(); // strSql.Append("SELECT SQL_CALC_FOUND_ROWS txtCNPJCPF, txtBeneficiario FROM fornecedores "); // if (!string.IsNullOrEmpty(filtro.q)) // { // strSql.AppendFormat("WHERE txtBeneficiario LIKE @q OR txtCNPJCPF LIKE @q ", filtro.q); // banco.AddParameter("@q", "%" + filtro.q + "%"); // } // else if (!string.IsNullOrEmpty(filtro.qs)) // { // strSql.AppendFormat("WHERE txtCNPJCPF IN({0}) ", "'" + filtro.qs.Replace(",", "','") + "'"); // } // strSql.AppendFormat("ORDER BY txtBeneficiario, Uf "); // strSql.AppendFormat("LIMIT {0},{1}; ", ((filtro.page ?? 1) - 1) * filtro.count, filtro.count); // strSql.Append("SELECT FOUND_ROWS(); "); // var lstRetorno = new List<dynamic>(); // using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString())) // { // while (reader.Read()) // { // lstRetorno.Add(new // { // id = reader[0].ToString(), // text = string.Format("{0} ({1})", reader[1].ToString(), reader[0].ToString()), // }); // } // reader.NextResult(); // reader.Read(); // return new // { // total_count = reader[0], // results = lstRetorno // }; // } // } //} public dynamic Consulta(int id) { using (Banco banco = new Banco()) { banco.AddParameter("id", id); using (MySqlDataReader reader = banco.ExecuteReader( @"SELECT pj.id as id_fornecedor , pj.cnpj_cpf , pj.nome , pj.doador , pji.data_de_abertura , pji.nome_fantasia , CONCAT(a.codigo,' - ',a.descricao) as atividade_principal , CONCAT(nj.codigo,' - ',nj.descricao) as natureza_juridica , pji.logradouro , pji.numero , pji.complemento , pji.cep , pji.bairro , pji.municipio as cidade , pji.estado , pji.situacao_cadastral , pji.data_da_situacao_cadastral , pji.motivo_situacao_cadastral , pji.situacao_especial , pji.data_situacao_especial , pji.endereco_eletronico , pji.telefone , pji.ente_federativo_responsavel , pji.obtido_em , pji.capital_social FROM fornecedor pj LEFT JOIN fornecedor_info pji on pji.id_fornecedor = pj.id LEFT JOIN fornecedor_atividade a on a.id = pji.id_fornecedor_atividade_principal LEFT JOIN fornecedor_natureza_juridica nj on nj.id = pji.id_fornecedor_natureza_juridica WHERE pj.id = @id; SELECT fa.codigo, fa.descricao FROM fornecedor_atividade_secundaria fas INNER JOIN fornecedor_atividade fa on fa.id = fas.id_fornecedor_atividade where id_fornecedor = @id;" )) { if (reader.Read()) { var fornecedor = new { id_fornecedor = reader["id_fornecedor"].ToString(), cnpj_cpf = reader["cnpj_cpf"].ToString(), data_de_abertura = Utils.FormataData(reader["data_de_abertura"]), nome = reader["nome"].ToString(), nome_fantasia = reader["nome_fantasia"].ToString(), atividade_principal = reader["atividade_principal"].ToString(), natureza_juridica = reader["natureza_juridica"].ToString(), logradouro = reader["logradouro"].ToString(), numero = reader["numero"].ToString(), complemento = reader["complemento"].ToString(), cep = reader["cep"].ToString(), bairro = reader["bairro"].ToString(), cidade = reader["cidade"].ToString(), estado = reader["estado"].ToString(), situacao_cadastral = reader["situacao_cadastral"].ToString(), data_da_situacao_cadastral = reader["data_da_situacao_cadastral"].ToString(), motivo_situacao_cadastral = reader["motivo_situacao_cadastral"].ToString(), situacao_especial = reader["situacao_especial"].ToString(), data_situacao_especial = reader["data_situacao_especial"].ToString(), endereco_eletronico = reader["endereco_eletronico"].ToString(), telefone = reader["telefone"].ToString(), ente_federativo_responsavel = reader["ente_federativo_responsavel"].ToString(), obtido_em = Utils.FormataDataHora(reader["obtido_em"]), capital_social = Utils.FormataValor(reader["capital_social"]), doador = reader["doador"], atividade_secundaria = new List <string>() }; reader.NextResult(); while (reader.Read()) { fornecedor.atividade_secundaria.Add($"{reader["codigo"]} - {reader["descricao"]}"); } return(fornecedor); } return(null); } } }
public static void AtualizaSenadores() { using (var banco = new Banco()) { DataTable dtSenadores = banco.GetTable("SELECT id FROM sf_senador"); foreach (DataRow dr in dtSenadores.Rows) { try { using (var senado = new DataSet()) { senado.ReadXml("http://legis.senado.leg.br/dadosabertos/senador/" + dr["id"].ToString()); DataRow senador = senado.Tables["IdentificacaoParlamentar"].Rows[0]; DataRow senadosDadosBasicos = senado.Tables["DadosBasicosParlamentar"].Rows[0]; banco.AddParameter("NomeParlamentar", Convert.ToString(senador["NomeParlamentar"])); banco.AddParameter("NomeCompletoParlamentar", Convert.ToString(senador["NomeCompletoParlamentar"])); banco.AddParameter("SexoParlamentar", Convert.ToString(senador["SexoParlamentar"])[0].ToString()); try { banco.AddParameter("Url", Convert.ToString(senador["UrlPaginaParlamentar"])); } catch (Exception) { banco.AddParameter("Url", DBNull.Value); } try { banco.AddParameter("Foto", Convert.ToString(senador["UrlFotoParlamentar"])); } catch (Exception) { banco.AddParameter("Foto", DBNull.Value); } banco.AddParameter("SiglaPartido", Convert.ToString(senador["SiglaPartidoParlamentar"])); try { banco.AddParameter("SiglaUf", Convert.ToString(senador["UfParlamentar"])); } catch (Exception) { try { banco.AddParameter("SiglaUf", Convert.ToString(senadosDadosBasicos["UfNaturalidade"])); } catch (Exception) { try { DataRow ultimoMandato = senado.Tables["UltimoMandato"].Rows[0]; banco.AddParameter("SiglaUf", Convert.ToString(ultimoMandato["UfParlamentar"])); } catch (Exception) { banco.AddParameter("SiglaUf", DBNull.Value); } } } try { banco.AddParameter("EmailParlamentar", Convert.ToString(senador["EmailParlamentar"])); } catch (Exception) { banco.AddParameter("EmailParlamentar", DBNull.Value); } banco.AddParameter("DataNascimento", Convert.ToString(senadosDadosBasicos["DataNascimento"])); banco.AddParameter("CodigoParlamentar", Convert.ToInt32(senador["CodigoParlamentar"])); // Ao invés de gravar o fim do mandato grava o início //banco.AddParameter("MandatoAtual", Convert.ToDateTime(senador["MandatoAtual"]).AddYears(-9).ToString("yyyyMM")); banco.ExecuteNonQuery( @"UPDATE sf_senador SET nome = @NomeParlamentar , nome_completo = @NomeCompletoParlamentar , sexo = @SexoParlamentar , url = @Url , foto = @Foto , id_partido = (SELECT id FROM partido where sigla like @SiglaPartido) , id_estado = (SELECT id FROM estado where sigla like @SiglaUf) , email = @EmailParlamentar , nascimento = @DataNascimento WHERE id = @CodigoParlamentar" ); } } catch (Exception ex) { Console.WriteLine(ex.ToFullDescriptionString()); } } } }
public int AtualizaDados(Fornecedor fornecedor) { int id_fornecedor = 0; using (Banco banco = new Banco()) { bool fornecedor_existente = false; string strSqlLocaliza = @" SELECT f.id, fi.id_fornecedor FROM fornecedor f LEFT JOIN fornecedor_info fi on fi.id_fornecedor = f.id where f.cnpj_cpf = @cnpj_cpf " ; banco.AddParameter("cnpj_cpf", fornecedor.CnpjCpf); using (var dReader = banco.ExecuteReader(strSqlLocaliza)) { if (dReader.Read()) { id_fornecedor = Convert.ToInt32(dReader["id"]); fornecedor_existente = !Convert.IsDBNull(dReader["id_fornecedor"]); } else { throw new BusinessException("Fornecedor inexistente."); } } object id_fornecedor_atividade_principal; object id_fornecedor_natureza_juridica; try { banco.AddParameter("codigo", fornecedor.AtividadePrincipal.Split(' ')[0]); id_fornecedor_atividade_principal = banco.ExecuteScalar("select id from fornecedor_atividade where codigo=@codigo"); } catch (Exception) { id_fornecedor_atividade_principal = DBNull.Value; } try { banco.AddParameter("codigo", fornecedor.NaturezaJuridica.Split(' ')[0]); id_fornecedor_natureza_juridica = banco.ExecuteScalar("select id from fornecedor_natureza_juridica where codigo=@codigo"); } catch (Exception) { id_fornecedor_natureza_juridica = DBNull.Value; } banco.AddParameter("nome", fornecedor.RazaoSocial); banco.AddParameter("data_de_abertura", Utils.ParseDateTime(fornecedor.DataAbertura)); banco.AddParameter("nome_fantasia", fornecedor.NomeFantasia); banco.AddParameter("id_fornecedor_atividade_principal", id_fornecedor_atividade_principal); banco.AddParameter("id_fornecedor_natureza_juridica", id_fornecedor_natureza_juridica); banco.AddParameter("logradouro", fornecedor.Logradouro); banco.AddParameter("numero", fornecedor.Numero); banco.AddParameter("complemento", fornecedor.Complemento); banco.AddParameter("cep", fornecedor.Cep); banco.AddParameter("bairro", fornecedor.Bairro); banco.AddParameter("municipio", fornecedor.Cidade); banco.AddParameter("estado", fornecedor.Uf); banco.AddParameter("situacao_cadastral", fornecedor.Situacao); banco.AddParameter("data_da_situacao_cadastral", Utils.ParseDateTime(fornecedor.DataSituacao)); banco.AddParameter("motivo_situacao_cadastral", fornecedor.MotivoSituacao); banco.AddParameter("situacao_especial", fornecedor.SituacaoEspecial); banco.AddParameter("data_situacao_especial", Utils.ParseDateTime(fornecedor.DataSituacaoEspecial)); banco.AddParameter("endereco_eletronico", fornecedor.Email); banco.AddParameter("telefone", fornecedor.Telefone); banco.AddParameter("ente_federativo_responsavel", fornecedor.EnteFederativoResponsavel); banco.AddParameter("capital_social", ObterValor(fornecedor.CapitalSocial)); //banco.AddParameter("ip_colaborador", fornecedor.UsuarioInclusao); banco.AddParameter("id_fornecedor", id_fornecedor); string sql; if (!fornecedor_existente) { banco.AddParameter("cnpj", fornecedor.CnpjCpf); sql = @"INSERT INTO fornecedor_info ( nome, data_de_abertura, nome_fantasia, id_fornecedor_atividade_principal, id_fornecedor_natureza_juridica, logradouro, numero, complemento, cep, bairro, municipio, estado, situacao_cadastral, data_da_situacao_cadastral, motivo_situacao_cadastral, situacao_especial, data_situacao_especial, endereco_eletronico, telefone, ente_federativo_responsavel, capital_social, obtido_em, id_fornecedor, cnpj ) VALUES ( @nome, @data_de_abertura, @nome_fantasia, @id_fornecedor_atividade_principal, @id_fornecedor_natureza_juridica, @logradouro, @numero, @complemento, @cep, @bairro, @municipio, @estado, @situacao_cadastral, @data_da_situacao_cadastral, @motivo_situacao_cadastral, @situacao_especial, @data_situacao_especial, @endereco_eletronico, @telefone, @ente_federativo_responsavel, @capital_social, NOW(), @id_fornecedor, @cnpj ) " ; } else { sql = @"UPDATE fornecedor_info SET nome = @nome, data_de_abertura = @data_de_abertura, nome_fantasia = @nome_fantasia, id_fornecedor_atividade_principal = @id_fornecedor_atividade_principal, id_fornecedor_natureza_juridica = @id_fornecedor_natureza_juridica, logradouro = @logradouro, numero = @numero, complemento = @complemento, cep = @cep, bairro = @bairro, municipio = @municipio, estado = @estado, situacao_cadastral = @situacao_cadastral, data_da_situacao_cadastral = @data_da_situacao_cadastral, motivo_situacao_cadastral = @motivo_situacao_cadastral, situacao_especial = @situacao_especial, data_situacao_especial = @data_situacao_especial, endereco_eletronico = @endereco_eletronico, telefone = @telefone, ente_federativo_responsavel = @ente_federativo_responsavel, capital_social = @capital_social, obtido_em = NOW() WHERE id_fornecedor = @id_fornecedor " ; } banco.ExecuteNonQuery(sql.ToString()); banco.AddParameter("id_fornecedor", id_fornecedor); banco.ExecuteScalar("DELETE FROM fornecedor_atividade_secundaria WHERE id_fornecedor = @id_fornecedor"); if (fornecedor.lstFornecedorQuadroSocietario != null) { foreach (var atividade in fornecedor.AtividadeSecundaria) { if (string.IsNullOrEmpty(atividade) || atividade == "********") { continue; } object id_fornecedor_atividade; try { banco.AddParameter("codigo", atividade.Split(' ')[0]); id_fornecedor_atividade = banco.ExecuteScalar("select id from fornecedor_atividade where codigo=@codigo"); } catch (Exception) { continue; } banco.AddParameter("id_fornecedor", id_fornecedor); banco.AddParameter("id_fornecedor_atividade", id_fornecedor_atividade); banco.ExecuteNonQuery( @"INSERT fornecedor_atividade_secundaria ( id_fornecedor, id_fornecedor_atividade ) VALUES ( @id_fornecedor, @id_fornecedor_atividade )" ); } } banco.AddParameter("id_fornecedor", id_fornecedor); banco.ExecuteScalar("DELETE FROM fornecedor_socio WHERE id_fornecedor = @id_fornecedor"); if (fornecedor.lstFornecedorQuadroSocietario != null) { foreach (var qas in fornecedor.lstFornecedorQuadroSocietario) { banco.AddParameter("id_fornecedor", id_fornecedor); banco.AddParameter("nome", qas.Nome); if (!string.IsNullOrEmpty(qas.Qualificacao)) { banco.AddParameter("id_fornecedor_socio_qualificacao", Convert.ToInt32(qas.Qualificacao.Split('-')[0])); } else { banco.AddParameter("id_fornecedor_socio_qualificacao", DBNull.Value); } banco.AddParameter("nome_representante", qas.NomeRepresentanteLegal); if (!string.IsNullOrEmpty(qas.QualificacaoRepresentanteLegal)) { banco.AddParameter("id_fornecedor_socio_representante_qualificacao", Convert.ToInt32(qas.QualificacaoRepresentanteLegal.Split('-')[0])); } else { banco.AddParameter("id_fornecedor_socio_representante_qualificacao", DBNull.Value); } banco.ExecuteNonQuery( @"INSERT fornecedor_socio ( id_fornecedor, nome, id_fornecedor_socio_qualificacao, nome_representante, id_fornecedor_socio_representante_qualificacao ) VALUES ( @id_fornecedor, @nome, @id_fornecedor_socio_qualificacao, @nome_representante, @id_fornecedor_socio_representante_qualificacao )" ); } } banco.AddParameter("@id", id_fornecedor); banco.AddParameter("@controle", null); banco.AddParameter("@mensagem", null); banco.ExecuteNonQuery(@"update fornecedor set controle=@controle, mensagem=@mensagem where id=@id;"); } return(id_fornecedor); }
public static void CarregaSenadores() { //StringBuilder email = new StringBuilder(); try { using (var banco = new Banco()) { banco.ExecuteNonQuery("UPDATE sf_senador SET ativo = 'N'"); using (var senado = new DataSet()) { senado.ReadXml("http://legis.senado.gov.br/dadosabertos/senador/lista/atual"); using (var senadores = senado.Tables["IdentificacaoParlamentar"]) { foreach (DataRow senador in senadores.Rows) { try { banco.AddParameter("CodigoParlamentar", Convert.ToInt32(senador["CodigoParlamentar"])); banco.AddParameter("nome_parlamentar", Convert.ToString(senador["nome_parlamentar"]).ToUpper()); banco.AddParameter("NomeCompletoParlamentar", Convert.ToString(senador["NomeCompletoParlamentar"])); banco.AddParameter("SexoParlamentar", Convert.ToString(senador["SexoParlamentar"])[0].ToString()); banco.AddParameter("Url", Convert.ToString(senador["UrlPaginaParlamentar"])); banco.AddParameter("Foto", Convert.ToString(senador["UrlFotoParlamentar"])); banco.AddParameter("SiglaPartido", Convert.ToString(senador["SiglaPartidoParlamentar"])); banco.AddParameter("SiglaUf", Convert.ToString(senador["UfParlamentar"])); banco.AddParameter("EmailParlamentar", Convert.ToString(senador["EmailParlamentar"])); // Ao invés de gravar o fim do mandato grava o início //banco.AddParameter("MandatoAtual", Convert.ToDateTime(senador["MandatoAtual"]).AddYears(-9).ToString("yyyyMM")); banco.ExecuteNonQuery( @"INSERT INTO sf_senador ( id, nome, nome_completo, sexo, url, foto, id_partido, id_estado, email, ativo ) VALUES ( @CodigoParlamentar, @nome_parlamentar, @NomeCompletoParlamentar, @SexoParlamentar, @Url, @Foto, (SELECT id FROM partido where sigla like @SiglaPartido), (SELECT id FROM estado where sigla like @SiglaUf), @EmailParlamentar, 'S' )" ); } catch { banco.AddParameter("NomeCompletoParlamentar", Convert.ToString(senador["NomeCompletoParlamentar"])); banco.AddParameter("SexoParlamentar", Convert.ToString(senador["SexoParlamentar"])[0].ToString()); banco.AddParameter("Url", Convert.ToString(senador["UrlPaginaParlamentar"])); banco.AddParameter("Foto", Convert.ToString(senador["UrlFotoParlamentar"])); banco.AddParameter("SiglaPartido", Convert.ToString(senador["SiglaPartidoParlamentar"])); banco.AddParameter("SiglaUf", Convert.ToString(senador["UfParlamentar"])); banco.AddParameter("EmailParlamentar", Convert.ToString(senador["EmailParlamentar"])); banco.AddParameter("CodigoParlamentar", Convert.ToInt32(senador["CodigoParlamentar"])); // Ao invés de gravar o fim do mandato grava o início //banco.AddParameter("MandatoAtual", Convert.ToDateTime(senador["MandatoAtual"]).AddYears(-9).ToString("yyyyMM")); banco.ExecuteNonQuery( @"UPDATE sf_senador SET nome_completo = @NomeCompletoParlamentar , sexo = @SexoParlamentar , url = @Url , foto = @Foto , id_partido = (SELECT id FROM partido where sigla like @SiglaPartido) , id_estado = (SELECT id FROM estado where sigla like @SiglaUf) , email = @EmailParlamentar , ativo = 'S' WHERE id = @CodigoParlamentar" ); } } } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private static void CarregaDadosCsv(string file, int ano, bool completo) { int indice = 0; int ANO = indice++; int MES = indice++; int SENADOR = indice++; int TIPO_DESPESA = indice++; int CNPJ_CPF = indice++; int FORNECEDOR = indice++; int DOCUMENTO = indice++; int DATA = indice++; int DETALHAMENTO = indice++; int VALOR_REEMBOLSADO = indice++; //var linhaAtual = 0; using (var banco = new Banco()) { if (!completo) { banco.ExecuteNonQuery(@" delete from sf_despesa where ano=" + DateTime.Now.Year + @"; -- select max(id)+1 from sf_despesa ALTER TABLE sf_despesa AUTO_INCREMENT = 196405; "); } LimpaDespesaTemporaria(banco); using (var reader = new StreamReader(file, Encoding.GetEncoding("ISO-8859-1"))) { short count = 0; while (!reader.EndOfStream) { count++; var linha = reader.ReadLine(); if (string.IsNullOrEmpty(linha)) { continue; } if (!linha.EndsWith("\"")) { linha += reader.ReadLine(); } var valores = ImportacaoUtils.ParseCsvRowToList(@""";""", linha); if (count == 1) //Pula primeira linha, data da atualização { continue; } if (count == 2) { if ( (valores[ANO] != "ANO") || (valores[MES] != "MES") || (valores[SENADOR] != "SENADOR") || (valores[TIPO_DESPESA] != "TIPO_DESPESA") || (valores[CNPJ_CPF] != "CNPJ_CPF") || (valores[FORNECEDOR] != "FORNECEDOR") || (valores[DOCUMENTO] != "DOCUMENTO") || (valores[DATA] != "DATA") || (valores[DETALHAMENTO] != "DETALHAMENTO") || (valores[VALOR_REEMBOLSADO] != "VALOR_REEMBOLSADO") ) { throw new Exception("Mudança de integração detectada para o Senado Federal"); } // Pular linha de titulo continue; } banco.AddParameter("ano", Convert.ToInt32(valores[ANO])); banco.AddParameter("mes", Convert.ToInt32(valores[MES])); banco.AddParameter("senador", valores[SENADOR]); banco.AddParameter("tipo_despesa", valores[TIPO_DESPESA]); banco.AddParameter("cnpj_cpf", !string.IsNullOrEmpty(valores[CNPJ_CPF]) ? Utils.RemoveCaracteresNaoNumericos(valores[CNPJ_CPF]) : ""); banco.AddParameter("fornecedor", valores[FORNECEDOR]); banco.AddParameter("documento", valores[DOCUMENTO]); banco.AddParameter("data", !string.IsNullOrEmpty(valores[DATA]) ? (object)Convert.ToDateTime(valores[DATA]) : DBNull.Value); banco.AddParameter("detalhamento", valores[DETALHAMENTO]); banco.AddParameter("valor_reembolsado", Convert.ToDouble(valores[VALOR_REEMBOLSADO])); banco.ExecuteNonQuery( @"INSERT INTO sf_despesa_temp ( ano, mes, senador, tipo_despesa, cnpj_cpf, fornecedor, documento, `data`, detalhamento, valor_reembolsado ) VALUES ( @ano, @mes, @senador, @tipo_despesa, @cnpj_cpf, @fornecedor, @documento, @data, @detalhamento, @valor_reembolsado )" ); } //if (completo && (++linhaAtual == 10000)) //{ // linhaAtual = 0; // ProcessarDespesasTemp(banco, completo); //} } ProcessarDespesasTemp(banco, completo); } if (ano == DateTime.Now.Year) { AtualizaSenadorValores(); AtualizaCampeoesGastos(); using (var banco = new Banco()) { banco.ExecuteNonQuery(@" UPDATE parametros SET sf_senador_ultima_atualizacao=NOW(); " ); } } }
private static string CarregaDadosCsv(string file, int ano) { var sb = new StringBuilder(); string sResumoValores = string.Empty; int indice = 0; int GABINETE = indice++; int NOME_DEPUTADO = indice++; int CPF_DEPUTADO = indice++; int NOME_FORNECEDOR = indice++; int CNPJ_CPF_FORNECEDOR = indice++; int DATA = indice++; int DOCUMENTO = indice++; int VALOR = indice++; int CPF_FORNECEDOR = 0; int CLASSIFICACAO = 0; if (ano == 2018 || ano == 2019) { indice = 0; NOME_DEPUTADO = indice++; CPF_DEPUTADO = indice++; NOME_FORNECEDOR = indice++; CNPJ_CPF_FORNECEDOR = indice++; CPF_FORNECEDOR = indice++; DOCUMENTO = indice++; DATA = indice++; VALOR = indice++; CLASSIFICACAO = indice++; } int linhaAtual = 0; using (var banco = new Banco()) { //var lstHash = new Dictionary<string, long>(); //using (var dReader = banco.ExecuteReader("select id, hash from sf_despesa where ano=" + ano)) //{ // while (dReader.Read()) // { // lstHash.Add(dReader["hash"].ToString(), Convert.ToInt64(dReader["id"])); // } //} //using (var dReader = banco.ExecuteReader(string.Format("select sum(valor) as valor, count(1) as itens from cl_despesa where ano_mes between {0}01 and {0}12", ano))) //{ // if (dReader.Read()) // { // sResumoValores = string.Format("[{0}]={1}", dReader["itens"], Utils.FormataValor(dReader["valor"])); // } //} //LimpaDespesaTemporaria(banco); using (var reader = new StreamReader(file, Encoding.GetEncoding("ISO-8859-1"))) { short count = 0; using (var csv = new CsvReader(reader, System.Globalization.CultureInfo.CreateSpecificCulture("pt-BR"))) { while (csv.Read()) { //Id = csv.GetField<int>("Id") //Name = csv.GetField("Name") count++; if (count == 1) { if (ano == 2013 || ano == 2014) { if ( (csv[GABINETE] != "Gabinete") || (csv[NOME_DEPUTADO] != "Nome") || (csv[CPF_DEPUTADO] != "CPF") || (csv[NOME_FORNECEDOR] != "EMPRESA (OU PROFISSIONAL)") || (csv[CNPJ_CPF_FORNECEDOR] != "CNPJ(ouCPF)") || (csv[DATA] != "Data de Emissão") || (csv[DOCUMENTO] != "NºDocumento") || (csv[VALOR] != "Valor") ) { throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); } } else if (ano == 2015) { if ( (csv[GABINETE] != "GAB") || (csv[NOME_DEPUTADO] != "DEPUTADO") || (csv[CPF_DEPUTADO] != "CPF") || (csv[NOME_FORNECEDOR] != "LOCAL") || (csv[CNPJ_CPF_FORNECEDOR] != "CNPJ") || (csv[DATA] != "DATA") || (csv[DOCUMENTO] != "NUMERO") || (csv[VALOR] != "VALOR") ) { throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); } } else if (ano == 2016 || ano == 2017) { if ( (csv[GABINETE] != "Gabinete") || (csv[NOME_DEPUTADO] != "Nome") || (csv[CPF_DEPUTADO] != "CPF") || (csv[NOME_FORNECEDOR].ToUpper() != "EMPRESA (OU PROFISSIONAL)") || (csv[CNPJ_CPF_FORNECEDOR] != "CNPJ (ou CPF)") || (csv[DATA] != "Data de Emissão") || (csv[DOCUMENTO] != "Nº Documento") || (csv[VALOR].Trim() != "Valor") ) { throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); } } else if (ano == 2018) { if ( (csv[NOME_DEPUTADO] != "Nome do(a) Deputado(a)") || (csv[CPF_DEPUTADO] != "CPF do(a) Deputado(a)") || (csv[NOME_FORNECEDOR] != "Nome do Estabelecimento") || (csv[CNPJ_CPF_FORNECEDOR] != "CNPJ") || (csv[CPF_FORNECEDOR] != "CPF") || (csv[DOCUMENTO] != "No. do Recibo ou NF") || (csv[DATA] != "Data do Recibo") || (csv[VALOR] != "Valor") || (csv[CLASSIFICACAO] != "Classificação") ) { throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); } } else if (ano == 2019) { if ( (csv[NOME_DEPUTADO] != "Nome do(a) Deputado(a)") || (csv[CPF_DEPUTADO] != "CPF do(a) Deputado(a)") || (csv[NOME_FORNECEDOR] != "Nome do Estabelecimento") || (csv[CNPJ_CPF_FORNECEDOR] != "CNPJ") || (csv[CPF_FORNECEDOR] != "CPF") || (csv[DOCUMENTO] != "N° do Recibo ou Nota Fiscal") || (csv[DATA] != "Data do Recibo/NF") || (csv[VALOR] != "Valor") || (csv[CLASSIFICACAO] != "Classificação") ) { throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); } } // Pular linha de titulo continue; } if (string.IsNullOrEmpty(csv[NOME_DEPUTADO])) { continue; //Linha vazia } banco.AddParameter("Nome", csv[NOME_DEPUTADO].Replace("Deputado", "").Replace("Deputada", "")); banco.AddParameter("CPF", !string.IsNullOrEmpty(csv[CPF_DEPUTADO]) ? Utils.RemoveCaracteresNaoNumericos(csv[CPF_DEPUTADO]) : ""); banco.AddParameter("Empresa", csv[NOME_FORNECEDOR].Trim().Replace("NÃO INFORMADO", "").Replace("DOCUMENTO DANIFICADO", "").Replace("não consta documento", "").Trim()); string cnpj_cpf = ""; if (ano < 2018) { if (!string.IsNullOrEmpty(csv[CNPJ_CPF_FORNECEDOR])) { cnpj_cpf = Utils.RemoveCaracteresNaoNumericos(csv[CNPJ_CPF_FORNECEDOR]); } } else { if (!string.IsNullOrEmpty(csv[CNPJ_CPF_FORNECEDOR])) { cnpj_cpf = Utils.RemoveCaracteresNaoNumericos(csv[CNPJ_CPF_FORNECEDOR]); } else if (!string.IsNullOrEmpty(csv[CNPJ_CPF_FORNECEDOR])) { cnpj_cpf = Utils.RemoveCaracteresNaoNumericos(csv[CPF_FORNECEDOR]); } } banco.AddParameter("CNPJ_CPF", cnpj_cpf); DateTime data; if (DateTime.TryParse(csv[DATA], out data)) { banco.AddParameter("DataEmissao", data); } else { // Quando a data não estiver difinida colocamos no feriado; banco.AddParameter("DataEmissao", new DateTime(ano, 1, 1)); } banco.AddParameter("Documento", csv[DOCUMENTO]); string valor = csv[VALOR]; // Valor 1.500.00 é na verdade 1.500,00 Regex myRegex = new Regex(@"\.(\d\d$)", RegexOptions.Singleline); if (myRegex.IsMatch(valor)) { valor = myRegex.Replace(valor, @",$1"); } try { banco.AddParameter("Valor", !string.IsNullOrEmpty(valor) ? (object)Convert.ToDouble(valor) : 0); } catch (Exception) { if (valor.EndsWith(".")) { valor = valor.Substring(0, valor.Length - 1).Trim(); } valor = valor.Replace(" ", ""); banco.AddParameter("Valor", !string.IsNullOrEmpty(valor) ? (object)Convert.ToDouble(valor) : 0); } //string hash = banco.ParametersHash(); //if (lstHash.Remove(hash)) //{ // banco.ClearParameters(); // continue; //} //banco.AddParameter("hash", hash); if (ano < 2018) { banco.AddParameter("TipoDespesa", DBNull.Value); } else { banco.AddParameter("TipoDespesa", csv[CLASSIFICACAO]); } if (string.IsNullOrEmpty(cnpj_cpf)) { banco.AddParameter("Observacao", csv[NOME_FORNECEDOR]); } else if (!Regex.IsMatch(cnpj_cpf, @"\d")) { banco.AddParameter("Observacao", cnpj_cpf + " - " + csv[NOME_FORNECEDOR]); } else { banco.AddParameter("Observacao", DBNull.Value); } banco.AddParameter("Ano", ano); banco.ExecuteNonQuery( @"INSERT INTO cl_despesa_temp ( Nome, CPF, Empresa, CNPJ_CPF, DataEmissao, Documento, Valor, TipoDespesa, Observacao, Ano ) VALUES ( @Nome, @CPF, @Empresa, @CNPJ_CPF, @DataEmissao, @Documento, @Valor, @TipoDespesa, @Observacao, @Ano )" ); } } // while (!reader.EndOfStream) // { // count++; // var linha = reader.ReadLine(); // if (string.IsNullOrEmpty(linha)) // continue; // if (ano != 2016 && ano != 2018 && ano != 2019) // { // while (!linha.EndsWith(";")) // { // linha += reader.ReadLine(); // } // } // else // { // if (linha.Split(new[] { ";" }, StringSplitOptions.None).Length < 8) // { // linha += reader.ReadLine(); // } // } // if (string.IsNullOrEmpty(linha) || linha == ";;;;;;;;") continue; // linha = linha.Replace("B ; M 10 PRODUÇÕES LTDA ME", "B & M 10 PRODUÇÕES LTDA ME"); // var valores = linha.Split(new[] { ";" }, StringSplitOptions.None).ToList(); // if (count == 1) // { // if (ano == 2013 || ano == 2014) // { // if ( // (valores[GABINETE] != "Gabinete") || // (valores[NOME_DEPUTADO] != "Nome") || // (valores[CPF_DEPUTADO] != "CPF") || // (valores[NOME_FORNECEDOR] != "EMPRESA (OU PROFISSIONAL)") || // (valores[CNPJ_CPF_FORNECEDOR] != "CNPJ(ouCPF)") || // (valores[DATA] != "Data de Emissão") || // (valores[DOCUMENTO] != "NºDocumento") || // (valores[VALOR] != "Valor") // ) // { // throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); // } // } // else if (ano == 2015) // { // if ( // (valores[GABINETE] != "GAB") || // (valores[NOME_DEPUTADO] != "DEPUTADO") || // (valores[CPF_DEPUTADO] != "CPF") || // (valores[NOME_FORNECEDOR] != "LOCAL") || // (valores[CNPJ_CPF_FORNECEDOR] != "CNPJ") || // (valores[DATA] != "DATA") || // (valores[DOCUMENTO] != "NUMERO") || // (valores[VALOR] != "VALOR") // ) // { // throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); // } // } // else if (ano == 2016 || ano == 2017) // { // if ( // (valores[GABINETE] != "Gabinete") || // (valores[NOME_DEPUTADO] != "Nome") || // (valores[CPF_DEPUTADO] != "CPF") || // (valores[NOME_FORNECEDOR].ToUpper() != "EMPRESA (OU PROFISSIONAL)") || // (valores[CNPJ_CPF_FORNECEDOR] != "CNPJ (ou CPF)") || // (valores[DATA] != "Data de Emissão") || // (valores[DOCUMENTO] != "Nº Documento") || // (valores[VALOR].Trim() != "Valor") // ) // { // throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); // } // } // else if (ano == 2018) // { // if ( // (valores[NOME_DEPUTADO] != "Nome do(a) Deputado(a)") || // (valores[CPF_DEPUTADO] != "CPF do(a) Deputado(a)") || // (valores[NOME_FORNECEDOR] != "Nome do Estabelecimento") || // (valores[CNPJ_CPF_FORNECEDOR] != "CNPJ") || // (valores[CPF_FORNECEDOR] != "CPF") || // (valores[DOCUMENTO] != "No. do Recibo ou NF") || // (valores[DATA] != "Data do Recibo") || // (valores[VALOR] != "Valor") || // (valores[CLASSIFICACAO] != "Classificação") // ) // { // throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); // } // } // else if (ano == 2019) // { // if ( // (valores[NOME_DEPUTADO] != "Nome do(a) Deputado(a)") || // (valores[CPF_DEPUTADO] != "CPF do(a) Deputado(a)") || // (valores[NOME_FORNECEDOR] != "Nome do Estabelecimento") || // (valores[CNPJ_CPF_FORNECEDOR] != "CNPJ") || // (valores[CPF_FORNECEDOR] != "CPF") || // (valores[DOCUMENTO] != "N° do Recibo ou Nota Fiscal") || // (valores[DATA] != "Data do Recibo/NF") || // (valores[VALOR] != "Valor") || // (valores[CLASSIFICACAO] != "Classificação") // ) // { // throw new Exception("Mudança de integração detectada para o Câmara Legislativa do Distrito Federal"); // } // } // // Pular linha de titulo // continue; // } // for (int i = 0; i < valores.Count; i++) // { // valores[i] = valores[i].Trim(); // if (valores[i].StartsWith("\"")) // { // valores[i] = valores[i].Substring(1, valores[i].Length - 2).Trim(); // } // } // banco.AddParameter("Nome", valores[NOME_DEPUTADO].Replace("Deputado", "").Replace("Deputada", "")); // banco.AddParameter("CPF", !string.IsNullOrEmpty(valores[CPF_DEPUTADO]) ? Utils.RemoveCaracteresNaoNumericos(valores[CPF_DEPUTADO]) : ""); // banco.AddParameter("Empresa", valores[NOME_FORNECEDOR].Replace("DOCUMENTO DANIFICADO", "").Trim()); // string cnpj_cpf = ""; // if (ano < 2018) // { // if (!string.IsNullOrEmpty(valores[CNPJ_CPF_FORNECEDOR])) // { // cnpj_cpf = Utils.RemoveCaracteresNaoNumericos(valores[CNPJ_CPF_FORNECEDOR]); // } // } // else // { // if (!string.IsNullOrEmpty(valores[CNPJ_CPF_FORNECEDOR])) // { // cnpj_cpf = Utils.RemoveCaracteresNaoNumericos(valores[CNPJ_CPF_FORNECEDOR]); // } // else if (!string.IsNullOrEmpty(valores[CNPJ_CPF_FORNECEDOR])) // { // cnpj_cpf = Utils.RemoveCaracteresNaoNumericos(valores[CPF_FORNECEDOR]); // } // } // banco.AddParameter("CNPJ_CPF", cnpj_cpf); // DateTime data; // if (DateTime.TryParse(valores[DATA], out data)) // { // banco.AddParameter("DataEmissao", data); // } // else // { // // Quando a data não estiver difinida colocamos no feriado; // banco.AddParameter("DataEmissao", new DateTime(ano, 1, 1)); // } // banco.AddParameter("Documento", valores[DOCUMENTO]); // if (valores[VALOR].EndsWith(".00")) // { // // Valor 1.500.00 é na verdade 1.500,00 // valores[VALOR] = valores[VALOR].Substring(0, valores[VALOR].Length - 3).Trim(); // } // try // { // banco.AddParameter("Valor", !string.IsNullOrEmpty(valores[VALOR]) ? (object)Convert.ToDouble(valores[VALOR]) : 0); // } // catch (Exception e) // { // if (valores[VALOR].EndsWith(".")) // { // valores[VALOR] = valores[VALOR].Substring(0, valores[VALOR].Length - 1).Trim(); // } // valores[VALOR] = valores[VALOR].Replace(" ", ""); // banco.AddParameter("Valor", !string.IsNullOrEmpty(valores[VALOR]) ? (object)Convert.ToDouble(valores[VALOR]) : 0); // } // //string hash = banco.ParametersHash(); // //if (lstHash.Remove(hash)) // //{ // // banco.ClearParameters(); // // continue; // //} // //banco.AddParameter("hash", hash); // if (ano < 2018) // { // banco.AddParameter("TipoDespesa", DBNull.Value); // } // else // { // banco.AddParameter("TipoDespesa", valores[CLASSIFICACAO]); // } // if (string.IsNullOrEmpty(cnpj_cpf)) // { // banco.AddParameter("Observacao", valores[NOME_FORNECEDOR]); // } // else if (!Regex.IsMatch(cnpj_cpf, @"\d")) // { // banco.AddParameter("Observacao", cnpj_cpf + " - " + valores[NOME_FORNECEDOR]); // } // else // { // banco.AddParameter("Observacao", DBNull.Value); // } // banco.ExecuteNonQuery( // @"INSERT INTO cl_despesa_temp ( // Nome, CPF, Empresa, CNPJ_CPF, DataEmissao, Documento, Valor, TipoDespesa, Observacao //) VALUES ( // @Nome, @CPF, @Empresa, @CNPJ_CPF, @DataEmissao, @Documento, @Valor, @TipoDespesa, @Observacao //)"); // } if (++linhaAtual % 100 == 0) { Console.WriteLine(linhaAtual); } } //if (lstHash.Count == 0 && linhaAtual == 0) //{ // sb.AppendFormat("<p>Não há novos itens para importar! #2</p>"); // return sb.ToString(); //} //if (lstHash.Count > 0) //{ // string lstExcluir = lstHash.Aggregate("", (keyString, pair) => keyString + "," + pair.Value); // banco.ExecuteNonQuery(string.Format("delete from sf_despesa where id IN({0})", lstExcluir.Substring(1))); // Console.WriteLine("Registros para exluir: " + lstHash.Count); // sb.AppendFormat("<p>{0} registros excluidos</p>", lstHash.Count); //} //sb.Append(ProcessarDespesasTemp(banco)); } //if (ano == DateTime.Now.Year) //{ // //AtualizaCampeoesGastos(); // //AtualizaResumoMensal(); // AtualizaValorTotal(); //} //using (var banco = new Banco()) //{ // using (var dReader = banco.ExecuteReader(string.Format("select sum(valor) as valor, count(1) as itens from cl_despesa where ano_mes between {0}01 and {0}12", ano))) // { // if (dReader.Read()) // { // sResumoValores += string.Format(" -> [{0}]={1}", dReader["itens"], Utils.FormataValor(dReader["valor"])); // } // } // sb.AppendFormat("<p>Resumo atualização: {0}</p>", sResumoValores); //} return(sb.ToString()); }
private static void InsereDespesaFinalParcial(Banco banco) { var dt = banco.GetTable( @"DROP TABLE IF EXISTS table_in_memory_d; CREATE TEMPORARY TABLE table_in_memory_d AS ( select id_sf_senador, mes, sum(valor) as total from sf_despesa d where ano = 2017 GROUP BY id_sf_senador, mes ); DROP TABLE IF EXISTS table_in_memory_dt; CREATE TEMPORARY TABLE table_in_memory_dt AS ( select p.id as id_sf_senador, mes, sum(valor_reembolsado) as total from sf_despesa_temp d inner join sf_senador p on p.nome = d.senador GROUP BY p.id, mes ); select dt.id_sf_senador, dt.mes from table_in_memory_dt dt left join table_in_memory_d d on dt.id_sf_senador = d.id_sf_senador and dt.mes = d.mes where (d.id_sf_senador is null or d.total <> dt.total) order by d.id_sf_senador, d.mes; " , 3600); foreach (DataRow dr in dt.Rows) { banco.AddParameter("id_sf_senador", dr["id_sf_senador"]); banco.AddParameter("mes", dr["mes"]); banco.ExecuteNonQuery(@"DELETE FROM sf_despesa WHERE id_sf_senador=@id_sf_senador and mes=@mes"); banco.AddParameter("id_sf_senador", dr["id_sf_senador"]); banco.AddParameter("mes", dr["mes"]); banco.ExecuteNonQuery(@" INSERT INTO sf_despesa ( id_sf_senador, id_sf_despesa_tipo, id_fornecedor, ano_mes, ano, mes, documento, data_documento, detalhamento, valor ) SELECT d.id, dt.id, f.id, concat(ano, LPAD(mes, 2, '0')), d.ano, d.mes, d.documento, d.`data`, d.detalhamento, d.valor_reembolsado from ( select d.*, p.id from sf_despesa_temp d inner join sf_senador p on p.nome = d.senador WHERE p.id=@id_sf_senador and mes=@mes ) d inner join sf_despesa_tipo dt on dt.descricao = d.tipo_despesa inner join fornecedor f on f.cnpj_cpf = d.cnpj_cpf; " , 3600); } }
public async void AdicionarComentario(DenunciaComentarioDTO value, string userId, string userFullName) { string codigoDenuncia, situacaoDenuncia, cnpjCpf, razaoSocial; var lstDestinatarios = new List <MailAddress>(); using (var banco = new Banco()) { banco.AddParameter("id", value.id_denuncia); using (var reader = banco.ExecuteReader( @"select d.codigo, d.situacao, f.cnpj_cpf, f.nome as razao_social from denuncia d inner join fornecedor f on f.id = d.id_fornecedor where d.id=@id;")) { if (reader.Read()) { codigoDenuncia = reader["codigo"].ToString(); situacaoDenuncia = reader["situacao"].ToString(); cnpjCpf = reader["cnpj_cpf"].ToString(); razaoSocial = reader["razao_social"].ToString(); } else { throw new BusinessException("Não foi possivel localizar a denúncia para adicionar seu comentário!"); } } if (!string.IsNullOrEmpty(value.situacao) && situacaoDenuncia != value.situacao) { using (var repository = new AuthRepository()) { var bRevisor = repository.IsInRoleAsync(userId, "Revisor"); if (bRevisor.Result) { banco.AddParameter("situacao", value.situacao); banco.AddParameter("id_user_auditoria", userId); banco.AddParameter("id", value.id_denuncia); banco.ExecuteNonQuery( @"update denuncia set situacao=@situacao, id_user_auditoria=@id_user_auditoria, data_auditoria=NOW() where id=@id"); } } var situacaoDescricao = ""; switch (value.situacao) { case "A": situacaoDescricao = "Aguardando Revisão"; break; case "I": situacaoDescricao = "Pendente Informação"; break; case "P": situacaoDescricao = "Caso Duvidoso"; break; case "D": situacaoDescricao = "Caso Dossiê"; break; case "R": situacaoDescricao = "Caso Repetido"; break; case "N": situacaoDescricao = "Não Procede"; break; } value.texto += " [Situação alterada para " + situacaoDescricao + "]"; } banco.AddParameter("id", Guid.NewGuid().ToString()); banco.AddParameter("id_denuncia", value.id_denuncia); banco.AddParameter("id_user", userId); banco.AddParameter("texto", value.texto); banco.ExecuteNonQuery( @"INSERT INTO denuncia_mensagem (id, id_denuncia, id_user, data, texto) VALUES (@id, @id_denuncia, @id_user, NOW(), @texto);"); banco.AddParameter("id", value.id_denuncia); banco.AddParameter("id_user", userId); using (var reader = banco.ExecuteReader( @"SELECT u.Email, u.Fullname FROM ( SELECT id_user_denuncia as id_user FROM denuncia WHERE id=@id union SELECT id_user_auditoria FROM denuncia WHERE id=@id union SELECT id_user FROM denuncia_mensagem WHERE id_denuncia=@id ) d inner join users u on u.id = d.id_user where u.id <> @id_user;")) { while (reader.Read()) { lstDestinatarios.Add(new MailAddress(reader["Email"].ToString(), reader["Fullname"].ToString())); } } } if (lstDestinatarios.Count > 0) { StringBuilder corpo = new StringBuilder(); corpo.Append(@"<html><head><title>O.P.S.</title></head><body><table width=""100%""><tr><td><center><h3>O.P.S. - Operação Política Supervisionada</h3></center></td></tr><tr><td><i>Um novo comentário foi adicionado a sua denúncia.</i></td></tr><tr><td><table><tr><td valign=""top""><b>Denúncia:</b></td><td>"); corpo.AppendFormat(@"<a href=""http://www.ops.net.br/denuncia/{0}"">{1}</a></td></tr>", value.id_denuncia, codigoDenuncia); corpo.AppendFormat(@"<tr><td valign=""top""><b>Fornecedor:</b></td><td>{0} - {1}</td></tr>", cnpjCpf, razaoSocial); corpo.AppendFormat(@"<tr><td valign=""top""><b>Usuário:</b></td><td>{0}</td></tr>", userFullName); corpo.AppendFormat(@"<tr><td valign=""top""><b>Texto:</b></td><td>{0}</td></tr></table></td></tr></table></body></html>", value.texto); foreach (MailAddress destinatario in lstDestinatarios) { await Utils.SendMailAsync(destinatario, "[O.P.S.] Novo Comentário", corpo.ToString()); } } }
public string Salvar(Auditoria auditoria) { int?userId; try { var identity = (ClaimsIdentity)User.Identity; userId = Convert.ToInt32(identity.FindFirst("UserId").Value); } catch (Exception) { userId = null; } using (var banco = new Banco()) { int id_mcf_auditoria; banco.BeginTransaction(); if (!string.IsNullOrEmpty(auditoria.codigo)) { banco.AddParameter("codigo", auditoria.codigo); var id = banco.ExecuteScalar(@"select id from mcf_auditoria where codigo = @codigo"); if (Convert.IsDBNull(id)) { auditoria.codigo = null; return(Salvar(auditoria)); } id_mcf_auditoria = Convert.ToInt32(id); banco.AddParameter("codigo", auditoria.codigo); banco.AddParameter("id_user", userId); banco.AddParameter("id_estado", auditoria.estado); banco.AddParameter("cidade", auditoria.cidade); banco.AddParameter("link_portal", auditoria.link_portal); banco.AddParameter("id", id_mcf_auditoria); banco.ExecuteNonQuery( @"UPDATE mcf_auditoria SET codigo = @codigo, id_user = @id_user, id_estado = @id_estado, cidade = @cidade, link_portal = @link_portal WHERE id = @id;" ); banco.AddParameter("id_mcf_auditoria", id_mcf_auditoria); banco.ExecuteNonQuery(@"delete from mcf_auditoria_item where id_mcf_auditoria = @id_mcf_auditoria"); } else { auditoria.codigo = Guid.NewGuid().ToString(); banco.AddParameter("codigo", auditoria.codigo); banco.AddParameter("id_user", userId); banco.AddParameter("id_estado", auditoria.estado); banco.AddParameter("cidade", auditoria.cidade); banco.AddParameter("link_portal", auditoria.link_portal); var id = banco.ExecuteScalar( @"INSERT INTO mcf_auditoria ( codigo, id_user, data_criacao, data_geracao_denuncia, id_estado, cidade, link_portal ) VALUES ( @codigo, @id_user, NOW(), NULL, @id_estado, @cidade, @link_portal ); SELECT LAST_INSERT_ID();" ); id_mcf_auditoria = Convert.ToInt32(id); } foreach (var grupo in auditoria.grupos) { foreach (var item in grupo.itens) { banco.AddParameter("id_mcf_auditoria", id_mcf_auditoria); banco.AddParameter("id_mcf_id_transparencia_item", item.id); banco.AddParameter("id_mcf_id_transparencia_item_situacao", item.situacao); banco.AddParameter("indicio_de_prova", item.indicio_de_prova); banco.ExecuteScalar( @"INSERT INTO mcf_auditoria_item ( id_mcf_auditoria, id_mcf_id_transparencia_item, id_mcf_id_transparencia_item_situacao, indicio_de_prova ) VALUES ( @id_mcf_auditoria, @id_mcf_id_transparencia_item, @id_mcf_id_transparencia_item_situacao, @indicio_de_prova );" ); } } foreach (var signatario in auditoria.signatarios) { banco.AddParameter("nome", signatario.nome_completo); banco.AddParameter("cpf", signatario.cpf); banco.AddParameter("rg", signatario.rg); banco.AddParameter("nacionalidade", signatario.nacionalidade); banco.AddParameter("estado_civil", signatario.estado_civil); banco.AddParameter("profissao", signatario.profissao); banco.AddParameter("cep", signatario.cep); banco.AddParameter("endereco", signatario.endereco); banco.AddParameter("bairro", signatario.bairro); banco.AddParameter("cidade", signatario.cidade); banco.AddParameter("id_estado", signatario.estado); banco.AddParameter("email", signatario.email); var id_mcf_signatario = banco.ExecuteScalar( @"INSERT INTO mcf_signatario ( nome, cpf, rg, nacionalidade, estado_civil, profissao, cep, endereco, bairro, cidade, id_estado, email ) VALUES ( @nome, @cpf, @rg, @nacionalidade, @estado_civil, @profissao, @cep, @endereco, @bairro, @cidade, @id_estado, @email ); SELECT LAST_INSERT_ID();" ); banco.AddParameter("id_mcf_auditoria", id_mcf_auditoria); banco.AddParameter("id_mcf_signatario", Convert.ToInt32(id_mcf_signatario)); banco.ExecuteScalar( @"INSERT INTO mcf_auditoria_signatario ( id_mcf_auditoria, id_mcf_signatario ) VALUES ( @id_mcf_auditoria, @id_mcf_signatario );" ); } banco.CommitTransaction(); } return(auditoria.codigo); }
public dynamic Consultar(FiltroDenunciaDTO filtro, string userId) { using (var banco = new Banco()) { var strSql = new StringBuilder(); strSql.AppendLine(@" SELECT SQL_CALC_FOUND_ROWS d.id as id_denuncia, d.codigo, f.cnpj_cpf, f.nome as nome_fornecedor, ud.FullName as nome_usuario_denuncia, d.data_denuncia, case d.situacao when 'A' then 'Aguardando Revisão' when 'I' then 'Pendente Informação' when 'P' then 'Caso Duvidoso' when 'D' then 'Caso Dossiê' when 'R' then 'Caso Repetido' when 'N' then 'Não Procede' end as situacao, d.data_auditoria, ua.FullName as nome_usuario_auditoria FROM denuncia d inner join fornecedor f on f.id = d.id_fornecedor inner join users ud on ud.id = d.id_user_denuncia inner join users ua on ua.id = d.id_user_auditoria WHERE (1=1) " ); using (var repository = new AuthRepository()) { var bRevisor = repository.IsInRoleAsync(userId, "Revisor"); if (!bRevisor.Result) { banco.AddParameter("id_user_denuncia", userId); strSql.AppendFormat(" AND d.id_user_denuncia like @id_user_denuncia "); } } var lstSituacoes = new List <string>(); if (filtro.AguardandoRevisao) { lstSituacoes.Add("'A'"); } if (filtro.PendenteInformacao) { lstSituacoes.Add("'I'"); } if (filtro.Duvidoso) { lstSituacoes.Add("'P'"); } if (filtro.Dossie) { lstSituacoes.Add("'D'"); } if (filtro.Repetido) { lstSituacoes.Add("'R'"); } if (filtro.NaoProcede) { lstSituacoes.Add("'N'"); } if (lstSituacoes.Count > 0) { strSql.AppendFormat(" AND d.situacao in({0}) ", string.Join(",", lstSituacoes)); } strSql.AppendFormat("ORDER BY {0} ", string.IsNullOrEmpty(filtro.sorting) ? "id_denuncia ASC" : Utils.MySqlEscape(filtro.sorting)); strSql.AppendFormat("LIMIT {0},{1}; ", (filtro.page - 1) * filtro.count, filtro.count); strSql.AppendLine("SELECT FOUND_ROWS(); "); var lstRetorno = new List <dynamic>(); using (var reader = banco.ExecuteReader(strSql.ToString())) { while (reader.Read()) { lstRetorno.Add(new { id_denuncia = reader["id_denuncia"], codigo = reader["codigo"], cnpj_cpf = reader["cnpj_cpf"].ToString(), nome_fornecedor = reader["nome_fornecedor"].ToString(), nome_usuario_denuncia = reader["nome_usuario_denuncia"].ToString(), data_denuncia = Utils.FormataDataHora(reader["data_denuncia"]), situacao = reader["situacao"].ToString(), data_auditoria = Utils.FormataDataHora(reader["data_auditoria"]), nome_usuario_auditoria = reader["nome_usuario_auditoria"].ToString() }); } reader.NextResult(); reader.Read(); return(new { total_count = reader[0], results = lstRetorno }); } } }
public DenunciaModel Consultar(string value) { string strSqlDenuncia = @"SELECT d.id as id_denuncia, d.codigo, d.id_fornecedor, f.cnpj_cpf, f.nome as nome_fornecedor, ud.FullName as nome_usuario_denuncia, d.data_denuncia, d.texto, d.anexo, d.situacao, case d.situacao when 'A' then 'Aguardando Revisão' when 'I' then 'Pendente Informação' when 'P' then 'Caso Duvidoso' when 'D' then 'Caso Dossiê' when 'R' then 'Caso Repetido' when 'N' then 'Não Procede' end as situacao_descricao, d.data_auditoria, ua.FullName as nome_usuario_auditoria FROM denuncia d inner join fornecedor f on f.id = d.id_fornecedor inner join users ud on ud.id = d.id_user_denuncia inner join users ua on ua.id = d.id_user_auditoria where d.id = @id;"; string strSqlDenunciaAnexo = @"SELECT da.id, ud.FullName as nome_usuario, da.data, da.nome_arquivo FROM denuncia_anexo da inner join users ud on ud.id = da.id_user where id_denuncia = @id;"; string strSqlDenunciaMensagem = @"SELECT dm.id, ud.FullName as nome_usuario, dm.data, dm.texto FROM denuncia_mensagem dm inner join users ud on ud.id = dm.id_user where id_denuncia = @id;"; //TODO: Quem possui o link pode interragir na denuncia? //using (var repository = new AuthRepository()) //{ // var bRevisor = repository.IsInRoleAsync(userId, "Revisor"); // if (!bRevisor.Result) // { // banco.AddParameter("id_user_denuncia", userId); // strSql.AppendFormat(" AND d.id_user_denuncia like @id_user_denuncia "); // } //} using (var banco = new Banco()) { DenunciaModel denuncia; banco.AddParameter("id", value); using (var reader = banco.ExecuteReader(strSqlDenuncia)) { if (reader.Read()) { denuncia = new DenunciaModel() { id_denuncia = reader["id_denuncia"].ToString(), codigo = Convert.ToInt32(reader["codigo"]), cnpj_cpf = reader["cnpj_cpf"].ToString(), id_fornecedor = Convert.ToInt32(reader["id_fornecedor"]), nome_fornecedor = reader["nome_fornecedor"].ToString(), nome_usuario_denuncia = reader["nome_usuario_denuncia"].ToString(), data_denuncia = Utils.FormataDataHora(reader["data_denuncia"]), texto = reader["texto"].ToString(), anexo = reader["anexo"].ToString(), situacao = reader["situacao"].ToString(), situacao_descricao = reader["situacao_descricao"].ToString(), data_auditoria = Utils.FormataDataHora(reader["data_auditoria"]), nome_usuario_auditoria = reader["nome_usuario_auditoria"].ToString() }; } else { return(null); } } banco.AddParameter("id", value); using (var reader = banco.ExecuteReader(strSqlDenunciaAnexo)) { if (reader.HasRows) { denuncia.anexos = new List <DenunciaAnexoModel>(); while (reader.Read()) { denuncia.anexos.Add(new DenunciaAnexoModel() { nome_usuario = reader["nome_usuario"].ToString(), data = Utils.FormataDataHora(reader["data"]), nome_arquivo = reader["nome_arquivo"].ToString() }); } } } banco.AddParameter("id", value); using (var reader = banco.ExecuteReader(strSqlDenunciaMensagem)) { if (reader.HasRows) { denuncia.mensagens = new List <DenunciaMensagemModel>(); while (reader.Read()) { denuncia.mensagens.Add(new DenunciaMensagemModel() { nome_usuario = reader["nome_usuario"].ToString(), data = Utils.FormataDataHora(reader["data"]), texto = reader["texto"].ToString() }); } } } return(denuncia); } }
public static string ConsultarReceitaWS() { var sb = new StringBuilder(); var strInfoAdicional = new StringBuilder(); int RateLimit_Remaining = -1; int totalImportados = 0; DataTable dtFornecedores; DataTable dtFornecedoresAtividade; DataTable dtFornecedoresNatJu; using (var banco = new Banco()) { dtFornecedores = banco.GetTable( @"select cnpj_cpf, f.id, fi.id_fornecedor, f.nome from fornecedor f left join fornecedor_info fi on f.id = fi.id_fornecedor where char_length(f.cnpj_cpf) = 14 and f.cnpj_cpf <> '00000000000000' -- and obtido_em < '2018-01-01' and fi.id_fornecedor is null -- and ip_colaborador not like '1805%' -- and fi.id_fornecedor is null -- and ip_colaborador is null -- not in ('170509', '170510', '170511', '170512') -- and controle is null -- and controle <> 0 -- and (f.mensagem is null or f.mensagem <> 'Uma tarefa foi cancelada.') -- and controle <> 5 and (controle is null or controle NOT IN (2, 3, 5)) order by f.id desc"); if (dtFornecedores.Rows.Count == 0) { Console.WriteLine("Não há fornecedores para consultar"); return("<p>Não há fornecedores para consultar</p>"); } dtFornecedoresAtividade = banco.GetTable("SELECT * FROM fornecedor_atividade;"); dtFornecedoresNatJu = banco.GetTable("SELECT * FROM fornecedor_natureza_juridica;"); } Console.WriteLine("Consultando CNPJ's Local: {0} itens.", dtFornecedores.Rows.Count); //var watch = System.Diagnostics.Stopwatch.StartNew(); int i = 0; foreach (DataRow item in dtFornecedores.Rows) { // the code that you want to measure comes here //watch.Stop(); //Console.WriteLine(watch.ElapsedMilliseconds); //watch.Restart(); i++; if (!validarCNPJ(item["cnpj_cpf"].ToString())) { InserirControle(3, item["cnpj_cpf"].ToString(), "CNPJ Invalido"); Console.WriteLine("CNPJ Invalido: " + item["cnpj_cpf"] + " - " + i); strInfoAdicional.Append("<p>Empresa invalida importada:" + item["id"].ToString() + " - " + item["cnpj_cpf"].ToString() + " - " + item["nome"].ToString() + "; Motivo: CNPJ Invalido</p>"); continue; } Console.WriteLine("Consultando CNPJ: " + item["cnpj_cpf"] + " - " + i); FornecedorInfo receita = null; try { using (HttpClient client = new HttpClient()) { //-------------------------------- string uriString; HttpResponseMessage response = null; uriString = string.Format("https://www.receitaws.com.br/v1/cnpj/{0}", item["cnpj_cpf"].ToString()); client.BaseAddress = new Uri(uriString); if (RateLimit_Remaining > -1 && RateLimit_Remaining <= 1) { Console.WriteLine("Rate limit atingido!"); System.Threading.Thread.Sleep(60000); } //Setar o Timeout do client quando é API BASICA client.Timeout = TimeSpan.FromMilliseconds(1000); response = client.GetAsync(string.Empty).Result; //var rateLimit = response.Headers.FirstOrDefault(x => x.Key == "X-RateLimit-Limit"); //var retryAfter = response.Headers.FirstOrDefault(x => x.Key == "RetryAfter"); // A API do ReceitaWS infelizmente não retorna um valor de retryAfter, então temos que usar um sleep num valor padrão. var rateLimit_Remaining = response.Headers.FirstOrDefault(x => x.Key == "X-RateLimit-Remaining"); if (rateLimit_Remaining.Value != null) { int temp; int.TryParse(rateLimit_Remaining.Value.First(), out temp); RateLimit_Remaining = temp; } if (response.IsSuccessStatusCode) { var responseContent = response.Content; string responseString = responseContent.ReadAsStringAsync().Result; receita = (FornecedorInfo)JsonConvert.DeserializeObject(responseString, typeof(FornecedorInfo)); } else { InserirControle(1, item["cnpj_cpf"].ToString(), response.RequestMessage.ToString()); continue; } } } catch (Exception ex) { //if (receita == null) //{ // receita = new ReceitaWSData(); // receita.status = ReceitaWSData.STATUS_ERROR; // receita.ultima_atualizacao = DateTime.Now.ToString(DateMask_UltimaAtualizacao); // if (ex is AggregateException) // { // receita.message = "API Básica -- Gateway Time-out -- Exception: " + ex.InnerException.Message; // receita.ControleProcessamento = ReceitaWSData.ControleProcessamentoReceitaWS.Ignorar; // } // else // { // receita.message = ex.Message; // } //} InserirControle(1, item["cnpj_cpf"].ToString(), ex.GetBaseException().Message); continue; } string strSql2; using (var banco = new Banco()) { //if (receita?.status == null) //{ // Thread.Sleep(60000); //1 MINUTO // continue; //} if (receita.status == "OK") { banco.BeginTransaction(); try { if (item["id_fornecedor"] != DBNull.Value) { banco.AddParameter("@id_fornecedor", item["id_fornecedor"]); banco.ExecuteNonQuery(@" delete from fornecedor_info where id_fornecedor=@id_fornecedor; delete from fornecedor_atividade_secundaria where id_fornecedor=@id_fornecedor; delete from fornecedor_socio where id_fornecedor=@id_fornecedor; "); } var strSql = @"insert into fornecedor_info( id_fornecedor, cnpj, tipo, nome, data_de_abertura, nome_fantasia, id_fornecedor_atividade_principal, id_fornecedor_natureza_juridica, logradouro, numero, complemento, cep, bairro, municipio, estado, endereco_eletronico, telefone, ente_federativo_responsavel, situacao_cadastral, data_da_situacao_cadastral, motivo_situacao_cadastral, situacao_especial, data_situacao_especial, capital_social, obtido_em, ip_colaborador ) values ( @id_fornecedor, @cnpj, @tipo, @nome, @data_de_abertura, @nome_fantasia, @id_fornecedor_atividade_principal, @id_fornecedor_natureza_juridica, @logradouro, @numero, @complemento, @cep, @bairro, @municipio, @estado, @endereco_eletronico, @telefone, @ente_federativo_responsavel, @situacao_cadastral, @data_da_situacao_cadastral, @motivo_situacao_cadastral, @situacao_especial, @data_situacao_especial, @capital_social, @obtido_em, @ip_colaborador )" ; banco.AddParameter("@id_fornecedor", item["id"]); banco.AddParameter("@cnpj", item["cnpj_cpf"]); banco.AddParameter("@tipo", receita.tipo); banco.AddParameter("@nome", receita.nome); banco.AddParameter("@data_de_abertura", ParseDate(receita.abertura)); banco.AddParameter("@nome_fantasia", receita.fantasia); if (receita.atividade_principal != null && receita.atividade_principal.Count > 0) { var drAt = LocalizaInsereAtividade(dtFornecedoresAtividade, receita.atividade_principal[0]); banco.AddParameter("@id_fornecedor_atividade_principal", drAt["id"]); } else { banco.AddParameter("@id_fornecedor_atividade_principal", DBNull.Value); } if (receita.atividade_principal != null) { var drNj = dtFornecedoresNatJu.Select("codigo='" + receita.natureza_juridica.Split(' ')[0] + "'"); banco.AddParameter("@id_fornecedor_natureza_juridica", drNj.Length > 0 ? drNj[0]["id"] : DBNull.Value); } else { banco.AddParameter("@id_fornecedor_natureza_juridica", DBNull.Value); } banco.AddParameter("@logradouro", receita.logradouro); banco.AddParameter("@numero", receita.numero); banco.AddParameter("@complemento", receita.complemento); banco.AddParameter("@cep", receita.cep); banco.AddParameter("@bairro", receita.bairro); banco.AddParameter("@municipio", receita.municipio); banco.AddParameter("@estado", receita.uf); banco.AddParameter("@endereco_eletronico", receita.email); banco.AddParameter("@telefone", receita.telefone); banco.AddParameter("@ente_federativo_responsavel", receita.efr); banco.AddParameter("@situacao_cadastral", receita.situacao); banco.AddParameter("@data_da_situacao_cadastral", ParseDate(receita.data_situacao)); banco.AddParameter("@motivo_situacao_cadastral", receita.motivo_situacao); banco.AddParameter("@situacao_especial", receita.situacao_especial); banco.AddParameter("@data_situacao_especial", ParseDate(receita.data_situacao_especial)); banco.AddParameter("@capital_social", ObterValor(receita.capital_social)); banco.AddParameter("@obtido_em", ParseDate(receita.ultima_atualizacao)); banco.AddParameter("@ip_colaborador", DateTime.Now.ToString("yyMMdd")); banco.ExecuteNonQuery(strSql); banco.AddParameter("@id", item["id"]); banco.AddParameter("@nome", receita.nome); banco.ExecuteNonQuery(@"update fornecedor set nome=@nome where id=@id"); strSql2 = @"insert into fornecedor_atividade_secundaria values (@id_fornecedor_info, @id_fornecedor_atividade)"; foreach (var atividadesSecundaria in receita.atividades_secundarias) { banco.ClearParameters(); try { var drAt = LocalizaInsereAtividade(dtFornecedoresAtividade, atividadesSecundaria); banco.AddParameter("@id_fornecedor_info", item["id"]); banco.AddParameter("@id_fornecedor_atividade", drAt["id"]); banco.ExecuteNonQuery(strSql2); } catch (MySqlException ex) { if (!ex.Message.Contains("Duplicate entry")) { throw; } } } strSql2 = @"insert into fornecedor_socio (id_fornecedor, nome, pais_origem, id_fornecedor_socio_qualificacao, nome_representante, id_fornecedor_socio_representante_qualificacao) values (@id_fornecedor, @nome, @pais_origem, @id_fornecedor_socio_qualificacao, @nome_representante, @id_fornecedor_socio_representante_qualificacao)"; foreach (var qsa in receita.qsa) { banco.ClearParameters(); banco.AddParameter("@id_fornecedor", item["id"]); banco.AddParameter("@nome", qsa.nome); banco.AddParameter("@pais_origem", qsa.pais_origem); banco.AddParameter("@id_fornecedor_socio_qualificacao", qsa.qual.Split('-')[0]); banco.AddParameter("@nome_representante", qsa.nome_rep_legal); banco.AddParameter("@id_fornecedor_socio_representante_qualificacao", !string.IsNullOrEmpty(qsa.qual_rep_legal) && qsa.qual_rep_legal.Contains("-") ? (object)qsa.qual_rep_legal.Split('-')[0] : DBNull.Value); banco.ExecuteNonQuery(strSql2); } totalImportados++; if (receita.situacao != "ATIVA") { strInfoAdicional.Append("<p>Empresa inativa importada:" + item["id"].ToString() + " - " + receita.cnpj + " - " + receita.nome + "</p>"); } banco.CommitTransaction(); InserirControle(0, item["cnpj_cpf"].ToString(), ""); Console.WriteLine("Atualizando CNPJ: " + item["cnpj_cpf"] + " - " + i); } catch (Exception) { banco.RollBackTransaction(); } } else { InserirControle(2, item["cnpj_cpf"].ToString(), receita.message); strInfoAdicional.Append("<p>Empresa invalida importada:" + item["id"].ToString() + " - " + receita.cnpj + " - " + item["nome"].ToString() + "; Motivo: " + receita.message + "</p>"); } } } using (var banco = new Banco()) { banco.ExecuteNonQuery(@" update fornecedor_info set nome_fantasia=null where nome_fantasia = '' or nome_fantasia = '********'; update fornecedor_info set logradouro=null where logradouro = '' or logradouro = '********'; update fornecedor_info set numero=null where numero = '' or numero = '********'; update fornecedor_info set complemento=null where complemento = '' or complemento = '********'; update fornecedor_info set cep=null where cep = '' or cep = '********'; update fornecedor_info set bairro=null where bairro = '' or bairro = '********'; update fornecedor_info set municipio=null where municipio = '' or municipio = '********'; update fornecedor_info set estado=null where estado = '' or estado = '**'; update fornecedor_info set endereco_eletronico=null where endereco_eletronico = '' or endereco_eletronico = '********'; update fornecedor_info set telefone=null where telefone = '' or telefone = '********'; update fornecedor_info set ente_federativo_responsavel=null where ente_federativo_responsavel = '' or ente_federativo_responsavel = '********'; update fornecedor_info set motivo_situacao_cadastral=null where motivo_situacao_cadastral = '' or motivo_situacao_cadastral = '********'; update fornecedor_info set situacao_especial=null where situacao_especial = '' or situacao_especial = '********'; " ); } return(string.Format("<p>{0} de {1} fornecedores novos importados</p>", totalImportados, dtFornecedores.Rows.Count) + strInfoAdicional.ToString()); }
public HttpResponseMessage GerarDenuncia(string codigo) { var auditoria = Consultar(codigo); // Store a global reference to the loaded document. var g_document = DocX.Load(HostingEnvironment.MapPath("~/Content/template/template-cidadao-fiscal.docx")); // Replace text in this document. g_document.ReplaceText("#CIDADE_AUDITADA#", auditoria.cidade); g_document.ReplaceText("#DATA_EXTENSO#", DateTime.Now.ToString(@"dd \de MMMM \de yyyy", new CultureInfo("pt-BR"))); var auditor = auditoria.signatarios[0]; string nacionalidade = ""; switch (auditor.nacionalidade) { case "1": nacionalidade = "Brasileiro(a)"; break; } string estado_civil = ""; switch (auditor.estado_civil) { case "1": estado_civil = "Solteiro(a)"; break; case "2": estado_civil = "Casado(a)"; break; case "3": estado_civil = "Divorciado(a)"; break; case "4": estado_civil = "Viúvo(a)"; break; case "5": estado_civil = "Separado(a)"; break; } string estado; using (var banco = new Banco()) { banco.AddParameter("id", auditor.estado); estado = banco.ExecuteScalar(@"select nome from estado where id = @id").ToString(); } g_document.ReplaceText("#DADOS_DO_AUDITOR#", string.Concat(nacionalidade, ", ", estado_civil, ", ", auditor.profissao, ", ", "portador da carteira de identidade nº ", auditor.rg, ", ", "inscrito no CPF nº ", auditor.cpf, ", ", "residente e domiciliado na ", auditor.endereco, ", ", "CEP ", auditor.cep, ", ", "Bairro ", auditor.bairro, ", ", "Cidade de ", auditor.cidade, ", ", estado)); g_document.ReplaceText("#CIDADE_AUDITOR#", auditor.cidade); g_document.ReplaceText("#NOME_AUDITOR#", auditor.nome_completo); g_document.ReplaceText("#CPF_AUDITOR#", auditor.cpf); var t = g_document.Tables[0]; var title_formatting = new Formatting { Bold = true, Size = 12, FontFamily = new FontFamily("Cambria") }; var item_title_formatting = new Formatting { Bold = true, Size = 12, FontFamily = new FontFamily("Cambria") }; var item_text_formatting = new Formatting { Size = 12, FontFamily = new FontFamily("Cambria") }; var grupos = auditoria.grupos.FindAll(o => o.itens.Any(i => i.situacao == "2" || i.situacao == "3")); var table = t.InsertTableAfterSelf(grupos.Count, 1); table.Design = TableDesign.TableNormal; table.AutoFit = AutoFit.Window; for (var g = 0; g < grupos.Count; g++) { var itens = grupos[g].itens.FindAll(i => i.situacao == "2" || i.situacao == "3"); var cell = table.Rows[g].Cells[0]; var cellParagraphGrupo = cell.Paragraphs[0]; cellParagraphGrupo.InsertText($"{g + 1:00}. {grupos[g].nome.ToUpper()}", false, title_formatting); cellParagraphGrupo.SetLineSpacing(LineSpacingType.Before, 1); cellParagraphGrupo.SetLineSpacing(LineSpacingType.After, 1); foreach (var item in itens) { var tbItens = cell.InsertTable(3, 1); tbItens.AutoFit = AutoFit.Window; tbItens.Design = TableDesign.TableGrid; var situacao = string.Empty; switch (item.situacao) { case "2": situacao = "Atende parcialmente"; break; case "3": situacao = "Informação não encontrada"; break; } var cellParagraphItemIa = tbItens.Rows[0].Cells[0].Paragraphs[0]; cellParagraphItemIa.SetLineSpacing(LineSpacingType.After, 0); cellParagraphItemIa.InsertText(situacao + ": ", false, item_title_formatting); cellParagraphItemIa.InsertText(item.informacao_auditada, false, item_text_formatting); var cellParagraphItemIp = tbItens.Rows[1].Cells[0].Paragraphs[0]; cellParagraphItemIp.SetLineSpacing(LineSpacingType.After, 0); cellParagraphItemIp.InsertText("Indício de Prova: ", false, item_title_formatting); cellParagraphItemIp.InsertText(item.indicio_de_prova, false, item_text_formatting); var cellParagraphItemDl = tbItens.Rows[2].Cells[0].Paragraphs[0]; cellParagraphItemDl.SetLineSpacing(LineSpacingType.After, 0); cellParagraphItemDl.InsertText("Dispositivo Legal: ", false, item_title_formatting); cellParagraphItemDl.InsertText(!string.IsNullOrEmpty(item.dispositivo_legal) ? item.dispositivo_legal : "N/A", false, item_text_formatting); } } foreach (var p in t.Paragraphs) { p.SetLineSpacing(LineSpacingType.Before, 0); p.SetLineSpacing(LineSpacingType.After, 0); } t.Remove(); var stream = new MemoryStream(); g_document.SaveAs(stream); g_document.Dispose(); // processing the stream. var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream.ToArray()) }; result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = $"Cidadão Fiscal - {auditoria.cidade}.docx" }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); return(result); }
public Auditoria Consultar(string codigo) { using (var banco = new Banco()) { var id = 0; var auditoria = new Auditoria(); var lstAuditoriaItem = new List <AuditoriaItem>(); banco.AddParameter("codigo", codigo); using (var reader = banco.ExecuteReader( @"SELECT id , codigo , cidade , id_estado , link_portal FROM mcf_auditoria where codigo = @codigo" ) ) { if (reader.Read()) { id = Convert.ToInt32(reader["id"]); auditoria.grupos = new List <AuditoriaGrupo>(); auditoria.signatarios = new List <AuditoriaSignatario>(); auditoria.codigo = reader["codigo"].ToString(); auditoria.estado = reader["id_estado"].ToString(); auditoria.cidade = reader["cidade"].ToString(); auditoria.link_portal = reader["link_portal"].ToString(); } else { throw new BusinessException("Auditoria não localizada!"); } } banco.AddParameter("id", id); using (var reader = banco.ExecuteReader( @"SELECT id , nome FROM mcf_tranparencia_grupo; SELECT ti.id , ti.id_mcf_transparencia_grupo , ti.informacao_auditada , ti.dispositivo_legal , ai.id_mcf_id_transparencia_item_situacao , ai.indicio_de_prova FROM mcf_tranparencia_item ti left join mcf_auditoria_item ai on ai.id_mcf_id_transparencia_item = ti.id where ai.id_mcf_auditoria = @id order by id_mcf_transparencia_grupo, id; SELECT sg.id , sg.nome , sg.cpf , sg.rg , sg.nacionalidade , sg.estado_civil , sg.profissao , sg.cep , sg.endereco , sg.bairro , sg.cidade , sg.id_estado , sg.email FROM mcf_signatario sg inner join mcf_auditoria_signatario asg on asg.id_mcf_signatario = sg.id where asg.id_mcf_auditoria = @id;" ) ) { while (reader.Read()) { auditoria.grupos.Add(new AuditoriaGrupo { id = Convert.ToInt32(reader["id"]), nome = reader["nome"].ToString(), itens = new List <AuditoriaItem>() }); } reader.NextResult(); while (reader.Read()) { lstAuditoriaItem.Add(new AuditoriaItem { id = Convert.ToInt32(reader["id"]), id_grupo = Convert.ToInt32(reader["id_mcf_transparencia_grupo"]), informacao_auditada = reader["informacao_auditada"].ToString(), dispositivo_legal = reader["dispositivo_legal"].ToString(), situacao = reader["id_mcf_id_transparencia_item_situacao"].ToString(), indicio_de_prova = reader["indicio_de_prova"].ToString() }); } reader.NextResult(); while (reader.Read()) { auditoria.signatarios.Add(new AuditoriaSignatario { //id = Convert.ToInt32(reader["id"]), nome_completo = reader["nome"].ToString(), cpf = reader["cpf"].ToString(), rg = reader["rg"].ToString(), nacionalidade = reader["nacionalidade"].ToString(), estado_civil = reader["estado_civil"].ToString(), profissao = reader["profissao"].ToString(), cep = reader["cep"].ToString(), endereco = reader["endereco"].ToString(), bairro = reader["bairro"].ToString(), cidade = reader["cidade"].ToString(), estado = reader["id_estado"].ToString(), email = reader["email"].ToString() }); } } foreach (var grupo in auditoria.grupos) { var itens = lstAuditoriaItem.FindAll(o => o.id_grupo == grupo.id); grupo.itens.AddRange(itens); } return(auditoria); } }
public dynamic GastosMensaisPorAno(int id) { using (Banco banco = new Banco()) { var strSql = new StringBuilder(); strSql.AppendLine(@" SELECT d.ano, d.mes, SUM(d.valor) AS valor_total FROM sf_despesa d WHERE d.id_sf_senador = @id group by d.ano, d.mes order by d.ano, d.mes " ); banco.AddParameter("@id", id); using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString())) { List <dynamic> lstRetorno = new List <dynamic>(); var lstValoresMensais = new decimal?[12]; string anoControle = string.Empty; bool existeGastoNoAno = false; while (reader.Read()) { if (reader["ano"].ToString() != anoControle) { if (existeGastoNoAno) { lstRetorno.Add(new { name = anoControle.ToString(), data = lstValoresMensais }); lstValoresMensais = new decimal?[12]; existeGastoNoAno = false; } anoControle = reader["ano"].ToString(); } if (Convert.ToDecimal(reader["valor_total"]) > 0) { lstValoresMensais[Convert.ToInt32(reader["mes"]) - 1] = Convert.ToDecimal(reader["valor_total"]); existeGastoNoAno = true; } } if (existeGastoNoAno) { lstRetorno.Add(new { name = anoControle.ToString(), data = lstValoresMensais }); } return(lstRetorno); // Ex: [{"$id":"1","name":"2015","data":[null,18404.57,25607.82,29331.99,36839.82,24001.68,40811.97,33641.20,57391.30,60477.07,90448.58,13285.14]}] } } }
public static void ConsultarCNPJ(string CNPJ) { bool bResolverCapchaAutomatico = false; Random aleatorio = new Random(); mutex.WaitOne(); try { string texto; Bitmap captcha, limpo; int id = 0, i = 0; do { erros[linguagem]++; if (linguagem < linguagens.Length - 1) { linguagem++; } else { linguagem = 0; } if (bResolverCapchaAutomatico) { sw.Stop(); if (sw.Elapsed.TotalSeconds < 4) { System.Threading.Thread.Sleep(aleatorio.Next(3000, 5000)); } } captcha = PegarCaptchaCNPJ(); if (bResolverCapchaAutomatico) { System.Threading.Thread.Sleep(aleatorio.Next(5000, 7000)); sw.Reset(); sw.Start(); } limpo = Captcha.Limpar(captcha); texto = Captcha.OCR(limpo, linguagens[linguagem]); try { Console.WriteLine("Captcha: {0}", texto); if (!bResolverCapchaAutomatico) { Console.WriteLine("Digite o Captcha:"); string temp = Console.ReadLine(); if (!string.IsNullOrEmpty(temp)) { texto = temp; } } var oFormatarDados = new FormatarDados(); id = oFormatarDados.ObterDados(_cookies, CNPJ, texto, true); Console.WriteLine("Fornecedor atualizado: {0}", id); break; } catch (Exception ex) { if (ex.Message == "O número do CNPJ não foi localizado na Receita Federal") { using (Banco banco = new Banco()) { banco.AddParameter("@cnpj_cpf", CNPJ); banco.AddParameter("@controle", 5); banco.AddParameter("@mensagem", ex.Message); banco.ExecuteNonQuery(@"update fornecedor set controle=@controle, mensagem=@mensagem where cnpj_cpf=@cnpj_cpf;"); } break; } else { if (i++ == 5) { break; } } Console.WriteLine(ex.Message); tentativas[linguagem] = (contagem[linguagem] * tentativas[linguagem] + erros[linguagem] + 1) / (contagem[linguagem] + 1); contagem[linguagem]++; erros[linguagem] = -1; //limpo.Save(tempPath + "c.limpo.png"); //limpo.Dispose(); if (ex.Message.Contains("tempo limite")) { System.Threading.Thread.Sleep(3600000); } } } while (id == 0); /*for (int l = 0; l < Receita.linguagens.Length; l++) { * System.Web.HttpContext.Current.Response.Write(linguagens[l] + ": " + (tentativas[l] < erros[l] ? (contagem[l] * tentativas[l] + erros[l] + 1) / (contagem[l] + 1) : tentativas[l]) + "<br />"); * }*/ mutex.ReleaseMutex(); /*using (StreamWriter sw = File.AppendText(System.Web.HttpContext.Current.Server.MapPath("/log.txt"))) { * sw.WriteLine(DateTime.Now + ": " + retorno); * }*/ } catch (Exception e) { erros[linguagem]--; mutex.ReleaseMutex(); if (e is System.NullReferenceException) { /*using (StreamWriter sw = File.AppendText(System.Web.HttpContext.Current.Server.MapPath("/log.txt"))) { * sw.WriteLine(DateTime.Now + ": Imagem invalida"); * }*/ throw new BusinessException("Imagem invalida"); } else { if ((e.GetBaseException() is System.IO.IOException) || (e.GetBaseException() is System.Net.Sockets.SocketException)) { //System.Threading.Thread.Sleep(aleatorio.Next(50000, 500000)); /*using (StreamWriter sw = File.AppendText(System.Web.HttpContext.Current.Server.MapPath("/log.txt"))) { * sw.WriteLine(DateTime.Now + ": IP bloqueado"); * }*/ throw new BusinessException("IP bloqueado"); } else { /*using (StreamWriter sw = File.AppendText(System.Web.HttpContext.Current.Server.MapPath("/log.txt"))) { * sw.WriteLine(DateTime.Now + ": " + e.ToString()); * }*/ throw; } } } }