public function getClientRecurringDatatable($contactId)
{
$query = DB::table('invitations')->join('accounts', 'accounts.id', '=', 'invitations.account_id')->join('invoices', 'invoices.id', '=', 'invitations.invoice_id')->join('clients', 'clients.id', '=', 'invoices.client_id')->join('frequencies', 'frequencies.id', '=', 'invoices.frequency_id')->where('invitations.contact_id', '=', $contactId)->where('invitations.deleted_at', '=', null)->where('invoices.invoice_type_id', '=', INVOICE_TYPE_STANDARD)->where('invoices.is_deleted', '=', false)->where('clients.deleted_at', '=', null)->where('invoices.is_recurring', '=', true)->whereIn('invoices.auto_bill', [AUTO_BILL_OPT_IN, AUTO_BILL_OPT_OUT])->select(DB::raw('COALESCE(clients.currency_id, accounts.currency_id) currency_id'), DB::raw('COALESCE(clients.country_id, accounts.country_id) country_id'), 'invitations.invitation_key', 'invoices.invoice_number', 'invoices.due_date', 'clients.public_id as client_public_id', 'clients.name as client_name', 'invoices.public_id', 'invoices.amount', 'invoices.start_date', 'invoices.end_date', 'invoices.client_enable_auto_bill', 'frequencies.name as frequency');
$table = \Datatable::query($query)->addColumn('frequency', function ($model) {
return $model->frequency;
})->addColumn('start_date', function ($model) {
return Utils::fromSqlDate($model->start_date);
})->addColumn('end_date', function ($model) {
return Utils::fromSqlDate($model->end_date);
})->addColumn('amount', function ($model) {
return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id);
})->addColumn('client_enable_auto_bill', function ($model) {
if ($model->client_enable_auto_bill) {
return trans('texts.enabled') . ' - <a href="javascript:setAutoBill(' . $model->public_id . ',false)">' . trans('texts.disable') . '</a>';
} else {
return trans('texts.disabled') . ' - <a href="javascript:setAutoBill(' . $model->public_id . ',true)">' . trans('texts.enable') . '</a>';
}
});
return $table->make();
}