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

123
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "bff602eb6c826efc24c4833d959d4c90",
"content-hash": "5e417628f1993b1a32e8bdd7a16566de",
"packages": [
{
"name": "berkayk/onesignal-laravel",
@@ -3014,6 +3014,54 @@
},
"time": "2025-11-10T17:13:11+00:00"
},
{
"name": "league/flysystem-google-cloud-storage",
"version": "3.30.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-google-cloud-storage.git",
"reference": "2d36f1a050fe70bf21d8aa75275963f9ca2e16ea"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-google-cloud-storage/zipball/2d36f1a050fe70bf21d8aa75275963f9ca2e16ea",
"reference": "2d36f1a050fe70bf21d8aa75275963f9ca2e16ea",
"shasum": ""
},
"require": {
"google/cloud-storage": "^1.23",
"league/flysystem": "^3.10.0",
"league/mime-type-detection": "^1.0.0",
"php": "^8.0.2"
},
"type": "library",
"autoload": {
"psr-4": {
"League\\Flysystem\\GoogleCloudStorage\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Frank de Jonge",
"email": "info@frankdejonge.nl"
}
],
"description": "Google Cloud Storage adapter for Flysystem.",
"keywords": [
"Flysystem",
"filesystem",
"gcs",
"google cloud storage"
],
"support": {
"source": "https://github.com/thephpleague/flysystem-google-cloud-storage/tree/3.30.1"
},
"time": "2025-10-20T15:27:33+00:00"
},
{
"name": "league/flysystem-local",
"version": "3.30.2",
@@ -5430,6 +5478,79 @@
],
"time": "2025-12-02T15:19:04+00:00"
},
{
"name": "spatie/laravel-google-cloud-storage",
"version": "2.3.4",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-google-cloud-storage.git",
"reference": "10c91e6dcaebf83eba9f21b8107267595bb40d2a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-google-cloud-storage/zipball/10c91e6dcaebf83eba9f21b8107267595bb40d2a",
"reference": "10c91e6dcaebf83eba9f21b8107267595bb40d2a",
"shasum": ""
},
"require": {
"illuminate/contracts": "^10.0|^11.0|^12.0",
"illuminate/filesystem": "^10.0|^11.0|^12.0",
"illuminate/support": "^10.0|^11.0|^12.0",
"league/flysystem-google-cloud-storage": "^3.0.15",
"php": "^8.0"
},
"require-dev": {
"nunomaduro/collision": "^7.0|^8.0",
"orchestra/testbench": "^8.0|^9.0|^10.0",
"phpunit/phpunit": "^10.0|^11.0|^12.0",
"spatie/laravel-ray": "^1.29"
},
"type": "library",
"extra": {
"laravel": {
"aliases": {
"GoogleCloudStorage": "Spatie\\GoogleCloudStorage\\GoogleCloudStorageFacade"
},
"providers": [
"Spatie\\GoogleCloudStorage\\GoogleCloudStorageServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Spatie\\GoogleCloudStorage\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alex Vanderbist",
"email": "alex@spatie.be",
"role": "Developer"
}
],
"description": "Google Cloud Storage filesystem driver for Laravel",
"homepage": "https://github.com/spatie/laravel-google-cloud-storage",
"keywords": [
"laravel",
"laravel-google-cloud-storage",
"spatie"
],
"support": {
"issues": "https://github.com/spatie/laravel-google-cloud-storage/issues",
"source": "https://github.com/spatie/laravel-google-cloud-storage/tree/2.3.4"
},
"funding": [
{
"url": "https://github.com/spatie",
"type": "github"
}
],
"time": "2025-03-13T09:56:26+00:00"
},
{
"name": "spatie/laravel-html",
"version": "3.12.3",