148 lines
5.3 KiB
Plaintext
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
|