Files
MBS/PROYECTO/otrodir/subirfirma.4gl
T

148 lines
5.3 KiB
Plaintext

{
PROGRAMA : SUBIRFIRMA
OBJETIVO : DIGITALIZAR LAS FIRMAS DE LOS USUARIOS
DESARROLLADO POR : ING. JUAN SOTO
FECHA : MARZO 20, 2021
}
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
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
# LET usuarios = "jsoto"
# LET clave = "1234"
CONNECT TO "marmotech" AS "IFMX" USER usuarios USING clave
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
CALL firmas()
END MAIN
FUNCTION firmas()
DEFINE respuesta,remueve VARCHAR(3)
OPEN WINDOW w1 WITH FORM "subefirma"
INPUT BY NAME ficha
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
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
{ 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
}
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"
UPDATE seg0001 SET firmafactura = imagen,
nombre_file_firma =tmpdir_file
WHERE num_emp = ficha
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
END INPUT
CLOSE WINDOW w1
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