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