Exemple #1
0
        public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                CertidaoDispensaLicenciamentoAmbientalPDF certidao = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);
                DataEmissaoPorExtenso(certidao.Titulo);

                if (!string.IsNullOrEmpty(certidao.VinculoPropriedadeOutro))
                {
                    certidao.VinculoPropriedade = certidao.VinculoPropriedadeOutro;
                }

                certidao.Caracterizacao = new BarragemDispensaLicencaPDF(new BarragemDispensaLicencaBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                GerenciadorConfiguracao <ConfiguracaoCaracterizacao> configCaracterizacao = new GerenciadorConfiguracao <ConfiguracaoCaracterizacao>(new ConfiguracaoCaracterizacao());
                List <Lista> finalidades = configCaracterizacao.Obter <List <Lista> >(ConfiguracaoCaracterizacao.KeyBarragemDispensaLicencaFinalidadeAtividade);

                certidao.Caracterizacao.CampoNome  = "Finalidade";
                certidao.Caracterizacao.CampoValor = Mensagem.Concatenar(finalidades.Where(x => (int.Parse(x.Codigo) & certidao.Caracterizacao.FinalidadeAtividade) != 0).Select(x => x.Texto).ToList());

                return(certidao);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
Exemple #2
0
        public virtual void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }

            if (AuthorizeCore(filterContext.HttpContext))
            {
                // ** IMPORTANT **
                // Since we're performing authorization at the action level, the authorization code runs
                // after the output caching module. In the worst case this could allow an authorized user
                // to cause the page to be cached, then an unauthorized user would later be served the
                // cached page. We work around this by telling proxies not to cache the sensitive page,
                // then we hook our custom authorization code into the caching mechanism so that we have
                // the final say on whether a page should be served from the cache.

                HttpCachePolicyBase cachePolicy = filterContext.HttpContext.Response.Cache;
                cachePolicy.SetProxyMaxAge(new TimeSpan(0));
                cachePolicy.AddValidationCallback(CacheValidateHandler, null /* data */);
            }
            else
            {
                // auth failed, redirect to login page
                if (filterContext.HttpContext.User.Identity.IsAuthenticated &&
                    _rolesSplit.Length > 0)
                {
                    PermissaoValidar validar = new PermissaoValidar();
                    validar.Verificar(_rolesSplit.Select(x => (ePermissao)Enum.Parse(typeof(ePermissao), x)).ToArray());
                }

                if (filterContext.HttpContext.User.Identity.IsAuthenticated && filterContext.HttpContext.Request.IsAjaxRequest())
                {
                    filterContext.Result = new JsonResult
                    {
                        Data = new
                        {
                            MsgPermissoes = Validacao.Erros
                        },
                        JsonRequestBehavior = JsonRequestBehavior.AllowGet
                    };

                    filterContext.HttpContext.Response.StatusCode = 500;
                    //filterContext.HttpContext.Response.SubStatusCode = 1;
                    filterContext.HttpContext.Response.StatusDescription      = Mensagem.Concatenar(Validacao.Erros.Select(x => x.Texto).ToList());
                    filterContext.HttpContext.Response.SuppressContent        = false;
                    filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
                }
                else
                {
                    filterContext.Result = new HttpUnauthorizedResult();
                    //string url = Validacao.QueryParamSerializer(FormsAuthentication.LoginUrl);
                    //filterContext.Result = new RedirectResult(url);
                }
            }
        }
