public List <ProdutoProjeto> DefinirPropriedadesProdutos(Intelbras.Message.Helper.MSG0268 xml, ClientePotencial ClientePotencial) { List <ProdutoProjeto> lstRetorno = new List <ProdutoProjeto>(); #region Lista ProdutoProjeto foreach (var item in xml.ListaProdutosProjeto) { //verificar se o vinculo existe criar ou editar ProdutoProjeto produtoProjeto = new ProdutoProjeto(this.Organizacao, this.IsOffline); if (!String.IsNullOrEmpty(item.CodigoProdutoClientePotencial)) { ProdutoProjeto produtoProjetoTemp = new Servicos.RepositoryService().ProdutoProjeto.Retrieve(new Guid(item.CodigoProdutoClientePotencial)); //new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(item.CodigoProdutoClientePotencial); if (produtoProjeto == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto não cadastrado no Crm!"; return(null); } produtoProjeto = produtoProjetoTemp; } if (!String.IsNullOrEmpty(item.CodigoProduto)) { Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(item.CodigoProduto); if (produto != null) { produtoProjeto.Produto = new Lookup(produto.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto não cadastrado no Crm!"; return(null); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Codigo Produto não enviado."; return(null); } produtoProjeto.ClientePotencial = new Lookup(ClientePotencial.ID.Value, ""); produtoProjeto.ValorUnitario = (item.PrecoUnitario == null) ? 0 : item.PrecoUnitario; produtoProjeto.Quantidade = item.Quantidade; produtoProjeto.ValorTotal = (item.ValorTotal == null) ? 0 : item.ValorTotal; lstRetorno.Add(produtoProjeto); } #endregion return(lstRetorno); }
public Oportunidade DefinirPropriedades2(Intelbras.Message.Helper.MSG0268 xml, ClientePotencial ClientePotencial) { #region Propriedades Crm->Xml var crm2 = new Servicos.RepositoryService().Oportunidade.BuscarPor(ClientePotencial); if (crm2 != null) { crm2.IntegrarNoPlugin = true; crm2.NumeroProjeto = ClientePotencial.NumeroProjeto; if (!String.IsNullOrEmpty(xml.CodigoRevenda) && xml.CodigoRevenda.Length == 36) { if ((crm2.RevendaIntegrador == null) || (crm2.RevendaIntegrador.Id.ToString() != xml.CodigoRevenda)) { crm2.RevendaIntegrador = new Lookup(new Guid(xml.CodigoRevenda), ""); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoRevenda não enviado ou fora do padrão (Guid)."; return(crm2); } Contato executivo = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(new Guid(xml.CodigoExecutivo)); if (executivo != null) { if ((crm2.Executivo == null) || (crm2.Executivo.Id != executivo.ID.Value)) { crm2.Executivo = new Lookup(executivo.ID.Value, ""); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoExecutivo não encontrado no Crm."; return(crm2); } if (xml.DataEnvioCotacao.HasValue) { crm2.DataEnvioCotacao = xml.DataEnvioCotacao; } else { crm2.DataEnvioCotacao = null; } if (xml.TeveReuniao.HasValue) { crm2.TeveReuniao = xml.TeveReuniao; } else { crm2.TeveReuniao = (Int32)this.PreencherAtributoVazio("int"); } if (xml.DataReuniao.HasValue) { crm2.DataReuniao = xml.DataReuniao; } else { crm2.DataReuniao = null; } if (xml.DataEstimativaAprovacao.HasValue) { crm2.DataEstimativaAprovacao = xml.DataEstimativaAprovacao; } else { crm2.DataEstimativaAprovacao = null; } if (xml.PropostaAprovada.HasValue) { crm2.PropostaAprovada = xml.PropostaAprovada; } else { crm2.PropostaAprovada = (Int32)PreencherAtributoVazio("int"); } if (xml.DataAprovacao.HasValue) { crm2.DataAprovacao = xml.DataAprovacao; } else { crm2.DataAprovacao = null; } if (xml.DataEnvioPedidos.HasValue) { crm2.DataEnvioPedidos = xml.DataEnvioPedidos; } else { crm2.DataEnvioPedidos = null; } if (xml.PedidosFaturados.HasValue) { crm2.PedidosFaturados = xml.PedidosFaturados; } else { crm2.PedidosFaturados = 993520001; } #endregion return(crm2); } return(null); }
public ClientePotencial DefinirPropriedades(Intelbras.Message.Helper.MSG0268 xml) { var crm = new Model.ClientePotencial(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml crm.IntegrarNoPlugin = true; if (!String.IsNullOrEmpty(xml.NumeroProjeto)) { ClientePotencial cliente = new Servicos.LeadService(this.Organizacao, this.IsOffline).ObterPorNumeroProjeto(xml.NumeroProjeto); if (cliente != null) { crm.NumeroProjeto = xml.NumeroProjeto; crm.StatusValidacao = cliente.StatusValidacao; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NumeroProjeto informado não existe para ser atualizado."; return(crm); } } if (!String.IsNullOrEmpty(xml.CodigoClientePotencial)) { crm.ID = new Guid(xml.CodigoClientePotencial); } else { crm.RazaoStatus = 993520003; originadoExtranet = true; } if (!String.IsNullOrEmpty(xml.CodigoRevenda) && xml.CodigoRevenda.Length == 36) { crm.RevendaIntegrador = new Lookup(new Guid(xml.CodigoRevenda), ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoRevenda não enviado ou fora do padrão (Guid)."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoDistribuidor) && xml.CodigoDistribuidor.Length == 36) { crm.Distribuidor = new Lookup(new Guid(xml.CodigoDistribuidor), ""); } Contato executivo = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(new Guid(xml.CodigoExecutivo)); if (executivo != null) { crm.Executivo = new Lookup(executivo.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoExecutivo não encontrado no Crm."; return(crm); } if (!String.IsNullOrEmpty(xml.CNPJCliente)) { crm.Cnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCnpj(xml.CNPJCliente); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CNPJCliente não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.RazaoSocial)) { crm.NomeDaEmpresa = xml.RazaoSocial; crm.Topico = xml.RazaoSocial; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "RazaoSocial não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.NomeContatoCliente)) { crm.NomeCompletoDoContato = xml.NomeContatoCliente; if (xml.NomeContatoCliente.Contains(" ")) { crm.PrimeiroNomeDoContato = xml.NomeContatoCliente.Substring(0, xml.NomeContatoCliente.IndexOf(' ')); crm.SobreNomeDoContato = xml.NomeContatoCliente.Substring(xml.NomeContatoCliente.IndexOf(' ') + 1, (xml.NomeContatoCliente.Length - xml.NomeContatoCliente.IndexOf(' ') - 1)); } else { crm.PrimeiroNomeDoContato = xml.NomeContatoCliente; } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NomeContatoCliente não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.TelefoneContatoCliente)) { crm.TelefoneComercial = xml.TelefoneContatoCliente; crm.TelefoneCelular = xml.TelefoneContatoCliente; } if (!String.IsNullOrEmpty(xml.EmailContatoCliente)) { crm.Email = xml.EmailContatoCliente; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "EmailContatoCliente não enviado."; return(crm); } if (xml.TipoProjeto.HasValue) { crm.TipoProjeto = xml.TipoProjeto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "TipoProjeto não enviado."; return(crm); } if (xml.EnvolverEngenharia.HasValue) { if (xml.EnvolverEngenharia.Value == 993520000) { crm.EnvolverEngenharia = true; } else { crm.EnvolverEngenharia = false; } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "EnvolverEngenharia não enviado."; return(crm); } if (xml.ReceitaEstimada.HasValue) { crm.ValorEstimado = (decimal)xml.ReceitaEstimada; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "ReceitaEstimada não enviado."; return(crm); } if (xml.DataPrevisaoFechamento.HasValue) { crm.DataEstimada = (DateTime)xml.DataPrevisaoFechamento; crm.DataProximaInteracao = DateTime.Now.AddDays(30); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "DataPrevisaoFechamento não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (unidadeNegocio != null) { crm.UnidadeNegocio = new Lookup(unidadeNegocio.Id, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoUnidadeNegocio não enencontrado no CRM."; return(crm); } } if (!String.IsNullOrEmpty(xml.DescricaoProjeto)) { crm.Descricao = xml.DescricaoProjeto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "DescricaoProjeto não enviado ou fora do padrão (Guid)."; return(crm); } if (xml.CotacaoEnviada.HasValue) { crm.CotacaoEnviada = xml.CotacaoEnviada; } if (xml.TipoSolucao.HasValue) { crm.TipoSolucao = xml.TipoSolucao; } else { crm.AddNullProperty("TipoSolucao"); } if (xml.PossivelDuplicidade.HasValue) { crm.PossivelDuplicidade = (bool)xml.PossivelDuplicidade; } #endregion #region Endereco crm.Endereco1CEP = xml.EnderecoClienteFinal.CEP; crm.Endereco1Rua = xml.EnderecoClienteFinal.Logradouro; crm.Endereco1Numero = xml.EnderecoClienteFinal.Numero; if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Complemento)) { crm.Endereco1Complemento = xml.EnderecoClienteFinal.Complemento; } crm.Endereco1Bairro = xml.EnderecoClienteFinal.Bairro; //Cidade if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Cidade)) { Municipio cidade = new Intelbras.CRM2013.Domain.Servicos.MunicipioServices(this.Organizacao, this.IsOffline).BuscaCidade(xml.EnderecoClienteFinal.Cidade); if (cidade != null && cidade.ID.HasValue) { crm.Endereco1Municipioid = new Lookup(cidade.ID.Value, ""); crm.Endereco1Municipio = cidade.Nome; } } //Estado if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Estado)) { Estado estado = new Intelbras.CRM2013.Domain.Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.EnderecoClienteFinal.Estado); if (estado != null && estado.ID.HasValue) { crm.Endereco1Estadoid = new Lookup(estado.ID.Value, ""); } } //Pais if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Pais)) { Pais Pais = new Intelbras.CRM2013.Domain.Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(xml.EnderecoClienteFinal.Pais); if (Pais != null && Pais.ID.HasValue) { crm.Endereco1Pais = new Lookup(Pais.ID.Value, ""); } } #endregion return(crm); }