diff --git a/app/Domains/Stats/Services/CompanyReportService.php b/app/Domains/Stats/Services/CompanyReportService.php index fdf74f68..7c073dd7 100644 --- a/app/Domains/Stats/Services/CompanyReportService.php +++ b/app/Domains/Stats/Services/CompanyReportService.php @@ -40,26 +40,25 @@ class CompanyReportService extends Service 'company_id', 'package_id', 'type', - DB::raw("MAX(order_id) as order_id"), - DB::raw('COUNT(id) as counts'), + 'virtual_orders.unit_price as unit_price', + DB::raw('SUM(counts) as counts'), ]; $query = $this->orderCardPartitionRepository->select($select) ->withConditions($conditions) - ->groupBy(['company_id', 'package_id', 'type']) + ->leftJoin('virtual_orders', 'virtual_orders.id', '=', 'order_id') + ->groupBy(['company_id', 'package_id', 'type', 'virtual_orders.unit_price']) ->orderBy('company_id')->orderBy('type')->orderBy('package_id'); $res = $query->paginate($conditions['limit']); - $res->load('order:id,unit_price'); - $res->map(function ($item) { $company = app(CompanyService::class)->load($item->company_id); $package = app(PackageService::class)->load($item->package_id); $item->company_name = $company['name']; $item->package_name = $package['name']; $item->service_months = $package['service_months'] ?? 1; - $item->unit_price = sprintf('%.02f', $item->order['unit_price']/100); + $item->unit_price = sprintf('%.02f', $item->unit_price/100); $item->month_price = sprintf('%.02f', $item->unit_price/$item->service_months); $item->total_price = sprintf('%.02f', $item->month_price*$item->counts); $item->type_name = self::$typeNames[$item->type];