App\Ninja\Repositories\DashboardRepository::paidToDate PHP Method

paidToDate() public method

public paidToDate ( $account, $userId, $viewAll )
    public function paidToDate($account, $userId, $viewAll)
    {
        $accountId = $account->id;
        $select = DB::raw('SUM(' . DB::getQueryGrammar()->wrap('payments.amount', true) . ' - ' . DB::getQueryGrammar()->wrap('payments.refunded', true) . ') as value,' . DB::getQueryGrammar()->wrap('clients.currency_id', true) . ' as currency_id');
        $paidToDate = DB::table('payments')->select($select)->leftJoin('invoices', 'invoices.id', '=', 'payments.invoice_id')->leftJoin('clients', 'clients.id', '=', 'invoices.client_id')->where('payments.account_id', '=', $accountId)->where('clients.is_deleted', '=', false)->where('invoices.is_deleted', '=', false)->where('payments.is_deleted', '=', false)->whereNotIn('payments.payment_status_id', [PAYMENT_STATUS_VOIDED, PAYMENT_STATUS_FAILED]);
        if (!$viewAll) {
            $paidToDate->where('invoices.user_id', '=', $userId);
        }
        if ($account->financial_year_start) {
            $yearStart = str_replace('2000', date('Y'), $account->financial_year_start);
            $paidToDate->where('payments.payment_date', '>=', $yearStart);
        }
        return $paidToDate->groupBy('payments.account_id')->groupBy(DB::raw('CASE WHEN ' . DB::getQueryGrammar()->wrap('clients.currency_id', true) . ' IS NULL THEN ' . ($account->currency_id ?: DEFAULT_CURRENCY) . ' ELSE ' . DB::getQueryGrammar()->wrap('clients.currency_id', true) . ' END'))->get();
    }