JSOTO Adicion grupos ADMINISTRACION PERSONAL Y NOMINA

This commit is contained in:
2026-10-07 12:11:28 -04:00
parent ccf12198ba
commit a5ccd3083f
14 changed files with 1888 additions and 111 deletions
+13 -7
View File
@@ -37,6 +37,7 @@ END GLOBALS
FUNCTION convierteorden(xcotizacion_no,xorden,xusuario,xclave,ximpresor,xcopia,xtipo_orden,xcomentario,xnosolicitud,archivos)
DEFINE xcotizacion_no,xsecvend_a INT,
existe_oc INT,
actualizar STRING,
psolicitud_sql STRING,
sb_sol base.StringBuffer,
@@ -130,16 +131,21 @@ FUNCTION convierteorden(xcotizacion_no,xorden,xusuario,xclave,ximpresor,xcopia,x
xcotizacion_no)
RETURN 0,false
END IF
SELECT num_oc INTO ult_numero FROM prtb00020
IF ult_numero IS NULL THEN
LET ult_numero = 0
END IF
LET ult_numero = ult_numero + 1
BEGIN WORK
UPDATE prtb00020 set num_oc = ult_numero,
# CONSECUTIVO ATOMICO: el UPDATE incrementa y bloquea la fila de prtb00020
# hasta el COMMIT/ROLLBACK, asi dos usuarios no pueden tomar el mismo num_oc
# (antes se leia fuera de la transaccion -> PK_prtb00012 duplicada)
UPDATE prtb00020 SET num_oc = ISNULL(num_oc, 0) + 1,
us_crea = xusuario,
fech_crea = GETDATE()
SELECT num_oc INTO ult_numero FROM prtb00020
# AUTOCORRECCION: si el contador quedo por detras de prtb00012, salta al siguiente libre
LET existe_oc = 0
SELECT COUNT(*) INTO existe_oc FROM prtb00012 WHERE num_oc = ult_numero
IF existe_oc > 0 THEN
SELECT MAX(num_oc) + 1 INTO ult_numero FROM prtb00012
UPDATE prtb00020 SET num_oc = ult_numero
END IF
DISPLAY "ACTUALICE ULTIMO NUMERO: ",ult_numero USING "<<<<<<<"," ",CURRENT
LET p_prtb14.observacion = xcomentario CLIPPED