diff --git a/src/Listeners/RemitOrderPaymentAccepted.php b/src/Listeners/RemitOrderPaymentAccepted.php index 46c1878..482d5fe 100644 --- a/src/Listeners/RemitOrderPaymentAccepted.php +++ b/src/Listeners/RemitOrderPaymentAccepted.php @@ -3,6 +3,7 @@ namespace Fintech\Remit\Listeners; use Fintech\Core\Enums\Transaction\OrderStatus; +use Fintech\Core\Enums\Transaction\OrderType; use Fintech\Transaction\Facades\Transaction; use Illuminate\Contracts\Queue\ShouldQueue; @@ -12,15 +13,22 @@ class RemitOrderPaymentAccepted implements ShouldQueue /** * Handle the event. - * - * @param \Fintech\Reload\Events\DepositAccepted $event - * + * @param \Fintech\Reload\Events\DepositAccepted $event * @throws \Throwable */ public function handle(object $event): void { $this->order = Transaction::order()->find($event->deposit->parent_id); + if ($this->order && in_array($this->order->order_type->value, [OrderType::CashPickup->value, OrderType::WalletTransfer->value, OrderType::BankTransfer->value])) { + + $payoutVendor = $event->deposit->serviceVendor; + + Transaction::order()->update($this->order->getKey(), [ + 'status' => OrderStatus::Processing, + 'notes' => "{$this->order->notes}.\nReceived payout confirmation from {$payoutVendor->service_vendor_name} vendor.", + ]); + } } /** diff --git a/src/Listeners/RemitOrderPaymentRejected.php b/src/Listeners/RemitOrderPaymentRejected.php index f3eb3c2..7bfcb90 100644 --- a/src/Listeners/RemitOrderPaymentRejected.php +++ b/src/Listeners/RemitOrderPaymentRejected.php @@ -3,6 +3,7 @@ namespace Fintech\Remit\Listeners; use Fintech\Core\Enums\Transaction\OrderStatus; +use Fintech\Core\Enums\Transaction\OrderType; use Fintech\Transaction\Facades\Transaction; use Illuminate\Contracts\Queue\ShouldQueue; @@ -10,10 +11,23 @@ class RemitOrderPaymentRejected implements ShouldQueue { /** * Handle the event. - * + * @param \Fintech\Reload\Events\DepositRejected $event * @throws \Throwable */ - public function handle(object $event): void {} + public function handle(object $event): void + { + $this->order = Transaction::order()->find($event->deposit->parent_id); + + if ($this->order && in_array($this->order->order_type->value, [OrderType::CashPickup->value, OrderType::WalletTransfer->value, OrderType::BankTransfer->value])) { + + $payoutVendor = $event->deposit->serviceVendor; + + Transaction::order()->update($this->order->getKey(), [ + 'status' => OrderStatus::Rejected, + 'notes' => "{$this->order->notes}.\nPayout request rejected by {$payoutVendor->service_vendor_name} vendor.", + ]); + } + } /** * Handle a job failure.