private Conta SelloutParseConta(Revenda revenda) { Conta conta = new Conta(this.Organizacao, this.IsOffline); conta.RazaoSocial = revenda.RazaoSocial; conta.NomeFantasia = revenda.RazaoSocial.Truncate(60); conta.CpfCnpj = revenda.CpfCnpj; conta.Telefone = revenda.TelefoneCliente; conta.IntegrarNoPlugin = true; conta.QuantasFiliais = 0; conta.PossuiFiliais = (int)Enum.Conta.PossuiFiliais.Nao; conta.RecebeNFE = false; conta.StatusIntegracaoSefaz = (int)Enum.Conta.StatusIntegracaoSefaz.NaoValidado; conta.ParticipantePrograma = (int)Enum.Conta.ParticipaDoPrograma.Nao; conta.AssistenciaTecnica = false; conta.Status = (int)Enum.Conta.StateCode.Ativo; conta.RazaoStatus = (int)Enum.Conta.StatusCode.Ativo; conta.TipoConta = (int)Enum.Conta.MatrizOuFilial.Matriz; conta.TipoRelacao = (int)Enum.Conta.TipoRelacao.Canal; conta.OrigemConta = (int)Enum.Conta.OrigemConta.SellOut; if (revenda.TipoPessoaCliente == "FISICA") { conta.Natureza = 993520003; conta.TipoConstituicao = (int)Enum.Conta.TipoConstituicao.Cpf; conta.InscricaoEstadual = "ISENTO"; conta.ContribuinteICMS = false; } else { conta.Natureza = 993520000; conta.TipoConstituicao = (int)Enum.Conta.TipoConstituicao.Cnpj; conta.InscricaoEstadual = revenda.InscricaoEstadual; } //Controle Interno conta.Endereco1Rua1 = revenda.EnderecoCliente; conta.Endereco2Rua2 = revenda.EnderecoCliente; //Endereço Principal conta.TipoEndereco = (int)Enum.Conta.Tipoendereco.Primario; conta.Endereco1Rua = revenda.EnderecoCliente; conta.Endereco1Numero = revenda.NumeroEnderecoCliente; conta.Endereco1CEP = revenda.CepCliente; conta.Endereco1Bairro = revenda.BairroCliente; //Endereço de Cobrança conta.Endereco2TipoEndereco = (int)Enum.Conta.Tipoendereco2.Cobranca; conta.Endereco2Rua = revenda.EnderecoCliente; conta.Endereco2Numero = revenda.NumeroEnderecoCliente; conta.Endereco2Bairro = revenda.BairroCliente; conta.Endereco2CEP = revenda.CepCliente; //Estado if (!string.IsNullOrEmpty(revenda.EstadoCliente)) { Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorSigla(revenda.EstadoCliente); if (estado != null) { conta.Endereco1Estadoid = new Lookup(estado.ID.Value, ""); conta.Endereco2Estadoid = new Lookup(estado.ID.Value, ""); if (estado.Pais != null) { conta.Endereco2Pais = new Lookup(estado.Pais.Id, ""); conta.Endereco1Pais = new Lookup(estado.Pais.Id, ""); conta.Endereco1Pais1 = estado.Pais.Name; conta.Endereco2Pais2 = estado.Pais.Name; } //Controle interno conta.Endereco2Estado = estado.Nome; conta.Endereco1Estado = estado.Nome; //Cidade Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterCidadePorEstadoIdNomeCidade(conta.Endereco1Estadoid.Id, revenda.CidadeCliente); if (municipio != null) { //Principal conta.Endereco1Municipioid = new Lookup(municipio.ID.Value, ""); //Cobrança conta.Endereco2Municipioid = new Lookup(municipio.ID.Value, ""); //Controle Interno //conta.Endereco2Cidade = municipio.Nome; conta.Endereco1Cidade = municipio.Nome; } } } Guid classificacaoId = new Guid(SDKore.Configuration.ConfigurationManager.GetSettingValue("Intelbras.Sellout.Classificacao")); conta.Classificacao = new Lookup(classificacaoId, SDKore.Crm.Util.Utility.GetEntityName <Classificacao>()); Guid subClassificacaoId = new Guid(SDKore.Configuration.ConfigurationManager.GetSettingValue("Intelbras.Sellout.SubClassificacao")); conta.Subclassificacao = new Lookup(subClassificacaoId, SDKore.Crm.Util.Utility.GetEntityName <Subclassificacoes>()); Guid nivelPosVendaId = SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Sellout.NivelPosVenda"); conta.NivelPosVendas = new Lookup(nivelPosVendaId, SDKore.Crm.Util.Utility.GetEntityName <NivelPosVenda>()); return(conta); }
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 }
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); }
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); }
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)); } }