ultimatepos/Modules/Portal/Http/Controllers/Marketer/CommissionController.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'
));
}
}