{ PROGRAMA: ipprmt021.4gl OBJETIVO: AUTORIZAR REQUISICIONES A ALMACENES DESARROLLADO POR: ING. JUAN SOTO FECHA : MAYO 5, 2022 } GLOBALS "irprgb000.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 "irfmmt021" DIALOG ATTRIBUTE(UNBUFFERED) CONSTRUCT criterio ON b.estado,b.idestado FROM estado1,idestado1 BEFORE CONSTRUCT LET etiqueta = "AUTORIZACIONES REQUISICIONES REPUESTOS" 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 irtb00005 a,irtb00057 b INNER JOIN irtb00061 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 irtb00057 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 irtb00057 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 irtb00057 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 impdocumentos(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