mivita/app/Http/Controllers/BusinessPointsController.php
2022-07-29 18:18:05 +02:00

192 lines
No EOL
7.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Carbon;
use Request;
use App\Services\Payment;
use App\Models\UserInvoice;
use App\Services\HTMLHelper;
use App\Models\UserSalesVolume;
use App\Services\BusinessPlan\SalesPointsVolume;
class BusinessPointsController extends Controller
{
private $startYear;
private $endYear;
private $rangeYears;
private $activeYear;
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$filter_members = UserSalesVolume::join('users', 'user_id', '=', 'users.id')
->groupBy('user_id')->join('user_accounts', 'account_id', '=', 'user_accounts.id')
->select('users.id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')->get();
$this->setFilterVars();
$data = [
'filter_months' => HTMLHelper::$months,
'filter_years' => HTMLHelper::getYearRange(),
'filter_members' => $filter_members,
];
return view('admin.business.points', $data);
}
public function store(){
$data = Request::all();
if(!isset($data['action'])){
return back();
}
if(!isset($data['change_member_key']) || $data['change_member_key'] !== config('mivita.edit_data_pass')){
\Session()->flash('alert-error', 'Das Passwort ist falsch.');
return back();
}
if(!isset($data['is_checked_action'])){
\Session()->flash('alert-error', 'Änderung nicht bestätigt');
return back();
}
if($data['action'] === 'add_user_sales_volume'){
SalesPointsVolume::addSalesPointsVolume($data);
return back(); }
if($data['action'] === 'edit_user_sales_volume'){
SalesPointsVolume::editSalesPointsVolume($data);
return back();
}
dd($data);
return redirect(route('admin_business_points'));
//
//
/*
$add_credit_error = false;
if(!isset($data['member_id']) || !$user = User::find($data['member_id'])){
$add_credit_error = 'Vertriebspartner nicht gefunden';
}
if(!isset($data['credit'])){
$add_credit_error = 'Bitte Betrag eingeben';
}
if(!isset($data['message'])){
$add_credit_error = 'Bitte Mitteilung eingeben';
}
if($add_credit_error){
$data = $this->makeData();
$data['add_credit_error'] = $add_credit_error;
return view('admin.payment.credit.index', $data);
}
// $credit = Util::reFormatNumber($data['credit']);
//$credit = number_format($credit, 2, '.', '');
//Payment::addUserCreditMargin($user, $credit, 3, $data['message']);
\Session()->flash('alert-success', "Guthaben hinzugefügt");
}*/
}
private function setFilterVars(){
if(!session('points_filter_month')){
session(['points_filter_month' => intval(date('m'))]);
}
if(!session('points_filter_year')){
session(['points_filter_year' => intval(date('Y'))]);
}
if(Request::get('points_filter_member_id')){
session(['points_filter_member_id' => Request::get('points_filter_member_id')]);
}
if(Request::get('points_filter_month')){
session(['points_filter_month' => Request::get('points_filter_month')]);
}
if(Request::get('points_filter_year')){
session(['points_filter_year' => Request::get('points_filter_year')]);
}
}
private function initSearch()
{
$this->setFilterVars();
$query = UserSalesVolume::with('user', 'user.account')->with('shopping_order')->select('user_sales_volumes.*')
->where('user_sales_volumes.month', '=', Request::get('points_filter_month'))
->where('user_sales_volumes.year', '=', Request::get('points_filter_year'));
if(Request::get('points_filter_member_id')){
$query->where('user_sales_volumes.user_id', '=', Request::get('points_filter_member_id'));
}
//->orderBy('created_at', 'DESC');
/* $query = FlexHour::leftJoin("flex_hour_items", function($join) {
$join->on("flex_hour_items.flex_hour_id","=","flex_hours.id");
$join->where("flex_hour_items.date","=", FlexHourItemBot::$date);
})*/
return $query;
}
public function datatable(){
$query = $this->initSearch();
return \DataTables::eloquent($query)
->addColumn('id', function (UserSalesVolume $UserSalesVolume) {
return '<button type="button" class="btn btn-xs btn-secondary" data-toggle="modal" data-target="#modals-load-content"
data-id="'.$UserSalesVolume->id.'"
data-action="edit_user_sales_volume"
data-back=""
data-modal="modal-xl"
data-init_from="user"
data-route="'.route('modal_load').'"><span class="far fa-eye"></span></button>';
})
->addColumn('order', function (UserSalesVolume $UserSalesVolume) {
if($UserSalesVolume->shopping_order){
if($UserSalesVolume->status === 1){
return '<a href="' . route('admin_sales_users_detail', [$UserSalesVolume->shopping_order->id]) . '" class="btn btn-xs btn-primary">'.$UserSalesVolume->shopping_order->id.'</a>';
}
if($UserSalesVolume->status === 2 || $UserSalesVolume->status === 3){
return '<a href="' . route('admin_sales_customers_detail', [$UserSalesVolume->shopping_order->id]) . '" class="btn btn-xs btn-secondary">'.$UserSalesVolume->shopping_order->id.'</a>';
}
}
return '';
})
->addColumn('total_net', function (UserSalesVolume $UserSalesVolume) {
return formatNumber($UserSalesVolume->total_net).' &euro;';
})
->addColumn('first_name', function (UserSalesVolume $UserSalesVolume) {
return isset($UserSalesVolume->user) ? $UserSalesVolume->user->account->first_name : '';
})
->addColumn('last_name', function (UserSalesVolume $UserSalesVolume) {
return isset($UserSalesVolume->user) ? $UserSalesVolume->user->account->last_name : '';
})
->addColumn('email', function (UserSalesVolume $UserSalesVolume) {
return isset($UserSalesVolume->user) ? $UserSalesVolume->user->email : '';
})
->addColumn('status', function (UserSalesVolume $UserSalesVolume) {
return '<span class="badge badge-pill badge-'.$UserSalesVolume->getStatusColor().'">'.$UserSalesVolume->getStatusType().'</span>';
})
->addColumn('message', function (UserSalesVolume $UserSalesVolume) {
return '<span class="no-line-break">'.$UserSalesVolume->message.'</span>';
})
->orderColumn('id', 'id $1')
->orderColumn('order', 'order $1')
->orderColumn('status', 'status $1')
->orderColumn('message', 'message $1')
->rawColumns(['id', 'order', 'status', 'message', 'total_net'])
->make(true);
}
}