diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw
index e2def6e..c036e1c 100644
--- a/PROYECTO/mbsERP.4pw
+++ b/PROYECTO/mbsERP.4pw
@@ -488,6 +488,7 @@
+
@@ -561,6 +562,11 @@
+
+
+
+
+
diff --git a/PROYECTO/nodir/noprrp003.4gl b/PROYECTO/nodir/noprrp003.4gl
index c66ca59..44ce865 100644
--- a/PROYECTO/nodir/noprrp003.4gl
+++ b/PROYECTO/nodir/noprrp003.4gl
@@ -57,6 +57,12 @@ FUNCTION noprrp003()
RETURN
END IF
+ -- El combo "departamento" usa NULL como valor para "TODOS", pero
+ -- CONSTRUCT traduce eso a "e.departamento is null", que excluye
+ -- (en vez de incluir) a los empleados con departamento asignado.
+ -- Se neutraliza esa condicion para que "TODOS" no filtre nada.
+ CALL neutraliza_depto_null(criterio) RETURNING criterio
+
LET query =
"SELECT a.num_emp, ",
" RTRIM(e.nom1_emp)+' '+RTRIM(ISNULL(e.apell1_emp,'')), ",
@@ -84,6 +90,7 @@ FUNCTION noprrp003()
FOREACH cur_rep INTO inv[idx].*
LET idx = idx + 1
END FOREACH
+ CALL inv.deleteElement(idx) -- descarta la fila vacia que deja el FOREACH
IF idx > 1 THEN
LET r_filename = "noprrp003.4rp"
@@ -143,5 +150,20 @@ REPORT rep_herr(x)
ON EVERY ROW
PRINTX x.fecha, x.codigo, x.descripcion, x.documento, x.cantidad
-
-END REPORT
\ No newline at end of file
+
+END REPORT
+
+FUNCTION neutraliza_depto_null(criterio)
+ DEFINE criterio STRING
+ DEFINE patron STRING
+ DEFINE pos INT
+
+ LET patron = "e.departamento is null"
+ LET pos = criterio.getIndexOf(patron, 1)
+ IF pos > 0 THEN
+ LET criterio = criterio.subString(1, pos - 1), "1=1",
+ criterio.subString(pos + patron.getLength(), criterio.getLength())
+ END IF
+
+ RETURN criterio
+END FUNCTION
\ No newline at end of file