middleware('admin'); } public function index() { $this->setFilterVars(); $data = [ 'filter_months' => HTMLHelper::getTransMonths(), 'filter_years' => HTMLHelper::getYearRange(), ]; return view('admin.payment.invoice', $data); } private function setFilterVars() { if (!session('invoice_filter_month')) { session(['invoice_filter_month' => intval(date('m'))]); } if (!session('invoice_filter_year')) { session(['invoice_filter_year' => intval(date('Y'))]); } if (Request::get('invoice_filter_name')) { session(['invoice_filter_name' => Request::get('invoice_filter_name')]); } else { session(['invoice_filter_name' => '']); } if (Request::get('invoice_filter_month')) { session(['invoice_filter_month' => Request::get('invoice_filter_month')]); } if (Request::get('invoice_filter_year')) { session(['invoice_filter_year' => Request::get('invoice_filter_year')]); } } private function initSearch($archive = false, $request = true) { $this->setFilterVars(); $query = UserInvoice::with('shopping_order')->with('shopping_order.shopping_user')->select('user_invoices.*') ->where('user_invoices.month', '=', Request::get('invoice_filter_month')) ->where('user_invoices.year', '=', Request::get('invoice_filter_year')); if (Request::get('invoice_filter_name')) { $query->whereHas('shopping_order.shopping_user', function ($query) { return $query->where('billing_firstname', 'LIKE', '%' . Request::get('invoice_filter_name') . '%')->orWhere('billing_lastname', 'LIKE', '%' . Request::get('invoice_filter_name') . '%')->orWhere('billing_email', 'LIKE', '%' . Request::get('invoice_filter_name') . '%'); })->get(); } return $query; } public function datatable() { $query = $this->initSearch(); return \DataTables::eloquent($query) ->addColumn('id', function (UserInvoice $UserInvoice) { if ($UserInvoice->shopping_order->auth_user_id) { return ''; } return ''; }) ->addColumn('total_shipping', function (UserInvoice $UserInvoice) { return '' . $UserInvoice->shopping_order->getFormattedTotalShipping() . " €"; }) ->addColumn('created_at', function (UserInvoice $UserInvoice) { return $UserInvoice->created_at->format("d.m.Y"); }) ->addColumn('txaction', function (UserInvoice $UserInvoice) { if ($UserInvoice->shopping_order) { return Payment::getShoppingOrderBadge($UserInvoice->shopping_order); } return "-"; }) ->addColumn('status', function (UserInvoice $UserInvoice) { return ' ' . $UserInvoice->getStatusType() . ' '; }) ->addColumn('invoice', function (UserInvoice $UserInvoice) { $ret = ""; $ret .= ' '; $ret .= ''; return $ret; }) ->orderColumn('id', 'id $1') ->orderColumn('invoice_number', 'invoice_number $1') ->orderColumn('txaction', 'txaction $1') ->orderColumn('shipped', 'shipped $1') ->orderColumn('total_shipping', 'total_shipping $1') ->orderColumn('created_at', 'created_at $1') ->orderColumn('status', 'status $1') ->rawColumns(['id', 'shipping_order', 'txaction', 'total_shipping', 'status', 'txaction', 'invoice']) ->make(true); } }