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

feat(financial-dashboard): adiciona valor total do estoque no overview

Novo indicador stock_value calculado como SUM(price_sale * quantity) dos
produtos, mesma base exibida por produto na aba de Produtos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee 1 неделя назад
Родитель
Сommit
75cf33ba73
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      app/Services/FinancialDashboardService.php

+ 11 - 0
app/Services/FinancialDashboardService.php

@@ -55,6 +55,7 @@ public function overview(): array
             'accounts_payable'    => $this->pendingPayables(),
             'accounts_receivable' => $this->pendingReceivables(),
             'bank_balance_total'  => $this->bankBalanceTotal(),
+            'stock_value'         => $this->stockValue(),
             'last_transactions'   => $this->lastTransactions(),
             'franchise_performance' => $this->franchisePerformance($monthStart, $monthEnd),
         ];
@@ -107,6 +108,16 @@ private function pendingReceivables(): array
         return ['value' => (float) $row->total, 'count' => (int) $row->qty];
     }
 
+    private function stockValue(): float
+    {
+        // Valor total do estoque = soma de (preço de venda x quantidade) de todos os
+        // produtos. Mesma base exibida por produto na aba de Produtos (price_sale * quantity).
+        return (float) DB::table('products')
+            ->whereNull('deleted_at')
+            ->selectRaw('COALESCE(SUM(price_sale * quantity), 0) AS total')
+            ->value('total');
+    }
+
     private function bankBalanceTotal(): float
     {
         // Saldo da rede = créditos (chegam no to_account) menos débitos (saem do from_account),