Unverified Commit 6c9ecb69 authored by José Rômulo's avatar José Rômulo Committed by GitHub
Browse files

Merge pull request #172 from J-Romulo/master

Analise de substituição
parents 8ffb44b9 e706ee49
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App; namespace App;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Arquivo extends Model class Arquivo extends Model
{ {
...@@ -11,6 +12,8 @@ class Arquivo extends Model ...@@ -11,6 +12,8 @@ class Arquivo extends Model
* *
* @var array * @var array
*/ */
use SoftDeletes;
protected $fillable = [ protected $fillable = [
'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId' 'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId'
]; ];
...@@ -19,6 +22,10 @@ class Arquivo extends Model ...@@ -19,6 +22,10 @@ class Arquivo extends Model
return $this->belongsTo('App\Trabalho', 'trabalhoId'); return $this->belongsTo('App\Trabalho', 'trabalhoId');
} }
public function substituicaos(){
return $this->hasMany('App\Substituicao');
}
public function participante() { public function participante() {
return $this->belongsTo('App\Participante', 'participanteId'); return $this->belongsTo('App\Participante', 'participanteId');
} }
......
...@@ -40,6 +40,7 @@ use Illuminate\Support\Facades\Storage; ...@@ -40,6 +40,7 @@ use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use App\Mail\EmailParaUsuarioNaoCadastrado; use App\Mail\EmailParaUsuarioNaoCadastrado;
use App\Notifications\SubmissaoNotification; use App\Notifications\SubmissaoNotification;
use App\Substituicao;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
class TrabalhoController extends Controller class TrabalhoController extends Controller
...@@ -1362,13 +1363,16 @@ class TrabalhoController extends Controller ...@@ -1362,13 +1363,16 @@ class TrabalhoController extends Controller
$participantes = $projeto->participantes; $participantes = $projeto->participantes;
$participantesExcluidos = Participante::onlyTrashed()->where('trabalho_id', $projeto->id)->get(); $participantesExcluidos = Participante::onlyTrashed()->where('trabalho_id', $projeto->id)->get();
$substituicoesPendentes = Substituicao::where('trabalho_id', $projeto->id)->where('status', 'Em Aguardo')->get();
$substituicoesFinalizadas = Substituicao::where([['trabalho_id', '=', $projeto->id],['status', '=', 'Finalizada']]);
$substituicoesNegadas = Substituicao::where('trabalho_id', $projeto->id)->where('status', 'Negada')->get();
return view('administrador.substituirParticipante')->with(['projeto' => $projeto, return view('administrador.substituirParticipante')->with(['projeto' => $projeto,
'edital' => $edital, 'edital' => $edital,
'participantes' => $participantes, 'participantes' => $participantes,
'participantesExcluidos' => $participantesExcluidos, 'participantesExcluidos' => $participantesExcluidos,
'substituicoesPendentes' => $substituicoesPendentes,
'substituicoesNegadas' => $substituicoesNegadas,
'estados' => $this->estados, 'estados' => $this->estados,
'enum_turno' => Participante::ENUM_TURNO, 'enum_turno' => Participante::ENUM_TURNO,
]); ]);
...@@ -1421,6 +1425,8 @@ class TrabalhoController extends Controller ...@@ -1421,6 +1425,8 @@ class TrabalhoController extends Controller
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho; $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
if($request->substituirApenasPlanoCheck == 'check'){ if($request->substituirApenasPlanoCheck == 'check'){
$substituicao = new Substituicao();
if ( $request->has('anexoPlanoTrabalho') ) { if ( $request->has('anexoPlanoTrabalho') ) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/'; $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/';
$nome = $data['nomePlanoTrabalho'] .".pdf"; $nome = $data['nomePlanoTrabalho'] .".pdf";
...@@ -1431,14 +1437,21 @@ class TrabalhoController extends Controller ...@@ -1431,14 +1437,21 @@ class TrabalhoController extends Controller
$arquivo->nome = $path . $nome; $arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id; $arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now(); $arquivo->data = now();
$participanteSubstituido->planoTrabalho()->delete();
$arquivo->participanteId = $participanteSubstituido->id; $arquivo->participanteId = $participanteSubstituido->id;
$arquivo->versaoFinal = true; $arquivo->versaoFinal = true;
$arquivo->save(); $arquivo->save();
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'TrocarPlano';
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participanteSubstituido->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->save();
} }
}else{ }else{
$participanteSubstituido->delete(); //$participanteSubstituido->delete();
$substituicao = new Substituicao();
$user = User::where('email' , $data['email'])->first(); $user = User::where('email' , $data['email'])->first();
if (!$user){ if (!$user){
...@@ -1453,11 +1466,21 @@ class TrabalhoController extends Controller ...@@ -1453,11 +1466,21 @@ class TrabalhoController extends Controller
} }
$user->participantes()->save($participante); $user->participantes()->save($participante);
$trabalho->participantes()->save($participante); //$trabalho->participantes()->save($participante);
if($request->manterPlanoCheck == 'check'){ if($request->manterPlanoCheck == 'check'){
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'ManterPlano';
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participante->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $planoAntigo->id;
$planoAntigo->participanteId = $participante->id; $planoAntigo->participanteId = $participante->id;
$substituicao->save();
$planoAntigo->save(); $planoAntigo->save();
}else{ }else{
if ( $request->has('anexoPlanoTrabalho') ) { if ( $request->has('anexoPlanoTrabalho') ) {
...@@ -1474,6 +1497,13 @@ class TrabalhoController extends Controller ...@@ -1474,6 +1497,13 @@ class TrabalhoController extends Controller
$arquivo->versaoFinal = true; $arquivo->versaoFinal = true;
$arquivo->save(); $arquivo->save();
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'Completa';
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participante->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->save();
} }
} }
...@@ -1484,7 +1514,7 @@ class TrabalhoController extends Controller ...@@ -1484,7 +1514,7 @@ class TrabalhoController extends Controller
DB::commit(); DB::commit();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Troca de participantes realizada com sucesso!']); return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
}catch (\Throwable $th) { }catch (\Throwable $th) {
DB::rollback(); DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]); return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]);
...@@ -1492,4 +1522,94 @@ class TrabalhoController extends Controller ...@@ -1492,4 +1522,94 @@ class TrabalhoController extends Controller
} }
public function telaShowSubst(Request $request){
$trabalho = Trabalho::find($request->trabalho_id);
$subsPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->get();
$participantesExcluidos = Participante::onlyTrashed()->where('trabalho_id', $trabalho->id)->get();
return view('administrador.analiseSubstituicoes')->with(['participantesExcluidos' => $participantesExcluidos,
'subsPendentes' => $subsPendentes,
'trabalho' => $trabalho]);
}
public function aprovarSubstituicao(Request $request){
$substituicao = Substituicao::find($request->substituicaoID);
if($request->aprovar == 'true'){
try{
if($substituicao->tipo == 'TrocarPlano'){
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}else{
$substituicao->participanteSubstituido->delete();
$trabalho = Trabalho::find($substituicao->trabalho->id);
$trabalho->participantes()->save($substituicao->participanteSubstituto);
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}
return redirect()->back()->with(['sucesso' => 'Substituição concluida!']);
}catch(\Throwable $th){
return redirect()->back()->with(['erro' => $th->getMessage()]);
}
}else{
try{
if($substituicao->tipo == 'TrocarPlano'){
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}elseif($substituicao->tipo == 'ManterPlano'){
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id;
$substituicao->planoSubstituto->save();
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}else{
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}
return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']);
}catch(\Throwable $th){
return redirect()->back()->with(['erro' => $th->getMessage()]);
}
}
}
} }
\ No newline at end of file
...@@ -15,6 +15,15 @@ class Participante extends Model ...@@ -15,6 +15,15 @@ class Participante extends Model
public function user(){ public function user(){
return $this->belongsTo('App\User'); return $this->belongsTo('App\User');
} }
public function participanteSubstituido(){
return $this->hasMany('App\Substituicao');
}
public function participanteSubstituto(){
return $this->hasMany('App\Substituicao');
}
public function trabalhos(){ public function trabalhos(){
return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); return $this->belongsToMany('App\Trabalho', 'trabalho_participante');
} }
......
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Substituicao extends Model
{
//
protected $fillable = [
'status',
'tipo',
'justificativa',
'causa',
'participanteSubstituido_id',
'participanteSubstituto_id'
];
public function participanteSubstituido(){
return $this->belongsTo('App\Participante', 'participanteSubstituido_id');
}
public function participanteSubstituto(){
return $this->belongsTo('App\Participante', 'participanteSubstituto_id');
}
public function planoSubstituto(){
return $this->belongsTo('App\Arquivo', 'planoSubstituto_id');
}
public function trabalho(){
return $this->belongsTo('App\Trabalho');
}
}
...@@ -97,4 +97,8 @@ class Trabalho extends Model ...@@ -97,4 +97,8 @@ class Trabalho extends Model
public function avaliadors(){ public function avaliadors(){
return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at'); return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at');
} }
public function substituicaos(){
return $this->hasMany('App\Substituicao');
}
} }
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSubstituicaosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('substituicaos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->enum('status', ['Finalizada', 'Negada', 'Em Aguardo']);
$table->enum('tipo', ['Completa', 'TrocarPlano', 'ManterPlano']);
$table->text('justificativa')->nullable();
$table->string('causa')->nullable();
$table->unsignedBigInteger('trabalho_id');
$table->unsignedBigInteger('participanteSubstituido_id');
$table->unsignedBigInteger('participanteSubstituto_id');
$table->unsignedBigInteger('planoSubstituto_id');
$table->dateTime('concluida_em')->nullable();
$table->foreign('trabalho_id')->references('id')->on('trabalhos');
$table->foreign('participanteSubstituido_id')->references('id')->on('participantes');
$table->foreign('participanteSubstituto_id')->references('id')->on('participantes');
$table->foreign('planoSubstituto_id')->references('id')->on('arquivos');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('substituicaos');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddSoftdeleteArquivos extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('arquivos', function (Blueprint $table) {
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('arquivos', function (Blueprint $table) {
$table->dropSoftDeletes();
});
}
}
...@@ -149,7 +149,9 @@ ...@@ -149,7 +149,9 @@
<hr> <hr>
<h4>Discentes</h4> <h4>Discentes</h4>
<a href="{{route('trabalho.telaAnaliseSubstituicoes', ['trabalho_id' => $trabalho->id])}}" class="">
Substituições
</a>
{{-- Participantes --}} {{-- Participantes --}}
<div class="row" style="margin-top:20px"> <div class="row" style="margin-top:20px">
<div class="col-sm-12"> <div class="col-sm-12">
......
@extends('layouts.app')
@section('content')
<div class="container">
@if (session('sucesso'))
<div class="alert alert-success" role="alert">
{{ session('sucesso') }}
</div>
@endif
@if(session('erro'))
<div class="alert alert-danger" role="alert">
{{ session('erro') }}
</div>
@endif
<div class="row justify-content-center">
<div class="col-sm-12">
<div class="card" style="margin-top:50px">
<div class="card-header">
<h4 class="card-title" style="color:#1492E6">
Substituições
</h4>
<h5 style="color:grey; font-size:medium">{{$trabalho->titulo}}</h5>
</div>
<div class="card-body">
@if($subsPendentes->count() > 0)
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Participante Substituido</th>
<th scope="col">Participante Substituto</th>
<th scope="col">Plano Substituto</th>
<th scope="col">Opção</th>
</tr>
</thead>
<tbody>
@foreach($subsPendentes as $subs)
<tr>
<td><a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$subs->participanteSubstituido->id}}" class="button">{{$subs->participanteSubstituido->user->name}}</a></td>
<td><a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$subs->participanteSubstituto->id}}" class="button">{{$subs->participanteSubstituto->user->name}}</a></td>
<td><a href="{{ route('baixar.plano', ['id' => $subs->planoSubstituto->id]) }}">{{$subs->planoSubstituto->titulo}}</a></td>
<td>
<div class="row justify-content-around">
<a href="" data-toggle="modal" data-target="#modalResultadoSubst{{$subs->id}}" class="button"><i class="far fa-check-circle fa-2x"></i></a>
<a href="" data-toggle="modal" data-target="#modalCancelarSubst{{$subs->id}}" class="button"><i class="far fa-times-circle fa-2x"></i></a>
</div>
</td>
</tr>
<!-- Modal aprovar substituição -->
<div class="modal fade" id="modalResultadoSubst{{$subs->id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto">
<h5 class="modal-title" id="exampleModalLabel" style="color:#1492E6">Proceder Com Substituição</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form method="POST" id="AprovarSubParticForm" action="{{route('trabalho.aprovarSubstituicao')}}">
@csrf
<input type="hidden" name="substituicaoID" value="{{$subs->id}}">
<input type="hidden" name="aprovar" value="true">
<div class="row">
<div class="col-12">
<div class="form-group">
<label for="justificativaTextArea">Justificativa:</label>
<textarea class="form-control" id="justificativaTextArea" rows="3" name="textJustificativa" ></textarea>
</div>
<select class="custom-select" name="selectJustificativa" >
<option value="DESISTENCIA">DESISTÊNCIA</option>
</select>
</div>
</div>
<div class="row justify-content-end mt-4">
<div class="col-md-auto">
<div><button type="submit" class="btn btn-success">Aprovar Substituição</button></div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Modal reprovar substituição -->
<div class="modal fade" id="modalCancelarSubst{{$subs->id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto">
<h5 class="modal-title" id="exampleModalLabel" style="color:#1492E6">Cancelar Substituição</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form method="POST" id="CancelarSubParticForm" action="{{route('trabalho.aprovarSubstituicao')}}">
@csrf
<input type="hidden" name="substituicaoID" value="{{$subs->id}}">
<input type="hidden" name="aprovar" value="false">
<div class="row">
<div class="col-12">
<div class="form-group">
<label for="justificativaTextArea">Justificativa:</label>
<textarea class="form-control" id="justificativaTextArea" rows="3" name="textJustificativa" ></textarea>
</div>
<select class="custom-select" name="selectJustificativa" >
<option value="DESISTENCIA">DESISTÊNCIA</option>
</select>
</div>
</div>
<div class="row justify-content-end mt-4">
<div class="col-md-auto">
<div><button type="submit" class="btn btn-success">Cancelar Substituição</button></div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Modal vizualizar info participante substituido -->
<div class="modal fade" id="modalVizuParticipante{{$subs->participanteSubstituido->id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div>
</div>
</div>
</div>
<!-- Modal vizualizar info participante substituto -->
<div class="modal fade" id="modalVizuParticipante{{$subs->participanteSubstituto->id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@include('administrador.vizualizarParticipante')
</div>
</div>
</div>
</div>
@endforeach
</tbody>
</table>
@else
<h4>Nenhuma substituição Pendente</h4>
@endif
<h4 style="margin-top: 25px">Histórico de participantes</h4>
<div style="margin-top: 20px">
<div class="card-header">
<h5 class="card-title" style= "color:#1492E6">
Nome/Periodo
</h5>
</div>
<div class="card-body">
@foreach($participantesExcluidos as $participante)
<div class="row"style="margin-bottom: 20px;">
<div class="col-10">
<h4 style="font-size:20px">{{$participante->user->name}}</h4>
<h5 style= "color:grey; font-size:medium">{{date('d-m-Y', strtotime($participante->created_at))}} - {{date('d-m-Y', strtotime($participante->deleted_at))}}</h5>
</div>
<div class="col-2 align-self-center">
<div class="row justify-content-center">
<a href="" data-toggle="modal" data-target="#modalVizuParticipanteExcluido{{$participante->id}}" class="button"><i class="far fa-eye fa-2x"></i></a>
</div>
</div>
</div>
<!-- Modal visualizar informações participante excluido -->
<div class="modal fade" id="modalVizuParticipanteExcluido{{$participante->id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1])
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script>
</script>
@endsection
\ No newline at end of file
...@@ -88,6 +88,118 @@ ...@@ -88,6 +88,118 @@
</div> </div>
</div> </div>
@if($substituicoesPendentes->count() > 0)
<h4 style="margin-top: 50px">Substituições Pendentes</h4>
<div style="margin-top: 20px">
<div class="card-header">
<div class="row">
<div class="col-4">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituido
</h5>
</div>
<div class="col-4">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituto
</h5>
</div>
<div class="col-4">
<h5 class="card-title" style= "color:#1492E6">
Tipo
</h5>
</div>
</div>
</div>
<div class="card-body">
@foreach($substituicoesPendentes as $substituicao)
<div class="row"style="margin-bottom: 20px;">
<div class="col-4">
<h4 style="font-size:18px">{{$substituicao->participanteSubstituido->user->name}}</h4> </div>
<div class="col-4">
<h4 style="font-size:18px">{{$substituicao->participanteSubstituto->user->name}}</h4>
</div>
<div class="col-4">
@if($substituicao->tipo == 'ManterPlano')
<h5>Manter Plano</h5>
@elseif($substituicao->tipo == 'TrocarPlano')
<h5>Alterar Plano</h5>
@elseif($substituicao->tipo == 'Completa')
<h5>Completa</h5>
@endif
</div>
</div>
@endforeach
</div>
</div>
@endif
@if($substituicoesNegadas->count() > 0)
<h4 style="margin-top: 50px">Substituições Negadas</h4>
<div style="margin-top: 20px">
<div class="card-header">
<div class="row">
<div class="col-3">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituido
</h5>
</div>
<div class="col-3">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituto
</h5>
</div>
<div class="col-2">
<h5 class="card-title" style= "color:#1492E6">
Tipo
</h5>
</div>
<div class="col-2">
<h5 class="card-title" style= "color:#1492E6">
Justificativa
</h5>
</div>
<div class="col-2">
<h5 class="card-title" style= "color:#1492E6">
Data
</h5>
</div>
</div>
</div>
<div class="card-body">
@foreach($substituicoesNegadas as $substituicao)
<div class="row"style="margin-bottom: 20px;">
<div class="col-3">
@if($substituicao->participanteSubstituido()->first() != null)
<h4 style="font-size:18px">{{$substituicao->participanteSubstituido->user->name}}</h4>
@else
<h4 style="font-size:18px">{{$substituicao->participanteSubstituido()->withTrashed()->first()->user->name}}</h4>
@endif
</div>
<div class="col-3">
<h4 style="font-size:18px">{{$substituicao->participanteSubstituto()->withTrashed()->first()->user->name}}</h4>
</div>
<div class="col-2">
@if($substituicao->tipo == 'ManterPlano')
<h5>Manter Plano</h5>
@elseif($substituicao->tipo == 'TrocarPlano')
<h5>Alterar Plano</h5>
@elseif($substituicao->tipo == 'Completa')
<h5>Completa</h5>
@endif
</div>
<div class="col-2">
<p style="max-height: 60px; overflow:auto">{{$substituicao->justificativa}}</p>
</div>
<div class="col-2">
<p>{{$substituicao->concluida_em}}</p>
</div>
</div>
@endforeach
</div>
</div>
@endif
<h4 style="margin-top: 50px">Histórico de participantes</h4> <h4 style="margin-top: 50px">Histórico de participantes</h4>
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<div class="card-header"> <div class="card-header">
......
@if($visualizarSubstituido ?? '')
<div class="container-fluid">
<div class="row">
<div class="col-md-12 mt-3">
<h5>Dados do discente</h5>
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Nome completo'])
<input type="text" class="form-control " value="{{$subs->participanteSubstituido->user->name}}" name="name" placeholder="Nome Completo" maxlength="150" id="nome{{$subs->participanteSubstituido->id}}" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'E-mail'])
<input type="email" class="form-control" value="{{$subs->participanteSubstituido->user->email}}" name="email" placeholder="E-mail" maxlength="150" id="email{{$subs->participanteSubstituido->id}}" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Data de nascimento'])
<input type="date" class="form-control" value="{{$subs->participanteSubstituido->data_de_nascimento}}" name="data_de_nascimento" placeholder="Data de nascimento" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'CPF'])
<input type="text" class="form-control cpf" value="{{$subs->participanteSubstituido->user->cpf}}" name="cpf" placeholder="CPF" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'RG'])
<input type="number" class="form-control" min="1" maxlength="12" value="{{$subs->participanteSubstituido->rg}}" name="rg" placeholder="RG" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Celular'])
<input type="tel" class="form-control celular" value="{{$subs->participanteSubstituido->user->celular}}" name="celular" placeholder="Celular" id="inputCelular" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-md-12">
<h5>Endereço</h5>
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'CEP'])
<input type="text" class="form-control cep" value="{{$subs->participanteSubstituido->user->endereco->cep}}" name="cep" placeholder="CEP" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.select', ['label' => 'Estado'])
<select name="uf" id="estado" class="form-control" style="visibility: visible" disabled>
<option value="{{$subs->participanteSubstituido->user->endereco->uf}}" selected>{{$subs->participanteSubstituido->user->endereco->uf}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Cidade'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituido->user->endereco->cidade}}" name="cidade" placeholder="Cidade" maxlength="50" id="cidade{{$subs->participanteSubstituido->id}}" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Bairro'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituido->user->endereco->bairro}}" name="bairro" placeholder="Bairro" maxlength="50" id="bairro{{$subs->participanteSubstituido->id}}" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Rua'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituido->user->endereco->rua}}" name="rua" placeholder="Rua" maxlength="100" id="rua{{$subs->participanteSubstituido->id}}" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Número'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituido->user->endereco->numero}}" name="numero" placeholder="Número" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-group">
<label class=" control-label" for="firstname">Complemento</label>
<input type="text" class="form-control" value="{{$subs->participanteSubstituido->user->endereco->complemento}}" name="complemento" placeholder="Complemento" maxlength="75" id="complemento{{$subs->participanteSubstituido->id}}" disabled />
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h5>Dados do curso</h5>
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Instituição de Ensino'])
<select style="display: inline" onchange="showInstituicao(this)" class="form-control" name="instituicao" id="instituicao[{{$subs->participanteSubstituido->id}}]" disabled>
<option value="{{$subs->participanteSubstituido->user->instituicao}}" disabled selected hidden>{{$subs->participanteSubstituido->user->instituicao}}</option>
</select>
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Curso'])
<select style="display: inline" class="form-control" name="curso" onchange="showCurso(this)" id="curso[{{$subs->participanteSubstituido->id}}]" disabled>
<option value="{{$subs->participanteSubstituido->curso}}" disabled selected hidden>{{$subs->participanteSubstituido->curso}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.select', ['label' => 'Turno'])
<select name="turno" class="form-control" disabled>
<option value="{{$subs->participanteSubstituido->turno}}" selected>{{$subs->participanteSubstituido->turno}}</option>
</select>
@endcomponent
</div>
<div class="col-6">
@component('componentes.select', ['label' => 'Total de períodos/anos do curso'])
<select name="total_periodos" class="form-control" onchange="gerarPeriodo(this)" disabled>
<option value="{{$subs->participanteSubstituido->total_periodos}}" selected>{{$subs->participanteSubstituido->total_periodos}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.select', ['label' => 'Período/Ano atual'])
<select name="periodo_atual" class="form-control" disabled>
<option value="{{$subs->participanteSubstituido->periodo_atual}}" selected>{{$subs->participanteSubstituido->periodo_atual}}</option>
</select>
@endcomponent
</div>
<div class="col-6">
@component('componentes.select', ['label' => 'Ordem de prioridade'])
<select name="ordem_prioridade" class="form-control" disabled>
<option value="{{$subs->participanteSubstituido->ordem_prioridade}}" selected>{{$subs->participanteSubstituido->ordem_prioridade}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Coeficiente de rendimento'])
<input type="number" class="form-control media" value="{{$subs->participanteSubstituido->media_do_curso}}" name="media_do_curso" min="0" max="10" step="0.01" disabled>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-md-12">
<h5>Plano de trabalho</h5>
</div>
</div>
<div class="row justify-content-center">
@if($subs->participanteSubstituido->planoTrabalho)
<div class="col-6">
<h6>{{$subs->participanteSubstituido->planoTrabalho->titulo}}</h6>
</div>
<div class="col-6">
<a href="{{ route('baixar.plano', ['id' => $subs->participanteSubstituido->planoTrabalho->id]) }}"><i class="fas fa-file-pdf fa-2x"></i></a>
</div>
@else
<div class="col-3 text-danger">
<p><i class="fas fa-times-circle fa-2x"></i></p>
</div>
@endif
</div>
</div>
@else
<div class="container-fluid">
<div class="row">
<div class="col-md-12 mt-3">
<h5>Dados do discente</h5>
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Nome completo'])
<input type="text" class="form-control " value="{{$subs->participanteSubstituto->user->name}}" name="name" placeholder="Nome Completo" maxlength="150" id="nome{{$subs->participanteSubstituto->id}}" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'E-mail'])
<input type="email" class="form-control" value="{{$subs->participanteSubstituto->user->email}}" name="email" placeholder="E-mail" maxlength="150" id="email{{$subs->participanteSubstituto->id}}" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Data de nascimento'])
<input type="date" class="form-control" value="{{$subs->participanteSubstituto->data_de_nascimento}}" name="data_de_nascimento" placeholder="Data de nascimento" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'CPF'])
<input type="text" class="form-control cpf" value="{{$subs->participanteSubstituto->user->cpf}}" name="cpf" placeholder="CPF" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'RG'])
<input type="number" class="form-control" min="1" maxlength="12" value="{{$subs->participanteSubstituto->rg}}" name="rg" placeholder="RG" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Celular'])
<input type="tel" class="form-control celular" value="{{$subs->participanteSubstituto->user->celular}}" name="celular" placeholder="Celular" id="inputCelular" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-md-12">
<h5>Endereço</h5>
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'CEP'])
<input type="text" class="form-control cep" value="{{$subs->participanteSubstituto->user->endereco->cep}}" name="cep" placeholder="CEP" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.select', ['label' => 'Estado'])
<select name="uf" id="estado" class="form-control" style="visibility: visible" disabled>
<option value="{{$subs->participanteSubstituto->user->endereco->uf}}" selected>{{$subs->participanteSubstituto->user->endereco->uf}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Cidade'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituto->user->endereco->cidade}}" name="cidade" placeholder="Cidade" maxlength="50" id="cidade{{$subs->participanteSubstituto->id}}" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Bairro'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituto->user->endereco->bairro}}" name="bairro" placeholder="Bairro" maxlength="50" id="bairro{{$subs->participanteSubstituto->id}}" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Rua'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituto->user->endereco->rua}}" name="rua" placeholder="Rua" maxlength="100" id="rua{{$subs->participanteSubstituto->id}}" disabled />
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Número'])
<input type="text" class="form-control" value="{{$subs->participanteSubstituto->user->endereco->numero}}" name="numero" placeholder="Número" disabled />
@endcomponent
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-group">
<label class=" control-label" for="firstname">Complemento</label>
<input type="text" class="form-control" value="{{$subs->participanteSubstituto->user->endereco->complemento}}" name="complemento" placeholder="Complemento" maxlength="75" id="complemento{{$subs->participanteSubstituto->id}}" disabled />
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h5>Dados do curso</h5>
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Instituição de Ensino'])
<select style="display: inline" onchange="showInstituicao(this)" class="form-control" name="instituicao" id="instituicao[{{$subs->participanteSubstituto->id}}]" disabled>
<option value="{{$subs->participanteSubstituto->user->instituicao}}" disabled selected hidden>{{$subs->participanteSubstituto->user->instituicao}}</option>
</select>
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'Curso'])
<select style="display: inline" class="form-control" name="curso" onchange="showCurso(this)" id="curso[{{$subs->participanteSubstituto->id}}]" disabled>
<option value="{{$subs->participanteSubstituto->curso}}" disabled selected hidden>{{$subs->participanteSubstituto->curso}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.select', ['label' => 'Turno'])
<select name="turno" class="form-control" disabled>
<option value="{{$subs->participanteSubstituto->turno}}" selected>{{$subs->participanteSubstituto->turno}}</option>
</select>
@endcomponent
</div>
<div class="col-6">
@component('componentes.select', ['label' => 'Total de períodos/anos do curso'])
<select name="total_periodos" class="form-control" onchange="gerarPeriodo(this)" disabled>
<option value="{{$subs->participanteSubstituto->total_periodos}}" selected>{{$subs->participanteSubstituto->total_periodos}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.select', ['label' => 'Período/Ano atual'])
<select name="periodo_atual" class="form-control" disabled>
<option value="{{$subs->participanteSubstituto->periodo_atual}}" selected>{{$subs->participanteSubstituto->periodo_atual}}</option>
</select>
@endcomponent
</div>
<div class="col-6">
@component('componentes.select', ['label' => 'Ordem de prioridade'])
<select name="ordem_prioridade" class="form-control" disabled>
<option value="{{$subs->participanteSubstituto->ordem_prioridade}}" selected>{{$subs->participanteSubstituto->ordem_prioridade}}</option>
</select>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-6">
@component('componentes.input', ['label' => 'Coeficiente de rendimento'])
<input type="number" class="form-control media" value="{{$subs->participanteSubstituto->media_do_curso}}" name="media_do_curso" min="0" max="10" step="0.01" disabled>
@endcomponent
</div>
</div>
<div class="row">
<div class="col-md-12">
<h5>Plano de trabalho</h5>
</div>
</div>
<div class="row justify-content-center">
@if($subs->participanteSubstituto->planoTrabalho)
<div class="col-6">
<h6>{{$subs->participanteSubstituto->planoTrabalho->titulo}}</h6>
</div>
<div class="col-6">
<a href="{{ route('baixar.plano', ['id' => $subs->participanteSubstituto->planoTrabalho->id]) }}"><i class="fas fa-file-pdf fa-2x"></i></a>
</div>
@else
<div class="col-3 text-danger">
<p><i class="fas fa-times-circle fa-2x"></i></p>
</div>
@endif
</div>
</div>
@endif
\ No newline at end of file
...@@ -130,6 +130,8 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){ ...@@ -130,6 +130,8 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){
Route::get( '/projeto/exportar/{id}','TrabalhoController@exportProjeto' )->name('exportar.projeto'); Route::get( '/projeto/exportar/{id}','TrabalhoController@exportProjeto' )->name('exportar.projeto');
Route::get( '/projeto/substituirParticipante', 'TrabalhoController@telaTrocaPart' )->name('trabalho.trocaParticipante'); Route::get( '/projeto/substituirParticipante', 'TrabalhoController@telaTrocaPart' )->name('trabalho.trocaParticipante');
Route::post( '/projeto/substituirParticipante', 'TrabalhoController@trocaParticipante' )->name('trabalho.infoTrocaParticipante'); Route::post( '/projeto/substituirParticipante', 'TrabalhoController@trocaParticipante' )->name('trabalho.infoTrocaParticipante');
Route::get( '/showSubstituicoes', 'TrabalhoController@telaShowSubst' )->name('trabalho.telaAnaliseSubstituicoes');
Route::post( '/aprovarSubstituicao', 'TrabalhoController@aprovarSubstituicao' )->name('trabalho.aprovarSubstituicao');
//######### Atribuição ####################################### //######### Atribuição #######################################
Route::get( '/atribuir', 'AtribuicaoController@distribuicaoAutomatica' )->name('distribuicao'); Route::get( '/atribuir', 'AtribuicaoController@distribuicaoAutomatica' )->name('distribuicao');
......
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