//VARIABLES DE AUTORIZACION
v_okcommit = true
v_mensaje_operador = ""
//VARIABLES DEL EVENTO
string v_ruta, v_nombrearchivo, v_filtro
integer v_narchivo, v_resultado_seleccion_archivo
long v_peso_imagen
blob v_imagen_blob
//ENLAZANDO COMPROBANTE
//Seleccionando
v_filtro = "Archivos PDF (*.pdf),*.pdf,"
v_resultado_seleccion_archivo = getfileopenName("Archivos", v_ruta, v_nombrearchivo , "pdf", v_filtro)
//seleccion efectiva
if v_resultado_seleccion_archivo = 1 then
//Regla del peso
v_narchivo = fileopen(v_ruta, StreamMode!)
v_peso_imagen = filereadex(v_narchivo, v_imagen_blob) //FileLength64(v_ruta)
fileclose(v_narchivo)
if (v_peso_imagen/1024) >= 1024 then
messagebox("PESO","El archivo rebasa el peso autorizado (1 mb)")
return
end if
//Mostrando imagen al usuario
ole_imagen.object.filename = v_ruta
//Guardando
UPDATEBLOB movimientos SET comprobante_pago = :v_imagen_blob
WHERE idmovimiento= :v_id_movimiento;
choose case sqlca.sqlcode
case 0
case else
v_okcommit = false
v_mensaje_operador = "error 02: Falló el intento de guardar la fotografia del comprobante, detalles: "+trim(string(sqlca.sqlcode))+'-'+sqlca.sqlerrtext
end choose
if v_okcommit then
commit;
this.enabled = false
v_mensaje_operador = "La fotografia del comprobante ha sido guardada efectivamente."
else
rollback;
v_okcommit = false
end if
//escenario
if v_okcommit then
if ChangeDirectory(v_folder_aplicacion) = 1 then
else
v_okcommit = false
v_mensaje_operador = "error 02: Falló el intento de regresar al folder de la aplicación, detalles: Es posible que la iconografía desaparezca y se restablezca en el próximo reinicio de la aplicación."
end if
end if
end if
//seleccion cancelada
if v_resultado_seleccion_archivo = 0 then
v_okcommit = false
v_mensaje_operador = "Selección cancelada por el usuario."
end if
//seleccion fallida
if v_resultado_seleccion_archivo = -1 then
v_okcommit = false
v_mensaje_operador = "Ocurrió un error inesperado al intentar seleccionar la imagen."
end if
//resultado
sle_mensaje_usuario.text = v_mensaje_operador
if v_okcommit then
else
f_mensaje_usuario(v_mensaje_operador, 3)
end if