Exemple #3
0
        public bool PossuiCaracterizacaoAtividade(List <CaracterizacaoLst> caracterizacoes, int projetoDigitalId)
        {
            if (caracterizacoes == null || caracterizacoes.Count <= 0)
            {
                List <Atividade> atividades = _da.ObterAtividades(projetoDigitalId);
                Validacao.Add(Mensagem.ProjetoDigital.AtividadeSemCaracterizacao(Mensagem.Concatenar(atividades.Select(x => x.NomeAtividade).ToList())));
                return(false);
            }

            return(true);
        }
        public bool Finalizar(int id)
        {
            List <string>     lstCadastroVazio = _da.TemCadastroVazio(id);
            ProjetoGeografico projetoGeo       = new ProjetoGeografico();
            Infracao          infracao         = new Infracao();
            LocalInfracao     localInfracao    = new LocalInfracao();

            localInfracao = _localInfracaoDa.Obter(id);

            FuncionarioBus funcBus     = new FuncionarioBus();
            List <Setor>   setoresFunc = funcBus.ObterSetoresFuncionario();

            if (!setoresFunc.Any(x => x.Id == localInfracao.SetorId))
            {
                Validacao.Add(Mensagem.Fiscalizacao.SetorNaoPertenceFuncionario);
            }

            if (lstCadastroVazio.Count > 0)
            {
                Validacao.Add(Mensagem.Fiscalizacao.CadastroObrigatorio(Mensagem.Concatenar(lstCadastroVazio)));
                return(Validacao.EhValido);
            }

            projetoGeo = _projetoGeoDa.ObterProjetoGeograficoPorFiscalizacao(id);
            projetoGeo.FiscalizacaoEasting  = localInfracao.LonEastingToDecimal;
            projetoGeo.FiscalizacaoNorthing = localInfracao.LatNorthingToDecimal;

            if (!_projetoGeoDa.VerificarProjetoGeograficoProcessado(projetoGeo.Id))
            {
                Validacao.Add(Mensagem.Fiscalizacao.ProjetoGeoProcessado);
            }
            else
            {
                if (!projetoGeo.FiscalizacaoEstaDentroAreaAbrangencia)
                {
                    Validacao.Add(Mensagem.ProjetoGeografico.EmpreendimentoForaAbrangencia);
                }
            }

            infracao = _infracaoDa.Obter(id);

            if (_infracaoDa.ConfigAlterada(infracao.ConfiguracaoId, infracao.ConfiguracaoTid))
            {
                Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaConcluir);
            }

            if (_infracaoDa.PerguntaRespostaAlterada(infracao))
            {
                Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaConcluir);
            }

            return(Validacao.EhValido);
        }
        public string ObterTitulosConcluirEntrega(Protocolo protocolo, List <Int32> titulosSelecionados)
        {
            _validar.ValidarProtocoloNumero(protocolo.Numero);

            if (titulosSelecionados == null || titulosSelecionados.Count <= 0)
            {
                Validacao.Add(Mensagem.Entrega.TituloObrigatorio);
                return(string.Empty);
            }

            string numeros = string.Empty;

            try
            {
                List <Titulo> titulos = null;

                titulos = _daTitulo.TitulosProtocolo(protocolo.Id.Value);

                List <String> numTitulosAssinados = new List <String>();

                foreach (Titulo titulo in titulos)
                {
                    titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id);

                    TituloModeloResposta resposta = titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo);
                    if (resposta != null && resposta.Valor.ToString() == "3")                    //início do prazo da data de entrega
                    {
                        //ver id da Situacao "Assinado" na lov_titulo_situacao
                        if (titulo.Situacao.Id == 4 && titulosSelecionados.Exists(x => x == titulo.Id))
                        {
                            numTitulosAssinados.Add(titulo.Numero.Texto + " - " + titulo.Modelo.Nome);
                        }
                    }
                }

                if (numTitulosAssinados != null && numTitulosAssinados.Count > 0)
                {
                    numeros = Mensagem.Concatenar(numTitulosAssinados);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(numeros);
        }
        public bool AssociarEmpreendimento(Requerimento requerimento)
        {
            if (requerimento.Empreendimento.Id > 0 && requerimento.CredenciadoId != requerimento.Empreendimento.CredenciadoId)
            {
                Validacao.Add(Msg.EmpreendimentoAssociadoInvalido);
                return(Validacao.EhValido);
            }

            List <String> atividades = _da.ObterAtividadesEmpreendimentoObrigatorio(requerimento.Id);

            if (atividades != null && atividades.Count > 0)
            {
                if (requerimento.Empreendimento.Id <= 0)
                {
                    Validacao.Add(Msg.EmpreendimentoObrigatorioPorAtividade(Mensagem.Concatenar(atividades).ToLower()));
                }
            }

            return(Validacao.EhValido);
        }
Exemple #7
0
        public bool ExcluirSubItemInfracao(int id)
        {
            if (!_da.SubitemIsAtivo(id))
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ExcluirSubItemInfracaoDesativado);
            }
            else
            {
                if (_da.SubItemIsAssociadoFiscalizacao(id))
                {
                    Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ExcluirSubItemInfracaoJaAssociado);
                }
                else
                {
                    List <String> ConfiguracoesAssociadas = _da.ObterIdsConfiguracoesAssociadasSubItemInfracao(id);
                    if (ConfiguracoesAssociadas.Count > 0)
                    {
                        Validacao.Add(Mensagem.FiscalizacaoConfiguracao.SubItemInfracaoNaoPodeExcluir(Mensagem.Concatenar(ConfiguracoesAssociadas)));
                    }
                }
            }

            return(Validacao.EhValido);
        }
Exemple #8
0
        public bool Excluir(int configuracaoId)
        {
            var lstFiscalizacao = _da.ConfiguracaoEmUso(configuracaoId);

            if (lstFiscalizacao.Count > 0)
            {
                if (lstFiscalizacao.Count == 1)
                {
                    Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ExcluirInvalidoSingular(Mensagem.Concatenar(lstFiscalizacao)));
                }
                else
                {
                    Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ExcluirInvalidoPlural(Mensagem.Concatenar(lstFiscalizacao)));
                }
            }
            return(Validacao.EhValido);
        }
