コード例 #1
0
ファイル: MSG0079.cs プロジェクト: ertprs/crm_fonte
        public Pollux.Entities.LinhaCorteRevenda DefinirPropriedades(LinhaCorteRevenda objCrm)
        {
            Pollux.Entities.LinhaCorteRevenda xmlRetorno = new Pollux.Entities.LinhaCorteRevenda();

            xmlRetorno.CodigoLinhaCorte = objCrm.ID.Value.ToString();

            if (!String.IsNullOrEmpty(objCrm.Nome))
            {
                xmlRetorno.Nome = objCrm.Nome;
            }

            if (objCrm.Categoria != null)
            {
                xmlRetorno.CodigoCategoria = objCrm.Categoria.Id.ToString();
                xmlRetorno.NomeCategoria   = objCrm.Categoria.Name;
            }

            if (objCrm.UnidadeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(objCrm.UnidadeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    xmlRetorno.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                    xmlRetorno.NomeUnidadeNegocio   = unidadeNegocio.Nome;
                }
            }

            xmlRetorno.LinhaCorteSemestral  = (decimal)objCrm.LinhaCorteSemestral;
            xmlRetorno.LinhaCorteTrimestral = (decimal)objCrm.LinhaCorteTrimestral;
            xmlRetorno.Moeda = "Real";

            Usuario proprietario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("itbc_linhadecorterevenda", "itbc_linhadecorterevendaid", objCrm.Id);

            if (proprietario != null)
            {
                xmlRetorno.CodigoProprietario = proprietario.Id.ToString();
                xmlRetorno.NomeProprietario   = proprietario.NomeCompleto;
            }

            return(xmlRetorno);
        }
コード例 #2
0
        private Intelbras.Message.Helper.MSG0155 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm)
        {
            Intelbras.Message.Helper.MSG0155 objPollux = new Pollux.MSG0155(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), crm.Nome.Truncate(40));

            objPollux.CodigoSolicitacaoBeneficio = crm.ID.ToString();
            objPollux.ValorAprovado = crm.ValorAprovado;

            if (!String.IsNullOrEmpty(crm.Nome))
            {
                objPollux.NomeSolicitacaoBeneficio = crm.Nome;
            }
            else
            {
                throw new ArgumentException("(CRM) Nome SolicitacaoBeneficio não preenchido.");
            }

            if (crm.UnidadedeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadedeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) UnidadedeNegocio não preenchida.");
            }

            if (!String.IsNullOrEmpty(crm.Nome))
            {
                objPollux.DescricaoSituacaoIrregular = crm.SituacaoIrregular;
            }


            if (crm.BeneficioCanal != null)
            {
                objPollux.CodigoBeneficioCanal = crm.BeneficioCanal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioCanal não preenchido.");
            }

            if (crm.ValorSolicitado.HasValue)
            {
                objPollux.ValorSolicitado = crm.ValorSolicitado.Value;
            }


            objPollux.DescricaoSolicitacao = crm.Descricao;

            if (crm.StatusSolicitacao.HasValue)
            {
                objPollux.SituacaoSolicitacaoBeneficio = crm.StatusSolicitacao.Value;
            }

            if (crm.State.HasValue)
            {
                objPollux.Situacao = crm.State.Value;
            }

            if (crm.Status.HasValue)
            {
                objPollux.RazaoStatusSolicitacaoBeneficio = crm.Status.Value;
            }

            if (crm.FormaPagamento != null)
            {
                objPollux.CodigoFormaPagamento = crm.FormaPagamento.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) FormaPagamento não preenchida.");
            }

            if (crm.Canal != null)
            {
                objPollux.CodigoConta = crm.Canal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) Canal não preenchido.");
            }

            if (crm.BeneficioPrograma != null)
            {
                objPollux.CodigoBeneficio = crm.BeneficioPrograma.Id.ToString();

                Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(crm.BeneficioPrograma.Id);
                if (benefProg != null && benefProg.Codigo.HasValue)
                {
                    objPollux.BeneficioCodigo = benefProg.Codigo.Value;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioPrograma não preenchido.");
            }

            objPollux.Proprietario     = "259A8E4F-15E9-E311-9420-00155D013D39";
            objPollux.TipoProprietario = "systemuser";


            if (crm.TipoSolicitacao != null)
            {
                objPollux.CodigoTipoSolicitacao = crm.TipoSolicitacao.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) CodigoTipoSolicitacao não enviado.");
            }

            if (crm.SituacaoIrregularidades.HasValue)
            {
                objPollux.SolicitacaoIrregular = crm.SituacaoIrregularidades.Value;
            }
            objPollux.ProdutoSolicitacaoItens = this.RetornaListaItens(crm.ID.Value);
            if (crm.AlteradaParaStockRotation.HasValue)
            {
                objPollux.AlteradaStockRotation = crm.AlteradaParaStockRotation.Value;
            }
            else
            {
                objPollux.AlteradaStockRotation = false;
            }

            if (crm.TipoPriceProtection.HasValue)
            {
                objPollux.TipoPriceProtection = crm.TipoPriceProtection.Value;
            }
            else
            {
                objPollux.TipoPriceProtection = (int)Enum.SolicitacaoBeneficio.TipoPriceProtection.Consumo;
            }
            //Novos Campos

            if (crm.AjusteSaldo.HasValue)
            {
                objPollux.SolicitacaoAjuste = crm.AjusteSaldo.Value;
            }

            if (crm.StatusCalculoPriceProtection.HasValue)
            {
                objPollux.StatusCalculoPriceProtection = crm.StatusCalculoPriceProtection.Value;
            }

            if (crm.ValorAbater.HasValue)
            {
                objPollux.ValorAbater = crm.ValorAbater.Value;
            }
            else
            {
                objPollux.ValorAbater = new decimal(0);
            }

            Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Assistente.Id);

            if (assistente != null)
            {
                objPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value;
            }
            else
            {
                throw new ApplicationException("(CRM) Assistente não cadastrado / Obrigatório.");
            }

            Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Supervisor.Id);

            if (supervisor != null)
            {
                objPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS;
            }
            else
            {
                throw new ApplicationException("(CRM) Supervisor não cadastrado / Obrigatório.");
            }

            if (crm.Filial != null)
            {
                objPollux.CodigoFilial = crm.Filial.Id.ToString();
            }
            if (crm.StatusPagamento.HasValue)
            {
                objPollux.StatusPagamento = crm.StatusPagamento;
            }

            if (crm.ValorPago.HasValue)
            {
                objPollux.ValorPago = crm.ValorPago.Value;
            }

            if (crm.ValorCancelado.HasValue)
            {
                objPollux.ValorCancelado = crm.ValorCancelado.Value;
            }

            if (crm.DataCriacao.HasValue)
            {
                objPollux.DataCriacao = crm.DataCriacao.Value.ToLocalTime();
            }
            else
            {
                throw new ArgumentException("(CRM) DataCriacao não cadastrada / Obrigatório.");
            }

            if (crm.DataValidade.HasValue)
            {
                objPollux.DataValidade = crm.DataValidade;
            }
            else
            {
                throw new ArgumentException("(CRM) DataValidade não cadastrada / Obrigatório.");
            }

            if (crm.CondicaoPagamento != null)
            {
                CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id);
                if (condicaoPagamento != null)
                {
                    if (condicaoPagamento.Codigo.HasValue)
                    {
                        objPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value;
                    }
                }
            }

            if (crm.DescartarVerba.HasValue)
            {
                objPollux.DescartarVerba = crm.DescartarVerba.Value;
            }

            if (!string.IsNullOrEmpty(crm.TrimestreCompetencia))
            {
                objPollux.TrimestreCompetencia = crm.TrimestreCompetencia;
            }
            else
            {
                throw new ArgumentException("(CRM) TrimestreCompetencia não cadastrada / Obrigatório.");
            }

            objPollux.FormaCancelamento = crm.FormaCancelamento;

            return(objPollux);
        }
