Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_ADDRESS=test@example.com
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
Expand Down
12 changes: 11 additions & 1 deletion app/Http/Controllers/RelatorioController.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@
use Maatwebsite\Excel\Excel;
use App\Exports\RelatorioExport;
use App\Http\Requests\RelatorioRequest;
use App\Models\Finalidade;

class RelatorioController extends Controller
{
public function index(){
$finalidades = Finalidade::all();

\UspTheme::activeUrl('/relatorio');
return view('relatorio.index', [
'categorias' => Categoria::pluck('nome','id')->prepend('Selecione a Categoria', '')
'categorias' => Categoria::pluck('nome','id')->prepend('Selecione a Categoria', ''),
'finalidades' => $finalidades
]);
}

Expand All @@ -23,17 +27,22 @@ public function query(RelatorioRequest $request, Excel $excel){
$fim = Carbon::createFromFormat('d/m/Y', $request->fim)->format('Y-m-d');

$reservas = Reserva::join('salas','reservas.sala_id','salas.id')
->join('finalidades', 'reservas.finalidade_id', 'finalidades.id')
->leftJoin('restricoes','restricoes.sala_id','salas.id')
->where(function ($query){
$query->whereNull('restricoes.bloqueada')
->orWhere('restricoes.bloqueada','<>',1);
})
->where('salas.categoria_id', $request->categoria_id)
->when($request->finalidade_id, function ($query, $finalidade_id) {
return $query->where('reservas.finalidade_id', $finalidade_id);
})
->select(
'salas.nome as nome_sala',
'salas.capacidade',
'reservas.nome',
'reservas.descricao',
'finalidades.legenda',
'reservas.horario_inicio',
'reservas.horario_fim',
'reservas.data',
Expand All @@ -58,6 +67,7 @@ public function query(RelatorioRequest $request, Excel $excel){
'Capacidade',
'Título da reserva',
'Descrição',
'Finalidade',
'Horário de início',
'Horário de fim',
'Data da reserva',
Expand Down
3 changes: 2 additions & 1 deletion app/Http/Requests/RelatorioRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ public function rules(): array
'inicio' => 'required|date_format:d/m/Y',
'fim' => 'required|date_format:d/m/Y',
'orderBy' => 'nullable',
'categoria_id' => ['required', Rule::in($categorias)]
'categoria_id' => ['required', Rule::in($categorias)],
'finalidade_id' => 'nullable'
];
}

Expand Down
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ services:
salas-network:
aliases:
- auth.local

mailpit:
image: axllent/mailpit:latest
container_name: salas_mailpit
container_name: salas__mailpit
ports:
- "1025:1025" # SMTP
- "8025:8025" # Interface Web
Expand Down
71 changes: 40 additions & 31 deletions resources/views/relatorio/index.blade.php
Original file line number Diff line number Diff line change
@@ -1,38 +1,47 @@
@extends('main')
@section('content')

<div class="card">
<div class="card-header"><b>Gerar Excel de relatório</b></div>
<div class="card-body">
<form method="get" action="/query" class="form-inline">
<div class="form-group">
<input type="text" class="datepicker form-control" name="inicio" value="{{ old('inicio',request()->inicio) }}" placeholder="Data Inicial">
</div>
<div class="form-group ml-3">
<input type="text" class="datepicker form-control" name="fim" value="{{ old('fim',request()->fim) }}" placeholder="Data Final">
</div>
<div class="form-group ml-3">
<select name="categoria_id" class="form-control">
@foreach($categorias as $id => $nome)
<option value="{{ $id }}">{{ $nome }}</option>
@endforeach
</select>
<div class="card">
<div class="card-header"><b>Gerar Excel de relatório</b></div>
<div class="card-body">
<form method="get" action="/query" class="form-inline">
<div class="form-group">
<input type="text" class="datepicker form-control" name="inicio"
value="{{ old('inicio', request()->inicio) }}" placeholder="Data Inicial">
</div>
<div class="form-group ml-3">
<input type="text" class="datepicker form-control" name="fim"
value="{{ old('fim', request()->fim) }}" placeholder="Data Final">
</div>
<div class="form-group ml-3">
<select name="categoria_id" class="form-control">
@foreach ($categorias as $id => $nome)
<option value="{{ $id }}">{{ $nome }}</option>
@endforeach
</select>
</div>
<div class="form-group ml-3">
<select name="orderBy" class="form-control">
<option value=""> - Ordernar por - </option>
<option value="nome_sala">Sala</option>
<option value="data">Data</option>
</select>
</div>
<div class="form-group ml-3">
<select name="finalidade_id" class="form-control">
<option value="" selected>Selecione a finalidade</option>
@foreach ($finalidades as $finalidade)
<option value="{{ $finalidade->id }}">{{ $finalidade->legenda }}</option>
@endforeach
</select>
</div>
<button type="submit" class="btn btn-success ml-3">
<i class="fa fa-file-excel"></i>
Gerar Excel
</button>
</form>
</div>
<div class="form-group ml-3">
<select name="orderBy" class="form-control">
<option value=""> - Ordernar por - </option>
<option value="nome_sala">Sala</option>
<option value="data">Data</option>
</select>
</div>
<button type="submit" class="btn btn-success ml-3">
<i class="fa fa-file-excel"></i>
Gerar Excel
</button>
</form>
</div>
</div>
</div>
</div>
@endsection

@section('javascripts_bottom')
Expand Down
25 changes: 25 additions & 0 deletions tests/Browser/LoginTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace Tests\Browser;

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class LoginTest extends DuskTestCase
{
/**
* A Dusk test example.
*/
public function test_example(): void
{
$this->browse(function (Browser $browser) {
$browser->visit('/')
->clickLink('Entrar')
->waitFor('#loginUsuario') # Importante: Espera a página de login carregar
->typeSlowly('loginUsuario', '1111')
->press('Login')
->waitFor('.login_logout_link');
});
}
}
Loading