public void TestarTarefaVisitaComercial() { string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"); Domain.Servicos.TarefaService ServiceTarefas = new Domain.Servicos.TarefaService(organizationName, false); Domain.Model.Tarefa Tarefa = ServiceTarefas.BuscaTarefa(new Guid("BEC979ED-A74F-E411-93F5-00155D013E70")); if (Tarefa.ReferenteA.Type.Equals("account")) { Domain.Model.Conta canal = new Intelbras.CRM2013.Domain.Servicos.ContaService(organizationName, false).BuscaConta(Tarefa.ReferenteA.Id); if (canal == null || canal.Classificacao == null) { throw new ArgumentException("Conta cadastrada no campo 'Referente a' não encontrada!"); } Domain.Model.ParametroGlobal paramGlobal = new Intelbras.CRM2013.Domain.Servicos.ParametroGlobalService(organizationName, false).ObterPor((int)Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, canal.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial); Domain.Model.ParametroGlobal paramGlobalListaAtividades = new Intelbras.CRM2013.Domain.Servicos.ParametroGlobalService(organizationName, false).ObterPor((int)Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, canal.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial); List <String> lstAtividades = new Intelbras.CRM2013.Domain.Servicos.TarefaService(organizationName, false).ConverterParametroParaLista(paramGlobalListaAtividades.Valor); if (lstAtividades.Count > 0) { string atividade = ServiceTarefas.ObterProximaAtividadeCheckup(lstAtividades, Tarefa.Assunto); if (!string.IsNullOrEmpty(atividade)) { Domain.Model.Tarefa novaTarefa = new Domain.Model.Tarefa(organizationName, false); novaTarefa.Assunto = atividade; Domain.Model.TipoDeAtividade tipoAtividade = new Domain.Servicos.TarefaService(organizationName, false).BuscarTipoTarefa("Checklist"); if (tipoAtividade != null) { novaTarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, ""); } novaTarefa.Conclusao = DateTime.Now.AddDays(Convert.ToInt16(paramGlobal.Valor)); novaTarefa.ReferenteA = new SDKore.DomainModel.Lookup(canal.ID.Value, "account"); novaTarefa.ID = new Domain.Servicos.TarefaService(organizationName, false).Persistir(novaTarefa); } } } }
public static void RelavidarUsuariosEquipe() { //string Org = "CRM2013D"; string Org = "INTELBRASQA"; List <Intelbras.CRM2013.Domain.Model.Conta> listContas = new Intelbras.CRM2013.Domain.Servicos.ContaService(Org, false).ListarTodasContas(); if (listContas.Count > 0) { Console.WriteLine("Quantidade de Contas para processamento : " + listContas.Count.ToString()); } else { Console.WriteLine("Não há conta para processamento."); } foreach (Intelbras.CRM2013.Domain.Model.Conta registroConta in listContas) { //Console.WriteLine("Verificando conta Guid : " + registroConta.ID.Value.ToString()); if (registroConta.Proprietario.Type == "team") { //verifica todos os usuários que estão na equipes. List <Intelbras.CRM2013.Domain.Model.TeamMembership> membrosEquipe = new Intelbras.CRM2013.Domain.Servicos.EquipeService(Org, false).listarMembrosEquipe(registroConta.Proprietario.Id); foreach (Intelbras.CRM2013.Domain.Model.TeamMembership membroEquipe in membrosEquipe) { //verifica se existe algum usuario na Equipe que não existe no registro Intelbras.CRM2013.Domain.Model.RelacionamentoCanal Assistente = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(Org, false).ListarPorAssistente((Guid)registroConta.ID, membroEquipe.Usuario); Intelbras.CRM2013.Domain.Model.RelacionamentoCanal Supervisor = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(Org, false).ListarPorSupervisor((Guid)registroConta.ID, membroEquipe.Usuario); if (Assistente == null && Supervisor == null) { if (membroEquipe.Usuario != registroConta.CriadoPor.Id) { new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(Org, false).RemoverUserEquipe(registroConta.Proprietario.Id, membroEquipe.Usuario); } Console.WriteLine("Removendo membro da equipe conta :" + registroConta.ID.Value.ToString()); } } } } }
public void Execute(IServiceProvider serviceProvider) { lock (thisLock) { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(null); TarefaService ServiceTarefas = new TarefaService(context.OrganizationName, context.IsExecutingOffline, service); CompromissosDoCanalService ServiceCompromissosDoCanal = new CompromissosDoCanalService(context.OrganizationName, context.IsExecutingOffline, service); try { trace.Trace(context.MessageName); Intelbras.CRM2013.Domain.Model.Tarefa mTarefa = null; switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName)) { case Domain.Enum.Plugin.MessageName.Create: var entidade = (Entity)context.InputParameters["Target"]; mTarefa = ServiceTarefas.BuscaTarefa(entidade.Id); new Intelbras.CRM2013.Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).CriarParecerParaSolicitacao(mTarefa); Guid tipoAtividadeExecucao; if (!Guid.TryParse(SDKore.Configuration.ConfigurationManager.GetSettingValue("TipoAtividadeExecucao"), out tipoAtividadeExecucao)) { throw new ArgumentException("(CRM) Faltando parâmetro TipoAtividadeExecucao no SDKore"); } trace.Trace("Parâmetro do Config: TipoAtividadeExecucao '{0}'", tipoAtividadeExecucao); if (mTarefa.ReferenteA != null && mTarefa.TipoDeAtividade != null && mTarefa.TipoDeAtividade.Id == tipoAtividadeExecucao) { trace.Trace("Tarefa do tipo Execução."); SolicitacaoBeneficio solBenef = new Intelbras.CRM2013.Domain.Servicos.SolicitacaoBeneficioService(context.OrganizationName, context.IsExecutingOffline, service).ObterPor(mTarefa.ReferenteA.Id); if (solBenef == null) { throw new ArgumentException("(CRM) Solicitação não encontrada."); } if (solBenef.TipoSolicitacao != null && solBenef.AjusteSaldo.Value) { trace.Trace("Solicitação do tipo Ajuste."); Tarefa _mTarefa = new Intelbras.CRM2013.Domain.Model.Tarefa(context.OrganizationName, context.IsExecutingOffline, service); _mTarefa.ID = context.PrimaryEntityId; _mTarefa.Resultado = (int)Domain.Enum.Tarefa.Resultado.PagamentoEfetuadoPedidoGerado; _mTarefa.State = 1; string retorno; TarefaService tarefaService = new Intelbras.CRM2013.Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service); tarefaService.Persistir(_mTarefa, out retorno); trace.Trace(tarefaService.Trace.StringTrace.ToString()); tarefaService.Trace.Save(); } } mTarefa.TempoAtuacao = 0; break; case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity: if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity) { Tarefa Tarefa = context.PostEntityImages["imagem"].Parse <Tarefa>(context.OrganizationName, context.IsExecutingOffline, service); if (Tarefa.ReferenteA == null || Tarefa.State.Value != (int)Domain.Enum.Tarefa.StateCode.Fechada) { break; } if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoBeneficio>().ToLower()) { new ProcessoDeSolicitacoesService(context.OrganizationName, context.IsExecutingOffline, service) .ConcluirTarefaSolicitacaoBeneficio(Tarefa, context.UserId); } else if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoCadastro>().ToLower()) { new ProcessoDeSolicitacoesService(context.OrganizationName, context.IsExecutingOffline, service) .ConcluirTarefaSolicitacaoDeCadastro(Tarefa, context.UserId); } else if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <CompromissosDoCanal>().ToLower()) { new ProcessoDeSolicitacoesService(context.OrganizationName, context.IsExecutingOffline, service) .ConcluirTarefaCompromissoCanal(Tarefa); } else if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <Conta>().ToLower()) { if (Tarefa.TipoDeAtividade.Name.Contains("Checklist")) { #region Pendencia Key-Account comentada Conta canal = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, service).BuscaConta(Tarefa.ReferenteA.Id); if (canal == null || canal.Classificacao == null) { throw new ArgumentException("(CRM) Conta cadastrada no campo 'Referente a' não encontrada!"); } ParametroGlobal paramGlobal = new Intelbras.CRM2013.Domain.Servicos.ParametroGlobalService(context.OrganizationName, context.IsExecutingOffline, service).ObterPor((int)Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, canal.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial); ParametroGlobal paramGlobalListaAtividades = new Intelbras.CRM2013.Domain.Servicos.ParametroGlobalService(context.OrganizationName, context.IsExecutingOffline, service).ObterPor((int)Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, canal.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial); List <String> lstAtividades = new Intelbras.CRM2013.Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).ConverterParametroParaLista(paramGlobalListaAtividades.Valor); if (lstAtividades.Count > 0) { string atividade = ServiceTarefas.ObterProximaAtividadeCheckup(lstAtividades, Tarefa.Assunto); if (!string.IsNullOrEmpty(atividade)) { Domain.Model.Tarefa novaTarefa = new Domain.Model.Tarefa(context.OrganizationName, context.IsExecutingOffline, service); Domain.Model.TipoDeAtividade tipoAtividade = new Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).BuscarTipoTarefa("Checklist"); if (tipoAtividade != null) { novaTarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, ""); } novaTarefa.Assunto = atividade; novaTarefa.Conclusao = DateTime.Now.AddDays(Convert.ToInt16(paramGlobal.Valor)); novaTarefa.ReferenteA = new SDKore.DomainModel.Lookup(canal.ID.Value, "account"); novaTarefa.ID = new Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).Persistir(novaTarefa); if (novaTarefa.ID.HasValue) { Usuario proprietario = new Domain.Servicos.UsuarioService(context.OrganizationName, context.IsExecutingOffline, service).BuscarProprietario("task", "activityid", Tarefa.Id); if (proprietario != null) { new Domain.Servicos.UtilService(context.OrganizationName, context.IsExecutingOffline, service).MudarProprietarioRegistro("systemuser", proprietario.ID.Value, "task", novaTarefa.ID.Value); } } } } else { Domain.Model.CompromissosDoCanal CompromissoCanal = ServiceCompromissosDoCanal.BuscarPorGuid(Tarefa.ReferenteA.Id); if (CompromissoCanal != null && CompromissoCanal.Compromisso != null) { List <string> listaAtividadesCheckup2 = ServiceTarefas.ListarAtividadesCheckup(CompromissoCanal.Compromisso.Id); if (listaAtividadesCheckup2.Count > 0) { string atividade = ServiceTarefas.ObterProximaAtividadeCheckup(listaAtividadesCheckup2, Tarefa.Assunto); if (!string.IsNullOrEmpty(atividade)) { Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(context.OrganizationName, context.IsExecutingOffline, service).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", CompromissoCanal.Id); if (proprietario != null) { new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(context.OrganizationName, context.IsExecutingOffline, service).GerarAtividadeChecklist(atividade, CompromissoCanal, proprietario); } } } } } #endregion } } } break; } } catch (Exception ex) { string message = SDKore.Helper.Error.Handler(ex); trace.Trace(SDKore.Helper.Error.GetMessageError(ex)); throw new InvalidPluginExecutionException(message, ex); } } }
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: var entidade = (Entity)context.InputParameters["Target"]; Domain.Model.Conta Conta = entidade.Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline); #region Sharepoint if (Conta != null && !string.IsNullOrEmpty(Conta.RazaoSocial)) { new SharepointServices(context.OrganizationName, context.IsExecutingOffline, adminService).CriarDiretorio <Domain.Model.Conta>(Conta.RazaoSocial, Conta.ID.Value); } var enderecoService = new EnderecoService(context.OrganizationName, context.IsExecutingOffline, adminService); enderecoService.AtualizaEnderecosAdicionaisDaConta(Conta); #endregion break; case Domain.Enum.Plugin.MessageName.Update: var repositoryService = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, adminService); var CanalPre = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService); var CanalPost = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService); if (CanalPost.Classificacao != null && CanalPost.Classificacao.Id == SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Classificacao.Revenda")) { if ((!CanalPre.ParticipantePrograma.HasValue || CanalPre.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) && CanalPost.ParticipantePrograma.HasValue && CanalPost.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) { var entityTarget = (Entity)context.InputParameters["Target"]; var contaService = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, adminService); CanalPost.IntegrarNoPlugin = false; AdesaoRevenda(CanalPost, repositoryService); } } //Adesão ao programa if (CanalPre.ParticipantePrograma != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim && CanalPost.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) { new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).AdesaoAoPrograma(CanalPost); var integraPontua = (new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).validaIntegraPontuaFielo(CanalPre, CanalPost)); var contatos = repositoryService.Contato.ListarAssociadosA(CanalPost.ID.ToString()); var contatoService = new Domain.Servicos.ContatoService(context.OrganizationName, context.IsExecutingOffline, adminService); foreach (var contato in contatos) { contato.IntegraIntelbrasPontua = true; contatoService.Persistir(contato); } } //Envia contatos para Fielo na troca de categoria da revenda if (CanalPre.Categoria != CanalPost.Categoria && CanalPost.Categoria.Name != "Registrada") { var contatos = repositoryService.Contato.ListarAssociadosA(CanalPost.ID.ToString()); var contatoService = new Domain.Servicos.ContatoService(context.OrganizationName, context.IsExecutingOffline, adminService); foreach (var contato in contatos) { contato.IntegraIntelbrasPontua = true; contatoService.Persistir(contato); } } //Descredenciamento ao programa if (CanalPre.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim && (CanalPost.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Nao || CanalPost.ParticipantePrograma == (int)Domain.Enum.Conta.ParticipaDoPrograma.Descredenciado)) { new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).DescredenciamentoAoPrograma(CanalPost); } //Envia Verba para Fielo if (CanalPost.StatusEnvioVMC == (int)Domain.Enum.Conta.StatusEnvioVMC.Enviando) { string retorno = new Domain.Servicos.VerbaVmcService(context.OrganizationName, context.IsExecutingOffline, adminService).EnviaVerbaFielo(CanalPost, CanalPost.CpfCnpj); var contaService = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, adminService); Conta CanalUpdate = new Conta(context.OrganizationName, context.IsExecutingOffline); CanalUpdate.ID = CanalPost.ID; if (!retorno.Contains("false")) { CanalUpdate.StatusEnvioVMC = (int)Domain.Enum.Conta.StatusEnvioVMC.Enviado; CanalUpdate.DataUltimoEnvioVMC = DateTime.Now.AddHours(3); CanalUpdate.TemDrireitoVMC = false; CanalUpdate.IntegrarNoPlugin = true; contaService.Persistir(CanalUpdate); } else { CanalUpdate.StatusEnvioVMC = (int)Domain.Enum.Conta.StatusEnvioVMC.ErroAoEnviar; CanalUpdate.TemDrireitoVMC = false; CanalUpdate.IntegrarNoPlugin = true; contaService.Persistir(CanalUpdate); } } break; } }
protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { var contaService = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, adminService); switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName)) { #region Create case Domain.Enum.Plugin.MessageName.Create: var e = (Entity)context.InputParameters["Target"]; var conta = e.Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService); if (e.Contains("itbc_cpfoucnpj") && conta.CpfCnpj != null) { if (contaService.BuscaContaPorCpfCnpj(conta.CpfCnpj, conta.TipoConstituicao.Value) != null) { throw new ArgumentException("(CRM) Ja Existe uma Conta com esse mesmo CPF/CNPJ."); } if (conta.TipoConstituicao != (int)Domain.Enum.Conta.TipoConstituicao.Estrangeiro) { e.Attributes["new_sem_masc_cnpj_cpf"] = conta.CpfCnpj.GetOnlyNumbers(); e.Attributes["itbc_cpfoucnpj"] = conta.CpfCnpj.InputMask(); } } else { throw new ArgumentException("(CRM) Campo CPF ou CNPJ não esta preenchido."); } PreenchimentoDeCampos(ref context, adminService); if (conta.AssistenciaTecnica == null) { e.Attributes["itbc_isastec"] = false; } //Atualiza endereço Padrão if (conta.EnderecoPadrao == "e") { e.Attributes["new_altera_endereco_padrao"] = "n"; } break; #endregion #region Update case Domain.Enum.Plugin.MessageName.Update: PreenchimentoDeCampos(ref context, adminService); var entityTarget = (Entity)context.InputParameters["Target"]; var entityPre = context.PreEntityImages["imagem"]; var entityMerge = context.GetContextEntityMerge("imagem"); var canalMerge = ((Entity)entityMerge).Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService); var canalPre = new Domain.Servicos.CanalServices(context.OrganizationName, context.IsExecutingOffline, adminService).ObterCanalPorId(canalMerge.ID.Value); var repositoryService = new Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, adminService); var contaUp = entityTarget.Parse <Domain.Model.Conta>(context.OrganizationName, context.IsExecutingOffline, adminService); if (entityTarget.Contains("itbc_cpfoucnpj") && (canalPre.CpfCnpj.GetOnlyNumbers() != canalMerge.CpfCnpj.GetOnlyNumbers() || canalMerge.TipoConstituicao == (int)Domain.Enum.Conta.TipoConstituicao.Estrangeiro)) { if (contaService.BuscaOutraContaPorCpfCnpj(contaUp.CpfCnpj, contaUp.ID.Value, canalMerge.TipoConstituicao.Value) != null) { throw new ArgumentException("(CRM) Ja Existe uma Conta com esse mesmo CPF/CNPJ."); } entityTarget.Attributes["new_sem_masc_cnpj_cpf"] = contaUp.CpfCnpj.GetOnlyNumbers(); } foreach (var item in entityTarget.Attributes) { entityMerge.Attributes[item.Key] = item.Value; } if (canalMerge.AssistenciaTecnica == null) { entityTarget.Attributes["itbc_isastec"] = false; } //Atualiza endereço Padrão if (canalMerge.EnderecoPadrao == "e") { new Intelbras.CRM2013.Domain.Servicos.EnderecoService(context.OrganizationName, context.IsExecutingOffline, adminService).AtualizaEnderecosAdicionaisDaConta(canalMerge); entityTarget.Attributes["new_altera_endereco_padrao"] = "n"; } //Atualizando informações de endereço entityTarget.Attributes["address1_line1"] = canalMerge.Endereco1Rua; entityTarget.Attributes["address1_city"] = canalMerge.Endereco1Cidade; entityTarget.Attributes["address2_city"] = canalMerge.Endereco1Cidade; entityTarget.Attributes["address1_county"] = canalMerge.Endereco1Bairro; entityTarget.Attributes["address2_county"] = canalMerge.Endereco2Bairro; entityTarget.Attributes["address1_stateorprovince"] = canalMerge.Endereco1Estado; entityTarget.Attributes["new_sem_masc_cnpj_cpf"] = canalMerge.CpfCnpj.GetOnlyNumbers(); if (canalMerge.Classificacao != null && canalMerge.Classificacao.Id == SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Classificacao.Revenda")) { if ((!canalPre.ParticipantePrograma.HasValue || canalPre.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) && canalMerge.ParticipantePrograma.HasValue && canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) { canalMerge.IntegrarNoPlugin = true; } } //Valida Credenciamento if (canalMerge.Classificacao != null && canalMerge.Classificacao.Id != SDKore.Configuration.ConfigurationManager.GetSettingValue <Guid>("Intelbras.Classificacao.Revenda")) { if (canalPre.ParticipantePrograma.HasValue && canalMerge.ParticipantePrograma.HasValue && canalPre.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim && canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim) { new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).validaAdesaoaoPrograma(canalMerge); entityTarget.Attributes["itbc_integraintelbraspontua"] = true; canalMerge.IntegraIntelbrasPontua = true; } } //Envia conta para Fielo var IntegraPontua = (new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).validaIntegraPontuaFielo(canalPre, canalMerge)); entityTarget.Attributes["itbc_integraintelbraspontua"] = IntegraPontua; canalMerge.IntegraIntelbrasPontua = IntegraPontua; // Valida Descredenciamento ao programa if (canalPre.ParticipantePrograma.HasValue && canalMerge.ParticipantePrograma.HasValue && canalPre.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim && (canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Nao || canalMerge.ParticipantePrograma.Value == (int)Domain.Enum.Conta.ParticipaDoPrograma.Descredenciado)) { // Se usuário tentando descredenciar. if (context.Depth == 1) { new Domain.Servicos.BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).ValidarDescredenciamentoAoPrograma(canalMerge); entityTarget.Attributes["itbc_integraintelbraspontua"] = true; canalMerge.IntegraIntelbrasPontua = true; } } //Envia Verba para Fielo if (canalMerge.StatusEnvioVMC == (int)Domain.Enum.Conta.StatusEnvioVMC.AguardandoEnvio) { entityTarget.Attributes["itbc_statusenviovmc"] = (int)Domain.Enum.Conta.StatusEnvioVMC.Enviando; canalMerge.IntegrarNoPlugin = true; } if (!canalMerge.IntegrarNoPlugin || canalMerge.IntegrarNoPlugin == null || canalMerge.IntegrarNoPlugin.ToString().Equals("")) { contaService.IntegracaoBarramento(canalMerge, ref entityTarget); } break; #endregion } }