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:
co-authored by
Claude Sonnet 5
parent
64f5e612d9
commit
5baf191a88
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user