create report cartable and excel for road observation
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Services\Cartables\RoadObservation;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\RoadObserved;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ReportService
|
||||
{
|
||||
@@ -50,4 +51,94 @@ class ReportService
|
||||
'toDate' => $toDate,
|
||||
];
|
||||
}
|
||||
public function countryActivity(Request $request): array
|
||||
{
|
||||
return DB::select("
|
||||
SELECT
|
||||
p.id AS province_id,
|
||||
p.name_fa AS province_name,
|
||||
SUM(t.rms_status = 0 ) AS residegiShode,
|
||||
SUM(t.rms_status = 1 ) AS egdamshode,
|
||||
SUM(t.rms_status = 2) AS egdamnashodeh,
|
||||
SUM(t.status = 0 ) AS darhalbarasi,
|
||||
SUM(t.status = 1 ) AS taayidshode,
|
||||
SUM(t.status = 2 ) AS adamtaayid,
|
||||
SUM(t.rms_status = 0 ) + SUM(t.rms_status = 1) + SUM(t.rms_status = 2) AS total
|
||||
FROM
|
||||
provinces p
|
||||
LEFT JOIN
|
||||
|
||||
road_observeds t ON t.province_id = p.id
|
||||
GROUP BY
|
||||
p.id, p.name_fa
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
-1 AS province_id,
|
||||
'کل کشور' AS province_name,
|
||||
SUM(t.rms_status = 0 ) AS residegiShode,
|
||||
SUM(t.rms_status = 1 ) AS egdamshode,
|
||||
SUM(t.rms_status = 2) AS egdamnashodeh,
|
||||
SUM(t.status = 0 ) AS darhalbarasi,
|
||||
SUM(t.status = 1 ) AS taayidshode,
|
||||
SUM(t.status = 2 ) AS adamtaayid,
|
||||
SUM(t.rms_status = 0 ) + SUM(t.rms_status = 1) + SUM(t.rms_status = 2) AS total
|
||||
FROM
|
||||
provinces p
|
||||
LEFT JOIN
|
||||
|
||||
road_observeds t ON t.province_id = p.id
|
||||
ORDER BY
|
||||
province_id
|
||||
");
|
||||
}
|
||||
|
||||
public function provinceActivity(int $province_id): array
|
||||
{
|
||||
return DB::select("
|
||||
SELECT
|
||||
e.id AS edare_id,
|
||||
e.name_fa AS edare_name,
|
||||
COALESCE(SUM(t.rms_status = 0 ),0) AS residegiShode,
|
||||
COALESCE(SUM(t.rms_status = 1),0) AS egdamshode,
|
||||
COALESCE(SUM(t.rms_status = 2),0) AS egdamnashodeh,
|
||||
COALESCE(SUM(t.status = 0 ),0) AS darhalbarasi,
|
||||
COALESCE(SUM(t.status = 1 ),0) AS taayidshode,
|
||||
COALESCE(SUM(t.status = 2 ),0) AS adamtaayid,
|
||||
COALESCE(SUM(t.rms_status = 0 ) + SUM(t.rms_status = 1) + SUM(t.rms_status = 2),0)AS total
|
||||
FROM
|
||||
edarate_shahri e
|
||||
LEFT JOIN
|
||||
road_observeds t ON t.edarate_shahri_id = e.id AND t.province_id = e.province_id
|
||||
WHERE
|
||||
e.province_id = :provinceId
|
||||
GROUP BY
|
||||
e.id, e.name_fa
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
-1 AS edare_id,
|
||||
'کل استان' AS edare_name,
|
||||
COALESCE(SUM(t.rms_status = 0 ),0) AS residegiShode,
|
||||
COALESCE(SUM(t.rms_status = 1),0) AS egdamshode,
|
||||
COALESCE(SUM(t.rms_status = 2),0) AS egdamnashodeh,
|
||||
COALESCE(SUM(t.status = 0 ),0) AS darhalbarasi,
|
||||
COALESCE(SUM(t.status = 1 ),0) AS taayidshode,
|
||||
COALESCE(SUM(t.status = 2 ),0) AS adamtaayid,
|
||||
COALESCE(SUM(t.rms_status = 0 ) + SUM(t.rms_status = 1) + SUM(t.rms_status = 2),0)AS total
|
||||
FROM
|
||||
edarate_shahri e
|
||||
LEFT JOIN
|
||||
road_observeds t ON t.edarate_shahri_id = e.id AND t.province_id = e.province_id
|
||||
WHERE
|
||||
e.province_id = :provinceId
|
||||
ORDER BY
|
||||
edare_id
|
||||
", [
|
||||
'provinceId' => $province_id,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user