public void AtualizarStatus(string id, int idWorkflow, int idProcesso, int status, WorkflowService workflow) { string SQL = string.Empty; string SQLL = string.Empty; string SQLFichas = string.Empty; string SQLFichasRevisao = string.Empty; int oportunidadeId = 0; int fichaRevisadaId = 0; SQLL = ""; logger.Info("Lendo Fila : IdProcesso" + idProcesso.ToString() + " Status " + status.ToString() + " ID " + id.ToString()); // Oportunidade if (idProcesso == 1 || idProcesso == 9) { // Aprovada if (status == 2) { var revisao = OportunidadeRevisada(id); if (!string.IsNullOrEmpty(revisao)) { if (Int32.TryParse(revisao, out int resultado)) { if (resultado > 0) { AtualizarOportunidadeRevisada(resultado); } } } // StatusOportunidade = 1 (Ativa) // StatusOportunidade = 2 (Cancelado) // SucessoNegociacao = 4 (Ganho) // EstagioNegociacao = 4 (Ganho) //SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADES SET Aprovada = 1, StatusOportunidade = 1, SucessoNegociacao = 4 WHERE Id = :Id AND StatusOportunidade <> 2"; SQL = @"UPDATE CRM.TB_CRM_OPORTUNIDADES SET Aprovada = CASE WHEN Cancelado = 1 THEN 0 ELSE 1 END, StatusOportunidade = CASE WHEN Cancelado = 1 THEN 2 ELSE 1 END, SucessoNegociacao = CASE WHEN Cancelado = 1 THEN SucessoNegociacao ELSE 4 END, EstagioNegociacao = CASE WHEN Cancelado = 1 THEN EstagioNegociacao ELSE 4 END WHERE Id = :Id"; // StatusFichaFaturamento = 3 (Aprovado) SQLFichas = "UPDATE TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 3 WHERE OportunidadeId = :Id AND StatusFichaFaturamento = 2"; ObterNumeroDeTabela(id, workflow); } // Rejeitada if (status == 3) { // StatusOportunidade = 1 (Recusado) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADES " + " SET StatusOportunidade = CASE WHEN Cancelado = 1 THEN 1 ELSE 4 END, " + " Cancelado = CASE WHEN Cancelado = 1 THEN 0 ELSE Cancelado END, TabelaId = NULL " + " WHERE Id = :Id"; // StatusFichaFaturamento = 4 (Rejeitado) SQLFichas = "UPDATE TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 4 WHERE OportunidadeId = :Id AND StatusFichaFaturamento = 2"; } } // Fichas de Faturamento if (idProcesso == 2) { var fichaBusca = ObterFichaFaturamentoPorId(id); // Aprovada if (status == 2) { // StatusFichaFaturamento = 3 (Aprovado) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 3 WHERE Id = :Id"; if (fichaBusca != null) { if (fichaBusca.RevisaoId > 0) { //SQLFichasRevisao fichaRevisadaId = fichaBusca.RevisaoId; SQLFichasRevisao = "UPDATE CRM.TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 6 WHERE Id = :FichaRevisaoId"; } } } // Rejeitada if (status == 3) { // StatusFichaFaturamento = 3 (Rejeitado) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 4 WHERE Id = :Id"; if (fichaBusca != null) { if (fichaBusca.RevisaoId > 0) { if (fichaBusca.RevisaoId > 0) { //SQLFichasRevisao fichaRevisadaId = fichaBusca.RevisaoId; SQLFichasRevisao = "UPDATE CRM.TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 6 WHERE Id = :FichaRevisaoId"; } } } } } // Prêmios de Parceria if (idProcesso == 3) { // Aprovada if (status == 2) { var revisao = PremioRevisado(id); if (!string.IsNullOrEmpty(revisao)) { if (Int32.TryParse(revisao, out int resultado)) { if (resultado > 0) { AtualizarPremioRevisado(resultado); } } } // StatusPremioParceria = 3 (Cadastrado) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADE_PREMIOS SET StatusPremioParceria = CASE WHEN Cancelado = 1 THEN 6 ELSE 3 END WHERE Id = :Id"; } // Rejeitada if (status == 3) { // StatusPremioParceria = 5 (Rejeitado) // StatusPremioParceria = 3 (Cadastro) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADE_PREMIOS " + " SET StatusPremioParceria = CASE WHEN Cancelado = 1 THEN 3 ELSE 5 END, " + " Cancelado = CASE WHEN Cancelado = 1 THEN 0 ELSE Cancelado END " + " WHERE Id = :Id"; } } // Adendos if (idProcesso == 4) { var adendoBusca = ObterAdendoPorId(id); // Aprovada if (status == 2) { // StatusAdendo = 4 (Aprovado) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADE_ADENDOS SET StatusAdendo = 4 WHERE Id = :Id"; AtualizarAdendo(id); if (adendoBusca != null) { oportunidadeId = adendoBusca.OportunidadeId; if (adendoBusca.TipoAdendo == 2 || adendoBusca.TipoAdendo == 3) { if (adendoBusca.TipoAdendo == 2) { var formaPagamentoAdendo = ObterFormaPagamentoAdendo(adendoBusca.Id); if (formaPagamentoAdendo == FormaPagamentoAdendo.FATURADO) { SQLFichas = "UPDATE TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 3 WHERE OportunidadeId = :OportunidadeId AND StatusFichaFaturamento = 2"; } } if (adendoBusca.TipoAdendo == 3) { SQLFichas = "UPDATE TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 3 WHERE OportunidadeId = :OportunidadeId AND StatusFichaFaturamento = 2"; } } } } // Rejeitada if (status == 3) { // StatusAdendo = 3 (Rejeitado) SQL = "UPDATE CRM.TB_CRM_OPORTUNIDADE_ADENDOS SET StatusAdendo = 3 WHERE Id = :Id"; if (adendoBusca != null) { oportunidadeId = adendoBusca.OportunidadeId; if (adendoBusca.TipoAdendo == 2 || adendoBusca.TipoAdendo == 3) { if (adendoBusca.TipoAdendo == 2) { var formaPagamentoAdendo = ObterFormaPagamentoAdendo(adendoBusca.Id); if (formaPagamentoAdendo == FormaPagamentoAdendo.FATURADO) { SQLFichas = "UPDATE TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 4 WHERE OportunidadeId = :OportunidadeId AND StatusFichaFaturamento = 2"; } } if (adendoBusca.TipoAdendo == 3) { SQLFichas = "UPDATE TB_CRM_OPORTUNIDADE_FICHA_FAT SET StatusFichaFaturamento = 4 WHERE OportunidadeId = :OportunidadeId AND StatusFichaFaturamento = 2"; } } } } } // Solicitações if (idProcesso == 5 || idProcesso == 6 || idProcesso == 7 || idProcesso == 8 || idProcesso == 10) { // Aprovada if (status == 2) { // StatusSolicitacao = 3 (Aprovado) SQL = "UPDATE CRM.TB_CRM_SOLICITACOES SET StatusSolicitacao = 3 WHERE Id = :Id"; } // Rejeitada if (status == 3) { // StatusSolicitacao = 4 (Rejeitado) SQL = "UPDATE CRM.TB_CRM_SOLICITACOES SET StatusSolicitacao = 4 WHERE Id = :Id"; } } //Carnelos em 30/12/20 - Consulta SPC if (idProcesso == 13) { logger.Info("Atualizando 13 IdProcesso" + idProcesso.ToString() + " Status " + status.ToString() + " ID " + id.ToString()); if (status == 2) { SQL = "UPDATE CRM.TB_CRM_SPC_CONSULTAS SET StatusAnaliseDeCredito = 3 WHERE ContaId = :Id"; SQLL = "UPDATE CRM.TB_CRM_SPC_LIMITE_CREDITO SET StatusLimiteCredito = 3 WHERE ContaId = :Id"; } if (status == 3) { SQL = "UPDATE CRM.TB_CRM_SPC_CONSULTAS SET validade= ADD_MONTHS(TRUNC(dataconsulta), 3),StatusAnaliseDeCredito = 4 WHERE ContaId = :Id"; SQLL = "UPDATE CRM.TB_CRM_SPC_LIMITE_CREDITO SET StatusLimiteCredito = 4 WHERE ContaId = :Id"; } } //Carnelos em 30/12/20 - Limite de Credito if (idProcesso == 14) { logger.Info("Atualizando 14 IdProcesso" + idProcesso.ToString() + " Status " + status.ToString() + " ID " + id.ToString()); if (status == 2) { SQL = "UPDATE CRM.TB_CRM_SPC_LIMITE_CREDITO SET StatusLimiteCredito = 3 WHERE Id = :Id"; } if (status == 3) { SQL = "UPDATE CRM.TB_CRM_SPC_LIMITE_CREDITO SET StatusLimiteCredito = 4 WHERE Id = :Id"; } } if (!string.IsNullOrEmpty(SQL)) { using (OracleConnection con = new OracleConnection(stringConexao)) { var parametros = new DynamicParameters(); parametros.Add(name: "Id", value: id, direction: ParameterDirection.Input); parametros.Add(name: "OportunidadeId", value: oportunidadeId, direction: ParameterDirection.Input); parametros.Add(name: "FichaRevisaoId", value: fichaRevisadaId, direction: ParameterDirection.Input); con.Execute(SQL, parametros); if (!string.IsNullOrEmpty(SQLFichas)) { con.Execute(SQLFichas, parametros); } if (!string.IsNullOrEmpty(SQLFichasRevisao)) { con.Execute(SQLFichasRevisao, parametros); } if (!string.IsNullOrEmpty(SQLL)) { con.Execute(SQLL, parametros); } } workflow.EnviarRetornoRegistroAtualizado(idWorkflow); logger.Info("Status atualizado com sucesso"); } }