Fix: Correcciones panel admin y API frontend

## Panel de Administración

### FormBuilder personalizado (Laravel 11)
- Creado app/Support/FormBuilder.php como reemplazo de laravelcollective/html
- Creado app/Support/Facades/Form.php para el facade
- Registrado en AppServiceProvider y config/app.php
- Soporta: text, email, password, file, textarea, select, checkbox, radio, etc.
- Manejo de valores null en todos los parámetros

### Configuración de sesión
- Cambiado same_site de "none" a "lax" para compatibilidad HTTP
- Corrige error 419 Page Expired en login

### Status CRUD
- Agregado campo en_name al formulario (español/inglés)
- Actualizado StatusController create/update para manejar en_name

### Dependencias
- Instalado spatie/laravel-google-cloud-storage para driver GCS

## API Frontend

### Validaciones de perfil de proveedor
Agregadas validaciones en endpoints que requieren perfil de proveedor:

- SupplierController::getpostulation - Retorna error 400 si no hay perfil
- SupplierController::getcontractedpostulation - Retorna error 400 si no hay perfil
- PostulationController::postulate - Retorna error 400 si no hay perfil
- PostulationController::getfinishedpostulations - Retorna error 400 si no hay perfil
- ContractController::startcontract - Retorna error 400 si no hay perfil

### Null safety en contratos
- ContractController::getcurrentcontracts - Manejo seguro de supplier/category null
- ContractController::getfinishedcontracts - Manejo seguro de supplier/category/status null

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-18 23:16:34 +00:00
parent 46469deaa8
commit 5e3b203f84
12 changed files with 469 additions and 13 deletions

View File

@@ -11,12 +11,19 @@
{!! Form::open(['id'=>'frm']) !!}
@endif
<div class="form-group row required">
{!! Form::label("name","Status",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
{!! Form::label("name","Status (Español)",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("name",null,["class"=>"form-control".($errors->has('name')?" is-invalid":""),"autofocus",'placeholder'=>'Nombre del Status']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("en_name","Status (English)",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("en_name",null,["class"=>"form-control".($errors->has('en_name')?" is-invalid":""),'placeholder'=>'Status Name']) !!}
<span id="error-en_name" class="invalid-feedback"></span>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>