public ConsultaSpcResponse ConsultarSPC( string tipoPessoaDocumento, string documento, string usuarioLogado, string hash) { if (tipoPessoaDocumento != "1" && tipoPessoaDocumento != "2" && tipoPessoaDocumento != "F" && tipoPessoaDocumento != "J") { return(RetornarErro("Tipo de Pessoa informado incorretamente. (1 - PJ | 2 - PF)")); } if (string.IsNullOrWhiteSpace(documento)) { return(RetornarErro("Número do Documento (CNPJ/CPF) não informado")); } if (string.IsNullOrWhiteSpace(usuarioLogado)) { return(RetornarErro("ID do usuário CRM não informado")); } if (hash != Config.Hash) { return(RetornarErro("Não autorizado (hash inválido)")); } documento = documento.RemoverCaracteresEspeciaisDocumento(); TipoPessoaResponse tipoPessoa = TipoPessoaResponse.PessoaFisica; if (tipoPessoaDocumento == "2" || tipoPessoaDocumento == "J") { tipoPessoa = TipoPessoaResponse.PessoaJuridica; } SPCService service = new SPCService(Parametros.WsSPCUrl, Parametros.WsSPCUsuario, Parametros.WsSPCSenha); ConsultaSpcResponse dadosConsulta = new ConsultaSpcResponse(); ContaRepositorio contaRepositorio = new ContaRepositorio(); AnaliseCreditoRepositorio analiseCreditoRepositorio = new AnaliseCreditoRepositorio(); ParametrosRepositorio parametrosRepositorio = new ParametrosRepositorio(); var parametros = parametrosRepositorio.ObterParametros(); var contaBusca = contaRepositorio.ObterContaPorDocumento(documento); if (contaBusca == null) { return(RetornarErro($"Conta com documento {documento} é inexistente")); } var resultadoSpc = service.Consultar(tipoPessoa, documento.RemoverCaracteresEspeciaisDocumento(), Parametros.WsSPCProduto); if (resultadoSpc == null) { return(RetornarErro($"Sem resposta da Consulta S")); } dadosConsulta.ContaId = contaBusca.Id; dadosConsulta.DataConsulta = DateTime.Now; dadosConsulta.Protocolo = $"{resultadoSpc.protocolo.numero}-{resultadoSpc.protocolo.digito}"; dadosConsulta.Restricao = resultadoSpc.restricao; if (resultadoSpc.consumidor?.consumidorpessoajuridica != null) { dadosConsulta.TipoPessoa = TipoPessoaResponse.PessoaJuridica; var consumidor = resultadoSpc.consumidor?.consumidorpessoajuridica; dadosConsulta.RazaoSocial = consumidor.razaosocial; dadosConsulta.Fundacao = consumidor.datafundacao; dadosConsulta.CNPJ = Convert.ToUInt64(consumidor.cnpj.numero).ToString(@"00\.000\.000\/0000\-00"); dadosConsulta.Atividade = consumidor.atividadeeconomicaprincipal?.descricao ?? string.Empty; dadosConsulta.Situacao = consumidor.situacaocnpj?.descricaosituacao ?? string.Empty; var endereco = consumidor?.endereco; if (endereco != null) { dadosConsulta.Logradouro = endereco.logradouro; dadosConsulta.Bairro = endereco.bairro; dadosConsulta.Cidade = endereco.cidade.nome; dadosConsulta.Estado = endereco.cidade.estado.siglauf; dadosConsulta.CEP = endereco.cep; } } if (resultadoSpc.consumidor?.consumidorpessoafisica != null) { dadosConsulta.TipoPessoa = TipoPessoaResponse.PessoaFisica; var consumidor = resultadoSpc.consumidor?.consumidorpessoafisica; /// <summary> dadosConsulta.Nome = consumidor.nome; dadosConsulta.DataNascimento = consumidor.datanascimento; dadosConsulta.CPF = Convert.ToUInt64(consumidor.cpf.numero).ToString(@"000\.000\.000\-00"); dadosConsulta.Situacao = consumidor.situacaocpf?.descricaosituacao ?? string.Empty; dadosConsulta.Nacionalidade = consumidor.nacionalidade?.nome ?? string.Empty; var endereco = consumidor?.endereco; if (endereco != null) { dadosConsulta.Logradouro = endereco.logradouro; dadosConsulta.Bairro = endereco.bairro; dadosConsulta.Cidade = endereco.cidade.nome; dadosConsulta.Estado = endereco.cidade.estado.siglauf; dadosConsulta.CEP = endereco.cep; } } if (resultadoSpc.protesto?.resumo != null) { var protesto = resultadoSpc.protesto?.resumo; dadosConsulta.ProtestoQuantidade = protesto.quantidadetotal; dadosConsulta.ProtestoData = protesto.dataultimaocorrencia; dadosConsulta.ProtestoValorTotal = protesto.valortotal; dadosConsulta.Quantidade += protesto.quantidadetotal; } if (resultadoSpc.acao?.resumo != null) { var acao = resultadoSpc.acao?.resumo; dadosConsulta.AcaoQuantidade = acao.quantidadetotal; dadosConsulta.AcaoData = acao.dataultimaocorrencia; dadosConsulta.AcaoValorTotal = acao.valortotal; dadosConsulta.Quantidade += acao.quantidadetotal; } if (resultadoSpc.pendenciafinanceira?.resumo != null) { var pendencia = resultadoSpc.pendenciafinanceira?.resumo; dadosConsulta.PendenciaFinancQuantidade = pendencia.quantidadetotal; dadosConsulta.PendenciaFinancData = pendencia.dataultimaocorrencia; dadosConsulta.PendenciaFinancValorTotal = pendencia.valortotal; dadosConsulta.Quantidade += pendencia.quantidadetotal; for (int i = 0; i < resultadoSpc.pendenciafinanceira?.Items?.Length; i++) { var item = (WsSPC.InsumoPendenciaFinanceira)resultadoSpc.pendenciafinanceira.Items[i]; var detalhe = new DetalhesPendenciaFinanceiraDTO(); detalhe.Titulo = item.tituloocorrencia; detalhe.Avalista = item.avalista; detalhe.Contrato = item.contrato; detalhe.Ocorrencia = item.dataocorrencia; detalhe.Filial = item.filial; detalhe.Origem = item.origem; detalhe.Moeda = item.moeda?.simbolo; detalhe.Natureza = item.naturezaanotacao?.descricaonaturezaanotacao; detalhe.Cidade = item.cidade?.nome; detalhe.UF = item.cidade?.estado?.siglauf; detalhe.Valor = item.valorpendencia; dadosConsulta.DetalhesPendenciasFinanceiras.Add(detalhe); } } if (resultadoSpc.participacaofalencia?.resumo != null) { var participacaofalencia = resultadoSpc.participacaofalencia?.resumo; dadosConsulta.ParticipFalenciaQuantidade = participacaofalencia.quantidadetotal; dadosConsulta.ParticipFalenciaData = participacaofalencia.dataultimaocorrencia; dadosConsulta.ParticipFalenciaValorTotal = participacaofalencia.valortotal; dadosConsulta.Quantidade += participacaofalencia.quantidadetotal; } if (resultadoSpc.spc?.resumo != null) { var spc = resultadoSpc.spc?.resumo; dadosConsulta.SpcQuantidade = spc.quantidadetotal; dadosConsulta.SpcData = spc.dataultimaocorrencia; dadosConsulta.SpcValorTotal = spc.valortotal; dadosConsulta.Quantidade += spc.quantidadetotal; for (int i = 0; i < resultadoSpc.spc?.Items?.Length; i++) { var item = (WsSPC.InsumoSPC)resultadoSpc.spc.Items[i]; var detalhe = new DetalhesSpcDTO(); detalhe.Associado = item.nomeassociado; detalhe.Contrato = item.contrato; detalhe.Entidade = item.nomeentidade; detalhe.Inclusao = item.datainclusao; detalhe.Vencimento = item.datavencimento; detalhe.Valor = item.valor; dadosConsulta.DetalhesSpc.Add(detalhe); } } if (resultadoSpc.chequesemfundovarejo?.resumo != null) { var chequeSemFundoVarejo = resultadoSpc.chequesemfundovarejo?.resumo; dadosConsulta.ChequeSFQuantidade = chequeSemFundoVarejo.quantidadetotal; dadosConsulta.ChequeSFData = chequeSemFundoVarejo.dataultimaocorrencia; dadosConsulta.ChequeSFValorTotal = chequeSemFundoVarejo.valortotal; dadosConsulta.Quantidade += chequeSemFundoVarejo.quantidadetotal; } if (resultadoSpc.ccf?.resumo != null) { var ChequeSemFundoCCF = resultadoSpc.ccf?.resumo; dadosConsulta.ChequeSFCCFQuantidade = ChequeSemFundoCCF.quantidadetotal; dadosConsulta.ChequeSFCCFData = ChequeSemFundoCCF.dataultimaocorrencia; dadosConsulta.ChequeSFCCFValorTotal = ChequeSemFundoCCF.valortotal; dadosConsulta.Quantidade += ChequeSemFundoCCF.quantidadetotal; for (int i = 0; i < resultadoSpc.ccf?.Items?.Length; i++) { var item = (WsSPC.InsumoCCF)resultadoSpc.ccf.Items[i]; var detalhe = new CCFDetalhesDTO(); detalhe.Origem = item.origem; detalhe.DataUltimoCheque = item.dataultimocheque; detalhe.Quantidade = item.quantidade; detalhe.Motivo = item.motivo?.descricao; dadosConsulta.DetalhesCCF.Add(detalhe); } } if (resultadoSpc.chequelojista?.resumo != null) { var chequelojista = resultadoSpc.chequelojista?.resumo; dadosConsulta.ChequeLojistaQuantidade = chequelojista.quantidadetotal; dadosConsulta.ChequeLojistaData = chequelojista.dataultimaocorrencia; dadosConsulta.ChequeLojistaValorTotal = chequelojista.valortotal; dadosConsulta.Quantidade += chequelojista.quantidadetotal; for (int i = 0; i < resultadoSpc.chequelojista?.Items?.Length; i++) { var item = (WsSPC.InsumoChequeLojista)resultadoSpc.chequelojista.Items[i]; var detalhe = new DetalhesChequeLojistaDTO(); detalhe.Associado = item.nomeassociado; detalhe.Entidade = item.nomeentidade; detalhe.Inclusao = item.datainclusao; detalhe.Descricao = item.alinea?.descricao; detalhe.ChequeEmissao = item.chequeinicial?.dataemissao; detalhe.ChequeValor = item.chequeinicial?.valor; detalhe.CidadeAssociado = item.cidadeassociado?.nome; dadosConsulta.DetalhesChequesLojistas.Add(detalhe); } } if (resultadoSpc.chequeoutrasocorrenciassrs?.resumo != null) { var chequeOutrasOcorrencias = resultadoSpc.chequeoutrasocorrenciassrs?.resumo; dadosConsulta.ChequeCOOutrasQuantidade = chequeOutrasOcorrencias.quantidadetotal; dadosConsulta.ChequeCOOutrasData = chequeOutrasOcorrencias.dataultimaocorrencia; dadosConsulta.ChequeCOOutrasValorTotal = chequeOutrasOcorrencias.valortotal; dadosConsulta.Quantidade += chequeOutrasOcorrencias.quantidadetotal; } if (resultadoSpc.consultarealizada?.resumo != null) { var consultaRealizada = resultadoSpc.consultarealizada?.resumo; dadosConsulta.ConsultaRealizadaQuantidade = consultaRealizada.quantidadetotal; dadosConsulta.ConsultaRealizadaData = consultaRealizada.dataultimaocorrencia; dadosConsulta.ConsultaRealizadaValorTotal = consultaRealizada.valortotal; dadosConsulta.Quantidade += consultaRealizada.quantidadetotal; for (int i = 0; i < resultadoSpc.consultarealizada?.Items?.Length; i++) { var item = (WsSPC.InsumoConsultaRealizada)resultadoSpc.consultarealizada.Items[i]; var detalhe = new ConsultaRealizadaDTO(); detalhe.Associado = item.nomeassociado; detalhe.DataConsulta = item.dataconsulta; detalhe.Entidade = item.nomeentidadeorigem; detalhe.Cidade = item.origemassociado?.nome; detalhe.Estado = item.origemassociado?.estado?.siglauf; dadosConsulta.DetalhesConsultasRealizadas.Add(detalhe); } } if (resultadoSpc.alertadocumento?.resumo != null) { var alertaDocumento = resultadoSpc.alertadocumento?.resumo; dadosConsulta.AlertaDocQuantidade = alertaDocumento.quantidadetotal; dadosConsulta.AlertaDocData = alertaDocumento.dataultimaocorrencia; dadosConsulta.AlertaDocValorTotal = alertaDocumento.valortotal; dadosConsulta.Quantidade += alertaDocumento.quantidadetotal; for (int i = 0; i < resultadoSpc.alertadocumento?.Items?.Length; i++) { var item = (WsSPC.InsumoAlertaDocumento)resultadoSpc.alertadocumento.Items[i]; var detalhe = new AlertaDocumentosDTO(); detalhe.Inclusao = item.datainclusao; detalhe.Ocorrencia = item.dataocorrencia; detalhe.Entidade = item.entidadeorigem; detalhe.Motivo = item.motivo; if (item.tipodocumentoalerta?.Length > 0) { detalhe.Tipos = string.Join(",", item.tipodocumentoalerta.Select(c => c.nome)); } dadosConsulta.DetalhesAlertasDocumentos.Add(detalhe); } } if (resultadoSpc.creditoconcedido?.resumo != null) { var creditoConcedido = resultadoSpc.creditoconcedido?.resumo; dadosConsulta.CreditoConcQuantidade = creditoConcedido.quantidadetotal; dadosConsulta.CreditoConcData = creditoConcedido.dataultimaocorrencia; dadosConsulta.CreditoConcValorTotal = creditoConcedido.valortotal; dadosConsulta.Quantidade += creditoConcedido.quantidadetotal; } if (resultadoSpc.contraordem?.resumo != null) { var contraordem = resultadoSpc.contraordem?.resumo; dadosConsulta.ContraOrdemQuantidade = contraordem.quantidadetotal; dadosConsulta.ContraOrdemData = contraordem.dataultimaocorrencia; dadosConsulta.ContraOrdemValorTotal = contraordem.valortotal; dadosConsulta.Quantidade += contraordem.quantidadetotal; } if (resultadoSpc.contraordemdocumentodiferente?.resumo != null) { var contraordemDoc = resultadoSpc.contraordemdocumentodiferente?.resumo; dadosConsulta.ContraOrdemDFQuantidade = contraordemDoc.quantidadetotal; dadosConsulta.ContraOrdemDFData = contraordemDoc.dataultimaocorrencia; dadosConsulta.ContraOrdemDFValorTotal = contraordemDoc.valortotal; dadosConsulta.Quantidade += contraordemDoc.quantidadetotal; for (int i = 0; i < resultadoSpc.contraordemdocumentodiferente?.Items?.Length; i++) { var item = (WsSPC.InsumoContraOrdemDocumentoDiferente)resultadoSpc.contraordemdocumentodiferente.Items[i]; var detalhe = new ContraOrdemDocumentoDiferenteDTO(); detalhe.Documento = item.documento; detalhe.Inclusao = item.datainclusao; detalhe.Ocorrencia = item.dataocorrencia; detalhe.Origem = item.origem; detalhe.Informante = item.informante; detalhe.Descricao = item.motivo?.descricao; dadosConsulta.DetalhesContraOrdemDocumentoDiferente.Add(detalhe); } } dadosConsulta.UsuarioId = Convert.ToInt32(usuarioLogado); bool fluxoAprovacao = true; var pendenciasFinanceiras = analiseCreditoRepositorio .ObterPendenciasFinanceiras(contaBusca.Documento.RemoverCaracteresEspeciaisDocumento()); dadosConsulta.TotalDividaEcoporto = pendenciasFinanceiras.Sum(c => c.Valor); dadosConsulta.InadimplenteEcoporto = dadosConsulta.TotalDividaEcoporto > 0; dadosConsulta.TotalDividaSpc = ObterTotalDividaSpc(resultadoSpc); dadosConsulta.InadimplenteSpc = dadosConsulta.TotalDividaSpc > parametros.DividaSpc; if (dadosConsulta.TotalDividaSpc < parametros.DividaSpc) { dadosConsulta.Validade = DateTime.Now.AddYears(1); } if (dadosConsulta.TotalDividaSpc > parametros.DividaSpc && fluxoAprovacao == false) { dadosConsulta.Validade = DateTime.Now.AddMonths(3); } if (dadosConsulta.TotalDividaSpc > parametros.DividaSpc && fluxoAprovacao == true) { dadosConsulta.Validade = DateTime.Now.AddYears(1); } var contasRaizCnpj = contaRepositorio .ObterContasPorRaizDocumento(contaBusca.Documento.RemoverCaracteresEspeciaisDocumento()); dadosConsulta.StatusAnaliseDeCredito = StatusAnaliseDeCreditoResponse.PENDENTE; if ((dadosConsulta.TotalDividaSpc <= parametros.DividaSpc) && (dadosConsulta.TotalDividaEcoporto == 0)) { dadosConsulta.StatusAnaliseDeCredito = StatusAnaliseDeCreditoResponse.APROVADO; } analiseCreditoRepositorio.GravarConsultaSpc(dadosConsulta, contasRaizCnpj); return(dadosConsulta); }
public ConsultaSpcResponse ConsultarBancoDeDados(string documento, string hash) { ConsultaSpcResponse dadosConsulta = new ConsultaSpcResponse(); AnaliseCreditoRepositorio analiseCreditoRepositorio = new AnaliseCreditoRepositorio(); ContaRepositorio contaRepositorio = new ContaRepositorio(); ParametrosRepositorio parametrosRepositorio = new ParametrosRepositorio(); var parametros = parametrosRepositorio.ObterParametros(); if (string.IsNullOrWhiteSpace(documento)) { return(RetornarErro("Número do Documento (CNPJ/CPF) não informado")); } if (hash != Config.Hash) { return(RetornarErro("Não autorizado (hash inválido)")); } documento = documento.RemoverCaracteresEspeciaisDocumento(); var contaBusca = contaRepositorio.ObterContaPorId(documento.ToInt()); if (contaBusca == null) { return(RetornarErro($"Conta com documento {documento} não encontrada")); } var analiseCreditoBusca = analiseCreditoRepositorio.ObterConsultaSpc(contaBusca.Id); if (analiseCreditoBusca != null) { dadosConsulta.ContaId = contaBusca.Id; dadosConsulta.Id = analiseCreditoBusca.Id; dadosConsulta.DataConsulta = analiseCreditoBusca.DataConsulta; dadosConsulta.Protocolo = analiseCreditoBusca.Protocolo; dadosConsulta.Restricao = analiseCreditoBusca.Restricao; dadosConsulta.TipoPessoa = analiseCreditoBusca.TipoPessoa; dadosConsulta.Validade = analiseCreditoBusca.Validade; dadosConsulta.RazaoSocial = analiseCreditoBusca.RazaoSocial; dadosConsulta.Fundacao = analiseCreditoBusca.Fundacao; dadosConsulta.CNPJ = analiseCreditoBusca.CNPJ; dadosConsulta.Nome = analiseCreditoBusca.Nome; dadosConsulta.DataNascimento = analiseCreditoBusca.DataNascimento; dadosConsulta.CPF = analiseCreditoBusca.CPF; dadosConsulta.Nacionalidade = analiseCreditoBusca.Nacionalidade; dadosConsulta.Atividade = analiseCreditoBusca.Atividade; dadosConsulta.Situacao = analiseCreditoBusca.Situacao; dadosConsulta.Logradouro = analiseCreditoBusca.Logradouro; dadosConsulta.Bairro = analiseCreditoBusca.Bairro; dadosConsulta.Cidade = analiseCreditoBusca.Cidade; dadosConsulta.Estado = analiseCreditoBusca.Estado; dadosConsulta.CEP = analiseCreditoBusca.CEP; dadosConsulta.ProtestoQuantidade = analiseCreditoBusca.ProtestoQuantidade; dadosConsulta.ProtestoData = analiseCreditoBusca.ProtestoData; dadosConsulta.ProtestoValorTotal = analiseCreditoBusca.ProtestoValorTotal; dadosConsulta.AcaoQuantidade = analiseCreditoBusca.AcaoQuantidade; dadosConsulta.AcaoData = analiseCreditoBusca.AcaoData; dadosConsulta.AcaoValorTotal = analiseCreditoBusca.AcaoValorTotal; dadosConsulta.StatusAnaliseDeCredito = analiseCreditoBusca.StatusAnaliseDeCredito; dadosConsulta.PendenciaFinancQuantidade = analiseCreditoBusca.PendenciaFinancQuantidade; dadosConsulta.PendenciaFinancData = analiseCreditoBusca.PendenciaFinancData; dadosConsulta.PendenciaFinancValorTotal = analiseCreditoBusca.PendenciaFinancValorTotal; dadosConsulta.ParticipFalenciaQuantidade = analiseCreditoBusca.ParticipFalenciaQuantidade; dadosConsulta.ParticipFalenciaData = analiseCreditoBusca.ParticipFalenciaData; dadosConsulta.ParticipFalenciaValorTotal = analiseCreditoBusca.ParticipFalenciaValorTotal; dadosConsulta.SpcQuantidade = analiseCreditoBusca.SpcQuantidade; dadosConsulta.SpcData = analiseCreditoBusca.SpcData; dadosConsulta.SpcValorTotal = analiseCreditoBusca.SpcValorTotal; dadosConsulta.ChequeSFQuantidade = analiseCreditoBusca.ChequeSFQuantidade; dadosConsulta.ChequeSFData = analiseCreditoBusca.ChequeSFData; dadosConsulta.ChequeSFValorTotal = analiseCreditoBusca.ChequeSFValorTotal; dadosConsulta.ChequeSFCCFQuantidade = analiseCreditoBusca.ChequeSFCCFQuantidade; dadosConsulta.ChequeSFCCFData = analiseCreditoBusca.ChequeSFCCFData; dadosConsulta.ChequeSFCCFValorTotal = analiseCreditoBusca.ChequeSFCCFValorTotal; dadosConsulta.ChequeLojistaQuantidade = analiseCreditoBusca.ChequeLojistaQuantidade; dadosConsulta.ChequeLojistaData = analiseCreditoBusca.ChequeLojistaData; dadosConsulta.ChequeLojistaValorTotal = analiseCreditoBusca.ChequeLojistaValorTotal; dadosConsulta.ChequeCOOutrasQuantidade = analiseCreditoBusca.ChequeCOOutrasQuantidade; dadosConsulta.ChequeCOOutrasData = analiseCreditoBusca.ChequeCOOutrasData; dadosConsulta.ChequeCOOutrasValorTotal = analiseCreditoBusca.ChequeCOOutrasValorTotal; dadosConsulta.ConsultaRealizadaQuantidade = analiseCreditoBusca.ConsultaRealizadaQuantidade; dadosConsulta.ConsultaRealizadaData = analiseCreditoBusca.ConsultaRealizadaData; dadosConsulta.ConsultaRealizadaValorTotal = analiseCreditoBusca.ConsultaRealizadaValorTotal; dadosConsulta.AlertaDocQuantidade = analiseCreditoBusca.AlertaDocQuantidade; dadosConsulta.AlertaDocData = analiseCreditoBusca.AlertaDocData; dadosConsulta.AlertaDocValorTotal = analiseCreditoBusca.AlertaDocValorTotal; dadosConsulta.CreditoConcQuantidade = analiseCreditoBusca.CreditoConcQuantidade; dadosConsulta.CreditoConcData = analiseCreditoBusca.CreditoConcData; dadosConsulta.CreditoConcValorTotal = analiseCreditoBusca.CreditoConcValorTotal; dadosConsulta.ContraOrdemQuantidade = analiseCreditoBusca.ContraOrdemQuantidade; dadosConsulta.ContraOrdemData = analiseCreditoBusca.ContraOrdemData; dadosConsulta.ContraOrdemValorTotal = analiseCreditoBusca.ContraOrdemValorTotal; dadosConsulta.ContraOrdemDFQuantidade = analiseCreditoBusca.ContraOrdemDFQuantidade; dadosConsulta.ContraOrdemDFData = analiseCreditoBusca.ContraOrdemDFData; dadosConsulta.ContraOrdemDFValorTotal = analiseCreditoBusca.ContraOrdemDFValorTotal; dadosConsulta.DetalhesSpc = analiseCreditoRepositorio .ObterDetalhesSpc(analiseCreditoBusca.Id).ToList(); dadosConsulta.DetalhesPendenciasFinanceiras = analiseCreditoRepositorio .ObterDetalhesPendenciasFinanceiras(analiseCreditoBusca.Id).ToList(); dadosConsulta.DetalhesChequesLojistas = analiseCreditoRepositorio .ObterDetalhesChequesLojistas(analiseCreditoBusca.Id).ToList(); dadosConsulta.DetalhesContraOrdemDocumentoDiferente = analiseCreditoRepositorio .ObterDetalhesContraOrdemDocumentoDiferente(analiseCreditoBusca.Id).ToList(); dadosConsulta.DetalhesConsultasRealizadas = analiseCreditoRepositorio .ObterDetalhesHistoricoConsultas(analiseCreditoBusca.Id).ToList(); dadosConsulta.DetalhesAlertasDocumentos = analiseCreditoRepositorio .ObterDetalhesAlertasDocumentos(analiseCreditoBusca.Id).ToList(); dadosConsulta.DetalhesCCF = analiseCreditoRepositorio .ObterDetalhesCCF(analiseCreditoBusca.Id).ToList(); var pendenciasFinanceiras = analiseCreditoRepositorio .ObterPendenciasFinanceiras(contaBusca.Documento.RemoverCaracteresEspeciaisDocumento()); if (pendenciasFinanceiras != null) { dadosConsulta.TotalDividaEcoporto = pendenciasFinanceiras.Sum(c => c.Valor); } dadosConsulta.StatusAnaliseDeCredito = analiseCreditoBusca.StatusAnaliseDeCredito; dadosConsulta.TotalDividaSpc = analiseCreditoBusca.TotalDividaSpc; dadosConsulta.InadimplenteSpc = dadosConsulta.TotalDividaSpc > parametros.DividaSpc; if ((dadosConsulta.TotalDividaSpc <= parametros.DividaSpc) && (dadosConsulta.TotalDividaEcoporto == 0)) { dadosConsulta.StatusAnaliseDeCredito = StatusAnaliseDeCreditoResponse.APROVADO; } dadosConsulta.InadimplenteEcoporto = dadosConsulta.TotalDividaEcoporto > 0; } return(dadosConsulta); }
public void GravarConsultaSpc(ConsultaSpcResponse consultaSpc, IEnumerable <Conta> contas) { using (OracleConnection con = new OracleConnection(Parametros.StringConexao)) { con.Open(); using (var transaction = con.BeginTransaction()) { var parametros = new DynamicParameters(); var sequencia = con.Query <int>("SELECT CRM.SEQ_CRM_SPC_CONSULTAS.NEXTVAL FROM DUAL").Single(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "ContaId", value: consultaSpc.ContaId, direction: ParameterDirection.Input); parametros.Add(name: "StatusAnaliseDeCredito", value: consultaSpc.StatusAnaliseDeCredito, direction: ParameterDirection.Input); parametros.Add(name: "Protocolo", value: consultaSpc.Protocolo, direction: ParameterDirection.Input); parametros.Add(name: "Validade", value: consultaSpc.Validade, direction: ParameterDirection.Input); parametros.Add(name: "InadimplenteSpc", value: consultaSpc.InadimplenteSpc.ToInt(), direction: ParameterDirection.Input); parametros.Add(name: "InadimplenteEcoporto", value: consultaSpc.InadimplenteEcoporto.ToInt(), direction: ParameterDirection.Input); parametros.Add(name: "Quantidade", value: consultaSpc.Quantidade, direction: ParameterDirection.Input); parametros.Add(name: "Tipo", value: consultaSpc.TipoPessoa, direction: ParameterDirection.Input); parametros.Add(name: "RazaoSocial", value: consultaSpc.RazaoSocial, direction: ParameterDirection.Input); parametros.Add(name: "Fundacao", value: consultaSpc.Fundacao, direction: ParameterDirection.Input); parametros.Add(name: "Nome", value: consultaSpc.Nome, direction: ParameterDirection.Input); parametros.Add(name: "DataNascimento", value: consultaSpc.DataNascimento, direction: ParameterDirection.Input); parametros.Add(name: "CNPJ", value: consultaSpc.CNPJ, direction: ParameterDirection.Input); parametros.Add(name: "CPF", value: consultaSpc.CPF, direction: ParameterDirection.Input); parametros.Add(name: "Atividade", value: consultaSpc.Atividade, direction: ParameterDirection.Input); parametros.Add(name: "Situacao", value: consultaSpc.Situacao, direction: ParameterDirection.Input); parametros.Add(name: "Logradouro", value: consultaSpc.Logradouro, direction: ParameterDirection.Input); parametros.Add(name: "Bairro", value: consultaSpc.Bairro, direction: ParameterDirection.Input); parametros.Add(name: "Cidade", value: consultaSpc.Cidade, direction: ParameterDirection.Input); parametros.Add(name: "Estado", value: consultaSpc.Estado, direction: ParameterDirection.Input); parametros.Add(name: "CEP", value: consultaSpc.CEP, direction: ParameterDirection.Input); parametros.Add(name: "TotalDividaSpc", value: consultaSpc.TotalDividaSpc, direction: ParameterDirection.Input); parametros.Add(name: "TotalDividaEcoporto", value: consultaSpc.TotalDividaEcoporto, direction: ParameterDirection.Input); parametros.Add(name: "ProtestoQuantidade", value: consultaSpc.ProtestoQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ProtestoData", value: consultaSpc.ProtestoData, direction: ParameterDirection.Input); parametros.Add(name: "ProtestoValorTotal", value: consultaSpc.ProtestoValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "AcaoQuantidade", value: consultaSpc.AcaoQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "AcaoData", value: consultaSpc.AcaoData, direction: ParameterDirection.Input); parametros.Add(name: "AcaoValorTotal", value: consultaSpc.AcaoValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "PendenciaFinancQuantidade", value: consultaSpc.PendenciaFinancQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "PendenciaFinancData", value: consultaSpc.PendenciaFinancData, direction: ParameterDirection.Input); parametros.Add(name: "PendenciaFinancValorTotal", value: consultaSpc.PendenciaFinancValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ParticipFalenciaQuantidade", value: consultaSpc.ParticipFalenciaQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ParticipFalenciaData", value: consultaSpc.ParticipFalenciaData, direction: ParameterDirection.Input); parametros.Add(name: "ParticipFalenciaValorTotal", value: consultaSpc.ParticipFalenciaValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "SpcQuantidade", value: consultaSpc.SpcQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "SpcData", value: consultaSpc.SpcData, direction: ParameterDirection.Input); parametros.Add(name: "SpcValorTotal", value: consultaSpc.SpcValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ChequeSFQuantidade", value: consultaSpc.ChequeSFQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ChequeSFData", value: consultaSpc.ChequeSFData, direction: ParameterDirection.Input); parametros.Add(name: "ChequeSFValorTotal", value: consultaSpc.ChequeSFValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ChequeSFCCFQuantidade", value: consultaSpc.ChequeSFCCFQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ChequeSFCCFData", value: consultaSpc.ChequeSFCCFData, direction: ParameterDirection.Input); parametros.Add(name: "ChequeSFCCFValorTotal", value: consultaSpc.ChequeSFCCFValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ChequeLojistaQuantidade", value: consultaSpc.ChequeLojistaQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ChequeLojistaData", value: consultaSpc.ChequeLojistaData, direction: ParameterDirection.Input); parametros.Add(name: "ChequeLojistaValorTotal", value: consultaSpc.ChequeLojistaValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ChequeCOOutrasQuantidade", value: consultaSpc.ChequeCOOutrasQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ChequeCOOutrasData", value: consultaSpc.ChequeCOOutrasData, direction: ParameterDirection.Input); parametros.Add(name: "ChequeCOOutrasValorTotal", value: consultaSpc.ChequeCOOutrasValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ConsultaRealizadaQuantidade", value: consultaSpc.ConsultaRealizadaQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ConsultaRealizadaData", value: consultaSpc.ConsultaRealizadaData, direction: ParameterDirection.Input); parametros.Add(name: "ConsultaRealizadaValorTotal", value: consultaSpc.ConsultaRealizadaValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "AlertaDocQuantidade", value: consultaSpc.AlertaDocQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "AlertaDocData", value: consultaSpc.AlertaDocData, direction: ParameterDirection.Input); parametros.Add(name: "AlertaDocValorTotal", value: consultaSpc.AlertaDocValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "CreditoConcQuantidade", value: consultaSpc.CreditoConcQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "CreditoConcData", value: consultaSpc.CreditoConcData, direction: ParameterDirection.Input); parametros.Add(name: "CreditoConcValorTotal", value: consultaSpc.CreditoConcValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ContraOrdemQuantidade", value: consultaSpc.ContraOrdemQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ContraOrdemData", value: consultaSpc.ContraOrdemData, direction: ParameterDirection.Input); parametros.Add(name: "ContraOrdemValorTotal", value: consultaSpc.ContraOrdemValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "ContraOrdemDFQuantidade", value: consultaSpc.ContraOrdemDFQuantidade, direction: ParameterDirection.Input); parametros.Add(name: "ContraOrdemDFData", value: consultaSpc.ContraOrdemDFData, direction: ParameterDirection.Input); parametros.Add(name: "ContraOrdemDFValorTotal", value: consultaSpc.ContraOrdemDFValorTotal, direction: ParameterDirection.Input); parametros.Add(name: "UsuarioId", value: consultaSpc.UsuarioId, direction: ParameterDirection.Input); con.Execute("DELETE FROM CRM.TB_CRM_SPC_CONSULTA_FILIAL WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_CCF WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_ALERTAS_DOCS WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_HIST_CONSULTAS WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_CONTRA_ORDEM_DOC WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_DETALHES_CH_LOJISTA WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_DETALHES_PEND_FIN WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_DETALHES_SPC WHERE ConsultaId IN (SELECT Id FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId)", parametros, transaction); con.Execute("DELETE FROM CRM.TB_CRM_SPC_CONSULTAS WHERE ContaId = :ContaId", parametros, transaction); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_CONSULTAS ( ID, CONTAID, STATUSANALISEDECREDITO, DATACONSULTA, VALIDADE, PROTOCOLO, INADIMPLENTE_SPC, INADIMPLENTE_ECOPORTO, TIPO, RAZAOSOCIAL, FUNDACAO, NOME, DATANASCIMENTO, CNPJ, CPF, ATIVIDADE, SITUACAO, LOGRADOURO, BAIRRO, CIDADE, ESTADO, CEP, TOTALDIVIDA_SPC, TOTALDIVIDA_ECOPORTO, PROTESTO_QTDE, PROTESTO_DATA, PROTESTO_VALOR_TOTAL, ACAO_QTDE, ACAO_DATA, ACAO_VALOR_TOTAL, PEND_FINANC_QTDE, PEND_FINANC_DATA, PEND_FINANC_TOTAL, PART_FALENC_QTDE, PART_FALENC_DATA, PART_FALENC_VALOR_TOTAL, SPC_QTDE, SPC_DATA, SPC_TOTAL, CHEQUE_SF_QTDE, CHEQUE_SF_DATA, CHEQUE_SF_TOTAL, CHEQUE_SF_CCF_QTDE, CHEQUE_SF_CCF_DATA, CHEQUE_SF_CCF_TOTAL, CHEQUE_LOJISTA_QTDE, CHEQUE_LOJISTA_DATA, CHEQUE_LOJISTA_TOTAL, CHEQUE_CO_OUTRAS_QTDE, CHEQUE_CO_OUTRAS_DATA, CHEQUE_CO_OUTRAS_TOTAL, CONSULTA_REALIZADA_QTDE, CONSULTA_REALIZADA_DATA, CONSULTA_REALIZADA_TOTAL, ALERTA_DOC_QTDE, ALERTA_DOC_DATA, ALERTA_DOC_TOTAL, CREDITO_CONCEDIDO_QTDE, CREDITO_CONCEDIDO_DATA, CREDITO_CONCEDIDO_TOTAL, CONTRA_ORDEM_QTDE, CONTRA_ORDEM_DATA, CONTRA_ORDEM_TOTAL, CONTRA_ORDEM_DF_QTDE, CONTRA_ORDEM_DF_DATA, CONTRA_ORDEM_DF_TOTAL, USUARIOID ) VALUES ( :Sequencia, :ContaId, :StatusAnaliseDeCredito, SYSDATE, :Validade, :Protocolo, :InadimplenteSpc, :InadimplenteEcoporto, :Tipo, :RazaoSocial, :Fundacao, :Nome, :DataNascimento, :CNPJ, :CPF, :Atividade, :Situacao, :Logradouro, :Bairro, :Cidade, :Estado, :CEP, :TotalDividaSpc, :TotalDividaEcoporto, :ProtestoQuantidade, :ProtestoData, :ProtestoValorTotal, :AcaoQuantidade, :AcaoData, :AcaoValorTotal, :PendenciaFinancQuantidade, :PendenciaFinancData, :PendenciaFinancValorTotal, :ParticipFalenciaQuantidade, :ParticipFalenciaData, :ParticipFalenciaValorTotal, :SpcQuantidade, :SpcData, :SpcValorTotal, :ChequeSFQuantidade, :ChequeSFData, :ChequeSFValorTotal, :ChequeSFCCFQuantidade, :ChequeSFCCFData, :ChequeSFCCFValorTotal, :ChequeLojistaQuantidade, :ChequeLojistaData, :ChequeLojistaValorTotal, :ChequeCOOutrasQuantidade, :ChequeCOOutrasData, :ChequeCOOutrasValorTotal, :ConsultaRealizadaQuantidade, :ConsultaRealizadaData, :ConsultaRealizadaValorTotal, :AlertaDocQuantidade, :AlertaDocData, :AlertaDocValorTotal, :CreditoConcQuantidade, :CreditoConcData, :CreditoConcValorTotal, :ContraOrdemQuantidade, :ContraOrdemData, :ContraOrdemValorTotal, :ContraOrdemDFQuantidade, :ContraOrdemDFData, :ContraOrdemDFValorTotal, :UsuarioId )" , parametros, transaction); foreach (var item in consultaSpc.DetalhesSpc) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Associado", value: item.Associado, direction: ParameterDirection.Input); parametros.Add(name: "Inclusao", value: item.Inclusao, direction: ParameterDirection.Input); parametros.Add(name: "Vencimento", value: item.Vencimento, direction: ParameterDirection.Input); parametros.Add(name: "Entidade", value: item.Entidade, direction: ParameterDirection.Input); parametros.Add(name: "Contrato", value: item.Contrato, direction: ParameterDirection.Input); parametros.Add(name: "Valor", value: item.Valor, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_DETALHES_SPC ( Id, ConsultaId, Associado, Inclusao, Vencimento, Entidade, Contrato, Valor ) VALUES ( CRM.SEQ_CRM_SPC_DETALHES_SPC.NEXTVAL, :Sequencia, :Associado, :Inclusao, :Vencimento, :Entidade, :Contrato, :Valor )" , parametros, transaction); } foreach (var item in consultaSpc.DetalhesPendenciasFinanceiras) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Titulo", value: item.Titulo, direction: ParameterDirection.Input); parametros.Add(name: "Avalista", value: item.Avalista.ToInt(), direction: ParameterDirection.Input); parametros.Add(name: "Contrato", value: item.Contrato, direction: ParameterDirection.Input); parametros.Add(name: "Ocorrencia", value: item.Ocorrencia, direction: ParameterDirection.Input); parametros.Add(name: "Filial", value: item.Filial, direction: ParameterDirection.Input); parametros.Add(name: "Origem", value: item.Origem, direction: ParameterDirection.Input); parametros.Add(name: "Moeda", value: item.Moeda, direction: ParameterDirection.Input); parametros.Add(name: "Natureza", value: item.Natureza, direction: ParameterDirection.Input); parametros.Add(name: "Cidade", value: item.Cidade, direction: ParameterDirection.Input); parametros.Add(name: "UF", value: item.UF, direction: ParameterDirection.Input); parametros.Add(name: "Valor", value: item.Valor, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_DETALHES_PEND_FIN ( Id, ConsultaId, Titulo, Avalista, Contrato, Ocorrencia, Filial, Origem, Moeda, Natureza, Cidade, UF, Valor ) VALUES ( CRM.SEQ_CRM_SPC_DETALHES_PEND_FIN.NEXTVAL, :Sequencia, :Titulo, :Avalista, :Contrato, :Ocorrencia, :Filial, :Origem, :Moeda, :Natureza, :Cidade, :UF, :Valor )" , parametros, transaction); } foreach (var item in consultaSpc.DetalhesChequesLojistas) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Associado", value: item.Associado, direction: ParameterDirection.Input); parametros.Add(name: "Entidade", value: item.Entidade, direction: ParameterDirection.Input); parametros.Add(name: "Inclusao", value: item.Inclusao, direction: ParameterDirection.Input); parametros.Add(name: "Descricao", value: item.Descricao, direction: ParameterDirection.Input); parametros.Add(name: "Emissao", value: item.ChequeEmissao, direction: ParameterDirection.Input); parametros.Add(name: "Valor", value: item.ChequeValor, direction: ParameterDirection.Input); parametros.Add(name: "Cidade", value: item.CidadeAssociado, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_DETALHES_CH_LOJISTA ( Id, ConsultaId, Associado, Entidade, Inclusao, Descricao, Emissao, Valor, Cidade ) VALUES ( CRM.SEQ_CRM_SPC_DETALHES_CH_LOJ.NEXTVAL, :Sequencia, :Associado, :Entidade, :Inclusao, :Descricao, :Emissao, :Valor, :Cidade )" , parametros, transaction); } foreach (var item in consultaSpc.DetalhesContraOrdemDocumentoDiferente) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Documento", value: item.Documento, direction: ParameterDirection.Input); parametros.Add(name: "Inclusao", value: item.Inclusao, direction: ParameterDirection.Input); parametros.Add(name: "Ocorrencia", value: item.Ocorrencia, direction: ParameterDirection.Input); parametros.Add(name: "Origem", value: item.Origem, direction: ParameterDirection.Input); parametros.Add(name: "Informante", value: item.Informante, direction: ParameterDirection.Input); parametros.Add(name: "Descricao", value: item.Descricao, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_CONTRA_ORDEM_DOC ( Id, ConsultaId, Documento, Inclusao, Ocorrencia, Origem, Informante, Descricao ) VALUES ( CRM.SEQ_CRM_SPC_CONTRA_ORDEM_DOC.NEXTVAL, :Sequencia, :Documento, :Inclusao, :Ocorrencia, :Origem, :Informante, :Descricao )" , parametros, transaction); } foreach (var item in consultaSpc.DetalhesConsultasRealizadas) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Associado", value: item.Associado, direction: ParameterDirection.Input); parametros.Add(name: "DataConsulta", value: item.DataConsulta, direction: ParameterDirection.Input); parametros.Add(name: "Entidade", value: item.Entidade, direction: ParameterDirection.Input); parametros.Add(name: "Cidade", value: item.Cidade, direction: ParameterDirection.Input); parametros.Add(name: "Estado", value: item.Estado, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_HIST_CONSULTAS ( Id, ConsultaId, Associado, DataConsulta, Entidade, Cidade, Estado ) VALUES ( CRM.SEQ_CRM_SPC_DETALHES_SPC.NEXTVAL, :Sequencia, :Associado, :DataConsulta, :Entidade, :Cidade, :Estado )" , parametros, transaction); } foreach (var item in consultaSpc.DetalhesAlertasDocumentos) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Inclusao", value: item.Inclusao, direction: ParameterDirection.Input); parametros.Add(name: "Ocorrencia", value: item.Ocorrencia, direction: ParameterDirection.Input); parametros.Add(name: "Entidade", value: item.Entidade, direction: ParameterDirection.Input); parametros.Add(name: "Motivo", value: item.Motivo, direction: ParameterDirection.Input); parametros.Add(name: "Tipos", value: item.Tipos, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_ALERTAS_DOCS ( Id, ConsultaId, Inclusao, Ocorrencia, Entidade, Motivo, Tipos ) VALUES ( CRM.SEQ_CRM_SPC_ALERTAS_DOCS.NEXTVAL, :Sequencia, :Inclusao, :Ocorrencia, :Entidade, :Motivo, :Tipos )" , parametros, transaction); } foreach (var item in consultaSpc.DetalhesCCF) { parametros = new DynamicParameters(); parametros.Add(name: "Sequencia", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "Origem", value: item.Origem, direction: ParameterDirection.Input); parametros.Add(name: "UltimoCheque", value: item.DataUltimoCheque, direction: ParameterDirection.Input); parametros.Add(name: "Quantidade", value: item.Quantidade, direction: ParameterDirection.Input); parametros.Add(name: "Motivo", value: item.Motivo, direction: ParameterDirection.Input); con.Execute(@" INSERT INTO CRM.TB_CRM_SPC_CCF ( Id, ConsultaId, Origem, UltimoCheque, Quantidade, Motivo ) VALUES ( CRM.SEQ_CRM_SPC_CCF.NEXTVAL, :Sequencia, :Origem, :UltimoCheque, :Quantidade, :Motivo )" , parametros, transaction); } foreach (var conta in contas) { parametros = new DynamicParameters(); parametros.Add(name: "ConsultaId", value: sequencia, direction: ParameterDirection.Input); parametros.Add(name: "ContaId", value: conta.Id, direction: ParameterDirection.Input); con.Execute("INSERT INTO CRM.TB_CRM_SPC_CONSULTA_FILIAL (Id, ConsultaId, ContaId) VALUES (CRM.SEQ_CRM_SPC_CCF.NEXTVAL, :ConsultaId, :ContaId)", parametros, transaction); } transaction.Commit(); } } }