public void TestePluginMonitoramento() { Domain.Model.CompromissosDoCanal CompromissoTarget = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarPorGuid(new Guid("2612525C-1432-E411-940F-00155D013D31")); //perfil = B1486E56-13F6-E311-91F5-00155D013E44 //check if status changed on plugin Guid? UnidadeNeg = null; Guid? Classificacao = null; Guid? Categoria = null; Boolean?Exclusividade = null; Domain.Model.Conta canal = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline) .BuscaConta(CompromissoTarget.Canal.Id); if (canal != null) { if (CompromissoTarget.UnidadeDeNegocio != null) { UnidadeNeg = CompromissoTarget.UnidadeDeNegocio.Id; } if (canal.Classificacao != null) { Classificacao = canal.Classificacao.Id; } Domain.Model.CategoriasCanal categoriaCanal = new Domain.Servicos.CategoriaCanalService(this.OrganizationName, this.IsOffline) .ListarPor(canal.ID.Value, UnidadeNeg).FirstOrDefault(); if (categoriaCanal != null && categoriaCanal.Categoria != null) { Categoria = categoriaCanal.Categoria.Id; } if (canal.Exclusividade != null) { Exclusividade = canal.Exclusividade.Value; } Domain.Model.Perfil perfil = new Intelbras.CRM2013.Domain.Servicos.PerfilServices(this.OrganizationName, this.IsOffline).BuscarPerfil(Classificacao, UnidadeNeg, Categoria, Exclusividade); if (perfil != null) { List <Domain.Model.BeneficiosCompromissos> benefCompr = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(this.OrganizationName, this.IsOffline).BuscaBeneficiosCompromissos(perfil.ID.Value, CompromissoTarget.Compromisso.Id, null); if (benefCompr.Count > 0) { foreach (Domain.Model.BeneficiosCompromissos item in benefCompr) { bool flagAtualizarBeneficio = true; Lookup statusBenef = (Lookup) new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(this.OrganizationName, this.IsOffline) .BuscarBeneficioCorrespondentePorCodigoStatus(item, CompromissoTarget.StatusCompromisso.Id); if (statusBenef != null) { if (statusBenef.Name != Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { //fluxo alternativo 1 List <Domain.Model.BeneficiosCompromissos> benefComprAlternativo = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(this.OrganizationName, this.IsOffline).BuscaBeneficiosCompromissos(perfil.ID.Value, null, item.Beneficio.Id); if (benefComprAlternativo.Count > 0) { foreach (Domain.Model.BeneficiosCompromissos registro in benefComprAlternativo) { Domain.Model.CompromissosDoCanal comproCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarCompromissoCanal(registro.Compromisso.Id, UnidadeNeg.Value, canal.ID.Value); if (comproCanal != null) { if (comproCanal.StatusCompromisso.Name == Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { flagAtualizarBeneficio = false; break; } } else { throw new ArgumentException("O compromisso " + registro.Compromisso.Name + " não existe para este Canal"); } } } } if (flagAtualizarBeneficio) { Domain.Model.BeneficioDoCanal benefCanal = new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(this.OrganizationName, this.IsOffline) .BuscarBeneficioCanal(item.Beneficio.Id, UnidadeNeg.Value, canal.ID.Value); benefCanal.StatusBeneficio = statusBenef; new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(this.OrganizationName, this.IsOffline).AlterarBeneficioCanal(benefCanal); } } } } } } }
public void AtualizarBeneficiosECompromissosCascata(CompromissosDoCanal CompromissoTarget) { Guid? UnidadeNeg = null; Guid? Classificacao = null; Guid? Categoria = null; Boolean?Exclusividade = null; if (CompromissoTarget.Canal == null) { throw new ArgumentException("Campo canal não preenchido"); } Domain.Model.Conta canal = new Domain.Servicos.ContaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscaConta(CompromissoTarget.Canal.Id); if (canal != null) { if (CompromissoTarget.UnidadeDeNegocio != null) { UnidadeNeg = CompromissoTarget.UnidadeDeNegocio.Id; } if (canal.Classificacao != null) { Classificacao = canal.Classificacao.Id; } Domain.Model.CategoriasCanal categoriaCanal = new Domain.Servicos.CategoriaCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .ListarPor(canal.ID.Value, UnidadeNeg).FirstOrDefault(); if (categoriaCanal != null && categoriaCanal.Categoria != null) { Categoria = categoriaCanal.Categoria.Id; } if (canal.Exclusividade != null) { Exclusividade = canal.Exclusividade.Value; } Domain.Model.Perfil perfil = new Intelbras.CRM2013.Domain.Servicos.PerfilServices(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscarPerfil(Classificacao, UnidadeNeg, Categoria, Exclusividade); if (perfil != null) { List <Domain.Model.BeneficiosCompromissos> benefCompr = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscaBeneficiosCompromissos(perfil.ID.Value, CompromissoTarget.Compromisso.Id, null); if (benefCompr != null && benefCompr.Count > 0) { foreach (Domain.Model.BeneficiosCompromissos item in benefCompr) { bool flagAtualizarBeneficio = true; Lookup statusBenef = (Lookup) new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscarBeneficioCorrespondentePorCodigoStatus(item, CompromissoTarget.StatusCompromisso.Id); if (statusBenef != null) { if (statusBenef.Name != Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { //fluxo alternativo 1 List <Domain.Model.BeneficiosCompromissos> benefComprAlternativo = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscaBeneficiosCompromissos(perfil.ID.Value, null, item.Beneficio.Id); if (benefComprAlternativo.Count > 0) { List <BeneficiosCompromissos> lstDoBeneficio = new List <BeneficiosCompromissos>();// benefComprAlternativo.Where(x => x.Compromisso != CompromissoTarget.Compromisso).ToList<BeneficiosCompromissos>(); foreach (var _benefCompro in benefComprAlternativo) { if (_benefCompro.Compromisso != null && _benefCompro.Compromisso.Id != CompromissoTarget.Compromisso.Id) { lstDoBeneficio.Add(_benefCompro); } } foreach (Domain.Model.BeneficiosCompromissos registro in lstDoBeneficio) { if (registro.Compromisso == null) { throw new ArgumentException("Beneficio x Compromisso do Perfil : " + perfil.Nome + " configurado incorretamente , campo compromisso vazio.Operação cancelada."); } Domain.Model.CompromissosDoCanal comproCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscarCompromissoCanal(registro.Compromisso.Id, UnidadeNeg.Value, canal.ID.Value); if (comproCanal != null) { if (comproCanal.StatusCompromisso != null && comproCanal.StatusCompromisso.Name == Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { flagAtualizarBeneficio = false; break; } } else { throw new ArgumentException("O compromisso " + registro.Compromisso.Name + " não existe para este Canal"); } } } } if (flagAtualizarBeneficio) { Domain.Model.BeneficioDoCanal benefCanal = new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscarBeneficioCanal(item.Beneficio.Id, UnidadeNeg.Value, canal.ID.Value); benefCanal.StatusBeneficio = statusBenef; new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).AlterarBeneficioCanal(benefCanal); } } } } } } }
public void TesteCrmWebService() { Guid? categoria = Guid.Empty; Guid? unidNeg = Guid.Empty; Guid? benefPrograma = Guid.Empty; Guid? classifCanal = Guid.Empty; string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"); string resposta = string.Empty; Domain.Model.Conta canal = new Domain.Model.Conta(organizationName, false); JavaScriptSerializer jsonConverter = new JavaScriptSerializer(); Dictionary <string, object> dictResposta = new Dictionary <string, object>(); try { Intelbras.CRM2013.Domain.Model.BeneficioDoCanal benefCanal = new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(organizationName, false).ObterPor(new Guid("88DD05CD-4D17-E411-9233-00155D013E44")); if (benefCanal == null || benefCanal.StatusBeneficio == null || (benefCanal.StatusBeneficio.Name != "Suspenso" && benefCanal.StatusBeneficio.Name != "Bloqueado")) { dictResposta.Add("Resultado", false); dictResposta.Add("Mensagem", "Não possui benefícios Suspensos ou Bloqueados"); resposta = jsonConverter.Serialize(dictResposta); } #region Se tiver algum atributo no beneficio do canal e canal vazio, seta a variavel como null se não,pega o Guid dela categoria = (benefCanal.Categoria == null) ? (Guid?)null : benefCanal.Categoria.Id; unidNeg = (benefCanal.UnidadeDeNegocio == null) ? (Guid?)null : benefCanal.UnidadeDeNegocio.Id; benefPrograma = (benefCanal.Beneficio == null) ? (Guid?)null : benefCanal.Beneficio.Id; if (benefCanal.Canal != null) { canal = new Intelbras.CRM2013.Domain.Servicos.ContaService(organizationName, false).BuscaConta(benefCanal.Canal.Id); if (canal != null && canal.Classificacao != null) { classifCanal = canal.Classificacao.Id; } else { classifCanal = null; } } #endregion #region Pega a lista de Beneficio x Compromisso com base no perfil(Unidade negocio,classificacao canal,categoria) Domain.Model.Perfil perfil = new Intelbras.CRM2013.Domain.Servicos.PerfilServices(organizationName, false).BuscarPerfil(unidNeg, classifCanal, categoria, null); List <Domain.Model.BeneficiosCompromissos> benefCompr = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(organizationName, false).BuscaBeneficiosCompromissos(perfil.ID.Value, null, benefPrograma.Value); #endregion List <string> lstCompromissos = new List <string>(); foreach (Domain.Model.BeneficiosCompromissos item in benefCompr) { if (item.Compromisso != null) { Domain.Model.CompromissosDoCanal comproDoCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(organizationName, false).BuscarCompromissoCanal(item.Compromisso.Id, unidNeg.Value, canal.ID.Value); if (comproDoCanal != null && comproDoCanal.StatusCompromisso != null && comproDoCanal.StatusCompromisso.Name == "Não Cumprido") { lstCompromissos.Add(comproDoCanal.Nome); } } } dictResposta.Add("Resultado", true); dictResposta.Add("Compromissos", lstCompromissos); resposta = jsonConverter.Serialize(dictResposta); } catch (Exception e) { dictResposta = new Dictionary <string, object>(); dictResposta.Add("Resultado", false); dictResposta.Add("Mensagem", e.Message); resposta = jsonConverter.Serialize(dictResposta); } }