Unverified Commit 8de688f8 authored by Nathalia Santos's avatar Nathalia Santos Committed by GitHub
Browse files

Merge pull request #760 from yuriresendematias/master

Edital de fluxo contínuo e corrigindo visualização das notas dos relatórios para o proponente e para o coordenador
parents bf25780c 23b0f13f
......@@ -3,6 +3,8 @@
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Validation\Rule;
class Evento extends Model
{
......@@ -22,6 +24,115 @@ class Evento extends Model
'formAvaliacaoRelatorio', 'docTutorial'
];
#validação para as datas dos editais padrão
public static $dates_rules = [
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'resultado_preliminar' => ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'],
//'modeloDocumento' => [],
];
#validação para as datas dos editais de fluxo continuo
public static $continuos_dates_rules = [
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
];
#validação completa dos dados de editais padrão
public static $rules = [
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'nome_docExtra' => ['required_with:check_docExtra','max:255'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:yesterday'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'],
'resultado_preliminar' => ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:yesterday'],
'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'],
];
#validação completa dos dados de editais de fluxo continuo
public static $continuos_rules = [
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'nome_docExtra' => ['required_with:check_docExtra','max:255'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
];
public static $edit_rules = [
'nome' => ['required', 'string'],
'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:resultado_final'],
'fimProjeto' => ['required', 'date', 'after:inicioProjeto'],
'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'],
'nome_docExtra' => ['required_with:check_docExtra', 'max:255'],
];
public static $continuos_edit_rules = [
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'nome_docExtra' => ['required_with:check_docExtra','max:255'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
];
public function endereco(){
return $this->belongsTo('App\Endereco', 'enderecoId');
}
......
......@@ -112,88 +112,87 @@ class AdministradorController extends Controller
return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes, 'column' => $request->column, 'grandesAreas' => $grandesAreas, 'areas' => $areas]);
}
// Utilizado para paginação de Collection
public function analisarProposta(Request $request)
{
$trabalho = Trabalho::where('id', $request->id)->first();
$evento = Evento::where('id', $trabalho->evento_id)->first();
$funcaoParticipantes = FuncaoParticipantes::all();
$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();
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
$trabalho->aval = $avalProjeto;
// Usuarios que possuem avaliações de relatório
//$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id')
//retorna a média das avaliações dos relatórios e apresentações,
//o número de avaliações pendentes e duas listas com as avaliações parciais
//e finais respectivamente
protected function get_info_avaliacoes($avals){
$AvalRelatParcial = [];
$AvalRelatFinal = [];
$MediaAvalRelatParcial = 0;
$MediaApresentacaoParcial = 0;
$AvalRelatParcialPendentes = 0;
$MediaAvalRelatFinal = 0;
$MediaApresentacaoFinal = 0;
$AvalRelatFinalPendentes = 0;
if ($evento->numParticipantes == 0) {
$arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
if (isset($arquivo)) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get();
} else {
$avals = [];
}
foreach ($avals as $aval) {
if ($aval->tipo == 'Parcial') {
array_push($AvalRelatParcial, $aval);
$MediaAvalRelatParcial += $aval->nota;
foreach ($avals as $aval) {
if ($aval->tipo == 'Parcial') {
array_push($AvalRelatParcial, $aval);
$MediaAvalRelatParcial += $aval->nota;
$MediaApresentacaoParcial += $aval->nota_apresentacao;
if($aval->nota == null){
$AvalRelatParcialPendentes += 1;
}
} else {
array_push($AvalRelatFinal, $aval);
$MediaAvalRelatFinal += $aval->nota;
if($aval->nota == null){
$AvalRelatFinalPendentes += 1;
}
if($aval->nota == null){
$AvalRelatParcialPendentes += 1;
}
}
}
foreach ($trabalho->participantes as $participante) {
if (isset($participante->planoTrabalho)) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get();
} else {
$avals = [];
}
foreach ($avals as $aval) {
if ($aval->tipo == 'Parcial') {
array_push($AvalRelatParcial, $aval);
$MediaAvalRelatParcial += $aval->nota;
array_push($AvalRelatFinal, $aval);
$MediaAvalRelatFinal += $aval->nota;
$MediaApresentacaoFinal += $aval->nota_apresentacao;
if($aval->nota == null){
$AvalRelatParcialPendentes += 1;
}
} else {
array_push($AvalRelatFinal, $aval);
$MediaAvalRelatFinal += $aval->nota;
if($aval->nota == null){
$AvalRelatFinalPendentes += 1;
}
if($aval->nota == null){
$AvalRelatFinalPendentes += 1;
}
}
}
if(count($AvalRelatParcial) > 0){
$MediaAvalRelatParcial = $MediaAvalRelatParcial / count($AvalRelatParcial);
$MediaApresentacaoParcial = $MediaApresentacaoParcial / count($AvalRelatParcial);
}
if(count($AvalRelatFinal) > 0){
$MediaAvalRelatFinal = $MediaAvalRelatFinal / count($AvalRelatFinal);
$MediaApresentacaoFinal = $MediaApresentacaoFinal / count($AvalRelatFinal);
}
return ['relatorio_parcial' => number_format($MediaAvalRelatParcial, 2, '.', ''),
'apresentacao_parcial' => number_format($MediaApresentacaoParcial, 2, '.', ''),
'pendentes_parcial' => $AvalRelatParcialPendentes,
'relatorio_final' => number_format($MediaAvalRelatFinal, 2, '.', ''),
'apresentacao_final' => number_format($MediaApresentacaoFinal, 2, '.', ''),
'pendentes_final' => $AvalRelatFinalPendentes,
'avaliacoes_parciais' => $AvalRelatParcial,
'avaliacoes_finais' => $AvalRelatFinal];
}
// Utilizado para paginação de Collection
public function analisarProposta(Request $request)
{
$trabalho = Trabalho::where('id', $request->id)->first();
$evento = Evento::where('id', $trabalho->evento_id)->first();
$funcaoParticipantes = FuncaoParticipantes::all();
$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();
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
$trabalho->aval = $avalProjeto;
// Usuarios que possuem avaliações de relatório
//$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id')
$arquivos = Arquivo::where("trabalhoId", $trabalho->id)->get();
$avals_projeto = [];
$media_avaliacoes = [];
if (isset($arquivos)) {
foreach ($arquivos as $arquivo) {
array_push($avals_projeto, AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get());
}
}
foreach ($avals_projeto as $avals) {
array_push($media_avaliacoes, $this->get_info_avaliacoes($avals));
}
// Verficação de pendencia de substituição
......@@ -209,7 +208,7 @@ class AdministradorController extends Controller
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
//dd($media_avaliacoes, $arquivos);
return view('administrador.analisarProposta')->with(
['trabalho' => $trabalho,
'funcaoParticipantes' => $funcaoParticipantes,
......@@ -217,15 +216,11 @@ class AdministradorController extends Controller
'substituicoesPendentes' => $substituicoesPendentes,
'substituicoesProjeto' => $substituicoesProjeto,
'grandeAreas' => $grandeAreas,
'AvalRelatParcial' => $AvalRelatParcial,
'AvalRelatFinal' => $AvalRelatFinal,
'hoje' => $hoje,
'flagSubstituicao' => $flagSubstituicao,
'areasTematicas' => $areasTematicas,
'MediaAvalRelatParcial' => $MediaAvalRelatParcial,
'AvalRelatParcialPendentes' => $AvalRelatParcialPendentes,
'MediaAvalRelatFinal' => $MediaAvalRelatFinal,
'AvalRelatFinalPendentes' => $AvalRelatFinalPendentes,
'areasTematicas' => $areasTematicas,
'mediaAval' => $media_avaliacoes,
'arquivos' => $arquivos,
]);
}
......
......@@ -17,13 +17,6 @@ use Auth;
class AvaliacaoRelatorioController extends Controller
{
public function create()
{
}
public function listarUser($id){
$avaliacao = AvaliacaoRelatorio::find($id);
......@@ -66,8 +59,10 @@ class AvaliacaoRelatorioController extends Controller
public function criar(Request $request){
$validatedData = $request->validate([
'nota' => ['required'],
'nota_apresentacao' => ['required'],
'comentario' => ['required'],
]);
$avaliacao = AvaliacaoRelatorio::find($request->avaliacao_id);
if($request->avaliacaoArq !=null){
......@@ -77,6 +72,7 @@ class AvaliacaoRelatorioController extends Controller
}
$plano = Arquivo::find($request->plano_id);
$avaliacao->nota = $request->nota;
$avaliacao->nota_apresentacao = $request->nota_apresentacao;
$avaliacao->comentario = $request->comentario;
$avaliacao->update();
......
......@@ -83,6 +83,7 @@ class EventoController extends Controller
*/
public function store(Request $request)
{
// dd($request->all());
$mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
......@@ -115,87 +116,45 @@ class EventoController extends Controller
$request->fimProjeto == null
){
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'],
//'modeloDocumento' => [],
]);
}
if($request->tipo == 'CONTINUO'){
$validatedData = $request->validate(Evento::$continuos_dates_rules);
} else {
$validatedData = $request->validate(Evento::$dates_rules);
}
// validacao normal
//after = depois
//before = antes
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'],
'tipoAvaliacao' => ['required'],
#----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:yesterday'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:yesterday'],
'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
}
// validacao normal
if($request->tipo == 'CONTINUO'){
$validatedData = $request->validate(Evento::$continuos_rules);
} else {
$validatedData = $request->validate(Evento::$rules);
}
// Validação quando avaliação for por Barema
if ($request->tipoAvaliacao == 'form') {
$validateAvaliacao = $request->validate([
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
]);
} elseif ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
$validateCampo = $request->validate([
'inputField.*.nome' => ['required', 'string'],
'inputField.*.nota_maxima' => ['required'],
'inputField.*.prioridade' => ['required'],
'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao],
['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.']
if($request->tipo != 'CONTINUO'){
if ($request->tipoAvaliacao == 'form') {
$validateAvaliacao = $request->validate([
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
]);
} elseif ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
$validateCampo = $request->validate([
'inputField.*.nome' => ['required', 'string'],
'inputField.*.nota_maxima' => ['required'],
'inputField.*.prioridade' => ['required'],
'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao],
['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.']
]);
}
} elseif ($request->tipoAvaliacao == 'link') {
$validateAvaliacao = $request->validate([
'link' => ['required', 'url'],
]);
}
} elseif ($request->tipoAvaliacao == 'link') {
$validateAvaliacao = $request->validate([
'link' => ['required', 'url'],
]);
}
//$evento = Evento::create([
$evento['nome'] = $request->nome;
$evento['descricao'] = $request->descricao;
......@@ -206,16 +165,21 @@ class EventoController extends Controller
}
$evento['inicioSubmissao'] = $request->inicioSubmissao;
$evento['fimSubmissao'] = $request->fimSubmissao;
$evento['inicioRevisao'] = $request->inicioRevisao;
$evento['fimRevisao'] = $request->fimRevisao;
$evento['inicio_recurso'] = $request->inicio_recurso;
$evento['fim_recurso'] = $request->fim_recurso;
$evento['resultado_preliminar']= $request->resultado_preliminar;
$evento['resultado_final'] = $request->resultado_final;
$evento['dt_inicioRelatorioParcial'] = $request->dt_inicioRelatorioParcial;
$evento['dt_fimRelatorioParcial'] = $request->dt_fimRelatorioParcial;
$evento['dt_inicioRelatorioFinal'] = $request->dt_inicioRelatorioFinal;
$evento['dt_fimRelatorioFinal'] = $request->dt_fimRelatorioFinal;
if ($request->tipo != "CONTINUO"){
$evento['inicioRevisao'] = $request->inicioRevisao;
$evento['fimRevisao'] = $request->fimRevisao;
$evento['inicio_recurso'] = $request->inicio_recurso;
$evento['fim_recurso'] = $request->fim_recurso;
$evento['resultado_preliminar']= $request->resultado_preliminar;
$evento['resultado_final'] = $request->resultado_final;
$evento['dt_inicioRelatorioParcial'] = $request->dt_inicioRelatorioParcial;
$evento['dt_fimRelatorioParcial'] = $request->dt_fimRelatorioParcial;
$evento['dt_inicioRelatorioFinal'] = $request->dt_inicioRelatorioFinal;
$evento['dt_fimRelatorioFinal'] = $request->dt_fimRelatorioFinal;
$evento['inicioProjeto'] = $request->inicioProjeto;
$evento['fimProjeto'] = $request->fimProjeto;
}
$evento['coordenadorId'] = $request->coordenador_id;
$evento['criador_id'] = $user_id;
$evento['numParticipantes'] = $request->numParticipantes;
......@@ -223,13 +187,10 @@ class EventoController extends Controller
$evento['cotaDoutor'] = $request->has('cotaDoutor');
$evento['obrigatoriedade_docExtra'] = $request->has('obrigatoriedade_docExtra');
$evento['anexosStatus'] = 'final';
$evento['inicioProjeto'] = $request->inicioProjeto;
$evento['fimProjeto'] = $request->fimProjeto;
$evento['tipoAvaliacao'] = $request->tipoAvaliacao;
if($request->tipoAvaliacao == "link") {
$evento['formAvaliacaoExterno'] = $request->link;
}
}
//dd($evento);
// $user = User::find($request->coordenador_id);
// $user->coordenadorComissao()->editais()->save($evento);
......@@ -490,81 +451,54 @@ class EventoController extends Controller
$request->fimProjeto == null
){
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'dt_inicioRelatorioParcial' => ['required', 'date'],
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'],
'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'],
]);
if($request->tipo == 'CONTINUO'){
$validatedData = $request->validate(Evento::$continuos_dates_rules);
} else {
$validatedData = $request->validate(Evento::$dates_rules);
}
}
$validated = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
'fimRevisao' => ['required', 'date', 'after:inicioRevisao'],
'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'],
'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'],
'fim_recurso' => ['required', 'date', 'after:inicio_recurso'],
'resultado_final' => ['required', 'date', 'after:fim_recurso'],
'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'],
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:resultado_final'],
'fimProjeto' => ['required', 'date', 'after:inicioProjeto'],
'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'],
]);
if($request->tipo == 'CONTINUO'){
$validatedData = $request->validate(Evento::$continuos_edit_rules);
} else {
$validatedData = $request->validate(Evento::$edit_rules);
}
if ($request->tipoAvaliacao == 'form') {
$validateAvaliacao = $request->validate([
'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
]);
} elseif ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
$validateCampo = $request->validate([
'inputField.*.nome' => ['required', 'string'],
'inputField.*.nota_maxima' => ['required'],
'inputField.*.prioridade' => ['required'],
'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao],
['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.']
if($request->tipo != 'CONTINUO'){
if ($request->tipoAvaliacao == 'form') {
$validateAvaliacao = $request->validate([
'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
]);
} elseif ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
$validateCampo = $request->validate([
'inputField.*.nome' => ['required', 'string'],
'inputField.*.nota_maxima' => ['required'],
'inputField.*.prioridade' => ['required'],
'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao],
['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.']
]);
}
} elseif ($request->tipoAvaliacao == 'link') {
$validateAvaliacao = $request->validate([
'link' => ['required', 'url'],
]);
}
} elseif ($request->tipoAvaliacao == 'link') {
$validateAvaliacao = $request->validate([
'link' => ['required', 'url'],
]);
$evento->inicioRevisao = $request->inicioRevisao;
$evento->fimRevisao = $request->fimRevisao;
$evento->inicio_recurso = $request->inicio_recurso;
$evento->fim_recurso = $request->fim_recurso;
$evento->resultado_preliminar = $request->resultado_preliminar;
$evento->resultado_final = $request->resultado_final;
$evento->dt_inicioRelatorioParcial = $request->dt_inicioRelatorioParcial;
$evento->dt_fimRelatorioParcial = $request->dt_fimRelatorioParcial;
$evento->dt_inicioRelatorioFinal = $request->dt_inicioRelatorioFinal;
$evento->dt_fimRelatorioFinal = $request->dt_fimRelatorioFinal;
$evento->cotaDoutor = $request->has('cotaDoutor');
$evento->inicioProjeto = $request->inicioProjeto;
$evento->fimProjeto = $request->fimProjeto;
$evento->tipoAvaliacao = $request->tipoAvaliacao;
}
$evento->nome = $request->nome;
......@@ -577,25 +511,13 @@ class EventoController extends Controller
}else{
$evento->nome_docExtra = null;
}
$evento->inicioSubmissao = $request->inicioSubmissao;
$evento->fimSubmissao = $request->fimSubmissao;
$evento->inicioRevisao = $request->inicioRevisao;
$evento->fimRevisao = $request->fimRevisao;
$evento->inicio_recurso = $request->inicio_recurso;
$evento->fim_recurso = $request->fim_recurso;
$evento->resultado_preliminar = $request->resultado_preliminar;
$evento->resultado_final = $request->resultado_final;
$evento->dt_inicioRelatorioParcial = $request->dt_inicioRelatorioParcial;
$evento->dt_fimRelatorioParcial = $request->dt_fimRelatorioParcial;
$evento->dt_inicioRelatorioFinal = $request->dt_inicioRelatorioFinal;
$evento->dt_fimRelatorioFinal = $request->dt_fimRelatorioFinal;
$evento->fimSubmissao = $request->fimSubmissao;
$evento->coordenadorId = $request->coordenador_id;
$evento->consu = $request->has('consu');
$evento->cotaDoutor = $request->has('cotaDoutor');
$evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra');
$evento->inicioProjeto = $request->inicioProjeto;
$evento->fimProjeto = $request->fimProjeto;
$evento->tipoAvaliacao = $request->tipoAvaliacao;
if($request->tipoAvaliacao == "link") {
$evento->formAvaliacaoExterno = $request->link;
}
......
......@@ -374,6 +374,14 @@ class TrabalhoController extends Controller
$trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension());
}
//Anexo SIPAC
if (isset($request->anexo_SIPAC)) {
if (Storage::disk()->exists($trabalho->anexo_SIPAC)) {
Storage::delete($trabalho->anexo_SIPAC);
}
$trabalho->anexo_SIPAC = Storage::putFileAs($pasta, $request->anexo_SIPAC, "Anexo_SIPAC." . $request->file('anexo_SIPAC')->extension());
}
return $trabalho;
}
......@@ -404,24 +412,28 @@ class TrabalhoController extends Controller
$trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get();
$avals_projeto = [];
$AvalRelatParcial = [];
$AvalRelatFinal = [];
foreach ($participantes as $participante) {
if (isset($participante->planoTrabalho)) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get();
} else {
$avals = [];
if (isset($arquivos)) {
foreach ($arquivos as $arquivo) {
array_push($avals_projeto, AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get());
}
foreach ($avals as $aval) {
}
foreach ($avals_projeto as $avals) {
foreach ($avals as $aval){
if ($aval->tipo == 'Parcial') {
array_push($AvalRelatParcial, $aval);
} else {
array_push($AvalRelatFinal, $aval);
}
}
}
}
return view('projeto.visualizar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas,
'areas' => $areas,
......@@ -836,6 +848,16 @@ class TrabalhoController extends Controller
return abort(404);
}
public function baixarAnexoSIPAC($id)
{
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexo_SIPAC)) {
ob_end_clean();
return Storage::download($projeto->anexo_SIPAC);
}
return abort(404);
}
public function baixarAnexoTemp($eventoId, $nomeAnexo)
{
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
......@@ -1141,7 +1163,6 @@ class TrabalhoController extends Controller
public function salvar(StoreTrabalho $request)
{
try {
if (!$request->has('rascunho')) {
$request->merge([
......@@ -1159,14 +1180,21 @@ class TrabalhoController extends Controller
if($evento->tipo=="PIBEX"){
$trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra'
'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra', 'anexo_SIPAC'
]));
}else{
}else if($evento->tipo=="CONTINUO"){
$trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
'justificativaAutorizacaoEtica','modalidade','anexo_docExtra',
]));
} else {
$trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
'justificativaAutorizacaoEtica','modalidade','anexo_docExtra'
'justificativaAutorizacaoEtica','modalidade','anexo_docExtra', 'anexo_SIPAC'
]));
}
......
......@@ -76,7 +76,7 @@ class StoreTrabalho extends FormRequest
if($evento->nome_docExtra != null ){
$rules['anexo_docExtra'] = [Rule::requiredIf($evento->obrigatoriedade_docExtra == true),'file', 'mimes:zip,doc,docx,pdf', 'max:2048'];
}
if($evento->tipo!="PIBEX"){
if($evento->tipo!="PIBEX" && $evento->tipo!="CONTINUO"){
$rules['anexoPlanilhaPontuacao'] = ['required'];
$rules['anexoLattesCoordenador'] = ['required', 'mimes:pdf'];
$rules['anexoGrupoPesquisa'] = ['required', 'mimes:pdf'];
......@@ -98,9 +98,14 @@ class StoreTrabalho extends FormRequest
}
$rules['linkLattesEstudante'] = ['required', 'string'];
$rules['anexoProjeto'] = ['required', 'mimes:pdf'];
$rules['anexoDecisaoCONSU'] = [Rule::requiredIf($evento->consu), 'mimes:pdf'];
if($evento->tipo!="CONTINUO"){
$rules['anexoProjeto'] = ['required', 'mimes:pdf'];
} else {
$rules['anexo_SIPAC'] = ['required', 'mimes:pdf'];
}
return $rules;
}
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddNotaApresentacaoToAvaliacaoRelatorios extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('avaliacao_relatorios', function (Blueprint $table) {
$table->float('nota_apresentacao')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('avaliacao_relatorios', function (Blueprint $table) {
$table->dropColumn('nota_apresentacao');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddAnexoSipacToTrabalhosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('trabalhos', function (Blueprint $table) {
$table->string('anexo_SIPAC')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('trabalhos', function (Blueprint $table) {
$table->dropColumn('anexo_SIPAC');
});
}
}
<?php
use Illuminate\Database\Seeder;
class OdsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Erradicação da pobreza',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Fome zero e agricultura sustentável',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Saúde e Bem-estar',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Educação de qualidade',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Igualdade de Gênero',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Água potável e Saneamento',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Energia Acessível e Limpa',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Trabalho decente e crescimento econômico',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Indústria, Inovação e Infraestrutura',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Redução das desigualdades',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Cidades e comunidades sustentáveis',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Consumo e produção responsáveis',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Ação contra a mudança global do clima',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Vida na água',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Vida terrestre',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Paz, justiça e instituições eficazes',
]);
DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([
'nome'=>'Parcerias e meios de implementação',
]);
}
}
......@@ -435,94 +435,105 @@
</div>
<hr style="border-top: 1px solid#1492E6">
{{-- Anexo do Projeto --}}
<div class="row justify-content-start">
{{-- Arquivo --}}
<div class="col-sm-4">
<label for="anexoProjeto" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Projeto: ') }}</label>
<a href="{{ route('baixar.anexo.projeto', ['id' => $trabalho->id])}}"><img class=""
src="{{asset('img/icons/pdf.ico')}}"
style="width:40px"
alt=""></a>
</div>
@if($evento->tipo != "PIBEX")
@if($evento->tipo != "CONTINUO")
{{-- Anexo do Projeto --}}
{{-- Arquivo --}}
<div class="col-sm-4">
<label for="anexoLatterCoordenador" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}</label>
<a href="{{ route('baixar.anexo.lattes', ['id' => $trabalho->id]) }}"> <img class=""
src="{{asset('img/icons/pdf.ico')}}"
style="width:40px"
alt=""></a>
<label for="anexoProjeto" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Projeto: ') }}</label>
<a href="{{ route('baixar.anexo.projeto', ['id' => $trabalho->id])}}"><img class=""
src="{{asset('img/icons/pdf.ico')}}"
style="width:40px"
alt=""></a>
</div>
@endif
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
@if($trabalho->anexoAutorizacaoComiteEtica != null)
<label title="Declaração da autorização especial" for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Autorização Especial: ') }}</label>
<a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
<label title="Declaração de não necessidade de autorização especial" for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Declaração Autorização Especial: ') }}</label>
@if($trabalho->justificativaAutorizacaoEtica != null)
<a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
-
@endif
@endif
</div>
@endif
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
<label for="anexoLatterCoordenador" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}</label>
<a href="{{ route('baixar.anexo.lattes', ['id' => $trabalho->id]) }}"> <img class=""
src="{{asset('img/icons/pdf.ico')}}"
style="width:40px"
alt=""></a>
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
<label for="anexoPlanilha" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}</label>
<a href="{{ route('baixar.anexo.planilha', ['id' => $trabalho->id]) }}"><img
class="" src="{{asset('img/icons/xlsx.ico')}}" style="width:40px"
alt=""></a>
</div>
@endif
</div>
@endif
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
@if($trabalho->anexoAutorizacaoComiteEtica != null)
<label title="Declaração da autorização especial" for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Autorização Especial: ') }}</label>
<a href="{{ route('baixar.anexo.comite', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
<label title="Declaração de não necessidade de autorização especial" for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Declaração Autorização Especial: ') }}</label>
@if($trabalho->justificativaAutorizacaoEtica != null)
<a href="{{ route('baixar.anexo.justificativa', ['id' => $trabalho->id]) }}"> <img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
-
@endif
@endif
</div>
@endif
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
<label for="nomeTrabalho" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Grupo de Pesquisa: ') }}</label>
@if($trabalho->anexoGrupoPesquisa != null)
<a href="{{ route('baixar.anexoGrupoPesquisa', ['id' => $trabalho->id]) }}"><img
class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px"
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
<label for="anexoPlanilha" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}</label>
<a href="{{ route('baixar.anexo.planilha', ['id' => $trabalho->id]) }}"><img
class="" src="{{asset('img/icons/xlsx.ico')}}" style="width:40px"
alt=""></a>
@else
-
@endif
</div>
@endif
@if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM' || $evento->tipo == "PIBEX")
{{-- Decisão do CONSU --}}
<div class="col-sm-4">
<label title="Decisão da Câmara ou Conselho Pertinente" for="anexoCONSU" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Câmara ou Conselho Pertinente: ') }}</label>
<a href="{{ route('baixar.anexo.consu', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div>
@endif
@if($evento->nome_docExtra != null)
{{-- Documento Extra --}}
<div class="col-sm-4">
<label title="{{$evento->nome_docExtra}}" for="anexo_docExtra" class="col-form-label font-tam" style="font-weight: bold">{{$evento->nome_docExtra}}:</label>
@if($trabalho->anexo_docExtra)
<a href="{{ route('baixar.anexo.docExtra', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
<a>
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif
</div>
@endif
</div>
@endif
@if($evento->tipo != "PIBEX")
<div class="col-sm-4">
<label for="nomeTrabalho" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Grupo de Pesquisa: ') }}</label>
@if($trabalho->anexoGrupoPesquisa != null)
<a href="{{ route('baixar.anexoGrupoPesquisa', ['id' => $trabalho->id]) }}"><img
class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px"
alt=""></a>
@else
-
@endif
</div>
@endif
@if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM' || $evento->tipo == "PIBEX")
{{-- Decisão do CONSU --}}
<div class="col-sm-4">
<label title="Decisão da Câmara ou Conselho Pertinente" for="anexoCONSU" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Câmara ou Conselho Pertinente: ') }}</label>
<a href="{{ route('baixar.anexo.consu', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
</div>
@endif
@if($evento->nome_docExtra != null)
{{-- Documento Extra --}}
<div class="col-sm-4">
<label title="{{$evento->nome_docExtra}}" for="anexo_docExtra" class="col-form-label font-tam" style="font-weight: bold">{{$evento->nome_docExtra}}:</label>
@if($trabalho->anexo_docExtra)
<a href="{{ route('baixar.anexo.docExtra', ['id' => $trabalho->id]) }}"><img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
<a>
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif
</div>
@endif
@else
<div class="col-sm-4">
<label for="anexo_SIPAC" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Anexo SIPAC: ') }}</label>
<a href="{{ route('baixar.anexo.SIPAC', ['id' => $trabalho->id])}}"><img class=""
src="{{asset('img/icons/pdf.ico')}}"
style="width:40px"
alt=""></a>
</div>
@endif
</div>
</div>
</div>
......@@ -530,6 +541,7 @@
</div>
</div>
@if($evento->tipo != "CONTINUO")
<!--Relatórios-->
<div class="row justify-content-center" style="margin-top: 20px;">
<div class="col-md-12">
......@@ -738,153 +750,171 @@
</div>
<hr style="border-top: 1px solid#1492E6">
@if(count($AvalRelatParcial) >0)
<div class="row justify-content-start" style="alignment: center">
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliações de Relatórios Parciais</h6></div>
</div>
<div class='row justify-content-start'>
<h6 class='col-9' style="color: black; font-weight: bold">Media das avaliações:<span style="font-weight: normal"> {{$MediaAvalRelatParcial}}</span><h6>
<h6 class='col-3' style="color: black; font-weight: bold">Avaliações pendentes: <span style="font-weight: normal"> {{$AvalRelatParcialPendentes}}</span><h6>
<br><br>
</div>
<div class="row justify-content-start" style="alignment: center">
@foreach($AvalRelatParcial as $aval)
<div class="col-sm-1" style="margin-bottom: 7px">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-3">
<h5>{{\App\User::find($aval->user_id)->name}}</h5>
<h6><a href="" data-toggle="modal"
data-target="#modalVizuRelatParcial{{$aval->id}}" class="button">
@if($aval->nota == null) Pendente </a>@else Avaliação</a> @endif</h6>
@if($aval->nota == null)
<h6><a href="" data-toggle="modal"
data-target="#removerAvaliadorReltorioParcial{{$aval->id}}" class="button"><b style="color: red">Remover</b></a></h6>
@endif
@if(count($arquivos) > 0)
<div class="row justify-content-start" style="alignment: center">
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliações de Relatórios Parciais</h6></div>
</div>
@for ($i = 0; $i < count($arquivos); $i++)
<div class='row justify-content-start' style='margin-top:40px;'>
<h6 class='col-4' style="color: black; font-weight: bold">Título:<span style="font-weight: normal"> {{$arquivos[$i]->titulo}}</span><h6>
<h6 class='col-9' style="color: black; font-weight: bold">Média das avaliações:<span style="font-weight: normal"> {{$mediaAval[$i]['relatorio_parcial']}}</span><h6>
<h6 class='col-4' style="color: black; font-weight: bold">Média da apresentação:<span style="font-weight: normal"> {{$mediaAval[$i]['apresentacao_parcial']}}</span><h6>
<h6 class='col-3' style="color: black; font-weight: bold">Avaliações pendentes: <span style="font-weight: normal"> {{$mediaAval[$i]['pendentes_parcial']}}</span><h6>
<br><br>
</div>
<div class="row justify-content-start" style="alignment: center">
@foreach($mediaAval[$i]['avaliacoes_parciais'] as $aval)
<div class="col-sm-1" style="margin-bottom: 7px">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-3">
<h5>{{\App\User::find($aval->user_id)->name}}</h5>
<h6><a href="" data-toggle="modal"
data-target="#modalVizuRelatParcial{{$aval->id}}" class="button">
@if($aval->nota == null) Pendente </a>@else Avaliação</a> @endif</h6>
@if($aval->nota == null)
<h6><a href="" data-toggle="modal"
data-target="#removerAvaliadorReltorioParcial{{$aval->id}}" class="button"><b style="color: red">Remover</b></a></h6>
@endif
</div>
<!-- Modal Remover -->
<div class="modal fade" id="removerAvaliadorReltorioParcial{{ $aval->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Remover Avaliador Do Relatório Parcial</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<a type="button" class="btn btn-danger" href="{{route('avaliacaoRelatorio.remover.avaliador',$aval->id)}}">Remover</a>
<!-- Modal Remover -->
<div class="modal fade" id="removerAvaliadorReltorioParcial{{ $aval->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Remover Avaliador Do Relatório Parcial</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<a type="button" class="btn btn-danger" href="{{route('avaliacaoRelatorio.remover.avaliador',$aval->id)}}">Remover</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal visualizar informações participante -->
<div class="modal fade" id="modalVizuRelatParcial{{$aval->id}}" tabindex="-1"
role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<!-- Modal visualizar informações participante -->
<div class="modal fade" id="modalVizuRelatParcial{{$aval->id}}" tabindex="-1"
role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style="color:#1492E6">
Avaliação do relatório parcial @if($aval->nota == null) <b style="color: red">Pendente</b>@endif</h5>
<div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style="color:#1492E6">
Avaliação do relatório parcial @if($aval->nota == null) <b style="color: red">Pendente</b>@endif</h5>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body"
style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
<div class="modal-body"
style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
@endforeach
</div>
@endfor
@endif
@if(count($AvalRelatFinal) >0)
<div class="row justify-content-start" style="alignment: center">
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliações de Relatórios Finais</h6></div>
</div>
<div class='row justify-content-start'>
<h6 class='col-9' style="color: black; font-weight: bold">Media das avaliações:<span style="font-weight: normal"> {{$MediaAvalRelatFinal}}</span><h6>
<h6 class='col-3' style="color: black; font-weight: bold">Avaliações pendentes: <span style="font-weight: normal"> {{$AvalRelatFinalPendentes}}</span><h6>
<br><br>
</div>
<div class="row justify-content-start" style="alignment: center">
@foreach($AvalRelatFinal as $aval)
<div class="col-sm-1" style="margin-bottom: 7px">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-3">
<h5>{{\App\User::find($aval->user_id)->name}}</h5>
<h6><a href="" data-toggle="modal"
data-target="#modalVizuRelatFinal{{$aval->id}}" class="button">
@if($aval->nota == null) Pendente </a>@else Avaliação</a> @endif</h6>
@if($aval->nota == null)
<h6><a href="" data-toggle="modal"
data-target="#removerAvaliadorReltorioFinal{{$aval->id}}" class="button"><b style="color: red">Remover</b></a></h6>
@endif
@if(count($arquivos) > 0)
@foreach ($mediaAval as $aval)
@if(count($aval['avaliacoes_finais']) > 0)
<br><hr style="border-top: 1px solid#1492E6">
<div class="row justify-content-start" style="alignment: center" >
<div class="col-md-11"><h6 style="color: #234B8B; font-weight: bold">Avaliações de Relatórios Finais</h6></div>
</div>
@for ($i = 0; $i < count($arquivos); $i++)
<div class='row justify-content-start' style='margin-top:40px;'>
<h6 class='col-4' style="color: black; font-weight: bold">Título:<span style="font-weight: normal"> {{$arquivos[$i]->titulo}}</span><h6>
</div>
<div class='row justify-content-start'>
<h6 class='col-4' style="color: black; font-weight: bold">Média das avaliações:<span style="font-weight: normal"> {{$mediaAval[$i]['relatorio_final']}}</span><h6>
<h6 class='col-4' style="color: black; font-weight: bold">Média da apresentação:<span style="font-weight: normal"> {{$mediaAval[$i]['apresentacao_final']}}</span><h6>
<h6 class='col-3' style="color: black; font-weight: bold">Avaliações pendentes: <span style="font-weight: normal"> {{$mediaAval[$i]['pendentes_final']}}</span><h6>
<br><br>
</div>
<div class="row justify-content-start" style="alignment: center">
@foreach($mediaAval[$i]['avaliacoes_finais'] as $aval)
<div class="col-sm-1" style="margin-bottom: 7px">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-3">
<h5>{{\App\User::find($aval->user_id)->name}}</h5>
<h6><a href="" data-toggle="modal"
data-target="#modalVizuRelatFinal{{$aval->id}}" class="button">
@if($aval->nota == null) Pendente </a>@else Avaliação</a> @endif</h6>
@if($aval->nota == null)
<h6><a href="" data-toggle="modal"
data-target="#removerAvaliadorReltorioFinal{{$aval->id}}" class="button"><b style="color: red">Remover</b></a></h6>
@endif
<!-- Modal Remover -->
<div class="modal fade" id="removerAvaliadorReltorioFinal{{ $aval->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Remover Avaliador Do Relatório Final</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<a type="button" class="btn btn-danger" href="{{route('avaliacaoRelatorio.remover.avaliador',$aval->id)}}">Remover</a>
</div>
<!-- Modal Remover -->
<div class="modal fade" id="removerAvaliadorReltorioFinal{{ $aval->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Remover Avaliador Do Relatório Final</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<a type="button" class="btn btn-danger" href="{{route('avaliacaoRelatorio.remover.avaliador',$aval->id)}}">Remover</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal visualizar informações participante -->
<div class="modal fade" id="modalVizuRelatFinal{{$aval->id}}" tabindex="-1"
role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<!-- Modal visualizar informações participante -->
<div class="modal fade" id="modalVizuRelatFinal{{$aval->id}}" tabindex="-1"
role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style="color:#1492E6">
Avaliação do relatório final @if($aval->nota == null) <b style="color: red">Pendente</b>@endif</h5>
<div class="modal-header" style="overflow-x:auto; padding-left: 31px">
<h5 class="modal-title" id="exampleModalLabel" style="color:#1492E6">
Avaliação do relatório final @if($aval->nota == null) <b style="color: red">Pendente</b>@endif</h5>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close" style="padding-top: 8px; color:#1492E6">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body"
style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
<div class="modal-body"
style="padding-right: 32px;padding-left: 32px;padding-top: 20px;padding-bottom: 32px;">
@include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
@endforeach
</div>
@endfor
@break
@endif
@endforeach
@endif
</div>
......@@ -892,6 +922,7 @@
</div>
</div>
</div>
<!--Avaliadores-->
<div class="row justify-content-center" style="margin-top: 20px;">
......@@ -1258,7 +1289,7 @@
</div>
</div>
</div>
@endif
<!--Aprovar ou Negar Proposta-->
<div class="row justify-content-center" style="margin-top: 20px;">
<div class="col-md-12">
......
......@@ -310,10 +310,6 @@
@endforeach
</tbody>
</table>
</div>
</div>
......
@php $arquivo = \App\Arquivo::find($aval->arquivo_id); @endphp
<div class="container-fluid">
<div class="row">
@if ($arquivo->trabalho->evento->numParticipante != 0)
@if ($arquivo->trabalho->evento->numParticipantes != 0)
<h5><b>Discente:</b>
{{\App\Participante::find($arquivo->participanteId)->user->name}}</h5>
@else
......@@ -20,10 +20,19 @@
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Nota: ') }}</label>
</div>
<div class="col-sm-6 text-center padEsquerda">
<div class="col-sm-5 text-center padEsquerda">
<input class="form-control" name="nota" type="number"
style="width: 60px" @if(isset($aval)) value="{{$aval->nota}}" @endif disabled>
</div>
<div class="col-sm-2 padEsquerda">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Apresentação: ') }}</label>
</div>
<div class="col-sm-4 text-center padEsquerda">
<input class="form-control" name="nota" type="number"
style="width: 60px" @if(isset($aval)) value="{{$aval->nota_apresentacao}}" @endif disabled>
</div>
</div>
<div class="row">
<div class="col-sm-12 padEsquerda">
......
......@@ -72,18 +72,25 @@
src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@endif
@if($avaliacao->tipo == "Parcial")
<div style="margin-left: 25px">
<div style="margin-left: 120px">
<label for="anexoProjeto" class="col-form-label font-tam"
style="font-weight: bold"
>{{ __('Relatório Parcial: ') }}</label>
style="font-weight: bold">{{ __('Relatório Parcial: ') }}
</label>
@if($avaliacao->plano->relatorioParcial)
<a href="{{ route('baixar.documentosParticipante', ['pathDocumento' => $avaliacao->plano->relatorioParcial]) }}"><img
src="{{asset('img/icons/pdf.ico')}}" style="width:40px" alt=""></a>
@else
<a><i class="fas fa-times-circle fa-2x"></i></a>
@endif
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px;margin-left: 120px;">{{ __('Formulário de Avaliação: ') }}</label>
@if($evento->formAvaliacaoRelatorio != null)
<a href="{{route('download', ['file' => $evento->formAvaliacaoRelatorio])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
</div>
<div class="col-sm-12">
<form id="formRelatFinal" method="post"
......@@ -97,43 +104,44 @@
value="{{$avaliacao->plano->id}}">
<input type="hidden" name="user_id" value="{{Auth::user()->id}}">
<div class="col-12" style="padding-left: 0px">
<div class="row">
<div class="col-sm-6 row">
<div class="col-12" style="padding-left: 0px; margin-top: 10px ">
<div class="row" >
<div class="col-sm-4 row">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;padding-right: 10px">{{ __('Nota: ') }}</label>
style="font-weight: bold;padding-right: 10px">{{ __('Nota do relatório escrito: ') }}</label>
<input class="form-control" name="nota" type="number" step="0.01"
style="width: 70px;"
required
@if($avaliacao->nota != null) value="{{$avaliacao->nota}}" @endif>
</div>
</div>
<div class="row" style="margin-top: 10px">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px;">{{ __('Formulário de Avaliação: ') }}</label>
<div class="col row">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;padding-right: 10px">{{ __('Nota da apresentação: ') }}</label>
@if($evento->formAvaliacaoRelatorio != null)
<a href="{{route('download', ['file' => $evento->formAvaliacaoRelatorio])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
</div>
<div class="row" style="margin-top: 10px">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px;">{{ __('Arquivo: ') }}</label>
@if($avaliacao->arquivoAvaliacao != null)
<a href="{{route('download', ['file' => $avaliacao->arquivoAvaliacao])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
<input type="file" class="input-group-text" name="avaliacaoArq" accept=".pdf" id="avaliacaoArq"/>
@error('avaliacaoArq')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
<input class="form-control" name="nota_apresentacao" type="number" step="0.01"
style="width: 70px;"
required
@if($avaliacao->nota != null) value="{{$avaliacao->nota_apresentacao}}" @endif>
</div>
<div class="col-5 row" style="margin-right: 40px;">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px;">{{ __('Arquivo: ') }}</label>
@if($avaliacao->arquivoAvaliacao != null)
<a href="{{route('download', ['file' => $avaliacao->arquivoAvaliacao])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
<input type="file" class="input-group-text" name="avaliacaoArq" accept=".pdf" id="avaliacaoArq"/>
@error('avaliacaoArq')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="row">
......@@ -141,14 +149,18 @@
style="font-weight: bold">{{ __('Comentário: ') }}</label>
</div>
<div class="row">
<textarea class="col-md-11" minlength="20" id="comentario"
name="comentario"
style="border-radius:5px 5px 0 0;height: 71px;"
required>@if($avaliacao->comentario != null){{$avaliacao->comentario}}@endif</textarea>
<div class="col-md-1" style="flex: 1;align-self: flex-end;">
<textarea class="col-md-12" minlength="20" id="comentario"
name="comentario"
style="border-radius:5px 5px 0 0;height: 150px;"
required>@if($avaliacao->comentario != null){{$avaliacao->comentario}}@endif</textarea>
</div>
<div class="row justify-content-end" style="margin-top: 10px">
<div class="col-1">
<button type="submit" class="btn btn-success" style="height: 40px">Salvar</button>
</div>
<div>
<a href="{{ route('planos.avaliacoes.index') }}" class="btn btn-secondary">Voltar</a>
</div>
</div>
</div>
<br>
......@@ -159,7 +171,7 @@
{{--Relatorio FInal--}}
@else
<div style="margin-left: 25px">
<div style="margin-left: 120px">
<label for="anexoProjeto" class="col-form-label font-tam"
style="font-weight: bold"
>{{ __('Relatório Final: ') }}</label>
......@@ -169,6 +181,14 @@
@else
<a><i class="fas fa-times-circle fa-2x"></i></a>
@endif
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px; margin-left: 120px;">{{ __('Formulário de Avaliação: ') }}</label>
@if($evento->formAvaliacaoRelatorio != null)
<a href="{{route('download', ['file' => $evento->formAvaliacaoRelatorio])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
</div>
<div class="col-sm-12">
<form id="formRelatFinal" method="post"
......@@ -182,49 +202,63 @@
value="{{$avaliacao->plano->id}}">
<input type="hidden" name="user_id" value="{{Auth::user()->id}}">
<div class="col-12" style="padding-left: 0px">
<div class="col-12" style="padding-left: 0px; margin-top: 10px ">
<div class="row">
<div class="col-sm-6 row">
<div class="col-sm-4 row">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;padding-right: 10px">{{ __('Nota: ') }}</label>
style="font-weight: bold;padding-right: 10px">{{ __('Nota do relatório escrito: ') }}</label>
<input class="form-control" name="nota" type="number" step="0.01"
style="width: 70px;"
style="width: 70px;" required
@if($avaliacao->nota != null) value="{{$avaliacao->nota}}" @endif>
</div>
</div>
<div class="row" style="margin-top: 10px">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px;">{{ __('Arquivo: ') }}</label>
@if($avaliacao->arquivoAvaliacao != null)
<a href="{{route('download', ['file' => $avaliacao->arquivoAvaliacao])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
<input type="file" class="input-group-text" name="avaliacaoArq" accept=".pdf" id="avaliacaoArq"/>
@error('avaliacaoArq')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="col row">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;padding-right: 10px">{{ __('Nota da apresentação: ') }}</label>
<input class="form-control" name="nota_apresentacao" type="number" step="0.01"
style="width: 70px;" required
@if($avaliacao->nota_apresentacao != null) value="{{$avaliacao->nota_apresentacao}}" @endif>
</div>
<div class="col-5 row" style="margin-right: 70px;">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold;margin-right: 5px;">{{ __('Arquivo: ') }}</label>
@if($avaliacao->arquivoAvaliacao != null)
<a href="{{route('download', ['file' => $avaliacao->arquivoAvaliacao])}}" target="_new" >
<img class="" src="{{asset('img/icons/pdf.ico')}}" style="width:40px">
</a>
@endif
<input type="file" class="input-group-text" name="avaliacaoArq" accept=".pdf" id="avaliacaoArq"/>
@error('avaliacaoArq')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="row">
<label for="lattes" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Comentário: ') }}</label>
</div>
<div class="row">
<textarea class="col-md-11" minlength="20" id="comentario"
name="comentario"
style="border-radius:5px 5px 0 0;height: 71px;"
required>@if($avaliacao->comentario){{$avaliacao->comentario}}@endif</textarea>
<textarea class="col-md-12" minlength="20" id="comentario"
name="comentario" style="border-radius:5px 5px 0 0;height: 150px;"
required>@if($avaliacao->comentario){{$avaliacao->comentario}}@endif
</textarea>
<div class="col-md-1" style="flex: 1;align-self: flex-end;">
</div>
<div class="row justify-content-end" style="margin-top: 10px">
<div class="col-1">
<button type="submit" class="btn btn-success" style="height: 40px">Salvar</button>
</div>
<div>
<a href="{{ route('planos.avaliacoes.index') }}" class="btn btn-secondary">Voltar</a>
</div>
</div>
</div>
<br>
......
@extends('layouts.app')
@section('content')
<div class="container">
......@@ -27,12 +28,13 @@
<div class="col-sm-5">
<label for="tipo" class="col-form-label">{{ __('Tipo:') }}<span style="color:red; font-weight:bold;">*</span></label>
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" value="{{ old('tipo') }}" required>
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" value="{{ old('tipo') }}" required onchange="selectTipo()">
<option @if(old('tipo')=='PIBIC' ) selected @endif value="PIBIC">PIBIC</option>
<option @if(old('tipo')=='PIBIC-EM' ) selected @endif value="PIBIC-EM">PIBIC-EM</option>
<option @if(old('tipo')=='PIBIC-AF' ) selected @endif value="PIBIC-AF">PIBIC-AF</option>
<option @if(old('tipo')=='PIBITI' ) selected @endif value="PIBITI">PIBITI</option>
<option @if(old('tipo')=='PIBEX' ) selected @endif value="PIBEX">PIBEX</option>
<option @if(old('tipo')=='CONTINUO' ) selected @endif value="CONTINUO">Fluxo Contínuo</option>
</select>
@error('tipo')
......@@ -86,7 +88,7 @@
</span>
@enderror
</div>
<div class="col-sm-3">
<div class="col-sm-3" id='div-cot-doutor'>
<label for="cotaDoutor" class="col-form-label">{{ __('Cota para recém doutor: ') }}</label>
<input type="checkbox" name="cotaDoutor" id="cotaDoutor" style="margin-left: 5px" {{ old('cotaDoutor') ? 'checked' : ''}}>
......@@ -246,7 +248,7 @@
</div>{{-- end dataInicio | dataFim | inicioSubmissao | fimSubmissao --}}
<div class="row justify-content-center">
<div class="col-sm-6">
<div class="col-sm-6" id='div-inicio-avaliacao'>
<label for="inicioRevisao" class="col-form-label">{{ __('Início da Avaliação:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicioRevisao" type="date" class="form-control @error('inicioRevisao') is-invalid @enderror" name="inicioRevisao" value="{{ old('inicioRevisao') }}" required autocomplete="inicioRevisao" autofocus>
......@@ -256,7 +258,7 @@
</span>
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-avaliacao'>
<label for="fimRevisao" class="col-form-label">{{ __('Fim da Avaliação:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimRevisao" type="date" class="form-control @error('fimRevisao') is-invalid @enderror" name="fimRevisao" value="{{ old('fimRevisao') }}" required autocomplete="fimRevisao" autofocus>
......@@ -269,7 +271,7 @@
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-result-pre'>
<label for="resultado_preliminar" class="col-form-label">{{ __('Resultado Preliminar:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="resultado_preliminar" type="date" class="form-control @error('resultado_preliminar') is-invalid @enderror" name="resultado_preliminar" value="{{ old('resultado_preliminar') }}" required autocomplete="resultado_preliminar" autofocus>
......@@ -279,7 +281,7 @@
</span>
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-ini-rec'>
<label for="inicio_recurso" class="col-form-label">{{ __('Início do recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicio_recurso" type="date" class="form-control @error('inicio_recurso') is-invalid @enderror" name="inicio_recurso" value="{{ old('inicio_recurso') }}" required autocomplete="inicio_recurso" autofocus>
......@@ -292,7 +294,7 @@
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-rec'>
<label for="fim_recurso" class="col-form-label">{{ __('Fim do Recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fim_recurso" type="date" class="form-control @error('fim_recurso') is-invalid @enderror" name="fim_recurso" value="{{ old('fim_recurso') }}" required autocomplete="resultado" autofocus>
......@@ -303,7 +305,7 @@
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-result-fim'>
<label for="resultado_final" class="col-form-label">{{ __('Resultado Final:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="resultado_final" type="date" class="form-control @error('resultado_final') is-invalid @enderror" name="resultado_final" value="{{ old('resultado_final') }}" required autocomplete="resultado" autofocus>
......@@ -317,7 +319,7 @@
<!-- AKI -->
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-ini-proj'>
<label for="inicioProjeto" class="col-form-label">{{ __('Início do Projeto:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicioProjeto" type="date" class="form-control @error('inicioProjeto') is-invalid @enderror" name="inicioProjeto" value="{{ old('inicioProjeto') }}" required autocomplete="inicioProjeto" autofocus>
......@@ -328,7 +330,7 @@
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-proj'>
<label for="fimProjeto" class="col-form-label">{{ __('Fim do Projeto:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimProjeto" type="date" class="form-control @error('fimProjeto') is-invalid @enderror" name="fimProjeto" value="{{ old('fimProjeto') }}" required autocomplete="fimProjeto" autofocus>
......@@ -341,14 +343,15 @@
</div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
<div class="col-sm-12" id='div-relat-titulo'>
<hr>
<p>Relatórios</p>
</div>
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-inicio-relat-parcial'>
@component('componentes.input', ['label' => 'Início do Relatório Parcial:'])
<input id="dt_inicioRelatorioParcial" type="date" class="form-control @error('dt_inicioRelatorioParcial') is-invalid @enderror" name="dt_inicioRelatorioParcial" value="{{ old('dt_inicioRelatorioParcial') }}" required autocomplete="dt_inicioRelatorioParcial" autofocus title="Início para o período do envio do relatório parcial">
......@@ -359,7 +362,7 @@
@enderror
@endcomponent
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-relat-parcial'>
@component('componentes.input', ['label' => 'Fim do Relatório Parcial:'])
<input id="dt_fimRelatorioParcial" type="date" class="form-control @error('dt_fimRelatorioParcial') is-invalid @enderror" name="dt_fimRelatorioParcial" value="{{ old('dt_fimRelatorioParcial') }}" required autocomplete="dt_fimRelatorioParcial" autofocus title="Final do período de envio do relatório parcial">
......@@ -370,7 +373,7 @@
@enderror
@endcomponent
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-ini-relat-final'>
@component('componentes.input', ['label' => 'Início do Relatório Final:'])
<input id="dt_inicioRelatorioFinal" type="date" class="form-control @error('dt_inicioRelatorioFinal') is-invalid @enderror" name="dt_inicioRelatorioFinal" value="{{ old('dt_inicioRelatorioFinal') }}" required autocomplete="dt_inicioRelatorioFinal" autofocus title="Início para o período de envio do relatório final">
......@@ -381,7 +384,7 @@
@enderror
@endcomponent
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-relat-final'>
@component('componentes.input', ['label' => 'Fim do Relatório Final:'])
<input id="dt_fimRelatorioFinal" type="date" class="form-control @error('dt_fimRelatorioFinal') is-invalid @enderror" name="dt_fimRelatorioFinal" value="{{ old('dt_fimRelatorioFinal') }}" required autocomplete="dt_fimRelatorioFinal" autofocus title="Final do período de envio do relatório final">
......@@ -394,18 +397,19 @@
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="row subtitulo" id='div-avaliacao'>
<hr>
<div class="col-sm-12">
<p>Avaliação</p>
</div>
</div>
<div class="my-2" >
<div class="my-2" id='div-text-aval'>
<p style="font-size: 16px">Como a avaliação será realizada?</p>
</div>
<div class="mb-2">
<div class="mb-2" id='div-tipo-aval'>
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
@if((old('tipoAvaliacao') == 'form') || old('tipoAvaliacao') == "") checked @endif value="form">
<label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label>
......@@ -421,31 +425,32 @@
<div class="row justify-content-center" style="margin-top:10px" id="displayForm">
<div class="col-sm-6">
<div class="form-group">
<label for="pdfFormAvalExterno">Formulário para avaliador <i>ad hoc</i>:<span style="color:red; font-weight:bold;">*</span></label>
@if(old('pdfFormAvalExternoPreenchido') != null)
<a id="pdfFormAvalExternoTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'formAvaliacaoExterno' ])}}">Arquivo atual</a>
<div class="form-group" id='div-doc-aux'>
<label for="docTutorial">Documento auxiliar para Avaliador:</label>
@if(old('docTutorialPreenchido') != null)
<a id="docTutorialTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'docTutorial' ])}}">Arquivo atual</a>
@endif
<input type="hidden" id="pdfFormAvalExternoPreenchido" name="pdfFormAvalExternoPreenchido" value="{{ old('pdfFormAvalExternoPreenchido') }}">
<input type="file" accept=".pdf,.doc,.docx,.xlsx,.xls,.csv,.zip" class="form-control-file @error('pdfFormAvalExterno') is-invalid @enderror" name="pdfFormAvalExterno" value="{{ old('pdfFormAvalExterno') }}" id="pdfFormAvalExterno" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ter até 2mb.</small>
@error('pdfFormAvalExterno')
<input type="hidden" id="docTutorialPreenchido" name="docTutorialPreenchido" value="{{ old('docTutorialPreenchido') }}">
<input type="file" accept=".pdf,.docx,.doc,.zip" class="form-control-file pdf @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ser de até 2mb.</small>
@error('docTutorial')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="docTutorial">Documento auxiliar para Avaliador:</label>
@if(old('docTutorialPreenchido') != null)
<a id="docTutorialTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'docTutorial' ])}}">Arquivo atual</a>
<div class="form-group" id='div-adhoc'>
<label for="pdfFormAvalExterno">Formulário para avaliador <i>ad hoc</i>:<span style="color:red; font-weight:bold;">*</span></label>
@if(old('pdfFormAvalExternoPreenchido') != null)
<a id="pdfFormAvalExternoTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'formAvaliacaoExterno' ])}}">Arquivo atual</a>
@endif
<input type="hidden" id="docTutorialPreenchido" name="docTutorialPreenchido" value="{{ old('docTutorialPreenchido') }}">
<input type="file" accept=".pdf,.docx,.doc,.zip" class="form-control-file pdf @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ser de até 2mb.</small>
@error('docTutorial')
<input type="hidden" id="pdfFormAvalExternoPreenchido" name="pdfFormAvalExternoPreenchido" value="{{ old('pdfFormAvalExternoPreenchido') }}">
<input type="file" accept=".pdf,.doc,.docx,.xlsx,.xls,.csv,.zip" class="form-control-file @error('pdfFormAvalExterno') is-invalid @enderror" name="pdfFormAvalExterno" value="{{ old('pdfFormAvalExterno') }}" id="pdfFormAvalExterno" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ter até 2mb.</small>
@error('pdfFormAvalExterno')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
......@@ -829,7 +834,74 @@
}
}
window.onload = showDocumentoExtra();
function displayNone(name){
document.getElementById(name);
}
function selectTipo(){
var tipo = document.getElementById('tipo');
names = ['div-inicio-avaliacao',
'div-fim-avaliacao',
'div-result-pre',
'div-ini-rec',
'div-fim-rec',
'div-result-fim',
'div-ini-proj',
'div-fim-proj',
'div-adhoc',
'div-doc-aux',
'div-cot-doutor',
'div-inicio-relat-parcial',
'div-fim-relat-parcial',
'div-ini-relat-final',
'div-fim-relat-final',
'div-relat-titulo',
'div-avaliacao',
'div-tipo-aval',
'div-text-aval']
inputs = ['inicioRevisao',
'fimRevisao',
'resultado_preliminar',
'inicio_recurso',
'fim_recurso',
'resultado_final',
'inicioProjeto',
'fimProjeto',
'dt_inicioRelatorioParcial',
'dt_fimRelatorioParcial',
'dt_inicioRelatorioFinal',
'dt_fimRelatorioFinal'
]
if(tipo.value === 'CONTINUO'){
names.forEach(function(nome, i){
document.getElementById(nome).style.display = "none";
})
inputs.forEach(function(nome, i){
document.getElementById(nome).removeAttribute('required');
})
} else {
names.forEach(function(nome, i){
document.getElementById(nome).style.display = "block";
})
inputs.forEach(function(nome, i){
document.getElementById(nome).setAttribute('required', '');
})
}
}
function onload(){
showDocumentoExtra();
selectTipo();
}
window.onload = onload();
</script>
@if($errors->has('somaNotas'))
......
......@@ -41,12 +41,13 @@
<div class="col-sm-5">
<label for="tipo" class="col-form-label">{{ __('Tipo:') }}<span style="color: red; font-weight: bold;">*</span></label>
<!-- <input value="{{$evento->tipo}}" id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" value="{{ old('tipo') }}" required autocomplete="tipo" autofocus> -->
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" required>
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" required onchange="selectTipo()">
<option value="PIBIC" {{ $evento->tipo == "PIBIC" ? 'selected' :'' }}>PIBIC</option>
<option value="PIBIC-EM" {{ $evento->tipo == "PIBIC-EM" ? 'selected' :'' }}>PIBIC-EM</option>
<option value="PIBIC-AF" {{ $evento->tipo == "PIBIC-AF" ? 'selected' :'' }}>PIBIC-AF</option>
<option value="PIBITI" {{ $evento->tipo == "PIBITI" ? 'selected' :'' }}>PIBITI</option>
<option value="PIBEX" {{ $evento->tipo == "PIBEX" ? 'selected' :'' }}>PIBEX</option>
<option value="CONTINUO" {{ $evento->tipo == "CONTINUO" ? 'selected' :'' }}>Fluxo Contínuo</option>
</select>
@error('tipo')
<span class="invalid-feedback" role="alert">
......@@ -103,7 +104,7 @@
@enderror
</div>
<div class="col-sm-3">
<div class="col-sm-3" id='div-cot-doutor'>
<label for="cotaDoutor" class="col-form-label">{{ __('Cota para recém doutor?') }}</label>
<input type="checkbox" @if($evento->cotaDoutor) checked @endif name="cotaDoutor" id="cotaDoutor">
......@@ -248,7 +249,7 @@
</div>{{-- end Fim da submissão --}}
</div>{{-- end dataInicio | dataFim | inicioSubmissao | fimSubmissao --}}
<div class="row justify-content-center">
<div class="col-sm-6">
<div class="col-sm-6" id='div-inicio-avaliacao'>
<label for="inicioRevisao" class="col-form-label">{{ __('Início da Avaliação:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input value="{{$evento->inicioRevisao}}" id="inicioRevisao" type="date" class="form-control @error('inicioRevisao') is-invalid @enderror" name="inicioRevisao" value="{{ old('inicioRevisao') }}" required autocomplete="inicioRevisao" autofocus>
......@@ -258,7 +259,7 @@
</span>
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-avaliacao'>
<label for="fimRevisao" class="col-form-label">{{ __('Fim da Avaliação:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input value="{{$evento->fimRevisao}}" id="fimRevisao" type="date" class="form-control @error('fimRevisao') is-invalid @enderror" name="fimRevisao" value="{{ old('fimRevisao') }}" required autocomplete="fimRevisao" autofocus>
......@@ -272,7 +273,7 @@
{{-- inicioRevisao | fimRevisao | inicioResultado | fimResultado--}}
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-result-pre'>
<label for="resultado_preliminar" class="col-form-label">{{ __('Resultado Preliminar:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="resultado_preliminar" value="{{$evento->resultado_preliminar}}" type="date" class="form-control @error('resultado_preliminar') is-invalid @enderror" name="resultado_preliminar" value="{{ old('resultado_preliminar') }}" required autocomplete="resultado_preliminar" autofocus>
......@@ -282,7 +283,7 @@
</span>
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-ini-rec'>
<label for="inicio_recurso" class="col-form-label">{{ __('Início do recurso:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="inicio_recurso" type="date" value="{{ $evento->inicio_recurso }}" class="form-control @error('inicio_recurso') is-invalid @enderror" name="inicio_recurso" value="{{ old('inicio_recurso') }}" required autocomplete="inicio_recurso" autofocus>
......@@ -295,7 +296,7 @@
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-rec'>
<label for="fim_recurso" class="col-form-label">{{ __('Fim do Recurso:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="fim_recurso" type="date" value="{{ $evento->fim_recurso }}" class="form-control @error('fim_recurso') is-invalid @enderror" name="fim_recurso" value="{{ old('fim_recurso') }}" required autocomplete="resultado" autofocus>
......@@ -306,7 +307,7 @@
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-result-fim'>
<label for="resultado_final" class="col-form-label">{{ __('Resultado Final:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="resultado_final" type="date" value="{{ $evento->resultado_final }}" class="form-control @error('resultado_final') is-invalid @enderror" name="resultado_final" value="{{ old('resultado_final') }}" required autocomplete="resultado" autofocus>
......@@ -320,7 +321,7 @@
<!-- AKI -->
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-ini-proj'>
<label for="inicioProjeto" class="col-form-label">{{ __('Início do Projeto:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="inicioProjeto" type="date" value="{{ $evento->inicioProjeto }}" class="form-control @error('inicioProjeto') is-invalid @enderror" name="inicioProjeto" value="{{ old('inicioProjeto') }}" required autocomplete="inicioProjeto" autofocus>
......@@ -331,7 +332,7 @@
@enderror
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-proj'>
<label for="fimProjeto" class="col-form-label">{{ __('Fim do Projeto:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="fimProjeto" type="date" value="{{ $evento->fimProjeto }}" class="form-control @error('fimProjeto') is-invalid @enderror" name="fimProjeto" value="{{ old('fimProjeto') }}" required autocomplete="fimProjeto" autofocus>
......@@ -343,14 +344,14 @@
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="row subtitulo" id='div-relat-titulo'>
<hr>
<div class="col-sm-12">
<p>Relatórios</p>
</div>
</div>
<div class="row justify-content-left">
<div class="col-sm-6">
<div class="col-sm-6" id='div-inicio-relat-parcial'>
@component('componentes.input', ['label' => 'Início do Relatório Parcial:'])
<input id="dt_inicioRelatorioParcial" type="date" value="{{ $evento->dt_inicioRelatorioParcial }}" class="form-control @error('dt_inicioRelatorioParcial') is-invalid @enderror" name="dt_inicioRelatorioParcial" value="{{ old('dt_inicioRelatorioParcial') }}" required autocomplete="dt_inicioRelatorioParcial" autofocus title="Início para o período do envio do relatório parcial">
......@@ -361,7 +362,7 @@
@enderror
@endcomponent
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-relat-parcial'>
@component('componentes.input', ['label' => 'Fim do Relatório Parcial:'])
<input id="dt_fimRelatorioParcial" type="date" value="{{ $evento->dt_fimRelatorioParcial }}" class="form-control @error('dt_fimRelatorioParcial') is-invalid @enderror" name="dt_fimRelatorioParcial" value="{{ old('dt_fimRelatorioParcial') }}" required autocomplete="dt_fimRelatorioParcial" autofocus title="Final do período do envio do relatório parcial">
......@@ -372,7 +373,7 @@
@enderror
@endcomponent
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-ini-relat-final'>
@component('componentes.input', ['label' => 'Início do Relatório Final:'])
<input id="dt_inicioRelatorioFinal" type="date" value="{{ $evento->dt_inicioRelatorioFinal }}" class="form-control @error('dt_inicioRelatorioFinal') is-invalid @enderror" name="dt_inicioRelatorioFinal" value="{{ old('dt_inicioRelatorioFinal') }}" required autocomplete="dt_inicioRelatorioFinal" autofocus title="Início para o período do envio do relatório final">
......@@ -383,7 +384,7 @@
@enderror
@endcomponent
</div>
<div class="col-sm-6">
<div class="col-sm-6" id='div-fim-relat-final'>
@component('componentes.input', ['label' => 'Fim do Relatório Final:'])
<input id="dt_fimRelatorioFinal" type="date" value="{{ $evento->dt_fimRelatorioFinal }}" class="form-control @error('dt_fimRelatorioFinal') is-invalid @enderror" name="dt_fimRelatorioFinal" value="{{ old('dt_fimRelatorioFinal') }}" required autocomplete="dt_fimRelatorioFinal" autofocus title="Final do período do envio do relatório final">
......@@ -396,8 +397,8 @@
</div>
</div>
<hr>
<div class="row subtitulo">
<div class="row subtitulo" id='div-avaliacao'>
<hr>
<div class="col-sm-12">
<p>Avaliação</p>
</div>
......@@ -409,11 +410,11 @@
</div>
@endif
<div class="my-2" >
<div class="my-2" id='div-text-aval'>
<p style="font-size: 16px">Como a avaliação será realizada?</p>
</div>
<div class="mb-2">
<div class="mb-2" id='div-tipo-aval'>
@if (old('tipoAvaliacao') != null)
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
@if((old('tipoAvaliacao') == 'form') || old('tipoAvaliacao') == "") checked @endif value="form" @if($avaliado) disabled @endif>
......@@ -454,7 +455,7 @@
<div class="row justify-content-center" style="margin-top:10px" id="displayForm">
<div class="col-sm-6">
<div class="form-group">
<div class="form-group" id='div-adhoc',>
<label for="pdfEdital">Formulário para avaliador <i>ad hoc</i>:<span style="color: red; font-weight: bold;">*</span></label>
@if ($evento->tipoAvaliacao == "form")
<a href="{{route('download', ['file' => $evento->formAvaliacaoExterno])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
......@@ -476,7 +477,7 @@
</div>
<div class="col-sm-6">
<div class="form-group">
<div class="form-group" id='div-doc-aux'>
<label for="pdfEdital">Documento auxiliar para Avaliador:</label>
@if($evento->docTutorial != null)
<a href="{{route('download', ['file' => $evento->docTutorial])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
......@@ -959,7 +960,68 @@
}
}
window.onload = showDocumentoExtra();
function selectTipo(){
var tipo = document.getElementById('tipo');
names = ['div-inicio-avaliacao',
'div-fim-avaliacao',
'div-result-pre',
'div-ini-rec',
'div-fim-rec',
'div-result-fim',
'div-ini-proj',
'div-fim-proj',
'div-adhoc',
'div-doc-aux',
'div-cot-doutor',
'div-inicio-relat-parcial',
'div-fim-relat-parcial',
'div-ini-relat-final',
'div-fim-relat-final',
'div-relat-titulo',
'div-avaliacao',
'div-tipo-aval',
'div-text-aval']
inputs = ['inicioRevisao',
'fimRevisao',
'resultado_preliminar',
'inicio_recurso',
'fim_recurso',
'resultado_final',
'inicioProjeto',
'fimProjeto',
'dt_inicioRelatorioParcial',
'dt_fimRelatorioParcial',
'dt_inicioRelatorioFinal',
'dt_fimRelatorioFinal'
]
if(tipo.value === 'CONTINUO'){
names.forEach(function(nome, i){
document.getElementById(nome).style.display = "none";
})
inputs.forEach(function(nome, i){
document.getElementById(nome).removeAttribute('required');
})
} else {
names.forEach(function(nome, i){
document.getElementById(nome).style.display = "block";
})
inputs.forEach(function(nome, i){
document.getElementById(nome).setAttribute('required', '');
})
}
}
window.onload = () => {
showDocumentoExtra();
selectTipo();
}
</script>
@if($errors->has('somaNotas'))
......
......@@ -7,129 +7,140 @@
<div class="col-md-12"><h5 style="color: #234B8B; font-weight: bold">Anexos do Projeto</h5></div>
</div>
<hr style="border-top: 1px solid#1492E6; margin-bottom: 10px" >
{{-- Anexo do Projeto --}}
<div class="row justify-content-start">
{{-- Arquivo --}}
<div class="form-group col-md-6">
<label for="anexoProjeto" class="col-form-label font-tam" style="font-weight: bold">{{ __('Projeto: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoProjeto" placeholder="nomeProjeto" accept="application/pdf" />
@error('anexoProjeto')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@if($edital->tipo != "PIBEX")
@if($edital->tipo == "CONTINUO")
<div class="form-group col-md-6" style="margin-top: 10px">
<label for="anexoLatterCoordenador" class="col-form-label font-tam" style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoLattesCoordenador" placeholder="anexoPlanoTrabalho" accept=".pdf" />
@error('anexoLattesCoordenador')
<label for="anexo_SIPAC" class="col-form-label font-tam" style="font-weight: bold">{{ __('Processo SIPAC: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexo_SIPAC" placeholder="PDF do processo SIPAC" accept=".pdf" />
@error('anexo_SIPAC')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6">
<label for="anexoPlanilhaPontuacao" class="col-form-label font-tam" style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoPlanilhaPontuacao" placeholder="anexoPlanilhaPontuacao" accept=".xlsx, .xls, .ods" />
@error('anexoPlanilhaPontuacao')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
@if($edital->consu)
<div class="form-group col-md-6">
<label title="Decisão da Câmara ou Conselho Pertinente" for="anexoCONSU" class="col-form-label font-tam" style="font-weight: bold">{{ __('Decisão da Câmara ou Conselho Pertinente: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
@error('anexoDecisaoCONSU')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@else
<div class="form-group col-md-6">
<label title="Decisão da Câmara ou Conselho Pertinente" for="anexoCONSU" class="col-form-label font-tam" style="font-weight: bold">{{ __('Decisão da Câmara ou Conselho Pertinente:') }}</label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
@error('anexoDecisaoCONSU')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<label for="anexoProjeto" class="col-form-label font-tam" style="font-weight: bold">{{ __('Projeto: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoProjeto" placeholder="nomeProjeto" accept="application/pdf" />
@error('anexoProjeto')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
@enderror
</div>
@endif
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6" style="margin-top: 10px">
<label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Grupo de Pesquisa: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoGrupoPesquisa" placeholder="Anexo do Grupo de Pesquisa" accept="application/pdf" />
@error('anexoGrupoPesquisa')
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6" style="margin-top: 10px">
<label for="anexoLatterCoordenador" class="col-form-label font-tam" style="font-weight: bold">{{ __('Lattes do Coordenador: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoLattesCoordenador" placeholder="anexoPlanoTrabalho" accept=".pdf" />
@error('anexoLattesCoordenador')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6">
</div>
@endif
<label for="botao" class="col-form-label font-tam @error('botao') is-invalid @enderror" data-toggle="tooltip" data-placement="bottom" title="Se possuir, coloque todas em único arquivo pdf." style="font-weight: bold">{{ __('Possui autorizações especiais?') }} <span style="color: red; font-weight:bold">*</span></label>
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6">
<label for="anexoPlanilhaPontuacao" class="col-form-label font-tam" style="font-weight: bold">{{ __('Planilha de Pontuação: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoPlanilhaPontuacao" placeholder="anexoPlanilhaPontuacao" accept=".xlsx, .xls, .ods" />
@error('anexoPlanilhaPontuacao')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
<input type="radio" id="radioSim" name="autorizacaoFlag" onchange="displayAutorizacoesEspeciaisDois('sim')"
checked value="sim">
<label for="radioSim" style="margin-right: 5px">Sim</label>
</div>
@endif
<input type="radio" id="radioNao" name="autorizacaoFlag" onchange="displayAutorizacoesEspeciaisDois('nao')"
value="nao">
<label for="radioNao" style="margin-right: 5px">Não</label><br>
<span id="idAvisoAutorizacaoEspecial" class="invalid-feedback" role="alert" style="overflow: visible; display:none">
<strong>Selecione a autorização e envie o arquivo!</strong>
</span>
@if($edital->consu)
<div class="form-group col-md-6">
<label title="Decisão da Câmara ou Conselho Pertinente" for="anexoCONSU" class="col-form-label font-tam" style="font-weight: bold">{{ __('Decisão da Câmara ou Conselho Pertinente: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
@error('anexoDecisaoCONSU')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@else
<div class="form-group col-md-6">
<label title="Decisão da Câmara ou Conselho Pertinente" for="anexoCONSU" class="col-form-label font-tam" style="font-weight: bold">{{ __('Decisão da Câmara ou Conselho Pertinente:') }}</label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
@error('anexoDecisaoCONSU')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
<div class="form-group" id="displaySim" style="display: block; margin-top:-1rem">
<label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold;font-size: 13px">{{ __('Sim, declaro que necessito de autorizações especiais') }}</label>
<input type="file" class="input-group-text" name="anexoAutorizacaoComiteEtica" placeholder="anexoComiteEtica" accept=".pdf" />
@error('anexoAutorizacaoComiteEtica')
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6" style="margin-top: 10px">
<label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Grupo de Pesquisa: ') }}<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoGrupoPesquisa" placeholder="Anexo do Grupo de Pesquisa" accept="application/pdf" />
@error('anexoGrupoPesquisa')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
<div class="form-group" id="displayNao" style="display: none; margin-top:-1rem">
<label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Declaração de que não necessito de autorização especiais ') }}</label>
<input type="file" class="input-group-text" name="justificativaAutorizacaoEtica" placeholder="justificativaAutorizacaoEtica" accept=".pdf" />
@error('justificativaAutorizacaoEtica')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
@if($edital->tipo != "PIBEX")
<div class="form-group col-md-6">
<label for="botao" class="col-form-label font-tam @error('botao') is-invalid @enderror" data-toggle="tooltip" data-placement="bottom" title="Se possuir, coloque todas em único arquivo pdf." style="font-weight: bold">{{ __('Possui autorizações especiais?') }} <span style="color: red; font-weight:bold">*</span></label>
<input type="radio" id="radioSim" name="autorizacaoFlag" onchange="displayAutorizacoesEspeciaisDois('sim')"
checked value="sim">
<label for="radioSim" style="margin-right: 5px">Sim</label>
<input type="radio" id="radioNao" name="autorizacaoFlag" onchange="displayAutorizacoesEspeciaisDois('nao')"
value="nao">
<label for="radioNao" style="margin-right: 5px">Não</label><br>
<span id="idAvisoAutorizacaoEspecial" class="invalid-feedback" role="alert" style="overflow: visible; display:none">
<strong>Selecione a autorização e envie o arquivo!</strong>
</span>
<div class="form-group" id="displaySim" style="display: block; margin-top:-1rem">
<label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold;font-size: 13px">{{ __('Sim, declaro que necessito de autorizações especiais') }}</label>
<input type="file" class="input-group-text" name="anexoAutorizacaoComiteEtica" placeholder="anexoComiteEtica" accept=".pdf" />
@error('anexoAutorizacaoComiteEtica')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
@enderror
</div>
<div class="form-group" id="displayNao" style="display: none; margin-top:-1rem">
<label for="nomeTrabalho" class="col-form-label font-tam" style="font-weight: bold">{{ __('Declaração de que não necessito de autorização especiais ') }}</label>
<input type="file" class="input-group-text" name="justificativaAutorizacaoEtica" placeholder="justificativaAutorizacaoEtica" accept=".pdf" />
@error('justificativaAutorizacaoEtica')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
</div>
@endif
@if($edital->nome_docExtra != null)
<div class="form-group col-md-6">
<label title="{{$edital->nome_docExtra}}" for="anexo_docExtra" class="col-form-label font-tam" style="font-weight: bold">{{$edital->nome_docExtra}}: @if($edital->obrigatoriedade_docExtra == true) <span style="color: red; font-weight:bold">*</span> @endif</label>
<input type="file" class="input-group-text" name="anexo_docExtra" accept=".pdf,.docx,.doc,.zip " />
@error('anexo_docExtra')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
@if($edital->nome_docExtra != null)
<div class="form-group col-md-6">
<label title="{{$edital->nome_docExtra}}" for="anexo_docExtra" class="col-form-label font-tam" style="font-weight: bold">{{$edital->nome_docExtra}}: @if($edital->obrigatoriedade_docExtra == true) <span style="color: red; font-weight:bold">*</span> @endif</label>
<input type="file" class="input-group-text" name="anexo_docExtra" accept=".pdf,.docx,.doc,.zip " />
@error('anexo_docExtra')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
@endif
</div>
</div>
......
<!-- Finalizar -->
<div class="col-md-12" style="margin-top: 20px">
<div class="card" style="border-radius: 5px">
<div class="card-body" style="padding-top: 0.2rem;">
<div class="container">
<div class="form-row mt-3">
<div class="col-md-12"><h5 style="color: #234B8B; font-weight: bold">Finalizar</h5></div>
</div>
<hr style="border-top: 1px solid#1492E6">
<div class=" d-flex justify-content-between align-items-center" style="margin-top: 15px; margin-bottom:18px">
<h6 style="font-weight: bold"><span style="color: red; font-weight:bold">*</span> Campos obrigatórios</h6>
<button id="submeterFormProposta" type="submit" style="display: none;"></button>
<button type="submit" class="btn btn-primary " id="idButtonSubmitRascunho" >{{ __('Salvar como rascunho') }}</button>
<button type="submit" class="btn btn-success" id="idButtonSubmitProjeto" >{{ __('Submeter projeto') }}</button>
</div>
@if($errors->any())
<div class="alert alert-danger">
Verifique se todos os campos obrigatórios/Dados do discente foram preenchidos!
</div>
@endif
</div>
</div>
</div>
</div>
<!-- Finalizar -->
<div class="col-md-12" style="margin-top: 20px">
<div class="card" style="border-radius: 5px">
<div class="card-body" style="padding-top: 0.2rem;">
<div class="container">
<div class="form-row mt-3">
<div class="col-md-12"><h5 style="color: #234B8B; font-weight: bold">Finalizar</h5></div>
</div>
<hr style="border-top: 1px solid#1492E6">
<div class=" d-flex justify-content-between align-items-center" style="margin-top: 15px; margin-bottom:18px">
<h6 style="font-weight: bold"><span style="color: red; font-weight:bold">*</span> Campos obrigatórios</h6>
<button id="submeterFormProposta" type="submit" style="display: none;"></button>
<button type="submit" class="btn btn-primary " id="idButtonSubmitRascunho" >{{ __('Salvar como rascunho') }}</button>
<button type="submit" class="btn btn-success" id="idButtonSubmitProjeto" >{{ __('Submeter projeto') }}</button>
</div>
@if($errors->any())
<div class="alert alert-danger">
Verifique se todos os campos obrigatórios/Dados do discente foram preenchidos!
</div>
@endif
</div>
</div>
</div>
</div>
<!--X Finalizar X-->
\ No newline at end of file
......@@ -48,7 +48,11 @@
<label for="funcao_participante">Função do Participante:</label>
<select name="" id="funcao_participante" class="form-control">
@foreach($funcaoParticipantes as $funcao)
<option value="{{$funcao->id}}">{{ $funcao->nome }}</option>
@if($funcao->nome != 'Bolsista')
<option value="{{$funcao->id}}">{{ $funcao->nome }}</option>
@elseif($edital->tipo != "CONTINUO")
<option value="{{$funcao->id}}">{{ $funcao->nome }}</option>
@endif
@endforeach
</select>
</div>
......
......@@ -117,21 +117,23 @@
</div>
@endif
<div class="col-md-2">
<br>
<label for="conflitosInteresse" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Conflitos de interesse: ') }}</label>
</div>
<div class="col-md-10">
<br>
<textarea class="form-control @error('conflitosInteresse') is-invalid @enderror" autocomplete="conflitosInteresse"
id="conflitosInteresse" name="conflitosInteresse" rows="3">{{ old('conflitosInteresse') }}</textarea>
@error('conflitosInteresse')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@if($edital->tipo != "CONTINUO" && $edital->tipo != "PIBEX")
<div class="col-md-2">
<br>
<label for="conflitosInteresse" class="col-form-label font-tam"
style="font-weight: bold">{{ __('Conflitos de interesse: ') }}</label>
</div>
<div class="col-md-10">
<br>
<textarea class="form-control @error('conflitosInteresse') is-invalid @enderror" autocomplete="conflitosInteresse"
id="conflitosInteresse" name="conflitosInteresse" rows="3">{{ old('conflitosInteresse') }}</textarea>
@error('conflitosInteresse')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
</div>
</div>
......
@extends('layouts.app')
@section('content')
<div>
{{-- action="{{route('trabalho.store')}}" --}}
<form method="POST" id="criarProjetoForm" action="{{route('trabalho.store')}}" enctype="multipart/form-data" >
@csrf
<input type="hidden" name="editalId" value="{{$edital->id}}">
<div class="container">
<div class="row justify-content-center" style="margin-top: 35px">
@include('evento.formulario.projeto')
@include('evento.formulario.proponente')
@if ($edital->numParticipantes != 0)
@include('evento.formulario.participantes')
@endif
@if($edital->natureza_id == 3)
@include('evento.formulario.integrantes')
@endif
@include('evento.formulario.anexos')
@include('evento.formulario.finalizar')
<style>
.col-form-label {
font-size: 15.5px;
}
</style>
</div>
</div>
</form>
@if ($edital->numParticipantes != 0)
<div id="participanteFirst" >
@component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
@endcomponent
</div>
@endif
<!-- Modal de Aviso Edit -->
<div class="modal fade" id="exampleModalAnexarDocumento" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel2" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header" id="idCorCabecalhoModalDocumento">
<h5 class="modal-title" id="exampleModalLabel2" style="font-size:20px; margin-top:7px; color:white; font-weight:bold; font-family: 'Roboto', sans-serif;">Aviso</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-12" style="font-family: 'Roboto', sans-serif;"><label id="idTituloDaMensagemModalDocumento"></label></div>
<div class="col-12" style="font-family: 'Roboto', sans-serif; margin-top:10px;">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" data-dismiss="modal"style="width:200px;">Fechar</button>
</div>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="modalCpfInvalido" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel2" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header" style="background-color: red;">
<h5 class="modal-title" id="exampleModalLabel2" style="font-size:20px; margin-top:7px; color:white; font-weight:bold; font-family: 'Roboto', sans-serif;">Aviso</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Existe um CPF inválido em um dos discentes por favor corrija para continuar.
</div>
{{-- <div class="modal-footer">
{{-- <button type="button" class="btn btn-secondary"></button>
{{-- <button type="button" class="btn btn-primary">Certo</button>
</div> --}}
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script>
let buttonSubmit = document.getElementById('idButtonSubmitProjeto');
let buttonRascunho = document.getElementById('idButtonSubmitRascunho');
@if($edital->numParticipantes != 0)
let parts = document.getElementById('participante');
let partsFirst = document.getElementById('participanteFirst');
const participante = partsFirst.firstElementChild;
@endif
let contador = 0;
buttonSubmit.addEventListener('click', (e)=>{
$('.collapse').addClass('show')
})
buttonRascunho.addEventListener('click', (e)=>{
$('.collapse').addClass('show')
const input = '<input id="input_rascunho" type="hidden" name="rascunho" value="true">';
$("#criarProjetoForm").append(input);
})
@if($edital->numParticipantes != 0)
function gerarPeriodo(e){
var select = e.parentElement.parentElement.nextElementSibling;
selectPeriodos = select.children[0].children[1];
var html = `<option value="" disabled selected>-- TOTAL DE PERÍODOS --</option>`;
for(var i = 0; i < parseInt(e.value); i++) {
html += `<option value="${i+1}">${i+1}º</option>`;
}
$(selectPeriodos).html('');
$(selectPeriodos).append(html);
}
function removerPart(e){
console.log(e)
if(e.parentElement.parentElement){
if(parts.children.length <= 1){
}else{
parts.removeChild(e.parentElement.parentElement);
//contador--;
}
}
}
buttonMais.addEventListener("click", (e) => {
if(parts.children.length >= "{{ $edital->numParticipantes }}"){
alert('Limite de participante.')
}else{
contador++;
var cln = participante.cloneNode(true);
cln.setAttribute('style', " ");
var id = cln.children[2].firstElementChild.id;
var id2 = cln.children[0].firstElementChild.id;
cln.children[2].firstElementChild.setAttribute('id', id + contador);
cln.children[0].firstElementChild.setAttribute('href', "#collapseParticipante" + contador);
cln.children[0].firstElementChild.setAttribute('id', id2 + contador);
for (i = 0; i < cln.children.length; i++) {
for (let index = 0; index < cln.children[i].querySelectorAll('input').length; index++) {
let input = cln.children[i].querySelectorAll('input')[index];
let name = input.getAttributeNode("name").value;
name = name.replace("[]", "");
input.getAttributeNode("name").value = name + '['+ contador +']';
let select = cln.children[i].querySelectorAll('select')[index];
if(select){
let selectName = select.getAttributeNode("name").value;
selectName = selectName.replace("[", "");
selectName = selectName.replace("]", "");
select.getAttributeNode("name").value = selectName + '['+ contador +']';
}
}
}
var SPMaskBehavior = function (val) {
return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
spOptions = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior.apply({}, arguments), options);
}
};
parts.appendChild(cln);
$("input.cpf:text").val("").mask("000.000.000-00");
$("input.celular:text").val("").mask(SPMaskBehavior, spOptions);
$("input.cep:text").val("").mask("00000-000");
}
});
$("input.rg:text").mask('00.000.000-0');
function marcar(id){
let nome = document.getElementById("nome"+id);
let linkNome = document.getElementById("nomePart"+(id+1));
let nomePlano = document.getElementById("nomePlano"+(id+1));
let linkTituloProj = document.getElementById("tituloProj"+(id+1));
let planoTrabalho = document.getElementById("nomePlanoTrabalho"+id);
if(nome.value != ""){
if(planoTrabalho.value != ""){
nomePlano.innerText = `Nome: ${nome.value} \n Plano: ${planoTrabalho.value}`;
}else {
nomePlano.innerText = `Nome: ${nome.value}`;
}
}else{
nomePlano.innerText = `Discente `+(id+1);
}
if(id >=1){
document.getElementById("cancelar"+(id-1)).setAttribute("disabled", true);
}
document.getElementById("checkB"+id).checked = true;
$("#atribuir1").attr('data-target','#exampleModal'+(id+1));
document.getElementById("part"+id).removeAttribute("hidden");
document.getElementById("exampleModal"+id).modal('hide');
}
function desmarcar(id){
if(id >= 1){;
document.getElementById("cancelar"+(id-1)).removeAttribute("disabled");
}
document.getElementById("checkB"+id).checked = false;
document.getElementById("part"+id).setAttribute("hidden",true);
$("#atribuir1").attr('data-target','#exampleModal'+(id));
document.getElementById("exampleModal"+id).modal('hide');
}
@endif
</script>
<script>
$( document ).ready( function () {
@if($edital->numParticipantes != 0)
$('#nomeParticipante').keyup(function () {
$('#display').text($(this).val());
if($('#nomeParticipante').val() == ""){
$('#display').hide();
$('#pontos').hide();
}else{
$('#display').show();
$('#pontos').show();
}
});
@endif
$.validator.addMethod("alpha", function(value, element) {
return this.optional(element) || value == value.match(/^[A-Za-záàâãéèêíïóôõöúçñÁÀÂÃÉÈÍÏÓÔÕÖÚÇÑ ]+$/);
});
@if($edital->numParticipantes != 0)
$('input.cep:text').mask('00000-000');
$('input.cpf:text').mask('000.000.000-00');
$('.numero').mask('0000000000000');
var SPMaskBehavior = function (val) {
return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
spOptions = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior.apply({}, arguments), options);
}
};
$('.celular').mask(SPMaskBehavior, spOptions);
$('.sus').mask('000 0000 0000 0000');
$("input[type='file']").on("change", function () {
if(this.files[0].size > 2000000) {
// console.log($(this).parents( ".col-sm-5" ))
alert("O tamanho do arquivo deve ser menor que 2MB!");
$(this).val('');
}
});
@endif
// $.validator.setDefaults( {
// submitHandler: function (form) {
// form.submit();
// }
// } );
// jQuery.extend(jQuery.validator.messages, {
// required: "Este campo &eacute; requerido.",
// remote: "Por favor, corrija este campo.",
// email: "Por favor, forne&ccedil;a um endere&ccedil;o eletr&ocirc;nico v&aacute;lido.",
// url: "Por favor, forne&ccedil;a uma URL v&aacute;lida.",
// date: "Por favor, forne&ccedil;a uma data v&aacute;lida.",
// dateISO: "Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).",
// number: "Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.",
// digits: "Por favor, forne&ccedil;a somente d&iacute;gitos.",
// creditcard: "Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.",
// equalTo: "Por favor, forne&ccedil;a o mesmo valor novamente.",
// accept: "Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.",
// maxlength: jQuery.validator.format("Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres."),
// minlength: jQuery.validator.format("Por favor, forne&ccedil;a ao menos {0} caracteres."),
// rangelength: jQuery.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento."),
// range: jQuery.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1}."),
// max: jQuery.validator.format("Por favor, forne&ccedil;a um valor menor ou igual a {0}."),
// min: jQuery.validator.format("Por favor, forne&ccedil;a um valor maior ou igual a {0}.")
// });
// $( "#criarProjetoForm" ).validate( {
// lang: 'PT_BR',
// rules: {
// firstname: "required",
// username: {
// required: true,
// minlength: 2
// },
// password: {
// required: true,
// minlength: 5
// },
// confirm_password: {
// required: true,
// minlength: 5,
// equalTo: "#password"
// },
// email: {
// required: true,
// email: true,
// },
// "complemento[]":{
// },
// "nomeParticipante[]":{
// alpha:true,
// },
// 'rg[]':{
// maxlength: 12,
// },
// agree: "required"
// },
// messages: {
// // nomeProjeto: "O nome do projeto é obrigatório.",
// // 'emailParticipante[]': "Este campo é obrigatório.",
// // 'data_de_nascimento[]': "Este campo é obrigatório.",
// // 'cpf[]': "Este campo é obrigatório.",
// // 'rg[]': {
// // required: "Este campo é obrigatório.",
// // maxlength: "Este campo deve conter no máximo 8 números."
// // },
// // 'celular[]': "Este campo é obrigatório.",
// // 'cep[]': "Este campo é obrigatório.",
// // 'uf[]': "Este campo é obrigatório.",
// // 'cidade[]': "Este campo é obrigatório.",
// // 'bairro[]': "Este campo é obrigatório.",
// // 'rua[]': "Este campo é obrigatório.",
// // 'numero[]': "Este campo é obrigatório.",
// // 'complemento[]': "Este campo é obrigatório.",
// // 'universidade[]': "Este campo é obrigatório.",
// // 'curso[]': "Este campo é obrigatório.",
// // 'turno[]': "Este campo é obrigatório.",
// // 'total_periodos[]': "Este campo é obrigatório.",
// // 'periodo_atual[]': "Este campo é obrigatório.",
// // 'ordem_prioridade[]': "Este campo é obrigatório.",
// // 'media_geral_curso[]': "Este campo é obrigatório.",
// // 'nomePlanoTrabalho[]': "Este campo é obrigatório.",
// // 'anexoPlanoTrabalho[]': "Este campo é obrigatório.",
// // grandeArea: "Escolha uma grande área.",
// // area: "Escolha uma área.",
// // linkGrupo: "Este campo é obrigatório.",
// // pontuacaoPlanilha: "Este campo é obrigatório.",
// // anexoProjeto: "Este campo é obrigatório.",
// // anexoLattesCoordenador: "Este campo é obrigatório.",
// // anexoConsuPreenchido: "Este campo é obrigatório.",
// // anexoGrupoPesquisa: "Este campo é obrigatório.",
// // anexoPlanilha: "Este campo é obrigatório.",
// // anexoComiteEtica: "Este campo é obrigatório.",
// // inputJustificativa: "Este campo é obrigatório.",
// // "nomeParticipante[]": {
// // required: "O nome do participante é obrigatório.",
// // alpha: "Não é permitido números."
// // },
// // username: {
// // required: "Please enter a username",
// // minlength: "Your username must consist of at least 2 characters"
// // },
// // password: {
// // required: "Please provide a password",
// // minlength: "Your password must be at least 5 characters long"
// // },
// // confirm_password: {
// // required: "Please provide a password",
// // minlength: "Your password must be at least 5 characters long",
// // equalTo: "Please enter the same password as above"
// // },
// // email: "Please enter a valid email address",
// // agree: "Please accept our policy"
// },
// errorElement: "em",
// errorPlacement: function ( error, element ) {
// // Add the `help-block` class to the error element
// error.addClass( "invalid-feedback" );
// if ( element.prop( "type" ) === "checkbox" ) {
// error.insertAfter( element.parent( "label" ) );
// } else {
// error.insertAfter( element );
// }
// },
// highlight: function ( element, errorClass, validClass ) {
// $( element ).parents( ".col-sm-5" ).addClass( "has-error" ).removeClass( "has-success" );
// },
// unhighlight: function (element, errorClass, validClass) {
// $( element ).parents( ".col-sm-5" ).addClass( "has-success" ).removeClass( "has-error" );
// }
// } );
} );
</script>
<script type="text/javascript">
function validarCPF(valor){
var soma = 0;
var resto;
var inputCPF = valor.match(/\d/g).join('');
if(inputCPF == '00000000000') return false;
if(inputCPF.length >11) return false;
for(i=1; i<=9; i++) soma = soma + parseInt(inputCPF.substring(i-1, i)) * (11 - i);
resto = (soma * 10) % 11;
if((resto == 10) || (resto == 11)) resto = 0;
if(resto != parseInt(inputCPF.substring(9, 10))) return false;
soma = 0;
for(i = 1; i <= 10; i++) soma = soma + parseInt(inputCPF.substring(i-1, i))*(12-i);
resto = (soma * 10) % 11;
if((resto == 10) || (resto == 11)) resto = 0;
if(resto != parseInt(inputCPF.substring(10, 11))) return false;
return true;
}
/*
* FUNCAO: Gerar as areas
*
*/
function areas() {
var grandeArea = $('#grandeArea').val();
$.ajax({
type: 'POST',
url: '{{ route('area.consulta') }}',
data: 'id='+grandeArea ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (dados) => {
if (dados.length > 0) {
if($('#oldArea').val() == null || $('#oldArea').val() == ""){
var option = '<option selected disabled>-- Área --</option>';
}
$.each(dados, function(i, obj) {
if($('#oldArea').val() != null && $('#oldArea').val() == obj.id){
option += '<option selected value="' + obj.id + '">' + obj.nome + '</option>';
}else{
option += '<option value="' + obj.id + '">' + obj.nome + '</option>';
}
})
} else {
var option = "<option selected disabled>-- Área --</option>";
}
$('#area').html(option).show();
subareas();
},
error: (data) => {
console.log(data);
}
})
}
/*
* FUNCAO: Gerar as subareas
*
*/
function subareas() {
var area = $('#area').val();
$.ajax({
type: 'POST',
url: '{{ route('subarea.consulta') }}',
data: 'id='+area ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (dados)=> {
if (dados.length > 0) {
if($('#oldSubArea').val() == null || $('#oldSubArea').val() == ""){
var option = '<option selected disabled>-- Subárea --</option>';
}
$.each(dados, function(i, obj) {
if($('#oldSubArea').val() != null && $('#oldSubArea').val() == obj.id){
option += '<option selected value="' + obj.id + '">' + obj.nome + '</option>';
}else{
option += '<option value="' + obj.id + '">' + obj.nome + '</option>';
}
})
} else {
var option = "<option selected disabled>-- Subárea --</option>";
}
$('#subArea').html(option).show();
},
error: (dados) => {
console.log(dados);
}
})
}
/*
* FUNCAO: funcao responsavel pelo abre e fecha da area "possui autorizacoes especiais?"
*
*/
function displayAutorizacoesEspeciais(valor){
if(valor == "sim"){
document.getElementById("radioSim").checked = true;
document.getElementById("radioNao").checked = false;
document.getElementById("displaySim").style.display = "block";
document.getElementById("displayNao").style.display = "none";
document.getElementById("idAvisoAutorizacaoEspecial").style.display = "none";
}else if(valor == "nao"){
document.getElementById("radioSim").checked = false;
document.getElementById("radioNao").checked = true;
document.getElementById("displaySim").style.display = "none";
document.getElementById("displayNao").style.display = "block";
document.getElementById("idAvisoAutorizacaoEspecial").style.display = "none";
}
}
/*
* FUNCAO: funcao responsavel pela verificacao dos arquivos anexados (PDF)
*
*/
function verificarArquivoAnexado_pdf(item, legenda){
if(item.files[0].type.split('/')[1] != "pdf"){
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado não é do tipo PDF! ";
document.getElementById(legenda).innerHTML = "O arquivo deve ser no formato PDF de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}else if(item.files[0].size > 2000000 && item.files[0].type.split('/')[1] == "pdf"){
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado é maior que 2MB!";
document.getElementById(legenda).innerHTML = "O arquivo deve ser no formato PDF de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}else{
document.getElementById(legenda).innerHTML = item.value.split('\\')[2];
}
}
/* FUNCAO: funcao responsavel pela verificacao dos arquivos anexados (XLS, XLSX, ODS)
*
*/
function verificarArquivoAnexado_xls_xlsx_ods(item, legenda){
if(item.files[0].name.split('.')[1] == "xls" || item.files[0].name.split('.')[1] == "ods" || item.files[0].name.split('.')[1] == "xlsx"){
if(item.files[0].size > 2000000){
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado é maior que 2MB!";
document.getElementById(legenda).innerHTML = "Formato do arquivo: XLS, XLSX ou ODS de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}else{
document.getElementById(legenda).innerHTML = item.value.split('\\')[2];
}
}else{
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado não é do tipo XLS, XLSX ou ODS! ";
document.getElementById(legenda).innerHTML = "Formato do arquivo: XLS, XLSX ou ODS de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}
}
/*
* FUNCAO: Gerar periodos 1
*
*/
// function gerarPeriodos1(select) {
// var div = select.parentElement.parentElement;
// var selectPeriodos = div.children[22].children[1];
// var html = `<option value="" disabled selected>-- TOTAL DE PERIODOS --</option>`;
// for(var i = 0; i < parseInt(select.value); i++) {
// html += `<option value="${i+1}">${i+1}º</option>`;
// }
// });
// });
// $(document).ready(function(){
// $(".cpf").change(function(){
// console.log(this.parentElement.children[0])
// if (validarCPF(retirarFormatacao(this.value))) {
// this.parentElement.children[1].style.display = "none";
// this.parentElement.children[2].style.display = "block";
// } else {
// this.parentElement.children[1].style.display = "block";
// this.parentElement.children[2].style.display = "none";
// }
// });
// });
function checarCPFdoCampo(input) {
if (input.value.length == 14) {
if (validarCPF(retirarFormatacao(input.value))) {
input.parentElement.children[1].style.display = "none";
input.parentElement.children[2].style.display = "block";
} else {
input.parentElement.children[1].style.display = "block";
input.parentElement.children[2].style.display = "none";
}
} else {
input.parentElement.children[1].style.display = "none";
input.parentElement.children[2].style.display = "none";
}
}
function validarCPF(strCPF) {
var soma;
var resto;
soma = 0;
// Verifica se foi informado todos os digitos corretamente
if (strCPF.length != 11) {
return false;
}
// Verifica se foi informada uma sequência de digitos repetidos. Ex: 111.111.111-11
if (varificarDigitos(strCPF)) {
return false;
}
// Faz o calculo para validar o CPF
for (var t = 9; t < 11; t++) {
for (var d = 0, c = 0; c < t; c++) {
d += strCPF[c] * ((t + 1) - c);
}
d = ((10 * d) % 11) % 10;
if (strCPF[c] != d) {
return false;
}
}
return true;
}
function retirarFormatacao(strCpf) {
resultado = "";
for(var i = 0; i < strCpf.length; i++) {
if (strCpf[i] != "." && strCpf[i] != "-") {
resultado += strCpf[i];
}
}
return resultado;
}
function varificarDigitos(strCpf) {
var cont = 1;
dig1 = strCpf[0];
for(var i = 1; i < strCpf.length; i++) {
if(dig1 == strCpf[i]) {
cont++;
}
}
if (cont == strCpf.length) {
return true;
}
return false;
}
function checarCpfs() {
var validacoes = document.getElementsByClassName("cpf-invalido");
var count = validacoes.length;
var quant = 0;
for(var i = 0; i < validacoes.length; i++) {
if (validacoes[i].style.display == "none") {
quant++;
}
}
if(quant == count) {
return true;
}
return false;
}
function submeterProposta() {
if (checarCpfs()) {
document.getElementById("submeterFormProposta").click();
} else {
$("#modalCpfInvalido").modal('show');
}
}
function mascaraCPF(input) {
var numeros = "0123456789.-";
var resultado = "";
if (input.value.length < 14) {
for (var i = 0; i < input.value.length; i++) {
if (numeros.indexOf(input.value[i]) > -1) {
if ((i == 2 || i == 6) && input.value[i+1] != ".") {
resultado += input.value[i] + ".";
} else if (i == 10 && input.value[i+1] != "-") {
resultado += input.value[i] + "-";
} else {
resultado += input.value[i];
}
}
}
} else {
for (var i = 0; i < 14; i++) {
resultado += input.value[i];
}
}
input.value = resultado;
}
function showInstituicao(instituicao){
var instituicaoSelect = instituicao;
var idSelect = instituicaoSelect.name;
var instituicao = document.getElementById('outra'+idSelect);
var display = document.getElementById('display'+idSelect);
if(instituicaoSelect.value === "Outra"){
display.style.display = "block";
instituicao.parentElement.style.display = '';
instituicao.value="";
}else if(instituicaoSelect.value === "UFAPE"){
display.style.display = "none";
}
}
function showCurso(curso){
var cursoSelect = curso;
var idSelect = cursoSelect.name;
var curso = document.getElementById('outro'+idSelect);
var displayCurso = document.getElementById('display'+idSelect);
if(cursoSelect.value === "Outro"){
displayCurso.style.display = "block";
curso.parentElement.style.display = '';
curso.value="";
}else{
displayCurso.style.display = "none";
}
}
</script>
@extends('layouts.app')
@section('content')
<div>
{{-- action="{{route('trabalho.store')}}" --}}
<form method="POST" id="criarProjetoForm" action="{{route('trabalho.store')}}" enctype="multipart/form-data" >
@csrf
<input type="hidden" name="editalId" value="{{$edital->id}}">
<div class="container">
<div class="row justify-content-center" style="margin-top: 35px">
@include('evento.formulario.projeto')
@include('evento.formulario.proponente')
@if ($edital->numParticipantes != 0)
@include('evento.formulario.participantes')
@endif
@if($edital->natureza_id == 3)
@include('evento.formulario.integrantes')
@endif
@include('evento.formulario.anexos')
@include('evento.formulario.finalizar')
<style>
.col-form-label {
font-size: 15.5px;
}
</style>
</div>
</div>
</form>
@if ($edital->numParticipantes != 0)
<div id="participanteFirst" >
@component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
@endcomponent
</div>
@endif
<!-- Modal de Aviso Edit -->
<div class="modal fade" id="exampleModalAnexarDocumento" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel2" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header" id="idCorCabecalhoModalDocumento">
<h5 class="modal-title" id="exampleModalLabel2" style="font-size:20px; margin-top:7px; color:white; font-weight:bold; font-family: 'Roboto', sans-serif;">Aviso</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-12" style="font-family: 'Roboto', sans-serif;"><label id="idTituloDaMensagemModalDocumento"></label></div>
<div class="col-12" style="font-family: 'Roboto', sans-serif; margin-top:10px;">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" data-dismiss="modal"style="width:200px;">Fechar</button>
</div>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="modalCpfInvalido" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel2" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header" style="background-color: red;">
<h5 class="modal-title" id="exampleModalLabel2" style="font-size:20px; margin-top:7px; color:white; font-weight:bold; font-family: 'Roboto', sans-serif;">Aviso</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Existe um CPF inválido em um dos discentes por favor corrija para continuar.
</div>
{{-- <div class="modal-footer">
{{-- <button type="button" class="btn btn-secondary"></button>
{{-- <button type="button" class="btn btn-primary">Certo</button>
</div> --}}
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script>
let buttonSubmit = document.getElementById('idButtonSubmitProjeto');
let buttonRascunho = document.getElementById('idButtonSubmitRascunho');
@if($edital->numParticipantes != 0)
let parts = document.getElementById('participante');
let partsFirst = document.getElementById('participanteFirst');
const participante = partsFirst.firstElementChild;
@endif
let contador = 0;
buttonSubmit.addEventListener('click', (e)=>{
$('.collapse').addClass('show')
})
buttonRascunho.addEventListener('click', (e)=>{
$('.collapse').addClass('show')
const input = '<input id="input_rascunho" type="hidden" name="rascunho" value="true">';
$("#criarProjetoForm").append(input);
})
@if($edital->numParticipantes != 0)
function gerarPeriodo(e){
var select = e.parentElement.parentElement.nextElementSibling;
selectPeriodos = select.children[0].children[1];
var html = `<option value="" disabled selected>-- TOTAL DE PERÍODOS --</option>`;
for(var i = 0; i < parseInt(e.value); i++) {
html += `<option value="${i+1}">${i+1}º</option>`;
}
$(selectPeriodos).html('');
$(selectPeriodos).append(html);
}
function removerPart(e){
console.log(e)
if(e.parentElement.parentElement){
if(parts.children.length <= 1){
}else{
parts.removeChild(e.parentElement.parentElement);
//contador--;
}
}
}
buttonMais.addEventListener("click", (e) => {
if(parts.children.length >= "{{ $edital->numParticipantes }}"){
alert('Limite de participante.')
}else{
contador++;
var cln = participante.cloneNode(true);
cln.setAttribute('style', " ");
var id = cln.children[2].firstElementChild.id;
var id2 = cln.children[0].firstElementChild.id;
cln.children[2].firstElementChild.setAttribute('id', id + contador);
cln.children[0].firstElementChild.setAttribute('href', "#collapseParticipante" + contador);
cln.children[0].firstElementChild.setAttribute('id', id2 + contador);
for (i = 0; i < cln.children.length; i++) {
for (let index = 0; index < cln.children[i].querySelectorAll('input').length; index++) {
let input = cln.children[i].querySelectorAll('input')[index];
let name = input.getAttributeNode("name").value;
name = name.replace("[]", "");
input.getAttributeNode("name").value = name + '['+ contador +']';
let select = cln.children[i].querySelectorAll('select')[index];
if(select){
let selectName = select.getAttributeNode("name").value;
selectName = selectName.replace("[", "");
selectName = selectName.replace("]", "");
select.getAttributeNode("name").value = selectName + '['+ contador +']';
}
}
}
var SPMaskBehavior = function (val) {
return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
spOptions = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior.apply({}, arguments), options);
}
};
parts.appendChild(cln);
$("input.cpf:text").val("").mask("000.000.000-00");
$("input.celular:text").val("").mask(SPMaskBehavior, spOptions);
$("input.cep:text").val("").mask("00000-000");
}
});
$("input.rg:text").mask('00.000.000-0');
function marcar(id){
let nome = document.getElementById("nome"+id);
let linkNome = document.getElementById("nomePart"+(id+1));
let nomePlano = document.getElementById("nomePlano"+(id+1));
let linkTituloProj = document.getElementById("tituloProj"+(id+1));
let planoTrabalho = document.getElementById("nomePlanoTrabalho"+id);
if(nome.value != ""){
if(planoTrabalho.value != ""){
nomePlano.innerText = `Nome: ${nome.value} \n Plano: ${planoTrabalho.value}`;
}else {
nomePlano.innerText = `Nome: ${nome.value}`;
}
}else{
nomePlano.innerText = `Discente `+(id+1);
}
if(id >=1){
document.getElementById("cancelar"+(id-1)).setAttribute("disabled", true);
}
document.getElementById("checkB"+id).checked = true;
$("#atribuir1").attr('data-target','#exampleModal'+(id+1));
document.getElementById("part"+id).removeAttribute("hidden");
document.getElementById("exampleModal"+id).modal('hide');
}
function desmarcar(id){
if(id >= 1){;
document.getElementById("cancelar"+(id-1)).removeAttribute("disabled");
}
document.getElementById("checkB"+id).checked = false;
document.getElementById("part"+id).setAttribute("hidden",true);
$("#atribuir1").attr('data-target','#exampleModal'+(id));
document.getElementById("exampleModal"+id).modal('hide');
}
@endif
</script>
<script>
$( document ).ready( function () {
@if($edital->numParticipantes != 0)
$('#nomeParticipante').keyup(function () {
$('#display').text($(this).val());
if($('#nomeParticipante').val() == ""){
$('#display').hide();
$('#pontos').hide();
}else{
$('#display').show();
$('#pontos').show();
}
});
@endif
$.validator.addMethod("alpha", function(value, element) {
return this.optional(element) || value == value.match(/^[A-Za-záàâãéèêíïóôõöúçñÁÀÂÃÉÈÍÏÓÔÕÖÚÇÑ ]+$/);
});
@if($edital->numParticipantes != 0)
$('input.cep:text').mask('00000-000');
$('input.cpf:text').mask('000.000.000-00');
$('.numero').mask('0000000000000');
var SPMaskBehavior = function (val) {
return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
spOptions = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior.apply({}, arguments), options);
}
};
$('.celular').mask(SPMaskBehavior, spOptions);
$('.sus').mask('000 0000 0000 0000');
$("input[type='file']").on("change", function () {
if(this.files[0].size > 2000000) {
// console.log($(this).parents( ".col-sm-5" ))
alert("O tamanho do arquivo deve ser menor que 2MB!");
$(this).val('');
}
});
@endif
// $.validator.setDefaults( {
// submitHandler: function (form) {
// form.submit();
// }
// } );
// jQuery.extend(jQuery.validator.messages, {
// required: "Este campo &eacute; requerido.",
// remote: "Por favor, corrija este campo.",
// email: "Por favor, forne&ccedil;a um endere&ccedil;o eletr&ocirc;nico v&aacute;lido.",
// url: "Por favor, forne&ccedil;a uma URL v&aacute;lida.",
// date: "Por favor, forne&ccedil;a uma data v&aacute;lida.",
// dateISO: "Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).",
// number: "Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.",
// digits: "Por favor, forne&ccedil;a somente d&iacute;gitos.",
// creditcard: "Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.",
// equalTo: "Por favor, forne&ccedil;a o mesmo valor novamente.",
// accept: "Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.",
// maxlength: jQuery.validator.format("Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres."),
// minlength: jQuery.validator.format("Por favor, forne&ccedil;a ao menos {0} caracteres."),
// rangelength: jQuery.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento."),
// range: jQuery.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1}."),
// max: jQuery.validator.format("Por favor, forne&ccedil;a um valor menor ou igual a {0}."),
// min: jQuery.validator.format("Por favor, forne&ccedil;a um valor maior ou igual a {0}.")
// });
// $( "#criarProjetoForm" ).validate( {
// lang: 'PT_BR',
// rules: {
// firstname: "required",
// username: {
// required: true,
// minlength: 2
// },
// password: {
// required: true,
// minlength: 5
// },
// confirm_password: {
// required: true,
// minlength: 5,
// equalTo: "#password"
// },
// email: {
// required: true,
// email: true,
// },
// "complemento[]":{
// },
// "nomeParticipante[]":{
// alpha:true,
// },
// 'rg[]':{
// maxlength: 12,
// },
// agree: "required"
// },
// messages: {
// // nomeProjeto: "O nome do projeto é obrigatório.",
// // 'emailParticipante[]': "Este campo é obrigatório.",
// // 'data_de_nascimento[]': "Este campo é obrigatório.",
// // 'cpf[]': "Este campo é obrigatório.",
// // 'rg[]': {
// // required: "Este campo é obrigatório.",
// // maxlength: "Este campo deve conter no máximo 8 números."
// // },
// // 'celular[]': "Este campo é obrigatório.",
// // 'cep[]': "Este campo é obrigatório.",
// // 'uf[]': "Este campo é obrigatório.",
// // 'cidade[]': "Este campo é obrigatório.",
// // 'bairro[]': "Este campo é obrigatório.",
// // 'rua[]': "Este campo é obrigatório.",
// // 'numero[]': "Este campo é obrigatório.",
// // 'complemento[]': "Este campo é obrigatório.",
// // 'universidade[]': "Este campo é obrigatório.",
// // 'curso[]': "Este campo é obrigatório.",
// // 'turno[]': "Este campo é obrigatório.",
// // 'total_periodos[]': "Este campo é obrigatório.",
// // 'periodo_atual[]': "Este campo é obrigatório.",
// // 'ordem_prioridade[]': "Este campo é obrigatório.",
// // 'media_geral_curso[]': "Este campo é obrigatório.",
// // 'nomePlanoTrabalho[]': "Este campo é obrigatório.",
// // 'anexoPlanoTrabalho[]': "Este campo é obrigatório.",
// // grandeArea: "Escolha uma grande área.",
// // area: "Escolha uma área.",
// // linkGrupo: "Este campo é obrigatório.",
// // pontuacaoPlanilha: "Este campo é obrigatório.",
// // anexoProjeto: "Este campo é obrigatório.",
// // anexoLattesCoordenador: "Este campo é obrigatório.",
// // anexoConsuPreenchido: "Este campo é obrigatório.",
// // anexoGrupoPesquisa: "Este campo é obrigatório.",
// // anexoPlanilha: "Este campo é obrigatório.",
// // anexoComiteEtica: "Este campo é obrigatório.",
// // inputJustificativa: "Este campo é obrigatório.",
// // "nomeParticipante[]": {
// // required: "O nome do participante é obrigatório.",
// // alpha: "Não é permitido números."
// // },
// // username: {
// // required: "Please enter a username",
// // minlength: "Your username must consist of at least 2 characters"
// // },
// // password: {
// // required: "Please provide a password",
// // minlength: "Your password must be at least 5 characters long"
// // },
// // confirm_password: {
// // required: "Please provide a password",
// // minlength: "Your password must be at least 5 characters long",
// // equalTo: "Please enter the same password as above"
// // },
// // email: "Please enter a valid email address",
// // agree: "Please accept our policy"
// },
// errorElement: "em",
// errorPlacement: function ( error, element ) {
// // Add the `help-block` class to the error element
// error.addClass( "invalid-feedback" );
// if ( element.prop( "type" ) === "checkbox" ) {
// error.insertAfter( element.parent( "label" ) );
// } else {
// error.insertAfter( element );
// }
// },
// highlight: function ( element, errorClass, validClass ) {
// $( element ).parents( ".col-sm-5" ).addClass( "has-error" ).removeClass( "has-success" );
// },
// unhighlight: function (element, errorClass, validClass) {
// $( element ).parents( ".col-sm-5" ).addClass( "has-success" ).removeClass( "has-error" );
// }
// } );
} );
</script>
<script type="text/javascript">
function validarCPF(valor){
var soma = 0;
var resto;
var inputCPF = valor.match(/\d/g).join('');
if(inputCPF == '00000000000') return false;
if(inputCPF.length >11) return false;
for(i=1; i<=9; i++) soma = soma + parseInt(inputCPF.substring(i-1, i)) * (11 - i);
resto = (soma * 10) % 11;
if((resto == 10) || (resto == 11)) resto = 0;
if(resto != parseInt(inputCPF.substring(9, 10))) return false;
soma = 0;
for(i = 1; i <= 10; i++) soma = soma + parseInt(inputCPF.substring(i-1, i))*(12-i);
resto = (soma * 10) % 11;
if((resto == 10) || (resto == 11)) resto = 0;
if(resto != parseInt(inputCPF.substring(10, 11))) return false;
return true;
}
/*
* FUNCAO: Gerar as areas
*
*/
function areas() {
var grandeArea = $('#grandeArea').val();
$.ajax({
type: 'POST',
url: '{{ route('area.consulta') }}',
data: 'id='+grandeArea ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (dados) => {
if (dados.length > 0) {
if($('#oldArea').val() == null || $('#oldArea').val() == ""){
var option = '<option selected disabled>-- Área --</option>';
}
$.each(dados, function(i, obj) {
if($('#oldArea').val() != null && $('#oldArea').val() == obj.id){
option += '<option selected value="' + obj.id + '">' + obj.nome + '</option>';
}else{
option += '<option value="' + obj.id + '">' + obj.nome + '</option>';
}
})
} else {
var option = "<option selected disabled>-- Área --</option>";
}
$('#area').html(option).show();
subareas();
},
error: (data) => {
console.log(data);
}
})
}
/*
* FUNCAO: Gerar as subareas
*
*/
function subareas() {
var area = $('#area').val();
$.ajax({
type: 'POST',
url: '{{ route('subarea.consulta') }}',
data: 'id='+area ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (dados)=> {
if (dados.length > 0) {
if($('#oldSubArea').val() == null || $('#oldSubArea').val() == ""){
var option = '<option selected disabled>-- Subárea --</option>';
}
$.each(dados, function(i, obj) {
if($('#oldSubArea').val() != null && $('#oldSubArea').val() == obj.id){
option += '<option selected value="' + obj.id + '">' + obj.nome + '</option>';
}else{
option += '<option value="' + obj.id + '">' + obj.nome + '</option>';
}
})
} else {
var option = "<option selected disabled>-- Subárea --</option>";
}
$('#subArea').html(option).show();
},
error: (dados) => {
console.log(dados);
}
})
}
/*
* FUNCAO: funcao responsavel pelo abre e fecha da area "possui autorizacoes especiais?"
*
*/
function displayAutorizacoesEspeciais(valor){
if(valor == "sim"){
document.getElementById("radioSim").checked = true;
document.getElementById("radioNao").checked = false;
document.getElementById("displaySim").style.display = "block";
document.getElementById("displayNao").style.display = "none";
document.getElementById("idAvisoAutorizacaoEspecial").style.display = "none";
}else if(valor == "nao"){
document.getElementById("radioSim").checked = false;
document.getElementById("radioNao").checked = true;
document.getElementById("displaySim").style.display = "none";
document.getElementById("displayNao").style.display = "block";
document.getElementById("idAvisoAutorizacaoEspecial").style.display = "none";
}
}
/*
* FUNCAO: funcao responsavel pela verificacao dos arquivos anexados (PDF)
*
*/
function verificarArquivoAnexado_pdf(item, legenda){
if(item.files[0].type.split('/')[1] != "pdf"){
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado não é do tipo PDF! ";
document.getElementById(legenda).innerHTML = "O arquivo deve ser no formato PDF de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}else if(item.files[0].size > 2000000 && item.files[0].type.split('/')[1] == "pdf"){
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado é maior que 2MB!";
document.getElementById(legenda).innerHTML = "O arquivo deve ser no formato PDF de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}else{
document.getElementById(legenda).innerHTML = item.value.split('\\')[2];
}
}
/* FUNCAO: funcao responsavel pela verificacao dos arquivos anexados (XLS, XLSX, ODS)
*
*/
function verificarArquivoAnexado_xls_xlsx_ods(item, legenda){
if(item.files[0].name.split('.')[1] == "xls" || item.files[0].name.split('.')[1] == "ods" || item.files[0].name.split('.')[1] == "xlsx"){
if(item.files[0].size > 2000000){
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado é maior que 2MB!";
document.getElementById(legenda).innerHTML = "Formato do arquivo: XLS, XLSX ou ODS de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}else{
document.getElementById(legenda).innerHTML = item.value.split('\\')[2];
}
}else{
document.getElementById("idCorCabecalhoModalDocumento").style.backgroundColor = "red";
document.getElementById("idTituloDaMensagemModalDocumento").innerHTML = "O arquivo selecionado não é do tipo XLS, XLSX ou ODS! ";
document.getElementById(legenda).innerHTML = "Formato do arquivo: XLS, XLSX ou ODS de até 2MB.";
document.getElementById(item.id).value = "";
$("#exampleModalAnexarDocumento").modal({show: true});
}
}
/*
* FUNCAO: Gerar periodos 1
*
*/
// function gerarPeriodos1(select) {
// var div = select.parentElement.parentElement;
// var selectPeriodos = div.children[22].children[1];
// var html = `<option value="" disabled selected>-- TOTAL DE PERIODOS --</option>`;
// for(var i = 0; i < parseInt(select.value); i++) {
// html += `<option value="${i+1}">${i+1}º</option>`;
// }
// });
// });
// $(document).ready(function(){
// $(".cpf").change(function(){
// console.log(this.parentElement.children[0])
// if (validarCPF(retirarFormatacao(this.value))) {
// this.parentElement.children[1].style.display = "none";
// this.parentElement.children[2].style.display = "block";
// } else {
// this.parentElement.children[1].style.display = "block";
// this.parentElement.children[2].style.display = "none";
// }
// });
// });
function checarCPFdoCampo(input) {
if (input.value.length == 14) {
if (validarCPF(retirarFormatacao(input.value))) {
input.parentElement.children[1].style.display = "none";
input.parentElement.children[2].style.display = "block";
} else {
input.parentElement.children[1].style.display = "block";
input.parentElement.children[2].style.display = "none";
}
} else {
input.parentElement.children[1].style.display = "none";
input.parentElement.children[2].style.display = "none";
}
}
function validarCPF(strCPF) {
var soma;
var resto;
soma = 0;
// Verifica se foi informado todos os digitos corretamente
if (strCPF.length != 11) {
return false;
}
// Verifica se foi informada uma sequência de digitos repetidos. Ex: 111.111.111-11
if (varificarDigitos(strCPF)) {
return false;
}
// Faz o calculo para validar o CPF
for (var t = 9; t < 11; t++) {
for (var d = 0, c = 0; c < t; c++) {
d += strCPF[c] * ((t + 1) - c);
}
d = ((10 * d) % 11) % 10;
if (strCPF[c] != d) {
return false;
}
}
return true;
}
function retirarFormatacao(strCpf) {
resultado = "";
for(var i = 0; i < strCpf.length; i++) {
if (strCpf[i] != "." && strCpf[i] != "-") {
resultado += strCpf[i];
}
}
return resultado;
}
function varificarDigitos(strCpf) {
var cont = 1;
dig1 = strCpf[0];
for(var i = 1; i < strCpf.length; i++) {
if(dig1 == strCpf[i]) {
cont++;
}
}
if (cont == strCpf.length) {
return true;
}
return false;
}
function checarCpfs() {
var validacoes = document.getElementsByClassName("cpf-invalido");
var count = validacoes.length;
var quant = 0;
for(var i = 0; i < validacoes.length; i++) {
if (validacoes[i].style.display == "none") {
quant++;
}
}
if(quant == count) {
return true;
}
return false;
}
function submeterProposta() {
if (checarCpfs()) {
document.getElementById("submeterFormProposta").click();
} else {
$("#modalCpfInvalido").modal('show');
}
}
function mascaraCPF(input) {
var numeros = "0123456789.-";
var resultado = "";
if (input.value.length < 14) {
for (var i = 0; i < input.value.length; i++) {
if (numeros.indexOf(input.value[i]) > -1) {
if ((i == 2 || i == 6) && input.value[i+1] != ".") {
resultado += input.value[i] + ".";
} else if (i == 10 && input.value[i+1] != "-") {
resultado += input.value[i] + "-";
} else {
resultado += input.value[i];
}
}
}
} else {
for (var i = 0; i < 14; i++) {
resultado += input.value[i];
}
}
input.value = resultado;
}
function showInstituicao(instituicao){
var instituicaoSelect = instituicao;
var idSelect = instituicaoSelect.name;
var instituicao = document.getElementById('outra'+idSelect);
var display = document.getElementById('display'+idSelect);
if(instituicaoSelect.value === "Outra"){
display.style.display = "block";
instituicao.parentElement.style.display = '';
instituicao.value="";
}else if(instituicaoSelect.value === "UFAPE"){
display.style.display = "none";
}
}
function showCurso(curso){
var cursoSelect = curso;
var idSelect = cursoSelect.name;
var curso = document.getElementById('outro'+idSelect);
var displayCurso = document.getElementById('display'+idSelect);
if(cursoSelect.value === "Outro"){
displayCurso.style.display = "block";
curso.parentElement.style.display = '';
curso.value="";
}else{
displayCurso.style.display = "none";
}
}
</script>
@endsection
\ 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