public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { try { usuarioIntegracao = usuario; SolicitacaoBeneficio solicitacaoBenficioConsulta = null; Pollux.Entities.SolicitacaoBeneficioR1 objRetornoPollux = new Pollux.Entities.SolicitacaoBeneficioR1(); var xml = this.CarregarMensagem <Pollux.MSG0148>(mensagem); //Solicitacao Beneficio if (!string.IsNullOrEmpty(xml.CodigoSolicitacaoBeneficio) && xml.CodigoSolicitacaoBeneficio.Length == 36) { solicitacaoBenficioConsulta = new Servicos.SolicitacaoBeneficioService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoSolicitacaoBeneficio)); if (solicitacaoBenficioConsulta == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Valor do parâmetro " + xml.CodigoSolicitacaoBeneficio + " não existe."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0148R1>(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.MSG0148R1>(numeroMensagem, retorno)); } objRetornoPollux = DefinirRetorno(solicitacaoBenficioConsulta); if (objRetornoPollux == null) { 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.MSG0148R1>(numeroMensagem, retorno)); } else if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0148R1>(numeroMensagem, retorno)); } resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!"; retorno.Add("SolicitacaoBeneficio", objRetornoPollux); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0148R1>(numeroMensagem, retorno)); } catch (Exception e) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0173R1>(numeroMensagem, retorno)); } }
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); }