add detail to api
This commit is contained in:
@@ -11,10 +11,10 @@ class RoadItemReportService
|
||||
{
|
||||
public function countryActivityPerSubItem(int $item, string $fromDate, string $toDate): Collection
|
||||
{
|
||||
$subItems = InfoItem::query()->where('item', $item)->get(['sub_item', 'sub_item_str']);
|
||||
$subItems = InfoItem::query()->where('item', $item)->get(['sub_item', 'sub_item_str', 'sub_item_unit']);
|
||||
|
||||
$query = DB::table('road_items_projects')
|
||||
->selectRaw('province_id, province_fa');
|
||||
->selectRaw('province_id, province_fa, sub_item');
|
||||
|
||||
foreach ($subItems as $subItem) {
|
||||
$query->selectRaw("
|
||||
@@ -31,25 +31,36 @@ class RoadItemReportService
|
||||
|
||||
$activities = $query->get();
|
||||
|
||||
$totalItemCount = [
|
||||
'province_fa' => 'کشوری'
|
||||
];
|
||||
|
||||
foreach ($subItems as $subItem) {
|
||||
$totalItemCount = [
|
||||
"total_count_{$subItem->sub_item}" => $activities->sum("Count_{$subItem->sub_item}"),
|
||||
"total_sum_{$subItem->sub_item}" => $activities->sum("Sum_{$subItem->sub_item}"),
|
||||
];
|
||||
}
|
||||
|
||||
return collect([
|
||||
'data' => $activities,
|
||||
'data' => $activities->push($totalItemCount),
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate,
|
||||
'titles' => $subItems->pluck('sub_item_str')
|
||||
'details' => $subItems,
|
||||
]);
|
||||
}
|
||||
|
||||
public function provinceActivityPerSubItem(int $item, string $fromDate, string $toDate, int $provinceId): Collection
|
||||
{
|
||||
$subItems = InfoItem::subItems($item);
|
||||
$subItems = InfoItem::query()->where('item', $item)->get(['sub_item', 'sub_item_str', 'sub_item_unit']);
|
||||
|
||||
$query = DB::table('road_items_projects')
|
||||
->selectRaw('province_id, province_fa, user_name as city_fa, city_id');
|
||||
|
||||
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}
|
||||
");
|
||||
}
|
||||
|
||||
@@ -66,6 +77,7 @@ class RoadItemReportService
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate,
|
||||
'details' => $subItems
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user