public int IncluirEnvioAprovacao(EnvioWorkflow workflow) { using (OracleConnection con = new OracleConnection(Config.StringConexao())) { var parametros = new DynamicParameters(); parametros.Add(name: "ProcessoId", value: workflow.ProcessoId, direction: ParameterDirection.Input); parametros.Add(name: "ProcessoFilhoId", value: workflow.ProcessoFilhoId, direction: ParameterDirection.Input); parametros.Add(name: "Protocolo", value: workflow.Protocolo, direction: ParameterDirection.Input); parametros.Add(name: "Mensagem", value: workflow.Mensagem, direction: ParameterDirection.Input); parametros.Add(name: "Processo", value: workflow.Processo, direction: ParameterDirection.Input); parametros.Add(name: "DataCadastro", value: DateTime.Now, direction: ParameterDirection.Input); parametros.Add(name: "CriadoPor", value: workflow.CriadoPor, direction: ParameterDirection.Input); parametros.Add(name: "Id", dbType: DbType.Int32, direction: ParameterDirection.Output); con.Execute(@"INSERT INTO CRM.TB_CRM_WORKFLOW ( Id, ProcessoId, ProcessoFilhoId, Protocolo, Mensagem, Processo, DataCadastro, CriadoPor ) VALUES ( CRM.SEQ_CRM_WORKFLOW.NEXTVAL, :ProcessoId, :ProcessoFilhoId, :Protocolo, :Mensagem, :Processo, :DataCadastro, :CriadoPor) RETURNING Id INTO :Id", parametros); return(parametros.Get <int>("Id")); } }
public void EnviarOportunidadeParaAprovacao(int id, string criadoPor) { var oportunidadeBusca = _oportunidadeRepositorio.ObterOportunidadePorId(id); if (oportunidadeBusca == null) { _logger.Info($"Oportunidade {oportunidadeBusca.Id} não encontrada"); } var token = Autenticador.Autenticar(); if (token == null) { _logger.Info("Não foi possível se autenticar no serviço de Workflow"); } var workflow = new WorkflowService(token); var oportunidadeDetalhes = _oportunidadeRepositorio.ObterDetalhesOportunidade(id); var usuario = _usuarioRepositorio.ObterUsuarioPorId(criadoPor.ToInt()); var campos = new { oportunidadeId = oportunidadeDetalhes.Id, oportunidadeDetalhes.Descricao, oportunidadeDetalhes.Identificacao, ContaId = oportunidadeDetalhes.Conta, ContatoId = oportunidadeDetalhes.Contato, MercadoriaId = oportunidadeDetalhes.Mercadoria, oportunidadeDetalhes.Aprovada, oportunidadeDetalhes.DataFechamento, oportunidadeDetalhes.TabelaId, oportunidadeDetalhes.Probabilidade, oportunidadeDetalhes.SucessoNegociacao, oportunidadeDetalhes.ClassificacaoCliente, oportunidadeDetalhes.Segmento, oportunidadeDetalhes.EstagioNegociacao, oportunidadeDetalhes.StatusOportunidade, oportunidadeDetalhes.MotivoPerda, oportunidadeDetalhes.TipoDeProposta, oportunidadeDetalhes.TipoServico, oportunidadeDetalhes.TipoNegocio, oportunidadeDetalhes.TipoOperacaoOportunidade, oportunidadeDetalhes.RevisaoId, oportunidadeDetalhes.Observacao, oportunidadeDetalhes.FaturamentoMensalLCL, oportunidadeDetalhes.FaturamentoMensalFCL, oportunidadeDetalhes.VolumeMensal, oportunidadeDetalhes.CIFMedio, oportunidadeDetalhes.PremioParceria, CriadoPor = usuario.Login, oportunidadeDetalhes.TipoOperacao, oportunidadeDetalhes.Vendedor, oportunidadeDetalhes.FormaPagamento, DataInicio = oportunidadeDetalhes.DataInicio.DataFormatada(), DataTermino = oportunidadeDetalhes.DataTermino.DataFormatada() }; var retorno = workflow.EnviarParaAprovacao( new CadastroWorkflow(Processo.OPORTUNIDADE, 1, oportunidadeBusca.Id, usuario.Login, usuario.Nome, usuario.Email, JsonConvert.SerializeObject(campos))); if (retorno == null) { throw new Exception("Nenhuma resposta do serviço de Workflow"); } if (retorno.sucesso == false) { _logger.Info(retorno.mensagem); } var oportunidadeWorkflow = new EnvioWorkflow(oportunidadeBusca.Id, Processo.OPORTUNIDADE, retorno.protocolo, retorno.mensagem, usuario.Id); _workflowRepositorio.IncluirEnvioAprovacao(oportunidadeWorkflow); if (oportunidadeBusca.StatusOportunidade != StatusOportunidade.CANCELADA) { oportunidadeBusca.StatusOportunidade = StatusOportunidade.ENVIADO_PARA_APROVACAO; } _oportunidadeRepositorio.AtualizarStatusOportunidade(oportunidadeBusca.StatusOportunidade, oportunidadeBusca.Id); }