diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 84f25f501828..f163bb45ad91 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -503,7 +503,7 @@ class InvoiceController extends BaseController $invoices = Invoice::withTrashed()->whereIn('id', $this->transformKeys($ids))->company()->get(); - if (! $invoices) { + if ($invoices->count() == 0 ) { return response()->json(['message' => 'No Invoices Found']); } diff --git a/app/Http/Requests/Invoice/BulkInvoiceRequest.php b/app/Http/Requests/Invoice/BulkInvoiceRequest.php index 9b5fcfb54d6c..2eeb632aa8ae 100644 --- a/app/Http/Requests/Invoice/BulkInvoiceRequest.php +++ b/app/Http/Requests/Invoice/BulkInvoiceRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\Invoice; use App\Http\Requests\Request; +use App\Exceptions\DuplicatePaymentException; class BulkInvoiceRequest extends Request { @@ -29,7 +30,21 @@ class BulkInvoiceRequest extends Request 'template' => 'sometimes|string', 'template_id' => 'sometimes|string', 'send_email' => 'sometimes|bool', - 'subscriptin_id' => 'sometimes|string', + 'subscription_id' => 'sometimes|string', ]; } + + public function prepareForValidation() + { + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + if(\Illuminate\Support\Facades\Cache::has($this->ip()."|".$this->input('action', 0)."|".$this->input('ids', '')."|".$user->company()->company_key)) + throw new DuplicatePaymentException('Duplicate request.', 429); + + \Illuminate\Support\Facades\Cache::put(($this->ip()."|".$this->input('action', 0)."|".$this->input('ids', '')."|".$user->company()->company_key), true, 1); + + } + } diff --git a/app/Repositories/InvoiceRepository.php b/app/Repositories/InvoiceRepository.php index 101d7e680e5f..5d32bb7dc594 100644 --- a/app/Repositories/InvoiceRepository.php +++ b/app/Repositories/InvoiceRepository.php @@ -64,6 +64,8 @@ class InvoiceRepository extends BaseRepository */ public function delete($invoice): Invoice { + $invoice = $invoice->fresh(); + if ($invoice->is_deleted) { return $invoice; }