Updates to 03-2025

This commit is contained in:
Kevin Adametz 2025-04-01 10:39:21 +02:00
parent 6167273a48
commit 9b54eb0512
348 changed files with 34535 additions and 5774 deletions

View file

@ -4,17 +4,18 @@
namespace App\Http\Controllers;
use App\Models\Models\UserCreditMargin as ModelsUserCreditMargin;
use Carbon;
use Request;
use App\User;
use App\Services\Util;
use App\Services\Credit;
use App\Services\Payment;
use App\Models\UserCredit;
use App\Models\ShoppingOrderMargin;
use App\Models\UserCredit;
use App\Models\UserCreditMargin;
use App\Repositories\CreditRepository;
use App\Services\Credit;
use App\Services\Payment;
use App\Services\Payment\UserBot;
use App\Services\Util;
use App\User;
use Carbon;
use Illuminate\Support\Collection;
use Request;
class PaymentCreditController extends Controller
{
@ -23,10 +24,12 @@ class PaymentCreditController extends Controller
private $endYear;
private $rangeYears;
private $activeYear;
private $userBot;
public function __construct()
public function __construct(UserBot $userBot)
{
$this->middleware('auth');
$this->userBot = $userBot;
$this->startYear = 2021;
$this->endYear = date('Y');
$this->rangeYears = range($this->startYear, $this->endYear);
@ -41,7 +44,11 @@ class PaymentCreditController extends Controller
}
/**
* fügt eine neue Manuelle Gutschrift hinzu
*
* @return \Illuminate\Http\RedirectResponse
*/
public function store(){
$data = Request::all();
@ -64,7 +71,6 @@ class PaymentCreditController extends Controller
$credit = Util::reFormatNumber($data['credit']);
$credit = number_format($credit, 2, '.', '');
Payment::addUserCreditMargin($user, $credit, 3, $data['message']);
\Session()->flash('alert-success', "Guthaben hinzugefügt");
}
@ -72,6 +78,11 @@ class PaymentCreditController extends Controller
return redirect(route('admin_payments_credit'));
}
/**
* Erstellt eine neue komplette Gutschrift für einen Benutzer
*
* @return \Illuminate\Http\RedirectResponse
*/
public function create(){
$data = Request::all();
if(isset($data['action'])){
@ -95,65 +106,18 @@ class PaymentCreditController extends Controller
}
}
private function makeData(){
private function makeData(): array
{
$this->setActiveYears();
//$date1 = Carbon::parse('01.01.'.$this->activeYear." 00:00:00")->format('Y-m-d H:i:s');
//$date2 = Carbon::parse('31.12.'.$this->activeYear." 23:59:59")->toDateString();
$ShoppingOrderMargins = ShoppingOrderMargin::join('users', 'm_sponsor_id', '=', 'users.id')
->groupBy('m_sponsor_id')
->join('user_accounts', 'account_id', '=', 'user_accounts.id')
->select('users.id as user_id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')
->wherePaid(true)
->whereCancellation(false)
->wherePartnerCommissionPaid(false)
->where('partner_commission_pending_to', '<', Carbon::now())
->get();
$ShoppingOrderMarginPendings = ShoppingOrderMargin::join('users', 'm_sponsor_id', '=', 'users.id')
->groupBy('m_sponsor_id')
->join('user_accounts', 'account_id', '=', 'user_accounts.id')
->select('users.id as user_id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')
->wherePaid(true)
->whereCancellation(false)
->wherePartnerCommissionPaid(false)
->where('partner_commission_pending_to', '>=', Carbon::now())
->get();
$UserCreditMargins = UserCreditMargin::wherePaid(false)->get();
$ShoppingOrderMarginUserIds = ShoppingOrderMargin::select('m_sponsor_id')->groupBy('m_sponsor_id')
->wherePaid(true)
->whereCancellation(false)
->wherePartnerCommissionPaid(false)
->where('partner_commission_pending_to', '<', Carbon::now())
->get()->pluck('m_sponsor_id')->toArray();
$this->userBot->readUserHasCredits();
$this->userBot->readUserHasPendingCredit();
$onlyUserCreditMargins = [];
foreach($UserCreditMargins as $key => $UserCreditMargin){
if(!in_array($UserCreditMargin->user_id, $ShoppingOrderMarginUserIds)){
if(isset($onlyUserCreditMargins[$UserCreditMargin->user_id])){
$onlyUserCreditMargins[$UserCreditMargin->user_id]['sum'] += $UserCreditMargin->credit;
$onlyUserCreditMargins[$UserCreditMargin->user_id]['entries'][$UserCreditMargin->id] = $UserCreditMargin;
}else{
$onlyUserCreditMargins[$UserCreditMargin->user_id] = [
'user_id' => $UserCreditMargin->user->id,
'first_name' => $UserCreditMargin->user->account->first_name,
'last_name' => $UserCreditMargin->user->account->last_name,
'email' => $UserCreditMargin->user->email,
'sum' => $UserCreditMargin->credit,
'entries' => [$UserCreditMargin->id => $UserCreditMargin],
];
}
}
}
$data = [
return [
'years' => $this->rangeYears,
'active_year' => $this->activeYear,
'ShoppingOrderMargins' => $ShoppingOrderMargins,
'ShoppingOrderMarginPendings' => $ShoppingOrderMarginPendings,
'onlyUserCreditMargins' => $onlyUserCreditMargins,
'users_credits' => $this->userBot->getUsers(),
'users_credits_pending' => $this->userBot->getUsersPending(),
];
return $data;
}
private function setActiveYears(){
@ -173,19 +137,25 @@ class PaymentCreditController extends Controller
\Session()->flash('alert-error', "Guthaben kann nicht gelöscht werden");
}
}
if($del === 'shopping_order_margin'){
$ShoppingOrderMargin = ShoppingOrderMargin::findOrFail($id);
$ShoppingOrderMargin->out_paid = true;
$ShoppingOrderMargin->save();
\Session()->flash('alert-success', "Gutschrift ist gelöscht");
}
return redirect(route('admin_payments_credit'));
}
public function datatable(){
$this->setActiveYears();
$date1 = Carbon::parse('01.01.'.$this->activeYear)->format('Y-m-d');
$date2 = Carbon::parse('31.12.'.$this->activeYear)->format('Y-m-d');
$startDate = Carbon::parse("01.01.{$this->activeYear}")->format('Y-m-d');
$endDate = Carbon::parse("31.12.{$this->activeYear}")->format('Y-m-d');
$query = UserCredit::with('user', 'user.account')->select('user_credits.*')
//::with('shopping_user', )->select('shopping_orders.*')
//->where('paid', '=', 1)
->whereBetween('date', [$date1, $date2]);
->whereBetween('date', [$startDate, $endDate]);
//->orderBy('created_at', 'DESC');
return \DataTables::eloquent($query)