Files
jpeguero efdf8953dd Reorganiza MATERIA PRIMA a PROYECTO y avanza inprmt002/005/013/046
- Mueve todo el contenido de PROYECTOS/indir y varias funciones
  compartidas de PROYECTOS/otrodir hacia PROYECTO, siguiendo
  instruccion de Johnny (PROYECTOS se va a eliminar).
- inprmt002: agrega campo Desglose faltante, corrige typo "eLiminar".
- inprmt005: agrega formulario y 3 campos faltantes (Consumo,
  Requiere Autorizacion, Requisiciones), corrige typo "eLiminar".
- inprmt013: agrega formulario, titulo, corrige typo "eLiminar".
- inprmt046: agrega formulario y varias funciones/dependencias
  faltantes (cincodmov, clasf_bloque, medidas, defecto,
  buscaEmp, consultaTransportista, busca_departamento);
  corrige nombres de campo desalineados con el codigo
  (depto_a, bodega) y los convierte a ComboBox donde el
  codigo lo requiere.
- Corrige dependencia faltante de FORMULARIOS_IN a la libreria
  Database (bloqueaba todo el modulo de MATERIA PRIMA).
2026-08-26 13:31:09 -04:00

319 lines
7.7 KiB
Plaintext

{
------------------------------------------------------------------
PROGRAMA : INPRMT021
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Exportacion Articulos.
PROGRAMADOR : Tadeo A. Ferreas
FECHA REALIZACION : Julio 22, 1993.
------------------------------------------------------------------
}
GLOBALS "inprgb000.4gl"
DEFINE export RECORD
fecha DATE,
factura INTEGER
END RECORD
DEFINE export1 RECORD
fecha DATE,
factura INTEGER
END RECORD
DEFINE codgp SMALLINT
#### Variables para manejar arreglo en los diferentes item que intervienen en
#### una exportion.
DEFINE arr_form8 ARRAY[200] OF RECORD
cod_n_p SMALLINT,
cod_grupo_p SMALLINT,
descrip1 CHAR(30),
cantidad INTEGER
END RECORD
DEFINE estd RECORD
status_t CHAR(1),
us_crea CHAR(9),
fech_crea LIKE intb00017.fech_crea,
us_mod CHAR(9),
fech_mod LIKE intb00017.fech_mod
END RECORD
DEFINE descrip CHAR(30)
DEFINE curr,i INTEGER
FUNCTION inprmt021()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM infmmt021 FROM "infmmt021"
DISPLAY FORM infmmt021
CALL pantalla()
DISPLAY "inprmt021" AT 4,3
#DISPLAY "(Ley-69)" AT 5,58
DISPLAY "Verificacion de Exportacion de Pila" AT 6,26
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
CLEAR FORM
CALL inmtad021()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
CALL inmtmd021()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION inmtad021()
# WHENEVER ERROR CONTINUE
# Captura los datos que va a contener el registro
INPUT BY NAME export.*
BEFORE FIELD fecha
LET export.fecha = today
DISPLAY BY NAME export.fecha
AFTER FIELD fecha
IF export.fecha IS NULL THEN
LET export.fecha = today
END IF
DISPLAY BY NAME export.fecha
AFTER FIELD factura
IF export.factura IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD factura
END IF
########## Chequea que el numero de factura exista en alguna venta
SELECT a.factura FROM vetb00002 a
WHERE a.factura = export.factura AND
a.ventas = "2" AND a.status_t IS NULL
IF status = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD factura
END IF
########## Chequea que el numero de factura no exista en la maestra de
########## verificacion de exportacion.
SELECT UNIQUE a.factura FROM intb00021 a
WHERE a.factura = export.factura
IF status != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD factura
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
INSERT INTO intb00021
VALUES (export.*,
NULL,USER,CURRENT,NULL,NULL)
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
END FUNCTION
######## Funcion para modificar una exportion #######
FUNCTION inmtmd021()
# Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT criterio ON a.fecha,a.factura FROM fecha,factura
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
######## Selecionando datos a modificar ########
LET SELEC = "SELECT UNIQUE a.fecha,a.factura,a.status_t,a.us_crea, ",
"a.fech_crea,a.us_mod,a.fech_mod FROM intb00021 a WHERE ",
"a.status_t is null AND ",
criterio clipped,
"ORDER BY 1,2"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
FETCH FIRST datos INTO export.*,estd.*
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME export.*,estd.*
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO export.*,estd.*
IF status = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME export.*,estd.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO export.*,estd.*
IF status = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME export.*,estd.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO export.*,estd.*
DISPLAY BY NAME export.*,estd.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO export.*,estd.*
DISPLAY BY NAME export.*,estd.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
LET export1.* = export.*
INPUT BY NAME export.* WITHOUT DEFAULTS
AFTER FIELD fecha
IF export.fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
AFTER FIELD factura
IF export.factura IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD factura
END IF
########## Chequea que el numero de factura exista en alguna venta
SELECT a.factura FROM vetb00002 a
WHERE a.factura = export.factura AND
a.ventas = "2" AND a.status_t IS NULL
IF status = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD factura
END IF
########## Chequea que el numero de factura no exista en la maestra de
########## verificacion de exportacion.
IF export.factura != export1.factura THEN
SELECT UNIQUE a.factura FROM intb00021 a
WHERE a.factura = export.factura
IF status != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD factura
END IF
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
####### Proceso para modificar los datos ########
UPDATE intb00021
SET (fecha,factura,us_mod,fech_mod) =
(export.*,USER,CURRENT)
WHERE @factura = export1.factura
LET numero_msg = 13
CALL msg(numero_msg)
##### Proceso para eliminar una exportion #######
COMMAND KEY ("L") "eLiminar"
UPDATE intb00021 set (status_t,us_mod,fech_mod) =
("E",USER,CURRENT)
WHERE factura = export.factura
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION