|
|
@@ -1,10 +1,13 @@
|
|
|
<?php
|
|
|
|
|
|
-use Illuminate\Foundation\Inspiring;
|
|
|
-use Illuminate\Support\Facades\Artisan;
|
|
|
use App\Commands\CreateCrud;
|
|
|
use App\Commands\RefreshPermissions;
|
|
|
use App\Commands\TestWebsocketEvent;
|
|
|
+use App\Models\Provider;
|
|
|
+use App\Services\Pagarme\PagarmeTransferService;
|
|
|
+use App\Services\ProviderWithdrawalService;
|
|
|
+use Illuminate\Foundation\Inspiring;
|
|
|
+use Illuminate\Support\Facades\Artisan;
|
|
|
|
|
|
Artisan::command('inspire', function () {
|
|
|
$this->comment(Inspiring::quote());
|
|
|
@@ -35,3 +38,32 @@ Artisan::command('websocket:test {room} {--event=test-event} {--data=}', functio
|
|
|
'--data' => $this->option('data'),
|
|
|
]);
|
|
|
})->purpose('Test websocket broadcasting by emitting an event');
|
|
|
+
|
|
|
+//
|
|
|
+
|
|
|
+Artisan::command('pagarme:recipient-balance {recipient_id} {--skip-local}', function (
|
|
|
+ PagarmeTransferService $pagarmeTransfer,
|
|
|
+ ProviderWithdrawalService $withdrawals,
|
|
|
+) {
|
|
|
+ $recipientId = $this->argument('recipient_id');
|
|
|
+
|
|
|
+ if (! $this->option('skip-local')) {
|
|
|
+ $provider = Provider::query()
|
|
|
+ ->where('recipient_id', $recipientId)
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ if ($provider) {
|
|
|
+ $this->info('Saldo calculado localmente:');
|
|
|
+ $this->line(sprintf(' available: R$ %s', number_format($withdrawals->getAvailableBalance($provider), 2, ',', '.')));
|
|
|
+ $this->line(sprintf(' pending: R$ %s', number_format($withdrawals->getPendingBalance($provider), 2, ',', '.')));
|
|
|
+ $this->newLine();
|
|
|
+ } else {
|
|
|
+ $this->warn('Nenhum provider local encontrado para esse recipient_id.');
|
|
|
+ $this->newLine();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->info('Saldo retornado pelo Pagar.me:');
|
|
|
+
|
|
|
+ $this->line(json_encode($pagarmeTransfer->getRecipientBalance($recipientId), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
|
|
|
+})->purpose('Consult Pagar.me recipient balance and compare it with local withdrawal balance');
|