public function findNeedingReminding(Account $account)
{
$dates = [];
for ($i = 1; $i <= 3; $i++) {
if ($date = $account->getReminderDate($i)) {
$field = $account->{"field_reminder{$i}"} == REMINDER_FIELD_DUE_DATE ? 'due_date' : 'invoice_date';
$dates[] = "{$field} = '{$date}'";
}
}
$sql = implode(' OR ', $dates);
$invoices = Invoice::invoiceType(INVOICE_TYPE_STANDARD)->whereAccountId($account->id)->where('balance', '>', 0)->where('is_recurring', '=', false)->whereRaw('(' . $sql . ')')->get();
return $invoices;
}