download all invoices button
This commit is contained in:
parent
9fff368662
commit
86716961f3
4 changed files with 32 additions and 2 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -17,4 +17,5 @@ npm-debug.log
|
|||
yarn-error.log
|
||||
.gitignore
|
||||
.env.dev
|
||||
.env.testing
|
||||
.env.testing
|
||||
storage/invoices.zip
|
||||
|
|
|
@ -9,6 +9,7 @@ use Illuminate\Contracts\View\Factory;
|
|||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use ZipArchive;
|
||||
|
||||
class SettingsController extends Controller
|
||||
{
|
||||
|
@ -69,4 +70,28 @@ class SettingsController extends Controller
|
|||
return redirect()->route('admin.settings.index')->with('success', 'Invoice settings updated!');
|
||||
}
|
||||
|
||||
public function rglob($pattern, $flags = 0) {
|
||||
$files = glob($pattern, $flags);
|
||||
foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) {
|
||||
$files = array_merge($files, $this::rglob($dir.'/'.basename($pattern), $flags));
|
||||
}
|
||||
return $files;
|
||||
}
|
||||
|
||||
public function downloadAllInvoices(){
|
||||
$zip = new ZipArchive;
|
||||
$zip_safe_path = storage_path('invoices.zip');
|
||||
$res = $zip->open($zip_safe_path, ZipArchive::CREATE);
|
||||
$result = $this::rglob(storage_path('app/invoice/*'));
|
||||
if ($res === TRUE) {
|
||||
foreach($result as $file){
|
||||
if (file_exists($file) && is_file($file)) {
|
||||
$zip->addFile($file,basename($file));
|
||||
}
|
||||
}
|
||||
$zip->close();
|
||||
}
|
||||
return response()->download($zip_safe_path);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -93,6 +93,10 @@
|
|||
</div>
|
||||
|
||||
<div class="tab-pane mt-3" id="invoice-settings">
|
||||
<div class="float-right">
|
||||
<a href="{{route('admin.settings.downloadAllInvoices')}}"><button class="btn btn-success">Download all Invoices</button></a>
|
||||
</div>
|
||||
|
||||
<form method="POST" enctype="multipart/form-data" class="mb-3"
|
||||
action="{{route('admin.settings.update.invoicesettings')}}">
|
||||
@csrf
|
||||
|
@ -186,7 +190,6 @@
|
|||
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -124,6 +124,7 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () {
|
|||
|
||||
Route::patch('settings/update/icons', [SettingsController::class, 'updateIcons'])->name('settings.update.icons');
|
||||
Route::patch('settings/update/invoice-settings', [SettingsController::class, 'updateInvoiceSettings'])->name('settings.update.invoicesettings');
|
||||
Route::get('settings/download-invoices', [SettingsController::class, 'downloadAllInvoices'])->name('settings.downloadAllInvoices');;
|
||||
Route::resource('settings', SettingsController::class)->only('index');
|
||||
|
||||
Route::get('usefullinks/datatable', [UsefulLinkController::class, 'datatable'])->name('usefullinks.datatable');
|
||||
|
|
Loading…
Reference in a new issue