date_start = $request->query('date_start'); $this->date_end = $request->query('date_end'); $this->sa = $request->query('sa'); $this->mechanic = $request->query('mechanic'); $this->dealer = $request->query('dealer'); } /** * @return \Illuminate\Support\Collection */ public function collection() { $data = Transaction::leftJoin('users', 'users.id', '=', 'transactions.user_id') ->leftJoin('users as sa', 'sa.id', '=', 'transactions.user_sa_id') ->leftJoin('works as w', 'w.id', '=', 'transactions.work_id') ->leftJoin('categories as cat', 'cat.id', '=', 'w.category_id') ->leftJoin('dealers as d', 'd.id', '=', 'transactions.dealer_id') ->select('transactions.id', 'transactions.status', 'transactions.user_id as user_id', 'transactions.user_sa_id as user_sa_id', 'users.name as username', 'sa.name as sa_name', 'cat.name as category_name', 'w.name as workname', 'transactions.qty as qty', 'transactions.date as date', 'transactions.police_number as police_number', 'transactions.warranty as warranty', 'transactions.spk as spk', 'transactions.dealer_id', 'd.name as dealer_name'); if(isset($this->date_start) && $this->date_start != null) { $data = $data->where('transactions.date', '>=', $this->date_start); } if(isset($this->date_end) && $this->date_end != null) { $data = $data->where('transactions.date', '<=', $this->date_end); } if(isset($this->sa) && $this->sa != null) { $data = $data->where('transactions.user_sa_id', $this->sa); } if(isset($this->mechanic) && $this->mechanic != null) { $data = $data->where('transactions.user_id', $this->mechanic); } if(isset($this->dealer) && $this->dealer != null) { $data = $data->where('transactions.dealer_id', $this->dealer); } $data = $data->orderBy('date', 'DESC')->get(); $data2 = []; foreach($data as $item) { $data2[] = [ "date" => date('d-m-Y', strtotime($item['date'])), "dealer" => $item['dealer_name'], "spk" => $item['spk'], "mechanic" => $item['username'], "sa" => $item['sa_name'], "police_number" => $item['police_number'], "warranty" => $item['warranty'] == 1 ? 'Ya' : 'Tidak', "category" => $item['category_name'], "work" => $item['workname'], "qty" => $item['qty'] ]; } $data2 = collect($data2); return $data2; } public function headings(): array { return ["Tanggal", "Dealer", "Spk","Mekanik", "SA", "No. Polisi", "Warranty", "Kategori", "Pekerjaan", "Qty"]; } // public function actions(Request $request) // { // return [ // (new DownloadExcel)->withHeadings('Tanggal', 'Mekanik', 'SA', 'No.Polisi', 'Warranty', 'Kategori', 'Qty') // ]; // } }