SlideShare uma empresa Scribd logo
1 de 78
Università degli Studi di Trieste
Facoltà di Ingegneria
________________________________________________________________________
Tesi di Laurea Triennale in Ingegneria Informatica
Progettazione di un sistema di
fatturazione
di consumi e servizi
Relatore Laureando
Chiar.mo Prof. Maurizio FERMEGLIA Mauro LUPIERI
________________________________________________________________________
Anno Accademico 2007-2008
A Riccardo, Licia e Mamma
Indice
III
1. Introduzione
L’oggetto di studio di questo elaborato è la progettazione e lo sviluppo di un sistema di
fatturazione di consumi e servizi sufficientemente flessibile e generalizzato da coprire un
ampio spettro di esigenze e funzionalità. A partire dall’analisi dei processi di fatturazione
delle società che forniscono servizi al pubblico, quali forniture di gas metano, energia
elettrica e acqua potabile, si intende sviluppare un prodotto in grado di gestire in ingresso
una qualsiasi misura da fatturare e di produrne in uscita la valorizzazione monetaria in
funzione della storia del cliente e del piano tariffario applicato.
L’analisi parte dalla ricerca degli elementi che questi sevizi hanno in comune con
l’obiettivo non solo di sviluppare un unico sistema in grado di gestirli, ma anche di poter
affrontare nuove diverse esigenze ed articolazioni tariffarie.
Lo studio di un prodotto caratterizzato da un alto grado di flessibilità, oltre che di
efficienza ed efficacia, è motivato dalla progressiva evoluzione e liberalizzazione dei
mercati dell’energia e dei servizi pubblici. Le aziende devono adeguarsi a fornire nuovi
servizi, entrare in mercati nuovi e liberalizzati, offrire piani tariffari personalizzati e
adottare strategie di marketing orientate alla fidelizzazione del cliente. Tutti questi fattori
determinano l’inadeguatezza dei tradizionali sistemi monolitici e poco flessibili,
rappresentando un freno alle strategie del management.
I termini flessibile e generalizzato significano che il prodotto deve essere in grado di
adattarsi ed evolversi a fronte di nuovi servizi, nuove esigenze, ristrutturazioni dei mercati
e repentini cambiamenti delle strategie di marketing aziendali. Il tutto deve essere
possibile con uno sforzo minimo in termini di tempi di implementazione e costi di
realizzazione.
Come evidenziato nella figura che segue, si presuppone l’esistenza di altri prodotti adibiti
alla gestione dei clienti, alle strutture tariffarie ed alla rilevazione delle misure; attraverso
opportuni moduli d’interfaccia, questi sistemi alimentano la base di dati. L’applicativo
opera quindi su informazioni gestite da altri moduli e, a sua volta, genera informazioni
che potranno essere utilizzate da sistemi quali ad esempio portali Web che forniscono
servizi al cliente finale, sistemi ERP, strumenti di reportistica, di Business Intelligence ed
altro ancora.
IV
Archivio
Fatturazione
Moduli di
interfaccia
Applicativo di
fatturazione
Sistemi di
acquisizione
misure e
gestione
cliente
Estrazione dati:
ERP, Web,
Report,….
La progettazione di un qualsiasi sistema informativo riguarda sostanzialmente due aspetti,
la progettazione dei dati e la progettazione delle applicazioni. Questo elaborato tratta
essenzialmente la progettazione e la realizzazione della Base di Dati e della Logica di
Business dell’applicativo.
Nell’elaborato viene adottato il metodo progettuale basato sul modello di sviluppo del
ciclo di vita del software limitatamente alle attività di raccolta ed analisi dei requisiti,
progettazione e realizzazione.
L’applicazione è stata implementata utilizzando il Data Base Management System
Microsoft SQL Server 2005 Express su piattaforma Microsoft (sistemi operativi Windows
XP, Windows Vista o Windows 2000 - 2003 Server). Gli unici vincoli Hardware sono
rappresentati dai requisiti minimi di installazione di SQL Server Express. Per il Porting in
produzione è necessaria l’adozione della versione completa di SQL Server e sono da
valutare le caratteristiche minime del Server che deve ospitare la base di dati,
caratteristiche che sono determinate sostanzialmente dal numero di clienti e di fatture da
gestire. Per quanto riguarda i vincoli normativi, si è fatto riferimento alle disposizioni
dell’AEEG (Autorità per l’Energia Elettrica ed il Gas) ed ai contratti standard proposti
dagli operatori presenti sul mercato.
V
1.1. Struttura dell’elaborato
Il secondo capitolo presenta una descrizione generale del processo di fatturazione delle
società che forniscono servizi al pubblico. Vengono evidenziati i principali elementi
costitutivi di questo processo e viene soprattutto eseguita l’analisi dettagliata delle
esigenze e dei requisiti che un qualsiasi sistema di fatturazione attualmente in commercio
deve possedere. La necessità di definire un modello flessibile costringe ad una continua
ricerca della ragione d’essere di ogni singolo requisito e degli elementi che i vari servizi
hanno in comune. Il risultato di questa fase è una descrizione precisa delle caratteristiche
e delle funzionalità che il prodotto deve presentare.
Il terzo capitolo presenta la progettazione del sistema ed è articolato in due fasi: la
progettazione concettuale e la progettazione logica. La prima fa ampio uso del modello
Entità – Relazioni, il modello più idoneo a rappresentare e supportare lo sviluppo di
sistemi relazionali. La seconda fase tratta la traduzione del modello concettuale nello
schema logico relazionale.
Nel quarto capitolo si procede allo sviluppo del data base e della logica di business,
implementata con le Stored Procedures scritte in Transact-SQL di Microsoft SQL Server.
Per la presentazione della fattura, a solo scopo dimostrativo e di controllo dei risultati
ottenuti, è stato sviluppato uno script in linguaggio VBS per la generazione di un foglio
Excel contenente il documento prodotto dall’applicativo.
Seguono le opportune conclusioni, la valutazione dei risultati ottenuti e la definizione
degli eventuali sviluppi futuri.
VI
2. Definizione delle specifiche di progetto
Le specifiche del progetto sono definite a partire dalle caratteristiche generali di un
comune sistema di fatturazione. La difficoltà principale risiede nella volontà di progettare
un modello generale, non strettamente legato alle peculiarità di una singola tipologia di
servizio. Il prodotto deve essere in grado di adattarsi a gestire nuove esigenze, nuove
situazioni e nuovi servizi e deve essere progettato in modo tale da facilitare le future
implementazioni e lo sviluppo di nuove funzionalità che gli permettano di crescere in
tutte le sue dimensioni.
Lo sviluppo del sistema avviene a partire dall’analisi delle tecniche di fatturazione dei
seguenti servizi:
• Servizio di fornitura di acqua potabile
• Servizio di fornitura di gas metano
• Servizio di fornitura di energia elettrica
Particolare attenzione è stata posta alla definizione dell’entità “misura”. La volontà di
realizzare un sistema flessibile e aperto agli sviluppi futuri ha comportato la gestione di
tipologie di misura che non sono utilizzate nella fatturazione dei servizi a rete ma che
descrivono in modo completo ed esaustivo l’entità stessa.
L’appendice B contiene documenti scaricati dai siti istituzionali di Aziende che operano
nei settori elencati e dal sito dell’Autorità per l’Energia Elettrica ed il Gas, e definiscono
in modo puntuale le tecniche di fatturazione che vengono applicate ai relativi consumi.
2.1. Analisi e raccolta dei requisiti
Di seguito vengono esposti i concetti fondamentali attorno ai quali è stato sviluppato il
progetto.
L’anagrafica dei soggetti.
Il soggetto può essere censito a sistema per uno dei seguenti motivi:
• titolare di un contratto di fornitura e quindi cliente;
7
• destinatario dei documenti di fatturazione (potrebbe non essere il titolare del
contratto);
• istituto di credito al quale il cliente può delegare il pagamento delle fatture.
Il soggetto è caratterizzato dai seguenti attributi: il codice fiscale e la partita iva,
l’indirizzo di residenza e quello di recapito dei documenti, la data di nascita, il sesso e
l’eventuale domiciliazione bancaria; può essere persona fisica o persona giuridica.
La residenza.
E’ un attributo del soggetto e ne identifica l’indirizzo di residenza.
Il recapito.
E’ l’attributo del soggetto che identifica l’indirizzo al quale inviare le comunicazioni. Può
essere anche un soggetto diverso dal titolare, in questo caso si tratta di recapito presso
terzi.
Il contratto.
Il contratto è stipulato dal soggetto con l’azienda che eroga il servizio ed è caratterizzato
da un numero identificativo, da una data di stipula e dallo stato (aperto, chiuso, in attesa
di perfezionamento).
Il cliente.
Il cliente è il soggetto che ha stipulato un contratto con l’azienda; è caratterizzato, da tutti
gli attributi che tipicamente rivestono importanza nell’ambito del rapporto contrattuale
quali l’indirizzo di fornitura, il tipo di servizio erogato (elettricità, gas, acqua, telefonia,
ecc.), uno o più codici di raggruppamento definiti dalle caratteristiche del tipo servizio
(utilizzati per funzioni di analisi e reportistica, ad esempio il codice merceologico), il
piano tariffario applicato, la storia (rilevante per la fatturazione), l’apparato di rilevazione
delle misure ed il trattamento economico, cioè l’applicazione di particolari condizioni di
favore (sconti), un codice che identifica univocamente il cliente ed un codice che
rappresenta univocamente la fornitura, ad esempio per i servizi elettricità e gas il “Point
of Delivery” stabilito dall’autorità adibita al controllo della rete di distribuzione ed
eventualmente per il servizio di telefonia il numero telefonico identificativo.
La fornitura.
Rappresenta l’indirizzo di erogazione del servizio.
Il tipo servizio.
8
Il tipo di servizio è caratterizzato dai processi tecnici ed amministrativi necessari ad
erogarlo. Ai fini dell’applicativo il servizio è caratterizzato dai metodi di fatturazione,
dalle tariffe e dai prezzi che possono essere applicati al cliente, dall’entità fisica che è
misurata per quantificarlo e da eventuali parametri di natura geografica e/o tecnica degli
impianti di fornitura.
L’indirizzo.
L’indirizzo è caratterizzato dai seguenti attributi: via, civico, interno, città, CAP, nazione.
E’ legato alla fornitura, al recapito e alla residenza.
Lo strumento di misura.
Per strumento di misura s’intende l’oggetto adibito alla rilevazione dei consumi,
caratterizzato dalla marca, dalla matricola, dall’anno di produzione, dall’anno di
installazione, dallo stato, dall’anno di rimozione ed eventualmente da altri attributi
riguardanti le specificità tecniche dell’apparato. Nell’analisi delle realtà da gestire non
sempre questa entità è presente.
Lo stato contrattuale.
Rappresenta la condizione nella quale si trova il cliente nel momento in cui è esaminato
dal processo di fatturazione e ne riassume la storia passata. Lo stato è costituito da un
insieme di attributi che devono essere gestiti con la massima generalità, così da non porre
vincoli allo sviluppo di future implementazioni. L’introduzione di questo livello di
astrazione comporta la necessità di mantenere una struttura dati che deve, in ogni
momento, essere congruente con l’articolazione tariffaria applicata e con la struttura delle
misure rilevate, tale che tutte le voci indispensabili all’esecuzione degli algoritmi di
calcolo siano presenti e contengano valori rilevanti.
Le misure ed il periodo di rilevazione.
Il software gestisce entità generiche da fatturare che sono definite misure. Una misura
potrà essere ad esempio una superficie, un numero di persone, un consumo di acqua, gas o
energia elettrica, un numero di mesi o di giorni; il sistema dovrà essere in grado di
definire di volta in volta gli attributi dell’entità misura così da darne un significato
concreto. Le misure sono strettamente legate al periodo di rilevazione nel corso del quale
sono state rilevate o afferiscono.
Si possono definire quattro diversi tipi di misura:
a) misura di consumi, quindi in generale di grandezze fisiche che variano con
continuità nel tempo. E’ definita una relazione “uno a uno” tra misura e periodo di
rilevazione.
9
b) misura di intervalli puntuali di tempo, tipico della telefonia, caratterizzata da un
valore espresso in ore, minuti e secondi. Ad ogni periodo può essere associato un
numero variabile di misure, senza obbligo di continuità temporale.
c) misura di grandezze discrete, ad esempio superficie, portata, numero di persone o
altro. In questo caso la misura può variare in modo discreto nel corso del periodo di
rilevazione.
d) rilevazione di un intervallo temporale. In questo caso è l’intervallo stesso di
rilevazione che ha significato, non esiste una misura associata. Può essere
considerato un caso degenere di misura.
Per quanto riguarda la fornitura di gas metano, la misura del volume consumato deve
essere corretta in conformità ad un coefficiente di natura geografica stabilito dall’autorità
competente.
La figura che segue, rappresenta le relazioni temporali tra il periodo di rilevazione e i
diversi tipi di misure gestite dal sistema.
Periodo di rilevazione delle misure
Misura di
entità che varia in modo discreto
Inizio rilevazione Fine rilevazione
Misura di grandezza fisica che varia con continuità
Misure puntuali di eventi
che si verificano
nell’intervallo di rilevazione
La tariffa, il prezzo e la variazione tariffaria.
L’applicativo deve essere in grado di gestire l’evoluzione nel tempo dell’entità fisica in
esame, determinata essenzialmente dall’evolversi dell’articolazione tariffaria. In generale
tariffe e imposte sono caratterizzate da una data di inizio validità ed una di fine validità,
che definiscono il periodo di applicazione del prezzo o decorrenza tariffaria. Tutti i
consumi ed i servizi devono quindi essere rapportati ai periodi determinati delle variazioni
tariffarie.
Segue la tabella che definisce le norme di suddivisione delle misure in funzione del tipo
di misura.
Entità fisiche
che variano
Intervalli
puntuali di
Grandezze
discrete
Intervallo
temporale di
10
con continuità tempo rilevazione
Tipo di
suddivisione
della misura
La misura è
suddivisa in
modo
proporzionale
al numero di
giorni di
appartenenza
alla decorrenza
tariffaria.
Non definibile.
L’appartenenza
alla decorrenza
tariffaria è
definita sulla
base della data
di effettuazione
dell’evento.
La misura è
suddivisa in
proporzione al
periodo in cui
si mantiene
costante.
Intervallo
suddiviso in
base ai giorni
di rilevazione.
La seguente figura schematizza la suddivisione di misure che variano con continuità nel
tempo in funzione di una variazione del prezzo avvenuta nel corso del periodo di
rilevazione.
Periodo di rilevazione misure effettivo
Periodo validità prezzo A Periodo validità prezzo B
Sub - periodo rilev. A Sub – periodo rilevazione B
Data inizio
rilevazione
Data fine
rilevazione
Data variazione
prezzi
L’algoritmo di calcolo.
L’algoritmo di calcolo in generale può essere considerato una proprietà della tariffa. Il
sistema è stato sviluppato mantenendo invece separati i due concetti. Per tariffa s’intende
l’entità che definisce il prezzo da applicare alla misura da fatturare e che è associata al
cliente. Per algoritmo di calcolo s’intende il metodo che è utilizzato per applicare il
prezzo alla misura. Gli algoritmi sono legati al tipo di servizio, al tipo di misura e alle
regole di fatturazione che sono stabilite.
Gli algoritmi che più comunemente sono utilizzati nelle realtà esaminate sono:
a) moltiplicazione della misura rilevata per il prezzo unitario (espresso in €/unità di
misura), ad esempio nel calcolo dei corrispettivi per fognatura e depurazione del
servizio idrico integrato. Il calcolo deve essere anche rapportato al numero di
giorni ai quali è riferita la misura;
11
b) moltiplicazione del numero di giorni (o mesi) del periodo di rilevazione per il
prezzo unitario (espresso in €/giorni), ad esempio nel calcolo della quota fissa
nelle fatture del servizio idrico.
c) moltiplicazione del prezzo unitario per il periodo di rilevazione (espresso in
giorni o mesi) e per un attributo che rappresenta la misura del servizio (prezzo
espresso in €/gg*unità di misura); ad esempio la quota potenza del servizio
elettrico (prezzo * giorni * potenza impegnata);
d) suddivisione del consumo in scaglioni a riempimento, e quindi applicazione di
prezzi diversi per fascia; ad esempio calcolo della quota consumo del servizio gas;
e) suddivisione del consumo in scaglioni proporzionali, e quindi applicazione di
prezzi diversi per fascia; ad esempio calcolo della quota consumo nei servizi
acqua potabile ed elettricità.
Segue la tabella che definisce l’applicabilità degli algoritmi ai tipi di misura.
Entità fisiche
che variano
con continuità
Intervalli
puntuali di
tempo
Grandezze
discrete
Intervallo
temporale di
rilevazione
Misura *
prezzo
unitario
Si No No No
Prezzo *
periodo di
rilevazione
No No No Si
Prezzo *
Periodo *
attributo
No No No Si
Fascia di
consumo
Si No No No
Futuri sviluppi No Si Si No
Sconti sul prezzo e sui consumi.
L’applicativo deve supportare le strategie di marketing che generalmente sono perseguite
dall’azienda nell’ambito dei mercati liberalizzati o in fase di liberalizzazione, strategie
che si concretano di norma nell’applicazione di particolari condizioni di favore, cioè
sconti sul prezzo applicato o sui consumi rilevati.
Le condizioni di favore sono applicate a livello di singola tariffa, hanno validità
temporale, caratterizzata da un determinato periodo compreso tra due date, oppure
possono essere condizioni di particolare favore applicate in occasione di un determinato
evento, e quindi in una singola fatturazione. Sono inoltre caratterizzate dall’esistenza o
12
meno di un limite massimo di applicazione e dalla possibilità di essere concepite come
una percentuale dell’importo calcolato o del consumo fatturato. Ultimo requisito
riguardante l’entità sconto è che in fattura, per motivi di trasparenza, deve essere
registrato sia l’importo totale sia quello scontato.
Addebiti fissi.
Sono degli addebiti e/o accrediti (oneri, bolli, depositi cauzionali, ecc) già calcolati da
altri sistemi che vengono applicati in fattura.
La fattura.
E’ il prodotto finale dell’applicazione, generata dalle misure, dal piano tariffario e dalle
informazioni presenti nello stato contrattuale. E’ caratterizzata da una testata, costituita
dai dati del contratto e del cliente, dagli attributi dell’anagrafica e del sistema di misura,
da un codice univoco d’identificazione, dalle date di emissione, scadenza e pagamento,
dal totale imponibile, totale delle imposte e totale fattura. Deve inoltre contenere una
sezione con le informazioni concernenti le misure fatturate, ai prezzi applicati,
all’eventuale presenza di condizioni di favore e all’imposta calcolata con le aliquote
applicate. Le informazioni presenti nello stato contrattuale nel momento in cui la
fatturazione esamina il cliente devono essere memorizzate come attributi della fattura
stessa, così come deve essere registrato lo stato anagrafico, che può essere considerato
come una fotografia degli attributi del soggetto cui è attribuita la fattura.
2.2. Descrizione del processo di fatturazione
L’applicativo riceve in input il codice del cliente da fatturare e la data di scadenza del
documento, quindi per produrre la fattura esegue la seguente sequenza di operazioni:
Operazione n.1: esame dell’anagrafica, del soggetto e del cliente.
Sono estratti l’anagrafica del soggetto ed il cliente. Si verifica se è un soggetto fatturabile
in base allo stato contrattuale e agli indicatori che abilitano il processo a proseguire.
Operazione n.2: estrazione dei dati che si riferiscono a recapito, residenza, e
domiciliazione bancaria.
Vengono estratte tutte le informazioni riguardanti la residenza, il recapito e la
domiciliazione bancaria e memorizzate nello stato anagrafico fatturato. L’assenza della
residenza deve produrre una rilevazione di errore ed impedire la produzione del
13
documento. Recapito, Recapito presso Terzi e Domiciliazione Bancaria possono essere
assenti. Viene quindi estratto l’indirizzo di fornitura, che obbligatoriamente deve essere
presente.
Operazione n.3: determinazione del codice fattura e registrazione della testata del
documento.
Viene determinato il codice progressivo della fattura e registrata la testata del documento
con le informazioni in possesso. Da questo momento fino al termine del processo di
fatturazione non dovrà più essere possibile per nessun operatore collegato al sistema,
eseguire operazioni di fatturazione o modificare le entità coinvolte nel processo. Il
numero fattura deve essere un progressivo.
Operazione n.4: estrazione di eventuali addebiti da applicare in fattura.
L’applicativo ricerca eventuali addebiti o accrediti da fatturare. In caso positivo, deve
procedere con l’applicazione in fattura e la memorizzazione delle informazioni per il
calcolo dell’imposta.
Operazione n.5: estrazione dei periodi di rilevazione e delle misure.
Vengono selezionati in sequenza tutti i periodi di rilevazione associati al contratto e non
fatturati; si verifica se il periodo è fatturabile analizzando l’opportuno indicatore.
Operazione n. 6: estrazione delle tariffe ed associazione ai periodi di rilevazione.
Per ogni periodo di rilevazione, si determina la lista delle tariffe da applicare in base al
Tipo Misura. Un singolo periodo di rilevazione potrebbe essere preso in esame da più
tariffe (tipico caso è l’elaborazione della fattura del gas metano: la fatturazione prende in
esame il consumo per calcolare prima la tariffa consumo e poi l’imposta erariale con due
algoritmi diversi.).
Deve essere anche eseguito il controllo che tutte le tariffe associate al contratto siano
elaborate e che tutte le misure rilevate siano pertinenti, in caso contrario l’applicativo
deve terminare segnalando l’anomalia.
Operazione n.7: estrazione e verifica dello stato contrattuale legato alla tariffa.
Per ogni tariffa applicata si estrae lo stato contrattuale associato, costituito da tutta una
serie di attributi che appartengono alle due relazioni “Valore contrattuale” e “Data
contrattuale”. Si verifica che siano presenti tutte le voci richieste per la corretta
fatturazione della misura.
Ogni algoritmo di calcolo ha associato un ben preciso stato contrattuale che identifica lo
stato del cliente a partire dal quale effettuare la fatturazione dei consumi. Lo stato
14
contrattuale è legato alla tariffa che a sua volta è indissolubilmente legata all’algoritmo di
calcolo; una tariffa non può mai cambiare algoritmo di calcolo nel corso della sua vita.
Devono essere compiute anche tutte le verifiche legate alla congruità dello stato
contrattuale con la tariffa e le misure da fatturare. In particolare va controllata la
continuità del periodo di rilevazione con l’ultimo periodo fatturato.
Operazione n.8: determinazione di eventuali Sconti da applicare.
Per ogni tariffa si determina se devono essere applicate delle condizioni di favore (sconti
sul consumo o sul fatturato).
Operazione n.9: determinazione del periodo tariffario applicabile.
Per ogni coppia “tariffa – periodo di rilevazione misure” viene ricercato il periodo
tariffario applicabile. Se il periodo di rilevazione misure non è compreso in un unico
periodo tariffario, allora il primo deve essere suddiviso in tanti sottoperiodi in conformità
all’articolazione della variazione dei prezzi. Le misure associate al periodo tariffario
originale devono quindi essere spostate nei nuovi periodi tariffari seguendo le opportune
regole definite in base al tipo misura.
Operazione n.10: determinazione del prezzo da applicare e scrittura del dettaglio di
fatturazione.
A fronte di ogni periodo di rilevazione ridefinito in base alle variazioni tariffarie, vengono
estratte le misure ed i prezzi da applicare. Vengono quindi scritti i dettagli di fatturazione
che tengono conto di tutte le entità che contribuiscono a determinare l’importo fatturato.
Operazione n.11: scrittura del nuovo stato contrattuale.
Al termine dell’esame di ogni periodo di rilevazione dei consumi l’applicativo deve
registrare il nuovo stato contrattuale risultante dall’elaborazione.
Operazione n.12: scrittura della fattura e del dettaglio IVA.
Al termine dell’esame di ogni tariffa l’applicativo aggiorna la testata della fattura e il
dettaglio IVA.
3. Progettazione della base di dati
15
E’ stata adottata la tipica metodologia di progettazione articolata in due fasi:
progettazione concettuale e progettazione logica.
La prima fase ha lo scopo di rappresentare l’oggetto di studio in termini formali e
completi. Si fa ampio utilizzo del modello Entità – Relazioni, il più diffuso modello
concettuale utilizzato nell’analisi di basi di dati relazionali. Il risultato finale è il modello
concettuale dei dati.
La seconda fase consiste nella traduzione dello schema concettuale nell’apposito modello
logico prescelto per la realizzazione del sistema. Il risultato complessivo della fase
progettuale è lo schema logico, la struttura vera e propria del data base, corredato da tutta
la documentazione necessaria alla fase di sviluppo.
3.1. Progettazione concettuale
Nello sviluppo del modello concettuale è stata adottata una strategia di tipo misto.
Vengono inizialmente individuati i concetti principali della realtà in esame che sono
quindi inseriti in uno schema semplificato; si procede poi a macchia d’olio con lo
sviluppo del progetto attraverso un processo di raffinamenti successivi.
In questa fase progettuale è stato utilizzato il modello Entità – Relazioni che permette di
dare una veste grafica e quindi d’immediata interpretazione dell’oggetto di studio. Lo
schema finale è stato quindi ristrutturato per consentirne la traduzione verso il modello
relazionale e documentato opportunamente, facendo ricorso a un dizionario dati
strutturato e organizzato in modo da descrivere a fondo tutti gli oggetti ed i loro attributi.
Segue il diagramma ER semplificato in cui sono presenti gli oggetti fondamentali che
partecipano al processo di fatturazione, oggetti che sono già stati descritti nella fase di
analisi.
16
Soggett o
(0,N)
Piano tariffario
Cliente
Misura
Fatt ura
Dettaglio di
f at t urazione
(1,N)
Sistema
di misura
Tratt amento
economico
Valorizzazione
Cont rat to
Tarif fa
ScontoPart it e
monet arie
Addebito
(1,1) (0,N)
(0,N) (1,1)
(0,1) (0,N)
(1,1)
(0,N)
(1,N)
(1,1)
(0,1)
(0,N)
(0,N)
Servizio
erogato
Il passo successivo consiste nell’introduzione dello stato del cliente e dell’algoritmo di
fatturazione. Queste due entità sono strettamente collegate a livello operativo, poiché ogni
algoritmo per funzionare correttamente richiede, per ogni coppia “cliente – tariffa”, la
presenza di un insieme di informazioni che devono essere preventivamente memorizzate
nello stato del cliente. L’appendice D definisce con precisione lo stato richiesto da ogni
algoritmo di calcolo per ogni tipo di misura rilevata.
Lo stato riassume la storia del cliente e contribuisce a definirne il trattamento economico;
può essere modificato solamente dal processo di fatturazione ed è strettamente legato al
piano tariffario del cliente e alla struttura dell’impianto di misura.
Valo re
con t rat tu ale
St at o
Co nt rat t uale
Volu m eLim it e
Fat t o re d i
cor rezione
Dat a
cont rat tuale
Il concetto di algoritmo di calcolo serve a disaggregare la tariffa dal metodo di calcolo. Si
definiscono a priori gli algoritmi che possono essere considerati dei veri e propri driver di
17
fatturazione; questi potranno poi essere associati a una o più tariffe e imposte,
caratterizzate da un periodo di validità e da un prezzo.
Soggetto
(0,N)
Piano tariffario
Cliente
Misura
Dettaglio di
fatturazione
(1,N)
Sistema
di misura
Trattamento
economico
Valorizzazione
Contratto
Tariffa
Sconto
Stato
Cliente
Algoritmo
Applicazione
Fattura
Partite
monetarie
Addebito
(1,1)
(0,N)
(1,1)
(1,1) (0,N)
(1,1)(0,N)
(0,N)(0,1)
(1,N)
(1,1)
(0,N)
(1,1)
(0,1)(0,N)
(0,N)
Servizio
erogato
Un successivo raffinamento consiste nell’introduzione degli elementi che caratterizzano
l’evoluzione nel tempo del sistema: il periodo di rilevazione delle misure ed il periodo di
validità tariffaria.
L’elemento fondante dell’impianto tariffario è la distinzione tra tariffa, periodo di
validità e prezzo applicato. Una tariffa è sempre caratterizzata da un periodo di validità,
poiché nel tempo può subire variazioni o addirittura essere annullata. Nel nostro modello
questo aspetto è gestito definendo due oggetti distinti: la tariffa, entità che identifica e
definisce la regola di calcolo ed è associata al cliente, ed il prezzo caratterizzato dagli
attributi utilizzati per la valorizzazione economica della misura da fatturare. La relazione
tra le due entità è il “periodo di validità tariffaria” identificato da una coppia di date che
ne definiscono l’inizio e la fine. La relazione è “uno a n”, poiché gli algoritmi che
suddividono il consumo in fasce applicano prezzi diversi a seconda della fascia di
appartenenza.
Il periodo di rilevazione delle misure definisce l’arco temporale nel corso del quale sono
state raccolte le misure. La relazione con l’entità misura è “uno a n”, poiché a ogni
periodo può essere ricondotta più di una misura.
18
Soggetto
(0,N)
Piano tariffario
Cliente
Misura
Fattura
Dettaglio di
fatturazione
(1,N)
Sistema
di misura
Trattamento
economico
Valorizzazione
Contratto
Tariffa
Stato
Cliente
Periodo di
rilevazione
misure
Sconto Algoritmo
Applicazione
Prezzo
Periodo di
validità
tariffaria
Partite
monetarie
Addebito
(1,1)
(1,1)
(0,N)
(1,N)
(1,1)
(1,1) (1,1)
(1,N)
(1,1) (0,N)
(0,N) (1,1)
(0,1) (0,N)
(1,N)
(1,1)
(1,1)
(0,N)
(0,N)
(0,N) (0,1)
(1,1)
Valorizzazione
Servizio erogato
L’entità misura è una generalizzazione dei diversi tipi di misura che sono stati definiti in
fase di analisi: la misura di grandezze fisiche che variano con continuità oggetto di studio
di questo elaborato, quella d’intervalli temporali che potrebbe essere utilizzata per
sviluppare algoritmi di fatturazione di consumi telefonici ed infine la misura di entità che
variano in modo discreto nel tempo, quali ad esempio una superficie e un numero di
persone.
Misu r a
Misu r a d i en t i t à
che v ar iano in
m o do d iscr et o
Misu r a d i
in t er valli
t em po r ali
Misu r a d i
g r and ezze
f isi ch e ch e
var ian o con
co n t in u it à
Il passo successivo è quello di raffinare il concetto di soggetto, con l’introduzione di tutte
le entità e le relazioni collegate, già identificate nella fase di raccolta dei requisiti. Il
soggetto può essere persona fisica o persona giuridica; può inoltre essere presente in
archivio in qualità di cliente sottoscrittore di un contratto, di istituto di credito o di
destinatario delle fatture emesse a nome di un altro soggetto. Le relazioni di interesse
19
sono il recapito, la residenza, la domiciliazione bancaria ed il recapito dei documenti
presso altro soggetto.
Recapito e residenza coinvolgono l’entità indirizzo che assieme allo stradario ed al
comune, contribuisce a definire in maniera completa l’ambito geografico del soggetto.
Tit olare di
cont rat to
(0,N)
(0,N)
(1,N)
I ndirizzo
Dest inat ario
comunicazioni
I st it uto
di Credito
Soggett o
Recapito
presso t erzi
Domicilio
bancario
Residenza
(0,N)
(0,N)
(0,N)
(0,N)
(0,N)
Persona
giuridica
Persona
f isica
Recapito
Comune
St radario
(1,N)
(1,1)
At t ribut i banca
Un’altra relazione che coinvolge l’entità indirizzo è l’ubicazione della fornitura, che è
legata al cliente, in quanto definisce il luogo fisico nel quale è fornito il servizio.
Cl i e n t e
Ub i c azi on e
f o rn i t u r a
I n d i r i z zo
(1,1) (0,N)
Co m u ne
St r a d a r i o
(1, 1) (1,N)
La fattura è il prodotto dell’applicazione, generata dalle misure, dal piano tariffario e dalle
informazioni presenti nello stato contrattuale. E’ caratterizzata dai dettagli di fatturazione,
calcolati e registrati dall’applicazione nel corso del processo di esame delle misure
attribuite al cliente. E’ anche caratterizzata dallo stato contrattuale presente nel momento
della fatturazione, che deve essere registrato in qualità di attributo della fattura stessa così
come deve essere registrato lo stato anagrafico che può essere considerato come una
fotografia degli attributi del soggetto.
L’entità fattura è altresì caratterizzata dai seguenti attributi: codice univoco
d’identificazione, data di emissione, data di scadenza, data di pagamento, totale
imponibile, totale imposte, totale fattura e totale pagato.
20
Fatt ura
Client e
Stat o
anagraf ico
I ndirizzo
Soggetto
Residenza
Recapito
Recapito
presso t erzi
Domicilio
bancario
Valorizzazione
Contratto
(0,N)
(1,1)
(1,1)
(1,1)
(1,1) (0,N)(1,1)
(1,1) (0,N)
(1,1) (0,N)
(1,1) (0,N)
(1,1)
(0,N)
St at o
anagraf ico
fatt urato
Det t aglio di
fat t urazione
I mposta
f att urat a
Part it e
monetarie
Valorizzazione
Valorizzazione
(1,N)
(1,1)(1,1)
(0,N)(1,1)
Stato
contrat tuale
f att urato
Servizio
erogato
Lo schema finale ottenuto è quindi il risultato di un’attività iterativa, di un processo
graduale, a partire da uno schema base che è stato progressivamente raffinato, arricchito,
trasformato e corretto. Alla base di tutto il processo è sempre stato presente l’obiettivo
primario di dare la massima flessibilità al sistema.
3.2. Ristrutturazione e documentazione degli schemi
ER
I diagrammi Entità – Relazioni devono essere opportunamente documentati. Segue la
documentazione riguardante gli oggetti in esame, in particolare sono approfonditi i
concetti, definiti gli attributi e gli identificatori e specificate le regole ed i vincoli non
esprimibili graficamente.
La documentazione seguente è anche il frutto di una prima ristrutturazione dei diagrammi
originari, ristrutturazione e trasformazione che consegna un prodotto già pronto per la
traduzione nello specifico schema logico che sarà adottato.
In particolare sono state eseguite le seguenti operazioni.
Rimozione delle generalizzazioni. Siccome il modello relazionale non consente di trattare
generalizzazioni, queste sono state rimosse mediante tecniche di accorpamento che
saranno presentate di volta in volta.
21
Scelta degli identificatori. Per ogni entità e relazione viene scelto l’identificatore
principale che fungerà da chiave primaria nell’implementazione del modello logico.
Accorpamento di entità e relazioni. Vengono accorpate entità e relazioni in modo da
ottimizzare il futuro modello logico e anticipare per quanto possibile l’attività di
normalizzazione della base di dati.
22
3.2.1. Entità Soggetto
L’entità Soggetto descrive i dati anagrafici di tutti i soggetti presenti a sistema, siano essi persona fisica o persona giuridica. I soggetti possono
essere memorizzati a diverso titolo. Si tratta di una generalizzazione totale e sovrapposta delle tre entità figlie: titolare del contratto, destinatario
delle comunicazioni ed istituto di credito. La generalizzazione è totale, nel senso che ogni occorrenza dell’entità Soggetto è occorrenza di almeno
una delle entità figlie. E’ sovrapposta nel senso che un’occorrenza dell’entità Soggetto può essere occorrenza di più di un’entità figlia. L’entità
figlia di maggior importanza è il titolare del contratto che descrive il soggetto che ha stipulato uno o più contratti di servizio con la società.
L’entità Destinatario rappresenta il soggetto al quale sono inviati i documenti intestati ad un ulteriore soggetto, ad esempio le fatture.
Questa generalizzazione viene eliminata per accorpamento nella generalizzazione padre; non è necessario nessun attributo che individui la natura
del soggetto, considerato che questo può svolgere più di una funzione contemporaneamente. Saranno le relazioni alle quali il soggetto partecipa a
definire di quale specializzazione si tratta.
Il soggetto è anche generalizzazione totale ed esclusiva delle entità Persona fisica e Persona giuridica, generalizzazione che viene eliminata per
accorpamento nella generalizzazione padre, che può accollarsi gli attributi propri delle figlie. In particolare, nell’entità padre, i due attributi
“Ragione Sociale” e “Cognome Nome” possono collassare nell’attributo Denominazione. Per quanto riguarda i codici identificativi, esistono casi
di soggetti caratterizzati dalla presenza contemporanea della Partita IVA e del codice fiscale; questi due attributi diventano quindi entrambi
attributi dell’entità padre. Inoltre per mantenere la distinzione tra persona fisica e persona giuridica viene aggiunto l’attributo Tipo soggetto.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Soggetto Identificatore Intero No
Tipo Persona Tipologia di persona Testo P: persona fisica; G: persona giuridica No
Codice Classe Anagrafica Codice di classificazione delle anagrafiche.
Utilizzato per realizzare funzionalità di
raggruppamento e sintesi delle
informazioni.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 4
“CodiceClasseAnagrafica”.
No
23
Denominazione Ragione sociale o Cognome e Nome in
funzione del tipo soggetto
Testo No
Codice Fiscale Codice fiscale Testo Si
Partita IVA Partita IVA Testo Si
Flag Fatturazione Flag che definisce se l’anagrafica è
fatturabile
Booleano N: no; S: si No
Data di nascita Solo per persona fisica Data Si
Sesso Solo per persona fisica Testo M: maschile, F: femminile Si
Segue la lista dei valori che sono stati configurati a sistema per l’attributo Codice Classe Anagrafica.
Codice Classe anagrafica Descrizione
1 Ente pubblico
2 Privato
3 Sanità
4 Forze armate
3.2.2. Entità Indirizzo
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Indirizzo Identificatore Intero No
Codice Stradario Codice identificativo della via. Intero Identificatore dell’entità Stradario No
Civico Numero civico. Intero No
Interno Interno. Può essere numerico o testo. Testo Si
24
3.2.3. Entità Comune
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Comune Identificatore Intero No
CAP CAP del comune Intero No
Descrizione Comune Descrizione Testo No
Provincia Identifica la provincia. In genere due
caratteri.
Testo No
Stato Stato di appartenenza del comune Testo No
3.2.4. Relazione Stradario
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Via Identificatore Intero No
Codice Comune Codice del comune di appartenenza della
via
Intero Identificatore dell’entità Comune No
Descrizione Descrizione della Via Testo No
3.2.5. Relazione Residenza
25
La relazione Residenza lega il soggetto all’indirizzo di residenza. E’ strutturata in modo da mantenere lo storico delle residenze del soggetto,
caratterizzate da una data di inizio e una data di fine. Il soggetto deve presentare sempre una relazione di residenza, l’occorrenza di quella attiva è
caratterizzata dalla flag Residenza Attiva = S e dalla data di fine validità impostata a null. L’identificatore della relazione è costituito dai due
attributi Codice Soggetto e Codice Indirizzo Residenza.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Soggetto Identificatore Intero Identificatore dell’entità Soggetto No
Codice Indirizzo Residenza Identificatore Intero Identificatore dell’entità Indirizzo No
Residenza attiva Definisce se si tratta dell’ultima residenza
dell’anagrafica o della residenza attiva.
Booleano S: Residenza attiva; N: non più residente No
Data inizio Data di inizio validità dell’occorrenza Data No
Data fine Data di fine validità dell’occorrenza (di
cambio residenza)
Data Si
3.2.6. Relazione Recapito
La relazione Recapito stabilisce un legame tra il soggetto e l’indirizzo di recapito. E’ strutturata in modo da mantenere lo storico dei recapiti
caratterizzato da una data di inizio e una data di fine. La relazione è opzionale, in caso di assenza del recapito l’applicazione invierà il documento
all’indirizzo del soggetto. L’occorrenza del recapito attivo è caratterizzata dalla flag Recapito Attivo = S e dalla data di fine validità impostata a
null. L’identificatore della relazione è costituito dai due attributi Codice Soggetto e Codice Indirizzo Recapito.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice soggetto Identificatore Intero Identificatore dell’entità Soggetto No
Codice Indirizzo recapito Identificatore Intero Identificatore dell’entità Indirizzo No
26
Recapito attivo Definisce se si tratta dell’ultimo recapito
dell’anagrafica o del recapito attivo.
Booleano S: Recapito attivo; N: recapito non attivo No
Data inizio Data di inizio validità della relazione Data No
Data fine Data di cambio recapito o fine validità della
relazione
Data Si
3.2.7. Relazione Recapito Presso Terzi
La relazione Recapito presso terzi identifica un ulteriore soggetto al quale trasmettere i documenti di fatturazione. Non dovrebbero presentarsi
casi di soggetti con presenza contemporanea di recapito e recapito presso terzi. L’applicativo di fatturazione, nel caso riscontri tale condizione,
invierà il documento al recapito ignorando l’esistenza del recapito presso terzi. L’occorrenza del recapito attivo è caratterizzata dalla flag
Recapito Attivo = S e dalla data fine validità impostata a null. L’identificatore della relazione è costituito dai due attributi Codice Soggetto e
Codice Soggetto Terzi.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice soggetto Identificatore Intero Identificatore dell’entità Soggetto No
Codice soggetto terzi Identificatore Intero Identificatore del soggetto cui recapitare i
documenti (sempre entità soggetto)
No
Recapito attivo Definisce se si tratta di relazione attiva. Booleano S: Relazione attiva; N: non più valida No
Data inizio Data inizio validità relazione Data No
Data fine Data fine validità relazione Data Si
3.2.8. Relazione Domiciliazione Bancaria
27
La relazione Domiciliazione Bancaria implementa la possibilità di attivare il pagamento automatico del documento presso un istituto di credito.
L’occorrenza della relazione attiva è caratterizzata dalla flag Domiciliazione Attiva = S e dalla data fine validità impostata a null. L’identificatore
della relazione è costituito dai due attributi Codice Soggetto e Codice Soggetto Banca.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice soggetto Identificatore Intero Codice identificatore del soggetto No
Codice soggetto banca Identificatore Intero Codice identificatore del soggetto che è
istituto di credito
No
Domiciliazione attiva Definisce se si tratta di relazione attiva. Booleano S: Relazione attiva; N: non più valida No
Data inizio Data di inizio validità Data No
Data fine Data di fine validità Data Si
Codice IBAN Definisce gli estremi del conto corrente del
cliente nel circuito interbancario
Testo No
3.2.9. Entità Banca
Questa entità prende forma dalla ristrutturazione dell’attributo composto che definisce le caratteristiche del soggetto banca. L’occorrenza della
relazione attiva è caratterizzata dalla flag Relazione Attiva = S e dalla data fine validità impostata a null.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Banca Identificatore Intero No
Codice Soggetto Codice del soggetto censito a sistema Intero Identificatore dell’entità Soggetto No
Relazione attiva Definisce se si tratta di relazione attiva. Booleano S: Relazione attiva; N: non più valida No
Codice ABI Coordinate bancarie: codice ABI Intero No
28
Codice CAB Coordinate bancarie: codice CAB Intero No
Data inizio Data inizio validità Data No
Data fine Data fine validità Data Si
3.2.10. Entità Cliente
L’entità cliente rappresenta l’oggetto attorno al quale si sviluppa l’intero sistema. Definisce lo schema dei dati che si riferiscono al cliente ed alla
relazione “contratto”, relazione che quindi è stata assorbita da questa entità.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Cliente Identificatore Intero No
Codice Soggetto Codice del soggetto che è cliente Intero Identificatore dell’entità Soggetto No
Codice Tipo Servizio Definisce il servizio che è fornito al cliente. Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 1
“CodiceTipoServizio”.
No
Codice Tipo Utilizzo Definisce una regola di raggruppamento per
le utenze. Può essere l’uso merceologico o
altre codifiche a piacimento. E’ utilizzabile
per analisi e funzioni di reportistica.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 2
“CodiceTipoUtilizzo”.
No
Identificativo Fornitura Codice identificativo della fornitura. Per il
gas e l’elettricità è il Point of Delivery,
stabilito dall’autorità per l’energia elettrica
ed il Gas; per l’acqua la codifica della presa.
Testo No
Codice Gruppo per Definisce un codice per la selezione delle Intero Il codice deve essere presente nella tabella No
29
fatturazione utenze da fatturare nei processi di
fatturazione di gruppo.
“Descrizione Codici” con Tipo Codice = 3
“CodiceGruppoFatturazione”.
Codice Indirizzo fornitura Identificativo del luogo di fornitura del
servizio, indirizzo che tipicamente coincide
con l’indirizzo di residenza del cliente.
Intero Identificatore dell’entità Indirizzo No
Stato Cliente Identifica lo stato del contratto Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice =
16 “CodiceStatoCliente”.
No
Anno contratto Attributo della relazione Contratto No
Numero contratto Attributo della relazione Contratto No
Data contratto Attributo della relazione Contratto No
Flag Fatturazione Definisce se il cliente è fatturabile Booleano S: si; N: no No
Note tecniche Testo Si
Note amministrative Testo Si
Segue la lista dei valori che sono stati configurati a sistema per gli attributi Codice Tipo Servizio, Codice Stato Cliente, Codice Tipo Utilizzo e
Codice Gruppo Fatturazione.
Codice Tipo Servizio Descrizione
1 Servizio di vendita gas metano
2 Servizio di vendita energia elettrica
3 Servizio di vendita acqua potabile
Codice Stato Cliente Descrizione
1 Cliente Attivo Fatturabile
30
2 Contratto Cessato
3 Cliente in fase di attivazione o in attesa di
documentazione per l’attivazione
4 Cliente moroso
Codice Tipo Utilizzo Descrizione
1 Codice generico
Codice Gruppo Fatt. Descrizione
1 Codice generico
3.2.11. Lo stato contrattuale
3.2.11.1. Entità Valore Contrattuale
Questa entità è una generalizzazione delle entità Fattore di correzione, Limite e Volume. E’ l’algoritmo di calcolo che attribuisce, in base al
codice, il significato operativo delle singole istanze. Ogni algoritmo è caratterizzato da uno stato diverso, e quindi dalla presenza o assenza di
determinate voci contrattuali. In appendice D è specificata la configurazione delle tariffe e degli algoritmi da applicare ad ogni singolo servizio.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Cliente Identificatore Intero Riferimento all’entità cliente No
Codice Tariffa Identificatore Intero Riferimento alla tariffa applicata No
Codice Valore Cliente Identificatore. Codice che identifica il
significato dell’occorrenza dell’entità.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 5
“CodiceValoreContrattuale”
No
31
Valore E’ il valore associato all’entità. Reale No
3.2.11.2. Entità Data Contrattuale
L’entità Data Contrattuale costituisce, assieme all’entità Valore Contrattuale, lo stato del cliente. E’ strettamente legata all’algoritmo di calcolo e
quindi alla tariffa e contiene tutte le occorrenze delle date significative ai fini della fatturazione. In appendice D è specificata la configurazione
delle tariffe e degli algoritmi da applicare ad ogni singolo servizio.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Cliente Identificatore Intero Riferimento all’entità cliente. No
Codice Tariffa Identificatore Intero Riferimento alla tariffa applicata. No
Codice Data Cliente Identificatore. Codice che identifica il
significato dell’occorrenza dell’entità.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 6
“CodiceDataContrattuale”
No
Data E’ la data associata all’entità. Data No
3.2.12. Entità Addebito Fisso
Consente all’applicativo di inserire in fattura degli importi già calcolati da altri sistemi, quali ad esempio bolli, mora su ritardati pagamenti,
cauzioni ed altro.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Addebito Identificatore Intero No
32
Codice Cliente Codice del cliente al quale addebitare /
accreditare la voce.
Intero Riferimento all’entità Cliente No
Descrizione Addebito Descrizione Testo No
Valore addebito Valore da addebitare / accreditare Reale No
Codice IVA da applicare Codice IVA Intero Riferimento all’entità Imposta No
Flag fatturato Specifica se l’addebito è già stato fatturato Booleano S: si N: no No
Flag anomalia Specifica se l’addebito non deve essere
fatturato
Booleano S: da fatturare N: non fatturare No
Sistema di provenienza Definisce il sistema o modulo che ha
generato l’addebito.
No
Codice Fattura Se null elemento non fatturato, altrimenti
identifica la fattura.
Intero Riferimento all’entità Fattura Si
3.2.13. Entità Tariffa
E’ l’entità le cui occorrenze sono le tariffe e le imposte gestite a sistema. Ogni occorrenza è caratterizzata dall’algoritmo di calcolo, un modulo
software sviluppato ad hoc che sviluppa la logica applicativa della tariffa.
L’impianto tariffario è costituito dalle due entità Tariffa e Prezzo e dalla relazione Periodo di validità che definisce il periodo temporale di
validità dei prezzi. Questa struttura permette di gestire le variazioni tariffarie determinate dall’andamento dei prezzi nel tempo.
L’attributo Codice Tipo Misura definisce il tipo di misura che viene agganciato dal processo di fatturazione. Ciò permette di introdurre un livello
di disaccoppiamento tra tariffe e misure; ad una singola misura, identificata da un Codice Tipo Misura, possono essere applicate diverse tariffe.
Esempio concreto è il caso della fatturazione del gas naturale; al consumo si applicano due algoritmi diversi: la tariffa di consumo e l’imposta
erariale. Il Codice tipo misura è stato preventivamente ed opportunamente codificato.
33
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Tariffa Codice univoco che rappresenta la tariffa (o
l’imposta)
Intero Identificatore dell’entità No
Descrizione Tariffa Descrizione della tariffa (o imposta) Testo No
Codice Algoritmo Applicato Definisce il codice dell’algoritmo di
fatturazione che viene applicato.
Intero Riferimento all’entità Algoritmo. No
Codice Voce Fattura Codice della voce creata in fattura. Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice =
10 “CodiceVoceFattura”.
No
Codice Tipo Misura Definisce il tipo di misura che il sistema di
fatturazione ricerca per applicare la tariffa.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 7
“CodiceTipoMisura”.
No
Flag Dettagli Variazione Definisce se l’algoritmo di calcolo deve
creare i dettagli di fatturazione per ogni
variazione del periodo di validità
Booleano S: crea dettagli
N: non crea dettagli
No
Flag Dettagli Prezzo Definisce se l’algoritmo di calcolo deve
creare i dettagli di fatturazione per ogni
fascia di prezzo
Booleano S: crea dettagli
N: non crea dettagli
No
Flag Sconti applicabili Definisce se possono essere applicati degli
sconti.
Booleano S: applicabili N: non applicabili No
Segue la lista dei valori che sono stati configurati a sistema per l’attributo Codice Tipo Misura.
Codice Tipo Misura Descrizione
1 Misura di consumo acqua in Mc
34
2 Misura di consumo gas in Mc
3 Misura di consumo in kWh
4 Misura di tempo in mesi da calcolare come
differenza delle due date che definiscono
l’intervallo di misurazione
5 Misura di tempo in giorni da calcolare come
differenza delle due date che definiscono
l’intervallo di misurazione
6 Misura di superficie in mq
7 Numero intero, numero di persone.
8 Misura di potenza in kW
9 Misura di consumo in kVarh
10 Misura di tempo in ore, minuti e secondi
3.2.14. Relazione Periodo di Validità Tariffaria
E’ la relazione che permette di gestire l’evoluzione nel tempo dei prezzi; ogni tariffa, infatti, pur mantenendo inalterata la logica di calcolo,
subisce nel tempo variazioni nei prezzi. Il periodo di validità è caratterizzato essenzialmente da una data di inizio validità e da una data di fine
validità. Il motore di fatturazione dovrà tener conto delle variazioni tariffarie rendendo compatibili i periodi di validità tariffaria ed i periodi di
rilevazione delle misure da fatturare, eventualmente suddividendo questi ultimi in modo da applicare alle misure il prezzo corretto. Ovviamente i
periodi di validità tariffaria devono avere proprietà di continuità; questa specificità è garantita dai moduli software che gestiscono l’impianto
tariffario in quanto il motore di fatturazione non può operare scelte in merito.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa. No
35
Codice Periodo Validità Identificatore. Identifica univocamente per
ogni tariffa, l’occorrenza della relazione.
Intero No
Data Inizio Validità Data di inizio validità del periodo Data No
Data Fine Validità Data di fine validità del periodo Data Se null allora il periodo non ha limite
temporale superiore.
Si
Codice voce fattura Codice della voce che viene generata dal
sistema di fatturazione
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice =
10 “CodiceVoceFattura”.
No
3.2.15. Entità Prezzo
L’attributo Prezzo Applicato definisce l’importo unitario da applicare alla misura da fatturare. Gli attributi Limite Inferiore e Limite Superiore
introducono la possibilità di fatturare per fasce, cioè di suddividere la misura rilevata su più fasce caratterizzate dall’applicazione di prezzi
diversi. La relazione è “uno a n”, quindi possono esserci per ogni periodo di validità n diverse fasce di prezzo identificate da un Codice Fascia
progressivo con valori da uno a n, e da un intervallo di valori continuo limitato dagli attributi Limite Inferiore e Limite Superiore. Le due
tecniche di suddivisione dei consumi sono quella “a riempimento” che attribuisce tutto il consumo alla fascia n prima di iniziare a riempire la
fascia n+1 e quella “proporzionale” che attribuisce il consumo nelle varie fasce proporzionalmente ai giorni fatturati (gli algoritmi sono descritti
opportunamente nella fase di stesura del codice). Nel caso in cui non si preveda differenziazione di prezzo, allora sarà presente un’unica
occorrenza di questa entità.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Tariffa Identificatore. Intero Riferimento all’entità Tariffa. No
Codice Variazione Tariffaria Identificatore. Intero Riferimento al periodo di validità No
36
tariffario
Codice Fascia Tariffaria Identificatore. Numero progressivo che
determina la fascia.
Intero No
Limite Inferiore Definisce il limite inferiore a partire dal
quale viene applicato il prezzo specificato.
Reale Si
Limite Superiore Definisce il limite superiore di consumo
fino al quale applicare il prezzo.
Reale Si
Prezzo Applicato Definisce il prezzo da applicare alla misura
rilevata.
Reale No
Codice Voce Fattura Codice della voce che viene generata dal
sistema di fatturazione.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice =
10 “CodiceVoceFattura”.
No
3.2.16. Entità Algoritmo
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Algoritmo Identificatore dell’entità. Intero I codici devono essere opportunamente
predefiniti, rappresentano dei driver di
fatturazione.
No
Versione Algoritmo Versione. Serve a dare profondità storica
all’entità. Da utilizzare solo a livello
descrittivo, in quanto versioni diverse dello
stesso algoritmo devono essere identificate
Intero No
37
da codici diversi.
Descrizione Algoritmo Breve descrizione delle funzionalità
dell’algoritmo.
Testo No
Segue la lista degli algoritmi progettati e la relativa codifica. La creazione di nuovi algoritmi di calcolo comporta la scrittura del codice, la
codifica nella tabella Algoritmo, l’associazione alle tariffe e l’implementazione dello stato contrattuale al fine di garantire l’adeguata
infrastruttura al motore di fatturazione.
Codice Algoritmo Descrizione
1 Moltiplicazione della misura rilevata per il prezzo unitario (espresso in €/unità di misura)
utilizzabile per misure che variano con continuità, ad esempio nel calcolo dei corrispettivi per
fognatura e depurazione. Il calcolo deve essere anche rapportato al numero di giorni ai quali è
riferita la misura.
2 Suddivisione del consumo in scaglioni a riempimento, e quindi applicazione di prezzi diversi
per fascia; ad esempio calcolo della quota consumo nella fattura del servizio di fornitura di
gas.
3 Moltiplicazione del periodo di rilevazione (espresso in giorni o mesi) per il prezzo unitario e
per un attributo che rappresenta la misura del servizio, (prezzo espresso in €/gg*unità di
misura); ad esempio la quota potenza del servizio elettrico (prezzo * giorni * potenza
impegnata) oppure calcolo nolo fatture acqua (prezzo * giorni * numero unità abitative). La
costante moltiplicativa può essere unitaria, in tal caso l’algoritmo calcola il semplice prodotto
del numero di giorni rilevati * il prezzo unitario. Da utilizzare per misure che rappresentano
intervalli temporali.
38
4 Suddivisione del consumo in scaglioni proporzionali, e quindi applicazione di prezzi diversi
per fascia; ad esempio calcolo della quota consumo nella fattura del servizio di fornitura di
acqua potabile.
Di seguito è riepilogata l’applicabilità degli algoritmi ai tipi di misura.
Entità fisiche
che variano con
continuità
Intervalli
puntuali di
tempo
Grandezze
discrete
Intervallo
temporale di
rilevazione
Algoritmo01 Si No No No
Algoritmo02 Si No No No
Algoritmo03 No No No Si
Algoritmo04 Si No No No
Sviluppi futuri No Si Si No
In appendice D è specificata la configurazione delle tariffe e degli algoritmi da applicare ad ogni singolo servizio.
3.2.17. Relazione Piano Tariffario
Stabilisce il legame tra la struttura tariffaria ed il cliente determinando le tariffe che saranno applicate alle misure assegnate al cliente. Definisce
anche l’aliquota IVA, che quindi può variare in funzione del cliente e della tariffa.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Contratto Identificatore Intero Riferimento all’entità Contratto. No
Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa. No
39
Codice IVA Codice dell’aliquota IVA da applicare alla
voce di fatturazione generata.
Intero Riferimento all’entità Imposta. No
Flag Fatturare Definisce se la tariffa è applicabile in
fatturazione
Booleano N: no
S: si
No
3.2.18. Relazione Trattamento Economico
Questa relazione implementa la possibilità di applicare degli sconti ad ogni singola tariffa applicata al cliente. E’ caratterizzata dalla presenza di
un periodo di validità e dalla possibilità di sospensione del trattamento di favore. Le date di inizio trattamento e fine trattamento devono sempre
essere presenti, perché non si prevede la gestione di un trattamento illimitato.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Trattamento Identificatore Intero No
Codice Cliente Codice del cliente al quale applicare il tratt. Intero Riferimento all’entità contratto. No
Codice Tariffa Codice della tariffa da scontare Intero Riferimento all’entità tariffa. No
Codice Sconto Codice sconto applicato Intero Riferimento all’entità Sconti No
Data inizio Data inizio periodo di applicazione Data No
Data fine Data fine periodo di applicazione Data No
Limite importo Limite massimo di importo scontabile Reale Si
Limite consumo Limite massimo di consumo scontabile Reale Si
Totale Importo Totale importo già scontato nelle fatture
precedenti.
Reale Si
Totale Consumo Totale consumo già scontato nelle fatture
precedenti.
Reale Si
40
Percentuale massima Percentuale massima dell’importo fatturato
che può essere scontata su ogni singola
fattura.
Reale No
Flag sospensione Definisce se il trattamento è sospeso. Booleano N: no - S: Si No
Flag Attivo Definisce se il trattamento è applicabile (da
applicare in fatturazione).
Booleano N: no - S: Si No
3.2.19. Entità Sconto
L’entità Sconto definisce l’anagrafica degli sconti gestiti dal sistema. Il motore di fatturazione è in grado di applicare su ogni singola tariffa
sconti sugli importi o sui consumi. Si suppone che più forme di sconto non siano cumulabili sulla stessa tariffa.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Sconto Identificatore Intero No
Descrizione Descrizione della forma di sconto Testo No
Codice Tipologia Sconto Definisce se lo sconto va applicato sul
consumo o sul prezzo.
Intero 1: sconto sul consumo
2: sconto sul prezzo
No
Codice Tipologia temporale Definisce il criterio temporale di
applicazione dello sconto.
Intero 1: periodo limitato
2: per una singola fattura
No
3.2.20. Entità Imposta Valore Aggiunto
41
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Imposta Identificatore Intero No
Descrizione Imposta Descrizione Testo No
Valore Imposta Valore Intero No
Segue la lista delle occorrenze dell’entità che devono essere configurate affinché il sistema funzioni correttamente.
Codice Imposta Descrizione Valore
1 IVA 10% 10
2 IVA 20% 20
3 Non imponibile 0
4 Esente 0
3.2.21. Relazione Periodo Di Rilevazione Misure
La relazione Periodo di Rilevazione Misure definisce il periodo nel corso del quale le misure sono state rilevate ed assume un ruolo d’importanza
fondamentale nel processo di fatturazione in quanto disaggrega la misura dai vincoli temporali; il motore di fatturazione dovrà accedere ai
consumi solo attraverso il periodo di rilevazione.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Periodo Temporale Identificatore Intero No
Codice Tipo Misura Definisce il tipo di misura. Il processo di
fatturazione ricerca per ogni tariffa attribuita
al contratto, un solo tipo misura da
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice = 7
“CodiceTipoMisura”.
No
42
associare.
Codice Cliente Cliente al quale sono associate le
rilevazioni.
Intero Riferimento all’entità cliente No
Flag Fatturabile Definisce se l’elemento è fatturabile. Booleano S: si; N: no No
Flag Fatturato Definisce se l’elemento è fatturato Booleano S: si; N: no No
Data Inizio Periodo
Rilevazione
E’ la data che definisce l’inizio del periodo
di rilevazione delle misure associate.
Data No
Data Fine Periodo Rilevazione E’ la data che definisce la fine del periodo
di rilevazione delle misure associate.
Data No
Unità di Misura Definisce l’unità di misura delle rilevazioni
effettuate.
Testo No
Sistema di provenienza Definisce il sistema o modulo di
provenienza.
Testo No
3.2.22. Entità Misura di Consumo
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice misura Identificatore Intero No
Codice Periodo di Rilevazione Riferimento alla data di rilevazione. Intero Identificatore della relazione Periodo di
rilevazione.
No
Misura Valore della misura Reale No
43
Costante moltiplicativa Eventuali costanti moltiplicative del
consumo.
Reale No
Flag Anomalia Specifica se la voce è da fatturare o presenta
anomalie.
Booleano S: Misura valida
A: anomalia, misura da non fatturare
No
Codice Sistema di Misura Codice che identifica l’elemento di misura
per sistemi di fatturazione di consumi
misurati.
Intero Identificatore dell’entità sistema di
misura.
No
Descrizione Per Bolletta Descrizione proveniente dal sistema di
rilevazione che opzionalmente può essere
riportata in fattura.
Testo Si
Tipo Lettura Definisce se la lettura è effettiva o stimata Intero E: Effettiva; A:Stimata No
3.2.23. Entità Misura di intervalli temporali
Questa entità è progettata per consentire lo sviluppo futuro di algoritmi per la fatturazione dei consumi telefonici.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice misura Identificatore Intero No
Codice Periodo di Rilevazione Riferimento alla data di rilevazione. Intero Identificatore della relazione Periodo di
rilevazione.
No
Numero chiamato Identifica il chiamato Intero No
Billing number Soggetto che paga la chiamata Intero No
Data Inizio Conversazione Data di inizio della chiamata Data No
44
Durata conversazione Misura della durata della conversazione. Tempo No
Flag Anomalia Specifica se la voce è da fatturare o presenta
anomalie.
Booleano S: Misura valida
A: anomalia, misura da non fatturare
No
Chiamante Identifica il chiamante intero No
Descrizione Per Bolletta Descrizione proveniente dal sistema di
rilevazione che opzionalmente può essere
riportata in fattura.
Testo Si
3.2.24. Entità Misura di grandezze discrete
Questa entità è progettata per consentire lo sviluppo futuro di algoritmi di fatturazione di tariffe ed imposte calcolate su parametri quali la
superficie, il numero di persone e qualsiasi altra misura rappresentabile da un valore intero.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice misura Identificatore Intero No
Codice Periodo di Rilevazione Riferimento alla data di rilevazione. Intero Identificatore della relazione Periodo di
rilevazione.
No
Misura Discreta Valore della misura. Reale No
Data Inizio Misura Discreta Data di inizio misura Data No
Data Fine Misura Discreta Data di fine misura Data No
Flag Anomalia Specifica se la voce è da fatturare o presenta
anomalie.
Booleano S: Misura valida
A: anomalia, misura da non fatturare
No
Descrizione Per Bolletta Descrizione proveniente dal sistema di
rilevazione che opzionalmente può essere
Testo Si
45
riportata in fattura.
3.2.25. Relazione Sistema di Misura
Descrive l’apparato fisico utilizzato per la rilevazione delle misure, per i servizi che lo prevedono (solo per misure di consumo).
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Sistema di Misura Identificatore Intero No
Codice Cliente Cliente al quale è associato il sistema di
misura.
Intero Riferimento all’entità cliente No
Descrizione Descrizione. Testo No
Marca Marca – non codificata Testo No
Modello Modello – non codificato Testo No
Stato Apparato Definisce lo stato del sistema di misura. Testo I: installato e funzionante.
R: rimosso
C: chiuso
No
Anno di produzione Anno di produzione Intero No
Data di Installazione Data di installazione. Data No
Data di Rimozione Data di rimozione. Data Si
Note tecniche Note tecniche rilevanti. Testo Si
3.2.26. Entità Fattura
46
Identifica la testata della fattura; contiene tutte le informazioni di carattere generale pertinenti al documento, in particolare il codice numerico
progressivo di identificazione, lo stato, e le date di emissione, scadenza e pagamento.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Fattura Identificatore Intero No
Data Emissione Data di emissione Data No
Data Scadenza Data di scadenza Data No
Data Pagamento Data di pagamento Data No
Codice Cliente Cliente al quale viene intestata la fattura. Intero Codice identificativo dell’entità cliente. No
Stato fattura Definisce lo stato della fattura Testo E: emessa, P: pagata, A: annullata, C:
contestata dal cliente, V: pagata
parzialmente.
No
Imponibile totale Reale No
Imposta totale Reale No
Importo totale Reale No
Importo Pagato Reale No
3.2.27. Entità dettaglio di fatturazione
E’ l’oggetto creato dal processo di fatturazione a fronte di ogni misura rilevata ed è caratterizzato da tutti gli attributi che contribuiscono a
definire l’importo fatturato. Deve mantenere la storia della tariffa, del periodo tariffario, del prezzo applicato, dell’eventuale applicazione di
sconti, del codice e del valore dell’imposta, del periodo di rilevazione e della misura. Di particolare importanza sono le due date Data Inizio
Misura Fatturata e Data Fine Misura Fatturata che identificano il periodo temporale fatturato e che possono non combaciare con le date del
periodo di rilevazione poiché questi possono essere suddivisi dal processo di fatturazione per essere ricondotti ai periodi di validità tariffaria.
47
Le occorrenze di questa entità formano una struttura gerarchica a tre livelli; il livello più alto è rappresentato dal totale calcolato su tutto il
periodo di rilevazione, il livello intermedio rappresenta il totale calcolato per ogni variazione tariffaria, il livello più basso rappresenta il totale
calcolato sulla singola fascia tariffaria. Per ogni misura quindi l’applicativo può generare fino a tre occorrenze di elementi di fatturazione in
funzione della configurazione della tariffa.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice dettaglio di
fatturazione
Identificatore Intero No
Codice fattura Fattura alla quale appartiene il dettaglio. Intero Riferimento all’entità Fattura. No
Codice tariffa applicata Tariffa applicata Intero Riferimento all’entità Tariffa. No
Codice periodo validità tari Decorrenza tariffaria Intero Riferimento al periodo tariffario. Si
Codice prezzo applicato Prezzo applicato Intero Riferimento alla fascia tariffaria. Si
Codice Periodo di Rilevazione Periodo di rilevazione della misura. Intero Riferimento al periodo di rilevazione
misure.
No
Codice misura Misura fatturata Intero Riferimento alla misura. Se null allora il
dettaglio si riferisce ad un periodo di
rilevazione senza misura
Si
Codice Voce Fattura Codice della descrizione dell’elemento. Da
significato al valore calcolato.
Intero Il codice deve essere presente nella tabella
“Descrizione Codici” con Tipo Codice =
10 “CodiceVoceFattura”.
No
Livello struttura Definisce il livello di gerarchia nella
struttura.
Intero 1: valore che si riferisce alla fascia di
prezzo
2: valore aggregato per periodo di validità
tariffaria
No
48
3: valore aggregato per tariffa
Importo fatturato Reale No
Quantità fatturata Reale No
Data Inizio Misura fatturata Data No
Data Fine Misura fatturata Data No
Importo scontato Reale No
Quantità scontata Reale No
Importo lordo sconti Importo al lordo degli sconti Reale No
Quantità lordo sconti Quantità al lordo degli sconti Reale No
Codice IVA IVA Applicata Intero Riferimento alla tabella Imposta No
Codice Trattamento Econom. Intero Riferimento alla tabella Trattamento
Economico
IVA calcolata Reale No
Prezzo Prezzo applicato Reale No
Descrizione Per Bolletta Rappresenta il campo descrizione che
opzionalmente può essere riportato
nell’entità fattura per questa voce.
Testo Si
3.2.28. Entità Imposta Fatturata
Definisce per ogni fattura, il riepilogo dell’imposta fatturata suddiviso per aliquota.
Nome Attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Fattura Identificatore Intero Riferimento all’entità Fattura No
Codice Imposta Identificatore Intero Riferimento all’entità Imposta No
Imponibile Imponibile totale Reale No
49
Valore Imposta Aliquota Intero No
Imposta fatturata Valore dell’imposta Reale No
3.2.29. Entità Stato Anagrafico Fatturato
Questa entità è stata progettata per mantenere traccia degli attributi dell’anagrafica che nel tempo sono soggetti a variazione e che non possono
modificarsi nella fattura.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Fattura Identificatore Intero Riferimento all’entità Fattura No
Codice Indirizzo residenza Codice dell’indirizzo di residenza nel
momento di emissione della fattura
Intero Riferimento all’entità Indirizzo No
Codice Indirizzo recapito Codice dell’indirizzo di recapito nel
momento di emissione della fattura
Intero Riferimento all’entità Indirizzo No
Codice anagrafica terzi Codice dell’anagrafica terzi nel momento di
emissione della fattura
Intero Riferimento all’entità Anagrafica No
Codice anagrafica banca Codice dell’anagrafica di domiciliazione
bancaria nel momento di emissione della
fattura
Intero Riferimento all’entità Anagrafica No
3.2.30. Entità Valore Cliente Fatturato
Questa entità ha lo scopo di salvare lo stato contrattuale presente nel momento in cui è esaminato dall’applicativo di fatturazione.
50
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Fattura Identificatore Intero Riferimento all’entità Fattura No
Codice Cliente Identificatore Intero Riferimento all’entità Cliente No
Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa No
Codice Valore Cliente Identificatore. Codice che identifica il
valore contrattuale.
Intero Riferimento al valore contrattuale No
Valore E’ il valore associato all’occorrenza
dell’entità da memorizzare.
Reale No
3.2.31. Entità Data Cliente Fatturata
Questa entità ha lo scopo di salvare lo stato contrattuale presente nel momento in cui è esaminato dall’applicativo di fatturazione.
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Fattura Identificatore Intero Riferimento all’entità Fattura No
Codice Cliente Identificatore Intero Riferimento all’entità Cliente No
Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa No
Codice Data Contrattuale Identificatore. Codice che identifica la data. Intero Riferimento alla data contrattuale No
Data Data da memorizzare. Data No
3.2.32. Entità Errori di Fatturazione
Questa entità viene utilizzata per la gestione delle anomalie che si presentano nel corso del processo di fatturazione; ogni eccezione prodotta
dall’applicativo è registrata.
51
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Codice Errore Identificatore Intero No
Codice Contratto Cliente esaminato dalla procedura di
fatturazione.
Intero Riferimento all’entità Cliente No
Data Errore Data nella quale si è verificato l’errore Data No
Codice Anomalia Codice dell’errore prodotto. Intero No
Classe Errore Tipologia di errore Testo S: errore di sistema
L: errore nella logica applicativa
No
Procedura Generatrice Errore Nome della procedura che ha generato
l’errore
Testo No
Descrizione Descrizione dell’errore Testo No
3.2.33. Entità Descrizione Codici
Nome attributo Descrizione Tipo Vincoli o valori previsti Null
Tipo Codice Identificatore. Intero No
Codice Identificatore. Intero No
Descrizione Descrizione Testo No
Segue la lista dei Tipi di codice che sono codificati a sistema per garantirne il corretto funzionamento.
52
Tipo codice Significato del codice 5 Codice Valore Contrattuale
1 Codice Tipo Servizio 6 Codice Data Contrattuale
2 Codice Tipo Utilizzo 7 Codice Tipo Misura
3 Codice Gruppo Fatturazione 10 Codice Voce Fattura
4 Codice Classe Anagrafica 16 Codice Stato Cliente
53
3.3. Il modello logico della base di dati
L’ingegneria informatica, così come tutte le altre discipline scientifiche, fa largo uso di
modelli, intesi come schemi teorici capaci di rappresentare gli aspetti salienti della realtà
in esame. Uno dei compiti principali di un sistema informatico è quello di raccogliere,
organizzare, elaborare e conservare in modo permanente informazioni riferite all’oggetto
di studio. Risulta quindi particolarmente importante definire a priori un modello dei dati,
cioè un insieme di concetti da utilizzare per organizzare i dati di interesse e descriverne la
struttura in modo che risulti comprensibile ad un elaboratore. Il modello logico adottato
nello sviluppo della base di dati della fatturazione è quello relazionale che si basa su
solidi fondamenti teorici, l’algebra relazionale, ed è caratterizzato dal fatto che tutte le
informazioni sono organizzate in tabelle e tutte le operazioni danno come risultato tabelle.
Fu proposto per la prima volta in una pubblicazione scientifica nel 1970 da E.F. Codd allo
scopo di superare le limitazioni dei modelli gerarchico e reticolare che non consentivano
di realizzare una proprietà fondamentale per le basi di dati come quella dell’indipendenza
dei dati. Il problema dell’indipendenza dei dati è stato per decenni alla base
dell’evoluzione dei moderni DBMS commerciali; lo sviluppo della teoria ha portato
all’architettura standard ANSI/SPARC a tre livelli:
a) lo schema fisico che rappresenta la base di dati per mezzo di strutture fisiche di
memorizzazione;
b) lo schema logico che porta alla descrizione della base dati nel modello logico
dello specifico DBMS;
c) lo schema esterno che permette di organizzare le informazioni in modo utile alle
varie applicazioni che vi operano;
Conseguenza fondamentale dell’articolazione in livelli di astrazione è l’indipendenza dei
dati che permette “ad utenti e applicativi che utilizzano una base di dati di interagire ad un
elevato livello di astrazione” rendendoli indipendenti sia dalla struttura fisica sia da
quella logica. Si ottiene quindi che il livello logico e quello esterno sono indipendenti
dalla realizzazione fisica e che il livello esterno è indipendente da quello logico.
In questa fase progettuale il modello concettuale opportunamente ristrutturato è utilizzato
per generare lo schema logico della base di dati; tutti gli oggetti dello schema Entità –
Relazioni sono quindi tradotti in opportuni oggetti del modello Relazionale, in base ad un
insieme di regole predefinite. Lo schema ER originario è già stato oggetto di una prima
ristrutturazione nel corso della fase di stesura della documentazione. In particolare sono
già state rimosse le generalizzazioni, scelti gli identificatori ed accorpate entità e relazioni
in modo da ottimizzare lo schema logico.
54
Poiché l’unico oggetto utilizzabile nel modello relazionale è la Relazione, tutte le Entità e
le Relationship dello schema ER saranno tradotte in Relazioni, caratterizzate da un
identificatore, da un insieme di attributi e da opportune regole d’integrità referenziale.
Lo schema logico che viene presentato di seguito è anche il risultato di un ulteriore
processo di normalizzazione e quindi può essere considerato qualitativamente corretto e
adatto ad essere utilizzato per la realizzazione dello schema della base di dati.
In questa fase si è posta particolare attenzione alla traduzione delle Relationship, in
particolare si è adottata la seguente norma comportamentale: ogni entità che partecipa alla
relationship viene tradotta in una relazione dello schema logico. La relationship, sempre
che non sia dotata di attributi rilevanti, viene assorbita da una delle entità che vi
partecipano e non viene tradotta nello schema logico.
3.4. Traduzione dallo schema concettuale allo schema
logico relazionale
La seguente tabella definisce la corrispondenza tra i concetti dello schema concettuale e
quelli dello schema logico. E’ integrata con l’indicazione degli identificatori e della
tecnica di codifica degli attributi.
Modello E/R Tipo di
oggetto
(E/R)
Relazione (modello
logico)
Prefisso
codifica
attributi
Identificatore
Soggetto E Anagrafica Ana_ Ana_Codice
Indirizzo E Indirizzo Ind_ Ind_Codice
Comune E Comune Com_ Com_Codice
Stradario R Stradario Str_ Str_Codice
Residenza R Residenza Res_ Res_CodiceAnagrafic
a+Res_CodiceIndRes
idenza
Recapito R Recapito Rec_ Rec_CodiceAnagrafic
a+Rec_CodiceIndRec
apito
Recapito presso
terzi
R Recapito Terzi Rtz_ Rtz_CodiceAnagrafic
a+Rtz_CodiceTerzi
Domiciliazione
Bancaria
R DomiciliazioneBancaria Dmb_ Dmb_CodiceAnagrafi
ca+Dmb_CodiceAna
Banca
55
Banca E Banca Ban_ Ban_Codice
Cliente E Cliente Cli_ Cli_Codice
Valore
contrattuale
E Valore Cliente Vlc_ Vlc_CodiceCliente+
Vlc_CodiceTariffa+
Vlc_CodiceValore
Data
contrattuale
E Data Cliente Dta_ Dta_CodiceCliente+
Dta_CodiceTariffa +
DtaCodiceData
Addebito fisso E Addebito Add_ Add_Codice
Tariffa E Tariffa Tar_ Tar_Codice
Periodo di
validità
tariffaria
R Validità Tariffa Pvt_ Pvt_CodicePeriodoV
alidita
Prezzo E Prezzo Prz_ Prz_CodiceTariffa+P
rz_CodiceVarTariffa
+Prz_CodiceFasciaTa
riffa
Algoritmo E Algoritmo Alg_ Alg_Codice
Piano tariffario R Piano Tariffario Pta_ Pta_CodiceCliente+P
ta_CodiceTariffa
Trattamento
economico
R TrattamentoEconomico Tra_ Tra_Codice
Sconto E Sconto Sco_ Sco_Codice
Imposta valore
aggiunto
E Imposta Iva_ Iva_Codice
Periodo di
rilevazione
misure
R PeriodoRilevazione Prl_ Prl_Codice
Misura di
consumo
E MisuraConsumo Mco_ Mco_Codice
Misura di
intervalli
temporali
E MisuraTempo Mte_ Mte_Codice
Misura di
grandezze
discrete
E MisuraDiscreta Mdi_ Mdi_Codice
Sistema di
misura
R ApparatoMisura Apm_ Apm_Codice
Fattura E Fattura Fat_ Fat_Codice
Imposta
fatturata
E ImpostaFatt Ifa_ Ifa_CodiceFattura+If
a_CodiceImposta
Dettaglio di E DettaglioFatt Det_ Det_Codice
56
fatturazione
Stato
anagrafico
fatturato
E StatoAnaFatt Saf_ Saf_CodiceFattura
Valore cliente
fatturato
E ValoreFatt Vcf_ Vcf_CodiceFattura+
Vcf_CodiceCliente+
Vcf_CodiceTariffa+
Vcf_CodiceValore
Data cliente
fatturata
E DataFatt Dfa_ Dfa_CodiceFattura+
Dfa_CodiceCliente+
Dfa_CodiceTariffa+
Dfa_CodiceData
Errori di
fatturazione
E ErroriFatturazione Err_ Err_CodiceErrore
Descrizione
codici
E Codici Cod_ Cod_TipoCodice+
Cod_Codice
L’appendice C contiene la descrizione precisa di tutte le tabelle implementate nel Data
Base.
3.5. Tavola dei volumi e tavola degli accessi
La seguente tabella definisce il volume misurato in numero di occorrenze previste a
regime per ogni tabella ed il numero medio di accessi che l’applicazione effettua nella
creazione di una fattura.
Le due tavole si riferiscono ad un’azienda che opera in un mercato caratterizzato dai
seguenti indicatori:
• 10.000 clienti;
• quattro servizi e quindi in totale 40.000 contratti;
• fatturazioni a periodicità bimestrale, quindi sei fatture per contratto all’anno per
un totale di 240.000 fatture;
• l’applicazione in media di tre tariffe a fattura (consumo, quota fissa e imposta);
• variazioni tariffarie trimestrali per imposta e consumo e annuali per la quota
fissa; in totale per ogni cliente nove variazioni tariffarie l’anno;
• per ogni fattura un totale di nove fasce di prezzo;
• uno sconto applicato almeno una volta in fattura, quindi 240.000 sconti;
57
I volumi si riferiscono quindi ad un totale di 40.000 contratti, valore costante negli anni, e
ad un anno di fatturazione che corrisponde a 240.000 fatture emesse.
Modello E/R Tipo di
oggetto
(E/R)
Relazione (modello
logico)
Volume Accessi (per la
generazione di una
fattura)
Soggetto E Anagrafica 10.000 3 (L)
Indirizzo E Indirizzo 40.000 3 (L)
Comune E Comune 100 4 (L)
Stradario R Stradario 1.000 4(L)
Residenza R Residenza 10.000 1 (L)
Recapito R Recapito 1.000 1 (L)
Recapito presso
terzi
R Recapito Terzi 500 1 (L)
Domiciliazione
Bancaria
R DomiciliazioneBancaria 5.000 1 (L)
Banca E Banca 100 1 (L)
Cliente E Cliente 40.000 1 (L)
Valore
contrattuale
E Valore Cliente 480.000 5 (L) – 5 (S)
Data
contrattuale
E Data Cliente 480.000 5 (L) – 5 (S)
Addebito fisso E Addebito 320.000 3 (S)
Tariffa E Tariffa 100 3 (L)
Periodo di
validità
tariffaria
R Validità Tariffa 400 6 (L)
Prezzo E Prezzo 1500 10 (L)
Algoritmo E Algoritmo 6 3 (L)
Piano tariffario R Piano Tariffario 40.000 1 (L)
Trattamento
economico
R TrattamentoEconomico 40.000 3 (L) – 3 (S)
Sconto E Sconto 100 3 (L)
Imposta valore
aggiunto
E Imposta 4 4 (L)
Periodo di
rilevazione
misure
R PeriodoRilevazione 480.000 2 (L) - 2 (S)
Misura di
consumo
E MisuraConsumo 180.000 1 (L)
Misura di
intervalli
temporali
E MisuraTempo 4.000.000 50 (L)
58
Misura di
grandezze
discrete
E MisuraDiscreta 20.000 2 (L)
Sistema di
misura
R ApparatoMisura 30.000 1 (L)
Fattura E Fattura 240.000 4 (S)
Imposta
fatturata
E ImpostaFatt 960.000 3 (S)
Dettaglio di
fatturazione
E DettaglioFatt 4.560.000 19 (S)
Stato
anagrafico
fatturato
E StatoAnaFatt 240.000 1 (S)
Valore cliente
fatturato
E ValoreFatt 2.400.000 5 (S)
Data cliente
fatturata
E DataFatt 2.400.000 5 (S)
Errori di
fatturazione
E ErroriFatturazione 0 0
Descrizione
codici
E Codici 50 10 (L)
59
4. Realizzazione del prodotto
4.1. Contesto Tecnologico
L’applicazione è stata sviluppata utilizzando il Data Base Management System Microsoft
SQL Server 2005 Express su piattaforma Microsoft (sistemi operativi Windows XP,
Windows Vista o Windows 2000 - 2003 Server). Gli unici vincoli Hardware sono
rappresentati dai requisiti minimi di installazione di SQL Server Express. Per il Porting in
produzione è necessaria l’adozione di una versione di SQL Server completa di licenza
d’uso (e quindi senza limiti nelle dimensioni del data base) e sono da valutare le
caratteristiche minime del Server che deve ospitare la base di dati, caratteristiche che sono
determinate essenzialmente dal numero di clienti e fatture da gestire.
4.2. Lo schema del data base
Lo schema logico del database è costituito da 34 tabelle. Di seguito sono rappresentati i
diagrammi delle principali macro aree nelle quali è strutturato l’archivio: l’anagrafica dei
soggetti, il cliente, la fattura, la tariffa e il dettaglio di fatturazione. L’esposizione termina
con le due tabelle di servizio, “Codici” e “Errori Fatturazione” e con il diagramma
completo dell’archivio, che per ragioni di semplicità riporta solamente i campi chiave
delle relazioni.
L’appendice C inoltre contiene la definizione precisa di tutte le tabelle che sono state
implementate a sistema.
60
Di seguito è rappresentato il diagramma riguardante l’anagrafica dei soggetti e le tabelle
correlate:
Banca
Ban_Codice
Ban_CodiceAnagrafica
Ban_BancaAttiva
Ban_CodiceABI
Ban_CodiceCAB
Ban_DataInizio
Ban_DataFine
FK_Banca_Anagrafica
Cliente
Cli_Codice
Cli_CodiceAnagrafica
Cli_CodiceTipoServizio
Cli_CodiceTipoUtilizzo
Cli_CodiceGruppoFatt
Cli_CodiceFornitura
Cli_CodiceStatoCliente
Cli_AnnoContratto
Cli_NumeroContratto
Cli_DataContratto
Cli_IdFornitura
Cli_ClienteFatturabile
Cli_NoteTecniche
Cli_NoteAmministrative
FK_Cliente_Anagrafica
Comune
Com_Codice
Com_Comune
Com_CAP
Com_Provincia
Com_Stato
DomiciliazioneBancaria
Dmb_CodiceAnagrafica
Dmb_CodiceAnaBanca
Dmb_ContoCorrente
Dmb_CodieceIBAN
Dmb_DomiciliazioneAttiva
Dmb_DataInizio
Dmb_DataFine
FK_DomiciliazioneBancaria_Anagrafica
FK_DomiciliazioneBancaria_AnaBanca
I ndirizzo
Ind_Codice
Ind_CodiceStradario
Ind_Civico
Ind_Interno
FK_Cliente_Indirizzo
Recapito
Rec_CodiceAnagrafica
Rec_CodiceIndRecapito
Rec_recapitoAttivo
Rec_DataInizio
Rec_DataFine
FK_Recapito_Anagrafica
FK_Recapito_Indirizzo
RecapitoTerzi
Rtz_CodiceAnagrafica
Rtz_CodiceTerzi
Rtz_RecapitoAttiv
Rtz_DataInizio
Rtz_DataFine
FK_RecapitoTerzi_Anagrafica
FK_RecapitoTerzi_AnagraficaTerzi
Residenza
Res_CodiceAnagrafica
Res_codiceIndResidenza
Res_ResidenzaAttiva
Res_DataInizio
Res_DataFine
FK_Residenza_Anagrafica
FK_Residenza_Indirizzo
Stradario
Str_Codice
Str_CodiceComune
Str_Descrizione
FK_Stradario_Comune FK_Indirizzo_Stradario
Anagrafica
Ana_Codice
Ana_TipoPersona
Ana_CodiceClasse
Ana_Demominazione
Ana_codiceFiscale
Ana_PartitaIVA
Ana_FlagFatturazione
Ana_DataNascita
Ana_Sesso
61
Di seguito è rappresentato il diagramma riguardante l’entità cliente e le tabelle ad esso
correlate:
Addebito
Add_codice
Add_CodiceCliente
Add_Descrizione
Add_Valore
Add_codiceIVA
Add_AddebitoFatturato
Add_AddebitoDaFatturare
Add_SistemaProvenienza
Add_CodiceFattura
Anagrafica
Ana_Codice
Ana_TipoPersona
Ana_CodiceClasse
Ana_Demominazione
Ana_codiceFiscale
Ana_PartitaIVA
Ana_FlagFatturazione
Ana_DataNascita
Ana_Sesso
ApparatoMisur a
Apm_Codice
Apm_CodiceCliente
Apm_Descrizione
Apm_Marca
Apm_Modello
Apm_AnnoProduzione
Apm_StatoApparato
Apm_DataInstallazione
Apm_DataRimozione
Apm_NoteTecniche
Cliente
Cli_Codice
Cli_CodiceAnagrafica
Cli_CodiceTipoServizio
Cli_CodiceTipoUtilizzo
Cli_CodiceGruppoFatt
Cli_CodiceFornitura
Cli_CodiceStatoCliente
Cli_AnnoContratto
Cli_NumeroContratto
Cli_DataContratto
Cli_IdFornitura
Cli_ClienteFatturabile
Cli_NoteTecniche
Cli_NoteAmministrative
FK_Cliente_Anagrafica
FK_ApparatoMisura_Cliente
FK_Addebito_cliente
DataCliente
Dta_CodiceCliente
Dta_CodiceTariffa
Dta_CodiceData
Dta_Data
FK_DataCliente_Cliente
Fattura
Fat_Codice
Fat_DataEmissione
Fat_DataScadenza
Fat_DataPagamento
Fat_CodiceCliente
Fat_TotaleImponibile
Fat_TotaleImposta
Fat_TotaleFattura
Fat_TotalePagato
Fat_StatoFattura
FK_Fattura_Cliente
MisuraConsumo
Mco_Codice
Mco_PeriodoRilevazione
Mco_Misura
Mco_Anomalia
Mco_ApparatoMisura
Mco_Descrizione
Mco_CostanteMoltiplicativa
Mco_TipoLettura
FK_MisuraConsumo_Apparato
MisuraDiscr eta
Mdi_Codice
Mdi_PeriodoRilevazione
Mdi_Misura
Mdi_DataInizioMisura
Mdi_DataFineMisura
Mdi_Anomalia
Mdi_Descrizione
PeriodoRilevazione
Prl_Codice
Prl_CodiceCliente
Prl_CodiceTipoMisura
Prl_Fatturabile
Prl_DataInizioRilevazione
Prl_DataFineRilevazione
Prl_SistemaProvenienza
Prl_UnitàMisura
Prl_Fatturato
FK_MisuraConsumo_PeriodoRilevazione
FK_PeriodoRilevazione_Cliente
FK_MisuraDiscreta_PeriodoRilevazione
PianoTar iffario
Pta_CodiceCliente
Pta_CodiceTariffa
Pta_CodiceIVA
Pta_TariffaDaFatt
FK_PianoTariffario_Cliente
Sconto
Sco_Codice
Sco_Descrizione
Sco_TipoSconto
Sco_TipoScadenza
Tariffa
Tar_Codice
Tar_Descrizione
Tar_CodiceAlgoritmo
Tar_CodiceTipoMisura
Tar_CodiceVoceFattura
Tar_CreadettVariazione
Tar_CreaDettFascia
Tar_applicaSconti
FK_PianoTariffario_Tariffa
FK_DataCliente_Tariffa
Tr attamentoEconomico
Tra_Codice
Tra_CodiceCliente
Tra_CodiceTariffa
Tra_CodiceSconto
Tra_ScontoApplicabile
Tra_DataInizio
Tra_DataFine
Tra_ScontoSospeso
Tra_LimiteImporto
Tra_LimiteConsumo
Tra_ImportoScontato
Tra_ConsumoScontato
Tra_Percentuale
FK_TrattamentoEconomico_Tariffa
FK_TrattamentoEconomico_Cliente
FK_TrattamentoEconomico_Sconto
ValoreCliente
Vlc_CodiceCliente
Vlc_CodiceTariffa
Vlc_CodiceValore
Vlc_Valore
FK_ValoreCliente_Tariffa
FK_ValoreCliente_Cliente
MisuraTempo
Mte_Codice
Mte_PeriodoRilevazione
Mte_Chiamato
Mte_BillingNumber
Mte_DataInizioConversazione
Mte_DurataConversazione
Mte_Anomalia
Mte_Chiamante
Mte_Descrizione
FK_MisuraTempo_PeriodoRilevazione
62
Di seguito è rappresentato il diagramma riguardante le tabelle che costituiscono
l’articolazione tariffaria:
Algoritmo
Alg_Codice
Alg_Descrizione
Alg_Versione
PianoTariffario
Pta_CodiceCliente
Pta_CodiceTariffa
Pta_CodiceIVA
Pta_TariffaDaFatt
FK_Tariffa_Algoritmo FK_PianoTariffario_Tariffa
TrattamentoEconomico
Tra_Codice
Tra_CodiceCliente
Tra_CodiceTariffa
Tra_CodiceSconto
Tra_ScontoApplicabile
Tra_DataInizio
Tra_DataFine
Tra_ScontoSospeso
Tra_LimiteImporto
Tra_LimiteConsumo
Tra_ImportoScontato
Tra_ConsumoScontato
Tra_Percentuale
FK_TrattamentoEconomico_Tariffa
ValiditaTariffa
Pvt_CodiceTariffa
Pvt_CodicePeriodoValidità
Pvt_DataInizioValidità
Pvt_DataFineValidità
Pvt_CodiceVoceFattura
FK_ValiditaTariffa_Tariffa
FK_PianoTariffario_Cliente
FK_TrattamentoEconomico_Cliente
Prezzo
Prz_CodiceTariffa
Prz_CodiceVarTariffa
Prz_CodiceFasciaTariffaria
Prz_LimiteInferiore
Prz_LimiteSuperiore
Prz_Prezzo
Prz_VoceFattura
FK_Prezzo_Tariffa
FK_Prezzo_VarTariffa
I mposta
Iva_Codice
Iva_Descrizione
Iva_Valore
FK_PianoTariffario_Imposta
Tariffa
Tar_Codice
Tar_Descrizione
Tar_CodiceAlgoritmo
Tar_CodiceTipoMisura
Tar_CodiceVoceFattura
Tar_CreadettVariazione
Tar_CreaDettFascia
Tar_applicaSconti
Cliente
Cli_Codice
Cli_CodiceAnagrafica
Cli_CodiceTipoServizio
Cli_CodiceTipoUtilizzo
Cli_CodiceGruppoFatt
Cli_CodiceFornitura
Cli_CodiceStatoCliente
Cli_AnnoContratto
Cli_NumeroContratto
Cli_DataContratto
Cli_IdFornitura
Cli_ClienteFatturabile
Cli_NoteTecniche
Cli_NoteAmministrative
Sconto
Sco_Codice
Sco_Descrizione
Sco_TipoSconto
Sco_TipoScadenza
FK_TrattamentoEconomico_Sconto
63
Di seguito è rappresentato il diagramma riguardante le tabelle che contribuiscono a
formare la fattura:
ValoreFatt
Vcf_CodiceFattura
Vcf_CodiceCliente
Vcf_CodiceValore
Vcf_Valore
StatoAnaFatt
Saf_CodiceFattura
Saf_CodiceResidenza
Saf_CodiceRecapito
Saf_CodiceAnaTerzi
Saf_CodiceDomiciliazione
Saf_CodiceAnagrafica
I mpostaFatt
Ifa_CodiceFattura
Ifa_CodiceImposta
Ifa_Imponibile
Ifa_Imposta
Ifa_AliquotaImposta
Fattura
Fat_Codice
Fat_DataEmissione
Fat_DataScadenza
Fat_DataPagamento
Fat_CodiceCliente
Fat_TotaleImponibile
Fat_TotaleImposta
Fat_TotaleFattura
Fat_TotalePagato
Fat_StatoFattura
FK_ValoreFatt_Fattura
FK_ImpostaFatt_Fattura
FK_StatoAnaFatt_Fattura
DettaglioFatt
Det_Codice
Det_CodiceFattura
Det_CodiceTariffa
Det_CodiceValiditàTariffa
Det_CodicePrezzo
Det_CodicePeriodoRilev
Det_CodiceMisura
Det_CodiceVoce
Det_LivelloStruttura
Det_ImportoFatt
Det_QtaFatt
Det_DataIniFatt
Det_DataFinFatt
Det_ImportoScontato
Det_QtaScontata
Det_CodiceImposta
Det_ImpostaFatt
Det_Descrizione
Det_Prezzo
FK_DettaglioFattFattura
DataFatt
Dfa_CodiceFattura
Dfa_CodiceCliente
Dfa_CodiceData
Dfa_Data
FK_DataFatt_Fattura
Addebito
Add_codice
Add_CodiceCliente
Add_Descrizione
Add_Valore
Add_codiceIVA
Add_AddebitoFatturato
Add_AddebitoDaFatturare
Add_SistemaProvenienza
Add_CodiceFattura
Cliente
Cli_Codice
Cli_CodiceAnagrafica
Cli_CodiceTipoServizio
Cli_CodiceTipoUtilizzo
Cli_CodiceGruppoFatt
Cli_CodiceFornitura
Cli_CodiceStatoCliente
Cli_AnnoContratto
Cli_NumeroContratto
Cli_DataContratto
Cli_IdFornitura
Cli_ClienteFatturabile
Cli_NoteTecniche
Cli_NoteAmministrative
FK_DataFatt_Cliente
FK_ValoreFatt_Cliente
FK_Fattura_Cliente
FK_Addebito_cliente
64
Di seguito è rappresentato il diagramma riguardante il dettaglio di fatturazione e le tabelle
ad esso correlatele:
DettaglioFatt
Det_Codice
Det_CodiceFattura
Det_CodiceTariffa
Det_CodiceValiditàTariffa
Det_CodicePrezzo
Det_CodicePeriodoRilev
Det_CodiceMisura
Det_CodiceVoce
Det_LivelloStruttura
Det_ImportoFatt
Det_QtaFatt
Det_DataIniFatt
Det_DataFinFatt
Det_ImportoScontato
Det_QtaScontata
Det_CodiceImposta
Det_ImpostaFatt
Det_Descrizione
Det_Prezzo
PeriodoRilevazione
Prl_Codice
Prl_CodiceCliente
Prl_CodiceTipoMisura
Prl_Fatturabile
Prl_DataInizioRilevazione
Prl_DataFineRilevazione
Prl_SistemaProvenienza
Prl_UnitàMisura
Prl_Fatturato
I mposta
Iva_Codice
Iva_Descrizione
Iva_Valore
Fattura
Fat_Codice
Fat_DataEmissione
Fat_DataScadenza
Fat_DataPagamento
Fat_CodiceCliente
Fat_TotaleImponibile
Fat_TotaleImposta
Fat_TotaleFattura
Fat_TotalePagato
Fat_StatoFattura
Prezzo
Prz_CodiceTariffa
Prz_CodiceVarTariffa
Prz_CodiceFasciaTariffaria
Prz_LimiteInferiore
Prz_LimiteSuperiore
Prz_Prezzo
Prz_VoceFattura
Tariffa
Tar_Codice
Tar_Descrizione
Tar_CodiceAlgoritmo
Tar_CodiceTipoMisura
Tar_CodiceVoceFattura
Tar_CreadettVariazione
Tar_CreaDettFascia
Tar_applicaSconti
ValiditaTariffa
Pvt_CodiceTariffa
Pvt_CodicePeriodoValidità
Pvt_DataInizioValidità
Pvt_DataFineValidità
Pvt_CodiceVoceFattura
FK_ValiditaTariffa_Tariffa
FK_Prezzo_VarTariffa
FK_DettaglioFatt_Validità
FK_Prezzo_Tariffa
FK_DettaglioFatt_Tariffa
FK_DettaglioFatt_PeriodoRilev
FK_DettaglioFatt_imposta
FK_DettaglioFattFattura
FK_DettaglioFatt_Prezzo
Le tabelle Codici ed ErroriFatturazione sono tabelle di servizio, utilizzate dall’applicativo
per riportare errori avvenuti nel corso dell’elaborazione e per recuperare le descrizioni dei
codici utilizzati.
Codici
Cod_TipoCodice
Cod_Codice
Cod_Descrizione
ErroriFatturazione
Err_CodiceErrore
Err_CodiceContratto
Err_DataErrore
Err_CodiceAnomalia
Err_Classe
Err_Procedura
Err_Descrizione
65
Di seguito è rappresentato il diagramma completo della base di dati. Per semplicità di
esposizione sono visualizzati solo i campi chiave e quelli che contribuiscono a definire
l’integrità referenziale del data base.
Addebito
Add_codice
Add_CodiceCliente
Add_codiceIVA
Algoritmo
Alg_Codice
Anagrafica
Ana_Codice
ApparatoMisura
Apm_Codice
Apm_CodiceCliente
Banca
Ban_Codice
Ban_CodiceAnagrafica
Cliente
Cli_Codice
Cli_CodiceAnagrafica
Cli_CodiceFornitura
Codici
Cod_TipoCodice
Cod_Codice
Comune
Com_Codice
DataCliente
Dta_CodiceCliente
Dta_CodiceTariffa
Dta_CodiceData
DataFatt
Dfa_CodiceFattura
Dfa_CodiceCliente
Dfa_CodiceTariffa
Dfa_CodiceData
DettaglioFat t
Det_Codice
Det_CodiceFattura
Det_CodiceTariffa
Det_CodiceValiditàTariffa
Det_CodicePrezzo
Det_CodicePeriodoRilev
Det_CodiceImposta
DomiciliazioneBancaria
Dmb_CodiceAnagrafica
Dmb_CodiceAnaBanca
ErroriFatturazione
Err_CodiceErrore
Fattura
Fat_Codice
Fat_CodiceCliente
I mposta
Iva_Codice
I mpostaFatt
Ifa_CodiceFattura
Ifa_CodiceImposta
Ifa_Imponibile
Ifa_Imposta
Ifa_AliquotaImposta
I ndirizzo
Ind_Codice
Ind_CodiceStradario
Ind_Civico
Ind_Interno
MisuraConsumo
Mco_Codice
Mco_PeriodoRilevazione
Mco_ApparatoMisura
MisuraDiscreta
Mdi_Codice
Mdi_PeriodoRilevazione
MisuraTelefonica
Mte_Codice
Mte_PeriodoRilevazione
PeriodoRilevazione
Prl_Codice
Prl_CodiceCliente
PianoTariffario
Pta_CodiceCliente
Pta_CodiceTariffa
Pta_CodiceIVA
Pta_TariffaDaFatt
Prezzo
Prz_CodiceTariffa
Prz_CodiceVarTariffa
Prz_CodiceFasciaTariff...
Recapito
Rec_CodiceAnagrafica
Rec_CodiceIndRecapito
Rec_recapitoAttivo
Rec_DataInizio
Rec_DataFine
RecapitoTerzi
Rtz_CodiceAnagrafica
Rtz_CodiceTerzi
Residenza
Res_CodiceAnagrafica
Res_codiceIndResidenza
Res_ResidenzaAttiva
Res_DataInizio
Res_DataFine
Sconto
Sco_Codice
StatoAnaFatt
Saf_CodiceFattura
Saf_CodiceResidenza
Saf_CodiceRecapito
Saf_CodiceAnaTerzi
Saf_CodiceDomiciliazione
Saf_CodiceAnagrafica
Stradario
Str_Codice
Str_CodiceComune
Str_Descrizione
Tariffa
Tar_Codice
Tar_CodiceAlgoritmo
TrattamentoEconomico
Tra_Codice
Tra_CodiceCliente
Tra_CodiceTariffa
Tra_CodiceSconto
ValiditaTariffa
Pvt_CodiceTariffa
Pvt_CodicePeriodoVali...
ValoreCliente
Vlc_CodiceCliente
Vlc_CodiceTariffa
Vlc_CodiceValore
Vlc_Valore
ValoreFatt
Vcf_CodiceFattura
Vcf_CodiceCliente
Vcf_CodiceTariffa
Vcf_CodiceValore
Vcf_Valore
66
4.3. Lo schema esterno della base di dati
Lo schema esterno del data base permette di realizzare un ulteriore livello d’indipendenza
dei dati; è costituito da viste generate dalle tabelle dello schema logico ed è utilizzato
direttamente dalle applicazioni che elaborano il dato. Alcune viste sono utilizzate dal
processo di fatturazione, altre sono indispensabili per eseguire controlli sui dati inseriti e
per la visualizzazione della fattura e degli attributi del cliente.
Di seguito sono elencate e descritte le viste sviluppate:
Vw_ClienteCompleto
Utilizzata dal processo di fatturazione per estrarre le informazioni relative al soggetto, al
contratto, al cliente ed alla residenza.
E’ costituita dalle tabelle Cliente, Anagrafica, Residenza, Indirizzo, Stradario e Comune.
Vw_DomCompleta
Utilizzata dal processo di fatturazione per estrarre l’eventuale domiciliazione bancaria e
gli attributi dell’istituto di credito.
E’ costituita dalle tabelle Anagrafica (inclusa due volte, in qualità di anagrafica del cliente
ed anagrafica della banca), Banca e Domiciliazione Bancaria.
Vw_IndirizzoCompleto
Utilizzata per estrarre l’indirizzo completo e per realizzare query di controllo sugli
indirizzi inseriti in archivio. E’ costituita dalle tabelle Indirizzo, Stradario e Comune.
Vw_MisureReport
Utilizzata dagli algoritmi di calcolo che operano sulle misure di consumi. E’ costituita
dalle tabelle PeriodoRilevazione, Tariffa e Misura Consumo.
Vw_MisureRilevate
Utilizzata dal programma di fatturazione per associare le misure rilevate da fatturare alle
relative tariffe di fatturazione. L’associazione è effettuata utilizzando il campo
CodiceTipoMisura. E’ costituita dalle tabelle Tariffa, Piano Tariffario, Cliente, Algoritmo
e Periodorilevazione.
Vw_ScontiApplicati
67
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi
Elaborato Tesi

Mais conteúdo relacionado

Semelhante a Elaborato Tesi

Premio forumpa2017 PortalePA - IPER
Premio forumpa2017 PortalePA - IPERPremio forumpa2017 PortalePA - IPER
Premio forumpa2017 PortalePA - IPERManuela Ridenti
 
PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...
PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...
PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...PMexpo
 
Regolazione della trasparenza
Regolazione della trasparenzaRegolazione della trasparenza
Regolazione della trasparenzaARERA
 
Fumagalli - Service Management - 13 aprile 2011
Fumagalli - Service Management - 13 aprile 2011Fumagalli - Service Management - 13 aprile 2011
Fumagalli - Service Management - 13 aprile 2011Lucio Fumagalli
 
Presentazione preventivi e contratti 25032014 associazione-commercialisti-V...
Presentazione preventivi e contratti 25032014   associazione-commercialisti-V...Presentazione preventivi e contratti 25032014   associazione-commercialisti-V...
Presentazione preventivi e contratti 25032014 associazione-commercialisti-V...Andrea Dal Ponte
 
Project Mep: experimental dissertation
Project Mep: experimental dissertationProject Mep: experimental dissertation
Project Mep: experimental dissertationsalvatore_bruzzese
 
Service Management
Service ManagementService Management
Service Managementlukic83
 
