public Response IntregrarFichasChronos(int oportunidadeId, int fichaId) { try { var oportunidadeBusca = _oportunidadeDAO.ObterOportunidadePorId(oportunidadeId); if (oportunidadeBusca == null) { return new Response { Sucesso = false, Mensagem = $"Oportunidade {oportunidadeId} não encontrada" } } ; if (oportunidadeBusca.TabelaId == 0) { return new Response { Sucesso = false, Mensagem = $"Oportunidade {oportunidadeId} não possui nenhuma Tabela vinculada" } } ; var fichaBusca = _oportunidadeDAO.ObterFichaFaturamentoPorId(fichaId); if (fichaBusca == null) { return new Response { Sucesso = false, Mensagem = $"Ficha {fichaId} não encontrada" } } ; if (fichaBusca.StatusFichaFaturamento != StatusFichaFaturamento.APROVADO && fichaBusca.StatusFichaFaturamento != StatusFichaFaturamento.EM_APROVACAO) { return new Response { Sucesso = false, Mensagem = $"O Status atual da Ficha não permite integrações com o Chronos" } } ; if (!string.IsNullOrEmpty(fichaBusca.FaturadoContraDocumento)) { var faturadoContraChronos = _tabelasDAO.ConsultaParceiro(fichaBusca.FaturadoContraDocumento); if (faturadoContraChronos == null) { var parceiro = new Parceiro { RazaoSocial = fichaBusca.FaturadoContraDescricao, NomeFantasia = fichaBusca.FaturadoContraFantasia, CNPJ = fichaBusca.FaturadoContraDocumento }; fichaBusca.FaturadoContraId = _tabelasDAO.CadastrarParceiro(parceiro); } else { fichaBusca.FaturadoContraId = faturadoContraChronos.Id; } } if (!string.IsNullOrEmpty(fichaBusca.FontePagadoraDocumento)) { var fontePagadoraChronos = _tabelasDAO.ConsultaParceiro(fichaBusca.FontePagadoraDocumento); if (fontePagadoraChronos == null) { var parceiro = new Parceiro { RazaoSocial = fichaBusca.FontePagadoraDescricao, NomeFantasia = fichaBusca.FontePagadoraFantasia, CNPJ = fichaBusca.FontePagadoraDocumento }; fichaBusca.FontePagadoraId = _tabelasDAO.CadastrarParceiro(parceiro); } else { fichaBusca.FontePagadoraId = fontePagadoraChronos.Id; } } var ehFichaGeral = (oportunidadeBusca.ContaId == fichaBusca.ContaId); fichaBusca.FichaGeral = ehFichaGeral; var subClientes = _oportunidadeDAO.ObterSubClientesOportunidade(oportunidadeBusca.Id); fichaBusca.SubClientes.AddRange(subClientes); _oportunidadeDAO.IntegrarFontePagadora(fichaBusca); return(new Response { Sucesso = true, Mensagem = $"Ficha de Faturamento integrada com sucesso!" }); } catch (Exception ex) { return(new Response { Sucesso = true, Mensagem = ex.Message }); } }