Durante el proceso de creación de empleados en Profit Plus Nómina, es común encontrar registros con RIF vacíos, incompletos o con caracteres no permitidos como espacios, puntos o guiones.
Aunque estos errores pueden pasar desapercibidos durante la operación diaria, terminan generando problemas posteriores en procesos administrativos y fiscales, especialmente al momento de generar reportes, exportaciones o archivos XML utilizados para declaraciones ante el SENIAT.
Uno de los casos más frecuentes ocurre durante la generación del XML para la declaración del ISLR de empleados, donde el portal del SENIAT rechaza la carga debido a estructuras inválidas en los RIF registrados dentro del sistema.
Para evitar este tipo de inconsistencias, se implementa una validación directamente en SQL Server mediante un trigger, asegurando que los datos sean verificados antes de almacenarse en la base de datos.
Con este enfoque se logra:
- Evitar registros fiscales inválidos.
- Reducir errores operativos.
- Mejorar la calidad de la información.
- Prevenir fallas en procesos de exportación y declaraciones tributarias.
- Centralizar la validación independientemente del usuario que utilice el sistema.
¿Cómo funciona esta solución?
La validación se realiza mediante un trigger en SQL Server que se ejecuta automáticamente cuando un usuario intenta crear o modificar un empleado en la tabla snemple.
El trigger evalúa el contenido del campo rif antes de confirmar la operación en base de datos.
Si el valor:
- Está vacío
- Contiene espacios
- Posee puntos o guiones
- No cumple el formato esperado
Entonces SQL Server detiene el proceso y muestra un mensaje de error al usuario.
Script SQL – Trigger
USE [TU_BASE_DE_DATOS]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
===============================================================================
TRIGGER: TrigValidarRIF
TABLA: dbo.snemple
EVENTO: AFTER INSERT, UPDATE
AUTOR: www.elingenierodesistemas.com
===============================================================================
DESCRIPCIÓN:
Valida la estructura del RIF de empleados antes de guardar cambios.
REGLAS:
- Campo obligatorio
- Sin espacios
- Sin puntos ni guiones
- Formato: [VJEGP] + 9 dígitos
- Longitud total: 10 caracteres
===============================================================================
*/
ALTER TRIGGER [dbo].[TrigValidarRIF]
ON [dbo].[snemple]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (
SELECT 1
FROM inserted
WHERE
rif IS NULL
OR LTRIM(RTRIM(rif)) = ''
OR LTRIM(RTRIM(rif)) LIKE '%-%'
OR LTRIM(RTRIM(rif)) LIKE '%.%'
OR LTRIM(RTRIM(rif)) LIKE '% %'
OR LTRIM(RTRIM(rif)) NOT LIKE '[JVEGP][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
)
BEGIN
THROW 50001,
'RIF inválido. Debe tener formato V123456789 sin espacios, puntos ni guiones.',
1;
END
END;
GO
Validación de la estructura del RIF de empleados en Profit Plus Nómina