From 3a53ddbc59a8302052617896008c94bb2eaaf9f6 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Sat, 27 Aug 2022 18:59:07 +0200
Subject: [PATCH 001/128] partner discounts and their referrals
---
.../Controllers/Admin/PaymentController.php | 26 ++-
app/Http/Controllers/PartnerController.php | 203 ++++++++++++++++++
app/Models/PartnerDiscount.php | 40 ++++
app/Models/ShopProduct.php | 11 +-
..._202109_create_partner_discounts_table.php | 35 +++
.../views/admin/partners/create.blade.php | 139 ++++++++++++
resources/views/admin/partners/edit.blade.php | 158 ++++++++++++++
.../views/admin/partners/index.blade.php | 92 ++++++++
resources/views/layouts/main.blade.php | 8 +
resources/views/store/checkout.blade.php | 20 +-
routes/web.php | 8 +-
11 files changed, 714 insertions(+), 26 deletions(-)
create mode 100644 app/Http/Controllers/PartnerController.php
create mode 100644 app/Models/PartnerDiscount.php
create mode 100644 database/migrations/2022_08_25_202109_create_partner_discounts_table.php
create mode 100644 resources/views/admin/partners/create.blade.php
create mode 100644 resources/views/admin/partners/edit.blade.php
create mode 100644 resources/views/admin/partners/index.blade.php
diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php
index 8d3a0d23..086da7b7 100644
--- a/app/Http/Controllers/Admin/PaymentController.php
+++ b/app/Http/Controllers/Admin/PaymentController.php
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin;
use App\Events\UserUpdateCreditsEvent;
use App\Http\Controllers\Controller;
use App\Models\InvoiceSettings;
+use App\Models\PartnerDiscount;
use App\Models\Payment;
use App\Models\ShopProduct;
use App\Models\Settings;
@@ -57,10 +58,13 @@ class PaymentController extends Controller
public function checkOut(Request $request, ShopProduct $shopProduct)
{
return view('store.checkout')->with([
- 'product' => $shopProduct,
- 'taxvalue' => $shopProduct->getTaxValue(),
- 'taxpercent' => $shopProduct->getTaxPercent(),
- 'total' => $shopProduct->getTotalPrice()
+ 'product' => $shopProduct,
+ 'discountpercent' => PartnerDiscount::getDiscount(),
+ 'discountvalue' => PartnerDiscount::getDiscount() * $shopProduct->price/100,
+ 'discountedprice' => $shopProduct->getPriceAfterDiscount(),
+ 'taxvalue' => $shopProduct->getTaxValue(),
+ 'taxpercent' => $shopProduct->getTaxPercent(),
+ 'total' => $shopProduct->getTotalPrice()
]);
}
@@ -78,7 +82,7 @@ class PaymentController extends Controller
"purchase_units" => [
[
"reference_id" => uniqid(),
- "description" => $shopProduct->description,
+ "description" => $shopProduct->display . (PartnerDiscount::getDiscount()?(" (" . __('Discount') . " " . PartnerDiscount::getDiscount() . '%)'):""),
"amount" => [
"value" => $shopProduct->getTotalPrice(),
'currency_code' => strtoupper($shopProduct->currency_code),
@@ -86,7 +90,7 @@ class PaymentController extends Controller
'item_total' =>
[
'currency_code' => strtoupper($shopProduct->currency_code),
- 'value' => $shopProduct->price,
+ 'value' => $shopProduct->getPriceAfterDiscount(),
],
'tax_total' =>
[
@@ -188,7 +192,7 @@ class PaymentController extends Controller
if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both") && $shopProduct->type=="Credits"){
if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', $user->id)->first()){
$ref_user = User::findOrFail($ref_user->referral_id);
- $increment = number_format($shopProduct->quantity/100*config("SETTINGS::REFERRAL:PERCENTAGE"),0,"","");
+ $increment = number_format($shopProduct->quantity*(PartnerDiscount::getCommission($ref_user->id))/100,0,"","");
$ref_user->increment('credits', $increment);
//LOGS REFERRALS IN THE ACTIVITY LOG
@@ -273,10 +277,10 @@ class PaymentController extends Controller
'price_data' => [
'currency' => $shopProduct->currency_code,
'product_data' => [
- 'name' => $shopProduct->display,
+ 'name' => $shopProduct->display . (PartnerDiscount::getDiscount()?(" (" . __('Discount') . " " . PartnerDiscount::getDiscount() . '%)'):""),
'description' => $shopProduct->description,
],
- 'unit_amount_decimal' => round($shopProduct->price * 100, 2),
+ 'unit_amount_decimal' => round($shopProduct->getPriceAfterDiscount() * 100, 2),
],
'quantity' => 1,
],
@@ -284,7 +288,7 @@ class PaymentController extends Controller
'price_data' => [
'currency' => $shopProduct->currency_code,
'product_data' => [
- 'name' => 'Product Tax',
+ 'name' => __('Tax'),
'description' => $shopProduct->getTaxPercent() . "%",
],
'unit_amount_decimal' => round($shopProduct->getTaxValue(), 2) * 100,
@@ -678,4 +682,4 @@ class PaymentController extends Controller
->rawColumns(['actions'])
->make(true);
}
-}
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/PartnerController.php b/app/Http/Controllers/PartnerController.php
new file mode 100644
index 00000000..7d11f417
--- /dev/null
+++ b/app/Http/Controllers/PartnerController.php
@@ -0,0 +1,203 @@
+PartnerDiscount::get(),
+ 'users' => User::orderBy('name')->get()
+ ]);
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ *
+ * @param Request $request
+ * @return RedirectResponse
+ */
+ public function store(Request $request)
+ {
+ $request->validate([
+ 'user_id' => 'required|integer|min:0',
+ 'partner_discount' => 'required|integer|max:100|min:0',
+ 'registered_user_discount' => 'required|integer|max:100|min:0'
+ ]);
+
+ PartnerDiscount::create($request->all());
+
+ return redirect()->route('admin.partners.index')->with('success', __('partner has been created!'));
+ }
+
+ /**
+ * Display the specified resource.
+ *
+ * @param Voucher $voucher
+ * @return Response
+ */
+ public function show(Voucher $voucher)
+ {
+ //
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ *
+ * @param Voucher $voucher
+ * @return Application|Factory|View
+ */
+ public function edit(PartnerDiscount $partner)
+ {
+ return view('admin.partners.edit', [
+ 'partners' =>PartnerDiscount::get(),
+ 'partner' => $partner,
+ 'users' => User::orderBy('name')->get()
+ ]);
+ }
+
+ /**
+ * Update the specified resource in storage.
+ *
+ * @param Request $request
+ * @param Voucher $voucher
+ * @return RedirectResponse
+ */
+ public function update(Request $request, PartnerDiscount $partner)
+ {
+ //dd($request);
+ $request->validate([
+ 'user_id' => 'required|integer|min:0',
+ 'partner_discount' => 'required|integer|max:100|min:0',
+ 'registered_user_discount' => 'required|integer|max:100|min:0'
+ ]);
+
+ $partner->update($request->all());
+
+ return redirect()->route('admin.partners.index')->with('success', __('partner has been updated!'));
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ *
+ * @param Voucher $voucher
+ * @return RedirectResponse
+ */
+ public function destroy(PartnerDiscount $partner)
+ {
+ $partner->delete();
+ return redirect()->back()->with('success', __('partner has been removed!'));
+ }
+
+ public function users(Voucher $voucher)
+ {
+ return view('admin.vouchers.users', [
+ 'voucher' => $voucher
+ ]);
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ValidationException
+ */
+ public function redeem(Request $request)
+ {
+ #general validations
+ $request->validate([
+ 'code' => 'required|exists:vouchers,code'
+ ]);
+
+ #get voucher by code
+ $voucher = Voucher::where('code', '=', $request->input('code'))->firstOrFail();
+
+ #extra validations
+ if ($voucher->getStatus() == 'USES_LIMIT_REACHED') throw ValidationException::withMessages([
+ 'code' => __('This voucher has reached the maximum amount of uses')
+ ]);
+
+ if ($voucher->getStatus() == 'EXPIRED') throw ValidationException::withMessages([
+ 'code' => __('This voucher has expired')
+ ]);
+
+ if (!$request->user()->vouchers()->where('id', '=', $voucher->id)->get()->isEmpty()) throw ValidationException::withMessages([
+ 'code' => __('You already redeemed this voucher code')
+ ]);
+
+ if ($request->user()->credits + $voucher->credits >= 99999999) throw ValidationException::withMessages([
+ 'code' => "You can't redeem this voucher because you would exceed the limit of " . CREDITS_DISPLAY_NAME
+ ]);
+
+ #redeem voucher
+ $voucher->redeem($request->user());
+
+ event(new UserUpdateCreditsEvent($request->user()));
+
+ return response()->json([
+ 'success' => "{$voucher->credits} " . CREDITS_DISPLAY_NAME ." ". __("have been added to your balance!")
+ ]);
+ }
+
+ public function usersDataTable(Voucher $voucher)
+ {
+ $users = $voucher->users();
+
+ return datatables($users)
+ ->editColumn('name', function (User $user) {
+ return '' . $user->name . ' ';
+ })
+ ->addColumn('credits', function (User $user) {
+ return ' ' . $user->credits();
+ })
+ ->addColumn('last_seen', function (User $user) {
+ return $user->last_seen ? $user->last_seen->diffForHumans() : '';
+ })
+ ->rawColumns(['name', 'credits', 'last_seen'])
+ ->make();
+ }
+ public function dataTable()
+ {
+ $query = PartnerDiscount::query();
+
+ return datatables($query)
+ ->addColumn('actions', function (PartnerDiscount $partner) {
+ return '
+
+
+ ';
+ })
+ ->addColumn('user', function (PartnerDiscount $partner) {
+ return ($user=User::where('id', $partner->user_id)->first())?''.$user->name.' ':__('Unknown user');
+ })
+ ->editColumn('created_at', function (PartnerDiscount $partner) {
+ return $partner->created_at ? $partner->created_at->diffForHumans() : '';
+ })
+ ->editColumn('partner_discount', function (PartnerDiscount $partner) {
+ return $partner->partner_discount ? $partner->partner_discount . "%" : "0%";
+ })
+ ->editColumn('registered_user_discount', function (PartnerDiscount $partner) {
+ return $partner->registered_user_discount ? $partner->registered_user_discount . "%" : "0%";
+ })
+ ->rawColumns(['user', 'actions'])
+ ->make();
+ }
+}
\ No newline at end of file
diff --git a/app/Models/PartnerDiscount.php b/app/Models/PartnerDiscount.php
new file mode 100644
index 00000000..1c49e00c
--- /dev/null
+++ b/app/Models/PartnerDiscount.php
@@ -0,0 +1,40 @@
+id)->first()){
+ return $partnerDiscount->partner_discount;
+ }
+ else if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', Auth::user()->id)->first()){
+ if($partnerDiscount = PartnerDiscount::where('user_id', $ref_user->referral_id)->first()){
+ return $partnerDiscount->registered_user_discount;
+ }
+ return $discountPercent = 0;
+ }
+ }
+ public static function getCommission($user_id)
+ {
+ if($partnerDiscount = PartnerDiscount::where('user_id', $user_id)->first()){
+ if($partnerDiscount->referral_system_commission>=0) return $partnerDiscount->referral_system_commission>=0;
+ }
+ return config("SETTINGS::REFERRAL:PERCENTAGE");
+ }
+}
\ No newline at end of file
diff --git a/app/Models/ShopProduct.php b/app/Models/ShopProduct.php
index 4d158be8..3339a169 100644
--- a/app/Models/ShopProduct.php
+++ b/app/Models/ShopProduct.php
@@ -63,6 +63,11 @@ class ShopProduct extends Model
return $tax < 0 ? 0 : $tax;
}
+ public function getPriceAfterDiscount()
+ {
+ return number_format($this->price - ($this->price * PartnerDiscount::getDiscount() / 100), 2);
+ }
+
/**
* @description Returns the tax as Number
*
@@ -70,7 +75,7 @@ class ShopProduct extends Model
*/
public function getTaxValue()
{
- return number_format($this->price * $this->getTaxPercent() / 100, 2);
+ return number_format($this->getPriceAfterDiscount() * $this->getTaxPercent() / 100, 2);
}
/**
@@ -80,6 +85,6 @@ class ShopProduct extends Model
*/
public function getTotalPrice()
{
- return number_format($this->price + $this->getTaxValue(), 2);
+ return number_format($this->getPriceAfterDiscount() + $this->getTaxValue(), 2);
}
-}
+}
\ No newline at end of file
diff --git a/database/migrations/2022_08_25_202109_create_partner_discounts_table.php b/database/migrations/2022_08_25_202109_create_partner_discounts_table.php
new file mode 100644
index 00000000..976aa3a8
--- /dev/null
+++ b/database/migrations/2022_08_25_202109_create_partner_discounts_table.php
@@ -0,0 +1,35 @@
+id();
+ $table->foreignId('user_id');
+ $table->integer('partner_discount');
+ $table->integer('registered_user_discount');
+ $table->integer('referral_system_commission');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('partner_discounts');
+ }
+}
\ No newline at end of file
diff --git a/resources/views/admin/partners/create.blade.php b/resources/views/admin/partners/create.blade.php
new file mode 100644
index 00000000..8ac26d54
--- /dev/null
+++ b/resources/views/admin/partners/create.blade.php
@@ -0,0 +1,139 @@
+@extends('layouts.main')
+
+@section('content')
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/partners/edit.blade.php b/resources/views/admin/partners/edit.blade.php
new file mode 100644
index 00000000..2806f749
--- /dev/null
+++ b/resources/views/admin/partners/edit.blade.php
@@ -0,0 +1,158 @@
+@extends('layouts.main')
+
+@section('content')
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/partners/index.blade.php b/resources/views/admin/partners/index.blade.php
new file mode 100644
index 00000000..ae66aaf6
--- /dev/null
+++ b/resources/views/admin/partners/index.blade.php
@@ -0,0 +1,92 @@
+@extends('layouts.main')
+
+@section('content')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{__('User')}}
+ {{__('Partner discount')}}
+ {{__('Registered user discount')}}
+ {{__('Created')}}
+ {{__('Actions')}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php
index ae31b5e1..384f08d6 100644
--- a/resources/views/layouts/main.blade.php
+++ b/resources/views/layouts/main.blade.php
@@ -319,6 +319,14 @@
+
+
+
+ {{ __('Partners') }}
+
+
+
{{-- --}}
{{-- --}}
diff --git a/resources/views/store/checkout.blade.php b/resources/views/store/checkout.blade.php
index 1c742780..dbbe6cb3 100644
--- a/resources/views/store/checkout.blade.php
+++ b/resources/views/store/checkout.blade.php
@@ -107,18 +107,20 @@
+ @if($discountpercent&&$discountvalue)
+
+ {{ __('Discount') }} ({{ $discountpercent }}%):
+ {{$product->formatToCurrency($discountvalue)}}
+
+ @endif
{{ __('Subtotal') }}:
- {{ $product->formatToCurrency($product->price) }}
+ {{ $product->formatToCurrency($discountedprice) }}
- {{ __('Tax') }} ({{ $taxpercent }}%)
+ {{ __('Tax') }} ({{ $taxpercent }}%):
{{ $product->formatToCurrency($taxvalue) }}
-
- {{ __('Quantity') }}:
- 1
-
{{ __('Total') }}:
{{ $product->formatToCurrency($total) }}
@@ -154,7 +156,6 @@
//loading
paymentMethod: '',
paymentRoute: '',
-
setPaymentRoute(provider) {
switch (provider) {
case 'paypal':
@@ -167,12 +168,9 @@
this.paymentRoute = '{{ route('payment.PaypalPay', $product->id) }}';
}
},
-
-
-
}
}
-@endsection
+@endsection
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index 433220f9..fc2b75aa 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -30,6 +30,7 @@ use Illuminate\Support\Facades\Route;
use App\Classes\Settings\Language;
use App\Classes\Settings\Invoices;
use App\Classes\Settings\System;
+use App\Http\Controllers\PartnerController;
/*
|--------------------------------------------------------------------------
@@ -173,6 +174,11 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () {
Route::get('vouchers/{voucher}/users', [VoucherController::class, 'users'])->name('vouchers.users');
Route::resource('vouchers', VoucherController::class);
+ #partners
+ Route::get('partners/datatable', [PartnerController::class, 'datatable'])->name('partners.datatable');
+ Route::get('partners/{voucher}/users', [PartnerController::class, 'users'])->name('partners.users');
+ Route::resource('partners', PartnerController::class);
+
#api-keys
Route::get('api/datatable', [ApplicationApiController::class, 'datatable'])->name('api.datatable');
Route::resource('api', ApplicationApiController::class)->parameters([
@@ -198,4 +204,4 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () {
});
Route::get('/home', [HomeController::class, 'index'])->name('home');
-});
+});
\ No newline at end of file
From dc0737e8031447b288de4cd752a72df513343bfb Mon Sep 17 00:00:00 2001
From: ok236449
Date: Sat, 27 Aug 2022 19:44:27 +0200
Subject: [PATCH 002/128] fix users table sorting and add users to payments
---
app/Http/Controllers/Admin/PaymentController.php | 5 +++--
app/Http/Controllers/Admin/UserController.php | 7 ++++---
resources/views/admin/payments/index.blade.php | 2 ++
resources/views/admin/users/index.blade.php | 4 ++--
4 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php
index 086da7b7..4bc10bfe 100644
--- a/app/Http/Controllers/Admin/PaymentController.php
+++ b/app/Http/Controllers/Admin/PaymentController.php
@@ -658,7 +658,8 @@ class PaymentController extends Controller
return datatables($query)
->editColumn('user', function (Payment $payment) {
- return $payment->user->name;
+ return
+ ($payment->user)?''.$payment->user->name.' ':__('Unknown user');
})
->editColumn('price', function (Payment $payment) {
return $payment->formatToCurrency($payment->price);
@@ -679,7 +680,7 @@ class PaymentController extends Controller
->addColumn('actions', function (Payment $payment) {
return ' ';
})
- ->rawColumns(['actions'])
+ ->rawColumns(['actions', 'user'])
->make(true);
}
}
\ No newline at end of file
diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php
index f4f7de1b..e372f121 100644
--- a/app/Http/Controllers/Admin/UserController.php
+++ b/app/Http/Controllers/Admin/UserController.php
@@ -288,7 +288,8 @@ class UserController extends Controller
return $user->discordUser ? $user->discordUser->id : '';
})
->addColumn('last_seen', function (User $user) {
- return $user->last_seen ? $user->last_seen->diffForHumans() : '';
+ return ['display' => $user->last_seen ? $user->last_seen->diffForHumans() : '',
+ 'raw' => $user->last_seen ? strtotime($user->last_seen) : ''];
})
->addColumn('actions', function (User $user) {
$suspendColor = $user->isSuspended() ? "btn-success" : "btn-warning";
@@ -331,9 +332,9 @@ class UserController extends Controller
->editColumn('name', function (User $user) {
return 'pterodactyl_id . '">' . strip_tags($user->name) . ' ';
})
- ->orderColumn('last_seen', function ($query) {
+ /*->orderColumn('last_seen', function ($query) {
$query->orderBy('last_seen', "desc");
- })
+ })*/
->rawColumns(['avatar', 'name', 'credits', 'role', 'usage', 'referrals', 'actions', 'last_seen'])
->make(true);
}
diff --git a/resources/views/admin/payments/index.blade.php b/resources/views/admin/payments/index.blade.php
index 6f907c36..2bd980a1 100644
--- a/resources/views/admin/payments/index.blade.php
+++ b/resources/views/admin/payments/index.blade.php
@@ -39,6 +39,7 @@
{{ __('ID') }}
{{ __('Type') }}
+ {{ __('User') }}
{{ __('Amount') }}
{{ __('Product Price') }}
{{ __('Tax Value') }}
@@ -76,6 +77,7 @@
columns: [
{data: 'id',name: 'payments.id'},
{data: 'type'},
+ {data: 'user', sortable: false},
{data: 'amount'},
{data: 'price'},
{data: 'tax_value'},
diff --git a/resources/views/admin/users/index.blade.php b/resources/views/admin/users/index.blade.php
index b3a0e87f..530f47de 100644
--- a/resources/views/admin/users/index.blade.php
+++ b/resources/views/admin/users/index.blade.php
@@ -90,10 +90,10 @@
{data: 'role'},
{data: 'email', name: 'users.email'},
{data: 'credits' , name : 'users.credits'},
- {data: 'servers' , sortable : false},
+ {data: 'servers'},
{data: 'referrals'},
{data: 'verified' , sortable : false},
- {data: 'last_seen'},
+ {data: 'last_seen', type: 'num', render: {_: 'display', sort: 'raw'}},
{data: 'actions' , sortable : false},
],
fnDrawCallback: function( oSettings ) {
From 12372b5071fb7c605bbc48528bb9404e3c323759 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Sat, 27 Aug 2022 19:53:14 +0200
Subject: [PATCH 003/128] add commission to index view
---
app/Http/Controllers/PartnerController.php | 3 +++
resources/views/admin/partners/index.blade.php | 2 ++
2 files changed, 5 insertions(+)
diff --git a/app/Http/Controllers/PartnerController.php b/app/Http/Controllers/PartnerController.php
index 7d11f417..bc546511 100644
--- a/app/Http/Controllers/PartnerController.php
+++ b/app/Http/Controllers/PartnerController.php
@@ -197,6 +197,9 @@ class PartnerController extends Controller
->editColumn('registered_user_discount', function (PartnerDiscount $partner) {
return $partner->registered_user_discount ? $partner->registered_user_discount . "%" : "0%";
})
+ ->editColumn('referral_system_commission', function (PartnerDiscount $partner) {
+ return $partner->referral_system_commission>=0 ? $partner->referral_system_commission . "%" : __('Default') . " (" . config("SETTINGS::REFERRAL:PERCENTAGE") . "%)";
+ })
->rawColumns(['user', 'actions'])
->make();
}
diff --git a/resources/views/admin/partners/index.blade.php b/resources/views/admin/partners/index.blade.php
index ae66aaf6..59369b01 100644
--- a/resources/views/admin/partners/index.blade.php
+++ b/resources/views/admin/partners/index.blade.php
@@ -42,6 +42,7 @@
{{__('User')}}
{{__('Partner discount')}}
{{__('Registered user discount')}}
+ {{__('Referral system commission')}}
{{__('Created')}}
{{__('Actions')}}
@@ -77,6 +78,7 @@
{data: 'user'},
{data: 'partner_discount'},
{data: 'registered_user_discount'},
+ {data: 'referral_system_commission'},
{data: 'created_at'},
{data: 'actions', sortable: false}
],
From 5a3259b891c3bf75de1027a90fbb82cd04df74ed Mon Sep 17 00:00:00 2001
From: ok236449
Date: Sat, 27 Aug 2022 19:55:53 +0200
Subject: [PATCH 004/128] this typo must have been here for long
---
resources/views/admin/vouchers/create.blade.php | 2 +-
resources/views/admin/vouchers/edit.blade.php | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/resources/views/admin/vouchers/create.blade.php b/resources/views/admin/vouchers/create.blade.php
index a1d576bf..4f28e191 100644
--- a/resources/views/admin/vouchers/create.blade.php
+++ b/resources/views/admin/vouchers/create.blade.php
@@ -14,7 +14,7 @@
{{__('Vouchers')}}
{{__('Create')}}
+ href="{{route('admin.vouchers.create')}}">{{__('Create')}}
diff --git a/resources/views/admin/vouchers/edit.blade.php b/resources/views/admin/vouchers/edit.blade.php
index df7d945b..11c7c5e3 100644
--- a/resources/views/admin/vouchers/edit.blade.php
+++ b/resources/views/admin/vouchers/edit.blade.php
@@ -14,7 +14,7 @@
{{__('Vouchers')}}
{{__('Edit')}}
+ href="{{route('admin.vouchers.edit' , $voucher->id)}}">{{__('Edit')}}
From d41a68c63ec8dbd2001d270863569d10c34ac137 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Sat, 27 Aug 2022 20:35:17 +0200
Subject: [PATCH 005/128] add discount to invoices
---
app/Http/Controllers/Admin/PaymentController.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php
index 4bc10bfe..df8fb10b 100644
--- a/app/Http/Controllers/Admin/PaymentController.php
+++ b/app/Http/Controllers/Admin/PaymentController.php
@@ -615,7 +615,7 @@ class PaymentController extends Controller
->name(__("Invoice"))
->buyer($customer)
->seller($seller)
- ->discountByPercent(0)
+ ->discountByPercent(PartnerDiscount::getDiscount())
->taxRate(floatval($shopProduct->getTaxPercent()))
->shipping(0)
->addItem($item)
From 8dbd4be6ce13e6f30d36c33b40eb2683008c0f11 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Fri, 14 Oct 2022 21:05:19 +0200
Subject: [PATCH 006/128] fix discount returning null and error 500
---
app/Models/PartnerDiscount.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/Models/PartnerDiscount.php b/app/Models/PartnerDiscount.php
index 1c49e00c..2917c486 100644
--- a/app/Models/PartnerDiscount.php
+++ b/app/Models/PartnerDiscount.php
@@ -27,7 +27,7 @@ class PartnerDiscount extends Model
if($partnerDiscount = PartnerDiscount::where('user_id', $ref_user->referral_id)->first()){
return $partnerDiscount->registered_user_discount;
}
- return $discountPercent = 0;
+ return 0;
}
}
public static function getCommission($user_id)
From 7537286d3ac87f558b44a2e810317efbede98063 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Fri, 14 Oct 2022 21:30:07 +0200
Subject: [PATCH 007/128] actually fixing it...
---
app/Models/PartnerDiscount.php | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/Models/PartnerDiscount.php b/app/Models/PartnerDiscount.php
index 2917c486..c2bea233 100644
--- a/app/Models/PartnerDiscount.php
+++ b/app/Models/PartnerDiscount.php
@@ -29,6 +29,7 @@ class PartnerDiscount extends Model
}
return 0;
}
+ return 0;
}
public static function getCommission($user_id)
{
From 63a30a1e57147d9b53f7476b06887062d40aa758 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Fri, 14 Oct 2022 22:59:02 +0200
Subject: [PATCH 008/128] Yearly tax overview, stop caching ticket overview
---
.../Controllers/Admin/OverViewController.php | 91 +++++++++++++------
.../Controllers/Admin/PaymentController.php | 4 +-
.../views/admin/overview/index.blade.php | 72 ++++++++++++++-
3 files changed, 137 insertions(+), 30 deletions(-)
diff --git a/app/Http/Controllers/Admin/OverViewController.php b/app/Http/Controllers/Admin/OverViewController.php
index 8d6e3dfa..88f00c1e 100644
--- a/app/Http/Controllers/Admin/OverViewController.php
+++ b/app/Http/Controllers/Admin/OverViewController.php
@@ -52,6 +52,19 @@ class OverViewController extends Controller
$counters['payments']['thisMonth']->timeEnd = Carbon::today()->toDateString();
$counters['payments']['lastMonth']->timeStart = Carbon::today()->startOfMonth()->subMonth()->toDateString();
$counters['payments']['lastMonth']->timeEnd = Carbon::today()->endOfMonth()->subMonth()->toDateString();
+
+
+ //Prepare subCollection 'taxPayments'
+ $counters->put('taxPayments', collect());
+ //Get and save taxPayments from last 2 years for later filtering and looping
+ $taxPayments = Payment::query()->where('created_at', '>=', Carbon::today()->startOfYear()->subYear())->where('status', 'paid')->get();
+ //Prepare collections and set a few variables
+ $counters['taxPayments']->put('thisYear', collect());
+ $counters['taxPayments']->put('lastYear', collect());
+ $counters['taxPayments']['thisYear']->timeStart = Carbon::today()->startOfYear()->toDateString();
+ $counters['taxPayments']['thisYear']->timeEnd = Carbon::today()->toDateString();
+ $counters['taxPayments']['lastYear']->timeStart = Carbon::today()->startOfYear()->subYear()->toDateString();
+ $counters['taxPayments']['lastYear']->timeEnd = Carbon::today()->endOfYear()->subYear()->toDateString();
//Fill out variables for each currency separately
foreach($payments->where('created_at', '>=', Carbon::today()->startOfMonth()) as $payment){
@@ -76,6 +89,35 @@ class OverViewController extends Controller
}
$counters['payments']->total = Payment::query()->count();
+ foreach($taxPayments->where('created_at', '>=', Carbon::today()->startOfYear()->subYear()) as $taxPayment){
+ $paymentCurrency = $payment->currency_code;
+ if(!isset($counters['taxPayments']['thisYear'][$paymentCurrency])){
+ $counters['taxPayments']['thisYear']->put($paymentCurrency, collect());
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->total = 0;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->count = 0;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->price = 0;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->taxes = 0;
+ }
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->total += $taxPayment->total_price;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->count ++;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->price += $taxPayment->price;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->taxes += $taxPayment->tax_value;
+ }
+ foreach($taxPayments->where('created_at', '<', Carbon::today()->startOfYear()) as $taxPayment){
+ $paymentCurrency = $payment->currency_code;
+ if(!isset($counters['taxPayments']['lastYear'][$paymentCurrency])){
+ $counters['taxPayments']['lastYear']->put($paymentCurrency, collect());
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->total = 0;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->count = 0;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->price = 0;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->taxes = 0;
+ }
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->total += $taxPayment->total_price;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->count ++;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->price += $taxPayment->price;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->taxes += $taxPayment->tax_value;
+ }
+
$lastEgg = Egg::query()->latest('updated_at')->first();
$syncLastUpdate = $lastEgg ? $lastEgg->updated_at->isoFormat('LLL') : __('unknown');
@@ -119,33 +161,30 @@ class OverViewController extends Controller
//Get latest tickets
- $tickets = Cache::remember('tickets', self::TTL, function(){
- $output = collect();
- foreach(Ticket::query()->latest()->take(3)->get() as $ticket){
- $output->put($ticket->ticket_id, collect());
- $output[$ticket->ticket_id]->title = $ticket->title;
- $user = User::query()->where('id', $ticket->user_id)->first();
- $output[$ticket->ticket_id]->user_id = $user->id;
- $output[$ticket->ticket_id]->user = $user->name;
- $output[$ticket->ticket_id]->status = $ticket->status;
- $output[$ticket->ticket_id]->last_updated = $ticket->updated_at->diffForHumans();
- switch ($ticket->status) {
- case 'Open':
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-success';
- break;
- case 'Closed':
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-danger';
- break;
- case 'Answered':
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-info';
- break;
- default:
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-warning';
- break;
- }
+ $tickets = collect();
+ foreach(Ticket::query()->latest()->take(5)->get() as $ticket){
+ $tickets->put($ticket->ticket_id, collect());
+ $tickets[$ticket->ticket_id]->title = $ticket->title;
+ $user = User::query()->where('id', $ticket->user_id)->first();
+ $tickets[$ticket->ticket_id]->user_id = $user->id;
+ $tickets[$ticket->ticket_id]->user = $user->name;
+ $tickets[$ticket->ticket_id]->status = $ticket->status;
+ $tickets[$ticket->ticket_id]->last_updated = $ticket->updated_at->diffForHumans();
+ switch ($ticket->status) {
+ case 'Open':
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-success';
+ break;
+ case 'Closed':
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-danger';
+ break;
+ case 'Answered':
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-info';
+ break;
+ default:
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-warning';
+ break;
}
- return $output;
- });
+ }
return view('admin.overview.index', [
'counters' => $counters,
diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php
index df8fb10b..c72a8ada 100644
--- a/app/Http/Controllers/Admin/PaymentController.php
+++ b/app/Http/Controllers/Admin/PaymentController.php
@@ -214,7 +214,7 @@ class PaymentController extends Controller
'type' => $shopProduct->type,
'status' => 'paid',
'amount' => $shopProduct->quantity,
- 'price' => $shopProduct->price,
+ 'price' => $shopProduct->price - ($shopProduct->price*PartnerDiscount::getDiscount()/100),
'tax_value' => $shopProduct->getTaxValue(),
'tax_percent' => $shopProduct->getTaxPercent(),
'total_price' => $shopProduct->getTotalPrice(),
@@ -377,7 +377,7 @@ class PaymentController extends Controller
'type' => $shopProduct->type,
'status' => 'paid',
'amount' => $shopProduct->quantity,
- 'price' => $shopProduct->price,
+ 'price' => $shopProduct->price - ($shopProduct->price*PartnerDiscount::getDiscount()/100),
'tax_value' => $shopProduct->getTaxValue(),
'total_price' => $shopProduct->getTotalPrice(),
'tax_percent' => $shopProduct->getTaxPercent(),
diff --git a/resources/views/admin/overview/index.blade.php b/resources/views/admin/overview/index.blade.php
index d7c70c7e..21983781 100644
--- a/resources/views/admin/overview/index.blade.php
+++ b/resources/views/admin/overview/index.blade.php
@@ -243,6 +243,7 @@
+
@@ -266,7 +267,7 @@
{{__('Currency')}}
{{__('Number of payments')}}
- {{__('Total income')}}
+ {{__('Total amount')}}
@@ -291,7 +292,7 @@
{{__('Currency')}}
{{__('Number of payments')}}
- {{__('Total income')}}
+ {{__('Total amount')}}
@@ -310,6 +311,73 @@
+
+
+
+
{{__('Last year')}}:
+
+
+
+
+
+ {{__('Currency')}}
+ {{__('Number of payments')}}
+ {{__('Base amount')}}
+ {{__('Total taxes')}}
+ {{__('Total amount')}}
+
+
+
+ @foreach($counters['taxPayments']['lastYear'] as $currency => $income)
+
+ {{$currency}}
+ {{$income->count}}
+ {{$income->price}}
+ {{$income->taxes}}
+ {{$income->total}}
+
+ @endforeach
+
+
+
+
{{__('This year')}}:
+
+
+
+
+
+ {{__('Currency')}}
+ {{__('Number of payments')}}
+ {{__('Base amount')}}
+ {{__('Total taxes')}}
+ {{__('Total amount')}}
+
+
+
+ @foreach($counters['taxPayments']['thisYear'] as $currency => $income)
+
+ {{$currency}}
+ {{$income->count}}
+ {{$income->price}}
+ {{$income->taxes}}
+ {{$income->total}}
+
+ @endforeach
+
+
+
+
+
From 47afdd2f19e9df2559973ae5560634c685f72af0 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Fri, 14 Oct 2022 23:09:16 +0200
Subject: [PATCH 009/128] Hide sections if there are no data
---
.../views/admin/overview/index.blade.php | 114 +++++++++---------
1 file changed, 60 insertions(+), 54 deletions(-)
diff --git a/resources/views/admin/overview/index.blade.php b/resources/views/admin/overview/index.blade.php
index 21983781..eaddb308 100644
--- a/resources/views/admin/overview/index.blade.php
+++ b/resources/views/admin/overview/index.blade.php
@@ -256,32 +256,36 @@
-
-
{{__('Last month')}}:
-
-
-
-
-
- {{__('Currency')}}
- {{__('Number of payments')}}
- {{__('Total amount')}}
-
-
-
- @foreach($counters['payments']['lastMonth'] as $currency => $income)
-
- {{$currency}}
- {{$income->count}}
- {{$income->total}}
-
- @endforeach
-
-
-
-
+ @if($counters['payments']['lastMonth']->count())
+
+
{{__('Last month')}}:
+
+
+
+
+
+ {{__('Currency')}}
+ {{__('Number of payments')}}
+ {{__('Total amount')}}
+
+
+
+ @foreach($counters['payments']['lastMonth'] as $currency => $income)
+
+ {{$currency}}
+ {{$income->count}}
+ {{$income->total}}
+
+ @endforeach
+
+
+
+
+ @endif
+ @if($counters['payments']['lastMonth']->count())
+ @else
@endif
{{__('This month')}}:
-
{{__('Last year')}}:
-
-
-
-
-
- {{__('Currency')}}
- {{__('Number of payments')}}
- {{__('Base amount')}}
- {{__('Total taxes')}}
- {{__('Total amount')}}
-
-
-
- @foreach($counters['taxPayments']['lastYear'] as $currency => $income)
-
- {{$currency}}
- {{$income->count}}
- {{$income->price}}
- {{$income->taxes}}
- {{$income->total}}
-
- @endforeach
-
-
-
+ @if($counters['taxPayments']['lastYear']->count())
+
{{__('Last year')}}:
+
+
+
+
+
+ {{__('Currency')}}
+ {{__('Number of payments')}}
+ {{__('Base amount')}}
+ {{__('Total taxes')}}
+ {{__('Total amount')}}
+
+
+
+ @foreach($counters['taxPayments']['lastYear'] as $currency => $income)
+
+ {{$currency}}
+ {{$income->count}}
+ {{$income->price}}
+ {{$income->taxes}}
+ {{$income->total}}
+
+ @endforeach
+
+
+
+ @endif
{{__('This year')}}:
Date: Tue, 18 Oct 2022 17:35:10 +0200
Subject: [PATCH 010/128] Show referral system on homepage, partnerships
---
app/Http/Controllers/HomeController.php | 7 +-
resources/views/home.blade.php | 117 +++++++++++++++++++++++-
2 files changed, 120 insertions(+), 4 deletions(-)
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index 27ff778b..472d0345 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -2,9 +2,11 @@
namespace App\Http\Controllers;
+use App\Models\PartnerDiscount;
use App\Models\UsefulLink;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;
@@ -105,7 +107,10 @@ class HomeController extends Controller
'useful_links' => UsefulLink::all()->sortBy('id'),
'bg' => $bg,
'boxText' => $boxText,
- 'unit' => $unit
+ 'unit' => $unit,
+ 'numberOfReferrals' => DB::table('user_referrals')->where("referral_id","=",Auth::user()->id)->count(),
+ 'partnerDiscount' => PartnerDiscount::where('user_id', Auth::user()->id)->first(),
+ 'myDiscount' => PartnerDiscount::getDiscount()
]);
}
}
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index 407b127d..8b1d1acf 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -140,8 +140,7 @@
- @foreach (Auth::user()->actions()->take(8)->orderBy('created_at', 'desc')->get()
- as $log)
+ @foreach (Auth::user()->actions()->take(8)->orderBy('created_at', 'desc')->get() as $log)
@if(str_starts_with($log->description,"created"))
@@ -168,6 +167,82 @@
+ @if((config('SETTINGS::REFERRAL::ENABLED') ==true))
+
+
+
+
+ @if((config('SETTINGS::REFERRAL::ALLOWED') == "client" && Auth::user()->role != "member") || config('SETTINGS::REFERRAL::ALLOWED') == "everyone")
+
+
+
+
+ {{_("Your referral URL")}}:
+
+ {{__('Click to copy')}}
+
+
+
+
+ {{__("Number of referred users:")}} {{$numberOfReferrals}}
+
+
+ @if($partnerDiscount)
+
+
+
+
+ {{__('Your discount')}}
+ {{__('Discount for your new users')}}
+ {{__('Reward per registered user')}}
+ {{__('New user payment commision')}}
+
+
+
+
+ {{$partnerDiscount->partner_discount}}%
+ {{$partnerDiscount->registered_user_discount}}%
+ {{config('SETTINGS::REFERRAL::REWARD')}} {{config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME')}}
+ {{($partnerDiscount->referral_system_commission==-1)?config('SETTINGS::REFERRAL:PERCENTAGE'):($partnerDiscount->referral_system_commission)}}%
+
+
+
+
+ @else
+
+
+
+
+ {{__('Your discount')}}
+ {{__('Reward per registered user')}}
+ {{__('New user payment commision')}}
+
+
+
+
+ {{$myDiscount}}%
+ {{config('SETTINGS::REFERRAL::REWARD')}} {{config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME')}}
+ {{config('SETTINGS::REFERRAL:PERCENTAGE')}}%
+
+
+
+
+ @endif
+ @else
+
+ {{_("Make a purchase to reveal your referral-URL")}}
+ @endif
+
+
+
+ @endif
+
@@ -176,5 +251,41 @@
-
+
@endsection
From b69850cb2186d948f24a72bd24d18fae072b85d7 Mon Sep 17 00:00:00 2001
From: ok236449
Date: Tue, 18 Oct 2022 21:56:26 +0200
Subject: [PATCH 011/128] remove discount field without partnership
---
resources/views/home.blade.php | 2 --
1 file changed, 2 deletions(-)
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index 8b1d1acf..1b04b86e 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -218,14 +218,12 @@
- {{__('Your discount')}}
{{__('Reward per registered user')}}
{{__('New user payment commision')}}
- {{$myDiscount}}%
{{config('SETTINGS::REFERRAL::REWARD')}} {{config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME')}}
{{config('SETTINGS::REFERRAL:PERCENTAGE')}}%
From 86cf2981c132f537aae48ccd415eac680ca8a3ee Mon Sep 17 00:00:00 2001
From: ok236449
Date: Tue, 18 Oct 2022 23:33:33 +0200
Subject: [PATCH 012/128] commission from first/every purchase
---
app/Classes/Settings/Misc.php | 2 ++
.../Controllers/Admin/PaymentController.php | 18 +++++++++++++++++-
database/seeders/Seeds/SettingsSeeder.php | 7 +++++++
.../views/admin/settings/tabs/misc.blade.php | 14 ++++++++++++++
4 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/app/Classes/Settings/Misc.php b/app/Classes/Settings/Misc.php
index 1b67b562..496bac73 100644
--- a/app/Classes/Settings/Misc.php
+++ b/app/Classes/Settings/Misc.php
@@ -40,6 +40,7 @@ class Misc
'enable_referral' => 'nullable|string',
'referral_reward' => 'nullable|numeric',
'referral_allowed' => 'nullable|string',
+ 'always_give_commission' => 'nullable|string',
'referral_percentage' => 'nullable|numeric',
'referral_mode' => 'nullable|string',
'ticket_enabled' => 'nullable|string',
@@ -87,6 +88,7 @@ class Misc
"SETTINGS::REFERRAL::REWARD" => "referral_reward",
"SETTINGS::REFERRAL::ALLOWED" => "referral_allowed",
"SETTINGS::REFERRAL:MODE" => "referral_mode",
+ "SETTINGS::REFERRAL::ALWAYS_GIVE_COMMISSION" => "always_give_commission",
"SETTINGS::REFERRAL:PERCENTAGE" => "referral_percentage",
"SETTINGS::TICKET:ENABLED" => "ticket_enabled"
diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php
index c72a8ada..30f03085 100644
--- a/app/Http/Controllers/Admin/PaymentController.php
+++ b/app/Http/Controllers/Admin/PaymentController.php
@@ -184,12 +184,28 @@ class PaymentController extends Controller
$user->increment('server_limit', $shopProduct->quantity);
}
+ //give referral commission always
+ if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both") && $shopProduct->type=="Credits" && config("SETTINGS::REFERRAL::ALWAYS_GIVE_COMMISSION") == "true"){
+ if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', $user->id)->first()){
+ $ref_user = User::findOrFail($ref_user->referral_id);
+ $increment = number_format($shopProduct->quantity*(PartnerDiscount::getCommission($ref_user->id))/100,0,"","");
+ $ref_user->increment('credits', $increment);
+
+ //LOGS REFERRALS IN THE ACTIVITY LOG
+ activity()
+ ->performedOn($user)
+ ->causedBy($ref_user)
+ ->log('gained '. $increment.' '.config("SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME").' for commission-referral of '.$user->name.' (ID:'.$user->id.')');
+ }
+
+ }
//update role give Referral-reward
if ($user->role == 'member') {
$user->update(['role' => 'client']);
- if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both") && $shopProduct->type=="Credits"){
+ //give referral commission only on first purchase
+ if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both") && $shopProduct->type=="Credits" && config("SETTINGS::REFERRAL::ALWAYS_GIVE_COMMISSION") == "false"){
if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', $user->id)->first()){
$ref_user = User::findOrFail($ref_user->referral_id);
$increment = number_format($shopProduct->quantity*(PartnerDiscount::getCommission($ref_user->id))/100,0,"","");
diff --git a/database/seeders/Seeds/SettingsSeeder.php b/database/seeders/Seeds/SettingsSeeder.php
index 4e9dc12d..1df1698e 100644
--- a/database/seeders/Seeds/SettingsSeeder.php
+++ b/database/seeders/Seeds/SettingsSeeder.php
@@ -479,6 +479,13 @@ class SettingsSeeder extends Seeder
'type' => 'string',
'description' => 'Enable or disable the referral system'
]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::REFERRAL::ALWAYS_GIVE_COMMISSION',
+ ], [
+ 'value' =>"false",
+ 'type' => 'string',
+ 'description' => 'Whether referrals get percentage commission only on first purchase or on every purchase'
+ ]);
Settings::firstOrCreate([
'key' => 'SETTINGS::REFERRAL::REWARD',
], [
diff --git a/resources/views/admin/settings/tabs/misc.blade.php b/resources/views/admin/settings/tabs/misc.blade.php
index cb40de2d..d6707121 100644
--- a/resources/views/admin/settings/tabs/misc.blade.php
+++ b/resources/views/admin/settings/tabs/misc.blade.php
@@ -222,6 +222,20 @@
+
+
+
+
+ {{ __('Always give commission') }}:
+
+
+
+
+
+
{{ __('Mode') }}:
Date: Fri, 21 Oct 2022 22:10:34 +0200
Subject: [PATCH 013/128] fix single underscore
---
resources/views/home.blade.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index 1b04b86e..bd4a60cb 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -234,7 +234,7 @@
@else
- {{_("Make a purchase to reveal your referral-URL")}}
+ {{__("Make a purchase to reveal your referral-URL")}}
@endif
From e4b2c2ad6b245c4287d6d7b36f3c889e5e8c1bce Mon Sep 17 00:00:00 2001
From: ok236449
Date: Fri, 21 Oct 2022 22:15:07 +0200
Subject: [PATCH 014/128] fix second single underscore
---
resources/views/home.blade.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index bd4a60cb..e7c90b95 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -182,7 +182,7 @@
- {{_("Your referral URL")}}:
+ {{__("Your referral URL")}}:
{{__('Click to copy')}}
From 5d18b360830ec92b03a13e8893c8365447b70367 Mon Sep 17 00:00:00 2001
From: IceToast <>
Date: Thu, 22 Dec 2022 22:28:52 +0100
Subject: [PATCH 015/128] feat: added new settings
---
app/Classes/Settings/System.php | 4 +
database/seeders/Seeds/SettingsSeeder.php | 16 ++-
.../admin/settings/tabs/system.blade.php | 116 +++++++++++-------
3 files changed, 92 insertions(+), 44 deletions(-)
diff --git a/app/Classes/Settings/System.php b/app/Classes/Settings/System.php
index ed85b3b8..e217b987 100644
--- a/app/Classes/Settings/System.php
+++ b/app/Classes/Settings/System.php
@@ -46,6 +46,8 @@ public function checkPteroClientkey(){
"pterodactyl-admin-api-key" => "required|string",
"enable-upgrades" => "string",
"enable-disable-servers" => "string",
+ "show-imprint" => "string",
+ "show-privacy" => "string",
]);
$validator->after(function ($validator) use ($request) {
@@ -87,6 +89,8 @@ public function checkPteroClientkey(){
"SETTINGS::SYSTEM:ENABLE_UPGRADE" => "enable-upgrade",
"SETTINGS::SYSTEM:CREATION_OF_NEW_SERVERS" => "enable-disable-servers",
"SETTINGS::SYSTEM:CREATION_OF_NEW_USERS" => "enable-disable-new-users",
+ "SETTINGS::SYSTEM:SHOW_IMPRINT" => "show-imprint",
+ "SETTINGS::SYSTEM:SHOW_PRIVACY" => "show-privacy",
];
diff --git a/database/seeders/Seeds/SettingsSeeder.php b/database/seeders/Seeds/SettingsSeeder.php
index 9e6f0035..6a6479ef 100644
--- a/database/seeders/Seeds/SettingsSeeder.php
+++ b/database/seeders/Seeds/SettingsSeeder.php
@@ -532,9 +532,23 @@ class SettingsSeeder extends Seeder
Settings::firstOrCreate([
'key' => 'SETTINGS::SYSTEM:CREATION_OF_NEW_USERS',
], [
- 'value' => "true",
+ 'value' => "false",
'type' => 'boolean',
'description' => 'Enable/disable the creation of new users'
]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:SHOW_IMPRINT',
+ ], [
+ 'value' => "true",
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable imprint in footer'
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:SHOW_PRIVACY',
+ ], [
+ 'value' => "true",
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable privacy policy in footer'
+ ]);
}
}
diff --git a/resources/views/admin/settings/tabs/system.blade.php b/resources/views/admin/settings/tabs/system.blade.php
index c74c7999..fcfc19d5 100644
--- a/resources/views/admin/settings/tabs/system.blade.php
+++ b/resources/views/admin/settings/tabs/system.blade.php
@@ -13,6 +13,32 @@
@@ -241,31 +270,31 @@
data-content="{{ __('The maximum amount of allocations to pull per node for automatic deployment, if more allocations are being used than this limit is set to, no new servers can be created!') }}"
class="fas fa-info-circle">
-
- {{-- Design --}}
-
-
-
-
{{ __('Design') }}
-
-
-
-
-
{{ __('Enable Logo on Loginpage') }}
+ {{-- Design --}}
+
+
+
+
+ {{ __('Enable Logo on Loginpage') }}
+
-
-
- {{ __('Submit') }}
-
+
+
+ {{ __('Submit') }}
+
From 3edff8f6fcf34b66cd3cf40d2202af7655f01faa Mon Sep 17 00:00:00 2001
From: IceToast <>
Date: Thu, 22 Dec 2022 22:30:09 +0100
Subject: [PATCH 016/128] feat: Added Imprint and Privacy Page & Links
---
resources/views/auth/login.blade.php | 224 ++++++++-------
.../views/auth/passwords/email.blade.php | 94 ++++---
.../views/auth/passwords/reset.blade.php | 151 +++++-----
resources/views/auth/register.blade.php | 156 ++++++-----
resources/views/imprint-content.blade.php | 48 ++++
resources/views/imprint.blade.php | 22 ++
resources/views/layouts/app.blade.php | 32 ++-
resources/views/layouts/main.blade.php | 148 +++++-----
resources/views/privacy-content.blade.php | 261 ++++++++++++++++++
resources/views/privacy.blade.php | 21 ++
routes/web.php | 8 +
11 files changed, 811 insertions(+), 354 deletions(-)
create mode 100644 resources/views/imprint-content.blade.php
create mode 100644 resources/views/imprint.blade.php
create mode 100644 resources/views/privacy-content.blade.php
create mode 100644 resources/views/privacy.blade.php
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
index ce5a30b9..732fd414 100644
--- a/resources/views/auth/login.blade.php
+++ b/resources/views/auth/login.blade.php
@@ -1,121 +1,137 @@
@extends('layouts.app')
@section('content')
+
-
-
-
-
-
-
{{__('Sign in to start your session')}}
+
+
+
+
+
+
{{ __('Sign in to start your session') }}
- @if (session('message'))
-
{{ session('message') }}
- @endif
-
-
+
+
+
+
+
+
+
+ @include('privacy-content')
+
+
+
+
+