protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName)) { case Domain.Enum.Plugin.MessageName.Create: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { var target = (Entity)context.InputParameters["Target"]; var entidade = target.Parse <Domain.Model.CategoriasCanal>(context.OrganizationName, context.IsExecutingOffline, adminService); new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).AdesaoAoProgramaNovaCategoria(entidade); if (entidade.ContaObj.Classificacao.Name.Equals(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Dist_VAD) || entidade.ContaObj.Classificacao.Name.Equals(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Dist_BoxMover)) { //Remover dos plugins de Categoria do Canal o envio da mensagem MSG0122. string xmlResposta = new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline).IntegracaoBarramento(entidade); } } break; case Domain.Enum.Plugin.MessageName.Update: if (context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity && context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity) { var CategoriaPre = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.CategoriasCanal>(context.OrganizationName, context.IsExecutingOffline, adminService); var CategoriaPost = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.CategoriasCanal>(context.OrganizationName, context.IsExecutingOffline, adminService); //Se estiver desativando a categoria if (CategoriaPre.Status.Value.Equals((int)Domain.Enum.CategoriaCanal.StateCode.Ativado) && CategoriaPost.Status.Value.Equals((int)Domain.Enum.CategoriaCanal.StateCode.Desativado)) { var categoriaCanalService = new CategoriaCanalService(context.OrganizationName, context.IsExecutingOffline); categoriaCanalService.InativarCategoriaDoCanal(CategoriaPost); } //Se estiver Ativando a categoria if (CategoriaPre.Status.Value.Equals((int)Domain.Enum.CategoriaCanal.StateCode.Desativado) && CategoriaPost.Status.Value.Equals((int)Domain.Enum.CategoriaCanal.StateCode.Ativado)) { new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).AdesaoAoProgramaNovaCategoria(CategoriaPost); } if (CategoriaPost.ContaObj.Classificacao.Name.Equals(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Dist_VAD) || CategoriaPost.ContaObj.Classificacao.Name.Equals(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Dist_BoxMover)) { //Remover dos plugins de Categoria do Canal o envio da mensagem MSG0122. string xmlResposta = new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).IntegracaoBarramento(CategoriaPost); } } break; } }
protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { if ((Stage)context.Stage != Stage.PostOperation) { return; } switch (EnumConverter <MessageName>(context.MessageName.ToLower())) { case MessageName.Update: if (!context.PostEntityImages.Contains("imagem")) { throw new InvalidPluginExecutionException("(CRM) É necessário registrar uma Pre Image para esse plugin!"); } Entity target = (Entity)context.InputParameters["Target"]; Domain.Model.BeneficioDoCanal beneficioCanalPostImage = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.BeneficioDoCanal>(context.OrganizationName, context.IsExecutingOffline, userService); // Inativa o Canal caso Verba = 0 e Canal não participante. if (beneficioCanalPostImage.Status.HasValue && beneficioCanalPostImage.Status.Value == (int)Domain.Enum.BeneficioDoCanal.StateCode.Ativo) { if (!beneficioCanalPostImage.VerbaBrutaPeriodoAtual.HasValue || beneficioCanalPostImage.VerbaBrutaPeriodoAtual.Value == 0) { BeneficioDoCanalService beneficioDoCanalService = new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, userService); beneficioDoCanalService.InativaBeneficioDoCanal(beneficioCanalPostImage); } } break; case MessageName.Create: if (!context.PostEntityImages.Contains("imagem")) { throw new InvalidPluginExecutionException("(CRM) É necessário registrar uma Post Image para esse plugin!"); } Domain.Model.BeneficioDoCanal beneficioCanalPost = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.BeneficioDoCanal>(context.OrganizationName, context.IsExecutingOffline, userService); if (beneficioCanalPost.ContaObj.Classificacao.Name.Equals(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Dist_VAD) || beneficioCanalPost.ContaObj.Classificacao.Name.Equals(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Dist_BoxMover)) { Domain.Integracao.MSG0165 msgProdEstab = new Domain.Integracao.MSG0165(context.OrganizationName, context.IsExecutingOffline); msgProdEstab.Enviar(beneficioCanalPost); } break; } }
public string Enviar(SolicitacaoBeneficio objModel) { string resposta; Pollux.MSG0158 mensagem = DefinirPropriedadesPlugin(objModel); Domain.Servicos.Integracao integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline); if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out resposta)) { Pollux.MSG0158R1 retorno = CarregarMensagem <Pollux.MSG0158R1>(resposta); if (!retorno.Resultado.Sucesso) { throw new ApplicationException(retorno.Resultado.Mensagem); } else { if (retorno.SaldoBeneficioCanal != null) { BeneficioDoCanal beneficioCanal = new BeneficioDoCanalService(Organizacao, 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); }
protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { var e = context.GetContextEntity(); BeneficioDoCanalService ServiceBeneficioCanal = new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, userService); switch (EnumConverter <MessageName>(context.MessageName.ToLower())) { case MessageName.Create: { Domain.Model.BeneficioDoCanal beneficioCanalCreate = e.Parse <Domain.Model.BeneficioDoCanal>(context.OrganizationName, context.IsExecutingOffline, userService); switch ((Stage)context.Stage) { case Stage.PreOperation: // Comentado devido problema com plugin do CRM2015 - não é possível alterar o OwnerId neste ponto - deixei comentado por enquanto //e = ServiceBeneficioCanal.AtribuiParaOProprietarioDoCanal(e, beneficioCanalCreate); break; } break; } } }