示例#1
0
        public void CriarTarefaChecklist(Tarefa tarefa)
        {
            if (tarefa.ReferenteA != null && tarefa.ReferenteA.Type.Equals("account"))
            {
                return;
            }

            var conta = RepositoryService.Conta.Retrieve(tarefa.ReferenteA.Id, "itbc_classificacaoid", "name");

            if (conta == null || conta.Classificacao == null)
            {
                return;
            }

            var parametroGlobalService = new Servicos.ParametroGlobalService(RepositoryService);
            var pAtividadeCheckList    = parametroGlobalService.ObterPor((int)Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, conta.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);
            var pListaAtividades       = parametroGlobalService.ObterPor((int)Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, conta.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);

            if (pAtividadeCheckList == null || String.IsNullOrEmpty(pAtividadeCheckList.Valor))
            {
                throw new ArgumentException("(CRM) Operação Cancelada. O parâmetro global de Frequência de Checklist (64) para Visita Comercial de canais com classificação : " + conta.Classificacao.Name + " não foi configurado. Para resolver o problema você deve criar esse parâmetro global.");
            }

            if (pListaAtividades == null || String.IsNullOrEmpty(pListaAtividades.Valor))
            {
                throw new ArgumentException("(CRM) Operação Cancelada. O parâmetro global de Atividade  de Checklist (63) para Visita Comercial de canais com classificação :  " + conta.Classificacao.Name + " não foi configurado. Para resolver o problema você deve criar esse parâmetro global.");
            }

            var tarefaService = new Domain.Servicos.TarefaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
            var tipoAtividade = tarefaService.BuscarTipoTarefa("Checklist");

            var novaTarefa = new Domain.Model.Tarefa(RepositoryService);

            novaTarefa.Assunto    = "Checklist - " + conta.RazaoSocial;
            novaTarefa.Conclusao  = DateTime.Now.AddDays(Convert.ToInt16(pAtividadeCheckList.Valor));
            novaTarefa.ReferenteA = new SDKore.DomainModel.Lookup(conta.ID.Value, "account");
            novaTarefa.Descricao  = pListaAtividades.Valor;

            if (tipoAtividade != null)
            {
                novaTarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, "");
            }

            tarefaService.Persistir(novaTarefa);
            Guid idTarefa = tarefaService.Persistir(tarefa);

            if (idTarefa != Guid.Empty)
            {
                Usuario proprietario = new Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscarProprietario("task", "activityid", tarefa.Id);
                if (proprietario != null)
                {
                    new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).MudarProprietarioRegistro("systemuser", proprietario.Id, "task", idTarefa);
                }
            }
        }
示例#2
0
        public void GerarAtividadesVisitaComercial(Conta conta)
        {
            List <Model.RelacionamentoCanal> lstRelacionamento = new Domain.Servicos.RelacionamentoCanalService(RepositoryService).ListarAtivosPorCanal(conta.ID.Value);

            if (lstRelacionamento.Count > 0)
            {
                var parametroGlobalService = new Servicos.ParametroGlobalService(RepositoryService);
                var pAtividadeCheckList    = parametroGlobalService.ObterPor((int)Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, conta.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);
                var pListaAtividades       = parametroGlobalService.ObterPor((int)Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, conta.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);

                if (pAtividadeCheckList == null || String.IsNullOrEmpty(pAtividadeCheckList.Valor))
                {
                    throw new ArgumentException("(CRM) Operação Cancelada.O parâmetro global de Frequência de Checklist (64) para Visita Comercial de canais com classificação : " + conta.Classificacao.Name + " não foi configurado. Para resolver o problema você deve criar esse parâmetro global.");
                }

                if (pListaAtividades == null || String.IsNullOrEmpty(pListaAtividades.Valor))
                {
                    throw new ArgumentException("(CRM) Operação Cancelada.O parâmetro global de Atividade  de Checklist (63) para Visita Comercial de canais com classificação :  " + conta.Classificacao.Name + " não foi configurado. Para resolver o problema você deve criar esse parâmetro global.");
                }

                var tarefaService = new Domain.Servicos.TarefaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                var tipoAtividade = tarefaService.BuscarTipoTarefa("Checklist");

                foreach (RelacionamentoCanal registro in lstRelacionamento)
                {
                    if (registro.Supervisor != null)
                    {
                        var tarefa = new Domain.Model.Tarefa(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);

                        if (tipoAtividade != null)
                        {
                            tarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, "");
                        }

                        tarefa.Assunto    = "Checklist - " + conta.RazaoSocial;
                        tarefa.Conclusao  = DateTime.Now.AddDays(Convert.ToInt16(pAtividadeCheckList.Valor));
                        tarefa.Descricao  = pListaAtividades.Valor;
                        tarefa.ReferenteA = new SDKore.DomainModel.Lookup(conta.ID.Value, "account");

                        Guid idTarefa = tarefaService.Persistir(tarefa);
                        if (idTarefa != Guid.Empty)
                        {
                            new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).MudarProprietarioRegistro("systemuser", registro.Supervisor.Id, "task", idTarefa);
                        }
                    }
                }
            }
        }
