create report views

This commit is contained in:
2025-01-22 11:25:57 +03:30
parent 03fd210671
commit e6dcd36fc9
5 changed files with 222 additions and 54 deletions

View File

@@ -2,7 +2,7 @@
namespace App\Services\Reports;
use App\Enums\InfoItem;
use App\Models\InfoItem;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
@@ -11,15 +11,15 @@ class RoadItemReportService
{
public function countryActivityPerSubItem(int $item, string $fromDate, string $toDate): Collection
{
$subItems = InfoItem::subItems($item);
$subItems = InfoItem::query()->where('item', $item)->get(['sub_item', 'sub_item_str']);
$query = DB::table('road_items_projects')
->selectRaw('province_id, province_fa');
foreach ($subItems as $key => $name) {
foreach ($subItems as $subItem) {
$query->selectRaw("
COUNT(CASE WHEN sub_item = {$key} THEN 1 END) as {$name}Count,
SUM(CASE WHEN sub_item = {$key} THEN sub_item_data END) as {$name}Sum
COUNT(CASE WHEN sub_item = {$subItem->sub_item} THEN 1 END) as Count_{$subItem->sub_item},
SUM(CASE WHEN sub_item = {$subItem->sub_item} THEN sub_item_data END) as Sum_{$subItem->sub_item}
");
}
@@ -35,6 +35,7 @@ class RoadItemReportService
'data' => $activities,
'fromDate' => $fromDate,
'toDate' => $toDate,
'titles' => $subItems->pluck('sub_item_str')
]);
}