JSOTO Adicion grupos ADMINISTRACION PERSONAL Y NOMINA
This commit is contained in:
@@ -64,7 +64,7 @@ GLOBALS "prprgb000.4gl"
|
||||
nombre_vend,nombres,apellidos CHAR(40),fcalle CHAR(25),
|
||||
fcasa_num CHAR(5), fbarrio,furbanizacion CHAR(15),
|
||||
monto_desc,total1,p_costos1,total_i,total_mo DECIMAL(12,2),
|
||||
ult_numero,cuenta INTEGER,
|
||||
ult_numero,cuenta,existe_oc INTEGER,
|
||||
vetb05 RECORD LIKE vetb00005.*,
|
||||
cuenta_p,ridx SMALLINT,
|
||||
pbalance1,pbalance2 DEC(12,2),
|
||||
@@ -798,19 +798,26 @@ FUNCTION prpcad008()
|
||||
# SE COLOCO QUE EL NUMERO SE GENERARA A PARTIR DEL 01/01/2003 HACIA ATRAS POR MODIFICACION DEL
|
||||
# SISTEMA Y LA INCLUSION DEL NCF A PARTIR DEL 01/01/2007
|
||||
# FECHA MODIFICACION: 11/01/2007
|
||||
SELECT num_oc INTO ult_numero FROM prtb00020
|
||||
IF nuevo = "S" THEN
|
||||
IF ult_numero IS NULL THEN
|
||||
LET ult_numero = 0
|
||||
END IF
|
||||
LET ult_numero = ult_numero + 1
|
||||
LET prtb08.num_oc = ult_numero
|
||||
DISPLAY BY NAME prtb08.num_oc
|
||||
|
||||
UPDATE prtb00020 set num_oc = ult_numero,
|
||||
# CONSECUTIVO ATOMICO: el UPDATE incrementa y bloquea la fila de prtb00020
|
||||
# hasta el COMMIT, asi dos usuarios no pueden tomar el mismo num_oc
|
||||
# (antes se leia y luego se escribia -> PK_prtb00012 duplicada)
|
||||
BEGIN WORK
|
||||
UPDATE prtb00020 SET num_oc = ISNULL(num_oc, 0) + 1,
|
||||
us_crea = SUSER_SNAME(),
|
||||
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
|
||||
COMMIT WORK
|
||||
LET prtb08.num_oc = ult_numero
|
||||
DISPLAY BY NAME prtb08.num_oc
|
||||
|
||||
{ CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
|
||||
doble_on,doble_off,comp_on,comp_off,
|
||||
doce,normal,archivo,copia1
|
||||
@@ -851,9 +858,8 @@ CALL seleccionarsalida() RETURNING r_output
|
||||
fech_crea = GETDATE()
|
||||
WHERE @num_oc = prtb09.num_oc
|
||||
|
||||
UPDATE prtb00020 SET num_oc = ult_numero,
|
||||
us_Crea = SUSER_SNAME(),
|
||||
fech_crea = GETDATE()
|
||||
# (se elimino la re-escritura de prtb00020 aqui: el consecutivo ya se tomo
|
||||
# arriba de forma atomica y re-escribirlo podia retroceder el contador)
|
||||
|
||||
# ACTUALIZA NUMERO TEMPORAL PARA EL DESPIECE
|
||||
UPDATE prtb00022 SET num_oc = prtb08.num_oc WHERE num_oc = tmpnumero
|
||||
|
||||
Reference in New Issue
Block a user