|
|
@@ -93,7 +93,6 @@ class PaymentService
|
|
|
if (! in_array($paymentMethod, ['credit_card', 'pix'], true)) {
|
|
|
throw new PaymentException;
|
|
|
}
|
|
|
- Log::info('1');
|
|
|
$paymentData = DB::transaction(function () use (
|
|
|
$servicePackageId,
|
|
|
$userId,
|
|
|
@@ -109,7 +108,6 @@ class PaymentService
|
|
|
if ($servicePackage->client?->user_id !== $userId) {
|
|
|
throw new AuthorizationException;
|
|
|
}
|
|
|
-Log::info('2');
|
|
|
$schedules = $this->activePackageSchedules($servicePackage);
|
|
|
|
|
|
$this->validateServicePackageForPayment($servicePackage, $schedules);
|
|
|
@@ -124,8 +122,8 @@ Log::info('2');
|
|
|
])
|
|
|
->latest('id')
|
|
|
->first();
|
|
|
-Log::info('3');
|
|
|
- if ($existingPayment) {
|
|
|
+
|
|
|
+ if ($existingPayment) {
|
|
|
if ($this->isExpiredPixPayment($existingPayment)) {
|
|
|
$existingPayment->forceFill([
|
|
|
'status' => PaymentStatusEnum::FAILED,
|
|
|
@@ -140,7 +138,7 @@ Log::info('3');
|
|
|
if ($existingPayment->payment_method !== $paymentMethod) {
|
|
|
throw new PaymentException;
|
|
|
}
|
|
|
-Log::info('4');
|
|
|
+
|
|
|
[, $cardId] = $this->resolveCard(
|
|
|
clientId: $servicePackage->client_id,
|
|
|
paymentMethod: $paymentMethod,
|
|
|
@@ -149,7 +147,7 @@ Log::info('4');
|
|
|
);
|
|
|
|
|
|
$this->servicePackagePaymentTotals($schedules, $paymentMethod);
|
|
|
-Log::info('5');
|
|
|
+
|
|
|
return [
|
|
|
'payment' => $existingPayment,
|
|
|
'schedules' => $schedules,
|
|
|
@@ -163,7 +161,7 @@ Log::info('5');
|
|
|
return ['existing' => $existingPayment];
|
|
|
}
|
|
|
}
|
|
|
-Log::info('6');
|
|
|
+
|
|
|
if ($servicePackage->status !== ServicePackageStatusEnum::OPEN) {
|
|
|
throw new PaymentException;
|
|
|
}
|
|
|
@@ -174,7 +172,7 @@ Log::info('6');
|
|
|
clientPaymentMethodId: $clientPaymentMethodId,
|
|
|
cardId: data_get($options, 'card_id'),
|
|
|
);
|
|
|
-Log::info('7');
|
|
|
+
|
|
|
$totals = $this->servicePackagePaymentTotals($schedules, $paymentMethod);
|
|
|
|
|
|
$payment = Payment::create([
|
|
|
@@ -202,7 +200,7 @@ Log::info('7');
|
|
|
'platform_fee' => number_format(data_get($totals, 'platform_fee_amount'), 2, '.', ''),
|
|
|
],
|
|
|
]);
|
|
|
-Log::info('8');
|
|
|
+
|
|
|
PaymentSplit::create([
|
|
|
'payment_id' => $payment->id,
|
|
|
'provider_id' => $servicePackage->provider_id,
|
|
|
@@ -222,10 +220,10 @@ Log::info('8');
|
|
|
|
|
|
return compact('payment', 'schedules', 'cardId');
|
|
|
});
|
|
|
-Log::info('9');
|
|
|
+
|
|
|
if (data_get($paymentData, 'existing')) {
|
|
|
$existingPayment = data_get($paymentData, 'existing');
|
|
|
-Log::info('10');
|
|
|
+
|
|
|
$this->syncPaymentTargets($existingPayment);
|
|
|
|
|
|
return $existingPayment->fresh(['client.user', 'provider.user', 'servicePackage.items.schedule']);
|