public string Enviar(SolicitacaoBeneficio objModel) { string resposta; Pollux.MSG0155 mensagem = DefinirPropriedadesPlugin(objModel); Servicos.Integracao integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline); if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out resposta)) { Pollux.MSG0155R1 retorno = CarregarMensagem <Pollux.MSG0155R1>(resposta); if (!retorno.Resultado.Sucesso) { throw new ArgumentException("(CRM) " + retorno.Resultado.Mensagem); } else { if (retorno.SaldoBeneficioCanal != null) { BeneficioDoCanal beneficioCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(new Guid(retorno.SaldoBeneficioCanal.CodigoBeneficioCanal)); beneficioCanal.VerbaPeriodoAtual = retorno.SaldoBeneficioCanal.VerbaCalculada.Value; beneficioCanal.VerbaPeriodosAnteriores = retorno.SaldoBeneficioCanal.VerbaPeriodoAnterior.Value; beneficioCanal.VerbaBrutaPeriodoAtual = retorno.SaldoBeneficioCanal.VerbaTotal.Value; beneficioCanal.TotalSolicitacoesAprovadasNaoPagas = retorno.SaldoBeneficioCanal.VerbaEmpenhada.Value; beneficioCanal.VerbaReembolsada = retorno.SaldoBeneficioCanal.VerbaReembolsada.Value; beneficioCanal.VerbaCancelada = retorno.SaldoBeneficioCanal.VerbaCancelada.Value; beneficioCanal.VerbaAjustada = retorno.SaldoBeneficioCanal.VerbaAjustada.Value; beneficioCanal.VerbaDisponivel = retorno.SaldoBeneficioCanal.VerbaDisponivel.Value; new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).AlterarBeneficioCanal(beneficioCanal); if (objModel.TipoPriceProtection.HasValue && objModel.TipoPriceProtection.Value == (int)Enum.SolicitacaoBeneficio.TipoPriceProtection.Autorizacao) { if (objModel.StatusSolicitacao.HasValue && objModel.StatusSolicitacao.Value == (int)Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio.PagamentoPendente) { objModel.StatusSolicitacao = (int?)Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio.PagamentoEfetuado; } } } } } else { Intelbras.Message.Helper.ERR0001 erro001 = CarregarMensagem <Pollux.ERR0001>(resposta); throw new ArgumentException("(CRM) " + erro001.GenerateMessage(false)); } return(resposta); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { try { var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0146>(mensagem)); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0146R1>(numeroMensagem, retorno)); } //SolicitacoesItens BeneficioDoCanal beneficioDoCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(objeto.ID.Value); if (beneficioDoCanal == 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.MSG0146R1>(numeroMensagem, retorno)); } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; retorno.Add("BeneficioCanal", this.DefinirRetorno(beneficioDoCanal)); } retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0146R1>(numeroMensagem, retorno)); } catch (Exception e) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0146R1>(numeroMensagem, retorno)); } }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { try { var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0141>(mensagem)); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0141R1>(numeroMensagem, retorno)); } List <Intelbras.Message.Helper.Entities.Beneficio> lstPolluxBeneficio = new List <Pollux.Entities.Beneficio>(); //SolicitacoesItens List <BeneficioDoCanal> lstBeneficioDoCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ListarPorContaUnidadeNegocio(objeto.Canal.Id, unidadeNegocioId); if (lstBeneficioDoCanal != null && lstBeneficioDoCanal.Count > 0) { lstPolluxBeneficio = ConverterListaBeneficio(lstBeneficioDoCanal); } 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.MSG0141R1>(numeroMensagem, retorno)); } retorno.Add("BeneficioItens", lstPolluxBeneficio); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0141R1>(numeroMensagem, retorno)); } catch (Exception e) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0141R1>(numeroMensagem, retorno)); } }
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) { try { usuarioIntegracao = usuario; BeneficioDoCanal beneficioCanalConsulta = null; List <Pollux.Entities.SolicitacaoBeneficio> lstRetorno = new List <Pollux.Entities.SolicitacaoBeneficio>(); var xml = this.CarregarMensagem <Pollux.MSG0147>(mensagem); //BeneficioCanal if (!String.IsNullOrEmpty(xml.CodigoBeneficioCanal) && xml.CodigoBeneficioCanal.Length == 36) { beneficioCanalConsulta = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoBeneficioCanal)); if (beneficioCanalConsulta == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Valor do parâmetro " + xml.CodigoBeneficioCanal + " não existe."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0147R1>(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.MSG0147R1>(numeroMensagem, retorno)); } //Solicitacao Beneficios List <SolicitacaoBeneficio> lstSolicitacaoBeneficioCrm = new List <SolicitacaoBeneficio>(); if (xml.SolicitacaoAjuste.HasValue) { lstSolicitacaoBeneficioCrm = new Servicos.SolicitacaoBeneficioService(this.Organizacao, this.IsOffline).ListarPorBeneficioCanalEAjusteSaldo(beneficioCanalConsulta.ID.Value, xml.SolicitacaoAjuste.Value); } else { lstSolicitacaoBeneficioCrm = new Servicos.SolicitacaoBeneficioService(this.Organizacao, this.IsOffline).ListarPorBeneficioCanal(beneficioCanalConsulta.ID.Value); } if (lstSolicitacaoBeneficioCrm != null && lstSolicitacaoBeneficioCrm.Count > 0) { var listaOrdenada = lstSolicitacaoBeneficioCrm.OrderByDescending(t => t.DataCriacao).ToList(); lstRetorno = this.DefinirRetorno(listaOrdenada); } 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.MSG0147R1>(numeroMensagem, retorno)); } if (lstRetorno != null && lstRetorno.Count > 0) { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!"; retorno.Add("SolicitacaoBeneficioItens", lstRetorno); retorno.Add("Resultado", resultadoPersistencia); } 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.MSG0147R1>(numeroMensagem, retorno)); } catch (Exception e) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0147R1>(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); }