Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,254 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : ACPRMT002
|
||||
OBJETIVO : Mantenimiento a la maestra de cod_mov.
|
||||
PROGRAMADOR : Tadeo A. Ferreras.
|
||||
FECHA REALIZACION : Sept. 27, 1993.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "acprgb000.4gl"
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT to "smarmotech" user usuarios USING clave
|
||||
SELECT a.* INTO p_companias.* FROM companias a
|
||||
|
||||
CALL acprmt002()
|
||||
END MAIN
|
||||
|
||||
FUNCTION acprmt002()
|
||||
# WHENEVER ERROR CONTINUE
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM acfmmt002 FROM "acfmmt002"
|
||||
DISPLAY FORM acfmmt002
|
||||
# CALL pantalla()
|
||||
DISPLAY "acprmt002" AT 4,3
|
||||
DISPLAY "Maestra de Movimientos" AT 6,29
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
CALL acpcad002()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
CALL acpcmf002()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
CLEAR FORM
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION acpcad002()
|
||||
WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
INPUT BY NAME categ.*
|
||||
|
||||
## Verifica que el cod_mov no exista en el catalogo de categ. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
|
||||
AFTER FIELD cod_mov
|
||||
IF categ.cod_mov is null then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
#### Verifica que el el cod_mov asignado al categ no exista
|
||||
|
||||
SELECT a.* FROM actb00002 a
|
||||
WHERE a.cod_mov = categ.cod_mov
|
||||
|
||||
IF status != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD descrip
|
||||
IF categ.descrip IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip
|
||||
END IF
|
||||
|
||||
AFTER FIELD tipo_mov
|
||||
IF categ.tipo_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD tipo_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD uso
|
||||
IF categ.uso IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD uso
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
#### Proceso para insertar la informacion en las tablas necesarias
|
||||
|
||||
INSERT INTO actb00002 VALUES (categ.*)
|
||||
UPDATE actb00002 set (us_crea,fech_crea) = (usuarios,getdate())
|
||||
WHERE cod_mov = categ.cod_mov
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
END FUNCTION
|
||||
|
||||
###### Funcion de modificacion
|
||||
|
||||
FUNCTION acpcmf002()
|
||||
WHENEVER ERROR CONTINUE
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
|
||||
CONSTRUCT criterio ON a.cod_mov,a.descrip
|
||||
FROM cod_mov,descrip
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC =
|
||||
"SELECT UNIQUE a.* FROM actb00002 a ",
|
||||
"WHERE a.status_t IS NULL AND ",
|
||||
criterio CLIPPED, " ORDER BY a.cod_mov "
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
FETCH FIRST datos INTO categ.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME categ.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO categ.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME categ.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO categ.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME categ.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO categ.*
|
||||
|
||||
DISPLAY BY NAME categ.*
|
||||
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO categ.*
|
||||
|
||||
DISPLAY BY NAME categ.*
|
||||
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
IF estado.status_t="E" THEN
|
||||
LET numero_msg= 36
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
INPUT BY NAME categ.descrip THRU categ.fech_mod
|
||||
WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD descrip
|
||||
IF categ.descrip IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip
|
||||
END IF
|
||||
|
||||
AFTER FIELD tipo_mov
|
||||
IF categ.tipo_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD tipo_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD uso
|
||||
IF categ.uso IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD uso
|
||||
END IF
|
||||
|
||||
##### Chequea que el numero de cuenta a digitar exista en el catalogo
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
###### Proceso de Actualizacion
|
||||
|
||||
UPDATE actb00002 SET (descrip,tipo_mov,uso,us_mod,fech_mod) =
|
||||
(categ.descrip,categ.tipo_mov,categ.uso,
|
||||
usuarios,getdate())
|
||||
WHERE @cod_mov = categ.cod_mov
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
#### Proceso para eliminar un registro logicamente
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
|
||||
UPDATE actb00002 SET (status_t,us_mod,fech_mod) =
|
||||
("E",usuarios,getdate())
|
||||
WHERE @cod_mov = categ.cod_mov
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
EXIT MENU
|
||||
CLEAR FORM
|
||||
END MENU
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user