Commit d97d2ee6 authored by JoseDanielF's avatar JoseDanielF
Browse files

Adicionado opção de submeter mais de um arquivo em modelo evento

parent 2640f5df
...@@ -25,7 +25,9 @@ use Illuminate\Support\Facades\Auth; ...@@ -25,7 +25,9 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use App\Endereco; use App\Endereco;
use App\Mail\EventoCriado; use App\Mail\EventoCriado;
use geekcom\ValidatorDocs\Rules\Ddd;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use ZipArchive;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
...@@ -82,19 +84,25 @@ class EventoController extends Controller ...@@ -82,19 +84,25 @@ class EventoController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
//$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first(); //$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first();
$user_id = Auth()->user()->id; $user_id = Auth()->user()->id;
//dd($user_id);
if(isset($request->modeloDocumento)){ if(isset($request->modeloDocumento)){
if(is_array($request->modeloDocumento)) {
foreach($request->modeloDocumento as $modelo){
$request->validate([
'modeloDocumento.*' => ['file', 'max:2048', new ExcelRule($modelo)],
]);
}
} else {
$request->validate([ $request->validate([
'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->file('modeloDocumento'))], 'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->modeloDocumento)],
]); ]);
} }
}
if(isset($request->docTutorial)){ if(isset($request->docTutorial)){
$request->validate([ $request->validate([
...@@ -217,14 +225,22 @@ class EventoController extends Controller ...@@ -217,14 +225,22 @@ class EventoController extends Controller
} }
if(isset($request->modeloDocumento)){ if(isset($request->modeloDocumento)){
$modeloDocumento = $request->modeloDocumento; $count = count($request->modeloDocumento);
$extension = $modeloDocumento->extension(); $zip = new ZipArchive;
$path = 'modeloDocumento/' . $evento->id . '/'; $filename = "storage/app/modeloDocumento/$evento->id/modelo.zip";
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
}
// Crie o diretório se ele não existir
if (!file_exists("storage/app/modeloDocumento/$evento->id")) {
mkdir("storage/app/modeloDocumento/$evento->id", 0777, true);
}
$zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);
for ($i = 0; $i < $count; $i++) {
$zip->addFile($request->modeloDocumento[$i]->getRealPath(), $request->modeloDocumento[$i]->getClientOriginalName());
}
$zip->close();
$evento->modeloDocumento = $filename;
$evento->save();
}
if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){ if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno; $pdfFormAvalExterno = $request->pdfFormAvalExterno;
...@@ -299,12 +315,24 @@ class EventoController extends Controller ...@@ -299,12 +315,24 @@ class EventoController extends Controller
$pasta = 'pdfEdital/' . $eventoTemp->id; $pasta = 'pdfEdital/' . $eventoTemp->id;
$eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf'); $eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf');
} }
if (!(is_null($request->modeloDocumento))) { if (!(is_null($request->modeloDocumento))) {
$extension = $request->modeloDocumento->extension(); $count = count($request->modeloDocumento);
$path = 'modeloDocumento/' . $eventoTemp->id; $zip = new ZipArchive;
$nome = "modelo" . "." . $extension; $filename = "storage/app/modeloDocumento/$eventoTemp->id/modelo.zip";
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); // Crie o diretório se ele não existir
if (!file_exists("storage/app/modeloDocumento/$eventoTemp->id")) {
mkdir("storage/app/modeloDocumento/$eventoTemp->id", 0777, true);
}
$zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);
for ($i = 0; $i < $count; $i++) {
$zip->addFile($request->modeloDocumento[$i]->getRealPath(), $request->modeloDocumento[$i]->getClientOriginalName());
}
$zip->close();
$eventoTemp->modeloDocumento = $filename;
$eventoTemp->save();
} }
if(!(is_null($request->pdfFormAvalExterno)) && ($request->tipoAvaliacao == 'form')) { if(!(is_null($request->pdfFormAvalExterno)) && ($request->tipoAvaliacao == 'form')) {
$extension = $request->pdfFormAvalExterno->extension(); $extension = $request->pdfFormAvalExterno->extension();
$pasta = 'pdfFormAvalExterno/' . $eventoTemp->id; $pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
...@@ -531,13 +559,21 @@ class EventoController extends Controller ...@@ -531,13 +559,21 @@ class EventoController extends Controller
} }
if($request->modeloDocumento != null){ if($request->modeloDocumento != null){
foreach ($request->modeloDocumento as $key => $modeloDocumento) { $count = count($request->modeloDocumento);
$extension = $modeloDocumento->extension(); $zip = new ZipArchive;
$path = 'modeloDocumento/' . $evento->id . '/'; $filename = "storage/app/modeloDocumento/$evento->id/modelo.zip";
$nome = "modelo" . $key . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome); // Crie o diretório se ele não existir
$evento->modeloDocumento = $path . $nome; if (!file_exists("storage/app/modeloDocumento/$evento->id")) {
mkdir("storage/app/modeloDocumento/$evento->id", 0777, true);
} }
$zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);
for ($i = 0; $i < $count; $i++) {
$zip->addFile($request->modeloDocumento[$i]->getRealPath(), $request->modeloDocumento[$i]->getClientOriginalName());
}
$zip->close();
$evento->modeloDocumento = $filename;
$evento->save();
} }
if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){ if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){
...@@ -660,8 +696,15 @@ class EventoController extends Controller ...@@ -660,8 +696,15 @@ class EventoController extends Controller
CampoAvaliacao::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]); CampoAvaliacao::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]);
} }
Storage::deleteDirectory('pdfEdital/' . $evento->id ); $pdfEditalPath = 'pdfEdital/' . $evento->id;
Storage::deleteDirectory('modeloDocumento/' . $evento->id); if (Storage::disk()->exists($pdfEditalPath)) {
Storage::deleteDirectory($pdfEditalPath);
}
$modeloDocumentoPath = 'modeloDocumento/' . $evento->id;
if (Storage::disk()->exists($modeloDocumentoPath)) {
Storage::deleteDirectory($modeloDocumentoPath);
}
$evento->delete(); $evento->delete();
...@@ -812,14 +855,21 @@ class EventoController extends Controller ...@@ -812,14 +855,21 @@ class EventoController extends Controller
return abort(404); return abort(404);
} }
public function baixarModelos($id) { public function baixarModelos($id)
$evento = Evento::find($id); {
$evento = Evento::findOrFail($id);
if (Storage::disk()->exists($evento->modeloDocumento)) { $path = $evento->modeloDocumento;
ob_end_clean(); return response()->download($path);
return Storage::download($evento->modeloDocumento);
} }
return abort(404); // public function baixarModelos($id) {
} // $evento = Evento::find($id);
// if (Storage::disk()->exists($evento->modeloDocumento)) {
// ob_end_clean();
// return Storage::download($evento->modeloDocumento);
// }
// return abort(404);
// }
} }
...@@ -896,12 +896,26 @@ class TrabalhoController extends Controller ...@@ -896,12 +896,26 @@ class TrabalhoController extends Controller
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) { return response()->download($eventoTemp->$nomeAnexo);
if (!is_null($eventoTemp) && Storage::disk()->exists($eventoTemp->$nomeAnexo)) {
ob_end_clean(); ob_end_clean();
return Storage::download($eventoTemp->$nomeAnexo); return Storage::download($eventoTemp->$nomeAnexo);
} }
return abort(404); return abort(404);
} }
public function baixarModeloEventoTemp($nomeAnexo)
{
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first();
if (!is_null($eventoTemp)) {
ob_end_clean();
return response()->download($eventoTemp->$nomeAnexo);
}
return abort(404);
}
//xxfa //xxfa
public function update(UpdateTrabalho $request, $id) public function update(UpdateTrabalho $request, $id)
......
...@@ -30,9 +30,9 @@ class DatabaseSeeder extends Seeder ...@@ -30,9 +30,9 @@ class DatabaseSeeder extends Seeder
$this->call(EventoSeeder::class); $this->call(EventoSeeder::class);
$this->call(TrabalhoSeeder::class); $this->call(TrabalhoSeeder::class);
$this->call(ArquivoSeeder::class); $this->call(ArquivoSeeder::class);
$this->call(CampoAvaliacaoSeeder::class);
$this->call(AvaliadorTrabalhoSeeder::class); $this->call(AvaliadorTrabalhoSeeder::class);
$this->call(AvaliadorEventoSeeder::class); $this->call(AvaliadorEventoSeeder::class);
$this->call(CampoAvaliacaoSeeder::class);
$this->call(AvaliacaoTrabalhosSeeder::class); $this->call(AvaliacaoTrabalhosSeeder::class);
$this->call(AvaliacaoRelatorioSeeder::class); $this->call(AvaliacaoRelatorioSeeder::class);
......
...@@ -567,12 +567,12 @@ ...@@ -567,12 +567,12 @@
<div class="form-group"> <div class="form-group">
<label for="modeloDocumento">Anexar arquivo com os modelos de documentos do edital:</label> <label for="modeloDocumento">Anexar arquivo com os modelos de documentos do edital:</label>
@if(old('modeloDocumentoPreenchido') != null) @if(old('modeloDocumentoPreenchido') != null)
<a id="modeloDocumentoTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'modeloDocumento' ])}}">Arquivo atual</a> <a id="modeloDocumentoTemp" href="{{ route('baixar.modelo.evento.temp', ['nomeAnexo' => 'modeloDocumento' ])}}">Arquivo atual</a>
@endif @endif
<input type="hidden" id="modeloDocumentoPreenchido" name="modeloDocumentoPreenchido" value="{{ old('modeloDocumentoPreenchido') }}"> <input type="hidden" id="modeloDocumentoPreenchido" name="modeloDocumentoPreenchido" value="{{ old('modeloDocumentoPreenchido') }}">
<input type="file" class="form-control-file @error('modeloDocumento') is-invalid @enderror" name="modeloDocumento" value="{{ old('modeloDocumento') }}" id="modeloDocumento" onchange="exibirAnexoTemp(this)"> <input type="file" class="form-control-file @error('modeloDocumento[]') is-invalid @enderror" name="modeloDocumento[]" multiple value="{{ old('modeloDocumento') }}" id="modeloDocumento" onchange="exibirAnexoTemp(this)" accept=".doc,.docx,.pdf">
<small>O arquivo selecionado deve ter até 2mb.</small> <small>Os arquivos selecionado deve ter até 2mb.</small>
@error('modeloDocumento') @error('modeloDocumento[]')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
......
...@@ -695,7 +695,7 @@ ...@@ -695,7 +695,7 @@
<div class="form-group"> <div class="form-group">
<label for="modeloDocumento">Arquivo com os modelos de documentos do edital:</label> <label for="modeloDocumento">Arquivo com os modelos de documentos do edital:</label>
@if($evento->modeloDocumento != null) @if($evento->modeloDocumento != null)
<a href="{{route('download', ['file' => $evento->modeloDocumento])}}" target="_new" style="font-size: 20px; color: #114048ff;" > <a href="{{route('baixar.modelos', ['id' => $evento->id])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a> </a>
@else @else
...@@ -703,9 +703,9 @@ ...@@ -703,9 +703,9 @@
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i> <i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a> </a>
@endif @endif
<input type="file" class="form-control-file @error('modeloDocumento') is-invalid @enderror" name="modeloDocumento" value="{{ old('modeloDocumento') }}" id="modeloDocumento"> <input type="file" class="form-control-file @error('modeloDocumento[]') is-invalid @enderror" name="modeloDocumento[]" multiple value="{{ old('modeloDocumento') }}" id="modeloDocumento" onchange="exibirAnexoTemp(this)" accept=".doc,.docx,.pdf">
<small>O arquivo selecionado deve ter até 2mb.</small> <small>Os arquivos selecionado deve ter até 2mb.</small>
@error('modeloDocumento') @error('modeloDocumento[]')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
......
...@@ -143,7 +143,13 @@ ...@@ -143,7 +143,13 @@
</div> </div>
</div> </div>
@else @else
<a class="btn btn-success " href="{{route('trabalho.index',['id'=>$evento->id])}}" style="width:100%; height:50px; padding-top:7px; font-size:20px"><img src="{{asset('img/icons/icon_enviar_proposta.png')}}" class="card-img-top" alt="..." style="width:30px; margin-right:5px"> Submeter proposta</a> {{-- @if(empty($evento->trabalho->arquivo->relatorioFinal))
<a class="btn btn-success" style="width:100%; height:50px; padding-top:7px; font-size:20px" onclick="modalSubmeterProposta()">
<img src="{{asset('img/icons/icon_enviar_proposta.png')}}" class="card-img-top" alt="..." style="width:30px; margin-right:5px"> Submeter proposta</a>
@else --}}
<a class="btn btn-success" href="{{route('trabalho.index',['id'=>$evento->id])}}" style="width:100%; height:50px; padding-top:7px; font-size:20px">
<img src="{{asset('img/icons/icon_enviar_proposta.png')}}" class="card-img-top" alt="..." style="width:30px; margin-right:5px"> Submeter proposta</a>
{{-- @endif --}}
@endif @endif
</div> </div>
@endif @endif
...@@ -278,7 +284,6 @@ ...@@ -278,7 +284,6 @@
<h6 style="color: #909090">O criador do edital não disponibilizou modelos</h6> <h6 style="color: #909090">O criador do edital não disponibilizou modelos</h6>
@endif @endif
</div> </div>
</div> </div>
</div> </div>
</div> </div>
...@@ -325,5 +330,10 @@ ...@@ -325,5 +330,10 @@
function changeTrabalho(x){ function changeTrabalho(x){
document.getElementById('trabalhoNovaVersaoId').value = x; document.getElementById('trabalhoNovaVersaoId').value = x;
} }
// function modalSubmeterProposta(){
// return alert("Usuário impossibilitado de submeter proposta à não inadimplência com um edital anterior!");
// }
</script> </script>
@endsection @endsection
...@@ -220,6 +220,7 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () { ...@@ -220,6 +220,7 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () {
Route::get('/baixar/anexoGrupoPesquisa/{id}', 'TrabalhoController@baixarAnexoGrupoPesquisa')->name('baixar.anexoGrupoPesquisa'); Route::get('/baixar/anexoGrupoPesquisa/{id}', 'TrabalhoController@baixarAnexoGrupoPesquisa')->name('baixar.anexoGrupoPesquisa');
Route::get('/baixar/anexo-temp/{eventoId}/{nomeAnexo}', 'TrabalhoController@baixarAnexoTemp')->name('baixar.anexo.temp'); Route::get('/baixar/anexo-temp/{eventoId}/{nomeAnexo}', 'TrabalhoController@baixarAnexoTemp')->name('baixar.anexo.temp');
Route::get('/baixar/evento-temp/{nomeAnexo}', 'TrabalhoController@baixarEventoTemp')->name('baixar.evento.temp'); Route::get('/baixar/evento-temp/{nomeAnexo}', 'TrabalhoController@baixarEventoTemp')->name('baixar.evento.temp');
Route::get('/baixar/modelo-evento-temp/{nomeAnexo}', 'TrabalhoController@baixarModeloEventoTemp')->name('baixar.modelo.evento.temp');
Route::get('/baixar/documentosParticipante', 'ParticipanteController@baixarDocumento')->name('baixar.documentosParticipante'); Route::get('/baixar/documentosParticipante', 'ParticipanteController@baixarDocumento')->name('baixar.documentosParticipante');
Route::get('/baixar/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra'); Route::get('/baixar/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra');
Route::get('/baixar/anexoSIPAC/{id}', 'TrabalhoController@baixarAnexoSIPAC')->name('baixar.anexo.SIPAC'); Route::get('/baixar/anexoSIPAC/{id}', 'TrabalhoController@baixarAnexoSIPAC')->name('baixar.anexo.SIPAC');
......
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