Unverified Commit a3eff63a authored by Laboratório Multidisciplinar de Tecnologias Sociais's avatar Laboratório Multidisciplinar de Tecnologias Sociais Committed by GitHub
Browse files

Merge pull request #185 from GuilhermeGz/master

Atualizações do Sistema
parents 6ea824cf 04a775ec
Showing with 2314 additions and 1623 deletions
+2314 -1623
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class DocumentacaoComplementar extends Model
{
protected $fillable = [
'termoCompromisso',
'comprovanteMatricula',
'linkLattes',
'pdfLattes',
'participante_id',
];
public function participante(){
return $this->belongsTo(Participante::class, 'participante_id', 'id');
}
}
...@@ -16,7 +16,8 @@ class Evento extends Model ...@@ -16,7 +16,8 @@ class Evento extends Model
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao', 'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'resultado_final','resultado_preliminar', 'coordenadorId', 'resultado_final','resultado_preliminar', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes', 'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes',
'dt_inicioRelatorioParcial', 'dt_fimRelatorioParcial', 'dt_inicioRelatorioFinal', 'dt_fimRelatorioFinal' 'dt_inicioRelatorioParcial', 'dt_fimRelatorioParcial', 'dt_inicioRelatorioFinal', 'dt_fimRelatorioFinal',
'formAvaliacaoExterno', 'formAvaliacaoInterno'
]; ];
public function endereco(){ public function endereco(){
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Notificacao;
use App\Substituicao; use App\Substituicao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Administrador; use App\Administrador;
...@@ -16,6 +17,7 @@ use App\GrandeArea; ...@@ -16,6 +17,7 @@ use App\GrandeArea;
use App\Natureza; use App\Natureza;
use App\Trabalho; use App\Trabalho;
use App\FuncaoParticipantes; use App\FuncaoParticipantes;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use App\Evento; use App\Evento;
...@@ -26,6 +28,9 @@ use Illuminate\Support\Facades\Mail; ...@@ -26,6 +28,9 @@ use Illuminate\Support\Facades\Mail;
use App\Mail\EventoCriado; use App\Mail\EventoCriado;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Response; use App\Http\Controllers\Response;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class AdministradorController extends Controller class AdministradorController extends Controller
{ {
...@@ -54,9 +59,9 @@ class AdministradorController extends Controller ...@@ -54,9 +59,9 @@ class AdministradorController extends Controller
public function pareceres(Request $request){ public function pareceres(Request $request){
$evento = Evento::where('id', $request->evento_id)->first(); $evento = Evento::where('id', $request->evento_id)->first();
$trabalhosSubmetidos = $evento->trabalhos->where('status', 'submetido'); $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho');
$trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado'); // $trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado');
$trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados); // $trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados);
return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]); return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]);
} }
...@@ -68,9 +73,12 @@ class AdministradorController extends Controller ...@@ -68,9 +73,12 @@ class AdministradorController extends Controller
$trabalhosAprovados = $evento->trabalhos->Where('status', 'aprovado'); $trabalhosAprovados = $evento->trabalhos->Where('status', 'aprovado');
$trabalhosReprovados = $evento->trabalhos->Where('status', 'reprovado'); $trabalhosReprovados = $evento->trabalhos->Where('status', 'reprovado');
$trabalhosCorrigidos = $evento->trabalhos->Where('status', 'corrigido'); $trabalhosCorrigidos = $evento->trabalhos->Where('status', 'corrigido');
$trabalhos = $trabalhosSubmetidos $trabalhos = $this->paginate($trabalhosSubmetidos);
$trabalhos = $this->paginate($trabalhosSubmetidos
->merge($trabalhosAvaliados)->merge($trabalhosAprovados) ->merge($trabalhosAvaliados)->merge($trabalhosAprovados)
->merge($trabalhosReprovados)->merge($trabalhosCorrigidos)->sortBy('titulo'); ->merge($trabalhosReprovados)->merge($trabalhosCorrigidos)->sortBy('titulo'))
->withPath('/usuarios/analisarProjetos?evento_id='.$evento->id);
$funcaoParticipantes = FuncaoParticipantes::all(); $funcaoParticipantes = FuncaoParticipantes::all();
// $participantes = Participante::where('trabalho_id', $id)->get(); // $participantes = Participante::where('trabalho_id', $id)->get();
...@@ -80,6 +88,15 @@ class AdministradorController extends Controller ...@@ -80,6 +88,15 @@ class AdministradorController extends Controller
return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes]); return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes]);
} }
// Utilizado para paginação de Collection
public function paginate($items, $perPage = 5, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
public function analisarProposta(Request $request){ public function analisarProposta(Request $request){
$trabalho = Trabalho::where('id',$request->id)->first(); $trabalho = Trabalho::where('id',$request->id)->first();
...@@ -521,6 +538,18 @@ class AdministradorController extends Controller ...@@ -521,6 +538,18 @@ class AdministradorController extends Controller
$evento->avaliadors()->syncWithoutDetaching($avaliadores); $evento->avaliadors()->syncWithoutDetaching($avaliadores);
$trabalho->save(); $trabalho->save();
foreach ($avaliadores as $avaliador){
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $avaliador->user_id,
'trabalho_id' => $request->trabalho_id,
'lido' => false,
'tipo' => 5,
]);
$notificacao->save();
}
return redirect()->back(); return redirect()->back();
} }
......
...@@ -3,10 +3,17 @@ ...@@ -3,10 +3,17 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Arquivo; use App\Arquivo;
use App\Notificacao;
use App\User;
use Auth;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use mysql_xdevapi\Exception; use mysql_xdevapi\Exception;
use Carbon\Carbon; use Carbon\Carbon;
use App\Notifications\RelatorioRecebimentoNotification;
use App\Administrador;
class ArquivoController extends Controller class ArquivoController extends Controller
{ {
...@@ -109,12 +116,67 @@ class ArquivoController extends Controller ...@@ -109,12 +116,67 @@ class ArquivoController extends Controller
$pasta = 'planoTrabalho/' . $arquivo->id; $pasta = 'planoTrabalho/' . $arquivo->id;
if($request->relatorioParcial != null) { if($request->relatorioParcial != null) {
$arquivo->relatorioParcial = Storage::putFileAs($pasta, $request->relatorioParcial, "RelatorioParcial.pdf"); $arquivo->relatorioParcial = Storage::putFileAs($pasta, $request->relatorioParcial, "RelatorioParcial.pdf");
//Coordenador
$userTemp = User::find($arquivo->trabalho->evento->coordenadorComissao->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $arquivo->trabalho->evento->coordenadorComissao->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 3,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Parcial'));
//Admins
$admins = Administrador::all();
foreach ($admins as $admin) {
$userTemp = User::find($admin->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $admin->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 3,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Parcial'));
}
} }
if($request->relatorioFinal != null) { if($request->relatorioFinal != null) {
$arquivo->relatorioFinal = Storage::putFileAs($pasta, $request->relatorioFinal, "RelatorioFinal.pdf"); $arquivo->relatorioFinal = Storage::putFileAs($pasta, $request->relatorioFinal, "RelatorioFinal.pdf");
//Coordenador
$userTemp = User::find($arquivo->trabalho->evento->coordenadorComissao->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $arquivo->trabalho->evento->coordenadorComissao->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 4,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Final'));
//Admins
$admins = Administrador::all();
foreach ($admins as $admin) {
$userTemp = User::find($admin->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $admin->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 4,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Final'));
}
} }
$arquivo->save(); $arquivo->save();
return redirect(route('planos.listar', ['id' => $request->projId])); return redirect(route('planos.listar', ['id' => $request->projId]))->with(['sucesso' => "Relatório enviado com sucesso"]);
}catch (Exception $th){ }catch (Exception $th){
} }
......
...@@ -126,9 +126,9 @@ class AvaliadorController extends Controller ...@@ -126,9 +126,9 @@ class AvaliadorController extends Controller
$statusParecer = "NAO-RECOMENDADO"; $statusParecer = "NAO-RECOMENDADO";
if( if(
$request->anexoLinkLattes=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoProjeto=='aceito' && $request->anexoLinkLattes=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoProjeto=='aceito' &&
$request->anexoConsu=='aceito' && $request->anexoPlanilha=='aceito' && $request->anexoLattesCoordenador=='aceito' && $request->anexoConsu=='aceito' && $request->anexoLattesCoordenador=='aceito' && $request->anexoPlano=='aceito' &&
$request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito'
$request->anexoPlano=='aceito'){ ){
$statusParecer = "RECOMENDADO"; $statusParecer = "RECOMENDADO";
} }
if($parecerInterno == null) { if($parecerInterno == null) {
...@@ -145,6 +145,7 @@ class AvaliadorController extends Controller ...@@ -145,6 +145,7 @@ class AvaliadorController extends Controller
'statusJustificativaAutorizacaoEtica' => $request->anexoJustificativa, 'statusJustificativaAutorizacaoEtica' => $request->anexoJustificativa,
'statusPlanoTrabalho' => $request->anexoPlano, 'statusPlanoTrabalho' => $request->anexoPlano,
'statusParecer' => $statusParecer, 'statusParecer' => $statusParecer,
'comentario' => $request->comentario,
'trabalho_id' => $request->trabalho_id, 'trabalho_id' => $request->trabalho_id,
'avaliador_id' => $request->avaliador_id, 'avaliador_id' => $request->avaliador_id,
]); ]);
...@@ -160,6 +161,7 @@ class AvaliadorController extends Controller ...@@ -160,6 +161,7 @@ class AvaliadorController extends Controller
$parecerInterno->statusAnexoAtuorizacaoComiteEtica = $request->anexoComiteEtica; $parecerInterno->statusAnexoAtuorizacaoComiteEtica = $request->anexoComiteEtica;
$parecerInterno->statusJustificativaAutorizacaoEtica = $request->anexoJustificativa; $parecerInterno->statusJustificativaAutorizacaoEtica = $request->anexoJustificativa;
$parecerInterno->statusPlanoTrabalho = $request->anexoPlano; $parecerInterno->statusPlanoTrabalho = $request->anexoPlano;
$parecerInterno->comentario = $request->comentario;
$parecerInterno->statusParecer = $statusParecer; $parecerInterno->statusParecer = $statusParecer;
$parecerInterno->update(); $parecerInterno->update();
} }
......
<?php
namespace App\Http\Controllers;
use App\Arquivo;
use App\documentacaoComplementar;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
class DocumentacaoComplementarController extends Controller
{
public function criar(Request $request)
{
if($request->docId != null){
$docComp = DocumentacaoComplementar::find($request->docId);
}else{
$docComp = new DocumentacaoComplementar;
$docComp->save();
}
$pasta = 'docComplementar/' . $docComp->id;
$docComp->termoCompromisso = Storage::putFileAs($pasta, $request->termoCompromisso, "Termo De Compromisso.pdf");
$docComp->comprovanteMatricula = Storage::putFileAs($pasta, $request->comprovanteMatricula, "Comprovante De Matricula.pdf");
$docComp->pdfLattes = Storage::putFileAs($pasta, $request->pdfLattes, "Lattes.pdf");
$docComp->termoCompromisso = Storage::putFileAs($pasta, $request->termoCompromisso, "TermoDeCompromisso.pdf");
$docComp->participante_id = $request->partcipanteId;
$docComp->linkLattes = $request->linkLattes;
$docComp->update();
return redirect()->back()->with(['sucesso' => "Documentação complementar enviada com sucesso"]);
}
}
...@@ -126,6 +126,10 @@ class EventoController extends Controller ...@@ -126,6 +126,10 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date'], 'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'pdfFormAvalInterno' => [($request->pdfFormAvalInternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'] ,
'pdfFormAvalInterno' => ['required', 'file'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => [], //'modeloDocumento' => [],
]); ]);
...@@ -154,6 +158,8 @@ class EventoController extends Controller ...@@ -154,6 +158,8 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'pdfFormAvalInterno' => [($request->pdfFormAvalInternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], //'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]); ]);
...@@ -214,6 +220,26 @@ class EventoController extends Controller ...@@ -214,6 +220,26 @@ class EventoController extends Controller
$evento->modeloDocumento = $path . $nome; $evento->modeloDocumento = $path . $nome;
} }
if(isset($request->pdfFormAvalInterno)){
$pdfFormAvalInterno = $request->pdfFormAvalInterno;
$extension = $pdfFormAvalInterno->extension();
$path = 'pdfFormAvalInterno/' . $evento->id . '/';
$nome = "formulario de avaliação interno" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalInterno, $nome);
$evento->formAvaliacaoInterno = $path . $nome;
}
if(isset($request->pdfFormAvalExterno)){
$pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/';
$nome = "formulario de avaliação externo" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalExterno, $nome);
$evento->formAvaliacaoExterno = $path . $nome;
}
$evento->update(); $evento->update();
// $user = Auth::user(); // $user = Auth::user();
...@@ -247,6 +273,14 @@ class EventoController extends Controller ...@@ -247,6 +273,14 @@ class EventoController extends Controller
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); $eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
} }
if(!(is_null($request->pdfFormAvalExterno)) ) {
$pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
$eventoTemp->formAvaliacaoExterno = Storage::putFileAs($pasta, $request->pdfFormAvalExterno, 'formulario de avaliação externo.pdf');
}
if(!(is_null($request->pdfFormAvalInterno)) ) {
$pasta = 'pdfFormAvalInterno/' . $eventoTemp->id;
$eventoTemp->formAvaliacaoInterno = Storage::putFileAs($pasta, $request->pdfFormAvalInterno, 'formulario de avaliação interno.pdf');
}
$eventoTemp->update(); $eventoTemp->update();
...@@ -378,6 +412,8 @@ class EventoController extends Controller ...@@ -378,6 +412,8 @@ class EventoController extends Controller
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalExterno' => ['file', 'mimes:pdf', 'max:2048'],
'pdfFormAvalInterno' => ['file', 'mimes:pdf', 'max:2048'],
]); ]);
} }
...@@ -400,6 +436,8 @@ class EventoController extends Controller ...@@ -400,6 +436,8 @@ class EventoController extends Controller
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalExterno' => ['file', 'mimes:pdf', 'max:2048'],
'pdfFormAvalInterno' => ['file', 'mimes:pdf', 'max:2048'],
]); ]);
$evento->nome = $request->nome; $evento->nome = $request->nome;
...@@ -437,6 +475,26 @@ class EventoController extends Controller ...@@ -437,6 +475,26 @@ class EventoController extends Controller
$evento->modeloDocumento = $path . $nome; $evento->modeloDocumento = $path . $nome;
} }
if(isset($request->pdfFormAvalInterno)){
$pdfFormAvalInterno = $request->pdfFormAvalInterno;
$extension = $pdfFormAvalInterno->extension();
$path = 'pdfFormAvalInterno/' . $evento->id . '/';
$nome = "formulario de avaliação interno" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalInterno, $nome);
$evento->formAvaliacaoInterno = $path . $nome;
}
if(isset($request->pdfFormAvalExterno)){
$pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/';
$nome = "formulario de avaliação externo" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalExterno, $nome);
$evento->formAvaliacaoExterno = $path . $nome;
}
$evento->update(); $evento->update();
$eventos = Evento::orderBy('nome')->get(); $eventos = Evento::orderBy('nome')->get();
......
...@@ -4,6 +4,7 @@ namespace App\Http\Controllers; ...@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Notificacao; use App\Notificacao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class NotificacaoController extends Controller class NotificacaoController extends Controller
{ {
...@@ -86,14 +87,46 @@ class NotificacaoController extends Controller ...@@ -86,14 +87,46 @@ class NotificacaoController extends Controller
public function listar() public function listar()
{ {
$notificacoes = Notificacao::all()->sortByDesc('created_at'); $notificacoes = Notificacao::all()->sortByDesc('created_at');
return view('notificacao.listar',['notificacoes'=>$notificacoes]); return view('notificacao.listar', ['notificacoes' => $notificacoes]);
} }
public function listarTrab() public function listarTrab()
{ {
$destinatarios = Notificacao::where('destinatario_id',Auth()->user()->id)->get(); $notificacoes = Notificacao::where('destinatario_id', Auth()->user()->id)->get()->sortByDesc('created_at');
$remetentes = Notificacao::where('remetente_id',Auth()->user()->id)->get();
$notificacoes = $destinatarios->merge($remetentes)->sortByDesc('created_at'); return view('notificacao.listar', ['notificacoes' => $notificacoes]);
return view('notificacao.listar',['notificacoes'=>$notificacoes]); }
public function ler($id)
{
$notificacao = Notificacao::find($id);
if (!$notificacao->lido) {
$notificacao->lido = true;
$notificacao->update();
}
if ($notificacao->tipo == 1) {
if ($notificacao->destinatario_id == Auth()->user()->id && Auth()->user()->tipo != 'proponente') {
return redirect()->route('admin.analisarProposta', ['id' => $notificacao->trabalho->id]);
} else {
return redirect()->route('trabalho.show', ['id' => $notificacao->trabalho->id]);
}
} elseif ($notificacao->tipo == 2) {
if ($notificacao->destinatario_id == Auth()->user()->id && Auth()->user()->tipo != 'proponente') {
return redirect()->route('admin.analisarProposta', ['id' => $notificacao->trabalho->id]);
} else {
return redirect()->route('trabalho.trocaParticipante', ['evento_id' => $notificacao->trabalho->evento->id, 'projeto_id' => $notificacao->trabalho->id]);
} }
} elseif ($notificacao->tipo == 3 || $notificacao->tipo == 4) {
return redirect()->route('planos.listar', ['id' => $notificacao->trabalho->id]);
} elseif ($notificacao->tipo == 5) {
if (!is_null(Auth::user()->avaliadors->eventos->where('id', $notificacao->trabalho->evento->id)->first()->pivot->convite)
&& Auth::user()->avaliadors->eventos->where('id', $notificacao->trabalho->evento->id)->first()->pivot->convite == true) {
return redirect()->route('avaliador.visualizarTrabalho', ['evento_id' => $notificacao->trabalho->evento->id]);
} else {
return redirect()->route('avaliador.editais');
}
}
}
} }
...@@ -92,6 +92,13 @@ class ParticipanteController extends Controller ...@@ -92,6 +92,13 @@ class ParticipanteController extends Controller
return view('administrador.listarBolsas')->with(['participantes' => $participantes, 'trabalhos' => $trabalhos]); return view('administrador.listarBolsas')->with(['participantes' => $participantes, 'trabalhos' => $trabalhos]);
} }
public function listarParticipanteProjeto(Request $request){
$trabalho = Trabalho::find($request->projeto_id);
$participantes = $trabalho->participantes;
return view('documentacaoComplementar.listar')->with(['participantes' => $participantes, 'trabalho' => $trabalho]);
}
public function alterarBolsa($id,$tipo){ public function alterarBolsa($id,$tipo){
$participante = Participante::find($id); $participante = Participante::find($id);
if($participante->tipoBolsa ==null){ if($participante->tipoBolsa ==null){
......
...@@ -42,6 +42,7 @@ use Illuminate\Support\Facades\Validator; ...@@ -42,6 +42,7 @@ use Illuminate\Support\Facades\Validator;
use App\Mail\EmailParaUsuarioNaoCadastrado; use App\Mail\EmailParaUsuarioNaoCadastrado;
use App\Mail\SolicitacaoSubstituicao; use App\Mail\SolicitacaoSubstituicao;
use App\Notifications\SubmissaoNotification; use App\Notifications\SubmissaoNotification;
use App\Notifications\SubmissaoRecebidaNotification;
use App\Substituicao; use App\Substituicao;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
...@@ -114,8 +115,8 @@ class TrabalhoController extends Controller ...@@ -114,8 +115,8 @@ class TrabalhoController extends Controller
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = "trabalho"; $trabalho = "trabalho";
if($evento->inicioSubmissao > $mytime){ if ($evento->inicioSubmissao > $mytime) {
if($mytime >= $evento->fimSubmissao){ if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home'); return redirect()->route('home');
} }
} }
...@@ -123,11 +124,12 @@ class TrabalhoController extends Controller ...@@ -123,11 +124,12 @@ class TrabalhoController extends Controller
//--Salvando os dados da submissão temporariamente //--Salvando os dados da submissão temporariamente
$this->armazenarInfoTemp($request, $proponente); $this->armazenarInfoTemp($request, $proponente);
return redirect()->route('projetos.edital',['id'=>$request->editalId]); return redirect()->route('projetos.edital', ['id' => $request->editalId]);
} }
//Armazena temporariamente dados da submissão, no banco de dados e no storage //Armazena temporariamente dados da submissão, no banco de dados e no storage
public function armazenarInfoTemp(Request $request, $proponente){ public function armazenarInfoTemp(Request $request, $proponente)
{
//---Dados do Projeto //---Dados do Projeto
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho') $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho')
...@@ -218,17 +220,17 @@ class TrabalhoController extends Controller ...@@ -218,17 +220,17 @@ class TrabalhoController extends Controller
if ($trabalho->anexoProjeto != null) { if ($trabalho->anexoProjeto != null) {
// Anexo Projeto // Anexo Projeto
if(isset($request->anexoProjeto)){ if (isset($request->anexoProjeto)) {
if(Storage::disk()->exists($trabalho->anexoProjeto)) { if (Storage::disk()->exists($trabalho->anexoProjeto)) {
Storage::delete($trabalho->anexoProjeto); Storage::delete($trabalho->anexoProjeto);
} }
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
} }
//Anexo Decisão CONSU //Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if(isset($request->anexoDecisaoCONSU)){ if (isset($request->anexoDecisaoCONSU)) {
if(Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) { if (Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) {
Storage::delete($trabalho->anexoDecisaoCONSU); Storage::delete($trabalho->anexoDecisaoCONSU);
} }
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf'); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
...@@ -236,15 +238,15 @@ class TrabalhoController extends Controller ...@@ -236,15 +238,15 @@ class TrabalhoController extends Controller
} }
//Autorização ou Justificativa //Autorização ou Justificativa
if( isset($request->anexoAutorizacaoComiteEtica)){ if (isset($request->anexoAutorizacaoComiteEtica)) {
if(Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { if (Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) {
Storage::delete($trabalho->anexoAutorizacaoComiteEtica); Storage::delete($trabalho->anexoAutorizacaoComiteEtica);
} }
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null; $trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){ } elseif (isset($request->justificativaAutorizacaoEtica)) {
if(Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) { if (Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica); Storage::delete($trabalho->justificativaAutorizacaoEtica);
} }
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
...@@ -252,69 +254,69 @@ class TrabalhoController extends Controller ...@@ -252,69 +254,69 @@ class TrabalhoController extends Controller
} }
//Anexo Lattes //Anexo Lattes
if( isset($request->anexoLattesCoordenador)){ if (isset($request->anexoLattesCoordenador)) {
if(Storage::disk()->exists($trabalho->anexoLattesCoordenador)) { if (Storage::disk()->exists($trabalho->anexoLattesCoordenador)) {
Storage::delete($trabalho->anexoLattesCoordenador); Storage::delete($trabalho->anexoLattesCoordenador);
} }
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
//Anexo Planilha //Anexo Planilha
if( isset($request->anexoPlanilhaPontuacao)){ if (isset($request->anexoPlanilhaPontuacao)) {
if(Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) { if (Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) {
Storage::delete($trabalho->anexoPlanilhaPontuacao); Storage::delete($trabalho->anexoPlanilhaPontuacao);
} }
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
} }
// Anexo grupo pesquisa // Anexo grupo pesquisa
if(isset($request->anexoGrupoPesquisa)){ if (isset($request->anexoGrupoPesquisa)) {
if(Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) { if (Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) {
Storage::delete($trabalho->anexoGrupoPesquisa); Storage::delete($trabalho->anexoGrupoPesquisa);
} }
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa.". $request->file('anexoGrupoPesquisa')->extension()); $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension());
} }
$trabalho->save(); $trabalho->save();
return $trabalho; return $trabalho;
} }
// Anexo Projeto // Anexo Projeto
if(isset($request->anexoProjeto)){ if (isset($request->anexoProjeto)) {
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
} }
//Anexo Decisão CONSU //Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if( isset($request->anexoDecisaoCONSU)){ if (isset($request->anexoDecisaoCONSU)) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf'); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
} }
} }
//Autorização ou Justificativa //Autorização ou Justificativa
if( isset($request->anexoAutorizacaoComiteEtica)){ if (isset($request->anexoAutorizacaoComiteEtica)) {
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null; $trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){ } elseif (isset($request->justificativaAutorizacaoEtica)) {
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null; $trabalho->anexoAutorizacaoComiteEtica = null;
} }
//Anexo Lattes //Anexo Lattes
if( isset($request->anexoLattesCoordenador)){ if (isset($request->anexoLattesCoordenador)) {
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
//Anexo Planilha //Anexo Planilha
if( isset($request->anexoPlanilhaPontuacao)){ if (isset($request->anexoPlanilhaPontuacao)) {
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
} }
// Anexo grupo pesquisa // Anexo grupo pesquisa
if(isset($request->anexoGrupoPesquisa)){ if (isset($request->anexoGrupoPesquisa)) {
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa.". $request->file('anexoGrupoPesquisa')->extension()); $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension());
} }
return $trabalho; return $trabalho;
...@@ -360,7 +362,7 @@ class TrabalhoController extends Controller ...@@ -360,7 +362,7 @@ class TrabalhoController extends Controller
public function exportProjeto($id) public function exportProjeto($id)
{ {
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){ if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']); return back()->withErrors(['Proposta não encontrada!']);
} }
$edital = Evento::find($projeto->evento_id); $edital = Evento::find($projeto->evento_id);
...@@ -373,7 +375,7 @@ class TrabalhoController extends Controller ...@@ -373,7 +375,7 @@ class TrabalhoController extends Controller
$users = User::whereIn('id', $participantesUsersIds)->get(); $users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $arquivos = Arquivo::where('trabalhoId', $id)->get();
$enum_turno = Participante::ENUM_TURNO; $enum_turno = Participante::ENUM_TURNO;
view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital,$users, $funcaoParticipantes,$participantes,$arquivos,$enum_turno]); view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital, $users, $funcaoParticipantes, $participantes, $arquivos, $enum_turno]);
$pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']); $pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']);
...@@ -385,7 +387,7 @@ class TrabalhoController extends Controller ...@@ -385,7 +387,7 @@ class TrabalhoController extends Controller
{ {
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){ if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']); return back()->withErrors(['Proposta não encontrada!']);
} }
$edital = Evento::find($projeto->evento_id); $edital = Evento::find($projeto->evento_id);
...@@ -398,7 +400,7 @@ class TrabalhoController extends Controller ...@@ -398,7 +400,7 @@ class TrabalhoController extends Controller
$users = User::whereIn('id', $participantesUsersIds)->get(); $users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $arquivos = Arquivo::where('trabalhoId', $id)->get();
//dd(Participante::all()); //dd(Participante::all());
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$edital->id)->where('status', 'Rascunho') $rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $edital->id)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
return view('projeto.editar')->with(['projeto' => $projeto, return view('projeto.editar')->with(['projeto' => $projeto,
...@@ -419,12 +421,12 @@ class TrabalhoController extends Controller ...@@ -419,12 +421,12 @@ class TrabalhoController extends Controller
{ {
$projeto = Trabalho::find($request->id); $projeto = Trabalho::find($request->id);
//dd($trabalho); //dd($trabalho);
Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id ); Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id);
$participantes = $projeto->participantes; $participantes = $projeto->participantes;
foreach ($participantes as $participante) { foreach ($participantes as $participante) {
$plano = $participante->planoTrabalho; $plano = $participante->planoTrabalho;
if($plano) if ($plano)
$plano->delete(); $plano->delete();
$participante->delete(); $participante->delete();
} }
...@@ -433,7 +435,8 @@ class TrabalhoController extends Controller ...@@ -433,7 +435,8 @@ class TrabalhoController extends Controller
return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']); return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']);
} }
public function excluirParticipante($id){ public function excluirParticipante($id)
{
$participante = Participante::where('id', $id)->first(); $participante = Participante::where('id', $id)->first();
//$participante = Participante::where('user_id', Auth()->user()->id) //$participante = Participante::where('user_id', Auth()->user()->id)
// ->where('trabalho_id', $id)->first(); // ->where('trabalho_id', $id)->first();
...@@ -445,12 +448,13 @@ class TrabalhoController extends Controller ...@@ -445,12 +448,13 @@ class TrabalhoController extends Controller
} }
public function novaVersao(Request $request){ public function novaVersao(Request $request)
{
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString(); $mytime = $mytime->toDateString();
$evento = Evento::find($request->eventoId); $evento = Evento::find($request->eventoId);
if($evento->inicioSubmissao > $mytime){ if ($evento->inicioSubmissao > $mytime) {
if($mytime >= $evento->fimSubmissao){ if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home'); return redirect()->route('home');
} }
} }
...@@ -462,7 +466,7 @@ class TrabalhoController extends Controller ...@@ -462,7 +466,7 @@ class TrabalhoController extends Controller
$trabalho = Trabalho::find($request->trabalhoId); $trabalho = Trabalho::find($request->trabalhoId);
if(Auth::user()->id != $trabalho->autorId){ if (Auth::user()->id != $trabalho->autorId) {
return redirect()->route('home'); return redirect()->route('home');
} }
...@@ -475,7 +479,7 @@ class TrabalhoController extends Controller ...@@ -475,7 +479,7 @@ class TrabalhoController extends Controller
} }
$file = $request->arquivo; $file = $request->arquivo;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id .'/'; $path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/';
$nome = $count . ".pdf"; $nome = $count . ".pdf";
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
...@@ -485,10 +489,11 @@ class TrabalhoController extends Controller ...@@ -485,10 +489,11 @@ class TrabalhoController extends Controller
'versaoFinal' => true, 'versaoFinal' => true,
]); ]);
return redirect()->route('evento.visualizar',['id'=>$request->eventoId]); return redirect()->route('evento.visualizar', ['id' => $request->eventoId]);
} }
public function detalhesAjax(Request $request){ public function detalhesAjax(Request $request)
{
$validatedData = $request->validate([ $validatedData = $request->validate([
'trabalhoId' => ['required', 'integer'] 'trabalhoId' => ['required', 'integer']
]); ]);
...@@ -497,13 +502,12 @@ class TrabalhoController extends Controller ...@@ -497,13 +502,12 @@ class TrabalhoController extends Controller
$revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get(); $revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get();
$revisoresAux = []; $revisoresAux = [];
foreach ($revisores as $key) { foreach ($revisores as $key) {
if($key->revisor->user->name != null){ if ($key->revisor->user->name != null) {
array_push($revisoresAux, [ array_push($revisoresAux, [
'id' => $key->revisor->id, 'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->name 'nomeOuEmail' => $key->revisor->user->name
]); ]);
} } else {
else{
array_push($revisoresAux, [ array_push($revisoresAux, [
'id' => $key->revisor->id, 'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->email 'nomeOuEmail' => $key->revisor->user->email
...@@ -516,19 +520,18 @@ class TrabalhoController extends Controller ...@@ -516,19 +520,18 @@ class TrabalhoController extends Controller
//verificar se ja é um revisor deste trabalhos //verificar se ja é um revisor deste trabalhos
$revisorNaoExiste = true; $revisorNaoExiste = true;
foreach ($revisoresAux as $key1) { foreach ($revisoresAux as $key1) {
if($key->id == $key1['id']){ if ($key->id == $key1['id']) {
$revisorNaoExiste = false; $revisorNaoExiste = false;
} }
} }
// //
if($revisorNaoExiste){ if ($revisorNaoExiste) {
if($key->user->name != null){ if ($key->user->name != null) {
array_push($revisoresAux1, [ array_push($revisoresAux1, [
'id' => $key->id, 'id' => $key->id,
'nomeOuEmail' => $key->user->name 'nomeOuEmail' => $key->user->name
]); ]);
} } else {
else{
array_push($revisoresAux1, [ array_push($revisoresAux1, [
'id' => $key->id, 'id' => $key->id,
'nomeOuEmail' => $key->user->email 'nomeOuEmail' => $key->user->email
...@@ -543,7 +546,9 @@ class TrabalhoController extends Controller ...@@ -543,7 +546,9 @@ class TrabalhoController extends Controller
'revisoresDisponiveis' => $revisoresAux1 'revisoresDisponiveis' => $revisoresAux1
], 200); ], 200);
} }
public function atribuirAvaliadorTrabalho(Request $request){
public function atribuirAvaliadorTrabalho(Request $request)
{
$request->trabalho_id; $request->trabalho_id;
$trabalho = Trabalho::find($request->trabalho_id); $trabalho = Trabalho::find($request->trabalho_id);
...@@ -551,12 +556,12 @@ class TrabalhoController extends Controller ...@@ -551,12 +556,12 @@ class TrabalhoController extends Controller
$avaliadores = Avaliador::all(); $avaliadores = Avaliador::all();
return view('coordenadorComissao.gerenciarEdital.atribuirAvaliadorTrabalho', ['avaliadores' => $avaliadores, 'trabalho' => $trabalho, 'evento' => $trabalho->evento]);
return view('coordenadorComissao.gerenciarEdital.atribuirAvaliadorTrabalho', ['avaliadores'=>$avaliadores, 'trabalho'=>$trabalho, 'evento'=> $trabalho->evento ]);
} }
public function atribuir(Request $request){ public function atribuir(Request $request)
{
$trabalho = Trabalho::find($request->trabalho_id); $trabalho = Trabalho::find($request->trabalho_id);
...@@ -574,19 +579,21 @@ class TrabalhoController extends Controller ...@@ -574,19 +579,21 @@ class TrabalhoController extends Controller
->send(new EventoCriado($user, $subject)); ->send(new EventoCriado($user, $subject));
} }
return view('coordenadorComissao.detalhesEdital', ['evento'=> $trabalho->evento ]); return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]);
} }
public function projetosDoEdital($id) { public function projetosDoEdital($id)
{
$edital = Evento::find($id); $edital = Evento::find($id);
$projetos = Trabalho::where('evento_id', '=', $id)->get(); $projetos = Trabalho::where('evento_id', '=', $id)->get();
$hoje = Carbon::today('America/Recife'); $hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString(); $hoje = $hoje->toDateString();
return view('proponente.projetosEdital')->with(['edital' => $edital, 'projetos' => $projetos, 'hoje'=>$hoje]); return view('proponente.projetosEdital')->with(['edital' => $edital, 'projetos' => $projetos, 'hoje' => $hoje]);
} }
public function baixarAnexoProjeto($id) { public function baixarAnexoProjeto($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
//dd($projeto); //dd($projeto);
if (Storage::disk()->exists($projeto->anexoProjeto)) { if (Storage::disk()->exists($projeto->anexoProjeto)) {
...@@ -595,7 +602,9 @@ class TrabalhoController extends Controller ...@@ -595,7 +602,9 @@ class TrabalhoController extends Controller
} }
return abort(404); return abort(404);
} }
public function baixarAnexoGrupoPesquisa($id) {
public function baixarAnexoGrupoPesquisa($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) { if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) {
ob_end_clean(); ob_end_clean();
...@@ -604,7 +613,8 @@ class TrabalhoController extends Controller ...@@ -604,7 +613,8 @@ class TrabalhoController extends Controller
return abort(404); return abort(404);
} }
public function baixarAnexoConsu($id) { public function baixarAnexoConsu($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) { if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) {
...@@ -614,7 +624,8 @@ class TrabalhoController extends Controller ...@@ -614,7 +624,8 @@ class TrabalhoController extends Controller
return abort(404); return abort(404);
} }
public function baixarAnexoComite($id) { public function baixarAnexoComite($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) { if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) {
...@@ -624,7 +635,8 @@ class TrabalhoController extends Controller ...@@ -624,7 +635,8 @@ class TrabalhoController extends Controller
return abort(404); return abort(404);
} }
public function baixarAnexoLattes($id) { public function baixarAnexoLattes($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) { if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) {
...@@ -634,7 +646,8 @@ class TrabalhoController extends Controller ...@@ -634,7 +646,8 @@ class TrabalhoController extends Controller
return abort(404); return abort(404);
} }
public function baixarAnexoPlanilha($id) { public function baixarAnexoPlanilha($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) { if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) {
...@@ -663,12 +676,13 @@ class TrabalhoController extends Controller ...@@ -663,12 +676,13 @@ class TrabalhoController extends Controller
); );
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}",$headers); return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers);
} }
return abort(404); return abort(404);
} }
public function baixarAnexoJustificativa($id) { public function baixarAnexoJustificativa($id)
{
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) { if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) {
...@@ -679,10 +693,11 @@ class TrabalhoController extends Controller ...@@ -679,10 +693,11 @@ class TrabalhoController extends Controller
return abort(404); return abort(404);
} }
public function baixarAnexoTemp($eventoId, $nomeAnexo) { public function baixarAnexoTemp($eventoId, $nomeAnexo)
{
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$eventoId)->where('status', 'Rascunho') $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($trabalho->$nomeAnexo)) { if (Storage::disk()->exists($trabalho->$nomeAnexo)) {
...@@ -692,7 +707,8 @@ class TrabalhoController extends Controller ...@@ -692,7 +707,8 @@ class TrabalhoController extends Controller
return abort(404); return abort(404);
} }
public function baixarEventoTemp($nomeAnexo){ public function baixarEventoTemp($nomeAnexo)
{
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
...@@ -704,16 +720,15 @@ class TrabalhoController extends Controller ...@@ -704,16 +720,15 @@ class TrabalhoController extends Controller
} }
public function update(UpdateTrabalho $request, $id) public function update(UpdateTrabalho $request, $id)
{ {
try { try {
if (!$request->has('rascunho') ) { if (!$request->has('rascunho')) {
$request->merge([ $request->merge([
'status' => 'submetido' 'status' => 'submetido'
]); ]);
}else{ } else {
$request->merge([ $request->merge([
'status' => 'rascunho' 'status' => 'rascunho'
]); ]);
...@@ -725,13 +740,13 @@ class TrabalhoController extends Controller ...@@ -725,13 +740,13 @@ class TrabalhoController extends Controller
$trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); $trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
DB::beginTransaction(); DB::beginTransaction();
if(!$trabalho){ if (!$trabalho) {
return back()->withErrors(['Proposta não encontrada']); return back()->withErrors(['Proposta não encontrada']);
} }
$trabalho->update($request->except([ $trabalho->update($request->except([
'anexoProjeto', 'anexoDecisaoCONSU','anexoPlanilhaPontuacao', 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador','anexoGrupoPesquisa','justificativaAutorizacaoEtica','anexoAutorizacaoComiteEtica' 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'justificativaAutorizacaoEtica', 'anexoAutorizacaoComiteEtica'
])); ]));
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
...@@ -741,13 +756,13 @@ class TrabalhoController extends Controller ...@@ -741,13 +756,13 @@ class TrabalhoController extends Controller
if ($request->marcado == null) { if ($request->marcado == null) {
$idExcluido = $trabalho->participantes->pluck('id'); $idExcluido = $trabalho->participantes->pluck('id');
}else{ } else {
$idExcluido = []; $idExcluido = [];
} }
foreach ($request->participante_id as $key => $value) { foreach ($request->participante_id as $key => $value) {
if($request->marcado != null && array_search( $key, $request->marcado) === false){ if ($request->marcado != null && array_search($key, $request->marcado) === false) {
if($value !== null) if ($value !== null)
array_push($idExcluido, $value); array_push($idExcluido, $value);
} }
} }
...@@ -756,7 +771,7 @@ class TrabalhoController extends Controller ...@@ -756,7 +771,7 @@ class TrabalhoController extends Controller
$trabalho->participantes()->find($value)->delete(); $trabalho->participantes()->find($value)->delete();
} }
$trabalho->refresh(); $trabalho->refresh();
if($request->has('marcado')){ if ($request->has('marcado')) {
foreach ($request->marcado as $key => $part) { foreach ($request->marcado as $key => $part) {
$part = intval($part); $part = intval($part);
...@@ -778,17 +793,17 @@ class TrabalhoController extends Controller ...@@ -778,17 +793,17 @@ class TrabalhoController extends Controller
$data['bairro'] = $request->bairro[$part]; $data['bairro'] = $request->bairro[$part];
$data['complemento'] = $request->complemento[$part]; $data['complemento'] = $request->complemento[$part];
if($request->instituicao[$part] != "Outra"){ if ($request->instituicao[$part] != "Outra") {
$data['instituicao'] = $request->instituicao[$part]; $data['instituicao'] = $request->instituicao[$part];
}else{ } else {
$data['instituicao'] = $request->outrainstituicao[$part]; $data['instituicao'] = $request->outrainstituicao[$part];
} }
$data['total_periodos'] = $request->total_periodos[$part]; $data['total_periodos'] = $request->total_periodos[$part];
if($request->curso[$part] != "Outro"){ if ($request->curso[$part] != "Outro") {
$data['curso'] = $request->curso[$part]; $data['curso'] = $request->curso[$part];
}else{ } else {
$data['curso'] = $request->outrocurso[$part]; $data['curso'] = $request->outrocurso[$part];
} }
...@@ -801,7 +816,7 @@ class TrabalhoController extends Controller ...@@ -801,7 +816,7 @@ class TrabalhoController extends Controller
// $participante = Participante::find($request->participante_id[$part]); // $participante = Participante::find($request->participante_id[$part]);
$user = User::where('email', $data['email'])->first(); $user = User::where('email', $data['email'])->first();
if ($user == null){ if ($user == null) {
$data['usuarioTemp'] = true; $data['usuarioTemp'] = true;
$user = User::create($data); $user = User::create($data);
$endereco = Endereco::create($data); $endereco = Endereco::create($data);
...@@ -810,19 +825,19 @@ class TrabalhoController extends Controller ...@@ -810,19 +825,19 @@ class TrabalhoController extends Controller
$user->participantes()->save($participante); $user->participantes()->save($participante);
$trabalho->participantes()->save($participante); $trabalho->participantes()->save($participante);
}else{ } else {
// $user = $participante->user; // $user = $participante->user;
$user->update($data); $user->update($data);
$endereco = $user->endereco; $endereco = $user->endereco;
$endereco->update($data); $endereco->update($data);
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first(); $participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first();
// dd($participante); // dd($participante);
if ($participante == null){ if ($participante == null) {
// dd('part null'); // dd('part null');
$participante = Participante::create($data); $participante = Participante::create($data);
$user->participantes()->save($participante); $user->participantes()->save($participante);
$trabalho->participantes()->save($participante); $trabalho->participantes()->save($participante);
}else{ } else {
// dd('part update'); // dd('part update');
$participante->update($data); $participante->update($data);
} }
...@@ -830,23 +845,22 @@ class TrabalhoController extends Controller ...@@ -830,23 +845,22 @@ class TrabalhoController extends Controller
} }
if ($request->has('anexoPlanoTrabalho') && array_key_exists($part, $request->anexoPlanoTrabalho)) {
if ( $request->has('anexoPlanoTrabalho') && array_key_exists($part,$request->anexoPlanoTrabalho) ) { if (Arquivo::where('participanteId', $participante->id)->count()) {
if(Arquivo::where('participanteId', $participante->id)->count()){
$arquivo = Arquivo::where('participanteId', $participante->id)->first(); $arquivo = Arquivo::where('participanteId', $participante->id)->first();
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/'; $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] .".pdf"; $nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho[$part] ; $file = $request->anexoPlanoTrabalho[$part];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$arquivo->update([ $arquivo->update([
'titulo' => $nome, 'titulo' => $nome,
'nome' => $path . $nome, 'nome' => $path . $nome,
'data' => now() , 'data' => now(),
]); ]);
}else{ } else {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/'; $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] .".pdf"; $nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho[$part] ; $file = $request->anexoPlanoTrabalho[$part];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo(); $arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho']; $arquivo->titulo = $data['nomePlanoTrabalho'];
...@@ -866,11 +880,10 @@ class TrabalhoController extends Controller ...@@ -866,11 +880,10 @@ class TrabalhoController extends Controller
} }
DB::commit(); DB::commit();
if (!$request->has('rascunho') ) { if (!$request->has('rascunho')) {
Notification::send(Auth::user(), new SubmissaoNotification($id)); Notification::send(Auth::user(), new SubmissaoNotification($id));
}else{ } else {
} }
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']); return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']);
...@@ -883,10 +896,11 @@ class TrabalhoController extends Controller ...@@ -883,10 +896,11 @@ class TrabalhoController extends Controller
} }
public function salvar(StoreTrabalho $request) { public function salvar(StoreTrabalho $request)
{
try { try {
if (!$request->has('rascunho') ) { if (!$request->has('rascunho')) {
$request->merge([ $request->merge([
'status' => 'submetido' 'status' => 'submetido'
]); ]);
...@@ -900,11 +914,11 @@ class TrabalhoController extends Controller ...@@ -900,11 +914,11 @@ class TrabalhoController extends Controller
$trabalho = Auth::user()->proponentes->trabalhos() $trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([ ->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU','anexoPlanilhaPontuacao', 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador','anexoGrupoPesquisa','anexoAutorizacaoComiteEtica', 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
'justificativaAutorizacaoEtica' 'justificativaAutorizacaoEtica'
])); ]));
if($request->has('marcado')){ if ($request->has('marcado')) {
foreach ($request->marcado as $key => $part) { foreach ($request->marcado as $key => $part) {
$part = intval($part); $part = intval($part);
...@@ -926,17 +940,17 @@ class TrabalhoController extends Controller ...@@ -926,17 +940,17 @@ class TrabalhoController extends Controller
$data['bairro'] = $request->bairro[$part]; $data['bairro'] = $request->bairro[$part];
$data['complemento'] = $request->complemento[$part]; $data['complemento'] = $request->complemento[$part];
if($request->instituicao[$part] != "Outra"){ if ($request->instituicao[$part] != "Outra") {
$data['instituicao'] = $request->instituicao[$part]; $data['instituicao'] = $request->instituicao[$part];
}else{ } else {
$data['instituicao'] = $request->outrainstituicao[$part]; $data['instituicao'] = $request->outrainstituicao[$part];
} }
$data['total_periodos'] = $request->total_periodos[$part]; $data['total_periodos'] = $request->total_periodos[$part];
if($request->curso[$part] != "Outro"){ if ($request->curso[$part] != "Outro") {
$data['curso'] = $request->curso[$part]; $data['curso'] = $request->curso[$part];
}else{ } else {
$data['curso'] = $request->outrocurso[$part]; $data['curso'] = $request->outrocurso[$part];
} }
...@@ -946,8 +960,8 @@ class TrabalhoController extends Controller ...@@ -946,8 +960,8 @@ class TrabalhoController extends Controller
$data['media_do_curso'] = $request->media_do_curso[$part]; $data['media_do_curso'] = $request->media_do_curso[$part];
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part]; $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
$user = User::where('email' , $data['email'])->first(); $user = User::where('email', $data['email'])->first();
if ($user == null){ if ($user == null) {
$data['usuarioTemp'] = true; $data['usuarioTemp'] = true;
$user = User::create($data); $user = User::create($data);
$endereco = Endereco::create($data); $endereco = Endereco::create($data);
...@@ -964,10 +978,10 @@ class TrabalhoController extends Controller ...@@ -964,10 +978,10 @@ class TrabalhoController extends Controller
$participante->trabalho_id = $trabalho->id; $participante->trabalho_id = $trabalho->id;
$participante->save(); $participante->save();
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";
$file = $request->anexoPlanoTrabalho[$part] ; $file = $request->anexoPlanoTrabalho[$part];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo(); $arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho']; $arquivo->titulo = $data['nomePlanoTrabalho'];
...@@ -982,6 +996,18 @@ class TrabalhoController extends Controller ...@@ -982,6 +996,18 @@ class TrabalhoController extends Controller
} }
} }
$evento->trabalhos()->save($trabalho);
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save();
DB::commit();
if (!$request->has('rascunho')) {
//Notificações
//Coordenador
$userTemp = User::find($evento->coordenadorComissao->user_id);
$notificacao = App\Notificacao::create([ $notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id, 'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id, 'destinatario_id' => $evento->coordenadorComissao->user_id,
...@@ -990,19 +1016,36 @@ class TrabalhoController extends Controller ...@@ -990,19 +1016,36 @@ class TrabalhoController extends Controller
'tipo' => 1, 'tipo' => 1,
]); ]);
$notificacao->save(); $notificacao->save();
Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$evento->nome,$userTemp));
//Proponente
$notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => Auth::user()->id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 1,
]);
$notificacao->save();
Notification::send(Auth::user(), new SubmissaoNotification($trabalho->id));
//Admins
$admins = App\Administrador::all();
foreach ($admins as $admin) {
$userTemp = User::find($admin->user_id);
$notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $admin->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 1,
]);
$notificacao->save();
Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$evento->nome,$userTemp));
}
$evento->trabalhos()->save($trabalho);
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save();
DB::commit();
if (!$request->has('rascunho') ) {
Notification::send(Auth::user(), new SubmissaoNotification($trabalho->id));
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']); return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']);
}else{ } else {
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']); return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']);
} }
...@@ -1012,10 +1055,10 @@ class TrabalhoController extends Controller ...@@ -1012,10 +1055,10 @@ class TrabalhoController extends Controller
} }
} }
public function atribuirDados(Request $request, $edital, Trabalho $projeto = null) { public function atribuirDados(Request $request, $edital, Trabalho $projeto = null)
{
if ($projeto == null) { if ($projeto == null) {
$projeto = new Trabalho(); $projeto = new Trabalho();
} }
...@@ -1045,7 +1088,8 @@ class TrabalhoController extends Controller ...@@ -1045,7 +1088,8 @@ class TrabalhoController extends Controller
return $projeto; return $projeto;
} }
public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false) { public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false)
{
if ($edicao) { if ($edicao) {
$participantes = $projeto->participantes; $participantes = $projeto->participantes;
...@@ -1058,7 +1102,7 @@ class TrabalhoController extends Controller ...@@ -1058,7 +1102,7 @@ class TrabalhoController extends Controller
$participante = new Participante(); $participante = new Participante();
if($userParticipante == null){ if ($userParticipante == null) {
$passwordTemporario = Str::random(8); $passwordTemporario = Str::random(8);
$usuario = new User(); $usuario = new User();
...@@ -1124,12 +1168,12 @@ class TrabalhoController extends Controller ...@@ -1124,12 +1168,12 @@ class TrabalhoController extends Controller
} }
if($request->nomePlanoTrabalho[$key] != null){ if ($request->nomePlanoTrabalho[$key] != null) {
$usuario = User::where('email', $request->emailParticipante[$key])->first(); $usuario = User::where('email', $request->emailParticipante[$key])->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf"; $nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
...@@ -1180,16 +1224,16 @@ class TrabalhoController extends Controller ...@@ -1180,16 +1224,16 @@ class TrabalhoController extends Controller
$participante->media_do_curso = $request->media_geral_curso[$key]; $participante->media_do_curso = $request->media_geral_curso[$key];
$participante->update(); $participante->update();
if($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null){ if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null) {
$planoAtual = $participante->planoTrabalho; $planoAtual = $participante->planoTrabalho;
if(Storage::disk()->exists($planoAtual->nome)) { if (Storage::disk()->exists($planoAtual->nome)) {
Storage::delete($planoAtual->nome); Storage::delete($planoAtual->nome);
} }
$planoAtual->delete(); $planoAtual->delete();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf"; $nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
...@@ -1209,20 +1253,20 @@ class TrabalhoController extends Controller ...@@ -1209,20 +1253,20 @@ class TrabalhoController extends Controller
$participantesExcluidos = $participantes->diff($participantesPermanecem); $participantesExcluidos = $participantes->diff($participantesPermanecem);
foreach ($participantesExcluidos as $participante) { foreach ($participantesExcluidos as $participante) {
$plano = $participante->planoTrabalho; $plano = $participante->planoTrabalho;
if($plano) if ($plano)
$plano->delete(); $plano->delete();
$participante->delete(); $participante->delete();
} }
return true; return true;
} }
if($request->emailParticipante != null) { if ($request->emailParticipante != null) {
foreach ($request->emailParticipante as $key => $email) { foreach ($request->emailParticipante as $key => $email) {
$userParticipante = User::where('email', $email)->first(); $userParticipante = User::where('email', $email)->first();
$participante = new Participante(); $participante = new Participante();
if($userParticipante == null){ if ($userParticipante == null) {
$passwordTemporario = Str::random(8); $passwordTemporario = Str::random(8);
$usuario = new User(); $usuario = new User();
...@@ -1266,8 +1310,8 @@ class TrabalhoController extends Controller ...@@ -1266,8 +1310,8 @@ class TrabalhoController extends Controller
$usuario = User::where('email', $email)->first(); $usuario = User::where('email', $email)->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf"; $nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
...@@ -1299,10 +1343,9 @@ class TrabalhoController extends Controller ...@@ -1299,10 +1343,9 @@ class TrabalhoController extends Controller
$participante->save(); $participante->save();
if ($request->anexoPlanoTrabalho[$key]) { if ($request->anexoPlanoTrabalho[$key]) {
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf"; $nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
...@@ -1349,14 +1392,15 @@ class TrabalhoController extends Controller ...@@ -1349,14 +1392,15 @@ class TrabalhoController extends Controller
return true; return true;
} }
public function atualizar(Request $request, $id) { public function atualizar(Request $request, $id)
{
$edital = Evento::find($request->editalId); $edital = Evento::find($request->editalId);
$hoje = now(); $hoje = now();
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) { if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) {
return redirect()->route('inicial')->with(['error'=> 0, 'mensagem' => 'As submissões para o edital '. $edital->titulo .' foram encerradas.']); return redirect()->route('inicial')->with(['error' => 0, 'mensagem' => 'As submissões para o edital ' . $edital->titulo . ' foram encerradas.']);
} }
$projeto = $this->atribuirDados($request, $edital, $projeto); $projeto = $this->atribuirDados($request, $edital, $projeto);
...@@ -1370,7 +1414,8 @@ class TrabalhoController extends Controller ...@@ -1370,7 +1414,8 @@ class TrabalhoController extends Controller
} }
public function telaTrocaPart(Request $request){ public function telaTrocaPart(Request $request)
{
$projeto = Trabalho::find($request->projeto_id); $projeto = Trabalho::find($request->projeto_id);
$edital = Evento::find($projeto->evento_id); $edital = Evento::find($projeto->evento_id);
...@@ -1386,8 +1431,9 @@ class TrabalhoController extends Controller ...@@ -1386,8 +1431,9 @@ class TrabalhoController extends Controller
]); ]);
} }
public function trocaParticipante(Request $request){ public function trocaParticipante(Request $request)
try{ {
try {
DB::beginTransaction(); DB::beginTransaction();
$trabalho = Trabalho::find($request->projetoId); $trabalho = Trabalho::find($request->projetoId);
$evento = Evento::find($request->editalId); $evento = Evento::find($request->editalId);
...@@ -1414,17 +1460,17 @@ class TrabalhoController extends Controller ...@@ -1414,17 +1460,17 @@ class TrabalhoController extends Controller
$data['bairro'] = $request->bairro; $data['bairro'] = $request->bairro;
$data['complemento'] = $request->complemento; $data['complemento'] = $request->complemento;
if($request->instituicao != "Outra"){ if ($request->instituicao != "Outra") {
$data['instituicao'] = $request->instituicao; $data['instituicao'] = $request->instituicao;
}else{ } else {
$data['instituicao'] = $request->outrainstituicao; $data['instituicao'] = $request->outrainstituicao;
} }
$data['total_periodos'] = $request->total_periodos; $data['total_periodos'] = $request->total_periodos;
if($request->curso != "Outro"){ if ($request->curso != "Outro") {
$data['curso'] = $request->curso; $data['curso'] = $request->curso;
}else{ } else {
$data['curso'] = $request->outrocurso; $data['curso'] = $request->outrocurso;
} }
...@@ -1434,12 +1480,12 @@ class TrabalhoController extends Controller ...@@ -1434,12 +1480,12 @@ class TrabalhoController extends Controller
$data['media_do_curso'] = $request->media_do_curso; $data['media_do_curso'] = $request->media_do_curso;
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho; $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
if($request->substituirApenasPlanoCheck == 'check'){ if ($request->substituirApenasPlanoCheck == 'check') {
$substituicao = new Substituicao(); $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";
$file = $request->anexoPlanoTrabalho; $file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo(); $arquivo = new Arquivo();
...@@ -1460,26 +1506,26 @@ class TrabalhoController extends Controller ...@@ -1460,26 +1506,26 @@ class TrabalhoController extends Controller
$substituicao->trabalho_id = $trabalho->id; $substituicao->trabalho_id = $trabalho->id;
$substituicao->save(); $substituicao->save();
} }
}else{ } else {
//$participanteSubstituido->delete(); //$participanteSubstituido->delete();
$substituicao = new Substituicao(); $substituicao = new Substituicao();
$substituicao->observacao = $request->textObservacao; $substituicao->observacao = $request->textObservacao;
if($participanteSubstituido->data_entrada > $request->data_entrada){ if ($participanteSubstituido->data_entrada > $request->data_entrada) {
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Escolha uma data de entrada posterior a entrada do discente substituído"]); return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Escolha uma data de entrada posterior a entrada do discente substituído"]);
} }
$participanteSubstituido->data_saida = $request->data_entrada; $participanteSubstituido->data_saida = $request->data_entrada;
\App\Validator\CpfValidator::validate ($request->all()); \App\Validator\CpfValidator::validate($request->all());
$user = User::where('email' , $data['email'])->first(); $user = User::where('email', $data['email'])->first();
if (!$user){ if (!$user) {
$data['usuarioTemp'] = true; $data['usuarioTemp'] = true;
$user = User::create($data); $user = User::create($data);
$endereco = Endereco::create($data); $endereco = Endereco::create($data);
$endereco->user()->save($user); $endereco->user()->save($user);
} }
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
if (!$participante){ if (!$participante) {
$participante = Participante::create($data); $participante = Participante::create($data);
$participanteSubstituido->save(); $participanteSubstituido->save();
} }
...@@ -1488,17 +1534,17 @@ class TrabalhoController extends Controller ...@@ -1488,17 +1534,17 @@ class TrabalhoController extends Controller
$participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf"); $participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf");
$participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf"); $participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf");
$participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf"); $participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf");
if($request->anexoAutorizacaoPais != null) { if ($request->anexoAutorizacaoPais != null) {
$participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf"); $participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf");
} }
if($request->anexoComprovanteBancario != null){ if ($request->anexoComprovanteBancario != null) {
$participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario.".$request->file('anexoComprovanteBancario')->getClientOriginalExtension()); $participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario." . $request->file('anexoComprovanteBancario')->getClientOriginalExtension());
} }
$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->status = 'Em Aguardo';
$substituicao->tipo = 'ManterPlano'; $substituicao->tipo = 'ManterPlano';
$substituicao->observacao = $request->textObservacao; $substituicao->observacao = $request->textObservacao;
...@@ -1512,11 +1558,11 @@ class TrabalhoController extends Controller ...@@ -1512,11 +1558,11 @@ class TrabalhoController extends Controller
$substituicao->save(); $substituicao->save();
$planoAntigo->save(); $planoAntigo->save();
}else{ } else {
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";
$file = $request->anexoPlanoTrabalho; $file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo(); $arquivo = new Arquivo();
...@@ -1557,10 +1603,10 @@ class TrabalhoController extends Controller ...@@ -1557,10 +1603,10 @@ class TrabalhoController extends Controller
Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho)); 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!']); 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){ } catch (\App\Validator\ValidationException $th) {
DB::rollback(); DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]); return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]);
}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()]);
} }
...@@ -1568,23 +1614,25 @@ class TrabalhoController extends Controller ...@@ -1568,23 +1614,25 @@ class TrabalhoController extends Controller
} }
public function telaShowSubst(Request $request){ public function telaShowSubst(Request $request)
{
$trabalho = Trabalho::find($request->trabalho_id); $trabalho = Trabalho::find($request->trabalho_id);
$substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get(); $substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get();
$substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get(); $substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get();
return view('administrador.analiseSubstituicoes')->with([ 'substituicoesPendentes' => $substituicoesPendentes, return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes,
'substituicoesProjeto' => $substituicoesProjeto, 'substituicoesProjeto' => $substituicoesProjeto,
'trabalho' => $trabalho]); 'trabalho' => $trabalho]);
} }
public function aprovarSubstituicao(Request $request){ public function aprovarSubstituicao(Request $request)
{
$substituicao = Substituicao::find($request->substituicaoID); $substituicao = Substituicao::find($request->substituicaoID);
$trabalho = Trabalho::find($substituicao->trabalho->id); $trabalho = Trabalho::find($substituicao->trabalho->id);
if($request->aprovar == 'true'){ if ($request->aprovar == 'true') {
try{ try {
if($substituicao->tipo == 'TrocarPlano'){ if ($substituicao->tipo == 'TrocarPlano') {
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete(); $substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Finalizada'; $substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa; $substituicao->justificativa = $request->textJustificativa;
...@@ -1593,7 +1641,7 @@ class TrabalhoController extends Controller ...@@ -1593,7 +1641,7 @@ class TrabalhoController extends Controller
$substituicao->concluida_em = now(); $substituicao->concluida_em = now();
$substituicao->save(); $substituicao->save();
}else{ } else {
$substituicao->participanteSubstituido->delete(); $substituicao->participanteSubstituido->delete();
$trabalho->participantes()->save($substituicao->participanteSubstituto); $trabalho->participantes()->save($substituicao->participanteSubstituto);
...@@ -1607,18 +1655,18 @@ class TrabalhoController extends Controller ...@@ -1607,18 +1655,18 @@ class TrabalhoController extends Controller
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado')); Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
return redirect()->back()->with(['sucesso' => 'Substituição concluida!']); return redirect()->back()->with(['sucesso' => 'Substituição concluida!']);
}catch(\Throwable $th){ } catch (\Throwable $th) {
return redirect()->back()->with(['erro' => $th->getMessage()]); return redirect()->back()->with(['erro' => $th->getMessage()]);
} }
}else{ } else {
try{ try {
if($substituicao->tipo == 'TrocarPlano'){ if ($substituicao->tipo == 'TrocarPlano') {
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete(); $substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Negada'; $substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa; $substituicao->justificativa = $request->textJustificativa;
...@@ -1626,7 +1674,7 @@ class TrabalhoController extends Controller ...@@ -1626,7 +1674,7 @@ class TrabalhoController extends Controller
$substituicao->concluida_em = now(); $substituicao->concluida_em = now();
$substituicao->save(); $substituicao->save();
}elseif($substituicao->tipo == 'ManterPlano'){ } elseif ($substituicao->tipo == 'ManterPlano') {
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id; $substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id;
$substituicao->planoSubstituto->save(); $substituicao->planoSubstituto->save();
$substituicao->participanteSubstituto->delete(); $substituicao->participanteSubstituto->delete();
...@@ -1637,7 +1685,7 @@ class TrabalhoController extends Controller ...@@ -1637,7 +1685,7 @@ class TrabalhoController extends Controller
$substituicao->concluida_em = now(); $substituicao->concluida_em = now();
$substituicao->save(); $substituicao->save();
}else{ } else {
$substituicao->participanteSubstituto->delete(); $substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada'; $substituicao->status = 'Negada';
...@@ -1651,7 +1699,7 @@ class TrabalhoController extends Controller ...@@ -1651,7 +1699,7 @@ class TrabalhoController extends Controller
$trabalho = Trabalho::find($substituicao->trabalho->id); $trabalho = Trabalho::find($substituicao->trabalho->id);
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado')); Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']); return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']);
}catch(\Throwable $th){ } catch (\Throwable $th) {
return redirect()->back()->with(['erro' => $th->getMessage()]); return redirect()->back()->with(['erro' => $th->getMessage()]);
...@@ -1659,10 +1707,10 @@ class TrabalhoController extends Controller ...@@ -1659,10 +1707,10 @@ class TrabalhoController extends Controller
} }
} }
public function aprovarProposta(Request $request,$id){ public function aprovarProposta(Request $request, $id)
{
$trabalho = Trabalho::find($id); $trabalho = Trabalho::find($id);
$trabalho->status = $request->statusProp; $trabalho->status = $request->statusProp;
$trabalho->comentario = $request->comentario; $trabalho->comentario = $request->comentario;
...@@ -1670,4 +1718,5 @@ class TrabalhoController extends Controller ...@@ -1670,4 +1718,5 @@ class TrabalhoController extends Controller
return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']); return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']);
}} }
\ No newline at end of file }
\ No newline at end of file
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class RelatorioRecebimentoNotification extends Notification
{
use Queueable;
public $data;
public $url;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($id,$usuario,$eventoTitulo,$trabalhoTitulo,$tipoRelatorio)
{
$this->data = date('d/m/Y \à\s H:i\h', strtotime(now()));
$url = "/projeto/planosTrabalho/".$id;
$this->url = url($url);
$this->editalNome = $eventoTitulo;
$this->trabalhoNome = $trabalhoTitulo;
$this->user = $usuario;
$this->tipo = $tipoRelatorio;
$this->subject ="Recebimento de Relatório {$this->tipo}";
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->subject($this->subject)
->greeting("Olá, {$this->user->name}!")
->action('Acessar Relatórios', $this->url )
->line("O projeto {$this->trabalhoNome} pertencente ao edital {$this->editalNome} do Submeta, registrou um novo envio de Relatório {$this->tipo} em {$this->data}.")
->line('Obrigado por usar o nosso sistema.')
->markdown('vendor.notifications.email');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class SubmissaoRecebidaNotification extends Notification
{
use Queueable;
public $data;
public $url;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($id,$titulo,$usuario)
{
$this->data = date('d/m/Y \à\s H:i\h', strtotime(now()));
$url = "/usuarios/analisarProposta?id=".$id;
$this->url = url($url);
$this->editalNome = $titulo;
$this->user = $usuario;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Recebimento de Submissão de Proposta')
->greeting("Olá, {$this->user->name}!")
->action('Acessar Formulário', $this->url )
->line("O edital {$this->editalNome} do Submeta registrou uma nova submissão em {$this->data}.")
->line('Obrigado por usar o nosso sistema.')
->markdown('vendor.notifications.email');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
...@@ -33,4 +33,8 @@ class Participante extends Model ...@@ -33,4 +33,8 @@ class Participante extends Model
public function planoTrabalho() { public function planoTrabalho() {
return $this->hasOne('App\Arquivo', 'participanteId'); return $this->hasOne('App\Arquivo', 'participanteId');
} }
public function documentacaoComplementar() {
return $this->hasOne('App\DocumentacaoComplementar', 'participante_id');
}
} }
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddComentarioParecerInternos extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('parecer_internos', function (Blueprint $table) {
$table->text('comentario')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('parecer_internos', function (Blueprint $table) {
$table->dropColumn('comentario');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDocumentacaoComplementarsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('documentacao_complementars', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('termoCompromisso')->nullable();
$table->string('comprovanteMatricula')->nullable();
$table->string('pdfLattes')->nullable();
$table->string('linkLattes')->nullable();
$table->integer('participante_id')->nullable();
$table->foreign('participante_id')->references('id')->on('participantes');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('documentacao_complementars');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableEventos3 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('eventos', function (Blueprint $table) {
$table->string('formAvaliacaoExterno')->nullable();
$table->string('formAvaliacaoInterno')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('eventos', function (Blueprint $table) {
$table->dropColumn('formAvaliacaoExterno');
$table->dropColumn('formAvaliacaoInterno');
});
}
}
public/img/icons/parcialmenteAprovado.png

5.83 KB

...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
@section('content') @section('content')
<div class="row justify-content-center" style="margin-top: 100px; overflow-x: hidden;overflow-y:hidden">
<div class="row justify-content-center" style="margin-top: 100px;"> <div class="col-md-11">
<div class="col-md-10"> <div class="row">
<div class="card" style="border-radius: 5px"> <div class="col-sm-7">
<div class="card-body" style="padding-top: 0.2rem;"> <div class="card-body" style="padding-top: 0.2rem;">
<div class="container"> <div class="container">
<div class="form-row mt-3"> <div class="form-row mt-3">
...@@ -13,57 +13,84 @@ ...@@ -13,57 +13,84 @@
<div class="col-md-12"><h6 style="color: #234B8B; margin-bottom:-0.4rem; font-weight: bold; font-size: 14px;">Propostas Submetidas</h6></div> <div class="col-md-12"><h6 style="color: #234B8B; margin-bottom:-0.4rem; font-weight: bold; font-size: 14px;">Propostas Submetidas</h6></div>
</div> </div>
</div> </div>
<hr> </div>
<div class="container"> </div>
<div class="row"> <div class="col-sm-5" style="top: 40px; text-align: end">
@foreach( $trabalhos as $trabalho ) <h6 style="color: #234B8B; font-weight: bold;font-size: 13px; text-align: right">
<div onclick="myFunc({{$trabalho->id}})" class="col-md-6 card" style="border-color:#1492E6;border-radius: 10px; margin-top: 10px;"> <img src="{{asset('img/icons/pendente.png')}}" style="width: 22px"/>
<a href="{{route('admin.analisarProposta',['id'=>$trabalho->id])}}" id="vizuProposta{{$trabalho->id}}" hidden>teste visual de proposta</a> Proposta Pendente
<div class="row"> <img src="{{asset('img/icons/aprovado.png')}}" style="width: 22px"/>
<div class="col-md-10"> Proposta Aprovada
<h6 style="color: #1492E6; font-size: 16px;">{{ $trabalho->titulo }}</h6> <img src="{{asset('img/icons/negado.png')}}" style="width: 22px"/>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">Proponente: Proposta Negada
@foreach($trabalho->participantes as $participante) <br>
{{$participante->user->name}}; <img src="{{asset('img/icons/parcialmenteAprovado.png')}}" style="width: 22px"/>
@endforeach Proposta Parcialmente Aprovada
</h6> </h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">Data: {{ date('d/m/Y', strtotime($trabalho->created_at)) }}</h6>
</div> </div>
</div>
</div>
</div>
@foreach( $trabalhos as $trabalho )
<!--Informações Proponente-->
<div class="row justify-content-center" style="margin-top: 20px;">
<br>
<div class="col-md-11" onclick="myFunc({{$trabalho->id}})">
<a href="{{route('admin.analisarProposta',['id'=>$trabalho->id])}}" id="vizuProposta{{$trabalho->id}}" hidden></a>
<div class="card" style="border-radius: 5px;">
<div class="card-body" style="padding-top: 0.2rem;">
<div class="container">
<div class="form-row mt-3">
<div class="col-md-10"><h5 style="color: #234B8B; font-weight: bold">Titulo: {{ $trabalho->titulo }}</h5></div>
<div class="col-md-2"> <div class="col-md-2">
@if($trabalho->status == "aprovado") @if($trabalho->status == "aprovado")
<img src="{{asset('img/icons/aprovado.png')}}" style="width: 60%;margin: auto;display: flex;margin-top: 5px;justify-content: center;align-items: center;" alt=""> <img src="{{asset('img/icons/aprovado.png')}}" style="width: 23%;margin: auto;display: flex;margin-top: 0px;justify-content: center;align-items: center;" alt="">
@elseif($trabalho->status == "reprovado") @elseif($trabalho->status == "reprovado")
<img src="{{asset('img/icons/negado.png')}}" style="width: 60%;margin: auto;display: flex;margin-top: 5px;justify-content: center;align-items: center;" alt=""> <img src="{{asset('img/icons/negado.png')}}" style="width: 23%;margin: auto;display: flex;margin-top: 0px;justify-content: center;align-items: center;" alt="">
@elseif($trabalho->status == "corrigido")
<img src="{{asset('img/icons/parcialmenteAprovado.png')}}" style="width: 23%;margin: auto;display: flex;margin-top: 0px;justify-content: center;align-items: center;" alt="">
@else @else
<img src="{{asset('img/icons/pendente.png')}}" style="width: 60%;margin: auto;display: flex;margin-top: 5px;justify-content: center;align-items: center;" alt=""> <img src="{{asset('img/icons/pendente.png')}}" style="width: 20%;margin: auto;display: flex;justify-content: center;align-items: center;" alt="">
@endif @endif
</div> </div>
</div> </div>
<hr style="border-top: 1px solid#1492E6">
<div class="form-row mt-3">
<div class="col-md-12">
<p style="color: #4D4D4D; padding: 0px"><b>Proponente:</b> {{ App\Proponente::find($trabalho->proponente_id)->user->name }}</p>
</div> </div>
<div class="col-md-12"> <p style="color: #4D4D4D; padding: 0px"><b>Discentes:</b>
@foreach($trabalho->participantes as $participante)
{{$participante->user->name}};
@endforeach @endforeach
</div> </div>
<div class="col-md-12">
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">Data: {{ date('d/m/Y', strtotime($trabalho->created_at)) }}</h6>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="container" >
<div class="row" >
<div class="col-sm-10">
<br>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">
<img src="{{asset('img/icons/pendente.png')}}" style="width: 30px"/>
Proposta Pendente</h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">
<img src="{{asset('img/icons/aprovado.png')}}" style="width: 30px"/>
Proposta Aprovada</h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">
<img src="{{asset('img/icons/negado.png')}}" style="width: 30px"/>
Proposta Negada</h6>
</div> </div>
</div> </div>
@endforeach
<div class="row justify-content-center" >
<div class="col-md-11">
<br>
{{ $trabalhos->links() }}
</div> </div>
</div> </div>
...@@ -77,3 +104,8 @@ ...@@ -77,3 +104,8 @@
} }
</script> </script>
@endsection @endsection
<style>
html{
overflow-x:hidden;
}
</style>
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
@php
$grandesAreas = \App\GrandeArea::all();
@endphp
<div class="row justify-content-center" style="margin-top: 100px;"> <div class="row justify-content-center" style="margin-top: 100px;">
<!--Titulos --> <!--Titulos -->
...@@ -118,7 +121,7 @@ ...@@ -118,7 +121,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -126,7 +129,7 @@ ...@@ -126,7 +129,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1]) @include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1])
</div> </div>
</div> </div>
...@@ -139,7 +142,7 @@ ...@@ -139,7 +142,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -147,7 +150,7 @@ ...@@ -147,7 +150,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1]) @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div> </div>
</div> </div>
...@@ -159,7 +162,7 @@ ...@@ -159,7 +162,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -167,7 +170,7 @@ ...@@ -167,7 +170,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante') @include('administrador.vizualizarParticipante')
</div> </div>
</div> </div>
...@@ -279,19 +282,19 @@ ...@@ -279,19 +282,19 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
{{-- Arquivo --}} {{-- Arquivo --}}
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoProjeto" class="col-form-label" style="font-weight: bold">{{ __('Projeto: ') }}</label> <label for="anexoProjeto" class="col-form-label font-tam" style="font-weight: bold">{{ __('Projeto: ') }}</label>
<a href="{{ route('baixar.anexo.projeto', ['id' => $trabalho->id])}}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.projeto', ['id' => $trabalho->id])}}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoLatterCoordenador" class="col-form-label" style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}</label> <label for="anexoLatterCoordenador" class="col-form-label font-tam" style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}</label>
<a href="{{ route('baixar.anexo.lattes', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.lattes', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="nomeTrabalho" class="col-form-label" style="font-weight: bold">{{ __('Autorização do Comitê de Ética: ') }}</label> <label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Autorização do Comitê de Ética: ') }}</label>
@if($trabalho->anexoAutorizacaoComiteEtica != null) @if($trabalho->anexoAutorizacaoComiteEtica != null)
<a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else @else
...@@ -300,13 +303,13 @@ ...@@ -300,13 +303,13 @@
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoPlanilha" class="col-form-label" style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}</label> <label for="anexoPlanilha" class="col-form-label font-tam" style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}</label>
<a href="{{ route('baixar.anexo.planilha', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/xlsx.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.planilha', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/xlsx.ico')}}" style="width:40px" alt=""></a>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="nomeTrabalho" class="col-form-label" style="font-weight: bold">{{ __('Justificativa: ') }}</label> <label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Justificativa: ') }}</label>
@if($trabalho->justificativaAutorizacaoEtica != null) @if($trabalho->justificativaAutorizacaoEtica != null)
<a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else @else
...@@ -317,7 +320,7 @@ ...@@ -317,7 +320,7 @@
@if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') @if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM')
{{-- Decisão do CONSU --}} {{-- Decisão do CONSU --}}
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoCONSU" class="col-form-label" style="font-weight: bold">{{ __('Decisão do CONSU: ') }}</label> <label for="anexoCONSU" class="col-form-label font-tam" style="font-weight: bold">{{ __('Decisão do CONSU: ') }}</label>
<a href="{{ route('baixar.anexo.consu', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.consu', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div> </div>
@endif @endif
...@@ -346,26 +349,26 @@ ...@@ -346,26 +349,26 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
{{-- Relatório Parcial --}} {{-- Relatório Parcial --}}
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_inicioRelatorioParcial" class="col-form-label" style="font-weight: bold">{{ __('Início do Relatório Parcial: ') }}</label> <label for="dt_inicioRelatorioParcial" class="col-form-label font-tam" style="font-weight: bold">{{ __('Início do Relatório Parcial: ') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_inicioRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioParcial" value="{{$evento->dt_inicioRelatorioParcial}}" required autocomplete="dt_inicioRelatorioParcial" disabled autofocus> <input id="dt_inicioRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioParcial" value="{{$evento->dt_inicioRelatorioParcial}}" required autocomplete="dt_inicioRelatorioParcial" disabled autofocus>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_fimRelatorioParcial" class="col-form-label" style="font-weight: bold">{{ __('Fim do Relatório Parcial: ') }}</label> <label for="dt_fimRelatorioParcial" class="col-form-label font-tam" style="font-weight: bold">{{ __('Fim do Relatório Parcial: ') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_fimRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioParcial" value="{{$evento->dt_fimRelatorioParcial}}" required autocomplete="dt_fimRelatorioParcial" disabled autofocus> <input id="dt_fimRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioParcial" value="{{$evento->dt_fimRelatorioParcial}}" required autocomplete="dt_fimRelatorioParcial" disabled autofocus>
</div> </div>
{{-- Relatório Final --}} {{-- Relatório Final --}}
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_inicioRelatorioFinal" class="col-form-label" style="font-weight: bold">{{ __('Início do Relatório Final:') }}</label> <label for="dt_inicioRelatorioFinal" class="col-form-label font-tam" style="font-weight: bold">{{ __('Início do Relatório Final:') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_inicioRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioFinal" value="{{$evento->dt_inicioRelatorioFinal}}" required autocomplete="dt_inicioRelatorioFinal" disabled autofocus> <input id="dt_inicioRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioFinal" value="{{$evento->dt_inicioRelatorioFinal}}" required autocomplete="dt_inicioRelatorioFinal" disabled autofocus>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_fimRelatorioFinal" class="col-form-label" style="font-weight: bold">{{ __('Fim do Relatório Final:') }}</label> <label for="dt_fimRelatorioFinal" class="col-form-label font-tam" style="font-weight: bold">{{ __('Fim do Relatório Final:') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_fimRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioFinal" value="{{$evento->dt_fimRelatorioFinal}}" required autocomplete="dt_fimRelatorioFinal" disabled autofocus> <input id="dt_fimRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioFinal" value="{{$evento->dt_fimRelatorioFinal}}" required autocomplete="dt_fimRelatorioFinal" disabled autofocus>
...@@ -392,7 +395,7 @@ ...@@ -392,7 +395,7 @@
</div> </div>
<!-- Modal --> <!-- Modal -->
<div class="modal fade" id="avaliadorModalCenter{{ $trabalho->id }}" tabindex="-1" role="dialog" aria-labelledby="avaliadorModalCenterTitle" aria-hidden="true"> <div class="modal fade" id="avaliadorModalCenter{{ $trabalho->id }}" tabindex="-1" role="dialog" aria-labelledby="avaliadorModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
<div class="modal-content modal-submeta"> <div class="modal-content modal-submeta">
<div class="modal-header modal-header-submeta"> <div class="modal-header modal-header-submeta">
<h5 class="modal-title titulo-table" id="avaliadorModalLongTitle">Selecione o(s) avaliador(es)</h5> <h5 class="modal-title titulo-table" id="avaliadorModalLongTitle">Selecione o(s) avaliador(es)</h5>
...@@ -407,10 +410,34 @@ ...@@ -407,10 +410,34 @@
<input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}"> <input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}">
<input type="hidden" name="evento_id" value="{{ $evento->id }}"> <input type="hidden" name="evento_id" value="{{ $evento->id }}">
<div class="form-group"> <div class="form-group">
<label for="exampleFormControlSelect2">Selecione o(s) avaliador(es) para esse projeto</label> <div class="row" style="margin-left: 2px;margin-bottom: 1px">
<div class="col-md-6">
<label for="exampleFormControlSelect2">Seleciones o(s) avaliador(es) para esse projeto</label>
</div>
<div class="col-md-3" style="text-align: center;overflow-y: auto;overflow-x: auto">
<select class="form-control" id="grandeArea" name="grande_area_id" onchange="areas()" >
<option value="" disabled selected hidden>-- Grande Área --</option>
@foreach($grandesAreas as $grandeArea)
<option title="{{$grandeArea->nome}}" value="{{$grandeArea->id}}">{{$grandeArea->nome}}</option>
@endforeach
</select>
</div>
<div class="col-md-3" style="text-align: center;overflow-y: auto;overflow-x: auto">
<input type="hidden" id="oldArea" value="{{ old('area') }}" >
<select class="form-control @error('area') is-invalid @enderror" id="area" name="area_id" onchange="subareas()" >
<option value="" disabled selected hidden>-- Área --</option>
</select>
</div>
</div>
<select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2" required> <select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2" required>
@foreach ($trabalho->aval as $avaliador) @foreach ($trabalho->aval as $avaliador)
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} ({{$avaliador->area->nome ?? 'Indefinida'}}) </option> <option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} > {{$avaliador->user->instituicao ?? 'Instituição Indefinida'}} > {{$avaliador->area->nome ?? 'Indefinida'}} > {{$avaliador->user->email}}</option>
@endforeach @endforeach
</select> </select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small> <small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
...@@ -429,8 +456,13 @@ ...@@ -429,8 +456,13 @@
</div> </div>
<hr style="border-top: 1px solid#1492E6"> <hr style="border-top: 1px solid#1492E6">
<!--Comissão Externa-->
<div class="row justify-content-start" style="alignment: center">
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliadores - Externos</h6></div>
</div>
<div class="row justify-content-start" style="alignment: center"> <div class="row justify-content-start" style="alignment: center">
@foreach($trabalho->avaliadors as $avaliador) @foreach($trabalho->avaliadors as $avaliador)
@if($avaliador->tipo == 'Externo' || $avaliador->tipo == null)
<div class="col-sm-1"> <div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt=""> <img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div> </div>
...@@ -444,11 +476,37 @@ ...@@ -444,11 +476,37 @@
@endphp @endphp
<h9>@if($parecerInterno == null) Pendente @else <a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9> <h9>@if($parecerInterno == null) Pendente @else <a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9>
@endif @endif
<br> {{-- <br>
<a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" > <a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover Remover
</a> </a>--}}
</div> </div>
@endif
@endforeach
</div>
<br>
<!--Comissão Interna-->
<div class="row justify-content-start" style="alignment: center">
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliadores - Internos</h6></div>
</div>
<div class="row justify-content-start" style="alignment: center">
@foreach($trabalho->avaliadors as $avaliador)
@if($avaliador->tipo == 'Interno')
<div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5>
@php
$parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
<h9>@if($parecerInterno == null) Pendente @else <a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9>
<br>
{{-- <a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover
</a>--}}
</div>
@endif
@endforeach @endforeach
</div> </div>
</div> </div>
...@@ -750,6 +808,15 @@ ...@@ -750,6 +808,15 @@
</script> </script>
<style>
h6, a, b, p, .font-tam{
font-size: 16.4px;
}
h5{
font-size: 20px;
}
</style>
<script type="text/javascript"> <script type="text/javascript">
var e = document.getElementById("submeter"); var e = document.getElementById("submeter");
e.onclick = function(){myFunction(e.value)}; e.onclick = function(){myFunction(e.value)};
...@@ -791,6 +858,42 @@ ...@@ -791,6 +858,42 @@
$("#modalCancelarSubst").modal(); $("#modalCancelarSubst").modal();
} }
} }
function areas() {
var grandeArea = $('#grandeArea').val();
$.ajax({
type: 'POST',
url: '{{ route('area.consulta') }}',
data: 'id='+grandeArea ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (dados) => {
if (dados.length > 0) {
if($('#oldArea').val() == null || $('#oldArea').val() == ""){
var option = '<option selected disabled>-- Área --</option>';
}
$.each(dados, function(i, obj) {
if($('#oldArea').val() != null && $('#oldArea').val() == obj.id){
option += '<option selected value="' + obj.id + '">' + obj.nome + '</option>';
}else{
option += '<option value="' + obj.id + '">' + obj.nome + '</option>';
}
})
} else {
var option = "<option selected disabled>-- Área --</option>";
}
$('#area').html(option).show();
subareas();
},
error: (data) => {
console.log(data);
}
})
}
</script> </script>
@endsection @endsection
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -141,7 +141,7 @@ ...@@ -141,7 +141,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1]) @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div> </div>
</div> </div>
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -161,7 +161,7 @@ ...@@ -161,7 +161,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante') @include('administrador.vizualizarParticipante')
</div> </div>
</div> </div>
...@@ -267,7 +267,7 @@ ...@@ -267,7 +267,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -275,7 +275,7 @@ ...@@ -275,7 +275,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1]) @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div> </div>
</div> </div>
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <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"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -295,7 +295,7 @@ ...@@ -295,7 +295,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante') @include('administrador.vizualizarParticipante')
</div> </div>
</div> </div>
......
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