Commit a2a713f9 authored by sandroresende's avatar sandroresende

modulo consulta situacao rps

parent 2bee96ce
<?php
namespace App\Financeiro;
use Illuminate\Database\Eloquent\Model;
class SituacaoPropostasAjustadas extends Model
{
protected $connection = 'pgsql_corp';
protected $table = 'mcid_financeiro.opc_situacao_proposta_ajustada';
public $timestamps = false; // tabela não possui coluna de data de criação/atualização
}
<?php
namespace App\Financeiro;
use Illuminate\Database\Eloquent\Model;
class ViewAgrupamentoUfMunicipioRps extends Model
{
protected $connection = 'pgsql_corp';
protected $table = 'mcid_financeiro.view_sys_agrupamento_uf_municipio_rps';
public $timestamps = false; // tabela não possui coluna de data de criação/atualização
}
<?php
namespace App\Financeiro;
use Illuminate\Database\Eloquent\Model;
class ViewRelatorioGeralRp2 extends Model
{
protected $connection = 'pgsql_corp';
protected $table = 'mcid_financeiro.view_sys_relatorio_geral_rp2';
public $timestamps = false; // tabela não possui coluna de data de criação/atualização
}
<?php
namespace App\Financeiro;
use Illuminate\Database\Eloquent\Model;
class ViewRelatorioGeralRp8 extends Model
{
protected $connection = 'pgsql_corp';
protected $table = 'mcid_financeiro.view_sys_relatorio_geral_rp8';
public $timestamps = false; // tabela não possui coluna de data de criação/atualização
}
......@@ -5,6 +5,10 @@ namespace App\Http\Controllers;
use App\Corporativo\Mcid_corporativo\ViewProgramaResumido;
use App\Departamento;
use App\EntePublico;
use App\Financeiro\SituacaoPropostasAjustadas;
use App\Financeiro\ViewAgrupamentoUfMunicipioRps;
use App\Financeiro\ViewRelatorioGeralRp2;
use App\Financeiro\ViewRelatorioGeralRp8;
use Illuminate\Http\Request;
use App\TipoUsuario;
......@@ -452,6 +456,23 @@ public function buscarValidaCnpj(){
}
public function listaUfsRps(){
return ViewAgrupamentoUfMunicipioRps::selectRaw('sg_uf')->groupBy('sg_uf')->get();
}
public function listaMunicipiosRps($uf){
return $ufsRp8 = ViewAgrupamentoUfMunicipioRps::selectRaw('ds_municipio')
->where('sg_uf',$uf)->groupBy('ds_municipio')->orderBy('ds_municipio')->get();
}
public function listaSituacaoPropostasRps(){
return SituacaoPropostasAjustadas::orderBy('txt_sistuacao_proposta_ajustada')->get();
}
......
......@@ -3,6 +3,8 @@
namespace App\Http\Controllers\Propostas;
use App\EntePublico;
use App\Financeiro\ViewRelatorioGeralRp2;
use App\Financeiro\ViewRelatorioGeralRp8;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
......@@ -1183,4 +1185,40 @@ public function pesquisarProponenteTransferegov(Request $request){
compact('propostasTransferegov','acaoSelecionada','titulo','subtitulo1','totalPropostaTransferegov'));
}
public function consultarPropostasRps(){
return view('modulo_propostas.proposta.admin.ConsultarSituacaoPropostasRps');
}
public function pesquisarPropostasRps(Request $request){
// return $request->all();
$where = [];
if($request->situacaoProposta){
$where[] = ['situacao_ajustada', $request->situacaoProposta];
}
if($request->estado){
$where[] = ['prop_sgl_uf_proponente', $request->estado];
}
if($request->txt_rp == 'RP2'){
$dadosRP2 = ViewRelatorioGeralRp2::where($where)->get();
$dadosRP8 = '';
}elseif($request->txt_rp == 'RP8'){
$dadosRP2 = '';
$dadosRP8 = ViewRelatorioGeralRp8::where($where)->get();
}else{
$dadosRP2 = ViewRelatorioGeralRp2::where($where)->get();
$dadosRP8 = ViewRelatorioGeralRp8::where($where)->get();
}
return $dadosRP2;
return view('modulo_propostas.proposta.admin.RelatorioSituacaoPropostasRps');
}
}
This diff is collapsed.
......@@ -56,6 +56,9 @@ Vue.component('auto-complete-proposta', require('./components/mod_propostas/Auto
Vue.component('filtro-propostas-transferegov', require('./components/mod_propostas/FiltroPropostasTransferegov.vue'));
Vue.component('filtro-execucao-transferegov', require('./components/mod_propostas/FiltroExecucaoTransferegov.vue'));
Vue.component('filtro-rps', require('./components/mod_propostas/admin/FiltroRPs.vue'));
......
<template>
<div class="form-group">
<div class="row">
<div class="column col-xs-12 col-md-2">
<label for="txt_rp">Resultado Primário</label>
<select
id="txt_rp"
class="form-select br-select"
name="txt_rp"
v-model="txt_rp">
<option value="">Escolha um RP:</option>
<option value="RP2">RP2</option>
<option value="RP8">RP8</option>
</select>
</div>
<div class="column col-xs-12 col-md-8">
<label for="situacaoProposta">Situação da Proposta</label>
<select
id="situacaoProposta"
class="form-select br-select"
name="situacaoProposta"
v-model="situacaoProposta">
<option value="">Escolha uma Situação</option>
<option v-for="item in situacoesPropostas" v-text="item.txt_sistuacao_proposta_ajustada" :value="item.id" :key="item.id"></option>
</select>
</div>
<div class="column col-xs-12 col-md-2">
<label for="uf">UF</label>
<select
id="estado"
class="form-select br-select"
name="estado"
@change="onChangeEstado"
v-model="estado">
<option value="">Escolha um Estado:</option>
<option v-for="estado in estados" v-text="estado.txt_uf" :value="estado.id" :key="estado.id"></option>
</select>
</div>
</div>
<div class="p-3 text-right">
<button class="br-button primary mr-3" type="submit">Pesquisar</button>
<button class="br-button danger mr-3" type="button" onclick="javascript:window.history.go(-1)">Voltar
</button>
</div>
</div>
</template>
<script>
export default {
props:['url'],
data(){
return{
estados:'',
estado:'',
txt_rp:'',
textoEscolhaMunicipio: "Filtre o Estado",
textoEscolhaEnte:"Filtre o Município",
entespublicos: '',
entepublico:'',
situacoesPropostas: '',
situacaoProposta:'',
buscandoEnte: false,
buscando: false,
}
},
methods:{
onChangeEstado() {
this.textoEscolhaMunicipio = "Buscando...";
this.municipio = '';
this.buscando = true;
if(this.estado != '') {
//busca dados no banco de dados para carregar no componente
axios.get(this.url + '/api/rps/municipios/' + this.estado).then(resposta => {
this.textoEscolhaMunicipio = "Escolha um municipio:";
this.buscando = false;
this.municipios = resposta.data;
console.log(this.municipios);
}).catch(error => {
console.log(error);
});
} else {
this.buscando = false;
this.municipio = '';
this.textoEscolhaMunicipio = "Filtre o Estado"
}
}
},
mounted() {
//console.log(this.form._token);
axios.get(this.url + '/api/ufs').then(resposta => {
//console.log(resposta.data);
this.estados = resposta.data;
this.estado = '';
this.municipio = '';
}).catch(erro => {
console.log(erro);
})
axios.get(this.url + '/api/rps/situacaoPropostasAjustadas').then(resposta => {
//console.log(resposta.data);
this.situacoesPropostas = resposta.data;
this.situacaoProposta = '';
}).catch(erro => {
console.log(erro);
})
}
}
</script>
......@@ -91,6 +91,11 @@
<li><a class="menu-item" href="{{ url('/admin/selecao/propostas/transferegov') }}" title="Propostas Transferegov"><span class="icon">
<i class="fas fa-file fa-lg"></i></span><span class="content">Propostas Transferegov</span></a>
</li>
<li><a class="menu-item" href="{{ url('/admin/transferegov/rps/consultar') }}" title="Situação Propostas RPs"><span class="icon">
<i class="fas fa-file fa-lg"></i></span><span class="content">Situação Propostas RPs</span></a>
</li>
@endcan
</ul>
......
......@@ -25,7 +25,7 @@
<div class="main-content pl-sm-3 mt-5" id="main-content">
<cabecalho-relatorios
:titulo="'{{$proposta->entePublico->txt_ente_publico}}'"
titulo="{{$proposta->entePublico->txt_ente_publico}}"
:subtitulo1="'Protocolo: {{$proposta->txt_protocolo}}'"
:subtitulo2="'{{$proposta->entePublico->municipio->txt_nome_sem_acento}} - {{$proposta->entePublico->municipio->uf->txt_sigla_uf}}'"
:subtitulo3="'{{$proposta->selecao->txt_selecao}} - Seleção nº {{$proposta->selecao->num_selecao}}'"
......
@extends('layouts.app')
@section('scriptscss')
<link rel="stylesheet" type="text/css" href="{{URL::asset('css/custom.css')}}" media="screen" />
<link rel="stylesheet" type="text/css" href="{{ asset('css/relatorio_executivo.css') }}" media="screen" >
@endsection
@section('content')
<historico-navegacao
:url="'{{ url('/') }}'"
:telanterior01="'Propostas'"
:telatual="'Consultar Situação Propostas RPs'"
>
</historico-navegacao>
<div class="main-content pl-sm-3 mt-5" id="main-content" style="min-height: 100% width 100%">
<cabecalho-relatorios
:titulo="'Consultar Situação Propostas RPs'"
barracompartilhar="false">
</cabecalho-relatorios>
<div class="form-group">
<p>
Este formulário permite que você filtre as propostas cadastradas no Portal do Transferegov selecionando as opções de filtro ou todas as propostas caso não selecione nenhum filtro. Nesse caso será disponibilizado uma lista de proposta com base
nos parâmetros selecionados.
</p>
<span class="br-divider my-3"></span>
<form action="{{ url('/admin/transferegov/rps/pesquisar') }}" role="form" method="POST">
{{ csrf_field() }}
<div class="row">
<filtro-rps
url='{{ url("/") }}'
:blnbtnpesquisar='false'
>
</filtro-rps>
</div>
</form>
</div>
</div>
@endsection
......@@ -145,5 +145,15 @@ Route::get('/tipo_documento', 'ApiController@listaTipoDocumento');
//PROPOSTAS
Route::get('/rps/ufs', 'ApiController@listaUfsRps');
Route::get('/rps/municipios/{uf}', 'ApiController@listaMunicipiosRps');
Route::get('/rps/situacaoPropostasAjustadas', 'ApiController@listaSituacaoPropostasRps');
......@@ -124,6 +124,9 @@ Route::post('/admin/propostas/transferegov/pesquisar', 'Propostas\SelecaoControl
Route::get('/admin/transferegov/execucao_orcamentaria/consultar', 'Propostas\SelecaoController@consultarExecucaoTransferegov');
Route::post('/admin/transferegov/execucao_orcamentaria/pesquisar', 'Propostas\SelecaoController@pesquisarExecucaoTransferegov');
Route::get('/admin/transferegov/rps/consultar', 'Propostas\SelecaoController@consultarPropostasRps');
Route::post('/admin/transferegov/rps/pesquisar', 'Propostas\SelecaoController@pesquisarPropostasRps');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment