middleware('admin'); } public function index() { $this->setFilterVars(); $data = [ 'filter_months' => HTMLHelper::$months, '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')]); } 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('shipping_order', function (UserInvoice $UserInvoice) { $ret = ""; foreach($UserInvoice->shopping_order_items as $shopping_order_item){ $ret .= $shopping_order_item->product->name."
"; } return $ret; }) */ ->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') ->rawColumns(['id', 'shipping_order', 'txaction', 'total_shipping', 'status', 'txaction', 'invoice']) ->make(true); } }