create report views
This commit is contained in:
@@ -26,52 +26,77 @@ enum InfoItem: int
|
||||
public static function subItems(int $item): array
|
||||
{
|
||||
$subitems = [
|
||||
1 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
2 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
3 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
4 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
5 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
6 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
7 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
8 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
9 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
10 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
11 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
12 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
13 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
14 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
15 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
16 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
17 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
20 => [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],
|
||||
1 => [1 => 'LabeAsphalt', 2 => 'ShaneSazi', 3 => 'GodOftadegi', 4 => 'Lakegiri',
|
||||
5 => 'Maremat', 6 => 'BastarHarim', 8 => 'Darzgiri', 9 => 'Mozres',
|
||||
10 => 'TarashRooye', 11 => 'Tighzani', 12 => 'Shenrizi', 13 => 'Khakbardari',
|
||||
14 => 'TaranesheBardary'
|
||||
],
|
||||
|
||||
2 => [1 => 'PaksaziSathRah', 2 => 'TanfieAbro', 3 => 'PaksaziLashe', 4 => 'PaksaziGhono',
|
||||
5 => 'PaksaziTasadofat', 6 => 'AlafKani', 7 => 'PaksaziHarim', 8 => 'JamavariGhateat',
|
||||
9 => 'PaksaziParking', 10 => 'PaksaziKenarGharnizPol', 11 => 'PaksaziJazire',
|
||||
12 => 'PaksaziTanfieDakhelPol', 13 => 'PaksaziSifon', 14 => 'PaksaziShakheDerakhtan', 15 => 'PaksaziMavadNafti',
|
||||
16 => 'AlafKaniDasti', 17 => 'RizeshBardari', 18 => 'JamavariSang', 19 => 'Layeroobi'
|
||||
],
|
||||
|
||||
3 => [1 => 'TabloEkhtari', 2 => 'TabloEtelati', 3 => 'Shabrang', 4 => 'Baztab', 5 => 'TavizTablo',
|
||||
6 => 'Maremat', 7 => 'EslahKajShodegi', 8 => 'NasbAlaemMovaghat', 9 => 'ShibShirvani'
|
||||
],
|
||||
|
||||
4 => [1 => 'Miani', 2 => 'Pol', 3 => 'Behsazi'],
|
||||
|
||||
5 => [1 => 'NegahdariTool', 2 => 'NegahdariHashieh', 3 => 'NegahdariNoghteyi', 4 => 'NegahdariNavahi',
|
||||
5 => 'NegahdariMehgir', 6 => 'NegahdariToonel', 7 => 'TamiratCable', 8 => 'TamiratKaleCheragh',
|
||||
9 => 'TamiratMafselzani', 10 => 'TamiratTablo', 11 => 'TamiratBorjNoori'
|
||||
],
|
||||
|
||||
6 => [1 => 'KhatkeshiRangGarm', 2 => 'KhatkeshiRangSard', 3 => 'TarsimKhat',
|
||||
4 => 'EjrayeTooli', 5 => 'EjrayeArzi', 6 => 'PakKardanKhotoot'
|
||||
],
|
||||
|
||||
7 => [1 => 'RangamiziTablo', 2 => 'RangamiziCheraq', 3 => 'RangimiziPayeRoshanayi', 4 => 'RangamiziPol',
|
||||
5 => 'RangamiziDarvazi', 6 => 'RangamiziHefazFelezi', 7 => 'RangamiziNewjersi', 8 => 'RangamiziSoratgah', 9 => 'RangamiziPaye'
|
||||
],
|
||||
|
||||
8 => [1 => 'ShosteshooAlaem', 2 => 'ShosteshooTablo', 3 => 'ShosteshooJadval', 4 => 'ShosteshooNewjersi',
|
||||
5 => 'ShosteshooGuardrail', 6 => 'ShosteshooToonel', 7 => 'ShosteshooPol'
|
||||
],
|
||||
|
||||
9 => [1 => 'ImensaziSarguard', 4 => ' TamiratCheraq', 5 => 'IjadShiar',
|
||||
6 => 'Zarbegir', 7 => 'NasbSoratgir', 8 => 'IjadLarzanande',
|
||||
9 => 'OstevaneImeni', 11 => 'EhdasSoratgir', 12 => 'EjrayeNoghteyi',
|
||||
13 => 'EjrayeTooli', 14 => 'TarizMaghtaei', 15 => 'HazfMavane', 16 => 'DivarChini'
|
||||
],
|
||||
|
||||
10 => [4 => 'BarkhordBaDastfroosh', 5 => 'JamavariTabloo', 6 => 'JamavariBanner'],
|
||||
|
||||
11 => [1 => 'EhdasGharnizPol', 2 => 'Lole', 3 => 'Tatvil', 4 => 'Bazsazi',
|
||||
5 => 'TamiratAbro', 6 => 'Maremat', 7 => 'Radie'
|
||||
],
|
||||
|
||||
12 => [1 => 'Zehkeshi', 2 => 'Maremat', 3 => 'Lining', 4 => 'TamirGallery',
|
||||
5 => 'Gabarit', 6 => 'Doorbin', 7 => 'Tahvie'
|
||||
],
|
||||
|
||||
13 => [1 => 'Yakhzodaei', 2 => 'BarfRoobi',
|
||||
5 => 'MizanNamak', 7 => 'Mosaferin', 8 => 'KomakResani'
|
||||
],
|
||||
|
||||
14 => [1 => 'BenzinMasrafi', 2 => 'GazMasrafi', 3 => 'MavadNafti', 4 => 'Bazsazi',
|
||||
8 => 'Service', 9 => 'NamakPash', 10 => 'Jabejayi'
|
||||
],
|
||||
|
||||
15 => [1 => 'Tamirat', 3 => 'Jalasat'],
|
||||
|
||||
16 => [1 => 'Paksazi', 2 => 'Taradod', 3 => 'BargharariErtebat', 4 => 'AbBordegi',
|
||||
5 => 'ShekastegiPol', 6 => 'HedayatTraffici', 7 => 'Bozgoshaei', 8 => 'Jabejayi', 9 => 'Laghgiri'
|
||||
],
|
||||
|
||||
20 => [1 => 'AbniyeFani', 2 => 'Alaem', 3 => 'Taranshe', 4 => 'RoyeAphalt',
|
||||
5 => 'HarimRah', 6 => 'MashinAlat'],
|
||||
|
||||
];
|
||||
|
||||
return $subitems[$item];
|
||||
}
|
||||
|
||||
public static function persianName(int $item): string
|
||||
{
|
||||
$persianName = [
|
||||
1 => '',
|
||||
2 => '',
|
||||
3 => '',
|
||||
4 => '',
|
||||
5 => '',
|
||||
6 => '',
|
||||
7 => '',
|
||||
8 => '',
|
||||
9 => '',
|
||||
10 => '',
|
||||
11 => '',
|
||||
12 => '',
|
||||
13 => '',
|
||||
14 => '',
|
||||
15 => '',
|
||||
16 => '',
|
||||
17 => '',
|
||||
20 => '',
|
||||
];
|
||||
|
||||
return $persianName[$item];
|
||||
}
|
||||
}
|
||||
@@ -43,7 +43,7 @@ class CountryActivityPerItemReport implements FromView, WithEvents, ShouldAutoSi
|
||||
COUNT(CASE WHEN item = 16 THEN 1 END) AS EmergencyCount,
|
||||
province_fa,
|
||||
province_id,
|
||||
COUNT(CASE WHEN item != -1 THEN 1 END) AS TotalCount
|
||||
COUNT(CASE WHEN item != -1 THEN 1 END) AS TotalProvinceCount
|
||||
FROM (
|
||||
SELECT
|
||||
province_fa,
|
||||
@@ -56,10 +56,31 @@ class CountryActivityPerItemReport implements FromView, WithEvents, ShouldAutoSi
|
||||
WHERE status = 1
|
||||
GROUP BY province_id, province_fa;";
|
||||
|
||||
$countryActivities = DB::select($query);
|
||||
$provinceActivities = collect(DB::select($query));
|
||||
|
||||
return view('', [
|
||||
'activities' => $countryActivities,
|
||||
$totalItemCount = [
|
||||
'totalMarematRooyeCount' => $provinceActivities->sum('MarematRooyeCount'),
|
||||
'totalPaksaziCount' => $provinceActivities->sum('PaksaziCount'),
|
||||
'totalAlaemCount' => $provinceActivities->sum('AlaemCount'),
|
||||
'totalHefazCount' => $provinceActivities->sum('HefazCount'),
|
||||
'totalRoshanayiCount' => $provinceActivities->sum('RoshanayiCount'),
|
||||
'totalKhatkeshiCount' => $provinceActivities->sum('KhatkeshiCount'),
|
||||
'totalRangamiziCount' => $provinceActivities->sum('RangamiziCount'),
|
||||
'totalWashingCount' => $provinceActivities->sum('WashingCount'),
|
||||
'totalImenSaziCount' => $provinceActivities->sum('ImenSaziCount'),
|
||||
'totalHarimCount' => $provinceActivities->sum('HarimCount'),
|
||||
'totalPolCount' => $provinceActivities->sum('PolCount'),
|
||||
'totalToonelCount' => $provinceActivities->sum('ToonelCount'),
|
||||
'totalAmaliatZemestaniCount' => $provinceActivities->sum('AmaliatZemestaniCount'),
|
||||
'totalMashinAlatCount' => $provinceActivities->sum('MashinAlatCount'),
|
||||
'totalTollhouseCount' => $provinceActivities->sum('TollhouseCount'),
|
||||
'totalEmergencyCount' => $provinceActivities->sum('EmergencyCount'),
|
||||
'totalCountryCount' => $provinceActivities->sum('TotalProvinceCount'),
|
||||
];
|
||||
|
||||
return view('v3.Reports.RoadItems.CountryActivityPerItem', [
|
||||
'provinceCount' => $provinceActivities,
|
||||
'countryCount' => $totalItemCount,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate
|
||||
]);
|
||||
|
||||
@@ -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')
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user