pdv.backend/app/Http/Controllers/App/UnitOfMeasurementController.php
Juan Felipe Zapata Moreno 562397402c feat: unidades de medida y mensajería WhatsApp
- Implementa CRUD de unidades y soporte para decimales en inventario.
- Integra servicios de WhatsApp para envío de documentos y auth.
- Ajusta validación de series y permisos (RoleSeeder).
2026-02-10 00:06:24 -06:00

77 lines
2.0 KiB
PHP

<?php namespace App\Http\Controllers\App;
/**
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
*/
use App\Http\Controllers\Controller;
use App\Http\Requests\App\UnitOfMeasurementStoreRequest;
use App\Http\Requests\App\UnitOfMeasurementUpdateRequest;
use App\Models\UnitOfMeasurement;
use Notsoweb\ApiResponse\Enums\ApiResponse;
/**
* Descripción
*/
class UnitOfMeasurementController extends Controller
{
public function index()
{
$units = UnitOfMeasurement::orderBy('name')->get();
return ApiResponse::OK->response([
'units' => $units
]);
}
public function show(UnitOfMeasurement $unit)
{
return ApiResponse::OK->response([
'unit' => $unit
]);
}
public function active()
{
$units = UnitOfMeasurement::active()->orderBy('name')->get();
return ApiResponse::OK->response([
'units' => $units
]);
}
public function store(UnitOfMeasurementStoreRequest $request)
{
$unit = UnitOfMeasurement::create($request->validated());
return ApiResponse::CREATED->response([
'message' => 'Unidad de medida creada correctamente.',
'unit' => $unit
]);
}
public function update(UnitOfMeasurementUpdateRequest $request, UnitOfMeasurement $unit)
{
$unit->update($request->validated());
return ApiResponse::OK->response([
'message' => 'Unidad de medida actualizada correctamente.'
]);
}
public function destroy(UnitOfMeasurement $unit)
{
// Verificar si hay productos asociados a esta unidad de medida
if ($unit->inventories()->exists()) {
return ApiResponse::BAD_REQUEST->response([
'message' => 'No se puede eliminar esta unidad de medida porque hay productos asociados a ella.'
]);
}
$unit->delete();
return ApiResponse::OK->response([
'message' => 'Unidad de medida eliminada correctamente.'
]);
}
}