53 lines
2.0 KiB
PHP
53 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Portal\Http\Controllers\Marketer;
|
|
|
|
use App\Utils\BusinessUtil;
|
|
use App\Utils\TransactionUtil;
|
|
use Carbon\Carbon;
|
|
use Modules\Portal\Http\Controllers\BasePortalController;
|
|
|
|
class CommissionController extends BasePortalController
|
|
{
|
|
public function __construct(
|
|
protected TransactionUtil $transactionUtil,
|
|
protected BusinessUtil $businessUtil
|
|
) {}
|
|
|
|
public function index()
|
|
{
|
|
$business_id = $this->businessId();
|
|
$user_id = auth()->id();
|
|
$start = Carbon::now()->startOfMonth()->toDateString();
|
|
$end = Carbon::now()->endOfMonth()->toDateString();
|
|
$prev_start = Carbon::now()->subMonth()->startOfMonth()->toDateString();
|
|
$prev_end = Carbon::now()->subMonth()->endOfMonth()->toDateString();
|
|
|
|
$commission_percent = auth()->user()->cmmsn_percent ?? 0;
|
|
$current = $this->transactionUtil->getTotalSellCommission($business_id, $start, $end, null, $user_id);
|
|
$previous = $this->transactionUtil->getTotalSellCommission($business_id, $prev_start, $prev_end, null, $user_id);
|
|
|
|
$current_commission = ($commission_percent * ($current['total_sales_with_commission'] ?? 0)) / 100;
|
|
$previous_commission = ($commission_percent * ($previous['total_sales_with_commission'] ?? 0)) / 100;
|
|
|
|
$sales_targets = [];
|
|
if (class_exists(\Modules\Essentials\Entities\EssentialsUserSalesTarget::class)) {
|
|
$sales_targets = \Modules\Essentials\Entities\EssentialsUserSalesTarget::where('user_id', $user_id)
|
|
->orderBy('target_start')
|
|
->get();
|
|
}
|
|
|
|
$achievement = $this->transactionUtil->getUserTotalSales($business_id, $user_id, $start, $end);
|
|
|
|
return view('portal::marketer.commission.index', compact(
|
|
'commission_percent',
|
|
'current',
|
|
'previous',
|
|
'current_commission',
|
|
'previous_commission',
|
|
'sales_targets',
|
|
'achievement'
|
|
));
|
|
}
|
|
}
|