Exemple #9
0
        public bool Salvar(ConfigFiscalizacao configuracao)
        {
            Mensagem      msg    = null;
            List <string> lstMsg = new List <string>();

            if (configuracao.ClassificacaoId == 0)
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ClassificacaoObrigatorio);
            }

            if (configuracao.TipoId == 0)
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.TipoObrigatorio);
            }
            else if (!_da.TipoIsAtivo(configuracao.TipoId))
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Tipo de infração", configuracao.TipoTexto);
                msg.Campo = "Configuracao_Tipo";
                Validacao.Add(msg);
            }

            if (configuracao.ItemId == 0)
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ItemObrigatorio);
            }
            else if (!_da.ItemIsAtivo(configuracao.ItemId))
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Item", configuracao.ItemTexto);
                msg.Campo = "Configuracao_Item";
                Validacao.Add(msg);
            }

            if (configuracao.Id == 0)
            {
                var config = _da.Obter(configuracao.ClassificacaoId, configuracao.TipoId, configuracao.ItemId);

                if (config.GetValue <int>("Id") > 0)
                {
                    Validacao.Add(Mensagem.FiscalizacaoConfiguracao.ConfiguracaoCadastrada);
                }
            }

            configuracao.Subitens.ForEach(x =>
            {
                if (!_da.SubitemIsAtivo(x.SubItemId))
                {
                    lstMsg.Add(x.SubItemTexto);
                }
            });

            if (lstMsg.Count == 1)
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Subitem", lstMsg[0]);
                msg.Campo = "fsSubitens";
                Validacao.Add(msg);
            }
            else if (lstMsg.Count > 1)
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Subitens", Mensagem.Concatenar(lstMsg), true);
                msg.Campo = "fsSubitens";
                Validacao.Add(msg);
            }

            lstMsg = new List <string>();

            configuracao.Perguntas.ForEach(x =>
            {
                if (!_da.PerguntaIsAtivo(x.PerguntaId))
                {
                    lstMsg.Add(x.PerguntaTexto);
                }
            });

            if (lstMsg.Count == 1)
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Pergunta", lstMsg[0]);
                msg.Campo = "fsPerguntas";
                Validacao.Add(msg);
            }
            else if (lstMsg.Count > 1)
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Perguntas", Mensagem.Concatenar(lstMsg), true);
                msg.Campo = "fsPerguntas";
                Validacao.Add(msg);
            }

            lstMsg = new List <string>();

            configuracao.Campos.ForEach(x =>
            {
                if (!_da.CampoIsAtivo(x.CampoId))
                {
                    lstMsg.Add(x.CampoTexto);
                }
            });

            if (lstMsg.Count == 1)
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Campo", lstMsg[0]);
                msg.Campo = "fsCampos";
                Validacao.Add(msg);
            }
            else if (lstMsg.Count > 1)
            {
                msg       = Mensagem.FiscalizacaoConfiguracao.ItemDesativado("Campos", Mensagem.Concatenar(lstMsg), true);
                msg.Campo = "fsCampos";
                Validacao.Add(msg);
            }

            return(Validacao.EhValido);
        }
Exemple #10
0
        public bool PodeEditarRespostaInfracao(int id)
        {
            if (_da.RespostaIsAssociadoFiscalizacao(id))
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.EditarRespostaInfracaoJaAssociado);
            }
            else
            {
                List <String> PerguntasAssociadas = _da.ObterIdsPerguntasAssociadasRespostaInfracao(id);
                if (PerguntasAssociadas.Count > 0)
                {
                    Validacao.Add(Mensagem.FiscalizacaoConfiguracao.RespostaInfracaoNaoPodeEditar(Mensagem.Concatenar(PerguntasAssociadas)));
                }
            }

            return(Validacao.EhValido);
        }
Exemple #11
0
        public bool PodeEditarCampoInfracao(int id)
        {
            if (_da.CampoIsAssociadoFiscalizacao(id))
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.EditarCampoInfracaoJaAssociado);
            }
            else
            {
                List <String> ConfiguracoesAssociadas = _da.ObterIdsConfiguracoesAssociadasCampoInfracao(id);
                if (ConfiguracoesAssociadas.Count > 0)
                {
                    Validacao.Add(Mensagem.FiscalizacaoConfiguracao.CampoInfracaoNaoPodeEditar(Mensagem.Concatenar(ConfiguracoesAssociadas)));
                }
            }

            return(Validacao.EhValido);
        }
