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;
use Illuminate\Support\Facades\Log;
use App\Endereco;
use App\Mail\EventoCriado;
use geekcom\ValidatorDocs\Rules\Ddd;
use Illuminate\Support\Facades\Mail;
use ZipArchive;
use Illuminate\Validation\Rule;
......@@ -82,20 +84,26 @@ class EventoController extends Controller
*/
public function store(Request $request)
{
$mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
//$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first();
$user_id = Auth()->user()->id;
//dd($user_id);
if(isset($request->modeloDocumento)){
$request->validate([
'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->file('modeloDocumento'))],
]);
if(is_array($request->modeloDocumento)) {
foreach($request->modeloDocumento as $modelo){
$request->validate([
'modeloDocumento.*' => ['file', 'max:2048', new ExcelRule($modelo)],
]);
}
} else {
$request->validate([
'modeloDocumento' => ['file', 'max:2048', new ExcelRule($request->modeloDocumento)],
]);
}
}
if(isset($request->docTutorial)){
$request->validate([
'docTutorial' => ['file', 'max:2048', new ExcelRule($request->file('docTutorial'))],
......@@ -217,14 +225,22 @@ class EventoController extends Controller
}
if(isset($request->modeloDocumento)){
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
}
$count = count($request->modeloDocumento);
$zip = new ZipArchive;
$filename = "storage/app/modeloDocumento/$evento->id/modelo.zip";
// 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')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno;
......@@ -299,12 +315,24 @@ class EventoController extends Controller
$pasta = 'pdfEdital/' . $eventoTemp->id;
$eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf');
}
if (!(is_null($request->modeloDocumento))) {
$extension = $request->modeloDocumento->extension();
$path = 'modeloDocumento/' . $eventoTemp->id;
$nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
$count = count($request->modeloDocumento);
$zip = new ZipArchive;
$filename = "storage/app/modeloDocumento/$eventoTemp->id/modelo.zip";
// 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')) {
$extension = $request->pdfFormAvalExterno->extension();
$pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
......@@ -531,15 +559,23 @@ class EventoController extends Controller
}
if($request->modeloDocumento != null){
foreach ($request->modeloDocumento as $key => $modeloDocumento) {
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . $key . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
$count = count($request->modeloDocumento);
$zip = new ZipArchive;
$filename = "storage/app/modeloDocumento/$evento->id/modelo.zip";
// 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')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension();
......@@ -660,8 +696,15 @@ class EventoController extends Controller
CampoAvaliacao::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]);
}
Storage::deleteDirectory('pdfEdital/' . $evento->id );
Storage::deleteDirectory('modeloDocumento/' . $evento->id);
$pdfEditalPath = 'pdfEdital/' . $evento->id;
if (Storage::disk()->exists($pdfEditalPath)) {
Storage::deleteDirectory($pdfEditalPath);
}
$modeloDocumentoPath = 'modeloDocumento/' . $evento->id;
if (Storage::disk()->exists($modeloDocumentoPath)) {
Storage::deleteDirectory($modeloDocumentoPath);
}
$evento->delete();
......@@ -812,14 +855,21 @@ class EventoController extends Controller
return abort(404);
}
public function baixarModelos($id) {
$evento = Evento::find($id);
public function baixarModelos($id)
{
$evento = Evento::findOrFail($id);
$path = $evento->modeloDocumento;
return response()->download($path);
}
if (Storage::disk()->exists($evento->modeloDocumento)) {
ob_end_clean();
return Storage::download($evento->modeloDocumento);
}
// public function baixarModelos($id) {
// $evento = Evento::find($id);
return abort(404);
}
// if (Storage::disk()->exists($evento->modeloDocumento)) {
// ob_end_clean();
// return Storage::download($evento->modeloDocumento);
// }
// return abort(404);
// }
}
......@@ -892,16 +892,30 @@ class TrabalhoController extends Controller
}
public function baixarEventoTemp($nomeAnexo)
{
{
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->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();
return Storage::download($eventoTemp->$nomeAnexo);
}
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
public function update(UpdateTrabalho $request, $id)
......
......@@ -30,9 +30,9 @@ class DatabaseSeeder extends Seeder
$this->call(EventoSeeder::class);
$this->call(TrabalhoSeeder::class);
$this->call(ArquivoSeeder::class);
$this->call(CampoAvaliacaoSeeder::class);
$this->call(AvaliadorTrabalhoSeeder::class);
$this->call(AvaliadorEventoSeeder::class);
$this->call(CampoAvaliacaoSeeder::class);
$this->call(AvaliacaoTrabalhosSeeder::class);
$this->call(AvaliacaoRelatorioSeeder::class);
......
......@@ -567,12 +567,12 @@
<div class="form-group">
<label for="modeloDocumento">Anexar arquivo com os modelos de documentos do edital:</label>
@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
<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)">
<small>O arquivo selecionado deve ter até 2mb.</small>
@error('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>Os arquivos selecionado deve ter até 2mb.</small>
@error('modeloDocumento[]')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
......
......@@ -695,7 +695,7 @@
<div class="form-group">
<label for="modeloDocumento">Arquivo com os modelos de documentos do edital:</label>
@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">
</a>
@else
......@@ -703,9 +703,9 @@
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif
<input type="file" class="form-control-file @error('modeloDocumento') is-invalid @enderror" name="modeloDocumento" value="{{ old('modeloDocumento') }}" id="modeloDocumento">
<small>O arquivo selecionado deve ter até 2mb.</small>
@error('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>Os arquivos selecionado deve ter até 2mb.</small>
@error('modeloDocumento[]')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
......
......@@ -143,7 +143,13 @@
</div>
</div>
@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
</div>
@endif
......@@ -259,26 +265,25 @@
<div class="col-md-12">
@if($evento->modeloDocumento != null)
<div class="d-flex justify-content-left align-items-center" style="margin-bottom: -15px">
<div style="margin-right:10px; margin-top:-15px">
<img class="" src="{{asset('img/icons/icon_modelo.png')}}" alt="" width="40px">
</div>
<div class="form-group" style="width: 100%">
<div class="d-flex justify-content-between" style="width: 100%">
<div><h5 style=" font-size:17px; margin-top:9px">Outros<br>documentos</h5></div>
<div>
<a class="btn btn-light" href="{{route('baixar.modelos', ['id' => $evento->id])}}" target="_new" style="" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"><br>
Baixar</a>
</div>
<div class="d-flex justify-content-left align-items-center" style="margin-bottom: -15px">
<div style="margin-right:10px; margin-top:-15px">
<img class="" src="{{asset('img/icons/icon_modelo.png')}}" alt="" width="40px">
</div>
<div class="form-group" style="width: 100%">
<div class="d-flex justify-content-between" style="width: 100%">
<div><h5 style=" font-size:17px; margin-top:9px">Outros<br>documentos</h5></div>
<div>
<a class="btn btn-light" href="{{route('baixar.modelos', ['id' => $evento->id])}}" target="_new" style="" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"><br>
Baixar</a>
</div>
</div>
</div>
</div>
</div>
</div>
@else
<h6 style="color: #909090">O criador do edital não disponibilizou modelos</h6>
@endif
</div>
<h6 style="color: #909090">O criador do edital não disponibilizou modelos</h6>
@endif
</div>
</div>
</div>
</div>
......@@ -325,5 +330,10 @@
function changeTrabalho(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>
@endsection
......@@ -220,6 +220,7 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () {
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/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/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra');
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