Skip to content

Commit eae1dba

Browse files
authored
Merge pull request #132 from marcelomodesto/issue128
Adicionado campo para armazenar o motivo do bloqueio da sala
2 parents 382055a + 66703d2 commit eae1dba

6 files changed

Lines changed: 76 additions & 20 deletions

File tree

app/Http/Controllers/SalaController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ public function update(SalaRequest $request, Sala $sala)
167167
$sala->restricao()->update(
168168
[
169169
'bloqueada' => $validated['bloqueada'],
170+
'motivo_bloqueio' => $validated['motivo_bloqueio'],
170171
'dias_antecedencia' => $validated['dias_antecedencia'],
171172
'tipo_restricao' => $validated['tipo_restricao'],
172173
'data_limite' => $validated['data_limite'],

app/Http/Requests/SalaRequest.php

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,20 @@ public function rules()
2727
{
2828

2929
return [
30-
'nome' => 'required',
31-
'categoria_id' => 'required',
32-
'capacidade' => 'required|integer',
33-
'recursos' => 'nullable',
34-
'aprovacao' => 'required|integer',
35-
'bloqueada' => 'nullable',
36-
'dias_antecedencia' => 'nullable',
37-
'data_limite' => 'nullable',
38-
'dias_limite' => 'nullable',
39-
'periodo_letivo' => 'nullable',
40-
'duracao_minima' => 'nullable|numeric',
41-
'duracao_maxima' => 'nullable|numeric',
42-
'tipo_restricao' => ['required', new TipoRestricaoRule($this->data_limite, $this->dias_limite, $this->periodo_letivo)],
30+
'nome' => 'required',
31+
'categoria_id' => 'required',
32+
'capacidade' => 'required|integer',
33+
'recursos' => 'nullable',
34+
'aprovacao' => 'required|integer',
35+
'bloqueada' => 'nullable',
36+
'motivo_bloqueio' => 'nullable',
37+
'dias_antecedencia' => 'nullable',
38+
'data_limite' => 'nullable',
39+
'dias_limite' => 'nullable',
40+
'periodo_letivo' => 'nullable',
41+
'duracao_minima' => 'nullable|numeric',
42+
'duracao_maxima' => 'nullable|numeric',
43+
'tipo_restricao' => ['required', new TipoRestricaoRule($this->data_limite, $this->dias_limite, $this->periodo_letivo)],
4344
];
4445
}
4546

app/Rules/RestricoesSalaRule.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ public function passes($attribute, $value)
4444

4545
/* sala bloqueada */
4646
if ($sala->restricao->bloqueada) {
47-
$this->message .= "A sala $sala->nome está bloqueada para reservas";
47+
$this->message .= "A sala $sala->nome está bloqueada para reservas. " . $sala->restricao->motivo_bloqueio;
4848
$this->validationErrors++;
4949
}
5050

5151

5252
/* respeita a antecedência mínima */
5353
if ($sala->restricao->dias_antecedencia > (Carbon::now()->diffInDays(Carbon::createFromFormat('d/m/Y', $this->reserva->data)->format('Y-m-d'), false))) {
54-
$this->message .= $this->message . "As reservas na sala $sala->nome precisam ser solicitadas com até " . $sala->restricao->dias_antecedencia . " dias de antecedência";
54+
$this->message .= $this->message . "<li>As reservas na sala $sala->nome precisam ser solicitadas com até " . $sala->restricao->dias_antecedencia . " dias de antecedência";
5555
$this->validationErrors++;
5656
}
5757

@@ -63,7 +63,7 @@ public function passes($attribute, $value)
6363
$dataLimite = Carbon::now()->addDays($sala->restricao->dias_limite);
6464

6565
if ($dataReserva->isAfter($dataLimite)) {
66-
$this->message .= "A sala $sala->nome aceita reservas somente até o dia " . Carbon::parse($dataLimite)->format('d/m/Y');
66+
$this->message .= "<br>A sala $sala->nome aceita reservas somente até o dia " . Carbon::parse($dataLimite)->format('d/m/Y');
6767
$this->validationErrors++;
6868
}
6969
}
@@ -74,7 +74,7 @@ public function passes($attribute, $value)
7474
$dataReserva = Carbon::createFromFormat('d/m/Y', $this->reserva->data);
7575

7676
if ($dataReserva->isAfter($sala->restricao->data_limite)) {
77-
$this->message .= "A sala $sala->nome aceita reservas somente até o dia " . Carbon::parse($sala->restricao->data_limite)->format('d/m/Y');
77+
$this->message .= "<br>A sala $sala->nome aceita reservas somente até o dia " . Carbon::parse($sala->restricao->data_limite)->format('d/m/Y');
7878
$this->validationErrors++;
7979
}
8080
}
@@ -87,7 +87,7 @@ public function passes($attribute, $value)
8787
$dataReserva = Carbon::createFromFormat('d/m/Y', $this->reserva->data);
8888

