Unverified Commit 5250d353 authored by Gabriel Antônio da Silva's avatar Gabriel Antônio da Silva Committed by GitHub
Browse files

Merge pull request #5 from lmts-ufape/submeter

Funcionalidades básicas
parents 5de5a599 96ffb16f
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Administrador extends Model
{
protected $fillable = ['matricula'];
public function user(){
return $this->belongsTo('App\User');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AdministradorResponsavel extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Avaliador extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CoordenadorComissao extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function editais(){
return $this->hasMany('App\Evento');
}
public function trabalho(){
return $this->hasMany('App\Trabalho');
}
}
...@@ -12,11 +12,10 @@ class Evento extends Model ...@@ -12,11 +12,10 @@ class Evento extends Model
* @var array * @var array
*/ */
protected $fillable = [ protected $fillable = [
'nome', 'descricao', 'tipo', 'dataInicio', 'dataFim', 'nome', 'descricao', 'tipo',
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao', 'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'inicioResultado', 'fimResultado', 'possuiTaxa', 'valorTaxa', 'fotoEvento', 'resultado', 'coordenadorId',
'enderecoId', 'coordenadorId', 'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id'
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo',
]; ];
public function endereco(){ public function endereco(){
...@@ -35,5 +34,9 @@ class Evento extends Model ...@@ -35,5 +34,9 @@ class Evento extends Model
return $this->belongsTo('App\User', 'coordenadorId'); return $this->belongsTo('App\User', 'coordenadorId');
} }
public function coordenadorComissao(){
return $this->belongsTo('App\CoordenadorComissao', 'coordenadorId');
}
} }
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class FuncaoParticipantes extends Model
{
//
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class GrandeArea extends Model
{
//
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Administrador;
use App\User;
use App\GrandeArea;
use App\Avaliador;
use App\AdministradorResponsavel;
use App\Participante;
use App\Proponente;
use Illuminate\Support\Facades\Hash;
use App\Evento;
class AdministradorController extends Controller
{
public function index(){
return view('administrador.index');
}
public function naturezas(){
return view('naturezas.index');
}
public function usuarios(){
$users = User::orderBy('name')->get();
return view('administrador.usersAdmin')->with(['users' => $users]);
}
public function editais(){
//$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first();
//$eventos = Evento::where('coordenadorId',$admin->id )->get();
$eventos = Evento::where('criador_id',Auth()->user()->id )->get();
return view('administrador.editais', ['eventos'=> $eventos]);
}
public function create() {
$grandesAreas = GrandeArea::orderBy('nome')->get();
return view('administrador.novo_user')->with(['grandeAreas' => $grandesAreas]);
}
public function salvar(Request $request) {
if ($request->tipo != "proponente") {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required|unique:users',
'senha' => 'required',
'confirmar_senha' => 'required',
'cpf' => 'required|cpf|unique:users',
]);
} else {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required|unique:users',
'senha' => 'required',
'confirmar_senha' => 'required',
'cpf' => 'required|cpf|unique:users',
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'area' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
'linkLattes' => 'required',
]);
}
if (!($request->senha === $request->confirmar_senha)) {
return redirect()->back()->withErrors(['senha' => 'Senhas diferentes']);
}
$user = new User();
$user->name = $request->nome;
$user->tipo = $request->tipo;
$user->cpf = $request->cpf;
$user->email = $request->email;
$user->password = bcrypt($request->senha);
$user->save();
switch ($request->tipo) {
case "administradorResponsavel":
$adminResp = new AdministradorResponsavel();
$adminResp->user_id = $user->id;
$adminResp->save();
break;
case "avaliador":
$avaliador = new Avaliador();
$avaliador->user_id = $user->id;
$avaliador->save();
break;
case "proponente":
$proponente = new Proponente();
$proponente->SIAPE = $request->SIAPE;
$proponente->cargo = $request->cargo;
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->grandeArea = $request->area;
$proponente->area = "teste";
$proponente->subArea = "teste";
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
$proponente->nivel = $request->nivel;
$proponente->linkLattes = $request->linkLattes;
$proponente->user_id = $user->id;
$proponente->save();
break;
case "participante":
$participante = new Participante();
$participante->user_id = $user->id;
$participante->save();
break;
}
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário cadastrado com sucesso']);
}
public function edit($id) {
$user = User::find($id);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
return view ('administrador.editar_user')->with(['user' => $user,
'adminResp' => $adminResp,
'proponente' => $proponente,
'participante' => $participante,]);
}
public function update(Request $request, $id) {
$user = User::find($id);
if ($request->tipo != "proponente") {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required',
// 'senha' => 'required',
// 'confirmar_senha' => 'required',
'cpf' => 'required|cpf',
]);
} else {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required',
// 'senha' => 'required',
// 'confirmar_senha' => 'required',
'cpf' => 'required|cpf',
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'grandeArea' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
'linkLattes' => 'required',
]);
}
// if (!(Hash::check($request->senha_atual, $user->password))) {
// return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']);
// }
// if (!($request->nova_senha === $request->confirmar_senha)) {
// return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']);
// }
switch ($request->tipo) {
case "administradorResponsavel":
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$adminResp->user_id = $user->id;
$adminResp->update();
break;
case "avaliador":
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$avaliador->user_id = $user->id;
$avaliador->update();
break;
case "proponente":
$proponente = Proponente::where('user_id', '=', $id)->first();
$proponente->SIAPE = $request->SIAPE;
$proponente->cargo = $request->cargo;
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->grandeArea = $request->grandeArea;
$proponente->area = "teste";
$proponente->subArea = "teste";
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
$proponente->nivel = $request->nivel;
$proponente->linkLattes = $request->linkLattes;
$proponente->user_id = $user->id;
$proponente->update();
break;
case "participante":
$participante = Participante::where('user_id', '=', $id)->first();
$participante->user_id = $user->id;
$participante->update();
break;
}
$user->name = $request->nome;
$user->tipo = $request->tipo;
$user->email = $request->email;
$user->cpf = $request->cpf;
// $user->password = bcrypt($request->nova_senha);
$user->update();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário atualizado com sucesso']);
}
public function destroy($id) {
$user = User::find($id);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
if (!(is_null($adminResp))) {
$adminResp->delete();
} else if (!(is_null($avaliador))) {
$avaliador->delete();
} else if (!(is_null($proponente))) {
$proponente->delete();
} else if (!(is_null($participante))) {
$participante->delete();
}
$user->delete();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário deletado com sucesso']);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\AdministradorResponsavel;
use App\User;
use App\Evento;
use App\Avaliador;
class AdministradorResponsavelController extends Controller
{
public function index(){
return view('administradorResponsavel.index');
}
public function editais(){
//$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first();
$eventos = Evento::where('criador_id',Auth()->user()->id )->get();
return view('administradorResponsavel.editais', ['eventos'=> $eventos]);
}
public function usuarios(){
return view('administradorResponsavel.usuarios');
}
public function atribuirPermissao(Request $request){
$user = User::where('id', $request->user_id)->first();
$isAvaliador = Avaliador::where('user_id', $request->user_id )->count();
$avaliador = new Avaliador();
$avaliador->save();
if($isAvaliador == 0){
//$user->avaliadors()->save($user);
$avaliador->user()->associate($user); // um avaliador tem um usuario
$avaliador->save();
//$user->avaliadors()->save($avaliador); //um usuario pode ter muitos avaliadores
//$user->save();
//$avaliador->user_id = $user->id;
$success = true;
}else{
$avaliador = Avaliador::where('user_id', $request->user_id )->first();
$avaliador->user()->dissociate($user); // um avaliador tem um usuario
$avaliador->save();
$success = false;
}
return response()->json( $success );
}
public function verPermissao(Request $request){
$user = User::where('id', $request->user_id)->first();
$isAvaliador = Avaliador::where('user_id', $request->user_id)->count();
if($isAvaliador != 0){
$success = true;
}else{
$success = false;
}
return response()->json( [$success] );
//return response()->json( $request->user_id );
}
}
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Area; use App\Area;
use App\GrandeArea;
use App\SubArea;
use App\AreaModalidade; use App\AreaModalidade;
use App\Pertence; use App\Pertence;
use App\Revisor; use App\Revisor;
...@@ -18,7 +20,8 @@ class AreaController extends Controller ...@@ -18,7 +20,8 @@ class AreaController extends Controller
*/ */
public function index() public function index()
{ {
// $areas = Area::orderBy('nome')->get();
return view('naturezas.area.index')->with(['areas' => $areas]);
} }
/** /**
...@@ -26,9 +29,9 @@ class AreaController extends Controller ...@@ -26,9 +29,9 @@ class AreaController extends Controller
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function create() public function create($grandeAreaid)
{ {
// return view('naturezas.area.nova_area')->with(['grandeAreaId' => $grandeAreaid]);
} }
/** /**
...@@ -37,18 +40,18 @@ class AreaController extends Controller ...@@ -37,18 +40,18 @@ class AreaController extends Controller
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request) public function store(Request $request, $id)
{ {
$validatedData = $request->validate([ $validatedData = $request->validate([
'nome' => ['required', 'string'], 'nome' => 'required',
]); ]);
Area::create([ $area = new Area();
'nome' => $request->nome, $area->nome = $request->nome;
'eventoId' => $request->eventoId, $area->grande_area_id = $id;
]); $area->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]); return redirect( route('grandearea.show', ['id' => $id]) )->with(['mensagem' => 'Nova área cadastrada com sucesso']);
} }
/** /**
...@@ -57,9 +60,12 @@ class AreaController extends Controller ...@@ -57,9 +60,12 @@ class AreaController extends Controller
* @param \App\Area $area * @param \App\Area $area
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function show(Area $area) public function show($id)
{ {
// $area = Area::find($id);
$subAreas = SubArea::where('area_id', '=', $id)->orderBy('nome')->get();
return view('naturezas.area.detalhes')->with(['area' => $area, 'subAreas' => $subAreas]);
} }
/** /**
...@@ -68,9 +74,10 @@ class AreaController extends Controller ...@@ -68,9 +74,10 @@ class AreaController extends Controller
* @param \App\Area $area * @param \App\Area $area
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function edit(Area $area) public function edit($id)
{ {
// $area = Area::find($id);
return view('naturezas.area.editar_area')->with(['area' => $area]);
} }
/** /**
...@@ -80,9 +87,18 @@ class AreaController extends Controller ...@@ -80,9 +87,18 @@ class AreaController extends Controller
* @param \App\Area $area * @param \App\Area $area
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, Area $area) public function update(Request $request, $id)
{ {
// $validated = $request->validate([
'nome' => 'required',
]);
$area = Area::find($id);
$grandeArea = GrandeArea::find($area->grande_area_id);
$area->nome = $request->nome;
$area->update();
return redirect( route('grandearea.show', ['id' => $area->grande_area_id]) )->with(['grandeArea' => $grandeArea,'mensagem' => 'Área atualizada com sucesso']);
} }
/** /**
...@@ -94,26 +110,11 @@ class AreaController extends Controller ...@@ -94,26 +110,11 @@ class AreaController extends Controller
public function destroy($id) public function destroy($id)
{ {
$area = Area::find($id); $area = Area::find($id);
$area_modalidade = AreaModalidade::where('areaId', $id); $id = $area->grande_area_id;
$pertence = Pertence::where('areaId', $id);
$revisores = Revisor::where('areaId', $id);
$trabalhos = Trabalho::where('areaId', $id);
if(isset($area_modalidade)){
$area_modalidade->delete();
}
if(isset($pertence)){
$pertence->delete();
}
if(isset($revisores)){
$revisores->delete();
}
if(isset($trabalhos)){
$trabalhos->delete();
}
$area->delete(); $area->delete();
//ver a questão de chave estrangeira para a tabela sub-áreas
return redirect()->back(); $grandeArea = GrandeArea::find($id);
return redirect( route('grandearea.show', ['id' => $id]) )->with(['grandeArea' => $grandeArea,'mensagem' => 'Área deletada com sucesso']);
} }
} }
...@@ -9,7 +9,9 @@ use Illuminate\Support\Facades\Hash; ...@@ -9,7 +9,9 @@ use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use App\User; use App\User;
use App\Participante;
use App\Endereco; use App\Endereco;
class RegisterController extends Controller class RegisterController extends Controller
{ {
/* /*
...@@ -98,10 +100,14 @@ class RegisterController extends Controller ...@@ -98,10 +100,14 @@ class RegisterController extends Controller
$user->cpf = $data['cpf']; $user->cpf = $data['cpf'];
$user->celular = $data['celular']; $user->celular = $data['celular'];
$user->instituicao = $data['instituicao']; $user->instituicao = $data['instituicao'];
$user->tipo = 'participante';
$user->enderecoId = $end->id; $user->enderecoId = $end->id;
$user->save(); $user->save();
$participante = new Participante();
$user->participantes()->save($participante);
return $user; return $user;
} }
} }
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Evento;
use App\CoordenadorComissao;
use App\Avaliador;
use App\Proponente;
use App\Participante;
use Illuminate\Support\Facades\Log;
class CoordenadorComissaoController extends Controller
{
public function index(){
return view('coordenadorComissao.index');
}
public function usuarios(){
return view('coordenadorComissao.usuarios');
}
public function editais(){
$coordenador = CoordenadorComissao::with('user')->where('user_id', Auth()->user()->id)->first();
$eventos = Evento::where('coordenadorId',$coordenador->id )->get();
return view('coordenadorComissao.editais', ['eventos'=> $eventos]);
}
public function coordenadorComite(){
$usuarios = CoordenadorComissao::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function avaliador(){
$usuarios = Avaliador::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function proponente(){
$usuarios = Proponente::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function participante(){
$usuarios = Participante::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
}
...@@ -11,8 +11,10 @@ use App\Atribuicao; ...@@ -11,8 +11,10 @@ use App\Atribuicao;
use App\Modalidade; use App\Modalidade;
use App\ComissaoEvento; use App\ComissaoEvento;
use App\User; use App\User;
use App\Proponente;
use App\Trabalho; use App\Trabalho;
use App\AreaModalidade; use App\AreaModalidade;
use App\CoordenadorComissao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
...@@ -36,6 +38,17 @@ class EventoController extends Controller ...@@ -36,6 +38,17 @@ class EventoController extends Controller
} }
public function listar()
{
//
$eventos = Evento::all();
// $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
return view('evento.listarEvento',['eventos'=>$eventos]);
}
/** /**
* Show the form for creating a new resource. * Show the form for creating a new resource.
* *
...@@ -43,8 +56,8 @@ class EventoController extends Controller ...@@ -43,8 +56,8 @@ class EventoController extends Controller
*/ */
public function create() public function create()
{ {
// $coordenadors = CoordenadorComissao::with('user')->get();
return view('evento.criarEvento'); return view('evento.criarEvento', ['coordenadors' => $coordenadors]);
} }
/** /**
...@@ -59,106 +72,64 @@ class EventoController extends Controller ...@@ -59,106 +72,64 @@ class EventoController extends Controller
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
//$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first();
$user_id = Auth()->user()->id;
// dd($request); //dd($user_id);
// validar datas nulas antes, pois pode gerar um bug // validar datas nulas antes, pois pode gerar um bug
if( if(
$request->dataInicio == null ||
$request->dataFim == null ||
$request->inicioSubmissao == null || $request->inicioSubmissao == null ||
$request->fimSubmissao == null || $request->fimSubmissao == null ||
$request->inicioRevisao == null || $request->inicioRevisao == null ||
$request->fimRevisao == null || $request->fimRevisao == null ||
$request->inicioResultado == null || $request->resultado == null
$request->fimResultado == null
){ ){
$validatedData = $request->validate([ $validatedData = $request->validate([
'nome' => ['required', 'string'], 'nome' => ['required', 'string'],
// 'numeroParticipantes' => ['required', 'integer', 'gt:0'],
'descricao' => ['required', 'string'], 'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'dataInicio' => ['required', 'date','after:'. $yesterday],
'dataFim' => ['required', 'date'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'], 'fimRevisao' => ['required', 'date'],
'inicioResultado' => ['required', 'date'], 'resultado' => ['required', 'date'],
'fimResultado' => ['required', 'date'], 'pdfEdital' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
// 'valorTaxa' => ['required', 'integer'], 'modeloDocumento' => ['required', 'file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
'fotoEvento' => ['file', 'mimes:png'],
]); ]);
} }
// validacao normal // validacao normal
$validatedData = $request->validate([ $validatedData = $request->validate([
'nome' => ['required', 'string'], 'nome' => ['required', 'string'],
// 'numeroParticipantes' => ['required', 'integer', 'gt:0'],
'descricao' => ['required', 'string'], 'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'dataInicio' => ['required', 'date', 'after:' . $yesterday],
'dataFim' => ['required', 'date', 'after:' . $request->dataInicio],
'inicioSubmissao' => ['required', 'date', 'after:' . $yesterday], 'inicioSubmissao' => ['required', 'date', 'after:' . $yesterday],
'fimSubmissao' => ['required', 'date', 'after:' . $request->inicioSubmissao], 'fimSubmissao' => ['required', 'date', 'after:' . $request->inicioSubmissao],
'inicioRevisao' => ['required', 'date', 'after:' . $yesterday], 'inicioRevisao' => ['required', 'date', 'after:' . $yesterday],
'fimRevisao' => ['required', 'date', 'after:' . $request->inicioRevisao], 'fimRevisao' => ['required', 'date', 'after:' . $request->inicioRevisao],
'inicioResultado' => ['required', 'date', 'after:' . $yesterday], 'resultado' => ['required', 'date', 'after:' . $yesterday],
'fimResultado' => ['required', 'date', 'after:' . $request->inicioResultado], 'pdfEdital' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
// 'valorTaxa' => ['required', 'integer'], 'modeloDocumento' => ['required', 'file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
'fotoEvento' => ['file', 'mimes:png'],
]);
// validar endereco
$validatedData = $request->validate([
'rua' => ['required', 'string'],
'numero' => ['required', 'string'],
'bairro' => ['required', 'string'],
'cidade' => ['required', 'string'],
'uf' => ['required', 'string'],
'cep' => ['required', 'string'],
]);
$endereco = Endereco::create([
'rua' => $request->rua,
'numero' => $request->numero,
'bairro' => $request->bairro,
'cidade' => $request->cidade,
'uf' => $request->uf,
'cep' => $request->cep,
]); ]);
$evento = Evento::create([ $evento = Evento::create([
'nome' => $request->nome, 'nome' => $request->nome,
// 'numeroParticipantes' => $request->numeroParticipantes,
'descricao' => $request->descricao, 'descricao' => $request->descricao,
'tipo' => $request->tipo, 'tipo' => $request->tipo,
'dataInicio' => $request->dataInicio,
'dataFim' => $request->dataFim,
'inicioSubmissao' => $request->inicioSubmissao, 'inicioSubmissao' => $request->inicioSubmissao,
'fimSubmissao' => $request->fimSubmissao, 'fimSubmissao' => $request->fimSubmissao,
'inicioRevisao' => $request->inicioRevisao, 'inicioRevisao' => $request->inicioRevisao,
'fimRevisao' => $request->fimRevisao, 'fimRevisao' => $request->fimRevisao,
'inicioResultado' => $request->inicioResultado, 'resultado' => $request->resultado,
'fimResultado' => $request->fimResultado, 'coordenadorId' => $request->coordenador_id,
// 'possuiTaxa' => $request->possuiTaxa, 'criador_id' => $user_id,
// 'valorTaxa' => $request->valorTaxa,
'enderecoId' => $endereco->id,
'coordenadorId' => Auth::user()->id,
]); ]);
//dd($evento);
// se o evento tem foto // $user = User::find($request->coordenador_id);
// $user->coordenadorComissao()->editais()->save($evento);
if($request->fotoEvento != null){
$file = $request->fotoEvento;
$path = 'public/eventos/' . $evento->id;
$nome = '/logo.png';
Storage::putFileAs($path, $file, $nome);
$evento->fotoEvento = $path . $nome;
$evento->save();
}
// se vou me tornar coordenador do Evento // se vou me tornar coordenador do Evento
...@@ -167,13 +138,29 @@ class EventoController extends Controller ...@@ -167,13 +138,29 @@ class EventoController extends Controller
// $evento->save(); // $evento->save();
// } // }
$evento->coordenadorId = Auth::user()->id; //$evento->coordenadorId = Auth::user()->id;
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome;
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
$evento->save(); $evento->save();
$user = Auth::user(); // $user = Auth::user();
$subject = "Evento Criado"; // $subject = "Evento Criado";
Mail::to($user->email) // Mail::to($user->email)
->send(new EventoCriado($user, $subject)); // ->send(new EventoCriado($user, $subject));
return redirect()->route('coord.home'); return redirect()->route('coord.home');
} }
...@@ -187,32 +174,43 @@ class EventoController extends Controller ...@@ -187,32 +174,43 @@ class EventoController extends Controller
public function show($id) public function show($id)
{ {
$evento = Evento::find($id); $evento = Evento::find($id);
$hasTrabalho = false; $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$hasTrabalhoCoautor = false; if($proponente != null){
$hasFile = false; $hasTrabalho = false;
$trabalhos = Trabalho::where('autorId', Auth::user()->id)->get(); $hasFile = false;
$trabalhosCount = Trabalho::where('autorId', Auth::user()->id)->count(); $trabalhos = $proponente->trabalhos()->get();
$trabalhosId = Trabalho::where('eventoId', $evento->id)->select('id')->get(); $trabalhosCount = $proponente->trabalhos()->count();
$trabalhosIdCoautor = Coautor::whereIn('trabalhoId', $trabalhosId)->where('autorId', Auth::user()->id)->select('trabalhoId')->get();
$coautorCount = Coautor::whereIn('trabalhoId', $trabalhosId)->where('autorId', Auth::user()->id)->count(); if($trabalhosCount != 0){
$trabalhosCoautor = Trabalho::whereIn('id', $trabalhosIdCoautor)->get(); $hasTrabalho = true;
if($trabalhosCount != 0){ $hasFile = true;
$hasTrabalho = true; }
$hasFile = true; }else{
} $hasTrabalho = false;
if($coautorCount != 0){ $hasFile = false;
$hasTrabalhoCoautor = true; $trabalhos = 0;
$hasFile = true; $trabalhosCount = 0;
} }
$trabalhosId = Trabalho::where('evento_id', $evento->id)->select('id')->get();
//$trabalhosIdCoautor = Proponente::whereIn('trabalhoId', $trabalhosId)->where('proponente_id', Auth::user()->id)->select('trabalhoId')->get();
//$coautorCount = Coautor::whereIn('trabalhoId', $trabalhosId)->where('proponente_id', Auth::user()->id)->count();
//$trabalhosCoautor = Trabalho::whereIn('id', $trabalhosIdCoautor)->get();
// if($coautorCount != 0){
// $hasTrabalhoCoautor = true;
// $hasFile = true;
// }
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
// dd(false); // dd(false);
return view('evento.visualizarEvento', [ return view('evento.visualizarEvento', [
'evento' => $evento, 'evento' => $evento,
'trabalhos' => $trabalhos, 'trabalhos' => $trabalhos,
'trabalhosCoautor' => $trabalhosCoautor, // 'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho, 'hasTrabalho' => $hasTrabalho,
'hasTrabalhoCoautor' => $hasTrabalhoCoautor, // 'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile, 'hasFile' => $hasFile,
'mytime' => $mytime 'mytime' => $mytime
]); ]);
...@@ -249,9 +247,8 @@ class EventoController extends Controller ...@@ -249,9 +247,8 @@ class EventoController extends Controller
public function edit($id) public function edit($id)
{ {
// dd($id); // dd($id);
$evento = Evento::find($id); $evento = Evento::find($id);
$endereco = Endereco::find($evento->enderecoId); return view('evento.editarEvento',['evento'=>$evento]);
return view('evento.editarEvento',['evento'=>$evento,'endereco'=>$endereco]);
} }
/** /**
...@@ -263,33 +260,35 @@ class EventoController extends Controller ...@@ -263,33 +260,35 @@ class EventoController extends Controller
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
$evento = Evento::find($id); //dd($request);
$endereco = Endereco::find($evento->enderecoId); $evento = Evento::find($id);
$evento->nome = $request->nome; $evento->nome = $request->nome;
// $evento->numeroParticipantes = $request->numeroParticipantes;
$evento->descricao = $request->descricao; $evento->descricao = $request->descricao;
$evento->tipo = $request->tipo; $evento->tipo = $request->tipo;
$evento->dataInicio = $request->dataInicio;
$evento->dataFim = $request->dataFim;
$evento->inicioSubmissao = $request->inicioSubmissao; $evento->inicioSubmissao = $request->inicioSubmissao;
$evento->fimSubmissao = $request->fimSubmissao; $evento->fimSubmissao = $request->fimSubmissao;
$evento->inicioRevisao = $request->inicioRevisao; $evento->inicioRevisao = $request->inicioRevisao;
$evento->fimRevisao = $request->fimRevisao; $evento->fimRevisao = $request->fimRevisao;
$evento->inicioResultado = $request->inicioResultado; $evento->resultado = $request->resultado;
$evento->fimResultado = $request->fimResultado;
// $evento->possuiTaxa = $request->possuiTaxa; if($request->pdfEdital != null){
// $evento->valorTaxa = $request->valorTaxa; $pdfEdital = $request->pdfEdital;
$evento->enderecoId = $endereco->id; $path = 'pdfEdital/' . $evento->id . '/';
$evento->save(); $nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
}
if($request->modeloDocumento != null){
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
}
$endereco->rua = $request->rua; $evento->save();
$endereco->numero = $request->numero;
$endereco->bairro = $request->bairro;
$endereco->cidade = $request->cidade;
$endereco->uf = $request->uf;
$endereco->cep = $request->cep;
$endereco->save();
$eventos = Evento::all(); $eventos = Evento::all();
return view('coordenador.home',['eventos'=>$eventos]); return view('coordenador.home',['eventos'=>$eventos]);
...@@ -304,7 +303,6 @@ class EventoController extends Controller ...@@ -304,7 +303,6 @@ class EventoController extends Controller
public function destroy($id) public function destroy($id)
{ {
$evento = Evento::find($id); $evento = Evento::find($id);
$endereco = Endereco::find($evento->enderecoId);
$areas = Area::where('eventoId', $id); $areas = Area::where('eventoId', $id);
$atividades = Atividade::where('eventoId', $id); $atividades = Atividade::where('eventoId', $id);
...@@ -328,8 +326,10 @@ class EventoController extends Controller ...@@ -328,8 +326,10 @@ class EventoController extends Controller
$trabalhos->delete(); $trabalhos->delete();
} }
Storage::deleteDirectory('pdfEdital/' . $evento->id );
Storage::deleteDirectory('modeloDocumento/' . $evento->id);
$evento->delete(); $evento->delete();
$endereco->delete();
return redirect()->back(); return redirect()->back();
} }
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\GrandeArea;
use App\Area;
class GrandeAreaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$grandesAreas = GrandeArea::orderBy('nome')->get();
return view('naturezas.grandeArea.index')->with(['grandesAreas' => $grandesAreas]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('naturezas.grandeArea.nova_grande_area');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'nome' => 'required',
]);
$GrandeArea = new GrandeArea();
$GrandeArea->nome = $request->nome;
$GrandeArea->save();
return redirect( route('grandearea.index') )->with(['mensagem' => 'Área cadastrada com sucesso']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$grandeArea = GrandeArea::find($id);
$areas = Area::where('grande_area_id', '=', $id)->orderBy('nome')->get();
return view('naturezas.grandeArea.detalhes')->with(['grandeArea' => $grandeArea, 'areas' => $areas]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$grandeArea = GrandeArea::find($id);
return view('naturezas.grandeArea.editar_grande_area')->with(['grandeArea' => $grandeArea]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$grandeArea = GrandeArea::find($id);
$grandeArea->nome = $request->nome;
$grandeArea->update();
return redirect( route('grandearea.index') )->with(['mensagem' => 'Área editada com sucesso']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$grandeArea = GrandeArea::find($id);
$grandeArea->delete();
return redirect( route('grandearea.index') )->with(['mensagem' => 'Área excluida com sucesso']);
}
}
\ No newline at end of file
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Auth;
use Illuminate\Support\Facades\Log;
class HomeController extends Controller class HomeController extends Controller
{ {
...@@ -13,7 +15,7 @@ class HomeController extends Controller ...@@ -13,7 +15,7 @@ class HomeController extends Controller
*/ */
public function __construct() public function __construct()
{ {
$this->middleware(['auth','verified']); $this->middleware(['auth']);
} }
/** /**
...@@ -22,8 +24,27 @@ class HomeController extends Controller ...@@ -22,8 +24,27 @@ class HomeController extends Controller
* @return \Illuminate\Contracts\Support\Renderable * @return \Illuminate\Contracts\Support\Renderable
*/ */
public function index() public function index()
{ {
return view('home'); $eventos = \App\Evento::all();
if(Auth::check()){
if(Auth::user()->tipo == 'administrador'){
return view('administrador.index');
}
else if (Auth::user()->tipo == 'administradorResponsavel') {
return view('administradorResponsavel.index');
}
else if (Auth::user()->tipo == 'coordenador') {
return view('coordenadorComissao.index');
}
else if (Auth::user()->tipo == 'proponente') {
return view('proponente.index');
}
else if (Auth::user()->tipo == 'participante') {
return view('participante.index');
}
}
Log::debug('HomeController');
return view('index', ['eventos' => $eventos]);
} }
public function downloadArquivo(Request $request){ public function downloadArquivo(Request $request){
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProponenteController extends Controller
{
//
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Area;
use App\SubArea;
class SubAreaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$subAreas = SubArea::orderBy('nome')->get();
return view('naturezas.subArea.index')->with(['subAreas' => $subAreas]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create($areaId)
{
return view('naturezas.subArea.nova_subarea')->with(['areaId' => $areaId]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, $id)
{
$validated = $request->validate([
'nome' => 'required',
]);
$subarea = new SubArea();
$subarea->nome = $request->nome;
$subarea->area_id = $id;
$subarea->save();
return redirect( route('area.show', ['id' => $id]) )->with(['mensagem' => 'Subárea cadastrada com sucesso']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$subarea = SubArea::find($id);
return view('naturezas.subArea.editar_subarea')->with(['subarea' => $subarea]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$validated = $request->validate([
'nome' => 'required',
]);
$subarea = SubArea::find($id);
$subarea->nome = $request->nome;
$subarea->update();
return redirect( route('area.show', ['id' => $subarea->area_id]) )->with(['mensagem' => 'Subárea atualizada com sucesso']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$subarea = SubArea::find($id);
$areaId = $subarea->area_id;
$subarea->delete();
return redirect( route('area.show', ['id' => $areaId]) )->with(['mensagem' => 'Subárea deletada com sucesso']);
}
}
...@@ -5,13 +5,19 @@ namespace App\Http\Controllers; ...@@ -5,13 +5,19 @@ namespace App\Http\Controllers;
use App\Trabalho; use App\Trabalho;
use App\Coautor; use App\Coautor;
use App\Evento; use App\Evento;
use App\CoordenadorComissao;
use App\User; use App\User;
use App\Proponente;
use App\AreaModalidade; use App\AreaModalidade;
use App\Area; use App\Area;
use App\Revisor; use App\Revisor;
use App\Modalidade; use App\Modalidade;
use App\Atribuicao; use App\Atribuicao;
use App\Arquivo; use App\Arquivo;
use App\GrandeArea;
use App\SubArea;
use App\FuncaoParticipantes;
use App\Participante;
use Carbon\Carbon; use Carbon\Carbon;
use Auth; use Auth;
use Illuminate\Http\Request; use Illuminate\Http\Request;
...@@ -31,31 +37,18 @@ class TrabalhoController extends Controller ...@@ -31,31 +37,18 @@ class TrabalhoController extends Controller
*/ */
public function index($id) public function index($id)
{ {
$evento = Evento::find($id); $edital = Evento::find($id);
$areas = Area::where('eventoId', $evento->id)->get(); $grandeAreas = GrandeArea::all();
$areasId = Area::where('eventoId', $evento->id)->select('id')->get(); $areas = Area::all();
$revisores = Revisor::where('eventoId', $evento->id)->get(); $subAreas = SubArea::all();
$modalidades = Modalidade::all(); $funcaoParticipantes = FuncaoParticipantes::all();
$areaModalidades = AreaModalidade::whereIn('areaId', $areasId)->get();
$areasEnomes = Area::wherein('id', $areasId)->get();
$modalidadesIDeNome = [];
foreach ($areaModalidades as $key) {
array_push($modalidadesIDeNome,['areaId' => $key->area->id,
'modalidadeId' => $key->modalidade->id,
'modalidadeNome' => $key->modalidade->nome]);
}
$trabalhos = Trabalho::where('autorId', Auth::user()->id)->whereIn('areaId', $areasId)->get();
// dd($evento);
return view('evento.submeterTrabalho',[ return view('evento.submeterTrabalho',[
'evento' => $evento, 'edital' => $edital,
'areas' => $areas, 'grandeAreas' => $grandeAreas,
'revisores' => $revisores, 'areas' => $areas,
'modalidades' => $modalidades, 'subAreas' => $subAreas,
'areaModalidades' => $areaModalidades, 'funcaoParticipantes'=> $funcaoParticipantes
'trabalhos' => $trabalhos,
'areasEnomes' => $areasEnomes,
'modalidadesIDeNome' => $modalidadesIDeNome,
]); ]);
} }
...@@ -76,104 +69,193 @@ class TrabalhoController extends Controller ...@@ -76,104 +69,193 @@ class TrabalhoController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request){ public function store(Request $request){
// dd($request->all());
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString(); $mytime = $mytime->toDateString();
$evento = Evento::find($request->eventoId); $evento = Evento::find($request->editalId);
$coordenador = CoordenadorComissao::find($evento->coordenadorId);
//dd($coordenador->id);
if($evento->inicioSubmissao > $mytime){ if($evento->inicioSubmissao > $mytime){
if($mytime >= $evento->fimSubmissao){ if($mytime >= $evento->fimSubmissao){
return redirect()->route('home'); return redirect()->route('home');
} }
} }
$validatedData = $request->validate([
'nomeTrabalho' => ['required', 'string',], //O anexo de Decisão do CONSU dependo do tipo de edital
'areaId' => ['required', 'integer'], if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM'){
'modalidadeId' => ['required', 'integer'],
'eventoId' => ['required', 'integer'],
'resumo' => ['nullable','string'],
'nomeCoautor.*' => ['string'],
'emailCoautor.*' => ['string'],
'arquivo' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
]);
$validatedData = $request->validate([
'editalId' => ['required', 'integer'],
'nomeProjeto' => ['required', 'string'],
'grandeAreaId' => ['required', 'integer'],
'areaId' => ['required', 'integer'],
'subAreaId' => ['required', 'integer'],
'pontuacaoPlanilha' => ['required', 'integer'],
'linkGrupo' => ['required', 'string'],
'linkLattesEstudante' => ['required', 'string'],
'nomeParticipante.*' => ['required', 'string'],
'emailParticipante.*' => ['string'],
'nomePlanoTrabalho.*' => ['string'],
'anexoProjeto' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
//'anexoCONSU' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoLatterCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
]);
$autor = Auth::user(); $trabalho = Trabalho::create([
$trabalhosDoAutor = Trabalho::where('eventoId', $request->eventoId)->where('autorId', Auth::user()->id)->count(); 'titulo' => $request->nomeProjeto,
$areaModalidade = AreaModalidade::where('areaId', $request->areaId)->where('modalidadeId', $request->modalidadeId)->first(); 'coordenador_id' => $coordenador->id,
Log::debug('Numero de trabalhos' . $evento); 'grande_area_id' => $request->grandeAreaId,
if($trabalhosDoAutor >= $evento->numMaxTrabalhos){ 'area_id' => $request->areaId,
return redirect()->back()->withErrors(['numeroMax' => 'Número máximo de trabalhos permitidos atingido.']); 'sub_area_id' => $request->subAreaId,
} 'pontuacaoPlanilha' => $request->pontuacaoPlanilha,
'linkGrupoPesquisa' => $request->linkGrupo,
'linkLattesEstudante' => $request->linkLattesEstudante,
'data' => $mytime,
'evento_id' => $request->editalId,
'avaliado' => 0,
//Anexos
'anexoDecisaoCONSU' => $request->anexoCONSU,
'anexoProjeto' => $request->anexoProjeto,
'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica,
'anexoLattesCoordenador' => $request->anexoLatterCoordenador,
'anexoPlanilhaPontuacao' => $request->anexoPlanilha,
]);
//dd($request->all());
}else{
//Caso em que o anexo da Decisão do CONSU não necessário
$validatedData = $request->validate([
'editalId' => ['required', 'integer'],
'nomeProjeto' => ['required', 'string',],
'grandeAreaId' => ['required', 'integer'],
'areaId' => ['required', 'integer'],
'subAreaId' => ['required', 'integer'],
'pontuacaoPlanilha' => ['required', 'integer'],
'linkGrupo' => ['required', 'string'],
'linkLattesEstudante' => ['required', 'string'],
'nomeCoordenador' => ['required', 'string'],
'nomeParticipante.*' => ['required', 'string'],
'emailParticipante.*' => ['string'],
'nomePlanoTrabalho.*' => ['string'],
'anexoProjeto' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoLatterCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
]);
$trabalho = Trabalho::create([
'titulo' => $request->nomeProjeto,
'coordenador_id' => $coordenador->id,
'grande_area_id' => $request->grandeAreaId,
'area_id' => $request->areaId,
'sub_area_id' => $request->subAreaId,
'coordenador' => $request->nomeCoordenador,
'pontuacaoPlanilha' => $request->pontuacaoPlanilha,
'linkGrupoPesquisa' => $request->linkGrupo,
'linkLattesEstudante' => $request->linkLattesEstudante,
'data' => $mytime,
'evento_id' => $request->editalId,
'avaliado' => 0,
//Anexos
'anexoProjeto' => $request->anexoProjeto,
'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica,
'anexoLattesCoordenador' => $request->anexoLatterCoordenador,
'anexoPlanilhaPontuacao' => $request->anexoPlanilha,
]);
if($request->emailCoautor != null){
$i = 0;
foreach ($request->emailCoautor as $key) {
$i++;
}
if($i > $evento->numMaxCoautores){
return redirect()->back()->withErrors(['numeroMax' => 'Número de coautores deve ser menor igual a '.$evento->numMaxCoautores]);
}
} }
if($request->emailCoautor != null){ //Relaciona o projeto criado com o proponente que criou o projeto
$i = 0; $proponente = Proponente::where('user_id', Auth::user()->id)->first();
foreach ($request->emailCoautor as $key) { $trabalho->proponentes()->save($proponente);
$userCoautor = User::where('email', $key)->first();
if($userCoautor == null){ //Envia email com senha temp para cada participante do projeto
if($request->emailParticipante != null){
foreach ($request->emailParticipante as $key => $value) {
$userParticipante = User::where('email', $value)->first();
if($userParticipante == null){
$passwordTemporario = Str::random(8); $passwordTemporario = Str::random(8);
Mail::to($key)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Coautor', $evento->nome, $passwordTemporario)); Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Participante', $evento->nome, $passwordTemporario));
$usuario = User::create([ $usuario = User::create([
'email' => $key, 'email' => $value,
'password' => bcrypt($passwordTemporario), 'password' => bcrypt($passwordTemporario),
'usuarioTemp' => true, 'usuarioTemp' => true,
'name' => $request->nomeCoautor[$i], 'name' => $request->nomeParticipante[$key],
'tipo' => 'participante',
'funcao_participante_id' => $request->funcaoParticipante[$key],
]); ]);
$participante = $usuario->participantes()->create([
'trabalho_id' => $trabalho->id,
]);
$participante->trabalhos()->save($trabalho);
}else{
$subject = "Participante de Projeto";
$email = $value;
Mail::to($email)
->send(new SubmissaoTrabalho($userParticipante, $subject));
} }
$i++;
} }
} }
$anexos = array(
$request->anexoCONSU,
$request->anexoProjeto,
$request->anexoComiteEtica,
$request->anexoLatterCoordenador,
$request->anexoPlanilha,
);
$trabalho = Trabalho::create([ foreach ($anexos as $key => $value) {
'titulo' => $request->nomeTrabalho,
'modalidadeId' => $areaModalidade->modalidade->id, $file = $value;
'areaId' => $areaModalidade->area->id, $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
'autorId' => $autor->id, $nome = "1.pdf";
'eventoId' => $evento->id, Storage::putFileAs($path, $file, $nome);
'avaliado' => 'nao'
]); $arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'data' => $mytime,
'versaoFinal' => true,
]);
}
if($request->anexoPlanoTrabalho != null){
foreach ($request->anexoPlanoTrabalho as $key => $value) {
$file = $value;
$path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
Storage::putFileAs($path, $file, $nome);
if($request->emailCoautor != null){ $arquivo = Arquivo::create([
foreach ($request->emailCoautor as $key) { 'nome' => $path . $nome,
$userCoautor = User::where('email', $key)->first();
Coautor::create([
'ordem' => '-',
'autorId' => $userCoautor->id,
'trabalhoId' => $trabalho->id, 'trabalhoId' => $trabalho->id,
'data' => $mytime,
'versaoFinal' => true,
]); ]);
} }
} }
$file = $request->arquivo; //dd($trabalho);
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id .'/';
$nome = "1.pdf";
Storage::putFileAs($path, $file, $nome);
$arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'versaoFinal' => true,
]);
$subject = "Submissão de Trabalho"; $subject = "Submissão de Trabalho";
$autor = Auth()->user();
Mail::to($autor->email) Mail::to($autor->email)
->send(new SubmissaoTrabalho($autor, $subject)); ->send(new SubmissaoTrabalho($autor, $subject));
if($request->emailCoautor != null){
foreach ($request->emailCoautor as $key) { return redirect()->route('evento.visualizar',['id'=>$request->editalId]);
$userCoautor = User::where('email', $key)->first();
Mail::to($userCoautor->email)
->send(new SubmissaoTrabalho($userCoautor, $subject));
}
}
return redirect()->route('evento.visualizar',['id'=>$request->eventoId]);
} }
/** /**
......
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