%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home2/vacivi36/core/app/Http/Controllers/
Upload File :
Create Path :
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();
    }

}

Zerion Mini Shell 1.0