# Instalación del Módulo HR/Payroll ## 📦 Requisitos Previos - PHP 7.4 o superior - MySQL 5.7 o superior - PDO habilitado en PHP - Acceso a phpMyAdmin o cliente MySQL --- ## 🔧 Pasos de Instalación ### Paso 1: Crear Tablas de Base de Datos #### Opción A: Usando phpMyAdmin 1. Abrir phpMyAdmin 2. Seleccionar la base de datos `erp` 3. Click en pestaña "SQL" 4. Copiar contenido de `crear_tablas_rrhh_nomina.sql` 5. Pegar en el editor SQL 6. Click en "Ejecutar" #### Opción B: Usando Línea de Comandos ```bash cd c:\xampp\htdocs\erp mysql -u root -p erp < crear_tablas_rrhh_nomina.sql ``` #### Opción C: Importar Archivo 1. En phpMyAdmin 2. Seleccionar base de datos `erp` 3. Click en "Importar" 4. Seleccionar archivo `crear_tablas_rrhh_nomina.sql` 5. Click en "Ejecutar" ### Paso 2: Verificar Instalación Ejecutar en SQL: ```sql SHOW TABLES LIKE 'departamentos'; SHOW TABLES LIKE 'empleados'; SHOW TABLES LIKE 'nominas'; SHOW TABLES LIKE 'faltas%'; ``` Resultado esperado: **11 tablas creadas** ``` ✅ departamentos ✅ puestos ✅ empleados ✅ tipos_nomina ✅ conceptos_nomina ✅ nominas ✅ nomina_detalle ✅ nomina_empleado_resumen ✅ faltas_empleados ✅ historial_empleados ✅ beneficiarios_empleados ``` ### Paso 3: Verificar Integridad Ejecutar verificaciones: ```sql -- Verificar estructura SELECT COUNT(*) as total_departamentos FROM departamentos; SELECT COUNT(*) as total_empleados FROM empleados; SELECT COUNT(*) as total_tipos_nomina FROM tipos_nomina; -- Verificar índices SHOW INDEX FROM empleados; SHOW INDEX FROM faltas_empleados; SHOW INDEX FROM nominas; ``` ### Paso 4: Datos Iniciales El SQL incluye datos por defecto: - **3 Tipos de Nómina** (Mensual, Quincenal, Semanal) - **8 Conceptos de Nómina** (Sueldo, AFP, etc.) - **4 Departamentos de Ejemplo** - **7 Puestos de Ejemplo** Para usar los ejemplos, verificar que id_empresa = 1 ### Paso 5: Acceder desde el Menú 1. Iniciar sesión en ERP 2. En el sidebar, seleccionar **RECURSOS HUMANOS** 3. Aparecerán opciones: - Empleados - Departamentos - Puestos/Posiciones - Tipos de Nómina - Registro de Faltas - Generador de Nóminas --- ## 📁 Archivos Incluidos ### PHP (6 módulos) ``` departamentos.php (5 KB) - CRUD de departamentos puestos.php (7 KB) - CRUD de puestos empleados.php (15 KB) - CRUD de empleados (complejo) tipos_nomina.php (8 KB) - CRUD de tipos de nómina faltas.php (10 KB) - Registro de faltas/asistencia nominas.php (18 KB) - Generador de nóminas ``` ### Base de Datos ``` crear_tablas_rrhh_nomina.sql (25 KB) - 11 tablas + datos iniciales ``` ### Documentación ``` MODULO_RRHH_NOMINA.md (40 KB) - Documentación completa GUIA_RAPIDA_RRHH.md (20 KB) - Guía de uso rápido INSTALACION_RRHH.md (Este archivo) ``` --- ## ✅ Checklist Post-Instalación - [ ] Tablas creadas sin errores - [ ] Datos iniciales insertados - [ ] Menú actualizado en menu.php - [ ] Acceso a módulo desde sidebar - [ ] Crear primer departamento (Prueba) - [ ] Crear primer puesto (Prueba) - [ ] Crear primer empleado (Prueba) - [ ] Registrar falta de prueba - [ ] Generar nómina de prueba --- ## 🐛 Troubleshooting Instalación ### Error: "Table already exists" **Causa**: Tablas ya existen **Solución**: Eliminar tablas existentes antes: ```sql DROP TABLE IF EXISTS beneficiarios_empleados; DROP TABLE IF EXISTS historial_empleados; DROP TABLE IF EXISTS nomina_empleado_resumen; DROP TABLE IF EXISTS nomina_detalle; DROP TABLE IF EXISTS faltas_empleados; DROP TABLE IF EXISTS nominas; DROP TABLE IF EXISTS conceptos_nomina; DROP TABLE IF EXISTS tipos_nomina; DROP TABLE IF EXISTS empleados; DROP TABLE IF EXISTS puestos; DROP TABLE IF EXISTS departamentos; ``` Luego ejecutar nuevamente el SQL. ### Error: "Foreign key constraint fails" **Causa**: Intento de insertar sin tabla padre **Solución**: Asegurarse de ejecutar TODO el SQL completo ### Error: "Column not found" **Causa**: Estructura incompleta **Solución**: Eliminar y recrear todas las tablas ### Error de permisos en login **Causa**: Usuario no tiene permisos en tablas nuevas **Solución**: Ejecutar como usuario con permisos totales o GRANT: ```sql GRANT ALL PRIVILEGES ON erp.* TO 'usuario'@'localhost'; FLUSH PRIVILEGES; ``` --- ## 📊 Verificación Final Acceder a cada módulo y verificar: ### Departamentos ``` ✅ Listar departamentos ✅ Crear departamento ✅ Editar departamento ✅ Cambiar estado ✅ Eliminar (si no tiene empleados) ``` ### Puestos ``` ✅ Listar puestos ✅ Crear puesto ✅ Editar puesto ✅ Cambiar estado ✅ Eliminar (si no tiene empleados) ``` ### Empleados ``` ✅ Listar empleados ✅ Crear empleado (todas las secciones) ✅ Editar empleado ✅ Cambiar estado ✅ Eliminar (si no está en nóminas) ``` ### Tipos de Nómina ``` ✅ Listar tipos ✅ Crear tipo ✅ Editar tipo ✅ Cambiar estado ✅ Eliminar (si no hay nóminas) ``` ### Faltas ``` ✅ Listar faltas ✅ Registrar falta ✅ Editar falta ✅ Filtrar por empleado ✅ Filtrar por mes ``` ### Nóminas ``` ✅ Listar nóminas ✅ Generar nómina ✅ Ver detalles ✅ Procesar ✅ Pagar ✅ Imprimir ``` --- ## 🎯 Próximos Pasos Recomendados 1. **Leer Guía Rápida**: GUIA_RAPIDA_RRHH.md 2. **Leer Documentación Completa**: MODULO_RRHH_NOMINA.md 3. **Crear estructura inicial**: - Departamentos - Puestos - Empleados 4. **Realizar prueba completa**: - Registrar faltas - Generar nómina - Procesar y pagar --- ## 🔒 Consideraciones de Seguridad 1. **Backups**: Realizar backup antes de instalar 2. **Permisos**: Verificar permisos de usuario MySQL 3. **Acceso**: El módulo requiere sesión activa 4. **Datos**: Validar datos de prueba antes de usar en producción --- ## 📈 Información de Versión ``` Módulo: HR/Payroll Versión: 1.0 Fecha: 2024 Estado: Producción Compatibilidad: PHP 7.4+, MySQL 5.7+ Tablas: 11 Módulos PHP: 6 Tamaño Total: ~100 KB ``` --- ## 📞 Soporte Para issues después de la instalación: 1. Verificar que TODAS las tablas existan 2. Verificar que el usuario tenga permisos SELECT/INSERT/UPDATE/DELETE 3. Verificar que menu.php está actualizado 4. Consultar logs de error en PHP --- **Instalación completada ✅**