La validazione dei consumi energetici nella Pubblica Amministrazione
La validazione dei consumi energetici nella Pubblica Amministrazione La validazione dei consumi energetici nella Pubblica Amministrazione
La validazione dei consumi energetici nella Pubblica Amministrazione RTC SPA
 
Anac digitalizzazione 27 maggio
Anac digitalizzazione 27 maggioAnac digitalizzazione 27 maggio
Anac digitalizzazione 27 maggioCostanza Ignazzi
 
Controllo di gestione per call center
Controllo di gestione per call centerControllo di gestione per call center
Controllo di gestione per call centerFrancesco Primativo
 
Tesi Giuseppe Chechile
Tesi   Giuseppe ChechileTesi   Giuseppe Chechile
Tesi Giuseppe Chechilegchechile
 
Guida all'utilizzo della web application IRPET-Sdf per i PIU
Guida all'utilizzo della web application IRPET-Sdf per i PIUGuida all'utilizzo della web application IRPET-Sdf per i PIU
Guida all'utilizzo della web application IRPET-Sdf per i PIUPOR FESR Toscana
 
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum  - Jekpot - 25 november 2005 - SienaIntervento 10' KM Forum  - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum - Jekpot - 25 november 2005 - SienaEpistema
 
Quinn - Ricerca - Business Matching&Matchmaking - 2013
Quinn - Ricerca - Business Matching&Matchmaking - 2013Quinn - Ricerca - Business Matching&Matchmaking - 2013
Quinn - Ricerca - Business Matching&Matchmaking - 2013Consorzio QuInn
 
