From dd324c8bb6b17009f82afe8bc830caec7241e992 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Thu, 13 Jan 2022 12:23:26 +0530 Subject: [PATCH 1/2] solve payment method delete issue --- .../V1/Admin/Invoice/InvoicesController.php | 2 +- .../V1/Admin/Payment/PaymentMethodsController.php | 8 +++++--- .../V1/PDF/DownloadReceiptController.php | 2 ++ app/Models/Invoice.php | 15 +++++++++++++++ app/Models/PaymentMethod.php | 5 +++++ 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/Invoice/InvoicesController.php b/app/Http/Controllers/V1/Admin/Invoice/InvoicesController.php index f1c7fd21..9aeefe51 100644 --- a/app/Http/Controllers/V1/Admin/Invoice/InvoicesController.php +++ b/app/Http/Controllers/V1/Admin/Invoice/InvoicesController.php @@ -102,7 +102,7 @@ class InvoicesController extends Controller { $this->authorize('delete multiple invoices'); - Invoice::destroy($request->ids); + Invoice::deleteInvoices($request->ids); return response()->json([ 'success' => true, diff --git a/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php b/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php index c4678516..53fbcb92 100644 --- a/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php +++ b/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php @@ -84,12 +84,14 @@ class PaymentMethodsController extends Controller { $this->authorize('delete', $paymentMethod); - $payments = $paymentMethod->payments; - - if ($payments->count() > 0) { + if ($paymentMethod->payments()->exists()) { return respondJson('payments_attached', 'Payments Attached.'); } + if ($paymentMethod->expenses()->exists()) { + return respondJson('expenses_attached', 'Expenses Attached.'); + } + $paymentMethod->delete(); return response()->json([ diff --git a/app/Http/Controllers/V1/PDF/DownloadReceiptController.php b/app/Http/Controllers/V1/PDF/DownloadReceiptController.php index b53c7f23..51f64692 100644 --- a/app/Http/Controllers/V1/PDF/DownloadReceiptController.php +++ b/app/Http/Controllers/V1/PDF/DownloadReceiptController.php @@ -17,6 +17,8 @@ class DownloadReceiptController extends Controller */ public function __invoke(Expense $expense) { + $this->authorize('view', $expense); + if ($expense) { $media = $expense->getFirstMedia('receipts'); if ($media) { diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 57fa5200..e23c6eca 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -698,4 +698,19 @@ class Invoice extends Model implements HasMedia $this->save(); } + + public static function deleteInvoices($ids) + { + foreach ($ids as $id) { + $invoice = self::find($id); + + if ($invoice->transactions()->exists()) { + $invoice->transactions()->delete(); + } + + $invoice->delete(); + } + + return true; + } } diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php index 898fbd36..23723c8d 100644 --- a/app/Models/PaymentMethod.php +++ b/app/Models/PaymentMethod.php @@ -31,6 +31,11 @@ class PaymentMethod extends Model return $this->hasMany(Payment::class); } + public function expenses() + { + return $this->hasMany(Expense::class); + } + public function company() { return $this->belongsTo(Company::class); From 55beed430a4570dbf7dd158a05c10931bfa98b5c Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Thu, 13 Jan 2022 12:25:46 +0530 Subject: [PATCH 2/2] solve payment method delete issue --- .../Controllers/V1/Admin/Payment/PaymentMethodsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php b/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php index 53fbcb92..8b18f049 100644 --- a/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php +++ b/app/Http/Controllers/V1/Admin/Payment/PaymentMethodsController.php @@ -89,7 +89,7 @@ class PaymentMethodsController extends Controller } if ($paymentMethod->expenses()->exists()) { - return respondJson('expenses_attached', 'Expenses Attached.'); + return respondJson('payments_attached', 'Expenses Attached.'); } $paymentMethod->delete();