8989
if (!$dataReserva->between($periodo->data_inicio_reservas, $periodo->data_fim_reservas)) {
90-
$this->message .= "A sala $sala->nome aceita reservas somente entre os dias " . Carbon::parse($periodo->data_inicio_reservas)->format('d/m/Y') . " e " . Carbon::parse($periodo->data_fim_reservas)->format('d/m/Y');
90+
$this->message .= "<br>A sala $sala->nome aceita reservas somente entre os dias " . Carbon::parse($periodo->data_inicio_reservas)->format('d/m/Y') . " e " . Carbon::parse($periodo->data_fim_reservas)->format('d/m/Y');
9191
$this->validationErrors++;
9292
}
9393
}
@@ -100,7 +100,7 @@ public function passes($attribute, $value)
100100
$duracao = $hi->diffInMinutes($hf) ;
101101

102102
if ($duracao < $sala->restricao->duracao_minima) {
103-
$this->message .= "A duração da reserva não tem a duração mínima definida para a sala $sala->nome que é de ". $sala->restricao->duracao_minima . " minutos";
103+
$this->message .= "<br>A reserva não tem a duração mínima definida para a sala $sala->nome que é de ". $sala->restricao->duracao_minima . " minutos";
104104
$this->validationErrors++;
105105
}
106106
}
@@ -112,7 +112,7 @@ public function passes($attribute, $value)
112112
$duracao = $hi->diffInMinutes($hf) ;
113113

114114
if ($duracao > $sala->restricao->duracao_maxima) {
115-
$this->message .= "A duração da reserva supera a duração máxima definida para a sala $sala->nome que é de ". $sala->restricao->duracao_maxima . " minutos";
115+
$this->message .= "<br>A reserva supera a duração máxima definida para a sala $sala->nome que é de ". $sala->restricao->duracao_maxima . " minutos";
116116
$this->validationErrors++;
117117
}
118118
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
use Illuminate\Database\Migrations\Migration;
4+
use Illuminate\Database\Schema\Blueprint;
5+
use Illuminate\Support\Facades\Schema;
6+
7+
class AddMotivoBloqueioToRestricoesTable extends Migration
8+
{
9+
/**
10+
* Run the migrations.
11+
*
12+
* @return void
13+
*/
14+
public function up()
15+
{
16+
if (Schema::hasTable('restricoes')) {
17+
Schema::table('restricoes', function (Blueprint $table) {
18+
$table->string('motivo_bloqueio')->nullable(); // Motivo do bloqueio da sala.
19+
});
20+
}
21+
}
22+
23+
24+
/**
25+
* Reverse the migrations.
26+
*
27+
* @return void
28+
*/
29+
public function down()
30+
{
31+
if (Schema::hasColumn('restricoes', 'motivo_bloqueio')) {
32+
Schema::table('restricoes', function (Blueprint $table) {
33+
$table->dropColumn('motivo_bloqueio');
34+
});
35+
}
36+
}
37+
}

resources/views/sala/edit.blade.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,16 @@
9393
9494
});
9595
96+
97+
$('.radio-bloqueada').on('click', function(e){
98+
if(parseInt($(this).val()))
99+
$('#box_motivo_bloqueio').css('display', 'block');
100+
else
101+
$('#box_motivo_bloqueio').css('display', 'none');
102+
$('#txt_motivo_bloqueio').val(null);
103+
});
104+
105+
106+
96107
</script>
97108
@stop

resources/views/sala/partials/form.blade.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@
112112
<label for="bloqueada-nao">Não</label>
113113
</div>
114114

115+
<div class="col-sm form-group" id="box_motivo_bloqueio" @if (old('bloqueada', !$sala->restricao->bloqueada)) style="display: none" @endif>
116+
<b>Motivo do bloqueio</b>
117+
<br>Descreva resumidamente o motivo, período e outras informações relevantes sobre o bloqueio
118+
<input class="form-control" type="text" name="motivo_bloqueio" id="txt_motivo_bloqueio" value="{{ old('motivo_bloqueio', $sala->restricao->motivo_bloqueio) }}" >
119+
</div>
120+
115121
</div>
116122
</div>
117123

0 commit comments

Comments
 (0)