Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/warga-saya.aplikasipos.info/app/Livewire/
Upload File :
Current File : /home/aplikasiposinfo/www/warga-saya.aplikasipos.info/app/Livewire/PekerjaanView.php

<?php

namespace App\Livewire;

use Livewire\Component;
use App\Models\Civilian;
use App\Models\CivilianJob;
use Livewire\WithPagination;

class PekerjaanView extends Component
{
    use WithPagination;

    public $selectedJob = '';
    public $searchName = '';
    public $jobs = [];

    public function mount()
    {
        $this->jobs = CivilianJob::all();
    }

    public function applyFilter()
    {
        $this->resetPage();
    }

    public function exportToExcel()
    {
        session([
            'laporan_pekerjaan_filter' => [
                'selectedJob' => $this->selectedJob,
                'searchName' => $this->searchName,
            ],
        ]);
        $this->dispatch('triggerExcelDownload');
    }


    public function resetFilters()
    {
        $this->selectedJob = '';
        $this->searchName = '';
        $this->resetPage();
    }

    public function render()
    {
        $civilians = Civilian::query()
            ->when($this->selectedJob, function ($query) {
                $query->whereHas('civilian_jobs', fn($q) => $q->where('civilian_jobs.id', $this->selectedJob));
            })
            ->when($this->searchName, function ($query) {
                $query->where('full_name', 'like', '%'.$this->searchName.'%');
            })
            ->with('civilian_jobs')
            ->paginate(10);

        return view('livewire.pekerjaan-view', [
            'civilians' => $civilians,
        ]);
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]