# JB Planeación — Aplicación Standalone

Aplicación empresarial de logística y producción para Latingraf, independiente de WordPress.

## Requisitos

- PHP 8.1+
- MySQL 5.7+ / MariaDB 10.3+
- Apache con `mod_rewrite` o Nginx
- Extensiones PHP: `pdo_mysql`, `json`, `mbstring`, `session`

## Instalación

1. Copia `config/config.example.php` a `config/config.php` o usa el instalador web.
2. Apunta el virtual host al directorio `public/`.
3. Abre `https://tu-dominio/install.php` y completa el asistente.
4. Accede al panel en la URL raíz de la aplicación.

### Apache (XAMPP)

```
http://localhost/SITIOSWEB/JORGEBORJA/jb-planeacion-app/public/
```

El archivo `public/.htaccess` sirve assets desde `src/assets/` y uploads desde `storage/uploads/` con **rutas relativas** (sin depender de la ruta del hosting).

### Local y hosting con el mismo código

1. En `config/config.php` deja `app_url` vacío y `app_url_auto` en `true` (recomendado).
2. Opcional: copia `config/config.local.example.php` → `config/config.local.php` para credenciales de MySQL en XAMPP (ese archivo no se sube al servidor).
3. En el hosting, `config.php` puede usar las credenciales de producción; la URL se detecta sola al entrar por el dominio.

Si necesitas forzar una URL fija (cron, correos, etc.), pon `app_url_auto` en `false` y define `app_url`.

### Nginx (ejemplo)

```nginx
server {
    root /ruta/jb-planeacion-app/public;
    index index.php;

    location /assets/ {
        alias /ruta/jb-planeacion-app/src/assets/;
    }

    location /uploads/ {
        alias /ruta/jb-planeacion-app/storage/uploads/;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
```

## Estructura

```
jb-planeacion-app/
├── public/          # Front controller (index, ajax, post, admin)
├── core/            # Núcleo: DB, auth, hooks, compatibilidad WP
├── src/             # Lógica de negocio (código del plugin original)
├── config/          # Configuración
├── storage/         # Sesiones y uploads
├── templates/       # Layout HTML
└── install/         # Instalador y migración
```

## Rutas

| Ruta | Equivalente WordPress |
|------|----------------------|
| `/` | Panel de operaciones |
| `/?config=1` | Panel de configuración |
| `/ajax.php?action=logistica_*` | `admin-ajax.php` |
| `/post.php?action=logistica_*` | `admin-post.php` |
| `/admin.php` | `wp-admin` (solo configuración) |
| `/upload.php` | Biblioteca de medios |

## Migración desde WordPress

Si ya tienes el plugin en WordPress con datos:

```bash
php install/migrate-from-wordpress.php --wp-prefix=wp_
```

Opciones:
- `--wp-prefix=wp_` — prefijo de tablas WordPress
- `--dry-run` — solo muestra qué se migraría

## Módulos incluidos

- Panel personal (tareas, agenda, compras)
- Inventario de bodega
- Cierre de órdenes y características
- Planeación impresión y formado
- Cuadro de pedidos
- Códigos de etiqueta y rótulos rollos
- Revisión de minutas
- Calculadoras de conversión
- Ciclo de vida (auditoría, papelera, versiones)
- Roles y permisos por pestaña

## Seguridad

- Cambia `app_key` en `config/config.php` en producción.
- Usa HTTPS.
- Restringe acceso a `install.php` después de la instalación.
- El directorio `storage/` no debe ser ejecutable vía web.

## Desarrollo

```bash
# Verificar sintaxis PHP
php -l public/index.php
php -l core/bootstrap.php
```

Versión de aplicación: 1.6.0 (LOGISTICA_VERSION)