示例#3
0
        public void CriarTarefaChecklist(RelacionamentoCanal relacionamentoCanal)
        {
            if (relacionamentoCanal.Canal == null)
            {
                throw new ApplicationException("Canal precisa estar preenchido para criação das atividades de checklist!");
            }

            if (relacionamentoCanal.Supervisor == null)
            {
                throw new ApplicationException("Supervisor precisa estar preenchido para criação das atividades de checklist!");
            }

            var conta = RepositoryService.Conta.Retrieve(relacionamentoCanal.Canal.Id, "itbc_classificacaoid", "name", "itbc_participa_do_programa");

            if (!conta.ParticipantePrograma.HasValue || conta.ParticipantePrograma.Value != (int)Domain.Enum.Conta.ParticipaDoPrograma.Sim)
            {
                return;
            }

            if (conta == null || conta.Classificacao == null)
            {
                throw new ApplicationException("Canal precisa estar classificado para criação das atividades de checklist!");
            }

            var parametroGlobalService = new Servicos.ParametroGlobalService(RepositoryService);
            var pAtividadeCheckList    = parametroGlobalService.ObterPor((int)Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, conta.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);
            var pListaAtividades       = parametroGlobalService.ObterPor((int)Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, conta.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);

            if (pAtividadeCheckList == null || String.IsNullOrEmpty(pAtividadeCheckList.Valor))
            {
                throw new ApplicationException("Operação Cancelada. O parâmetro global de Frequência de Checklist (64) para Visita Comercial de canais com classificação : " + conta.Classificacao.Name + " não foi configurado. Para resolver o problema você deve criar esse parâmetro global.");
            }

            if (pListaAtividades == null || String.IsNullOrEmpty(pListaAtividades.Valor))
            {
                throw new ApplicationException("Operação Cancelada. O parâmetro global de Atividade  de Checklist (63) para Visita Comercial de canais com classificação :  " + conta.Classificacao.Name + " não foi configurado. Para resolver o problema você deve criar esse parâmetro global.");
            }

            var tarefaService = new Domain.Servicos.TarefaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
            var tipoAtividade = tarefaService.BuscarTipoTarefa("Checklist");

            var novaTarefa = new Domain.Model.Tarefa(RepositoryService);

            novaTarefa.Assunto    = "Checklist - " + conta.RazaoSocial;
            novaTarefa.Conclusao  = DateTime.Now.AddDays(Convert.ToInt16(pAtividadeCheckList.Valor));
            novaTarefa.ReferenteA = new SDKore.DomainModel.Lookup(conta.ID.Value, "account");
            novaTarefa.Descricao  = pListaAtividades.Valor;

            if (tipoAtividade != null)
            {
                novaTarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, "");
            }

            novaTarefa.ID = tarefaService.Persistir(novaTarefa);
            if (novaTarefa.ID.HasValue)
            {
                Usuario proprietario = new Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscarProprietario("task", "activityid", relacionamentoCanal.Supervisor.Id);
                if (proprietario != null)
                {
                    new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).MudarProprietarioRegistro("systemuser", proprietario.ID.Value, "task", novaTarefa.ID.Value);
                }
            }
        }