111 lines
3.4 KiB
Plaintext
111 lines
3.4 KiB
Plaintext
{
|
|
===============================================================================
|
|
PROGRAMA : BUSCA_SERIE
|
|
OBJETIVO : ACTUALIZA LA TABLA VETB00042 (SERIE DE LOS PRODUCTOS )
|
|
PROGRAMADOR: JUAN F. SOTO
|
|
FECHA : AGOSTO 23, 1997
|
|
===============================================================================
|
|
}
|
|
DATABASE exterior
|
|
|
|
FUNCTION busca_s(numero_doc,cod_mov,cod_n,cod_grupo,cod_tipo,cod_sec,
|
|
cantidad)
|
|
DEFINE serie ARRAY[100] OF CHAR(30)
|
|
|
|
DEFINE p_seriea ARRAY[100] OF RECORD
|
|
factura LIKE vetb00042.factura,
|
|
cod_mov SMALLINT,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
serie LIKE vetb00042.serie
|
|
END RECORD ,
|
|
numero_msg,numero_doc INTEGER,
|
|
idx,cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad INTEGER,
|
|
cod_mov SMALLINT,
|
|
cuenta SMALLINT,
|
|
volver CHAR(1)
|
|
|
|
OPEN WINDOW w_serie AT 7,12 WITH FORM "busca_s"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
|
|
FOR idx = 1 TO 5
|
|
LET p_seriea[idx].factura = NULL
|
|
LET p_seriea[idx].cod_mov = NULL
|
|
LET p_seriea[idx].cod_n = NULL
|
|
LET p_seriea[idx].cod_grupo = NULL
|
|
LET p_seriea[idx].cod_tipo = NULL
|
|
LET p_seriea[idx].cod_sec = NULL
|
|
LET p_seriea[idx].serie = NULL
|
|
END FOR
|
|
DECLARE busca CURSOR FOR
|
|
SELECT a.* FROM vetb00042 a
|
|
WHERE a.factura = numero_doc AND
|
|
a.cod_mov = cod_mov
|
|
LET idx = 1
|
|
FOREACH busca INTO p_seriea[idx].*
|
|
LET serie[idx] = p_seriea[idx].serie
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
CALL set_count(idx-1)
|
|
LABEL vuelve:
|
|
INPUT ARRAY serie WITHOUT DEFAULTS FROM p_serie.*
|
|
IF int_flag THEN
|
|
LET numero_msg = 376
|
|
CALL msg(numero_msg)
|
|
GOTO sale
|
|
END IF
|
|
FOR idx = 1 TO arr_count()
|
|
LET p_seriea[idx].factura = numero_doc
|
|
LET p_seriea[idx].cod_mov = cod_mov
|
|
LET p_seriea[idx].cod_n = cod_n
|
|
LET p_seriea[idx].cod_grupo = cod_grupo
|
|
LET p_seriea[idx].cod_tipo = cod_tipo
|
|
LET p_seriea[idx].cod_sec = cod_sec
|
|
LET p_seriea[idx].cod_sec = cod_sec
|
|
LET p_seriea[idx].serie = serie[idx]
|
|
END FOR
|
|
|
|
LET cuenta = 0
|
|
FOR idx = 1 TO arr_count()
|
|
IF p_seriea[idx].serie IS NOT NULL THEN
|
|
LET cuenta = cuenta + 1
|
|
END IF
|
|
END FOR
|
|
IF cuenta != cantidad THEN
|
|
LET numero_msg =376
|
|
CALL msg(numero_msg)
|
|
GOTO vuelve
|
|
END IF
|
|
DELETE FROM vetb00042 WHERE factura = numero_doc AND
|
|
@cod_mov = cod_mov
|
|
WHENEVER ERROR CONTINUE
|
|
LET volver = "N"
|
|
FOR idx = 1 TO arr_count()
|
|
IF p_seriea[idx].serie IS NOT NULL THEN
|
|
INSERT INTO vetb00042 VALUES
|
|
(p_seriea[idx].*,null,user,current,null,null)
|
|
IF STATUS < 0 THEN
|
|
LET numero_msg = 378
|
|
CALL msg(numero_msg)
|
|
LET volver ="S"
|
|
EXIT FOR
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
|
|
IF volver = "S" THEN
|
|
LET STATUS = 0
|
|
DELETE FROM vetb00042 WHERE factura = numero_doc
|
|
GOTO vuelve
|
|
END IF
|
|
|
|
LABEL sale:
|
|
CLOSE WINDOW w_serie
|
|
CLOSE FORM busca_s
|
|
END FUNCTION
|