Ejemplo n.º 1
0
        private Intelbras.Message.Helper.MSG0297 DefinirPropriedades(RegiaoDeAtuacao crm)
        {
            Intelbras.Message.Helper.MSG0297 xml = new Pollux.MSG0297(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40));

            xml.CodigoRegiaoAtuacao = crm.Id.ToString();
            xml.CodigoContato       = crm.Contato.Id.ToString();
            xml.Nome = crm.Nome;
            Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(crm.Pais.Id);

            xml.NomePais = pais.Nome;

            if (crm.Estado != null)
            {
                Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(crm.Estado.Id);
                if (estado != null)
                {
                    xml.SiglaEstado = estado.SiglaUF;
                }
            }

            xml.Situacao = (crm.Status.HasValue ? crm.Status.Value : 0);

            return(xml);
        }
Ejemplo n.º 2
0
        public Pollux.MSG0183R1 DefinirPropriedades(Conta objModel)
        {
            #region Propriedades Crm->Xml
            Pollux.MSG0183R1 msg0183R1;
            if (objModel.RazaoSocial != null && objModel.RazaoSocial.Length > 0)
            {
                msg0183R1 = new Pollux.MSG0183R1(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(objModel.RazaoSocial, 40));
            }
            else
            {
                msg0183R1 = new Pollux.MSG0183R1(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(objModel.ID.Value.ToString(), 40));
            }

            msg0183R1.CodigoConta = objModel.ID.Value.ToString();

            if (!String.IsNullOrEmpty(objModel.CodigoMatriz))
            {
                msg0183R1.CodigoCliente = Convert.ToInt32(objModel.CodigoMatriz);
            }
            msg0183R1.NomeRazaoSocial = objModel.RazaoSocial;
            msg0183R1.NomeFantasia    = objModel.NomeFantasia;
            msg0183R1.NomeAbreviado   = objModel.NomeAbreviado;
            msg0183R1.DescricaoConta  = objModel.Descricao;
            if (objModel.TipoRelacao.HasValue)
            {
                msg0183R1.TipoRelacao = objModel.TipoRelacao.Value;
            }
            msg0183R1.NumeroBanco = objModel.Banco;

            if (objModel.ContaPrimaria != null)
            {
                msg0183R1.ContaPrimaria = objModel.ContaPrimaria.Id.ToString();
            }
            if (objModel.ContatoPrimario != null)
            {
                msg0183R1.ContatoPrincipal = objModel.ContatoPrimario.Id.ToString();
            }
            if (objModel.Regiao != null)
            {
                msg0183R1.Regiao = objModel.Regiao.Name;
            }

            msg0183R1.NumeroAgencia       = objModel.Agencia;
            msg0183R1.NumeroContaCorrente = objModel.ContaCorrente;
            msg0183R1.EmiteBloqueto       = objModel.EmiteBloqueto;
            msg0183R1.GeraAvisoCredito    = objModel.GeraAvisoCredito;
            msg0183R1.CalculaMulta        = objModel.CalculaMulta;
            msg0183R1.RecebeInformacaoSCI = objModel.RecebeInformacaoSCI;
            msg0183R1.Telefone            = objModel.Telefone;
            msg0183R1.Ramal = objModel.RamalTelefonePrincipal;
            if (objModel.TelefoneAlternativo != null && !String.IsNullOrEmpty(objModel.TelefoneAlternativo))
            {
                msg0183R1.TelefoneAlternativo = objModel.TelefoneAlternativo;
            }
            if (objModel.RamalOutroTelefone != null && !String.IsNullOrEmpty(objModel.RamalOutroTelefone))
            {
                msg0183R1.RamalTelefoneAlternativo = objModel.RamalOutroTelefone;
            }
            msg0183R1.Fax      = objModel.Fax;
            msg0183R1.RamalFax = objModel.RamalFax;
            msg0183R1.Email    = objModel.Email;
            msg0183R1.Site     = objModel.Site;
            if (objModel.Natureza.HasValue)
            {
                msg0183R1.Natureza = objModel.Natureza.Value;
            }

            string cnpjCpfObj = objModel.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

            if (objModel.TipoConstituicao.HasValue)
            {
                switch (objModel.TipoConstituicao)
                {
                case (int)Domain.Enum.Conta.TipoConstituicao.Cnpj:
                    msg0183R1.CNPJ = cnpjCpfObj;
                    break;

                case (int)Domain.Enum.Conta.TipoConstituicao.Cpf:
                    msg0183R1.CPF = cnpjCpfObj;
                    break;

                case (int)Domain.Enum.Conta.TipoConstituicao.Estrangeiro:
                    msg0183R1.CodigoEstrangeiro = objModel.CpfCnpj;
                    break;
                }
            }

            if (objModel.InscricaoEstadual != null)
            {
                if (objModel.InscricaoEstadual.Length < 2)
                {
                    msg0183R1.InscricaoEstadual = null;
                }
                else
                {
                    msg0183R1.InscricaoEstadual = objModel.InscricaoEstadual.Replace(".", "").Trim();
                }
            }
            else
            {
                msg0183R1.InscricaoEstadual = null;
            }

            msg0183R1.InscricaoMunicipal = objModel.InscricaoMunicipal;
            msg0183R1.SuspensaoCredito   = objModel.SuspensaoCredito;
            msg0183R1.LimiteCredito      = objModel.LimiteCredito;
            msg0183R1.DataLimiteCredito  = objModel.DataLimiteCredito;
            msg0183R1.SaldoCredito       = objModel.SaldoCredito;
            msg0183R1.ModalidadeCobranca = objModel.Modalidade;
            msg0183R1.ContribuinteICMS   = objModel.ContribuinteICMS;
            msg0183R1.CodigoSUFRAMA      = objModel.CodigoSuframa;
            msg0183R1.InscricaoSubstituicaoTributaria = objModel.SubstituicaoTributaria;
            msg0183R1.OptanteSuspensaoIPI             = objModel.OptanteSuspensaoIPI;
            msg0183R1.AgenteRetencao             = objModel.AgenteRetencao;
            msg0183R1.PisCofinsUnidade           = objModel.PISCOFINSPorUnidade;
            msg0183R1.RecebeNotaFiscalEletronica = objModel.RecebeNFE;
            msg0183R1.FormaTributacao            = objModel.FormaTributacao;
            msg0183R1.ObservacaoPedido           = objModel.ObservacoesPedido;
            msg0183R1.TipoEmbalagem   = objModel.TipoEmbalagem;
            msg0183R1.CodigoIncoterm  = objModel.Incoterm;
            msg0183R1.LocalEmbarque   = objModel.LocalEmbarque;
            msg0183R1.ViaEmbarque     = objModel.EmbarqueVia;
            msg0183R1.DataImplantacao = objModel.DataImplantacao;
            if (!String.IsNullOrEmpty(objModel.DocIdentidade))
            {
                msg0183R1.RG = objModel.DocIdentidade;
            }
            if (!String.IsNullOrEmpty(objModel.EmissorIdentidade))
            {
                msg0183R1.OrgaoExpeditor = objModel.EmissorIdentidade;
            }
            msg0183R1.DataVencimentoConcessao       = objModel.DataVenctoConcessao;
            msg0183R1.DescontoAssistenciaTecnica    = objModel.DescontoCAT;
            msg0183R1.CoberturaGeografica           = objModel.CoberturaGeografica;
            msg0183R1.DataConstituicao              = objModel.DataConstituicao;
            msg0183R1.DistribuicaoUnicaFonteReceita = objModel.DistribuicaoFonteReceita;
            msg0183R1.QualificadoTreinamento        = objModel.EspacoFisicoQualificado;
            if (objModel.Exclusividade.HasValue)
            {
                msg0183R1.Exclusividade = objModel.Exclusividade.Value;
            }
            msg0183R1.Historico                      = objModel.Historico;
            msg0183R1.IntencaoApoio                  = objModel.IntencaoApoio;
            msg0183R1.MetodoComercializacao          = objModel.MetodoComercializacaoProduto;
            msg0183R1.ModeloOperacao                 = objModel.ModeloOperacaoFiliais;
            msg0183R1.NumeroFuncionarios             = objModel.NumeroFuncionarios;
            msg0183R1.NumeroColaboradoresAreaTecnica = objModel.NumeroColaboradores;
            msg0183R1.NumeroRevendasAtivas           = objModel.NumeroRevendasAtivas;
            msg0183R1.NumeroRevendasInativas         = objModel.NumeroRevendasInativas;
            msg0183R1.NumeroTecnicosSuporte          = objModel.NumeroTecnicosSuporte;
            msg0183R1.NumeroVendedores               = objModel.NumeroVendedores;
            msg0183R1.OutraFonteReceita              = objModel.OutraFonteReceita;
            if (objModel.ParticipantePrograma.HasValue)
            {
                msg0183R1.ParticipaProgramaCanais = objModel.ParticipantePrograma.Value;
            }

            #region Asistencia Tecnica
            if (objModel.AssistenciaTecnica.HasValue)
            {
                msg0183R1.AssistenciaTecnica = objModel.AssistenciaTecnica.Value;
            }

            if (objModel.PossuiEstruturaCompleta.HasValue)
            {
                msg0183R1.PossuiEstruturaCompleta = objModel.PossuiEstruturaCompleta;
            }

            if (objModel.PerfilAssistenciaTecnica.HasValue)
            {
                msg0183R1.PerfilAssistenciaTecnica = objModel.PerfilAssistenciaTecnica;
            }

            if (objModel.TabelaPrecoAstec.HasValue)
            {
                msg0183R1.TabelaPrecoAssistenciaTecnica = objModel.TabelaPrecoAstec;
            }

            if (objModel.NomeAbreviadoMatrizEconomica != null)
            {
                msg0183R1.NomeAbreviadoMatrizEconomica = objModel.NomeAbreviadoMatrizEconomica;
            }
            #endregion

            msg0183R1.PerfilRevendasDistribuidor = objModel.PerfilRevendaDistribuidor;
            msg0183R1.PossuiEstruturaCompleta    = objModel.PossuiEstruturaCompleta;
            msg0183R1.PossuiFiliais     = objModel.PossuiFiliais;
            msg0183R1.QuantidadeFiliais = objModel.QuantasFiliais;
            if (objModel.PrazoMedioCompras.HasValue)
            {
                msg0183R1.PrazoMedioCompra = (decimal)objModel.PrazoMedioCompras.Value;
            }
            if (objModel.PrazoMedioVendas.HasValue)
            {
                msg0183R1.PrazoMedioVenda = (decimal)objModel.PrazoMedioVendas.Value;
            }
            if (objModel.Setor.HasValue)
            {
                msg0183R1.Setor = objModel.Setor;
            }
            msg0183R1.ValorMedioCompra     = objModel.ValorMedioComprasMensais;
            msg0183R1.ValorMedioVenda      = objModel.ValorMedioVendasMensais;
            msg0183R1.VendeAtacadista      = objModel.VendasParaAtacadistaVarejista;
            msg0183R1.ObservacaoNotaFiscal = objModel.ObservacoesNF;
            msg0183R1.EstruturaPropriedade = objModel.Propriedade;
            msg0183R1.ReceitaAnual         = objModel.ReceitaAnual;

            if (objModel.Status.HasValue)
            {
                msg0183R1.Situacao = objModel.Status.Value;
            }

            if (objModel.Classificacao != null)
            {
                msg0183R1.Classificacao = objModel.Classificacao.Id.ToString();
            }

            if (objModel.Subclassificacao == null)
            {
                throw new ArgumentException("campo Subclassificação obrigatório");
            }

            msg0183R1.SubClassificacao = objModel.Subclassificacao.Id.ToString();

            msg0183R1.CodigoCRM4 = objModel.GUIDCRM40;

            if (objModel.Portador != null)
            {
                Domain.Model.Portador portador = new Intelbras.CRM2013.Domain.Servicos.PortadorService(this.Organizacao, this.IsOffline)
                                                 .BuscaPorCodigo(objModel.Portador.Id);

                if (portador == null || !portador.CodigoPortador.HasValue)
                {
                    throw new ArgumentException("(CRM) Portador não localizado. (ID: " + objModel.Portador.Id + ")");
                }

                msg0183R1.Portador = portador.CodigoPortador;
            }

            if (objModel.NivelPosVendas == null)
            {
                throw new ArgumentException("Campo nivel pós venda obrigatório");
            }

            msg0183R1.NivelPosVenda = objModel.NivelPosVendas.Id.ToString();

            if (objModel.ClientePotencialOriginador != null)
            {
                msg0183R1.ClientePotencialOriginador = objModel.ClientePotencialOriginador.Id.ToString();
            }
            if (objModel.CondicaoPagamento != null)
            {
                CondicaoPagamento codPagto = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(objModel.CondicaoPagamento.Id);
                if (codPagto != null && codPagto.Codigo.HasValue)
                {
                    msg0183R1.CondicaoPagamento = codPagto.Codigo;
                }
            }

            Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("account", "accountid", objModel.ID.Value);
            if (proprietario != null)
            {
                msg0183R1.Proprietario     = proprietario.Id.ToString();
                msg0183R1.TipoProprietario = "systemuser";
            }

            if (objModel.Transportadora != null)
            {
                Transportadora transp = new Servicos.TransportadoraService(this.Organizacao, this.IsOffline).ObterPor(objModel.Transportadora.Id);
                if (transp != null && transp.Codigo.HasValue)
                {
                    msg0183R1.Transportadora = transp.Codigo.Value;
                }
            }
            if (objModel.TransportadoraRedespacho != null)
            {
                Transportadora transpRed = new Servicos.TransportadoraService(this.Organizacao, this.IsOffline).ObterPor(objModel.TransportadoraRedespacho.Id);
                if (transpRed != null && transpRed.Codigo.HasValue)
                {
                    msg0183R1.TransportadoraRedespacho = transpRed.Codigo.Value;
                }
            }

            if (objModel.TipoConta.HasValue)
            {
                msg0183R1.TipoConta = objModel.TipoConta.Value;
            }
            msg0183R1.ApuracaoBeneficio = objModel.ApuracaoBeneficiosCompromissos;

            if (objModel.DataAdesao.HasValue)
            {
                msg0183R1.DataAdesao = objModel.DataAdesao.Value.ToLocalTime();
            }


            if (objModel.DiasAtraso.HasValue)
            {
                msg0183R1.NumeroDiasAtraso = (int)objModel.DiasAtraso;
            }

            if (objModel.ReceitaPadrao != null)
            {
                ReceitaPadrao receitaPadrao = new Servicos.ReceitaPadraoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(objModel.ReceitaPadrao.Id);
                if (receitaPadrao != null)
                {
                    msg0183R1.ReceitaPadrao = receitaPadrao.CodReceitaPadrao;
                }
            }
            if (objModel.Portador != null)
            {
                Portador mPortador = new Servicos.PortadorService(this.Organizacao, this.IsOffline).BuscaPorCodigo(objModel.Portador.Id);
                if (mPortador != null)
                {
                    msg0183R1.Portador = mPortador.CodigoPortador;
                }
            }

            msg0183R1.SistemaGestao                 = objModel.SoftwareNegocios;
            msg0183R1.DataImplantacao               = objModel.DataImplantacao;
            msg0183R1.DataUltimoSellOut             = objModel.DataUltimoSelloutRevenda;
            msg0183R1.EscolheuDistrForaSellOut      = objModel.EscolheuDistribuidorSemSellout;
            msg0183R1.AdesaoPciRealizadaPor         = objModel.AdesaoAoPCIRealizadaPor;
            msg0183R1.ParticipaProgramaCanaisMotivo = objModel.MotivoParticipantePrograma;
            msg0183R1.FiguraNoSite           = objModel.FiguraNoSite;
            msg0183R1.CNAE                   = objModel.CNAE;
            msg0183R1.RamoAtividadeEconomica = objModel.RamoAtividadeEconomica;

            if (objModel.CnaeId != null)
            {
                msg0183R1.CodigoRamoAtividadeEconomica = objModel.CnaeId.Id.ToString();
            }
            if (objModel.ListaPreco != null)
            {
                msg0183R1.ListaPreco = objModel.ListaPreco.Name;
            }
            if (objModel.TipoConstituicao.HasValue)
            {
                msg0183R1.TipoConstituicao = objModel.TipoConstituicao.Value;
            }

            //Atualizacao Konviva
            if (objModel.TipoConstituicao.HasValue && objModel.TipoConstituicao.Value == (int)Domain.Enum.Conta.TipoConstituicao.Estrangeiro)
            {
                msg0183R1.CodigoEstrangeiro = objModel.CpfCnpj;
            }

            if (objModel.OrigemConta.HasValue)
            {
                msg0183R1.OrigemConta = objModel.OrigemConta;
            }

            if (!String.IsNullOrEmpty(objModel.NumeroPassaporte))
            {
                msg0183R1.NumeroPassaporte = objModel.NumeroPassaporte;
            }

            if (objModel.StatusIntegracaoSefaz.HasValue)
            {
                msg0183R1.StatusIntegracaoSefaz = objModel.StatusIntegracaoSefaz;
            }

            if (objModel.DataHoraIntegracaoSefaz.HasValue)
            {
                msg0183R1.DataHoraIntegracaoSefaz = objModel.DataHoraIntegracaoSefaz;
            }

            if (!String.IsNullOrEmpty(objModel.RegimeApuracao))
            {
                msg0183R1.RegimeApuracao = objModel.RegimeApuracao;
            }

            if (objModel.DataBaixaContribuinte.HasValue)
            {
                msg0183R1.DataBaixaContribuinte = objModel.DataBaixaContribuinte;
            }

            #region Segmentos do Canal
            msg0183R1.SegmentosCanal = new List <Message.Helper.Entities.Segmento>();

            List <Segmento> lstSegmentos = new RepositoryService(this.Organizacao, this.IsOffline).Segmento.ListarPorContaSegmento((Guid)objModel.ID.Value);

            if (lstSegmentos.Count > 0)
            {
                foreach (Segmento segmentoItem in lstSegmentos)
                {
                    Message.Helper.Entities.Segmento segmento = new Message.Helper.Entities.Segmento();

                    segmento.CodigoSegmento = segmentoItem.CodigoSegmento;
                    segmento.NomeSegmento   = segmentoItem.Nome;

                    UnidadeNegocio unidadeNegocio = new UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(segmentoItem.UnidadeNegocios.Id);
                    if (unidadeNegocio != null)
                    {
                        segmento.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                    }

                    msg0183R1.SegmentosCanal.Add(segmento);
                }
            }
            #endregion

            #region Endereço
            //Bloco Endereço

            //Principal
            Pollux.Entities.Endereco endPrincipal = new Pollux.Entities.Endereco();
            endPrincipal.Bairro = objModel.Endereco1Bairro;
            endPrincipal.Numero = objModel.Endereco1Numero;
            if (!String.IsNullOrEmpty(objModel.Endereco1CEP))
            {
                endPrincipal.CEP = objModel.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
            }
            ;
            if (objModel.Endereco1Municipioid != null)
            {
                Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(objModel.Endereco1Municipioid.Id);
                endPrincipal.Cidade     = municipio.ChaveIntegracao;
                endPrincipal.NomeCidade = municipio.Nome;
            }
            endPrincipal.Complemento = objModel.Endereco1Complemento;
            if (objModel.Endereco1Estadoid != null)
            {
                Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(objModel.Endereco1Estadoid.Id);
                if (estado != null)
                {
                    endPrincipal.Estado = estado.ChaveIntegracao;
                    endPrincipal.UF     = estado.SiglaUF;
                }
            }
            endPrincipal.Logradouro   = objModel.Endereco1Rua;
            endPrincipal.NomeEndereco = objModel.Endereco1Nome;
            if (objModel.Endereco1Pais != null)
            {
                Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(objModel.Endereco1Pais.Id);
                if (pais != null)
                {
                    endPrincipal.NomePais = pais.Nome;
                    endPrincipal.Pais     = pais.Nome;
                }
            }
            endPrincipal.TipoEndereco = objModel.TipoEndereco;
            if (!String.IsNullOrEmpty(objModel.Endereco1CaixaPostal))
            {
                endPrincipal.CaixaPostal = objModel.Endereco1CaixaPostal;
            }
            msg0183R1.EnderecoPrincipal = endPrincipal;

            msg0183R1.Resultado.Sucesso  = true;
            msg0183R1.Resultado.Mensagem = "Integração ocorrida com sucesso.";

            return(msg0183R1);


            #endregion

            #endregion
        }
