Files
MBS/PROYECTOS/ipdir/ipprmt021.4gl
T

106 lines
4.3 KiB
Plaintext

{
PROGRAMA: ipprmt021.4gl
OBJETIVO: AUTORIZAR REQUISICIONES A ALMACENES
DESARROLLADO POR: ING. JUAN SOTO
FECHA : MAYO 5, 2022
}
GLOBALS
"ipprgb000.4gl"
DEFINE arr_busqueda DYNAMIC ARRAY OF RECORD
estado VARCHAR(50),
idestado int,
tipo_documento VARCHAR(100),
numeroid INT,
fechadoc DATE,
nombre VARCHAR(100),
observacion,usuario VARCHAR(200),
cod_mov INT ,
us_crea VARCHAR(50)
END RECORD
DEFINE nombreUsuario,email,etiqueta STRING
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" USER usuarios USING clave
CALL ipprmt021()
END MAIN
FUNCTION ipprmt021()
OPEN WINDOW w1 WITH FORM "ipfmmt021"
DIALOG ATTRIBUTE(UNBUFFERED)
CONSTRUCT criterio ON b.estado,b.idestado FROM estado1,idestado1
BEFORE CONSTRUCT
LET etiqueta = "AUTORIZACIONES REQUISICIONES A ALMACENES"
DISPLAY BY NAME etiqueta
CALL estadosprocesos(2)
CALL arr_busqueda.clear()
ON ACTION buscar ATTRIBUTE(TEXT="Buscar",IMAGE="find")
CALL arr_busqueda.clear()
LET selec =
"SELECT b.estado,b.idestado,CAST(a.cod_mov AS VARCHAR(10))||' '||a.descrip_mov,b.numero_doc,b.fecha,c.nombre,
b.observacion,' ',b.cod_mov,b.us_crea
FROM iptb00005 a,iptb00057 b INNER JOIN iptb00061 d ON b.idestado = d.idestado
LEFT OUTER JOIN vetb00004 c ON c.tipo_cliente = b.tipo_cliente AND
c.sec_cliente = b.sec_cliente
WHERE a.cod_mov = b.cod_mov AND
b.status_t IS NULL AND
", criterio CLIPPED
PREPARE comando FROM selec
DECLARE buscardata CURSOR FOR comando
LET idx = 1
FOREACH buscardata INTO arr_busqueda[idx].*
CALL usuarioSistema(arr_busqueda[idx].us_crea) RETURNING nombreUsuario,email
LET arr_busqueda[idx].usuario = nombreUsuario
LET idx = idx + 1
END FOREACH
IF idx = 1 THEN
CALL msg(3)
CALL arr_busqueda.clear()
END IF
END CONSTRUCT
INPUT ARRAY arr_busqueda FROM sautoriza.* ATTRIBUTE(WITHOUT DEFAULTS)
BEFORE INPUT
CALL estadosprocesos(1)
ON CHANGE estado
UPDATE iptb00057 SET estado = arr_busqueda[arr_curr()].estado,us_mod=usuarios,fech_mod=getdate()
WHERE numero_doc = arr_busqueda[arr_curr()].numeroid AND
cod_mov = arr_busqueda[arr_curr()].cod_mov
ON CHANGE observacion
UPDATE iptb00057 SET us_mod=usuarios,fech_mod=getdate(),
observacion = arr_busqueda[arr_curr()].observacion
WHERE numero_doc = arr_busqueda[arr_curr()].numeroid AND
cod_mov = arr_busqueda[arr_curr()].cod_mov
ON CHANGE idestado
UPDATE iptb00057 SET us_mod=usuarios,fech_mod=getdate(),
estado_proceso = arr_busqueda[arr_curr()].idestado
WHERE numero_doc = arr_busqueda[arr_curr()].numeroid AND
cod_mov = arr_busqueda[arr_curr()].cod_mov
ON ACTION imprime ATTRIBUTE(TEXT="Imprimir", IMAGE="printer")
CALL impdocumento(arr_busqueda[arr_curr()].numeroid,arr_busqueda[arr_curr()].cod_mov)
AFTER INPUT
END INPUT
ON ACTION CANCEL ATTRIBUTE(TEXT="Cancelar",IMAGE="quit")
EXIT PROGRAM
END DIALOG
CLOSE WINDOW w1
END FUNCTION