コード例 #1
0
ファイル: LeadService.cs プロジェクト: ertprs/crm_fonte
        public ClientePotencial Persistir(Model.ClientePotencial Objcliente)
        {
            List <Model.ClientePotencial> lstTempCliente = new List <ClientePotencial>();
            ClientePotencial tmpCliente = null;

            if (Objcliente.ID.HasValue)
            {
                tmpCliente = RepositoryService.ClientePotencial.Retrieve(Objcliente.ID.Value);

                if (tmpCliente != null)
                {
                    Objcliente.ID = tmpCliente.ID;
                    RepositoryService.ClientePotencial.Update(Objcliente);

                    return(Objcliente);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                Objcliente.ID = RepositoryService.ClientePotencial.Create(Objcliente);
                return(Objcliente);
            }
        }
コード例 #2
0
        public ClientePotencial DefinirPropriedades(Intelbras.Message.Helper.MSG0267 xml)
        {
            var crm = new Model.ClientePotencial(this.Organizacao, this.IsOffline);

            return(crm);
        }
コード例 #3
0
        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);
        }