File manager - Edit - /var/www/html/portal/resources/views/admin/cultura/arteSacra/report.blade.php
Back
@extends('layouts.admin.theme') @section('title', env('APP_NAME') . ' :: Arte Sacra - Emitir Relatório de Arte Sacra') @section('body_class', 'page-report') @section('content') <div class="card shadow-sm"> @php $headLine = "<i class='fa-solid fa-church'></i> Arte Sacra - Emitir Relatório de Arte Sacra"; @endphp @include('components.buttons._headLineButtonsBackAdd', [ "headLine" => __($headLine), "routeBack" => "admin.cultura.arteSacra.index", "routeBackParams" => [], "fontawesomeBack" => '<i class="fa-solid fa-rectangle-list"></i>', "nameBack" => __("Lista de Peças"), "routeAdd" => "admin.cultura.arteSacra.create", "routeAddParams" => [], "nameAdd" => __("Nova peça"), "permission" => "GERENCIADOR_DO_CADASTRO_DE_ARTE_SACRA", "tabs" => [ [ 'route' => 'admin.cultura.arteSacra.options', 'class' => 'fa-list', 'label' => 'Edição de Opções', 'permission' => 'GERENCIADOR_DO_CADASTRO_DE_ARTE_SACRA', ], [ 'route' => 'admin.cultura.arteSacra.trash', 'class' => 'fa-trash', 'label' => 'Lixeira', 'permission' => 'DIRETOR_DE_ARTE_SACRA', ], [ 'route' => 'admin.cultura.arteSacra.logs.usuarios', 'class' => 'fa-user-secret', 'label' => 'Logs de Usuários', 'permission' => 'DIRETOR_DE_ARTE_SACRA', ], ], ]) @include('errors.messageFlash') <div class="card-body"> <div class="modal fade" id="modalExportacao" tabindex="-1" aria-labelledby="modalExportacaoLabel" aria-modal="true" data-bs-backdrop="false"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header bg-primary text-white"> <h5 class="modal-title" id="modalExportacaoLabel">Selecione os campos para exportação</h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Fechar modal"></button> </div> <div class="modal-body"> <div class="row" id="checkbox-container"> @foreach ($camposTodos as $campo) <div class="col-md-4 mb-3"> <div class="form-check"> <input class="form-check-input campo-exportar" type="checkbox" value="{{ $campo }}" id="check-{{ $campo }}" checked> <label class="form-check-label" for="check-{{ $campo }}"> {{ $rotulos[$campo] ?? ucfirst(str_replace('_', ' ', $campo)) }} </label> </div> </div> @endforeach </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary me-2" id="selecionarTodosBtn"> <i class="fas fa-check-circle"></i> Selecionar Todos </button> <button type="button" class="btn btn-secondary" id="deselecionarTodosBtn"> <i class="fas fa-times-circle"></i> Deselecionar Todos </button> <select id="tipoExportacao" class="form-select w-auto d-inline-block ms-2 me-2"> <option value="csv">CSV</option> <option value="pdf">PDF</option> </select> <button type="button" class="btn btn-primary" id="exportarSelecionadosBtn" onclick="exportarTabela()"> <i class="fas fa-file-export"></i> Exportar Selecionados </button> </div> </div> </div> </div> <div id="formRelatorioGeral"> <form action="{{ route('admin.cultura.arteSacra.report.filtros') }}" method="GET"> @csrf <div> <h3>Filtros</h3> <div class="row"> <div class="col-md-3"> <label for="modo_aquisicao_id">Modo de Aquisição:</label> <select name="modo_aquisicao_id" id="modo_aquisicao_id" class="form-control @error('modo_aquisicao_id') is-invalid @enderror"> <option value="">Selecione...</option> @foreach ($modosAquisicao as $id => $modo) <option value="{{ $id }}" {{ old('modo_aquisicao_id') == $id ? 'selected' : '' }}> {{ $modo }} </option> @endforeach </select> @error('modo_aquisicao_id') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-md-3"> <label for="tipo_id">Tipo:</label> <select name="tipo_id" id="tipo_id" class="form-control @error('tipo_id') is-invalid @enderror"> <option value="">Selecione...</option> @foreach ($tipos as $id => $tipo) <option value="{{ $id }}" {{ old('tipo_id') == $id ? 'selected' : '' }}> {{ $tipo }} </option> @endforeach </select> @error('tipo_id') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-md-3"> <label for="ano_arte">Ano da Peça:</label> <input type="number" name="ano_arte" id="ano_arte" class="form-control @error('ano_arte') is-invalid @enderror" value="{{ old('ano_arte') }}" min="1000" max="{{ date('Y') }}" placeholder="Ex: 1950"> @error('ano_arte') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-md-3"> <label for="material_id">Material:</label> <select name="material_id" id="material_id" class="form-control @error('material_id') is-invalid @enderror"> <option value="">Selecione...</option> @foreach ($materiais as $id => $material) <option value="{{ $id }}" {{ old('material_id') == $id ? 'selected' : '' }}> {{ $material }} </option> @endforeach </select> @error('material_id') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-md-3"> <label for="tecnica_id">Técnica:</label> <select name="tecnica_id" id="tecnica_id" class="form-control @error('tecnica_id') is-invalid @enderror"> <option value="">Selecione...</option> @foreach ($tecnicas as $id => $tecnica) <option value="{{ $id }}" {{ old('tecnica_id') == $id ? 'selected' : '' }}> {{ $tecnica }} </option> @endforeach </select> @error('tecnica_id') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-md-3"> <label for="proprietario_id">Proprietário:</label> <select name="proprietario_id" id="proprietario_id" class="form-control @error('proprietario_id') is-invalid @enderror"> <option value="">Selecione...</option> @foreach ($proprietarios as $id => $proprietario) <option value="{{ $id }}" {{ old('proprietario_id') == $id ? 'selected' : '' }}> {{ $proprietario }} </option> @endforeach </select> @error('proprietario_id') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-md-3"> <label for="localizacao_id">Localização:</label> <select name="localizacao_id" id="localizacao_id" class="form-control @error('localizacao_id') is-invalid @enderror"> <option value="">Selecione...</option> @foreach ($proprietarios as $id => $localizacao) <option value="{{ $id }}" {{ old('localizacao_id') == $id ? 'selected' : '' }}> {{ $localizacao }} </option> @endforeach </select> @error('localizacao_id') <div class="invalid-feedback">{{ $message }}</div> @enderror </div> <div class="col-12 text-end mt-3"> <button type="submit" class="btn btn-primary mt-2"> <i class="fas fa-filter"></i> Filtrar </button> </div> </div> </div> </form> @if (isset($acervos)) <h3 class="mt-4">Relatório de Acervo</h3> <div class="table-responsive mt-4" id="table-relatorio"> <table class="table table-striped"> <thead> <tr> @foreach ($campos as $campo) <th>{{ $rotulos[$campo] ?? ucfirst(str_replace('_', ' ', $campo)) }}</th> @endforeach </tr> </thead> <tbody> @forelse($acervos as $acervo) <tr> @foreach ($campos as $campo) <td> @switch($campo) @case('tipo_id') {{ optional($acervo->tipo)->tipo ?? 'Não informado' }} @break @case('modo_aquisicao_id') {{ optional($acervo->modoAquisicao)->modo_aquisicao ?? 'Não informado' }} @break @case('material_id') {{ optional($acervo->material)->material ?? 'Não informado' }} @break @case('tecnica_id') {{ optional($acervo->tecnica)->tecnica ?? 'Não informado' }} @break @case('proprietario_id') {{ optional($acervo->proprietario)->proprietario ?? 'Não informado' }} @break @case('localizacao_id') {{ optional($acervo->localizacao)->proprietario ?? 'Não informado' }} @break @case('designacao_id') {{ optional($acervo->designacao)->designacao ?? 'Não informado' }} @break @case('classe_id') {{ optional($acervo->classe)->classe ?? 'Não informado' }} @break @case('tombamento_id') {{ optional($acervo->tombamento)->tombamento ?? 'Não informado' }} @break @case('roca') {{ $acervo->roca ? 'Sim' : 'Não' }} @break @case('imagem') @if ($acervo->imagem && $acervo->imagem !== 'default.jpg') <img src="{{ asset('pmar/assets/img/arte_sacra/' . $acervo->imagem) }}" width="100" alt="{{ $acervo->nome_peca }}" class="img-thumbnail hover-zoom"> @else <img src="{{ asset('pmar/assets/img/arte_sacra/default.jpg') }}" width="100" alt="Imagem padrão" class="img-thumbnail"> @endif @break @default {{ $acervo->$campo ?? 'Não informado' }} @endswitch </td> @endforeach </tr> @empty <tr> <td colspan="{{ count($campos) }}">* Nenhum registro encontrado!</td> </tr> @endforelse </tbody> </table> </div> @endif @if ($acervos->hasPages()) <nav> <ul class="pagination justify-content-center"> @if ($acervos->onFirstPage()) <li class="page-item disabled"><span class="page-link">« Anterior</span></li> @else <li class="page-item"> <a class="page-link" href="{{ $acervos->previousPageUrl() }}" rel="prev">« Anterior</a> </li> @endif @php $start = max($acervos->currentPage() - 2, 2); $end = min($acervos->currentPage() + 2, $acervos->lastPage() - 1); @endphp <li class="page-item {{ $acervos->currentPage() == 1 ? 'active' : '' }}"> <a class="page-link" href="{{ $acervos->url(1) }}">1</a> </li> @if ($start > 2) <li class="page-item disabled"><span class="page-link">...</span></li> @endif @for ($i = $start; $i <= $end; $i++) <li class="page-item {{ $acervos->currentPage() == $i ? 'active' : '' }}"> <a class="page-link" href="{{ $acervos->url($i) }}">{{ $i }}</a> </li> @endfor @if ($end < $acervos->lastPage() - 1) <li class="page-item disabled"><span class="page-link">...</span></li> @endif @if ($acervos->lastPage() > 1) <li class="page-item {{ $acervos->currentPage() == $acervos->lastPage() ? 'active' : '' }}"> <a class="page-link" href="{{ $acervos->url($acervos->lastPage()) }}">{{ $acervos->lastPage() }}</a> </li> @endif @if ($acervos->hasMorePages()) <li class="page-item"> <a class="page-link" href="{{ $acervos->nextPageUrl() }}" rel="next">Próximo »</a> </li> @else <li class="page-item disabled"><span class="page-link">Próximo »</span></li> @endif </ul> </nav> @endif <div class="col-12 text-end mt-3"> <button type="button" class="btn btn-danger mt-2 ms-2" onclick="abrirModalExportacao()"> <i class="fas fa-file-excel"></i> Exportar Relatório </button> </div> </div> </div> </div> <script> function exportarTabela() { const camposSelecionados = [...document.querySelectorAll('.campo-exportar:checked')].map(el => el.value); const tipoExportacao = document.getElementById('tipoExportacao').value; const linhasTabela = document.querySelectorAll('#table-relatorio tbody tr'); if (camposSelecionados.length === 0) { alert('Por favor, selecione pelo menos um campo para exportação.'); return; } const temRegistros = Array.from(linhasTabela).some(tr => !tr.innerText.includes('Nenhum registro encontrado')); if (!temRegistros) { alert('Nenhum item disponível para exportação.'); return; } const params = new URLSearchParams(window.location.search); const form = document.createElement('form'); form.method = 'POST'; form.action = tipoExportacao === 'csv' ? '{{ route('admin.cultura.arteSacra.report.exportarCSV') }}' : '{{ route('admin.cultura.arteSacra.report.exportarPDF') }}'; const token = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); const inputToken = document.createElement('input'); inputToken.type = 'hidden'; inputToken.name = '_token'; inputToken.value = token; form.appendChild(inputToken); camposSelecionados.forEach(campo => { const input = document.createElement('input'); input.type = 'hidden'; input.name = 'campos[]'; input.value = campo; form.appendChild(input); }); for (const [key, value] of params.entries()) { const input = document.createElement('input'); input.type = 'hidden'; input.name = key; input.value = value; form.appendChild(input); } document.body.appendChild(form); form.submit(); } </script> @endsection
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings