diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 8e5b270..b29d040 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -476,6 +476,8 @@ + + @@ -502,6 +504,14 @@ + + + + + + + + diff --git a/PROYECTO/nodir/noprmt011.4gl b/PROYECTO/nodir/noprmt011.4gl index cc6621c..5990dde 100644 --- a/PROYECTO/nodir/noprmt011.4gl +++ b/PROYECTO/nodir/noprmt011.4gl @@ -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)