From aeab10ce0ddcfffc70f97937ac153ebfc1e04ac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Mon, 28 Sep 2026 13:11:32 -0400 Subject: [PATCH] Registra noprrp039 (Reporte Empleados) y corrige bugs de SQL y fecha Se agrega noprrp039 al proyecto usando nofmrp039.4fd, reutilizando FUNCIONESREPORT y libgre.42x. Se corrige "AND and" duplicado (typo) en las 3 consultas dinamicas del bloque tipoEmpleados=9 (TODOS los empleados), que producia un error de sintaxis SQL y bloqueaba completamente esa opcion. Se corrige CONVERT(CHAR,fech_efec,103) hacia variable DATE en las 5 consultas del programa, mismo patron de error -1205 "Invalid month in date" ya visto en otros programas. Se crea PROYECTO/bin/IMAGENES/EMPLEADOS (con .gitkeep), carpeta faltante donde el programa exporta las fotos de empleados (foto_empleado.writeFile); sin ella el reporte fallaba con error -8087 al procesar cualquier empleado con foto guardada. Probado con empleado especifico y con "TODOS" (activos+inactivos con foto), verificado contra BD sobre departamento 1000. Co-Authored-By: Claude Sonnet 5 --- PROYECTO/bin/IMAGENES/EMPLEADOS/.gitkeep | 0 PROYECTO/mbsERP.4pw | 6 ++++ PROYECTO/nodir/noprrp039.4gl | 38 ++++++++++++------------ 3 files changed, 25 insertions(+), 19 deletions(-) create mode 100644 PROYECTO/bin/IMAGENES/EMPLEADOS/.gitkeep diff --git a/PROYECTO/bin/IMAGENES/EMPLEADOS/.gitkeep b/PROYECTO/bin/IMAGENES/EMPLEADOS/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index c036e1c..754714d 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -489,6 +489,7 @@ + @@ -567,6 +568,11 @@ + + + + + diff --git a/PROYECTO/nodir/noprrp039.4gl b/PROYECTO/nodir/noprrp039.4gl index 9ffddc8..42821ed 100644 --- a/PROYECTO/nodir/noprrp039.4gl +++ b/PROYECTO/nodir/noprrp039.4gl @@ -52,27 +52,27 @@ OPEN WINDOW w1 WITH FORM "nofmrp039" IF fotos = "SI" THEN LET selec = "SELECT a.num_emp,a.departamento,a.cod_puesto,", - " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", - " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", - " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND and a.fech_efec IS NOT NULL - AND a.foto_empleado IS NOT NULL + " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ", + " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", + " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND a.fech_efec IS NOT NULL + AND a.foto_empleado IS NOT NULL ORDER BY a.departamento,a.num_emp " ELSE LET selec = "SELECT a.num_emp,a.departamento,a.cod_puesto,", - " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", - " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", - " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND and a.fech_efec IS NOT NULL - AND a.foto_empleado IS NULL + " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ", + " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", + " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND a.fech_efec IS NOT NULL + AND a.foto_empleado IS NULL ORDER BY a.departamento,a.num_emp " - END IF + END IF IF fotos = "TODOS" THEN LET selec = "SELECT a.num_emp,a.departamento,a.cod_puesto,", - " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", - " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", - " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND and a.fech_efec IS NOT NULL - AND a.foto_empleado IS NOT NULL + " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ", + " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", + " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND a.fech_efec IS NOT NULL + AND a.foto_empleado IS NOT NULL ORDER BY a.departamento,a.num_emp " END IF END IF @@ -80,10 +80,10 @@ OPEN WINDOW w1 WITH FORM "nofmrp039" LET chEmpleados = "EMPLEADOS ACTIVOS" LET selec = "SELECT a.num_emp,a.departamento,a.cod_puesto,", - " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", - " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", + " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ", + " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " FROM adtb00003 a WHERE ",criterio CLIPPED, - " AND (a.status_t is null or a.status_t = 'I') and a.fech_efec IS NOT NULL ", + " AND (a.status_t is null or a.status_t = 'I') and a.fech_efec IS NOT NULL ", " ORDER BY a.departamento,a.num_emp " END IF @@ -91,10 +91,10 @@ OPEN WINDOW w1 WITH FORM "nofmrp039" LET chEmpleados = "EMPLEADOS DESACTIVOS" LET selec = "SELECT a.num_emp,a.departamento,a.cod_puesto,", - " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103),", - " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", + " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec,", + " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " FROM adtb00003 a WHERE ",criterio CLIPPED, - " AND a.status_t is not null and a.fech_efec IS NOT NULL", + " AND a.status_t is not null and a.fech_efec IS NOT NULL", " ORDER BY a.departamento,a.num_emp " END IF