{ 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