feat(basicdata): tambahkan pencarian pada fitur ekspor Holiday Calendar
- Menambahkan kemampuan pencarian pada fitur ekspor Holiday Calendar. - Mengubah konstruktor `HolidayCalendarExport` untuk menerima parameter `search` yang bersifat opsional. - Menyesuaikan query pengambilan data pada `HolidayCalendarExport` agar mendukung filter berdasarkan: - Deskripsi (`description`). - Tipe (`type`). - Tanggal (`date`). - Memperbaiki logika perhitungan halaman aktif pada pagination di `HolidayCalendarController`. - Menambahkan parameter `search` pada fungsi `export` di `HolidayCalendarController`. - Memperbarui URL export pada tampilan `index.blade.php` ketika input pencarian diubah. - Menambahkan fungsi JavaScript `updateExportUrl()` untuk menyisipkan filter pencarian pada URL ekspor. - Menjamin tidak ada perubahan URL ekspor jika pencarian kosong. Fitur ini memungkinkan pengguna untuk mengekspor data kalender libur berdasarkan hasil pencarian spesifik. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
@@ -11,9 +11,27 @@ use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class HolidayCalendarExport implements WithColumnFormatting, WithHeadings, FromCollection, WithMapping
|
||||
{
|
||||
protected $search;
|
||||
|
||||
public function __construct($search = null)
|
||||
{
|
||||
$this->search = $search;
|
||||
}
|
||||
|
||||
public function collection()
|
||||
{
|
||||
return HolidayCalendar::all();
|
||||
$query = HolidayCalendar::query();
|
||||
|
||||
if (!empty($this->search)) {
|
||||
$search = $this->search;
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->whereRaw('LOWER(description) LIKE ?', ['%' . strtolower($search) . '%'])
|
||||
->orWhereRaw('LOWER(type) LIKE ?', ['%' . strtolower($search) . '%'])
|
||||
->orWhereRaw('CAST(date AS TEXT) LIKE ?', ['%' . $search . '%']);
|
||||
});
|
||||
}
|
||||
|
||||
return $query->get();
|
||||
}
|
||||
|
||||
public function map($row): array
|
||||
|
||||
Reference in New Issue
Block a user