create filter and bigdata resume sync

This commit is contained in:
arifal
2025-02-12 21:28:08 +07:00
parent b4b34b503e
commit ba95c185de
9 changed files with 422 additions and 53 deletions

View File

@@ -11,11 +11,21 @@ class DashboardController extends Controller
{
use GlobalApiResponse;
public function businnessDocument(Request $request){
$query = once(function () {
public function businnessDocument(Request $request)
{
$request->validate([
"year" => "required|integer"
]);
$current_year = $request->get('year');
$startOfYear = "$current_year-01-01 00:00:00";
$endOfYear = "$current_year-12-31 23:59:59";
$query = once(function () use ($startOfYear, $endOfYear) {
return DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid')
->whereBetween("pt.task_created_at", [$startOfYear, $endOfYear])
->where(function ($query) {
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
->orWhereNull('ptgs.status_verifikasi');
@@ -37,11 +47,20 @@ class DashboardController extends Controller
]);
}
public function nonBusinnessDocument(Request $request){
$request->validate([
"year" => "required|integer"
]);
$query = once( function () {
$current_year = $request->get('year');
$startOfYear = "$current_year-01-01 00:00:00";
$endOfYear = "$current_year-12-31 23:59:59";
$query = once( function () use ($startOfYear, $endOfYear) {
return DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join ke pbg_task_retributions
->whereBetween("pt.task_created_at", [$startOfYear, $endOfYear])
->where(function ($query) {
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
->orWhereNull('ptgs.status_verifikasi'); // Include NULL values
@@ -61,13 +80,22 @@ class DashboardController extends Controller
"total" => $taskTotal
]);
}
public function allTaskDocuments(){
$query = once( function () {
return DB::table('pbg_task')
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
public function allTaskDocuments(Request $request){
$request->validate([
"year" => "required|integer"
]);
$current_year = $request->get('year');
$startOfYear = "$current_year-01-01 00:00:00";
$endOfYear = "$current_year-12-31 23:59:59";
$query = once( function () use ($startOfYear, $endOfYear) {
return DB::table('pbg_task as pt')
->leftJoin('pbg_task_retributions as ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid')
->whereBetween("pt.task_created_at", [$startOfYear, $endOfYear])
->select(
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
DB::raw('COUNT(DISTINCT pt.id) as task_count'),
DB::raw('SUM(ptr.nilai_retribusi_bangunan) as total_retribution')
)
->first();
});
@@ -79,11 +107,20 @@ class DashboardController extends Controller
]);
}
public function verificationDocuments(){
$query = once( function (){
public function verificationDocuments(Request $request){
$request->validate([
"year" => "required|integer"
]);
$current_year = $request->get('year');
$startOfYear = "$current_year-01-01 00:00:00";
$endOfYear = "$current_year-12-31 23:59:59";
$query = once( function () use ($startOfYear, $endOfYear){
return DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Menambahkan join ke pbg_task_retributions
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid')
->whereBetween("pt.task_created_at", [$startOfYear, $endOfYear])
->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) = ?', [strtolower(trim('Selesai Verifikasi'))])
->selectRaw('COUNT(pt.id) AS total_data,
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution')
@@ -99,11 +136,21 @@ class DashboardController extends Controller
]);
}
public function nonVerificationDocuments(){
$query = once(function () {
public function nonVerificationDocuments(Request $request){
$request->validate([
"year" => "required|integer"
]);
$current_year = $request->get('year');
$startOfYear = "$current_year-01-01 00:00:00";
$endOfYear = "$current_year-12-31 23:59:59";
$query = once(function () use ($startOfYear, $endOfYear) {
return DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join tabel pbg_task_retributions
->whereBetween("pt.task_created_at", [$startOfYear, $endOfYear])
->where(function ($query) {
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
->orWhereNull('ptgs.status_verifikasi'); // Include NULL values