示例#1
0
        public ActionResult Editar(int id)
        {
            Titulo titulo = _bus.Obter(id);

            titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id);
            SalvarVM vm = null;

            #region Nao Encontrada

            if (titulo == null || titulo.Id == 0)
            {
                Validacao.Add(Mensagem.Titulo.NaoEncontrado);
                return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
            }

            if (!_validar.ListarEditar(titulo))
            {
                return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
            }

            #endregion

            vm               = new SalvarVM(new List <Setor>(), _busModelo.ObterModelosDeclaratorios(), _bus.ObterLocais(), titulo.Setor.Id, titulo.Modelo.Id, titulo.LocalEmissao.Id);
            vm.Titulo        = titulo;
            vm.Modelo        = _busModelo.Obter(titulo.Modelo.Id);
            vm.Titulo.Modelo = vm.Modelo;
            vm.AtividadeEspecificidadeCaracterizacaoJSON = ViewModelHelper.Json(_busEspBase.GetConfigAtivEspCaracterizacao(vm.Modelo.Codigo.Value));
            vm.TemEmpreendimento = titulo.EmpreendimentoId.HasValue;
            vm.IsEditar          = true;

            if (!vm.Modelo.Regra(eRegra.PdfGeradoSistema))
            {
                ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno);
                titulo.ArquivoPdf = arqBus.ObterDados(titulo.ArquivoPdf.Id.GetValueOrDefault());

                vm.ArquivoId    = titulo.ArquivoPdf.Id;
                vm.ArquivoTexto = titulo.ArquivoPdf.Nome;
                vm.ArquivoJSon  = ViewModelHelper.JsSerializer.Serialize(titulo.ArquivoPdf);
            }

            return(View(vm));
        }
        public bool ValidarAtividade(List <Atividade> atividades, string local = null)
        {
            if (atividades.Count <= 0)
            {
                Validacao.Add(Msg.AtividadeObrigatorio);
                return(Validacao.EhValido);
            }

            int    SetorId                  = atividades[0].SetorId;
            int    titulos                  = 0;
            int    titulosDeclaratorio      = 0;
            string tituloDeclaratorioModelo = string.Empty;

            foreach (Atividade atividade in atividades)
            {
                #region Atividades

                if (SetorId != atividade.SetorId)
                {
                    Validacao.Add(Msg.AtividadesSetoresDiferentes);
                    return(Validacao.EhValido);
                }

                if (atividade.Finalidades.Count < 1)
                {
                    Validacao.Add(Msg.TituloObrigatorio(atividade.NomeAtividade));
                    return(Validacao.EhValido);
                }

                if (!_atividadeBus.AtividadeAtiva(atividade.Id))
                {
                    Validacao.Add(Msg.AtividadeDesativada(atividade.NomeAtividade, local));
                }

                foreach (var item in atividade.Finalidades)
                {
                    #region Finalidades

                    if (item.TituloModelo == 0)
                    {
                        Validacao.Add(Msg.TituloObrigatorio(atividade.NomeAtividade));
                    }

                    //Verifica se a situação da atividade é encerrada ou já tem título emitido
                    if (atividade.Protocolo.Id > 0 && _atividadeBus.ValidarAtividadeComTituloOuEncerrada(atividade.Protocolo.Id.Value, atividade.Protocolo.IsProcesso, atividade.Id, item.TituloModelo))
                    {
                        continue;
                    }

                    if (!_atividadeConfigurada.AtividadeConfigurada(atividade.Id, item.TituloModelo))
                    {
                        Validacao.Add(Msg.TituloNaoConfiguradoAtividade(item.TituloModeloTexto, atividade.NomeAtividade, local));
                        continue;
                    }

                    TituloModelo modelo = _tituloModeloBus.Obter(item.TituloModelo);

                    if (modelo.TipoDocumentoEnum == eTituloModeloTipoDocumento.Titulo)
                    {
                        ++titulos;
                    }
                    else
                    {
                        ++titulosDeclaratorio;
                        tituloDeclaratorioModelo = modelo.Nome;
                    }

                    if (titulos > 0 && titulosDeclaratorio > 0)
                    {
                        Validacao.Add(Msg.TituloDeclaratorioOutroRequerimento(tituloDeclaratorioModelo));
                    }

                    if (item.Id == 3)                    //Renovação
                    {
                        #region Renovacao

                        if (!modelo.Regra(eRegra.Renovacao))
                        {
                            Validacao.Add(Msg.TituloNaoEhRenovacao(item.TituloModeloTexto, atividade.NomeAtividade, local));
                        }

                        if (modelo.Regra(eRegra.Renovacao))
                        {
                            if (item.EmitidoPorInterno)
                            {
                                if (item.TituloModeloAnteriorId == 0 || item.TituloModeloAnteriorId == null)
                                {
                                    Validacao.Add(Msg.TituloAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
                                }

                                if (string.IsNullOrWhiteSpace(item.TituloAnteriorNumero))
                                {
                                    Validacao.Add(Msg.NumeroAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
                                }
                                else
                                {
                                    if (!ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(item.TituloAnteriorNumero))
                                    {
                                        Validacao.Add(Msg.TituloAnteriorNumeroInvalido);
                                    }
                                }

                                CarregarTituloAnteriorSigla(item);
                            }
                            else
                            {
                                ValidarTituloNumeroOrgaoTexto(item, atividade);
                            }
                        }

                        #endregion
                    }
                    else
                    {
                        #region Fase Anterior

                        if (!modelo.Regra(eRegra.FaseAnterior) && (item.TituloModeloAnteriorId != null && item.TituloModeloAnteriorId != 0))
                        {
                            Validacao.Add(Msg.TituloNaoTemTituloAnterior(item.TituloModeloAnteriorTexto, item.TituloModeloTexto, local));
                            continue;
                        }

                        Boolean adicionouTituloAnterior = false;
                        Boolean validarTituloAnterior   = Convert.ToBoolean((modelo.Resposta(eRegra.FaseAnterior, eResposta.TituloAnteriorObrigatorio) ?? new TituloModeloResposta()).Valor);

                        if (item.EmitidoPorInterno)
                        {
                            adicionouTituloAnterior = (item.TituloAnteriorId.GetValueOrDefault(0) > 0) || (!String.IsNullOrWhiteSpace(item.TituloAnteriorNumero));
                        }
                        else
                        {
                            adicionouTituloAnterior = (!String.IsNullOrWhiteSpace(item.TituloModeloAnteriorTexto)) || (!String.IsNullOrWhiteSpace(item.TituloAnteriorNumero)) || (!String.IsNullOrWhiteSpace(item.OrgaoExpedidor));
                        }

                        validarTituloAnterior = validarTituloAnterior || adicionouTituloAnterior;

                        if (modelo.Regra(eRegra.FaseAnterior) && validarTituloAnterior)
                        {
                            List <TituloModeloResposta> respostas = modelo.Respostas(eRegra.FaseAnterior, eResposta.Modelo);

                            if (respostas == null || respostas.Count < 1)
                            {
                                Validacao.Add(Msg.TituloNaoEhFaseAnterior(item.TituloModeloTexto, local));
                            }

                            if (item.EmitidoPorInterno)
                            {
                                if (item.TituloModeloAnteriorId != null && item.TituloModeloAnteriorId != 0)
                                {
                                    if (respostas.SingleOrDefault(x => x.Valor.ToString() == item.TituloModeloAnteriorId.ToString()) == null)
                                    {
                                        Validacao.Add(Msg.TituloNaoTemTituloAnterior(item.TituloModeloTexto, item.TituloModeloAnteriorTexto, local));
                                    }
                                }

                                if (string.IsNullOrWhiteSpace(item.TituloAnteriorNumero))
                                {
                                    Validacao.Add(Msg.NumeroAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
                                }
                                else
                                {
                                    if (!(ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(item.TituloAnteriorNumero) ||
                                          ValidacoesGenericasBus.ValidarNumero(item.TituloAnteriorNumero, 12)))
                                    {
                                        Validacao.Add(Msg.TituloAnteriorNumeroInvalido);
                                    }
                                    else
                                    {
                                        if (ValidacoesGenericasBus.ValidarNumero(item.TituloAnteriorNumero, 12) &&
                                            _da.ValidarNumeroSemAnoExistente(item.TituloAnteriorNumero, item.TituloModeloAnteriorId.GetValueOrDefault()))
                                        {
                                            Validacao.Add(Msg.TituloNumeroSemAnoEncontrado);
                                        }
                                    }
                                }

                                CarregarTituloAnteriorSigla(item);
                            }
                            else
                            {
                                ValidarTituloNumeroOrgaoTexto(item, atividade);
                            }
                        }

                        #endregion
                    }
                    #endregion
                }

                #endregion
            }

            return(Validacao.EhValido);
        }
示例#3
0
 public TituloModelo VerficarTituloPassivelRenovação(int titulo)
 {
     return(_modeloBus.Obter(titulo));
 }