コード例 #3
0
        public SolicitacaoBeneficio DefinirPropriedades(Pollux.MSG0155 xml)
        {
            var crm = new SolicitacaoBeneficio(this.Organizacao, this.IsOffline);

            #region Propriedades Crm->Xml

            crm.IntegrarNoPlugin = true;
            crm.ValorAprovado    = xml.ValorAprovado;


            if (!string.IsNullOrEmpty(xml.CodigoSolicitacaoBeneficio))
            {
                if (xml.CodigoSolicitacaoBeneficio.Length == 36)
                {
                    crm.ID = new Guid(xml.CodigoSolicitacaoBeneficio);
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoSolicitacaoBeneficio fora do padrão (Guid)!";
                    return(crm);
                }
            }

            string NomeUnidadeNegocio = String.Empty;

            if (!string.IsNullOrEmpty(xml.CodigoUnidadeNegocio))
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio);
                if (unidadeNegocio == null)
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "UnidadeNegocio: " + xml.CodigoUnidadeNegocio + " não encontrado no Crm.";
                    return(crm);
                }
                else
                {
                    crm.UnidadedeNegocio = new Lookup(unidadeNegocio.ID.Value, "");
                    NomeUnidadeNegocio   = unidadeNegocio.Nome;
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoUnidadeNegocio não enviado!";
                return(crm);
            }


            crm.Nome = xml.NomeSolicitacaoBeneficio;
            crm.TipoPriceProtection = xml.TipoPriceProtection;

            if (!String.IsNullOrEmpty(xml.DescricaoSituacaoIrregular))
            {
                crm.SituacaoIrregular = xml.DescricaoSituacaoIrregular;
            }
            else
            {
                crm.AddNullProperty("SituacaoIrregular");
            }

            if (!String.IsNullOrEmpty(xml.CodigoBeneficioCanal) && xml.CodigoBeneficioCanal.Length == 36)
            {
                BeneficioDoCanal beneficioCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoBeneficioCanal));
                if (beneficioCanal != null)
                {
                    crm.BeneficioCanal = new Lookup(beneficioCanal.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoBeneficioCanal : " + xml.CodigoBeneficioCanal + " - não cadastrado no Crm.";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoBeneficioCanal não Enviado ou fora do padrão(Guid).";
                return(crm);
            }

            crm.ValorSolicitado = xml.ValorSolicitado;

            if (!string.IsNullOrEmpty(xml.DescricaoSolicitacao))
            {
                crm.Descricao = xml.DescricaoSolicitacao;
            }
            else
            {
                crm.AddNullProperty("Descricao");
            }

            if (System.Enum.IsDefined(typeof(Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio), xml.SituacaoSolicitacaoBeneficio))
            {
                crm.StatusSolicitacao = xml.SituacaoSolicitacaoBeneficio;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "SituacaoSolicitacaoBeneficio não cadastrado no Crm(PickList).";
                return(crm);
            }
            if (xml.Situacao == 0 || xml.Situacao == 1)
            {
                crm.State = xml.Situacao;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Situacao fora do padrão(0 ou 1).";
                return(crm);
            }


            if (crm.State.Value.Equals((int)Enum.SolicitacaoBeneficio.State.Ativo))
            {
                if (System.Enum.IsDefined(typeof(Enum.SolicitacaoBeneficio.RazaoStatusAtivo), xml.RazaoStatusSolicitacaoBeneficio))
                {
                    crm.Status = xml.RazaoStatusSolicitacaoBeneficio;
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "RazaoStatusSolicitacaoBeneficio não cadastrado para Situação Ativo.";
                    return(crm);
                }
            }
            else if (crm.State.Value.Equals((int)Enum.SolicitacaoBeneficio.State.Inativo))
            {
                if (System.Enum.IsDefined(typeof(Enum.SolicitacaoBeneficio.RazaoStatusInativo), xml.RazaoStatusSolicitacaoBeneficio))
                {
                    crm.Status = xml.RazaoStatusSolicitacaoBeneficio;
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "RazaoStatusSolicitacaoBeneficio não cadastrado para Situação Inativo.";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Situacao fora do padrão.";
                return(crm);
            }



            if (!String.IsNullOrEmpty(xml.CodigoFormaPagamento) && xml.CodigoFormaPagamento.Length == 36)
            {
                FormaPagamento formaPagamento = new Servicos.FormaPagamentoService(this.Organizacao, this.IsOffline).ObterPorGuid(new Guid(xml.CodigoFormaPagamento));
                if (formaPagamento != null)
                {
                    crm.FormaPagamento = new Lookup(formaPagamento.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoFormaPagamento : " + xml.CodigoFormaPagamento + " - não cadastrado no Crm.";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoFormaPagamento não Enviado ou fora do padrão(Guid).";
                return(crm);
            }

            if (!String.IsNullOrEmpty(xml.CodigoConta) && xml.CodigoConta.Length == 36)
            {
                Conta conta = new Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(new Guid(xml.CodigoConta));
                if (conta != null)
                {
                    crm.Canal = new Lookup(conta.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoConta : " + xml.CodigoConta + " - não cadastrado no Crm.";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoConta não Enviado ou fora do padrão(Guid).";
                return(crm);
            }



            if (!String.IsNullOrEmpty(xml.CodigoBeneficio) && xml.CodigoBeneficio.Length == 36)
            {
                Beneficio beneficio = new Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoBeneficio));
                if (beneficio != null)
                {
                    crm.BeneficioPrograma = new Lookup(beneficio.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoBeneficio : " + xml.CodigoBeneficio + " - não cadastrado no Crm.";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoBeneficio não Enviado ou fora do padrão(Guid).";
                return(crm);
            }

            crm.AlteradaParaStockRotation = xml.AlteradaStockRotation;

            crm.SituacaoIrregularidades = xml.SolicitacaoIrregular;

            if (!String.IsNullOrEmpty(xml.CodigoTipoSolicitacao) && xml.CodigoTipoSolicitacao.Length == 36)
            {
                crm.TipoSolicitacao = new Lookup(new Guid(xml.CodigoTipoSolicitacao), "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoTipoSolicitacao não Enviado ou fora do padrão(Guid).";
                return(crm);
            }
            //Novos campos - 1409

            crm.AjusteSaldo = xml.SolicitacaoAjuste;

            crm.ValorAbater = xml.ValorAbater;

            Usuario objAssitente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscaPorCodigoAssistente(xml.CodigoAssistente.Value);
            if (objAssitente != null)
            {
                crm.Assistente = new Lookup(objAssitente.ID.Value, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Assistente não cadastrado no Crm.";
                return(crm);
            }

            Usuario supervisorEms = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscaPorCodigoSupervisorEMS(xml.CodigoSupervisorEMS);
            if (supervisorEms != null)
            {
                crm.Supervisor = new Lookup(supervisorEms.ID.Value, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Supervisor não cadastrado no Crm.";
                return(crm);
            }

            if (!String.IsNullOrEmpty(xml.CodigoFilial))
            {
                crm.Filial = new Lookup(new Guid(xml.CodigoFilial), "");
            }
            else
            {
                crm.AddNullProperty("Filial");
            }

            if (xml.StatusPagamento.HasValue)
            {
                crm.StatusPagamento = xml.StatusPagamento;
            }
            else
            {
                crm.AddNullProperty("StatusPagamento");
            }

            if (xml.ValorPago.HasValue)
            {
                crm.ValorPago = xml.ValorPago.Value;
            }

            if (xml.ValorCancelado.HasValue)
            {
                crm.ValorCancelado = xml.ValorCancelado.Value;
            }

            if (xml.StatusCalculoPriceProtection.HasValue)
            {
                crm.StatusCalculoPriceProtection = xml.StatusCalculoPriceProtection.Value;
            }

            if (xml.DataValidade.HasValue)
            {
                crm.DataValidade = xml.DataValidade.Value;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "DataValidade não informado favor verificar integração.";
                return(crm);
            }

            if (xml.CodigoCondicaoPagamento.HasValue)
            {
                CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamentoPorCodigo(xml.CodigoCondicaoPagamento.Value);
                if (condicaoPagamento != null)
                {
                    crm.CondicaoPagamento = new Lookup(condicaoPagamento.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoCondicaoPagamento informado não registrado no CRM, favor verificar.";
                    return(crm);
                }
            }

            crm.DescartarVerba = xml.DescartarVerba;

            if (!string.IsNullOrEmpty(xml.TrimestreCompetencia))
            {
                crm.TrimestreCompetencia = xml.TrimestreCompetencia;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "TrimestreCompetencia não informado favor verificar integração.";
                return(crm);
            }

            crm.FormaCancelamento = xml.FormaCancelamento;

            if (xml.CodigoSolicitacaoPrincipal != null)
            {
                crm.SolicitacaoBeneficioPrincipal = new Lookup(new Guid(xml.CodigoSolicitacaoPrincipal), "");
            }

            #endregion

            crm.IntegradoEm       = DateTime.Now;
            crm.IntegradoPor      = usuarioIntegracao.NomeCompleto;
            crm.UsuarioIntegracao = xml.LoginUsuario;

            return(crm);
        }
コード例 #4
0
ファイル: MSG0152.cs プロジェクト: ertprs/crm_fonte
        private Intelbras.Message.Helper.MSG0152 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm)
        {
            Intelbras.Message.Helper.MSG0152 objPollux = new Pollux.MSG0152(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40));

            objPollux.CodigoSolicitacaoBeneficio = crm.ID.ToString();
            objPollux.ValorAprovado = crm.ValorAprovado;

            if (!String.IsNullOrEmpty(crm.Nome))
            {
                objPollux.NomeSolicitacaoBeneficio = crm.Nome;
            }
            else
            {
                throw new ArgumentException("(CRM) Nome SolicitacaoBeneficio não preenchido.");
            }

            if (crm.UnidadedeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadedeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) UnidadedeNegocio não preenchida.");
            }

            if (crm.ValorAcao.HasValue)
            {
                objPollux.ValorAcao = crm.ValorAcao.Value;
            }

            if (crm.ValorAcao.HasValue == false && crm.AjusteSaldo == false)
            {
                throw new ArgumentException("(CRM) Valor ação é obrigatório!");
            }

            if (!String.IsNullOrEmpty(crm.SituacaoIrregular))
            {
                objPollux.DescricaoSituacaoIrregular = crm.SituacaoIrregular;
            }

            if (crm.AcaoSubsidiadaVmc != null)
            {
                objPollux.CodigoAcaoSubsidiadaVMC = crm.AcaoSubsidiadaVmc.Id.ToString();
            }

            if (crm.AcaoSubsidiadaVmc == null && crm.AjusteSaldo == false)
            {
                throw new ArgumentException("(CRM) AcaoSubsidiadaVmc não preenchida.");
            }

            if (crm.BeneficioCanal != null)
            {
                objPollux.CodigoBeneficioCanal = crm.BeneficioCanal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioCanal não preenchido.");
            }

            if (crm.ValorSolicitado.HasValue)
            {
                objPollux.ValorSolicitado = crm.ValorSolicitado.Value;
            }

            if (!String.IsNullOrEmpty(crm.Descricao))
            {
                objPollux.DescricaoSolicitacao = crm.Descricao;
            }

            if (crm.StatusSolicitacao.HasValue)
            {
                objPollux.SituacaoSolicitacaoBeneficio = crm.StatusSolicitacao.Value;
            }

            if (crm.State.HasValue)
            {
                objPollux.Situacao = crm.State.Value;
            }
            else
            {
                objPollux.Situacao = 0; //ativo
            }
            if (crm.Status.HasValue)
            {
                objPollux.RazaoStatusSolicitacaoBeneficio = crm.Status.Value;
            }

            if (crm.FormaPagamento != null)
            {
                objPollux.CodigoFormaPagamento = crm.FormaPagamento.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) FormaPagamento não preenchida.");
            }


            if (crm.DataIniAcao.HasValue)
            {
                objPollux.DataInicioAcao = crm.DataIniAcao.Value;
            }

            if (crm.DataFimAcao.HasValue)
            {
                objPollux.DataPrevistaRetornoAcao = crm.DataFimAcao.Value.ToLocalTime();
            }

            if (crm.DataFimAcao.HasValue == false && crm.AjusteSaldo == false)
            {
                throw new ArgumentException("(CRM) Data Prevista retorno ação é obrigatório!");
            }

            if (crm.Canal != null)
            {
                objPollux.CodigoConta = crm.Canal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) Canal não preenchido.");
            }

            if (crm.BeneficioPrograma != null)
            {
                objPollux.CodigoBeneficio = crm.BeneficioPrograma.Id.ToString();

                Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(crm.BeneficioPrograma.Id);
                if (benefProg != null && benefProg.Codigo.HasValue)
                {
                    objPollux.BeneficioCodigo = benefProg.Codigo.Value;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioPrograma não preenchido.");
            }

            if (crm.AjusteSaldo.HasValue)
            {
                objPollux.SolicitacaoAjuste = crm.AjusteSaldo.Value;
            }

            if (crm.ValorAbater.HasValue)
            {
                objPollux.ValorAbater = (decimal)crm.ValorAbater.Value;
            }
            else
            {
                objPollux.ValorAbater = new decimal(0);
            }

            objPollux.Proprietario     = "259A8E4F-15E9-E311-9420-00155D013D39";
            objPollux.TipoProprietario = "systemuser";


            if (crm.TipoSolicitacao != null)
            {
                objPollux.CodigoTipoSolicitacao = crm.TipoSolicitacao.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) CodigoTipoSolicitacao não enviado.");
            }

            if (crm.SituacaoIrregularidades.HasValue)
            {
                objPollux.SolicitacaoIrregular = crm.SituacaoIrregularidades.Value;
            }
            objPollux.ProdutoSolicitacaoItens = this.RetornaListaItens(crm.ID.Value);

            //Novos Campos

            if (crm.Assistente == null)
            {
                throw new ArgumentException("(CRM) Assistente Na Solicitação não cadastrado / Campo Obrigatório.");
            }

            Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Assistente.Id);

            if (assistente != null)
            {
                objPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value;
            }
            else
            {
                throw new ArgumentException("(CRM) Assistente não cadastrado / Obrigatório.");
            }
            Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Supervisor.Id);

            if (supervisor != null)
            {
                objPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS;
            }
            else
            {
                throw new ArgumentException("(CRM) Supervisor não cadastrado / Obrigatório.");
            }
            if (crm.Filial != null)
            {
                objPollux.CodigoFilial = crm.Filial.Id.ToString();
            }
            if (crm.StatusPagamento.HasValue)
            {
                objPollux.StatusPagamento = crm.StatusPagamento;
            }

            if (crm.ValorPago.HasValue)
            {
                objPollux.ValorPago = crm.ValorPago.Value;
            }

            if (crm.ValorCancelado.HasValue)
            {
                objPollux.ValorCancelado = crm.ValorCancelado.Value;
            }

            if (crm.DataCriacao.HasValue)
            {
                objPollux.DataCriacao = crm.DataCriacao.Value.ToLocalTime();
            }
            else
            {
                objPollux.DataCriacao = DateTime.MinValue;
                //throw new ArgumentException("(CRM) DataCriacao não cadastrada / Obrigatório.");
            }

            if (crm.DataValidade.HasValue)
            {
                objPollux.DataValidade = crm.DataValidade;
            }
            else
            {
                throw new ArgumentException("(CRM) DataValidade não cadastrada / Obrigatório.");
            }

            if (crm.CondicaoPagamento != null)
            {
                CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id);
                if (condicaoPagamento != null)
                {
                    if (condicaoPagamento.Codigo.HasValue)
                    {
                        objPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value;
                    }
                }
            }

            if (crm.DescartarVerba.HasValue)
            {
                objPollux.DescartarVerba = crm.DescartarVerba.Value;
            }

            if (!string.IsNullOrEmpty(crm.TrimestreCompetencia))
            {
                objPollux.TrimestreCompetencia = crm.TrimestreCompetencia;
            }
            else
            {
                throw new ArgumentException("(CRM) TrimestreCompetencia não cadastrada / Obrigatório.");
            }

            if (crm.FormaCancelamento.HasValue)
            {
                objPollux.FormaCancelamento = crm.FormaCancelamento.Value;
            }

            if (crm.ResultadoPrevisto.HasValue)
            {
                objPollux.ResultadoPrevisto = crm.ResultadoPrevisto.Value;
            }

            if (crm.ResultadoAlcancado.HasValue)
            {
                objPollux.ResultadoAlcancado = crm.ResultadoAlcancado.Value;
            }

            //Busca as unidades de negócio relacionadas ao Benefício do canal
            List <SolicitacaoXUnidades> lstUnidadesBenef = new Servicos.SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).ListarPor(crm.ID.Value);

            objPollux.UnidadesRelacionadas = this.ConverteLista(lstUnidadesBenef);

            #endregion

            return(objPollux);
        }
