Explorar o código

fix: novas taxas

Gustavo Mantovani hai 5 días
pai
achega
05bee9f32f

+ 1 - 0
app/Services/DashboardService.php

@@ -592,6 +592,7 @@ class DashboardService
         $pendingServicePackages = ServicePackage::query()
             ->where('client_id', $cliente->id)
             ->where('status', ServicePackageStatusEnum::OPEN->value)
+            ->whereDoesntHave('items.schedule', fn ($q) => $q->where('status', '!=', 'accepted'))
             ->with(['items.schedule' => function ($query) {
                 $query->with(['provider.user', 'address']);
             }])

+ 9 - 5
app/Services/Pagarme/PagarmePaymentService.php

@@ -2,7 +2,6 @@
 
 namespace App\Services\Pagarme;
 
-use App\Exceptions\PaymentException;
 use App\Data\Pagarme\Customer\CustomerRequestData;
 use App\Data\Pagarme\Customer\Parts\Request\AddressData;
 use App\Data\Pagarme\Customer\Parts\Request\PhoneData;
@@ -18,6 +17,7 @@ use App\Data\Pagarme\Order\Parts\Request\SplitData;
 use App\Data\Pagarme\Order\Parts\Request\SplitOptionsData;
 use App\Enums\PaymentSplitStatusEnum;
 use App\Enums\PaymentStatusEnum;
+use App\Exceptions\PaymentException;
 use App\Models\Address;
 use App\Models\ServicePackage;
 use App\Models\Client;
@@ -66,7 +66,9 @@ class PagarmePaymentService
     private function platformFeeRate(string $paymentMethod, ?Schedule $schedule = null): float
     {
         if ($schedule && $this->scheduleBelongsToServicePackageWithAtLeastThreeItems($schedule)) {
-            return $this->configuredPlatformFeeRate('platform_service_package_min_3_schedules_fee_rate');
+            return $paymentMethod === 'credit_card'
+                ? $this->configuredPlatformFeeRate('platform_service_package_min_3_schedules_credit_card_fee_rate')
+                : $this->configuredPlatformFeeRate('platform_service_package_min_3_schedules_pix_fee_rate');
         }
 
         return $paymentMethod === 'credit_card'
@@ -77,9 +79,11 @@ class PagarmePaymentService
     public function platformFeeRates(): array
     {
         return [
-            'pix'                             => $this->configuredPlatformFeeRate('platform_pix_fee_rate'),
-            'credit_card'                     => $this->configuredPlatformFeeRate('platform_credit_card_fee_rate'),
-            'service_package_min_3_schedules' => $this->configuredPlatformFeeRate('platform_service_package_min_3_schedules_fee_rate'),
+            'pix'         => $this->configuredPlatformFeeRate('platform_pix_fee_rate'),
+            'credit_card' => $this->configuredPlatformFeeRate('platform_credit_card_fee_rate'),
+
+            'service_package_min_3_schedules_credit_card' => $this->configuredPlatformFeeRate('platform_service_package_min_3_schedules_credit_card_fee_rate'),
+            'service_package_min_3_schedules_pix'         => $this->configuredPlatformFeeRate('platform_service_package_min_3_schedules_pix_fee_rate'),
         ];
     }
 

+ 13 - 12
config/services.php

@@ -58,18 +58,19 @@ return [
     ],
 
     'pagarme' => [
-        'secret_key'            => env('PAGARME_SECRET_KEY'),
-        'service_referer_name'  => env('PAGARME_SERVICE_REFERER_NAME', env('APP_NAME', 'Laravel')),
-        'base_url'              => env('PAGARME_BASE_URL', 'https://api.pagar.me/core/v5'),
-        'webhook_user'          => env('PAGARME_WEBHOOK_USER'),
-        'webhook_password'      => env('PAGARME_WEBHOOK_PASSWORD'),
-        'platform_recipient_id' => env('PAGARME_PLATFORM_RECIPIENT_ID'),
+        'secret_key'                    => env('PAGARME_SECRET_KEY'),
+        'service_referer_name'          => env('PAGARME_SERVICE_REFERER_NAME', env('APP_NAME', 'Laravel')),
+        'base_url'                      => env('PAGARME_BASE_URL', 'https://api.pagar.me/core/v5'),
+        'webhook_user'                  => env('PAGARME_WEBHOOK_USER'),
+        'webhook_password'              => env('PAGARME_WEBHOOK_PASSWORD'),
+        'platform_recipient_id'         => env('PAGARME_PLATFORM_RECIPIENT_ID'),
+        'pix_disable_split'             => env('PAGARME_PIX_DISABLE_SPLIT', false),
+        'platform_pix_fee_rate'         => env('PAGARME_PLATFORM_PIX_FEE_RATE', 0.12),
+        'platform_credit_card_fee_rate' => env('PAGARME_PLATFORM_CREDIT_CARD_FEE_RATE', 0.16),
+        'transfer_fee_amount'           => env('PAGARME_TRANSFER_FEE_AMOUNT', 3.67),
+        'withdrawal_release_days'       => env('PAGARME_WITHDRAWAL_RELEASE_DAYS', 2),
 
-        'pix_disable_split'                      => env('PAGARME_PIX_DISABLE_SPLIT', false),
-        'platform_pix_fee_rate'                  => env('PAGARME_PLATFORM_PIX_FEE_RATE', 0.12),
-        'platform_credit_card_fee_rate'          => env('PAGARME_PLATFORM_CREDIT_CARD_FEE_RATE', 0.16),
-        'platform_service_package_min_3_schedules_fee_rate' => env('PAGARME_PLATFORM_SERVICE_PACKAGE_MIN_3_SCHEDULES_FEE_RATE', 0.10),
-        'transfer_fee_amount'                    => env('PAGARME_TRANSFER_FEE_AMOUNT', 3.67),
-        'withdrawal_release_days'                => env('PAGARME_WITHDRAWAL_RELEASE_DAYS', 2),
+        'platform_service_package_min_3_schedules_credit_card_fee_rate' => env('PAGARME_PLATFORM_SERVICE_PACKAGE_MIN_3_SCHEDULES_CREDIT_CARD_FEE_RATE', 0.12),
+        'platform_service_package_min_3_schedules_pix_fee_rate'         => env('PAGARME_PLATFORM_SERVICE_PACKAGE_MIN_3_SCHEDULES_PIX_FEE_RATE', 0.10),
     ],
 ];