public void ConcluirTarefaCompromissoCanal(Tarefa tarefa) { if (tarefa.Resultado.HasValue) { var compromissoDoCanal = RepositoryService.CompromissosDoCanal.Retrieve(tarefa.ReferenteA.Id); var compromissoPrograma = RepositoryService.CompromissosPrograma.Retrieve(compromissoDoCanal.CompromissosDoPrograma.ID.Value, "itbc_codigo", "itbc_tipodemonitoramento"); if (!compromissoPrograma.TipoMonitoramento.HasValue || compromissoPrograma.TipoMonitoramento.Value != (int)Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas) { return; } if (tarefa.Resultado.Value == (int)Enum.Tarefa.Resultado.Reprovada) { var statusCompromissoNaoCumprido = RepositoryService.StatusCompromissos.ObterPor(Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido); RepositoryService.CompromissosDoCanal.Update(new CompromissosDoCanal(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline) { ID = compromissoDoCanal.ID, StatusCompromisso = new Lookup(statusCompromissoNaoCumprido.ID.Value, SDKore.Crm.Util.Utility.GetEntityName(statusCompromissoNaoCumprido), statusCompromissoNaoCumprido.Nome) }); } else if (tarefa.Resultado.Value == (int)Enum.Tarefa.Resultado.Aprovada) { int ordem = (tarefa.Ordem.HasValue) ? tarefa.Ordem.Value : 1; var statusCompromissoCumprido = RepositoryService.StatusCompromissos.ObterPor(Enum.CompromissoCanal.StatusCompromisso.Cumprido); var compromissoCanalService = new CompromissosDoCanalService(RepositoryService); DateTime?validadeCompromissoCanal = compromissoCanalService.ObterValidade(compromissoDoCanal); var compromissoCanalUpdate = new CompromissosDoCanal(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline) { ID = compromissoDoCanal.ID, Validade = validadeCompromissoCanal, StatusCompromisso = new Lookup(statusCompromissoCumprido.ID.Value, statusCompromissoCumprido.Nome, SDKore.Crm.Util.Utility.GetEntityName(statusCompromissoCumprido)) }; RepositoryService.CompromissosDoCanal.Update(compromissoCanalUpdate); if (compromissoPrograma.Codigo.Value == (int)Enum.CompromissoPrograma.Codigo.Showroom) { ParametroGlobal parametroQuantidadeKitsShowroom = RepositoryService.ParametroGlobal.ObterPor((int)Enum.TipoParametroGlobal.QuantidadeKitsShowroomPorSegmento, compromissoDoCanal.UnidadeDeNegocio.Id, null, null, null, compromissoDoCanal.Compromisso.Id, null, null); if (parametroQuantidadeKitsShowroom == null) { throw new ArgumentException("(CRM) Parâmetro Global Quantidade de Evidências Show Room não encontrado para o Compromisso Envio de evidências de Showroom e Unidade de Negócio [" + compromissoDoCanal.UnidadeDeNegocio.Name + "]."); } if (parametroQuantidadeKitsShowroom.GetValue <int>() <= ordem) { return; } } CriarTarefaParaChecklistCompromissoCanal(ordem + 1, compromissoDoCanal); } } }
public void CriarTarefaParaChecklistCompromissoCanal(int ordem, CompromissosDoCanal compromissoDoCanal) { ParametroGlobal parametroFrequenciaChecklist = RepositoryService.ParametroGlobal .ObterPor((int)Enum.TipoParametroGlobal.FrequenciaChecklist, compromissoDoCanal.UnidadeDeNegocio.Id, null, null, null, compromissoDoCanal.Compromisso.Id, null, null); if (parametroFrequenciaChecklist == null) { throw new ArgumentException("(CRM) Parâmetro Global Frequencia de Checklist não encontrado para o Compromisso Envio de evidências de Showroom e Unidade de Negócio [" + compromissoDoCanal.UnidadeDeNegocio.Name + "]."); } var compromissoPrograma = new CompromissosDoPrograma(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline) { ID = compromissoDoCanal.CompromissosDoPrograma.ID, Nome = compromissoDoCanal.CompromissosDoPrograma.Nome }; TarefaService ServiceTarefas = new TarefaService(RepositoryService); string tituloAtividadeChecklist = ServiceTarefas.ObterProximaAtividadeCheckup(ordem + 1, compromissoPrograma); Tarefa task = new Tarefa(RepositoryService); task.ReferenteA = new Lookup(compromissoDoCanal.ID.Value, SDKore.Crm.Util.Utility.GetEntityName(compromissoDoCanal)); task.Assunto = tituloAtividadeChecklist; task.Ordem = ordem; task.Conclusao = DateTime.Now.AddDays(parametroFrequenciaChecklist.GetValue <int>()); var tipoTarefa = new TarefaService(RepositoryService).BuscarTipoTarefa("Checklist"); if (tipoTarefa != null) { task.TipoDeAtividade = new Lookup(tipoTarefa.ID.Value, SDKore.Crm.Util.Utility.GetEntityName(tipoTarefa)); } Guid idTarefa = RepositoryService.Tarefa.Create(task); if (idTarefa != Guid.Empty) { Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", compromissoDoCanal.Id); if (proprietario != null) { new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).MudarProprietarioRegistro("systemuser", proprietario.ID.Value, "task", idTarefa); } } }
public void EnvioDeEvidenciaShowRoom(Tarefa Task) { SolicitacaoBeneficio solBen = RepositoryService.SolicitacaoBeneficio.Retrieve(Task.ReferenteA.Id); CompromissosDoCanal compromissoCanal = RepositoryService.CompromissosDoCanal.ObterPorNome(Enum.CompromissoCanal.Compromisso.EnvioShowroom.ToString(), solBen.Canal.Id, solBen.UnidadedeNegocio.Id); if (compromissoCanal != null) { if (compromissoCanal.Compromisso.Name == Enum.CompromissoCanal.Compromisso.EnvioShowroom) { if (!Task.ReferenteA.Type.ToLower().Equals(SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoBeneficio>().ToLower())) { return; } compromissoCanal.StatusCompromisso = new Lookup(RepositoryService.StatusCompromissos.ObterPor(Domain.Enum.CompromissoCanal.StatusCompromisso.Cumprido).ID.Value, ""); RepositoryService.CompromissosDoCanal.Update(compromissoCanal); SolicitacaoBeneficio mSolicitacaoBeneficio = RepositoryService.SolicitacaoBeneficio.Retrieve(Task.ReferenteA.Id); if (mSolicitacaoBeneficio == null) { throw new ArgumentException("Solicitação de benefício no campo 'Referente a' não encontrada ou Desativada."); } ParametroGlobal parametroAtividadeQtdeEvidencia = RepositoryService.ParametroGlobal.ObterPor((int)Enum.TipoParametroGlobal.QuatidadeEvidenciaShowRoom, mSolicitacaoBeneficio.UnidadedeNegocio.Id, null, null, null, compromissoCanal.Compromisso.Id, null, null); if (parametroAtividadeQtdeEvidencia == null) { throw new ArgumentException("(CRM) Parâmetro Global Quantidade de Evidências Show Room não encontrado para o Compromisso Envio de evidências de Showroom e Unidade de Negócio [" + mSolicitacaoBeneficio.UnidadedeNegocio.Name + "]."); } ParametroGlobal parametroAtividadeChacklist = RepositoryService.ParametroGlobal.ObterPor((int)Enum.TipoParametroGlobal.AtividadesChecklist, mSolicitacaoBeneficio.UnidadedeNegocio.Id, null, null, null, compromissoCanal.Compromisso.Id, null, null); if (parametroAtividadeChacklist == null) { throw new ArgumentException("(CRM) Parâmetro Global Atividade de Checklist não encontrado para o Compromisso Envio de evidências de Showroom e Unidade de Negócio [" + mSolicitacaoBeneficio.UnidadedeNegocio.Name + "]."); } ParametroGlobal parametroFrequenciaChecklist = RepositoryService.ParametroGlobal.ObterPor((int)Enum.TipoParametroGlobal.FrequenciaChecklist, mSolicitacaoBeneficio.UnidadedeNegocio.Id, null, null, null, compromissoCanal.Compromisso.Id, null, null); if (parametroFrequenciaChecklist == null) { throw new ArgumentException("(CRM) Parâmetro Global Frequencia de Checklist não encontrado para o Compromisso Envio de evidências de Showroom e Unidade de Negócio [" + mSolicitacaoBeneficio.UnidadedeNegocio.Name + "]."); } Tarefa task = new Tarefa(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline); task.ReferenteA = new Lookup(compromissoCanal.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <CompromissosDoPrograma>()); task.Assunto = parametroAtividadeChacklist.GetValue <string>(); task.Ordem = Task.Ordem + 1; task.Conclusao = DateTime.Now.AddDays(parametroFrequenciaChecklist.GetValue <int>()); var tipoTarefa = new TarefaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).BuscarTipoTarefa("Checklist"); if (tipoTarefa != null) { task.TipoDeAtividade = new Lookup(tipoTarefa.ID.Value, SDKore.Crm.Util.Utility.GetEntityName(tipoTarefa)); } Conta canal = RepositoryService.Conta.Retrieve(mSolicitacaoBeneficio.Canal.Id, "ownerid"); Guid idTarefa = RepositoryService.Tarefa.Create(task); if (idTarefa != Guid.Empty) { if (canal != null) { Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).BuscarProprietario("account", "accountid", canal.Id); if (proprietario != null) { new Domain.Servicos.UtilService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline).MudarProprietarioRegistro("systemuser", proprietario.ID.Value, "task", idTarefa); } } } } } }