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 ...@@ -16,7 +16,8 @@ class Evento extends Model
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao', 'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'resultado_final','resultado_preliminar', 'coordenadorId', 'resultado_final','resultado_preliminar', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes', 'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes',
'dt_inicioRelatorioParcial', 'dt_fimRelatorioParcial', 'dt_inicioRelatorioFinal', 'dt_fimRelatorioFinal' 'dt_inicioRelatorioParcial', 'dt_fimRelatorioParcial', 'dt_inicioRelatorioFinal', 'dt_fimRelatorioFinal',
'formAvaliacaoExterno', 'formAvaliacaoInterno'
]; ];
public function endereco(){ public function endereco(){
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Notificacao;
use App\Substituicao; use App\Substituicao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Administrador; use App\Administrador;
...@@ -16,6 +17,7 @@ use App\GrandeArea; ...@@ -16,6 +17,7 @@ use App\GrandeArea;
use App\Natureza; use App\Natureza;
use App\Trabalho; use App\Trabalho;
use App\FuncaoParticipantes; use App\FuncaoParticipantes;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use App\Evento; use App\Evento;
...@@ -26,6 +28,9 @@ use Illuminate\Support\Facades\Mail; ...@@ -26,6 +28,9 @@ use Illuminate\Support\Facades\Mail;
use App\Mail\EventoCriado; use App\Mail\EventoCriado;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Response; use App\Http\Controllers\Response;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class AdministradorController extends Controller class AdministradorController extends Controller
{ {
...@@ -54,9 +59,9 @@ class AdministradorController extends Controller ...@@ -54,9 +59,9 @@ class AdministradorController extends Controller
public function pareceres(Request $request){ public function pareceres(Request $request){
$evento = Evento::where('id', $request->evento_id)->first(); $evento = Evento::where('id', $request->evento_id)->first();
$trabalhosSubmetidos = $evento->trabalhos->where('status', 'submetido'); $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho');
$trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado'); // $trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado');
$trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados); // $trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados);
return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]); return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]);
} }
...@@ -68,9 +73,12 @@ class AdministradorController extends Controller ...@@ -68,9 +73,12 @@ class AdministradorController extends Controller
$trabalhosAprovados = $evento->trabalhos->Where('status', 'aprovado'); $trabalhosAprovados = $evento->trabalhos->Where('status', 'aprovado');
$trabalhosReprovados = $evento->trabalhos->Where('status', 'reprovado'); $trabalhosReprovados = $evento->trabalhos->Where('status', 'reprovado');
$trabalhosCorrigidos = $evento->trabalhos->Where('status', 'corrigido'); $trabalhosCorrigidos = $evento->trabalhos->Where('status', 'corrigido');
$trabalhos = $trabalhosSubmetidos $trabalhos = $this->paginate($trabalhosSubmetidos);
$trabalhos = $this->paginate($trabalhosSubmetidos
->merge($trabalhosAvaliados)->merge($trabalhosAprovados) ->merge($trabalhosAvaliados)->merge($trabalhosAprovados)
->merge($trabalhosReprovados)->merge($trabalhosCorrigidos)->sortBy('titulo'); ->merge($trabalhosReprovados)->merge($trabalhosCorrigidos)->sortBy('titulo'))
->withPath('/usuarios/analisarProjetos?evento_id='.$evento->id);
$funcaoParticipantes = FuncaoParticipantes::all(); $funcaoParticipantes = FuncaoParticipantes::all();
// $participantes = Participante::where('trabalho_id', $id)->get(); // $participantes = Participante::where('trabalho_id', $id)->get();
...@@ -80,6 +88,15 @@ class AdministradorController extends Controller ...@@ -80,6 +88,15 @@ class AdministradorController extends Controller
return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes]); return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes]);
} }
// Utilizado para paginação de Collection
public function paginate($items, $perPage = 5, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
public function analisarProposta(Request $request){ public function analisarProposta(Request $request){
$trabalho = Trabalho::where('id',$request->id)->first(); $trabalho = Trabalho::where('id',$request->id)->first();
...@@ -521,6 +538,18 @@ class AdministradorController extends Controller ...@@ -521,6 +538,18 @@ class AdministradorController extends Controller
$evento->avaliadors()->syncWithoutDetaching($avaliadores); $evento->avaliadors()->syncWithoutDetaching($avaliadores);
$trabalho->save(); $trabalho->save();
foreach ($avaliadores as $avaliador){
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $avaliador->user_id,
'trabalho_id' => $request->trabalho_id,
'lido' => false,
'tipo' => 5,
]);
$notificacao->save();
}
return redirect()->back(); return redirect()->back();
} }
......
...@@ -3,10 +3,17 @@ ...@@ -3,10 +3,17 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Arquivo; use App\Arquivo;
use App\Notificacao;
use App\User;
use Auth;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use mysql_xdevapi\Exception; use mysql_xdevapi\Exception;
use Carbon\Carbon; use Carbon\Carbon;
use App\Notifications\RelatorioRecebimentoNotification;
use App\Administrador;
class ArquivoController extends Controller class ArquivoController extends Controller
{ {
...@@ -109,12 +116,67 @@ class ArquivoController extends Controller ...@@ -109,12 +116,67 @@ class ArquivoController extends Controller
$pasta = 'planoTrabalho/' . $arquivo->id; $pasta = 'planoTrabalho/' . $arquivo->id;
if($request->relatorioParcial != null) { if($request->relatorioParcial != null) {
$arquivo->relatorioParcial = Storage::putFileAs($pasta, $request->relatorioParcial, "RelatorioParcial.pdf"); $arquivo->relatorioParcial = Storage::putFileAs($pasta, $request->relatorioParcial, "RelatorioParcial.pdf");
//Coordenador
$userTemp = User::find($arquivo->trabalho->evento->coordenadorComissao->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $arquivo->trabalho->evento->coordenadorComissao->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 3,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Parcial'));
//Admins
$admins = Administrador::all();
foreach ($admins as $admin) {
$userTemp = User::find($admin->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $admin->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 3,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Parcial'));
}
} }
if($request->relatorioFinal != null) { if($request->relatorioFinal != null) {
$arquivo->relatorioFinal = Storage::putFileAs($pasta, $request->relatorioFinal, "RelatorioFinal.pdf"); $arquivo->relatorioFinal = Storage::putFileAs($pasta, $request->relatorioFinal, "RelatorioFinal.pdf");
//Coordenador
$userTemp = User::find($arquivo->trabalho->evento->coordenadorComissao->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $arquivo->trabalho->evento->coordenadorComissao->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 4,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Final'));
//Admins
$admins = Administrador::all();
foreach ($admins as $admin) {
$userTemp = User::find($admin->user_id);
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $admin->user_id,
'trabalho_id' => $arquivo->trabalho->id,
'lido' => false,
'tipo' => 4,
]);
$notificacao->save();
Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp,
$arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Final'));
}
} }
$arquivo->save(); $arquivo->save();
return redirect(route('planos.listar', ['id' => $request->projId])); return redirect(route('planos.listar', ['id' => $request->projId]))->with(['sucesso' => "Relatório enviado com sucesso"]);
}catch (Exception $th){ }catch (Exception $th){
} }
......
...@@ -126,9 +126,9 @@ class AvaliadorController extends Controller ...@@ -126,9 +126,9 @@ class AvaliadorController extends Controller
$statusParecer = "NAO-RECOMENDADO"; $statusParecer = "NAO-RECOMENDADO";
if( if(
$request->anexoLinkLattes=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoProjeto=='aceito' && $request->anexoLinkLattes=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoProjeto=='aceito' &&
$request->anexoConsu=='aceito' && $request->anexoPlanilha=='aceito' && $request->anexoLattesCoordenador=='aceito' && $request->anexoConsu=='aceito' && $request->anexoLattesCoordenador=='aceito' && $request->anexoPlano=='aceito' &&
$request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito'
$request->anexoPlano=='aceito'){ ){
$statusParecer = "RECOMENDADO"; $statusParecer = "RECOMENDADO";
} }
if($parecerInterno == null) { if($parecerInterno == null) {
...@@ -145,6 +145,7 @@ class AvaliadorController extends Controller ...@@ -145,6 +145,7 @@ class AvaliadorController extends Controller
'statusJustificativaAutorizacaoEtica' => $request->anexoJustificativa, 'statusJustificativaAutorizacaoEtica' => $request->anexoJustificativa,
'statusPlanoTrabalho' => $request->anexoPlano, 'statusPlanoTrabalho' => $request->anexoPlano,
'statusParecer' => $statusParecer, 'statusParecer' => $statusParecer,
'comentario' => $request->comentario,
'trabalho_id' => $request->trabalho_id, 'trabalho_id' => $request->trabalho_id,
'avaliador_id' => $request->avaliador_id, 'avaliador_id' => $request->avaliador_id,
]); ]);
...@@ -160,6 +161,7 @@ class AvaliadorController extends Controller ...@@ -160,6 +161,7 @@ class AvaliadorController extends Controller
$parecerInterno->statusAnexoAtuorizacaoComiteEtica = $request->anexoComiteEtica; $parecerInterno->statusAnexoAtuorizacaoComiteEtica = $request->anexoComiteEtica;
$parecerInterno->statusJustificativaAutorizacaoEtica = $request->anexoJustificativa; $parecerInterno->statusJustificativaAutorizacaoEtica = $request->anexoJustificativa;
$parecerInterno->statusPlanoTrabalho = $request->anexoPlano; $parecerInterno->statusPlanoTrabalho = $request->anexoPlano;
$parecerInterno->comentario = $request->comentario;
$parecerInterno->statusParecer = $statusParecer; $parecerInterno->statusParecer = $statusParecer;
$parecerInterno->update(); $parecerInterno->update();
} }
......
<?php
namespace App\Http\Controllers;
use App\Arquivo;
use App\documentacaoComplementar;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
class DocumentacaoComplementarController extends Controller
{
public function criar(Request $request)
{
if($request->docId != null){
$docComp = DocumentacaoComplementar::find($request->docId);
}else{
$docComp = new DocumentacaoComplementar;
$docComp->save();
}
$pasta = 'docComplementar/' . $docComp->id;
$docComp->termoCompromisso = Storage::putFileAs($pasta, $request->termoCompromisso, "Termo De Compromisso.pdf");
$docComp->comprovanteMatricula = Storage::putFileAs($pasta, $request->comprovanteMatricula, "Comprovante De Matricula.pdf");
$docComp->pdfLattes = Storage::putFileAs($pasta, $request->pdfLattes, "Lattes.pdf");
$docComp->termoCompromisso = Storage::putFileAs($pasta, $request->termoCompromisso, "TermoDeCompromisso.pdf");
$docComp->participante_id = $request->partcipanteId;
$docComp->linkLattes = $request->linkLattes;
$docComp->update();
return redirect()->back()->with(['sucesso' => "Documentação complementar enviada com sucesso"]);
}
}
...@@ -32,18 +32,18 @@ class EventoController extends Controller ...@@ -32,18 +32,18 @@ class EventoController extends Controller
public function index(Request $request) public function index(Request $request)
{ {
if($request->buscar == null){ if($request->buscar == null){
$eventos = Evento::all()->sortBy('nome'); $eventos = Evento::all()->sortBy('nome');
// $comissaoEvento = ComissaoEvento::all(); // $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get(); // $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
$hoje = Carbon::today('America/Recife'); $hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString(); $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{ }else{
$eventos = Evento::where('nome','ilike','%'.$request->buscar.'%')->get(); $eventos = Evento::where('nome','ilike','%'.$request->buscar.'%')->get();
$hoje = Carbon::today('America/Recife'); $hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString(); $hoje = $hoje->toDateString();
return view('coordenador.home',['eventos'=>$eventos, 'hoje'=>$hoje, 'palavra'=>$request->buscar, 'flag'=>'true']); return view('coordenador.home',['eventos'=>$eventos, 'hoje'=>$hoje, 'palavra'=>$request->buscar, 'flag'=>'true']);
} }
} }
...@@ -90,9 +90,9 @@ class EventoController extends Controller ...@@ -90,9 +90,9 @@ class EventoController extends Controller
//dd($user_id); //dd($user_id);
if(isset($request->modeloDocumento)){ if(isset($request->modeloDocumento)){
$request->validate([ $request->validate([
'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->file('modeloDocumento'))], 'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->file('modeloDocumento'))],
]); ]);
} }
//--Salvando os anexos da submissão temporariamente //--Salvando os anexos da submissão temporariamente
...@@ -100,62 +100,68 @@ class EventoController extends Controller ...@@ -100,62 +100,68 @@ class EventoController extends Controller
// validar datas nulas antes, pois pode gerar um bug // validar datas nulas antes, pois pode gerar um bug
if( if(
$request->inicioSubmissao == null || $request->inicioSubmissao == null ||
$request->fimSubmissao == null || $request->fimSubmissao == null ||
$request->inicioRevisao == null || $request->inicioRevisao == null ||
$request->fimRevisao == null || $request->fimRevisao == null ||
$request->resultado == null $request->resultado == null
){ ){
$validatedData = $request->validate([ $validatedData = $request->validate([
'nome' => ['required', 'string'], 'nome' => ['required', 'string'],
'descricao' => ['required', 'string'], 'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'], 'fimRevisao' => ['required', 'date'],
'inicio_recurso' => ['required', 'date'], 'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'], 'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'], 'resultado_final' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'], 'resultado_preliminar'=> ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'], 'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'], 'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => [], '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 // validacao normal
//after = depois //after = depois
//before = antes //before = antes
$validatedData = $request->validate([ $validatedData = $request->validate([
'nome' => ['required', 'string'], 'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'], 'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
#---------------------------------------------- #----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:yesterday'], 'inicioRevisao' => ['required', 'date', 'after:yesterday'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'], 'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'], 'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'], 'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'], 'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,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([ //$evento = Evento::create([
...@@ -197,21 +203,41 @@ class EventoController extends Controller ...@@ -197,21 +203,41 @@ class EventoController extends Controller
//-- Salvando anexos finais //-- Salvando anexos finais
if(isset($request->pdfEdital)){ if(isset($request->pdfEdital)){
$pdfEdital = $request->pdfEdital; $pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/'; $path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf"; $nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome); Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome; $evento->pdfEdital = $path . $nome;
} }
if(isset($request->modeloDocumento)){ if(isset($request->modeloDocumento)){
$modeloDocumento = $request->modeloDocumento; $modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension(); $extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/'; $path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome); 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(); $evento->update();
...@@ -226,31 +252,39 @@ class EventoController extends Controller ...@@ -226,31 +252,39 @@ class EventoController extends Controller
public function armazenarAnexosTemp(Request $request){ public function armazenarAnexosTemp(Request $request){
//---Anexos do Projeto //---Anexos do Projeto
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
if($eventoTemp == null){ if($eventoTemp == null){
$eventoTemp = new Evento(); $eventoTemp = new Evento();
$eventoTemp->criador_id = Auth::user()->id; $eventoTemp->criador_id = Auth::user()->id;
$eventoTemp->anexosStatus = 'temporario'; $eventoTemp->anexosStatus = 'temporario';
$eventoTemp->save(); $eventoTemp->save();
} }
if(!(is_null($request->pdfEdital)) ) { if(!(is_null($request->pdfEdital)) ) {
$pasta = 'pdfEdital/' . $eventoTemp->id; $pasta = 'pdfEdital/' . $eventoTemp->id;
$eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf'); $eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf');
} }
if (!(is_null($request->modeloDocumento))) { if (!(is_null($request->modeloDocumento))) {
$extension = $request->modeloDocumento->extension(); $extension = $request->modeloDocumento->extension();
$path = 'modeloDocumento/' . $eventoTemp->id; $path = 'modeloDocumento/' . $eventoTemp->id;
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); $eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
} }
if(!(is_null($request->pdfFormAvalExterno)) ) {
$eventoTemp->update(); $pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
$eventoTemp->formAvaliacaoExterno = Storage::putFileAs($pasta, $request->pdfFormAvalExterno, 'formulario de avaliação externo.pdf');
return $eventoTemp; }
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 ...@@ -264,20 +298,20 @@ class EventoController extends Controller
$evento = Evento::find($id); $evento = Evento::find($id);
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
if($proponente != null){ if($proponente != null){
$hasTrabalho = false; $hasTrabalho = false;
$hasFile = false; $hasFile = false;
$trabalhos = $proponente->trabalhos()->where('evento_id', $evento->id )->get(); $trabalhos = $proponente->trabalhos()->where('evento_id', $evento->id )->get();
$trabalhosCount = $proponente->trabalhos()->where('evento_id', $evento->id )->count(); $trabalhosCount = $proponente->trabalhos()->where('evento_id', $evento->id )->count();
if($trabalhosCount != 0){ if($trabalhosCount != 0){
$hasTrabalho = true; $hasTrabalho = true;
$hasFile = true; $hasFile = true;
} }
}else{ }else{
$hasTrabalho = false; $hasTrabalho = false;
$hasFile = false; $hasFile = false;
$trabalhos = 0; $trabalhos = 0;
$trabalhosCount = 0; $trabalhosCount = 0;
} }
$trabalhosId = Trabalho::where('evento_id', $evento->id)->select('id')->get(); $trabalhosId = Trabalho::where('evento_id', $evento->id)->select('id')->get();
...@@ -285,14 +319,14 @@ class EventoController extends Controller ...@@ -285,14 +319,14 @@ class EventoController extends Controller
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
// dd(false); // dd(false);
return view('evento.visualizarEvento', [ return view('evento.visualizarEvento', [
'evento' => $evento, 'evento' => $evento,
'trabalhos' => $trabalhos, 'trabalhos' => $trabalhos,
// 'trabalhosCoautor' => $trabalhosCoautor, // 'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho, 'hasTrabalho' => $hasTrabalho,
// 'hasTrabalhoCoautor' => $hasTrabalhoCoautor, // 'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile, 'hasFile' => $hasFile,
'mytime' => $mytime 'mytime' => $mytime
]); ]);
} }
public function showNaoLogado($id) public function showNaoLogado($id)
...@@ -307,14 +341,14 @@ class EventoController extends Controller ...@@ -307,14 +341,14 @@ class EventoController extends Controller
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
// dd(false); // dd(false);
return view('evento.visualizarEvento', [ return view('evento.visualizarEvento', [
'evento' => $evento, 'evento' => $evento,
'trabalhos' => $trabalhos, 'trabalhos' => $trabalhos,
'trabalhosCoautor' => $trabalhosCoautor, 'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho, 'hasTrabalho' => $hasTrabalho,
'hasTrabalhoCoautor' => $hasTrabalhoCoautor, 'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile, 'hasFile' => $hasFile,
'mytime' => $mytime 'mytime' => $mytime
]); ]);
} }
/** /**
...@@ -332,9 +366,9 @@ class EventoController extends Controller ...@@ -332,9 +366,9 @@ class EventoController extends Controller
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
return view('evento.editarEvento',['evento'=>$evento, return view('evento.editarEvento',['evento'=>$evento,
'coordenadores'=>$coordenadors, 'coordenadores'=>$coordenadors,
'naturezas'=>$naturezas, 'naturezas'=>$naturezas,
'ontem'=>$yesterday]); 'ontem'=>$yesterday]);
} }
/** /**
...@@ -351,55 +385,59 @@ class EventoController extends Controller ...@@ -351,55 +385,59 @@ class EventoController extends Controller
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
if( if(
$request->inicioSubmissao == null || $request->inicioSubmissao == null ||
$request->fimSubmissao == null || $request->fimSubmissao == null ||
$request->inicioRevisao == null || $request->inicioRevisao == null ||
$request->fimRevisao == null || $request->fimRevisao == null ||
$request->resultado == 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'], 'nome' => ['required', 'string'],
'descricao' => ['required', 'string'], 'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date'], 'fimRevisao' => ['required', 'date', 'after:inicioRevisao'],
'resultado_preliminar'=> ['required', 'date'], 'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date'], 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date'], 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date'], 'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date'], 'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date'], 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]); 'pdfFormAvalExterno' => ['file', 'mimes:pdf', 'max:2048'],
} 'pdfFormAvalInterno' => ['file', 'mimes:pdf', 'max:2048'],
$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'],
]); ]);
$evento->nome = $request->nome; $evento->nome = $request->nome;
...@@ -422,19 +460,39 @@ class EventoController extends Controller ...@@ -422,19 +460,39 @@ class EventoController extends Controller
$evento->coordenadorId = $request->coordenador_id; $evento->coordenadorId = $request->coordenador_id;
$evento->consu = $request->has('consu'); $evento->consu = $request->has('consu');
if($request->pdfEdital != null){ if($request->pdfEdital != null){
$pdfEdital = $request->pdfEdital; $pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/'; $path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf"; $nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome); Storage::putFileAs($path, $pdfEdital, $nome);
} }
if($request->modeloDocumento != null){ if($request->modeloDocumento != null){
$modeloDocumento = $request->modeloDocumento; $modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension(); $extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/'; $path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome); Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome; $evento->modeloDocumento = $path . $nome;
}
if(isset($request->pdfFormAvalInterno)){
$pdfFormAvalInterno = $request->pdfFormAvalInterno;
$extension = $pdfFormAvalInterno->extension();
$path = 'pdfFormAvalInterno/' . $evento->id . '/';
$nome = "formulario de avaliação interno" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalInterno, $nome);
$evento->formAvaliacaoInterno = $path . $nome;
}
if(isset($request->pdfFormAvalExterno)){
$pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/';
$nome = "formulario de avaliação externo" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalExterno, $nome);
$evento->formAvaliacaoExterno = $path . $nome;
} }
$evento->update(); $evento->update();
...@@ -464,17 +522,17 @@ class EventoController extends Controller ...@@ -464,17 +522,17 @@ class EventoController extends Controller
// $areas->delete(); // $areas->delete();
// } // }
if(isset($atividades)){ if(isset($atividades)){
$atividades->delete(); $atividades->delete();
} }
if(isset($comissao)){ if(isset($comissao)){
$comissao->delete(); $comissao->delete();
} }
if(isset($revisores)){ if(isset($revisores)){
$revisores->delete(); $revisores->delete();
} }
if(isset($trabalhos)){ if(isset($trabalhos)){
$trabalhos->delete(); $trabalhos->delete();
Trabalho::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]); Trabalho::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]);
} }
Storage::deleteDirectory('pdfEdital/' . $evento->id ); Storage::deleteDirectory('pdfEdital/' . $evento->id );
...@@ -493,7 +551,7 @@ class EventoController extends Controller ...@@ -493,7 +551,7 @@ class EventoController extends Controller
// dd($ComissaoEventos); // dd($ComissaoEventos);
$ids = []; $ids = [];
foreach($ComissaoEvento as $ce){ foreach($ComissaoEvento as $ce){
array_push($ids,$ce->userId); array_push($ids,$ce->userId);
} }
$users = User::find($ids); $users = User::find($ids);
...@@ -515,128 +573,128 @@ class EventoController extends Controller ...@@ -515,128 +573,128 @@ class EventoController extends Controller
$revs = Revisor::where('eventoId', $evento->id)->with('user')->get(); $revs = Revisor::where('eventoId', $evento->id)->with('user')->get();
return view('coordenador.detalhesEvento', [ return view('coordenador.detalhesEvento', [
'evento' => $evento, 'evento' => $evento,
'areas' => $areas, 'areas' => $areas,
'revisores' => $revisores, 'revisores' => $revisores,
'revs' => $revs, 'revs' => $revs,
'users' => $users, 'users' => $users,
'modalidades' => $modalidades, 'modalidades' => $modalidades,
'areaModalidades' => $areaModalidades, 'areaModalidades' => $areaModalidades,
'trabalhos' => $trabalhos, 'trabalhos' => $trabalhos,
'trabalhosEnviados' => $trabalhosEnviados, 'trabalhosEnviados' => $trabalhosEnviados,
'trabalhosAvaliados' => $trabalhosAvaliados, 'trabalhosAvaliados' => $trabalhosAvaliados,
'trabalhosPendentes' => $trabalhosPendentes, 'trabalhosPendentes' => $trabalhosPendentes,
'numeroRevisores' => $numeroRevisores, 'numeroRevisores' => $numeroRevisores,
'numeroComissao' => $numeroComissao 'numeroComissao' => $numeroComissao
]); ]);
} }
public function numTrabalhos(Request $request){ public function numTrabalhos(Request $request){
$evento = Evento::find($request->eventoId); $evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento); $this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([ $validatedData = $request->validate([
'eventoId' => ['required', 'integer'], 'eventoId' => ['required', 'integer'],
'trabalhosPorAutor' => ['required', 'integer'], 'trabalhosPorAutor' => ['required', 'integer'],
'numCoautor' => ['required', 'integer'] 'numCoautor' => ['required', 'integer']
]); ]);
$evento->numMaxTrabalhos = $request->trabalhosPorAutor; $evento->numMaxTrabalhos = $request->trabalhosPorAutor;
$evento->numMaxCoautores = $request->numCoautor; $evento->numMaxCoautores = $request->numCoautor;
$evento->save(); $evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]); return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
} }
public function setResumo(Request $request){ public function setResumo(Request $request){
$evento = Evento::find($request->eventoId); $evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento); $this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([ $validatedData = $request->validate([
'eventoId' => ['required', 'integer'], 'eventoId' => ['required', 'integer'],
'hasResumo' => ['required', 'string'] 'hasResumo' => ['required', 'string']
]); ]);
if($request->hasResumo == 'true'){ if($request->hasResumo == 'true'){
$evento->hasResumo = true; $evento->hasResumo = true;
} }
else{ else{
$evento->hasResumo = false; $evento->hasResumo = false;
} }
$evento->save(); $evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]); return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
} }
public function setFotoEvento(Request $request){ public function setFotoEvento(Request $request){
$evento = Evento::find($request->eventoId); $evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento); $this->authorize('isCoordenador', $evento);
// dd($request); // dd($request);
$validatedData = $request->validate([ $validatedData = $request->validate([
'eventoId' => ['required', 'integer'], 'eventoId' => ['required', 'integer'],
'fotoEvento' => ['required', 'file', 'mimes:png'] 'fotoEvento' => ['required', 'file', 'mimes:png']
]); ]);
$file = $request->fotoEvento; $file = $request->fotoEvento;
$path = 'public/eventos/' . $evento->id; $path = 'public/eventos/' . $evento->id;
$nome = '/logo.png'; $nome = '/logo.png';
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$evento->fotoEvento = $path . $nome; $evento->fotoEvento = $path . $nome;
$evento->save(); $evento->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]); return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
} }
public function areaParticipante() { public function areaParticipante() {
$eventos = Evento::all(); $eventos = Evento::all();
return view('user.areaParticipante',['eventos'=>$eventos]); return view('user.areaParticipante',['eventos'=>$eventos]);
} }
public function listComissao() { public function listComissao() {
$comissaoEvento = ComissaoEvento::where('userId', Auth::user()->id)->get(); $comissaoEvento = ComissaoEvento::where('userId', Auth::user()->id)->get();
$eventos = Evento::all(); $eventos = Evento::all();
$evnts = []; $evnts = [];
foreach ($comissaoEvento as $comissao) { foreach ($comissaoEvento as $comissao) {
foreach ($eventos as $evento) { foreach ($eventos as $evento) {
if($comissao->eventosId == $evento->id){ if($comissao->eventosId == $evento->id){
array_push($evnts,$evento); array_push($evnts,$evento);
} }
}
} }
}
return view('user.comissoes',['eventos'=>$evnts]); return view('user.comissoes',['eventos'=>$evnts]);
} }
public function listComissaoTrabalhos(Request $request) { public function listComissaoTrabalhos(Request $request) {
$evento = Evento::find($request->eventoId); $evento = Evento::find($request->eventoId);
$areasId = Area::where('eventoId', $evento->id)->select('id')->get(); $areasId = Area::where('eventoId', $evento->id)->select('id')->get();
$trabalhos = Trabalho::whereIn('areaId', $areasId)->orderBy('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) { public function baixarEdital($id) {
$evento = Evento::find($id); $evento = Evento::find($id);
if (Storage::disk()->exists($evento->pdfEdital)) { if (Storage::disk()->exists($evento->pdfEdital)) {
ob_end_clean(); ob_end_clean();
return Storage::download($evento->pdfEdital); return Storage::download($evento->pdfEdital);
} }
return abort(404); return abort(404);
} }
public function baixarModelos($id) { public function baixarModelos($id) {
$evento = Evento::find($id); $evento = Evento::find($id);
if (Storage::disk()->exists($evento->modeloDocumento)) { if (Storage::disk()->exists($evento->modeloDocumento)) {
ob_end_clean(); ob_end_clean();
return Storage::download($evento->modeloDocumento); return Storage::download($evento->modeloDocumento);
} }
return abort(404); return abort(404);
} }
} }
...@@ -4,6 +4,7 @@ namespace App\Http\Controllers; ...@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Notificacao; use App\Notificacao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class NotificacaoController extends Controller class NotificacaoController extends Controller
{ {
...@@ -30,7 +31,7 @@ class NotificacaoController extends Controller ...@@ -30,7 +31,7 @@ class NotificacaoController extends Controller
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request) public function store(Request $request)
...@@ -41,7 +42,7 @@ class NotificacaoController extends Controller ...@@ -41,7 +42,7 @@ class NotificacaoController extends Controller
/** /**
* Display the specified resource. * Display the specified resource.
* *
* @param \App\Notificacao $notificacao * @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function show(Notificacao $notificacao) public function show(Notificacao $notificacao)
...@@ -52,7 +53,7 @@ class NotificacaoController extends Controller ...@@ -52,7 +53,7 @@ class NotificacaoController extends Controller
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
* *
* @param \App\Notificacao $notificacao * @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function edit(Notificacao $notificacao) public function edit(Notificacao $notificacao)
...@@ -63,8 +64,8 @@ class NotificacaoController extends Controller ...@@ -63,8 +64,8 @@ class NotificacaoController extends Controller
/** /**
* Update the specified resource in storage. * Update the specified resource in storage.
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \App\Notificacao $notificacao * @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, Notificacao $notificacao) public function update(Request $request, Notificacao $notificacao)
...@@ -75,7 +76,7 @@ class NotificacaoController extends Controller ...@@ -75,7 +76,7 @@ class NotificacaoController extends Controller
/** /**
* Remove the specified resource from storage. * Remove the specified resource from storage.
* *
* @param \App\Notificacao $notificacao * @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function destroy(Notificacao $notificacao) public function destroy(Notificacao $notificacao)
...@@ -86,14 +87,46 @@ class NotificacaoController extends Controller ...@@ -86,14 +87,46 @@ class NotificacaoController extends Controller
public function listar() public function listar()
{ {
$notificacoes = Notificacao::all()->sortByDesc('created_at'); $notificacoes = Notificacao::all()->sortByDesc('created_at');
return view('notificacao.listar',['notificacoes'=>$notificacoes]); return view('notificacao.listar', ['notificacoes' => $notificacoes]);
} }
public function listarTrab() public function listarTrab()
{ {
$destinatarios = Notificacao::where('destinatario_id',Auth()->user()->id)->get(); $notificacoes = Notificacao::where('destinatario_id', Auth()->user()->id)->get()->sortByDesc('created_at');
$remetentes = Notificacao::where('remetente_id',Auth()->user()->id)->get();
$notificacoes = $destinatarios->merge($remetentes)->sortByDesc('created_at'); return view('notificacao.listar', ['notificacoes' => $notificacoes]);
return view('notificacao.listar',['notificacoes'=>$notificacoes]); }
public function ler($id)
{
$notificacao = Notificacao::find($id);
if (!$notificacao->lido) {
$notificacao->lido = true;
$notificacao->update();
}
if ($notificacao->tipo == 1) {
if ($notificacao->destinatario_id == Auth()->user()->id && Auth()->user()->tipo != 'proponente') {
return redirect()->route('admin.analisarProposta', ['id' => $notificacao->trabalho->id]);
} else {
return redirect()->route('trabalho.show', ['id' => $notificacao->trabalho->id]);
}
} elseif ($notificacao->tipo == 2) {
if ($notificacao->destinatario_id == Auth()->user()->id && Auth()->user()->tipo != 'proponente') {
return redirect()->route('admin.analisarProposta', ['id' => $notificacao->trabalho->id]);
} else {
return redirect()->route('trabalho.trocaParticipante', ['evento_id' => $notificacao->trabalho->evento->id, 'projeto_id' => $notificacao->trabalho->id]);
}
} elseif ($notificacao->tipo == 3 || $notificacao->tipo == 4) {
return redirect()->route('planos.listar', ['id' => $notificacao->trabalho->id]);
} elseif ($notificacao->tipo == 5) {
if (!is_null(Auth::user()->avaliadors->eventos->where('id', $notificacao->trabalho->evento->id)->first()->pivot->convite)
&& Auth::user()->avaliadors->eventos->where('id', $notificacao->trabalho->evento->id)->first()->pivot->convite == true) {
return redirect()->route('avaliador.visualizarTrabalho', ['evento_id' => $notificacao->trabalho->evento->id]);
} else {
return redirect()->route('avaliador.editais');
}
}
} }
} }
...@@ -92,6 +92,13 @@ class ParticipanteController extends Controller ...@@ -92,6 +92,13 @@ class ParticipanteController extends Controller
return view('administrador.listarBolsas')->with(['participantes' => $participantes, 'trabalhos' => $trabalhos]); return view('administrador.listarBolsas')->with(['participantes' => $participantes, 'trabalhos' => $trabalhos]);
} }
public function listarParticipanteProjeto(Request $request){
$trabalho = Trabalho::find($request->projeto_id);
$participantes = $trabalho->participantes;
return view('documentacaoComplementar.listar')->with(['participantes' => $participantes, 'trabalho' => $trabalho]);
}
public function alterarBolsa($id,$tipo){ public function alterarBolsa($id,$tipo){
$participante = Participante::find($id); $participante = Participante::find($id);
if($participante->tipoBolsa ==null){ if($participante->tipoBolsa ==null){
......
...@@ -42,6 +42,7 @@ use Illuminate\Support\Facades\Validator; ...@@ -42,6 +42,7 @@ use Illuminate\Support\Facades\Validator;
use App\Mail\EmailParaUsuarioNaoCadastrado; use App\Mail\EmailParaUsuarioNaoCadastrado;
use App\Mail\SolicitacaoSubstituicao; use App\Mail\SolicitacaoSubstituicao;
use App\Notifications\SubmissaoNotification; use App\Notifications\SubmissaoNotification;
use App\Notifications\SubmissaoRecebidaNotification;
use App\Substituicao; use App\Substituicao;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
...@@ -110,24 +111,25 @@ class TrabalhoController extends Controller ...@@ -110,24 +111,25 @@ class TrabalhoController extends Controller
$evento = Evento::find($request->editalId); $evento = Evento::find($request->editalId);
$coordenador = CoordenadorComissao::find($evento->coordenadorId); $coordenador = CoordenadorComissao::find($evento->coordenadorId);
//Relaciona o projeto criado com o proponente que criou o projeto //Relaciona o projeto criado com o proponente que criou o projeto
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = "trabalho"; $trabalho = "trabalho";
if($evento->inicioSubmissao > $mytime){ if ($evento->inicioSubmissao > $mytime) {
if($mytime >= $evento->fimSubmissao){ if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home'); return redirect()->route('home');
}
} }
}
//--Salvando os dados da submissão temporariamente //--Salvando os dados da submissão temporariamente
$this->armazenarInfoTemp($request, $proponente); $this->armazenarInfoTemp($request, $proponente);
return redirect()->route('projetos.edital',['id'=>$request->editalId]); return redirect()->route('projetos.edital', ['id' => $request->editalId]);
} }
//Armazena temporariamente dados da submissão, no banco de dados e no storage //Armazena temporariamente dados da submissão, no banco de dados e no storage
public function armazenarInfoTemp(Request $request, $proponente){ public function armazenarInfoTemp(Request $request, $proponente)
{
//---Dados do Projeto //---Dados do Projeto
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho') $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho')
...@@ -168,9 +170,9 @@ class TrabalhoController extends Controller ...@@ -168,9 +170,9 @@ class TrabalhoController extends Controller
$trabalho->linkGrupoPesquisa = $request->linkGrupo; $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)) ) { if(!(is_null($request->anexoDecisaoCONSU)) ) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf"); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf");
...@@ -191,13 +193,13 @@ class TrabalhoController extends Controller ...@@ -191,13 +193,13 @@ class TrabalhoController extends Controller
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $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){ public function validarAnexosRascunho(Request $request, $trabalho){
...@@ -214,122 +216,122 @@ class TrabalhoController extends Controller ...@@ -214,122 +216,122 @@ class TrabalhoController extends Controller
public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){ public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){
// Checando se é um novo trabalho ou uma edição // Checando se é um novo trabalho ou uma edição
if ($trabalho->anexoProjeto != null) { if ($trabalho->anexoProjeto != null) {
// Anexo Projeto // Anexo Projeto
if(isset($request->anexoProjeto)){ if (isset($request->anexoProjeto)) {
if(Storage::disk()->exists($trabalho->anexoProjeto)) { if (Storage::disk()->exists($trabalho->anexoProjeto)) {
Storage::delete($trabalho->anexoProjeto); Storage::delete($trabalho->anexoProjeto);
} }
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
}
//Anexo Decisão CONSU
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');
} }
}
//Autorização ou Justificativa //Anexo Decisão CONSU
if( isset($request->anexoAutorizacaoComiteEtica)){ if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if(Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { if (isset($request->anexoDecisaoCONSU)) {
Storage::delete($trabalho->anexoAutorizacaoComiteEtica); 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)){ //Autorização ou Justificativa
if(Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) { if (isset($request->anexoAutorizacaoComiteEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica); 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 //Anexo Lattes
if( isset($request->anexoLattesCoordenador)){ if (isset($request->anexoLattesCoordenador)) {
if(Storage::disk()->exists($trabalho->anexoLattesCoordenador)) { if (Storage::disk()->exists($trabalho->anexoLattesCoordenador)) {
Storage::delete($trabalho->anexoLattesCoordenador); Storage::delete($trabalho->anexoLattesCoordenador);
}
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
}
//Anexo Planilha //Anexo Planilha
if( isset($request->anexoPlanilhaPontuacao)){ if (isset($request->anexoPlanilhaPontuacao)) {
if(Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) { if (Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) {
Storage::delete($trabalho->anexoPlanilhaPontuacao); Storage::delete($trabalho->anexoPlanilhaPontuacao);
}
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
} }
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); // Anexo grupo pesquisa
} if (isset($request->anexoGrupoPesquisa)) {
if (Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) {
// Anexo grupo pesquisa Storage::delete($trabalho->anexoGrupoPesquisa);
if(isset($request->anexoGrupoPesquisa)){ }
if(Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) { $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension());
Storage::delete($trabalho->anexoGrupoPesquisa);
} }
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa.". $request->file('anexoGrupoPesquisa')->extension()); $trabalho->save();
} return $trabalho;
$trabalho->save(); }
return $trabalho;
}
// Anexo Projeto // Anexo Projeto
if(isset($request->anexoProjeto)){ if (isset($request->anexoProjeto)) {
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
} }
//Anexo Decisão CONSU //Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if( isset($request->anexoDecisaoCONSU)){ if (isset($request->anexoDecisaoCONSU)) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf'); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf');
}
} }
}
//Autorização ou Justificativa //Autorização ou Justificativa
if( isset($request->anexoAutorizacaoComiteEtica)){ if (isset($request->anexoAutorizacaoComiteEtica)) {
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null; $trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){ } elseif (isset($request->justificativaAutorizacaoEtica)) {
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null; $trabalho->anexoAutorizacaoComiteEtica = null;
}
//Anexo Lattes }
if( isset($request->anexoLattesCoordenador)){
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
}
//Anexo Planilha //Anexo Lattes
if( isset($request->anexoPlanilhaPontuacao)){ if (isset($request->anexoLattesCoordenador)) {
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
// Anexo grupo pesquisa //Anexo Planilha
if(isset($request->anexoGrupoPesquisa)){ if (isset($request->anexoPlanilhaPontuacao)) {
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa.". $request->file('anexoGrupoPesquisa')->extension()); $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) public function show($id)
{ {
// $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); // $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
// if(Auth::user()->tipo == 'administrador'){ // if(Auth::user()->tipo == 'administrador'){
// $projeto = Trabalho::find($id); // $projeto = Trabalho::find($id);
// } // }
// if(!$projeto){ // if(!$projeto){
// // $projeto = Auth::user()->coordenadorComissao->trabalho()->where('id', $id)->first(); // // $projeto = Auth::user()->coordenadorComissao->trabalho()->where('id', $id)->first();
// return back()->withErrors(['Proposta não encontrada!']); // return back()->withErrors(['Proposta não encontrada!']);
// } // }
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
...@@ -343,25 +345,25 @@ class TrabalhoController extends Controller ...@@ -343,25 +345,25 @@ class TrabalhoController extends Controller
$users = User::whereIn('id', $participantesUsersIds)->get(); $users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $arquivos = Arquivo::where('trabalhoId', $id)->get();
return view('projeto.visualizar')->with(['projeto' => $projeto, return view('projeto.visualizar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas, 'grandeAreas' => $grandeAreas,
'areas' => $areas, 'areas' => $areas,
'subAreas' => $subareas, 'subAreas' => $subareas,
'edital' => $edital, 'edital' => $edital,
'users' => $users, 'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes, 'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes, 'participantes' => $participantes,
'arquivos' => $arquivos, 'arquivos' => $arquivos,
'estados' => $this->estados, 'estados' => $this->estados,
'visualizar' => true, 'visualizar' => true,
'enum_turno' => Participante::ENUM_TURNO, 'enum_turno' => Participante::ENUM_TURNO,
]); ]);
} }
public function exportProjeto($id) public function exportProjeto($id)
{ {
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){ if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']); return back()->withErrors(['Proposta não encontrada!']);
} }
$edital = Evento::find($projeto->evento_id); $edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all(); $grandeAreas = GrandeArea::all();
...@@ -372,9 +374,9 @@ class TrabalhoController extends Controller ...@@ -372,9 +374,9 @@ class TrabalhoController extends Controller
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get(); $users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $arquivos = Arquivo::where('trabalhoId', $id)->get();
$enum_turno = Participante::ENUM_TURNO; $enum_turno = Participante::ENUM_TURNO;
view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital,$users, $funcaoParticipantes,$participantes,$arquivos,$enum_turno]); view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital, $users, $funcaoParticipantes, $participantes, $arquivos, $enum_turno]);
$pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']); $pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']);
// download PDF file with download method // download PDF file with download method
...@@ -383,180 +385,183 @@ class TrabalhoController extends Controller ...@@ -383,180 +385,183 @@ class TrabalhoController extends Controller
public function edit($id) public function edit($id)
{ {
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){ if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']); return back()->withErrors(['Proposta não encontrada!']);
} }
$edital = Evento::find($projeto->evento_id); $edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all(); $grandeAreas = GrandeArea::all();
$areas = Area::all(); $areas = Area::all();
$subareas = Subarea::all(); $subareas = Subarea::all();
$funcaoParticipantes = FuncaoParticipantes::all(); $funcaoParticipantes = FuncaoParticipantes::all();
$participantes = Participante::where('trabalho_id', $id)->get(); $participantes = Participante::where('trabalho_id', $id)->get();
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get(); $users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $arquivos = Arquivo::where('trabalhoId', $id)->get();
//dd(Participante::all()); //dd(Participante::all());
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$edital->id)->where('status', 'Rascunho') $rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $edital->id)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
return view('projeto.editar')->with(['projeto' => $projeto, return view('projeto.editar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas, 'grandeAreas' => $grandeAreas,
'areas' => $areas, 'areas' => $areas,
'subAreas' => $subareas, 'subAreas' => $subareas,
'edital' => $edital, 'edital' => $edital,
'users' => $users, 'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes, 'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes, 'participantes' => $participantes,
'arquivos' => $arquivos, 'arquivos' => $arquivos,
'enum_turno' => Participante::ENUM_TURNO, 'enum_turno' => Participante::ENUM_TURNO,
'estados' => $this->estados, 'estados' => $this->estados,
]); ]);
} }
public function destroy(Request $request) public function destroy(Request $request)
{ {
$projeto = Trabalho::find($request->id); $projeto = Trabalho::find($request->id);
//dd($trabalho); //dd($trabalho);
Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id ); Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id);
$participantes = $projeto->participantes; $participantes = $projeto->participantes;
foreach ($participantes as $participante) { foreach ($participantes as $participante) {
$plano = $participante->planoTrabalho; $plano = $participante->planoTrabalho;
if($plano) if ($plano)
$plano->delete(); $plano->delete();
$participante->delete(); $participante->delete();
} }
$projeto->delete(); $projeto->delete();
return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']); return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']);
} }
public function excluirParticipante($id){ public function excluirParticipante($id)
$participante = Participante::where('id', $id)->first(); {
//$participante = Participante::where('user_id', Auth()->user()->id) $participante = Participante::where('id', $id)->first();
// ->where('trabalho_id', $id)->first(); //$participante = Participante::where('user_id', Auth()->user()->id)
// ->where('trabalho_id', $id)->first();
//$participante->trabalhos()->detach($id); //$participante->trabalhos()->detach($id);
$participante->delete(); $participante->delete();
return redirect()->back(); return redirect()->back();
} }
public function novaVersao(Request $request){ public function novaVersao(Request $request)
$mytime = Carbon::now('America/Recife'); {
$mytime = $mytime->toDateString(); $mytime = Carbon::now('America/Recife');
$evento = Evento::find($request->eventoId); $mytime = $mytime->toDateString();
if($evento->inicioSubmissao > $mytime){ $evento = Evento::find($request->eventoId);
if($mytime >= $evento->fimSubmissao){ if ($evento->inicioSubmissao > $mytime) {
return redirect()->route('home'); if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home');
}
} }
} $validatedData = $request->validate([
$validatedData = $request->validate([ 'arquivo' => ['required', 'file', 'mimes:pdf'],
'arquivo' => ['required', 'file', 'mimes:pdf'], 'eventoId' => ['required', 'integer'],
'eventoId' => ['required', 'integer'], 'trabalhoId' => ['required', 'integer'],
'trabalhoId' => ['required', 'integer'], ]);
]);
$trabalho = Trabalho::find($request->trabalhoId); $trabalho = Trabalho::find($request->trabalhoId);
if(Auth::user()->id != $trabalho->autorId){ if (Auth::user()->id != $trabalho->autorId) {
return redirect()->route('home'); return redirect()->route('home');
} }
$arquivos = $trabalho->arquivo; $arquivos = $trabalho->arquivo;
$count = 1; $count = 1;
foreach ($arquivos as $key) { foreach ($arquivos as $key) {
$key->versaoFinal = false; $key->versaoFinal = false;
$key->save(); $key->save();
$count++; $count++;
} }
$file = $request->arquivo; $file = $request->arquivo;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id .'/'; $path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/';
$nome = $count . ".pdf"; $nome = $count . ".pdf";
Storage::putFileAs($path, $file, $nome); Storage::putFileAs($path, $file, $nome);
$arquivo = Arquivo::create([ $arquivo = Arquivo::create([
'nome' => $path . $nome, 'nome' => $path . $nome,
'trabalhoId' => $trabalho->id, 'trabalhoId' => $trabalho->id,
'versaoFinal' => true, 'versaoFinal' => true,
]); ]);
return redirect()->route('evento.visualizar',['id'=>$request->eventoId]); return redirect()->route('evento.visualizar', ['id' => $request->eventoId]);
} }
public function detalhesAjax(Request $request){ public function detalhesAjax(Request $request)
$validatedData = $request->validate([ {
'trabalhoId' => ['required', 'integer'] $validatedData = $request->validate([
]); 'trabalhoId' => ['required', 'integer']
]);
$trabalho = Trabalho::find($request->trabalhoId); $trabalho = Trabalho::find($request->trabalhoId);
$revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get(); $revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get();
$revisoresAux = []; $revisoresAux = [];
foreach ($revisores as $key) { foreach ($revisores as $key) {
if($key->revisor->user->name != null){ if ($key->revisor->user->name != null) {
array_push($revisoresAux, [ array_push($revisoresAux, [
'id' => $key->revisor->id, 'id' => $key->revisor->id,
'nomeOuEmail' => $key->revisor->user->name 'nomeOuEmail' => $key->revisor->user->name
]); ]);
} } else {
else{ array_push($revisoresAux, [
array_push($revisoresAux, [ 'id' => $key->revisor->id,
'id' => $key->revisor->id, 'nomeOuEmail' => $key->revisor->user->email
'nomeOuEmail' => $key->revisor->user->email ]);
]); }
}
}
$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;
}
} }
// $revisoresDisponeis = Revisor::where('eventoId', $trabalho->eventoId)->where('areaId', $trabalho->areaId)->get();
if($revisorNaoExiste){ $revisoresAux1 = [];
if($key->user->name != null){ foreach ($revisoresDisponeis as $key) {
array_push($revisoresAux1, [ //verificar se ja é um revisor deste trabalhos
'id' => $key->id, $revisorNaoExiste = true;
'nomeOuEmail' => $key->user->name foreach ($revisoresAux as $key1) {
]); if ($key->id == $key1['id']) {
} $revisorNaoExiste = false;
else{ }
array_push($revisoresAux1, [ }
'id' => $key->id, //
'nomeOuEmail' => $key->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
]);
}
}
} }
} return response()->json([
return response()->json([ 'titulo' => $trabalho->titulo,
'titulo' => $trabalho->titulo, 'resumo' => $trabalho->resumo,
'resumo' => $trabalho->resumo, 'revisores' => $revisoresAux,
'revisores' => $revisoresAux, 'revisoresDisponiveis' => $revisoresAux1
'revisoresDisponiveis' => $revisoresAux1 ], 200);
], 200);
} }
public function atribuirAvaliadorTrabalho(Request $request){
$request->trabalho_id; public function atribuirAvaliadorTrabalho(Request $request)
$trabalho = Trabalho::find($request->trabalho_id); {
$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); $trabalho = Trabalho::find($request->trabalho_id);
...@@ -568,1101 +573,1144 @@ class TrabalhoController extends Controller ...@@ -568,1101 +573,1144 @@ class TrabalhoController extends Controller
foreach ($avaliadores as $key => $avaliador) { foreach ($avaliadores as $key => $avaliador) {
$user = $avaliador->user; $user = $avaliador->user;
$subject = "Trabalho atribuido"; $subject = "Trabalho atribuido";
Mail::to($user->email) Mail::to($user->email)
->send(new EventoCriado($user, $subject)); ->send(new EventoCriado($user, $subject));
} }
return view('coordenadorComissao.detalhesEdital', ['evento'=> $trabalho->evento ]); return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]);
} }
public function projetosDoEdital($id) { public function projetosDoEdital($id)
$edital = Evento::find($id); {
$projetos = Trabalho::where('evento_id', '=', $id)->get(); $edital = Evento::find($id);
$hoje = Carbon::today('America/Recife'); $projetos = Trabalho::where('evento_id', '=', $id)->get();
$hoje = $hoje->toDateString(); $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) { public function baixarAnexoProjeto($id)
$projeto = Trabalho::find($id); {
//dd($projeto); $projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoProjeto)) { //dd($projeto);
ob_end_clean(); if (Storage::disk()->exists($projeto->anexoProjeto)) {
return Storage::download($projeto->anexoProjeto); ob_end_clean();
} return Storage::download($projeto->anexoProjeto);
return abort(404); }
return abort(404);
} }
public function baixarAnexoGrupoPesquisa($id) {
$projeto = Trabalho::find($id); public function baixarAnexoGrupoPesquisa($id)
if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
return Storage::download($projeto->anexoGrupoPesquisa); if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) {
} ob_end_clean();
return abort(404); return Storage::download($projeto->anexoGrupoPesquisa);
}
return abort(404);
} }
public function baixarAnexoConsu($id) { public function baixarAnexoConsu($id)
$projeto = Trabalho::find($id); {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) { if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) {
ob_end_clean(); ob_end_clean();
return Storage::download($projeto->anexoDecisaoCONSU); return Storage::download($projeto->anexoDecisaoCONSU);
} }
return abort(404); return abort(404);
} }
public function baixarAnexoComite($id) { public function baixarAnexoComite($id)
$projeto = Trabalho::find($id); {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) { if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) {
ob_end_clean(); ob_end_clean();
return Storage::download($projeto->anexoAutorizacaoComiteEtica); return Storage::download($projeto->anexoAutorizacaoComiteEtica);
} }
return abort(404); return abort(404);
} }
public function baixarAnexoLattes($id) { public function baixarAnexoLattes($id)
$projeto = Trabalho::find($id); {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) { if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) {
ob_end_clean(); ob_end_clean();
return Storage::download($projeto->anexoLattesCoordenador); return Storage::download($projeto->anexoLattesCoordenador);
} }
return abort(404); return abort(404);
} }
public function baixarAnexoPlanilha($id) { public function baixarAnexoPlanilha($id)
$projeto = Trabalho::find($id); {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) { if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) {
ob_end_clean(); ob_end_clean();
$file = $projeto->anexoPlanilhaPontuacao; $file = $projeto->anexoPlanilhaPontuacao;
$ext = explode(".", $file); $ext = explode(".", $file);
switch ($ext[1]) { switch ($ext[1]) {
case 'xlsx': case 'xlsx':
$hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; $hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
break; break;
case 'xls': case 'xls':
$hearder = 'application/vnd.ms-excel'; $hearder = 'application/vnd.ms-excel';
break; break;
case 'ods': case 'ods':
$hearder = 'application/vnd.oasis.opendocument.spreadsheet'; $hearder = 'application/vnd.oasis.opendocument.spreadsheet';
break; break;
default: default:
$hearder = 'application/vnd.ms-excel'; $hearder = 'application/vnd.ms-excel';
break; break;
} }
$headers = array(
"Content-type: {$hearder}",
);
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}",$headers); $headers = array(
} "Content-type: {$hearder}",
return abort(404); );
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers);
}
return abort(404);
} }
public function baixarAnexoJustificativa($id) { public function baixarAnexoJustificativa($id)
$projeto = Trabalho::find($id); {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) { if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) {
ob_end_clean(); ob_end_clean();
return Storage::download($projeto->justificativaAutorizacaoEtica); return Storage::download($projeto->justificativaAutorizacaoEtica);
} }
return abort(404); return abort(404);
} }
public function baixarAnexoTemp($eventoId, $nomeAnexo) { public function baixarAnexoTemp($eventoId, $nomeAnexo)
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); {
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$eventoId)->where('status', 'Rascunho') $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($trabalho->$nomeAnexo)) { if (Storage::disk()->exists($trabalho->$nomeAnexo)) {
ob_end_clean(); ob_end_clean();
return Storage::download($trabalho->$nomeAnexo); return Storage::download($trabalho->$nomeAnexo);
} }
return abort(404); return abort(404);
} }
public function baixarEventoTemp($nomeAnexo){ public function baixarEventoTemp($nomeAnexo)
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') {
->orderByDesc('updated_at')->first(); $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) { if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) {
ob_end_clean(); ob_end_clean();
return Storage::download($eventoTemp->$nomeAnexo); return Storage::download($eventoTemp->$nomeAnexo);
} }
return abort(404); return abort(404);
} }
public function update(UpdateTrabalho $request, $id) 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"){ try {
$data['curso'] = $request->curso[$part]; if (!$request->has('rascunho')) {
}else{ $request->merge([
$data['curso'] = $request->outrocurso[$part]; '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]; DB::beginTransaction();
$data['periodo_atual'] = $request->periodo_atual[$part]; if (!$trabalho) {
$data['ordem_prioridade'] = $request->ordem_prioridade[$part]; return back()->withErrors(['Proposta não encontrada']);
$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();
}
}
}
}
$trabalho->update($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
DB::commit(); 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'justificativaAutorizacaoEtica', 'anexoAutorizacaoComiteEtica'
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()]);
}
}
]));
$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 { } else {
if (!$request->has('rascunho') ) { $idExcluido = [];
$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];
} }
$data['total_periodos'] = $request->total_periodos[$part]; foreach ($request->participante_id as $key => $value) {
if ($request->marcado != null && array_search($key, $request->marcado) === false) {
if($request->curso[$part] != "Outro"){ if ($value !== null)
$data['curso'] = $request->curso[$part]; array_push($idExcluido, $value);
}else{ }
$data['curso'] = $request->outrocurso[$part];
} }
$data['turno'] = $request->turno[$part]; foreach ($idExcluido as $key => $value) {
$data['periodo_atual'] = $request->periodo_atual[$part]; $trabalho->participantes()->find($value)->delete();
$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();
} }
$trabalho->refresh();
} if ($request->has('marcado')) {
} foreach ($request->marcado as $key => $part) {
$notificacao = App\Notificacao::create([ $part = intval($part);
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id, $passwordTemporario = Str::random(8);
'trabalho_id' => $trabalho->id, $data['name'] = $request->name[$part];
'lido' => false, $data['email'] = $request->email[$part];
'tipo' => 1, $data['password'] = bcrypt($passwordTemporario);
]); $data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$notificacao->save(); $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; DB::commit();
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); if (!$request->has('rascunho')) {
$trabalho->save(); Notification::send(Auth::user(), new SubmissaoNotification($id));
} else {
DB::commit(); }
if (!$request->has('rascunho') ) { return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']);
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!']);
} 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) { public function salvar(StoreTrabalho $request)
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));
try {
if (!$request->has('rascunho')) {
$request->merge([
'status' => 'submetido'
]);
} }
$evento = Evento::find($request->editalId);
if($request->nomePlanoTrabalho[$key] != null){ $request->merge([
$usuario = User::where('email', $request->emailParticipante[$key])->first(); 'coordenador_id' => $evento->coordenadorComissao->id
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); ]);
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; DB::beginTransaction();
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $trabalho = Auth::user()->proponentes->trabalhos()
Storage::putFileAs($path, $file, $nome); ->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
$agora = now(); 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
$arquivo = new Arquivo(); 'justificativaAutorizacaoEtica'
$arquivo->titulo = $request->nomePlanoTrabalho[$key]; ]));
$arquivo->nome = $path . $nome; if ($request->has('marcado')) {
$arquivo->trabalhoId = $projeto->id; foreach ($request->marcado as $key => $part) {
$arquivo->data = $agora; $part = intval($part);
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true; $passwordTemporario = Str::random(8);
$arquivo->save(); $data['name'] = $request->name[$part];
// dd($arquivo); $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) { $evento->trabalhos()->save($trabalho);
// Removo dos cantidatos excluidos
$participante = Participante::find($id); $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$participantesPermanecem->push($participante); $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$usuario = $participante->user; $trabalho->save();
$endereco = $usuario->endereco;
DB::commit();
$usuario->usuarioTemp = false; if (!$request->has('rascunho')) {
$usuario->name = $request->nomeParticipante[$key]; //Notificações
$usuario->tipo = 'participante'; //Coordenador
$usuario->instituicao = $request->universidade[$key]; $userTemp = User::find($evento->coordenadorComissao->user_id);
$usuario->cpf = $request->cpf[$key]; $notificacao = App\Notificacao::create([
$usuario->celular = $request->celular[$key]; 'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
$usuario->update(); 'trabalho_id' => $trabalho->id,
'lido' => false,
$endereco->rua = $request->rua[$key]; 'tipo' => 1,
$endereco->numero = $request->numero[$key]; ]);
$endereco->bairro = $request->bairro[$key]; $notificacao->save();
$endereco->cidade = $request->cidade[$key]; Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$evento->nome,$userTemp));
$endereco->uf = $request->uf[$key]; //Proponente
$endereco->cep = $request->cep[$key]; $notificacao = App\Notificacao::create([
$endereco->complemento = $request->complemento[$key]; 'remetente_id' => Auth::user()->id,
$endereco->update(); 'destinatario_id' => Auth::user()->id,
'trabalho_id' => $trabalho->id,
$participante->rg = $request->rg[$key]; 'lido' => false,
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; 'tipo' => 1,
$participante->curso = $request->curso[$key]; ]);
$participante->turno = $request->turno[$key]; $notificacao->save();
$participante->ordem_prioridade = $request->ordem_prioridade[$key]; Notification::send(Auth::user(), new SubmissaoNotification($trabalho->id));
$participante->periodo_atual = $request->periodo_atual[$key]; //Admins
$participante->total_periodos = $request->total_periodos[$key]; $admins = App\Administrador::all();
$participante->media_do_curso = $request->media_geral_curso[$key]; foreach ($admins as $admin) {
$participante->update(); $userTemp = User::find($admin->user_id);
$notificacao = App\Notificacao::create([
if($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null){ 'remetente_id' => Auth::user()->id,
'destinatario_id' => $admin->user_id,
$planoAtual = $participante->planoTrabalho; 'trabalho_id' => $trabalho->id,
if(Storage::disk()->exists($planoAtual->nome)) { 'lido' => false,
Storage::delete($planoAtual->nome); 'tipo' => 1,
} ]);
$planoAtual->delete(); $notificacao->save();
Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$evento->nome,$userTemp));
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf"; }
$file = $request->anexoPlanoTrabalho[$key];
Storage::putFileAs($path, $file, $nome);
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']);
$agora = now(); } else {
$arquivo = new Arquivo(); return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']);
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $id;
$arquivo->versaoFinal = true;
$arquivo->save();
} }
} } catch (\Throwable $th) {
} DB::rollback();
// Excluidos return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
$participantesExcluidos = $participantes->diff($participantesPermanecem);
foreach ($participantesExcluidos as $participante) {
$plano = $participante->planoTrabalho;
if($plano)
$plano->delete();
$participante->delete();
} }
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(); public function atribuirDados(Request $request, $edital, Trabalho $projeto = null)
$usuario->email = $email; {
$usuario->password = bcrypt($passwordTemporario); if ($projeto == null) {
$usuario->usuarioTemp = false; $projeto = new Trabalho();
$usuario->name = $request->nomeParticipante[$key]; }
$usuario->tipo = 'participante';
$usuario->instituicao = $request->universidade[$key]; $proponente = User::find(auth()->user()->id)->proponentes;
$usuario->cpf = $request->cpf[$key]; $hoje = now();
$usuario->celular = $request->celular[$key];
$projeto->titulo = $request->nomeProjeto;
$endereco = new Endereco(); $projeto->coordenador_id = $edital->coordenadorComissao->id;
$endereco->rua = $request->rua[$key]; $projeto->grande_area_id = $request->grandeArea;
$endereco->numero = $request->numero[$key]; $projeto->area_id = $request->area;
$endereco->bairro = $request->bairro[$key]; $projeto->sub_area_id = $request->subArea;
$endereco->cidade = $request->cidade[$key]; $projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha;
$endereco->uf = $request->uf[$key]; $projeto->linkGrupoPesquisa = $request->linkGrupo;
$endereco->cep = $request->cep[$key]; $projeto->linkLattesEstudante = $request->linkLattesEstudante;
$endereco->complemento = $request->complemento[$key]; $projeto->data = $hoje;
$endereco->save(); $projeto->evento_id = $request->editalId;
$projeto->status = 'submetido';
$usuario->enderecoId = $endereco->id; $projeto->proponente_id = $proponente->id;
$usuario->save(); // Salvando anexos no storage
$projeto->save();
$participante->user_id = $usuario->id; $pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key]; $projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital);
$participante->confirmacao_convite = true;
$participante->rg = $request->rg[$key]; return $projeto;
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; }
$participante->curso = $request->curso[$key];
$participante->turno = $request->turno[$key]; public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false)
$participante->ordem_prioridade = $request->ordem_prioridade[$key]; {
$participante->periodo_atual = $request->periodo_atual[$key]; if ($edicao) {
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key]; $participantes = $projeto->participantes;
$participante->save(); $participantesPermanecem = collect();
// dd($request->all());
$usuario = User::where('email', $email)->first(); foreach ($request->participante_id as $key => $id) {
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); // Novo participante
if ($id == 0 || $id == null) {
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $userParticipante = User::where('email', $request->emailParticipante[$key])->first();
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $participante = new Participante();
Storage::putFileAs($path, $file, $nome);
if ($userParticipante == null) {
$agora = now(); $passwordTemporario = Str::random(8);
$arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key]; $usuario = new User();
$arquivo->nome = $path . $nome; $usuario->email = $request->emailParticipante[$key];
$arquivo->trabalhoId = $projeto->id; $usuario->password = bcrypt($passwordTemporario);
$arquivo->data = $agora; $usuario->usuarioTemp = false;
$arquivo->participanteId = $participante->id; $usuario->name = $request->nomeParticipante[$key];
$arquivo->versaoFinal = true; $usuario->tipo = 'participante';
$arquivo->save(); $usuario->instituicao = $request->universidade[$key];
$subject = "Participante de Projeto"; $usuario->cpf = $request->cpf[$key];
Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject)); $usuario->celular = $request->celular[$key];
} else {
$endereco = new Endereco();
$participante->user_id = $userParticipante->id; $endereco->rua = $request->rua[$key];
$participante->trabalho_id = $projeto->id; $endereco->numero = $request->numero[$key];
$participante->funcao_participante_id = $request->funcaoParticipante[$key]; $endereco->bairro = $request->bairro[$key];
$participante->confirmacao_convite = true; $endereco->cidade = $request->cidade[$key];
$participante->rg = $request->rg[$key]; $endereco->uf = $request->uf[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; $endereco->cep = $request->cep[$key];
$participante->curso = $request->curso[$key]; $endereco->complemento = $request->complemento[$key];
$participante->turno = $request->turno[$key]; $endereco->save();
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key]; $usuario->enderecoId = $endereco->id;
$participante->total_periodos = $request->total_periodos[$key];
$participante->media_do_curso = $request->media_geral_curso[$key]; $usuario->save();
$participante->save();
$participante->user_id = $usuario->id;
$participante->trabalho_id = $projeto->id;
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
if ($request->anexoPlanoTrabalho[$key]) { $participante->confirmacao_convite = true;
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $participante->rg = $request->rg[$key];
$nome = $request->nomePlanoTrabalho[$key] .".pdf"; $participante->data_de_nascimento = $request->data_de_nascimento[$key];
$file = $request->anexoPlanoTrabalho[$key]; $participante->curso = $request->curso[$key];
Storage::putFileAs($path, $file, $nome); $participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$agora = now(); $participante->periodo_atual = $request->periodo_atual[$key];
$arquivo = new Arquivo(); $participante->total_periodos = $request->total_periodos[$key];
$arquivo->titulo = $request->nomePlanoTrabalho[$key]; $participante->media_do_curso = $request->media_geral_curso[$key];
$arquivo->nome = $path . $nome; $participante->save();
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id; $subject = "Participante de Projeto";
$arquivo->versaoFinal = true; Mail::to($request->emailParticipante[$key])->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject));
$arquivo->save(); } 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"; return true;
Mail::to($email) }
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); if ($request->emailParticipante != null) {
foreach ($request->emailParticipante as $key => $email) {
} $userParticipante = User::where('email', $email)->first();
// if($request->nomePlanoTrabalho[$key] != null){ $participante = new Participante();
// $usuario = User::where('email', $email)->first();
// $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); if ($userParticipante == null) {
$passwordTemporario = Str::random(8);
// $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
// $nome = $request->nomePlanoTrabalho[$key] .".pdf"; $usuario = new User();
// $file = $request->anexoPlanoTrabalho[$key]; $usuario->email = $email;
// Storage::putFileAs($path, $file, $nome); $usuario->password = bcrypt($passwordTemporario);
$usuario->usuarioTemp = false;
// $agora = now(); $usuario->name = $request->nomeParticipante[$key];
// $arquivo = new Arquivo(); $usuario->tipo = 'participante';
// $arquivo->titulo = $request->nomePlanoTrabalho[$key]; $usuario->instituicao = $request->universidade[$key];
// $arquivo->nome = $path . $nome; $usuario->cpf = $request->cpf[$key];
// $arquivo->trabalhoId = $projeto->id; $usuario->celular = $request->celular[$key];
// $arquivo->data = $agora;
// $arquivo->participanteId = $participante->id; $endereco = new Endereco();
// $arquivo->versaoFinal = true; $endereco->rua = $request->rua[$key];
// $arquivo->save(); $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) { public function atualizar(Request $request, $id)
$edital = Evento::find($request->editalId); {
$hoje = now(); $edital = Evento::find($request->editalId);
$hoje = now();
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) { if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) {
return redirect()->route('inicial')->with(['error'=> 0, 'mensagem' => 'As submissões para o edital '. $edital->titulo .' foram encerradas.']); return redirect()->route('inicial')->with(['error' => 0, 'mensagem' => 'As submissões para o edital ' . $edital->titulo . ' foram encerradas.']);
} }
$projeto = $this->atribuirDados($request, $edital, $projeto); $projeto = $this->atribuirDados($request, $edital, $projeto);
$projeto->update(); $projeto->update();
// dd($request->all()); // dd($request->all());
// Salvando participantes // Salvando participantes
$this->salvarParticipantes($request, $edital, $projeto, true); $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){ public function telaTrocaPart(Request $request)
$projeto = Trabalho::find($request->projeto_id); {
$edital = Evento::find($projeto->evento_id); $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();
return view('administrador.substituirParticipante')->with(['projeto' => $projeto, $participantes = $projeto->participantes;
'edital' => $edital, $substituicoesProjeto = Substituicao::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get();
'participantes' => $participantes,
'substituicoesProjeto' => $substituicoesProjeto, return view('administrador.substituirParticipante')->with(['projeto' => $projeto,
'estados' => $this->estados, 'edital' => $edital,
'enum_turno' => Participante::ENUM_TURNO, 'participantes' => $participantes,
]); 'substituicoesProjeto' => $substituicoesProjeto,
} 'estados' => $this->estados,
'enum_turno' => Participante::ENUM_TURNO,
]);
}
public function trocaParticipante(Request $request){ public function trocaParticipante(Request $request)
try{ {
DB::beginTransaction(); try {
$trabalho = Trabalho::find($request->projetoId); DB::beginTransaction();
$evento = Evento::find($request->editalId); $trabalho = Trabalho::find($request->projetoId);
$participanteSubstituido = Participante::where('id', $request->participanteId)->first(); $evento = Evento::find($request->editalId);
$planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first(); $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;
}
$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['total_periodos'] = $request->total_periodos;
$data['curso'] = $request->curso;
}else{
$data['curso'] = $request->outrocurso;
}
$data['turno'] = $request->turno; if ($request->curso != "Outro") {
$data['periodo_atual'] = $request->periodo_atual; $data['curso'] = $request->curso;
$data['ordem_prioridade'] = $request->ordem_prioridade; } else {
$data['media_do_curso'] = $request->media_do_curso; $data['curso'] = $request->outrocurso;
$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; $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->participantes()->save($participante);
$user = User::where('email' , $data['email'])->first(); //$trabalho->participantes()->save($participante);
if (!$user){
$data['usuarioTemp'] = true; if ($request->manterPlanoCheck == 'check') {
$user = User::create($data); $substituicao->status = 'Em Aguardo';
$endereco = Endereco::create($data); $substituicao->tipo = 'ManterPlano';
$endereco->user()->save($user); $substituicao->observacao = $request->textObservacao;
} $substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); $substituicao->participanteSubstituto_id = $participante->id;
if (!$participante){ $substituicao->trabalho_id = $trabalho->id;
$participante = Participante::create($data); $substituicao->planoSubstituto_id = $planoAntigo->id;
$participanteSubstituido->save();
} $planoAntigo->participanteId = $participante->id;
$pasta = 'participantes/' . $participante->id; $substituicao->save();
$participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf"); $planoAntigo->save();
$participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf");
$participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf"); } else {
if($request->anexoAutorizacaoPais != null) {
$participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf"); if ($request->has('anexoPlanoTrabalho')) {
} $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
if($request->anexoComprovanteBancario != null){ $nome = $data['nomePlanoTrabalho'] . ".pdf";
$participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario.".$request->file('anexoComprovanteBancario')->getClientOriginalExtension()); $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); $evento->trabalhos()->save($trabalho);
//$trabalho->participantes()->save($participante); $trabalho->save();
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();
}
$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){ public function telaShowSubst(Request $request)
$substituicao = Substituicao::find($request->substituicaoID); {
$trabalho = Trabalho::find($substituicao->trabalho->id); $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'){ return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes,
try{ 'substituicoesProjeto' => $substituicoesProjeto,
if($substituicao->tipo == 'TrocarPlano'){ 'trabalho' => $trabalho]);
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete(); }
$substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now(); public function aprovarSubstituicao(Request $request)
$substituicao->save(); {
$substituicao = Substituicao::find($request->substituicaoID);
$trabalho = Trabalho::find($substituicao->trabalho->id);
}else{ if ($request->aprovar == 'true') {
$substituicao->participanteSubstituido->delete(); try {
$trabalho->participantes()->save($substituicao->participanteSubstituto); 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->save();
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete(); } else {
$substituicao->status = 'Negada'; $substituicao->participanteSubstituto->delete();
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now(); $substituicao->status = 'Negada';
$substituicao->save(); $substituicao->justificativa = $request->textJustificativa;
}elseif($substituicao->tipo == 'ManterPlano'){ $substituicao->causa = $request->selectJustificativa;
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id; $substituicao->concluida_em = now();
$substituicao->planoSubstituto->save();
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada'; $substituicao->save();
$substituicao->justificativa = $request->textJustificativa; }
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save(); $trabalho = Trabalho::find($substituicao->trabalho->id);
}else{ Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado'));
$substituicao->participanteSubstituto->delete(); return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']);
} catch (\Throwable $th) {
$substituicao->status = 'Negada'; return redirect()->back()->with(['erro' => $th->getMessage()]);
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$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 = Trabalho::find($id);
$trabalho->status = $request->statusProp; $trabalho->status = $request->statusProp;
$trabalho->comentario = $request->comentario; $trabalho->comentario = $request->comentario;
...@@ -1670,4 +1718,5 @@ class TrabalhoController extends Controller ...@@ -1670,4 +1718,5 @@ class TrabalhoController extends Controller
return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']); return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']);
}} }
\ No newline at end of file }
\ No newline at end of file
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class RelatorioRecebimentoNotification extends Notification
{
use Queueable;
public $data;
public $url;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($id,$usuario,$eventoTitulo,$trabalhoTitulo,$tipoRelatorio)
{
$this->data = date('d/m/Y \à\s H:i\h', strtotime(now()));
$url = "/projeto/planosTrabalho/".$id;
$this->url = url($url);
$this->editalNome = $eventoTitulo;
$this->trabalhoNome = $trabalhoTitulo;
$this->user = $usuario;
$this->tipo = $tipoRelatorio;
$this->subject ="Recebimento de Relatório {$this->tipo}";
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->subject($this->subject)
->greeting("Olá, {$this->user->name}!")
->action('Acessar Relatórios', $this->url )
->line("O projeto {$this->trabalhoNome} pertencente ao edital {$this->editalNome} do Submeta, registrou um novo envio de Relatório {$this->tipo} em {$this->data}.")
->line('Obrigado por usar o nosso sistema.')
->markdown('vendor.notifications.email');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class SubmissaoRecebidaNotification extends Notification
{
use Queueable;
public $data;
public $url;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($id,$titulo,$usuario)
{
$this->data = date('d/m/Y \à\s H:i\h', strtotime(now()));
$url = "/usuarios/analisarProposta?id=".$id;
$this->url = url($url);
$this->editalNome = $titulo;
$this->user = $usuario;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Recebimento de Submissão de Proposta')
->greeting("Olá, {$this->user->name}!")
->action('Acessar Formulário', $this->url )
->line("O edital {$this->editalNome} do Submeta registrou uma nova submissão em {$this->data}.")
->line('Obrigado por usar o nosso sistema.')
->markdown('vendor.notifications.email');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
...@@ -33,4 +33,8 @@ class Participante extends Model ...@@ -33,4 +33,8 @@ class Participante extends Model
public function planoTrabalho() { public function planoTrabalho() {
return $this->hasOne('App\Arquivo', 'participanteId'); return $this->hasOne('App\Arquivo', 'participanteId');
} }
public function documentacaoComplementar() {
return $this->hasOne('App\DocumentacaoComplementar', 'participante_id');
}
} }
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddComentarioParecerInternos extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('parecer_internos', function (Blueprint $table) {
$table->text('comentario')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('parecer_internos', function (Blueprint $table) {
$table->dropColumn('comentario');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDocumentacaoComplementarsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('documentacao_complementars', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('termoCompromisso')->nullable();
$table->string('comprovanteMatricula')->nullable();
$table->string('pdfLattes')->nullable();
$table->string('linkLattes')->nullable();
$table->integer('participante_id')->nullable();
$table->foreign('participante_id')->references('id')->on('participantes');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('documentacao_complementars');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableEventos3 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('eventos', function (Blueprint $table) {
$table->string('formAvaliacaoExterno')->nullable();
$table->string('formAvaliacaoInterno')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('eventos', function (Blueprint $table) {
$table->dropColumn('formAvaliacaoExterno');
$table->dropColumn('formAvaliacaoInterno');
});
}
}
...@@ -2,69 +2,96 @@ ...@@ -2,69 +2,96 @@
@section('content') @section('content')
<div class="row justify-content-center" style="margin-top: 100px; overflow-x: hidden;overflow-y:hidden">
<div class="row justify-content-center" style="margin-top: 100px;"> <div class="col-md-11">
<div class="col-md-10"> <div class="row">
<div class="card" style="border-radius: 5px"> <div class="col-sm-7">
<div class="card-body" style="padding-top: 0.2rem;"> <div class="card-body" style="padding-top: 0.2rem;">
<div class="container"> <div class="container">
<div class="form-row mt-3"> <div class="form-row mt-3">
<div class="col-md-12"><h5 style="color: #1492E6; font-size: 20px;">Edital - {{$evento->nome}}</h5></div> <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="col-md-12"><h6 style="color: #234B8B; margin-bottom:-0.4rem; font-weight: bold; font-size: 14px;">Propostas Submetidas</h6></div>
</div>
</div> </div>
</div> </div>
<hr> </div>
<div class="container"> <div class="col-sm-5" style="top: 40px; text-align: end">
<div class="row"> <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 ) @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"> <!--Informações Proponente-->
@if($trabalho->status == "aprovado") <div class="row justify-content-center" style="margin-top: 20px;">
<img src="{{asset('img/icons/aprovado.png')}}" style="width: 60%;margin: auto;display: flex;margin-top: 5px;justify-content: center;align-items: center;" alt=""> <br>
@elseif($trabalho->status == "reprovado") <div class="col-md-11" onclick="myFunc({{$trabalho->id}})">
<img src="{{asset('img/icons/negado.png')}}" style="width: 60%;margin: auto;display: flex;margin-top: 5px;justify-content: center;align-items: center;" alt=""> <a href="{{route('admin.analisarProposta',['id'=>$trabalho->id])}}" id="vizuProposta{{$trabalho->id}}" hidden></a>
@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=""> <div class="card" style="border-radius: 5px;">
@endif <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> </div>
</div>
@endforeach @endforeach
</div>
</div>
</div> <div class="row justify-content-center" >
</div> <div class="col-md-11">
</div> <br>
</div> {{ $trabalhos->links() }}
<div class="container" >
<div class="row" >
<div class="col-sm-10">
<br>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">
<img src="{{asset('img/icons/pendente.png')}}" style="width: 30px"/>
Proposta Pendente</h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">
<img src="{{asset('img/icons/aprovado.png')}}" style="width: 30px"/>
Proposta Aprovada</h6>
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">
<img src="{{asset('img/icons/negado.png')}}" style="width: 30px"/>
Proposta Negada</h6>
</div> </div>
</div>
</div> </div>
</div>
...@@ -77,3 +104,8 @@ ...@@ -77,3 +104,8 @@
} }
</script> </script>
@endsection @endsection
<style>
html{
overflow-x:hidden;
}
</style>
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
@php
$grandesAreas = \App\GrandeArea::all();
@endphp
<div class="row justify-content-center" style="margin-top: 100px;"> <div class="row justify-content-center" style="margin-top: 100px;">
<!--Titulos --> <!--Titulos -->
...@@ -118,7 +121,7 @@ ...@@ -118,7 +121,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -126,7 +129,7 @@ ...@@ -126,7 +129,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1]) @include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1])
</div> </div>
</div> </div>
...@@ -139,7 +142,7 @@ ...@@ -139,7 +142,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -147,7 +150,7 @@ ...@@ -147,7 +150,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1]) @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div> </div>
</div> </div>
...@@ -159,7 +162,7 @@ ...@@ -159,7 +162,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -167,7 +170,7 @@ ...@@ -167,7 +170,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante') @include('administrador.vizualizarParticipante')
</div> </div>
</div> </div>
...@@ -279,19 +282,19 @@ ...@@ -279,19 +282,19 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
{{-- Arquivo --}} {{-- Arquivo --}}
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoProjeto" class="col-form-label" style="font-weight: bold">{{ __('Projeto: ') }}</label> <label for="anexoProjeto" class="col-form-label font-tam" style="font-weight: bold">{{ __('Projeto: ') }}</label>
<a href="{{ route('baixar.anexo.projeto', ['id' => $trabalho->id])}}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.projeto', ['id' => $trabalho->id])}}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoLatterCoordenador" class="col-form-label" style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}</label> <label for="anexoLatterCoordenador" class="col-form-label font-tam" style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}</label>
<a href="{{ route('baixar.anexo.lattes', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.lattes', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="nomeTrabalho" class="col-form-label" style="font-weight: bold">{{ __('Autorização do Comitê de Ética: ') }}</label> <label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Autorização do Comitê de Ética: ') }}</label>
@if($trabalho->anexoAutorizacaoComiteEtica != null) @if($trabalho->anexoAutorizacaoComiteEtica != null)
<a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else @else
...@@ -300,13 +303,13 @@ ...@@ -300,13 +303,13 @@
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoPlanilha" class="col-form-label" style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}</label> <label for="anexoPlanilha" class="col-form-label font-tam" style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}</label>
<a href="{{ route('baixar.anexo.planilha', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/xlsx.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.planilha', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/xlsx.ico')}}" style="width:40px" alt=""></a>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<label for="nomeTrabalho" class="col-form-label" style="font-weight: bold">{{ __('Justificativa: ') }}</label> <label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Justificativa: ') }}</label>
@if($trabalho->justificativaAutorizacaoEtica != null) @if($trabalho->justificativaAutorizacaoEtica != null)
<a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else @else
...@@ -317,7 +320,7 @@ ...@@ -317,7 +320,7 @@
@if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') @if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM')
{{-- Decisão do CONSU --}} {{-- Decisão do CONSU --}}
<div class="col-sm-4"> <div class="col-sm-4">
<label for="anexoCONSU" class="col-form-label" style="font-weight: bold">{{ __('Decisão do CONSU: ') }}</label> <label for="anexoCONSU" class="col-form-label font-tam" style="font-weight: bold">{{ __('Decisão do CONSU: ') }}</label>
<a href="{{ route('baixar.anexo.consu', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a> <a href="{{ route('baixar.anexo.consu', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div> </div>
@endif @endif
...@@ -346,26 +349,26 @@ ...@@ -346,26 +349,26 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
{{-- Relatório Parcial --}} {{-- Relatório Parcial --}}
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_inicioRelatorioParcial" class="col-form-label" style="font-weight: bold">{{ __('Início do Relatório Parcial: ') }}</label> <label for="dt_inicioRelatorioParcial" class="col-form-label font-tam" style="font-weight: bold">{{ __('Início do Relatório Parcial: ') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_inicioRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioParcial" value="{{$evento->dt_inicioRelatorioParcial}}" required autocomplete="dt_inicioRelatorioParcial" disabled autofocus> <input id="dt_inicioRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioParcial" value="{{$evento->dt_inicioRelatorioParcial}}" required autocomplete="dt_inicioRelatorioParcial" disabled autofocus>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_fimRelatorioParcial" class="col-form-label" style="font-weight: bold">{{ __('Fim do Relatório Parcial: ') }}</label> <label for="dt_fimRelatorioParcial" class="col-form-label font-tam" style="font-weight: bold">{{ __('Fim do Relatório Parcial: ') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_fimRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioParcial" value="{{$evento->dt_fimRelatorioParcial}}" required autocomplete="dt_fimRelatorioParcial" disabled autofocus> <input id="dt_fimRelatorioParcial{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioParcial" value="{{$evento->dt_fimRelatorioParcial}}" required autocomplete="dt_fimRelatorioParcial" disabled autofocus>
</div> </div>
{{-- Relatório Final --}} {{-- Relatório Final --}}
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_inicioRelatorioFinal" class="col-form-label" style="font-weight: bold">{{ __('Início do Relatório Final:') }}</label> <label for="dt_inicioRelatorioFinal" class="col-form-label font-tam" style="font-weight: bold">{{ __('Início do Relatório Final:') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_inicioRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioFinal" value="{{$evento->dt_inicioRelatorioFinal}}" required autocomplete="dt_inicioRelatorioFinal" disabled autofocus> <input id="dt_inicioRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_inicioRelatorioFinal" value="{{$evento->dt_inicioRelatorioFinal}}" required autocomplete="dt_inicioRelatorioFinal" disabled autofocus>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<label for="dt_fimRelatorioFinal" class="col-form-label" style="font-weight: bold">{{ __('Fim do Relatório Final:') }}</label> <label for="dt_fimRelatorioFinal" class="col-form-label font-tam" style="font-weight: bold">{{ __('Fim do Relatório Final:') }}</label>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input id="dt_fimRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioFinal" value="{{$evento->dt_fimRelatorioFinal}}" required autocomplete="dt_fimRelatorioFinal" disabled autofocus> <input id="dt_fimRelatorioFinal{{$evento->id}}" type="date" class="form-control" name="dt_fimRelatorioFinal" value="{{$evento->dt_fimRelatorioFinal}}" required autocomplete="dt_fimRelatorioFinal" disabled autofocus>
...@@ -392,7 +395,7 @@ ...@@ -392,7 +395,7 @@
</div> </div>
<!-- Modal --> <!-- Modal -->
<div class="modal fade" id="avaliadorModalCenter{{ $trabalho->id }}" tabindex="-1" role="dialog" aria-labelledby="avaliadorModalCenterTitle" aria-hidden="true"> <div class="modal fade" id="avaliadorModalCenter{{ $trabalho->id }}" tabindex="-1" role="dialog" aria-labelledby="avaliadorModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
<div class="modal-content modal-submeta"> <div class="modal-content modal-submeta">
<div class="modal-header modal-header-submeta"> <div class="modal-header modal-header-submeta">
<h5 class="modal-title titulo-table" id="avaliadorModalLongTitle">Selecione o(s) avaliador(es)</h5> <h5 class="modal-title titulo-table" id="avaliadorModalLongTitle">Selecione o(s) avaliador(es)</h5>
...@@ -407,10 +410,34 @@ ...@@ -407,10 +410,34 @@
<input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}"> <input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}">
<input type="hidden" name="evento_id" value="{{ $evento->id }}"> <input type="hidden" name="evento_id" value="{{ $evento->id }}">
<div class="form-group"> <div class="form-group">
<label for="exampleFormControlSelect2">Selecione o(s) avaliador(es) para esse projeto</label> <div class="row" style="margin-left: 2px;margin-bottom: 1px">
<div class="col-md-6">
<label for="exampleFormControlSelect2">Seleciones o(s) avaliador(es) para esse projeto</label>
</div>
<div class="col-md-3" style="text-align: center;overflow-y: auto;overflow-x: auto">
<select class="form-control" id="grandeArea" name="grande_area_id" onchange="areas()" >
<option value="" disabled selected hidden>-- Grande Área --</option>
@foreach($grandesAreas as $grandeArea)
<option title="{{$grandeArea->nome}}" value="{{$grandeArea->id}}">{{$grandeArea->nome}}</option>
@endforeach
</select>
</div>
<div class="col-md-3" style="text-align: center;overflow-y: auto;overflow-x: auto">
<input type="hidden" id="oldArea" value="{{ old('area') }}" >
<select class="form-control @error('area') is-invalid @enderror" id="area" name="area_id" onchange="subareas()" >
<option value="" disabled selected hidden>-- Área --</option>
</select>
</div>
</div>
<select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2" required> <select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2" required>
@foreach ($trabalho->aval as $avaliador) @foreach ($trabalho->aval as $avaliador)
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} ({{$avaliador->area->nome ?? 'Indefinida'}}) </option> <option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} > {{$avaliador->user->instituicao ?? 'Instituição Indefinida'}} > {{$avaliador->area->nome ?? 'Indefinida'}} > {{$avaliador->user->email}}</option>
@endforeach @endforeach
</select> </select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small> <small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
...@@ -429,26 +456,57 @@ ...@@ -429,26 +456,57 @@
</div> </div>
<hr style="border-top: 1px solid#1492E6"> <hr style="border-top: 1px solid#1492E6">
<!--Comissão Externa-->
<div class="row justify-content-start" style="alignment: center">
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliadores - Externos</h6></div>
</div>
<div class="row justify-content-start" style="alignment: center"> <div class="row justify-content-start" style="alignment: center">
@foreach($trabalho->avaliadors as $avaliador) @foreach($trabalho->avaliadors as $avaliador)
<div class="col-sm-1"> @if($avaliador->tipo == 'Externo' || $avaliador->tipo == null)
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt=""> <div class="col-sm-1">
</div> <img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
<div class="col-sm-5"> </div>
<h5>{{$avaliador->user->name}}</h5> <div class="col-sm-5">
@if($avaliador->tipo == 'Externo' || $avaliador->tipo == null) <h5>{{$avaliador->user->name}}</h5>
<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> @if($avaliador->tipo == 'Externo' || $avaliador->tipo == null)
@else <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 @php
$parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp @endphp
<h9>@if($parecerInterno == null) Pendente @else <a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9> <h9>@if($parecerInterno == null) Pendente @else <a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif</h9>
@endif <br>
<br> {{-- <a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
<a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" > Remover
Remover </a>--}}
</a> </div>
</div> @endif
@endforeach @endforeach
</div> </div>
</div> </div>
...@@ -750,6 +808,15 @@ ...@@ -750,6 +808,15 @@
</script> </script>
<style>
h6, a, b, p, .font-tam{
font-size: 16.4px;
}
h5{
font-size: 20px;
}
</style>
<script type="text/javascript"> <script type="text/javascript">
var e = document.getElementById("submeter"); var e = document.getElementById("submeter");
e.onclick = function(){myFunction(e.value)}; e.onclick = function(){myFunction(e.value)};
...@@ -791,6 +858,42 @@ ...@@ -791,6 +858,42 @@
$("#modalCancelarSubst").modal(); $("#modalCancelarSubst").modal();
} }
} }
function areas() {
var grandeArea = $('#grandeArea').val();
$.ajax({
type: 'POST',
url: '{{ route('area.consulta') }}',
data: 'id='+grandeArea ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (dados) => {
if (dados.length > 0) {
if($('#oldArea').val() == null || $('#oldArea').val() == ""){
var option = '<option selected disabled>-- Área --</option>';
}
$.each(dados, function(i, obj) {
if($('#oldArea').val() != null && $('#oldArea').val() == obj.id){
option += '<option selected value="' + obj.id + '">' + obj.nome + '</option>';
}else{
option += '<option value="' + obj.id + '">' + obj.nome + '</option>';
}
})
} else {
var option = "<option selected disabled>-- Área --</option>";
}
$('#area').html(option).show();
subareas();
},
error: (data) => {
console.log(data);
}
})
}
</script> </script>
@endsection @endsection
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -141,7 +141,7 @@ ...@@ -141,7 +141,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1]) @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div> </div>
</div> </div>
...@@ -153,17 +153,17 @@ ...@@ -153,17 +153,17 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante') @include('administrador.vizualizarParticipante')
</div> </div>
</div> </div>
</div> </div>
</div> </div>
...@@ -267,7 +267,7 @@ ...@@ -267,7 +267,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -275,7 +275,7 @@ ...@@ -275,7 +275,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1]) @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
</div> </div>
</div> </div>
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header" style="overflow-x:auto"> <div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5> <h5 class="modal-title" id="exampleModalLabel" style= "color:#1492E6">Informações Participante</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="padding-top: 8px; color:#1492E6">
...@@ -295,7 +295,7 @@ ...@@ -295,7 +295,7 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body" style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('administrador.vizualizarParticipante') @include('administrador.vizualizarParticipante')
</div> </div>
</div> </div>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment