From c865b283156d6d577441c83bb3666dae79454851 Mon Sep 17 00:00:00 2001 From: Jia Sheng Date: Sun, 14 Jul 2024 12:22:04 +0800 Subject: [PATCH] update --- ...eBillGroupAndGroupToIncludeTransferFee.php | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/app/Console/Commands/UpdateBillGroupAndGroupToIncludeTransferFee.php b/app/Console/Commands/UpdateBillGroupAndGroupToIncludeTransferFee.php index 72a1c8f2..da689d70 100644 --- a/app/Console/Commands/UpdateBillGroupAndGroupToIncludeTransferFee.php +++ b/app/Console/Commands/UpdateBillGroupAndGroupToIncludeTransferFee.php @@ -56,12 +56,21 @@ class UpdateBillGroupAndGroupToIncludeTransferFee extends Command $groups = Group::all(); foreach ($groups as $group) { + $group_transfer_fee = 0; + + $morph_transaction = $group->morphTransactions()->where('type', TransactionType::TRANSFER_FEE)->first(); + + if ($morph_transaction) { + $group_transfer_fee = $morph_transaction->original_amount; + } + + $originalTransferFees = (float)Transaction::where('type', TransactionType::TRANSFER_FEE)->whereIn('owner_id', $group->transactions->pluck('id'))->sum('service_charge'); $correctOriginalAmount = $group->transactions()->sum('original_amount'); - $correctOriginalAmount += $originalTransferFees; + $correctOriginalAmount = $correctOriginalAmount + $originalTransferFees + $group_transfer_fee; $correctAmount = $group->transactions()->sum('amount'); $transferFees = $originalTransferFees / $group->currency_rate; - $correctAmount += $transferFees; + $correctAmount = $correctAmount + $transferFees + ($group_transfer_fee / $group->currency_rate); if ($group->original_amount != $correctOriginalAmount || $group->amount != $correctAmount) { $group->original_amount = $correctOriginalAmount; @@ -73,26 +82,26 @@ class UpdateBillGroupAndGroupToIncludeTransferFee extends Command } // update group calculation to include individual group transfer fee - $groups = Group::whereHas('morphTransactions', function ($q) { - $q->where('type', TransactionType::TRANSFER_FEE); - })->get(); + // $groups = Group::whereHas('morphTransactions', function ($q) { + // $q->where('type', TransactionType::TRANSFER_FEE); + // })->get(); - foreach ($groups as $group) { - $route = FacadesRoute::getRoutes()->getByName('api.transaction.group.update'); - $request = Request::create(route('api.transaction.group.update', $group->id)); - $uri = $route->uri; - $request->setRouteResolver(function () use ($request, $uri) { - // Associate Route to request so we can access route parameters. - return (new Route('PUT', $uri, []))->bind($request); - }); + // foreach ($groups as $group) { + // $route = FacadesRoute::getRoutes()->getByName('api.transaction.group.update'); + // $request = Request::create(route('api.transaction.group.update', $group->id)); + // $uri = $route->uri; + // $request->setRouteResolver(function () use ($request, $uri) { + // // Associate Route to request so we can access route parameters. + // return (new Route('PUT', $uri, []))->bind($request); + // }); - $request['rate'] = $group->currency_rate; - $request['supplier_id'] = $group->issuer; - $this->updateGroupLogic->execute($request); + // $request['rate'] = $group->currency_rate; + // $request['supplier_id'] = $group->issuer; + // $this->updateGroupLogic->execute($request); - $group_transfer_fee = $group->morphTransactions()->where('type', TransactionType::TRANSFER_FEE)->first(); - $this->info("updated group id: {$group->id}, added transfer fee to individual white form CNY {$group_transfer_fee->original_amount}"); - } + // $group_transfer_fee = $group->morphTransactions()->where('type', TransactionType::TRANSFER_FEE)->first(); + // $this->info("updated group id: {$group->id}, added transfer fee to individual white form CNY {$group_transfer_fee->original_amount}"); + // } // update bill group calculation to include individual group transfer fee $billGroups = BillGroup::all();