554 lines
20 KiB
Plaintext
554 lines
20 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : NOPRMT007
|
|
OBJETIVO : Captura y Modifica registros de la
|
|
Tabla de Novedades de la Nomina
|
|
PROGRAMADOR : Ing. Juan Soto
|
|
FECHA REALIZACION : Noviembre 5, 1993.
|
|
------------------------------------------------------------------
|
|
}
|
|
GLOBALS "noprgb000.4gl"
|
|
DEFINE apellido CHAR (30)
|
|
DEFINE p_cantidad,total1,total2 DECIMAL(12,2)
|
|
DEFINE nomina,p_depart,p_nivel,p_puesto INTEGER
|
|
DEFINE k SMALLINT,
|
|
ptipo VARCHAR(1)
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
LET usuarios = 'jsoto'
|
|
LET clave = 'lmmjvsd2009'
|
|
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
CALL noprmt007()
|
|
END MAIN
|
|
|
|
FUNCTION noprmt007()
|
|
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 23
|
|
|
|
LET formulario = formulario CLIPPED,"nofmmt007"
|
|
OPEN FORM nofmmt007 FROM "nofmmt007"
|
|
DISPLAY FORM nofmmt007
|
|
#CALL pantalla()
|
|
#DISPLAY "noprmt007" AT 4,3
|
|
#DISPLAY "Novedades de la Nomina" AT 6,29
|
|
CALL nopcad007()
|
|
END FUNCTION
|
|
|
|
FUNCTION nopcad007()
|
|
## AQUI SE PROCEDE A CAPTURAR LA INFORMACION
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
|
|
INPUT BY NAME novedad.num_nomi,novedad.tipo_emp,novedad.veces
|
|
ATTRIBUTE (WITHOUT DEFAULTS=TRUE)
|
|
|
|
AFTER FIELD tipo_emp
|
|
IF novedad.num_nomi IS NOT NULL THEN
|
|
LET ptipo = novedad.tipo_emp
|
|
LET nomina = novedad.num_nomi
|
|
LET selec10 =
|
|
"SELECT CONVERT(char(10),a.fecha_del,101),convert(char(10),a.fecha_al,101) ",
|
|
"FROM notb00010 AS a ",
|
|
" WHERE a.num_nomi = ",novedad.num_nomi USING "<<<<", " and ",
|
|
" a.tipo_emp = '",novedad.tipo_emp ,"' and ",
|
|
" a.status_t is null "
|
|
|
|
PREPARE busca_fecha FROM selec10
|
|
|
|
EXECUTE busca_fecha
|
|
INTO novedad.fecha_al,novedad.fecha_del
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_nomi
|
|
END IF
|
|
IF novedad.tipo_emp IS NOT NULL THEN
|
|
IF novedad.tipo_emp = "Q" THEN
|
|
LET descr = "QUINCENAL"
|
|
END IF
|
|
IF novedad.tipo_emp = "S" THEN
|
|
LET descr = "SEMANAL"
|
|
END IF
|
|
IF novedad.tipo_emp = "V" THEN
|
|
LET descr = "VENDEDOR"
|
|
END IF
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_nomi
|
|
END IF
|
|
DISPLAY BY NAME descr,novedad.fecha_del,novedad.fecha_al
|
|
|
|
END INPUT
|
|
|
|
CONSTRUCT BY NAME criterio ON d.cod_mov
|
|
|
|
AFTER CONSTRUCT
|
|
|
|
LET selec =
|
|
"SELECT d.cod_mov,d.descrip_mov,d.cantidad_cia ",
|
|
"FROM notb00002 AS d LEFT OUTER JOIN notb00007 AS c ",
|
|
" on c.cod_mov = d.cod_mov ",
|
|
" AND c.num_nomi = ",novedad.num_nomi USING "<<<<"," and ",
|
|
"c.tipo_emp = '",novedad.tipo_emp,"' ",
|
|
"WHERE d.status_t is null and ",criterio clipped,
|
|
" ORDER BY d.cod_mov "
|
|
|
|
|
|
PREPARE busca FROM selec
|
|
DECLARE datos SCROLL CURSOR FOR busca
|
|
|
|
|
|
LET idx = 1
|
|
|
|
FOREACH datos INTO novedad.cod_mov,novedad.descrip_mov,
|
|
novedad.cantidad_cia
|
|
|
|
|
|
DISPLAY BY NAME novedad.cod_mov,novedad.descrip_mov
|
|
## SE INTRODUCEN LOS DATOS DEL ARREGLO Y CHEQUEA QUE LOS MOVIMIENTOS EXISTAN
|
|
## EN EL CATALOGO DE MOVIMIENTOS.
|
|
|
|
FOR idx = 1 to 6
|
|
LET arr_novedad[idx].num_emp = NULL
|
|
LET arr_novedad[idx].departamento = NULL
|
|
LET arr_novedad[idx].nivel_emp = NULL
|
|
LET arr_novedad[idx].cod_puesto = NULL
|
|
LET arr_novedad[idx].descrip1 = NULL
|
|
LET arr_novedad[idx].cantidad = NULL
|
|
LET arr_novedad[idx].valor = NULL
|
|
|
|
DISPLAY arr_novedad[idx].num_emp to consart[idx].num_emp
|
|
DISPLAY arr_novedad[idx].departamento to consart[idx].departamento
|
|
DISPLAY arr_novedad[idx].nivel_emp to consart[idx].nivel_emp
|
|
DISPLAY arr_novedad[idx].cod_puesto to consart[idx].cod_puesto
|
|
DISPLAY arr_novedad[idx].descrip1 to consart[idx].descrip1
|
|
DISPLAY arr_novedad[idx].cantidad to consart[idx].cantidad
|
|
DISPLAY arr_novedad[idx].valor to consart[idx].valor
|
|
END FOR
|
|
|
|
# Busqueda de los empleados que tiene el movimiento que esta en memoria
|
|
LET selec1 =
|
|
"SELECT DISTINCT A.num_nomi FROM notb00007 A WHERE ",
|
|
" A.num_nomi = ",novedad.num_nomi USING "<<<<",
|
|
" and A.tipo_emp ='",novedad.tipo_emp,"' and ",
|
|
" A.cod_mov = ",novedad.cod_mov
|
|
PREPARE busca_nomina FROM selec1
|
|
|
|
EXECUTE busca_nomina
|
|
|
|
IF status = notfound THEN
|
|
LET nomina = novedad.num_nomi - 1
|
|
END IF
|
|
LET selec2 =
|
|
"SELECT UNIQUE a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
|
"a.nom1_emp,b.cantidad,b.valor ",
|
|
"FROM notb00007 b,adtb00003 a,notb00002 c ",
|
|
"WHERE ",
|
|
" b.num_nomi = ",nomina USING "<<<<", " and ",
|
|
" a.num_emp = b.num_emp and ",
|
|
" a.nomina = '",novedad.tipo_emp,"' and ",
|
|
" b.cod_mov = ",novedad.cod_mov," and ",
|
|
" b.cod_mov = c.cod_mov and ",
|
|
" (a.status_t is null or ",
|
|
" a.status_t = 'I') ",
|
|
" ORDER BY a.num_emp "
|
|
|
|
PREPARE comando1 FROM selec2
|
|
DECLARE buscate CURSOR FOR comando1
|
|
|
|
LET idx = 1
|
|
|
|
FOREACH buscate INTO arr_novedad[idx].*
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
EXIT FOREACH
|
|
END IF
|
|
SELECT nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003
|
|
WHERE num_emp = arr_novedad[idx].num_emp
|
|
LET arr_novedad[idx].descrip1 = nombre clipped," ",apellido clipped
|
|
IF novedad.veces > 0 THEN
|
|
LET arr_novedad[idx].cantidad = arr_novedad[idx].cantidad * 2
|
|
LET arr_novedad[idx].valor = arr_novedad[idx].valor * novedad.veces
|
|
END IF
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
FREE busca_nomina
|
|
FREE buscate
|
|
|
|
LET total1 = 0
|
|
LET total2 = 0
|
|
DISPLAY BY NAME total1,total2
|
|
INPUT ARRAY arr_novedad WITHOUT DEFAULTS FROM consart.*
|
|
|
|
AFTER FIELD num_emp
|
|
LET curr1 = arr_curr()
|
|
LET scr_l = scr_line()
|
|
|
|
IF arr_novedad[curr1].num_emp IS NOT NULL THEN
|
|
LET control = "N"
|
|
CALL repetido()
|
|
IF control = "S" THEN
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
SELECT nom1_emp,apell1_emp,departamento,nivel_emp,cod_puesto
|
|
INTO nombre,apellido,p_depart,
|
|
p_nivel,p_puesto
|
|
FROM adtb00003
|
|
WHERE num_emp = arr_novedad[curr1].num_emp and
|
|
(status_t is null or
|
|
status_t = "I")
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 34
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
LET arr_novedad[curr1].departamento = p_depart
|
|
LET arr_novedad[curr1].cod_puesto = p_puesto
|
|
LET arr_novedad[curr1].nivel_emp = p_nivel
|
|
LET arr_novedad[curr1].descrip1 = nombre clipped," ",apellido clipped
|
|
DISPLAY arr_novedad[curr1].departamento to consart[scr_l].departamento
|
|
DISPLAY arr_novedad[curr1].nivel_emp to consart[scr_l].nivel_emp
|
|
DISPLAY arr_novedad[curr1].cod_puesto to consart[scr_l].cod_puesto
|
|
DISPLAY arr_novedad[curr1].descrip1 to consart[scr_l].descrip1
|
|
SELECT cod_mov FROM notb00003
|
|
WHERE cod_mov = novedad.cod_mov and
|
|
num_emp = arr_novedad[curr1].num_emp and
|
|
status_t is null
|
|
|
|
IF status != notfound THEN
|
|
LET numero_msg = 196
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD cantidad
|
|
IF arr_novedad[curr1].cantidad is not null THEN
|
|
LET total1 = 0
|
|
FOR i = 1 TO arr_count()
|
|
IF arr_novedad[i].valor is null THEN
|
|
LET arr_novedad[i].valor = 0
|
|
END IF
|
|
LET total1 = total1 + arr_novedad[i].cantidad
|
|
END FOR
|
|
END IF
|
|
DISPLAY BY NAME total1 ATTRIBUTE (BOLD)
|
|
AFTER FIELD valor
|
|
IF arr_novedad[curr1].valor is not null THEN
|
|
LET total2 = 0
|
|
FOR i = 1 TO arr_count()
|
|
IF arr_novedad[i].valor is null THEN
|
|
LET arr_novedad[i].valor = 0
|
|
END IF
|
|
LET total2 = total2 + arr_novedad[i].valor
|
|
END FOR
|
|
END IF
|
|
DISPLAY BY NAME total2 ATTRIBUTE (BOLD)
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
## SI NO EXISTE NINGUN PROBLEMA EN LA ENTRADA DE INFORMACION SE PROCEDE
|
|
## A INSERTAR EL REGISTRO
|
|
DELETE FROM notb00007 WHERE num_nomi = nomina and
|
|
cod_mov = novedad.cod_mov
|
|
|
|
# Cuando el movimiento se va a faccionar en cuotas
|
|
IF novedad.veces > 0 THEN
|
|
LET k = 1
|
|
WHILE k <= novedad.veces
|
|
LET novedad.num_nomi1 = novedad.num_nomi + 1
|
|
DELETE FROM notb00007 WHERE num_nomi = nomina and
|
|
cod_mov = novedad.cod_mov
|
|
FOR idx = 1 to arr_count()
|
|
IF arr_novedad[idx].num_emp is not null THEN
|
|
LET p_cantidad = arr_novedad[idx].cantidad /
|
|
novedad.veces
|
|
LET p_valor = arr_novedad[idx].valor /
|
|
novedad.veces
|
|
INSERT INTO notb00007 VALUES (nomina,ptipo,
|
|
arr_novedad[idx].num_emp,arr_novedad[idx].departamento,
|
|
arr_novedad[idx].nivel_emp,
|
|
arr_novedad[idx].cod_puesto,novedad.cod_mov,
|
|
p_cantidad,p_valor,null,
|
|
SUSER_SNAME(),GETDATE(),null,null)
|
|
END IF
|
|
END FOR
|
|
LET k = k + 1
|
|
END WHILE
|
|
END IF
|
|
|
|
# Inserta las novedades normales
|
|
FOR idx = 1 to arr_count()
|
|
IF arr_novedad[idx].num_emp is not null THEN
|
|
LET p_cantidad = arr_novedad[idx].cantidad
|
|
LET p_valor = arr_novedad[idx].valor
|
|
IF novedad.veces > 0 THEN
|
|
LET p_cantidad = arr_novedad[idx].cantidad /
|
|
novedad.veces
|
|
LET p_valor = arr_novedad[idx].valor /
|
|
novedad.veces
|
|
END IF
|
|
INSERT INTO notb00007 VALUES (nomina,novedad.tipo_emp,
|
|
arr_novedad[idx].num_emp,arr_novedad[idx].departamento,
|
|
arr_novedad[idx].nivel_emp,
|
|
arr_novedad[idx].cod_puesto,novedad.cod_mov,
|
|
p_cantidad,p_valor,null,
|
|
SUSER_SNAME(),GETDATE(),null,null)
|
|
END IF
|
|
END FOR
|
|
|
|
IF status < 0 THEN
|
|
CALL integridad()
|
|
CLEAR FORM
|
|
END IF
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
# Se puso el EXIT WHILE porque cuando hay mas de una nomina en la tabla
|
|
# de novedades no salia al final de los empleados digitados
|
|
|
|
EXIT FOREACH
|
|
END FOREACH
|
|
END CONSTRUCT
|
|
|
|
ON ACTION cancel
|
|
CALL msg(2)
|
|
EXIT PROGRAM
|
|
|
|
END DIALOG
|
|
|
|
END FUNCTION
|
|
{
|
|
FUNCTION nopcmf007()
|
|
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA LA
|
|
## MODIFICACION DE REGISTROS.
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
CONSTRUCT BY NAME criterio ON b.num_nomi,b.tipo_emp,a.cod_mov
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET SELEC1 = " SELECT UNIQUE b.num_nomi,b.tipo_emp,c.fecha_del, ",
|
|
"c.fecha_al,a.num_emp,a.departamento,a.nivel_emp, ",
|
|
"a.cod_puesto,a.nom1_emp,a.apell1_emp ",
|
|
" FROM adtb00003 a,notb00007 b,notb00010 c where ",
|
|
" a.num_emp = b.num_emp and ",
|
|
" a.departamento = b.departamento and ",
|
|
" b.num_nomi = c.num_nomi and ",
|
|
" b.tipo_emp = c.tipo_emp and ",
|
|
" (a.status_t is null or ",
|
|
" a.status_t = 'I') and ",
|
|
criterio clipped,
|
|
" ORDER BY 2,1,5,6"
|
|
|
|
PREPARE busca1 FROM selec1
|
|
DECLARE datos1 SCROLL CURSOR FOR busca1
|
|
OPEN datos1
|
|
|
|
LET idx = 1
|
|
WHILE status != NOTFOUND
|
|
FETCH datos1 INTO novedad.*
|
|
|
|
IF status = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET descrip1 = novedad.nom1_emp clipped," ",novedad.apell1_emp clipped
|
|
IF novedad.tipo_emp = "Q" THEN LET descr = "QUINCENAL" END IF
|
|
IF novedad.tipo_emp = "S" THEN LET descr = "SEMANAL" END IF
|
|
IF novedad.tipo_emp = "V" THEN LET descr = "VENDEDOR" END IF
|
|
DISPLAY BY NAME novedad.num_nomi,novedad.tipo_emp,descr,novedad.fecha_del,
|
|
novedad.fecha_al,novedad.num_emp,novedad.departamento,
|
|
novedad.nivel_emp,novedad.cod_puesto,descrip1
|
|
|
|
## SE PROCEDE A MODIFICAR LOS DATOS DEL ARREGLO Y CHEQUEA QUE LOS MOVIMIENTOS
|
|
## EXISTAN EN EL CATALOGO DE MOVIMIENTOS.
|
|
|
|
FOR idx = 1 to 3
|
|
LET arr_novedad[idx].cod_mov = NULL
|
|
LET arr_novedad[idx].descrip_mov = NULL
|
|
LET arr_novedad[idx].cantidad = NULL
|
|
LET arr_novedad[idx].valor = NULL
|
|
|
|
DISPLAY arr_novedad[idx].cod_mov to consart[idx].cod_mov
|
|
DISPLAY arr_novedad[idx].descrip_mov to consart[idx].descrip_mov
|
|
DISPLAY arr_novedad[idx].cantidad to consart[idx].cantidad
|
|
DISPLAY arr_novedad[idx].valor to consart[idx].valor
|
|
END FOR
|
|
|
|
DECLARE buscate1 CURSOR FOR
|
|
SELECT c.cod_mov,d.descrip_mov,c.cantidad,c.valor
|
|
FROM notb00007 c,notb00002 d
|
|
WHERE c.cod_mov = d.cod_mov and
|
|
c.num_emp = novedad.num_emp and
|
|
c.departamento = novedad.departamento and
|
|
c.num_nomi = novedad.num_nomi and
|
|
c.tipo_emp = novedad.tipo_emp and
|
|
c.status_t is null
|
|
ORDER BY 1
|
|
|
|
LET idx = 1
|
|
|
|
FOREACH buscate1 INTO arr_novedad[idx].*
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
EXIT FOREACH
|
|
END IF
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
CALL set_count(idx - 1)
|
|
|
|
INPUT ARRAY arr_novedad WITHOUT DEFAULTS FROM consart.*
|
|
|
|
## VENTANA QUE BUSCA LOS MOVIMIENTOS
|
|
ON KEY (CONTROL-W)
|
|
LET curr1 = arr_curr()
|
|
LET scr_l = scr_line()
|
|
CASE
|
|
WHEN INFIELD (cod_mov)
|
|
CALL busca_movimientos()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD cod_mov
|
|
END IF
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 34
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_mov
|
|
END IF
|
|
SELECT descrip_mov INTO mov_nomi.descrip_mov
|
|
FROM notb00002
|
|
WHERE cod_mov = arr_novedad[curr1].cod_mov and
|
|
status_t is null
|
|
|
|
LET arr_novedad[curr1].cod_mov = arr_fijo[curr1].cod_mov
|
|
LET arr_novedad[curr1].descrip_mov = mov_nomi.descrip_mov
|
|
DISPLAY arr_novedad[curr1].cod_mov to consart[scr_l].cod_mov
|
|
DISPLAY arr_novedad[curr1].descrip_mov to consart[scr_l].descrip_mov
|
|
LET control = "N"
|
|
CALL repetido()
|
|
IF control = "S" THEN
|
|
NEXT FIELD cod_mov
|
|
END IF
|
|
NEXT FIELD cantidad
|
|
END CASE
|
|
|
|
AFTER FIELD cod_mov
|
|
LET curr1 = arr_curr()
|
|
LET scr_l = scr_line()
|
|
|
|
IF arr_novedad[curr1].cod_mov IS NOT NULL THEN
|
|
LET control = "N"
|
|
CALL repetido()
|
|
IF control = "S" THEN
|
|
NEXT FIELD cod_mov
|
|
END IF
|
|
|
|
SELECT descrip_mov INTO mov_nomi.descrip_mov
|
|
FROM notb00002
|
|
WHERE cod_mov = arr_novedad[curr1].cod_mov and
|
|
status_t is null
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 34
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_mov
|
|
END IF
|
|
|
|
LET arr_novedad[curr1].descrip_mov = mov_nomi.descrip_mov
|
|
DISPLAY arr_novedad[curr1].descrip_mov to consart[scr_l].descrip_mov
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
|
|
DELETE FROM notb00007 where num_nomi = novedad.num_nomi and
|
|
tipo_emp = novedad.tipo_emp and
|
|
num_emp = novedad.num_emp
|
|
|
|
FOR idx = 1 to arr_count()
|
|
IF arr_novedad[idx].cod_mov is not null THEN
|
|
|
|
INSERT INTO notb00007 VALUES (novedad.num_nomi,novedad.tipo_emp,
|
|
novedad.num_emp,novedad.departamento,novedad.nivel_emp,
|
|
novedad.cod_puesto,arr_novedad[idx].cod_mov,
|
|
arr_novedad[idx].cantidad,arr_novedad[idx].valor,null,
|
|
SUSER_SNAME(),GETDATE(),null,null)
|
|
END IF
|
|
END FOR
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
IF status < 0 THEN
|
|
CALL integridad()
|
|
END IF
|
|
END WHILE
|
|
END FUNCTION
|
|
}
|
|
## VERIFICA QUE NO SE REPITAN LOS MOVIMIENTOS
|
|
FUNCTION repetido()
|
|
DEFINE movi_ant RECORD
|
|
num_emp SMALLINT
|
|
END RECORD
|
|
|
|
LET movi_ant.num_emp = arr_novedad[curr1].num_emp
|
|
|
|
FOR idx = 1 to arr_count()
|
|
IF idx != curr1 THEN
|
|
IF arr_novedad[idx].num_emp IS NOT NULL THEN
|
|
IF arr_novedad[idx].num_emp = movi_ant.num_emp THEN
|
|
LET numero_msg = 135
|
|
CALL msg(numero_msg)
|
|
LET control = "S"
|
|
ELSE
|
|
IF control != "S" THEN
|
|
LET control = "N"
|
|
END IF
|
|
END IF
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
END FUNCTION
|
|
|