Merge de main (ipprrp013/014/046/053) con conflictos resueltos: - mbsERP.4pw: ipprrp014 conserva ambos 4rp y su 4fd. - bin/ipprrp014.4rp: columnas MARGEN/CLASIF. + titulo IPPRRP014. Programas agregados a mbsERP.4pw (53 compilan y enlazan con fgl602): - CONTABILIDAD GENERAL, ACTIVOS FIJOS, REPUESTOS; grupos nuevos TESORERIA, CHEQUES e INFORMATICA (segprmt001 = seguridad2.0/segprmt0001.4gl). - irdir copiado de 3.20 PROYECTOS/irdir a PROYECTO/irdir; helpers de PROYECTOS/otrodir en FUNCIONES_IR (departamento -> irdepartamento.4gl). - Fuentes mas nuevos de 3.20: edprrp118, edprrp080, acprrp010, cgprmt022. - FUNCIONES: GeneraEntradaDiario.4gl a la version 3.20 + costoLiquidacion.4gl. - Ajustes G6: existe duplicado en irprgb000, fakeData de 22 campos y answer2 en irprmt036/020 (ApiMaintainC), selectOutputSimple en irprcs008, schemas de forms a smarmotech, referencia declarada en cgprmt005. - cgprmt005 sigue sin enlazar: requiere funciones de EXTERIOR. 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(),
|
|
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 |