From 98ba2987df9cafa49c479f2f0a3317ffe75d7e88 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Tue, 14 Oct 2025 13:53:28 +0800 Subject: [PATCH] E-Invoice - API, Sales Invoice Report - added more checking and validation --- .../ListBookingsSalesInvoiceLogic.php | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/Classes/Modules/Bookings/ControllersLogic/ListBookingsSalesInvoiceLogic.php b/app/Classes/Modules/Bookings/ControllersLogic/ListBookingsSalesInvoiceLogic.php index ddaacd85..67a092fc 100644 --- a/app/Classes/Modules/Bookings/ControllersLogic/ListBookingsSalesInvoiceLogic.php +++ b/app/Classes/Modules/Bookings/ControllersLogic/ListBookingsSalesInvoiceLogic.php @@ -43,17 +43,16 @@ class ListBookingsSalesInvoiceLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { // $this->canListBookings->passes(); //cief todo: 90 - apipub - $filters = $request->input('filters'); - // Decode JSON if sent as string + $filters = $request->input('filters'); if (is_string($filters)) { $filters = json_decode($filters, true); } if (!is_array($filters)) { return response()->json([ - 'success' => false, - 'message' => 'Invalid filters format. Expected JSON object.' + 'message' => 'Invalid filters format. Expected JSON object.', + 'payload' => new \stdClass(), ], 400); } @@ -63,8 +62,8 @@ class ListBookingsSalesInvoiceLogic extends AbstractControllerLogic $extra = array_diff(array_keys($filters), $allowedKeys); if (!empty($extra)) { return response()->json([ - 'success' => false, 'message' => 'Invalid filter(s) provided: ' . implode(', ', $extra), + 'payload' => new \stdClass(), ], 400); } @@ -74,16 +73,23 @@ class ListBookingsSalesInvoiceLogic extends AbstractControllerLogic $missing = array_diff($alwaysRequired, array_keys($filters)); if (!empty($missing)) { return response()->json([ - 'success' => false, 'message' => 'Missing required filter(s): ' . implode(', ', $missing), + 'payload' => new \stdClass(), + ], 400); + } + + if ((int) $filters['status'] !== 3) { + return response()->json([ + 'message' => 'Invalid status value.', + 'payload' => new \stdClass(), ], 400); } // Required at least one of: date_range or date_range_no_data if (!isset($filters['date_range']) && !isset($filters['date_range_no_data'])) { return response()->json([ - 'success' => false, 'message' => 'Either "date_range" or "date_range_no_data" filter is required.', + 'payload' => new \stdClass(), ], 400); }