[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
SQL-Ledger (1) è un applicativo per la gestione di una contabilità, realizzato in forma di programmi CGI Perl (capitolo 237) e basato su una base di dati PostgreSQL (parte lxxix), o eventualmente Oracle.
L'installazione e l'uso di questo applicativo sono relativamente semplici, purché si sappia configurare PostgreSQL; in particolare, l'accesso attraverso programmi CGI rende il tutto molto pratico. L'unico difetto dell'applicativo sta nella sua estrema semplicità sul piano contabile, che dovrebbe consentirgli di essere compatibile con qualunque tipo di contabilità in partita doppia, ma che manca di dettagli richiesti dalla normativa italiana. Tuttavia, volendo, l'adattamento alle esigenze italiane dovrebbe essere possibile senza troppe difficoltà, proprio per la sua struttura semplificata. Per la precisione, ciò che di significativo manca a questo applicativo è una stampa del libro giornale e dei registri IVA secondo la forma prevista.
Nonostante le carenze che può avere SQL-Ledger, si tratta comunque di un programma importante, che allo stato attuale può essere utilizzato almeno nella didattica.
Prima di pensare all'installazione e configurazione di SQL-Ledger è necessario predisporre PostgreSQL e un servente HTTP in grado di eseguire programmi CGI. Generalmente, il servente HTTP viene messo in funzione nello stesso elaboratore che ospita PostgreSQL con le basi di dati, pertanto è sufficiente garantire l'accesso alle basi di dati dallo stesso elaboratore locale.
È necessario definire un utente nell'ambito della gestione di PostgreSQL (non serve che questo utente esista anche per il sistema operativo), a cui sia concesso di creare delle basi di dati. Di solito si agisce così:
#
su postgres
[Invio]
$
createuser -d sql-ledger
[Invio]
Shall the new user be allowed to create new users? (y/n)
n
[Invio]
CREATE USER |
L'opzione -d serve esattamente per concedere all'utente di creare delle basi di dati, mentre come si vede dall'esempio, si evita di dare a questo utente la facoltà di creare altri utenti. Il nome attribuito all'utente è libero, ma la scelta di sql-ledger è conforme agli esempi della documentazione originale.
Dal momento che l'accesso alle basi di dati avviene normalmente nell'ambito dello stesso elaboratore locale, di solito non conviene attribuire all'utente una parla d'ordine o altre limitazioni di accesso. Eventualmente si deve avere cura che l'accesso non sia consentito dall'esterno.
Si può verificare di avere creato l'utente sql-ledger con l'aiuto di psql, aprendo la base di dati template1:
$
psql template1 sql-ledger
[Invio]
Welcome to psql 7.3.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit |
template1=>
In questo caso tutto è andato bene e basta concludere con il comando \q:
template1=>
\q
[Invio]
È probabile che la propria distribuzione GNU/Linux non disponga di un pacchetto già pronto per SQL-Ledger, tuttavia la sua installazione è relativamente semplice, anche partendo dal pacchetto originale scaricato seguendo i riferimenti che partono da sito di questo progetto: <http://www.sql-ledger.org>.
Supponendo di avere scaricato il file sql-ledger-2.0.9.tar.gz
nella directory /tmp/
, volendo installare il pacchetto a partire dalla directory /opt/
, si può procedere nel modo seguente:
#
cd /opt
[Invio]
#
tar xzvf /tmp/sql-ledger-2.0.9.tar.gz
[Invio]
Si ottiene la directory /opt/sql-ledger/
, all'interno della quale si trova il file sql-ledger.conf.default
, che va copiato in modo da ottenere il file sql-ledger.conf
, che eventualmente può essere modificato (normalmente non c'è questa necessità):
#
cd /opt/sql-ledger
[Invio]
#
cp sql-ledger.conf.default sql-ledger.conf
[Invio]
Infine, occorre cambiare la proprietà di alcune directory contenute a partire da /opt/sql-ledger/
, in modo da consentire l'accesso al programma che offre il servizio HTTP (il servente HTTP), che è indispensabile per interagire con SQL-Ledger.
Bisogna controllare qual è il nome dell'utente e del gruppo usati dal programma che funziona come servente HTTP. In una distribuzione GNU/Linux Debian si tratta di www-data, sia l'utente, sia il gruppo:
#
cd /opt/sql-ledger
[Invio]
#
chown -R www-data:www-data users
[Invio]
#
chown -R www-data:www-data templates
[Invio]
Non è indispensabile che la directory che contiene SQL-Ledger si chiami esattamente sql-ledger/
; inoltre, non esiste il problema di inserire il percorso degli eseguibili nella variabile di ambiente PATH, perché l'avvio dei programmi è compito del servente HTTP. Si osservi inoltre che, essendo il programma scritto in Perl, non richiede la compilazione, pertanto, «sorgente» ed «eseguibile» sono la stessa cosa.
Il servente HTTP deve essere configurato in modo di poter raggiungere i programmi CGI che compongono SQL-Ledger. Si tratta di definire un percorso virtuale, dove per esempio http://localhost/sql-ledger/
deve corrispondere alla directory reale /opt/sql-ledger/
e i file con estensione .pl
vanno intesi essere programmi CGI.
Quando si utilizza il servente HTTP Apache, è necessario modificare il file httpd.conf
(capitolo 234). Le istruzioni da aggiungere sono quelle seguenti:
|
Se si dispone di un servente HTTP diverso, che non consente di associare un'estensione all'avvio di programmi CGI, dovrebbe essere sufficiente specificare che la directory /opt/sql-ledger/
, associata al percorso http://localhost/sql-ledger/
è da considerarsi l'inizio di una serie di programmi CGI. L'estratto seguente rappresenta la direttiva da aggiungere alla configurazione di Boa, nel file boa.conf
(capitolo 235):
|
Naturalmente, la configurazione va cambiata in modo coerente con la posizione effettiva in cui è stato installato SQL-Ledger e con il percorso che si vuole usare per accedervi.
Se tutto è stato fatto in modo corretto, a questo punto è possibile consultare l'indirizzo http://localhost/sql-ledger/admin.pl
.
Come qualunque programma per la gestione di una contabilità, SQL-Ledger richiede la definizione dei dati su cui lavorare. Questa e altre funzioni amministrative si raggiungono attraverso l'indirizzo http://nodo/sql-ledger/admin.pl
(se si lavora sullo stesso elaboratore locale, il nodo è localhost
). Si può usare qualunque programma di navigazione; qui si mostrano esempi senza grafica:
|
Inizialmente l'amministratore di SQL-Ledger non dispone di alcuna parola d'ordine, pertanto basta confermare selezionando il pulsante grafico <Login
>.
|
Come si vede dall'esempio, ciò che appare è una pagina da cui è possibile accedere a funzionalità amministrative, come per esempio il cambiamento della parola d'ordine dell'amministratore di SQL-Ledger.
La contabilità gestita con SQL-Ledger è divisa in basi di dati distinte, all'interno di ognuna delle quali si può gestire la contabilità di un'azienda particolare. Tuttavia, l'accesso alla base di dati di una certa azienda richiede l'abbinamento di un utente. In pratica, l'utente di SQL-Ledger viene associato a una base di dati particolare, in modo tale che quando questo utente si identifica, raggiunga in modo automatico la gestione che lo riguarda. Per poter eliminare una base di dati che non serve più, è necessario togliere l'abbinamento con l'utente.
Selezionando il pulsante grafico <Pg Database Administration
> si accede a una maschera come quella seguente, che in parte potrebbe apparire già compilata:
|
Di solito i dati sono corretti: il nome del nodo non viene inserito perché si intende normalmente che il collegamento con PostgreSQL avvenga presso l'elaboratore locale (ovviamente, per «locale» si intende rispetto ai programmi CGI), senza bisogno di utilizzare i protocolli di rete, così nemmeno la porta viene specificata; l'utente da usare per la comunicazione con PostgreSQL è normalmente sql-ledger; ci si collega alla basi di dati template1 per poterne creare delle altre.
Nei pulsanti grafici appare la parola dataset, che vuole fare riferimento all'insieme di dati della contabilità di un'azienda, cosa che in pratica è costituita da una basi di dati. Inizialmente si deve creare una di queste basi di dati, selezionando il pulsante grafico <Create Dataset
>:
|
Inizialmente potrebbe apparire una maschera come quella dell'esempio. In questa fase l'amministratore deve decidere un nome da dare a questo insieme di dati, quindi deve scegliere la codifica, tenendo conto che questa deve essere compatibile con il modello che poi seleziona sotto.
A titolo di esempio si crea l'insieme di dati prova con la codifica UTF-8, utilizzando il modello previsto per l'Italia:
|
Una volta creato l'insieme dei dati, si può passare alla creazione di un utente che poi deve utilizzarlo. Si accede a questa funzione dalla maschera iniziale dove si deve selezionare il pulsante grafico <Add User
>. La maschera che si ottiene è molto lunga:
|
Nell'esempio, la maschera viene compilata nel modo più semplice possibile, per creare l'utente pippo, con la selezione di ciò che riguarda le convenzioni italiane (il linguaggio, la forma della data, la forma dei numeri). Più o meno al centro, si seleziona il tipo di accesso alle basi di dati ({Pg
} sta per PostgreSQL), l'insieme dei dati (prova), l'utente da usare per le comunicazioni con PostgreSQL. Nella parte inferiore si stabilisce cosa può fare l'utente pippo; in questo caso può fare tutto, senza però essere un amministratore.
Si intuisce che è possibile creare altri utenti associati sempre allo stesso insieme di dati, con funzionalità più limitate.
Al termine appare la maschera di accesso alle funzionalità amministrative, con l'elenco aggiornato degli utenti esistenti:
|
Si può notare nell'ultima colonna che elenca i clienti la voce {Templates
}. In questo caso, si intende che l'utente pippo dispone di modelli personalizzati nella directory templates/pippo/
, ottenuti inizialmente da una copia di quelli standard.
Al termine, si può provare ad accedere all'indirizzo http://nodo/sql-ledger/login.pl
, identificandosi come utente pippo:
|
Si ottiene un menù. Si osservi che il programma di navigazione deve essere in grado di gestire la suddivisione in riquadri (frame), dal momento che il menù continua ad apparire in una cornice sul lato sinistro.
SQL-Ledger accounting
SourceForge, SQL-Ledger accounting
Mosaico, Team Mosaico
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) SQL-Ledger GNU GPL
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome sql_ledger_introduzione.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]