public void TestePluginTarefa() { Domain.Model.Tarefa tarefa = new Intelbras.CRM2013.Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).BuscaTarefa(new Guid("1D4EFE17-55F5-E311-91F5-00155D013E44")); if (tarefa.TipoDeAtividade != null && tarefa.TipoDeAtividade.Name == "Atividade de Checklist") { Domain.Model.CompromissosDoCanal CompromissoTarget = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarPorGuid(tarefa.ReferenteA.Id); List <string> lstAtividades = new Intelbras.CRM2013.Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).ListarAtividadesCheckup(CompromissoTarget.Compromisso.Id); if (lstAtividades.Count > 0) { string atividade = new Intelbras.CRM2013.Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).ObterProximaAtividadeCheckup(lstAtividades, tarefa.Assunto); if (!string.IsNullOrEmpty(atividade)) { Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(this.OrganizationName, this.IsOffline).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", CompromissoTarget.Id); if (proprietario != null) { new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline).GerarAtividadeChecklist(atividade, CompromissoTarget, proprietario); } } } } }
public void TestePluginCompromissoCanal() { //Variaveis para criacao da tarefa string assunto = string.Empty; string tipoTarefa = "Pendência do Canal"; DateTime dtConclusao = DateTime.Now; int tipoParametro = (int)Domain.Enum.TipoParametroGlobal.NumeroDiasParaCumprimento; Domain.Model.CompromissosDoCanal compromissoCanalPost = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarPorGuid(new Guid("EA8DD4C0-1432-E411-940F-00155D013D31")); if (compromissoCanalPost.StatusCompromisso != null && compromissoCanalPost.StatusCompromisso.Name == Domain.Enum.CompromissoCanal.StatusCompromisso.Cumprido) { //Verifica o tipo de compromisso e muda as variaveis necessarias para criar a tarefa com base no compromisso switch (compromissoCanalPost.Compromisso.Name) { case Domain.Enum.CompromissoCanal.Compromisso.Showroom: assunto = "Envio de evidências de Showroom"; dtConclusao = DateTime.Now.AddMonths(6); break; case Domain.Enum.CompromissoCanal.Compromisso.RenovacaoContatos: case Domain.Enum.CompromissoCanal.Compromisso.Sellout: case Domain.Enum.CompromissoCanal.Compromisso.Documentacao: assunto = compromissoCanalPost.Nome; //Pega a data de conclusao da tarefa nos parametros global com base no nome do tipoParametro + Guid compromisso dtConclusao = DateTime.Now.AddMonths(Convert.ToInt32(new Domain.Servicos.ParametroGlobalService(this.OrganizationName, this.IsOffline) .ObterPor(tipoParametro, null, null, null, null, compromissoCanalPost.Compromisso.Id, null, null).Valor)); break; } Domain.Model.Tarefa tarefa = new Domain.Model.Tarefa(this.OrganizationName, this.IsOffline); //Pegamos o canal para verificar o proprietario Domain.Model.Conta canal = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline) .BuscaConta(compromissoCanalPost.Canal.Id); tarefa.Assunto = assunto; Domain.Model.TipoDeAtividade tipoAtividade = new Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).BuscarTipoTarefa(tipoTarefa); if (tipoAtividade != null) { tarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, ""); } tarefa.Conclusao = dtConclusao; tarefa.ReferenteA = new SDKore.DomainModel.Lookup(compromissoCanalPost.ID.Value, "itbc_compdocanal"); tarefa.ID = new Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).Persistir(tarefa); } }
public void TestePluginAtividadesCheckList() { Domain.Model.CompromissosDoCanal CompromissoTarget = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarPorGuid(new Guid("57D38025-60F1-E311-91F5-00155D013E44")); List <string> lstAtividades = new Intelbras.CRM2013.Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).ListarAtividadesCheckup(CompromissoTarget.Compromisso.Id); if (lstAtividades.Count > 0) { string atividade = new Intelbras.CRM2013.Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).ObterProximaAtividadeCheckup(lstAtividades, null); Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(this.OrganizationName, this.IsOffline).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", CompromissoTarget.Id); if (proprietario != null) { new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline).GerarAtividadeChecklist(atividade, CompromissoTarget, proprietario); } } }
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 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 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); } }