- Created ExampleTest and RoutesTest for basic application response and route testing. - Implemented IsolatedDatabaseTestCase for isolated database testing. - Added unit tests for various models and services including Contract, CPE, and LeadDetail. - Developed request validation tests for CreateClientRequest, UpdateClientRequest, and ContractRequest. - Introduced Vite configuration for asset management in the Laravel application.
107 lines
3.3 KiB
PHP
107 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\ContractRequest;
|
|
use App\Http\Requests\RenewContractRequest;
|
|
use App\Services\ContractService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ContractController extends Controller
|
|
{
|
|
public function __construct(private ContractService $contracts = new ContractService())
|
|
{
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
return view('web.contract.list', $this->contracts->index($request));
|
|
}
|
|
|
|
public function create(Request $request)
|
|
{
|
|
return view('web.contract.add_edit', $this->contracts->create($request));
|
|
}
|
|
|
|
public function store(ContractRequest $request)
|
|
{
|
|
$contract = $this->contracts->store($request);
|
|
return redirect()->route('client.detail', ['id' => $contract->client_id])->with('success', 'Contrato criado com sucesso!');
|
|
}
|
|
|
|
public function edit(string $id)
|
|
{
|
|
return view('web.contract.add_edit', $this->contracts->edit($id));
|
|
}
|
|
|
|
public function update(ContractRequest $request, string $id)
|
|
{
|
|
$this->contracts->update($request, $id);
|
|
return redirect()->route('contract.list')->with('success', 'Contrato atualizado com sucesso!');
|
|
}
|
|
|
|
public function show(string $id)
|
|
{
|
|
return view('web.contract.detail', $this->contracts->show($id));
|
|
}
|
|
|
|
public function renewForm(string $id)
|
|
{
|
|
return view('web.contract.renew', $this->contracts->renewForm($id));
|
|
}
|
|
|
|
public function renew(RenewContractRequest $request, $id)
|
|
{
|
|
$contract = $this->contracts->renew($request, $id);
|
|
return redirect()->route('contract.edit', ['id' => $contract->id])->with('success', 'Contrato renovado com sucesso!');
|
|
}
|
|
|
|
public function history($id)
|
|
{
|
|
return view('web.contract.history', $this->contracts->history($id));
|
|
}
|
|
|
|
public function createHistory($id)
|
|
{
|
|
return view('web.contract.history_create', $this->contracts->createHistory($id));
|
|
}
|
|
|
|
public function storeHistory(Request $request, $id)
|
|
{
|
|
$this->contracts->storeHistory($request, $id);
|
|
return redirect()->route('contract.history', $id)->with('success', 'Registo do histórico criado com sucesso.');
|
|
}
|
|
|
|
public function editHistory($id, $historyId)
|
|
{
|
|
return view('web.contract.history_edit', $this->contracts->editHistory($id, $historyId));
|
|
}
|
|
|
|
public function updateHistory(Request $request, $id, $historyId)
|
|
{
|
|
$this->contracts->updateHistory($request, $id, $historyId);
|
|
return redirect()->route('contract.history', $id)->with('success', 'Registo do histórico atualizado com sucesso.');
|
|
}
|
|
|
|
public function destroyHistory($id, $historyId)
|
|
{
|
|
$this->contracts->destroyHistory($id, $historyId);
|
|
return redirect()->route('contract.history', $id)->with('success', 'Registo do histórico eliminado com sucesso.');
|
|
}
|
|
|
|
public function export(Request $request)
|
|
{
|
|
return $this->contracts->export($request);
|
|
}
|
|
|
|
public function destroy(Request $request, string $id)
|
|
{
|
|
$result = $this->contracts->destroy($id);
|
|
return $request->ajax() ? response()->json($result) : back()->with('success', $result['message']);
|
|
}
|
|
|
|
public function bulkDestroy(Request $request)
|
|
{
|
|
return response()->json($this->contracts->bulkDestroy($request));
|
|
}
|
|
} |