middleware('admin'); } public function index() { $this->setFilterVars(); $data = [ 'filter_months' => HTMLHelper::getTransMonths(), 'filter_years' => HTMLHelper::getYearRange(2023), ]; return view('admin.payment.taxadvisor', $data); } public function download(){ if(Request::get('action') === "export"){ $objects = $this->initSearch(false); $columns = []; $filename = "mivita-absatzmengen-".session('payment_taxadvisor_filter_month').'_'.session('payment_taxadvisor_filter_year')."-export"; $headers = array( '#', 'Produkt', 'Artikelnummer', 'Menge', ); if($objects){ foreach ($objects as $key => $obj){ $columns[] = array( 'id' => $key, 'name' => $obj['name'], 'number' => $obj['number'], 'value' => $obj['value'], ); } } return Excel::download(new UserTeamExport($columns, $headers), $filename.'.xls'); } } private function setFilterVars(){ if(!session('payment_taxadvisor_filter_month')){ session(['payment_taxadvisor_filter_month' => intval(date('m'))]); } if(!session('payment_taxadvisor_filter_year')){ session(['payment_taxadvisor_filter_year' => intval(date('Y'))]); } if(Request::get('payment_taxadvisor_filter_month')){ session(['payment_taxadvisor_filter_month' => Request::get('payment_taxadvisor_filter_month')]); } if(Request::get('payment_taxadvisor_filter_year')){ session(['payment_taxadvisor_filter_year' => Request::get('payment_taxadvisor_filter_year')]); } } private function initSearch($returnColl = true) { $this->setFilterVars(); $date_start = Carbon::parse('01.'.session('payment_taxadvisor_filter_month').'.'.session('payment_taxadvisor_filter_year'))->format('Y-m-d'); $date_end = Carbon::parse('01.'.session('payment_taxadvisor_filter_month').'.'.session('payment_taxadvisor_filter_year'))->endOfMonth()->format('Y-m-d'); $ShoppingOrders = ShoppingOrder::where('paid', 1)->where('mode', 'live')->whereBetween('created_at', [$date_start, $date_end])->get(); $objects = []; foreach($ShoppingOrders as $ShoppingOrder){ foreach($ShoppingOrder->shopping_order_items as $shopping_order_item){ if($shopping_order_item->product){ if(isset($objects[$shopping_order_item->product->id])){ $value = intval($objects[$shopping_order_item->product->id]['value'] + $shopping_order_item->qty); $objects[$shopping_order_item->product->id]['value'] = $value; }else{ $objects[$shopping_order_item->product->id] = [ 'name' => $shopping_order_item->product->name, 'number' => $shopping_order_item->product->number, 'value' => $shopping_order_item->qty ]; } } } } if($returnColl){ $collection = collect(); foreach($objects as $key => $obj){ $collection->push([ 'id' => $key, 'name' => $obj['name'], 'number' => $obj['number'], 'value' => $obj['value'], ]); } return $collection; } return $objects; } public function datatable(){ $collection = $this->initSearch(true); /* $collect = collect([ ['id' => 1, 'name' => 'John', 'number'=>92012, 'value'=>123], ['id' => 2, 'name' => 'Jane', 'number'=>92012, 'value'=>123], ['id' => 3, 'name' => 'James', 'number'=>92012, 'value'=>123], ]); */ return \DataTables::of($collection)->toJson(); } }