query()->select( 'id', 'year', 'from', 'to', 'created_at', ); $columns = ['', 'id', 'year', 'from', 'to', 'created_at']; if (isset($request['year']) && $request['year'] != '') { $searchQuery = $searchQuery->where('year', 'like', '%' . $request['year'] . '%'); } if (isset($request['order']) && $request['order'] != "") { $searchQuery = $searchQuery->orderBy( $columns[$request['order'][0]['column']], $request['order'][0]['dir'] ); } } catch (Exception $ex) { Log::error($ex->getMessage()); } return $searchQuery; } /** * This function is for the format the Datatable columns * * @param $request * @return object */ public function getForDataTable($request): object { $response = (object)[]; try { $dataTableQuery = $this->prepareSearchQuery($request); // ->orderBy('id', 'DESC'); $response = Datatables::of($dataTableQuery) ->addColumn( 'checkbox_action', function ($chaturmas_date) { return $chaturmas_date->chaturmas_date_checkbox_action; } ) ->addIndexColumn() ->addColumn( 'year', function ($chaturmas_date) { return (($chaturmas_date->year) ? $chaturmas_date->year : '-'); } ) ->addColumn( 'from', function ($chaturmas_date) { return (($chaturmas_date->from) ? defaultDateTimeFormat($chaturmas_date->from) : '-'); } ) ->addColumn( 'to', function ($chaturmas_date) { return (($chaturmas_date->to) ? defaultDateTimeFormat($chaturmas_date->to) : '-'); } ) ->addColumn( 'created_at', function ($chaturmas_date) { return (($chaturmas_date->created_at) ? defaultDateTimeFormat($chaturmas_date->created_at) : '-'); } ) ->addColumn( 'action', function ($chaturmas_date) { if ( !empty($chaturmas_date->roles[0]['name']) != config('access.users.admin_role') || !empty($chaturmas_date->roles[0]['name']) != config('access.users.super_admin_role') || loggedInUser()->isSuperAdmin() || loggedInUser()->isAdmin() ) { return $chaturmas_date->chaturmas_date_action_buttons; } return ""; } ) ->setRowId( function ($chaturmas_date) { return 'recordRow-' . $chaturmas_date->id; } ) ->rawColumns(['status', 'action', 'checkbox_action']) ->make(true); } catch (Exception $ex) { Log::error($ex->getMessage()); } return $response; } /** * This function is for the create chaturmas_date * * @param array $request * @return ChaturmasDate * @throws GeneralException */ public function create(array $request): ChaturmasDate { try { return DB::transaction( function () use ($request) { $chaturmas_date = $this->query()->create( [ 'year' => $request['year'], 'from' => !empty($request['from']) ? $request['from'] : Constant::STATUS_ZERO, 'to' => !empty($request['to']) ? $request['to'] : Constant::STATUS_ZERO, 'created_by' => !empty(loggedInUser()->id) ? loggedInUser()->id : Constant::NULL ] ); return $chaturmas_date; } ); } catch (Exception $ex) { Log::error($ex->getMessage()); throw new GeneralException(__('message.create_chaturmas_date_error')); } } /** * This function is for the update chaturmas_date * * @param object $chaturmas_date * @param array $request * @return ChaturmasDate * @throws GeneralException */ public function update(object $chaturmas_date, array $request): ChaturmasDate { try { return DB::transaction( function () use ($chaturmas_date, $request) { $this->query()->where('id', $chaturmas_date->id)->update( [ 'year' => !empty($request['year']) ? $request['year'] : $chaturmas_date->year, 'from' => !empty($request['from']) ? $request['from'] : $chaturmas_date->from, 'to' => !empty($request['to']) ? $request['to'] : $chaturmas_date->to, 'updated_by' => !empty(loggedInUser()->id) ? loggedInUser()->id : $chaturmas_date->updated_by, ] ); return $chaturmas_date; } ); } catch (Exception $ex) { Log::error($ex->getMessage()); throw new GeneralException(__('message.update_chaturmas_date_error')); } } /** * This function is for the multiple records action from the grid * * @param string $actionType * @param array $data * @return bool * @throws GeneralException */ public function gridActions(string $actionType, array $data): bool { try { switch ($actionType) { case Constant::STATUS_ACTIVE: $this->query()->whereIn('id', $data)->update(['status' => Constant::STATUS_ONE]); return Constant::STATUS_TRUE; case Constant::STATUS_INACTIVE: $this->query()->whereIn('id', $data)->update(['status' => Constant::STATUS_ZERO]); return Constant::STATUS_TRUE; case Constant::STATUS_DELETE: $this->query()->whereIn('id', $data)->delete(); return Constant::STATUS_TRUE; default: break; } } catch (Exception $ex) { Log::error($ex->getMessage()); throw new GeneralException(__('message.delete_chaturmas_date_error')); } } }