/** * Get cash */ public function cash() { $startingCash = config('default.starting_cash'); $stockCost = Stock::dateRangeTo($this->to)->sum('cost'); $amountLoaned = abs(Payment::dateRangeTo($this->to)->where('amount', '<', 0)->sum('amount')); $amountPaid = Payment::dateRangeTo($this->to)->where('amount', '>', 0)->sum('amount'); $cashSales = Sale::dateRangeTo($this->to)->where('user_id', null)->get(); $totalCashSales = 0; foreach ($cashSales as $cashSale) { $totalCashSales += $cashSale->total; } $initialBalances = User::dateRangeTo($this->to)->sum('initial_balance'); $paymentsToBank = Bank::dateRangeTo($this->to)->sum('amount'); return $startingCash + $amountPaid + $totalCashSales + $initialBalances - $stockCost - $amountLoaned - $paymentsToBank; }