Forum pa modellomisu_semp
Forum pa modellomisu_sempForum pa modellomisu_semp
Forum pa modellomisu_sempgiaberna
 
Cnipa - Alterisio
Cnipa - AlterisioCnipa - Alterisio
Cnipa - Alterisioictblog
 

Semelhante a Elaborato Tesi (20)

Premio forumpa2017 PortalePA - IPER
Premio forumpa2017 PortalePA - IPERPremio forumpa2017 PortalePA - IPER
Premio forumpa2017 PortalePA - IPER
 
PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...
PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...
PMexpo17 - I contratti ICT della Pubblica Amministrazione - Giovanni Rellini ...
 
Forum pa insubria
Forum pa insubriaForum pa insubria
Forum pa insubria
 
Regolazione della trasparenza
Regolazione della trasparenzaRegolazione della trasparenza
Regolazione della trasparenza
 
Fumagalli - Service Management - 13 aprile 2011
Fumagalli - Service Management - 13 aprile 2011Fumagalli - Service Management - 13 aprile 2011
Fumagalli - Service Management - 13 aprile 2011
 
Presentazione preventivi e contratti 25032014 associazione-commercialisti-V...
Presentazione preventivi e contratti 25032014   associazione-commercialisti-V...Presentazione preventivi e contratti 25032014   associazione-commercialisti-V...
Presentazione preventivi e contratti 25032014 associazione-commercialisti-V...
 
