# KopierSFlow ERP — Guía de Instalación en cPanel
## PHP puro + MySQL — Sin Composer, sin Laravel, sin frameworks

---

## PASO 1: Crear la base de datos en cPanel

1. Entra a **cPanel → MySQL Databases**
2. Crea una base de datos: `tu_usuario_kopierflow`
3. Crea un usuario de MySQL con contraseña fuerte
4. Asigna el usuario a la base de datos con **TODOS los privilegios**
5. Anota: nombre de BD, usuario y contraseña

---

## PASO 2: Subir los archivos

### Opción A (recomendada — más segura):
```
/home/tu_usuario/kopierflow/          ← sube TODA la carpeta aquí
/home/tu_usuario/public_html/erp/     ← sube solo: index.php, .htaccess y assets/
```

En `public/index.php`, la línea:
```php
require_once dirname(dirname(__FILE__)) . '/config.php';
```
apunta al config que está UN nivel arriba de public_html.

### Opción B (hosting que solo permite public_html):
```
/home/tu_usuario/public_html/erp/     ← todo aquí
```
Y en `config.php` cambia:
```php
define('ROOT_PATH', dirname(__FILE__));
```

### Cómo subir:
- Usa el **File Manager de cPanel** → Upload (ZIP y extraer)
- O usa **FTP/SFTP** con FileZilla

---

## PASO 3: Configurar config.php

Edita el archivo `config.php` con tus datos reales:

```php
define('BASE_URL', 'https://tudominio.com/erp');  // URL de tu ERP

define('DB_HOST', 'localhost');
define('DB_NAME', 'tu_usuario_kopierflow');
define('DB_USER', 'tu_usuario_dbuser');
define('DB_PASS', 'tu_password_seguro');

// Genera una clave aleatoria de 64 caracteres:
// Ve a: https://generate-random.org/api-key-generator
define('APP_KEY', 'pega_aqui_tu_clave_aleatoria_de_64_chars');
```

---

## PASO 4: Ejecutar las migraciones SQL

1. Entra a **cPanel → phpMyAdmin**
2. Selecciona tu base de datos
3. Haz clic en **Importar** (pestaña superior)
4. Importa los archivos en este orden:

```
database/migrations/001_companies_and_security.sql
database/migrations/002_accounting_gaap.sql
database/migrations/003_sales.sql
database/migrations/004_inventory_wms.sql
database/migrations/005_purchasing_imports.sql
database/migrations/006_deliveries_fleet_crm.sql
database/migrations/007_seeders.sql
```

**Importante**: importa uno a la vez, en ese orden exacto.

---

## PASO 5: Verificar el .htaccess

El archivo `public/.htaccess` ya está configurado para cPanel/Apache.

Si tienes problemas con las URLs, verifica en cPanel que **mod_rewrite** esté activo:
- cPanel → Software → MultiPHP INI Editor
- O contacta a tu hosting para confirmar que mod_rewrite está habilitado

Si mod_rewrite no está disponible, el sistema funciona igual con URLs tipo:
`https://tudominio.com/erp/index.php?mod=sales&action=invoices`

---

## PASO 6: Configurar permisos de carpetas

En el File Manager de cPanel, da permisos de escritura (755) a:
```
/logs/              → PHP escribe los logs aquí
/uploads/           → documentos, firmas, fotos
/uploads/docs/
/uploads/signatures/
/uploads/photos/
```

Para cambiar permisos: clic derecho en la carpeta → Change Permissions → 755

---

## PASO 7: Primer acceso

1. Visita: `https://tudominio.com/erp/`
2. Credenciales iniciales (del seeder):
   - **Email**: `admin@kopierflow.com`
   - **Password**: `KFlow2025!`
3. ⚠️ **Cambia la contraseña inmediatamente**
4. Ve a Configuración → Seguridad → Activar 2FA

---

## PASO 8: Configurar Cron Jobs (tareas programadas)

En cPanel → **Cron Jobs**, agrega estas tareas:

