|
|
@@ -17,7 +17,10 @@ class PagarmeAnticipationService
|
|
|
{
|
|
|
use SendsPagarmeRequests;
|
|
|
|
|
|
- public function createBulkAnticipation(Payment $payment): ?BulkAnticipationResponseData
|
|
|
+ public function createBulkAnticipation(
|
|
|
+ Payment $payment,
|
|
|
+ ?BulkAnticipationLimitsResponseData $limits = null,
|
|
|
+ ): ?BulkAnticipationResponseData
|
|
|
{
|
|
|
$provider = $payment->provider()->first();
|
|
|
|
|
|
@@ -47,7 +50,7 @@ class PagarmeAnticipationService
|
|
|
|
|
|
$paymentDate = $this->getAnticipationPaymentDate();
|
|
|
|
|
|
- $limits = $this->fetchAnticipationLimits($recipientId, $paymentDate);
|
|
|
+ $limits ??= $this->fetchAnticipationLimits($recipientId, $paymentDate);
|
|
|
|
|
|
if ($limits && $limits->minimum->amount > 0 && $requestedAmount < $limits->minimum->amount) {
|
|
|
Log::channel('pagarme')->warning('Antecipacao ignorada: valor abaixo do minimo do recebedor.', [
|
|
|
@@ -96,6 +99,20 @@ class PagarmeAnticipationService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function fetchAnticipationLimitsForPayment(Payment $payment): ?BulkAnticipationLimitsResponseData
|
|
|
+ {
|
|
|
+ $provider = $payment->provider()->first();
|
|
|
+
|
|
|
+ if (! $provider || empty($provider->recipient_id)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->fetchAnticipationLimits(
|
|
|
+ recipientId: $provider->recipient_id,
|
|
|
+ paymentDate: $this->getAnticipationPaymentDate(),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
private function fetchAnticipationLimits(string $recipientId, string $paymentDate): ?BulkAnticipationLimitsResponseData
|
|
|
{
|
|
|
try {
|