Files
nomina_ventas/app/Http/Controllers/SettingsController.php

76 lines
2.3 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
class SettingsController extends Controller
{
/**
* Mostrar configuración del usuario
*/
public function index()
{
$user = Auth::user();
return view('settings.index', compact('user'));
}
/**
* Actualizar configuración del usuario
*/
public function update(Request $request)
{
$user = Auth::user();
foreach (['fecha_ingreso', 'razon_social', 'sueldo_integro_diario'] as $field) {
if ($request->has($field) && $request->input($field) === '') {
$request->merge([$field => null]);
}
}
if ($request->has('commission_percentage')) {
$request->validate([
'commission_percentage' => ['required', 'numeric', 'min:0', 'max:100'],
]);
$user->commission_percentage = floatval($request->input('commission_percentage', 0));
}
if ($request->has('monthly_salary')) {
$request->validate([
'monthly_salary' => ['required', 'numeric', 'min:0'],
]);
$user->monthly_salary = floatval($request->input('monthly_salary', 0));
}
if ($request->has('fecha_ingreso')) {
if ($request->filled('fecha_ingreso')) {
$user->fecha_ingreso = $request->input('fecha_ingreso');
} else {
$user->fecha_ingreso = null;
}
}
if ($request->has('razon_social')) {
if ($request->filled('razon_social')) {
$user->razon_social = $request->input('razon_social');
} else {
$user->razon_social = null;
}
}
if ($request->has('sueldo_integro_diario')) {
if ($request->filled('sueldo_integro_diario')) {
$user->sueldo_integro_diario = floatval($request->input('sueldo_integro_diario'));
} else {
$user->sueldo_integro_diario = null;
}
}
$user->save();
return redirect()->route('settings.index')->with('success', 'Configuración actualizada correctamente.');
}
}