Data patch meant to fix a group payment with group id 609 and transaction id 16803 that got stuck after making paying

This commit is contained in:
Dillon Ngo
2024-06-16 14:13:09 +08:00
parent 713922d2ee
commit 2d98757c1c
@@ -8,7 +8,6 @@ use App\Models\Group;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\Modules\Transactions\Processors\CreatePaymentTransactionProcessor;
use App\Classes\Modules\Transactions\Processors\CreatePaymentTransactionOneTimeFixProcessor;
use App\Classes\Modules\Transactions\Processors\ReleaseGoodsToCustomerProcessor;
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
use App\Classes\Modules\Wallets\Services\UpdatesWalletBalance;
@@ -33,9 +32,6 @@ class CallbackBillplzProcessor
/** @var CreatePaymentTransactionProcessor */
private $createPaymentTransactionProcessor;
/** @var CreatePaymentTransactionOneTimeFixProcessor */
private $createPaymentTransactionOneTimeFixProcessor;
/** @var ReleaseGoodsToCustomerProcessor */
private $releaseGoodsToCustomerProcessor;
@@ -48,7 +44,7 @@ class CallbackBillplzProcessor
* @param CreatePaymentTransactionProcessor $createPaymentTransactionProcessor
* @param ReleaseGoodsToCustomerProcessor $releaseGoodsToCustomerProcessor
*/
public function __construct(UpdatesTransactionStatus $updatesTransactionStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor, UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor, UpdatesWalletBalance $updatesWalletBalance, CreatePaymentTransactionProcessor $createPaymentTransactionProcessor, ReleaseGoodsToCustomerProcessor $releaseGoodsToCustomerProcessor, CreatePaymentTransactionOneTimeFixProcessor $createPaymentTransactionOneTimeFixProcessor)
public function __construct(UpdatesTransactionStatus $updatesTransactionStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor, UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor, UpdatesWalletBalance $updatesWalletBalance, CreatePaymentTransactionProcessor $createPaymentTransactionProcessor, ReleaseGoodsToCustomerProcessor $releaseGoodsToCustomerProcessor)
{
$this->updatesTransactionStatus = $updatesTransactionStatus;
$this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor;
@@ -56,7 +52,6 @@ class CallbackBillplzProcessor
$this->updatesWalletBalance = $updatesWalletBalance;
$this->createPaymentTransactionProcessor = $createPaymentTransactionProcessor;
$this->releaseGoodsToCustomerProcessor = $releaseGoodsToCustomerProcessor;
$this->createPaymentTransactionOneTimeFixProcessor = $createPaymentTransactionOneTimeFixProcessor;
}
@@ -86,16 +81,8 @@ class CallbackBillplzProcessor
foreach ($group->groupTransactions as $groupTransaction) {
$invoice = $groupTransaction->transaction;
if($invoice->status !== ApprovalStatus::COMPLETED){
if($group->id === 609){
Log::info(json_encode($group->id));
$paymentTransaction = $this->createPaymentTransactionOneTimeFixProcessor->execute($invoice, PaymentMethodType::WALLET, null, $transaction->created_at, false);
$paymentTransaction->created_at = $transaction->created_at;
$paymentTransaction->updated_at = $transaction->created_at;
$paymentTransaction->save();
}
else{
$paymentTransaction = $this->createPaymentTransactionProcessor->execute($invoice, PaymentMethodType::WALLET, null, false);
}
$paymentTransaction = $this->createPaymentTransactionProcessor->execute($invoice, PaymentMethodType::WALLET, null, false);
if($paymentTransaction && $paymentTransaction->status == ApprovalStatus::APPROVED){
$pL = $invoice->owner;
$this->releaseGoodsToCustomerProcessor->execute($pL, $invoice);
@@ -136,11 +123,6 @@ class CallbackBillplzProcessor
else{
Log::channel('storage_invoices')->info('Total amount from current transaction: '.$totalAmountToBePaid); //cief todo: to be removed
Log::channel('storage_invoices')->info('Total amount from paid transaction: '.$transaction->amount); //cief todo: to be removed
if($transaction->id === 16803){
Log::channel('storage_invoices')->info('One time data patch for transaction: '.$transaction->id);
return true;
}
return false;
}
}