Exemple #12
0
        public void AlterarSituacaoPerguntaInfracao(int perguntaId, int situacaoNova)
        {
            List <String> configAssociadas = _da.ObterIdsConfiguracoesAssociadasPerguntaInfracao(perguntaId);

            if (configAssociadas.Count > 0 && situacaoNova == 0)
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.PerguntaInfracaoNaoPodeDesativar(Mensagem.Concatenar(configAssociadas)));
            }
            else
            {
                _da.AlterarSituacaoPerguntaInfracao(perguntaId, situacaoNova);
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.PerguntaNumSituacaoAlterada(perguntaId.ToString()));
            }
        }
Exemple #13
0
        public void AlterarSituacaoRespostaInfracao(int RespostaId, int situacaoNova)
        {
            List <String> configAssociadas = _da.ObterIdsPerguntasAssociadasRespostaInfracao(RespostaId);

            if (configAssociadas.Count > 0 && situacaoNova == 0)
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.RespostaInfracaoNaoPodeDesativar(Mensagem.Concatenar(configAssociadas)));
            }
            else
            {
                _da.AlterarSituacaoRespostaInfracao(RespostaId, situacaoNova);
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.RespostaSituacaoAlterada);
            }
        }
Exemple #14
0
        public bool Salvar(IEspecificidade especificidade)
        {
            OutrosConclusaoTransferenciaDominio esp = especificidade as OutrosConclusaoTransferenciaDominio;

            if (esp.Destinatarios.Count < 1)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("ddlDestinatarios"));
            }

            if (esp.Responsaveis.Count < 1)
            {
                Validacao.Add(Mensagem.Especificidade.ResponsavelObrigatorio("ddlResponsaveis"));
            }

            if (esp.Interessados.Count < 1)
            {
                Validacao.Add(Mensagem.Especificidade.InteressadoObrigatorio("ddlInteressados"));
            }

            List <PessoaEspecificidade> lstValida = null;

            esp.Destinatarios.ForEach(x =>
            {
                lstValida = new List <PessoaEspecificidade>();
                lstValida.AddRange(esp.Destinatarios.Where(y => x.Id == y.Id).ToList());
                if (lstValida.Count > 1)
                {
                    Validacao.Add(Mensagem.Especificidade.DestinatarioJaAdicionado);
                }
            });

            esp.Interessados.ForEach(x =>
            {
                lstValida = new List <PessoaEspecificidade>();
                lstValida.AddRange(esp.Interessados.Where(y => x.Id == y.Id).ToList());
                if (lstValida.Count > 1)
                {
                    Validacao.Add(Mensagem.Especificidade.InteressadoJaAdicionado);
                }
            });

            esp.Responsaveis.ForEach(x =>
            {
                lstValida = new List <PessoaEspecificidade>();
                lstValida.AddRange(esp.Responsaveis.Where(y => x.Id == y.Id).ToList());
                if (lstValida.Count > 1)
                {
                    Validacao.Add(Mensagem.Especificidade.ResponsavelJaAdicionado);
                }
            });

            foreach (PessoaEspecificidade pessoa in esp.Responsaveis)
            {
                for (int i = 0; i < esp.Interessados.Count; i++)
                {
                    if (esp.Interessados[i].Id == pessoa.Id)
                    {
                        Validacao.Add(new EspecificidadeMsg().InteressadoIgualResponsavel);
                        return(Validacao.EhValido);
                    }
                }
            }

            #region Verificar lista de pessoas desassociadas

            List <PessoaEspecificidade> destinatarios = PessoasDesassociadas(esp.Destinatarios, _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id));
            List <PessoaEspecificidade> responsaveis  = PessoasDesassociadas(esp.Responsaveis, _daEspecificidade.ObterEmpreendimentoResponsaveis(esp.Titulo.EmpreendimentoId.GetValueOrDefault()));
            List <PessoaEspecificidade> interessados  = PessoasDesassociadas(esp.Interessados, _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id));

            if (destinatarios.Count > 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioNaoAssociadoMais(Mensagem.Concatenar(destinatarios.Select(x => x.Nome).ToList())));
            }

            if (responsaveis.Count > 0)
            {
                Validacao.Add(Mensagem.Especificidade.ResponsavelNaoAssociadoMais(Mensagem.Concatenar(responsaveis.Select(x => x.Nome).ToList())));
            }

            if (interessados.Count > 0)
            {
                Validacao.Add(Mensagem.Especificidade.InteressadoNaoAssociadoMais(Mensagem.Concatenar(interessados.Select(x => x.Nome).ToList())));
            }

            #endregion

            RequerimentoAtividade(esp);

            return(Validacao.EhValido);
        }
