Commit 72f53e8f authored by Carlos André's avatar Carlos André
Browse files

editar projeto

parent 44278c29
...@@ -12,10 +12,14 @@ class Arquivo extends Model ...@@ -12,10 +12,14 @@ class Arquivo extends Model
* @var array * @var array
*/ */
protected $fillable = [ protected $fillable = [
'nome', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'nome', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId'
]; ];
public function trabalho(){ public function trabalho(){
return $this->belongsTo('App\Trabalho', 'trabalhoId'); return $this->belongsTo('App\Trabalho', 'trabalhoId');
} }
public function participante() {
return $this->belongsTo('App\Participante', 'participanteId');
}
} }
...@@ -397,42 +397,102 @@ class TrabalhoController extends Controller ...@@ -397,42 +397,102 @@ 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
if ($trabalho->anexoProjeto != null) {
// Anexo Projeto // Anexo Projeto
if(isset($request->anexoProjeto)){ if(isset($request->anexoProjeto)){
if(Storage::disk()->exists($trabalho->anexoProjeto)) {
Storage::delete($trabalho->anexoProjeto);
}
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
} }
//Anexo Decisão CONSU //Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if( isset($request->anexoCONSU)){ if(isset($request->anexoCONSU)){
if(Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) {
Storage::delete($trabalho->anexoDecisaoCONSU);
}
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, 'CONSU.pdf'); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, 'CONSU.pdf');
} }
} }
//Autorização ou Justificativa //Autorização ou Justificativa
if( isset($request->anexoComiteEtica)){ if( isset($request->anexoComiteEtica)){
if(Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) {
Storage::delete($trabalho->anexoAutorizacaoComiteEtica);
}
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, 'Comite_de_etica.pdf'); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, 'Comite_de_etica.pdf');
} elseif( isset($request->justificativaAutorizacaoEtica)){ } elseif( isset($request->justificativaAutorizacaoEtica)){
if(Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica);
}
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
} }
//Anexo Lattes //Anexo Lattes
if( isset($request->anexoLattesCoordenador)){ if( isset($request->anexoLattesCoordenador)){
if(Storage::disk()->exists($trabalho->anexoLattesCoordenador)) {
Storage::delete($trabalho->anexoLattesCoordenador);
}
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
//Anexo Planilha //Anexo Planilha
if( isset($request->anexoPlanilha)){ if( isset($request->anexoPlanilha)){
if(Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) {
Storage::delete($trabalho->anexoPlanilhaPontuacao);
}
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.". $request->file('anexoPlanilha')->extension()); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.". $request->file('anexoPlanilha')->extension());
} }
// Anexo grupo pesquisa // Anexo grupo pesquisa
if(isset($request->grupoPesquisa)){ if(isset($request->grupoPesquisa)){
if(Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) {
Storage::delete($trabalho->anexoGrupoPesquisa);
}
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoPlanilha, "Grupo_de_pesquisa.". $request->file('grupoPesquisa')->extension()); $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoPlanilha, "Grupo_de_pesquisa.". $request->file('grupoPesquisa')->extension());
} }
$trabalho->update(); return $trabalho;
}
// Anexo Projeto
if(isset($request->anexoProjeto)){
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
}
//Anexo Decisão CONSU
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if( isset($request->anexoCONSU)){
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, 'CONSU.pdf');
}
}
//Autorização ou Justificativa
if( isset($request->anexoComiteEtica)){
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, 'Comite_de_etica.pdf');
} elseif( isset($request->justificativaAutorizacaoEtica)){
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
}
//Anexo Lattes
if( isset($request->anexoLattesCoordenador)){
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
}
//Anexo Planilha
if( isset($request->anexoPlanilha)){
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.". $request->file('anexoPlanilha')->extension());
}
// Anexo grupo pesquisa
if(isset($request->grupoPesquisa)){
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoPlanilha, "Grupo_de_pesquisa.". $request->file('grupoPesquisa')->extension());
}
return $trabalho; return $trabalho;
} }
...@@ -495,7 +555,9 @@ class TrabalhoController extends Controller ...@@ -495,7 +555,9 @@ class TrabalhoController extends Controller
'users' => $users, 'users' => $users,
'funcaoParticipantes' => $funcaoParticipantes, 'funcaoParticipantes' => $funcaoParticipantes,
'participantes' => $participantes, 'participantes' => $participantes,
'arquivos' => $arquivos,]); 'arquivos' => $arquivos,
'enum_turno' => Participante::ENUM_TURNO,
]);
} }
/** /**
...@@ -989,11 +1051,7 @@ class TrabalhoController extends Controller ...@@ -989,11 +1051,7 @@ class TrabalhoController extends Controller
$projeto = $this->atribuirDados($request, $edital); $projeto = $this->atribuirDados($request, $edital);
$projeto->save(); $projeto->save();
// Salvando anexos no storage // Email de submissão
$pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id;
$projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital);
$subject = "Submissão de Trabalho"; $subject = "Submissão de Trabalho";
$proponente = Auth()->user(); $proponente = Auth()->user();
Mail::to($proponente->email)->send(new SubmissaoTrabalho($proponente, $subject, $edital, $projeto)); Mail::to($proponente->email)->send(new SubmissaoTrabalho($proponente, $subject, $edital, $projeto));
...@@ -1004,8 +1062,11 @@ class TrabalhoController extends Controller ...@@ -1004,8 +1062,11 @@ class TrabalhoController extends Controller
dd("foi"); dd("foi");
} }
public function atribuirDados(Request $request, $edital) { public function atribuirDados(Request $request, $edital, Trabalho $projeto = null) {
if ($projeto == null) {
$projeto = new Trabalho(); $projeto = new Trabalho();
}
$proponente = User::find(auth()->user()->id)->proponentes; $proponente = User::find(auth()->user()->id)->proponentes;
$hoje = now(); $hoje = now();
...@@ -1021,21 +1082,182 @@ class TrabalhoController extends Controller ...@@ -1021,21 +1082,182 @@ class TrabalhoController extends Controller
$projeto->evento_id = $request->editalId; $projeto->evento_id = $request->editalId;
$projeto->status = 'Submetido'; $projeto->status = 'Submetido';
$projeto->proponente_id = $proponente->id; $projeto->proponente_id = $proponente->id;
//Anexos
$projeto->anexoProjeto = $request->anexoProjeto;
$projeto->anexoAutorizacaoComiteEtica = $request->anexoComiteEtica;
$projeto->justificativaAutorizacaoEtica = $request->justificativaAutorizacaoEtica;
$projeto->anexoLattesCoordenador = $request->anexoLattesCoordenador;
$projeto->anexoPlanilhaPontuacao = $request->anexoPlanilha;
if($edital->tipo == 'PIBIC' || $edital->tipo == 'PIBIC-EM'){ // Salvando anexos no storage
$projeto->anexoDecisaoCONSU = $request->anexoCONSU;
} $pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id;
$projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital);
return $projeto; return $projeto;
} }
public function salvarParticipantes(Request $request, $edital, $projeto) { public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false) {
if ($edicao) {
$participantes = $projeto->participantes;
$participantesPermanecem = collect();
foreach ($request->participante_id as $key => $id) {
// Novo participante
if ($id == 0) {
$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_cursado[$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_cursado[$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();
}
// 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_cursado[$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 = $participante->id;
$arquivo->versaoFinal = true;
$arquivo->save();
}
}
}
// Excluidos
$participantesExcluidos = $participantes->diff($participantesPermanecem);
foreach ($participantesExcluidos as $participante) {
$participante->delete();
}
}
if($request->emailParticipante != null) { if($request->emailParticipante != null) {
foreach ($request->emailParticipante as $key => $email) { foreach ($request->emailParticipante as $key => $email) {
$userParticipante = User::where('email', $email)->first(); $userParticipante = User::where('email', $email)->first();
...@@ -1130,4 +1352,23 @@ class TrabalhoController extends Controller ...@@ -1130,4 +1352,23 @@ class TrabalhoController extends Controller
} }
} }
} }
public function atualizar(Request $request, $id) {
$edital = Evento::find($request->editalId);
$hoje = now();
$projeto = Trabalho::find($id);
if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) {
return redirect()->route('inicial')->with(['error'=> 0, 'mensagem' => 'As submissões para o edital '. $edital->titulo .' foram encerradas.']);
}
$projeto = $this->atribuirDados($request, $edital, $projeto);
$projeto->update();
// Salvando participantes
$this->salvarParticipantes($request, $edital, $projeto, true);
dd("foi");
}
} }
\ No newline at end of file
...@@ -18,4 +18,8 @@ class Participante extends Model ...@@ -18,4 +18,8 @@ class Participante extends Model
public function trabalhos(){ public function trabalhos(){
return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); return $this->belongsToMany('App\Trabalho', 'trabalho_participante');
} }
public function planoTrabalho() {
return $this->hasOne('App\Arquivo', 'participanteId');
}
} }
...@@ -83,7 +83,7 @@ class Trabalho extends Model ...@@ -83,7 +83,7 @@ class Trabalho extends Model
return $this->hasMany('App\PlanoTrabalho'); return $this->hasMany('App\PlanoTrabalho');
} }
public function participantes(){ public function participantes(){
return $this->belongsToMany('App\Participante', 'trabalho_participante'); return $this->hasMany('App\Participante', 'trabalho_id');
} }
public function proponente(){ public function proponente(){
return $this->belongsTo('App\Proponente'); return $this->belongsTo('App\Proponente');
......
...@@ -23,11 +23,11 @@ class CreateTrabalhosTable extends Migration ...@@ -23,11 +23,11 @@ class CreateTrabalhosTable extends Migration
$table->string('pontuacaoPlanilha'); $table->string('pontuacaoPlanilha');
$table->date('data')->nullable(); $table->date('data')->nullable();
//Anexos //Anexos
$table->string('anexoProjeto'); $table->string('anexoProjeto')->nullable();
$table->string('anexoDecisaoCONSU')->nullable(); $table->string('anexoDecisaoCONSU')->nullable();
$table->string('anexoPlanilhaPontuacao'); $table->string('anexoPlanilhaPontuacao')->nullable();
$table->string('anexoLattesCoordenador'); $table->string('anexoLattesCoordenador')->nullable();
$table->string('anexoGrupoPesquisa'); $table->string('anexoGrupoPesquisa')->nullable();
$table->string('anexoAutorizacaoComiteEtica')->nullable(); $table->string('anexoAutorizacaoComiteEtica')->nullable();
$table->string('justificativaAutorizacaoEtica')->nullable(); $table->string('justificativaAutorizacaoEtica')->nullable();
//chaves estrangeiras //chaves estrangeiras
......
This diff is collapsed.
...@@ -102,7 +102,7 @@ Route::prefix('avaliador')->name('avaliador.')->group(function(){ ...@@ -102,7 +102,7 @@ Route::prefix('avaliador')->name('avaliador.')->group(function(){
Route::get( '/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital' )->name('projetos.edital'); Route::get( '/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital' )->name('projetos.edital');
Route::get( '/projeto/{id}/visualizar', 'TrabalhoController@show' )->name('trabalho.show'); Route::get( '/projeto/{id}/visualizar', 'TrabalhoController@show' )->name('trabalho.show');
Route::get( '/projeto/{id}/editar', 'TrabalhoController@edit' )->name('trabalho.editar'); Route::get( '/projeto/{id}/editar', 'TrabalhoController@edit' )->name('trabalho.editar');
Route::post( '/projeto/{id}/atualizar', 'TrabalhoController@update' )->name('trabalho.update'); Route::post( '/projeto/{id}/atualizar', 'TrabalhoController@atualizar' )->name('trabalho.update');
Route::get( '/projeto/{id}/excluir', 'TrabalhoController@destroy' )->name('trabalho.destroy'); Route::get( '/projeto/{id}/excluir', 'TrabalhoController@destroy' )->name('trabalho.destroy');
Route::get( '/projeto/{id}/excluirParticipante','TrabalhoController@excluirParticipante')->name('trabalho.excluirParticipante'); Route::get( '/projeto/{id}/excluirParticipante','TrabalhoController@excluirParticipante')->name('trabalho.excluirParticipante');
......
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