public string Enviar(SolicitacaoBeneficio objModel) { string resposta; Intelbras.Message.Helper.MSG0173 mensagem = DefinirPropriedadesPlugin(objModel); Domain.Servicos.Integracao integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline); if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out resposta)) { Intelbras.Message.Helper.MSG0173R1 retorno = CarregarMensagem <Pollux.MSG0173R1>(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); } } } else { Intelbras.Message.Helper.ERR0001 erro001 = CarregarMensagem <Pollux.ERR0001>(resposta); throw new ArgumentException("(CRM) " + erro001.GenerateMessage(false)); } return(resposta); }
public SolicitacaoBeneficio DefinirPropriedades(Intelbras.Message.Helper.MSG0173 xml) { var crm = new SolicitacaoBeneficio(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml crm.ValorAprovado = xml.ValorAprovado; crm.IntegrarNoPlugin = true; 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); } } if (!String.IsNullOrEmpty(xml.NomeSolicitacaoBeneficio)) { crm.Nome = xml.NomeSolicitacaoBeneficio; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NomeSolicitacaoBeneficio não enviado!"; 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 = "Rebate /" + NomeUnidadeNegocio + " / " + xml.ValorSolicitado.ToString(); 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.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 = (decimal)xml.ValorAbater; Usuario objAssitente = null; if (xml.CodigoAssistente.HasValue) { 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.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); } if (xml.FormaCancelamento.HasValue) { crm.FormaCancelamento = xml.FormaCancelamento.Value; } crm.IntegradoEm = DateTime.Now; crm.IntegradoPor = usuarioIntegracao.NomeCompleto; crm.UsuarioIntegracao = xml.LoginUsuario; #endregion return(crm); }
public Intelbras.Message.Helper.MSG0173 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm) { Intelbras.Message.Helper.MSG0173 objPollux = new Pollux.MSG0173(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); //Novos Campos 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); } 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 { 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; } return(objPollux); }