コード例 #5
0
ファイル: MSG0124.cs プロジェクト: ertprs/crm_fonte
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            usuarioIntegracao = usuario;
            var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0124>(mensagem));
            List <Pollux.Entities.RelacionamentoCanal> lstPolluxRelCanal = new List <Pollux.Entities.RelacionamentoCanal>();

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


            List <RelacionamentoCanal> lstRelacionamentoCanal = new Servicos.RelacionamentoCanalService(this.Organizacao, this.IsOffline).ListarAtivosPorCanal(objeto.Canal.Id);

            if (lstRelacionamentoCanal != null && lstRelacionamentoCanal.Count > 0)
            {
                foreach (RelacionamentoCanal item in lstRelacionamentoCanal)
                {
                    Pollux.Entities.RelacionamentoCanal relCanal = new Pollux.Entities.RelacionamentoCanal();
                    if (item.Assistente != null)
                    {
                        Usuario objUsuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(item.Assistente.Id);
                        if (objUsuario != null)
                        {
                            relCanal.CodigoAssistente    = (int)objUsuario.CodigoAssistenteComercial;
                            relCanal.NomeAssistente      = item.Assistente.Name;
                            relCanal.CodigoAssistenteCRM = objUsuario.ID.Value.ToString();
                        }

                        if (item.KeyAccount != null)
                        {
                            Contato contato = new Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(item.KeyAccount.Id);
                            if (contato != null &&
                                contato.CodigoRepresentante != null &&
                                (!String.IsNullOrEmpty(contato.CodigoRepresentante) &&
                                 (!contato.CodigoRepresentante.Equals("0")) &&
                                 contato.PrimeiroNome != null &&
                                 (!String.IsNullOrEmpty(contato.PrimeiroNome))))
                            {
                                relCanal.CodigoRepresentante = Convert.ToInt32(contato.CodigoRepresentante);
                                relCanal.NomeRepresentante   = contato.PrimeiroNome;
                            }
                            else
                            {
                                resultadoPersistencia.Sucesso  = false;
                                resultadoPersistencia.Mensagem = "Erro de inconsistência de dados no Crm. Elemento 'NomeRepresentante / CodigoRepresentante' não preenchido na base Crm para o RelacionamentoCanal - " + item.ID.Value.ToString();
                                retorno.Add("Resultado", resultadoPersistencia);
                                return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno));
                            }
                        }
                        if (item.Supervisor != null)
                        {
                            Usuario usuarioSuper = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(item.Supervisor.Id);
                            if (usuarioSuper != null)
                            {
                                relCanal.CodigoSupervisor = item.Supervisor.Id.ToString();
                                relCanal.NomeSupervisor   = usuarioSuper.Nome;

                                if (!String.IsNullOrEmpty(usuarioSuper.CodigoSupervisorEMS))
                                {
                                    relCanal.CodigoSupervisorEMS = usuarioSuper.CodigoSupervisorEMS;
                                }
                                else
                                {
                                    throw new Exception("Codigo Supervisor EMS não preenchido.");
                                }
                            }
                        }
                        if (item.DataInicial.HasValue)
                        {
                            relCanal.DataInicial = item.DataInicial.Value;
                        }
                        if (item.DataFinal.HasValue)
                        {
                            relCanal.DataFinal = item.DataFinal.Value;
                        }

                        //Nome Obrigatorio
                        if (!String.IsNullOrEmpty(item.Nome))
                        {
                            relCanal.Nome = item.Nome;
                        }
                        else
                        {
                            resultadoPersistencia.Sucesso  = false;
                            resultadoPersistencia.Mensagem = "Erro de inconsistência de dados no Crm. Elemento 'Nome' não preenchido na base Crm para o RelacionamentoCanal - " + item.ID.Value.ToString();
                            retorno.Add("Resultado", resultadoPersistencia);
                            return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno));
                        }
                    }
                    relCanal.CodigoRelacionamentoCanal = item.ID.ToString();
                    lstPolluxRelCanal.Add(relCanal);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = true;
                resultadoPersistencia.Mensagem = "Não encontrado RelacionamentoCanal para este Canal no CRM.";
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno));
            }

            resultadoPersistencia.Sucesso  = true;
            resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso.";
            retorno.Add("RelacionamentosCanalItens", lstPolluxRelCanal);
            retorno.Add("Resultado", resultadoPersistencia);
            return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno));
        }
