rtavix

Membros
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Neutro

About rtavix

  1. Bom dia! Estou com problemas para realizar o insert numa tabela chamada contas, entretanto eu tenho relacionamento com a tabela empresa. Na tabela empresa eu tenho o seguintes campos: Id_empresa Nome_Empresa Inscricao_Estadual. 255 AMG Ltda 08522255 Já na tabela de contas eu possuo o seguintes campos: Id_contas Id_Empresa Valor Inscricao_Estadual Ano_Mes Ano_Mes_Conta ICMS TOTAL_RECOLHIDO Porém para realizar o insert eu tenho que verificar se a inscrição estadual que estou inserido existe na tabela de empresa, se existir eu insiro, caso não existe retorna o erro de inserção. Eu não sei se existe a possibilidade de fazer no select as que não existir não inserir e no final mostrar essas inscrições estadual que não tenha vinculo com nenhuma empresa no banco de dados. Como poderia ser tratado o erro que estou recebendo e essa validação? INSERT INTO Contas( id_Conta, id_empresa, valor, inscricao_estadual, ano_mes, ano_mes_Conta, icms, total_recolhido) VALUES( 365545, '25.300,38', '08522255', (SELECT emp.id_empresa FROM EMPRESA emp where emp.Inscricao_Estadual = '08522255'), '199810', '199910', '38.011,71', '38.011,71'); Retorna o seguinte erro: Relatório de erros - ORA-01722: número inválido Se alguém puder me ajudar, fico agradecido.
  2. Estou com dúvidas de como eu posso enviar um log de mensagem para o usuário, implementei esse código, porém tanto o log informado para o usuário que o interessado de uma determinada linha foi importado referente ao processo tal, mas não funciona, e o log de atividades que não esta salvando os dados do usuário no banco de dados. Por gentileza alguém poderia me instruir melhor? Segue o código: private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int indiceLinha) { Action<object> processamento = (dados) => { /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/ NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession()); /*try { loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + NhibernateHelper.SessaoCorrente.IsConnected; } catch (Exception ex) { loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + ex.Message; }*/ /*var lista = ((IEnumerable<DataRow>)dados).FirstOrDefault(); var processo = aplProcesso.consultarPorNProcessoER(lista.ItemArray[1].ToString());*/ foreach (var linha in (IEnumerable<DataRow>)dados) { int i = 0; i = i + 1; List<Processo> listaProcessoExistente = new List<Processo>(); Processo processo = null; Interessado interessado = new Interessado(); //busca o processo pelo nº judicial anterior ou atual if (!linha.ItemArray[1].ToString().Equals("")) processo = aplProcesso.consultarPorNProcessoER(linha.ItemArray[1].ToString()); if (processo == null) { if (!linha.ItemArray[2].ToString().Equals("")) processo = aplProcesso.consultarPorNProcessoER(linha.ItemArray[2].ToString()); } //busca o interessado por cpf/cnpj if (linha.ItemArray[7].ToString().Length == 14) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString())); if (linha.ItemArray[7].ToString().Length == 18) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString())); if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) //loglbl.Text = loglbl.Text + "O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"; log.Append("O interessado informado na linha " + linha + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, linha); } else { //Novo Processo - 6.3 processo = new Processo(); processo.Interessado = interessado; processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim(); processo.RenunciaCredito = "N"; processo.Situacao = new AplSituacao().ConsultarPorId(1); processo.HonorarioDativo = "S"; processo.Reclamado = new AplReclamado().buscaItem(2); processo.TipoDocumento = new AplTipoDocumento().buscaItem(4); processo.TipoProcesso = "O"; if (linha.ItemArray[5].ToString().Contains("juizado")) processo.Tribunal = new AplTribunal().buscaItem(71); else processo.Tribunal = new AplTribunal().buscaItem(3); processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3); VaraExecucao vara = new VaraExecucao(); if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals("")) { List<VaraExecucao> listaVaraComarca = aplVaraExecucao.ConsultarPorNomeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim()); if (listaVaraComarca.Count != 0) { if (linha.ItemArray[4].ToString().Equals("")) { vara = listaVaraComarca.Find(o => o.NumeroVara == null); } else { vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim())); } } } if (vara != null && vara.Codigo != 0) { processo.VaraExecucao = vara; } //obter lista sem registros duplicados. (Robson) var ListaSemDuplicados = listaGravarProcesso.Distinct().ToList(); aplProcesso.gravar(processo); aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal " + processo.Tribunal.NomeTribunal + ".", DateTime.Now); //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>"); setProcInter(processo, interessado, linha); } }//Fim For //ClientScript.RegisterStartupScript(typeof(string), "Carregando...", "<script>$('#progressbar').progressbar({value: 70});</script>"); ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>"); if (listaGravarProcInter.Count != 0) { foreach (ProcessoInteressado item in listaGravarProcInter) { //obter lista sem registros duplicados. (Robson) var ListaSemDuplicados = listaGravarProcInter.Distinct().ToList(); aplProcessoInteressado.salvar(item); } } if (listaLogsAuditoria.Count != 0) { foreach (var item in listaLogsAuditoria) { aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now); } } logimportacao.Visible = true; loglbl.Text = log.ToString(); //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>"); ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>"); }; //else //{ // logimportacao.Visible = true; // loglbl.Text = log.ToString(); // ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>"); ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.HelpThreading()); if (sessao != null) { if (sessao.Transaction != null && sessao.Transaction.IsActive) { sessao.Transaction.Rollback(); } else { sessao.Flush(); } sessao.Close(); } else { logimportacao.Visible = true; loglbl.Text = log.ToString(); ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>"); } //Tarefas baseadas de forma assíncrona System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam); return tarefa_executar; }
  3. Pessoal, bom dia! Estou com o seguinte problema, ao compilar minha aplicação, e ao tentar importar as informações da planilha excel, realizo a consulta no banco e ao verificar, a linha 6 e a 8 foram importadas, entretanto, a linha 7 não importou, que no caso é o nome da pessoa, que coloquei como interessado. Eu consigo lê as linhas, porém no momento que vou salvar/ gravar as mesmas no banco de dados, não salva o nome do interessado Bruno que pertence a linha 7. Alguém poderia me ajudar por gentileza? O código do interessado 14330 é referente da Antônia e o código 19410 é da Carolina, o interessado Bruno não esta salvando. Me ajudem por gentileza. Leitura das linhas:
  4. Pessoal, estou com o seguinte problema no meu código, eu não estou conseguindo gravar a primeira linha da planilha Excel, porém eu consigo gravar somente da segunda linha adiante, quando eu faço a consulta no meu banco de dados não aparece o nome da pessoa da primeira linha, que no caso se chama interessado lá no banco de dados, somente da segunda a diante que grava. Printei as imagens para vocês poderem visualizar na prática, consigo ler os três registros da planilha, porém não consigo gravar o da primeira linha, pega somente da segunda linha adiante galera. postarei meu código, preciso finalizar isso até quarta, queria ver se alguém pode me ajudar. Alguém sabe o que posso aplicar para resolver olhando meu código? Vou postar também meu código para ficar melhor a entender. No interessado mostra como tipo nulo e dá o seguinte erro: NHibernate.Exceptions.GenericADOException: could not insert: [SDPJDominio.Domain.Interessado#19516][SQL: INSERT INTO sdpj_interessado (TIP_INTERESSADO, CPF_CNPJ_INTERESSADO, NME_INTERESSADO, DSC_ENDERECO, NUM_ENDERECO, DSC_COMPLEMENTO, NUM_CEP, COD_BAIRRO, COD_MUNICIPIO, COD_INTERESSADO) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)] ---> Oracle.DataAccess.Client.OracleException: ORA-01400: não é possível inserir NULL em ("U_SDP"."SDPJ_INTERESSADO"."NME_INTERESSADO") Meu código: protected void importar_Click(object sender, EventArgs e) { DataTable Dados = new DataTable(); if (selecionarArquivo.HasFile) { if (Path.GetExtension(selecionarArquivo.FileName) != ".xlsx" && Path.GetExtension(selecionarArquivo.FileName) != ".xls") ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Somente arquivos em excel')</script>"); else { if (selecionarArquivo.FileContent != null) { string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName; selecionarArquivo.SaveAs(Excel); Dados = DadosExcel(Excel); var registrosValidos = ((DataTable)Dados).Rows.OfType<DataRow>().Skip(5); registrosValidos = registrosValidos.Take(registrosValidos.Count() - 1); int quantidade_por_pagina = 100; int total_de_paginas; int qtd_total_registros = registrosValidos.Count(); total_de_paginas = (int)Math.Ceiling((double)qtd_total_registros / quantidade_por_pagina); bool layoutValido = VerificaLayout(Dados); if (!layoutValido) ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>"); else { VerificacaoPreliminar(registrosValidos); List<System.Threading.Tasks.Task> TarefasParalelas = new List<System.Threading.Tasks.Task>(); for (int i = 0; i < total_de_paginas; i++) { var pagina = i; var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina); var data_rows_divididos = linhasPorPagina.SplitList(10); foreach (var aaa in data_rows_divididos) { TarefasParalelas.Add(ProcessamentoTabela(aaa)); } } foreach (var tarefa in TarefasParalelas) tarefa.Start(); System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray()); ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>"); if (listaGravarProcInter.Count != 0) { var ListaSemDuplicados = listaGravarProcInter.Distinct().ToList(); foreach (ProcessoInteressado item in ListaSemDuplicados) { aplProcessoInteressado.salvar(item); } } if (listaLogsAuditoria.Count != 0) { foreach (var item in listaLogsAuditoria) { aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now); } } else { logimportacao.Visible = true; loglbl.Text = log.ToString(); //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>"); ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>"); } /*else { logimportacao.Visible = true; loglbl.Text = log.ToString(); ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>"); }*/ } } } } } private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam) { Action<object> processamento = (dados) => { NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.Teste().OpenSession()); foreach (var linha in (IEnumerable<DataRow>)dados) { List<Processo> listaProcessoExistente = new List<Processo>(); Processo processo = null; Interessado interessado = new Interessado(); if (!arquivoInvalidado) //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '30%';</script>"); //Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros q tem interessados duplicados. this.ValidaDuplicidadeInteressado(); if (!linha.ItemArray[1].ToString().Equals("")) processo = aplProcesso.consultarPorNProcessoER(linha.ItemArray[1].ToString()); if (processo == null) { if (!linha.ItemArray[2].ToString().Equals("")) processo = aplProcesso.consultarPorNProcessoER(linha.ItemArray[2].ToString()); } if (linha.ItemArray[7].ToString().Length == 14) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString())); if (linha.ItemArray[7].ToString().Length == 18) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString())); if (processo != null) { List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) log.Append("O interessado informado na linha " + (1) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, linha); } else { //Novo Processo - 6.3 processo = new Processo(); processo.Interessado = interessado; processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim(); processo.RenunciaCredito = "N"; processo.Situacao = new AplSituacao().ConsultarPorId(1); processo.HonorarioDativo = "S"; processo.Reclamado = new AplReclamado().buscaItem(2); processo.TipoDocumento = new AplTipoDocumento().buscaItem(4); processo.TipoProcesso = "O"; if (linha.ItemArray[5].ToString().Contains("juizado")) processo.Tribunal = new AplTribunal().buscaItem(71); else processo.Tribunal = new AplTribunal().buscaItem(3); processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3); VaraExecucao vara = new VaraExecucao(); if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals("")) { List<VaraExecucao> listaVaraComarca = aplVaraExecucao.ConsultarPorNomeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim()); if (listaVaraComarca.Count != 0) { if (linha.ItemArray[4].ToString().Equals("")) { vara = listaVaraComarca.Find(o => o.NumeroVara == null); } else { vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim())); } } } if (vara != null && vara.Codigo != 0) { processo.VaraExecucao = vara; } else { logimportacao.Visible = true; loglbl.Text = log.ToString(); ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>"); } var ListaSemDuplicados = listaGravarProcesso.Distinct().ToList(); aplProcesso.gravar(processo); /*aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal " + processo.Tribunal.NomeTribunal + ".", DateTime.Now);*/ //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>");*/ setProcInter(processo, interessado, linha); } } ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.Teste()); if (sessao != null) { if (sessao.Transaction != null && sessao.Transaction.IsActive) { sessao.Transaction.Rollback(); } else { //sessao.Flush(); } sessao.Close(); } }; System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam); return tarefa_executar; } private Interessado setInteressado(DataRow linha) { Interessado interessado = new Interessado(); AplMunicipio aplMunicipio = new AplMunicipio(); AplBairro aplBairro = new AplBairro(); interessado.Nome = linha.ItemArray[6].ToString().ToUpper(); if (!linha.ItemArray[8].ToString().Equals("")) interessado.Endereco = linha.ItemArray[8].ToString().ToUpper(); if (!linha.ItemArray[9].ToString().Equals("")) interessado.Numero = interessado.Complemento = linha.ItemArray[9].ToString(); if (!linha.ItemArray[10].ToString().Equals("")) interessado.Complemento = linha.ItemArray[10].ToString().ToUpper(); if (!linha.ItemArray[13].ToString().Equals("")) { //Municipio municipio = aplMunicipio.ConsultarPorNome(linha.ItemArray[13].ToString().ToUpper()); Municipio municipio = this.listaMunicipios.Find(m => Utilitarios.RemoveAcentos(m.Nome).ToUpper() == Utilitarios.RemoveAcentos(linha.ItemArray[13].ToString()).ToUpper()); if (municipio == null) { municipio = new Municipio(); municipio.Estado = new AplEstado().buscaItem(1); municipio.Nome = linha.ItemArray[13].ToString().ToUpper(); //obter lista sem registros duplicados (Robson) var ListaSemDuplicados = listaMunicipios.Distinct().ToList(); aplMunicipio.gravar(municipio); } interessado.Municipio = municipio;// aplMunicipio.ConsultarPorNome(ds.Tables[0].Rows[i].ItemArray[13].ToString().ToUpper()); if (!String.IsNullOrEmpty(linha.ItemArray[11].ToString())) { //Bairro bairro = aplBairro.ConsultarPorNomeCodMunicipio(linha.ItemArray[11].ToString().ToUpper(), municipio.Codigo); List<Bairro> listaBairro = aplBairro.ListaPorIdMunicipio(municipio.Codigo); Bairro bairro = listaBairro.Find(b => Utilitarios.RemoveAcentos(b.Descricao).ToUpper() == Utilitarios.RemoveAcentos(linha.ItemArray[11].ToString()).ToUpper()); if (bairro == null) { bairro = new Bairro(); bairro.CodMunicipio = municipio; bairro.Descricao = linha.ItemArray[11].ToString().ToUpper(); //obter lista sem registros duplicados (Robson) var ListaSemDuplicados = listaBairro.Distinct().ToList(); aplBairro.gravar(bairro); } interessado.Bairro = bairro;// aplBairro.ConsultarPorNomeCodMunicipio(ds.Tables[0].Rows[i].ItemArray[11].ToString().ToUpper(), municipio.Codigo); } } if (!linha.ItemArray[12].ToString().Equals("")) interessado.Cep = linha.ItemArray[12].ToString(); if (!linha.ItemArray[7].ToString().Equals("")) if (linha.ItemArray[7].ToString().Length == 14) { interessado.CPF_CNPJ = AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString()); interessado.Tipo = 1; } else if (linha.ItemArray[7].ToString().Length == 18) { interessado.CPF_CNPJ = AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString()); interessado.Tipo = 2; } else { log.Append("O CPF/CNPJ informado na célula H" + ( 1) + " está em um formato incorreto. Favor corrigir a planilha. <br>"); arquivoInvalidado = true; } return interessado;