```bash
# Verificar inventario vencido/por vencer — diario a las 6am
0 6 * * * /usr/local/bin/php /home/tu_usuario/kopierflow/cron/expiration_check.php

# AR aging — facturas vencidas — diario a las 7am
0 7 * * * /usr/local/bin/php /home/tu_usuario/kopierflow/cron/ar_aging.php

# Alertas de flota — documentos vencidos — diario a las 8am
0 8 * * * /usr/local/bin/php /home/tu_usuario/kopierflow/cron/fleet_alerts.php

# Verificar nexo económico por estado — primer día del mes
0 9 1 * * /usr/local/bin/php /home/tu_usuario/kopierflow/cron/nexus_check.php

# Recalcular tiers de lealtad — primer día del mes
0 10 1 * * /usr/local/bin/php /home/tu_usuario/kopierflow/cron/loyalty_tiers.php
```

**Nota**: La ruta `/usr/local/bin/php` puede variar. En cPanel puedes seleccionar
la versión de PHP desde la interfaz de Cron Jobs.

---

## PASO 9: Configurar Email (SMTP)

En cPanel ya tienes el servidor de correo. Solo edita en `config.php`:

```php
define('MAIL_HOST',     'mail.tudominio.com');
define('MAIL_PORT',     587);
define('MAIL_USER',     'erp@tudominio.com');
define('MAIL_PASS',     'tu_password_de_correo');
define('MAIL_FROM',     'erp@tudominio.com');
define('MAIL_FROM_NAME','KopierSFlow ERP');
```

---

## PASO 10: Configurar Pasarelas de Pago

### Stripe
1. Ve a https://dashboard.stripe.com/apikeys
2. Copia Publishable Key y Secret Key
3. En Stripe Dashboard → Webhooks → Add endpoint:
   - URL: `https://tudominio.com/erp/index.php?mod=webhook&action=stripe`
   - Eventos: `payment_intent.succeeded`, `charge.refunded`, `charge.dispute.created`
4. Copia el Webhook Signing Secret
5. Pega todo en `config.php`

### PayPal
1. https://developer.paypal.com/dashboard
2. Apps & Credentials → Create App
3. Copia Client ID y Client Secret

### Square
1. https://developer.squareup.com/apps
2. Crea una aplicación
3. Copia Access Token y Application ID

---

## Estructura final de archivos

```
/home/tu_usuario/
├── kopierflow/                    ← código del sistema (fuera de public_html)
│   ├── config.php                 ← ⚠️ EDITAR CON TUS DATOS
│   ├── core/
│   │   ├── Database.php
│   │   ├── Auth.php
│   │   ├── Router.php
│   │   ├── AccountingEngine.php
│   │   ├── PricingEngine.php
│   │   ├── TaxEngine.php
│   │   ├── Logger.php
│   │   └── helpers.php
│   ├── modules/
│   │   ├── sales/
│   │   ├── accounting/
│   │   ├── inventory/
│   │   ├── purchasing/
│   │   ├── deliveries/
│   │   ├── fleet/
│   │   ├── payments/
│   │   ├── crm/
│   │   ├── reports/
│   │   └── settings/
│   ├── views/
│   │   └── layouts/
│   ├── database/migrations/       ← SQL de migraciones
│   ├── uploads/                   ← documentos, firmas, fotos
│   ├── logs/                      ← logs del sistema
│   └── cron/                      ← scripts para Cron Jobs
│
└── public_html/
    └── erp/                       ← lo que ven los usuarios
        ├── index.php              ← punto de entrada
        ├── .htaccess
        └── assets/
            ├── css/app.css
            ├── js/app.js
            └── img/

```

---

## Preguntas Frecuentes

**¿Funciona en hosting compartido?**
Sí, siempre que tenga PHP 8.0+, MySQL 5.7+ y mod_rewrite.

**¿Necesito Composer o Node.js?**
No. El sistema es PHP puro sin dependencias externas.

**¿Cómo actualizo el sistema?**
Sube los archivos actualizados por FTP y ejecuta los nuevos SQL de migración en phpMyAdmin.

**¿Es seguro en cPanel compartido?**
Sí, especialmente si colocas el código fuera de `public_html`. Solo el `index.php` y `assets/` son públicos.

**¿Qué versión de PHP necesito?**
PHP 8.0 mínimo. Recomendado PHP 8.2 o 8.3. Configurable en cPanel → MultiPHP Manager.

**¿El log de errores dónde queda?**
En `/home/tu_usuario/kopierflow/logs/app_YYYY-MM-DD.log`