コード例 #6
0
ファイル: MSG0269.cs プロジェクト: ertprs/crm_fonte
        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));
            }
        }
コード例 #7
0
ファイル: MSG0127.cs プロジェクト: ertprs/crm_fonte
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            var xml = this.CarregarMensagem <Pollux.MSG0127>(mensagem);

            List <Pollux.Entities.Usuario> lstUserPollux = new List <Pollux.Entities.Usuario>();

            if (!String.IsNullOrEmpty(xml.CodigoUsuario) && xml.CodigoUsuario.Length == 36)
            {
                if (!String.IsNullOrEmpty(xml.TipoObjetoUsuario) && (xml.TipoObjetoUsuario.ToLower().Equals("systemuser") || xml.TipoObjetoUsuario.ToLower().Equals("team")))
                {
                    #region User
                    if (xml.TipoObjetoUsuario.ToLower().Equals("systemuser"))
                    {
                        List <Usuario> lstUsuario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ListarPor(new Guid(xml.CodigoUsuario));

                        if (lstUsuario != null && lstUsuario.Count > 0)
                        {
                            foreach (Usuario item in lstUsuario)
                            {
                                Pollux.Entities.Usuario user = new Pollux.Entities.Usuario();
                                user.CodigoUsuario = item.ID.Value.ToString();
                                if (!String.IsNullOrEmpty(item.NomeCompleto))
                                {
                                    user.Nome = item.NomeCompleto;
                                }
                                else
                                {
                                    resultadoPersistencia.Sucesso  = false;
                                    resultadoPersistencia.Mensagem = "NomeUsuario não preenchido no CRM. User: "******"Resultado", resultadoPersistencia);
                                    return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno));
                                }
                                if (!String.IsNullOrEmpty(item.EmailPrimario))
                                {
                                    user.Email = item.EmailPrimario;
                                }
                                user.TipoObjetoUsuario = "systemuser";
                                user.Situacao          = item.IsDisabled ? 0 : 1;
                                lstUserPollux.Add(user);
                            }
                        }
                        else
                        {
                            resultadoPersistencia.Sucesso  = true;
                            resultadoPersistencia.Mensagem = "LoginUsuario não encontrado no CRM.";
                            retorno.Add("Resultado", resultadoPersistencia);
                            return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno));
                        }
                    }
                    #endregion

                    #region Equipe
                    else if (xml.TipoObjetoUsuario.ToLower().Equals("team"))
                    {
                        List <Equipe> lstEquipe = new Servicos.EquipeService(this.Organizacao, this.IsOffline).ListarEquipe(new Guid(xml.CodigoUsuario));

                        if (lstEquipe != null && lstEquipe.Count > 0)
                        {
                            foreach (var item in lstEquipe)
                            {
                                Pollux.Entities.Usuario user = new Pollux.Entities.Usuario();
                                user.CodigoUsuario = item.ID.Value.ToString();
                                if (!String.IsNullOrEmpty(item.Nome))
                                {
                                    user.Nome = item.Nome;
                                }
                                else
                                {
                                    resultadoPersistencia.Sucesso  = false;
                                    resultadoPersistencia.Mensagem = "NomeEquipe não preenchido no CRM. User: "******"Resultado", resultadoPersistencia);
                                    return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno));
                                }
                                user.TipoObjetoUsuario = "team";
                                user.Situacao          = 1;
                                lstUserPollux.Add(user);
                            }
                        }
                        else
                        {
                            resultadoPersistencia.Sucesso  = false;
                            resultadoPersistencia.Mensagem = "Equipe não encontrado no CRM.";
                            retorno.Add("Resultado", resultadoPersistencia);
                            return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno));
                        }
                    }
                    #endregion
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoUsuario/TipoObjetoUsuario não enviado ou fora do padrão.";
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno));
            }
            retorno.Add("UsuariosItens", lstUserPollux);
            resultadoPersistencia.Sucesso  = true;
            resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso.";
            retorno.Add("Resultado", resultadoPersistencia);
            return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno));
        }
