public async Task <IActionResult> PersistirClienteSalesforce([FromBody] AccountSalesObject salesObject) { try { var pendente = false; salesObject.IdStfCorp = _clienteService.ObterClientePorIdSalesForce(salesObject.Id).HasValue ? _clienteService.ObterClientePorIdSalesForce(salesObject.Id).Value : 0; if (salesObject.IdStfCorp == 0) { if (salesObject.Type == "Mãe") { salesObject.IdGrupoCliente = _grupoClienteService.ObterIdGrupoClientePorIdClienteMae(salesObject.Id); if (salesObject.IdGrupoCliente == 0) { salesObject.IdGrupoCliente = _grupoClienteService.PersistirGrupoClienteSalesForce(salesObject.Id, salesObject.Name); await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "Persistencia do cliente mãe: " + salesObject.Name + " concluida", DescExcecao = "" }); } } else { salesObject.IdGrupoCliente = _grupoClienteService.ObterIdGrupoClientePorIdClienteMae(salesObject.ParentId); if (salesObject.IdGrupoCliente == 0) { salesObject.IdGrupoCliente = null; } } var clienteEacessoService = new ClienteEacessoService(_connectionStrings.Value.EacessoConnection); var clienteEacesso = clienteEacessoService.ObterClienteEacessoPorIdSalesForce(salesObject.Id); ClienteET clienteStfCorp = null; if (clienteEacesso != null) { salesObject = Mapper.Map(clienteEacesso, salesObject); } if (salesObject.CNPJ__c != null && salesObject.CNPJ__c.Trim() != "") { salesObject.CNPJ__c = _clienteService.ApenasNumeros(salesObject.CNPJ__c); } else { pendente = true; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui cnpj", DescExcecao = "" }); salesObject.CNPJ__c = _clienteService.ApenasNumeros("NWM9709244W4"); } clienteStfCorp = Mapper.Map <ClienteET>(salesObject); if (clienteStfCorp.Id == 0) { clienteStfCorp.Id = _clienteService.VerificarIdCliente(); } var endereco = Mapper.Map <Endereco>(salesObject); if (clienteStfCorp.NrTelefone != null) { clienteStfCorp.NrTelefone = clienteStfCorp.NrTelefone.Replace(" ", ""); if (clienteStfCorp.NrTelefone.Contains('/')) { var numeros = clienteStfCorp.NrTelefone.Split("/"); clienteStfCorp.NrTelefone = numeros[0]; clienteStfCorp.NrTelefone2 = numeros[0].Substring(0, 2) + numeros[1]; } } if (clienteStfCorp.NrTelefone2 != null) { clienteStfCorp.NrTelefone = clienteStfCorp.NrTelefone2.Replace(" ", ""); } if (clienteStfCorp.NmRazaoSocial == null || !clienteStfCorp.NmRazaoSocial.Any()) { clienteStfCorp.NmRazaoSocial = ""; pendente = true; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui uma razão social", DescExcecao = "" }); } if (clienteStfCorp.NmFantasia == null || !clienteStfCorp.NmFantasia.Any()) { clienteStfCorp.NmFantasia = ""; pendente = true; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui um nome fantasia", DescExcecao = "" }); } endereco.IdCidade = _enderecoService.VerificarEndereco(salesObject.CNPJ_Cidade__c); clienteStfCorp.Enderecos.Add(endereco); if (endereco.IdCidade == null) { pendente = true; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui uma cidade valida", DescExcecao = "" }); } if (!_clienteService.ValidarCNPJ(clienteStfCorp.NrCnpj, "BRASIL").Result) { pendente = true; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui um cnpj valido", DescExcecao = "" }); } if (pendente) { clienteStfCorp.FlStatus = "P"; } else { clienteStfCorp.FlStatus = "A"; } salesObject.IdStfCorp = _clienteService.PersistirCliente(clienteStfCorp); } else { await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " encontrado no sistema", DescExcecao = "" }); } return(Ok(salesObject.IdStfCorp)); } catch (Exception) { return(BadRequest()); } }
public async Task CriarServicos(VinculoClienteServico vinculoClienteServico, string codContrato, string siglaTipoServico, int idCelula, string cnpjFilial, int idCliente, int?idCelulaDelivery) { Contrato contrato = null; TipoServico tipoServico = null; Filial filial = null; ServicoPai servicoPai = null; var vinculoExistente = await VerificarExistenciaServico(vinculoClienteServico); if (codContrato != null && codContrato != "") { contrato = await _contratoRepository.ObterContratoPorCodigo(codContrato); } if (siglaTipoServico != null && siglaTipoServico != "") { tipoServico = await _serviceRepository.ObterTipoServicoPorSigla(siglaTipoServico); } if (cnpjFilial != null && cnpjFilial != "") { filial = await _contratoRepository.ObterFilialComEmpresa(cnpjFilial); if (filial != null) { vinculoClienteServico.IdFilial = filial.Id; vinculoClienteServico.IdEmpresa = filial.IdEmpresa; } } if (vinculoExistente == null) { servicoPai = CriarServicoPai(vinculoClienteServico); } else { servicoPai = vinculoExistente.Servico.ServicoPai; } var combinada = CriarCombinada(); //Comercial servicoPai.Servicos.Add(await CriarServico(vinculoClienteServico, idCelula, contrato, tipoServico, combinada, false)); if (idCelulaDelivery != null && idCelulaDelivery != 0) { //Tecnica servicoPai.Servicos.Add(await CriarServico(vinculoClienteServico, idCelulaDelivery, contrato, tipoServico, combinada, true)); } try { servicoPai.DescServicoPai = "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"; await _serviceRepository.PersistirServicoPai(servicoPai); var logInserirServico = new { Tipo = vinculoExistente == null ? "Inclusao" : "Alteracao", NomeServico = vinculoClienteServico.NmClienteServico, SalesId = vinculoClienteServico.IdSalesForce, }; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.TRANSACAO.ToString(), NmOrigem = Origem.SALESFORCE.ToString(), DescLogGenerico = logInserirServico.Tipo + " de dados Servico: " + JsonConvert.SerializeObject(logInserirServico), DescExcecao = "", DtHoraLogGenerico = DateTime.Now }); } catch (Exception e) { var logInserirServico = new { Tipo = vinculoExistente == null ? "Inclusao" : "Alteracao", NomeServico = vinculoClienteServico.NmClienteServico, SalesId = vinculoClienteServico.IdSalesForce, }; await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.TRANSACAO.ToString(), NmOrigem = Origem.SALESFORCE.ToString(), DescLogGenerico = "Falha " + logInserirServico.Tipo + " de dados Servico: " + JsonConvert.SerializeObject(logInserirServico), DescExcecao = e.StackTrace, DtHoraLogGenerico = DateTime.Now }); } }