Programas (bugs encontrados en las pruebas funcionales en la .250): - acprmt004/acprmt005: MIN/MAX sobre la fecha real (no sobre texto CONVERT 103); acprmt004 alinea rowid. - cgprrp008: lee cgtb00004 (no la copia cgtb00004_tmp del 14-mar-2026) y solo regenera cgtb00016 cuando se corre sin filtro de cuenta. - cgprrp014: CONSTRUCT con los nombres de campo del form (cod_sp_sc). - cgfmrp013: defaultValue del combo = cgprrp012.4rp. - cgprrp022/edprrp029: salida getPreviewDevice() en lugar de SVG fijo. - edprrp080: no consume numero ED con afecta = NO. - cgprmt004/022/037, segprmt0001: sin CONNECT "IFMX" (-6366); EXTERIOR via cross-DB. - irprcs001: agrega CONNECT; irprmt021: columna idestado; irprmt066: la anulacion sin MaintainX ya no se deshace (-255); otrodir/bodegas: rama '2' llena origen y destino. - teprmt001: ajustes G6. Despliegue G6: - DBDATE=dmy4 en config/Application.xcf, config/Main_prg.xcf, resources/Application.xcf y en el grupo MODULOS del .4pw (los programas lanzados por el menu heredan el entorno). - 31 .4rp: IMAGEBOX con rutas absolutas file:///E:|F:|C: -> relativas IMAGENES/...; se agregan IMAGENES/LOGO.JPG y genero_logo.png. - Paquete mbs: incluye bin/*.4rp y bin/IMAGENES (antes el GAR no llevaba los reportes). - resources/TopMenu.4st (irprcs008 daba -8014); bin/cgprcs024.4rp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
106 lines
4.3 KiB
Plaintext
106 lines
4.3 KiB
Plaintext
{
|
|
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(),
|
|
idestado = arr_busqueda[arr_curr()].idestado -- G6: estado_proceso no existe en irtb00057 (-207)
|
|
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 |