Pubblicato da: LukenShiro | 6 giugno 2007

Guida a F24OnLine con GNU/Linux

MOLTI ENTI E SOCIETA’ PUBBLICHE PRODUTTRICI DI SOFTWARE ISTITUZIONALE PER WINDOWS NON HANNO FINORA RITENUTO DI PUBBLICARE VERSIONI ANCHE PER GNU/LINUX O MULTIPIATTAFORMA, ESCLUDENDO DI FATTO PRIVATI CITTADINI, IMPRENDITORI E PROFESSIONISTI DALL’ACCESSO LIBERO AI SISTEMI INFORMATICI DELLA PUBBLICA AMMINISTRAZIONE, PER FAR FRONTE AD ADEMPIMENTI BUROCRATICI E GIURIDICI OBBLIGATORI; PER ESSI INFATTI SONO RICONOSCIUTI, IN MODO ILLEGITTIMO, SOLO SISTEMI OPERATIVI MICROSOFT WINDOWS.
L’AUTORE CONDANNA FERMAMENTE QUESTO SCANDALOSO COMPORTAMENTO DELLA P.A., E SI AUGURA CHE QUESTI ENTI E SOCIETA’ RENDANO FINALMENTE DISPONIBILE L’ACCESSO AI CITTADINI CHE, DI PIENO DIRITTO, UTILIZZANO INVECE SISTEMI OPERATIVI ALTERNATIVI A MS WINDOWS (CHIUSO E PROPRIETARIO).
GLI UTENTI SONO CALOROSAMENTE INVITATI A SOLLECITARE LE AMMINISTRAZIONI PUBBLICHE A CONSENTIRE IL LIBERO ACCESSO ALLE LORO PROCEDURE CON SISTEMI ALTERNATIVI A WINDOWS, NONCHE’ AD UTILIZZARE IN PRIMA BATTUTA, LADDOVE DISPONIBILE, SOFTWARE RILASCIATO ANCHE PER GNU/LINUX.
LA GUIDA SEGUENTE SI RIFERISCE INFATTI A “TRUCCHI” NON UFFICIALI PER I QUALI NON E’ MAI GARANTITA AL 100% LA COMPATIBILITA’ CON LA PROCEDURA UFFICIALE PER WINDOWS STABILITA DAL PRODUTTORE DEL SOFTWARE, NE’ CON IL RISULTATO IN TERMINI DI FORMATO E/O DI CONTENUTO DELLA PROCEDURA IN AMBIENTE WINDOWS, E CHE NON POSSONO MAI CON CERTEZZA E COMPLETEZZA SOSTITUIRE A TUTTI GLI EFFETTI L’AMBIENTE PER I QUALI SONO ORIGINARIAMENTE CONCEPITI.

.
.

Stimolato da due interessanti messaggi apparsi tempo fa su Punto Informatico, precisamente:
Fisco, quando il software è un ostacolo
e
Smanettando, il Fisco digerirebbe l’open source
ho deciso di creare un’altra guida passo-passo per l’utilizzo del programma F24online, applicazione che serve per la redazione dei modelli di pagamento F24, che poi dovranno essere spediti per via telematica. Nel secondo dei due post citati vengono dati dei riferimenti su come installarlo su GNU/Linux e avviarlo, ma le istruzione sul mio sistema (ArchLinux current) non funzionano del tutto.

A differenza di Gerico2007 l’Agenzia delle Entrate e la SO.GE.I. hanno reso disponibile l’applicazione solo per piattaforma Windows e MacOS. Per farlo funzionare su GNU/Linux, sarà necessario operare degli adattamenti.
.
Prima di continuare la lettura si prega di prendere conoscenza delle CONDIZIONI DI UTILIZZO ed accettarle.
.

    PREPARAZIONE

Creiamo una sotto-directory temporanea, preferibilmente nella directory $HOME, di nome p.es. $HOME/tmp/F24online

Scarichiamo in questa directory il file F24OnLine.exe a partire da qui

Il programma (attualmente la versione corrente è la 2.1.6 2.1.7 2.1.8 del 29/10/2007 2.1.9 del 07/11/2007 2.2.0 del 03/12/2007) per Windows è binario, con licenza proprietaria, senza disponibilità quindi di sorgenti. Esso utilizza una macchina virtuale Java della serie 1.3.x

Servono altri utensili per scompattare il contenuto dell’applicazione, al fine di renderlo usabile per GNU/Linux (si consiglia una versione ragionevolmente recente):
upx (che serve a decomprimere un eseguibile)
unzip (che serve a scompattare il contenuto dell’eseguibile decompresso)
Verificare che siano installati.

