Files
MBS/PROYECTO/seguridad2.0/firmas.4gl
T

142 lines
5.1 KiB
Plaintext

IMPORT os
DEFINE usuarios,clave VARCHAR(50),
imagen,pimagen BYTE,
ficha INT,
nombre VARCHAR(100),
d_tipos,mensaje,f_tipos,filepath,extension,xdestino,l_file,tmpdir_file,dir_file,nombre_file STRING
FUNCTION firmas(ficha INT)
DEFINE respuesta,remueve VARCHAR(3)
OPEN WINDOW w2 WITH FORM "subefirma"
INPUT BY NAME ficha ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
BEFORE INPUT
LET nombre_file = NULL
LET remueve="NO"
AFTER FIELD ficha
SELECT a.nom1_emp||ISNULL(a.apell1_emp,' '),b.usuario
INTO nombre,usuarios
FROM adtb00003 a,seg0001 b
WHERE a.num_emp = ficha AND a.num_emp = b.num_emp
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD ficha
END IF
DISPLAY BY NAME nombre
NEXT FIELD ficha
IF ficha IS NOT NULL THEN
LOCATE pimagen IN MEMORY
SELECT a.nom1_emp||ISNULL(a.apell1_emp,' '),b.firmafactura,b.nombre_file_firma,b.usuario
INTO nombre,pimagen,nombre_file,usuarios
FROM adtb00003 a,seg0001 b
WHERE a.num_emp = ficha AND a.num_emp = b.num_emp
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD ficha
END IF
DISPLAY BY NAME nombre
IF nombre_file IS NOT NULL THEN
LET dir_file = 'tmp\\',tmpdir_file CLIPPED
CALL pimagen.writeFile(dir_file)
DISPLAY dir_file TO firma
ELSE
NEXT FIELD ficha
END IF
END IF
ON ACTION firma
CALL imagenfirma()
DISPLAY "data ",dir_file
DISPLAY dir_file TO firma
ON ACTION remover ATTRIBUTE(TEXT="Remover",IMAGE="delete")
LET remueve='SI'
ON ACTION guardar ATTRIBUTE(TEXT="Guardar",IMAGE="save")
IF int_flag THEN
CALL msg(2)
LET int_flag = FALSE
EXIT INPUT
END IF
DISPLAY "remueve ",remueve," tmodir ",tmpdir_file
IF tmpdir_file IS NOT NULL THEN
LET respuesta = fgl_winquestion("Actualiza","ESTA SEGURO DE ACTUALIZAR FIRMA?","YES","YES|NO","QUESTION",0)
IF respuesta = "YES" THEN
SET CONNECTION "MSSQL"
IF remueve = "NO" THEN
DISPLAY "dato ",ficha
TRY
UPDATE seg0001 SET firmafactura = imagen,
nombre_file_firma =tmpdir_file
WHERE num_emp = ficha
CATCH
DISPLAY SQLCA.sqlerrd[2]
END TRY
SET CONNECTION "IFMX"
TRY
UPDATE seg0001 SET firmafactura = imagen,
nombre_file_firma =tmpdir_file
WHERE num_emp = ficha
CATCH
DISPLAY SQLCA.sqlerrd[2]
END TRY
END IF
IF remueve = "SI" THEN
UPDATE seg0001 SET firmafactura = NULL,
nombre_file_firma =NULL
WHERE num_emp = ficha
SET CONNECTION "IFMX"
UPDATE seg0001 SET firmafactura = null,
nombre_file_firma =tmpdir_file
WHERE num_emp = ficha
END IF
CALL fgl_winmessage("info","Actualizacion Exitosa","info")
END IF
END IF
SET CONNECTION "MSSQL"
END INPUT
CLOSE WINDOW w2
END FUNCTION
FUNCTION imagenfirma()
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
IF filepath IS NOT NULL THEN
IF downshift(os.Path.extension(filepath)) = "jpg" OR
downshift(os.Path.extension(filepath)) = "png" THEN
LET dir_file = os.Path.basename(filepath)
DISPLAY filepath TO firma
LET dir_file = ".\\tmp\\",dir_file CLIPPED
CALL fgl_getfile(filepath,dir_file)
DISPLAY "dir file ",dir_file
IF os.Path.exists(dir_file) THEN
LOCATE imagen IN MEMORY
CALL imagen.readFile(dir_file)
LET tmpdir_file=os.Path.basename(filepath)
DISPLAY "tmp dir1 ",tmpdir_file
ELSE
DISPLAY "no existe"
END IF
ELSE
CALL fgl_winmessage("ERROR","EL FILE DEBE SER JPG, PNG","INFO")
END IF
END IF
END FUNCTION