コード例 #8
0
ファイル: MSG0143.cs プロジェクト: ertprs/crm_fonte
        public Pollux.MSG0143 DefinirPropriedades(PortfoliodoKeyAccountRepresentantes objModel)
        {
            #region Propriedades Crm->Xml

            Pollux.MSG0143 msg0143      = new Pollux.MSG0143(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(objModel.Nome, 40));
            string         nomeUnid     = String.Empty;
            string         nomeSegmento = String.Empty;

            msg0143.CodigoPortfolioRepresentante = objModel.ID.Value.ToString();
            if (objModel.KeyAccountRepresentante != null)
            {
                Contato representante = new Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(objModel.KeyAccountRepresentante.Id);
                if (representante != null && representante.CodigoRepresentante.Length > 0)
                {
                    msg0143.CodigoRepresentante = Convert.ToInt32(representante.CodigoRepresentante);
                }
                else
                {
                    throw new Exception("Representante não localizado/sem código representante.");
                }
            }
            if (objModel.UnidadedeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(objModel.UnidadedeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    msg0143.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                    nomeUnid = unidadeNegocio.Nome;
                }
                else
                {
                    throw new Exception("Unidade de negocio não localizada ou sem nome.");
                }
            }
            if (objModel.AssistentedeAdministracaodeVendas != null)
            {
                Usuario usuario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(objModel.AssistentedeAdministracaodeVendas.Id);
                if (usuario != null && usuario.CodigoAssistenteComercial != null)
                {
                    msg0143.CodigoAssistente    = usuario.CodigoAssistenteComercial.Value;
                    msg0143.CodigoAssistenteCRM = usuario.ID.Value.ToString();
                }

                else
                {
                    throw new Exception("Usuario sem código de assistente comercial.");
                }
            }
            if (objModel.Segmento != null)
            {
                Segmento segmento = new Servicos.SegmentoService(this.Organizacao, this.IsOffline).ObterPor(objModel.Segmento.Id);
                if (segmento != null)
                {
                    msg0143.CodigoSegmento = segmento.CodigoSegmento;
                    nomeSegmento           = segmento.Nome;
                }
                else
                {
                    throw new Exception("Segmento não localizado.");
                }
            }
            else
            {
                msg0143.CodigoSegmento = "0000";
                nomeSegmento           = "";
            }

            if (objModel.SupervisordeVendas != null)
            {
                Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(objModel.SupervisordeVendas.Id);
                if (supervisor != null)
                {
                    msg0143.CodigoSupervisor = supervisor.ID.Value.ToString();
                    if (!String.IsNullOrEmpty(supervisor.CodigoSupervisorEMS))
                    {
                        msg0143.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS;
                    }
                    else
                    {
                        throw new Exception("Codigo Supervisor EMS não preenchido.");
                    }
                }
                else
                {
                    throw new Exception("Supervisor não localizado.");
                }
            }

            if (objModel.Status.HasValue)
            {
                if (objModel.Status.Value == 1)
                {
                    msg0143.Situacao = 0;
                }
                else
                {
                    msg0143.Situacao = 1;
                }
            }

            if (!String.IsNullOrEmpty(objModel.Nome))
            {
                string nometmp = objModel.Nome + " - " + nomeUnid + " - " + nomeSegmento;
                if (nometmp.Length > 99)
                {
                    msg0143.Nome = nometmp.Substring(0, 99);
                }
                else
                {
                    msg0143.Nome = nometmp;
                }
            }
            else
            {
                throw new Exception("PortfolioRepresentante sem nome.");
            }

            #endregion

            return(msg0143);
        }
