Skip to content

Commit b5dbe9d

Browse files
authored
Feature: Invoice design improvements (#1021)
1 parent 1b25226 commit b5dbe9d

2 files changed

Lines changed: 205 additions & 93 deletions

File tree

backend/app/Services/Domain/Payment/Stripe/EventHandlers/PaymentIntentSucceededHandler.php

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use Brick\Money\Exception\UnknownCurrencyException;
99
use Carbon\Carbon;
1010
use HiEvents\DomainObjects\Enums\PaymentProviders;
11+
use HiEvents\DomainObjects\EventSettingDomainObject;
12+
use HiEvents\DomainObjects\Generated\EventSettingDomainObjectAbstract;
1113
use HiEvents\DomainObjects\Generated\OrderDomainObjectAbstract;
1214
use HiEvents\DomainObjects\Generated\StripePaymentDomainObjectAbstract;
1315
use HiEvents\DomainObjects\OrderDomainObject;
@@ -23,6 +25,7 @@
2325
use HiEvents\Repository\Eloquent\Value\Relationship;
2426
use HiEvents\Repository\Interfaces\AffiliateRepositoryInterface;
2527
use HiEvents\Repository\Interfaces\AttendeeRepositoryInterface;
28+
use HiEvents\Repository\Interfaces\EventSettingsRepositoryInterface;
2629
use HiEvents\Repository\Interfaces\OrderRepositoryInterface;
2730
use HiEvents\Services\Domain\Order\OrderApplicationFeeService;
2831
use HiEvents\Services\Domain\Payment\Stripe\StripeRefundExpiredOrderService;
@@ -40,17 +43,18 @@
4043
class PaymentIntentSucceededHandler
4144
{
4245
public function __construct(
43-
private readonly OrderRepositoryInterface $orderRepository,
44-
private readonly StripePaymentsRepository $stripePaymentsRepository,
45-
private readonly AffiliateRepositoryInterface $affiliateRepository,
46-
private readonly ProductQuantityUpdateService $quantityUpdateService,
47-
private readonly StripeRefundExpiredOrderService $refundExpiredOrderService,
48-
private readonly AttendeeRepositoryInterface $attendeeRepository,
49-
private readonly DatabaseManager $databaseManager,
50-
private readonly LoggerInterface $logger,
51-
private readonly Repository $cache,
52-
private readonly DomainEventDispatcherService $domainEventDispatcherService,
53-
private readonly OrderApplicationFeeService $orderApplicationFeeService,
46+
private readonly OrderRepositoryInterface $orderRepository,
47+
private readonly StripePaymentsRepository $stripePaymentsRepository,
48+
private readonly AffiliateRepositoryInterface $affiliateRepository,
49+
private readonly ProductQuantityUpdateService $quantityUpdateService,
50+
private readonly StripeRefundExpiredOrderService $refundExpiredOrderService,
51+
private readonly AttendeeRepositoryInterface $attendeeRepository,
52+
private readonly DatabaseManager $databaseManager,
53+
private readonly LoggerInterface $logger,
54+
private readonly Repository $cache,
55+
private readonly DomainEventDispatcherService $domainEventDispatcherService,
56+
private readonly OrderApplicationFeeService $orderApplicationFeeService,
57+
private readonly EventSettingsRepositoryInterface $eventSettingsRepository,
5458
)
5559
{
5660
}
@@ -94,7 +98,12 @@ public function handleEvent(PaymentIntent $paymentIntent): void
9498

9599
$this->quantityUpdateService->updateQuantitiesFromOrder($updatedOrder);
96100

97-
OrderStatusChangedEvent::dispatch($updatedOrder);
101+
/** @var EventSettingDomainObject $eventSettings */
102+
$eventSettings = $this->eventSettingsRepository->findFirstWhere([
103+
EventSettingDomainObjectAbstract::EVENT_ID => $updatedOrder->getEventId(),
104+
]);
105+
106+
event(new OrderStatusChangedEvent($updatedOrder, createInvoice: $eventSettings->getEnableInvoicing()));
98107

99108
$this->domainEventDispatcherService->dispatch(
100109
new OrderEvent(

0 commit comments

Comments
 (0)