Ejemplo n.º 3
0
        public Pollux.MSG0058 DefinirPropriedades(Contato objModel)
        {
            #region Endereco

            Pollux.Entities.Endereco enderecoContato = new Pollux.Entities.Endereco();
            enderecoContato.Bairro = objModel.Endereco1Bairro;
            enderecoContato.Numero = objModel.Endereco1Numero;
            if (!String.IsNullOrEmpty(objModel.Endereco1CEP))
            {
                enderecoContato.CEP = objModel.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
            }
            ;
            if (objModel.Endereco1Municipioid != null)
            {
                Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(objModel.Endereco1Municipioid.Id);
                enderecoContato.Cidade     = municipio.ChaveIntegracao;
                enderecoContato.NomeCidade = municipio.Nome;
            }
            enderecoContato.Complemento = objModel.Endereco1Complemento;
            if (objModel.Endereco1Estadoid != null)
            {
                Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(objModel.Endereco1Estadoid.Id);
                if (estado != null)
                {
                    enderecoContato.Estado = estado.ChaveIntegracao;
                    enderecoContato.UF     = estado.SiglaUF;
                }
                if (objModel.Endereco1Pais == null)
                {
                    objModel.Endereco1Pais = estado.Pais;
                }
            }
            enderecoContato.Logradouro   = objModel.Endereco1Rua;
            enderecoContato.NomeEndereco = objModel.Endereco1Nome;
            if (objModel.Endereco1Pais != null)
            {
                Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(objModel.Endereco1Pais.Id);
                enderecoContato.NomePais = pais.Nome;
                enderecoContato.Pais     = pais.ChaveIntegracao;;
            }

            enderecoContato.TipoEndereco = objModel.Endereco1TipoEndereco;
            if (!String.IsNullOrEmpty(objModel.Endereco1CaixaPostal))
            {
                enderecoContato.CaixaPostal = objModel.Endereco1CaixaPostal;
            }
            //msg0072.EnderecoPrincipal = endPrincipal;

            #endregion

            #region Msg
            //Monta o identificador de operação do contato
            var idOperacao = objModel.PrimeiroNome.Trim();
            if (objModel.Sobrenome != null)
            {
                idOperacao = idOperacao + " " + objModel.Sobrenome.Trim();
            }
            idOperacao = idOperacao + "-" + objModel.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

            Pollux.MSG0058 msg0058 = new Pollux.MSG0058(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(idOperacao, 40));

            if (objModel.Area.HasValue)
            {
                msg0058.Area = objModel.Area;
            }

            if (objModel.AssociadoA != null)
            {
                msg0058.Canal           = objModel.AssociadoA.Id.ToString();
                msg0058.TipoObjetoCanal = objModel.AssociadoA.Type;
            }

            if (objModel.Cargo.HasValue)
            {
                msg0058.Cargo = objModel.Cargo;
            }

            msg0058.Celular = objModel.TelefoneCelular;

            if (objModel.ClientePotencialOriginador != null)
            {
                msg0058.ClientePotencialOriginador = objModel.ClientePotencialOriginador.Id.ToString();
            }

            if (!string.IsNullOrEmpty(objModel.CpfCnpj))
            {
                string cnpjCpfObj = objModel.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

                if (!String.IsNullOrEmpty(cnpjCpfObj))
                {
                    if (cnpjCpfObj.Length <= 11)
                    {
                        msg0058.CPF = cnpjCpfObj;
                    }
                    else
                    {
                        msg0058.CNPJ = cnpjCpfObj;
                    }
                }
            }

            msg0058.CodigoCliente = objModel.CodigoRemetente != String.Empty ? (int?)Convert.ToInt32(objModel.CodigoRemetente) : null;

            if (objModel.ID != null)
            {
                msg0058.CodigoContato = objModel.ID.Value.ToString();
            }

            msg0058.ContatoNFE = objModel.ContatoNFE;
            if (objModel.DatasEspeciais.HasValue)
            {
                msg0058.DataEspecial = objModel.DatasEspeciais.Value.ToLocalTime();
            }
            else
            {
                msg0058.DataEspecial = null;
            }
            if (objModel.Aniversario.HasValue)
            {
                msg0058.DataNascimento = objModel.Aniversario.Value.ToLocalTime();
            }
            else
            {
                msg0058.DataNascimento = null;
            }
            msg0058.Departamento = objModel.Departamento;
            if (objModel.Cargo.HasValue)
            {
                msg0058.DescricaoCargo = objModel.Cargo.Value.ToString();
            }
            msg0058.DescricaoContato = objModel.Descricao;
            msg0058.Email            = objModel.Email1;
            msg0058.EmailAlternativo = objModel.Email2;
            if (enderecoContato != null)
            {
                msg0058.EnderecoPrincipal = enderecoContato;
            }
            if (objModel.Escolaridade.HasValue)
            {
                msg0058.Escolaridade = objModel.Escolaridade.Value;
            }
            msg0058.EstadoCivil   = objModel.EstadoCivil;
            msg0058.Fax           = objModel.Fax;
            msg0058.Funcao        = objModel.Funcao;
            msg0058.LimiteCredito = objModel.LimiteCredito;
            if (objModel.ListaPrecos != null)
            {
                msg0058.ListaPreco = objModel.ListaPrecos.Name;
            }
            if (objModel.Loja != null)
            {
                msg0058.Loja = objModel.Loja.Id.ToString();
            }
            msg0058.MetodoEntrega = objModel.Endereco1MetodoEntrega;
            if (objModel.Moeda != null)
            {
                msg0058.Moeda = objModel.Moeda.Name;
            }
            msg0058.Nacionalidade       = objModel.Nacionalidade;
            msg0058.Naturalidade        = objModel.Naturalidade;
            msg0058.NomeAssistente      = objModel.Assistente;
            msg0058.NomeContato         = objModel.PrimeiroNome;
            msg0058.NomeFilhos          = objModel.NomeFilhos;
            msg0058.NomeConjuge         = objModel.NomeConjuge;
            msg0058.NomeGerente         = objModel.Gerente;
            msg0058.NumeroContato       = objModel.NumeroContato;
            msg0058.NumeroFilhos        = objModel.NumeroFilhos;
            msg0058.OrgaoExpeditor      = objModel.EmissorDocIdentidade;
            msg0058.PapelCanal          = objModel.PapelCanal;
            msg0058.DescricaoPapelCanal = objModel.DescricaoPapelCanal;

            List <AreaAtuacao> lstAreasAtuacao = new Servicos.AreaAtuacaoService(this.Organizacao, this.IsOffline).ListarPorContato(objModel.Id);
            foreach (var itemAreaAtuacao in lstAreasAtuacao)
            {
                if (itemAreaAtuacao.Codigo.HasValue)
                {
                    msg0058.ListaAreaAtuacao.Add(Convert.ToInt32(itemAreaAtuacao.Codigo));
                }
            }

            msg0058.DescricaoAreaAtuacao = objModel.DescricaoAreaAtuacao;
            msg0058.IMEI = objModel.IMEI;
            if (objModel.AcessoPortal != null)
            {
                msg0058.AcessoPortal = objModel.AcessoPortal;
            }
            if (objModel.AcessoAPPISOL != null)
            {
                msg0058.AcessoAPP = objModel.AcessoAPPISOL;
            }

            msg0058.Treinamentos = objModel.Treinamento;

            List <Marca> lstMarcas = new Servicos.MarcaService(this.Organizacao, this.IsOffline).ListarPorContato(objModel.Id);
            foreach (var itemMarca in lstMarcas)
            {
                msg0058.ListaMarcas.Add(itemMarca.Id.ToString());
            }

            msg0058.Ramal    = objModel.Ramal1;
            msg0058.RamalFax = objModel.RamalFax;
            msg0058.RamalTelefoneAlternativo = objModel.Ramal2;
            msg0058.RG          = objModel.DocIdentidade;
            msg0058.Saudacao    = objModel.Saudacao;
            msg0058.SegundoNome = objModel.SegundoNome;
            msg0058.Sexo        = objModel.Sexo;
            if (objModel.Status.HasValue)
            {
                msg0058.Situacao = objModel.Status.Value;
            }
            msg0058.Sobrenome           = objModel.Sobrenome;
            msg0058.SuspensaoCredito    = objModel.SuspensaoCredito;
            msg0058.Telefone            = objModel.TelefoneComercial;
            msg0058.TelefoneAlternativo = objModel.TelefoneComercial2;
            msg0058.TelefoneAssistente  = objModel.TelefoneAssistente;
            msg0058.TelefoneGerente     = objModel.TelefoneGerente;
            if (objModel.IntegraIntelbrasPontua != null)
            {
                msg0058.IntegraIntelbrasPontua = objModel.IntegraIntelbrasPontua;
            }
            //Aguardando ajuste Pollux
            //TemFilhos = true;
            msg0058.TipoContato   = objModel.TipoRelacao;
            msg0058.CondicaoFrete = objModel.Endereco1CondicoesFrete;

            if (objModel.AcessoSolar != null)
            {
                msg0058.AcessoSolar = objModel.AcessoSolar;
            }

            if (objModel.ExibirSite.HasValue)
            {
                msg0058.ExibirSite = objModel.ExibirSite;
            }
            msg0058.CanalVendaAtendimento = objModel.CanaisDeVenda;

            #region Validar Codigo Representante

            if (!String.IsNullOrEmpty(objModel.CodigoRepresentante))
            {
                if (this.ValidarCodigoRepresentante(objModel.CodigoRepresentante, "systemuser"))
                {
                    msg0058.CodigoRepresentante = (int?)Convert.ToInt32(objModel.CodigoRepresentante);
                }
                else
                {
                    throw new ArgumentException("(CRM) Representante com o Código  : " + objModel.CodigoRepresentante + " - não cadastrado no ERP Totvs.");
                }
            }

            #endregion

            #endregion

            return(msg0058);
        }
