# Nanas Santa Cruz - Administracion local

Primera version en Laravel 12 y Livewire 4 con PHP 8.2 de XAMPP y MariaDB. Base: `nanas_admin_local`. La aplicacion movil anterior no se modifica.

La configuracion original usa XAMPP; si `.env` apunta al VPS, se utiliza la base remota y no es necesario iniciar MySQL local. La base original se conserva como respaldo, pero no se sincroniza automaticamente. Las credenciales remotas estan en el archivo privado `storage/app/private/database/access.json`, excluido de Git; las claves demo de abajo no aplican a esa base. Para restaurar la conexion local usar los valores originales de `.env.example`.

## Arranque

Activar MySQL en XAMPP. Desde esta carpeta:

```powershell
C:\xampp\php\php.exe artisan serve --host=127.0.0.1 --port=8000
```

Abrir http://127.0.0.1:8000. Los recursos ya estan compilados: no hace falta ejecutar Vite.

## Accesos demo

Todos usan `NanasLocal2026!`. Los datos y documentos son ficticios.

| Correo | Rol |
| --- | --- |
| admin@nanas.local | Administracion completa |
| coordinacion@nanas.local | Agendas y familias |
| rrhh@nanas.local | Personal, documentos y ausencias |
| finanzas@nanas.local | Cobros, liquidaciones, sueldos y gastos |
| gerencia@nanas.local | Solo consulta operativa y financiera |

No publicar en Internet con estas credenciales ni con la configuracion local de XAMPP.

## Flujo de trabajo

1. Registrar categorias, personal, modalidad de remuneracion y documentos.
2. Registrar familias y contactos.
3. Definir servicios y precios: tarifa individual tiene prioridad sobre categoria, y categoria sobre tarifa general.
4. Agendar personal disponible; se impiden cruces con servicios y ausencias.
5. Registrar cobros parciales o completos y marcar completado al terminar.
6. Registrar liquidaciones por servicio o sueldos mensuales y sus pagos.
7. Registrar gastos y consultar resultados por mes.

## Reglas financieras

- El porcentaje pertenece a LA EMPRESA: 40% empresa y 60% personal. Se puede cambiar por servicio con motivo obligatorio sin modificar la base del personal.
- Cada servicio conserva su precio, modalidad y porcentaje historicos.
- Personal con sueldo fijo: 100% del servicio para la empresa, sin comision adicional al personal; registrar su sueldo mensual en Liquidaciones.
- Utilidad operativa = ingresos de servicios completados en el mes - participacion devengada del personal por comision - sueldos registrados del mes - gastos incurridos del mes.
- Caja = cobros recibidos - pagos al personal - gastos efectivamente pagados en ese mes. Pagar una deuda no vuelve a descontarla de la utilidad.
- Los ingresos se reconocen cuando se marca completado el servicio. Los sueldos se registran cada mes manualmente, no se generan automaticamente. No es un calculo de utilidad neta tributaria.
- Importes en centavos enteros, porcentajes en puntos basicos. Se impiden cobros y liquidaciones mayores al saldo.
- Solo se cancelan servicios confirmados sin movimientos financieros. Las devoluciones quedan para otra etapa.

## Documentos y respaldo

PDF, JPG y PNG hasta 10 MB; archivos privados con descarga autenticada segun rol, vencimientos y revision. Guardados en `storage/app/private`, sin enlace publico.

Antes de cargar documentos reales, revisar permisos y establecer respaldos. Respaldar la base, `storage/app/private` y `APP_KEY` de forma segura; no compartir `.env`.

## Desarrollo

```powershell
C:\xampp\php\php.exe artisan test
npm run build
```

Las pruebas usan SQLite en memoria, sin modificar la base local. Las reglas estan separadas en `app/Services` y los datos en modelos/tablas.

Para instalacion nueva: configurar `.env`, generar la clave, crear la base y ejecutar `artisan migrate`. Opcional: `artisan db:seed --class=AdminDemoSeeder`; no agrega ejemplos si ya existe personal o familias. No ejecutar `migrate:fresh` sobre datos que se quieran conservar.

## Pendiente para siguientes etapas

Facturacion fiscal, beneficios laborales legales, contratos recurrentes automaticos, bancos, devoluciones y exportaciones contables no estan incluidos. Los pagos registrados no ejecutan transferencias. Antes de produccion se requiere despliegue seguro, respaldos automatizados y validacion de las reglas con administracion.