Exemple #15
0
        internal EmissaoPTVRelatorio Obter(int id, bool simplificado = false)
        {
            EmissaoPTVRelatorio emissaoPTV = new EmissaoPTVRelatorio();
            List <String>       listDeclaracoesAdicionais = new List <String>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = null;

                #region SQL PTV

                comando = bancoDeDados.CriarComando(@"
				select distinct t.id,
					t.tid,
					t.numero,
					t.situacao,
					e.denominador,
					e.cnpj,
					le.sigla as uf,
					lm.texto as municipio,
					ee.logradouro,
					ee.bairro,
					ee.distrito,
					nvl(pr.nome, pr.razao_social) as resp_razao_social,
					pr.cpf as empreend_resp_cpf,
					t.partida_lacrada_origem,
					t.numero_lacre,
					t.numero_porao,
					t.numero_container,
					t.apresentacao_nota_fiscal,
					t.numero_nota_fiscal,
					t.tipo_transporte,
					t.rota_transito_definida,
					t.veiculo_identificacao_numero,
					t.itinerario,
					t.data_ativacao,
					t.valido_ate,
					t.responsavel_tecnico,
					d.nome as destinatario_nome,
					d.endereco as destinatario_endereco,
					led.sigla destinatario_uf,
					lmd.texto destinatario_mun,
					lme.texto as municipio_emissao,
					d.cpf_cnpj destinatario_cpfcnpj
				from tab_ptv                     t,
					tab_empreendimento           e,
					tab_empreendimento_endereco  ee,
					lov_estado                   le,
					lov_municipio                lm,
					lov_municipio                lme,
					tab_pessoa                   pr,
					tab_destinatario_ptv         d,
					lov_estado                   led,
					lov_municipio                lmd
				where e.id = t.empreendimento
				and (ee.empreendimento = e.id and ee.correspondencia = 0)
				and le.id = ee.estado
				and lm.id = ee.municipio
				and lme.id(+) = t.municipio_emissao
				and pr.id(+) = t.responsavel_emp
				and d.id = t.destinatario
				and led.id = d.uf
				and lmd.id = d.municipio
				and t.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        emissaoPTV.Id                     = id;
                        emissaoPTV.Tid                    = reader.GetValue <string>("tid");
                        emissaoPTV.Situacao               = reader.GetValue <int>("situacao");
                        emissaoPTV.FuncId                 = reader.GetValue <int>("responsavel_tecnico");
                        emissaoPTV.NumeroPTV              = reader.GetValue <string>("numero");
                        emissaoPTV.PartidaLacrada         = reader.GetValue <int>("partida_lacrada_origem");
                        emissaoPTV.NumeroLacre            = reader.GetValue <string>("numero_lacre");
                        emissaoPTV.NumeroPorao            = reader.GetValue <string>("numero_porao");
                        emissaoPTV.NumeroConteiner        = reader.GetValue <string>("numero_container");
                        emissaoPTV.TipoTransporte         = reader.GetValue <int>("tipo_transporte");
                        emissaoPTV.Rota_transito_definida = reader.GetValue <int>("rota_transito_definida");
                        emissaoPTV.ApresentacaoNotaFiscal = reader.GetValue <int>("apresentacao_nota_fiscal");
                        emissaoPTV.NumeroNotaFiscal       = reader.GetValue <string>("numero_nota_fiscal");
                        emissaoPTV.VeiculoNumero          = reader.GetValue <string>("veiculo_identificacao_numero");
                        emissaoPTV.Itinerario             = reader.GetValue <string>("itinerario");
                        emissaoPTV.DataAtivacao           = reader.GetValue <DateTime>("data_ativacao").ToString("dd/MM/yyyy");
                        emissaoPTV.DataValidade           = reader.GetValue <DateTime>("valido_ate").ToShortDateString();

                        emissaoPTV.Destinatario.Nome      = reader.GetValue <string>("destinatario_nome");
                        emissaoPTV.Destinatario.Endereco  = reader.GetValue <string>("destinatario_endereco");
                        emissaoPTV.Destinatario.UF        = reader.GetValue <string>("destinatario_uf");
                        emissaoPTV.Destinatario.Municipio = reader.GetValue <string>("destinatario_mun");
                        emissaoPTV.Destinatario.CPFCNPJ   = reader.GetValue <string>("destinatario_cpfcnpj");
                        emissaoPTV.MunicipioEmissao       = reader.GetValue <string>("municipio_emissao");
                        emissaoPTV.Empreendimento.ResponsavelRazaoSocial = reader.GetValue <string>("resp_razao_social");
                        emissaoPTV.Empreendimento.NomeRazao      = reader.GetValue <string>("denominador");
                        emissaoPTV.Empreendimento.EndLogradouro  = reader.GetValue <string>("logradouro");
                        emissaoPTV.Empreendimento.EndBairro      = reader.GetValue <string>("bairro");
                        emissaoPTV.Empreendimento.EndDistrito    = reader.GetValue <string>("distrito");
                        emissaoPTV.Empreendimento.EndMunicipio   = reader.GetValue <string>("municipio");
                        emissaoPTV.Empreendimento.EndUF          = reader.GetValue <string>("uf");
                        emissaoPTV.Empreendimento.CNPJ           = reader.GetValue <string>("cnpj");
                        emissaoPTV.Empreendimento.ResponsavelCPF = reader.GetValue <string>("empreend_resp_cpf");
                    }

                    reader.Close();
                }

                #endregion

                if (simplificado)
                {
                    return(emissaoPTV);
                }

                #region SQL Funcionário
                comando = bancoDeDados.CriarComando(@"
			    select f.nome, h.numero_habilitacao, h.numero_crea, f.arquivo arquivo_id from {0}tab_hab_emi_ptv h, {0}tab_funcionario f
			    where f.id = h.funcionario and f.id = :idfun"            , EsquemaBanco);

                comando.AdicionarParametroEntrada("idfun", emissaoPTV.FuncId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        emissaoPTV.FuncionarioHabilitado.Nome      = reader.GetValue <string>("nome");
                        emissaoPTV.FuncionarioHabilitado.Numero    = reader.GetValue <string>("numero_habilitacao");
                        emissaoPTV.FuncionarioHabilitado.Registro  = reader.GetValue <string>("numero_crea");
                        emissaoPTV.FuncionarioHabilitado.ArquivoId = reader.GetValue <int>("arquivo_id");
                    }
                    reader.Close();
                }

                #endregion

                #region SQL PTVProduto

                comando = bancoDeDados.CriarComando(@"select c.texto cultura,
															cc.cultivar,
															t.quantidade,
															decode(t.origem_tipo, 1, (select cfo.numero from cre_cfo cfo where cfo.id = t.origem), '') as numero_cfo,
															decode(t.origem_tipo, 2, (select cfoc.numero from cre_cfoc cfoc where cfoc.id = t.origem), '') as numero_cfoc,
															decode(t.origem_tipo, 3, (select ptv.numero from tab_ptv ptv where ptv.id = t.origem), 4, (select ptv.numero from tab_ptv_outrouf ptv where ptv.id = t.origem), '') as numero_ptv,
															decode(t.origem_tipo, 5, t.numero_origem, '') as numero_cf_cfr,
															decode(t.origem_tipo, 6, t.numero_origem, '') as numero_tf,
															u.texto as unidade_medida,
                                                            nvl(t.origem, 0) origem,
                                                            t.origem_tipo, 
                                                            t.cultura cultura_id,
                                                            t.cultivar cultivar_id
														from {0}tab_ptv_produto             t,
															 {0}tab_ptv                     p,
															 {0}tab_cultura                 c,
															 {0}tab_cultura_cultivar        cc,
															 lov_crt_uni_prod_uni_medida u
														where c.id = t.cultura
														and cc.id = t.cultivar
														and p.id = t.ptv
														and u.id = t.unidade_medida
														and t.ptv = :ptv"                                                        , EsquemaBanco);
                comando.AdicionarParametroEntrada("ptv", emissaoPTV.Id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        emissaoPTV.Produtos.Add(new PTVProdutoRelatorio()
                        {
                            CulturaTexto  = reader.GetValue <string>("cultura"),
                            CulturaId     = reader.GetValue <int>("cultura_id"),
                            CultivarTexto = reader.GetValue <string>("cultivar"),
                            CultivarId    = reader.GetValue <int>("cultivar_id"),
                            Quantidade    = reader.GetValue <decimal>("quantidade"),
                            NumeroCFO     = reader.GetValue <string>("numero_cfo"),
                            NumeroCFOC    = reader.GetValue <string>("numero_cfoc"),
                            NumeroPTV     = reader.GetValue <string>("numero_ptv"),
                            NumeroCFCFR   = reader.GetValue <string>("numero_cf_cfr"),
                            NumeroTF      = reader.GetValue <string>("numero_tf"),
                            UnidadeMedida = reader.GetValue <string>("unidade_medida"),
                            Origem        = reader.GetValue <int>("origem"),
                            OrigemTipo    = reader.GetValue <int>("origem_tipo")
                        });
                    }
                    reader.Close();
                }

                List <LaudoLaboratorial> laudoLaboratoriais = ObterLaudoLaboratorial(emissaoPTV.Produtos);
                emissaoPTV.LaboratorioNome      = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.Nome).ToList());
                emissaoPTV.NumeroLaudo          = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.LaudoResultadoAnalise).ToList());
                emissaoPTV.LaboratorioMunicipio = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.MunicipioTexto).ToList());
                emissaoPTV.LaboratorioUF        = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.EstadoTexto).ToList());

                foreach (var item in emissaoPTV.Produtos.Where(xx => (xx.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFO || xx.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFOC || xx.OrigemTipo == (int)eDocumentoFitossanitarioTipo.PTV)).ToList())
                {
                    List <String> listDeclaracoesAdicionaisAux = ObterDeclaracaoAdicional(item.Origem, item.OrigemTipo, (int)ValidacoesGenericasBus.ObterTipoProducao(item.UnidadeMedida), item.CultivarId);
                    item.DeclaracaoAdicional = String.Join(" ", listDeclaracoesAdicionaisAux.Distinct().ToList());
                    listDeclaracoesAdicionais.AddRange(listDeclaracoesAdicionaisAux);
                }

                emissaoPTV.DeclaracaoAdicionalHtml = String.Join(" ", listDeclaracoesAdicionais.Distinct().ToList());

                #endregion

                #region Tratamento Fitossanitário

                emissaoPTV.Tratamentos = TratamentoFitossanitario(emissaoPTV.Produtos);

                if (emissaoPTV.Tratamentos == null || emissaoPTV.Tratamentos.Count <= 0)
                {
                    emissaoPTV.Tratamentos = new List <TratamentosRelatorio>()
                    {
                        new TratamentosRelatorio()
                        {
                        }
                    };
                }
                #endregion

                #region Arquivo

                if (emissaoPTV.FuncionarioHabilitado.ArquivoId.HasValue && emissaoPTV.FuncionarioHabilitado.ArquivoId > 0)
                {
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    emissaoPTV.AssinaturaDigital = _busArquivo.Obter(emissaoPTV.FuncionarioHabilitado.ArquivoId.Value);
                }

                #endregion
            }

            return(emissaoPTV);
        }
        public List <Roteiro> ObterRoteirosPorAtividades(List <Atividade> atividades)
        {
            List <Roteiro> roteiros = new List <Roteiro>();

            if (atividades == null || atividades.Count <= 0)
            {
                return(roteiros);
            }

            Roteiro roteiroPadrao = ListaCredenciadoBus.RoteiroPadrao.FirstOrDefault(x => x.Setor == atividades[0].SetorId);

            if (roteiroPadrao != null)
            {
                roteiroPadrao = ObterSimplificado(roteiroPadrao.Id);
            }

            List <String> titulos = new List <String>();

            foreach (var atividade in atividades)
            {
                foreach (var finalidade in atividade.Finalidades)
                {
                    finalidade.AtividadeId      = atividade.Id;
                    finalidade.AtividadeNome    = atividade.NomeAtividade;
                    finalidade.AtividadeSetorId = atividade.SetorId;

                    String modeloTituloNaoAdicionadoRoteiro = _da.ModeloTituloNaoAdicionadoRoteiro(finalidade);
                    if (!String.IsNullOrWhiteSpace(modeloTituloNaoAdicionadoRoteiro))
                    {
                        titulos.Add("\"" + modeloTituloNaoAdicionadoRoteiro + "\"");
                        continue;
                    }

                    Roteiro roteiroAux = _da.ObterRoteirosPorAtividades(finalidade);
                    if (roteiroAux == null)
                    {
                        roteiroPadrao.AtividadeTexto = atividade.NomeAtividade;
                        roteiros.Add(roteiroPadrao);
                        continue;
                    }

                    roteiros.Add(roteiroAux);
                }
            }

            if (titulos.Count > 0)
            {
                Validacao.Add(Mensagem.Roteiro.TituloNaoAdicionadoRoteiroCredenciado(Mensagem.Concatenar(titulos)));
            }

            #region Faz a magica de agrupar os resultados

            roteiros = roteiros.GroupBy(x => x.Id).Select(y => new Roteiro
            {
                Id             = y.First().Id,
                Nome           = y.First().Nome,
                VersaoAtual    = y.First().VersaoAtual,
                Tid            = y.First().Tid,
                AtividadeTexto = y.Select(w => w.AtividadeTexto).Distinct().Aggregate((total, atual) => total + " / " + atual)
            }).ToList();

            #endregion

            return(roteiros);
        }