Ejemplo n.º 4
0
        private Intelbras.Message.Helper.MSG0300 DefinirPropriedades(Ocorrencia crm)
        {
            string strNomeProdutos = string.Empty;

            Intelbras.Message.Helper.MSG0300 xml = new Pollux.MSG0300(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Numero, 40));

            if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Atendimento_Avulso)
            {
                xml.TipoAtendimento = "FA";
            }
            else
            if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Mau_Atendimento ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Procon ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Atraso_no_Conserto ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.ReclamacaoImprocedente ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamacao_Falha_No_Processo ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamacao_Mau_Funcionamento ||
                crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Nau_Funcionamento_Com_Solucao)
            {
                xml.TipoAtendimento = "RC";
            }
            else
            if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.AnaliseDeDefeito)
            {
                xml.TipoAtendimento = "AD";
            }

            xml.CodigoOcorrencia = crm.ID.Value.ToString();

            if (!string.IsNullOrEmpty(crm.Numero))
            {
                xml.NumeroOcorrencia = crm.Numero;
            }
            if (crm.RazaoStatus.HasValue)
            {
                xml.StatusOcorrencia = crm.RazaoStatus;
            }
            if (crm.PrioridadeValue.HasValue)
            {
                xml.Prioridade = crm.PrioridadeValue;
            }
            if (crm.TipoDeOcorrencia.HasValue)
            {
                xml.TipoOcorrencia          = crm.TipoDeOcorrencia;
                xml.DescricaoTipoOcorrencia = DescricaoTipoOcorrencia(crm.TipoDeOcorrencia.Value);
            }
            if (crm.Assunto != null)
            {
                xml.DefeitoAlegado = crm.Assunto.Nome;
            }
            if (!string.IsNullOrEmpty(xml.AtividadeExecutada))
            {
                crm.AtividadeExecutada = xml.AtividadeExecutada;
            }
            if (crm.DataOrigem.HasValue)
            {
                xml.DataHoraAbertura = crm.DataOrigem.Value.ToLocalTime();
            }

            Usuario proprietario = new Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("incident", "incidentid", crm.ID.Value);

            if (proprietario != null)
            {
                xml.NomeProprietario = proprietario.NomeCompleto;
            }

            if (!string.IsNullOrEmpty(crm.ProdutosDoCliente))
            {
                xml.NumeroSerieProduto = crm.ProdutosDoCliente;
            }

            if (crm.Produto != null)
            {
                Product objProduto = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.Produto.Id);
                if (objProduto != null)
                {
                    xml.CodigoProduto = objProduto.Codigo;
                    strNomeProdutos   = objProduto.Nome;
                }
            }

            #region Montagem do texto padrão do campo observação
            xml.Observacao = crm.Nome + "\n" +
                             "DEFEITO ALEGADO: " + (crm.Assunto.Nome != null ? crm.Assunto.Nome : "--");
            //"PRODUTO: " + (xml.CodigoProduto != null ? xml.CodigoProduto + " - " + strNomeProdutos : "--") + "\n" +
            //"NÚMERO DE SÉRIE: " + (xml.NumeroSerieProduto != null ? xml.NumeroSerieProduto : "--") + "\n" +
            //"DATA FABRICAÇÃO: " + (crm.DataFabricacaoProduto != null ? crm.DataFabricacaoProduto.Value.ToLocalTime().ToString("dd/MM/yyyy") : "--") + "\n" +
            //"DATA VENDA: " + (crm.DataCompraIntelbras != null ? crm.DataCompraIntelbras.Value.ToLocalTime().ToString("dd/MM/yyyy") : "--") + "\n" +
            //"PEDIDO VENDA: " + (crm.NumeroPedidoVenda != null ? crm.NumeroPedidoVenda : "-- ") + "     NF VENDA: " + (crm.NumeroNotaFiscal != null ? crm.NumeroNotaFiscal : "--") + "\n\n";
            #endregion

            //if (!string.IsNullOrEmpty(crm.Anexo))
            //{
            //    xml.Observacao += crm.Anexo;
            //}

            xml.NomeUsuario = crm.CriadoPor.Name;

            xml.CNPJAutorizada = crm.Autorizada != null?crm.Autorizada.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim() : null;

            xml.NomeAutorizada = crm.Autorizada != null?crm.Autorizada.Nome.Trim() : null;

            #region Dados do Cliente da Ocorrência
            Model.Contato                     contato           = new Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(crm.ClienteId.Id);
            Model.Conta                       conta             = new Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(crm.ClienteId.Id);
            Pollux.Entities.Endereco          enderecoContato   = new Pollux.Entities.Endereco();
            Pollux.Entities.ClienteOcorrencia clienteOcorrencia = new Pollux.Entities.ClienteOcorrencia();

            clienteOcorrencia.CodigoContato = contato != null?contato.Id.ToString() : conta.Id.ToString();

            if (conta != null)
            {
                clienteOcorrencia.CodigoCliente = Convert.ToInt32(conta.CodigoMatriz);

                if (!string.IsNullOrEmpty(conta.CpfCnpj))
                {
                    string cnpjCpfObj = conta.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

                    if (!String.IsNullOrEmpty(cnpjCpfObj))
                    {
                        if (cnpjCpfObj.Length <= 11)
                        {
                            clienteOcorrencia.CPF = cnpjCpfObj;
                        }
                        else
                        {
                            clienteOcorrencia.CNPJ = cnpjCpfObj;
                        }
                    }
                }

                if (!String.IsNullOrEmpty(conta.Endereco1CEP))
                {
                    enderecoContato.CEP = conta.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
                }

                if (conta.Endereco1Municipioid != null)
                {
                    Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(conta.Endereco1Municipioid.Id);
                    enderecoContato.Cidade     = municipio.ChaveIntegracao;
                    enderecoContato.NomeCidade = municipio.Nome;
                }

                if (conta.Endereco1Estadoid != null)
                {
                    Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(conta.Endereco1Estadoid.Id);
                    if (estado != null)
                    {
                        enderecoContato.Estado = estado.ChaveIntegracao;
                        enderecoContato.UF     = estado.SiglaUF;
                    }
                    if (conta.Endereco1Pais == null)
                    {
                        conta.Endereco1Pais = estado.Pais;
                    }
                }

                if (conta.Endereco1Pais != null)
                {
                    Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(conta.Endereco1Pais.Id);
                    enderecoContato.NomePais = pais.Nome;
                    enderecoContato.Pais     = pais.ChaveIntegracao;;
                }
                if (!String.IsNullOrEmpty(conta.Endereco1CaixaPostal))
                {
                    enderecoContato.CaixaPostal = conta.Endereco1CaixaPostal;
                }
            }

            if (contato != null)
            {
                if (contato.AssociadoA != null)
                {
                    conta = new Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(contato.AssociadoA.Id);
                    if (conta != null)
                    {
                        clienteOcorrencia.CodigoCliente = Convert.ToInt32(conta.CodigoMatriz);
                    }
                }
                if (contato.Aniversario.HasValue)
                {
                    clienteOcorrencia.DataNascimento = contato.Aniversario.Value.ToLocalTime();
                }
                else
                {
                    clienteOcorrencia.DataNascimento = null;
                }

                if (!string.IsNullOrEmpty(contato.CpfCnpj))
                {
                    string cnpjCpfObj = contato.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();

                    if (!String.IsNullOrEmpty(cnpjCpfObj))
                    {
                        if (cnpjCpfObj.Length <= 11)
                        {
                            clienteOcorrencia.CPF = cnpjCpfObj;
                        }
                        else
                        {
                            clienteOcorrencia.CNPJ = cnpjCpfObj;
                        }
                    }
                }

                if (!String.IsNullOrEmpty(contato.Endereco1CEP))
                {
                    enderecoContato.CEP = contato.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
                }

                if (contato.Endereco1Municipioid != null)
                {
                    Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(contato.Endereco1Municipioid.Id);
                    enderecoContato.Cidade     = municipio.ChaveIntegracao;
                    enderecoContato.NomeCidade = municipio.Nome;
                }

                if (contato.Endereco1Estadoid != null)
                {
                    Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(contato.Endereco1Estadoid.Id);
                    if (estado != null)
                    {
                        enderecoContato.Estado = estado.ChaveIntegracao;
                        enderecoContato.UF     = estado.SiglaUF;
                    }
                    if (contato.Endereco1Pais == null)
                    {
                        contato.Endereco1Pais = estado.Pais;
                    }
                }

                if (contato.Endereco1Pais != null)
                {
                    Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(contato.Endereco1Pais.Id);
                    enderecoContato.NomePais = pais.Nome;
                    enderecoContato.Pais     = pais.ChaveIntegracao;;
                }

                if (!String.IsNullOrEmpty(contato.Endereco1CaixaPostal))
                {
                    enderecoContato.CaixaPostal = contato.Endereco1CaixaPostal;
                }
            }

            clienteOcorrencia.NomeContato    = contato != null ? contato.PrimeiroNome : conta.Nome;
            clienteOcorrencia.SegundoNome    = contato != null ? contato.SegundoNome : null;
            clienteOcorrencia.Sobrenome      = contato != null ? contato.Sobrenome : null;
            clienteOcorrencia.Email          = contato != null ? contato.Email1 : conta.Email;
            clienteOcorrencia.Telefone       = contato != null ? contato.TelefoneComercial : conta.Telefone;
            clienteOcorrencia.Ramal          = contato != null ? contato.Ramal1 : conta.RamalTelefonePrincipal;
            clienteOcorrencia.Celular        = contato != null ? contato.TelefoneCelular : conta.Fax;
            clienteOcorrencia.Fax            = contato != null ? contato.Fax : null;
            clienteOcorrencia.RamalFax       = contato != null ? contato.RamalFax : null;
            clienteOcorrencia.Sexo           = contato != null ? contato.Sexo : null;
            clienteOcorrencia.RG             = contato != null ? contato.DocIdentidade : null;
            clienteOcorrencia.OrgaoExpeditor = contato != null ? contato.EmissorDocIdentidade : null;
            #endregion

            #region Endereco
            enderecoContato.Bairro       = contato != null ? contato.Endereco1Bairro : conta.Endereco1Bairro;
            enderecoContato.Numero       = contato != null ? contato.Endereco1Numero : conta.Endereco1Numero;
            enderecoContato.Complemento  = contato != null ? contato.Endereco1Complemento : conta.Endereco1Complemento;
            enderecoContato.Logradouro   = contato != null ? contato.Endereco1Rua : conta.Endereco1Rua;
            enderecoContato.NomeEndereco = contato != null ? contato.Endereco1Nome : null;
            enderecoContato.TipoEndereco = contato != null ? contato.Endereco1TipoEndereco : conta.TipoEndereco;

            if (enderecoContato != null)
            {
                clienteOcorrencia.EnderecoPrincipal = enderecoContato;
            }

            #endregion

            #region Lista de anexos da ocorrência
            var urlServico = SDKore.Configuration.ConfigurationManager.GetSettingValue("UrlSiteCRM");

            var strTextosAnotacoes = "";

            if (crm.Anexos != null && crm.Anexos.Count > 0)
            {
                List <Pollux.Entities.AnexoOcorrencia> lstAnexosOcorrencia = new List <Pollux.Entities.AnexoOcorrencia>();

                foreach (Anotacao crmItem in crm.Anexos)
                {
                    if (crmItem.TemArquivo)
                    {
                        Pollux.Entities.AnexoOcorrencia objPollux = new Pollux.Entities.AnexoOcorrencia();
                        objPollux.NomeArquivo = crmItem.NomeArquivos;
                        if (SDKore.Configuration.ConfigurationManager.GetSettingValue("Ambiente") == "Desenvolvimento")
                        {
                            objPollux.URL = urlServico + "/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=" + crmItem.ID + "&CRMWRPCToken=N%2fF0lhjMEemA3ABQVqpIdBJpbKVyWAZQV4rPHHxT6tlRmtDGA0vqSwwW7tVLsMKh&CRMWRPCTokenTimeStamp=636845305936642215";
                        }
                        else
                        {
                            objPollux.URL = urlServico + "/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=" + crmItem.ID;
                        }

                        lstAnexosOcorrencia.Add(objPollux);
                    }

                    strTextosAnotacoes += System.Environment.NewLine + "----------------------------------------------------------------------" + System.Environment.NewLine
                                          + crmItem.CriadoPor.Name.ToString() + " em " + crmItem.CriadoEm.Value.ToLocalTime() + ". " + (string.IsNullOrEmpty(crmItem.Assunto) ? "ASSUNTO: " + crmItem.Assunto : "") + System.Environment.NewLine
                                          + crmItem.Texto;
                }
                xml.ListaAnexosOcorrencia = lstAnexosOcorrencia;
            }
            #endregion

            if (!string.IsNullOrEmpty(strTextosAnotacoes))
            {
                xml.Observacao += strTextosAnotacoes;
            }
            else if (!string.IsNullOrEmpty(crm.Anexo))
            {
                xml.Observacao += System.Environment.NewLine + crm.Anexo;
            }

            xml.ClienteOcorrencia = clienteOcorrencia;

            return(xml);
        }
