File manager - Edit - /var/www/html/portal/app/Http/Controllers/Admin/PppController.php
Back
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Ppp; use App\Models\Convenio; use Illuminate\Http\Request; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; class PppController extends Controller { private string $permissao = 'GERENCIADOR_DE_PPPS'; public function index(Request $request): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, 'visualizar'); if ($response instanceof RedirectResponse) { return $response; } $activeTab = $request->get('tab', 'ppps'); $queryPpps = Ppp::query(); if ($request->filled('q_ppps')) { $queryPpps->where('projeto', 'like', '%' . $request->q_ppps . '%') ->orWhere('empresa', 'like', '%' . $request->q_ppps . '%'); } $ppps = $queryPpps->paginate(10, ['*'], 'page_ppps')->withQueryString(); $queryConvenios = Convenio::query(); if ($request->filled('q_convenios')) { $termo = '%' . $request->q_convenios . '%'; $queryConvenios->where(function ($query) use ($termo) { $query->where('objeto', 'like', $termo) ->orWhere('executor_ordenador', 'like', $termo) ->orWhere('concedente', 'like', $termo) ->orWhere('numero_instrumento', 'like', $termo) ->orWhere('numero_processo_sei', 'like', $termo); }); } $convenios = $queryConvenios->paginate(10, ['*'], 'page_convenios')->withQueryString(); return view('admin.ppps.index', compact('ppps', 'convenios', 'activeTab')); } public function create(): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, 'adicionar'); if ($response instanceof RedirectResponse) { return $response; } return view('admin.ppps.create'); } public function store(Request $request): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'adicionar'); if ($response instanceof RedirectResponse) { return $response; } $validated = $request->validate([ 'projeto' => 'required|string|max:255', 'criterio_julgamento' => 'nullable|string|max:255', 'empresa' => 'nullable|string|max:255', 'prazo_concessao' => 'nullable|string|max:255', 'secretaria_responsavel' => 'nullable|string|max:255', 'andamento' => 'nullable|string|max:255', 'proxima_etapa' => 'nullable|string|max:255', 'porcentagem_conclusao' => 'nullable|numeric|min:0|max:100', 'prazo_implantacao' => 'nullable|string|max:255', 'outorga_fixa' => 'nullable|string|max:255', 'outorga_variavel' => 'nullable|string|max:255', 'investimento_total' => 'nullable|string|max:255', 'aporte_municipio' => 'nullable|string|max:255', 'contraprestacao_mensal' => 'nullable|string|max:255', 'obrigacao' => 'nullable|string', 'payback' => 'nullable|string|max:255', 'capex' => 'nullable|string|max:255', 'opex' => 'nullable|string|max:255', 'tir' => 'nullable|string|max:255', 'valor_estimado_contrato' => 'nullable|string|max:255', 'observacoes' => 'nullable|string', // TOGGLES 'show_projeto' => 'boolean', 'show_empresa' => 'boolean', 'show_secretaria_responsavel' => 'boolean', 'show_criterio_julgamento' => 'boolean', 'show_prazo_concessao' => 'boolean', 'show_andamento' => 'boolean', 'show_proxima_etapa' => 'boolean', 'show_porcentagem_conclusao' => 'boolean', 'show_prazo_implantacao' => 'boolean', 'show_valor_estimado_contrato' => 'boolean', 'show_investimento_total' => 'boolean', 'show_outorga_fixa' => 'boolean', 'show_outorga_variavel' => 'boolean', 'show_aporte_municipio' => 'boolean', 'show_contraprestacao_mensal' => 'boolean', 'show_payback' => 'boolean', 'show_tir' => 'boolean', 'show_capex' => 'boolean', 'show_opex' => 'boolean', 'show_obrigacao' => 'boolean', 'show_observacoes' => 'boolean', ]); $ppp = Ppp::create($validated); if ($request->has('novo_historico') && is_array($request->input('novo_historico'))) { foreach ($request->input('novo_historico') as $nh) { if (!empty($nh['orgao']) || !empty($nh['observacao'])) { $ppp->historicos()->create([ 'orgao' => $nh['orgao'] ?? null, 'observacao' => $nh['observacao'] ?? null, 'data' => !empty($nh['data']) ? $nh['data'] : now()->format('Y-m-d'), 'data_fim' => !empty($nh['data_fim']) ? $nh['data_fim'] : null, ]); } } } return redirect()->route('admin.ppps.index') ->with('success', 'PPP criada com sucesso!'); } public function edit(string $id): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, 'editar'); if ($response instanceof RedirectResponse) { return $response; } $ppp = Ppp::findOrFail($id); return view('admin.ppps.edit', compact('ppp')); } public function update(Request $request, string $id): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'editar'); if ($response instanceof RedirectResponse) { return $response; } $ppp = Ppp::findOrFail($id); $validated = $request->validate([ 'projeto' => 'required|string|max:255', 'criterio_julgamento' => 'nullable|string|max:255', 'empresa' => 'nullable|string|max:255', 'prazo_concessao' => 'nullable|string|max:255', 'secretaria_responsavel' => 'nullable|string|max:255', 'andamento' => 'nullable|string|max:255', 'proxima_etapa' => 'nullable|string|max:255', 'porcentagem_conclusao' => 'nullable|numeric|min:0|max:100', 'prazo_implantacao' => 'nullable|string|max:255', 'outorga_fixa' => 'nullable|string|max:255', 'outorga_variavel' => 'nullable|string|max:255', 'investimento_total' => 'nullable|string|max:255', 'aporte_municipio' => 'nullable|string|max:255', 'contraprestacao_mensal' => 'nullable|string|max:255', 'obrigacao' => 'nullable|string', 'payback' => 'nullable|string|max:255', 'capex' => 'nullable|string|max:255', 'opex' => 'nullable|string|max:255', 'tir' => 'nullable|string|max:255', 'valor_estimado_contrato' => 'nullable|string|max:255', 'observacoes' => 'nullable|string', // TOGGLES 'show_projeto' => 'boolean', 'show_empresa' => 'boolean', 'show_secretaria_responsavel' => 'boolean', 'show_criterio_julgamento' => 'boolean', 'show_prazo_concessao' => 'boolean', 'show_andamento' => 'boolean', 'show_proxima_etapa' => 'boolean', 'show_porcentagem_conclusao' => 'boolean', 'show_prazo_implantacao' => 'boolean', 'show_valor_estimado_contrato' => 'boolean', 'show_investimento_total' => 'boolean', 'show_outorga_fixa' => 'boolean', 'show_outorga_variavel' => 'boolean', 'show_aporte_municipio' => 'boolean', 'show_contraprestacao_mensal' => 'boolean', 'show_payback' => 'boolean', 'show_tir' => 'boolean', 'show_capex' => 'boolean', 'show_opex' => 'boolean', 'show_obrigacao' => 'boolean', 'show_observacoes' => 'boolean', ]); $ppp->update($validated); if ($request->has('novo_historico') && is_array($request->input('novo_historico'))) { foreach ($request->input('novo_historico') as $nh) { if (!empty($nh['orgao']) || !empty($nh['observacao'])) { $ppp->historicos()->create([ 'orgao' => $nh['orgao'] ?? null, 'observacao' => $nh['observacao'] ?? null, 'data' => !empty($nh['data']) ? $nh['data'] : now()->format('Y-m-d'), 'data_fim' => !empty($nh['data_fim']) ? $nh['data_fim'] : null, ]); } } } if ($request->has('historicos_edit') && is_array($request->input('historicos_edit'))) { foreach ($request->input('historicos_edit') as $hId => $hData) { if (isset($hData['delete']) && $hData['delete'] == 1) { $ppp->historicos()->where('id', $hId)->delete(); } else { $ppp->historicos()->where('id', $hId)->update([ 'orgao' => $hData['orgao'] ?? null, 'observacao' => $hData['observacao'] ?? null, 'data' => !empty($hData['data']) ? $hData['data'] : null, 'data_fim' => !empty($hData['data_fim']) ? $hData['data_fim'] : null, ]); } } } return redirect()->route('admin.ppps.index') ->with('success', 'PPP atualizada com sucesso!'); } public function destroy(string $id): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'excluir'); if ($response instanceof RedirectResponse) { return $response; } $ppp = Ppp::findOrFail($id); $ppp->delete(); return redirect()->route('admin.ppps.index') ->with('success', 'PPP excluĂda com sucesso!'); } public function status(string $id): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'editar'); if ($response instanceof RedirectResponse) { return $response; } $ppp = Ppp::findOrFail($id); $ppp->status = $ppp->status === 'ATIVADO' ? 'DESATIVADO' : 'ATIVADO'; $ppp->save(); return redirect()->route('admin.ppps.index') ->with('success', 'Status da PPP atualizado!'); } public function exportAllPdf() { $response = $this->checkPermissao($this->permissao, 'visualizar'); if ($response instanceof RedirectResponse) { return $response; } $ppps = Ppp::orderBy('projeto')->get(); $filename = 'relatorio_geral_ppps_' . date('YmdHis'); $pdf = \Barryvdh\DomPDF\Facade\Pdf::loadView('admin.ppps.export_all_pdf', compact('ppps')); $pdf->setPaper('a3', 'landscape'); return $pdf->download($filename . '.pdf'); } public function deleteHistorico($historico) { $historico = \App\Models\PppHistorico::findOrFail($historico); $historico->delete(); return response()->json([ 'success' => true ]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings