vendorRepo = $vendorRepo; $this->ninjaRepo = $ninjaRepo; $this->datatableService = $datatableService; } protected function getRepo() { return $this->vendorRepo; } public function save($data) { if (Auth::user()->account->isNinjaAccount() && isset($data['pro_plan_paid'])) { $this->ninjaRepo->updateProPlanPaid($data['public_id'], $data['pro_plan_paid']); } return $this->vendorRepo->save($data); } public function getDatatable($search) { $query = $this->vendorRepo->find($search); return $this->createDatatable(ENTITY_VENDOR, $query); } protected function getDatatableColumns($entityType, $hideVendor) { return [ [ 'name', function ($model) { return link_to("vendors/{$model->public_id}", $model->name ?: ''); } ], [ 'first_name', function ($model) { return link_to("vendors/{$model->public_id}", $model->first_name.' '.$model->last_name); } ], [ 'email', function ($model) { return link_to("vendors/{$model->public_id}", $model->email ?: ''); } ], [ 'vendors.created_at', function ($model) { return Utils::timestampToDateString(strtotime($model->created_at)); } ], ]; } protected function getDatatableActions($entityType) { return [ [ trans('texts.edit_vendor'), function ($model) { return URL::to("vendors/{$model->public_id}/edit"); } ], [], [ trans('texts.enter_expense'), function ($model) { return URL::to("expenses/create/{$model->public_id}"); } ] ]; } }