Decomprimere l’eseguibile con upx -k -d F24OnLine.exe (con l’opzione -k si mantiene una copia di sicurezza con il nome di F24OnLine.ex~)
Scompattare l’eseguibile con unzip F24OnLine.exe

I file prodotti dallo scompattamento sono questi:
InstallerData/IAClasses.zip
InstallerData/laxmanifest.txt
InstallerData/uninstallmanifest.txt
InstallerData/Disk1/InstData/MediaId.properties
InstallerData/Disk1/InstData/Resource1.zip
InstallerData/Execute.zip
InstallerData/InstalledMedias.properties
InstallerData/MediaFiles.properties
Windows/F24OnLine.exe
Windows/F24OnLine.lax
Windows/resource/iawin32.dll
Windows/resource/jdglue.zip
Windows/resource/remove.exe
Windows/resource/ZGWin32LaunchHelper.exe
Windows/unicows.dll

.
.

    JAVA

Se si è già installato un altro programma dell’Agenzia delle Entrate/SO.GE.I. è probabile che questo passo sia già stato completato, in tal caso si può passare direttamente al successivo.

Altrimenti è opportuno leggere la guida software per Java
.
.

    INSTALLAZIONE

Ritornando all’interno della directory temporanea creare, come utente, uno script testuale di shell (es. installaF24OL.sh), da rendere poi eseguibile, con questo contenuto:

#!/bin/sh
export J2REDIR=/opt/jre1.3.1_20/
export PATH=$J2REDIR/bin:$PATH
export MANPATH=$J2REDIR/man:$MANPATH
export CLASSPATH=$J2REDIR/lib:$CLASSPATH
export JAVA_HOME=$J2REDIR
LD_LIBRARY_PATH=$J2REDIR java -classpath “InstallerData/IAClasses.zip: Windows/resource/jdglue.zip:InstallerData/Execute.zip: Windows/InstallerData/Execute.zip: InstallerData:Windows/InstallerData: InstallerData/Disk1/InstData/Resource1.zip” com.zerog.lax.LAX “Windows/F24OnLine.lax”

Note: a) la directory in corrispondenza di J2REDIR è quella dove abbiamo installato la macchina virtuale java della serie 1.3.x
b) il comando che inizia con “LD_LIBRARY_PATH” (fino alla fine) deve essere collocato tutto su una riga o convenientemente posizionato su più righe ognuna delle quali (a parte l’ultima) termina con un carattere di escape (“\”) e un ritorno a capo.

Nella directory temporanea eseguiamo lo script con ./installaF24OL.sh, seguiamo le istruzioni e indichiamo come directory di destinazione dell’installazione, una sotto-directory della propria $HOME (preferibilmente $HOME/UnicoOnLine), e proseguiamo in avanti fino al termine dell’installazione.
La scelta di questa directory è motivata dal fatto che è meglio distanziarsi il meno possibile dalle scelte operative della SO.GE.I., al fine di prevenire malfunzionamenti, dato che F24OnLine è strettamente connesso a UnicoOnLine e, per chi lo usa in qualità di professionista abilitato alle trasmissioni via ENTRATEL, F24Intermediari, e che nella versione Windows sono collocati tutti e tre in questa sotto-directory comune.

Nella directory di installazione $HOME/UnicoOnLine creare, come utente, uno script testuale di shell (es. avviaF24OL.sh), da rendere poi eseguibile, con questo contenuto:

#!/bin/sh
export J2REDIR=/opt/jre1.3.1_20/
export PATH=$J2REDIR/bin:$PATH
export MANPATH=$J2REDIR/man:$MANPATH
export CLASSPATH=$J2REDIR/lib:$CLASSPATH
export JAVA_HOME=$J2REDIR
LD_LIBRARY_PATH=$J2REDIR java -classpath “F24Prog/BQJAP116.jar:F24Prog/etymon.jar:./lax.jar” sogei.BQJAP116.menu.PnlMain “./F24_On_Line.lax”

Note: a) la directory in corrispondenza di J2REDIR è quella dove abbiamo installato la macchina virtuale java della serie 1.3.x
b) il comando che inizia con “LD_LIBRARY_PATH” (fino alla fine) deve essere collocato tutto su una riga o convenientemente posizionato su più righe ognuna delle quali (a parte l’ultima) termina con un carattere di escape (“\”) e un ritorno a capo.

Bene, abbiamo installato F24OnLine su GNU/Linux!

