diff --git a/app/Jobs/Ninja/SystemMaintenance.php b/app/Jobs/Ninja/SystemMaintenance.php index e036a291be..1959af92e5 100644 --- a/app/Jobs/Ninja/SystemMaintenance.php +++ b/app/Jobs/Ninja/SystemMaintenance.php @@ -12,6 +12,7 @@ namespace App\Jobs\Ninja; use App\Models\Backup; +use App\Models\Company; use App\Models\Credit; use App\Models\Invoice; use App\Models\Quote; @@ -20,6 +21,7 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Storage; class SystemMaintenance implements ShouldQueue { @@ -114,4 +116,45 @@ class SystemMaintenance implements ShouldQueue $backup->delete(); }); } + + private function cleanPdfs() + { + $company_keys = Company::query() + ->pluck('company_key') + ->toArray(); + + $directories = Storage::disk(config('filesystems.default'))->directories(); + + $del_dirs = ['quotes','invoices','credits','recurring_invoices', 'e_invoice']; + + collect($directories)->each(function ($parent_directory) use ($del_dirs, $company_keys) { + + if (! in_array($parent_directory, $company_keys)) { + nlog("Deleting {$parent_directory}"); + + /* Ensure we are not deleting the root folder */ + if (strlen($parent_directory) > 1) { + nlog("Company No Longer Exists => deleting {$parent_directory}"); + Storage::disk(config('filesystems.default'))->deleteDirectory($parent_directory); + return; + } + + } + + $sub_directories = Storage::allDirectories($parent_directory); + + collect($sub_directories)->each(function ($sub_dir) use ($del_dirs) { + foreach($del_dirs as $del_dir) { + if(stripos($sub_dir, $del_dir) !== false) { + nlog("Deleting {$sub_dir} as it matches {$del_dir}"); + Storage::deleteDirectory($sub_dir); + } + } + + }); + + }); + + } + }