240 lines
8.2 KiB
Plaintext
240 lines
8.2 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : VEPRMT020
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla Comprobantes Fiscales
|
|
PROGRAMADOR : Ing. Juan Soto.
|
|
FECHA REALIZACION : Diciembre 27, 2006
|
|
------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(4) RETURNING impresor
|
|
|
|
CONNECT TO "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
CONNECT to "marmotech" AS "IFMX" USER usuarios USING clave
|
|
|
|
CALL veprmt020()
|
|
END MAIN
|
|
|
|
FUNCTION veprmt020()
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM vefmmt020 FROM "vefmmt020"
|
|
DISPLAY FORM vefmmt020
|
|
|
|
|
|
MENU
|
|
ON ACTION nuevo
|
|
|
|
CALL vepcad020()
|
|
ON ACTION modificar
|
|
|
|
CALL vepcmf020()
|
|
ON ACTION Salir
|
|
EXIT MENU
|
|
EXIT PROGRAM
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION vepcad020()
|
|
|
|
DEFINE hoy DATE
|
|
## Captura los datos que va a contener el registro
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
LET hoy = today
|
|
INPUT BY NAME ncf.*
|
|
BEFORE INPUT
|
|
CALL localidades('1')
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
SET CONNECTION "IFMX"
|
|
INSERT INTO vetb00071 (fecha,tipo_ncf,tipo_doc,ncf_inicial,ncf_final,
|
|
codigo_dgii,disponible,itbis,us_mod,fech_mod,sucid)
|
|
VALUES (ncf.fecha,ncf.tipo_ncf,ncf.tipo_doc,ncf.ncf_inicial,
|
|
ncf.ncf_final,ncf.codigo_dgii,ncf.disponible,
|
|
ncf.itbis,usuarios,current,ncf.sucid)
|
|
|
|
SET CONNECTION "MSSQL"
|
|
INSERT INTO vetb00071 (fecha,tipo_ncf,tipo_doc,ncf_inicial,ncf_final,
|
|
codigo_dgii,disponible,itbis,us_mod,fech_mod,sucid)
|
|
VALUES (ncf.fecha,ncf.tipo_ncf,ncf.tipo_doc,ncf.ncf_inicial,
|
|
ncf.ncf_final,ncf.codigo_dgii,ncf.disponible,
|
|
ncf.itbis,usuarios,getdate(),ncf.sucid)
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
|
|
|
|
END INPUT
|
|
END FUNCTION
|
|
|
|
FUNCTION vepcmf020()
|
|
## Aqui se prepara para la captura del criterio de seleccion
|
|
#WHENEVER ERROR CONTINUE
|
|
SET CONNECTION "IFMX"
|
|
CONSTRUCT criterio ON a.fecha,a.tipo_doc,a.codigo_dgii
|
|
FROM fecha,tipo_doc,codigo_dgii
|
|
BEFORE CONSTRUCT
|
|
CALL localidades('1')
|
|
AFTER CONSTRUCT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
END CONSTRUCT
|
|
|
|
LET SELEC = " SELECT CONVERT(CHAR(10),a.fecha,103),a.tipo_ncf,a.tipo_doc,a.codigo_dgii,a.ncf_inicial,",
|
|
#" a.ncf_final,a.disponible,a.us_crea,a.fech_crea,a.us_mod,a.fech_mod ,",
|
|
" a.ncf_final,a.disponible,a.itbis,a.us_crea,a.fech_crea,a.us_mod,a.fech_mod,",
|
|
" a.sucid,a.fecha_vencimiento ",
|
|
" FROM vetb00071 a ",
|
|
" WHERE ",
|
|
criterio clipped,
|
|
" ORDER BY a.sucid"
|
|
|
|
PREPARE busca FROM selec
|
|
|
|
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
|
|
OPEN datos
|
|
|
|
FETCH FIRST datos INTO ncf.*
|
|
DISPLAY BY NAME ncf.*
|
|
|
|
MENU "OPCIONES "
|
|
COMMAND "Siguiente"
|
|
"Presenta en pantalla el proximo registro encontrado"
|
|
FETCH NEXT datos INTO ncf.*
|
|
|
|
DISPLAY BY NAME ncf.*
|
|
COMMAND "Anterior"
|
|
"Presenta en pantalla el registro anterior encontrado"
|
|
FETCH PREVIOUS datos INTO ncf.*
|
|
DISPLAY BY NAME ncf.*
|
|
|
|
COMMAND "Primero"
|
|
"Presenta en pantalla el primer registro encontrado"
|
|
FETCH FIRST datos INTO ncf.*
|
|
DISPLAY BY NAME ncf.*
|
|
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Ultimo"
|
|
"Presenta en pantalla el ultimo registro encontrado"
|
|
FETCH LAST datos INTO ncf.*
|
|
DISPLAY BY NAME ncf.*
|
|
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Escoger"
|
|
"<Esc> Actualiza Registro <Delete> Cancela Operacion"
|
|
|
|
INPUT BY NAME ncf.* WITHOUT DEFAULTS
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
EXIT MENU
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
SET CONNECTION "IFMX"
|
|
SELECT UNIQUE a.sucid FROM vetb00071 a
|
|
WHERE a.sucid = ncf.sucid AND
|
|
a.fecha = ncf.fecha AND
|
|
a.tipo_ncf = ncf.tipo_ncf
|
|
|
|
IF STATUS <> NOTFOUND THEN
|
|
|
|
UPDATE vetb00071 SET
|
|
tipo_doc = ncf.tipo_doc,
|
|
ncf_inicial = ncf.ncf_inicial,
|
|
ncf_final = ncf.ncf_final,
|
|
itbis = ncf.itbis,
|
|
us_mod = USUARIOS,
|
|
fech_mod = getdate(),
|
|
fecha_vencimiento = ncf.fecha_vencimiento
|
|
WHERE fecha = ncf.fecha AND
|
|
sucid = ncf.sucid AND
|
|
tipo_ncf = ncf.tipo_ncf
|
|
ELSE
|
|
INSERT INTO vetb00071 (fecha,tipo_ncf,tipo_doc,ncf_inicial,ncf_final,
|
|
codigo_dgii,disponible,itbis,us_mod,fech_mod,sucid,fecha_vencimiento)
|
|
VALUES (ncf.fecha,ncf.tipo_ncf,ncf.tipo_doc,ncf.ncf_inicial,
|
|
ncf.ncf_final,ncf.codigo_dgii,ncf.disponible,
|
|
ncf.itbis,usuarios,current,ncf.sucid,ncf.fecha_vencimiento)
|
|
|
|
END IF
|
|
SET CONNECTION "MSSQL"
|
|
SELECT UNIQUE a.sucid FROM vetb00071 a
|
|
WHERE a.sucid = ncf.sucid AND
|
|
a.fecha = ncf.fecha AND
|
|
a.tipo_ncf = ncf.tipo_ncf
|
|
IF STATUS <> NOTFOUND THEN
|
|
|
|
UPDATE vetb00071 SET
|
|
tipo_doc = ncf.tipo_doc,
|
|
ncf_inicial = ncf.ncf_inicial,
|
|
ncf_final = ncf.ncf_final,
|
|
itbis = ncf.itbis,
|
|
us_mod = USUARIOS,
|
|
fech_mod = GETDATE(),
|
|
fecha_vencimiento = ncf.fecha_vencimiento
|
|
WHERE fecha = ncf.fecha AND
|
|
sucid = ncf.sucid AND
|
|
tipo_ncf = ncf.tipo_ncf
|
|
ELSE
|
|
INSERT INTO vetb00071 (fecha,tipo_ncf,tipo_doc,ncf_inicial,ncf_final,
|
|
codigo_dgii,disponible,itbis,us_mod,fech_mod,sucid,fecha_vencimiento)
|
|
VALUES (ncf.fecha,ncf.tipo_ncf,ncf.tipo_doc,ncf.ncf_inicial,
|
|
ncf.ncf_final,ncf.codigo_dgii,ncf.disponible,
|
|
ncf.itbis,usuarios,getdate(),ncf.sucid,ncf.fecha_vencimiento)
|
|
|
|
END IF
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND KEY ("L") "eLiminar"
|
|
SELECT a.ncf FROM vetb00072 a
|
|
WHERE a.ncf BETWEEN ncf.ncf_inicial AND ncf.ncf_final AND
|
|
sucid = ncf.sucid
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
DELETE FROM vetb00071 WHERE fecha = ncf.fecha AND
|
|
sucid = ncf.sucid
|
|
ELSE
|
|
LET numero_msg =32
|
|
CALL msg(numero_msg)
|
|
EXIT MENU
|
|
END IF
|
|
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Retornar"
|
|
"Retorna al menu anterior"
|
|
CLEAR FORM
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|