Просмотр исходного кода

feat(asaas): baixa automática do a pagar da unidade quando o TBR é pago via webhook

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee 4 недель назад
Родитель
Сommit
6c172d50b5
1 измененных файлов с 19 добавлено и 0 удалено
  1. 19 0
      app/Jobs/ProcessAsaasWebhookJob.php

+ 19 - 0
app/Jobs/ProcessAsaasWebhookJob.php

@@ -107,6 +107,25 @@ public function handle(): void
 
         $receive->update($updateData);
 
+        // Reflete a baixa na Conta a Pagar da unidade quando o TBR é confirmado
+        // pago via Asaas (mantém o espelho em dia sem baixa manual). A baixa manual
+        // de cada lado continua independente para os demais casos.
+        if ($newStatusValue === ReceivableStatus::PAID->value) {
+            $payable = \App\Models\UnitAccountPayable::where('franchisee_account_receive_id', $receive->id)
+                ->whereNotIn('status', ['paid', 'cancelled'])
+                ->first();
+
+            if ($payable) {
+                $payable->update([
+                    'status'       => 'paid',
+                    'paid_value'   => $payable->value,
+                    'payment_date' => $updateData['payment_date'] ?? now(),
+                ]);
+
+                Log::info("Asaas Webhook Job: Conta a Pagar da unidade #{$payable->id} baixada automaticamente (TBR pago).");
+            }
+        }
+
         Log::info("Asaas Webhook Job: {$type} #{$receive->id} atualizado para '{$newStatusValue}'", [
             'event' => $event,
             'asaas_id' => $asaasId,