Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,453 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : NOPRMT001
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla de Maestra de Codigos de Movimientos
|
||||
PROGRAMADOR : Ing. Betania Guerrero Perez
|
||||
FECHA REALIZACION : Agosto 19, 1993
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "noprgb000.4gl"
|
||||
DEFINE arrmovimientos DYNAMIC ARRAY OF RECORD
|
||||
codmov1 INT,
|
||||
descripmov1 VARCHAR(100),
|
||||
tipomov1 VARCHAR(50),
|
||||
clasificacion VARCHAR(50),
|
||||
afectatss1,modificanovedad1,afectavacacion1 VARCHAR(3)
|
||||
END RECORD
|
||||
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 noprmt001()
|
||||
END MAIN
|
||||
|
||||
FUNCTION noprmt001()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
|
||||
OPEN FORM nofmmt001 FROM "nofmmt001"
|
||||
DISPLAY FORM nofmmt001
|
||||
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
DISPLAY ARRAY arrmovimientos TO smovimientos.*
|
||||
BEFORE DISPLAY
|
||||
-- CALL DIALOG.setActionActive( "Ok", FALSE )
|
||||
-- CALL DIALOG.setActionActive( "insert", FALSE )
|
||||
-- CALL DIALOG.setActionActive( "delete", FALSE )
|
||||
CALL buscamovimientos()
|
||||
ON ACTION nuevo ATTRIBUTE(TEXT="Nuevo Movimiento",IMAGE="new")
|
||||
CALL nopcad001()
|
||||
ON ACTION modificar ATTRIBUTE(TEXT="Modificar",IMAGE="fa-cloud-upload")
|
||||
LET mov_nomi.cod_mov = arrmovimientos[arr_curr()].codmov1
|
||||
CALL buscaData()
|
||||
CALL nopcmf001()
|
||||
CALL buscamovimientos()
|
||||
|
||||
ON ACTION salir ATTRIBUTE(TEXT="Salir", IMAGE="quit")
|
||||
RETURN
|
||||
END DISPLAY
|
||||
END DIALOG
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION nopcad001()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
## Captura los datos que va a contener el registro
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
|
||||
INPUT BY NAME mov_nomi.*
|
||||
|
||||
## Verifica que el codigo no exista en el catalogo de movimientos. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
BEFORE INPUT
|
||||
|
||||
CALL buscaMaximo()
|
||||
AFTER FIELD cod_mov
|
||||
IF mov_nomi.cod_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
ELSE
|
||||
SELECT * INTO mov_nomi.* FROM notb00002
|
||||
WHERE cod_mov = mov_nomi.cod_mov
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status != NOTFOUND THEN
|
||||
IF mov_nomi.status_t = "E" THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
DISPLAY BY NAME mov_nomi.*
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
INITIALIZE mov_nomi.* TO NULL
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD descrip_mov
|
||||
IF mov_nomi.descrip_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD primer_enc
|
||||
IF mov_nomi.primer_enc IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD primer_enc
|
||||
END IF
|
||||
|
||||
|
||||
AFTER FIELD clase_mov
|
||||
IF mov_nomi.clase_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD clase_mov
|
||||
END IF
|
||||
|
||||
BEFORE FIELD cantidad_emp
|
||||
IF mov_nomi.tipo_mov = "V" THEN
|
||||
LET mov_nomi.cantidad_emp = 0
|
||||
END IF
|
||||
|
||||
{ AFTER FIELD cta_control
|
||||
IF mov_nomi.clase_mov = "D" THEN
|
||||
IF mov_nomi.cta_control IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cta_control
|
||||
END IF
|
||||
END IF}
|
||||
|
||||
ON ACTION guardar ATTRIBUTE(TEXT='Salvar', IMAGE='save')
|
||||
|
||||
IF mov_nomi.cod_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
ELSE
|
||||
CALL buscaMaximo()
|
||||
IF mov_nomi.descrip_mov IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD descrip_mov
|
||||
END IF
|
||||
IF mov_nomi.tipo_mov IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD tipo_mov
|
||||
END IF
|
||||
|
||||
IF mov_nomi.cta_aux IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cta_aux
|
||||
END IF
|
||||
IF mov_nomi.clase_mov IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD clase_mov
|
||||
END IF
|
||||
IF mov_nomi.cod_mov IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
|
||||
INSERT INTO notb00002 VALUES (mov_nomi.cod_mov,mov_nomi.descrip_mov,
|
||||
mov_nomi.primer_enc,mov_nomi.segundo_enc,
|
||||
mov_nomi.tercer_enc,mov_nomi.ch_encabeza,
|
||||
mov_nomi.tipo_mov,
|
||||
mov_nomi.clase_mov,mov_nomi.afecta_tss,mov_nomi.cantidad_cia,
|
||||
mov_nomi.cantidad_emp,mov_nomi.cta_control,
|
||||
mov_nomi.cta_aux,null,SUSER_SNAME(),GETDATE(),
|
||||
null,null,mov_nomi.modifica,mov_nomi.vacaciones)
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
INITIALIZE mov_nomi.* TO NULL
|
||||
NEXT FIELD cod_mov
|
||||
|
||||
END IF
|
||||
|
||||
ON ACTION CANCEL
|
||||
RETURN
|
||||
END INPUT
|
||||
END DIALOG
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION nopcmf001()
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
{
|
||||
#WHENEVER ERROR CONTINUE
|
||||
CONSTRUCT BY NAME criterio ON notb00002.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE * FROM notb00002 where ",
|
||||
" status_t is null and ",
|
||||
criterio clipped,
|
||||
" ORDER BY cod_mov "
|
||||
|
||||
PREPARE busca FROM selec
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
|
||||
FETCH FIRST datos INTO mov_nomi.*
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME mov_nomi.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO mov_nomi.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
DISPLAY BY NAME mov_nomi.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO mov_nomi.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME mov_nomi.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO mov_nomi.*
|
||||
|
||||
DISPLAY BY NAME mov_nomi.*
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO mov_nomi.*
|
||||
|
||||
DISPLAY BY NAME mov_nomi.*
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <CTRL-C> Cancela Operacion"
|
||||
IF mov_nomi.status_t = "E" THEN
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF}
|
||||
INPUT BY NAME mov_nomi.descrip_mov,
|
||||
mov_nomi.primer_enc,
|
||||
mov_nomi.segundo_enc,
|
||||
mov_nomi.tercer_enc,
|
||||
mov_nomi.ch_encabeza,
|
||||
mov_nomi.tipo_mov,
|
||||
mov_nomi.clase_mov,
|
||||
mov_nomi.afecta_tss,
|
||||
mov_nomi.cantidad_cia,
|
||||
mov_nomi.cantidad_emp,
|
||||
mov_nomi.cta_control,
|
||||
mov_nomi.cta_aux,
|
||||
mov_nomi.us_crea,
|
||||
mov_nomi.fech_crea,
|
||||
mov_nomi.us_mod,
|
||||
mov_nomi.fech_mod,mov_nomi.modifica,
|
||||
mov_nomi.vacaciones WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD descrip_mov
|
||||
IF mov_nomi.descrip_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD primer_enc
|
||||
IF mov_nomi.primer_enc IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD primer_enc
|
||||
END IF
|
||||
|
||||
AFTER FIELD clase_mov
|
||||
IF mov_nomi.clase_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD clase_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD cta_control
|
||||
IF mov_nomi.clase_mov = "D" THEN
|
||||
IF mov_nomi.cta_control IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cta_control
|
||||
END IF
|
||||
END IF
|
||||
|
||||
#### Verifica si el usuario presiono la tecla <CTRL-C>
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
UPDATE notb00002 SET descrip_mov = mov_nomi.descrip_mov,
|
||||
primer_enc = mov_nomi.primer_enc,
|
||||
segundo_enc = mov_nomi.segundo_enc,
|
||||
tercer_enc = mov_nomi.tercer_enc,
|
||||
ch_encabeza = mov_nomi.ch_encabeza,
|
||||
tipo_mov = mov_nomi.tipo_mov,
|
||||
clase_mov = mov_nomi.clase_mov,
|
||||
cantidad_cia = mov_nomi.cantidad_cia,
|
||||
afecta_tss = mov_nomi.afecta_tss,
|
||||
cantidad_emp = mov_nomi.cantidad_emp,
|
||||
cta_control = mov_nomi.cta_control,
|
||||
cta_aux = mov_nomi.cta_aux,
|
||||
us_mod = usuarios,
|
||||
fech_mod = GETDATE(),
|
||||
modifica = mov_nomi.modifica,
|
||||
vacaciones = mov_nomi.vacaciones
|
||||
WHERE cod_mov = mov_nomi.cod_mov
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
{
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
LET opt = fgl_winquestion("ELIMINAR","DESEA ELIMINAR ESTE REGISTRO?","NO","YES|NO","QUESTION",0)
|
||||
IF opt = "YES" THEN
|
||||
UPDATE notb00002 SET status_t = "E",
|
||||
us_mod = usuarios,
|
||||
fech_mod = getdate()
|
||||
WHERE cod_mov = mov_nomi.cod_mov
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU}
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION buscamovimientos()
|
||||
|
||||
DECLARE buscaInformacion CURSOR FOR
|
||||
SELECT a.cod_mov,a.descrip_mov,a.tipo_mov,a.clase_mov,a.afecta_tss,a.modifica,a.vacaciones
|
||||
FROM notb00002 a
|
||||
WHERE a.status_t IS NULL
|
||||
ORDER BY a.cod_mov
|
||||
|
||||
LET idx =1
|
||||
FOREACH buscaInformacion INTO arrmovimientos[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION buscaMaximo()
|
||||
SELECT isnull(MAX(cod_mov),0) INTO mov_nomi.cod_mov FROM notb00002
|
||||
|
||||
LET mov_nomi.cod_mov =mov_nomi.cod_mov + 1
|
||||
|
||||
DISPLAY BY NAME mov_nomi.cod_mov
|
||||
END FUNCTION
|
||||
FUNCTION buscaData()
|
||||
|
||||
SELECT a.descrip_mov,
|
||||
a.primer_enc,
|
||||
a.segundo_enc,
|
||||
a.tercer_enc,
|
||||
a.ch_encabeza,
|
||||
a.tipo_mov,
|
||||
a.clase_mov,
|
||||
a.afecta_tss,
|
||||
a.cantidad_cia,
|
||||
a.cantidad_emp,
|
||||
a.cta_control,
|
||||
a.cta_aux,
|
||||
a.us_crea,
|
||||
a.fech_crea,
|
||||
a.us_mod,
|
||||
a.fech_mod,a.modifica,
|
||||
a.vacaciones
|
||||
INTO
|
||||
mov_nomi.descrip_mov,
|
||||
mov_nomi.primer_enc,
|
||||
mov_nomi.segundo_enc,
|
||||
mov_nomi.tercer_enc,
|
||||
mov_nomi.ch_encabeza,
|
||||
mov_nomi.tipo_mov,
|
||||
mov_nomi.clase_mov,
|
||||
mov_nomi.afecta_tss,
|
||||
mov_nomi.cantidad_cia,
|
||||
mov_nomi.cantidad_emp,
|
||||
mov_nomi.cta_control,
|
||||
mov_nomi.cta_aux,
|
||||
mov_nomi.us_crea,
|
||||
mov_nomi.fech_crea,
|
||||
mov_nomi.us_mod,
|
||||
mov_nomi.fech_mod,mov_nomi.modifica,
|
||||
mov_nomi.vacaciones
|
||||
FROM notb00002 a WHERE a.cod_mov = mov_nomi.cod_mov
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user