%PDF- %PDF-
Direktori : /home2/vacivi36/core/app/Http/Controllers/ |
Current File : //home2/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(); } }