File manager - Edit - /var/www/html/portal/app/Http/Services/Comunicacao/BoletimService.php
Back
<?php namespace App\Http\Services\Comunicacao; use App\Models\Comunicacao\Boletim; use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Pagination\LengthAwarePaginator; use App\Http\Requests\Comunicacao\BoletimRequest; class BoletimService extends Controller { protected $Boletim = Boletim::class; public function index(Request $request): LengthAwarePaginator { $paginate = 50; if (isset($request->q) && !empty($request->q)) { $query = trim($request->q); return $this->Boletim::where('description', 'like', '%' . $query . '%') ->orderByDesc('publicationDate') ->select($this->getArrayFieldsBulleins()) ->paginate($paginate); } elseif (isset($request->dataInicio) && isset($request->dataFim) && !empty($request->dataInicio) && !empty($request->dataFim)) { return $this->Boletim::whereBetween('publicationDate', [$request->dataInicio, $request->dataFim]) ->orderByDesc('number') ->select($this->getArrayFieldsBulleins()) ->paginate($paginate); } elseif (isset($request->y) && !empty($request->y)) { return $this->Boletim::whereYear('publicationDate', '=', $request->y) ->orderByDesc('number') ->select($this->getArrayFieldsBulleins()) ->paginate($paginate); } elseif (isset($request->n) && !empty($request->n)) { $numero = (string) $request->n; // Remove espaços e zeros à esquerda para busca mais flexível $numeroLimpo = ltrim(trim($numero), '0'); return $this->Boletim::where(function ($query) use ($numero, $numeroLimpo) { $query->where('number', '=', $numero) ->orWhere('number', 'LIKE', '%' . $numero . '%') ->orWhere('number', 'LIKE', '%' . $numeroLimpo . '%') ->orWhere(DB::raw('TRIM(LEADING "0" FROM number)'), '=', $numeroLimpo); }) ->orderByDesc('number') ->select($this->getArrayFieldsBulleins()) ->paginate($paginate); } return $this->Boletim::orderByDesc('number') ->select($this->getArrayFieldsBulleins()) ->paginate($paginate); } /** * Retorna array com os campos do boletim para consultas * * @return array */ protected function getArrayFieldsBulleins(): array { return [ 'id', 'publicationDate', 'month', 'number', 'title', 'url', 'fileSizeKB', 'extraordinaryEdition', 'status', 'indexado' ]; } public function store(BoletimRequest $request, array $array_boletim): RedirectResponse { try { DB::beginTransaction(); Boletim::create($array_boletim); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/boletins?page={$page}")->with("success", __("* Boletim criado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar adiciona um novo boletim. ' . $e->getMessage()); } } /************* ✨ Windsurf Command ⭐ *************/ /** * Atualiza um boletim com base nos dados enviados pelo formulário. * * @param BoletimRequest $request * @param Boletim $boletim * @param Array $array_boletim * @return RedirectResponse * * @throws \Exception */ /******* 20d5db37-ba97-42cd-a9a5-f93b75dddc3b *******/ public function update(BoletimRequest $request, Boletim $boletim, array $array_boletim): RedirectResponse { try { DB::beginTransaction(); $boletim->fill($array_boletim); $boletim->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/boletins?page={$page}")->with("success", __("* Boletim atualizado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar atualizar este boletim. ' . $e->getMessage()); } } public function destroy(Request $request, Boletim $boletim): RedirectResponse { try { DB::beginTransaction(); Boletim::destroy($boletim->id); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/boletins?page={$page}")->with("success", __("* O boletim foi excluído com sucesso! Esta ação não pode ser desfeita!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar excluir este boletim. ' . $e->getMessage()); } } public function status(Request $request, Boletim $boletim): RedirectResponse { try { DB::beginTransaction(); $boletim->fill(['status' => $request->checkStatus]); $boletim->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/boletins?page={$page}") ->with("success", __("* O status do boletim foi atualizado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar alterar o status deste boletim. ' . $e->getMessage()); } } public function indexacao(Request $request, Boletim $boletim, $array_boletim): RedirectResponse { try { DB::beginTransaction(); $boletim->fill($array_boletim); $boletim->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/boletins?page={$page}")->with("success", __("* Boletim indexado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar indexar as informações deste boletim. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings