public function activityDatatable()
{
if (!($contact = $this->getContact())) {
return $this->returnError();
}
$client = $contact->client;
$query = $this->activityRepo->findByClientId($client->id);
$query->where('activities.adjustment', '!=', 0);
return Datatable::query($query)->addColumn('activities.id', function ($model) {
return Utils::timestampToDateTimeString(strtotime($model->created_at));
})->addColumn('activity_type_id', function ($model) {
$data = ['client' => Utils::getClientDisplayName($model), 'user' => $model->is_system ? '<i>' . trans('texts.system') . '</i>' : $model->account_name, 'invoice' => $model->invoice, 'contact' => Utils::getClientDisplayName($model), 'payment' => $model->payment ? ' ' . $model->payment : '', 'credit' => $model->payment_amount ? Utils::formatMoney($model->credit, $model->currency_id, $model->country_id) : '', 'payment_amount' => $model->payment_amount ? Utils::formatMoney($model->payment_amount, $model->currency_id, $model->country_id) : null, 'adjustment' => $model->adjustment ? Utils::formatMoney($model->adjustment, $model->currency_id, $model->country_id) : null];
return trans("texts.activity_{$model->activity_type_id}", $data);
})->addColumn('balance', function ($model) {
return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id);
})->addColumn('adjustment', function ($model) {
return $model->adjustment != 0 ? Utils::wrapAdjustment($model->adjustment, $model->currency_id, $model->country_id) : '';
})->make();
}