コード例 #9
0
ファイル: MSG0148.cs プロジェクト: ertprs/crm_fonte
        public Pollux.Entities.SolicitacaoBeneficioR1 DefinirRetorno(Model.SolicitacaoBeneficio itemCrm)
        {
            Pollux.Entities.SolicitacaoBeneficioR1 solBeneficioPollux = new Pollux.Entities.SolicitacaoBeneficioR1();

            #region Propriedades Crm->Xml

            if (!string.IsNullOrEmpty(itemCrm.Nome))
            {
                solBeneficioPollux.NomeSolicitacaoBeneficio = itemCrm.Nome;
            }
            else
            {
                solBeneficioPollux.NomeSolicitacaoBeneficio = "N/A";
            }

            if (itemCrm.UnidadedeNegocio != null)
            {
                UnidadeNegocio unidadeNeg = new UnidadeNegocioService(Organizacao, IsOffline).BuscaUnidadeNegocio(itemCrm.UnidadedeNegocio.Id);

                if (unidadeNeg != null)
                {
                    if (!String.IsNullOrEmpty(unidadeNeg.ChaveIntegracao))
                    {
                        solBeneficioPollux.CodigoUnidadeNegocio = unidadeNeg.ChaveIntegracao;
                    }
                    else
                    {
                        solBeneficioPollux.CodigoUnidadeNegocio = "N/A";
                    }
                    if (!String.IsNullOrEmpty(unidadeNeg.Nome))
                    {
                        solBeneficioPollux.NomeUnidadeNegocio = unidadeNeg.Nome;
                    }
                    else
                    {
                        solBeneficioPollux.NomeUnidadeNegocio = "N/A";
                    }
                }
                else
                {
                    solBeneficioPollux.CodigoUnidadeNegocio = "N/A";
                    solBeneficioPollux.NomeUnidadeNegocio   = "N/A";
                }
            }
            else
            {
                solBeneficioPollux.CodigoUnidadeNegocio = "N/A";
                solBeneficioPollux.NomeUnidadeNegocio   = "N/A";
            }
            if (itemCrm.ValorAcao.HasValue)
            {
                solBeneficioPollux.ValorAcao = itemCrm.ValorAcao.Value;
            }
            else
            {
                solBeneficioPollux.ValorAcao = 0;
            }

            if (!string.IsNullOrEmpty(itemCrm.SituacaoIrregular))
            {
                solBeneficioPollux.DescricaoSituacaoIrregular = itemCrm.SituacaoIrregular;
            }
            if (itemCrm.AcaoSubsidiadaVmc != null)
            {
                solBeneficioPollux.CodigoAcaoSubsidiadaVMC = itemCrm.AcaoSubsidiadaVmc.Id.ToString();
                solBeneficioPollux.NomeAcaoSubsidiadaVMC   = itemCrm.AcaoSubsidiadaVmc.Name;
            }

            if (itemCrm.ValorSolicitado.HasValue)
            {
                solBeneficioPollux.ValorSolicitado = itemCrm.ValorSolicitado.Value;
            }
            else
            {
                solBeneficioPollux.ValorSolicitado = 0;
            }

            if (itemCrm.StatusSolicitacao.HasValue)
            {
                solBeneficioPollux.SituacaoSolicitacaoBeneficio = itemCrm.StatusSolicitacao.Value;
                solBeneficioPollux.NomeSituacaoSolicitacao      = Helper.GetDescription(((Domain.Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio)itemCrm.StatusSolicitacao));
            }
            else
            {
                solBeneficioPollux.SituacaoSolicitacaoBeneficio = 0;
                solBeneficioPollux.NomeSituacaoSolicitacao      = "N/A";
            }
            if (itemCrm.FormaPagamento != null)
            {
                solBeneficioPollux.CodigoFormaPagamento = itemCrm.FormaPagamento.Id.ToString();
                solBeneficioPollux.NomeFormaPagamento   = itemCrm.FormaPagamento.Name;
            }
            else
            {
                solBeneficioPollux.CodigoFormaPagamento = Guid.Empty.ToString();
                solBeneficioPollux.NomeFormaPagamento   = "N/A";
            }

            if (itemCrm.ValorAprovado.HasValue)
            {
                solBeneficioPollux.ValorAprovado = itemCrm.ValorAprovado.Value;
            }

            if (itemCrm.DataIniAcao.HasValue)
            {
                solBeneficioPollux.DataInicioAcao = itemCrm.DataIniAcao.Value;
            }

            if (itemCrm.DataFimAcao.HasValue)
            {
                solBeneficioPollux.DataPrevistaRetornoAcao = itemCrm.DataFimAcao.Value;
            }

            if (itemCrm.ValorPago.HasValue)
            {
                solBeneficioPollux.ValorPago = itemCrm.ValorPago.Value;
            }

            if (itemCrm.BeneficioCanal != null)
            {
                BeneficioDoCanal benefCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.BeneficioCanal.Id);
                if (benefCanal != null)
                {
                    solBeneficioPollux.CodigoBeneficioCanal = benefCanal.ID.Value.ToString();
                    solBeneficioPollux.NomeBeneficioCanal   = benefCanal.Nome;

                    if (benefCanal.StatusBeneficio != null)
                    {
                        solBeneficioPollux.CodigoStatusBeneficio = benefCanal.StatusBeneficio.Id.ToString();
                        solBeneficioPollux.NomeStatusBeneficio   = benefCanal.StatusBeneficio.Name;
                    }
                    else
                    {
                        solBeneficioPollux.CodigoStatusBeneficio = Guid.Empty.ToString();
                        solBeneficioPollux.NomeStatusBeneficio   = "N/A";
                    }
                }
                else
                {
                    solBeneficioPollux.CodigoBeneficioCanal  = Guid.Empty.ToString();
                    solBeneficioPollux.NomeBeneficioCanal    = "N/A";
                    solBeneficioPollux.CodigoStatusBeneficio = Guid.Empty.ToString();
                    solBeneficioPollux.NomeStatusBeneficio   = "N/A";
                }
            }
            else
            {
                solBeneficioPollux.CodigoBeneficioCanal  = Guid.Empty.ToString();
                solBeneficioPollux.NomeBeneficioCanal    = "N/A";
                solBeneficioPollux.CodigoStatusBeneficio = Guid.Empty.ToString();
                solBeneficioPollux.NomeStatusBeneficio   = "N/A";
            }


            if (itemCrm.BeneficioPrograma != null)
            {
                Beneficio beneficio = new Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.BeneficioPrograma.Id);
                if (beneficio != null)
                {
                    solBeneficioPollux.CodigoBeneficio = beneficio.ID.Value.ToString();
                    solBeneficioPollux.NomeBeneficio   = beneficio.Nome;

                    if (beneficio.Codigo.HasValue)
                    {
                        solBeneficioPollux.BeneficioCodigo = beneficio.Codigo.Value;
                    }
                    else
                    {
                        solBeneficioPollux.BeneficioCodigo = (int)this.PreencherAtributoVazio("int");
                    }
                }
                else
                {
                    solBeneficioPollux.CodigoBeneficio = Guid.Empty.ToString();
                    solBeneficioPollux.NomeBeneficio   = "N/A";
                    solBeneficioPollux.BeneficioCodigo = (int)this.PreencherAtributoVazio("int");
                }
            }
            else
            {
                solBeneficioPollux.CodigoBeneficioCanal = Guid.Empty.ToString();
                solBeneficioPollux.NomeBeneficioCanal   = "N/A";
            }
            if (itemCrm.AlteradaParaStockRotation.HasValue)
            {
                solBeneficioPollux.AlteradaStockRotation = itemCrm.AlteradaParaStockRotation.Value;
            }
            else
            {
                solBeneficioPollux.AlteradaStockRotation = false;
            }
            if (itemCrm.SituacaoIrregularidades.HasValue)
            {
                solBeneficioPollux.SolicitacaoIrregular = itemCrm.SituacaoIrregularidades.Value;
            }
            else
            {
                solBeneficioPollux.SolicitacaoIrregular = false;
            }
            if (itemCrm.Canal != null)
            {
                solBeneficioPollux.CodigoConta = itemCrm.Canal.Id.ToString();
                solBeneficioPollux.NomeConta   = itemCrm.Canal.Name;
            }
            else
            {
                solBeneficioPollux.CodigoConta = Guid.Empty.ToString();
                solBeneficioPollux.NomeConta   = "N/A";
            }

            if (itemCrm.AjusteSaldo.HasValue)
            {
                solBeneficioPollux.SolicitacaoAjuste = itemCrm.AjusteSaldo.Value;
            }

            if (itemCrm.StatusCalculoPriceProtection.HasValue)
            {
                solBeneficioPollux.StatusCalculoPriceProtection = itemCrm.StatusCalculoPriceProtection.Value;
            }

            if (itemCrm.ResultadoPrevisto.HasValue)
            {
                solBeneficioPollux.ResultadoPrevisto = itemCrm.ResultadoPrevisto.Value;
            }

            if (itemCrm.ResultadoAlcancado.HasValue)
            {
                solBeneficioPollux.ResultadoAlcancado = itemCrm.ResultadoAlcancado.Value;
            }

            if (itemCrm.ValorAbater.HasValue)
            {
                solBeneficioPollux.ValorAbater = itemCrm.ValorAbater.Value;
            }
            else
            {
                solBeneficioPollux.ValorAbater = 0;
            }

            solBeneficioPollux.CodigoSolicitacaoBeneficio = itemCrm.ID.ToString();

            if (itemCrm.TipoSolicitacao != null)
            {
                solBeneficioPollux.CodigoTipoSolicitacao = itemCrm.TipoSolicitacao.Id.ToString();
                solBeneficioPollux.NomeTipoSolicitacao   = itemCrm.TipoSolicitacao.Name;
            }
            else
            {
                solBeneficioPollux.CodigoTipoSolicitacao = Guid.Empty.ToString();
                solBeneficioPollux.NomeTipoSolicitacao   = "N/A";
            }

            if (itemCrm.TipoPriceProtection.HasValue)
            {
                solBeneficioPollux.TipoPriceProtection = itemCrm.TipoPriceProtection;
                if (itemCrm.TipoSolicitacao != null)
                {
                    solBeneficioPollux.NomeTipoPriceProtection = itemCrm.TipoSolicitacao.Name;
                }
            }


            if (!String.IsNullOrEmpty(itemCrm.Descricao))
            {
                solBeneficioPollux.DescricaoSolicitacao = itemCrm.Descricao;
            }

            solBeneficioPollux.Situacao     = itemCrm.State.Value;
            solBeneficioPollux.NomeSituacao = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.State)(itemCrm.State.Value));
            solBeneficioPollux.RazaoStatusSolicitacaoBeneficio = itemCrm.Status.Value;
            if (itemCrm.State.Value == (int)(Domain.Enum.SolicitacaoBeneficio.State.Ativo))
            {
                solBeneficioPollux.NomeRazaoStatusSolicitacao = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.RazaoStatusAtivo)(itemCrm.Status.Value));
            }
            else
            {
                solBeneficioPollux.NomeRazaoStatusSolicitacao = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.RazaoStatusInativo)(itemCrm.Status.Value));
            }

            solBeneficioPollux.DataCriacaoSolicitacao = itemCrm.DataCriacao.Value;
            solBeneficioPollux.Proprietario           = usuarioIntegracao.ID.Value.ToString();
            solBeneficioPollux.NomeProprietario       = usuarioIntegracao.Nome;
            solBeneficioPollux.TipoProprietario       = "systemuser";


            if (itemCrm.Assistente != null)
            {
                Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.Assistente.Id);
                if (assistente != null && assistente.CodigoAssistenteComercial.HasValue)
                {
                    solBeneficioPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value;
                    solBeneficioPollux.NomeAssistente   = assistente.Nome;
                }
                else
                {
                    solBeneficioPollux.CodigoAssistente = 0;
                    solBeneficioPollux.NomeAssistente   = "N/A";
                }
            }
            else
            {
                solBeneficioPollux.CodigoAssistente = 0;
                solBeneficioPollux.NomeAssistente   = "N/A";
            }


            if (itemCrm.Supervisor != null)
            {
                Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.Supervisor.Id);
                if (supervisor != null && !String.IsNullOrEmpty(supervisor.CodigoSupervisorEMS))
                {
                    solBeneficioPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS;
                    solBeneficioPollux.NomeSupervisor      = supervisor.Nome;
                }
                else
                {
                    solBeneficioPollux.CodigoSupervisorEMS = "N/A";
                    solBeneficioPollux.NomeSupervisor      = "N/A";
                }
            }
            else
            {
                solBeneficioPollux.CodigoSupervisorEMS = "N/A";;
                solBeneficioPollux.NomeSupervisor      = "N/A";
            }

            if (itemCrm.Filial != null)
            {
                solBeneficioPollux.CodigoFilial = itemCrm.Filial.Id.ToString();
                solBeneficioPollux.NomeFilial   = itemCrm.Filial.Name;
            }

            if (itemCrm.StatusPagamento.HasValue)
            {
                solBeneficioPollux.StatusPagamento     = itemCrm.StatusPagamento;
                solBeneficioPollux.NomeStatusPagamento = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.StatusPagamento)(itemCrm.StatusPagamento.Value));
            }

            if (itemCrm.SolicitacaoBeneficioPrincipal != null)
            {
                solBeneficioPollux.CodigoSolicitacaoPrincipal = itemCrm.SolicitacaoBeneficioPrincipal.Id.ToString();
                solBeneficioPollux.NomeSolicitacaoPrincipal   = itemCrm.SolicitacaoBeneficioPrincipal.Name;
            }

            if (itemCrm.ValorCancelado.HasValue)
            {
                solBeneficioPollux.ValorCancelado = itemCrm.ValorCancelado.Value;
            }

            if (itemCrm.DataValidade.HasValue)
            {
                solBeneficioPollux.DataValidade = itemCrm.DataValidade.Value;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "DataValidade obrigatória, favor verificar registro no CRM.";
                return(solBeneficioPollux);
            }

            if (itemCrm.CondicaoPagamento != null)
            {
                CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(itemCrm.CondicaoPagamento.Id);

                if (condicaoPagamento.Codigo.HasValue)
                {
                    solBeneficioPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value;
                }

                if (!string.IsNullOrEmpty(condicaoPagamento.Nome))
                {
                    solBeneficioPollux.NomeCondicaoPagamento = condicaoPagamento.Nome;
                }
            }

            if (itemCrm.DescartarVerba.HasValue)
            {
                solBeneficioPollux.DescartarVerba = itemCrm.DescartarVerba.Value;
            }

            if (!string.IsNullOrEmpty(itemCrm.TrimestreCompetencia))
            {
                solBeneficioPollux.TrimestreCompetencia = itemCrm.TrimestreCompetencia;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "TrimestreCompetencia obrigatório, favor verificar registro no CRM.";
                return(solBeneficioPollux);
            }

            if (itemCrm.FormaCancelamento.HasValue)
            {
                solBeneficioPollux.FormaCancelamento = itemCrm.FormaCancelamento.Value;
            }

            solBeneficioPollux.ObterSolicitacaoItens = this.RetornaSolicitacaoItens(itemCrm);


            //Busca as unidades de negócio relacionadas ao Benefício do canal
            List <SolicitacaoXUnidades> lstUnidadesBenef = new Servicos.SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).ListarPor(itemCrm.ID.Value);
            solBeneficioPollux.UnidadesRelacionadas = this.ConverteLista(lstUnidadesBenef);


            #endregion

            return(solBeneficioPollux);
        }