"database/git@sites.upe.br:walter.felipe/submeta.git" did not exist on "319e67d85e047996728e09a5b8beea9fe205a9b1"
Commit 6a60d89b authored by Guilherme Silva's avatar Guilherme Silva
Browse files

Adicionado notificações e avisos de email na realização de ações

parent cae7206d
...@@ -537,7 +537,19 @@ class AdministradorController extends Controller ...@@ -537,7 +537,19 @@ class AdministradorController extends Controller
$trabalho->avaliadors()->attach($avaliadores); $trabalho->avaliadors()->attach($avaliadores);
$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){
} }
......
...@@ -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
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