Exemple #17
0
        internal bool AlterarSituacao(Motosserra motosserra)
        {
            Motosserra motosserraAtual = _da.Obter(motosserra.Id);

            if (motosserra.SituacaoId == (int)eMotosserraSituacao.Desativo)
            {
                if (motosserra.SituacaoId == motosserraAtual.SituacaoId)
                {
                    Validacao.Add(Mensagem.Motosserra.SituacaoJaDesativo);

                    return(Validacao.EhValido);
                }

                List <String> numeroSituacoesTituloAssociado = _da.ValidarDesativarAssociadoTitulo(motosserra.Id);
                if (numeroSituacoesTituloAssociado.Count > 0)
                {
                    List <String> numeros   = new List <String>();
                    List <String> situacoes = new List <String>();

                    numeroSituacoesTituloAssociado.ForEach(x => {
                        numeros.Add(x.Split('|')[0]);
                        situacoes.Add(x.Split('|')[1]);
                    });

                    Validacao.Add(Mensagem.Motosserra.MotosserraNaoPodeDesativarAssociado(Mensagem.Concatenar(numeros), Mensagem.Concatenar(situacoes)));
                }
            }

            return(Validacao.EhValido);
        }
Exemple #18
0
        public bool ValidarAssociarResponsavelTecnicoHabilitado(EmissaoCFOC entidade)
        {
            #region Configurar

            List <Cultivar> cultivares = new List <Cultivar>();
            foreach (var item in entidade.Produtos)
            {
                cultivares.Add(new Cultivar()
                {
                    CulturaId = item.CulturaId, Id = item.CultivarId
                });
            }

            if (cultivares.Count <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.ProdutoObrigatorio);
                return(false);
            }

            HabilitarEmissaoCFOCFOCBus habilitarEmissaoCFOCFOCBus = new HabilitarEmissaoCFOCFOCBus();
            HabilitarEmissaoCFOCFOC    habilitacao = new HabilitarEmissaoCFOCFOCBus().ObterPorCredenciado(User.FuncionarioId);
            if (Validacao.EhValido)
            {
                PragaInternoBus pragaBus = new PragaInternoBus();
                habilitacao.Pragas.ForEach(x =>
                {
                    x.Praga.Culturas = pragaBus.ObterCulturas(x.Praga.Id);
                });
            }
            else
            {
                return(false);
            }

            #endregion

            if (habilitacao.Id <= 0 || habilitacao.Situacao == (int)eHabilitacaoCFOCFOCSituacao.Inativo)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoNaoHabilitado);
                return(false);
            }

            if (!habilitacao.Pragas.SelectMany(p => p.Praga.Culturas).ToList().Exists(c => cultivares.Exists(x => x.CulturaId == c.Id)))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoNaoHabilitadoParaCultura);
                return(false);
            }

            if (DateTime.Parse(habilitacao.ValidadeRegistro) < DateTime.Today)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.ValidadeRegistroMenorAtual);
                return(false);
            }

            foreach (var item in entidade.Pragas)
            {
                if (!habilitacao.Pragas.Exists(y => y.Praga.Id == item.Id))
                {
                    Validacao.Add(Mensagem.EmissaoCFOC.PragaNaoAssociadaHabilitacao(item.NomeCientifico, item.NomeComum));
                    return(false);
                }
            }

            List <string> aux = new List <string>();
            foreach (var habPraga in habilitacao.Pragas)
            {
                foreach (var cultivarItem in habPraga.Praga.Culturas.SelectMany(x => x.LstCultivar))
                {
                    foreach (var item in cultivares)
                    {
                        if (cultivarItem.Id == item.Id && DateTime.Parse(habPraga.DataFinalHabilitacao) < DateTime.Today)
                        {
                            if (!aux.Any(a => a == cultivarItem.Nome))
                            {
                                aux.Add(cultivarItem.Nome);
                            }
                        }
                    }
                }
            }

            if (aux.Count > 0)
            {
                if ((eDocumentoFitossanitarioTipoNumero)entidade.TipoNumero == eDocumentoFitossanitarioTipoNumero.Bloco)
                {
                    Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoHabilitacaoPragaVencidaBloco(Mensagem.Concatenar(aux)));
                }
                else
                {
                    Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoHabilitacaoPragaVencidaDigital(Mensagem.Concatenar(aux)));
                }
            }

            return(Validacao.EhValido);
        }
Exemple #19
0
        public void AlterarSituacaoCampoInfracao(int campoId, int situacaoNova)
        {
            List <String> configAssociadas = _da.ObterIdsConfiguracoesAssociadasCampoInfracao(campoId);

            if (configAssociadas.Count > 0 && situacaoNova == 0)
            {
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.CampoInfracaoNaoPodeDesativar(Mensagem.Concatenar(configAssociadas)));
            }
            else
            {
                _da.AlterarSituacaoCampoInfracao(campoId, situacaoNova);
                Validacao.Add(Mensagem.FiscalizacaoConfiguracao.CampoSituacaoAlterada);
            }
        }