"database/seeders/DatabaseSeeder.php" did not exist on "088da334d39877d7867f559f315854eba1aaca5d"
Unverified Commit 9efc2f1c authored by Gabriel Antônio da Silva's avatar Gabriel Antônio da Silva Committed by GitHub
Browse files

Merge pull request #178 from GuilhermeGz/master

Alterações no Sistema
parents 8779fb28 8c91b6e2
......@@ -15,7 +15,8 @@ class Evento extends Model
'nome', 'descricao', 'tipo',
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'resultado_final','resultado_preliminar', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes'
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes',
'dt_inicioRelatorio', 'dt_fimRelatorio'
];
public function endereco(){
......
......@@ -44,7 +44,7 @@ class AdministradorController extends Controller
public function editais(){
//$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first();
//$eventos = Evento::where('coordenadorId',$admin->id )->get();
$eventos = Evento::all();
$eventos = Evento::all()->sortBy('nome');
return view('administrador.editais', ['eventos'=> $eventos]);
}
......@@ -63,7 +63,7 @@ class AdministradorController extends Controller
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhosSubmetidos = $evento->trabalhos->where('status', 'submetido');
$trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado');
$trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados);
$trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados)->sortBy('titulo');
$funcaoParticipantes = FuncaoParticipantes::all();
// $participantes = Participante::where('trabalho_id', $id)->get();
......
......@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Arquivo;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use mysql_xdevapi\Exception;
class ArquivoController extends Controller
{
......@@ -93,4 +94,26 @@ class ArquivoController extends Controller
}
return abort(404);
}
public function listar($id){
$arquivos = Arquivo::where('trabalhoId',$id)->get();
return view('planosTrabalho.listar')->with(['arquivos' => $arquivos]);
}
public function anexarRelatorio(Request $request){
try{
$arquivo = Arquivo::where('id',$request->arqId)->first();
$pasta = 'planoTrabalho/' . $arquivo->id;
if($request->relatorioParcial != null) {
$arquivo->relatorioParcial = Storage::putFileAs($pasta, $request->relatorioParcial, "RelatorioParcial.pdf");
}
if($request->relatorioFinal != null) {
$arquivo->relatorioFinal = Storage::putFileAs($pasta, $request->relatorioFinal, "RelatorioFinal.pdf");
}
$arquivo->save();
return redirect(route('planos.listar', ['id' => $request->projId]));
}catch (Exception $th){
}
}
}
......@@ -32,7 +32,7 @@ class EventoController extends Controller
public function index(Request $request)
{
if($request->buscar == null){
$eventos = Evento::all();
$eventos = Evento::all()->sortBy('nome');
// $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
$hoje = Carbon::today('America/Recife');
......@@ -51,7 +51,7 @@ class EventoController extends Controller
public function listar()
{
//
$eventos = Evento::all();
$eventos = Evento::all()->sortBy('nome');
// $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
......@@ -122,6 +122,8 @@ class EventoController extends Controller
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'dt_inicioRelatorio' => ['required', 'date'],
'dt_fimRelatorio' => ['required', 'date'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => [],
]);
......@@ -146,6 +148,8 @@ class EventoController extends Controller
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorio' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorio' => ['required', 'date', 'after_or_equal:dt_inicioRelatorio'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
......@@ -163,6 +167,8 @@ class EventoController extends Controller
$evento['fim_recurso'] = $request->fim_recurso;
$evento['resultado_preliminar']= $request->resultado_preliminar;
$evento['resultado_final'] = $request->resultado_final;
$evento['dt_inicioRelatorio'] = $request->dt_inicioRelatorio;
$evento['dt_fimRelatorio'] = $request->dt_fimRelatorio;
$evento['coordenadorId'] = $request->coordenador_id;
$evento['criador_id'] = $user_id;
$evento['numParticipantes'] = $request->numParticipantes;
......@@ -360,6 +366,8 @@ class EventoController extends Controller
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'dt_inicioRelatorio' => ['required', 'date'],
'dt_fimRelatorio' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
......@@ -379,6 +387,8 @@ class EventoController extends Controller
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorio' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorio' => ['required', 'date', 'after_or_equal:dt_inicioRelatorio'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
......@@ -395,6 +405,8 @@ class EventoController extends Controller
$evento->fim_recurso = $request->fim_recurso;
$evento->resultado_preliminar = $request->resultado_preliminar;
$evento->resultado_final = $request->resultado_final;
$evento->dt_inicioRelatorio = $request->dt_inicioRelatorio;
$evento->dt_fimRelatorio = $request->dt_fimRelatorio;
$evento->coordenadorId = $request->coordenador_id;
$evento->consu = $request->has('consu');
if($request->pdfEdital != null){
......
......@@ -105,7 +105,7 @@ class ProponenteController extends Controller
}
public function projetosEdital($id) {
$edital = Evento::find($id);
$projetos = Trabalho::where('evento_id', '=', $id)->get();
$projetos = Trabalho::where('evento_id', '=', $id)->orderBy('titulo')->get();
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
......
......@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use PDF;
use App;
use Auth;
use App\Area;
use App\User;
......@@ -1452,6 +1453,7 @@ class TrabalhoController extends Controller
$substituicao = new Substituicao();
$substituicao->observacao = $request->textObservacao;
\App\Validator\CpfValidator::validate ($request->all());
$user = User::where('email' , $data['email'])->first();
if (!$user){
$data['usuarioTemp'] = true;
......@@ -1529,6 +1531,9 @@ class TrabalhoController extends Controller
Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho));
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
}catch (\App\Validator\ValidationException $th){
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]);
}catch (\Throwable $th) {
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]);
......
......@@ -13,6 +13,8 @@ class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
public static $rules=['cpf' =>'required'];
public static $messages=['cpf'=>'erro cpf'];
/**
* The attributes that are mass assignable.
*
......
<?php
namespace App\Validator;
class CpfValidator
{
public static function validate($data)
{
$validator = \Validator::make($data, ['cpf' => 'required'], ['cpf' => 'erro cpf']);
$cpf = preg_replace('/[^0-9]/', '', (string)$data['cpf']);
if (strlen($cpf) != 11) {
$validator->errors()->add('cpf', 'Necessário 11 números em um CPF');
throw new ValidationException($validator, "Erro");
}else{
for ($i = 0, $j = 10, $soma = 0; $i < 9; $i++, $j--) {
$soma += $cpf[$i] * $j;
}
$resto = $soma % 11;
if ($cpf[9] != ($resto < 2 ? 0 : 11 - $resto)) {
$validator->errors()->add('cpf', 'CPF Inválido');
}
for ($i = 0, $j = 11, $soma = 0; $i < 10; $i++, $j--) {
if (str_repeat($i, 11) == $cpf) {
$validator->errors()->add('cpf', 'CPF Inválido');
}
$soma += $cpf[$i] * $j;
}
$resto = $soma % 11;
if ($cpf[10] != ($resto < 2 ? 0 : 11 - $resto)) {
$validator->errors()->add('cpf', 'CPF Inválido');
}
if(!$validator->errors()->isEmpty())
throw new ValidationException($validator, "Erro");
return true;
}
}
}
<?php
namespace App\Validator;
class ValidationException extends \Exception
{
protected $validator;
public function __construct($validator,$text ="Erro na validação")
{
parent::__construct($text);
$this->validator = $validator;
}
public function getValidator(){
return $this->validator;
}
//
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableEventos2 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('eventos', function (Blueprint $table) {
$table->date('dt_inicioRelatorio')->nullable();
$table->date('dt_fimRelatorio')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('eventos', function (Blueprint $table) {
$table->dropColumn('dt_inicioRelatorio');
$table->dropColumn('dt_fimRelatorio');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableArquivos2 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('arquivos', function (Blueprint $table) {
$table->string('relatorioParcial')->nullable();
$table->string('relatorioFinal')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('arquivos', function (Blueprint $table) {
$table->dropColumn('relatorioParcial');
$table->dropColumn('relatorioFinal');
});
}
}
......@@ -218,6 +218,32 @@
</div>
@endif
@endforeach
<h5>Relatórios</h5>
<div class="row">
<div class="col-sm-12">
<div id="relatorios">
<div class="row">
<div class="col-sm-4">
<label for="dt_inicioRelatorio" class="col-form-label">{{ __('Inicio da Submissão:') }}</label>
<input id="dt_inicioRelatorio{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorio" value="{{$evento->dt_inicioRelatorio}}" required autocomplete="dt_inicioRelatorio" disabled autofocus>
</div>
<div class="col-sm-4">
<label for="dt_fimRelatorio" class="col-form-label">{{ __('Fim da Submissão:') }}</label>
<input id="dt_fimRelatorio{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorio" value="{{$evento->dt_fimRelatorio}}" required autocomplete="dt_fimRelatorio" disabled autofocus>
</div>
</div>
</div>
<div>
<br>
<a href="{{route('planos.listar', ['id' => $trabalho->id])}}" class="">
Lista de Relatórios
</a>
</div>
</div>
</div>
</div>
{{-- @endif --}}
{{-- @endforeach --}}
......
......@@ -26,7 +26,7 @@
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Participante Substituido</th>
<th scope="col">Participante Substituído</th>
<th scope="col">Participante Substituto</th>
<th scope="col">Plano Substituto</th>
<th scope="col">Opção</th>
......@@ -69,7 +69,7 @@
<div class="col-12">
<div class="form-group">
<label for="justificativaTextArea">Justificativa:</label>
<textarea class="form-control" id="justificativaTextArea" rows="3" name="textJustificativa" ></textarea>
<textarea class="form-control" id="justificativaTextArea" rows="3" name="textJustificativa" minlength="20" required>Substituição cumpre com todos os requisitos</textarea>
</div>
<select class="custom-select" name="selectJustificativa" >
<option value="DESISTENCIA">DESISTÊNCIA</option>
......@@ -110,7 +110,7 @@
<div class="col-12">
<div class="form-group">
<label for="justificativaTextArea">Justificativa:</label>
<textarea class="form-control" id="justificativaTextArea" rows="3" name="textJustificativa" ></textarea>
<textarea class="form-control" id="justificativaTextArea" rows="3" name="textJustificativa" minlength="20" required></textarea>
</div>
<select class="custom-select" name="selectJustificativa" >
<option value="DESISTENCIA">DESISTÊNCIA</option>
......@@ -179,12 +179,12 @@
<div style="margin-top: 20px">
<div class="card-header">
<div class="row">
<div class="col-4">
<div class="col-3">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituido
Participante Substituído
</h5>
</div>
<div class="col-4">
<div class="col-3">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituto
</h5>
......@@ -199,17 +199,22 @@
Status
</h5>
</div>
<div class="col-2">
<h5 class="card-title" style= "color:#1492E6">
Justificativa
</h5>
</div>
</div>
</div>
<div class="card-body">
@foreach($substituicoesProjeto as $subs)
<div class="row"style="margin-bottom: 20px;">
<div class="col-4">
<div class="col-3">
<a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$subs->participanteSubstituido()->withTrashed()->first()->id}}" class="button"><h4 style="font-size:18px">{{$subs->participanteSubstituido()->withTrashed()->first()->user->name}}</h4></a>
<h5 style= "color:grey; font-size:medium">{{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->created_at))}} - @if($subs->participanteSubstituido()->withTrashed()->first()->deleted_at == null) Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->deleted_at))}} @endif</h5>
</div>
<div class="col-4">
<div class="col-3">
<a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$subs->participanteSubstituto()->withTrashed()->first()->id}}" class="button"><h4 style="font-size:18px">{{$subs->participanteSubstituto()->withTrashed()->first()->user->name}}</h4></a>
<h5 style= "color:grey; font-size:medium">{{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->created_at))}} - @if($subs->participanteSubstituto()->withTrashed()->first()->deleted_at == null) Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->deleted_at))}} @endif</h5>
</div>
......@@ -231,6 +236,30 @@
<h5>Pendente</h5>
@endif
</div>
<div class="col-2">
@if($subs->status == 'Em Aguardo')
<h5>Pendente</h5>
@else
<a href="" data-toggle="modal" data-target="#modalVizuJustificativa{{$subs->id}}" class="button"><h4 style="font-size:18px">Visualizar</h4></a>
@endif
</div>
</div>
<!-- Modal vizualizar justificativa -->
<div class="modal fade" id="modalVizuJustificativa{{$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">Justificativa</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">
<h4 style="font-size:18px">{{$subs->justificativa}}</h4>
</div>
</div>
</div>
</div>
<!-- Modal vizualizar info participante substituido -->
......
......@@ -30,7 +30,7 @@
</h5>
</div>
<div class="card-body">
@foreach($participantes as $participante)
@foreach($participantes as $participante)
<div class="row"style="margin-bottom: 20px;">
<div class="col-10">
<h4 style="font-size:20px">{{$participante->user->name}}</h4>
......@@ -38,7 +38,9 @@
</div>
<div class="col-2 align-self-center">
<div class="row justify-content-around">
<a href="" data-toggle="modal" data-target="#modalSubParticipante{{$participante->id}}" class="button"><i class="fas fa-exchange-alt fa-2x"></i><a>
<a href="" data-toggle="modal" data-target="#modalSubParticipante{{$participante->id}}" class="button"
@if(($substituicoesProjeto->first() != null) && ($substituicoesProjeto->first()->status == 'Em Aguardo')) style="pointer-events: none; cursor: default;" @endif>
<i class="fas fa-exchange-alt fa-2x"></i></a>
<a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$participante->id}}" class="button"><i class="far fa-eye fa-2x"></i></a>
</div>
</div>
......@@ -92,12 +94,12 @@
<div style="margin-top: 20px">
<div class="card-header">
<div class="row">
<div class="col-4">
<div class="col-3">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituido
Participante Substituído
</h5>
</div>
<div class="col-4">
<div class="col-3">
<h5 class="card-title" style= "color:#1492E6">
Participante Substituto
</h5>
......@@ -112,17 +114,22 @@
Status
</h5>
</div>
<div class="col-2">
<h5 class="card-title" style= "color:#1492E6">
Justificativa
</h5>
</div>
</div>
</div>
<div class="card-body">
@foreach($substituicoesProjeto as $subs)
<div class="row"style="margin-bottom: 20px;">
<div class="col-4">
<div class="col-3">
<a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$subs->participanteSubstituido()->withTrashed()->first()->id}}" class="button"><h4 style="font-size:18px">{{$subs->participanteSubstituido()->withTrashed()->first()->user->name}}</h4></a>
<h5 style= "color:grey; font-size:medium">{{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->created_at))}} - @if($subs->participanteSubstituido()->withTrashed()->first()->deleted_at == null) Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->deleted_at))}} @endif</h5>
</div>
<div class="col-4">
<div class="col-3">
<a href="" data-toggle="modal" data-target="#modalVizuParticipante{{$subs->participanteSubstituto()->withTrashed()->first()->id}}" class="button"><h4 style="font-size:18px">{{$subs->participanteSubstituto()->withTrashed()->first()->user->name}}</h4></a>
<h5 style= "color:grey; font-size:medium">{{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->created_at))}} - @if($subs->participanteSubstituto()->withTrashed()->first()->deleted_at == null) Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->deleted_at))}} @endif</h5>
</div>
......@@ -144,6 +151,30 @@
<h5>Pendente</h5>
@endif
</div>
<div class="col-2">
@if($subs->status == 'Em Aguardo')
<h5>Pendente</h5>
@else
<a href="" data-toggle="modal" data-target="#modalVizuJustificativa{{$subs->id}}" class="button"><h4 style="font-size:18px">Visualizar</h4></a>
@endif
</div>
</div>
<!-- Modal vizualizar justificativa -->
<div class="modal fade" id="modalVizuJustificativa{{$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">Justificativa</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">
<h4 style="font-size:18px">{{$subs->justificativa}}</h4>
</div>
</div>
</div>
</div>
<!-- Modal vizualizar info participante substituido -->
......@@ -202,6 +233,7 @@
$('input.cep:text').mask('00000-000');
$('input.cpf:text').mask('000.000.000-00');
$('input.celular').mask('(00) 00000-0000');
$('input.rg:text').mask('00.000.000-0');
$('input').on("input", function(){
var maxlength = $(this).attr("maxlength");
......@@ -249,19 +281,31 @@
var idParticipante = checkboxInput.id;
var tituloPlano = document.getElementById('nomePlanoTrabalho'+idParticipante);
var anexoPlano = document.getElementById('anexoPlanoTrabalho'+idParticipante);
var planoAtual =<?php echo json_encode($participantes->first()->planoTrabalho) ?>;
var arquivo = document.getElementById('arquivo'+idParticipante);
if(checkboxInput.checked){
tituloPlano.setAttribute('value', planoAtual.titulo);
tituloPlano.setAttribute('disabled', 'disabled');
tituloPlano.removeAttribute('required');
anexoPlano.setAttribute('disabled', 'disabled');
anexoPlano.removeAttribute('required');
document.getElementById("arqParticipantes").hidden=true;
document.getElementById("arqAtual").hidden=false;
arquivo.href = "/baixar/plano-de-trabalho/"+planoAtual.id;
}else if(!checkboxInput.checked){
tituloPlano.setAttribute('value','');
tituloPlano.removeAttribute('disabled');
tituloPlano.setAttribute('required', 'required');
anexoPlano.removeAttribute('disabled');
anexoPlano.setAttribute('required', 'required');
document.getElementById("arqParticipantes").hidden=false;
document.getElementById("arqAtual").hidden=true;
}
}
......
......@@ -245,20 +245,22 @@
@endcomponent
</div>
<div class="col-6">
<div class="col-6 {{ $errors->has('cpf') ? ' has-error' : '' }}">
@component('componentes.input', ['label' => 'CPF'])
<input type="text" class="form-control cpf" value="" name="cpf" placeholder="CPF" id="cpf{{$participante->id}}" required />
@error('cpf')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
<input type="text" class="form-control cpf @error('cpf') is-invalid @enderror" value=""
onchange="checarCPFdoCampo(this)"
name="cpf" placeholder="CPF" id="cpf{{$participante->id}}" required autofocus autocomplete="cpf"/>
@error('cpf')
<span class="help-block">
<strong>{{ $message }}</strong>
</span>
@enderror
@endcomponent
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'RG'])
<input type="number" class="form-control" min="1" maxlength="12" value="" name="rg" placeholder="RG" id="rg{{$participante->id}}" required />
<input type="text" class="form-control rg" value="" name="rg" placeholder="RG" id="rg{{$participante->id}}" required />
@error('rg')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
......@@ -577,7 +579,7 @@
<div class="col-md-12">
<h5>Plano de trabalho</h5>
</div>
<div class="col-12">
<div class="col-12" id="arqParticipante">
@component('componentes.input', ['label' => 'Título'])
<input type="text" class="form-control" value="" name="nomePlanoTrabalho" placeholder="Digite o título do plano de trabalho" maxlength="255" id="nomePlanoTrabalho{{$participante->id}}" required>
<span style="color: red; font-size: 12px" id="caracsRestantesnomePlanoTrabalho{{$participante->id}}">
......@@ -590,7 +592,7 @@
@endcomponent
</div>
<div class="col-6">
<div class="col-6" id="arqParticipantes">
@component('componentes.input', ['label' => 'Anexo (.pdf)'])
<input type="file" class="input-group-text" value="" name="anexoPlanoTrabalho" accept=".pdf" placeholder="Anexo do Plano de Trabalho" id="anexoPlanoTrabalho{{$participante->id}}" required />
@error('anexoPlanoTrabalho')
......@@ -600,12 +602,16 @@
@enderror
@endcomponent
</div>
<div class="col-6" id="arqAtual" hidden>
@component('componentes.input', ['label' => 'Anexo (.pdf)'])
<a href="" id="arquivo{{$participante->id}}" style="padding-left: 20px"><i class="fas fa-file-pdf fa-2x"></i></a>
@endcomponent
</div>
<h1 id="teste"></h1>
<div class="col-md-12">
<h5>Observações</h5>
</div>
<div class="col-12">
<label for="observacaoTextArea">Observação:</label>
<textarea class="form-control" id="observacaoTextArea" rows="3" name="textObservacao" ></textarea>
</div>
<div class="col-12 mt-4">
......
......@@ -551,7 +551,6 @@
</div>
<div class="row">
<div class="col-lg">
<label for="observacaoTextArea">Observação:</label>
<textarea class="form-control" id="observacaoTextArea" rows="3" name="textObservacao" placeholder="{{$subs->observacao}}" disabled></textarea>
</div>
</div>
......
......@@ -33,8 +33,9 @@
<input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}" >
<input type="hidden" name="evento_id" value="{{ $evento->id }}" >
<div class="form-group">
<label for="exampleFormControlTextarea1">Parecer:</label>
<textarea class="form-control" id="exampleFormControlTextarea1" rows="3" name="textParecer" placeholder="Digite aqui o seu parecer">{{ $trabalho->pivot->parecer }}</textarea>
@component('componentes.input', ['label' => 'Parecer'])
<textarea class="form-control" id="exampleFormControlTextarea1" rows="3" name="textParecer" placeholder="Digite aqui o seu parecer" required>{{ $trabalho->pivot->parecer }}</textarea>
@endcomponent
</div>
<select class="custom-select" name="recomendacao" >
<option @if($trabalho->pivot->recomendacao =='RECOMENDADO' ) selected @endif value="RECOMENDADO">RECOMENDADO</option>
......@@ -42,8 +43,9 @@
</select>
<div class="form-group mt-3 md-3">
@if($trabalho->pivot->AnexoParecer == null)
<label for="exampleFormControlFile1">Anexo do Parecer:</label>
<input type="file" class="form-control-file" id="exampleFormControlFile1" name="anexoParecer">
@component('componentes.input', ['label' => 'Anexo do Parecer'])
<input type="file" class="form-control-file" id="exampleFormControlFile1" name="anexoParecer" required>
@endcomponent
@else
<div class="form-row">
......
......@@ -220,6 +220,42 @@
@enderror
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
<p>Relatório</p>
</div>
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
@component('componentes.input', ['label' => 'Inicio da Submissão:'])
<input id="dt_inicioRelatorio" type="date" class="form-control @error('dt_inicioRelatorio') is-invalid @enderror" name="dt_inicioRelatorio" value="{{ old('dt_inicioRelatorio') }}" required autocomplete="dt_inicioRelatorio" autofocus
title="Inicio para o periodo do envio do relatório">
@error('dt_inicioRelatorio')
<span class="invalid-feedback" role="alert">
<strong>Apenas será aceita data posterior ao dia do Resultado Final</strong>
</span>
@enderror
@endcomponent
</div>
<div class="col-sm-6">
@component('componentes.input', ['label' => 'Fim da Submissão:'])
<input id="dt_fimRelatorio" type="date" class="form-control @error('dt_fimRelatorio') is-invalid @enderror" name="dt_fimRelatorio" value="{{ old('dt_fimRelatorio') }}" required autocomplete="dt_fimRelatorio" autofocus
title="Final do periodo do envio do relatório">
@error('dt_fimRelatorio')
<span class="invalid-feedback" role="alert">
<strong>A data deve ser igual ou posterior a data de inicio</strong>
</span>
@enderror
@endcomponent
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
......@@ -236,7 +272,7 @@
<a id="pdfEditalTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'pdfEdital' ])}}">Arquivo atual</a>
@endif
<input type="hidden" id="pdfEditalPreenchido" name="pdfEditalPreenchido" value="{{ old('pdfEditalPreenchido') }}" >
<input type="file" class="form-control-file @error('pdfEdital') is-invalid @enderror" name="pdfEdital" value="{{ old('pdfEdital') }}" id="pdfEdital" onchange="exibirAnexoTemp(this)">
<input type="file" accept=".pdf" class="form-control-file pdf @error('pdfEdital') is-invalid @enderror" name="pdfEdital" value="{{ old('pdfEdital') }}" id="pdfEdital" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small>
@error('pdfEdital')
<span class="invalid-feedback" role="alert">
......@@ -293,5 +329,26 @@
modeloDocumentoPreenchido.value = "sim";
}
}
$("input[type='file']").on("change", function () {
if(this.files[0].size > 2000000) {
// console.log($(this).parents( ".col-sm-5" ))
alert("O tamanho do arquivo deve ser menor que 2MB!");
$(this).val('');
}
});
$("input.pdf").on("change", function () {
if(this.files[0].type.split('/')[1] == "pdf") {
if(this.files[0].size > 20000000){
alert("O arquivo possui o tamanho superior a 2MB!");
$(this).val('');
}
}else{
alert("O arquivo não é de tipo PDF!");
$(this).val('');
}
});
</script>
@endsection
\ No newline at end of file
......@@ -216,6 +216,41 @@
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
<p>Relatório</p>
</div>
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
@component('componentes.input', ['label' => 'Inicio da Submissão:'])
<input id="dt_inicioRelatorio" type="date" value="{{ $evento->dt_inicioRelatorio }}" class="form-control @error('dt_inicioRelatorio') is-invalid @enderror" name="dt_inicioRelatorio" value="{{ old('dt_inicioRelatorio') }}" required autocomplete="dt_inicioRelatorio" autofocus
title="Inicio para o periodo do envio do relatório">
@error('dt_inicioRelatorio')
<span class="invalid-feedback" role="alert">
<strong>Apenas será aceita data posterior ao dia do Resultado Final ({{date('d/m/Y', strtotime($evento->resultado_final ?? ''))}})</strong>
</span>
@enderror
@endcomponent
</div>
<div class="col-sm-6">
@component('componentes.input', ['label' => 'Fim da Submissão:'])
<input id="dt_fimRelatorio" type="date" value="{{ $evento->dt_fimRelatorio }}" class="form-control @error('dt_fimRelatorio') is-invalid @enderror" name="dt_fimRelatorio" value="{{ old('dt_fimRelatorio') }}" required autocomplete="dt_fimRelatorio" autofocus
title="Final do periodo do envio do relatório">
@error('dt_fimRelatorio')
<span class="invalid-feedback" role="alert">
<strong>A data deve ser igual ou posterior a data de inicio</strong>
</span>
@enderror
@endcomponent
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
<p>Documentos</p>
......
......@@ -84,7 +84,7 @@
</div>
<div class="col-6">
@component('componentes.input', ['label' => 'RG'])
<input type="number" class="form-control" min="1" maxlength="12" value="{{old('rg')[$i] ?? "" }}" name="rg[{{$i}}]" placeholder="RG" />
<input type="text" class="form-control rg" min="9" maxlength="9" value="{{old('rg')[$i] ?? "" }}" name="rg[{{$i}}]" placeholder="RG" />
@error('rg.'.$i)
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
......@@ -359,5 +359,8 @@
</div>
</div>
<script>
$("input.rg:text").mask('00.000.000-0');
</script>
<!--X Participantes X-->
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