Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,284 @@
|
||||
{
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMA : NOPRMT017
|
||||
OBEJTIVO : Establecer equivalencia de movimientos nomina
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA : Enero 29, 1993.
|
||||
----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"noprgb000.4gl"
|
||||
DEFINE datos_agr RECORD
|
||||
cod_mov SMALLINT,
|
||||
nombre1 CHAR(30)
|
||||
END RECORD
|
||||
|
||||
DEFINE arr_mov ARRAY[200] OF RECORD
|
||||
cod_mov_a SMALLINT,
|
||||
descrip_mov CHAR(30)
|
||||
END RECORD
|
||||
|
||||
FUNCTION noprmt017()
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
DISPLAY "noprmt017" AT 4,3
|
||||
DISPLAY "Equivalencia de Movimientos" AT 6,26
|
||||
|
||||
LET formulario = formulario CLIPPED,"nofmmt017"
|
||||
OPEN FORM nofmmt017 FROM "nofmmt017"
|
||||
DISPLAY FORM nofmmt017
|
||||
|
||||
MENU "Mant."
|
||||
COMMAND "Agregar"
|
||||
CALL agrego()
|
||||
COMMAND "Modificar"
|
||||
CALL modifico()
|
||||
COMMAND "Salir"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION agrego()
|
||||
INPUT BY NAME datos_agr.* WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD cod_mov
|
||||
IF datos_agr.cod_mov IS NULL THEN
|
||||
ERROR "No puede ser"
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE descrip_mov INTO datos_agr.nombre1 FROM notb00002
|
||||
WHERE cod_mov = datos_agr.cod_mov AND status_t IS NULL
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos_agr.nombre1
|
||||
|
||||
SELECT UNIQUE a.cod_mov FROM notb00013 a
|
||||
WHERE a.status_t IS NULL AND a.cod_mov = datos_agr.cod_mov
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
INPUT ARRAY arr_mov FROM scr_mov.*
|
||||
|
||||
BEFORE ROW
|
||||
LET curr1 = arr_curr()
|
||||
LET scr_l = scr_line()
|
||||
|
||||
AFTER FIELD cod_mov_a
|
||||
|
||||
IF arr_mov[curr1].cod_mov_a IS NOT NULL THEN
|
||||
SELECT UNIQUE a.descrip_mov INTO arr_mov[curr1].descrip_mov
|
||||
FROM notb00002 a
|
||||
WHERE a.cod_mov = arr_mov[curr1].cod_mov_a AND a.status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov_a
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE a.cod_mov FROM notb00013 a
|
||||
WHERE a.cod_mov = arr_mov[curr1].cod_mov_a AND a.status_t is null
|
||||
|
||||
IF status != notfound THEN
|
||||
LET numero_msg = 198
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov_a
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE a.cod_mov FROM notb00013 a
|
||||
WHERE a.cod_mov_a = arr_mov[curr1].cod_mov_a AND a.status_t is null
|
||||
|
||||
IF status != notfound THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov_a
|
||||
END IF
|
||||
|
||||
DISPLAY arr_mov[curr1].descrip_mov to scr_mov[scr_l].descrip_mov
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
FOR idx = 1 to arr_count()
|
||||
IF arr_mov[idx].cod_mov_a is not null THEN
|
||||
|
||||
INSERT INTO notb00013 values (datos_agr.cod_mov,arr_mov[idx].cod_mov_a,
|
||||
null,USER,CURRENT,null,null)
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION modifico()
|
||||
|
||||
CONSTRUCT criterio ON a.cod_mov FROM cod_mov
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET selec = "SELECT UNIQUE a.cod_mov,b.descrip_mov ",
|
||||
"FROM notb00013 a,notb00002 b ",
|
||||
"WHERE a.cod_mov = b.cod_mov AND ",
|
||||
" a.status_t IS NULL AND ",
|
||||
criterio clipped," ORDER BY 1 "
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos_agr SCROLL CURSOR FOR busca
|
||||
OPEN datos_agr
|
||||
|
||||
FETCH FIRST datos_agr INTO datos_agr.*
|
||||
IF status = notfound THEN
|
||||
ERROR "No puede ser posible"
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos_agr.*
|
||||
|
||||
MENU "OPCION"
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos_agr INTO datos_agr.*
|
||||
IF status = notfound THEN
|
||||
ERROR "No puede ser posible"
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos_agr.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos_agr INTO datos_agr.*
|
||||
IF status = notfound THEN
|
||||
ERROR "No puede ser posible"
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos_agr.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos_agr INTO datos_agr.*
|
||||
IF status = notfound THEN
|
||||
ERROR "No puede ser posible"
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos_agr.*
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos_agr INTO datos_agr.*
|
||||
IF status = notfound THEN
|
||||
ERROR "No puede ser posible"
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos_agr.*
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <CTRL-C> Cancela Operacion"
|
||||
|
||||
DECLARE buscate1 CURSOR FOR
|
||||
SELECT UNIQUE a.cod_mov_a,b.descrip_mov
|
||||
FROM notb00013 a,notb00002 b
|
||||
WHERE a.cod_mov_a = b.cod_mov AND a.status_t is NULL AND
|
||||
a.cod_mov = datos_agr.cod_mov
|
||||
GROUP BY 1,2 ORDER BY 1
|
||||
|
||||
LET idx = 1
|
||||
|
||||
FOREACH buscate1 INTO arr_mov[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
CALL set_count(idx - 1)
|
||||
|
||||
INPUT ARRAY arr_mov WITHOUT DEFAULTS FROM scr_mov.*
|
||||
BEFORE ROW
|
||||
LET curr1 = arr_curr()
|
||||
LET scr_l = scr_line()
|
||||
|
||||
|
||||
AFTER FIELD cod_mov_a
|
||||
|
||||
IF arr_mov[curr1].cod_mov_a IS NOT NULL THEN
|
||||
|
||||
SELECT UNIQUE descrip_mov INTO arr_mov[curr1].descrip_mov
|
||||
FROM notb00002
|
||||
WHERE cod_mov = arr_mov[curr1].cod_mov_a and
|
||||
status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov_a
|
||||
END IF
|
||||
|
||||
DISPLAY arr_mov[curr1].descrip_mov to scr_mov[scr_l].descrip_mov
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DELETE FROM notb00013 WHERE cod_mov = datos_agr.cod_mov
|
||||
|
||||
FOR idx = 1 to arr_count()
|
||||
IF arr_mov[idx].cod_mov_a is not null THEN
|
||||
|
||||
INSERT INTO notb00013 values (datos_agr.cod_mov,arr_mov[idx].cod_mov_a,
|
||||
null,user,current,user,current)
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
DELETE FROM notb00013 WHERE cod_mov = datos_agr.cod_mov
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Retornar"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
RETURN
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user