Exemplo n.º 1
0
        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);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        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);
            }
        }