Commit 1dc2e38a authored by sandroresende's avatar sandroresende

inclusao consulta carteira investimento

parent 226a1ea9
......@@ -6,8 +6,7 @@ use App\Corporativo\Mcid_corporativo\ViewCarteiraInvestimento;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\IndicadoresHabitacionais\Uf;
use App\ViewArquivosEnviados;
use DirectoryIterator;
......@@ -33,13 +32,77 @@ class CarteiraInvestimentoController extends Controller
*
* @return \Illuminate\Http\Response
*/
public function consultarContratos()
{
return view('modulo_carteira_investimento.ConsularContratosCarteiraInvestimento');
}
public function pesquisarContratos(Request $request)
{
//return $request->all();
$usuario = Auth::user();
$where = [];
if(!empty($request->cod_contrato)){
$where[] = ['cod_contrato', $request->cod_contrato];
$dadosContrato = ViewCarteiraInvestimento::where($where)->get();
if(count($dadosContrato) == 0){
flash()->erro("Erro", "Não existe contrato para o código digitado");
return back();
}else{
$dadosContrato = ViewCarteiraInvestimento::where($where)->firstOrFail();
return redirect('/carteira_investimento/contrato/'. $dadosContrato->cod_contrato);
}
}else if(!empty($request->cod_saci)){
$where[] = ['cod_saci', $request->cod_saci];
$dadosContrato = ViewCarteiraInvestimento::where($where)->get();
if(count($dadosContrato) == 0){
flash()->erro("Erro", "Não existe contrato para o código digitado");
return back();
}else{
$dadosContrato = ViewCarteiraInvestimento::where($where)->firstOrFail();
return redirect('/carteira_investimento/contrato/'. $dadosContrato->cod_contrato);
}
}else{
if(!empty($request->estado)){
$estado = Uf::where('id',$request->estado)->firstOrFail();
$where[] = ['uf', $estado->txt_sigla_uf];
}
if(!empty($request->municipio)){
$where[] = ['municipio_id', $request->municipio];
}
$dadosContratos = ViewCarteiraInvestimento::where($where)->get();
if(count($dadosContratos) == 0){
flash()->erro("Erro", "Não existem contratos para os parametros selecionados");
return back();
}else{
$dadosContratos = ViewCarteiraInvestimento::where($where)->get();
return view('modulo_carteira_investimento.ListaContratosCarteira',compact('usuario','dadosContratos'));
}
}
}
public function dadosContrato($cod_contrato)
{
$carteira = ViewCarteiraInvestimento::where('cod_contrato', $cod_contrato)->firstOrFail();
return view('modulo_formulario_painel.DadosContratoFormPainel', compact('carteira'));
return view('modulo_carteira_investimento.DadosContratoCarteiraInvestimento', compact('carteira'));
}
......
This diff is collapsed.
......@@ -45,7 +45,9 @@ Vue.component('filtro-resultado', require('./components/mod_propostas/FiltroResu
///mod Formulario_painel
Vue.component('formulario-painel', require('./components/mod_formulario_painel/FormularioPainel.vue'));
Vue.component('dados-contrato', require('./components/mod_carteira_investimento/DadosContrato.vue'));
Vue.component('filtro-carteira-investimento', require('./components/mod_carteira_investimento/FiltroCarteiraInvestimento.vue'));
......
......@@ -49,7 +49,7 @@
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-headingTwo">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapseTwo" aria-expanded="true" aria-controls="panelsStayOpen-collapseTwo">
2. Dados de Monitoramento </button>
Dados de Monitoramento </button>
</h2>
<div id="panelsStayOpen-collapseTwo" class="accordion-collapse collapse show" aria-labelledby="panelsStayOpen-headingTwo">
<div class="accordion-body">
......@@ -71,6 +71,40 @@
<input id="dte_fim_obra" name="dte_fim_obra" type="date" v-model="dte_fim_obra" disabled="disabled"/>
</div>
</div><!-- row -->
<div class="row">
<div class="col col-xs-12 col-sm-4 br-input">
<label for="input-default">Valor Investimento</label>
<input id="vlr_investimento" name="vlr_investimento" type="text" v-model="vlr_investimento" disabled="disabled"/>
</div>
<div class="col col-xs-12 col-sm-4 br-input">
<label for="input-default">Valor Repasse</label>
<input id="vlr_repasse" name="vlr_repasse" type="text" v-model="vlr_repasse" disabled="disabled"/>
</div>
<div class="col col-xs-12 col-sm-4 br-input">
<label for="input-default">Valor Contrapartida</label>
<input id="vlr_contrapartida" name="vlr_contrapartida" type="text" v-model="vlr_contrapartida" disabled="disabled"/>
</div>
</div><!-- row -->
<div class="row">
<div class="col col-xs-12 col-sm-3 br-input">
<label for="input-default">Valor Pago</label>
<input id="vlr_pago_conta" name="vlr_pago_conta" type="text" v-model="vlr_pago_conta" disabled="disabled"/>
</div>
<div class="col col-xs-12 col-sm-3 br-input">
<label for="input-default">Valor a Pagar</label>
<input id="vlr_restos_a_pagar" name="vlr_restos_a_pagar" type="text" v-model="vlr_restos_a_pagar" disabled="disabled"/>
</div>
<div class="col col-xs-12 col-sm-3 br-input">
<label for="input-default">Percentual de Desembolso</label>
<input id="prc_desembolsado" name="prc_desembolsado" type="text" v-model="prc_desembolsado" disabled="disabled"/>
</div>
<div class="col col-xs-12 col-sm-3 br-input">
<label for="input-default">Data da Última Liberaçäo</label>
<input id="dte_ult_mov_fin" name="dte_ult_mov_fin" type="date" v-model="dte_ult_mov_fin" disabled="disabled"/>
</div>
</div><!-- row -->
</div><!-- accordion-body -->
</div><!-- panelsStayOpen-collapseTwo -->
</div><!-- panelsStayOpen-collapseTwo -->
......@@ -96,9 +130,12 @@
dte_inicio_obra_efetiva:'',
dte_fim_obra_prevista:'',
dte_fim_obra:'',
vlr_pago_conta:0,
vlr_restos_a_pagar:0,
prc_desembolsado:0,
dte_ult_mov_fin:''
}
},
} },
computed:{
},
......@@ -110,7 +147,15 @@
} else {
return '';
}
}
},
formatarValor(valor,casas) {
if (valor) {
let val = (valor/1).toFixed(casas).replace('.', ',')
return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".")
} else {
return '0.00';
}
},
},
mounted() {
......@@ -120,14 +165,21 @@
this.municipio = this.dados.municipio;
this.cod_contrato = this.dados.cod_contrato;
this.dte_assinatura_contrato = this.dados.dte_assinatura_contrato;
this.vlr_investimento = Number(this.dados.vlr_investimento);
this.vlr_repasse = Number(this.dados.vlr_repasse);
this.vlr_contrapartida = Number(this.dados.vlr_contrapartida);
this.vlr_investimento = this.formatarValor(Number(this.dados.vlr_investimento_ajustado),2);
this.vlr_repasse = this.formatarValor(Number(this.dados.vlr_repasse),2);
this.vlr_contrapartida = this.formatarValor(Number(this.dados.vlr_contrapartida),2);
this.dte_inicio_obra_prevista = this.dados.dte_inicio_obra_prevista;
this.dte_inicio_obra_efetiva = this.dados.dte_inicio_obra_efetiva;
this.dte_fim_obra_prevista = this.dados.dte_fim_obra_prevista;
this.dte_fim_obra = this.dados.dte_fim_obra;
this.vlr_pago_conta = this.formatarValor(Number(this.dados.vlr_pago_conta),2);
this.vlr_restos_a_pagar = this.formatarValor(Number(this.dados.vlr_restos_a_pagar),2);
this.prc_desembolsado = this.formatarValor(Number((this.dados.vlr_pago_conta/this.dados.vlr_repasse)*100),2);
this.dte_ult_mov_fin = this.dados.dte_ult_mov_fin;
}
}
......
<template>
<div class="form-group">
<div class="row" v-if="!(estado || municipio || cod_saci)">
<div class="column col-xs-12 col-md-12">
<div class="br-input" >
<label for="cod_contrato">Código Contrato</label>
<input id="cod_contrato" name="cod_contrato" type="text" v-model="cod_contrato" placeholder="Digite o Código do Empreendimentos no Ministério das Cidades. Ex: 01000501001"/>
</div>
</div>
</div>
<div class="row" v-if="!(estado || municipio || cod_contrato)">
<div class="column col-xs-12 col-md-12">
<div class="br-input" >
<label for="cod_saci">Código SACI</label>
<input id="cod_saci" name="cod_saci" type="text" v-model="cod_saci" placeholder="Digite o Código do SACI. Ex: 0100050"/>
</div>
</div>
</div>
<span class="br-divider my-3"></span>
<div class="row" v-if="!(cod_saci || cod_contrato)">
<div class="column col-xs-12 col-md-3">
<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_sigla_uf" :value="estado.id" :key="estado.id"></option>
</select>
</div>
<div class="column col-xs-12 col-md-9">
<!-- municipio -->
<label for="municipio">Município</label>
<select
id="municipio"
class="form-select br-select"
name="municipio"
@change="onChangeMunicipio"
:disabled="estado == '' || buscando"
v-model="municipio">
<option value="" v-text="textoEscolhaMunicipio"></option>
<option v-for="municipio in municipios" v-text="municipio.ds_municipio" :value="municipio.id" :key="municipio.id"></option>
</select>
</div>
</div>
<div class="row" v-if="!(cod_saci || cod_contrato)">
<div class="column col-xs-12 col-md-3">
<label for="andamento">Andamento</label>
<select
id="andamento"
class="form-select br-select"
name="andamento"
v-model="andamento">
<option value="">Escolha um Andamento</option>
<option v-for="andamento in andamentos" v-text="andamento.txt_andamento" :value="andamento.id" :key="andamento.id"></option>
</select>
</div>
</div>
<div class="p-3 text-right">
<button class="br-button primary mr-3" type="submit" :disabled="estado == '' && municipio == '' && cod_contrato == '' && cod_saci == '' ">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','requermunicipio','requeruf','complementonomelabelmun'],
data(){
return{
cod_contrato:'',
cod_saci:'',
estados:'',
estado:'',
municipios: '',
municipio:'',
textoEscolhaMunicipio: "Filtre o Estado",
andamentos:'',
andamento:'',
}
},
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/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"
}
},
onChangeMunicipio() {
this.textoEscolhaEnte = "Buscando...";
this.entepublico = '';
this.buscandoEnte = true;
if(this.municipio != '') {
//busca dados no banco de dados para carregar no componente
axios.get(this.url + '/api/bnde/municipios/' + this.municipio).then(resposta => {
this.textoEscolhaEnte = "Escolha um municipio:";
this.buscandoEnte = false;
this.entespublicos = resposta.data;
}).catch(error => {
console.log(error);
});
} else {
this.buscandoEnte = false;
this.entepublico = '';
this.textoEscolhaEnte = "Filtre o Município"
}
}
},
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/bndes/andamento').then(resposta => {
//console.log(resposta.data);
this.andamentos = resposta.data;
this.andamento = '';
}).catch(erro => {
console.log(erro);
})
}
}
</script>
......@@ -147,6 +147,23 @@
</ul>
</div>
<div class="menu-folder"><a class="menu-item" href="javascript: void(0)"><span class="icon">
<i class="fas fa-regular fa-home" aria-hidden="true"></i></span><span class="content">Carteira de Investimento</span></a>
<ul>
<li><a class="menu-item" href="#" title="Resumos"><span class="icon">
<i class="fas fa-regular fa-home"></i></span><span class="content">Contratos</span></a>
<ul>
<li><a class="menu-item" href="{{ url('/carteira_investimento/contratos/consultar') }}" title="Consultar Contratos"><span class="icon">
<i class="fas fa-regular fa-home"></i></span><span class="content">Consultar Contratos</span></a>
</li>
</ul>
</li>
</ul>
</div>
@endcan
......
@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('/home') }}'"
:telanterior01="'Carteira Investimento'"
:telanterior02="'Contratos'"
:telatual="'Consultar Contratos'"
>
</historico-navegacao>
<div class="main-content pl-sm-3 mt-5" id="main-content">
<cabecalho-relatorios
:titulo="'Consultar Contratos'"
:linkcompartilhar="'{{ url("/carteira_investimento/contratos/consultar") }}'"
barracompartilhar="true">
</cabecalho-relatorios>
<div class="form-group">
<p>
Este formulário permite que você filtre os contratos da carteira de investimento do Ministério. Ele permite que consulte
um contrato específico, por meio de um código do contrato da carteira, ou selecionando as opções de filtro,
nesse caso será disponibilizado uma lista de contratos com base nos parâmetros selecionados.
</p>
<span class="br-divider my-3"></span>
<form action="{{ url('/carteira_investimento/contratos/pesquisar') }}" role="form" method="POST">
{{ csrf_field() }}
<div class="row">
<filtro-carteira-investimento
url='{{ url("/") }}'
>
</filtro-carteira-investimento>
</form>
</div>
</div>
@endsection
......@@ -32,7 +32,7 @@
:subtitulo3="'{{$carteira->dsc_area_investimento}}'"
:subtitulo4="'Execuçäo Física: {{number_format( ($carteira->prc_execucao), 0, ',' , '.')}}%'"
:linkcompartilhar="'{{ url("/formulario_painel/contrato/$carteira->cod_contrato") }}'"
:linkcompartilhar="'{{ url("/carteira_investimento/contrato/$carteira->cod_contrato") }}'"
:dataatualizacao="'{{date('d/m/Y',strtotime($carteira->dte_controle))}}'"
barracompartilhar="true">
......@@ -66,12 +66,12 @@
</cabecalho-relatorios>
<formulario-painel
<dados-contrato
url='{{ url("/") }}'
v-bind:dados="{{json_encode($carteira)}}"
>
</formulario-painel>
</dados-contrato>
......
@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('/home') }}'"
:telanterior01="'Carteira Invesrtimento'"
:telanterior02="'Contratos'"
:telanterior03="'Consultar Contratos'"
:telatual="'Lista de Contratos'"
>
</historico-navegacao>
<cabecalho-relatorios
:titulo="'Lista de Contratos'"
barracompartilhar="false">
</cabecalho-relatorios>
<div class="main-content" id="main-content" style="min-height: 100% width 100%">
<div class="form-group">
<div class="table-responsive-sm">
<table class="table table-hover table-sm">
<thead>
<tr class="text-center" >
<th>UF</th>
<th>Município</th>
<th>Código Contrato</th>
<th>Código SACI</th>
<th>Tipo Instrumento</th>
<th>Area de Investimento</th>
<th>Situaçáo do Contrato</th>
<th>Execuçäo Física</th>
<th>Valor Investimento</th>
<th>Valor Repasse</th>
<th>Valor Contrapartida</th>
<th>Valor Pago</th>
<th>Data Atualização</th>
<th class="text-center">Ação</th>
</tr>
</thead>
<tbody>
@foreach($dadosContratos as $dados)
<tr class="text-center">
<td>{{$dados->uf}}</td>
<td>{{$dados->municipio}}</td>
<td>{{$dados->cod_contrato}}</td>
<td>{{$dados->cod_saci}}</td>
<td>{{$dados->tipo_instrumento}}</td>
<td>{{$dados->dsc_area_investimento}}</td>
<td>{{$dados->dsc_situacao_objeto_mdr}}</td>
<td>{{number_format($dados->prc_execucao, 2, ',' , '.')}}</td>
<td>{{number_format($dados->vlr_investimento_ajustado, 2, ',' , '.')}}</td>
<td>{{number_format($dados->vlr_repasse, 2, ',' , '.')}}</td>
<td>{{number_format($dados->vlr_contrapartida_ajustado, 2, ',' , '.')}}</td>
<td>{{number_format($dados->vlr_pago_conta, 2, ',' , '.')}}</td>
<td>{{date('d/m/Y',strtotime($dados->dte_controle))}}</td>
<td>
<button type="button" class="br-button circle secondary small mr-3" aria-label="Ícone ilustrativo"
onclick='window.location.href="{{ url("/carteira_investimento/contrato/$dados->cod_contrato")}}"'>
<i class="fas fa-eye" aria-hidden="true"></i>
</button>
</td>
@endforeach
</tbody><!-- fechar tbody-->
</table><!-- fechar table-->
</div> <!-- table-responsive-sm -->
<div class="p-3 text-right">
<button class="br-button primary mr-3" type="button" name="imprimir" value="Imprimir" onclick="window.print();">Imprimir
</button>
<button class="br-button danger mr-3" type="button" onclick="javascript:window.history.go(-1)">Voltar
</button>
</div>
</div> <!-- form-group -->
</div>
@endsection
......@@ -39,7 +39,7 @@
<p>
Este formulário permite que você filtre as propostas selecionadas selecionando as opções de filtro ou todas as proposta caso não selecione nenhum filtro. Nesse caso será disponibilizado uma lista de proposta com base
Este formulário permite que você filtre as propostas selecionadas 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>
......
......@@ -191,7 +191,7 @@
</p>
<p>
Este formulário permite que você filtre as propostas selecionadas selecionando as opções de filtro ou todas as proposta caso não selecione nenhum filtro. Nesse caso será disponibilizado uma lista de proposta com base
Este formulário permite que você filtre as propostas selecionadas 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>
......
......@@ -89,7 +89,9 @@ Route::post('/selecao/propostas/selecionadas/pesquisar', 'WelcomeController@pesq
//modulo formulario Painel
Route::get('/formulario_painel/contrato/{cod_contrato}', 'Mod_corporativo\CarteiraInvestimentoController@dadosContrato');
Route::get('/carteira_investimento/contratos/consultar', 'Mod_corporativo\CarteiraInvestimentoController@consultarContratos');
Route::post('/carteira_investimento/contratos/pesquisar', 'Mod_corporativo\CarteiraInvestimentoController@pesquisarContratos');
Route::get('/carteira_investimento/contrato/{cod_contrato}', 'Mod_corporativo\CarteiraInvestimentoController@dadosContrato');
......
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