diff --git a/app/Classes/Modules/Transactions/ControllersLogic/DeletePaidGroupLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/DeletePaidGroupLogic.php new file mode 100644 index 00000000..ce03965f --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/DeletePaidGroupLogic.php @@ -0,0 +1,68 @@ + 'Delete Paid Group Transaction', + 'message' => 'You have successfully deleted this Group Transaction' + ]; + } + + /** @var FetchesGroup */ + private $fetchesGroup; + + /** @var DeletesGroup */ + private $deletesGroup; + + /** + * DeleteGroupLogic constructor. + * @param updatesTransactionStatus $updatesTransactionStatus + * @param FetchesGroup $fetchesGroup + * @param DeletesTransaction $deletesTransaction + */ + public function __construct(FetchesGroup $fetchesGroup, DeletesGroup $deletesGroup) + { + $this->fetchesGroup = $fetchesGroup; + $this->deletesGroup = $deletesGroup; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\MalformedRequestException + */ + public function logic(Request $request): JsonResponse + { + $group = $this->fetchesGroup->execute(['id' => $request->route('id')]); + + foreach ($group->groupTransactions as $groupTransaction) { + $invoice = $groupTransaction->transaction; + $paymentTransaction = $invoice->transactions()->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->first(); + + $paymentTransaction->delete(); + } + + $this->deletesGroup->execute($group); + + return $this->response([]); + } +} diff --git a/app/Http/Controllers/Transactions/DeletePaidGroupController.php b/app/Http/Controllers/Transactions/DeletePaidGroupController.php new file mode 100644 index 00000000..08cf1e33 --- /dev/null +++ b/app/Http/Controllers/Transactions/DeletePaidGroupController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/resources/assets/vue/components/paymentsBilling/elements/GroupPaymentsBillingComponents.vue b/resources/assets/vue/components/paymentsBilling/elements/GroupPaymentsBillingComponents.vue index 763f0174..0a2717e8 100644 --- a/resources/assets/vue/components/paymentsBilling/elements/GroupPaymentsBillingComponents.vue +++ b/resources/assets/vue/components/paymentsBilling/elements/GroupPaymentsBillingComponents.vue @@ -25,12 +25,12 @@ -