%PDF- %PDF-
| Direktori : /home/vacivi36/core/app/Http/Controllers/ |
| Current File : /home/vacivi36/core/app/Http/Controllers/CompanyController.php |
<?php
namespace App\Http\Controllers;
use App\Models\Company;
use Illuminate\Http\Request;
class CompanyController extends Controller
{
/**
* Exibir a lista de empresas.
*/
public function index()
{
$companies = Company::all();
return response()->json($companies);
}
/**
* Criar uma nova empresa.
*/
public function store(Request $request)
{
// Verifica se o cnpj já está cadastrado
if (Company::where('cnpj', $request->cnpj)->exists()) {
return response()->json(['status' => 'error', 'message' => 'CNPJ já cadastrado no sistema. Por favor, utilize outro CNPJ ou verifique as informações.'], 409);
}
$company = new Company();
$company->name = $request->name;
$company->cnpj = $request->cnpj;
$company->address = $request->address;
$company->phone = $request->phone;
$company->status = $request->has('status') ? 1 : 0;
$company->name_responsible = $request->name_responsible;
$company->number_employees = $request->number_employees;
$company->notes = $request->notes;
$insert = $company->save();
if ($insert) {
return response()->json(['status' => 'success', 'message' => 'Empresa criada com sucesso!'], 201);
} else {
return response()->json(['status' => 'error', 'message' => 'Erro ao criar empresa.'], 500);
}
}
/**
* Exibir uma empresa específica.
*/
public function show($id)
{
}
/**
* Atualizar uma empresa existente.
*/
public function update(Request $request, $id)
{
$company = Company::findOrFail($id);
$company->name = $request->name;
$company->cnpj = $request->cnpj;
$company->address = $request->address;
$company->phone = $request->phone;
$company->status = $request->has('status') ? ($request->status ? 1 : 0) : $company->status;
$company->name_responsible = $request->name_responsible;
$company->number_employees = $request->number_employees;
$company->notes = $request->notes;
$update = $company->save();
if ($update) {
return response()->json(['status' => 'success', 'message' => 'Empresa atualizada com sucesso!'], 200);
} else {
return response()->json(['status' => 'error', 'message' => 'Erro ao atualizar empresa.'], 500);
}
}
/**
* Remover uma empresa.
*/
public function destroy($id)
{
$company = Company::findOrFail($id);
// Verificar se há usuários associados usando o relacionamento
if ($company->users()->exists() || $company->patients()->exists()) {
return response()->json([
'message' => 'A empresa não pode ser excluída porque possui usuários ou pacientes vinculados.'
], 400);
}
$company->delete();
return response()->json(['message' => 'Empresa excluída com sucesso!']);
}
public function listActive()
{
return Company::where('status', true)->get();
}
}