Ejemplo n.º 5
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            try
            {
                usuarioIntegracao = usuario;
                ClientePotencial clientePotencialConsulta = null;
                Oportunidade     oportunidadeConsulta     = null;

                var xml = this.CarregarMensagem <Pollux.MSG0269>(mensagem);
                Pollux.Entities.ProjetoItem projetoItem = new Pollux.Entities.ProjetoItem();

                if (!string.IsNullOrEmpty(xml.NumeroProjeto))
                {
                    clientePotencialConsulta = new Servicos.LeadService(this.Organizacao, this.IsOffline).ObterPorNumeroProjeto(xml.NumeroProjeto);
                    if (clientePotencialConsulta != null)
                    {
                        oportunidadeConsulta = new Servicos.RepositoryService().Oportunidade.BuscarPor(clientePotencialConsulta);
                    }

                    if (clientePotencialConsulta == null)
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "Valor do parâmetro " + xml.NumeroProjeto + " não encontrado.";
                        retorno.Add("Resultado", resultadoPersistencia);
                        return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno));
                    }
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Parâmetro obrigatório para a consulta não enviado.";
                    retorno.Add("Resultado", resultadoPersistencia);
                    return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno));
                }

                if (oportunidadeConsulta != null)
                {
                    projetoItem.NumeroProjeto          = clientePotencialConsulta.NumeroProjeto;
                    projetoItem.ClassificacaoProjeto   = 993520001;
                    projetoItem.CodigoClientePotencial = oportunidadeConsulta.ClientePotencialOriginador.Id.ToString();
                    projetoItem.CodigoOportunidade     = oportunidadeConsulta.Id.ToString();
                    projetoItem.SituacaoProjeto        = ObterRazaoStatusOportunidade(oportunidadeConsulta);
                    if (oportunidadeConsulta.RevendaIntegrador != null)
                    {
                        projetoItem.CodigoRevenda = oportunidadeConsulta.RevendaIntegrador.Id.ToString();
                        projetoItem.NomeRevenda   = oportunidadeConsulta.RevendaIntegrador.Name;
                    }

                    if (oportunidadeConsulta.Distribuidor != null)
                    {
                        projetoItem.CodigoDistribuidor = oportunidadeConsulta.Distribuidor.Id.ToString();
                        projetoItem.NomeDistribuidor   = oportunidadeConsulta.Distribuidor.Name;
                    }
                    if (oportunidadeConsulta.Executivo != null)
                    {
                        projetoItem.CodigoExecutivo = oportunidadeConsulta.Executivo.Id.ToString();
                        projetoItem.NomeExecutivo   = oportunidadeConsulta.Executivo.Name;
                    }
                    projetoItem.CNPJCliente        = clientePotencialConsulta.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();
                    projetoItem.RazaoSocial        = clientePotencialConsulta.NomeDaEmpresa;
                    projetoItem.NomeContatoCliente = clientePotencialConsulta.NomeCompletoDoContato;
                    if (!string.IsNullOrEmpty(clientePotencialConsulta.TelefoneComercial))
                    {
                        projetoItem.TelefoneContatoCliente = clientePotencialConsulta.TelefoneComercial;
                    }
                    projetoItem.EmailContatoCliente = clientePotencialConsulta.Email;
                    projetoItem.TipoProjeto         = clientePotencialConsulta.TipoProjeto;
                    if (clientePotencialConsulta.EnvolverEngenharia)
                    {
                        projetoItem.EnvolverEngenharia = 993520000;
                    }
                    else
                    {
                        projetoItem.EnvolverEngenharia = 993520001;
                    }
                    projetoItem.ReceitaEstimada        = clientePotencialConsulta.ValorEstimado;
                    projetoItem.DataPrevisaoFechamento = clientePotencialConsulta.DataEstimada;
                    UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(clientePotencialConsulta.UnidadeNegocio.Id);
                    if (unidadeNegocio != null)
                    {
                        projetoItem.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                        projetoItem.NomeUnidadeNegocio   = unidadeNegocio.Nome;
                    }
                    projetoItem.DataCadastro     = clientePotencialConsulta.DataCriacao;
                    projetoItem.DescricaoProjeto = clientePotencialConsulta.Descricao;
                    if (clientePotencialConsulta.CotacaoEnviada.HasValue)
                    {
                        projetoItem.CotacaoEnviada = clientePotencialConsulta.CotacaoEnviada;
                    }
                    if (oportunidadeConsulta.DataEnvioCotacao.HasValue)
                    {
                        projetoItem.DataEnvioCotacao = oportunidadeConsulta.DataEnvioCotacao;
                    }
                    if (oportunidadeConsulta.TeveReuniao.HasValue)
                    {
                        projetoItem.TeveReuniao = oportunidadeConsulta.TeveReuniao;
                    }
                    if (oportunidadeConsulta.DataReuniao.HasValue)
                    {
                        projetoItem.DataReuniao = oportunidadeConsulta.DataReuniao;
                    }
                    if (oportunidadeConsulta.DataEstimativaAprovacao.HasValue)
                    {
                        projetoItem.DataEstimativaAprovacao = oportunidadeConsulta.DataEstimativaAprovacao;
                    }
                    if (oportunidadeConsulta.PropostaAprovada.HasValue)
                    {
                        projetoItem.PropostaAprovada = oportunidadeConsulta.PropostaAprovada;
                    }
                    if (oportunidadeConsulta.DataAprovacao.HasValue)
                    {
                        projetoItem.DataAprovacao = oportunidadeConsulta.DataAprovacao;
                    }
                    if (oportunidadeConsulta.DataEnvioPedidos.HasValue)
                    {
                        projetoItem.DataEnvioPedidos = oportunidadeConsulta.DataEnvioPedidos;
                    }
                    if (oportunidadeConsulta.PedidosFaturados.HasValue)
                    {
                        projetoItem.PedidosFaturados = oportunidadeConsulta.PedidosFaturados;
                    }
                    Usuario proprietarioOportunidade = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("opportunity", "opportunityid", oportunidadeConsulta.Id);
                    if (proprietarioOportunidade != null)
                    {
                        projetoItem.CodigoExecutivoIntelbras = proprietarioOportunidade.Id.ToString();
                        projetoItem.NomeExecutivoIntelbras   = proprietarioOportunidade.NomeCompleto;
                    }
                }
                else
                {
                    projetoItem.NumeroProjeto          = clientePotencialConsulta.NumeroProjeto;
                    projetoItem.ClassificacaoProjeto   = 993520000;
                    projetoItem.CodigoClientePotencial = clientePotencialConsulta.Id.ToString();
                    projetoItem.SituacaoProjeto        = ObterRazaoStatusClientePotencial(clientePotencialConsulta);
                    if (clientePotencialConsulta.RevendaIntegrador != null)
                    {
                        projetoItem.CodigoRevenda = clientePotencialConsulta.RevendaIntegrador.Id.ToString();
                        projetoItem.NomeRevenda   = clientePotencialConsulta.RevendaIntegrador.Name;
                    }
                    if (clientePotencialConsulta.Distribuidor != null)
                    {
                        projetoItem.CodigoDistribuidor = clientePotencialConsulta.Distribuidor.Id.ToString();
                        projetoItem.NomeDistribuidor   = clientePotencialConsulta.Distribuidor.Name;
                    }
                    if (clientePotencialConsulta.Executivo != null)
                    {
                        projetoItem.CodigoExecutivo = clientePotencialConsulta.Executivo.Id.ToString();
                        projetoItem.NomeExecutivo   = clientePotencialConsulta.Executivo.Name;
                    }
                    projetoItem.CNPJCliente        = clientePotencialConsulta.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim();
                    projetoItem.RazaoSocial        = clientePotencialConsulta.NomeDaEmpresa;
                    projetoItem.NomeContatoCliente = clientePotencialConsulta.NomeCompletoDoContato;
                    if (!string.IsNullOrEmpty(clientePotencialConsulta.TelefoneComercial))
                    {
                        projetoItem.TelefoneContatoCliente = clientePotencialConsulta.TelefoneComercial;
                    }
                    projetoItem.EmailContatoCliente = clientePotencialConsulta.Email;
                    projetoItem.TipoProjeto         = clientePotencialConsulta.TipoProjeto;
                    if (clientePotencialConsulta.EnvolverEngenharia)
                    {
                        projetoItem.EnvolverEngenharia = 993520000;
                    }
                    else
                    {
                        projetoItem.EnvolverEngenharia = 993520001;
                    }
                    projetoItem.ReceitaEstimada        = clientePotencialConsulta.ValorEstimado;
                    projetoItem.DataPrevisaoFechamento = clientePotencialConsulta.DataEstimada;
                    UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(clientePotencialConsulta.UnidadeNegocio.Id);
                    if (unidadeNegocio != null)
                    {
                        projetoItem.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                        projetoItem.NomeUnidadeNegocio   = unidadeNegocio.Nome;
                    }
                    projetoItem.DataCadastro     = clientePotencialConsulta.DataCriacao;
                    projetoItem.DescricaoProjeto = clientePotencialConsulta.Descricao;
                    if (clientePotencialConsulta.CotacaoEnviada.HasValue)
                    {
                        projetoItem.CotacaoEnviada = clientePotencialConsulta.CotacaoEnviada;
                    }

                    Usuario proprietario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("lead", "leadid", clientePotencialConsulta.Id);
                    if (proprietario != null)
                    {
                        projetoItem.CodigoExecutivoIntelbras = proprietario.Id.ToString();
                        projetoItem.NomeExecutivoIntelbras   = proprietario.NomeCompleto;
                    }

                    if (clientePotencialConsulta.TipoSolucao.HasValue)
                    {
                        projetoItem.TipoSolucao = clientePotencialConsulta.TipoSolucao;
                    }
                }
                #region Endereço
                projetoItem.EnderecoClienteFinal = new Pollux.Entities.Endereco();
                if (!string.IsNullOrEmpty(clientePotencialConsulta.Endereco1CEP))
                {
                    projetoItem.EnderecoClienteFinal.CEP = clientePotencialConsulta.Endereco1CEP.Replace("-", "").PadLeft(8, '0');
                }
                ;
                projetoItem.EnderecoClienteFinal.Logradouro = clientePotencialConsulta.Endereco1Rua;
                projetoItem.EnderecoClienteFinal.Numero     = clientePotencialConsulta.Endereco1Numero;
                if (!string.IsNullOrEmpty(clientePotencialConsulta.Endereco1Complemento))
                {
                    projetoItem.EnderecoClienteFinal.Complemento = clientePotencialConsulta.Endereco1Complemento;
                }
                projetoItem.EnderecoClienteFinal.Bairro = clientePotencialConsulta.Endereco1Bairro;

                if (clientePotencialConsulta.Endereco1Municipioid != null)
                {
                    Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(clientePotencialConsulta.Endereco1Municipioid.Id);
                    projetoItem.EnderecoClienteFinal.NomeCidade = municipio.Nome;
                    projetoItem.EnderecoClienteFinal.Cidade     = municipio.ChaveIntegracao;
                }
                if (clientePotencialConsulta.Endereco1Estadoid != null)
                {
                    Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(clientePotencialConsulta.Endereco1Estadoid.Id);
                    if (estado != null)
                    {
                        projetoItem.EnderecoClienteFinal.UF     = estado.SiglaUF;
                        projetoItem.EnderecoClienteFinal.Estado = estado.ChaveIntegracao;
                    }
                }
                if (clientePotencialConsulta.Endereco1Pais != null)
                {
                    Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(clientePotencialConsulta.Endereco1Pais.Id);
                    if (pais != null)
                    {
                        projetoItem.EnderecoClienteFinal.NomePais = pais.Nome;
                        projetoItem.EnderecoClienteFinal.Pais     = pais.Nome;
                    }
                }

                #endregion

                #region Atividades Projeto
                projetoItem.ListaAtividadesProjeto = new List <Pollux.Entities.AtividadeProjeto>();

                List <Postagem> lstAtividadesClientePotencial = new Servicos.PostagemService(this.Organizacao, this.IsOffline).ListarPorReferenteA(clientePotencialConsulta.Id);

                if (oportunidadeConsulta != null)
                {
                    List <Postagem> lstAtividadesOportunidade = new Servicos.PostagemService(this.Organizacao, this.IsOffline).ListarPorReferenteA(oportunidadeConsulta.Id);

                    if (lstAtividadesOportunidade.Count > 0)
                    {
                        foreach (Postagem postagem in lstAtividadesOportunidade)
                        {
                            Pollux.Entities.AtividadeProjeto atividadeProjeto = new Pollux.Entities.AtividadeProjeto();

                            atividadeProjeto.DataAtividade      = postagem.CriadoEm;
                            atividadeProjeto.CodigoContato      = postagem.UsuarioAtividade.Id.ToString();
                            atividadeProjeto.UsuarioAtividade   = postagem.UsuarioAtividade.Name;
                            atividadeProjeto.DescricaoAtividade = postagem.Texto;

                            projetoItem.ListaAtividadesProjeto.Add(atividadeProjeto);
                        }
                    }
                }
                if (lstAtividadesClientePotencial.Count > 0)
                {
                    foreach (Postagem postagem in lstAtividadesClientePotencial)
                    {
                        Pollux.Entities.AtividadeProjeto atividadeProjeto = new Pollux.Entities.AtividadeProjeto();

                        atividadeProjeto.DataAtividade      = postagem.CriadoEm;
                        atividadeProjeto.CodigoContato      = postagem.UsuarioAtividade.Id.ToString();
                        atividadeProjeto.UsuarioAtividade   = postagem.UsuarioAtividade.Name;
                        atividadeProjeto.DescricaoAtividade = postagem.Texto;

                        projetoItem.ListaAtividadesProjeto.Add(atividadeProjeto);
                    }
                }
                #endregion

                #region Anexos Projeto
                projetoItem.ListaAnexosProjeto = new List <Pollux.Entities.AnexoProjeto>();
                if (oportunidadeConsulta != null)
                {
                    List <DocumentoSharePoint> lstAnexosOportunidade = new Servicos.SharePointSiteService(this.Organizacao, this.IsOffline).ListarPorIdRegistro(oportunidadeConsulta.ID.Value);

                    foreach (DocumentoSharePoint anexo in lstAnexosOportunidade)
                    {
                        try
                        {
                            string urlSite         = ConfigurationManager.GetSettingValue("UrlSiteSharePoint");
                            string urlFolderDetail = "";
                            if (!string.IsNullOrEmpty(anexo.UrlAbsoluta))
                            {
                                urlFolderDetail = anexo.UrlAbsoluta;
                            }
                            else if (!string.IsNullOrEmpty(anexo.UrlRelativa))
                            {
                                urlFolderDetail = urlSite + "/opportunity/" + anexo.UrlRelativa;
                            }
                            using (ClientContext spClientContext = new ClientContext(urlSite))
                            {
                                spClientContext.Credentials = new NetworkCredential(usuarioSharePoint, senhaSharePoint, domain);
                                var rootWeb = spClientContext.Web;

                                Folder pastaPrincipal = rootWeb.GetFolderByServerRelativeUrl(urlFolderDetail);

                                if (pastaPrincipal.Files.AreItemsAvailable)
                                {
                                    spClientContext.Load(pastaPrincipal, fs => fs.Files, p => p.Folders);
                                    spClientContext.ExecuteQuery();
                                    FolderCollection folderCollection = pastaPrincipal.Folders;
                                    FileCollection   fileCollection   = pastaPrincipal.Files;


                                    foreach (var arquivo in fileCollection)
                                    {
                                        Pollux.Entities.AnexoProjeto anexoProjeto = new Pollux.Entities.AnexoProjeto();

                                        anexoProjeto.NomeArquivo    = arquivo.Name;
                                        anexoProjeto.DataArquivo    = arquivo.TimeCreated;
                                        anexoProjeto.UsuarioArquivo = anexo.ModificadoPor.Name;
                                        anexoProjeto.URL            = ObterUrlArquivo(urlSite, arquivo.ServerRelativeUrl);

                                        projetoItem.ListaAnexosProjeto.Add(anexoProjeto);
                                    }
                                }
                            }
                        }
                        catch
                        {
                            continue;
                        }
                    }
                }
                List <DocumentoSharePoint> lstAnexosClientePotencial = new Servicos.SharePointSiteService(this.Organizacao, this.IsOffline).ListarPorIdRegistro(clientePotencialConsulta.ID.Value);

                foreach (DocumentoSharePoint anexo in lstAnexosClientePotencial)
                {
                    try
                    {
                        string urlSite         = ConfigurationManager.GetSettingValue("UrlSiteSharePoint");
                        string urlFolderDetail = "";
                        if (!string.IsNullOrEmpty(anexo.UrlAbsoluta))
                        {
                            urlFolderDetail = anexo.UrlAbsoluta;
                        }
                        else if (!string.IsNullOrEmpty(anexo.UrlRelativa))
                        {
                            urlFolderDetail = urlSite + "/lead/" + anexo.UrlRelativa;
                        }
                        using (ClientContext spClientContext = new ClientContext(urlSite))
                        {
                            spClientContext.Credentials = new NetworkCredential(usuarioSharePoint, senhaSharePoint, domain);
                            var rootWeb = spClientContext.Web;

                            Folder pastaPrincipal = rootWeb.GetFolderByServerRelativeUrl(urlFolderDetail);

                            spClientContext.Load(pastaPrincipal, fs => fs.Files, p => p.Folders);
                            spClientContext.ExecuteQuery();
                            FolderCollection folderCollection = pastaPrincipal.Folders;
                            FileCollection   fileCollection   = pastaPrincipal.Files;

                            foreach (var arquivo in fileCollection)
                            {
                                Pollux.Entities.AnexoProjeto anexoProjeto = new Pollux.Entities.AnexoProjeto();

                                anexoProjeto.NomeArquivo    = arquivo.Name;
                                anexoProjeto.DataArquivo    = arquivo.TimeLastModified;
                                anexoProjeto.UsuarioArquivo = anexo.ModificadoPor.Name;
                                anexoProjeto.URL            = ObterUrlArquivo(urlSite, arquivo.ServerRelativeUrl);

                                projetoItem.ListaAnexosProjeto.Add(anexoProjeto);
                            }
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
                #endregion

                #region Produtos Projeto

                projetoItem.ListaProdutosProjeto = new List <Pollux.Entities.ProdutoProjeto>();
                List <ProdutoProjeto> lstProdutosClientePotencial = new Servicos.ProdutoProjetoService(this.Organizacao, this.IsOffline).ListarPorClientePotencial(clientePotencialConsulta.Id);

                if (lstProdutosClientePotencial.Count > 0)
                {
                    foreach (ProdutoProjeto produtoCliente in lstProdutosClientePotencial)
                    {
                        Pollux.Entities.ProdutoProjeto produtoProjeto = new Pollux.Entities.ProdutoProjeto();
                        var produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(produtoCliente.Produto.Id);

                        produtoProjeto.CodigoProdutoClientePotencial = produtoCliente.Id.ToString();
                        produtoProjeto.CodigoProduto    = produto.Codigo;
                        produtoProjeto.DescricaoProduto = produto.Nome;
                        produtoProjeto.Quantidade       = produtoCliente.Quantidade;
                        produtoProjeto.PrecoUnitario    = produtoCliente.ValorUnitario;
                        produtoProjeto.ValorTotal       = produtoCliente.ValorTotal;

                        projetoItem.ListaProdutosProjeto.Add(produtoProjeto);
                    }
                }

                #endregion

                if (!resultadoPersistencia.Sucesso)
                {
                    retorno.Add("Resultado", resultadoPersistencia);
                    return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno));
                }

                resultadoPersistencia.Sucesso  = true;
                resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!";
                retorno.Add("ProjetoItem", projetoItem);
                retorno.Add("Resultado", resultadoPersistencia);

                return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno));
            }
            catch (Exception e)
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e);
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno));
            }
        }