diff --git a/app/AnexosTemp.php b/app/AnexosTemp.php
new file mode 100644
index 0000000000000000000000000000000000000000..9c778761a4626a7b825c99a10ed5814eb8586f3e
--- /dev/null
+++ b/app/AnexosTemp.php
@@ -0,0 +1,10 @@
+tipo != "proponente") {
$validated = $request->validate([
- 'nome' => 'required',
+ 'name' => 'required',
'tipo' => 'required',
'email' => 'required|unique:users',
+ 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
+ 'instituicaoSelect' => ['required_without:instituicao'],
+ 'celular' => 'required',
'senha' => 'required',
'confirmar_senha' => 'required',
'cpf' => 'required|cpf|unique:users',
]);
} else {
$validated = $request->validate([
- 'nome' => 'required',
- 'tipo' => 'required',
- 'email' => 'required|unique:users',
- 'senha' => 'required',
- 'confirmar_senha' => 'required',
- 'cpf' => 'required|cpf|unique:users',
- 'cargo' => 'required',
- 'titulacaoMaxima' => 'required',
- 'anoTitulacao' => 'required',
- 'areaFormacao' => 'required',
- 'area' => 'required',
- 'bolsistaProdutividade' => 'required',
- 'nivel' => 'required',
- 'linkLattes' => 'required',
+ 'name' => ['required', 'string', 'max:255'],
+ 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
+ 'senha' => ['required', 'string', 'min:8'],
+ 'confirmar_senha' => ['required'],
+ 'cpf' => ['required', 'cpf', 'unique:users'],
+ 'celular' => ['required', 'string'],
+ 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
+ 'instituicaoSelect' => ['required_without:instituicao'],
+ 'cargo' => ['required'],
+ 'vinculo' => ['required'],
+ 'outro' => ['required_if:vinculo,Outro'],
+ 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'],
+ 'titulacaoMaxima' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'],
+ 'anoTitulacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'],
+ 'areaFormacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'],
+ 'bolsistaProdutividade' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'nivel' => ['required_if:bolsistaProdutividade,sim'],
+ 'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''],
+ 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
+ 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''],
+ 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''],
]);
}
@@ -97,11 +111,17 @@ class AdministradorController extends Controller
}
$user = new User();
- $user->name = $request->nome;
+ $user->name = $request->name;
$user->tipo = $request->tipo;
$user->cpf = $request->cpf;
+ $user->celular = $request->celular;
$user->email = $request->email;
$user->password = bcrypt($request->senha);
+ if ($request->instituicao != null) {
+ $user->instituicao = $request->instituicao;
+ } else if (isset($request->instituicaoSelect) && $request->instituicaoSelect != "Outra") {
+ $user->instituicao = $request->instituicaoSelect;
+ }
$user->save();
@@ -118,18 +138,29 @@ class AdministradorController extends Controller
break;
case "proponente":
$proponente = new Proponente();
- $proponente->SIAPE = $request->SIAPE;
+ if ($request->SIAPE != null) {
+ $proponente->SIAPE = $request->SIAPE;
+ }
$proponente->cargo = $request->cargo;
- $proponente->vinculo = $request->vinculo;
+
+ if ($request->vinculo != 'Outro') {
+ $proponente->vinculo = $request->vinculo;
+ } else {
+ $proponente->vinculo = $request->outro;
+ }
+
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
- $proponente->areaFormacao = $request->areaFormacao;
+ $proponente->areaFormacao = $request->areaFormacao;
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
- $proponente->nivel = $request->nivel;
+ if ($request->bolsistaProdutividade == 'sim') {
+ $proponente->nivel = $request->nivel;
+ }
$proponente->linkLattes = $request->linkLattes;
+
$proponente->user_id = $user->id;
$proponente->save();
- break;
+ break;
case "participante":
$participante = new Participante();
$participante->user_id = $user->id;
@@ -159,28 +190,38 @@ class AdministradorController extends Controller
if ($request->tipo != "proponente") {
$validated = $request->validate([
- 'nome' => 'required',
+ 'name' => 'required',
'tipo' => 'required',
'email' => 'required',
- // 'senha' => 'required',
- // 'confirmar_senha' => 'required',
+ 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
+ 'instituicaoSelect' => ['required_without:instituicao'],
+ 'celular' => 'required',
'cpf' => 'required|cpf',
]);
} else {
$validated = $request->validate([
- 'nome' => 'required',
- 'tipo' => 'required',
- 'email' => 'required',
- // 'senha' => 'required',
- // 'confirmar_senha' => 'required',
- 'cpf' => 'required|cpf',
- 'cargo' => 'required',
- 'titulacaoMaxima' => 'required',
- 'anoTitulacao' => 'required',
- 'areaFormacao' => 'required',
- 'bolsistaProdutividade' => 'required',
- 'nivel' => 'required',
- 'linkLattes' => 'required',
+ 'name' => ['required', 'string', 'max:255'],
+ 'email' => ['required', 'string', 'email', 'max:255'],
+ 'cpf' => ['required', 'cpf'],
+ 'celular' => ['required', 'string'],
+ 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
+ 'instituicaoSelect' => ['required_without:instituicao'],
+ 'cargo' => ['required'],
+ 'vinculo' => ['required'],
+ 'outro' => ['required_if:vinculo,Outro'],
+ 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'],
+ 'titulacaoMaxima' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'],
+ 'anoTitulacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'],
+ 'areaFormacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'],
+ 'bolsistaProdutividade' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
+ 'nivel' => ['required_if:bolsistaProdutividade,sim'],
+ 'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''],
+ 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
+ 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''],
+ 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''],
]);
}
@@ -205,15 +246,26 @@ class AdministradorController extends Controller
break;
case "proponente":
$proponente = Proponente::where('user_id', '=', $id)->first();
- $proponente->SIAPE = $request->SIAPE;
+ if ($request->SIAPE != null) {
+ $proponente->SIAPE = $request->SIAPE;
+ }
$proponente->cargo = $request->cargo;
- $proponente->vinculo = $request->vinculo;
+
+ if ($request->vinculo != 'Outro') {
+ $proponente->vinculo = $request->vinculo;
+ } else {
+ $proponente->vinculo = $request->outro;
+ }
+
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
- $proponente->areaFormacao = $request->areaFormacao;
+ $proponente->areaFormacao = $request->areaFormacao;
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
- $proponente->nivel = $request->nivel;
+ if ($request->bolsistaProdutividade == 'sim') {
+ $proponente->nivel = $request->nivel;
+ }
$proponente->linkLattes = $request->linkLattes;
+
$proponente->user_id = $user->id;
$proponente->update();
break;
@@ -224,15 +276,19 @@ class AdministradorController extends Controller
break;
}
- $user->name = $request->nome;
+ $user->name = $request->name;
$user->tipo = $request->tipo;
$user->email = $request->email;
$user->cpf = $request->cpf;
+ $user->celular = $request->celular;
+ if ($request->instituicao != null) {
+ $user->instituicao = $request->instituicao;
+ } else if (isset($request->instituicaoSelect) && $request->instituicaoSelect != "Outra") {
+ $user->instituicao = $request->instituicaoSelect;
+ }
// $user->password = bcrypt($request->nova_senha);
$user->update();
-
-
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário atualizado com sucesso']);
}
@@ -313,7 +369,6 @@ class AdministradorController extends Controller
return redirect()->back();
-
}
public function remover(Request $request){
diff --git a/app/Http/Controllers/EventoController.php b/app/Http/Controllers/EventoController.php
index 8a67ceb0e6951b8582026e55e626be9ac2100377..c1985fd99f62e0e62071d84f3ca2e0b5d85d20c7 100644
--- a/app/Http/Controllers/EventoController.php
+++ b/app/Http/Controllers/EventoController.php
@@ -59,7 +59,9 @@ class EventoController extends Controller
{
$coordenadors = CoordenadorComissao::with('user')->get();
$naturezas = Natureza::orderBy('nome')->get();
- return view('evento.criarEvento', ['coordenadors' => $coordenadors, 'naturezas' => $naturezas]);
+ $yesterday = Carbon::yesterday('America/Recife');
+ $yesterday = $yesterday->toDateString();
+ return view('evento.criarEvento', ['coordenadors' => $coordenadors, 'naturezas' => $naturezas, 'ontem' => $yesterday]);
}
/**
@@ -99,7 +101,7 @@ class EventoController extends Controller
'fimRevisao' => ['required', 'date'],
'resultado' => ['required', 'date'],
'pdfEdital' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'modeloDocumento' => ['required', 'file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
+ 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
]);
}
@@ -116,7 +118,7 @@ class EventoController extends Controller
'fimRevisao' => ['required', 'date', 'after:' . $request->inicioRevisao],
'resultado' => ['required', 'date', 'after:' . $yesterday],
'pdfEdital' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'modeloDocumento' => ['required', 'file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
+ 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
]);
$evento = Evento::create([
@@ -150,14 +152,17 @@ class EventoController extends Controller
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome;
-
- $modeloDocumento = $request->modeloDocumento;
- $extension = $modeloDocumento->extension();
- $path = 'modeloDocumento/' . $evento->id . '/';
- $nome = "modelo" . "." . $extension;
- Storage::putFileAs($path, $modeloDocumento, $nome);
-
- $evento->modeloDocumento = $path . $nome;
+
+ if(isset($request->modeloDocumento)){
+ $modeloDocumento = $request->modeloDocumento;
+ $extension = $modeloDocumento->extension();
+ $path = 'modeloDocumento/' . $evento->id . '/';
+ $nome = "modelo" . "." . $extension;
+ Storage::putFileAs($path, $modeloDocumento, $nome);
+
+ $evento->modeloDocumento = $path . $nome;
+ }
+
$evento->save();
diff --git a/app/Http/Controllers/ParticipanteController.php b/app/Http/Controllers/ParticipanteController.php
index aca64aa7d2398f62c05e7c3477be0928e2a52ddd..4dd9c1589589ea05de0fe2f864162d3f16988d14 100644
--- a/app/Http/Controllers/ParticipanteController.php
+++ b/app/Http/Controllers/ParticipanteController.php
@@ -13,6 +13,11 @@ class ParticipanteController extends Controller
return view('participante.index');
}
+ public function editais(){
+
+ $eventos = Evento::all();
+ return view('participante.editais', ['eventos'=> $eventos] );
+ }
public function edital($id){
$edital = Evento::find($id);
diff --git a/app/Http/Controllers/ProponenteController.php b/app/Http/Controllers/ProponenteController.php
index 3043fce0d59067fdcb8351d0b46d107647ecb057..9c4a2aa5b81bedad671ccb866415abc61da0b1da 100644
--- a/app/Http/Controllers/ProponenteController.php
+++ b/app/Http/Controllers/ProponenteController.php
@@ -20,6 +20,11 @@ class ProponenteController extends Controller
public function create(){
return view('proponente.cadastro');
}
+ public function editais(){
+
+ $eventos = Evento::all();
+ return view('proponente.editais', ['eventos'=> $eventos] );
+ }
public function store(Request $request){
if (Auth()->user()->proponentes == null) {
@@ -60,7 +65,7 @@ class ProponenteController extends Controller
$proponente->save();
$user = User::find(Auth()->user()->id);
- $user->tipo = "proponente";
+ //$user->tipo = "proponente";
$user->save();
$eventos = Evento::all();
diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php
index 1cc311ed85bdf96de529c726c472e9e94f059ea6..68e5c17faa6fedc149230687b7930ba17a2fef20 100644
--- a/app/Http/Controllers/TrabalhoController.php
+++ b/app/Http/Controllers/TrabalhoController.php
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
+use App\AnexosTemp;
use App\Trabalho;
use App\Coautor;
use App\Evento;
@@ -22,6 +23,7 @@ use App\Avaliador;
use Carbon\Carbon;
use Auth;
use Illuminate\Http\Request;
+use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;
use App\Mail\EmailParaUsuarioNaoCadastrado;
use Illuminate\Support\Facades\Mail;
@@ -41,7 +43,13 @@ class TrabalhoController extends Controller
{
$edital = Evento::find($id);
$grandeAreas = GrandeArea::orderBy('nome')->get();
- $funcaoParticipantes = FuncaoParticipantes::all();
+ $funcaoParticipantes = FuncaoParticipantes::all();
+ $proponente = Proponente::where('user_id', Auth::user()->id)->first();
+
+ if($proponente == null){
+ return view('proponente.cadastro')->with(['mensagem' => 'Você não possui perfil de Proponente, para submeter algum projeto preencha o formulário.']);;
+ }
+
return view('evento.submeterTrabalho',[
'edital' => $edital,
'grandeAreas' => $grandeAreas,
@@ -74,15 +82,21 @@ class TrabalhoController extends Controller
$coordenador = CoordenadorComissao::find($evento->coordenadorId);
//Relaciona o projeto criado com o proponente que criou o projeto
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
+ // if($proponente == null){
+ // return view('proponente.cadastro');
+ // }
//$trabalho->proponentes()->save($proponente);
- //dd($coordenador->id);
+ //dd($proponente);
$trabalho = "trabalho";
if($evento->inicioSubmissao > $mytime){
if($mytime >= $evento->fimSubmissao){
return redirect()->route('home');
}
}
-
+
+ //--Salvando os anexos da submissão temporariamente
+ $this->armazenarAnexosTemp($request, Auth::user()->id);
+
//O anexo de Decisão do CONSU dependo do tipo de edital
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM'){
@@ -98,15 +112,16 @@ class TrabalhoController extends Controller
'nomeParticipante.*' => ['required', 'string'],
'emailParticipante.*' => ['required', 'string'],
'funcaoParticipante.*' => ['required', 'string'],
- 'nomePlanoTrabalho.*' => ['required', 'string'],
- 'anexoProjeto' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoCONSU' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
+ 'nomePlanoTrabalho.*' => ['nullable', 'string'],
+ //--Verificando se anexos já foram submetidos
+ 'anexoProjeto' => [($request->anexoProjetoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoCONSU' => [($request->anexoConsuPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
'botao' => ['required'],
- 'anexoComiteEtica' => ['required_without:justificativaAutorizacaoEtica', 'file', 'mimes:pdf', 'max:2000000'],
- 'justificativaAutorizacaoEtica' => ['required_without:anexoComiteEtica', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoLatterCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoComiteEtica' => [($request->anexoComitePreenchido!=='sim'&&$request->anexoJustificativaPreenchido!=='sim'?'required_without:justificativaAutorizacaoEtica':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'justificativaAutorizacaoEtica' => [($request->anexoJustificativaPreenchido!=='sim'&&$request->anexoComitePreenchido!=='sim'?'required_without:anexoComiteEtica':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoLattesCoordenador' => [($request->anexoLattesPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoPlanilha' => [($request->anexoPlanilhaPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoPlanoTrabalho.*' => ['nullable', 'file', 'mimes:pdf', 'max:2000000'],
]);
//dd($request->all());
@@ -125,12 +140,12 @@ class TrabalhoController extends Controller
'status' => 'Submetido' ,
'proponente_id' => $proponente->id,
//Anexos
- 'anexoCONSU' => $request->anexoCONSU,
- 'anexoProjeto' => $request->anexoProjeto,
- 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica,
- 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica,
- 'anexoLattesCoordenador' => $request->anexoLatterCoordenador,
- 'anexoPlanilhaPontuacao' => $request->anexoPlanilha,
+ 'anexoCONSU' => $request->anexoCONSU != null ? $request->anexoCONSU : "",
+ 'anexoProjeto' => $request->anexoProjeto != null ? $request->anexoProjeto : "",
+ 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica != null ? $request->anexoComiteEtica : "",
+ 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica != null ? $request->justificativaAutorizacaoEtica : "",
+ 'anexoLattesCoordenador' => $request->anexoLattesCoordenador != null ? $request->anexoLattesCoordenador : "",
+ 'anexoPlanilhaPontuacao' => $request->anexoPlanilha != null ? $request->anexoPlanilha : "",
]);
//dd($trabalho);
} else {
@@ -147,11 +162,11 @@ class TrabalhoController extends Controller
'nomeParticipante.*' => ['required', 'string'],
'emailParticipante.*' => ['required', 'string'],
'funcaoParticipante.*' => ['required', 'string'],
- 'nomePlanoTrabalho.*' => ['required', 'string'],
- 'anexoProjeto' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoLatterCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
- 'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
+ 'nomePlanoTrabalho.*' => ['nullable', 'string'],
+ 'anexoProjeto' => [($request->anexoProjetoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoLattesCoordenador' => [($request->anexoLattesPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoPlanilha' => [($request->anexoPlanilhaPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'],
+ 'anexoPlanoTrabalho.*' => ['nullable', 'file', 'mimes:pdf', 'max:2000000'],
]);
$trabalho = Trabalho::create([
@@ -172,7 +187,7 @@ class TrabalhoController extends Controller
'anexoProjeto' => $request->anexoProjeto,
'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica,
'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica,
- 'anexoLattesCoordenador' => $request->anexoLatterCoordenador,
+ 'anexoLattesCoordenador' => $request->anexoLattesCoordenador,
'anexoPlanilhaPontuacao' => $request->anexoPlanilha,
]);
@@ -215,54 +230,143 @@ class TrabalhoController extends Controller
$subject = "Participante de Projeto";
$email = $value;
Mail::to($email)
- ->send(new SubmissaoTrabalho($userParticipante, $subject));
+ ->send(new SubmissaoTrabalho($userParticipante, $subject, $evento, $trabalho));
}
- $usuario = User::where('email', $value)->first();
- $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $trabalho->id]])->first();
- $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
- $nome = $request->nomePlanoTrabalho[$key] .".pdf";
- $file = $request->anexoPlanoTrabalho[$key];
- Storage::putFileAs($path, $file, $nome);
-
- $arquivo = new Arquivo();
- $arquivo->titulo = $request->nomePlanoTrabalho[$key];
- $arquivo->nome = $path . $nome;
- $arquivo->trabalhoId = $trabalho->id;
- $arquivo->data = $mytime;
- $arquivo->participanteId = $participante->id;
- $arquivo->versaoFinal = true;
- $arquivo->save();
+ if($request->nomePlanoTrabalho[$key] != null){
+ $usuario = User::where('email', $value)->first();
+ $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $trabalho->id]])->first();
+ $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
+ $nome = $request->nomePlanoTrabalho[$key] .".pdf";
+ $file = $request->anexoPlanoTrabalho[$key];
+ Storage::putFileAs($path, $file, $nome);
+
+ $arquivo = new Arquivo();
+ $arquivo->titulo = $request->nomePlanoTrabalho[$key];
+ $arquivo->nome = $path . $nome;
+ $arquivo->trabalhoId = $trabalho->id;
+ $arquivo->data = $mytime;
+ $arquivo->participanteId = $participante->id;
+ $arquivo->versaoFinal = true;
+ $arquivo->save();
+ }
}
}
+ //-- Salvando anexos no storage ---//
+
$pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id;
- if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
- $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "CONSU.pdf");
- }
+ //-- Se existem anexos temporários, utilizá-los
+ $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', Auth::user()->id)
+ ->orderByDesc('updated_at')->first();
- if (!(is_null($request->anexoComiteEtica))) {
- $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf");
- } else {
- $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf");
+ if($anexosTemp != null){
+ $this->armazenarAnexosFinais($anexosTemp, $request, $pasta, $trabalho, $evento);
}
-
- $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf");
- $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLatterCoordenador, "Latter_Coordenador.pdf");
- $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf");
+
$trabalho->update();
- //dd($trabalho);
+ //Deletando arquivos temporários
+ Storage::deleteDirectory('anexosTemp/' . $request->editalId . '/' . Auth::user()->id);
+ $anexosTemp->delete();
$subject = "Submissão de Trabalho";
$autor = Auth()->user();
+ $evento = $evento;
+ $trabalho = $trabalho;
Mail::to($autor->email)
- ->send(new SubmissaoTrabalho($autor, $subject));
+ ->send(new SubmissaoTrabalho($autor, $subject, $evento, $trabalho));
return redirect()->route('evento.visualizar',['id'=>$request->editalId]);
}
+ //Armazena temporariamente anexos da submissão, no banco de dados e no storage
+ public function armazenarAnexosTemp(Request $request, $proponenteId){
+
+ //---Anexos do Projeto
+ $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', $proponenteId)
+ ->orderByDesc('updated_at')->first();
+
+ if($anexosTemp == null){
+ $anexosTemp = new AnexosTemp();
+ $jaExiste = false;
+ }else{
+ $jaExiste = true;
+ }
+
+ $pasta = 'anexosTemp/' . $request->editalId . '/' . $proponenteId;
+
+ if(!(is_null($request->anexoCONSU)) ) {
+ $anexosTemp->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "CONSU.pdf");
+ }
+ if (!(is_null($request->anexoComiteEtica))) {
+ $anexosTemp->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf");
+ }
+ if (!(is_null($request->justificativaAutorizacaoEtica))) {
+ $anexosTemp->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf");
+ }
+ if (!(is_null($request->anexoProjeto))) {
+ $anexosTemp->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf");
+ }
+ if (!(is_null($request->anexoLattesCoordenador))) {
+ $anexosTemp->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf");
+ }
+ if (!(is_null($request->anexoPlanilha))) {
+ $anexosTemp->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf");
+ }
+
+ $anexosTemp->eventoId = $request->editalId;
+ $anexosTemp->proponenteId = $proponenteId;
+
+ if(!$jaExiste){
+ $anexosTemp->save();
+ }else{
+ $anexosTemp->update();
+ }
+
+ //---Anexos planos de trabalho
+
+ }
+
+ public function armazenarAnexosFinais($anexosTemp, $request, $pasta, $trabalho, $evento){
+
+ // Anexo Projeto
+ if( (!isset($request->anexoProjeto) && $request->anexoProjetoPreenchido == 'sim') || isset($request->anexoProjeto)){
+ Storage::move($anexosTemp->anexoProjeto, $pasta . '/Projeto.pdf');
+ $trabalho->anexoProjeto = $pasta . '/Projeto.pdf';
+ }
+
+ //Anexo Decisão CONSU
+ if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
+ if( (!isset($request->anexoCONSU) && $request->anexoConsuPreenchido == 'sim') || isset($request->anexoCONSU)){
+ Storage::move($anexosTemp->anexoDecisaoCONSU, $pasta . '/CONSU.pdf');
+ $trabalho->anexoDecisaoCONSU = $pasta . '/CONSU.pdf';
+ }
+ }
+
+ //Autorização ou Justificativa
+ if( (!isset($request->anexoComiteEtica) && $request->anexoComitePreenchido == 'sim') || isset($request->anexoComiteEtica)){
+ Storage::move($anexosTemp->anexoAutorizacaoComiteEtica, $pasta . '/Comite_de_etica.pdf');
+ $trabalho->anexoAutorizacaoComiteEtica = $pasta . '/Comite_de_etica.pdf';
+
+ } elseif( (!isset($request->justificativaAutorizacaoEtica) && $request->anexoJustificativaPreenchido == 'sim') || isset($request->justificativaAutorizacaoEtica)){
+ Storage::move($anexosTemp->justificativaAutorizacaoEtica, $pasta . '/Justificativa.pdf');
+ $trabalho->justificativaAutorizacaoEtica = $pasta . '/Justificativa.pdf';
+ }
+
+ //Anexo Lattes
+ if( (!isset($request->anexoLattesCoordenador) && $request->anexoLattesPreenchido == 'sim') || isset($request->anexoLattesCoordenador)){
+ Storage::move($anexosTemp->anexoLattesCoordenador, $pasta . '/Latter_Coordenador.pdf');
+ $trabalho->anexoLattesCoordenador = $pasta . '/Latter_Coordenador.pdf';
+ }
+
+ //Anexo Planilha
+ if( (!isset($request->anexoPlanilha) && $request->anexoPlanilhaPreenchido == 'sim') || isset($request->anexoPlanilha)){
+ Storage::move($anexosTemp->anexoPlanilhaPontuacao, $pasta . '/Planilha.pdf');
+ $trabalho->anexoPlanilhaPontuacao = $pasta . '/Planilha.pdf';
+ }
+ }
/**
* Display the specified resource.
*
@@ -414,9 +518,9 @@ class TrabalhoController extends Controller
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf");
}
- if (!(is_null($request->anexoLatterCoordenador))) {
+ if (!(is_null($request->anexoLattesCoordenador))) {
Storage::delete($trabalho->anexoLattesCoordenador);
- $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLatterCoordenador, "Latter_Coordenador.pdf");
+ $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf");
}
if (!(is_null($request->anexoPlanilha))) {
@@ -753,4 +857,13 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
return Storage::download($projeto->justificativaAutorizacaoEtica);
}
+
+ public function baixarAnexoTemp($eventoId, $nomeAnexo) {
+ $proponenteId = Auth::user()->id;
+
+ $anexosTemp = AnexosTemp::where('eventoId', $eventoId)->where('proponenteId', $proponenteId)
+ ->orderByDesc('updated_at')->first();
+
+ return Storage::download($anexosTemp->$nomeAnexo);
+ }
}
diff --git a/app/Mail/SubmissaoTrabalho.php b/app/Mail/SubmissaoTrabalho.php
index f8ea1cf00c826bc45d224026495ccc8c6128d125..56fe411545613a9b0c491ce95f1230bb3e5506cb 100644
--- a/app/Mail/SubmissaoTrabalho.php
+++ b/app/Mail/SubmissaoTrabalho.php
@@ -13,18 +13,20 @@ class SubmissaoTrabalho extends Mailable
public $user;
public $subject;
-
+ public $evento;
+ public $trabalho;
/**
* Create a new message instance.
*
* @return void
*/
- public function __construct($user, $subject)
+ public function __construct($user, $subject, $evento, $trabalho)
{
$this->user = $user;
$this->subject = $subject;
-
+ $this->evento = $evento;
+ $this->trabalho = $trabalho;
}
/**
@@ -37,6 +39,12 @@ class SubmissaoTrabalho extends Mailable
return $this->from('lmtsteste@gmail.com', 'Submeta - LMTS')
->subject($this->subject)
- ->view('emails.submissaoTrabalho');
+ ->view('emails.submissaoTrabalho')
+ ->with([
+ 'user' => $this->user,
+ 'evento' => $this->evento,
+ 'trabalho' => $this->trabalho,
+
+ ]);
}
}
diff --git a/app/Natureza.php b/app/Natureza.php
index 09487157d4e5da77a3a925b80344409919403d52..c963308393a611dcaa8e281144bc190a725fab67 100644
--- a/app/Natureza.php
+++ b/app/Natureza.php
@@ -6,5 +6,7 @@ use Illuminate\Database\Eloquent\Model;
class Natureza extends Model
{
- //
+ public function projetos() {
+ return $this->hasMany('App\Evento');
+ }
}
diff --git a/composer.lock b/composer.lock
index ddf6993c436b4604e88c7ec78b34890701ff4fa9..06cca0a75f61f83b73ab24e78f294033cb488b6d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1908,7 +1908,7 @@
},
{
"name": "symfony/css-selector",
- "version": "v5.1.1",
+ "version": "v5.1.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
@@ -2398,7 +2398,7 @@
},
{
"name": "symfony/mime",
- "version": "v5.1.1",
+ "version": "v5.1.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
@@ -3606,16 +3606,16 @@
},
{
"name": "filp/whoops",
- "version": "2.7.2",
+ "version": "2.7.3",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a"
+ "reference": "5d5fe9bb3d656b514d455645b3addc5f7ba7714d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a",
- "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/5d5fe9bb3d656b514d455645b3addc5f7ba7714d",
+ "reference": "5d5fe9bb3d656b514d455645b3addc5f7ba7714d",
"shasum": ""
},
"require": {
@@ -3663,7 +3663,7 @@
"throwable",
"whoops"
],
- "time": "2020-05-05T12:28:07+00:00"
+ "time": "2020-06-14T09:00:00+00:00"
},
{
"name": "fzaninotto/faker",
@@ -4600,16 +4600,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "8.5.5",
+ "version": "8.5.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7"
+ "reference": "3f9c4079d1407cd84c51c02c6ad1df6ec2ed1348"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/63dda3b212a0025d380a745f91bdb4d8c985adb7",
- "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3f9c4079d1407cd84c51c02c6ad1df6ec2ed1348",
+ "reference": "3f9c4079d1407cd84c51c02c6ad1df6ec2ed1348",
"shasum": ""
},
"require": {
@@ -4679,7 +4679,7 @@
"testing",
"xunit"
],
- "time": "2020-05-22T13:51:52+00:00"
+ "time": "2020-06-15T10:45:47+00:00"
},
{
"name": "scrivo/highlight.php",
diff --git a/database/migrations/2020_06_15_160417_create_anexos_temps_table.php b/database/migrations/2020_06_15_160417_create_anexos_temps_table.php
new file mode 100644
index 0000000000000000000000000000000000000000..4c0b77a7862dd1a70460a12ad2e58b95ddbc07c7
--- /dev/null
+++ b/database/migrations/2020_06_15_160417_create_anexos_temps_table.php
@@ -0,0 +1,41 @@
+bigIncrements('id');
+ $table->timestamps();
+
+ $table->string('anexoProjeto')->nullable();
+ $table->string('anexoDecisaoCONSU')->nullable();
+ $table->string('anexoPlanilhaPontuacao')->nullable();
+ $table->string('anexoLattesCoordenador')->nullable();
+ $table->string('anexoAutorizacaoComiteEtica')->nullable();
+ $table->string('justificativaAutorizacaoEtica')->nullable();
+
+ $table->integer('eventoId');
+ $table->integer('proponenteId');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('anexos_temps');
+ }
+}
diff --git a/database/seeds/ProponenteSeeder.php b/database/seeds/ProponenteSeeder.php
index 6392ce6d287dc0dc6fdb104c0de6762ceff34fca..d3794b2d2a22c9734aadadc1f44140692e512296 100644
--- a/database/seeds/ProponenteSeeder.php
+++ b/database/seeds/ProponenteSeeder.php
@@ -27,7 +27,26 @@ class ProponenteSeeder extends Seeder
'areaFormacao' => '123123123',
'bolsistaProdutividade' => '123123123',
'nivel' => '123123123',
- 'linkLattes' => '123123123',
+ 'linkLattes' => 'http://lattes.cnpq.br/8363536830656923',
+ 'created_at' => '2020-01-01 00:00:00'
+
+ ]);
+ $user_id = DB::table('users')->where('name','Gabriel')->pluck('id');
+
+ DB::table('proponentes')->insert([
+ 'user_id' => $user_id[0],
+ //'CPF' => '123123123',
+ 'SIAPE' => '123123123',
+ //'email' => '123123123',
+ //'email' => '123123123',
+ 'cargo' => '123123123',
+ 'vinculo' => '123123123',
+ 'titulacaoMaxima' => 'Mestrado',
+ 'anoTitulacao' => '123123123',
+ 'areaFormacao' => '123123123',
+ 'bolsistaProdutividade' => '123123123',
+ 'nivel' => '123123123',
+ 'linkLattes' => 'http://lattes.cnpq.br/8363536830656923',
'created_at' => '2020-01-01 00:00:00'
]);
diff --git a/database/seeds/UsuarioSeeder.php b/database/seeds/UsuarioSeeder.php
index c58c69d1c4f2ad0fffd7b57be6d1220fdfad0c85..f2fa825feaec4536ba75ef6a0ca5b683a27e657b 100644
--- a/database/seeds/UsuarioSeeder.php
+++ b/database/seeds/UsuarioSeeder.php
@@ -48,6 +48,15 @@ class UsuarioSeeder extends Seeder
'email_verified_at'=>'2020-01-01'
]);
+ DB::table('users')->insert([
+
+ 'name'=>'Gabriel',
+ 'email'=>'gabriel.uag.ufrpe@gmail.com',
+ 'password'=>Hash::make('12345678'),
+ 'tipo'=>'proponente',
+ 'email_verified_at'=>'2020-01-01'
+ ]);
+
DB::table('users')->insert([
'name'=>'Coordenador1',
diff --git a/resources/lang/pt-BR/validation.php b/resources/lang/pt-BR/validation.php
index 9f4e343090835f4350e12d20157cd359d5956f58..c26e66f298c2b5317ac316be31f6579be18b8cc3 100644
--- a/resources/lang/pt-BR/validation.php
+++ b/resources/lang/pt-BR/validation.php
@@ -12,7 +12,7 @@ return [
*/
'accepted' => ':Attribute deve ser aceito.',
'active_url' => ':Attribute não é uma URL válida.',
- 'after' => ':Attribute deve ser uma data depois de :date.',
+ 'after' => ':Attribute deve ser uma data depois de ',
'after_or_equal' => ':attribute deve ser uma data posterior ou igual a:date.',
'alpha' => ':Attribute deve conter somente letras.',
'alpha_dash' => ':Attribute deve conter letras, números e traços.',
@@ -57,12 +57,12 @@ return [
'not_in' => 'O :attribute selecionado é inválido.',
'numeric' => ':Attribute deve ser um número.',
'regex' => 'O formato de :attribute é inválido.',
- 'required' => 'O campo :attribute é obrigatório.',
- 'required_if' => 'O campo :attribute é obrigatório quando :other é :value.',
+ 'required' => 'O campo é obrigatório.',
+ 'required_if' => 'O campo é obrigatório.',
'required_unless' => 'O :attribute é necessário a menos que :other esteja em :values.',
- 'required_with' => 'O campo :attribute é obrigatório quando :values está presente.',
+ 'required_with' => 'O campo é obrigatório.',
'required_with_all' => 'O campo :attribute é obrigatório quando :values estão presentes.',
- 'required_without' => 'O campo :attribute é obrigatório quando :values não está presente.',
+ 'required_without' => 'O campo é obrigatório.',
'required_without_all' => 'O campo :attribute é obrigatório quando nenhum destes estão presentes: :values.',
'same' => ':Attribute e :other devem ser iguais.',
'size' => [
diff --git a/resources/views/administrador/editais.blade.php b/resources/views/administrador/editais.blade.php
index 68b2f48510ea65248ec8866bc7a292a2b6dd4d2f..552bcbb7e73ca2fece22fd03aacdd2f388b6730f 100644
--- a/resources/views/administrador/editais.blade.php
+++ b/resources/views/administrador/editais.blade.php
@@ -6,22 +6,13 @@
-
- @if(auth()->user()->tipo === "administrador")
-
Meus Editais
- @else
- Editais
- @endif
-
- @if(auth()->user()->tipo === "administrador")
-
- @endif
-
+
- @if(auth()->user()->tipo === "administrador")
@@ -74,120 +65,7 @@
@endforeach
-
- @endif
-
- @if(auth()->user()->tipo === "proponente")
-
-
-
- Nome do Edital |
- Inicio da Submissão |
- Fim da Submissão |
- Data do Resultado |
- Baixar edital |
- Opção |
-
-
-
- @foreach ($eventos as $evento)
-
-
-
- {{ $evento->nome }}
-
- |
- {{ date('d/m/Y', strtotime($evento->inicioSubmissao)) }} |
- {{ date('d/m/Y', strtotime($evento->fimSubmissao)) }} |
- {{ date('d/m/Y', strtotime($evento->created_at)) }} |
-
-
-
-
- |
-
-
- |
-
- @endforeach
-
-
- @endif
-
- @if(auth()->user()->tipo === "participante")
-
-
-
- Nome do Edital |
- Status |
- Data de Criação |
- Baixar edital |
- Opção |
-
-
-
- @foreach ($eventos as $evento)
-
-
-
- {{ $evento->nome }}
-
- |
- |
- {{ $evento->created_at }} |
-
-
-
-
- |
-
-
- |
-
- @endforeach
-
-
- @endif
+
diff --git a/resources/views/administrador/editar_user.blade.php b/resources/views/administrador/editar_user.blade.php
index a096a8505893aef66648eca7b0218d893a6907ac..b62c831df7ed81e92aa4236ff159b79e75212d6a 100644
--- a/resources/views/administrador/editar_user.blade.php
+++ b/resources/views/administrador/editar_user.blade.php
@@ -9,171 +9,448 @@