|
|
Editar
|
Copiar
|
Borrar
DELETE FROM proc WHERE `proc`.`db` = 'losnaranjos' AND `proc`.`name` = 'sp_reemplazar_libro_sueldo' AND `proc`.`type` = 'PROCEDURE'
|
losnaranjos |
sp_reemplazar_libro_sueldo |
PROCEDURE |
sp_reemplazar_libro_sueldo |
SQL |
CONTAINS_SQL |
NO |
DEFINER |
IN p_id_liquidacion INT
|
|
BEGIN
-- Marcar libros anteriores como eliminados
UPDATE libros_sueldo
SET estado = 'eliminado',
observaciones = CONCAT(
COALESCE(observaciones, ''),
'\n[', NOW(), '] Reemplazado por nuevo libro'
)
WHERE id_liquidacion = p_id_liquidacion
AND estado = 'activo';
-- Retornar cantidad de libros marcados como eliminados
SELECT ROW_COUNT() as libros_reemplazados;
END
|
root@localhost |
2025-10-03 09:28:47 |
2025-10-03 09:28:47 |
NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTIO... |
|
utf8mb4 |
utf8mb4_unicode_ci |
utf8mb4_general_ci |
BEGIN
-- Marcar libros anteriores como eliminados
UPDATE libros_sueldo
SET estado = 'eliminado',
observaciones = CONCAT(
COALESCE(observaciones, ''),
'\n[', NOW(), '] Reemplazado por nuevo libro'
)
WHERE id_liquidacion = p_id_liquidacion
AND estado = 'activo';
-- Retornar cantidad de libros marcados como eliminados
SELECT ROW_COUNT() as libros_reemplazados;
END
|
NONE |
|
|
Editar
|
Copiar
|
Borrar
DELETE FROM proc WHERE `proc`.`db` = 'losnaranjos' AND `proc`.`name` = 'sp_actualizar_contadores_libro' AND `proc`.`type` = 'PROCEDURE'
|
losnaranjos |
sp_actualizar_contadores_libro |
PROCEDURE |
sp_actualizar_contadores_libro |
SQL |
CONTAINS_SQL |
NO |
DEFINER |
IN p_id_libro INT
|
|
BEGIN
UPDATE libros_sueldo ls
SET
ls.empleados_procesados = (
SELECT COUNT(DISTINCT dni)
FROM libros_sueldo_detalle
WHERE id_libro = p_id_libro
),
ls.empleados_con_firma = (
SELECT COUNT(DISTINCT dni)
FROM libros_sueldo_detalle
WHERE id_libro = p_id_libro AND tiene_firma = 1
)
WHERE ls.id_libro = p_id_libro;
-- Retornar los valores actualizados
SELECT
empleados_procesados,
empleados_con_firma
FROM libros_sueldo
WHERE id_libro = p_id_libro;
END
|
root@localhost |
2025-10-03 09:28:47 |
2025-10-03 09:28:47 |
NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTIO... |
|
utf8mb4 |
utf8mb4_unicode_ci |
utf8mb4_general_ci |
BEGIN
UPDATE libros_sueldo ls
SET
ls.empleados_procesados = (
SELECT COUNT(DISTINCT dni)
FROM libros_sueldo_detalle
WHERE id_libro = p_id_libro
),
ls.empleados_con_firma = (
SELECT COUNT(DISTINCT dni)
FROM libros_sueldo_detalle
WHERE id_libro = p_id_libro AND tiene_firma = 1
)
WHERE ls.id_libro = p_id_libro;
-- Retornar los valores actualizados
SELECT
empleados_procesados,
empleados_con_firma
FROM libros_sueldo
WHERE id_libro = p_id_libro;
END
|
NONE |
|
|
Editar
|
Copiar
|
Borrar
DELETE FROM proc WHERE `proc`.`db` = 'losnaranjos' AND `proc`.`name` = 'fn_obtener_estadisticas_libro' AND `proc`.`type` = 'FUNCTION'
|
losnaranjos |
fn_obtener_estadisticas_libro |
FUNCTION |
fn_obtener_estadisticas_libro |
SQL |
READS_SQL_DATA |
YES |
DEFINER |
p_id_libro INT
|
longtext CHARSET utf8mb4 COLLATE utf8mb4_bin
|
BEGIN
DECLARE v_resultado JSON;
SELECT JSON_OBJECT(
'total_empleados', COUNT(DISTINCT dni),
'empleados_validados', COUNT(DISTINCT CASE WHEN empleado_encontrado = 1 THEN dni END),
'empleados_con_firma', COUNT(DISTINCT CASE WHEN tiene_firma = 1 THEN dni END),
'empleados_sin_validar', COUNT(DISTINCT CASE WHEN empleado_encontrado = 0 THEN dni END),
'porcentaje_validados', ROUND(
COUNT(DISTINCT CASE WHEN empleado_encontrado = 1 THEN dni END) * 100.0 /
NULLIF(COUNT(DISTINCT dni), 0), 2
),
'porcentaje_firmados', ROUND(
COUNT(DISTINCT CASE WHEN tiene_firma = 1 THEN dni END) * 100.0 /
NULLIF(COUNT(DISTINCT dni), 0), 2
)
) INTO v_resultado
FROM libros_sueldo_detalle
WHERE id_libro = p_id_libro;
RETURN v_resultado;
END
|
root@localhost |
2025-10-03 09:28:48 |
2025-10-03 09:28:48 |
NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTIO... |
|
utf8mb4 |
utf8mb4_unicode_ci |
utf8mb4_general_ci |
BEGIN
DECLARE v_resultado JSON;
SELECT JSON_OBJECT(
'total_empleados', COUNT(DISTINCT dni),
'empleados_validados', COUNT(DISTINCT CASE WHEN empleado_encontrado = 1 THEN dni END),
'empleados_con_firma', COUNT(DISTINCT CASE WHEN tiene_firma = 1 THEN dni END),
'empleados_sin_validar', COUNT(DISTINCT CASE WHEN empleado_encontrado = 0 THEN dni END),
'porcentaje_validados', ROUND(
COUNT(DISTINCT CASE WHEN empleado_encontrado = 1 THEN dni END) * 100.0 /
NULLIF(COUNT(DISTINCT dni), 0), 2
),
'porcentaje_firmados', ROUND(
COUNT(DISTINCT CASE WHEN tiene_firma = 1 THEN dni END) * 100.0 /
NULLIF(COUNT(DISTINCT dni), 0), 2
)
) INTO v_resultado
FROM libros_sueldo_detalle
WHERE id_libro = p_id_libro;
RETURN v_resultado;
END
|
NONE |