NOTA: per usufruire della visualizzazione in tempo reale delle distinte e modelli in formato .pdf è consigliabile installare Acrobat Reader; oppure dovrebbe bastare la creazione, con i privilegi di root, di un link simbolico ad un programma analogo per GNU/Linux (come kpdf, evince, ecc.), p.es., se quest’ultimo sta in /usr/bin, con il comando ln -s /usr/bin/kpdf /usr/bin/acroread
.
.

    AVVIO

Recandoci nella directory di installazione $HOME/UnicoOnLine, eseguiamo lo script con ./avviaF24OL.sh.
L’applicazione è pronta all’uso.
NOTA: per trasmettere per via telematica il proprio modello di pagamento F24 è necessario installare l’applicazione FileInternet (che è oggetto di trattazione in questa guida), altrimenti il programma lamenta la mancanza di alcune classi java (se si installa Entratel è necessario creare il flusso di pagamento con F24Intermediari e trasmetterlo con Entratel, FileInternet non è necessario)

In alternativa all’uso di F24OnLine e del relativo programma di trasmissione telematica dei pagamenti, l’Agenzia delle Entrate ha recentemente messo a disposizione dell’utenza il servizio F24Web, che permette di compilare su un form web, senza installare alcun programma sul computer, gestendo tutto con il browser di navigazione internet.
L’accesso al servizio richiede necessariamente ll’autenticazione presso il citato sito SERVIZI TELEMATICI e scegliendo la linguetta F24WEB dal menu Strumenti (per gli utenti Entratel; non so per altri). Per ora sembra utilizzabile solo per i pagamenti propri, non è del tutto chiaro se sia prevista l’effettuazione anche di pagamenti per conto di terzi (questione molto importante per professionisti/intermediari incaricati del pagamento da parte dei loro clienti/assistiti)

In teoria è un passo molto importante verso l’interoperabilità dei sistemi e la migliore funzionalità del servizio; si tratta solo di vedere se la banda sarà sufficiente (il sito è già molto lento), se sarà garantita una seria sicurezza e riservatezza (i dati e i file verranno custoditi sul server dell’Agenzia anche prima dell’invio telematico), se all’utente sarà concessa una sufficiente flessibilità nell’interazione (sarebbe utile avere una copia in locale e poter fare l’upload di dati che già si hanno per evitare di riscrivere da capo tutto ogni volta), e se non saranno necessarie sedicenti “tecnologie” chiuse e proprietarie (che vanifichino il principio di libero accesso e reale interoperabilità, a quel punto tanto vale non farlo)

AVVERTENZE
Ho provato ad utilizzare come macchina virtuale java, una serie e versione più recente della Sun, precisamente una della serie 1.5.x e una della 1.6.0. Se da un lato il programma parte e sembra funzionare regolarmente, con le versioni superiori alla serie 1.3.x ci sono delle problematiche irrisolte che impedisco l’utilizzo completo del programma rendendolo di fatto inidoneo allo scopo; tra gli altri appare un errore quando si preme su avanti o riepilogo:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification
at javax.swing.text.AbstractDocument.writeLock(Unknown Source)
at javax.swing.text.AbstractDocument.remove(Unknown Source)
at sogei.BQJAA000.models.BaseDoc.setText(BaseDoc.java:141)
at sogei.BQJAA000.models.ValutaDoc.inserisciPunti(ValutaDoc.java:146)
at sogei.BQJAA000.models.ValutaDoc.insertUpdate(ValutaDoc.java:224)
at javax.swing.text.AbstractDocument.fireInsertUpdate(Unknown Source)
at javax.swing.text.AbstractDocument.handleInsertString(Unknown Source)
at javax.swing.text.AbstractDocument.insertString(Unknown Source)
at javax.swing.text.PlainDocument.insertString(Unknown Source)
at javax.swing.text.AbstractDocument.replace(Unknown Source)
at javax.swing.text.JTextComponent.setText(Unknown Source)
at sogei.BQJAP116.quadroRiepilogativo.PnlDatiRiepilogativi.visualizzaImporti(PnlDatiRiepilogativi.java:1995)
at sogei.BQJAP116.quadroRiepilogativo.PnlDatiRiepilogativi.visualizzaTotali(PnlDatiRiepilogativi.java:2074)
at sogei.BQJAP116.quadroRiepilogativo.PnlDatiRiepilogativi.initialize(PnlDatiRiepilogativi.java:1873)
at sogei.BQJAP116.quadroRiepilogativo.PnlDatiRiepilogativi.(PnlDatiRiepilogativi.java:75)
at sogei.BQJAP116.menu.PnlMain.btnRiepilogo_ActionPerformed(PnlMain.java:532)
at sogei.BQJAP116.menu.PnlMain$10.actionPerformed(PnlMain.java:1602)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


Lascia un commento

Categorie