private async Task VinculaSubTitulosEmSubTarefas(AudienciaViewModel audiencia, Guid userGuid) { if (audiencia.IdTituloCobranca.HasValue && audiencia.IdTituloCobranca.Value > 0) { List <Domain.Models.TituloCobranca> titulosCobranca = await _tituloCobrancaService.ListaAsync(userGuid, Domain.Models.TipoDeTarefaEnum.Audiencia, null); Domain.Models.TituloCobranca tituloCobranca = (from t in titulosCobranca where t.Id == audiencia.IdTituloCobranca select t).FirstOrDefault(); if (audiencia.SubTarefas != null && tituloCobranca != null && tituloCobranca.SubTitulos != null && audiencia.SubTarefas.Count > 0 && tituloCobranca.SubTitulos.Count > 0) { foreach (AudienciaViewModel st in audiencia.SubTarefas) { foreach (Domain.Models.TituloCobranca subTitulo in tituloCobranca.SubTitulos) { if (st.Assunto.Equals(subTitulo.Titulo)) { st.IdTituloCobranca = subTitulo.Id; } } } } } }
public async Task <JsonReturn> CompromissoAudienciaSemProcesso(AudienciaViewModel audiencia) { audiencia.HoraAtividade = audiencia.HoraAtividade.ToLocalTime(); audiencia.DataAtividade = audiencia.DataAtividade.ToLocalTime(); userGuid = new Guid(Helpers.RetrieveUserClaimGuid(HttpContext)); var retorno = new JsonReturn(); try { audiencia.ExportadoComSucesso = false; if (!audiencia.IdForo.HasValue || audiencia.IdForo.Value < 1) { audiencia.IdForo = audiencia.IDForoDoCaso; } if (audiencia.SubTarefas != null) { foreach (AudienciaViewModel st in audiencia.SubTarefas) { if (!st.IdForo.HasValue || st.IdForo < 1) { st.IdForo = audiencia.IdForo; } } } if (audiencia.IdEscritorio == null) { audiencia.IdEscritorio = _sessionService.ObterIdEscritorioUsuario(userGuid); } await _audienciaService.SalvaAudiencia(audiencia, userGuid); if (audiencia.IdProcesso > 0) { retorno.Message = "Audiência atualizada com sucesso."; } else { retorno.Message = "Audiência criada com sucesso."; } return(retorno); } catch (InvalidDataException e) { //loggar erro retorno.Object = e.ErrorList; retorno.Status = System.Net.HttpStatusCode.InternalServerError; retorno.Message = e.ErrorList.FirstOrDefault(); return(retorno); } catch (Exception e) { //loggar erro retorno.Object = e; retorno.Status = System.Net.HttpStatusCode.InternalServerError; retorno.Message = "Erro"; return(retorno); } }
public async Task SalvaAudiencia(AudienciaViewModel audiencia, Guid userGuid) { await VinculaSubTitulosEmSubTarefas(audiencia, userGuid); Audiencia audienciaDB = _mapper.Map <Audiencia>(audiencia); audienciaDB.AutoValidacao(); audienciaDB.RepassaInformacoesParaSubTarefas(); await PersistirDados(audienciaDB, userGuid); }
public async Task ExportaAudiencia(Guid userGuid, AudienciaViewModel audiencia) { ValidaExport(audiencia); await VinculaSubTitulosEmSubTarefas(audiencia, userGuid); Audiencia toExport = _mapper.Map <Audiencia>(audiencia); toExport.AutoValidacao(); toExport.RepassaInformacoesParaSubTarefas(); var audienciaTask = _exportService.ExportarAudiencias(userGuid, new List <Audiencia>() { toExport }, audiencia.IdCasoDefinitivo); await audienciaTask; }
private void ValidaExport(AudienciaViewModel audiencia) { List <string> errorList = new List <string>(); if (audiencia.IdForoCasoLO < 1) { errorList.Add("Houve um problema ao pegar o id do foro do caso escolhido"); } audiencia.IdForo = audiencia.IdForoCasoLO; if (audiencia.IdCasoDefinitivo < 1) { errorList.Add("É necessário escolher o caso para o qual a audiência será exportada."); } if (!audiencia.IdExecutor.HasValue || audiencia.IdExecutor.Value < 1) { errorList.Add("É necessário escolher um executor para a audiencia."); } if (audiencia.DataHoraAtividade < DateTime.Now.Date) { errorList.Add("A data da audiência não pode ser retroativa."); } if (audiencia.SubTarefas != null) { foreach (AudienciaViewModel st in audiencia.SubTarefas) { if (st.DataHoraAtividade < DateTime.Now.Date) { errorList.Add("A data da subtarefa " + st.Assunto + " está retroativa."); } if (st.DataHoraAtividade > audiencia.DataHoraAtividade) { errorList.Add("A data da subtarefa " + st.Assunto + " está posterior à data da audiência correspondente."); } } } if (errorList.Count > 0) { throw new InvalidDataException(errorList); } }
public async Task <AudienciaViewModel> ObterAudiencia(Guid userGuid, int?audienciaId, int?idCaso) { AudienciaViewModel vm = new AudienciaViewModel(); HierarquiaViewModel hierarquiaVM = new HierarquiaViewModel(); Audiencia audiencia = new Audiencia(); if (audienciaId.HasValue && audienciaId.Value > 0) { audiencia = await _audienciaRepositorio.Obter(audienciaId.Value); } if (idCaso.HasValue && idCaso.Value > 0) { audiencia.IdProcesso = idCaso.Value; } vm = _mapper.Map <AudienciaViewModel>(audiencia); vm.HoraAtividade = audiencia.DataAtividade; if (audiencia.IdProcesso.HasValue && audiencia.IdProcesso > 0) { ProcessoBase caso = await _processoRepositorio.Obter(audiencia.IdProcesso.Value); vm.Processo = string.IsNullOrEmpty(caso.Titulo) ? "Caso sem título. Cliente: " + caso.ClienteNome : caso.Titulo; vm.TipoDoCaso = caso.Tipo; vm.ForoDoCaso = caso.ForoHierarquia; hierarquiaVM.ProcessoId = caso.Id; vm.IDForoDoCaso = caso.IdForoVara; vm.LocalAudiencia = caso.ForoHierarquia; } //if (audiencia.IdForo.HasValue && audiencia.IdForo.Value > 0) //{ // GrupoForo grupoForoSelecionado = await _hierarquiaService.ObtemPorForo(userGuid, audiencia.IdForo.Value); // vm.IdForo = audiencia.IdForo; // vm.IdGrupoFamilia = (int)grupoForoSelecionado.Instancia; // vm.IdGrupoForo = grupoForoSelecionado.IdGrupoPai > 0 ? grupoForoSelecionado.IdGrupoPai : grupoForoSelecionado.Id; // vm.Regiao = grupoForoSelecionado.Regiao; // vm.UF = grupoForoSelecionado.UF; //} if (!idCaso.HasValue || idCaso.Value < 1) { vm.PossiveisClientesDefinitivos = await _clienteService.ListarClientes(userGuid); } var taskExecutores = _executorService.ListaPossiveisExecutores(userGuid, Domain.Models.TipoDeTarefaEnum.Audiencia); var taskParticipantes = _profissionalService.ListarProfissionais(userGuid); var taskCategorias = _categoriaDeProfissioalService.Lista(userGuid); int?idTituloPai = null; if (audiencia.IdPai.HasValue && audiencia.IdPai > 0) { Audiencia pai = await _audienciaRepositorio.Obter(audiencia.IdPai.Value); idTituloPai = pai.IdTituloCobranca; } var taskTitulos = _tituloCobrancaService.ListaAsync(userGuid, Domain.Models.TipoDeTarefaEnum.Audiencia, idTituloPai); await Task.WhenAll(taskExecutores, taskParticipantes, taskCategorias, taskTitulos); vm.PossiveisExecutores = taskExecutores.Result; vm.TodosPossiveisExecutores = taskExecutores.Result; vm.PossiveisParticipantes = taskParticipantes.Result; vm.PossiveisCategorias = taskCategorias.Result; vm.PossiveisTitulos = taskTitulos.Result; return(vm); }