//persiste o relacionamento com UnidadesRelacionadas private bool RelacionaUnidadesNegocio(Intelbras.Message.Helper.MSG0152 xml, SolicitacaoBeneficio solicitacaoBeneficio) { if (xml.CodigoSolicitacaoBeneficio != null) { List <SolicitacaoXUnidades> solicitacaoXUnidades = new SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).ListarPor(new Guid(xml.CodigoSolicitacaoBeneficio)); foreach (SolicitacaoXUnidades solicitacaoXUnidade in solicitacaoXUnidades) { new SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).Deletar(solicitacaoXUnidade.ID.Value); } } if (xml.UnidadesRelacionadas != null && xml.UnidadesRelacionadas.Count > 0) { foreach (var unidadesRelacionadas in xml.UnidadesRelacionadas) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(unidadesRelacionadas.CodigoUnidadeNegocio); if (unidadeNegocio.ID != Guid.Empty) { SolicitacaoXUnidades solicitacaoXUnidadesNovo = new SolicitacaoXUnidades(); solicitacaoXUnidadesNovo.Unidades = new Lookup(unidadeNegocio.ID.Value, "businessunit"); solicitacaoXUnidadesNovo.Solicitacao = new Lookup(solicitacaoBeneficio.ID.Value, "itbc_solicitacaodebeneficio"); new SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).Criar(solicitacaoXUnidadesNovo); } } } return(true); }
private Intelbras.Message.Helper.MSG0122 DefinirPropriedades(CategoriasCanal crm) { Intelbras.Message.Helper.MSG0122 xml = new Pollux.MSG0122(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40)); xml.CodigoCategoriaCanal = crm.ID.ToString(); xml.Nome = crm.Nome; UnidadeNegocio unidade = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadeNegocios.Id); if (unidade != null) { xml.UnidadeNegocio = unidade.ChaveIntegracao; } xml.Conta = crm.Canal.Id.ToString(); //Categoria categ = new Servicos.CategoriaService(this.Organizacao, this.IsOffline).IntegracaoBarramento xml.Categoria = crm.Categoria.Id.ToString(); xml.Classificacao = crm.Classificacao.Id.ToString(); xml.SubClassificacao = crm.SubClassificacao.Id.ToString(); xml.Situacao = (crm.Status.HasValue ? crm.Status.Value : 0); xml.Proprietario = "259A8E4F-15E9-E311-9420-00155D013D39"; xml.TipoProprietario = "systemuser"; return(xml); }
public BeneficioDoCanal DefinirPropriedades(Intelbras.Message.Helper.MSG0141 xml) { var crm = new Model.BeneficioDoCanal(this.Organizacao, this.IsOffline); 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 = "Canal - " + xml.CodigoConta + "- não cadastrado no Crm."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Codigo Conta não enviado ou fora do padrão(Guid)."; return(crm); } 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); } unidadeNegocioId = unidadeNegocio.ID.Value; } if (xml.PassivelSolicitacao.HasValue) { passivelSolicitacao = xml.PassivelSolicitacao.Value; } if (xml.PossuiControleContaCorrente.HasValue && System.Enum.IsDefined(typeof(Intelbras.CRM2013.Domain.Enum.BeneficiodoPrograma.ControleContaCorrente), xml.PossuiControleContaCorrente)) { controleConta = xml.PossuiControleContaCorrente; } return(crm); }
private List <Pollux.Entities.Segmento> ConverteLista(List <Segmento> LstRegistrosCrm) { List <Pollux.Entities.Segmento> lstPollux = new List <Pollux.Entities.Segmento>(); foreach (Segmento item in LstRegistrosCrm) { Pollux.Entities.Segmento Objeto = new Pollux.Entities.Segmento(); if (!String.IsNullOrEmpty(item.CodigoSegmento)) { Objeto.CodigoSegmento = item.CodigoSegmento; } if (!String.IsNullOrEmpty(item.Nome)) { Objeto.NomeSegmento = item.Nome; } if (item.UnidadeNegocios != null) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(item.UnidadeNegocios.Id); if (unidadeNeg != null) { Objeto.NomeUnidadeNegocio = unidadeNeg.Nome; Objeto.CodigoUnidadeNegocio = unidadeNeg.ChaveIntegracao; } } if (item.GerenteResponsavel != null) { Objeto.CodigoGerenteResponsavel = item.GerenteResponsavel.Id.ToString(); Objeto.NomeGerenteResponsavel = item.GerenteResponsavel.Name; } if (item.QtdMaximaShowRoom.HasValue) { Objeto.QuantidadeMaximaShowRoom = item.QtdMaximaShowRoom; } lstPollux.Add(Objeto); } return(lstPollux); }
public List <Pollux.Entities.CompromissoCanal> DefinirRetorno(List <Model.CompromissosDoCanal> lstCompCanalCrm) { List <CompromissosDoCanal> lstCompromissosDoCanalCrm = new List <CompromissosDoCanal>(); List <Pollux.Entities.CompromissoCanal> lstRetorno = new List <Pollux.Entities.CompromissoCanal>(); #region Propriedades Crm->Xml foreach (var itemCrm in lstCompCanalCrm) { Pollux.Entities.CompromissoCanal compCanalPollux = new Pollux.Entities.CompromissoCanal(); if (!String.IsNullOrEmpty(itemCrm.Nome)) { compCanalPollux.NomeCompromissoCanal = itemCrm.Nome; } else { compCanalPollux.NomeCompromissoCanal = "N/A"; } compCanalPollux.CodigoCompromissoCanal = itemCrm.ID.Value.ToString(); if (itemCrm.UnidadeDeNegocio != null) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(itemCrm.UnidadeDeNegocio.Id); if (unidadeNeg != null) { if (!String.IsNullOrEmpty(unidadeNeg.ChaveIntegracao)) { compCanalPollux.CodigoUnidadeNegocio = unidadeNeg.ChaveIntegracao; } else { compCanalPollux.CodigoUnidadeNegocio = Guid.Empty.ToString(); } if (!String.IsNullOrEmpty(unidadeNeg.Nome)) { compCanalPollux.NomeUnidadeNegocio = unidadeNeg.Nome; } else { compCanalPollux.NomeUnidadeNegocio = "N/A"; } } else { compCanalPollux.CodigoUnidadeNegocio = Guid.Empty.ToString(); compCanalPollux.NomeUnidadeNegocio = "N/A"; } } else { compCanalPollux.CodigoUnidadeNegocio = Guid.Empty.ToString(); compCanalPollux.NomeUnidadeNegocio = "N/A"; } if (itemCrm.StatusCompromisso != null) { compCanalPollux.CodigoStatusCompromisso = itemCrm.StatusCompromisso.Id.ToString(); compCanalPollux.NomeStatusCompromisso = itemCrm.StatusCompromisso.Name; } else { compCanalPollux.CodigoStatusCompromisso = Guid.Empty.ToString(); compCanalPollux.NomeStatusCompromisso = "N/A"; } if (itemCrm.CumprirCompromissoEm.HasValue) { compCanalPollux.DataCumprimento = itemCrm.CumprirCompromissoEm.Value; } if (itemCrm.Validade.HasValue) { compCanalPollux.DataValidade = itemCrm.Validade.Value; } lstRetorno.Add(compCanalPollux); } #endregion return(lstRetorno); }
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); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { var xml = this.CarregarMensagem <Pollux.MSG0267>(mensagem); List <Intelbras.Message.Helper.Entities.ProjetoItem> lstProjetoItem = new List <Pollux.Entities.ProjetoItem>(); if (string.IsNullOrEmpty(xml.CodigoRevenda) && string.IsNullOrEmpty(xml.CodigoDistribuidor) && string.IsNullOrEmpty(xml.CodigoExecutivo) && string.IsNullOrEmpty(xml.CNPJCliente) && (!xml.SituacaoProjeto.HasValue)) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "É necessário informar ao menos 1 critério de busca para a consulta."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0267R1>(numeroMensagem, retorno)); } string cnpjCliente = ""; if (!String.IsNullOrEmpty(xml.CNPJCliente)) { cnpjCliente = Servicos.Helper.FormatarCnpj(xml.CNPJCliente); } else { cnpjCliente = ""; } List <ClientePotencial> lstProjetos = new Servicos.LeadService(this.Organizacao, this.IsOffline).ListarProjetosPor(xml.CodigoRevenda, xml.CodigoDistribuidor, xml.CodigoExecutivo, cnpjCliente, xml.SituacaoProjeto, xml.CodigoSegmento, xml.CodigoUnidadeNegocio); #region Lista if (lstProjetos != null && lstProjetos.Count > 0) { foreach (ClientePotencial crmItem in lstProjetos) { Pollux.Entities.ProjetoItem objPollux = new Pollux.Entities.ProjetoItem(); Oportunidade Oportunidade = new Servicos.RepositoryService().Oportunidade.BuscarPor(crmItem); objPollux.NumeroProjeto = crmItem.NumeroProjeto; if (Oportunidade != null) { objPollux.ClassificacaoProjeto = 993520001; } else { objPollux.ClassificacaoProjeto = 993520000; } objPollux.CodigoClientePotencial = crmItem.ID.Value.ToString(); if (Oportunidade != null) { objPollux.CodigoOportunidade = Oportunidade.ID.Value.ToString(); objPollux.SituacaoProjeto = ObterRazaoStatusOportunidade(Oportunidade); } else { objPollux.SituacaoProjeto = ObterRazaoStatusClientePotencial(crmItem); } if (crmItem.RevendaIntegrador != null) { objPollux.CodigoRevenda = crmItem.RevendaIntegrador.Id.ToString(); objPollux.NomeRevenda = crmItem.RevendaIntegrador.Name; } else { objPollux.CodigoRevenda = string.Empty; objPollux.NomeRevenda = string.Empty; } if (crmItem.Distribuidor != null) { objPollux.CodigoDistribuidor = crmItem.Distribuidor.Id.ToString(); objPollux.NomeDistribuidor = crmItem.Distribuidor.Name; } if (crmItem.Executivo != null) { objPollux.CodigoExecutivo = crmItem.Executivo.Id.ToString(); objPollux.NomeExecutivo = crmItem.Executivo.Name; } objPollux.CNPJCliente = crmItem.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); objPollux.RazaoSocial = crmItem.NomeDaEmpresa; if (crmItem.ValorEstimado.HasValue) { objPollux.ReceitaEstimada = crmItem.ValorEstimado; } else { objPollux.ReceitaEstimada = 0; } if (crmItem.DataEstimada != null) { objPollux.DataPrevisaoFechamento = crmItem.DataEstimada.ToLocalTime(); } else { objPollux.DataPrevisaoFechamento = null; } if (crmItem.UnidadeNegocio != null) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crmItem.UnidadeNegocio.Id); if (unidadeNegocio != null) { objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; objPollux.NomeUnidadeNegocio = unidadeNegocio.Nome; } } if (crmItem.DataCriacao != null) { objPollux.DataCadastro = crmItem.DataCriacao.ToLocalTime(); } else { objPollux.DataCadastro = null; } lstProjetoItem.Add(objPollux); } } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Não foram encontrados registros que satisfaçam os critérios de pesquisa."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0267R1>(numeroMensagem, retorno)); } #endregion retorno.Add("ProjetosItens", lstProjetoItem); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0267R1>(numeroMensagem, retorno)); }
public List <Pollux.Entities.SolicitacaoBeneficio> DefinirRetorno(List <Model.SolicitacaoBeneficio> lstSolBeneficioCrm) { List <Pollux.Entities.SolicitacaoBeneficio> lstRetorno = new List <Pollux.Entities.SolicitacaoBeneficio>(); #region Propriedades Crm->Xml foreach (var itemCrm in lstSolBeneficioCrm) { var solBeneficioPollux = new Pollux.Entities.SolicitacaoBeneficio(); if (itemCrm.DataCriacao.HasValue) { solBeneficioPollux.DataCriacaoSolicitacao = itemCrm.DataCriacao.Value; } else { solBeneficioPollux.DataCriacaoSolicitacao = DateTime.MinValue; } solBeneficioPollux.CodigoSolicitacaoBeneficio = itemCrm.ID.Value.ToString(); if (!String.IsNullOrEmpty(itemCrm.Nome)) { solBeneficioPollux.NomeSolicitacaoBeneficio = itemCrm.Nome; } else { solBeneficioPollux.NomeSolicitacaoBeneficio = "N/A"; } if (itemCrm.UnidadedeNegocio != null) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.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.Status.HasValue) { solBeneficioPollux.SituacaoSolicitacaoBeneficio = itemCrm.StatusSolicitacao.Value; } 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.TipoPriceProtection.HasValue) { solBeneficioPollux.TipoPriceProtection = itemCrm.TipoPriceProtection.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 (!string.IsNullOrEmpty(itemCrm.TrimestreCompetencia)) { solBeneficioPollux.TrimestreCompetencia = itemCrm.TrimestreCompetencia; } if (!string.IsNullOrEmpty(itemCrm.Descricao)) { solBeneficioPollux.DescricaoSolicitacao = itemCrm.Descricao; } 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.BeneficioPrograma != null) { solBeneficioPollux.CodigoBeneficio = itemCrm.BeneficioPrograma.Id.ToString(); solBeneficioPollux.NomeBeneficio = itemCrm.BeneficioPrograma.Name; Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.BeneficioPrograma.Id); if (benefProg != null && benefProg.Codigo.HasValue) { solBeneficioPollux.BeneficioCodigo = benefProg.Codigo.Value; } } else { solBeneficioPollux.CodigoBeneficio = Guid.Empty.ToString(); solBeneficioPollux.NomeBeneficio = "N/A"; solBeneficioPollux.BeneficioCodigo = (int)this.PreencherAtributoVazio("int"); } 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.AjusteSaldo.HasValue) { solBeneficioPollux.SolicitacaoAjuste = itemCrm.AjusteSaldo.Value; } if (itemCrm.ValorCancelado.HasValue) { solBeneficioPollux.ValorCancelado = itemCrm.ValorCancelado.Value; } //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); lstRetorno.Add(solBeneficioPollux); } #endregion return(lstRetorno); }
public Pollux.Entities.Compromisso DefinirRetorno(Model.CompromissosDoCanal compCanalCrm) { #region Propriedades Crm->Xml Pollux.Entities.Compromisso compCanalPollux = new Pollux.Entities.Compromisso(); if (!String.IsNullOrEmpty(compCanalCrm.Nome)) { compCanalPollux.NomeCompromissoCanal = compCanalCrm.Nome; } else { compCanalPollux.NomeCompromissoCanal = "N/A"; } if (compCanalCrm.UnidadeDeNegocio != null) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(compCanalCrm.UnidadeDeNegocio.Id); if (unidadeNeg != null) { if (!String.IsNullOrEmpty(unidadeNeg.ChaveIntegracao)) { compCanalPollux.CodigoUnidadeNegocio = unidadeNeg.ChaveIntegracao; } else { compCanalPollux.CodigoUnidadeNegocio = "N/A"; } if (!String.IsNullOrEmpty(unidadeNeg.Nome)) { compCanalPollux.NomeUnidadeNegocio = unidadeNeg.Nome; } else { compCanalPollux.NomeUnidadeNegocio = "N/A"; } } else { compCanalPollux.CodigoUnidadeNegocio = Guid.Empty.ToString(); compCanalPollux.NomeUnidadeNegocio = "N/A"; } } else { compCanalPollux.CodigoUnidadeNegocio = Guid.Empty.ToString(); compCanalPollux.NomeUnidadeNegocio = "N/A"; } if (compCanalCrm.StatusCompromisso != null) { compCanalPollux.CodigoStatusCompromisso = compCanalCrm.StatusCompromisso.Id.ToString(); compCanalPollux.NomeStatusCompromisso = compCanalCrm.StatusCompromisso.Name; } else { compCanalPollux.CodigoStatusCompromisso = Guid.Empty.ToString(); compCanalPollux.NomeStatusCompromisso = "N/A"; } if (compCanalCrm.CumprirCompromissoEm.HasValue) { compCanalPollux.DataCumprimento = compCanalCrm.CumprirCompromissoEm.Value; } if (compCanalCrm.Validade.HasValue) { compCanalPollux.DataValidade = compCanalCrm.Validade.Value; } #endregion return(compCanalPollux); }
public ClientePotencial DefinirPropriedades(Intelbras.Message.Helper.MSG0268 xml) { var crm = new Model.ClientePotencial(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml crm.IntegrarNoPlugin = true; if (!String.IsNullOrEmpty(xml.NumeroProjeto)) { ClientePotencial cliente = new Servicos.LeadService(this.Organizacao, this.IsOffline).ObterPorNumeroProjeto(xml.NumeroProjeto); if (cliente != null) { crm.NumeroProjeto = xml.NumeroProjeto; crm.StatusValidacao = cliente.StatusValidacao; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NumeroProjeto informado não existe para ser atualizado."; return(crm); } } if (!String.IsNullOrEmpty(xml.CodigoClientePotencial)) { crm.ID = new Guid(xml.CodigoClientePotencial); } else { crm.RazaoStatus = 993520003; originadoExtranet = true; } if (!String.IsNullOrEmpty(xml.CodigoRevenda) && xml.CodigoRevenda.Length == 36) { crm.RevendaIntegrador = new Lookup(new Guid(xml.CodigoRevenda), ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoRevenda não enviado ou fora do padrão (Guid)."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoDistribuidor) && xml.CodigoDistribuidor.Length == 36) { crm.Distribuidor = new Lookup(new Guid(xml.CodigoDistribuidor), ""); } Contato executivo = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(new Guid(xml.CodigoExecutivo)); if (executivo != null) { crm.Executivo = new Lookup(executivo.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoExecutivo não encontrado no Crm."; return(crm); } if (!String.IsNullOrEmpty(xml.CNPJCliente)) { crm.Cnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCnpj(xml.CNPJCliente); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CNPJCliente não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.RazaoSocial)) { crm.NomeDaEmpresa = xml.RazaoSocial; crm.Topico = xml.RazaoSocial; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "RazaoSocial não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.NomeContatoCliente)) { crm.NomeCompletoDoContato = xml.NomeContatoCliente; if (xml.NomeContatoCliente.Contains(" ")) { crm.PrimeiroNomeDoContato = xml.NomeContatoCliente.Substring(0, xml.NomeContatoCliente.IndexOf(' ')); crm.SobreNomeDoContato = xml.NomeContatoCliente.Substring(xml.NomeContatoCliente.IndexOf(' ') + 1, (xml.NomeContatoCliente.Length - xml.NomeContatoCliente.IndexOf(' ') - 1)); } else { crm.PrimeiroNomeDoContato = xml.NomeContatoCliente; } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NomeContatoCliente não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.TelefoneContatoCliente)) { crm.TelefoneComercial = xml.TelefoneContatoCliente; crm.TelefoneCelular = xml.TelefoneContatoCliente; } if (!String.IsNullOrEmpty(xml.EmailContatoCliente)) { crm.Email = xml.EmailContatoCliente; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "EmailContatoCliente não enviado."; return(crm); } if (xml.TipoProjeto.HasValue) { crm.TipoProjeto = xml.TipoProjeto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "TipoProjeto não enviado."; return(crm); } if (xml.EnvolverEngenharia.HasValue) { if (xml.EnvolverEngenharia.Value == 993520000) { crm.EnvolverEngenharia = true; } else { crm.EnvolverEngenharia = false; } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "EnvolverEngenharia não enviado."; return(crm); } if (xml.ReceitaEstimada.HasValue) { crm.ValorEstimado = (decimal)xml.ReceitaEstimada; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "ReceitaEstimada não enviado."; return(crm); } if (xml.DataPrevisaoFechamento.HasValue) { crm.DataEstimada = (DateTime)xml.DataPrevisaoFechamento; crm.DataProximaInteracao = DateTime.Now.AddDays(30); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "DataPrevisaoFechamento não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (unidadeNegocio != null) { crm.UnidadeNegocio = new Lookup(unidadeNegocio.Id, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoUnidadeNegocio não enencontrado no CRM."; return(crm); } } if (!String.IsNullOrEmpty(xml.DescricaoProjeto)) { crm.Descricao = xml.DescricaoProjeto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "DescricaoProjeto não enviado ou fora do padrão (Guid)."; return(crm); } if (xml.CotacaoEnviada.HasValue) { crm.CotacaoEnviada = xml.CotacaoEnviada; } if (xml.TipoSolucao.HasValue) { crm.TipoSolucao = xml.TipoSolucao; } else { crm.AddNullProperty("TipoSolucao"); } if (xml.PossivelDuplicidade.HasValue) { crm.PossivelDuplicidade = (bool)xml.PossivelDuplicidade; } #endregion #region Endereco crm.Endereco1CEP = xml.EnderecoClienteFinal.CEP; crm.Endereco1Rua = xml.EnderecoClienteFinal.Logradouro; crm.Endereco1Numero = xml.EnderecoClienteFinal.Numero; if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Complemento)) { crm.Endereco1Complemento = xml.EnderecoClienteFinal.Complemento; } crm.Endereco1Bairro = xml.EnderecoClienteFinal.Bairro; //Cidade if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Cidade)) { Municipio cidade = new Intelbras.CRM2013.Domain.Servicos.MunicipioServices(this.Organizacao, this.IsOffline).BuscaCidade(xml.EnderecoClienteFinal.Cidade); if (cidade != null && cidade.ID.HasValue) { crm.Endereco1Municipioid = new Lookup(cidade.ID.Value, ""); crm.Endereco1Municipio = cidade.Nome; } } //Estado if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Estado)) { Estado estado = new Intelbras.CRM2013.Domain.Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.EnderecoClienteFinal.Estado); if (estado != null && estado.ID.HasValue) { crm.Endereco1Estadoid = new Lookup(estado.ID.Value, ""); } } //Pais if (!String.IsNullOrEmpty(xml.EnderecoClienteFinal.Pais)) { Pais Pais = new Intelbras.CRM2013.Domain.Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(xml.EnderecoClienteFinal.Pais); if (Pais != null && Pais.ID.HasValue) { crm.Endereco1Pais = new Lookup(Pais.ID.Value, ""); } } #endregion return(crm); }
private Intelbras.Message.Helper.MSG0088 DefinirPropriedades(Product crm) { Intelbras.Message.Helper.MSG0088 xml = new Pollux.MSG0088(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40)); if (crm.Codigo != null) { xml.CodigoProduto = crm.Codigo; } if (crm.DataUltAlteracaoPVC.HasValue) { xml.DataAlteracaoPrecoVenda = crm.DataUltAlteracaoPVC.Value.ToLocalTime(); } if (crm.Showroom.HasValue) { xml.ShowRoom = crm.Showroom; } if (crm.Nome != null) { xml.Nome = crm.Nome; } if (crm.Descricao != null) { xml.Descricao = crm.Descricao; } if (crm.PesoEstoque != null) { xml.PesoEstoque = crm.PesoEstoque; } xml.Situacao = (crm.Status.HasValue ? crm.Status.Value : (int)Enum.Produto.StateCode.ativo); if (crm.TipoProdutoid.HasValue) { xml.TipoProduto = crm.TipoProdutoid.Value; } if (crm.GrupoEstoque != null) { GrupoEstoque grpEstoq = new Servicos.GrupoEstoqueService(this.Organizacao, this.IsOffline).ObterPor(crm.GrupoEstoque.Id); if (grpEstoq != null && grpEstoq.Codigo.HasValue) { xml.GrupoEstoque = grpEstoq.Codigo.Value; } } if (crm.UnidadeNegocio != null) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadeNegocio.Id); if (unidadeNegocio != null) { xml.UnidadeNegocio = unidadeNegocio.ChaveIntegracao; xml.NomeUnidadeNegocio = unidadeNegocio.Nome; } } if (crm.Segmento != null) { Model.Segmento segmento = new Servicos.SegmentoService(this.Organizacao, this.IsOffline).ObterPor(crm.Segmento.Id); if (segmento != null && !String.IsNullOrEmpty(segmento.CodigoSegmento)) { xml.Segmento = segmento.CodigoSegmento; xml.NomeSegmento = segmento.Nome; } } if (crm.FamiliaProduto != null) { Model.FamiliaProduto familiaProduto = new Servicos.FamiliaProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaProduto.Id); if (familiaProduto != null && !String.IsNullOrEmpty(familiaProduto.Codigo)) { xml.Familia = familiaProduto.Codigo; } } if (crm.SubfamiliaProduto != null) { SubfamiliaProduto subFamiliaProduto = new Servicos.SubFamiliaProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.SubfamiliaProduto.Id); if (subFamiliaProduto != null && !String.IsNullOrEmpty(subFamiliaProduto.Codigo)) { xml.SubFamilia = subFamiliaProduto.Codigo; } } if (crm.Origem != null) { Origem Origem = new Servicos.OrigemService(this.Organizacao, this.IsOffline).ObterPor(crm.Origem.Id); if (Origem != null && !String.IsNullOrEmpty(Origem.Codigo)) { xml.Origem = Origem.Codigo; } } if (crm.UnidadePadrao != null) { Unidade unidade = new Servicos.UnidadeService(this.Organizacao, this.IsOffline).BuscaPor(crm.UnidadePadrao.Id); if (unidade != null && !String.IsNullOrEmpty(unidade.Nome)) { xml.UnidadeMedida = unidade.Nome; } } if (crm.GrupoUnidades != null) { GrupoUnidade grupoUnidade = new Servicos.GrupoUnidadeMedidaService(this.Organizacao, this.IsOffline).ObterPor(crm.GrupoUnidades.Id); if (grupoUnidade != null) { xml.GrupoUnidadeMedida = grupoUnidade.Nome; } } if (crm.FamiliaComercial != null) { FamiliaComercial familiaComercial = new Servicos.FamiliaComercialService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaComercial.Id); if (familiaComercial != null && !String.IsNullOrEmpty(familiaComercial.Codigo)) { xml.FamiliaComercial = familiaComercial.Codigo; } } if (crm.QuantidadeMultiplaProduto.HasValue) { xml.QuantidadeMultipla = crm.QuantidadeMultiplaProduto.Value; } if (crm.NaturezaProduto != null) { xml.NaturezaProduto = crm.NaturezaProduto.Value; } if (crm.FamiliaMaterial != null) { FamiliaMaterial familiaMaterial = new Servicos.FamiliaMaterialService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaMaterial.Id); if (familiaMaterial != null && !String.IsNullOrEmpty(familiaMaterial.Codigo)) { xml.FamiliaMaterial = familiaMaterial.Codigo; } } if (crm.FamiliaMaterial != null) { FamiliaMaterial familiaMaterial = new Servicos.FamiliaMaterialService(this.Organizacao, this.IsOffline).ObterPor(crm.FamiliaMaterial.Id); if (familiaMaterial != null && !String.IsNullOrEmpty(familiaMaterial.Codigo)) { xml.FamiliaMaterial = familiaMaterial.Codigo; } } if (crm.ListaPrecoPadrao != null) { xml.ListaPreco = crm.ListaPrecoPadrao.Name; } if (crm.Moeda != null) { xml.Moeda = crm.Moeda.Name; } if (crm.QuantidadeDecimal.HasValue) { xml.QuantidadeDecimal = crm.QuantidadeDecimal.Value; } if (crm.ExigeTreinamento.HasValue) { xml.ExigeTreinamento = crm.ExigeTreinamento.Value; } if (crm.RebatePosVendaAtivado.HasValue) { xml.RebateAtivado = crm.RebatePosVendaAtivado.Value; } if (crm.NomeFornecedor != null) { xml.Fabricante = crm.NomeFornecedor; } if (crm.NumeroPecaFabricante != null) { xml.NumeroPecaFabricante = crm.NumeroPecaFabricante; } if (crm.VolumeEstoque != null) { xml.VolumeEstoque = crm.VolumeEstoque; } if (crm.Complemento != null) { xml.ComplementoProduto = crm.Complemento; } if (crm.Url != null) { xml.URL = crm.Url; } if (crm.QuantidadeDisponivel.HasValue) { xml.QuantidadeDisponivel = crm.QuantidadeDisponivel.Value; } if (crm.Fornecedor != null) { xml.Fornecedor = crm.Fornecedor; } if (crm.ConsideraOrcamentoMeta.HasValue) { xml.ConsiderarOrcamentoMeta = crm.ConsideraOrcamentoMeta.Value; } if (crm.FaturamentoOutroProduto.HasValue) { xml.FaturamentoOutroProduto = crm.FaturamentoOutroProduto.Value; } xml.TemMensagem = crm.TemMensagem; if (crm.TemMensagem == true) { if (crm.Mensagem != null && crm.Mensagem != String.Empty) { xml.DescricaoMensagem = crm.Mensagem; } } else { xml.TemMensagem = false; } xml.AliquotaIPI = crm.PercentualIPI; xml.EAN = crm.EAN; xml.NCM = crm.NCM; xml.CustoPadrao = (crm.CustoAtual.HasValue) ? crm.CustoAtual.Value : 0; xml.CustoAtual = crm.CustoAtual; xml.BloquearComercializacao = crm.BloquearComercializacao; xml.ComercializadoForaKit = crm.ComercializadoForaKit; xml.PoliticaPosVendas = crm.PoliticaPosVenda; if (crm.PoliticaPosVenda != null) { xml.DescricaoPoliticaPosVendas = DescricaoPoliticaPosVenda(crm.PoliticaPosVenda.Value); } xml.TempoGarantia = crm.TempoGarantia; xml.EKit = crm.EKit; xml.PossuiSubstituto = crm.PossuiSubstituto; xml.PassivelSolicitacaoBeneficio = crm.PermitirEmSolBenef; xml.Backup = crm.BackupDistribuidor; xml.BackupRevendas = crm.BackupRevenda; xml.ShowRoomRevendas = crm.ShowroomRevenda; if (!String.IsNullOrEmpty(crm.DepositoPadrao)) { xml.DepositoPadrao = crm.DepositoPadrao; } if (crm.CodigoTipoDespesa.HasValue) { xml.CodigoTipoDespesa = crm.CodigoTipoDespesa; } if (crm.DestaqueNCM.HasValue) { xml.DestaqueNCM = crm.DestaqueNCM; } if (!String.IsNullOrEmpty(crm.NVE)) { xml.NVE = crm.NVE; } if (!String.IsNullOrEmpty(crm.CodigoUnidadeFamilia)) { xml.CodigoUnidadeFamilia = crm.CodigoUnidadeFamilia; } if (crm.ProdutoSubstituto != null) { var produtoSubstituto = RepositoryService.Produto.Retrieve(crm.ProdutoSubstituto.Id, "productnumber"); if (produtoSubstituto == null) { throw new ArgumentException("(CRM) Produto substituto não encontrado!"); } xml.CodigoProdutoSubstituto = produtoSubstituto.Codigo; } xml.TipoItem = crm.TipoItem; if (crm.LinhaProduto != null) { LinhaComercial linhaProduto = (new CRM2013.Domain.Servicos.RepositoryService()).LinhaComercial.Retrieve(crm.LinhaProduto.Id); if (linhaProduto != null) { xml.LinhaProduto = linhaProduto.Id.ToString(); xml.NomeLinhaProduto = linhaProduto.Nome; } } return(xml); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { //Trace.Add("Mensagem " + numeroMensagem + " XML: {0}", mensagem); usuarioIntegracao = usuario; Estado estado = null; Moeda moeda = null; UnidadeNegocio undadeNegocio = null; Guid? produtoId = null; Intelbras.Message.Helper.MSG0086 xml = this.CarregarMensagem <Pollux.MSG0086>(mensagem); #region Validações //Estado if (!String.IsNullOrEmpty(xml.Estado)) { estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.Estado); if (estado == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Estado: " + xml.Estado + " não encontrado no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Estado obrigatório"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } //Unidade de Negocio if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { undadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (undadeNegocio == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeNegocio: " + xml.CodigoUnidadeNegocio + " não encontrado no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoUnidadeNegocio não enviado ou fora do padrão(Guid)."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } //Moeda if (!String.IsNullOrEmpty(xml.Moeda)) { moeda = new Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorNome(xml.Moeda); if (moeda == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda: " + xml.Moeda + " não encontrada no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda não enviado ou fora do padrão(Guid)."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } //Produto - não obrigatório if (!String.IsNullOrEmpty(xml.CodigoProduto)) { Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(xml.CodigoProduto); if (produto == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto código: " + xml.CodigoProduto + " não encontrado no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } else { produtoId = produto.ID.Value; } } #endregion List <Intelbras.Message.Helper.Entities.ProdutoR1> lsTProdutos = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).ListarPSDPPPSCF(undadeNegocio.ID.Value, moeda.ID.Value, estado.ID.Value, produtoId); if (lsTProdutos != null && lsTProdutos.Count > 0) { retorno.Add("ProdutosItens", lsTProdutos); resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Não foram encontrados registros que satisfaçam os critérios de pesquisa."; } retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); }
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)); } }
//public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) //{ // try // { // //Trace.Add("Mensagem " + numeroMensagem + " XML: {0}", mensagem); // usuarioIntegracao = usuario; // Intelbras.Message.Helper.MSG0111 xml = this.CarregarMensagem<Pollux.MSG0111>(mensagem); // ParametroGlobal objeto = this.DefinirPropriedades(xml); // if (!resultadoPersistencia.Sucesso) // { // retorno.Add("Resultado", resultadoPersistencia); // return CriarMensagemRetorno<Pollux.MSG0111R1>(numeroMensagem, retorno); // } // objeto = new Domain.Servicos.ParametroGlobalService(this.Organizacao, this.IsOffline).ObterPor(tipoParamentroCod, unidadeNegocioId, classificacaoId, categoriaId, nivelPosVendaId, compromissoId, beneficioId,null); // if (objeto == null) // { // resultadoPersistencia.Sucesso = true; // resultadoPersistencia.Mensagem = "Registro não encontrado!"; // } // else // { // Pollux.Entities.ParametroGlobal objRetorno = new Pollux.Entities.ParametroGlobal(); // objRetorno.TipoDado = objeto.TipoDado; // objRetorno.Valor = objeto.Valor; // retorno.Add("ParametroGlobal", objRetorno); // resultadoPersistencia.Sucesso = true; // resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso"; // } // retorno.Add("Resultado", resultadoPersistencia); // return CriarMensagemRetorno<Pollux.MSG0111R1>(numeroMensagem, retorno); // } // catch (Exception e) // { // resultadoPersistencia.Sucesso = false; // resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); // retorno.Add("Resultado", resultadoPersistencia); // return CriarMensagemRetorno<Pollux.MSG0111R1>(numeroMensagem, retorno); // //throw new ArgumentException(e.Message); // } //} #endregion #region Definir Propriedades public ParametroGlobal DefinirPropriedades(Intelbras.Message.Helper.MSG0111 xml) { ParametroGlobal crm = new ParametroGlobal(this.Organizacao, this.IsOffline); //Obrigatorio TipodeParametroGlobal tipoParamentro = new Servicos.TipodeParametroGlobalService(this.Organizacao, this.IsOffline).ObterPor(xml.TipoParametroGlobal); if (tipoParamentro != null && tipoParamentro.Codigo.HasValue) { tipoParamentroCod = tipoParamentro.Codigo.Value; crm.TipoParametro = new Lookup(tipoParamentro.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "TipoParametroGlobal/Codigo não cadastrada no Crm."; return(crm); } //Não Obrigatório if (!String.IsNullOrEmpty(xml.CodigoBeneficio)) { if (xml.CodigoBeneficio.Length == 36) { crm.Beneficio = new Lookup((Guid)(TransformaGuid(xml.CodigoBeneficio)), ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador CodigoBeneficio fora do padrão (Guid)."; return(crm); } } //Não obrigatorio if (!String.IsNullOrEmpty(xml.CodigoClassificacao)) { Classificacao classificacao = new Servicos.ClassificacaoService(this.Organizacao, this.IsOffline).BuscaClassificacao(new Guid(xml.CodigoClassificacao)); if (classificacao != null) { crm.Classificacao = new Lookup(classificacao.ID.Value, ""); classificacaoId = classificacao.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Classificação não cadastrada no Crm."; return(crm); } } //Não obrigatorio if (!String.IsNullOrEmpty(xml.CodigoCategoria)) { Categoria categoria = new Servicos.CategoriaService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoCategoria)); if (categoria != null) { crm.Categoria = new Lookup(categoria.ID.Value, ""); categoriaId = categoria.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Categoria não cadastrada no Crm."; return(crm); } } //Não Obrigatorio if (!String.IsNullOrEmpty(xml.CodigoCompromisso)) { if (xml.CodigoCompromisso.Length == 36) { crm.Compromisso = new Lookup(new Guid(xml.CodigoCompromisso), ""); compromissoId = new Guid(xml.CodigoCompromisso); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador CodigoCompromisso fora do padrão (Guid)."; return(crm); } } //Não Obrigatorio if (!String.IsNullOrEmpty(xml.CodigoBeneficio)) { if (xml.CodigoBeneficio.Length == 36) { crm.Beneficio = new Lookup(new Guid(xml.CodigoBeneficio), ""); beneficioId = new Guid(xml.CodigoBeneficio); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador CodigoBeneficio fora do padrão (Guid)."; return(crm); } } //Não Obrigatorio if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (unidadeNeg != null) { crm.UnidadeNegocio = new Lookup(unidadeNeg.ID.Value, ""); unidadeNegocioId = unidadeNeg.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeNegocio não cadastrada no Crm."; return(crm); } } //Não Obrigatorio if (!String.IsNullOrEmpty(xml.CodigoNivelPosVenda)) { if (xml.CodigoNivelPosVenda.Length == 36) { crm.NivelPosVenda = new Lookup(new Guid(xml.CodigoNivelPosVenda), ""); nivelPosVendaId = new Guid(xml.CodigoNivelPosVenda); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador NivelPosVenda fora do padrão (Guid)."; return(crm); } } return(crm); }
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); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { var xml = this.CarregarMensagem <Pollux.MSG0100>(mensagem); List <ProdutoPortfolio> lstProdutoPortifolio = null; List <Pollux.Entities.ProdutoPortifolio> lstPolluxPortifolio = new List <Pollux.Entities.ProdutoPortifolio>(); ProdutoPortfolio objeto = this.DefinirPropriedades(xml); if (!String.IsNullOrEmpty(xml.Classificacao)) { Classificacao classif = new Servicos.ClassificacaoService(this.Organizacao, this.IsOffline).BuscaClassificacao(new Guid(xml.Classificacao)); if (classif != null) { classificacaoId = classif.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Classificação - " + xml.Classificacao + " - não cadastrada no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } else { //new resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "O campo Classificação é obrigatorio."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } if (!String.IsNullOrEmpty(xml.UnidadeNegocio)) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.UnidadeNegocio); if (unidadeNeg != null) { unidadeNegocioId = unidadeNeg.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeNegocio - " + xml.UnidadeNegocio + " - não cadastrada no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } if (!String.IsNullOrEmpty(xml.Conta)) { Conta objetoConta = new Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(new Guid(xml.Conta)); if (objetoConta != null && objetoConta.Status.Value == 0) { #region Conta sem categoria de canal ativa //Regra: É preciso recuperar as unidades de negócios com qual o canal possui relacionamento que estão registradas na entidade "Categorias do Canal". //Se não forem encontrados registros, o calculo do portfólio deve ser interrompido e deve ser retornado ao ESB como resultado "Falha"." var categoriaCanal = new Servicos.CategoriaCanalService(this.Organizacao, this.IsOffline).ListarPor(objetoConta.ID, unidadeNegocioId); if (categoriaCanal == null || categoriaCanal.Count.Equals(0)) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM):Conta não possui relacionamento com unidades de negócio Intelbras"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } #endregion #region Nenhum portfólio encontrado if (unidadeNegocioId != null) { var portifolio = new Servicos.PortfolioService(this.Organizacao, this.IsOffline).ListPortifolios(unidadeNegocioId.Value, classificacaoId.Value); if (portifolio.Count == 0) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Não foram encontrados portfólios para a classificação da conta"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } #endregion #region Nenhum produto de portfólio encontrado lstProdutoPortifolio = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ProdutosPortfolio(objetoConta, classificacaoId, unidadeNegocioId); if (lstProdutoPortifolio != null && lstProdutoPortifolio.Count > 0) { lstPolluxPortifolio = this.CarregarListaProdutoPortifolio(lstProdutoPortifolio); } else { //verifica se existe portfolios sem produto var portifolio = new Servicos.PortfolioService(this.Organizacao, this.IsOffline).VerificaPortfolio(objetoConta, classificacaoId, unidadeNegocioId); if (portifolio.Count > 0) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Foram encontrados portfólios mas nenhum produto relacionado aos mesmos."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } else { //Erro Lista Portifolio vazia resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Não foram encontrados portfólios para a classificação da conta"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } #endregion } else { //Conta inativa ou não existe //Conta nao encontrada resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Conta não existente e/ ou inativa"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador do Canal não enviado."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } if (lstPolluxPortifolio.Count > 0) { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; retorno.Add("ProdutoItem", lstPolluxPortifolio); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Produtos Itens não encontrados no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } }
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); }
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); }