Registra noprmt011 y corrige bugs de fecha y borrado de cuota compartida

Se agrega noprmt011 (Control Prestamos y Facturas) al proyecto usando
nofmmt011.4fd (nofmmt011.per no tenia el campo valor_cuota requerido).

Se corrige conversion CONVERT(CHAR,fecha,103) hacia variable DATE en
nopcmf011(), que causaba error -1205 "Invalid month in date" al
navegar con Siguiente/Anterior cuando el dia del mes era mayor a 12.

Se corrige eLiminar: el DELETE FROM notb00003 era incondicional y
borraba la cuota compartida del empleado+movimiento aunque quedaran
otros documentos activos en notb00011 dependiendo de ella. Ahora solo
se borra si no quedan documentos activos para ese empleado+movimiento.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Abel López
2026-09-21 11:45:55 -04:00
co-authored by Claude Sonnet 5
parent 64f5e612d9
commit 5baf191a88
2 changed files with 19 additions and 4 deletions
+14 -4
View File
@@ -237,7 +237,8 @@ GOTO entrada
END FUNCTION
FUNCTION nopcmf011()
FUNCTION nopcmf011()
DEFINE cnt_activos INTEGER
## Aqui se prepara para la captura del criterio de seleccion
LET monto2 = 0
DISPLAY BY NAME monto2
@@ -255,7 +256,7 @@ FUNCTION nopcmf011()
LET SELEC =
"SELECT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto,",
"num_doc,a.cod_mov,CONVERT(CHAR(10),a.fecha,103),a.monto,a.porciento,a.status_t,a.us_crea,",
"num_doc,a.cod_mov,a.fecha,a.monto,a.porciento,a.status_t,a.us_crea,",
" a.fech_crea,a.us_mod,a.fech_mod FROM notb00011 a WHERE a.status_t is null and ",
criterio clipped," ORDER BY a.cod_mov,a.num_emp,a.fecha"
@@ -449,8 +450,17 @@ END INPUT
notb00008.cod_mov = presta.cod_mov AND
notb00008.clase_mov = 'F'
DELETE FROM notb00003 WHERE cod_mov = presta.cod_mov AND num_emp = presta.num_emp
-- Solo se elimina la cuota compartida si no quedan otros
-- documentos activos del mismo empleado+movimiento; de lo
-- contrario esos otros documentos se quedarian sin cuota.
SELECT COUNT(*) INTO cnt_activos FROM notb00011
WHERE num_emp = presta.num_emp AND cod_mov = presta.cod_mov
AND status_t IS NULL
IF cnt_activos = 0 THEN
DELETE FROM notb00003 WHERE cod_mov = presta.cod_mov AND num_emp = presta.num_emp
END IF
COMMIT WORK
LET numero_msg = 39
CALL msg(numero_msg)