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