request = $request; } public function query() { $query = SenderId::query(); // Apply the same filters used on the index page if ($this->request->filled('search')) { $search = $this->request->input('search'); $query->where('senderid', 'like', "%{$search}%") ->orWhere('mno_name', 'like', "%{$search}%") ->orWhere('supplier_name', 'like', "%{$search}%"); } if ($this->request->filled('direct_mno')) { $query->where('direct_mno', $this->request->input('direct_mno')); } if ($this->request->filled('status')) { $query->where('status', $this->request->input('status')); } return $query->orderBy('created_at', 'desc'); } public function headings(): array { return [ 'Sender ID', 'Direct MNO', 'MNO Name', 'Supplier Name', 'Type', 'Bind Name', 'Status', 'Remarks', 'Created At' ]; } public function map($sender): array { return [ $sender->senderid, $sender->direct_mno, $sender->mno_name ?? 'N/A', $sender->supplier_name ?? 'N/A', $sender->type, $sender->bind_name, strtoupper($sender->status), $sender->remarks, $sender->created_at ? $sender->created_at->format('Y-m-d H:i') : '', ]; } }