Files
MBS/PROYECTO/indir/inprmt026.4gl
T
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

841 lines
28 KiB
Plaintext

{
------------------------------------------------------------------------------
PROGRAMA : INPRMT026
OBJETIVO : Programa Captura Documento Movimiento:
MATERIALES DEVUELTO DE PRODUCCION
de Inventario de Materia Prima.
PROGRAMADOR : Juan Fco. Soto (Johnny)
FECHA REALIZACION : Agosto 07, 1992.
------------------------------------------------------------------------------
}
GLOBALS
"inprgb000.4gl"
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL inprmt026()
END MAIN
FUNCTION busca_material()
LET int_flag = FALSE
OPEN WINDOW material1 AT 10,9 WITH FORM "infmwd004"
ATTRIBUTE(BORDER,FORM LINE FIRST + 2)
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,
a.unidad_med
FROM cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp,
unidad_med
LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ",
"a.unidad_med FROM intb00001 a ",
"WHERE a.status_t IS NULL AND ",criterio CLIPPED,
"ORDER BY 1,2,3,4"
PREPARE comando4 FROM selec
DECLARE comp4 CURSOR FOR comando4
LET idx = 1
FOREACH comp4 INTO datos_mt[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx - 1)
IF idx = 1 THEN
LET numero_msg = 3
CALL msg(numero_msg)
GOTO salir
END IF
DISPLAY ARRAY datos_mt TO datos_mt1.*
LET idx = ARR_CURR()
LABEL salir:
CLOSE WINDOW material1
END FUNCTION
FUNCTION inprmt026()
DEFINE fecha CHAR(8)
DEFINE hora CHAR(5)
CLEAR SCREEN
OPTIONS
ERROR LINE 24,
FORM LINE 5,
COMMENT LINE 22,
PROMPT LINE 23
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY p_companias.nombre AT 1,lj ATTRIBUTE (REVERSE,YELLOW)
DISPLAY fecha AT 1,70 ATTRIBUTE (YELLOW)
DISPLAY hora AT 2,73 ATTRIBUTE (YELLOW)
DISPLAY "Materiales Devueltos de Produccion" AT 2,23
DISPLAY "inprmt026" AT 1,3 ATTRIBUTE (YELLOW)
DISPLAY "<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion" AT 3,2
ATTRIBUTE (YELLOW,REVERSE)
OPEN FORM infmmt026 FROM "infmmt026"
DISPLAY FORM infmmt026
{LET actual = "UPDATE intb00002 SET existencia = existencia + ? ",
"WHERE cod_n = ? and cod_grupo = ? and cod_tipo = ? and ",
" cod_sec = ? "
}
CALL inpcad026()
END FUNCTION
FUNCTION inpcad026()
DEFINE fecha_c DATE
DEFINE dia SMALLINT
#WHENEVER ERROR CONTINUE
LET opc = null
LET int_flag = FALSE
INITIALIZE datos.* TO NULL
#PREPARE actualiza FROM actual
LABEL vuelve:
IF (OPC = "S" OR OPC = "s") OR opc is null THEN
INITIALIZE datos.* TO NULL
END IF
LET datos_gen.cod_mov = 48
INPUT BY NAME datos.* WITHOUT DEFAULTS
AFTER FIELD bodega
SELECT *FROM intb00009 WHERE cod_bodega = datos.bodega
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD bodega
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
BEFORE FIELD num_doc
LET datos.bodega = 1
DISPLAY BY NAME datos.bodega
LET datos.fecha = today
DISPLAY BY NAME datos.fecha
# Verifica que el numero del documente de entrada no este en el archivo de
# movimientos.
AFTER FIELD fecha
IF datos.fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
IF datos.fecha > TODAY THEN
LET numero_msg = 160
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
LET p_fechas = datos.fecha
CALL prd(p_fechas)
IF bandera = 1 THEN
LET bandera = 0
NEXT FIELD fecha
END IF
AFTER FIELD num_doc
IF datos.num_doc IS NULL then
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_doc
ELSE
SELECT * FROM intb00005 where cod_mov = datos_gen.cod_mov and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 34
CALL msg(numero_msg)
NEXT FIELD num_doc
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
end if
SELECT UNIQUE depto_de,depto_a,fecha INTO datos.depto_de,datos.depto_a,
datos.fecha
FROM intb00006
WHERE num_doc = datos.num_doc and cod_mov = datos_gen.cod_mov and
status_t is null
IF status >= 0 THEN
IF STATUS != NOTFOUND THEN
SELECT nom_dpto INTO datos.nom_dpto FROM adtb00001 WHERE
departamento = datos.depto_de and
status_t is null
SELECT nom_dpto INTO datos.nom_dpto1 FROM adtb00001 WHERE
departamento = datos.depto_a and status_t is null
LET numero_msg = 12
CALL msg(numero_msg)
DISPLAY BY NAME datos.depto_de,datos.depto_a,datos.fecha,
datos.nom_dpto,datos.nom_dpto1
NEXT FIELD num_doc
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
END IF
IF OPC = "S" OR OPC = "s" or opc is null THEN
INITIALIZE
datos.depto_de,datos.depto_a,datos.nom_dpto,
datos.nom_dpto1
TO NULL
DISPLAY BY NAME datos.depto_de,datos.depto_a,datos.nom_dpto,
datos.nom_dpto1
END IF
END IF
AFTER FIELD depto_de
IF datos.depto_de IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD depto_de
ELSE
SELECT nom_dpto INTO datos.nom_dpto FROM adtb00001 WHERE
departamento = datos.depto_de and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD depto_de
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
END IF
END IF
DISPLAY BY NAME datos.nom_dpto
AFTER FIELD depto_a
IF datos.depto_a IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD depto_a
ELSE
SELECT nom_dpto INTO datos.nom_dpto1 FROM adtb00001 WHERE
departamento = datos.depto_a and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD depto_a
END IF
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
END IF
END IF
IF datos.depto_a = datos.depto_de THEN
LET numero_msg = 32
CALL msg(numero_msg)
NEXT FIELD depto_de
END IF
DISPLAY BY NAME datos.nom_dpto1
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
SLEEP 3
FOR idx = 1 to arr_count()
LET movi[idx].cod_n = null
LET movi[idx].cod_grupo = null
LET movi[idx].cod_tipo = null
LET movi[idx].cod_sec = null
LET movi[idx].cantidad_1 = null
LET movi[idx].cantidad_2 = null
LET movi[idx].unidad_med = null
LET movi[idx].descrip_esp = null
END FOR
RETURN
END IF
IF datos.depto_a = datos.depto_de THEN
LET numero_msg = 32
CALL msg(numero_msg)
NEXT FIELD depto_de
END IF
IF datos.num_doc IS NULL then
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_doc
ELSE
SELECT UNIQUE num_doc FROM intb00006 WHERE num_doc = datos.num_doc and
cod_mov = datos_gen.cod_mov and
status_t is null
IF status >= 0 THEN
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD num_doc
END IF
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
EXIT INPUT
END INPUT
INITIALIZE ant_art.* TO NULL
IF opc = "S" or opc = "s" OR opc IS NULL THEN
FOR idx = 1 to arr_count()
LET movi[idx].cod_n = null
LET movi[idx].cod_grupo = null
LET movi[idx].cod_tipo = null
LET movi[idx].cod_sec = null
LET movi[idx].cantidad_2 = null
LET movi[idx].cantidad_1 = null
LET movi[idx].unidad_med = null
LET movi[idx].descrip_esp = null
END FOR
END IF
INPUT ARRAY movi WITHOUT DEFAULTS FROM s_movi1.*
ON KEY(CONTROL-W)
CALL busca_material()
LET movi[p_act].cod_n = datos_mt[idx].cod_n
LET movi[p_act].cod_grupo = datos_mt[idx].cod_grupo
LET movi[p_act].cod_tipo = datos_mt[idx].cod_tipo
LET movi[p_act].cod_sec = datos_mt[idx].cod_sec
LET movi[p_act].descrip_esp = datos_mt[idx].descrip_esp
LET movi[p_act].unidad_med = datos_mt[idx].unidad_med
DISPLAY movi[p_act].cod_n TO s_movi1.cod_n
DISPLAY movi[p_act].cod_grupo TO s_movi1.cod_grupo
DISPLAY movi[p_act].cod_tipo TO s_movi1.cod_tipo
DISPLAY movi[p_act].cod_sec TO s_movi1.cod_sec
DISPLAY movi[p_act].descrip_esp TO s_movi1.descrip_esp
BEFORE ROW
LET p_act = arr_curr()
LET scr_l = scr_line()
AFTER ROW
IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and
movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null then
LET p_act = arr_curr()
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
FOR idx = 1 TO arr_count()
IF idx != p_act THEN
IF movi[idx].cod_n = ant_art.cod_n AND
movi[idx].cod_grupo = ant_art.cod_grupo AND
movi[idx].cod_tipo = ant_art.cod_tipo AND
movi[idx].cod_sec = ant_art.cod_sec THEN
LET numero_msg = 21
CALL msg(numero_msg)
LET p_act = p_act - 1
NEXT FIELD cod_n
END IF
END IF
END FOR
IF movi[p_act].cantidad_1 IS NULL and movi[p_act].cantidad_2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
END IF
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
AFTER FIELD cod_n
LET p_act = arr_curr()
IF movi[p_act].cod_n is not null then
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
FOR idx = 1 TO arr_count()
IF idx != p_act THEN
IF movi[idx].cod_n = ant_art.cod_n AND
movi[idx].cod_grupo = ant_art.cod_grupo AND
movi[idx].cod_tipo = ant_art.cod_tipo AND
movi[idx].cod_sec = ant_art.cod_sec THEN
LET p_act = p_act - 1
NEXT FIELD cod_grupo
END IF
END IF
END FOR
END IF
AFTER FIELD cod_grupo
IF movi[p_act].cod_grupo is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
LET p_act = arr_curr()
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
FOR idx = 1 TO arr_count()
IF idx != p_act THEN
IF movi[idx].cod_n = ant_art.cod_n AND
movi[idx].cod_grupo = ant_art.cod_grupo AND
movi[idx].cod_tipo = ant_art.cod_tipo AND
movi[idx].cod_sec = ant_art.cod_sec THEN
LET p_act = p_act - 1
NEXT FIELD cod_tipo
END IF
END IF
END FOR
AFTER FIELD cod_tipo
IF movi[p_act].cod_tipo is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
LET p_act = arr_curr()
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
FOR idx = 1 TO arr_count()
IF idx != p_act THEN
IF movi[idx].cod_n = ant_art.cod_n AND
movi[idx].cod_grupo = ant_art.cod_grupo AND
movi[idx].cod_tipo = ant_art.cod_tipo AND
movi[idx].cod_sec = ant_art.cod_sec THEN
LET p_act = p_act - 1
NEXT FIELD cod_sec
END IF
END IF
END FOR
AFTER FIELD cod_sec
LET p_act = arr_curr()
IF movi[p_act].cod_sec is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
IF movi[p_act].cod_n is null AND movi[p_act].cod_sec is not null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and
movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null then
SELECT descrip_esp,unidad_med INTO descrip1,descrip2 FROM intb00001 WHERE
cod_n = movi[p_act].cod_n and
cod_grupo = movi[p_act].cod_grupo and
cod_tipo = movi[p_act].cod_tipo and
cod_sec = movi[p_act].cod_sec and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
END IF
SELECT * FROM intb00002
WHERE cod_n = movi[p_act].cod_n and
cod_grupo = movi[p_act].cod_grupo and
cod_tipo = movi[p_act].cod_tipo and
cod_sec = movi[p_act].cod_sec and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 35
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
END IF
LET movi[p_act].descrip_esp = descrip1
LET movi[p_act].unidad_med = descrip2 clipped
DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp
DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
FOR idx = 1 TO arr_count()
IF idx != p_act THEN
IF movi[idx].cod_n = ant_art.cod_n AND
movi[idx].cod_grupo = ant_art.cod_grupo AND
movi[idx].cod_tipo = ant_art.cod_tipo AND
movi[idx].cod_sec = ant_art.cod_sec THEN
LET numero_msg = 21
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
END IF
END FOR
END IF
AFTER FIELD cantidad_1
IF movi[p_act].cantidad_1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cantidad_1
END IF
AFTER FIELD cantidad_2
## Chequeo Excedente de existencia y punto de reorden
IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and
movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null THEN
SELECT sum(cantidad_2) INTO chequea.existe FROM intb00006
WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_act].cod_grupo and
cod_tipo=movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and
status_t is null
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
LET cant = chequea.existe - movi[p_act].cantidad_2
IF cant <= chequea.pto THEN
LET numero_msg = 31
CALL msg(numero_msg)
LET cant = 0
END IF
END IF
IF movi[p_act].cantidad_2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
END IF
IF movi[p_act].cantidad_2 > movi[p_act].cantidad_1 THEN
LET numero_msg = 28
CALL msg(numero_msg)
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
FOR idx = 1 to arr_count()
LET movi[idx].cod_n = null
LET movi[idx].cod_grupo = null
LET movi[idx].cod_tipo = null
LET movi[idx].cod_sec = null
LET movi[idx].cantidad_1 = null
LET movi[idx].cantidad_2 = null
LET movi[idx].unidad_med = null
LET movi[idx].descrip_esp = null
END FOR
SLEEP 3
RETURN
END IF
IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and
movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null then
SELECT descrip_esp,unidad_med INTO descrip1,descrip2 FROM intb00001 WHERE
cod_n = movi[p_act].cod_n and
cod_grupo = movi[p_act].cod_grupo and
cod_tipo = movi[p_act].cod_tipo and
cod_sec = movi[p_act].cod_sec and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
end if
SELECT * FROM intb00002 WHERE cod_n = movi[p_act].cod_n and
cod_grupo = movi[p_Act].cod_grupo and
cod_tipo = movi[p_act].cod_tipo and
cod_sec = movi[p_act].cod_sec and
status_t is null
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 35
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
ELSE
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
END IF
LET movi[p_act].descrip_esp = descrip1
LET movi[p_act].unidad_med = descrip2 clipped
DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp
DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med
LET ant_art.cod_n = movi[p_act].cod_n
LET ant_art.cod_grupo = movi[p_act].cod_grupo
LET ant_art.cod_tipo = movi[p_act].cod_tipo
LET ant_art.cod_sec = movi[p_act].cod_sec
FOR idx = 1 TO arr_count()
IF idx != p_act THEN
IF movi[idx].cod_n = ant_art.cod_n AND
movi[idx].cod_grupo = ant_art.cod_grupo AND
movi[idx].cod_tipo = ant_art.cod_tipo AND
movi[idx].cod_sec = ant_art.cod_sec THEN
LET numero_msg = 21
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
END IF
END FOR
IF movi[p_act].cantidad_1 IS NULL and movi[p_act].cantidad_2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
END IF
IF movi[p_act].cod_n is null and movi[p_act].cod_grupo is null and
movi[p_act].cod_tipo is null and movi[p_act].cod_sec is null THEN
SELECT sum(cantidad_2) INTO chequea.existe FROM intb00006
WHERE cod_n = movi[p_act].cod_n and
cod_grupo = movi[p_act].cod_grupo and
cod_tipo = movi[p_act].cod_tipo and
cod_sec = movi[p_act].cod_sec and
status_t is null
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if
IF movi[p_act].cantidad_2 > chequea.existe THEN
LET numero_msg = 30
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
LET cant = chequea.existe - movi[p_act].cantidad_2
IF cant <= chequea.pto THEN
LET numero_msg = 31
CALL msg(numero_msg)
LET cant = 0
END IF
END IF
IF movi[p_act].cod_n is null THEN
LET movi[p_act].cod_n = null
LET movi[p_act].cod_grupo = null
LET movi[p_act].cod_tipo = null
LET movi[p_act].cod_sec = null
LET movi[p_act].cantidad_1 = null
LET movi[p_act].cantidad_2 = null
LET movi[p_act].unidad_med = null
LET movi[p_act].descrip_esp = null
DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n
DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo
DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo
DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec
DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1
DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2
DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med
DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp
END IF
IF movi[p_act].cod_grupo is null THEN
LET movi[p_act].cod_n = null
LET movi[p_act].cod_grupo = null
LET movi[p_act].cod_tipo = null
LET movi[p_act].cod_sec = null
LET movi[p_act].cantidad_1 = null
LET movi[p_act].cantidad_2 = null
LET movi[p_act].unidad_med = null
LET movi[p_act].descrip_esp = null
DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n
DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo
DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo
DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec
DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1
DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2
DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med
DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp
END IF
IF movi[p_act].cod_tipo is null THEN
LET movi[p_act].cod_n = null
LET movi[p_act].cod_grupo = null
LET movi[p_act].cod_tipo = null
LET movi[p_act].cod_sec = null
LET movi[p_act].cantidad_1 = null
LET movi[p_act].cantidad_2 = null
LET movi[p_act].unidad_med = null
LET movi[p_act].descrip_esp = null
DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n
DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo
DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo
DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec
DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1
DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2
DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med
DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp
END IF
IF movi[p_act].cod_sec is null THEN
LET movi[p_act].cod_n = null
LET movi[p_act].cod_grupo = null
LET movi[p_act].cod_tipo = null
LET movi[p_act].cod_sec = null
LET movi[p_act].cantidad_1 = null
LET movi[p_act].cantidad_2 = null
LET movi[p_act].unidad_med = null
LET movi[p_act].descrip_esp = null
DISPLAY movi[p_act].cod_n to s_movi1[p_act].cod_n
DISPLAY movi[p_act].cod_grupo to s_movi1[p_act].cod_grupo
DISPLAY movi[p_act].cod_tipo to s_movi1[p_act].cod_tipo
DISPLAY movi[p_act].cod_sec to s_movi1[p_act].cod_sec
DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1
DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2
DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med
DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp
END IF
EXIT INPUT
END INPUT
PROMPT "Toda la Informacion Esta Correcta? (S/N)" FOR CHAR opc
IF OPC = "S" or OPC = "s" THEN
FOR idx = 1 TO arr_count()
IF movi[idx].cod_n is not null and movi[idx].cod_grupo is not null and
movi[idx].cod_tipo is not null and movi[idx].cod_sec is not null THEN
LET datos_gen.cod_mov = 48
INSERT INTO intb00006 VALUES (datos.num_doc,datos.fecha,null,null,null,
null,null,null,datos_gen.cod_mov,movi[idx].cod_n,
movi[idx].cod_grupo, movi[idx].cod_tipo,movi[idx].cod_sec,
movi[idx].cantidad_1,movi[idx].cantidad_2,datos.depto_de,
datos.depto_a,null,ultimo.cond_recep,ultimo.uso_tiempo,
datos.bodega,null,user,current,null,null)
{CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
EXECUTE actualiza USING movi[idx].cantidad_2,
movi[idx].cod_n,movi[idx].cod_grupo,
movi[idx].cod_tipo,movi[idx].cod_sec
CALL integridad()
if bandera = 1 THEN
CLEAR SCREEN
RETURN
end if}
END IF
END FOR
FOR idx = 1 to arr_count()
LET movi[idx].cod_n = null
LET movi[idx].cod_grupo = null
LET movi[idx].cod_tipo = null
LET movi[idx].cod_sec = null
LET movi[idx].cantidad_1 = null
LET movi[idx].cantidad_2 = null
LET movi[idx].unidad_med = null
LET movi[idx].descrip_esp = null
DISPLAY movi[idx].cod_n to s_movi1[idx].cod_n
DISPLAY movi[idx].cod_grupo to s_movi1[idx].cod_grupo
DISPLAY movi[idx].cod_tipo to s_movi1[idx].cod_tipo
DISPLAY movi[idx].cod_sec to s_movi1[idx].cod_sec
DISPLAY movi[idx].descrip_esp to s_movi1[idx].descrip_esp
DISPLAY movi[idx].unidad_med to s_movi1[idx].unidad_med
END FOR
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
ELSE
GOTO vuelve
END IF
GOTO vuelve
END FUNCTION