Project Mep: experimental dissertation
Project Mep: experimental dissertationProject Mep: experimental dissertation
Project Mep: experimental dissertation
 
Service Management
Service ManagementService Management
Service Management
 
La validazione dei consumi energetici nella Pubblica Amministrazione
La validazione dei consumi energetici nella Pubblica Amministrazione La validazione dei consumi energetici nella Pubblica Amministrazione
La validazione dei consumi energetici nella Pubblica Amministrazione
 
Anac digitalizzazione 27 maggio
Anac digitalizzazione 27 maggioAnac digitalizzazione 27 maggio
Anac digitalizzazione 27 maggio
 
Controllo di gestione per call center
Controllo di gestione per call centerControllo di gestione per call center
Controllo di gestione per call center
 
Tesi Giuseppe Chechile
Tesi   Giuseppe ChechileTesi   Giuseppe Chechile
Tesi Giuseppe Chechile
 
Guida all'utilizzo della web application IRPET-Sdf per i PIU
Guida all'utilizzo della web application IRPET-Sdf per i PIUGuida all'utilizzo della web application IRPET-Sdf per i PIU
Guida all'utilizzo della web application IRPET-Sdf per i PIU
 
Presentazione
PresentazionePresentazione
Presentazione
 
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum  - Jekpot - 25 november 2005 - SienaIntervento 10' KM Forum  - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
 
Atti digitali
Atti digitaliAtti digitali
Atti digitali
 
Quinn - Ricerca - Business Matching&Matchmaking - 2013
Quinn - Ricerca - Business Matching&Matchmaking - 2013Quinn - Ricerca - Business Matching&Matchmaking - 2013
Quinn - Ricerca - Business Matching&Matchmaking - 2013
 
Forum pa modellomisu_semp
Forum pa modellomisu_sempForum pa modellomisu_semp
Forum pa modellomisu_semp
 
Cnipa - Alterisio
Cnipa - AlterisioCnipa - Alterisio
Cnipa - Alterisio
 
Si ge o_doc_premioforumpa2017
Si ge o_doc_premioforumpa2017Si ge o_doc_premioforumpa2017
Si ge o_doc_premioforumpa2017
 

