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
<?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
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'resultado_final','resultado_preliminar', 'coordenadorId',
'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(){
......
......@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Notificacao;
use App\Substituicao;
use Illuminate\Http\Request;
use App\Administrador;
......@@ -16,6 +17,7 @@ use App\GrandeArea;
use App\Natureza;
use App\Trabalho;
use App\FuncaoParticipantes;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;
use App\Evento;
......@@ -26,6 +28,9 @@ use Illuminate\Support\Facades\Mail;
use App\Mail\EventoCriado;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Response;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class AdministradorController extends Controller
{
......@@ -54,9 +59,9 @@ class AdministradorController extends Controller
public function pareceres(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhosSubmetidos = $evento->trabalhos->where('status', 'submetido');
$trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado');
$trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados);
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho');
// $trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado');
// $trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados);
return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]);
}
......@@ -68,9 +73,12 @@ class AdministradorController extends Controller
$trabalhosAprovados = $evento->trabalhos->Where('status', 'aprovado');
$trabalhosReprovados = $evento->trabalhos->Where('status', 'reprovado');
$trabalhosCorrigidos = $evento->trabalhos->Where('status', 'corrigido');
$trabalhos = $trabalhosSubmetidos
$trabalhos = $this->paginate($trabalhosSubmetidos);
$trabalhos = $this->paginate($trabalhosSubmetidos
->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();
// $participantes = Participante::where('trabalho_id', $id)->get();
......@@ -80,6 +88,15 @@ class AdministradorController extends Controller
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){
$trabalho = Trabalho::where('id',$request->id)->first();
......@@ -521,6 +538,18 @@ class AdministradorController extends Controller
$evento->avaliadors()->syncWithoutDetaching($avaliadores);
$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();
}
......
......@@ -3,10 +3,17 @@
namespace App\Http\Controllers;
use App\Arquivo;
use App\Notificacao;
use App\User;
use Auth;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use mysql_xdevapi\Exception;
use Carbon\Carbon;
use App\Notifications\RelatorioRecebimentoNotification;
use App\Administrador;
class ArquivoController extends Controller
{
......@@ -109,12 +116,67 @@ class ArquivoController extends Controller
$pasta = 'planoTrabalho/' . $arquivo->id;
if($request->relatorioParcial != null) {
$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) {
$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();
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){
}
......
......@@ -126,9 +126,9 @@ class AvaliadorController extends Controller
$statusParecer = "NAO-RECOMENDADO";
if(
$request->anexoLinkLattes=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoProjeto=='aceito' &&
$request->anexoConsu=='aceito' && $request->anexoPlanilha=='aceito' && $request->anexoLattesCoordenador=='aceito' &&
$request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito' &&
$request->anexoPlano=='aceito'){
$request->anexoConsu=='aceito' && $request->anexoLattesCoordenador=='aceito' && $request->anexoPlano=='aceito' &&
$request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito'
){
$statusParecer = "RECOMENDADO";
}
if($parecerInterno == null) {
......@@ -145,6 +145,7 @@ class AvaliadorController extends Controller
'statusJustificativaAutorizacaoEtica' => $request->anexoJustificativa,
'statusPlanoTrabalho' => $request->anexoPlano,
'statusParecer' => $statusParecer,
'comentario' => $request->comentario,
'trabalho_id' => $request->trabalho_id,
'avaliador_id' => $request->avaliador_id,
]);
......@@ -160,6 +161,7 @@ class AvaliadorController extends Controller
$parecerInterno->statusAnexoAtuorizacaoComiteEtica = $request->anexoComiteEtica;
$parecerInterno->statusJustificativaAutorizacaoEtica = $request->anexoJustificativa;
$parecerInterno->statusPlanoTrabalho = $request->anexoPlano;
$parecerInterno->comentario = $request->comentario;
$parecerInterno->statusParecer = $statusParecer;
$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"]);
}
}
......@@ -32,18 +32,18 @@ class EventoController extends Controller
public function index(Request $request)
{
if($request->buscar == null){
$eventos = Evento::all()->sortBy('nome');
// $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
$eventos = Evento::all()->sortBy('nome');
// $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
return view('coordenador.home',['eventos'=>$eventos, 'hoje'=>$hoje, 'palavra'=>'', 'flag'=>'false']);
return view('coordenador.home',['eventos'=>$eventos, 'hoje'=>$hoje, 'palavra'=>'', 'flag'=>'false']);
}else{
$eventos = Evento::where('nome','ilike','%'.$request->buscar.'%')->get();
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
return view('coordenador.home',['eventos'=>$eventos, 'hoje'=>$hoje, 'palavra'=>$request->buscar, 'flag'=>'true']);
$eventos = Evento::where('nome','ilike','%'.$request->buscar.'%')->get();
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
return view('coordenador.home',['eventos'=>$eventos, 'hoje'=>$hoje, 'palavra'=>$request->buscar, 'flag'=>'true']);
}
}
......@@ -90,9 +90,9 @@ class EventoController extends Controller
//dd($user_id);
if(isset($request->modeloDocumento)){
$request->validate([
'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->file('modeloDocumento'))],
]);
$request->validate([
'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->file('modeloDocumento'))],
]);
}
//--Salvando os anexos da submissão temporariamente
......@@ -100,62 +100,68 @@ class EventoController extends Controller
// validar datas nulas antes, pois pode gerar um bug
if(
$request->inicioSubmissao == null ||
$request->fimSubmissao == null ||
$request->inicioRevisao == null ||
$request->fimRevisao == null ||
$request->resultado == null
$request->inicioSubmissao == null ||
$request->fimSubmissao == null ||
$request->inicioRevisao == null ||
$request->fimRevisao == null ||
$request->resultado == null
){
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => [],
]);
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['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'],
//'modeloDocumento' => [],
]);
}
// validacao normal
//after = depois
//before = antes
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
#----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:yesterday'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
#----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:yesterday'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'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'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
//$evento = Evento::create([
......@@ -197,21 +203,41 @@ class EventoController extends Controller
//-- Salvando anexos finais
if(isset($request->pdfEdital)){
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome;
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome;
}
if(isset($request->modeloDocumento)){
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $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->modeloDocumento = $path . $nome;
$evento->formAvaliacaoExterno = $path . $nome;
}
$evento->update();
......@@ -226,31 +252,39 @@ class EventoController extends Controller
public function armazenarAnexosTemp(Request $request){
//---Anexos do Projeto
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first();
if($eventoTemp == null){
$eventoTemp = new Evento();
$eventoTemp->criador_id = Auth::user()->id;
$eventoTemp->anexosStatus = 'temporario';
$eventoTemp->save();
}
if(!(is_null($request->pdfEdital)) ) {
$pasta = 'pdfEdital/' . $eventoTemp->id;
$eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf');
}
if (!(is_null($request->modeloDocumento))) {
$extension = $request->modeloDocumento->extension();
$path = 'modeloDocumento/' . $eventoTemp->id;
$nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
}
$eventoTemp->update();
return $eventoTemp;
//---Anexos do Projeto
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first();
if($eventoTemp == null){
$eventoTemp = new Evento();
$eventoTemp->criador_id = Auth::user()->id;
$eventoTemp->anexosStatus = 'temporario';
$eventoTemp->save();
}
if(!(is_null($request->pdfEdital)) ) {
$pasta = 'pdfEdital/' . $eventoTemp->id;
$eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf');
}
if (!(is_null($request->modeloDocumento))) {
$extension = $request->modeloDocumento->extension();
$path = 'modeloDocumento/' . $eventoTemp->id;
$nome = "modelo" . "." . $extension;
$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();
return $eventoTemp;
}
/**
......@@ -264,20 +298,20 @@ class EventoController extends Controller
$evento = Evento::find($id);
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
if($proponente != null){
$hasTrabalho = false;
$hasFile = false;
$trabalhos = $proponente->trabalhos()->where('evento_id', $evento->id )->get();
$trabalhosCount = $proponente->trabalhos()->where('evento_id', $evento->id )->count();
if($trabalhosCount != 0){
$hasTrabalho = true;
$hasFile = true;
}
$hasTrabalho = false;
$hasFile = false;
$trabalhos = $proponente->trabalhos()->where('evento_id', $evento->id )->get();
$trabalhosCount = $proponente->trabalhos()->where('evento_id', $evento->id )->count();
if($trabalhosCount != 0){
$hasTrabalho = true;
$hasFile = true;
}
}else{
$hasTrabalho = false;
$hasFile = false;
$trabalhos = 0;
$trabalhosCount = 0;
$hasTrabalho = false;
$hasFile = false;
$trabalhos = 0;
$trabalhosCount = 0;
}
$trabalhosId = Trabalho::where('evento_id', $evento->id)->select('id')->get();
......@@ -285,14 +319,14 @@ class EventoController extends Controller
$mytime = Carbon::now('America/Recife');
// dd(false);
return view('evento.visualizarEvento', [
'evento' => $evento,
'trabalhos' => $trabalhos,
// 'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho,
// 'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile,
'mytime' => $mytime
]);
'evento' => $evento,
'trabalhos' => $trabalhos,
// 'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho,
// 'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile,
'mytime' => $mytime
]);
}
public function showNaoLogado($id)
......@@ -307,14 +341,14 @@ class EventoController extends Controller
$mytime = Carbon::now('America/Recife');
// dd(false);
return view('evento.visualizarEvento', [
'evento' => $evento,
'trabalhos' => $trabalhos,
'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho,
'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile,
'mytime' => $mytime
]);
'evento' => $evento,
'trabalhos' => $trabalhos,
'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho,
'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile,
'mytime' => $mytime
]);
}
/**
......@@ -332,9 +366,9 @@ class EventoController extends Controller
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
return view('evento.editarEvento',['evento'=>$evento,
'coordenadores'=>$coordenadors,
'naturezas'=>$naturezas,
'ontem'=>$yesterday]);
'coordenadores'=>$coordenadors,
'naturezas'=>$naturezas,
'ontem'=>$yesterday]);
}
/**
......@@ -351,55 +385,59 @@ class EventoController extends Controller
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
if(
$request->inicioSubmissao == null ||
$request->fimSubmissao == null ||
$request->inicioRevisao == null ||
$request->fimRevisao == null ||
$request->resultado == null
$request->inicioSubmissao == null ||
$request->fimSubmissao == null ||
$request->inicioRevisao == null ||
$request->fimRevisao == null ||
$request->resultado == null
){
$validatedData = $request->validate([
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes: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'],
]);
}
$validated = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
}
$validated = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'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;
......@@ -422,19 +460,39 @@ class EventoController extends Controller
$evento->coordenadorId = $request->coordenador_id;
$evento->consu = $request->has('consu');
if($request->pdfEdital != null){
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
}
if($request->modeloDocumento != null){
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $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();
......@@ -464,17 +522,17 @@ class EventoController extends Controller
// $areas->delete();
// }
if(isset($atividades)){
$atividades->delete();
$atividades->delete();
}
if(isset($comissao)){
$comissao->delete();
$comissao->delete();
}
if(isset($revisores)){
$revisores->delete();
$revisores->delete();
}
if(isset($trabalhos)){
$trabalhos->delete();
Trabalho::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]);
$trabalhos->delete();
Trabalho::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]);
}
Storage::deleteDirectory('pdfEdital/' . $evento->id );
......@@ -493,7 +551,7 @@ class EventoController extends Controller
// dd($ComissaoEventos);
$ids = [];
foreach($ComissaoEvento as $ce){
array_push($ids,$ce->userId);
array_push($ids,$ce->userId);
}
$users = User::find($ids);
......@@ -515,128 +573,128 @@ class EventoController extends Controller
$revs = Revisor::where('eventoId', $evento->id)->with('user')->get();
return view('coordenador.detalhesEvento', [
'evento' => $evento,
'areas' => $areas,
'revisores' => $revisores,
'revs' => $revs,
'users' => $users,
'modalidades' => $modalidades,
'areaModalidades' => $areaModalidades,
'trabalhos' => $trabalhos,
'trabalhosEnviados' => $trabalhosEnviados,
'trabalhosAvaliados' => $trabalhosAvaliados,
'trabalhosPendentes' => $trabalhosPendentes,
'numeroRevisores' => $numeroRevisores,
'numeroComissao' => $numeroComissao
]);
'evento' => $evento,
'areas' => $areas,
'revisores' => $revisores,
'revs' => $revs,
'users' => $users,
'modalidades' => $modalidades,
'areaModalidades' => $areaModalidades,
'trabalhos' => $trabalhos,
'trabalhosEnviados' => $trabalhosEnviados,
'trabalhosAvaliados' => $trabalhosAvaliados,
'trabalhosPendentes' => $trabalhosPendentes,
'numeroRevisores' => $numeroRevisores,
'numeroComissao' => $numeroComissao
]);
}
public function numTrabalhos(Request $request){
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'trabalhosPorAutor' => ['required', 'integer'],
'numCoautor' => ['required', 'integer']
]);
$evento->numMaxTrabalhos = $request->trabalhosPorAutor;
$evento->numMaxCoautores = $request->numCoautor;
$evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'trabalhosPorAutor' => ['required', 'integer'],
'numCoautor' => ['required', 'integer']
]);
$evento->numMaxTrabalhos = $request->trabalhosPorAutor;
$evento->numMaxCoautores = $request->numCoautor;
$evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
public function setResumo(Request $request){
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'hasResumo' => ['required', 'string']
]);
if($request->hasResumo == 'true'){
$evento->hasResumo = true;
}
else{
$evento->hasResumo = false;
}
$evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'hasResumo' => ['required', 'string']
]);
if($request->hasResumo == 'true'){
$evento->hasResumo = true;
}
else{
$evento->hasResumo = false;
}
$evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
public function setFotoEvento(Request $request){
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
// dd($request);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'fotoEvento' => ['required', 'file', 'mimes:png']
]);
$file = $request->fotoEvento;
$path = 'public/eventos/' . $evento->id;
$nome = '/logo.png';
Storage::putFileAs($path, $file, $nome);
$evento->fotoEvento = $path . $nome;
$evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
// dd($request);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'fotoEvento' => ['required', 'file', 'mimes:png']
]);
$file = $request->fotoEvento;
$path = 'public/eventos/' . $evento->id;
$nome = '/logo.png';
Storage::putFileAs($path, $file, $nome);
$evento->fotoEvento = $path . $nome;
$evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
public function areaParticipante() {
$eventos = Evento::all();
$eventos = Evento::all();
return view('user.areaParticipante',['eventos'=>$eventos]);
return view('user.areaParticipante',['eventos'=>$eventos]);
}
public function listComissao() {
$comissaoEvento = ComissaoEvento::where('userId', Auth::user()->id)->get();
$eventos = Evento::all();
$evnts = [];
$comissaoEvento = ComissaoEvento::where('userId', Auth::user()->id)->get();
$eventos = Evento::all();
$evnts = [];
foreach ($comissaoEvento as $comissao) {
foreach ($eventos as $evento) {
if($comissao->eventosId == $evento->id){
array_push($evnts,$evento);
}
foreach ($comissaoEvento as $comissao) {
foreach ($eventos as $evento) {
if($comissao->eventosId == $evento->id){
array_push($evnts,$evento);
}
}
}
}
return view('user.comissoes',['eventos'=>$evnts]);
return view('user.comissoes',['eventos'=>$evnts]);
}
public function listComissaoTrabalhos(Request $request) {
$evento = Evento::find($request->eventoId);
$areasId = Area::where('eventoId', $evento->id)->select('id')->get();
$trabalhos = Trabalho::whereIn('areaId', $areasId)->orderBy('id')->get();
$evento = Evento::find($request->eventoId);
$areasId = Area::where('eventoId', $evento->id)->select('id')->get();
$trabalhos = Trabalho::whereIn('areaId', $areasId)->orderBy('id')->get();
return view('user.areaComissao', ['trabalhos' => $trabalhos]);
return view('user.areaComissao', ['trabalhos' => $trabalhos]);
}
public function baixarEdital($id) {
$evento = Evento::find($id);
$evento = Evento::find($id);
if (Storage::disk()->exists($evento->pdfEdital)) {
ob_end_clean();
return Storage::download($evento->pdfEdital);
}
if (Storage::disk()->exists($evento->pdfEdital)) {
ob_end_clean();
return Storage::download($evento->pdfEdital);
}
return abort(404);
return abort(404);
}
public function baixarModelos($id) {
$evento = Evento::find($id);
$evento = Evento::find($id);
if (Storage::disk()->exists($evento->modeloDocumento)) {
ob_end_clean();
return Storage::download($evento->modeloDocumento);
}
if (Storage::disk()->exists($evento->modeloDocumento)) {
ob_end_clean();
return Storage::download($evento->modeloDocumento);
}
return abort(404);
return abort(404);
}
}
......@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Notificacao;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class NotificacaoController extends Controller
{
......@@ -30,7 +31,7 @@ class NotificacaoController extends Controller
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
......@@ -41,7 +42,7 @@ class NotificacaoController extends Controller
/**
* Display the specified resource.
*
* @param \App\Notificacao $notificacao
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function show(Notificacao $notificacao)
......@@ -52,7 +53,7 @@ class NotificacaoController extends Controller
/**
* Show the form for editing the specified resource.
*
* @param \App\Notificacao $notificacao
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function edit(Notificacao $notificacao)
......@@ -63,8 +64,8 @@ class NotificacaoController extends Controller
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Notificacao $notificacao
* @param \Illuminate\Http\Request $request
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Notificacao $notificacao)
......@@ -75,7 +76,7 @@ class NotificacaoController extends Controller
/**
* Remove the specified resource from storage.
*
* @param \App\Notificacao $notificacao
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function destroy(Notificacao $notificacao)
......@@ -86,14 +87,46 @@ class NotificacaoController extends Controller
public function listar()
{
$notificacoes = Notificacao::all()->sortByDesc('created_at');
return view('notificacao.listar',['notificacoes'=>$notificacoes]);
return view('notificacao.listar', ['notificacoes' => $notificacoes]);
}
public function listarTrab()
{
$destinatarios = Notificacao::where('destinatario_id',Auth()->user()->id)->get();
$remetentes = Notificacao::where('remetente_id',Auth()->user()->id)->get();
$notificacoes = $destinatarios->merge($remetentes)->sortByDesc('created_at');
return view('notificacao.listar',['notificacoes'=>$notificacoes]);
$notificacoes = Notificacao::where('destinatario_id', Auth()->user()->id)->get()->sortByDesc('created_at');
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
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){
$participante = Participante::find($id);
if($participante->tipoBolsa ==null){
......
......@@ -42,6 +42,7 @@ use Illuminate\Support\Facades\Validator;
use App\Mail\EmailParaUsuarioNaoCadastrado;
use App\Mail\SolicitacaoSubstituicao;
use App\Notifications\SubmissaoNotification;
use App\Notifications\SubmissaoRecebidaNotification;
use App\Substituicao;
use Illuminate\Support\Facades\Notification;
......@@ -110,24 +111,25 @@ class TrabalhoController extends Controller
$evento = Evento::find($request->editalId);
$coordenador = CoordenadorComissao::find($evento->coordenadorId);
//Relaciona o projeto criado com o proponente que criou o projeto
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
//Relaciona o projeto criado com o proponente que criou o projeto
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = "trabalho";
if($evento->inicioSubmissao > $mytime){
if($mytime >= $evento->fimSubmissao){
return redirect()->route('home');
$trabalho = "trabalho";
if ($evento->inicioSubmissao > $mytime) {
if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home');
}
}
}
//--Salvando os dados da submissão temporariamente
$this->armazenarInfoTemp($request, $proponente);
//--Salvando os dados da submissão temporariamente
$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
public function armazenarInfoTemp(Request $request, $proponente){
public function armazenarInfoTemp(Request $request, $proponente)
{
//---Dados do Projeto
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho')
......@@ -168,9 +170,9 @@ class TrabalhoController extends Controller
$trabalho->linkGrupoPesquisa = $request->linkGrupo;
}
//Anexos do projeto
//Anexos do projeto
$pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id;
$pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id;
if(!(is_null($request->anexoDecisaoCONSU)) ) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf");
......@@ -191,13 +193,13 @@ class TrabalhoController extends Controller
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
}
$trabalho->update();
$trabalho->update();
//---Anexos planos de trabalho
//---Anexos planos de trabalho
//dd($trabalho);
//dd($trabalho);
return $trabalho;
return $trabalho;
}
public function validarAnexosRascunho(Request $request, $trabalho){
......@@ -214,122 +216,122 @@ class TrabalhoController extends Controller
public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){
// Checando se é um novo trabalho ou uma edição
if ($trabalho->anexoProjeto != null) {
// Anexo Projeto
if(isset($request->anexoProjeto)){
if(Storage::disk()->exists($trabalho->anexoProjeto)) {
Storage::delete($trabalho->anexoProjeto);
}
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
}
//Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if(isset($request->anexoDecisaoCONSU)){
if(Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) {
Storage::delete($trabalho->anexoDecisaoCONSU);
}
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
// Checando se é um novo trabalho ou uma edição
if ($trabalho->anexoProjeto != null) {
// Anexo Projeto
if (isset($request->anexoProjeto)) {
if (Storage::disk()->exists($trabalho->anexoProjeto)) {
Storage::delete($trabalho->anexoProjeto);
}
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
}
}
//Autorização ou Justificativa
if( isset($request->anexoAutorizacaoComiteEtica)){
if(Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) {
Storage::delete($trabalho->anexoAutorizacaoComiteEtica);
//Anexo Decisão CONSU
if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if (isset($request->anexoDecisaoCONSU)) {
if (Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) {
Storage::delete($trabalho->anexoDecisaoCONSU);
}
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
}
}
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){
if(Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica);
//Autorização ou Justificativa
if (isset($request->anexoAutorizacaoComiteEtica)) {
if (Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) {
Storage::delete($trabalho->anexoAutorizacaoComiteEtica);
}
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null;
} elseif (isset($request->justificativaAutorizacaoEtica)) {
if (Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica);
}
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null;
}
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null;
}
//Anexo Lattes
if( isset($request->anexoLattesCoordenador)){
if(Storage::disk()->exists($trabalho->anexoLattesCoordenador)) {
Storage::delete($trabalho->anexoLattesCoordenador);
//Anexo Lattes
if (isset($request->anexoLattesCoordenador)) {
if (Storage::disk()->exists($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
if( isset($request->anexoPlanilhaPontuacao)){
if(Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) {
Storage::delete($trabalho->anexoPlanilhaPontuacao);
//Anexo Planilha
if (isset($request->anexoPlanilhaPontuacao)) {
if (Storage::disk()->exists($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
if(isset($request->anexoGrupoPesquisa)){
if(Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) {
Storage::delete($trabalho->anexoGrupoPesquisa);
// Anexo grupo pesquisa
if (isset($request->anexoGrupoPesquisa)) {
if (Storage::disk()->exists($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();
return $trabalho;
}
$trabalho->save();
return $trabalho;
}
// Anexo Projeto
if(isset($request->anexoProjeto)){
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
}
// Anexo Projeto
if (isset($request->anexoProjeto)) {
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
}
//Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if( isset($request->anexoDecisaoCONSU)){
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
//Anexo Decisão CONSU
if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if (isset($request->anexoDecisaoCONSU)) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
}
}
}
//Autorização ou Justificativa
if( isset($request->anexoAutorizacaoComiteEtica)){
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null;
//Autorização ou Justificativa
if (isset($request->anexoAutorizacaoComiteEtica)) {
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null;
}
} elseif (isset($request->justificativaAutorizacaoEtica)) {
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null;
//Anexo Lattes
if( isset($request->anexoLattesCoordenador)){
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
}
}
//Anexo Planilha
if( isset($request->anexoPlanilhaPontuacao)){
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
}
//Anexo Lattes
if (isset($request->anexoLattesCoordenador)) {
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
}
// Anexo grupo pesquisa
if(isset($request->anexoGrupoPesquisa)){
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa.". $request->file('anexoGrupoPesquisa')->extension());
}
//Anexo Planilha
if (isset($request->anexoPlanilhaPontuacao)) {
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
}
return $trabalho;
// Anexo grupo pesquisa
if (isset($request->anexoGrupoPesquisa)) {
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension());
}
return $trabalho;
}
public function show($id)
{
// $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
// if(Auth::user()->tipo == 'administrador'){
// $projeto = Trabalho::find($id);
// }
// if(!$projeto){
// // $projeto = Auth::user()->coordenadorComissao->trabalho()->where('id', $id)->first();
// return back()->withErrors(['Proposta não encontrada!']);
// }
$projeto = Trabalho::find($id);
......@@ -343,25 +345,25 @@ class TrabalhoController extends Controller
$users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get();
return view('projeto.visualizar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas,
'areas' => $areas,
'subAreas' => $subareas,
'edital' => $edital,
'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes,
'arquivos' => $arquivos,
'estados' => $this->estados,
'visualizar' => true,
'enum_turno' => Participante::ENUM_TURNO,
]);
'grandeAreas' => $grandeAreas,
'areas' => $areas,
'subAreas' => $subareas,
'edital' => $edital,
'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes,
'arquivos' => $arquivos,
'estados' => $this->estados,
'visualizar' => true,
'enum_turno' => Participante::ENUM_TURNO,
]);
}
public function exportProjeto($id)
public function exportProjeto($id)
{
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){
return back()->withErrors(['Proposta não encontrada!']);
if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']);
}
$edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all();
......@@ -372,9 +374,9 @@ class TrabalhoController extends Controller
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get();
$enum_turno = Participante::ENUM_TURNO;
view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital,$users, $funcaoParticipantes,$participantes,$arquivos,$enum_turno]);
$enum_turno = Participante::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']);
// download PDF file with download method
......@@ -383,180 +385,183 @@ class TrabalhoController extends Controller
public function edit($id)
{
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){
return back()->withErrors(['Proposta não encontrada!']);
}
$edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all();
$areas = Area::all();
$subareas = Subarea::all();
$funcaoParticipantes = FuncaoParticipantes::all();
$participantes = Participante::where('trabalho_id', $id)->get();
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get();
//dd(Participante::all());
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$edital->id)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first();
return view('projeto.editar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas,
'areas' => $areas,
'subAreas' => $subareas,
'edital' => $edital,
'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes,
'arquivos' => $arquivos,
'enum_turno' => Participante::ENUM_TURNO,
'estados' => $this->estados,
]);
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']);
}
$edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all();
$areas = Area::all();
$subareas = Subarea::all();
$funcaoParticipantes = FuncaoParticipantes::all();
$participantes = Participante::where('trabalho_id', $id)->get();
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get();
//dd(Participante::all());
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $edital->id)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first();
return view('projeto.editar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas,
'areas' => $areas,
'subAreas' => $subareas,
'edital' => $edital,
'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes,
'arquivos' => $arquivos,
'enum_turno' => Participante::ENUM_TURNO,
'estados' => $this->estados,
]);
}
public function destroy(Request $request)
{
$projeto = Trabalho::find($request->id);
//dd($trabalho);
Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id );
Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id);
$participantes = $projeto->participantes;
foreach ($participantes as $participante) {
$plano = $participante->planoTrabalho;
if($plano)
$plano->delete();
$participante->delete();
$plano = $participante->planoTrabalho;
if ($plano)
$plano->delete();
$participante->delete();
}
$projeto->delete();
return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']);
}
public function excluirParticipante($id){
$participante = Participante::where('id', $id)->first();
//$participante = Participante::where('user_id', Auth()->user()->id)
// ->where('trabalho_id', $id)->first();
public function excluirParticipante($id)
{
$participante = Participante::where('id', $id)->first();
//$participante = Participante::where('user_id', Auth()->user()->id)
// ->where('trabalho_id', $id)->first();
//$participante->trabalhos()->detach($id);
$participante->delete();
//$participante->trabalhos()->detach($id);
$participante->delete();
return redirect()->back();
return redirect()->back();
}
public function novaVersao(Request $request){
$mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString();
$evento = Evento::find($request->eventoId);
if($evento->inicioSubmissao > $mytime){
if($mytime >= $evento->fimSubmissao){
return redirect()->route('home');
public function novaVersao(Request $request)
{
$mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString();
$evento = Evento::find($request->eventoId);
if ($evento->inicioSubmissao > $mytime) {
if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home');
}
}
}
$validatedData = $request->validate([
'arquivo' => ['required', 'file', 'mimes:pdf'],
'eventoId' => ['required', 'integer'],
'trabalhoId' => ['required', 'integer'],
]);
$validatedData = $request->validate([
'arquivo' => ['required', 'file', 'mimes:pdf'],
'eventoId' => ['required', 'integer'],
'trabalhoId' => ['required', 'integer'],
]);
$trabalho = Trabalho::find($request->trabalhoId);
$trabalho = Trabalho::find($request->trabalhoId);
if(Auth::user()->id != $trabalho->autorId){
return redirect()->route('home');
}
if (Auth::user()->id != $trabalho->autorId) {
return redirect()->route('home');
}
$arquivos = $trabalho->arquivo;
$count = 1;
foreach ($arquivos as $key) {
$key->versaoFinal = false;
$key->save();
$count++;
}
$arquivos = $trabalho->arquivo;
$count = 1;
foreach ($arquivos as $key) {
$key->versaoFinal = false;
$key->save();
$count++;
}
$file = $request->arquivo;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id .'/';
$nome = $count . ".pdf";
Storage::putFileAs($path, $file, $nome);
$file = $request->arquivo;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/';
$nome = $count . ".pdf";
Storage::putFileAs($path, $file, $nome);
$arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'versaoFinal' => true,
]);
$arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'versaoFinal' => true,
]);
return redirect()->route('evento.visualizar',['id'=>$request->eventoId]);
return redirect()->route('evento.visualizar', ['id' => $request->eventoId]);
}
public function detalhesAjax(Request $request){
$validatedData = $request->validate([
'trabalhoId' => ['required', 'integer']
]);
public function detalhesAjax(Request $request)
{
$validatedData = $request->validate([
'trabalhoId' => ['required', 'integer']
]);
$trabalho = Trabalho::find($request->trabalhoId);
$revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get();
$revisoresAux = [];
foreach ($revisores as $key) {
if($key->revisor->user->name != null){
array_push($revisoresAux, [
'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->name
]);
}
else{
array_push($revisoresAux, [
'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->email
]);
}
}
$revisoresDisponeis = Revisor::where('eventoId', $trabalho->eventoId)->where('areaId', $trabalho->areaId)->get();
$revisoresAux1 = [];
foreach ($revisoresDisponeis as $key) {
//verificar se ja é um revisor deste trabalhos
$revisorNaoExiste = true;
foreach ($revisoresAux as $key1) {
if($key->id == $key1['id']){
$revisorNaoExiste = false;
}
$trabalho = Trabalho::find($request->trabalhoId);
$revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get();
$revisoresAux = [];
foreach ($revisores as $key) {
if ($key->revisor->user->name != null) {
array_push($revisoresAux, [
'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->name
]);
} else {
array_push($revisoresAux, [
'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->email
]);
}
}
//
if($revisorNaoExiste){
if($key->user->name != null){
array_push($revisoresAux1, [
'id' => $key->id,
'nomeOuEmail' => $key->user->name
]);
}
else{
array_push($revisoresAux1, [
'id' => $key->id,
'nomeOuEmail' => $key->user->email
]);
}
$revisoresDisponeis = Revisor::where('eventoId', $trabalho->eventoId)->where('areaId', $trabalho->areaId)->get();
$revisoresAux1 = [];
foreach ($revisoresDisponeis as $key) {
//verificar se ja é um revisor deste trabalhos
$revisorNaoExiste = true;
foreach ($revisoresAux as $key1) {
if ($key->id == $key1['id']) {
$revisorNaoExiste = false;
}
}
//
if ($revisorNaoExiste) {
if ($key->user->name != null) {
array_push($revisoresAux1, [
'id' => $key->id,
'nomeOuEmail' => $key->user->name
]);
} else {
array_push($revisoresAux1, [
'id' => $key->id,
'nomeOuEmail' => $key->user->email
]);
}
}
}
}
return response()->json([
'titulo' => $trabalho->titulo,
'resumo' => $trabalho->resumo,
'revisores' => $revisoresAux,
'revisoresDisponiveis' => $revisoresAux1
], 200);
return response()->json([
'titulo' => $trabalho->titulo,
'resumo' => $trabalho->resumo,
'revisores' => $revisoresAux,
'revisoresDisponiveis' => $revisoresAux1
], 200);
}
public function atribuirAvaliadorTrabalho(Request $request){
$request->trabalho_id;
$trabalho = Trabalho::find($request->trabalho_id);
public function atribuirAvaliadorTrabalho(Request $request)
{
$avaliadores = Avaliador::all();
$request->trabalho_id;
$trabalho = Trabalho::find($request->trabalho_id);
$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);
......@@ -568,1101 +573,1144 @@ class TrabalhoController extends Controller
foreach ($avaliadores as $key => $avaliador) {
$user = $avaliador->user;
$subject = "Trabalho atribuido";
Mail::to($user->email)
->send(new EventoCriado($user, $subject));
$user = $avaliador->user;
$subject = "Trabalho atribuido";
Mail::to($user->email)
->send(new EventoCriado($user, $subject));
}
return view('coordenadorComissao.detalhesEdital', ['evento'=> $trabalho->evento ]);
return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]);
}
public function projetosDoEdital($id) {
$edital = Evento::find($id);
$projetos = Trabalho::where('evento_id', '=', $id)->get();
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
public function projetosDoEdital($id)
{
$edital = Evento::find($id);
$projetos = Trabalho::where('evento_id', '=', $id)->get();
$hoje = Carbon::today('America/Recife');
$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) {
$projeto = Trabalho::find($id);
//dd($projeto);
if (Storage::disk()->exists($projeto->anexoProjeto)) {
ob_end_clean();
return Storage::download($projeto->anexoProjeto);
}
return abort(404);
public function baixarAnexoProjeto($id)
{
$projeto = Trabalho::find($id);
//dd($projeto);
if (Storage::disk()->exists($projeto->anexoProjeto)) {
ob_end_clean();
return Storage::download($projeto->anexoProjeto);
}
return abort(404);
}
public function baixarAnexoGrupoPesquisa($id) {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) {
ob_end_clean();
return Storage::download($projeto->anexoGrupoPesquisa);
}
return abort(404);
public function baixarAnexoGrupoPesquisa($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) {
ob_end_clean();
return Storage::download($projeto->anexoGrupoPesquisa);
}
return abort(404);
}
public function baixarAnexoConsu($id) {
$projeto = Trabalho::find($id);
public function baixarAnexoConsu($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) {
ob_end_clean();
return Storage::download($projeto->anexoDecisaoCONSU);
}
return abort(404);
if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) {
ob_end_clean();
return Storage::download($projeto->anexoDecisaoCONSU);
}
return abort(404);
}
public function baixarAnexoComite($id) {
$projeto = Trabalho::find($id);
public function baixarAnexoComite($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) {
ob_end_clean();
return Storage::download($projeto->anexoAutorizacaoComiteEtica);
}
return abort(404);
if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) {
ob_end_clean();
return Storage::download($projeto->anexoAutorizacaoComiteEtica);
}
return abort(404);
}
public function baixarAnexoLattes($id) {
$projeto = Trabalho::find($id);
public function baixarAnexoLattes($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) {
ob_end_clean();
return Storage::download($projeto->anexoLattesCoordenador);
}
return abort(404);
if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) {
ob_end_clean();
return Storage::download($projeto->anexoLattesCoordenador);
}
return abort(404);
}
public function baixarAnexoPlanilha($id) {
$projeto = Trabalho::find($id);
public function baixarAnexoPlanilha($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) {
ob_end_clean();
$file = $projeto->anexoPlanilhaPontuacao;
$ext = explode(".", $file);
switch ($ext[1]) {
case 'xlsx':
$hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
break;
case 'xls':
$hearder = 'application/vnd.ms-excel';
break;
case 'ods':
$hearder = 'application/vnd.oasis.opendocument.spreadsheet';
break;
default:
$hearder = 'application/vnd.ms-excel';
break;
}
$headers = array(
"Content-type: {$hearder}",
);
if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) {
ob_end_clean();
$file = $projeto->anexoPlanilhaPontuacao;
$ext = explode(".", $file);
switch ($ext[1]) {
case 'xlsx':
$hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
break;
case 'xls':
$hearder = 'application/vnd.ms-excel';
break;
case 'ods':
$hearder = 'application/vnd.oasis.opendocument.spreadsheet';
break;
default:
$hearder = 'application/vnd.ms-excel';
break;
}
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}",$headers);
}
return abort(404);
$headers = array(
"Content-type: {$hearder}",
);
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers);
}
return abort(404);
}
public function baixarAnexoJustificativa($id) {
$projeto = Trabalho::find($id);
public function baixarAnexoJustificativa($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) {
ob_end_clean();
return Storage::download($projeto->justificativaAutorizacaoEtica);
}
if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) {
ob_end_clean();
return Storage::download($projeto->justificativaAutorizacaoEtica);
}
return abort(404);
return abort(404);
}
public function baixarAnexoTemp($eventoId, $nomeAnexo) {
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
public function baixarAnexoTemp($eventoId, $nomeAnexo)
{
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$eventoId)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first();
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($trabalho->$nomeAnexo)) {
ob_end_clean();
return Storage::download($trabalho->$nomeAnexo);
}
return abort(404);
if (Storage::disk()->exists($trabalho->$nomeAnexo)) {
ob_end_clean();
return Storage::download($trabalho->$nomeAnexo);
}
return abort(404);
}
public function baixarEventoTemp($nomeAnexo){
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first();
public function baixarEventoTemp($nomeAnexo)
{
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) {
ob_end_clean();
return Storage::download($eventoTemp->$nomeAnexo);
}
return abort(404);
if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) {
ob_end_clean();
return Storage::download($eventoTemp->$nomeAnexo);
}
return abort(404);
}
public function update(UpdateTrabalho $request, $id)
{
try {
if (!$request->has('rascunho') ) {
$request->merge([
'status' => 'submetido'
]);
}else{
$request->merge([
'status' => 'rascunho'
]);
}
$evento = Evento::find($request->editalId);
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
]);
$trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
DB::beginTransaction();
if(!$trabalho){
return back()->withErrors(['Proposta não encontrada']);
}
$trabalho->update($request->except([
'anexoProjeto', 'anexoDecisaoCONSU','anexoPlanilhaPontuacao',
'anexoLattesCoordenador','anexoGrupoPesquisa','justificativaAutorizacaoEtica','anexoAutorizacaoComiteEtica'
]));
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save();
if ($request->marcado == null) {
$idExcluido = $trabalho->participantes->pluck('id');
}else{
$idExcluido = [];
}
foreach ($request->participante_id as $key => $value) {
if($request->marcado != null && array_search( $key, $request->marcado) === false){
if($value !== null)
array_push($idExcluido, $value);
}
}
foreach ($idExcluido as $key => $value) {
$trabalho->participantes()->find($value)->delete();
}
$trabalho->refresh();
if($request->has('marcado')){
foreach ($request->marcado as $key => $part) {
$part = intval($part);
$passwordTemporario = Str::random(8);
$data['name'] = $request->name[$part];
$data['email'] = $request->email[$part];
$data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$data['cpf'] = $request->cpf[$part];
$data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4;
$data['rg'] = $request->rg[$part];
$data['celular'] = $request->celular[$part];
$data['cep'] = $request->cep[$part];
$data['uf'] = $request->uf[$part];
$data['cidade'] = $request->cidade[$part];
$data['rua'] = $request->rua[$part];
$data['numero'] = $request->numero[$part];
$data['bairro'] = $request->bairro[$part];
$data['complemento'] = $request->complemento[$part];
if($request->instituicao[$part] != "Outra"){
$data['instituicao'] = $request->instituicao[$part];
}else{
$data['instituicao'] = $request->outrainstituicao[$part];
}
$data['total_periodos'] = $request->total_periodos[$part];
if($request->curso[$part] != "Outro"){
$data['curso'] = $request->curso[$part];
}else{
$data['curso'] = $request->outrocurso[$part];
try {
if (!$request->has('rascunho')) {
$request->merge([
'status' => 'submetido'
]);
} else {
$request->merge([
'status' => 'rascunho'
]);
}
$evento = Evento::find($request->editalId);
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
]);
$trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
$data['turno'] = $request->turno[$part];
$data['periodo_atual'] = $request->periodo_atual[$part];
$data['ordem_prioridade'] = $request->ordem_prioridade[$part];
$data['media_do_curso'] = $request->media_do_curso[$part];
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
// $participante = Participante::find($request->participante_id[$part]);
$user = User::where('email', $data['email'])->first();
if ($user == null){
$data['usuarioTemp'] = true;
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
$participante = Participante::create($data);
$user->participantes()->save($participante);
$trabalho->participantes()->save($participante);
}else{
// $user = $participante->user;
$user->update($data);
$endereco = $user->endereco;
$endereco->update($data);
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first();
// dd($participante);
if ($participante == null){
// dd('part null');
$participante = Participante::create($data);
$user->participantes()->save($participante);
$trabalho->participantes()->save($participante);
}else{
// dd('part update');
$participante->update($data);
}
DB::beginTransaction();
if (!$trabalho) {
return back()->withErrors(['Proposta não encontrada']);
}
if ( $request->has('anexoPlanoTrabalho') && array_key_exists($part,$request->anexoPlanoTrabalho) ) {
if(Arquivo::where('participanteId', $participante->id)->count()){
$arquivo = Arquivo::where('participanteId', $participante->id)->first();
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/';
$nome = $data['nomePlanoTrabalho'] .".pdf";
$file = $request->anexoPlanoTrabalho[$part] ;
Storage::putFileAs($path, $file, $nome);
$arquivo->update([
'titulo' => $nome,
'nome' => $path . $nome,
'data' => now() ,
]);
}else{
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/';
$nome = $data['nomePlanoTrabalho'] .".pdf";
$file = $request->anexoPlanoTrabalho[$part] ;
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
}
}
}
}
DB::commit();
if (!$request->has('rascunho') ) {
Notification::send(Auth::user(), new SubmissaoNotification($id));
}else{
}
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']);
} catch (\Throwable $th) {
DB::rollback();
return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
}
}
$trabalho->update($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'justificativaAutorizacaoEtica', 'anexoAutorizacaoComiteEtica'
]));
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save();
public function salvar(StoreTrabalho $request) {
if ($request->marcado == null) {
$idExcluido = $trabalho->participantes->pluck('id');
try {
if (!$request->has('rascunho') ) {
$request->merge([
'status' => 'submetido'
]);
}
$evento = Evento::find($request->editalId);
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
]);
DB::beginTransaction();
$trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU','anexoPlanilhaPontuacao',
'anexoLattesCoordenador','anexoGrupoPesquisa','anexoAutorizacaoComiteEtica',
'justificativaAutorizacaoEtica'
]));
if($request->has('marcado')){
foreach ($request->marcado as $key => $part) {
$part = intval($part);
$passwordTemporario = Str::random(8);
$data['name'] = $request->name[$part];
$data['email'] = $request->email[$part];
$data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$data['cpf'] = $request->cpf[$part];
$data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4;
$data['rg'] = $request->rg[$part];
$data['celular'] = $request->celular[$part];
$data['cep'] = $request->cep[$part];
$data['uf'] = $request->uf[$part];
$data['cidade'] = $request->cidade[$part];
$data['rua'] = $request->rua[$part];
$data['numero'] = $request->numero[$part];
$data['bairro'] = $request->bairro[$part];
$data['complemento'] = $request->complemento[$part];
if($request->instituicao[$part] != "Outra"){
$data['instituicao'] = $request->instituicao[$part];
}else{
$data['instituicao'] = $request->outrainstituicao[$part];
} else {
$idExcluido = [];
}
$data['total_periodos'] = $request->total_periodos[$part];
if($request->curso[$part] != "Outro"){
$data['curso'] = $request->curso[$part];
}else{
$data['curso'] = $request->outrocurso[$part];
foreach ($request->participante_id as $key => $value) {
if ($request->marcado != null && array_search($key, $request->marcado) === false) {
if ($value !== null)
array_push($idExcluido, $value);
}
}
$data['turno'] = $request->turno[$part];
$data['periodo_atual'] = $request->periodo_atual[$part];
$data['ordem_prioridade'] = $request->ordem_prioridade[$part];
$data['media_do_curso'] = $request->media_do_curso[$part];
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
$user = User::where('email' , $data['email'])->first();
if ($user == null){
$data['usuarioTemp'] = true;
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
}
// $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
// if ($participante == null){
// $participante = Participante::create($data);
// }
$participante = Participante::create($data);
$participante->data_entrada = $participante->created_at;
$user->participantes()->save($participante);
$participante->trabalho_id = $trabalho->id;
$participante->save();
if ( $request->has('anexoPlanoTrabalho') ) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/';
$nome = $data['nomePlanoTrabalho'] .".pdf";
$file = $request->anexoPlanoTrabalho[$part] ;
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
foreach ($idExcluido as $key => $value) {
$trabalho->participantes()->find($value)->delete();
}
}
}
$notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 1,
]);
$notificacao->save();
$trabalho->refresh();
if ($request->has('marcado')) {
foreach ($request->marcado as $key => $part) {
$part = intval($part);
$passwordTemporario = Str::random(8);
$data['name'] = $request->name[$part];
$data['email'] = $request->email[$part];
$data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$data['cpf'] = $request->cpf[$part];
$data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4;
$data['rg'] = $request->rg[$part];
$data['celular'] = $request->celular[$part];
$data['cep'] = $request->cep[$part];
$data['uf'] = $request->uf[$part];
$data['cidade'] = $request->cidade[$part];
$data['rua'] = $request->rua[$part];
$data['numero'] = $request->numero[$part];
$data['bairro'] = $request->bairro[$part];
$data['complemento'] = $request->complemento[$part];
if ($request->instituicao[$part] != "Outra") {
$data['instituicao'] = $request->instituicao[$part];
} else {
$data['instituicao'] = $request->outrainstituicao[$part];
}
$data['total_periodos'] = $request->total_periodos[$part];
if ($request->curso[$part] != "Outro") {
$data['curso'] = $request->curso[$part];
} else {
$data['curso'] = $request->outrocurso[$part];
}
$data['turno'] = $request->turno[$part];
$data['periodo_atual'] = $request->periodo_atual[$part];
$data['ordem_prioridade'] = $request->ordem_prioridade[$part];
$data['media_do_curso'] = $request->media_do_curso[$part];
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
// $participante = Participante::find($request->participante_id[$part]);
$user = User::where('email', $data['email'])->first();
if ($user == null) {
$data['usuarioTemp'] = true;
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
$participante = Participante::create($data);
$user->participantes()->save($participante);
$trabalho->participantes()->save($participante);
} else {
// $user = $participante->user;
$user->update($data);
$endereco = $user->endereco;
$endereco->update($data);
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first();
// dd($participante);
if ($participante == null) {
// dd('part null');
$participante = Participante::create($data);
$user->participantes()->save($participante);
$trabalho->participantes()->save($participante);
} else {
// dd('part update');
$participante->update($data);
}
}
if ($request->has('anexoPlanoTrabalho') && array_key_exists($part, $request->anexoPlanoTrabalho)) {
if (Arquivo::where('participanteId', $participante->id)->count()) {
$arquivo = Arquivo::where('participanteId', $participante->id)->first();
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho[$part];
Storage::putFileAs($path, $file, $nome);
$arquivo->update([
'titulo' => $nome,
'nome' => $path . $nome,
'data' => now(),
]);
} else {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho[$part];
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
}
}
}
}
$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($id));
} else {
DB::commit();
if (!$request->has('rascunho') ) {
Notification::send(Auth::user(), new SubmissaoNotification($trabalho->id));
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']);
}else{
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']);
}
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']);
} catch (\Throwable $th) {
DB::rollback();
return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
}
} catch (\Throwable $th) {
DB::rollback();
return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
}
}
public function atribuirDados(Request $request, $edital, Trabalho $projeto = null) {
if ($projeto == null) {
$projeto = new Trabalho();
}
$proponente = User::find(auth()->user()->id)->proponentes;
$hoje = now();
$projeto->titulo = $request->nomeProjeto;
$projeto->coordenador_id = $edital->coordenadorComissao->id;
$projeto->grande_area_id = $request->grandeArea;
$projeto->area_id = $request->area;
$projeto->sub_area_id = $request->subArea;
$projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha;
$projeto->linkGrupoPesquisa = $request->linkGrupo;
$projeto->linkLattesEstudante = $request->linkLattesEstudante;
$projeto->data = $hoje;
$projeto->evento_id = $request->editalId;
$projeto->status = 'submetido';
$projeto->proponente_id = $proponente->id;
// Salvando anexos no storage
$projeto->save();
$pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id;
$projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital);
return $projeto;
}
public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false) {
if ($edicao) {
$participantes = $projeto->participantes;
$participantesPermanecem = collect();
// dd($request->all());
foreach ($request->participante_id as $key => $id) {
// Novo participante
if ($id == 0 || $id == null) {
$userParticipante = User::where('email', $request->emailParticipante[$key])->first();
$participante = new Participante();
if($userParticipante == null){
$passwordTemporario = Str::random(8);
$usuario = new User();
$usuario->email = $request->emailParticipante[$key];
$usuario->password = bcrypt($passwordTemporario);
$usuario->usuarioTemp = false;
$usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key];
$endereco = new Endereco();
$endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->save();
$usuario->enderecoId = $endereco->id;
$usuario->save();
$participante->user_id = $usuario->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
$subject = "Participante de Projeto";
Mail::to($request->emailParticipante[$key])->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject));
} else {
$participante->user_id = $userParticipante->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
$subject = "Participante de Projeto";
Mail::to($request->emailParticipante[$key])
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto));
public function salvar(StoreTrabalho $request)
{
try {
if (!$request->has('rascunho')) {
$request->merge([
'status' => 'submetido'
]);
}
if($request->nomePlanoTrabalho[$key] != null){
$usuario = User::where('email', $request->emailParticipante[$key])->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
// dd($arquivo);
$evento = Evento::find($request->editalId);
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
]);
DB::beginTransaction();
$trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
'justificativaAutorizacaoEtica'
]));
if ($request->has('marcado')) {
foreach ($request->marcado as $key => $part) {
$part = intval($part);
$passwordTemporario = Str::random(8);
$data['name'] = $request->name[$part];
$data['email'] = $request->email[$part];
$data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$data['cpf'] = $request->cpf[$part];
$data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4;
$data['rg'] = $request->rg[$part];
$data['celular'] = $request->celular[$part];
$data['cep'] = $request->cep[$part];
$data['uf'] = $request->uf[$part];
$data['cidade'] = $request->cidade[$part];
$data['rua'] = $request->rua[$part];
$data['numero'] = $request->numero[$part];
$data['bairro'] = $request->bairro[$part];
$data['complemento'] = $request->complemento[$part];
if ($request->instituicao[$part] != "Outra") {
$data['instituicao'] = $request->instituicao[$part];
} else {
$data['instituicao'] = $request->outrainstituicao[$part];
}
$data['total_periodos'] = $request->total_periodos[$part];
if ($request->curso[$part] != "Outro") {
$data['curso'] = $request->curso[$part];
} else {
$data['curso'] = $request->outrocurso[$part];
}
$data['turno'] = $request->turno[$part];
$data['periodo_atual'] = $request->periodo_atual[$part];
$data['ordem_prioridade'] = $request->ordem_prioridade[$part];
$data['media_do_curso'] = $request->media_do_curso[$part];
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
$user = User::where('email', $data['email'])->first();
if ($user == null) {
$data['usuarioTemp'] = true;
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
}
// $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
// if ($participante == null){
// $participante = Participante::create($data);
// }
$participante = Participante::create($data);
$participante->data_entrada = $participante->created_at;
$user->participantes()->save($participante);
$participante->trabalho_id = $trabalho->id;
$participante->save();
if ($request->has('anexoPlanoTrabalho')) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho[$part];
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
}
}
}
// Editado
} elseif ($id > 0) {
// Removo dos cantidatos excluidos
$participante = Participante::find($id);
$participantesPermanecem->push($participante);
$usuario = $participante->user;
$endereco = $usuario->endereco;
$usuario->usuarioTemp = false;
$usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key];
$usuario->update();
$endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->update();
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->update();
if($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null){
$planoAtual = $participante->planoTrabalho;
if(Storage::disk()->exists($planoAtual->nome)) {
Storage::delete($planoAtual->nome);
}
$planoAtual->delete();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $id;
$arquivo->versaoFinal = true;
$arquivo->save();
$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([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 1,
]);
$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));
}
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']);
} else {
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']);
}
}
}
// Excluidos
$participantesExcluidos = $participantes->diff($participantesPermanecem);
foreach ($participantesExcluidos as $participante) {
$plano = $participante->planoTrabalho;
if($plano)
$plano->delete();
$participante->delete();
} catch (\Throwable $th) {
DB::rollback();
return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
}
return true;
}
if($request->emailParticipante != null) {
foreach ($request->emailParticipante as $key => $email) {
$userParticipante = User::where('email', $email)->first();
$participante = new Participante();
if($userParticipante == null){
$passwordTemporario = Str::random(8);
}
$usuario = new User();
$usuario->email = $email;
$usuario->password = bcrypt($passwordTemporario);
$usuario->usuarioTemp = false;
$usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key];
$endereco = new Endereco();
$endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->save();
$usuario->enderecoId = $endereco->id;
$usuario->save();
$participante->user_id = $usuario->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
$usuario = User::where('email', $email)->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
$subject = "Participante de Projeto";
Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject));
} else {
$participante->user_id = $userParticipante->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
if ($request->anexoPlanoTrabalho[$key]) {
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
public function atribuirDados(Request $request, $edital, Trabalho $projeto = null)
{
if ($projeto == null) {
$projeto = new Trabalho();
}
$proponente = User::find(auth()->user()->id)->proponentes;
$hoje = now();
$projeto->titulo = $request->nomeProjeto;
$projeto->coordenador_id = $edital->coordenadorComissao->id;
$projeto->grande_area_id = $request->grandeArea;
$projeto->area_id = $request->area;
$projeto->sub_area_id = $request->subArea;
$projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha;
$projeto->linkGrupoPesquisa = $request->linkGrupo;
$projeto->linkLattesEstudante = $request->linkLattesEstudante;
$projeto->data = $hoje;
$projeto->evento_id = $request->editalId;
$projeto->status = 'submetido';
$projeto->proponente_id = $proponente->id;
// Salvando anexos no storage
$projeto->save();
$pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id;
$projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital);
return $projeto;
}
public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false)
{
if ($edicao) {
$participantes = $projeto->participantes;
$participantesPermanecem = collect();
// dd($request->all());
foreach ($request->participante_id as $key => $id) {
// Novo participante
if ($id == 0 || $id == null) {
$userParticipante = User::where('email', $request->emailParticipante[$key])->first();
$participante = new Participante();
if ($userParticipante == null) {
$passwordTemporario = Str::random(8);
$usuario = new User();
$usuario->email = $request->emailParticipante[$key];
$usuario->password = bcrypt($passwordTemporario);
$usuario->usuarioTemp = false;
$usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key];
$endereco = new Endereco();
$endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->save();
$usuario->enderecoId = $endereco->id;
$usuario->save();
$participante->user_id = $usuario->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
$subject = "Participante de Projeto";
Mail::to($request->emailParticipante[$key])->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject));
} else {
$participante->user_id = $userParticipante->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
$subject = "Participante de Projeto";
Mail::to($request->emailParticipante[$key])
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto));
}
if ($request->nomePlanoTrabalho[$key] != null) {
$usuario = User::where('email', $request->emailParticipante[$key])->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
// dd($arquivo);
}
// Editado
} elseif ($id > 0) {
// Removo dos cantidatos excluidos
$participante = Participante::find($id);
$participantesPermanecem->push($participante);
$usuario = $participante->user;
$endereco = $usuario->endereco;
$usuario->usuarioTemp = false;
$usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key];
$usuario->update();
$endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->update();
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->update();
if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null) {
$planoAtual = $participante->planoTrabalho;
if (Storage::disk()->exists($planoAtual->nome)) {
Storage::delete($planoAtual->nome);
}
$planoAtual->delete();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $id;
$arquivo->versaoFinal = true;
$arquivo->save();
}
}
}
// Excluidos
$participantesExcluidos = $participantes->diff($participantesPermanecem);
foreach ($participantesExcluidos as $participante) {
$plano = $participante->planoTrabalho;
if ($plano)
$plano->delete();
$participante->delete();
}
$subject = "Participante de Projeto";
Mail::to($email)
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto));
}
// if($request->nomePlanoTrabalho[$key] != null){
// $usuario = User::where('email', $email)->first();
// $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
// $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
// $nome = $request->nomePlanoTrabalho[$key] .".pdf";
// $file = $request->anexoPlanoTrabalho[$key];
// Storage::putFileAs($path, $file, $nome);
// $agora = now();
// $arquivo = new Arquivo();
// $arquivo->titulo = $request->nomePlanoTrabalho[$key];
// $arquivo->nome = $path . $nome;
// $arquivo->trabalhoId = $projeto->id;
// $arquivo->data = $agora;
// $arquivo->participanteId = $participante->id;
// $arquivo->versaoFinal = true;
// $arquivo->save();
// }
return true;
}
if ($request->emailParticipante != null) {
foreach ($request->emailParticipante as $key => $email) {
$userParticipante = User::where('email', $email)->first();
$participante = new Participante();
if ($userParticipante == null) {
$passwordTemporario = Str::random(8);
$usuario = new User();
$usuario->email = $email;
$usuario->password = bcrypt($passwordTemporario);
$usuario->usuarioTemp = false;
$usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key];
$endereco = new Endereco();
$endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->save();
$usuario->enderecoId = $endereco->id;
$usuario->save();
$participante->user_id = $usuario->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
$usuario = User::where('email', $email)->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
$subject = "Participante de Projeto";
Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject));
} else {
$participante->user_id = $userParticipante->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key];
$participante->save();
if ($request->anexoPlanoTrabalho[$key]) {
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
$agora = now();
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
}
$subject = "Participante de Projeto";
Mail::to($email)
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto));
}
// if($request->nomePlanoTrabalho[$key] != null){
// $usuario = User::where('email', $email)->first();
// $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
// $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
// $nome = $request->nomePlanoTrabalho[$key] .".pdf";
// $file = $request->anexoPlanoTrabalho[$key];
// Storage::putFileAs($path, $file, $nome);
// $agora = now();
// $arquivo = new Arquivo();
// $arquivo->titulo = $request->nomePlanoTrabalho[$key];
// $arquivo->nome = $path . $nome;
// $arquivo->trabalhoId = $projeto->id;
// $arquivo->data = $agora;
// $arquivo->participanteId = $participante->id;
// $arquivo->versaoFinal = true;
// $arquivo->save();
// }
}
}
}
return true;
return true;
}
public function atualizar(Request $request, $id) {
$edital = Evento::find($request->editalId);
$hoje = now();
public function atualizar(Request $request, $id)
{
$edital = Evento::find($request->editalId);
$hoje = now();
$projeto = Trabalho::find($id);
$projeto = Trabalho::find($id);
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.']);
}
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.']);
}
$projeto = $this->atribuirDados($request, $edital, $projeto);
$projeto->update();
$projeto = $this->atribuirDados($request, $edital, $projeto);
$projeto->update();
// dd($request->all());
// Salvando participantes
$this->salvarParticipantes($request, $edital, $projeto, true);
// dd($request->all());
// Salvando participantes
$this->salvarParticipantes($request, $edital, $projeto, true);
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']);
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']);
}
public function telaTrocaPart(Request $request){
$projeto = Trabalho::find($request->projeto_id);
$edital = Evento::find($projeto->evento_id);
$participantes = $projeto->participantes;
$substituicoesProjeto = Substituicao::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get();
public function telaTrocaPart(Request $request)
{
$projeto = Trabalho::find($request->projeto_id);
$edital = Evento::find($projeto->evento_id);
return view('administrador.substituirParticipante')->with(['projeto' => $projeto,
'edital' => $edital,
'participantes' => $participantes,
'substituicoesProjeto' => $substituicoesProjeto,
'estados' => $this->estados,
'enum_turno' => Participante::ENUM_TURNO,
]);
}
$participantes = $projeto->participantes;
$substituicoesProjeto = Substituicao::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get();
return view('administrador.substituirParticipante')->with(['projeto' => $projeto,
'edital' => $edital,
'participantes' => $participantes,
'substituicoesProjeto' => $substituicoesProjeto,
'estados' => $this->estados,
'enum_turno' => Participante::ENUM_TURNO,
]);
}
public function trocaParticipante(Request $request){
try{
DB::beginTransaction();
$trabalho = Trabalho::find($request->projetoId);
$evento = Evento::find($request->editalId);
$participanteSubstituido = Participante::where('id', $request->participanteId)->first();
$planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first();
$passwordTemporario = Str::random(8);
$data['name'] = $request->name;
$data['email'] = $request->email;
$data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento;
$data['data_entrada'] = $request->data_entrada;
$data['cpf'] = $request->cpf;
$data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4;
$data['rg'] = $request->rg;
$data['celular'] = $request->celular;
$data['linkLattes'] = $request->linkLattes;
$data['cep'] = $request->cep;
$data['uf'] = $request->uf;
$data['cidade'] = $request->cidade;
$data['rua'] = $request->rua;
$data['numero'] = $request->numero;
$data['bairro'] = $request->bairro;
$data['complemento'] = $request->complemento;
if($request->instituicao != "Outra"){
$data['instituicao'] = $request->instituicao;
}else{
$data['instituicao'] = $request->outrainstituicao;
}
public function trocaParticipante(Request $request)
{
try {
DB::beginTransaction();
$trabalho = Trabalho::find($request->projetoId);
$evento = Evento::find($request->editalId);
$participanteSubstituido = Participante::where('id', $request->participanteId)->first();
$planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first();
$data['total_periodos'] = $request->total_periodos;
$passwordTemporario = Str::random(8);
$data['name'] = $request->name;
$data['email'] = $request->email;
$data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento;
$data['data_entrada'] = $request->data_entrada;
$data['cpf'] = $request->cpf;
$data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4;
$data['rg'] = $request->rg;
$data['celular'] = $request->celular;
$data['linkLattes'] = $request->linkLattes;
$data['cep'] = $request->cep;
$data['uf'] = $request->uf;
$data['cidade'] = $request->cidade;
$data['rua'] = $request->rua;
$data['numero'] = $request->numero;
$data['bairro'] = $request->bairro;
$data['complemento'] = $request->complemento;
if ($request->instituicao != "Outra") {
$data['instituicao'] = $request->instituicao;
} else {
$data['instituicao'] = $request->outrainstituicao;
}
if($request->curso != "Outro"){
$data['curso'] = $request->curso;
}else{
$data['curso'] = $request->outrocurso;
}
$data['total_periodos'] = $request->total_periodos;
$data['turno'] = $request->turno;
$data['periodo_atual'] = $request->periodo_atual;
$data['ordem_prioridade'] = $request->ordem_prioridade;
$data['media_do_curso'] = $request->media_do_curso;
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
if($request->substituirApenasPlanoCheck == 'check'){
$substituicao = new Substituicao();
if ( $request->has('anexoPlanoTrabalho') ) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/';
$nome = $data['nomePlanoTrabalho'] .".pdf";
$file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participanteSubstituido->id;
$arquivo->versaoFinal = true;
$arquivo->save();
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'TrocarPlano';
$substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participanteSubstituido->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->save();
}
}else{
//$participanteSubstituido->delete();
$substituicao = new Substituicao();
$substituicao->observacao = $request->textObservacao;
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"]);
}
if ($request->curso != "Outro") {
$data['curso'] = $request->curso;
} else {
$data['curso'] = $request->outrocurso;
}
$participanteSubstituido->data_saida = $request->data_entrada;
$data['turno'] = $request->turno;
$data['periodo_atual'] = $request->periodo_atual;
$data['ordem_prioridade'] = $request->ordem_prioridade;
$data['media_do_curso'] = $request->media_do_curso;
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
if ($request->substituirApenasPlanoCheck == 'check') {
$substituicao = new Substituicao();
if ($request->has('anexoPlanoTrabalho')) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participanteSubstituido->id;
$arquivo->versaoFinal = true;
$arquivo->save();
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'TrocarPlano';
$substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participanteSubstituido->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->save();
}
} else {
//$participanteSubstituido->delete();
$substituicao = new Substituicao();
$substituicao->observacao = $request->textObservacao;
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"]);
}
$participanteSubstituido->data_saida = $request->data_entrada;
\App\Validator\CpfValidator::validate($request->all());
$user = User::where('email', $data['email'])->first();
if (!$user) {
$data['usuarioTemp'] = true;
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
}
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
if (!$participante) {
$participante = Participante::create($data);
$participanteSubstituido->save();
}
$pasta = 'participantes/' . $participante->id;
$participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf");
$participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf");
$participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf");
if ($request->anexoAutorizacaoPais != null) {
$participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf");
}
if ($request->anexoComprovanteBancario != null) {
$participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario." . $request->file('anexoComprovanteBancario')->getClientOriginalExtension());
}
\App\Validator\CpfValidator::validate ($request->all());
$user = User::where('email' , $data['email'])->first();
if (!$user){
$data['usuarioTemp'] = true;
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
}
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
if (!$participante){
$participante = Participante::create($data);
$participanteSubstituido->save();
}
$pasta = 'participantes/' . $participante->id;
$participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf");
$participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf");
$participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf");
if($request->anexoAutorizacaoPais != null) {
$participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf");
}
if($request->anexoComprovanteBancario != null){
$participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario.".$request->file('anexoComprovanteBancario')->getClientOriginalExtension());
}
$user->participantes()->save($participante);
//$trabalho->participantes()->save($participante);
if ($request->manterPlanoCheck == 'check') {
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'ManterPlano';
$substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participante->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $planoAntigo->id;
$planoAntigo->participanteId = $participante->id;
$substituicao->save();
$planoAntigo->save();
} else {
if ($request->has('anexoPlanoTrabalho')) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'Completa';
$substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participante->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->save();
}
}
}
$user->participantes()->save($participante);
//$trabalho->participantes()->save($participante);
if($request->manterPlanoCheck == 'check'){
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'ManterPlano';
$substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participante->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $planoAntigo->id;
$planoAntigo->participanteId = $participante->id;
$substituicao->save();
$planoAntigo->save();
}else{
if ( $request->has('anexoPlanoTrabalho') ) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/';
$nome = $data['nomePlanoTrabalho'] .".pdf";
$file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'Completa';
$substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->participanteSubstituto_id = $participante->id;
$substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->save();
}
$evento->trabalhos()->save($trabalho);
$trabalho->save();
$notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 2,
]);
$notificacao->save();
DB::commit();
Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho));
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
} catch (\App\Validator\ValidationException $th) {
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]);
} catch (\Throwable $th) {
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]);
}
}
$evento->trabalhos()->save($trabalho);
$trabalho->save();
$notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 2,
]);
$notificacao->save();
DB::commit();
Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho));
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
}catch (\App\Validator\ValidationException $th){
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]);
}catch (\Throwable $th) {
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]);
}
}
public function telaShowSubst(Request $request){
$trabalho = Trabalho::find($request->trabalho_id);
$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();
return view('administrador.analiseSubstituicoes')->with([ 'substituicoesPendentes' => $substituicoesPendentes,
'substituicoesProjeto' => $substituicoesProjeto,
'trabalho' => $trabalho]);
}
public function aprovarSubstituicao(Request $request){
$substituicao = Substituicao::find($request->substituicaoID);
$trabalho = Trabalho::find($substituicao->trabalho->id);
public function telaShowSubst(Request $request)
{
$trabalho = Trabalho::find($request->trabalho_id);
$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();
if($request->aprovar == 'true'){
try{
if($substituicao->tipo == 'TrocarPlano'){
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes,
'substituicoesProjeto' => $substituicoesProjeto,
'trabalho' => $trabalho]);
}
$substituicao->concluida_em = now();
$substituicao->save();
public function aprovarSubstituicao(Request $request)
{
$substituicao = Substituicao::find($request->substituicaoID);
$trabalho = Trabalho::find($substituicao->trabalho->id);
}else{
$substituicao->participanteSubstituido->delete();
$trabalho->participantes()->save($substituicao->participanteSubstituto);
if ($request->aprovar == 'true') {
try {
if ($substituicao->tipo == 'TrocarPlano') {
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
} else {
$substituicao->participanteSubstituido->delete();
$trabalho->participantes()->save($substituicao->participanteSubstituto);
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
return redirect()->back()->with(['sucesso' => 'Substituição concluida!']);
} catch (\Throwable $th) {
return redirect()->back()->with(['erro' => $th->getMessage()]);
}
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}
} else {
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
return redirect()->back()->with(['sucesso' => 'Substituição concluida!']);
}catch(\Throwable $th){
return redirect()->back()->with(['erro' => $th->getMessage()]);
}
try {
}else{
if ($substituicao->tipo == 'TrocarPlano') {
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
try{
$substituicao->concluida_em = now();
$substituicao->save();
} elseif ($substituicao->tipo == 'ManterPlano') {
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id;
$substituicao->planoSubstituto->save();
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
if($substituicao->tipo == 'TrocarPlano'){
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->save();
} else {
$substituicao->participanteSubstituto->delete();
$substituicao->concluida_em = now();
$substituicao->save();
}elseif($substituicao->tipo == 'ManterPlano'){
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id;
$substituicao->planoSubstituto->save();
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}
$substituicao->save();
}else{
$substituicao->participanteSubstituto->delete();
$trabalho = Trabalho::find($substituicao->trabalho->id);
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']);
} catch (\Throwable $th) {
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
return redirect()->back()->with(['erro' => $th->getMessage()]);
$substituicao->save();
}
}
$trabalho = Trabalho::find($substituicao->trabalho->id);
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']);
}catch(\Throwable $th){
return redirect()->back()->with(['erro' => $th->getMessage()]);
}
}
}
public function aprovarProposta(Request $request,$id){
public function aprovarProposta(Request $request, $id)
{
$trabalho = Trabalho::find($id);
$trabalho->status = $request->statusProp;
$trabalho->comentario = $request->comentario;
......@@ -1670,4 +1718,5 @@ class TrabalhoController extends Controller
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
public function planoTrabalho() {
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');
});
}
}
......@@ -2,69 +2,96 @@
@section('content')
<div class="row justify-content-center" style="margin-top: 100px;">
<div class="col-md-10">
<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-12"><h5 style="color: #1492E6; font-size: 20px;">Edital - {{$evento->nome}}</h5></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 class="row justify-content-center" style="margin-top: 100px; overflow-x: hidden;overflow-y:hidden">
<div class="col-md-11">
<div class="row">
<div class="col-sm-7">
<div class="card-body" style="padding-top: 0.2rem;">
<div class="container">
<div class="form-row mt-3">
<div class="col-md-12"><h5 style="color: #1492E6; font-size: 20px;">Edital - {{$evento->nome}}</h5></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>
<hr>
<div class="container">
<div class="row">
</div>
<div class="col-sm-5" style="top: 40px; text-align: end">
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px; text-align: right">
<img src="{{asset('img/icons/pendente.png')}}" style="width: 22px"/>
Proposta Pendente
<img src="{{asset('img/icons/aprovado.png')}}" style="width: 22px"/>
Proposta Aprovada
<img src="{{asset('img/icons/negado.png')}}" style="width: 22px"/>
Proposta Negada
<br>
<img src="{{asset('img/icons/parcialmenteAprovado.png')}}" style="width: 22px"/>
Proposta Parcialmente Aprovada
</h6>
</div>
</div>
</div>
</div>
@foreach( $trabalhos as $trabalho )
<div onclick="myFunc({{$trabalho->id}})" class="col-md-6 card" style="border-color:#1492E6;border-radius: 10px; margin-top: 10px;">
<a href="{{route('admin.analisarProposta',['id'=>$trabalho->id])}}" id="vizuProposta{{$trabalho->id}}" hidden>teste visual de proposta</a>
<div class="row">
<div class="col-md-10">
<h6 style="color: #1492E6; font-size: 16px;">{{ $trabalho->titulo }}</h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">Proponente:
@foreach($trabalho->participantes as $participante)
{{$participante->user->name}};
@endforeach
</h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">Data: {{ date('d/m/Y', strtotime($trabalho->created_at)) }}</h6>
</div>
<div class="col-md-2">
@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="">
@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="">
@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="">
@endif
<!--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">
@if($trabalho->status == "aprovado")
<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")
<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
<img src="{{asset('img/icons/pendente.png')}}" style="width: 20%;margin: auto;display: flex;justify-content: center;align-items: center;" alt="">
@endif
</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 class="col-md-12"> <p style="color: #4D4D4D; padding: 0px"><b>Discentes:</b>
@foreach($trabalho->participantes as $participante)
{{$participante->user->name}};
@endforeach
</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>
@endforeach
</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 class="row justify-content-center" >
<div class="col-md-11">
<br>
{{ $trabalhos->links() }}
</div>
</div>
</div>
</div>
......@@ -77,3 +104,8 @@
}
</script>
@endsection
<style>
html{
overflow-x:hidden;
}
</style>
@extends('layouts.app')
@section('content')
@php
$grandesAreas = \App\GrandeArea::all();
@endphp
<div class="row justify-content-center" style="margin-top: 100px;">
<!--Titulos -->
......@@ -118,7 +121,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
......@@ -126,7 +129,7 @@
</button>
</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])
</div>
</div>
......@@ -139,7 +142,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
......@@ -147,7 +150,7 @@
</button>
</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])
</div>
</div>
......@@ -159,7 +162,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
......@@ -167,7 +170,7 @@
</button>
</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')
</div>
</div>
......@@ -279,19 +282,19 @@
<div class="row justify-content-center">
{{-- Arquivo --}}
<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>
</div>
<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>
</div>
<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)
<a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
......@@ -300,13 +303,13 @@
</div>
<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>
</div>
<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)
<a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
......@@ -317,7 +320,7 @@
@if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM')
{{-- Decisão do CONSU --}}
<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>
</div>
@endif
......@@ -346,26 +349,26 @@
<div class="row justify-content-center">
{{-- Relatório Parcial --}}
<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 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>
</div>
<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 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>
</div>
{{-- Relatório Final --}}
<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 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>
</div>
<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 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>
......@@ -392,7 +395,7 @@
</div>
<!-- Modal -->
<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-header modal-header-submeta">
<h5 class="modal-title titulo-table" id="avaliadorModalLongTitle">Selecione o(s) avaliador(es)</h5>
......@@ -407,10 +410,34 @@
<input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}">
<input type="hidden" name="evento_id" value="{{ $evento->id }}">
<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>
@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
</select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
......@@ -429,26 +456,57 @@
</div>
<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">
@foreach($trabalho->avaliadors as $avaliador)
<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>
@if($avaliador->tipo == 'Externo' || $avaliador->tipo == null)
<h9>@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) Pendente @else <a href="{{ route('admin.visualizarParecer', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9>
@else
@if($avaliador->tipo == 'Externo' || $avaliador->tipo == null)
<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>
@if($avaliador->tipo == 'Externo' || $avaliador->tipo == null)
<h9>@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) Pendente @else <a href="{{ route('admin.visualizarParecer', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9>
@else
@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>
@endif
{{-- <br>
<a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover
</a>--}}
</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>
@endif
<br>
<a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover
</a>
</div>
<br>
{{-- <a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover
</a>--}}
</div>
@endif
@endforeach
</div>
</div>
......@@ -750,6 +808,15 @@
</script>
<style>
h6, a, b, p, .font-tam{
font-size: 16.4px;
}
h5{
font-size: 20px;
}
</style>
<script type="text/javascript">
var e = document.getElementById("submeter");
e.onclick = function(){myFunction(e.value)};
......@@ -791,6 +858,42 @@
$("#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>
@endsection
......@@ -133,7 +133,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
......@@ -141,7 +141,7 @@
</button>
</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])
</div>
</div>
......@@ -153,17 +153,17 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
<span aria-hidden="true">&times;</span>
</button>
</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')
</div>
</div>
</div>
</div>
</div>
......@@ -267,7 +267,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
......@@ -275,7 +275,7 @@
</button>
</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])
</div>
</div>
......@@ -287,7 +287,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg">
<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>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
......@@ -295,7 +295,7 @@
</button>
</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')
</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