App\Console\Commands\CheckData::checkPaidToDate PHP Method

checkPaidToDate() private method

private checkPaidToDate ( )
    private function checkPaidToDate()
    {
        // update client paid_to_date value
        $clients = DB::table('clients')->join('payments', 'payments.client_id', '=', 'clients.id')->join('invoices', 'invoices.id', '=', 'payments.invoice_id')->where('payments.is_deleted', '=', 0)->where('payments.payment_status_id', '!=', 2)->where('payments.payment_status_id', '!=', 3)->where('invoices.is_deleted', '=', 0)->groupBy('clients.id')->havingRaw('clients.paid_to_date != sum(payments.amount - payments.refunded) and clients.paid_to_date != 999999999.9999')->get(['clients.id', 'clients.paid_to_date', DB::raw('sum(payments.amount) as amount')]);
        $this->logMessage(count($clients) . ' clients with incorrect paid to date');
        if (count($clients) > 0) {
            $this->isValid = false;
        }
        if ($this->option('fix') == 'true') {
            foreach ($clients as $client) {
                DB::table('clients')->where('id', $client->id)->update(['paid_to_date' => $client->amount]);
            }
        }
    }