Elaborato Tesi

  • 1. Università degli Studi di Trieste Facoltà di Ingegneria ________________________________________________________________________ Tesi di Laurea Triennale in Ingegneria Informatica Progettazione di un sistema di fatturazione di consumi e servizi Relatore Laureando Chiar.mo Prof. Maurizio FERMEGLIA Mauro LUPIERI ________________________________________________________________________ Anno Accademico 2007-2008
  • 4. 1. Introduzione L’oggetto di studio di questo elaborato è la progettazione e lo sviluppo di un sistema di fatturazione di consumi e servizi sufficientemente flessibile e generalizzato da coprire un ampio spettro di esigenze e funzionalità. A partire dall’analisi dei processi di fatturazione delle società che forniscono servizi al pubblico, quali forniture di gas metano, energia elettrica e acqua potabile, si intende sviluppare un prodotto in grado di gestire in ingresso una qualsiasi misura da fatturare e di produrne in uscita la valorizzazione monetaria in funzione della storia del cliente e del piano tariffario applicato. L’analisi parte dalla ricerca degli elementi che questi sevizi hanno in comune con l’obiettivo non solo di sviluppare un unico sistema in grado di gestirli, ma anche di poter affrontare nuove diverse esigenze ed articolazioni tariffarie. Lo studio di un prodotto caratterizzato da un alto grado di flessibilità, oltre che di efficienza ed efficacia, è motivato dalla progressiva evoluzione e liberalizzazione dei mercati dell’energia e dei servizi pubblici. Le aziende devono adeguarsi a fornire nuovi servizi, entrare in mercati nuovi e liberalizzati, offrire piani tariffari personalizzati e adottare strategie di marketing orientate alla fidelizzazione del cliente. Tutti questi fattori determinano l’inadeguatezza dei tradizionali sistemi monolitici e poco flessibili, rappresentando un freno alle strategie del management. I termini flessibile e generalizzato significano che il prodotto deve essere in grado di adattarsi ed evolversi a fronte di nuovi servizi, nuove esigenze, ristrutturazioni dei mercati e repentini cambiamenti delle strategie di marketing aziendali. Il tutto deve essere possibile con uno sforzo minimo in termini di tempi di implementazione e costi di realizzazione. Come evidenziato nella figura che segue, si presuppone l’esistenza di altri prodotti adibiti alla gestione dei clienti, alle strutture tariffarie ed alla rilevazione delle misure; attraverso opportuni moduli d’interfaccia, questi sistemi alimentano la base di dati. L’applicativo opera quindi su informazioni gestite da altri moduli e, a sua volta, genera informazioni che potranno essere utilizzate da sistemi quali ad esempio portali Web che forniscono servizi al cliente finale, sistemi ERP, strumenti di reportistica, di Business Intelligence ed altro ancora. IV
  • 5. Archivio Fatturazione Moduli di interfaccia Applicativo di fatturazione Sistemi di acquisizione misure e gestione cliente Estrazione dati: ERP, Web, Report,…. La progettazione di un qualsiasi sistema informativo riguarda sostanzialmente due aspetti, la progettazione dei dati e la progettazione delle applicazioni. Questo elaborato tratta essenzialmente la progettazione e la realizzazione della Base di Dati e della Logica di Business dell’applicativo. Nell’elaborato viene adottato il metodo progettuale basato sul modello di sviluppo del ciclo di vita del software limitatamente alle attività di raccolta ed analisi dei requisiti, progettazione e realizzazione. L’applicazione è stata implementata utilizzando il Data Base Management System Microsoft SQL Server 2005 Express su piattaforma Microsoft (sistemi operativi Windows XP, Windows Vista o Windows 2000 - 2003 Server). Gli unici vincoli Hardware sono rappresentati dai requisiti minimi di installazione di SQL Server Express. Per il Porting in produzione è necessaria l’adozione della versione completa di SQL Server e sono da valutare le caratteristiche minime del Server che deve ospitare la base di dati, caratteristiche che sono determinate sostanzialmente dal numero di clienti e di fatture da gestire. Per quanto riguarda i vincoli normativi, si è fatto riferimento alle disposizioni dell’AEEG (Autorità per l’Energia Elettrica ed il Gas) ed ai contratti standard proposti dagli operatori presenti sul mercato. V
  • 6. 1.1. Struttura dell’elaborato Il secondo capitolo presenta una descrizione generale del processo di fatturazione delle società che forniscono servizi al pubblico. Vengono evidenziati i principali elementi costitutivi di questo processo e viene soprattutto eseguita l’analisi dettagliata delle esigenze e dei requisiti che un qualsiasi sistema di fatturazione attualmente in commercio deve possedere. La necessità di definire un modello flessibile costringe ad una continua ricerca della ragione d’essere di ogni singolo requisito e degli elementi che i vari servizi hanno in comune. Il risultato di questa fase è una descrizione precisa delle caratteristiche e delle funzionalità che il prodotto deve presentare. Il terzo capitolo presenta la progettazione del sistema ed è articolato in due fasi: la progettazione concettuale e la progettazione logica. La prima fa ampio uso del modello Entità – Relazioni, il modello più idoneo a rappresentare e supportare lo sviluppo di sistemi relazionali. La seconda fase tratta la traduzione del modello concettuale nello schema logico relazionale. Nel quarto capitolo si procede allo sviluppo del data base e della logica di business, implementata con le Stored Procedures scritte in Transact-SQL di Microsoft SQL Server. Per la presentazione della fattura, a solo scopo dimostrativo e di controllo dei risultati ottenuti, è stato sviluppato uno script in linguaggio VBS per la generazione di un foglio Excel contenente il documento prodotto dall’applicativo. Seguono le opportune conclusioni, la valutazione dei risultati ottenuti e la definizione degli eventuali sviluppi futuri. VI
  • 7. 2. Definizione delle specifiche di progetto Le specifiche del progetto sono definite a partire dalle caratteristiche generali di un comune sistema di fatturazione. La difficoltà principale risiede nella volontà di progettare un modello generale, non strettamente legato alle peculiarità di una singola tipologia di servizio. Il prodotto deve essere in grado di adattarsi a gestire nuove esigenze, nuove situazioni e nuovi servizi e deve essere progettato in modo tale da facilitare le future implementazioni e lo sviluppo di nuove funzionalità che gli permettano di crescere in tutte le sue dimensioni. Lo sviluppo del sistema avviene a partire dall’analisi delle tecniche di fatturazione dei seguenti servizi: • Servizio di fornitura di acqua potabile • Servizio di fornitura di gas metano • Servizio di fornitura di energia elettrica Particolare attenzione è stata posta alla definizione dell’entità “misura”. La volontà di realizzare un sistema flessibile e aperto agli sviluppi futuri ha comportato la gestione di tipologie di misura che non sono utilizzate nella fatturazione dei servizi a rete ma che descrivono in modo completo ed esaustivo l’entità stessa. L’appendice B contiene documenti scaricati dai siti istituzionali di Aziende che operano nei settori elencati e dal sito dell’Autorità per l’Energia Elettrica ed il Gas, e definiscono in modo puntuale le tecniche di fatturazione che vengono applicate ai relativi consumi. 2.1. Analisi e raccolta dei requisiti Di seguito vengono esposti i concetti fondamentali attorno ai quali è stato sviluppato il progetto. L’anagrafica dei soggetti. Il soggetto può essere censito a sistema per uno dei seguenti motivi: • titolare di un contratto di fornitura e quindi cliente; 7
  • 8. • destinatario dei documenti di fatturazione (potrebbe non essere il titolare del contratto); • istituto di credito al quale il cliente può delegare il pagamento delle fatture. Il soggetto è caratterizzato dai seguenti attributi: il codice fiscale e la partita iva, l’indirizzo di residenza e quello di recapito dei documenti, la data di nascita, il sesso e l’eventuale domiciliazione bancaria; può essere persona fisica o persona giuridica. La residenza. E’ un attributo del soggetto e ne identifica l’indirizzo di residenza. Il recapito. E’ l’attributo del soggetto che identifica l’indirizzo al quale inviare le comunicazioni. Può essere anche un soggetto diverso dal titolare, in questo caso si tratta di recapito presso terzi. Il contratto. Il contratto è stipulato dal soggetto con l’azienda che eroga il servizio ed è caratterizzato da un numero identificativo, da una data di stipula e dallo stato (aperto, chiuso, in attesa di perfezionamento). Il cliente. Il cliente è il soggetto che ha stipulato un contratto con l’azienda; è caratterizzato, da tutti gli attributi che tipicamente rivestono importanza nell’ambito del rapporto contrattuale quali l’indirizzo di fornitura, il tipo di servizio erogato (elettricità, gas, acqua, telefonia, ecc.), uno o più codici di raggruppamento definiti dalle caratteristiche del tipo servizio (utilizzati per funzioni di analisi e reportistica, ad esempio il codice merceologico), il piano tariffario applicato, la storia (rilevante per la fatturazione), l’apparato di rilevazione delle misure ed il trattamento economico, cioè l’applicazione di particolari condizioni di favore (sconti), un codice che identifica univocamente il cliente ed un codice che rappresenta univocamente la fornitura, ad esempio per i servizi elettricità e gas il “Point of Delivery” stabilito dall’autorità adibita al controllo della rete di distribuzione ed eventualmente per il servizio di telefonia il numero telefonico identificativo. La fornitura. Rappresenta l’indirizzo di erogazione del servizio. Il tipo servizio. 8
  • 9. Il tipo di servizio è caratterizzato dai processi tecnici ed amministrativi necessari ad erogarlo. Ai fini dell’applicativo il servizio è caratterizzato dai metodi di fatturazione, dalle tariffe e dai prezzi che possono essere applicati al cliente, dall’entità fisica che è misurata per quantificarlo e da eventuali parametri di natura geografica e/o tecnica degli impianti di fornitura. L’indirizzo. L’indirizzo è caratterizzato dai seguenti attributi: via, civico, interno, città, CAP, nazione. E’ legato alla fornitura, al recapito e alla residenza. Lo strumento di misura. Per strumento di misura s’intende l’oggetto adibito alla rilevazione dei consumi, caratterizzato dalla marca, dalla matricola, dall’anno di produzione, dall’anno di installazione, dallo stato, dall’anno di rimozione ed eventualmente da altri attributi riguardanti le specificità tecniche dell’apparato. Nell’analisi delle realtà da gestire non sempre questa entità è presente. Lo stato contrattuale. Rappresenta la condizione nella quale si trova il cliente nel momento in cui è esaminato dal processo di fatturazione e ne riassume la storia passata. Lo stato è costituito da un insieme di attributi che devono essere gestiti con la massima generalità, così da non porre vincoli allo sviluppo di future implementazioni. L’introduzione di questo livello di astrazione comporta la necessità di mantenere una struttura dati che deve, in ogni momento, essere congruente con l’articolazione tariffaria applicata e con la struttura delle misure rilevate, tale che tutte le voci indispensabili all’esecuzione degli algoritmi di calcolo siano presenti e contengano valori rilevanti. Le misure ed il periodo di rilevazione. Il software gestisce entità generiche da fatturare che sono definite misure. Una misura potrà essere ad esempio una superficie, un numero di persone, un consumo di acqua, gas o energia elettrica, un numero di mesi o di giorni; il sistema dovrà essere in grado di definire di volta in volta gli attributi dell’entità misura così da darne un significato concreto. Le misure sono strettamente legate al periodo di rilevazione nel corso del quale sono state rilevate o afferiscono. Si possono definire quattro diversi tipi di misura: a) misura di consumi, quindi in generale di grandezze fisiche che variano con continuità nel tempo. E’ definita una relazione “uno a uno” tra misura e periodo di rilevazione. 9
  • 10. b) misura di intervalli puntuali di tempo, tipico della telefonia, caratterizzata da un valore espresso in ore, minuti e secondi. Ad ogni periodo può essere associato un numero variabile di misure, senza obbligo di continuità temporale. c) misura di grandezze discrete, ad esempio superficie, portata, numero di persone o altro. In questo caso la misura può variare in modo discreto nel corso del periodo di rilevazione. d) rilevazione di un intervallo temporale. In questo caso è l’intervallo stesso di rilevazione che ha significato, non esiste una misura associata. Può essere considerato un caso degenere di misura. Per quanto riguarda la fornitura di gas metano, la misura del volume consumato deve essere corretta in conformità ad un coefficiente di natura geografica stabilito dall’autorità competente. La figura che segue, rappresenta le relazioni temporali tra il periodo di rilevazione e i diversi tipi di misure gestite dal sistema. Periodo di rilevazione delle misure Misura di entità che varia in modo discreto Inizio rilevazione Fine rilevazione Misura di grandezza fisica che varia con continuità Misure puntuali di eventi che si verificano nell’intervallo di rilevazione La tariffa, il prezzo e la variazione tariffaria. L’applicativo deve essere in grado di gestire l’evoluzione nel tempo dell’entità fisica in esame, determinata essenzialmente dall’evolversi dell’articolazione tariffaria. In generale tariffe e imposte sono caratterizzate da una data di inizio validità ed una di fine validità, che definiscono il periodo di applicazione del prezzo o decorrenza tariffaria. Tutti i consumi ed i servizi devono quindi essere rapportati ai periodi determinati delle variazioni tariffarie. Segue la tabella che definisce le norme di suddivisione delle misure in funzione del tipo di misura. Entità fisiche che variano Intervalli puntuali di Grandezze discrete Intervallo temporale di 10
  • 11. con continuità tempo rilevazione Tipo di suddivisione della misura La misura è suddivisa in modo proporzionale al numero di giorni di appartenenza alla decorrenza tariffaria. Non definibile. L’appartenenza alla decorrenza tariffaria è definita sulla base della data di effettuazione dell’evento. La misura è suddivisa in proporzione al periodo in cui si mantiene costante. Intervallo suddiviso in base ai giorni di rilevazione. La seguente figura schematizza la suddivisione di misure che variano con continuità nel tempo in funzione di una variazione del prezzo avvenuta nel corso del periodo di rilevazione. Periodo di rilevazione misure effettivo Periodo validità prezzo A Periodo validità prezzo B Sub - periodo rilev. A Sub – periodo rilevazione B Data inizio rilevazione Data fine rilevazione Data variazione prezzi L’algoritmo di calcolo. L’algoritmo di calcolo in generale può essere considerato una proprietà della tariffa. Il sistema è stato sviluppato mantenendo invece separati i due concetti. Per tariffa s’intende l’entità che definisce il prezzo da applicare alla misura da fatturare e che è associata al cliente. Per algoritmo di calcolo s’intende il metodo che è utilizzato per applicare il prezzo alla misura. Gli algoritmi sono legati al tipo di servizio, al tipo di misura e alle regole di fatturazione che sono stabilite. Gli algoritmi che più comunemente sono utilizzati nelle realtà esaminate sono: a) moltiplicazione della misura rilevata per il prezzo unitario (espresso in €/unità di misura), ad esempio nel calcolo dei corrispettivi per fognatura e depurazione del servizio idrico integrato. Il calcolo deve essere anche rapportato al numero di giorni ai quali è riferita la misura; 11
  • 12. b) moltiplicazione del numero di giorni (o mesi) del periodo di rilevazione per il prezzo unitario (espresso in €/giorni), ad esempio nel calcolo della quota fissa nelle fatture del servizio idrico. c) moltiplicazione del prezzo unitario per il periodo di rilevazione (espresso in giorni o mesi) e per un attributo che rappresenta la misura del servizio (prezzo espresso in €/gg*unità di misura); ad esempio la quota potenza del servizio elettrico (prezzo * giorni * potenza impegnata); d) suddivisione del consumo in scaglioni a riempimento, e quindi applicazione di prezzi diversi per fascia; ad esempio calcolo della quota consumo del servizio gas; e) suddivisione del consumo in scaglioni proporzionali, e quindi applicazione di prezzi diversi per fascia; ad esempio calcolo della quota consumo nei servizi acqua potabile ed elettricità. Segue la tabella che definisce l’applicabilità degli algoritmi ai tipi di misura. Entità fisiche che variano con continuità Intervalli puntuali di tempo Grandezze discrete Intervallo temporale di rilevazione Misura * prezzo unitario Si No No No Prezzo * periodo di rilevazione No No No Si Prezzo * Periodo * attributo No No No Si Fascia di consumo Si No No No Futuri sviluppi No Si Si No Sconti sul prezzo e sui consumi. L’applicativo deve supportare le strategie di marketing che generalmente sono perseguite dall’azienda nell’ambito dei mercati liberalizzati o in fase di liberalizzazione, strategie che si concretano di norma nell’applicazione di particolari condizioni di favore, cioè sconti sul prezzo applicato o sui consumi rilevati. Le condizioni di favore sono applicate a livello di singola tariffa, hanno validità temporale, caratterizzata da un determinato periodo compreso tra due date, oppure possono essere condizioni di particolare favore applicate in occasione di un determinato evento, e quindi in una singola fatturazione. Sono inoltre caratterizzate dall’esistenza o 12
  • 13. meno di un limite massimo di applicazione e dalla possibilità di essere concepite come una percentuale dell’importo calcolato o del consumo fatturato. Ultimo requisito riguardante l’entità sconto è che in fattura, per motivi di trasparenza, deve essere registrato sia l’importo totale sia quello scontato. Addebiti fissi. Sono degli addebiti e/o accrediti (oneri, bolli, depositi cauzionali, ecc) già calcolati da altri sistemi che vengono applicati in fattura. La fattura. E’ il prodotto finale dell’applicazione, generata dalle misure, dal piano tariffario e dalle informazioni presenti nello stato contrattuale. E’ caratterizzata da una testata, costituita dai dati del contratto e del cliente, dagli attributi dell’anagrafica e del sistema di misura, da un codice univoco d’identificazione, dalle date di emissione, scadenza e pagamento, dal totale imponibile, totale delle imposte e totale fattura. Deve inoltre contenere una sezione con le informazioni concernenti le misure fatturate, ai prezzi applicati, all’eventuale presenza di condizioni di favore e all’imposta calcolata con le aliquote applicate. Le informazioni presenti nello stato contrattuale nel momento in cui la fatturazione esamina il cliente devono essere memorizzate come attributi della fattura stessa, così come deve essere registrato lo stato anagrafico, che può essere considerato come una fotografia degli attributi del soggetto cui è attribuita la fattura. 2.2. Descrizione del processo di fatturazione L’applicativo riceve in input il codice del cliente da fatturare e la data di scadenza del documento, quindi per produrre la fattura esegue la seguente sequenza di operazioni: Operazione n.1: esame dell’anagrafica, del soggetto e del cliente. Sono estratti l’anagrafica del soggetto ed il cliente. Si verifica se è un soggetto fatturabile in base allo stato contrattuale e agli indicatori che abilitano il processo a proseguire. Operazione n.2: estrazione dei dati che si riferiscono a recapito, residenza, e domiciliazione bancaria. Vengono estratte tutte le informazioni riguardanti la residenza, il recapito e la domiciliazione bancaria e memorizzate nello stato anagrafico fatturato. L’assenza della residenza deve produrre una rilevazione di errore ed impedire la produzione del 13
  • 14. documento. Recapito, Recapito presso Terzi e Domiciliazione Bancaria possono essere assenti. Viene quindi estratto l’indirizzo di fornitura, che obbligatoriamente deve essere presente. Operazione n.3: determinazione del codice fattura e registrazione della testata del documento. Viene determinato il codice progressivo della fattura e registrata la testata del documento con le informazioni in possesso. Da questo momento fino al termine del processo di fatturazione non dovrà più essere possibile per nessun operatore collegato al sistema, eseguire operazioni di fatturazione o modificare le entità coinvolte nel processo. Il numero fattura deve essere un progressivo. Operazione n.4: estrazione di eventuali addebiti da applicare in fattura. L’applicativo ricerca eventuali addebiti o accrediti da fatturare. In caso positivo, deve procedere con l’applicazione in fattura e la memorizzazione delle informazioni per il calcolo dell’imposta. Operazione n.5: estrazione dei periodi di rilevazione e delle misure. Vengono selezionati in sequenza tutti i periodi di rilevazione associati al contratto e non fatturati; si verifica se il periodo è fatturabile analizzando l’opportuno indicatore. Operazione n. 6: estrazione delle tariffe ed associazione ai periodi di rilevazione. Per ogni periodo di rilevazione, si determina la lista delle tariffe da applicare in base al Tipo Misura. Un singolo periodo di rilevazione potrebbe essere preso in esame da più tariffe (tipico caso è l’elaborazione della fattura del gas metano: la fatturazione prende in esame il consumo per calcolare prima la tariffa consumo e poi l’imposta erariale con due algoritmi diversi.). Deve essere anche eseguito il controllo che tutte le tariffe associate al contratto siano elaborate e che tutte le misure rilevate siano pertinenti, in caso contrario l’applicativo deve terminare segnalando l’anomalia. Operazione n.7: estrazione e verifica dello stato contrattuale legato alla tariffa. Per ogni tariffa applicata si estrae lo stato contrattuale associato, costituito da tutta una serie di attributi che appartengono alle due relazioni “Valore contrattuale” e “Data contrattuale”. Si verifica che siano presenti tutte le voci richieste per la corretta fatturazione della misura. Ogni algoritmo di calcolo ha associato un ben preciso stato contrattuale che identifica lo stato del cliente a partire dal quale effettuare la fatturazione dei consumi. Lo stato 14
  • 15. contrattuale è legato alla tariffa che a sua volta è indissolubilmente legata all’algoritmo di calcolo; una tariffa non può mai cambiare algoritmo di calcolo nel corso della sua vita. Devono essere compiute anche tutte le verifiche legate alla congruità dello stato contrattuale con la tariffa e le misure da fatturare. In particolare va controllata la continuità del periodo di rilevazione con l’ultimo periodo fatturato. Operazione n.8: determinazione di eventuali Sconti da applicare. Per ogni tariffa si determina se devono essere applicate delle condizioni di favore (sconti sul consumo o sul fatturato). Operazione n.9: determinazione del periodo tariffario applicabile. Per ogni coppia “tariffa – periodo di rilevazione misure” viene ricercato il periodo tariffario applicabile. Se il periodo di rilevazione misure non è compreso in un unico periodo tariffario, allora il primo deve essere suddiviso in tanti sottoperiodi in conformità all’articolazione della variazione dei prezzi. Le misure associate al periodo tariffario originale devono quindi essere spostate nei nuovi periodi tariffari seguendo le opportune regole definite in base al tipo misura. Operazione n.10: determinazione del prezzo da applicare e scrittura del dettaglio di fatturazione. A fronte di ogni periodo di rilevazione ridefinito in base alle variazioni tariffarie, vengono estratte le misure ed i prezzi da applicare. Vengono quindi scritti i dettagli di fatturazione che tengono conto di tutte le entità che contribuiscono a determinare l’importo fatturato. Operazione n.11: scrittura del nuovo stato contrattuale. Al termine dell’esame di ogni periodo di rilevazione dei consumi l’applicativo deve registrare il nuovo stato contrattuale risultante dall’elaborazione. Operazione n.12: scrittura della fattura e del dettaglio IVA. Al termine dell’esame di ogni tariffa l’applicativo aggiorna la testata della fattura e il dettaglio IVA. 3. Progettazione della base di dati 15
  • 16. E’ stata adottata la tipica metodologia di progettazione articolata in due fasi: progettazione concettuale e progettazione logica. La prima fase ha lo scopo di rappresentare l’oggetto di studio in termini formali e completi. Si fa ampio utilizzo del modello Entità – Relazioni, il più diffuso modello concettuale utilizzato nell’analisi di basi di dati relazionali. Il risultato finale è il modello concettuale dei dati. La seconda fase consiste nella traduzione dello schema concettuale nell’apposito modello logico prescelto per la realizzazione del sistema. Il risultato complessivo della fase progettuale è lo schema logico, la struttura vera e propria del data base, corredato da tutta la documentazione necessaria alla fase di sviluppo. 3.1. Progettazione concettuale Nello sviluppo del modello concettuale è stata adottata una strategia di tipo misto. Vengono inizialmente individuati i concetti principali della realtà in esame che sono quindi inseriti in uno schema semplificato; si procede poi a macchia d’olio con lo sviluppo del progetto attraverso un processo di raffinamenti successivi. In questa fase progettuale è stato utilizzato il modello Entità – Relazioni che permette di dare una veste grafica e quindi d’immediata interpretazione dell’oggetto di studio. Lo schema finale è stato quindi ristrutturato per consentirne la traduzione verso il modello relazionale e documentato opportunamente, facendo ricorso a un dizionario dati strutturato e organizzato in modo da descrivere a fondo tutti gli oggetti ed i loro attributi. Segue il diagramma ER semplificato in cui sono presenti gli oggetti fondamentali che partecipano al processo di fatturazione, oggetti che sono già stati descritti nella fase di analisi. 16
  • 17. Soggett o (0,N) Piano tariffario Cliente Misura Fatt ura Dettaglio di f at t urazione (1,N) Sistema di misura Tratt amento economico Valorizzazione Cont rat to Tarif fa ScontoPart it e monet arie Addebito (1,1) (0,N) (0,N) (1,1) (0,1) (0,N) (1,1) (0,N) (1,N) (1,1) (0,1) (0,N) (0,N) Servizio erogato Il passo successivo consiste nell’introduzione dello stato del cliente e dell’algoritmo di fatturazione. Queste due entità sono strettamente collegate a livello operativo, poiché ogni algoritmo per funzionare correttamente richiede, per ogni coppia “cliente – tariffa”, la presenza di un insieme di informazioni che devono essere preventivamente memorizzate nello stato del cliente. L’appendice D definisce con precisione lo stato richiesto da ogni algoritmo di calcolo per ogni tipo di misura rilevata. Lo stato riassume la storia del cliente e contribuisce a definirne il trattamento economico; può essere modificato solamente dal processo di fatturazione ed è strettamente legato al piano tariffario del cliente e alla struttura dell’impianto di misura. Valo re con t rat tu ale St at o Co nt rat t uale Volu m eLim it e Fat t o re d i cor rezione Dat a cont rat tuale Il concetto di algoritmo di calcolo serve a disaggregare la tariffa dal metodo di calcolo. Si definiscono a priori gli algoritmi che possono essere considerati dei veri e propri driver di 17
  • 18. fatturazione; questi potranno poi essere associati a una o più tariffe e imposte, caratterizzate da un periodo di validità e da un prezzo. Soggetto (0,N) Piano tariffario Cliente Misura Dettaglio di fatturazione (1,N) Sistema di misura Trattamento economico Valorizzazione Contratto Tariffa Sconto Stato Cliente Algoritmo Applicazione Fattura Partite monetarie Addebito (1,1) (0,N) (1,1) (1,1) (0,N) (1,1)(0,N) (0,N)(0,1) (1,N) (1,1) (0,N) (1,1) (0,1)(0,N) (0,N) Servizio erogato Un successivo raffinamento consiste nell’introduzione degli elementi che caratterizzano l’evoluzione nel tempo del sistema: il periodo di rilevazione delle misure ed il periodo di validità tariffaria. L’elemento fondante dell’impianto tariffario è la distinzione tra tariffa, periodo di validità e prezzo applicato. Una tariffa è sempre caratterizzata da un periodo di validità, poiché nel tempo può subire variazioni o addirittura essere annullata. Nel nostro modello questo aspetto è gestito definendo due oggetti distinti: la tariffa, entità che identifica e definisce la regola di calcolo ed è associata al cliente, ed il prezzo caratterizzato dagli attributi utilizzati per la valorizzazione economica della misura da fatturare. La relazione tra le due entità è il “periodo di validità tariffaria” identificato da una coppia di date che ne definiscono l’inizio e la fine. La relazione è “uno a n”, poiché gli algoritmi che suddividono il consumo in fasce applicano prezzi diversi a seconda della fascia di appartenenza. Il periodo di rilevazione delle misure definisce l’arco temporale nel corso del quale sono state raccolte le misure. La relazione con l’entità misura è “uno a n”, poiché a ogni periodo può essere ricondotta più di una misura. 18
  • 19. Soggetto (0,N) Piano tariffario Cliente Misura Fattura Dettaglio di fatturazione (1,N) Sistema di misura Trattamento economico Valorizzazione Contratto Tariffa Stato Cliente Periodo di rilevazione misure Sconto Algoritmo Applicazione Prezzo Periodo di validità tariffaria Partite monetarie Addebito (1,1) (1,1) (0,N) (1,N) (1,1) (1,1) (1,1) (1,N) (1,1) (0,N) (0,N) (1,1) (0,1) (0,N) (1,N) (1,1) (1,1) (0,N) (0,N) (0,N) (0,1) (1,1) Valorizzazione Servizio erogato L’entità misura è una generalizzazione dei diversi tipi di misura che sono stati definiti in fase di analisi: la misura di grandezze fisiche che variano con continuità oggetto di studio di questo elaborato, quella d’intervalli temporali che potrebbe essere utilizzata per sviluppare algoritmi di fatturazione di consumi telefonici ed infine la misura di entità che variano in modo discreto nel tempo, quali ad esempio una superficie e un numero di persone. Misu r a Misu r a d i en t i t à che v ar iano in m o do d iscr et o Misu r a d i in t er valli t em po r ali Misu r a d i g r and ezze f isi ch e ch e var ian o con co n t in u it à Il passo successivo è quello di raffinare il concetto di soggetto, con l’introduzione di tutte le entità e le relazioni collegate, già identificate nella fase di raccolta dei requisiti. Il soggetto può essere persona fisica o persona giuridica; può inoltre essere presente in archivio in qualità di cliente sottoscrittore di un contratto, di istituto di credito o di destinatario delle fatture emesse a nome di un altro soggetto. Le relazioni di interesse 19
  • 20. sono il recapito, la residenza, la domiciliazione bancaria ed il recapito dei documenti presso altro soggetto. Recapito e residenza coinvolgono l’entità indirizzo che assieme allo stradario ed al comune, contribuisce a definire in maniera completa l’ambito geografico del soggetto. Tit olare di cont rat to (0,N) (0,N) (1,N) I ndirizzo Dest inat ario comunicazioni I st it uto di Credito Soggett o Recapito presso t erzi Domicilio bancario Residenza (0,N) (0,N) (0,N) (0,N) (0,N) Persona giuridica Persona f isica Recapito Comune St radario (1,N) (1,1) At t ribut i banca Un’altra relazione che coinvolge l’entità indirizzo è l’ubicazione della fornitura, che è legata al cliente, in quanto definisce il luogo fisico nel quale è fornito il servizio. Cl i e n t e Ub i c azi on e f o rn i t u r a I n d i r i z zo (1,1) (0,N) Co m u ne St r a d a r i o (1, 1) (1,N) La fattura è il prodotto dell’applicazione, generata dalle misure, dal piano tariffario e dalle informazioni presenti nello stato contrattuale. E’ caratterizzata dai dettagli di fatturazione, calcolati e registrati dall’applicazione nel corso del processo di esame delle misure attribuite al cliente. E’ anche caratterizzata dallo stato contrattuale presente nel momento della fatturazione, che deve essere registrato in qualità di attributo della fattura stessa così come deve essere registrato lo stato anagrafico che può essere considerato come una fotografia degli attributi del soggetto. L’entità fattura è altresì caratterizzata dai seguenti attributi: codice univoco d’identificazione, data di emissione, data di scadenza, data di pagamento, totale imponibile, totale imposte, totale fattura e totale pagato. 20
  • 21. Fatt ura Client e Stat o anagraf ico I ndirizzo Soggetto Residenza Recapito Recapito presso t erzi Domicilio bancario Valorizzazione Contratto (0,N) (1,1) (1,1) (1,1) (1,1) (0,N)(1,1) (1,1) (0,N) (1,1) (0,N) (1,1) (0,N) (1,1) (0,N) St at o anagraf ico fatt urato Det t aglio di fat t urazione I mposta f att urat a Part it e monetarie Valorizzazione Valorizzazione (1,N) (1,1)(1,1) (0,N)(1,1) Stato contrat tuale f att urato Servizio erogato Lo schema finale ottenuto è quindi il risultato di un’attività iterativa, di un processo graduale, a partire da uno schema base che è stato progressivamente raffinato, arricchito, trasformato e corretto. Alla base di tutto il processo è sempre stato presente l’obiettivo primario di dare la massima flessibilità al sistema. 3.2. Ristrutturazione e documentazione degli schemi ER I diagrammi Entità – Relazioni devono essere opportunamente documentati. Segue la documentazione riguardante gli oggetti in esame, in particolare sono approfonditi i concetti, definiti gli attributi e gli identificatori e specificate le regole ed i vincoli non esprimibili graficamente. La documentazione seguente è anche il frutto di una prima ristrutturazione dei diagrammi originari, ristrutturazione e trasformazione che consegna un prodotto già pronto per la traduzione nello specifico schema logico che sarà adottato. In particolare sono state eseguite le seguenti operazioni. Rimozione delle generalizzazioni. Siccome il modello relazionale non consente di trattare generalizzazioni, queste sono state rimosse mediante tecniche di accorpamento che saranno presentate di volta in volta. 21
  • 22. Scelta degli identificatori. Per ogni entità e relazione viene scelto l’identificatore principale che fungerà da chiave primaria nell’implementazione del modello logico. Accorpamento di entità e relazioni. Vengono accorpate entità e relazioni in modo da ottimizzare il futuro modello logico e anticipare per quanto possibile l’attività di normalizzazione della base di dati. 22
  • 23. 3.2.1. Entità Soggetto L’entità Soggetto descrive i dati anagrafici di tutti i soggetti presenti a sistema, siano essi persona fisica o persona giuridica. I soggetti possono essere memorizzati a diverso titolo. Si tratta di una generalizzazione totale e sovrapposta delle tre entità figlie: titolare del contratto, destinatario delle comunicazioni ed istituto di credito. La generalizzazione è totale, nel senso che ogni occorrenza dell’entità Soggetto è occorrenza di almeno una delle entità figlie. E’ sovrapposta nel senso che un’occorrenza dell’entità Soggetto può essere occorrenza di più di un’entità figlia. L’entità figlia di maggior importanza è il titolare del contratto che descrive il soggetto che ha stipulato uno o più contratti di servizio con la società. L’entità Destinatario rappresenta il soggetto al quale sono inviati i documenti intestati ad un ulteriore soggetto, ad esempio le fatture. Questa generalizzazione viene eliminata per accorpamento nella generalizzazione padre; non è necessario nessun attributo che individui la natura del soggetto, considerato che questo può svolgere più di una funzione contemporaneamente. Saranno le relazioni alle quali il soggetto partecipa a definire di quale specializzazione si tratta. Il soggetto è anche generalizzazione totale ed esclusiva delle entità Persona fisica e Persona giuridica, generalizzazione che viene eliminata per accorpamento nella generalizzazione padre, che può accollarsi gli attributi propri delle figlie. In particolare, nell’entità padre, i due attributi “Ragione Sociale” e “Cognome Nome” possono collassare nell’attributo Denominazione. Per quanto riguarda i codici identificativi, esistono casi di soggetti caratterizzati dalla presenza contemporanea della Partita IVA e del codice fiscale; questi due attributi diventano quindi entrambi attributi dell’entità padre. Inoltre per mantenere la distinzione tra persona fisica e persona giuridica viene aggiunto l’attributo Tipo soggetto. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Soggetto Identificatore Intero No Tipo Persona Tipologia di persona Testo P: persona fisica; G: persona giuridica No Codice Classe Anagrafica Codice di classificazione delle anagrafiche. Utilizzato per realizzare funzionalità di raggruppamento e sintesi delle informazioni. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 4 “CodiceClasseAnagrafica”. No 23
  • 24. Denominazione Ragione sociale o Cognome e Nome in funzione del tipo soggetto Testo No Codice Fiscale Codice fiscale Testo Si Partita IVA Partita IVA Testo Si Flag Fatturazione Flag che definisce se l’anagrafica è fatturabile Booleano N: no; S: si No Data di nascita Solo per persona fisica Data Si Sesso Solo per persona fisica Testo M: maschile, F: femminile Si Segue la lista dei valori che sono stati configurati a sistema per l’attributo Codice Classe Anagrafica. Codice Classe anagrafica Descrizione 1 Ente pubblico 2 Privato 3 Sanità 4 Forze armate 3.2.2. Entità Indirizzo Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Indirizzo Identificatore Intero No Codice Stradario Codice identificativo della via. Intero Identificatore dell’entità Stradario No Civico Numero civico. Intero No Interno Interno. Può essere numerico o testo. Testo Si 24
  • 25. 3.2.3. Entità Comune Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Comune Identificatore Intero No CAP CAP del comune Intero No Descrizione Comune Descrizione Testo No Provincia Identifica la provincia. In genere due caratteri. Testo No Stato Stato di appartenenza del comune Testo No 3.2.4. Relazione Stradario Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Via Identificatore Intero No Codice Comune Codice del comune di appartenenza della via Intero Identificatore dell’entità Comune No Descrizione Descrizione della Via Testo No 3.2.5. Relazione Residenza 25
  • 26. La relazione Residenza lega il soggetto all’indirizzo di residenza. E’ strutturata in modo da mantenere lo storico delle residenze del soggetto, caratterizzate da una data di inizio e una data di fine. Il soggetto deve presentare sempre una relazione di residenza, l’occorrenza di quella attiva è caratterizzata dalla flag Residenza Attiva = S e dalla data di fine validità impostata a null. L’identificatore della relazione è costituito dai due attributi Codice Soggetto e Codice Indirizzo Residenza. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Soggetto Identificatore Intero Identificatore dell’entità Soggetto No Codice Indirizzo Residenza Identificatore Intero Identificatore dell’entità Indirizzo No Residenza attiva Definisce se si tratta dell’ultima residenza dell’anagrafica o della residenza attiva. Booleano S: Residenza attiva; N: non più residente No Data inizio Data di inizio validità dell’occorrenza Data No Data fine Data di fine validità dell’occorrenza (di cambio residenza) Data Si 3.2.6. Relazione Recapito La relazione Recapito stabilisce un legame tra il soggetto e l’indirizzo di recapito. E’ strutturata in modo da mantenere lo storico dei recapiti caratterizzato da una data di inizio e una data di fine. La relazione è opzionale, in caso di assenza del recapito l’applicazione invierà il documento all’indirizzo del soggetto. L’occorrenza del recapito attivo è caratterizzata dalla flag Recapito Attivo = S e dalla data di fine validità impostata a null. L’identificatore della relazione è costituito dai due attributi Codice Soggetto e Codice Indirizzo Recapito. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice soggetto Identificatore Intero Identificatore dell’entità Soggetto No Codice Indirizzo recapito Identificatore Intero Identificatore dell’entità Indirizzo No 26
  • 27. Recapito attivo Definisce se si tratta dell’ultimo recapito dell’anagrafica o del recapito attivo. Booleano S: Recapito attivo; N: recapito non attivo No Data inizio Data di inizio validità della relazione Data No Data fine Data di cambio recapito o fine validità della relazione Data Si 3.2.7. Relazione Recapito Presso Terzi La relazione Recapito presso terzi identifica un ulteriore soggetto al quale trasmettere i documenti di fatturazione. Non dovrebbero presentarsi casi di soggetti con presenza contemporanea di recapito e recapito presso terzi. L’applicativo di fatturazione, nel caso riscontri tale condizione, invierà il documento al recapito ignorando l’esistenza del recapito presso terzi. L’occorrenza del recapito attivo è caratterizzata dalla flag Recapito Attivo = S e dalla data fine validità impostata a null. L’identificatore della relazione è costituito dai due attributi Codice Soggetto e Codice Soggetto Terzi. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice soggetto Identificatore Intero Identificatore dell’entità Soggetto No Codice soggetto terzi Identificatore Intero Identificatore del soggetto cui recapitare i documenti (sempre entità soggetto) No Recapito attivo Definisce se si tratta di relazione attiva. Booleano S: Relazione attiva; N: non più valida No Data inizio Data inizio validità relazione Data No Data fine Data fine validità relazione Data Si 3.2.8. Relazione Domiciliazione Bancaria 27
  • 28. La relazione Domiciliazione Bancaria implementa la possibilità di attivare il pagamento automatico del documento presso un istituto di credito. L’occorrenza della relazione attiva è caratterizzata dalla flag Domiciliazione Attiva = S e dalla data fine validità impostata a null. L’identificatore della relazione è costituito dai due attributi Codice Soggetto e Codice Soggetto Banca. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice soggetto Identificatore Intero Codice identificatore del soggetto No Codice soggetto banca Identificatore Intero Codice identificatore del soggetto che è istituto di credito No Domiciliazione attiva Definisce se si tratta di relazione attiva. Booleano S: Relazione attiva; N: non più valida No Data inizio Data di inizio validità Data No Data fine Data di fine validità Data Si Codice IBAN Definisce gli estremi del conto corrente del cliente nel circuito interbancario Testo No 3.2.9. Entità Banca Questa entità prende forma dalla ristrutturazione dell’attributo composto che definisce le caratteristiche del soggetto banca. L’occorrenza della relazione attiva è caratterizzata dalla flag Relazione Attiva = S e dalla data fine validità impostata a null. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Banca Identificatore Intero No Codice Soggetto Codice del soggetto censito a sistema Intero Identificatore dell’entità Soggetto No Relazione attiva Definisce se si tratta di relazione attiva. Booleano S: Relazione attiva; N: non più valida No Codice ABI Coordinate bancarie: codice ABI Intero No 28
  • 29. Codice CAB Coordinate bancarie: codice CAB Intero No Data inizio Data inizio validità Data No Data fine Data fine validità Data Si 3.2.10. Entità Cliente L’entità cliente rappresenta l’oggetto attorno al quale si sviluppa l’intero sistema. Definisce lo schema dei dati che si riferiscono al cliente ed alla relazione “contratto”, relazione che quindi è stata assorbita da questa entità. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Cliente Identificatore Intero No Codice Soggetto Codice del soggetto che è cliente Intero Identificatore dell’entità Soggetto No Codice Tipo Servizio Definisce il servizio che è fornito al cliente. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 1 “CodiceTipoServizio”. No Codice Tipo Utilizzo Definisce una regola di raggruppamento per le utenze. Può essere l’uso merceologico o altre codifiche a piacimento. E’ utilizzabile per analisi e funzioni di reportistica. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 2 “CodiceTipoUtilizzo”. No Identificativo Fornitura Codice identificativo della fornitura. Per il gas e l’elettricità è il Point of Delivery, stabilito dall’autorità per l’energia elettrica ed il Gas; per l’acqua la codifica della presa. Testo No Codice Gruppo per Definisce un codice per la selezione delle Intero Il codice deve essere presente nella tabella No 29
  • 30. fatturazione utenze da fatturare nei processi di fatturazione di gruppo. “Descrizione Codici” con Tipo Codice = 3 “CodiceGruppoFatturazione”. Codice Indirizzo fornitura Identificativo del luogo di fornitura del servizio, indirizzo che tipicamente coincide con l’indirizzo di residenza del cliente. Intero Identificatore dell’entità Indirizzo No Stato Cliente Identifica lo stato del contratto Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 16 “CodiceStatoCliente”. No Anno contratto Attributo della relazione Contratto No Numero contratto Attributo della relazione Contratto No Data contratto Attributo della relazione Contratto No Flag Fatturazione Definisce se il cliente è fatturabile Booleano S: si; N: no No Note tecniche Testo Si Note amministrative Testo Si Segue la lista dei valori che sono stati configurati a sistema per gli attributi Codice Tipo Servizio, Codice Stato Cliente, Codice Tipo Utilizzo e Codice Gruppo Fatturazione. Codice Tipo Servizio Descrizione 1 Servizio di vendita gas metano 2 Servizio di vendita energia elettrica 3 Servizio di vendita acqua potabile Codice Stato Cliente Descrizione 1 Cliente Attivo Fatturabile 30
  • 31. 2 Contratto Cessato 3 Cliente in fase di attivazione o in attesa di documentazione per l’attivazione 4 Cliente moroso Codice Tipo Utilizzo Descrizione 1 Codice generico Codice Gruppo Fatt. Descrizione 1 Codice generico 3.2.11. Lo stato contrattuale 3.2.11.1. Entità Valore Contrattuale Questa entità è una generalizzazione delle entità Fattore di correzione, Limite e Volume. E’ l’algoritmo di calcolo che attribuisce, in base al codice, il significato operativo delle singole istanze. Ogni algoritmo è caratterizzato da uno stato diverso, e quindi dalla presenza o assenza di determinate voci contrattuali. In appendice D è specificata la configurazione delle tariffe e degli algoritmi da applicare ad ogni singolo servizio. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Cliente Identificatore Intero Riferimento all’entità cliente No Codice Tariffa Identificatore Intero Riferimento alla tariffa applicata No Codice Valore Cliente Identificatore. Codice che identifica il significato dell’occorrenza dell’entità. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 5 “CodiceValoreContrattuale” No 31
  • 32. Valore E’ il valore associato all’entità. Reale No 3.2.11.2. Entità Data Contrattuale L’entità Data Contrattuale costituisce, assieme all’entità Valore Contrattuale, lo stato del cliente. E’ strettamente legata all’algoritmo di calcolo e quindi alla tariffa e contiene tutte le occorrenze delle date significative ai fini della fatturazione. In appendice D è specificata la configurazione delle tariffe e degli algoritmi da applicare ad ogni singolo servizio. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Cliente Identificatore Intero Riferimento all’entità cliente. No Codice Tariffa Identificatore Intero Riferimento alla tariffa applicata. No Codice Data Cliente Identificatore. Codice che identifica il significato dell’occorrenza dell’entità. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 6 “CodiceDataContrattuale” No Data E’ la data associata all’entità. Data No 3.2.12. Entità Addebito Fisso Consente all’applicativo di inserire in fattura degli importi già calcolati da altri sistemi, quali ad esempio bolli, mora su ritardati pagamenti, cauzioni ed altro. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Addebito Identificatore Intero No 32
  • 33. Codice Cliente Codice del cliente al quale addebitare / accreditare la voce. Intero Riferimento all’entità Cliente No Descrizione Addebito Descrizione Testo No Valore addebito Valore da addebitare / accreditare Reale No Codice IVA da applicare Codice IVA Intero Riferimento all’entità Imposta No Flag fatturato Specifica se l’addebito è già stato fatturato Booleano S: si N: no No Flag anomalia Specifica se l’addebito non deve essere fatturato Booleano S: da fatturare N: non fatturare No Sistema di provenienza Definisce il sistema o modulo che ha generato l’addebito. No Codice Fattura Se null elemento non fatturato, altrimenti identifica la fattura. Intero Riferimento all’entità Fattura Si 3.2.13. Entità Tariffa E’ l’entità le cui occorrenze sono le tariffe e le imposte gestite a sistema. Ogni occorrenza è caratterizzata dall’algoritmo di calcolo, un modulo software sviluppato ad hoc che sviluppa la logica applicativa della tariffa. L’impianto tariffario è costituito dalle due entità Tariffa e Prezzo e dalla relazione Periodo di validità che definisce il periodo temporale di validità dei prezzi. Questa struttura permette di gestire le variazioni tariffarie determinate dall’andamento dei prezzi nel tempo. L’attributo Codice Tipo Misura definisce il tipo di misura che viene agganciato dal processo di fatturazione. Ciò permette di introdurre un livello di disaccoppiamento tra tariffe e misure; ad una singola misura, identificata da un Codice Tipo Misura, possono essere applicate diverse tariffe. Esempio concreto è il caso della fatturazione del gas naturale; al consumo si applicano due algoritmi diversi: la tariffa di consumo e l’imposta erariale. Il Codice tipo misura è stato preventivamente ed opportunamente codificato. 33
  • 34. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Tariffa Codice univoco che rappresenta la tariffa (o l’imposta) Intero Identificatore dell’entità No Descrizione Tariffa Descrizione della tariffa (o imposta) Testo No Codice Algoritmo Applicato Definisce il codice dell’algoritmo di fatturazione che viene applicato. Intero Riferimento all’entità Algoritmo. No Codice Voce Fattura Codice della voce creata in fattura. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 10 “CodiceVoceFattura”. No Codice Tipo Misura Definisce il tipo di misura che il sistema di fatturazione ricerca per applicare la tariffa. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 7 “CodiceTipoMisura”. No Flag Dettagli Variazione Definisce se l’algoritmo di calcolo deve creare i dettagli di fatturazione per ogni variazione del periodo di validità Booleano S: crea dettagli N: non crea dettagli No Flag Dettagli Prezzo Definisce se l’algoritmo di calcolo deve creare i dettagli di fatturazione per ogni fascia di prezzo Booleano S: crea dettagli N: non crea dettagli No Flag Sconti applicabili Definisce se possono essere applicati degli sconti. Booleano S: applicabili N: non applicabili No Segue la lista dei valori che sono stati configurati a sistema per l’attributo Codice Tipo Misura. Codice Tipo Misura Descrizione 1 Misura di consumo acqua in Mc 34
  • 35. 2 Misura di consumo gas in Mc 3 Misura di consumo in kWh 4 Misura di tempo in mesi da calcolare come differenza delle due date che definiscono l’intervallo di misurazione 5 Misura di tempo in giorni da calcolare come differenza delle due date che definiscono l’intervallo di misurazione 6 Misura di superficie in mq 7 Numero intero, numero di persone. 8 Misura di potenza in kW 9 Misura di consumo in kVarh 10 Misura di tempo in ore, minuti e secondi 3.2.14. Relazione Periodo di Validità Tariffaria E’ la relazione che permette di gestire l’evoluzione nel tempo dei prezzi; ogni tariffa, infatti, pur mantenendo inalterata la logica di calcolo, subisce nel tempo variazioni nei prezzi. Il periodo di validità è caratterizzato essenzialmente da una data di inizio validità e da una data di fine validità. Il motore di fatturazione dovrà tener conto delle variazioni tariffarie rendendo compatibili i periodi di validità tariffaria ed i periodi di rilevazione delle misure da fatturare, eventualmente suddividendo questi ultimi in modo da applicare alle misure il prezzo corretto. Ovviamente i periodi di validità tariffaria devono avere proprietà di continuità; questa specificità è garantita dai moduli software che gestiscono l’impianto tariffario in quanto il motore di fatturazione non può operare scelte in merito. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa. No 35
  • 36. Codice Periodo Validità Identificatore. Identifica univocamente per ogni tariffa, l’occorrenza della relazione. Intero No Data Inizio Validità Data di inizio validità del periodo Data No Data Fine Validità Data di fine validità del periodo Data Se null allora il periodo non ha limite temporale superiore. Si Codice voce fattura Codice della voce che viene generata dal sistema di fatturazione Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 10 “CodiceVoceFattura”. No 3.2.15. Entità Prezzo L’attributo Prezzo Applicato definisce l’importo unitario da applicare alla misura da fatturare. Gli attributi Limite Inferiore e Limite Superiore introducono la possibilità di fatturare per fasce, cioè di suddividere la misura rilevata su più fasce caratterizzate dall’applicazione di prezzi diversi. La relazione è “uno a n”, quindi possono esserci per ogni periodo di validità n diverse fasce di prezzo identificate da un Codice Fascia progressivo con valori da uno a n, e da un intervallo di valori continuo limitato dagli attributi Limite Inferiore e Limite Superiore. Le due tecniche di suddivisione dei consumi sono quella “a riempimento” che attribuisce tutto il consumo alla fascia n prima di iniziare a riempire la fascia n+1 e quella “proporzionale” che attribuisce il consumo nelle varie fasce proporzionalmente ai giorni fatturati (gli algoritmi sono descritti opportunamente nella fase di stesura del codice). Nel caso in cui non si preveda differenziazione di prezzo, allora sarà presente un’unica occorrenza di questa entità. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Tariffa Identificatore. Intero Riferimento all’entità Tariffa. No Codice Variazione Tariffaria Identificatore. Intero Riferimento al periodo di validità No 36
  • 37. tariffario Codice Fascia Tariffaria Identificatore. Numero progressivo che determina la fascia. Intero No Limite Inferiore Definisce il limite inferiore a partire dal quale viene applicato il prezzo specificato. Reale Si Limite Superiore Definisce il limite superiore di consumo fino al quale applicare il prezzo. Reale Si Prezzo Applicato Definisce il prezzo da applicare alla misura rilevata. Reale No Codice Voce Fattura Codice della voce che viene generata dal sistema di fatturazione. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 10 “CodiceVoceFattura”. No 3.2.16. Entità Algoritmo Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Algoritmo Identificatore dell’entità. Intero I codici devono essere opportunamente predefiniti, rappresentano dei driver di fatturazione. No Versione Algoritmo Versione. Serve a dare profondità storica all’entità. Da utilizzare solo a livello descrittivo, in quanto versioni diverse dello stesso algoritmo devono essere identificate Intero No 37
  • 38. da codici diversi. Descrizione Algoritmo Breve descrizione delle funzionalità dell’algoritmo. Testo No Segue la lista degli algoritmi progettati e la relativa codifica. La creazione di nuovi algoritmi di calcolo comporta la scrittura del codice, la codifica nella tabella Algoritmo, l’associazione alle tariffe e l’implementazione dello stato contrattuale al fine di garantire l’adeguata infrastruttura al motore di fatturazione. Codice Algoritmo Descrizione 1 Moltiplicazione della misura rilevata per il prezzo unitario (espresso in €/unità di misura) utilizzabile per misure che variano con continuità, ad esempio nel calcolo dei corrispettivi per fognatura e depurazione. Il calcolo deve essere anche rapportato al numero di giorni ai quali è riferita la misura. 2 Suddivisione del consumo in scaglioni a riempimento, e quindi applicazione di prezzi diversi per fascia; ad esempio calcolo della quota consumo nella fattura del servizio di fornitura di gas. 3 Moltiplicazione del periodo di rilevazione (espresso in giorni o mesi) per il prezzo unitario e per un attributo che rappresenta la misura del servizio, (prezzo espresso in €/gg*unità di misura); ad esempio la quota potenza del servizio elettrico (prezzo * giorni * potenza impegnata) oppure calcolo nolo fatture acqua (prezzo * giorni * numero unità abitative). La costante moltiplicativa può essere unitaria, in tal caso l’algoritmo calcola il semplice prodotto del numero di giorni rilevati * il prezzo unitario. Da utilizzare per misure che rappresentano intervalli temporali. 38
  • 39. 4 Suddivisione del consumo in scaglioni proporzionali, e quindi applicazione di prezzi diversi per fascia; ad esempio calcolo della quota consumo nella fattura del servizio di fornitura di acqua potabile. Di seguito è riepilogata l’applicabilità degli algoritmi ai tipi di misura. Entità fisiche che variano con continuità Intervalli puntuali di tempo Grandezze discrete Intervallo temporale di rilevazione Algoritmo01 Si No No No Algoritmo02 Si No No No Algoritmo03 No No No Si Algoritmo04 Si No No No Sviluppi futuri No Si Si No In appendice D è specificata la configurazione delle tariffe e degli algoritmi da applicare ad ogni singolo servizio. 3.2.17. Relazione Piano Tariffario Stabilisce il legame tra la struttura tariffaria ed il cliente determinando le tariffe che saranno applicate alle misure assegnate al cliente. Definisce anche l’aliquota IVA, che quindi può variare in funzione del cliente e della tariffa. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Contratto Identificatore Intero Riferimento all’entità Contratto. No Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa. No 39
  • 40. Codice IVA Codice dell’aliquota IVA da applicare alla voce di fatturazione generata. Intero Riferimento all’entità Imposta. No Flag Fatturare Definisce se la tariffa è applicabile in fatturazione Booleano N: no S: si No 3.2.18. Relazione Trattamento Economico Questa relazione implementa la possibilità di applicare degli sconti ad ogni singola tariffa applicata al cliente. E’ caratterizzata dalla presenza di un periodo di validità e dalla possibilità di sospensione del trattamento di favore. Le date di inizio trattamento e fine trattamento devono sempre essere presenti, perché non si prevede la gestione di un trattamento illimitato. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Trattamento Identificatore Intero No Codice Cliente Codice del cliente al quale applicare il tratt. Intero Riferimento all’entità contratto. No Codice Tariffa Codice della tariffa da scontare Intero Riferimento all’entità tariffa. No Codice Sconto Codice sconto applicato Intero Riferimento all’entità Sconti No Data inizio Data inizio periodo di applicazione Data No Data fine Data fine periodo di applicazione Data No Limite importo Limite massimo di importo scontabile Reale Si Limite consumo Limite massimo di consumo scontabile Reale Si Totale Importo Totale importo già scontato nelle fatture precedenti. Reale Si Totale Consumo Totale consumo già scontato nelle fatture precedenti. Reale Si 40
  • 41. Percentuale massima Percentuale massima dell’importo fatturato che può essere scontata su ogni singola fattura. Reale No Flag sospensione Definisce se il trattamento è sospeso. Booleano N: no - S: Si No Flag Attivo Definisce se il trattamento è applicabile (da applicare in fatturazione). Booleano N: no - S: Si No 3.2.19. Entità Sconto L’entità Sconto definisce l’anagrafica degli sconti gestiti dal sistema. Il motore di fatturazione è in grado di applicare su ogni singola tariffa sconti sugli importi o sui consumi. Si suppone che più forme di sconto non siano cumulabili sulla stessa tariffa. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Sconto Identificatore Intero No Descrizione Descrizione della forma di sconto Testo No Codice Tipologia Sconto Definisce se lo sconto va applicato sul consumo o sul prezzo. Intero 1: sconto sul consumo 2: sconto sul prezzo No Codice Tipologia temporale Definisce il criterio temporale di applicazione dello sconto. Intero 1: periodo limitato 2: per una singola fattura No 3.2.20. Entità Imposta Valore Aggiunto 41
  • 42. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Imposta Identificatore Intero No Descrizione Imposta Descrizione Testo No Valore Imposta Valore Intero No Segue la lista delle occorrenze dell’entità che devono essere configurate affinché il sistema funzioni correttamente. Codice Imposta Descrizione Valore 1 IVA 10% 10 2 IVA 20% 20 3 Non imponibile 0 4 Esente 0 3.2.21. Relazione Periodo Di Rilevazione Misure La relazione Periodo di Rilevazione Misure definisce il periodo nel corso del quale le misure sono state rilevate ed assume un ruolo d’importanza fondamentale nel processo di fatturazione in quanto disaggrega la misura dai vincoli temporali; il motore di fatturazione dovrà accedere ai consumi solo attraverso il periodo di rilevazione. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Periodo Temporale Identificatore Intero No Codice Tipo Misura Definisce il tipo di misura. Il processo di fatturazione ricerca per ogni tariffa attribuita al contratto, un solo tipo misura da Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 7 “CodiceTipoMisura”. No 42
  • 43. associare. Codice Cliente Cliente al quale sono associate le rilevazioni. Intero Riferimento all’entità cliente No Flag Fatturabile Definisce se l’elemento è fatturabile. Booleano S: si; N: no No Flag Fatturato Definisce se l’elemento è fatturato Booleano S: si; N: no No Data Inizio Periodo Rilevazione E’ la data che definisce l’inizio del periodo di rilevazione delle misure associate. Data No Data Fine Periodo Rilevazione E’ la data che definisce la fine del periodo di rilevazione delle misure associate. Data No Unità di Misura Definisce l’unità di misura delle rilevazioni effettuate. Testo No Sistema di provenienza Definisce il sistema o modulo di provenienza. Testo No 3.2.22. Entità Misura di Consumo Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice misura Identificatore Intero No Codice Periodo di Rilevazione Riferimento alla data di rilevazione. Intero Identificatore della relazione Periodo di rilevazione. No Misura Valore della misura Reale No 43
  • 44. Costante moltiplicativa Eventuali costanti moltiplicative del consumo. Reale No Flag Anomalia Specifica se la voce è da fatturare o presenta anomalie. Booleano S: Misura valida A: anomalia, misura da non fatturare No Codice Sistema di Misura Codice che identifica l’elemento di misura per sistemi di fatturazione di consumi misurati. Intero Identificatore dell’entità sistema di misura. No Descrizione Per Bolletta Descrizione proveniente dal sistema di rilevazione che opzionalmente può essere riportata in fattura. Testo Si Tipo Lettura Definisce se la lettura è effettiva o stimata Intero E: Effettiva; A:Stimata No 3.2.23. Entità Misura di intervalli temporali Questa entità è progettata per consentire lo sviluppo futuro di algoritmi per la fatturazione dei consumi telefonici. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice misura Identificatore Intero No Codice Periodo di Rilevazione Riferimento alla data di rilevazione. Intero Identificatore della relazione Periodo di rilevazione. No Numero chiamato Identifica il chiamato Intero No Billing number Soggetto che paga la chiamata Intero No Data Inizio Conversazione Data di inizio della chiamata Data No 44
  • 45. Durata conversazione Misura della durata della conversazione. Tempo No Flag Anomalia Specifica se la voce è da fatturare o presenta anomalie. Booleano S: Misura valida A: anomalia, misura da non fatturare No Chiamante Identifica il chiamante intero No Descrizione Per Bolletta Descrizione proveniente dal sistema di rilevazione che opzionalmente può essere riportata in fattura. Testo Si 3.2.24. Entità Misura di grandezze discrete Questa entità è progettata per consentire lo sviluppo futuro di algoritmi di fatturazione di tariffe ed imposte calcolate su parametri quali la superficie, il numero di persone e qualsiasi altra misura rappresentabile da un valore intero. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice misura Identificatore Intero No Codice Periodo di Rilevazione Riferimento alla data di rilevazione. Intero Identificatore della relazione Periodo di rilevazione. No Misura Discreta Valore della misura. Reale No Data Inizio Misura Discreta Data di inizio misura Data No Data Fine Misura Discreta Data di fine misura Data No Flag Anomalia Specifica se la voce è da fatturare o presenta anomalie. Booleano S: Misura valida A: anomalia, misura da non fatturare No Descrizione Per Bolletta Descrizione proveniente dal sistema di rilevazione che opzionalmente può essere Testo Si 45
  • 46. riportata in fattura. 3.2.25. Relazione Sistema di Misura Descrive l’apparato fisico utilizzato per la rilevazione delle misure, per i servizi che lo prevedono (solo per misure di consumo). Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Sistema di Misura Identificatore Intero No Codice Cliente Cliente al quale è associato il sistema di misura. Intero Riferimento all’entità cliente No Descrizione Descrizione. Testo No Marca Marca – non codificata Testo No Modello Modello – non codificato Testo No Stato Apparato Definisce lo stato del sistema di misura. Testo I: installato e funzionante. R: rimosso C: chiuso No Anno di produzione Anno di produzione Intero No Data di Installazione Data di installazione. Data No Data di Rimozione Data di rimozione. Data Si Note tecniche Note tecniche rilevanti. Testo Si 3.2.26. Entità Fattura 46
  • 47. Identifica la testata della fattura; contiene tutte le informazioni di carattere generale pertinenti al documento, in particolare il codice numerico progressivo di identificazione, lo stato, e le date di emissione, scadenza e pagamento. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Fattura Identificatore Intero No Data Emissione Data di emissione Data No Data Scadenza Data di scadenza Data No Data Pagamento Data di pagamento Data No Codice Cliente Cliente al quale viene intestata la fattura. Intero Codice identificativo dell’entità cliente. No Stato fattura Definisce lo stato della fattura Testo E: emessa, P: pagata, A: annullata, C: contestata dal cliente, V: pagata parzialmente. No Imponibile totale Reale No Imposta totale Reale No Importo totale Reale No Importo Pagato Reale No 3.2.27. Entità dettaglio di fatturazione E’ l’oggetto creato dal processo di fatturazione a fronte di ogni misura rilevata ed è caratterizzato da tutti gli attributi che contribuiscono a definire l’importo fatturato. Deve mantenere la storia della tariffa, del periodo tariffario, del prezzo applicato, dell’eventuale applicazione di sconti, del codice e del valore dell’imposta, del periodo di rilevazione e della misura. Di particolare importanza sono le due date Data Inizio Misura Fatturata e Data Fine Misura Fatturata che identificano il periodo temporale fatturato e che possono non combaciare con le date del periodo di rilevazione poiché questi possono essere suddivisi dal processo di fatturazione per essere ricondotti ai periodi di validità tariffaria. 47
  • 48. Le occorrenze di questa entità formano una struttura gerarchica a tre livelli; il livello più alto è rappresentato dal totale calcolato su tutto il periodo di rilevazione, il livello intermedio rappresenta il totale calcolato per ogni variazione tariffaria, il livello più basso rappresenta il totale calcolato sulla singola fascia tariffaria. Per ogni misura quindi l’applicativo può generare fino a tre occorrenze di elementi di fatturazione in funzione della configurazione della tariffa. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice dettaglio di fatturazione Identificatore Intero No Codice fattura Fattura alla quale appartiene il dettaglio. Intero Riferimento all’entità Fattura. No Codice tariffa applicata Tariffa applicata Intero Riferimento all’entità Tariffa. No Codice periodo validità tari Decorrenza tariffaria Intero Riferimento al periodo tariffario. Si Codice prezzo applicato Prezzo applicato Intero Riferimento alla fascia tariffaria. Si Codice Periodo di Rilevazione Periodo di rilevazione della misura. Intero Riferimento al periodo di rilevazione misure. No Codice misura Misura fatturata Intero Riferimento alla misura. Se null allora il dettaglio si riferisce ad un periodo di rilevazione senza misura Si Codice Voce Fattura Codice della descrizione dell’elemento. Da significato al valore calcolato. Intero Il codice deve essere presente nella tabella “Descrizione Codici” con Tipo Codice = 10 “CodiceVoceFattura”. No Livello struttura Definisce il livello di gerarchia nella struttura. Intero 1: valore che si riferisce alla fascia di prezzo 2: valore aggregato per periodo di validità tariffaria No 48
  • 49. 3: valore aggregato per tariffa Importo fatturato Reale No Quantità fatturata Reale No Data Inizio Misura fatturata Data No Data Fine Misura fatturata Data No Importo scontato Reale No Quantità scontata Reale No Importo lordo sconti Importo al lordo degli sconti Reale No Quantità lordo sconti Quantità al lordo degli sconti Reale No Codice IVA IVA Applicata Intero Riferimento alla tabella Imposta No Codice Trattamento Econom. Intero Riferimento alla tabella Trattamento Economico IVA calcolata Reale No Prezzo Prezzo applicato Reale No Descrizione Per Bolletta Rappresenta il campo descrizione che opzionalmente può essere riportato nell’entità fattura per questa voce. Testo Si 3.2.28. Entità Imposta Fatturata Definisce per ogni fattura, il riepilogo dell’imposta fatturata suddiviso per aliquota. Nome Attributo Descrizione Tipo Vincoli o valori previsti Null Codice Fattura Identificatore Intero Riferimento all’entità Fattura No Codice Imposta Identificatore Intero Riferimento all’entità Imposta No Imponibile Imponibile totale Reale No 49
  • 50. Valore Imposta Aliquota Intero No Imposta fatturata Valore dell’imposta Reale No 3.2.29. Entità Stato Anagrafico Fatturato Questa entità è stata progettata per mantenere traccia degli attributi dell’anagrafica che nel tempo sono soggetti a variazione e che non possono modificarsi nella fattura. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Fattura Identificatore Intero Riferimento all’entità Fattura No Codice Indirizzo residenza Codice dell’indirizzo di residenza nel momento di emissione della fattura Intero Riferimento all’entità Indirizzo No Codice Indirizzo recapito Codice dell’indirizzo di recapito nel momento di emissione della fattura Intero Riferimento all’entità Indirizzo No Codice anagrafica terzi Codice dell’anagrafica terzi nel momento di emissione della fattura Intero Riferimento all’entità Anagrafica No Codice anagrafica banca Codice dell’anagrafica di domiciliazione bancaria nel momento di emissione della fattura Intero Riferimento all’entità Anagrafica No 3.2.30. Entità Valore Cliente Fatturato Questa entità ha lo scopo di salvare lo stato contrattuale presente nel momento in cui è esaminato dall’applicativo di fatturazione. 50
  • 51. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Fattura Identificatore Intero Riferimento all’entità Fattura No Codice Cliente Identificatore Intero Riferimento all’entità Cliente No Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa No Codice Valore Cliente Identificatore. Codice che identifica il valore contrattuale. Intero Riferimento al valore contrattuale No Valore E’ il valore associato all’occorrenza dell’entità da memorizzare. Reale No 3.2.31. Entità Data Cliente Fatturata Questa entità ha lo scopo di salvare lo stato contrattuale presente nel momento in cui è esaminato dall’applicativo di fatturazione. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Fattura Identificatore Intero Riferimento all’entità Fattura No Codice Cliente Identificatore Intero Riferimento all’entità Cliente No Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa No Codice Data Contrattuale Identificatore. Codice che identifica la data. Intero Riferimento alla data contrattuale No Data Data da memorizzare. Data No 3.2.32. Entità Errori di Fatturazione Questa entità viene utilizzata per la gestione delle anomalie che si presentano nel corso del processo di fatturazione; ogni eccezione prodotta dall’applicativo è registrata. 51
  • 52. Nome attributo Descrizione Tipo Vincoli o valori previsti Null Codice Errore Identificatore Intero No Codice Contratto Cliente esaminato dalla procedura di fatturazione. Intero Riferimento all’entità Cliente No Data Errore Data nella quale si è verificato l’errore Data No Codice Anomalia Codice dell’errore prodotto. Intero No Classe Errore Tipologia di errore Testo S: errore di sistema L: errore nella logica applicativa No Procedura Generatrice Errore Nome della procedura che ha generato l’errore Testo No Descrizione Descrizione dell’errore Testo No 3.2.33. Entità Descrizione Codici Nome attributo Descrizione Tipo Vincoli o valori previsti Null Tipo Codice Identificatore. Intero No Codice Identificatore. Intero No Descrizione Descrizione Testo No Segue la lista dei Tipi di codice che sono codificati a sistema per garantirne il corretto funzionamento. 52
  • 53. Tipo codice Significato del codice 5 Codice Valore Contrattuale 1 Codice Tipo Servizio 6 Codice Data Contrattuale 2 Codice Tipo Utilizzo 7 Codice Tipo Misura 3 Codice Gruppo Fatturazione 10 Codice Voce Fattura 4 Codice Classe Anagrafica 16 Codice Stato Cliente 53
  • 54. 3.3. Il modello logico della base di dati L’ingegneria informatica, così come tutte le altre discipline scientifiche, fa largo uso di modelli, intesi come schemi teorici capaci di rappresentare gli aspetti salienti della realtà in esame. Uno dei compiti principali di un sistema informatico è quello di raccogliere, organizzare, elaborare e conservare in modo permanente informazioni riferite all’oggetto di studio. Risulta quindi particolarmente importante definire a priori un modello dei dati, cioè un insieme di concetti da utilizzare per organizzare i dati di interesse e descriverne la struttura in modo che risulti comprensibile ad un elaboratore. Il modello logico adottato nello sviluppo della base di dati della fatturazione è quello relazionale che si basa su solidi fondamenti teorici, l’algebra relazionale, ed è caratterizzato dal fatto che tutte le informazioni sono organizzate in tabelle e tutte le operazioni danno come risultato tabelle. Fu proposto per la prima volta in una pubblicazione scientifica nel 1970 da E.F. Codd allo scopo di superare le limitazioni dei modelli gerarchico e reticolare che non consentivano di realizzare una proprietà fondamentale per le basi di dati come quella dell’indipendenza dei dati. Il problema dell’indipendenza dei dati è stato per decenni alla base dell’evoluzione dei moderni DBMS commerciali; lo sviluppo della teoria ha portato all’architettura standard ANSI/SPARC a tre livelli: a) lo schema fisico che rappresenta la base di dati per mezzo di strutture fisiche di memorizzazione; b) lo schema logico che porta alla descrizione della base dati nel modello logico dello specifico DBMS; c) lo schema esterno che permette di organizzare le informazioni in modo utile alle varie applicazioni che vi operano; Conseguenza fondamentale dell’articolazione in livelli di astrazione è l’indipendenza dei dati che permette “ad utenti e applicativi che utilizzano una base di dati di interagire ad un elevato livello di astrazione” rendendoli indipendenti sia dalla struttura fisica sia da quella logica. Si ottiene quindi che il livello logico e quello esterno sono indipendenti dalla realizzazione fisica e che il livello esterno è indipendente da quello logico. In questa fase progettuale il modello concettuale opportunamente ristrutturato è utilizzato per generare lo schema logico della base di dati; tutti gli oggetti dello schema Entità – Relazioni sono quindi tradotti in opportuni oggetti del modello Relazionale, in base ad un insieme di regole predefinite. Lo schema ER originario è già stato oggetto di una prima ristrutturazione nel corso della fase di stesura della documentazione. In particolare sono già state rimosse le generalizzazioni, scelti gli identificatori ed accorpate entità e relazioni in modo da ottimizzare lo schema logico. 54
  • 55. Poiché l’unico oggetto utilizzabile nel modello relazionale è la Relazione, tutte le Entità e le Relationship dello schema ER saranno tradotte in Relazioni, caratterizzate da un identificatore, da un insieme di attributi e da opportune regole d’integrità referenziale. Lo schema logico che viene presentato di seguito è anche il risultato di un ulteriore processo di normalizzazione e quindi può essere considerato qualitativamente corretto e adatto ad essere utilizzato per la realizzazione dello schema della base di dati. In questa fase si è posta particolare attenzione alla traduzione delle Relationship, in particolare si è adottata la seguente norma comportamentale: ogni entità che partecipa alla relationship viene tradotta in una relazione dello schema logico. La relationship, sempre che non sia dotata di attributi rilevanti, viene assorbita da una delle entità che vi partecipano e non viene tradotta nello schema logico. 3.4. Traduzione dallo schema concettuale allo schema logico relazionale La seguente tabella definisce la corrispondenza tra i concetti dello schema concettuale e quelli dello schema logico. E’ integrata con l’indicazione degli identificatori e della tecnica di codifica degli attributi. Modello E/R Tipo di oggetto (E/R) Relazione (modello logico) Prefisso codifica attributi Identificatore Soggetto E Anagrafica Ana_ Ana_Codice Indirizzo E Indirizzo Ind_ Ind_Codice Comune E Comune Com_ Com_Codice Stradario R Stradario Str_ Str_Codice Residenza R Residenza Res_ Res_CodiceAnagrafic a+Res_CodiceIndRes idenza Recapito R Recapito Rec_ Rec_CodiceAnagrafic a+Rec_CodiceIndRec apito Recapito presso terzi R Recapito Terzi Rtz_ Rtz_CodiceAnagrafic a+Rtz_CodiceTerzi Domiciliazione Bancaria R DomiciliazioneBancaria Dmb_ Dmb_CodiceAnagrafi ca+Dmb_CodiceAna Banca 55
  • 56. Banca E Banca Ban_ Ban_Codice Cliente E Cliente Cli_ Cli_Codice Valore contrattuale E Valore Cliente Vlc_ Vlc_CodiceCliente+ Vlc_CodiceTariffa+ Vlc_CodiceValore Data contrattuale E Data Cliente Dta_ Dta_CodiceCliente+ Dta_CodiceTariffa + DtaCodiceData Addebito fisso E Addebito Add_ Add_Codice Tariffa E Tariffa Tar_ Tar_Codice Periodo di validità tariffaria R Validità Tariffa Pvt_ Pvt_CodicePeriodoV alidita Prezzo E Prezzo Prz_ Prz_CodiceTariffa+P rz_CodiceVarTariffa +Prz_CodiceFasciaTa riffa Algoritmo E Algoritmo Alg_ Alg_Codice Piano tariffario R Piano Tariffario Pta_ Pta_CodiceCliente+P ta_CodiceTariffa Trattamento economico R TrattamentoEconomico Tra_ Tra_Codice Sconto E Sconto Sco_ Sco_Codice Imposta valore aggiunto E Imposta Iva_ Iva_Codice Periodo di rilevazione misure R PeriodoRilevazione Prl_ Prl_Codice Misura di consumo E MisuraConsumo Mco_ Mco_Codice Misura di intervalli temporali E MisuraTempo Mte_ Mte_Codice Misura di grandezze discrete E MisuraDiscreta Mdi_ Mdi_Codice Sistema di misura R ApparatoMisura Apm_ Apm_Codice Fattura E Fattura Fat_ Fat_Codice Imposta fatturata E ImpostaFatt Ifa_ Ifa_CodiceFattura+If a_CodiceImposta Dettaglio di E DettaglioFatt Det_ Det_Codice 56
  • 57. fatturazione Stato anagrafico fatturato E StatoAnaFatt Saf_ Saf_CodiceFattura Valore cliente fatturato E ValoreFatt Vcf_ Vcf_CodiceFattura+ Vcf_CodiceCliente+ Vcf_CodiceTariffa+ Vcf_CodiceValore Data cliente fatturata E DataFatt Dfa_ Dfa_CodiceFattura+ Dfa_CodiceCliente+ Dfa_CodiceTariffa+ Dfa_CodiceData Errori di fatturazione E ErroriFatturazione Err_ Err_CodiceErrore Descrizione codici E Codici Cod_ Cod_TipoCodice+ Cod_Codice L’appendice C contiene la descrizione precisa di tutte le tabelle implementate nel Data Base. 3.5. Tavola dei volumi e tavola degli accessi La seguente tabella definisce il volume misurato in numero di occorrenze previste a regime per ogni tabella ed il numero medio di accessi che l’applicazione effettua nella creazione di una fattura. Le due tavole si riferiscono ad un’azienda che opera in un mercato caratterizzato dai seguenti indicatori: • 10.000 clienti; • quattro servizi e quindi in totale 40.000 contratti; • fatturazioni a periodicità bimestrale, quindi sei fatture per contratto all’anno per un totale di 240.000 fatture; • l’applicazione in media di tre tariffe a fattura (consumo, quota fissa e imposta); • variazioni tariffarie trimestrali per imposta e consumo e annuali per la quota fissa; in totale per ogni cliente nove variazioni tariffarie l’anno; • per ogni fattura un totale di nove fasce di prezzo; • uno sconto applicato almeno una volta in fattura, quindi 240.000 sconti; 57
  • 58. I volumi si riferiscono quindi ad un totale di 40.000 contratti, valore costante negli anni, e ad un anno di fatturazione che corrisponde a 240.000 fatture emesse. Modello E/R Tipo di oggetto (E/R) Relazione (modello logico) Volume Accessi (per la generazione di una fattura) Soggetto E Anagrafica 10.000 3 (L) Indirizzo E Indirizzo 40.000 3 (L) Comune E Comune 100 4 (L) Stradario R Stradario 1.000 4(L) Residenza R Residenza 10.000 1 (L) Recapito R Recapito 1.000 1 (L) Recapito presso terzi R Recapito Terzi 500 1 (L) Domiciliazione Bancaria R DomiciliazioneBancaria 5.000 1 (L) Banca E Banca 100 1 (L) Cliente E Cliente 40.000 1 (L) Valore contrattuale E Valore Cliente 480.000 5 (L) – 5 (S) Data contrattuale E Data Cliente 480.000 5 (L) – 5 (S) Addebito fisso E Addebito 320.000 3 (S) Tariffa E Tariffa 100 3 (L) Periodo di validità tariffaria R Validità Tariffa 400 6 (L) Prezzo E Prezzo 1500 10 (L) Algoritmo E Algoritmo 6 3 (L) Piano tariffario R Piano Tariffario 40.000 1 (L) Trattamento economico R TrattamentoEconomico 40.000 3 (L) – 3 (S) Sconto E Sconto 100 3 (L) Imposta valore aggiunto E Imposta 4 4 (L) Periodo di rilevazione misure R PeriodoRilevazione 480.000 2 (L) - 2 (S) Misura di consumo E MisuraConsumo 180.000 1 (L) Misura di intervalli temporali E MisuraTempo 4.000.000 50 (L) 58
  • 59. Misura di grandezze discrete E MisuraDiscreta 20.000 2 (L) Sistema di misura R ApparatoMisura 30.000 1 (L) Fattura E Fattura 240.000 4 (S) Imposta fatturata E ImpostaFatt 960.000 3 (S) Dettaglio di fatturazione E DettaglioFatt 4.560.000 19 (S) Stato anagrafico fatturato E StatoAnaFatt 240.000 1 (S) Valore cliente fatturato E ValoreFatt 2.400.000 5 (S) Data cliente fatturata E DataFatt 2.400.000 5 (S) Errori di fatturazione E ErroriFatturazione 0 0 Descrizione codici E Codici 50 10 (L) 59
  • 60. 4. Realizzazione del prodotto 4.1. Contesto Tecnologico L’applicazione è stata sviluppata utilizzando il Data Base Management System Microsoft SQL Server 2005 Express su piattaforma Microsoft (sistemi operativi Windows XP, Windows Vista o Windows 2000 - 2003 Server). Gli unici vincoli Hardware sono rappresentati dai requisiti minimi di installazione di SQL Server Express. Per il Porting in produzione è necessaria l’adozione di una versione di SQL Server completa di licenza d’uso (e quindi senza limiti nelle dimensioni del data base) e sono da valutare le caratteristiche minime del Server che deve ospitare la base di dati, caratteristiche che sono determinate essenzialmente dal numero di clienti e fatture da gestire. 4.2. Lo schema del data base Lo schema logico del database è costituito da 34 tabelle. Di seguito sono rappresentati i diagrammi delle principali macro aree nelle quali è strutturato l’archivio: l’anagrafica dei soggetti, il cliente, la fattura, la tariffa e il dettaglio di fatturazione. L’esposizione termina con le due tabelle di servizio, “Codici” e “Errori Fatturazione” e con il diagramma completo dell’archivio, che per ragioni di semplicità riporta solamente i campi chiave delle relazioni. L’appendice C inoltre contiene la definizione precisa di tutte le tabelle che sono state implementate a sistema. 60
  • 61. Di seguito è rappresentato il diagramma riguardante l’anagrafica dei soggetti e le tabelle correlate: Banca Ban_Codice Ban_CodiceAnagrafica Ban_BancaAttiva Ban_CodiceABI Ban_CodiceCAB Ban_DataInizio Ban_DataFine FK_Banca_Anagrafica Cliente Cli_Codice Cli_CodiceAnagrafica Cli_CodiceTipoServizio Cli_CodiceTipoUtilizzo Cli_CodiceGruppoFatt Cli_CodiceFornitura Cli_CodiceStatoCliente Cli_AnnoContratto Cli_NumeroContratto Cli_DataContratto Cli_IdFornitura Cli_ClienteFatturabile Cli_NoteTecniche Cli_NoteAmministrative FK_Cliente_Anagrafica Comune Com_Codice Com_Comune Com_CAP Com_Provincia Com_Stato DomiciliazioneBancaria Dmb_CodiceAnagrafica Dmb_CodiceAnaBanca Dmb_ContoCorrente Dmb_CodieceIBAN Dmb_DomiciliazioneAttiva Dmb_DataInizio Dmb_DataFine FK_DomiciliazioneBancaria_Anagrafica FK_DomiciliazioneBancaria_AnaBanca I ndirizzo Ind_Codice Ind_CodiceStradario Ind_Civico Ind_Interno FK_Cliente_Indirizzo Recapito Rec_CodiceAnagrafica Rec_CodiceIndRecapito Rec_recapitoAttivo Rec_DataInizio Rec_DataFine FK_Recapito_Anagrafica FK_Recapito_Indirizzo RecapitoTerzi Rtz_CodiceAnagrafica Rtz_CodiceTerzi Rtz_RecapitoAttiv Rtz_DataInizio Rtz_DataFine FK_RecapitoTerzi_Anagrafica FK_RecapitoTerzi_AnagraficaTerzi Residenza Res_CodiceAnagrafica Res_codiceIndResidenza Res_ResidenzaAttiva Res_DataInizio Res_DataFine FK_Residenza_Anagrafica FK_Residenza_Indirizzo Stradario Str_Codice Str_CodiceComune Str_Descrizione FK_Stradario_Comune FK_Indirizzo_Stradario Anagrafica Ana_Codice Ana_TipoPersona Ana_CodiceClasse Ana_Demominazione Ana_codiceFiscale Ana_PartitaIVA Ana_FlagFatturazione Ana_DataNascita Ana_Sesso 61
  • 62. Di seguito è rappresentato il diagramma riguardante l’entità cliente e le tabelle ad esso correlate: Addebito Add_codice Add_CodiceCliente Add_Descrizione Add_Valore Add_codiceIVA Add_AddebitoFatturato Add_AddebitoDaFatturare Add_SistemaProvenienza Add_CodiceFattura Anagrafica Ana_Codice Ana_TipoPersona Ana_CodiceClasse Ana_Demominazione Ana_codiceFiscale Ana_PartitaIVA Ana_FlagFatturazione Ana_DataNascita Ana_Sesso ApparatoMisur a Apm_Codice Apm_CodiceCliente Apm_Descrizione Apm_Marca Apm_Modello Apm_AnnoProduzione Apm_StatoApparato Apm_DataInstallazione Apm_DataRimozione Apm_NoteTecniche Cliente Cli_Codice Cli_CodiceAnagrafica Cli_CodiceTipoServizio Cli_CodiceTipoUtilizzo Cli_CodiceGruppoFatt Cli_CodiceFornitura Cli_CodiceStatoCliente Cli_AnnoContratto Cli_NumeroContratto Cli_DataContratto Cli_IdFornitura Cli_ClienteFatturabile Cli_NoteTecniche Cli_NoteAmministrative FK_Cliente_Anagrafica FK_ApparatoMisura_Cliente FK_Addebito_cliente DataCliente Dta_CodiceCliente Dta_CodiceTariffa Dta_CodiceData Dta_Data FK_DataCliente_Cliente Fattura Fat_Codice Fat_DataEmissione Fat_DataScadenza Fat_DataPagamento Fat_CodiceCliente Fat_TotaleImponibile Fat_TotaleImposta Fat_TotaleFattura Fat_TotalePagato Fat_StatoFattura FK_Fattura_Cliente MisuraConsumo Mco_Codice Mco_PeriodoRilevazione Mco_Misura Mco_Anomalia Mco_ApparatoMisura Mco_Descrizione Mco_CostanteMoltiplicativa Mco_TipoLettura FK_MisuraConsumo_Apparato MisuraDiscr eta Mdi_Codice Mdi_PeriodoRilevazione Mdi_Misura Mdi_DataInizioMisura Mdi_DataFineMisura Mdi_Anomalia Mdi_Descrizione PeriodoRilevazione Prl_Codice Prl_CodiceCliente Prl_CodiceTipoMisura Prl_Fatturabile Prl_DataInizioRilevazione Prl_DataFineRilevazione Prl_SistemaProvenienza Prl_UnitàMisura Prl_Fatturato FK_MisuraConsumo_PeriodoRilevazione FK_PeriodoRilevazione_Cliente FK_MisuraDiscreta_PeriodoRilevazione PianoTar iffario Pta_CodiceCliente Pta_CodiceTariffa Pta_CodiceIVA Pta_TariffaDaFatt FK_PianoTariffario_Cliente Sconto Sco_Codice Sco_Descrizione Sco_TipoSconto Sco_TipoScadenza Tariffa Tar_Codice Tar_Descrizione Tar_CodiceAlgoritmo Tar_CodiceTipoMisura Tar_CodiceVoceFattura Tar_CreadettVariazione Tar_CreaDettFascia Tar_applicaSconti FK_PianoTariffario_Tariffa FK_DataCliente_Tariffa Tr attamentoEconomico Tra_Codice Tra_CodiceCliente Tra_CodiceTariffa Tra_CodiceSconto Tra_ScontoApplicabile Tra_DataInizio Tra_DataFine Tra_ScontoSospeso Tra_LimiteImporto Tra_LimiteConsumo Tra_ImportoScontato Tra_ConsumoScontato Tra_Percentuale FK_TrattamentoEconomico_Tariffa FK_TrattamentoEconomico_Cliente FK_TrattamentoEconomico_Sconto ValoreCliente Vlc_CodiceCliente Vlc_CodiceTariffa Vlc_CodiceValore Vlc_Valore FK_ValoreCliente_Tariffa FK_ValoreCliente_Cliente MisuraTempo Mte_Codice Mte_PeriodoRilevazione Mte_Chiamato Mte_BillingNumber Mte_DataInizioConversazione Mte_DurataConversazione Mte_Anomalia Mte_Chiamante Mte_Descrizione FK_MisuraTempo_PeriodoRilevazione 62
  • 63. Di seguito è rappresentato il diagramma riguardante le tabelle che costituiscono l’articolazione tariffaria: Algoritmo Alg_Codice Alg_Descrizione Alg_Versione PianoTariffario Pta_CodiceCliente Pta_CodiceTariffa Pta_CodiceIVA Pta_TariffaDaFatt FK_Tariffa_Algoritmo FK_PianoTariffario_Tariffa TrattamentoEconomico Tra_Codice Tra_CodiceCliente Tra_CodiceTariffa Tra_CodiceSconto Tra_ScontoApplicabile Tra_DataInizio Tra_DataFine Tra_ScontoSospeso Tra_LimiteImporto Tra_LimiteConsumo Tra_ImportoScontato Tra_ConsumoScontato Tra_Percentuale FK_TrattamentoEconomico_Tariffa ValiditaTariffa Pvt_CodiceTariffa Pvt_CodicePeriodoValidità Pvt_DataInizioValidità Pvt_DataFineValidità Pvt_CodiceVoceFattura FK_ValiditaTariffa_Tariffa FK_PianoTariffario_Cliente FK_TrattamentoEconomico_Cliente Prezzo Prz_CodiceTariffa Prz_CodiceVarTariffa Prz_CodiceFasciaTariffaria Prz_LimiteInferiore Prz_LimiteSuperiore Prz_Prezzo Prz_VoceFattura FK_Prezzo_Tariffa FK_Prezzo_VarTariffa I mposta Iva_Codice Iva_Descrizione Iva_Valore FK_PianoTariffario_Imposta Tariffa Tar_Codice Tar_Descrizione Tar_CodiceAlgoritmo Tar_CodiceTipoMisura Tar_CodiceVoceFattura Tar_CreadettVariazione Tar_CreaDettFascia Tar_applicaSconti Cliente Cli_Codice Cli_CodiceAnagrafica Cli_CodiceTipoServizio Cli_CodiceTipoUtilizzo Cli_CodiceGruppoFatt Cli_CodiceFornitura Cli_CodiceStatoCliente Cli_AnnoContratto Cli_NumeroContratto Cli_DataContratto Cli_IdFornitura Cli_ClienteFatturabile Cli_NoteTecniche Cli_NoteAmministrative Sconto Sco_Codice Sco_Descrizione Sco_TipoSconto Sco_TipoScadenza FK_TrattamentoEconomico_Sconto 63
  • 64. Di seguito è rappresentato il diagramma riguardante le tabelle che contribuiscono a formare la fattura: ValoreFatt Vcf_CodiceFattura Vcf_CodiceCliente Vcf_CodiceValore Vcf_Valore StatoAnaFatt Saf_CodiceFattura Saf_CodiceResidenza Saf_CodiceRecapito Saf_CodiceAnaTerzi Saf_CodiceDomiciliazione Saf_CodiceAnagrafica I mpostaFatt Ifa_CodiceFattura Ifa_CodiceImposta Ifa_Imponibile Ifa_Imposta Ifa_AliquotaImposta Fattura Fat_Codice Fat_DataEmissione Fat_DataScadenza Fat_DataPagamento Fat_CodiceCliente Fat_TotaleImponibile Fat_TotaleImposta Fat_TotaleFattura Fat_TotalePagato Fat_StatoFattura FK_ValoreFatt_Fattura FK_ImpostaFatt_Fattura FK_StatoAnaFatt_Fattura DettaglioFatt Det_Codice Det_CodiceFattura Det_CodiceTariffa Det_CodiceValiditàTariffa Det_CodicePrezzo Det_CodicePeriodoRilev Det_CodiceMisura Det_CodiceVoce Det_LivelloStruttura Det_ImportoFatt Det_QtaFatt Det_DataIniFatt Det_DataFinFatt Det_ImportoScontato Det_QtaScontata Det_CodiceImposta Det_ImpostaFatt Det_Descrizione Det_Prezzo FK_DettaglioFattFattura DataFatt Dfa_CodiceFattura Dfa_CodiceCliente Dfa_CodiceData Dfa_Data FK_DataFatt_Fattura Addebito Add_codice Add_CodiceCliente Add_Descrizione Add_Valore Add_codiceIVA Add_AddebitoFatturato Add_AddebitoDaFatturare Add_SistemaProvenienza Add_CodiceFattura Cliente Cli_Codice Cli_CodiceAnagrafica Cli_CodiceTipoServizio Cli_CodiceTipoUtilizzo Cli_CodiceGruppoFatt Cli_CodiceFornitura Cli_CodiceStatoCliente Cli_AnnoContratto Cli_NumeroContratto Cli_DataContratto Cli_IdFornitura Cli_ClienteFatturabile Cli_NoteTecniche Cli_NoteAmministrative FK_DataFatt_Cliente FK_ValoreFatt_Cliente FK_Fattura_Cliente FK_Addebito_cliente 64
  • 65. Di seguito è rappresentato il diagramma riguardante il dettaglio di fatturazione e le tabelle ad esso correlatele: DettaglioFatt Det_Codice Det_CodiceFattura Det_CodiceTariffa Det_CodiceValiditàTariffa Det_CodicePrezzo Det_CodicePeriodoRilev Det_CodiceMisura Det_CodiceVoce Det_LivelloStruttura Det_ImportoFatt Det_QtaFatt Det_DataIniFatt Det_DataFinFatt Det_ImportoScontato Det_QtaScontata Det_CodiceImposta Det_ImpostaFatt Det_Descrizione Det_Prezzo PeriodoRilevazione Prl_Codice Prl_CodiceCliente Prl_CodiceTipoMisura Prl_Fatturabile Prl_DataInizioRilevazione Prl_DataFineRilevazione Prl_SistemaProvenienza Prl_UnitàMisura Prl_Fatturato I mposta Iva_Codice Iva_Descrizione Iva_Valore Fattura Fat_Codice Fat_DataEmissione Fat_DataScadenza Fat_DataPagamento Fat_CodiceCliente Fat_TotaleImponibile Fat_TotaleImposta Fat_TotaleFattura Fat_TotalePagato Fat_StatoFattura Prezzo Prz_CodiceTariffa Prz_CodiceVarTariffa Prz_CodiceFasciaTariffaria Prz_LimiteInferiore Prz_LimiteSuperiore Prz_Prezzo Prz_VoceFattura Tariffa Tar_Codice Tar_Descrizione Tar_CodiceAlgoritmo Tar_CodiceTipoMisura Tar_CodiceVoceFattura Tar_CreadettVariazione Tar_CreaDettFascia Tar_applicaSconti ValiditaTariffa Pvt_CodiceTariffa Pvt_CodicePeriodoValidità Pvt_DataInizioValidità Pvt_DataFineValidità Pvt_CodiceVoceFattura FK_ValiditaTariffa_Tariffa FK_Prezzo_VarTariffa FK_DettaglioFatt_Validità FK_Prezzo_Tariffa FK_DettaglioFatt_Tariffa FK_DettaglioFatt_PeriodoRilev FK_DettaglioFatt_imposta FK_DettaglioFattFattura FK_DettaglioFatt_Prezzo Le tabelle Codici ed ErroriFatturazione sono tabelle di servizio, utilizzate dall’applicativo per riportare errori avvenuti nel corso dell’elaborazione e per recuperare le descrizioni dei codici utilizzati. Codici Cod_TipoCodice Cod_Codice Cod_Descrizione ErroriFatturazione Err_CodiceErrore Err_CodiceContratto Err_DataErrore Err_CodiceAnomalia Err_Classe Err_Procedura Err_Descrizione 65
  • 66. Di seguito è rappresentato il diagramma completo della base di dati. Per semplicità di esposizione sono visualizzati solo i campi chiave e quelli che contribuiscono a definire l’integrità referenziale del data base. Addebito Add_codice Add_CodiceCliente Add_codiceIVA Algoritmo Alg_Codice Anagrafica Ana_Codice ApparatoMisura Apm_Codice Apm_CodiceCliente Banca Ban_Codice Ban_CodiceAnagrafica Cliente Cli_Codice Cli_CodiceAnagrafica Cli_CodiceFornitura Codici Cod_TipoCodice Cod_Codice Comune Com_Codice DataCliente Dta_CodiceCliente Dta_CodiceTariffa Dta_CodiceData DataFatt Dfa_CodiceFattura Dfa_CodiceCliente Dfa_CodiceTariffa Dfa_CodiceData DettaglioFat t Det_Codice Det_CodiceFattura Det_CodiceTariffa Det_CodiceValiditàTariffa Det_CodicePrezzo Det_CodicePeriodoRilev Det_CodiceImposta DomiciliazioneBancaria Dmb_CodiceAnagrafica Dmb_CodiceAnaBanca ErroriFatturazione Err_CodiceErrore Fattura Fat_Codice Fat_CodiceCliente I mposta Iva_Codice I mpostaFatt Ifa_CodiceFattura Ifa_CodiceImposta Ifa_Imponibile Ifa_Imposta Ifa_AliquotaImposta I ndirizzo Ind_Codice Ind_CodiceStradario Ind_Civico Ind_Interno MisuraConsumo Mco_Codice Mco_PeriodoRilevazione Mco_ApparatoMisura MisuraDiscreta Mdi_Codice Mdi_PeriodoRilevazione MisuraTelefonica Mte_Codice Mte_PeriodoRilevazione PeriodoRilevazione Prl_Codice Prl_CodiceCliente PianoTariffario Pta_CodiceCliente Pta_CodiceTariffa Pta_CodiceIVA Pta_TariffaDaFatt Prezzo Prz_CodiceTariffa Prz_CodiceVarTariffa Prz_CodiceFasciaTariff... Recapito Rec_CodiceAnagrafica Rec_CodiceIndRecapito Rec_recapitoAttivo Rec_DataInizio Rec_DataFine RecapitoTerzi Rtz_CodiceAnagrafica Rtz_CodiceTerzi Residenza Res_CodiceAnagrafica Res_codiceIndResidenza Res_ResidenzaAttiva Res_DataInizio Res_DataFine Sconto Sco_Codice StatoAnaFatt Saf_CodiceFattura Saf_CodiceResidenza Saf_CodiceRecapito Saf_CodiceAnaTerzi Saf_CodiceDomiciliazione Saf_CodiceAnagrafica Stradario Str_Codice Str_CodiceComune Str_Descrizione Tariffa Tar_Codice Tar_CodiceAlgoritmo TrattamentoEconomico Tra_Codice Tra_CodiceCliente Tra_CodiceTariffa Tra_CodiceSconto ValiditaTariffa Pvt_CodiceTariffa Pvt_CodicePeriodoVali... ValoreCliente Vlc_CodiceCliente Vlc_CodiceTariffa Vlc_CodiceValore Vlc_Valore ValoreFatt Vcf_CodiceFattura Vcf_CodiceCliente Vcf_CodiceTariffa Vcf_CodiceValore Vcf_Valore 66
  • 67. 4.3. Lo schema esterno della base di dati Lo schema esterno del data base permette di realizzare un ulteriore livello d’indipendenza dei dati; è costituito da viste generate dalle tabelle dello schema logico ed è utilizzato direttamente dalle applicazioni che elaborano il dato. Alcune viste sono utilizzate dal processo di fatturazione, altre sono indispensabili per eseguire controlli sui dati inseriti e per la visualizzazione della fattura e degli attributi del cliente. Di seguito sono elencate e descritte le viste sviluppate: Vw_ClienteCompleto Utilizzata dal processo di fatturazione per estrarre le informazioni relative al soggetto, al contratto, al cliente ed alla residenza. E’ costituita dalle tabelle Cliente, Anagrafica, Residenza, Indirizzo, Stradario e Comune. Vw_DomCompleta Utilizzata dal processo di fatturazione per estrarre l’eventuale domiciliazione bancaria e gli attributi dell’istituto di credito. E’ costituita dalle tabelle Anagrafica (inclusa due volte, in qualità di anagrafica del cliente ed anagrafica della banca), Banca e Domiciliazione Bancaria. Vw_IndirizzoCompleto Utilizzata per estrarre l’indirizzo completo e per realizzare query di controllo sugli indirizzi inseriti in archivio. E’ costituita dalle tabelle Indirizzo, Stradario e Comune. Vw_MisureReport Utilizzata dagli algoritmi di calcolo che operano sulle misure di consumi. E’ costituita dalle tabelle PeriodoRilevazione, Tariffa e Misura Consumo. Vw_MisureRilevate Utilizzata dal programma di fatturazione per associare le misure rilevate da fatturare alle relative tariffe di fatturazione. L’associazione è effettuata utilizzando il campo CodiceTipoMisura. E’ costituita dalle tabelle Tariffa, Piano Tariffario, Cliente, Algoritmo e Periodorilevazione. Vw_ScontiApplicati 67