solve payment method delete issue

This commit is contained in:
jayvirsinh_gohil
2022-01-13 12:23:26 +05:30
parent e3f3809f2d
commit dd324c8bb6
5 changed files with 28 additions and 4 deletions

View File

@ -102,7 +102,7 @@ class InvoicesController extends Controller
{ {
$this->authorize('delete multiple invoices'); $this->authorize('delete multiple invoices');
Invoice::destroy($request->ids); Invoice::deleteInvoices($request->ids);
return response()->json([ return response()->json([
'success' => true, 'success' => true,

View File

@ -84,12 +84,14 @@ class PaymentMethodsController extends Controller
{ {
$this->authorize('delete', $paymentMethod); $this->authorize('delete', $paymentMethod);
$payments = $paymentMethod->payments; if ($paymentMethod->payments()->exists()) {
if ($payments->count() > 0) {
return respondJson('payments_attached', 'Payments Attached.'); return respondJson('payments_attached', 'Payments Attached.');
} }
if ($paymentMethod->expenses()->exists()) {
return respondJson('expenses_attached', 'Expenses Attached.');
}
$paymentMethod->delete(); $paymentMethod->delete();
return response()->json([ return response()->json([

View File

@ -17,6 +17,8 @@ class DownloadReceiptController extends Controller
*/ */
public function __invoke(Expense $expense) public function __invoke(Expense $expense)
{ {
$this->authorize('view', $expense);
if ($expense) { if ($expense) {
$media = $expense->getFirstMedia('receipts'); $media = $expense->getFirstMedia('receipts');
if ($media) { if ($media) {

View File

@ -698,4 +698,19 @@ class Invoice extends Model implements HasMedia
$this->save(); $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;
}
} }

View File

@ -31,6 +31,11 @@ class PaymentMethod extends Model
return $this->hasMany(Payment::class); return $this->hasMany(Payment::class);
} }
public function expenses()
{
return $this->hasMany(Expense::class);
}
public function company() public function company()
{ {
return $this->belongsTo(Company::class); return $this->belongsTo(Company::class);