private void SalvarTarefa() { if (DataPrevInicioView > DataPrevTerminoView) { DataMaiorQueInicio = DataPrevInicioView; Toast.LongMessage(Mensagem.MENS_FORM_47); return; } Model.Tarefa modelTarefa = new Model.Tarefa() { Id = servicoTarefa.ObterIdTarefaSelecionada(), NomeTarefa = NomeTarefaView, TipoTarefa = TipoTarefaView, IdResponsavel = servicoTarefa.ObterIdDoResponsavelSelecionado(), DescricaoTarefa = DescricaoView, DataPrevInicio = DataPrevInicioView, DataPrevTermino = DataPrevTerminoView, IdProjeto = servicoTarefa.ObterIdDoProjetoSelecionado(), Estado = servicoTarefa.ObterEstadoSelecionado(), Motivo = RazaoView }; if (modelTarefa.Estado == Estado.Iniciada) { modelTarefa.DataInicio = DateTime.Now; } if (modelTarefa.Estado == Estado.Feita) { modelTarefa.DataTermino = DateTime.Now; } servicoTarefa.AlterarTarefa(modelTarefa); Application.Current.MainPage.Navigation.PopAsync(); }
public Guid Persistir(Model.Tarefa objTarefa) { if (objTarefa.ID != null && objTarefa.ID.Value != Guid.Empty) { RepositoryService.Tarefa.Update(objTarefa); return(objTarefa.ID.Value); } else { return(RepositoryService.Tarefa.Create(objTarefa)); } }
public Color CorTarefa(Model.Tarefa tarefa) { if (DateTime.Now.Date <= tarefa.DataPrevTermino.Date && tarefa.Estado == Internal.Estado.Aberta || tarefa.Estado == Internal.Estado.Iniciada) { return(Color.FromHex("#010870")); } else if (DateTime.Now.Date > tarefa.DataPrevTermino.Date && tarefa.Estado == Internal.Estado.Aberta || tarefa.Estado == Internal.Estado.Iniciada) { return(Color.DarkRed); } else { return(Color.Green); } }
private void DadosAutomaticos() { servicoTarefa = new TarefaService(); servicoTarefa.SalvarIdTarefaSelecionada(); tarefa = servicoTarefa.ObterTarefaSelecionada(); NomeTarefaView = tarefa.NomeTarefa; TipoTarefaView = tarefa.TipoTarefa; DescricaoView = tarefa.DescricaoTarefa; DataPrevInicioView = tarefa.DataPrevInicio; DataPrevTerminoView = tarefa.DataPrevTermino; CriadorView = servicoTarefa.ObterNomeCriadorTarefa(); ResponsavelView = servicoTarefa.ObterNomeResponsavelTarefa(); ProjetoSelecionado = servicoTarefa.ObterNomeProjetoDaTarefa(); EstadoView = tarefa.Estado; EstadoAnterior = tarefa.Estado; Estados = servicoTarefa.ListarEstadosDisponiveis(tarefa.Estado); RazaoView = tarefa.Motivo; }
public Tarefa Persistir(Model.Tarefa objTarefa, out string retorno) { //Somente Update retorno = string.Empty; Tarefa TmpTarefa = null; Trace.Add("Tarefa.Persistir IsUpdate: {0}", objTarefa.ID.HasValue); if (objTarefa.ID.HasValue) { TmpTarefa = RepositoryService.Tarefa.ObterPor(objTarefa.ID.Value); if (TmpTarefa != null) { objTarefa.ID = TmpTarefa.ID; RepositoryService.Tarefa.Update(objTarefa); Trace.Add("Atualizando tarefa ID: {0}", objTarefa.ID.Value); //Altera Status - Se necessário if (!TmpTarefa.State.Equals(objTarefa.State) && objTarefa.State != null) { Trace.Add("Atualizando Status para: {0}", objTarefa.State.Value); this.MudarStatus(TmpTarefa.ID.Value, objTarefa.State.Value, null); } return(TmpTarefa); } else { retorno = "Tarefa - " + objTarefa.ID.Value.ToString() + " não cadastrada no Crm, ação de insert não permitida para entidade 'Tarefa'."; Trace.Add(retorno); return(null); } } return(null); }
// CASO DE USO 4 – MONITORAMENTO POR TAREFAS public void MonitoramentoPorTarefas() { Trace = new SDKore.Helper.Trace("MonitoramentoPorTarefa"); mensagemLog = new List <string>(); if (StatusCompromissoCumprido == null) { throw new ApplicationException("(CRM) A execução do monitoramento foi interrompida, não foi encontrado o Status do Compromisso: " + Intelbras.CRM2013.Domain.Enum.CompromissoCanal.StatusCompromisso.Cumprido); } if (StatusCompromissoNaoCumprido == null) { throw new ApplicationException("(CRM) A execução do monitoramento foi interrompida, não foi encontrado o Status do Compromisso: " + Intelbras.CRM2013.Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido); } List <CompromissosDoCanal> compromissosCanalVencidos = CompromissoDoCanalService.ListarAtivosVencidosCumpridos(Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas); Trace.Add("Foram encontrados {0} vencidos para ser processado!", compromissosCanalVencidos.Count); Trace.SaveClear(); foreach (var item in compromissosCanalVencidos) { var compromissoCanalUpdate = new CompromissosDoCanal(item.OrganizationName, item.IsOffline) { ID = item.ID, StatusCompromisso = new Lookup(StatusCompromissoNaoCumprido.ID.Value, "") }; Trace.Add("Atualizando o compromisso do Canal [{0}] para não cumprido!", item.ID); Trace.SaveClear(); RepositoryService.CompromissosDoCanal.Update(compromissoCanalUpdate); } List <CompromissosDoCanal> compromissosCanalCumpridos = CompromissoDoCanalService.ListarAtivosCumpridos(Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas); Trace.Add("Foram encontrados {0} Cumpridos para ser processado!", compromissosCanalCumpridos.Count); Trace.SaveClear(); foreach (var item in compromissosCanalCumpridos) { List <Tarefa> tarefas = RepositoryService.Tarefa.ListarPorReferenteAAtivo(item.ID.Value); // CRIA TAREFA CASO NAO EXISTA (CASO USO 4: STEP 6) if (tarefas.Count == 0) { try { #region Obtem Parametros Global if (item.UnidadeDeNegocio == null || item.Compromisso == null) { throw new ArgumentException("(CRM) O Comromisso do Canal a seguir não tem Unidade de Negócio ou Compromisso preenchido. " + item.ID.Value); } ParametroGlobal frequenciaChecklist = ParametroGlobal.ObterPor((int)Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, null, null, null, item.Compromisso.Id, null, null); ParametroGlobal atividadesChecklist = ParametroGlobal.ObterPor((int)Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, null, null, null, item.Compromisso.Id, null, null); if (frequenciaChecklist == null) { InserirLogFormat("Parametro Global {0} não foi localizado.", Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.FrequenciaChecklist); continue; } if (atividadesChecklist == null) { InserirLogFormat("Parametro Global {0} não foi localizado.", Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.AtividadesChecklist); continue; } #endregion #region Criando Tarefa var task = new Model.Tarefa(OrganizationName, isOffline); task.Assunto = string.Format("Atividades Checklist - {0} - {1}", item.UnidadeDeNegocio.Name, item.Compromisso.Name); task.ReferenteA = new Lookup(item.ID.Value, SDKore.Crm.Util.Utility.GetEntityName(item)); task.Descricao = atividadesChecklist.Valor; task.DataInicial = DateTime.Now; task.Conclusao = DateTime.Today.AddDays(int.Parse(frequenciaChecklist.Valor)); task.Prioridade = (int)Enum.Tarefa.Prioridade.Normal; task.Status = (int)Enum.Tarefa.StatusCode.NaoIniciada; Trace.Add("Criando Tarefa para Compromisso do Canal [{0}]", item.ID.Value); Trace.Add("Atividades Checklist [{0}]", atividadesChecklist.Valor); Trace.Add("Frequencia Checklist [{0}]", frequenciaChecklist.Valor); RepositoryService.Tarefa.Create(task); #endregion } catch (Exception ex) { Trace.Add(ex); InserirLog(SDKore.Helper.Error.Handler(ex)); } finally { Trace.SaveClear(); } } } this.EnviaEmailDeLog("Monitoramento Por Tarefas"); }
public bool CriarTarefa(Lookup referenteA, string tiposolicitacaonome, string descricao, string ParecerAnterior, ParticipantesDoProcesso PartProcesso) { Guid idProprietario = Guid.Empty; string tipoProprietario = ""; Model.Tarefa task = new Model.Tarefa(NomeDaOrganizacao, _isOffline); Model.SolicitacaoBeneficio tmpSolBen = new SolicitacaoBeneficio(NomeDaOrganizacao, _isOffline); Model.SolicitacaoCadastro tmpSolCad = new SolicitacaoCadastro(NomeDaOrganizacao, _isOffline); List <RelacionamentoCanal> lstRelacionamento = new List <RelacionamentoCanal>(); task.Assunto = "Plugin - " + referenteA.Name; task.ReferenteA = new Lookup(referenteA.Id, referenteA.Type); task.Assunto = PartProcesso.Papel.Name + " - " + tiposolicitacaonome; task.Ordem = PartProcesso.Ordem; task.PareceresAnteriores = ParecerAnterior; task.DescricaoSolicitacao = descricao; task.Conclusao = DateTime.Now.AddDays(1).AddHours(3); TipoDeAtividade tmpTipoDeAtividade = RepositoryService.TipoDeAtividade.ObterPorPapel(PartProcesso.Papel.Id); if (tmpTipoDeAtividade == null) { throw new ArgumentException("Tipo de Atividade do Participante Não Encontrado! : " + PartProcesso.Papel.Name + " : " + PartProcesso.Papel.Id.ToString()); } if (tmpTipoDeAtividade.ID.HasValue) { task.TipoDeAtividade = new Lookup(tmpTipoDeAtividade.ID.Value, "itbc_tipoatividade"); } if (PartProcesso.Equipe != null) { idProprietario = PartProcesso.Equipe.Id; tipoProprietario = PartProcesso.Equipe.Type; } if (PartProcesso.Usuario != null) { idProprietario = PartProcesso.Usuario.Id; tipoProprietario = PartProcesso.Usuario.Type; } if (PartProcesso.Contato != null) { idProprietario = PartProcesso.Contato.Id; tipoProprietario = PartProcesso.Contato.Type; } if (PartProcesso.PapelNoCanal.HasValue) { if (referenteA.Type.ToLower().Equals(SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoCadastro>().ToLower())) { tmpSolCad = RepositoryService.SolicitacaoCadastro.Retrieve(referenteA.Id); lstRelacionamento = RepositoryService.RelacionamentoDoCanal.ListarPor(tmpSolCad.Canal.Id); } if (referenteA.Type.ToLower().Equals(SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoBeneficio>().ToLower())) { tmpSolBen = RepositoryService.SolicitacaoBeneficio.Retrieve(referenteA.Id); lstRelacionamento = RepositoryService.RelacionamentoDoCanal.ListarPor(tmpSolBen.Canal.Id); } if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.DiretorDeUnidade) { if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor == null) { throw new ArgumentException("Diretor da Unidade Não encontrado. Não é possivel criar o próximo passo de Tarefa!"); } Usuario _usuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).ObterPor(lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id); if (_usuario == null) { throw new ArgumentException("Não foi encontrado o usuário."); } if (_usuario.Gerente == null) { throw new ArgumentException("Gerente do Supervisor não confiurado.Operação cancelada."); } //Descemos mais um nivel para pegar o gerente do gerente _usuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).ObterPor(_usuario.Gerente.Id); if (_usuario == null) { throw new ArgumentException("Não foi encontrado o usuário."); } if (_usuario.Gerente == null) { throw new ArgumentException("Gerente do Supervisor não confiurado.Operação cancelada."); } idProprietario = _usuario.Gerente.Id; tipoProprietario = _usuario.Gerente.Type; } if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.GerenteNacionalGerenteDeDistribuicao) { if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor == null) { throw new ArgumentException("Gerente Nacional Gerente De Distribuicao Não encontrado. Não é possivel criar o próximo passo de Tarefa!"); } Usuario _usuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).ObterPor(lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id); if (_usuario == null) { throw new ArgumentException("Não foi encontrado o usuário."); } if (_usuario.Gerente == null) { throw new ArgumentException("Gerente do Supervisor não confiurado.Operação cancelada."); } idProprietario = _usuario.Gerente.Id; tipoProprietario = _usuario.Gerente.Type; } if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.KeyAccountRepresentante) { if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor != null) { idProprietario = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id; tipoProprietario = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Type; } else { throw new ArgumentException("Key Account Representante Não encontrado. Não é possivel criar o próximo passo de Tarefa!"); } } if (PartProcesso.PapelNoCanal.Value == (int)Domain.Enum.ParticipanteDoCanal.PapelNoCanal.SupervisorDeVendas) { if (lstRelacionamento.First <RelacionamentoCanal>().Supervisor != null) { idProprietario = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Id; tipoProprietario = lstRelacionamento.First <RelacionamentoCanal>().Supervisor.Type; } else { throw new ArgumentException("Supervisor De Vendas Não encontrado. Não é possivel criar o próximo passo de Tarefa!"); } } } Guid idTask = RepositoryService.Tarefa.Create(task); if (idTask != Guid.Empty) { new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).MudarProprietarioRegistro(tipoProprietario, idProprietario, "task", idTask); } return(true); }