Fix double wallet top up for group payment transaction problem

This commit is contained in:
Dillon Ngo
2025-12-02 12:23:12 +08:00
parent e0213108d2
commit 65bd979b31
@@ -7,8 +7,12 @@ use App\Classes\Modules\Transactions\Services\FetchesGroup;
use App\Classes\Modules\Transactions\Services\DeletesTransaction;
use App\Classes\Modules\Transactions\Services\DeletesGroup;
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class DeleteGroupLogic extends AbstractControllerLogic
{
@@ -48,7 +52,7 @@ class DeleteGroupLogic extends AbstractControllerLogic
*/
public function logic(Request $request) : JsonResponse
{
ini_set('memory_limit', '-1');
ini_set('memory_limit', '-1');
$group = $this->fetchesGroup->execute(['id' => $request->route('id')]);
@@ -59,7 +63,12 @@ class DeleteGroupLogic extends AbstractControllerLogic
$this->deletesGroup->execute($group);
$topUpTransaction = Transaction::where('payment_reference', $group->reference)->first();
if($topUpTransaction && $topUpTransaction->type === TransactionType::TOP_UP && $topUpTransaction->status !== ApprovalStatus::APPROVED && $topUpTransaction->status !== ApprovalStatus::COMPLETED){
$topUpTransaction->delete();
}
return $this->response([]);
}
}
}