Elaborato Tesi

126
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

description

Elaborato Tesi

Transcript of Elaborato Tesi

Page 1: Elaborato Tesi

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

________________________________________________________________________

Page 2: Elaborato Tesi

Anno Accademico 2007-2008

A Riccardo, Licia e Mamma

Page 3: Elaborato Tesi

Indice

1. Introduzione.............................................................................................................V1.1. Struttura dell’elaborato..................................................................................VII

2. Definizione delle specifiche di progetto...................................................................82.1. Analisi e raccolta dei requisiti...........................................................................8

2.2. Descrizione del processo di fatturazione................................................14

3. Progettazione della base di dati...............................................................................173.1. Progettazione concettuale...............................................................................17

3.2. Ristrutturazione e documentazione degli schemi ER.....................................22

3.2.1. Entità Soggetto........................................................................................24

3.2.2. Entità Indirizzo........................................................................................25

3.2.3. Entità Comune........................................................................................26

3.2.4. Relazione Stradario.................................................................................26

3.2.5. Relazione Residenza...............................................................................27

3.2.6. Relazione Recapito.................................................................................28

3.2.7. Relazione Recapito Presso Terzi............................................................28

3.2.8. Relazione Domiciliazione Bancaria........................................................29

3.2.9. Entità Banca............................................................................................30

3.2.10. Entità Cliente..........................................................................................31

3.2.11. Lo stato contrattuale................................................................................33

3.2.11.1. Entità Valore Contrattuale..............................................................333.2.11.2. Entità Data Contrattuale..................................................................34

3.2.12. Entità Addebito Fisso..............................................................................35

3.2.13. Entità Tariffa...........................................................................................35

3.2.14. Relazione Periodo di Validità Tariffaria.................................................38

3.2.15. Entità Prezzo...........................................................................................39

3.2.16. Entità Algoritmo.....................................................................................40

3.2.17. Relazione Piano Tariffario......................................................................42

3.2.18. Relazione Trattamento Economico.........................................................43

3.2.19. Entità Sconto...........................................................................................44

3.2.20. Entità Imposta Valore Aggiunto.............................................................45

3.2.21. Relazione Periodo Di Rilevazione Misure..............................................45

3.2.22. Entità Misura di Consumo......................................................................47

3.2.23. Entità Misura di intervalli temporali.......................................................48

III

Page 4: Elaborato Tesi

3.2.24. Entità Misura di grandezze discrete........................................................49

3.2.25. Relazione Sistema di Misura..................................................................49

3.2.26. Entità Fattura...........................................................................................50

3.2.27. Entità dettaglio di fatturazione................................................................51

3.2.29. Entità Stato Anagrafico Fatturato...........................................................54

3.2.30. Entità Valore Cliente Fatturato...............................................................55

3.2.31. Entità Data Cliente Fatturata...................................................................55

3.2.32. Entità Errori di Fatturazione...................................................................56

3.2.33. Entità Descrizione Codici.......................................................................57

3.3. Il modello logico della base di dati.................................................................58

3.4. Traduzione dallo schema concettuale allo schema logico relazionale............59

3.5. Tavola dei volumi e tavola degli accessi........................................................61

4. Realizzazione del prodotto......................................................................................644.1. Contesto Tecnologico.....................................................................................64

4.2. Lo schema del data base.................................................................................64

4.3. Lo schema esterno della base di dati...............................................................71

4.4. La Logica di Business.....................................................................................73

5. Conclusioni.............................................................................................................796. Bibliografia.............................................................................................................81Appendice A – Contenuto del Compact Disk allegato...................................................82

IV

Page 5: Elaborato Tesi

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.

V

Page 6: Elaborato Tesi

Archivio Fatturazione

Moduli diinterfaccia

Applicativo difatturazione

Sistemi diacquisizione

misure e gestionecliente

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.

VI

Page 7: Elaborato Tesi

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.

VII

Page 8: Elaborato Tesi

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;

8

Page 9: Elaborato Tesi

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.

9

Page 10: Elaborato Tesi

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.

10

Page 11: Elaborato Tesi

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 dientità 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

11

Page 12: Elaborato Tesi

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;

12

Page 13: Elaborato Tesi

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

13

Page 14: Elaborato Tesi

evento, e quindi in una singola fatturazione. Sono inoltre caratterizzate dall’esistenza o

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

14

Page 15: Elaborato Tesi

residenza deve produrre una rilevazione di errore ed impedire la produzione del

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.

15

Page 16: Elaborato Tesi

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

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.

16

Page 17: Elaborato Tesi

3. Progettazione della base di dati

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.

17

Page 18: Elaborato Tesi

Soggetto

(0,N)

Piano tariffario

Cliente

Misura

Fattura

Dettaglio di fatturazione

(1,N)

Sistema di misura

Trattamento economico

Valorizzazione

Contratto

Tariffa

ScontoPartite monetarie

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)

Servizioerogato

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.

Valore contrattuale

Stato Contrattuale

VolumeLimiteFattore di correzione

Data contrattuale

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

18

Page 19: Elaborato Tesi

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)

Servizioerogato

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.

19

Page 20: Elaborato Tesi

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 divalidità

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.

Misura

Misura di entitàche variano in modo discreto

Misura di intervalli temporali

Misura di grandezze fisiche che variano con continuità

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

20

Page 21: Elaborato Tesi

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.

Titolare di contratto

(0,N)

(0,N)

(1,N)

Indirizzo

Destinatario comunicazioni

Istituto di Credito

Soggetto

Recapito presso terzi

Domicilio bancario

Residenza

(0,N)

(0,N)

(0,N)

(0,N)

(0,N)

Persona giuridica

Persona fisica

Recapito

Comune

Stradario(1,N)

(1,1)

Attributi 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.

Cliente

Ubicazionefornitura

Indirizzo(1,1) (0,N) Comune

Stradario

(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.

21

Page 22: Elaborato Tesi

Fattura

Cliente

Stato anagrafico

Indirizzo

Soggetto

Residenza

Recapito

Recapito presso terzi

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)

Stato anagraficofatturato

Dettaglio di fatturazione

Imposta fatturata

Partite monetarie

Valorizzazione

Valorizzazione

(1,N)

(1,1)(1,1)

(0,N)(1,1)

Stato contrattuale

fatturato

Servizioerogato

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.

22

Page 23: Elaborato Tesi

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.

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.

23

Page 24: Elaborato Tesi

3.2.1. Entità SoggettoL’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

Intero Il codice deve essere presente nella tabella

“Descrizione Codici” con Tipo Codice = 4

“CodiceClasseAnagrafica”.

No

24

Page 25: Elaborato Tesi

informazioni.

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

25

Page 26: Elaborato Tesi

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

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

26

Page 27: Elaborato Tesi

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 ResidenzaLa 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

27

Page 28: Elaborato Tesi

3.2.6. Relazione RecapitoLa 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

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 TerziLa 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,

28

Page 29: Elaborato Tesi

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 BancariaLa 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 è No

29

Page 30: Elaborato Tesi

istituto di credito

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à BancaQuesta 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

Codice CAB Coordinate bancarie: codice CAB Intero No

Data inizio Data inizio validità Data No

Data fine Data fine validità Data Si

30

Page 31: Elaborato Tesi

3.2.10. Entità ClienteL’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

fatturazione

Definisce un codice per la selezione delle

utenze da fatturare nei processi di

fatturazione di gruppo.

Intero Il codice deve essere presente nella tabella

“Descrizione Codici” con Tipo Codice = 3

“CodiceGruppoFatturazione”.

No

Codice Indirizzo fornitura Identificativo del luogo di fornitura del Intero Identificatore dell’entità Indirizzo No

31

Page 32: Elaborato Tesi

servizio, indirizzo che tipicamente coincide

con l’indirizzo di residenza del cliente.

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

32

Page 33: Elaborato Tesi

1 Cliente Attivo Fatturabile

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 ContrattualeQuesta 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

33

Page 34: Elaborato Tesi

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

Valore E’ il valore associato all’entità. Reale No

3.2.11.2. Entità Data ContrattualeL’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

34

Page 35: Elaborato Tesi

3.2.12. Entità Addebito FissoConsente 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

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

35

Page 36: Elaborato Tesi

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.

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 Booleano S: crea dettagli No

36

Page 37: Elaborato Tesi

creare i dettagli di fatturazione per ogni

variazione del periodo di validità

N: non crea dettagli

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

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.

37

Page 38: Elaborato Tesi

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à TariffariaE’ 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

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 =

No

38

Page 39: Elaborato Tesi

10 “CodiceVoceFattura”.

3.2.15. Entità PrezzoL’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à

tariffario

No

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

39

Page 40: Elaborato Tesi

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

da codici diversi.

Intero No

Descrizione Algoritmo Breve descrizione delle funzionalità Testo No

40

Page 41: Elaborato Tesi

dell’algoritmo.

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.

4 Suddivisione del consumo in scaglioni proporzionali, e quindi applicazione di prezzi diversi

41

Page 42: Elaborato Tesi

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 TariffarioStabilisce 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

42

Page 43: Elaborato Tesi

Codice Tariffa Identificatore Intero Riferimento all’entità Tariffa. No

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 EconomicoQuesta 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

43

Page 44: Elaborato Tesi

Totale Importo Totale importo già scontato nelle fatture

precedenti.

Reale Si

Totale Consumo Totale consumo già scontato nelle fatture

precedenti.

Reale Si

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à ScontoL’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 Intero 1: periodo limitato No

44

Page 45: Elaborato Tesi

applicazione dello sconto.

2: per una singola fattura

3.2.20. Entità Imposta Valore Aggiunto

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

45

Page 46: Elaborato Tesi

3.2.21. Relazione Periodo Di Rilevazione MisureLa 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

associare.

Intero Il codice deve essere presente nella tabella

“Descrizione Codici” con Tipo Codice = 7

“CodiceTipoMisura”.

No

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

46

Page 47: Elaborato Tesi

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

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

47

Page 48: Elaborato Tesi

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

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

48

Page 49: Elaborato Tesi

3.2.24. Entità Misura di grandezze discreteQuesta 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

riportata in fattura.

Testo Si

3.2.25. Relazione Sistema di Misura

49

Page 50: Elaborato Tesi

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à FatturaIdentifica 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.

50

Page 51: Elaborato Tesi

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 fatturazioneE’ 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.

51

Page 52: Elaborato Tesi

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

No

52

Page 53: Elaborato Tesi

2: valore aggregato per periodo di validità

tariffaria

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

53

Page 54: Elaborato Tesi

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

Valore Imposta Aliquota Intero No

Imposta fatturata Valore dell’imposta Reale No

3.2.29. Entità Stato Anagrafico FatturatoQuesta 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 Intero Riferimento all’entità Anagrafica No

54

Page 55: Elaborato Tesi

emissione della fattura

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 FatturatoQuesta 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 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 FatturataQuesta entità ha lo scopo di salvare lo stato contrattuale presente nel momento in cui è esaminato dall’applicativo di fatturazione.

55

Page 56: Elaborato Tesi

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 FatturazioneQuesta entità viene utilizzata per la gestione delle anomalie che si presentano nel corso del processo di fatturazione; ogni eccezione prodotta

dall’applicativo è registrata.

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

56

Page 57: Elaborato Tesi

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.

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

57

Page 58: Elaborato Tesi

58

Page 59: Elaborato Tesi

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.

59

Page 60: Elaborato Tesi

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_CodiceAnagrafi

ca+Rec_CodiceIndRe

capito

Recapito presso

terzi

R Recapito Terzi Rtz_ Rtz_CodiceAnagrafic

a+Rtz_CodiceTerzi

Domiciliazione R DomiciliazioneBancaria Dmb_ Dmb_CodiceAnagraf

60

Page 61: Elaborato Tesi

Bancaria ica+Dmb_CodiceAna

Banca

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

E MisuraDiscreta Mdi_ Mdi_Codice

61

Page 62: Elaborato Tesi

discrete

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

fatturazione

E DettaglioFatt Det_ Det_Codice

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;

62

Page 63: Elaborato Tesi

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;

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)

63

Page 64: Elaborato Tesi

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)

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)

64

Page 65: Elaborato Tesi

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.

65

Page 66: Elaborato Tesi

Di seguito è rappresentato il diagramma riguardante l’anagrafica dei soggetti e le tabelle

correlate:

BancaBan_Codice

Ban_CodiceAnagrafica

Ban_BancaAttiva

Ban_CodiceABI

Ban_CodiceCAB

Ban_DataInizio

Ban_DataFine

FK_Banca_Anagrafica

ClienteCli_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

ComuneCom_Codice

Com_Comune

Com_CAP

Com_Provincia

Com_Stato

DomiciliazioneBancariaDmb_CodiceAnagrafica

Dmb_CodiceAnaBanca

Dmb_ContoCorrente

Dmb_CodieceIBAN

Dmb_DomiciliazioneAttiva

Dmb_DataInizio

Dmb_DataFine

FK_DomiciliazioneBancaria_Anagrafica

FK_DomiciliazioneBancaria_AnaBanca

IndirizzoInd_Codice

Ind_CodiceStradario

Ind_Civico

Ind_Interno

FK_Cliente_Indirizzo

RecapitoRec_CodiceAnagrafica

Rec_CodiceIndRecapito

Rec_recapitoAttivo

Rec_DataInizio

Rec_DataFine

FK_Recapito_Anagrafica

FK_Recapito_Indirizzo

RecapitoTerziRtz_CodiceAnagrafica

Rtz_CodiceTerzi

Rtz_RecapitoAttiv

Rtz_DataInizio

Rtz_DataFine

FK_RecapitoTerzi_Anagrafica

FK_RecapitoTerzi_AnagraficaTerzi

ResidenzaRes_CodiceAnagrafica

Res_codiceIndResidenza

Res_ResidenzaAttiva

Res_DataInizio

Res_DataFine

FK_Residenza_Anagrafica

FK_Residenza_Indirizzo

StradarioStr_Codice

Str_CodiceComune

Str_Descrizione

FK_Stradario_Comune FK_Indirizzo_Stradario

AnagraficaAna_Codice

Ana_TipoPersona

Ana_CodiceClasse

Ana_Demominazione

Ana_codiceFiscale

Ana_PartitaIVA

Ana_FlagFatturazione

Ana_DataNascita

Ana_Sesso

66

Page 67: Elaborato Tesi

Di seguito è rappresentato il diagramma riguardante l’entità cliente e le tabelle ad esso

correlate:

AddebitoAdd_codice

Add_CodiceCliente

Add_Descrizione

Add_Valore

Add_codiceIVA

Add_AddebitoFatturato

Add_AddebitoDaFatturare

Add_SistemaProvenienza

Add_CodiceFattura

AnagraficaAna_Codice

Ana_TipoPersona

Ana_CodiceClasse

Ana_Demominazione

Ana_codiceFiscale

Ana_PartitaIVA

Ana_FlagFatturazione

Ana_DataNascita

Ana_Sesso

ApparatoMisuraApm_Codice

Apm_CodiceCliente

Apm_Descrizione

Apm_Marca

Apm_Modello

Apm_AnnoProduzione

Apm_StatoApparato

Apm_DataInstallazione

Apm_DataRimozione

Apm_NoteTecniche

ClienteCli_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

DataClienteDta_CodiceCliente

Dta_CodiceTariffa

Dta_CodiceData

Dta_Data

FK_DataCliente_Cliente

FatturaFat_Codice

Fat_DataEmissione

Fat_DataScadenza

Fat_DataPagamento

Fat_CodiceCliente

Fat_TotaleImponibile

Fat_TotaleImposta

Fat_TotaleFattura

Fat_TotalePagato

Fat_StatoFattura

FK_Fattura_Cliente

MisuraConsumoMco_Codice

Mco_PeriodoRilevazione

Mco_Misura

Mco_Anomalia

Mco_ApparatoMisura

Mco_Descrizione

Mco_CostanteMoltiplicativa

Mco_TipoLettura

FK_MisuraConsumo_Apparato

MisuraDiscretaMdi_Codice

Mdi_PeriodoRilevazione

Mdi_Misura

Mdi_DataInizioMisura

Mdi_DataFineMisura

Mdi_Anomalia

Mdi_Descrizione

PeriodoRilevazionePrl_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

PianoTariffarioPta_CodiceCliente

Pta_CodiceTariffa

Pta_CodiceIVA

Pta_TariffaDaFatt

FK_PianoTariffario_Cliente

ScontoSco_Codice

Sco_Descrizione

Sco_TipoSconto

Sco_TipoScadenza

TariffaTar_Codice

Tar_Descrizione

Tar_CodiceAlgoritmo

Tar_CodiceTipoMisura

Tar_CodiceVoceFattura

Tar_CreadettVariazione

Tar_CreaDettFascia

Tar_applicaSconti

FK_PianoTariffario_Tariffa

FK_DataCliente_Tariffa

TrattamentoEconomicoTra_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

ValoreClienteVlc_CodiceCliente

Vlc_CodiceTariffa

Vlc_CodiceValore

Vlc_Valore

FK_ValoreCliente_Tariffa

FK_ValoreCliente_Cliente

MisuraTempoMte_Codice

Mte_PeriodoRilevazione

Mte_Chiamato

Mte_BillingNumber

Mte_DataInizioConversazione

Mte_DurataConversazione

Mte_Anomalia

Mte_Chiamante

Mte_Descrizione

FK_MisuraTempo_PeriodoRilevazione

67

Page 68: Elaborato Tesi

Di seguito è rappresentato il diagramma riguardante le tabelle che costituiscono

l’articolazione tariffaria:

AlgoritmoAlg_Codice

Alg_Descrizione

Alg_Versione

PianoTariffarioPta_CodiceCliente

Pta_CodiceTariffa

Pta_CodiceIVA

Pta_TariffaDaFatt

FK_Tariffa_Algoritmo FK_PianoTariffario_Tariffa

TrattamentoEconomicoTra_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

ValiditaTariffaPvt_CodiceTariffa

Pvt_CodicePeriodoValidità

Pvt_DataInizioValidità

Pvt_DataFineValidità

Pvt_CodiceVoceFattura

FK_ValiditaTariffa_Tariffa

FK_PianoTariffario_Cliente

FK_TrattamentoEconomico_Cliente

PrezzoPrz_CodiceTariffa

Prz_CodiceVarTariffa

Prz_CodiceFasciaTariffaria

Prz_LimiteInferiore

Prz_LimiteSuperiore

Prz_Prezzo

Prz_VoceFattura

FK_Prezzo_Tariffa

FK_Prezzo_VarTariffa

ImpostaIva_Codice

Iva_Descrizione

Iva_Valore

FK_PianoTariffario_Imposta

TariffaTar_Codice

Tar_Descrizione

Tar_CodiceAlgoritmo

Tar_CodiceTipoMisura

Tar_CodiceVoceFattura

Tar_CreadettVariazione

Tar_CreaDettFascia

Tar_applicaSconti

ClienteCli_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

ScontoSco_Codice

Sco_Descrizione

Sco_TipoSconto

Sco_TipoScadenza

FK_TrattamentoEconomico_Sconto

68

Page 69: Elaborato Tesi

Di seguito è rappresentato il diagramma riguardante le tabelle che contribuiscono a

formare la fattura:

ValoreFattVcf_CodiceFattura

Vcf_CodiceCliente

Vcf_CodiceValore

Vcf_Valore

StatoAnaFattSaf_CodiceFattura

Saf_CodiceResidenza

Saf_CodiceRecapito

Saf_CodiceAnaTerzi

Saf_CodiceDomiciliazione

Saf_CodiceAnagrafica

ImpostaFattIfa_CodiceFattura

Ifa_CodiceImposta

Ifa_Imponibile

Ifa_Imposta

Ifa_AliquotaImposta

FatturaFat_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

DettaglioFattDet_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

DataFattDfa_CodiceFattura

Dfa_CodiceCliente

Dfa_CodiceData

Dfa_Data

FK_DataFatt_Fattura

AddebitoAdd_codice

Add_CodiceCliente

Add_Descrizione

Add_Valore

Add_codiceIVA

Add_AddebitoFatturato

Add_AddebitoDaFatturare

Add_SistemaProvenienza

Add_CodiceFattura

ClienteCli_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

69

Page 70: Elaborato Tesi

Di seguito è rappresentato il diagramma riguardante il dettaglio di fatturazione e le tabelle

ad esso correlatele:

DettaglioFattDet_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

PeriodoRilevazionePrl_Codice

Prl_CodiceCliente

Prl_CodiceTipoMisura

Prl_Fatturabile

Prl_DataInizioRilevazione

Prl_DataFineRilevazione

Prl_SistemaProvenienza

Prl_UnitàMisura

Prl_Fatturato

ImpostaIva_Codice

Iva_Descrizione

Iva_Valore

FatturaFat_Codice

Fat_DataEmissione

Fat_DataScadenza

Fat_DataPagamento

Fat_CodiceCliente

Fat_TotaleImponibile

Fat_TotaleImposta

Fat_TotaleFattura

Fat_TotalePagato

Fat_StatoFattura

PrezzoPrz_CodiceTariffa

Prz_CodiceVarTariffa

Prz_CodiceFasciaTariffaria

Prz_LimiteInferiore

Prz_LimiteSuperiore

Prz_Prezzo

Prz_VoceFattura

TariffaTar_Codice

Tar_Descrizione

Tar_CodiceAlgoritmo

Tar_CodiceTipoMisura

Tar_CodiceVoceFattura

Tar_CreadettVariazione

Tar_CreaDettFascia

Tar_applicaScontiValiditaTariffa

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.

CodiciCod_TipoCodice

Cod_Codice

Cod_Descrizione

ErroriFatturazioneErr_CodiceErrore

Err_CodiceContratto

Err_DataErrore

Err_CodiceAnomalia

Err_Classe

Err_Procedura

Err_Descrizione

70

Page 71: Elaborato Tesi

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.

AddebitoAdd_codice

Add_CodiceCliente

Add_codiceIVA

AlgoritmoAlg_Codice

AnagraficaAna_Codice

ApparatoMisuraApm_Codice

Apm_CodiceCliente

BancaBan_Codice

Ban_CodiceAnagrafica

ClienteCli_Codice

Cli_CodiceAnagrafica

Cli_CodiceFornitura

CodiciCod_TipoCodice

Cod_Codice

ComuneCom_Codice

DataClienteDta_CodiceCliente

Dta_CodiceTariffa

Dta_CodiceData

DataFattDfa_CodiceFattura

Dfa_CodiceCliente

Dfa_CodiceTariffa

Dfa_CodiceData

DettaglioFattDet_Codice

Det_CodiceFattura

Det_CodiceTariffa

Det_CodiceValiditàTariffa

Det_CodicePrezzo

Det_CodicePeriodoRilev

Det_CodiceImposta

DomiciliazioneBancariaDmb_CodiceAnagrafica

Dmb_CodiceAnaBanca

ErroriFatturazioneErr_CodiceErrore

FatturaFat_Codice

Fat_CodiceCliente

ImpostaIva_Codice

ImpostaFattIfa_CodiceFattura

Ifa_CodiceImposta

Ifa_Imponibile

Ifa_Imposta

Ifa_AliquotaImposta

IndirizzoInd_Codice

Ind_CodiceStradario

Ind_Civico

Ind_Interno

MisuraConsumoMco_Codice

Mco_PeriodoRilevazione

Mco_ApparatoMisura

MisuraDiscretaMdi_Codice

Mdi_PeriodoRilevazione

MisuraTelefonicaMte_Codice

Mte_PeriodoRilevazione

PeriodoRilevazionePrl_Codice

Prl_CodiceCliente

PianoTariffarioPta_CodiceCliente

Pta_CodiceTariffa

Pta_CodiceIVA

Pta_TariffaDaFatt

PrezzoPrz_CodiceTariffa

Prz_CodiceVarTariffa

Prz_CodiceFasciaTariff...

RecapitoRec_CodiceAnagrafica

Rec_CodiceIndRecapito

Rec_recapitoAttivo

Rec_DataInizio

Rec_DataFine

RecapitoTerziRtz_CodiceAnagrafica

Rtz_CodiceTerzi

ResidenzaRes_CodiceAnagrafica

Res_codiceIndResidenza

Res_ResidenzaAttiva

Res_DataInizio

Res_DataFine

ScontoSco_Codice

StatoAnaFattSaf_CodiceFattura

Saf_CodiceResidenza

Saf_CodiceRecapito

Saf_CodiceAnaTerzi

Saf_CodiceDomiciliazione

Saf_CodiceAnagrafica

StradarioStr_Codice

Str_CodiceComune

Str_Descrizione

TariffaTar_Codice

Tar_CodiceAlgoritmo

TrattamentoEconomicoTra_Codice

Tra_CodiceCliente

Tra_CodiceTariffa

Tra_CodiceSconto

ValiditaTariffaPvt_CodiceTariffa

Pvt_CodicePeriodoVali...

ValoreClienteVlc_CodiceCliente

Vlc_CodiceTariffa

Vlc_CodiceValore

Vlc_Valore

ValoreFattVcf_CodiceFattura

Vcf_CodiceCliente

Vcf_CodiceTariffa

Vcf_CodiceValore

Vcf_Valore

71

Page 72: Elaborato Tesi

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

72

Page 73: Elaborato Tesi

Utilizzata dagli algoritmi di calcolo per verificare l’esistenza di sconti da applicare alla

tariffa in esame. Utilizza le tabelle Sconto, Trattamento Economico, Tariffa e Piano

Tariffario.

Vw_TariffaCompleta

Utilizzata per estrarre la struttura tariffaria completa e realizzare query e report in grado di

visualizzare tutte le informazioni legate alla tariffa, alle decorrenze tariffarie ed alle fasce

di prezzo da applicare. Implementata con le tabelle Tariffa, Prezzo e Validità Tariffa.

Vw_TariffeApplicate

Estrae tutte le tariffe applicate al cliente. Da utilizzare per realizzare query e report

riguardanti il cliente. Implementata con le tabelle Cliente, Piano Tariffario e Tariffa.

Vw_TestataFattura

Estrae tutte le informazioni da visualizzare nella testata della fattura. Realizzata con le

tabelle Fattura, Cliente, Anagrafica, Residenza, Indirizzo, Stradario e Comune.

Vw_Dettaglio

Estrae il dettaglio di fatturazione completo degli attributi della tariffa e dell’imposta.

Utilizzato per la visualizzazione del quadro di dettaglio dei consumi della fattura. Vista

realizzata con le tabelle Dettaglio, Tariffa e Imposta.

Vw_Addebito

Utilizzata per estrarre l’addebito con gli attributi dell’imposta applicata da esporre in

fattura. Vista realizzata con le tabelle Addebito e Imposta.

Vw_Fornitura

Utilizzata per estrarre l’indirizzo completo di fornitura del servizio da esporre in fattura.

Utilizza le tabelle Cliente, Indirizzo, Comune e Stradario.

Vw_RecapitoPerFattura

Utilizzata per estrarre il recapito della fattura da esporre in fattura. Utilizza le tabelle

Recapito, StatoAnaFatt, Indirizzo, Comune e Stradario.

Vw_RiepilogoIVA

Utilizzata per esporre il riepilogo IVA in fattura. Realizzata con le tabelle Imposta e

ImpostaFatt.

73

Page 74: Elaborato Tesi

Vw_ValContrFatt

Utilizzata per esporre in fattura lo stato contrattuale fatturato di interesse. Realizzata con

le tabelle Tariffa, ValoreFatt e Codici.

4.4. La Logica di Business

La logica di business è stata implementata in Transact SQL con il supporto delle Stored

Procedures di SQL Server. Segue la lista documentata delle Stored Procedures realizzate

nell’ambito del progetto.

Fatturazione

Questa procedura costituisce il corpo principale dell’applicativo. Esegue le seguenti

funzionalità:

verifica l’esistenza del cliente, estrae gli attributi del soggetto, del cliente, della

residenza, di un eventuale recapito e domiciliazione bancaria;

scrive il record fattura, impostando i valori monetari a zero (saranno aggiornati

in seguito dagli algoritmi di calcolo);

scrive la struttura dati relativa all’imposta che sarà poi aggiornata

progressivamente dagli algoritmi di calcolo;

scrive lo stato anagrafico;

ricerca e fattura eventuali addebiti e/o accrediti;

ricerca tutte le misure da fatturare attribuite al cliente, associa la relativa tariffa

ed esegue l’algoritmo di fatturazione;

al termine, se non si sono verificati errori di sistema o errori nella logica

applicativa, esegue il “Commit” della transazione.

All’inizio della procedura viene dichiarata la seguente transazione Set transaction isolation level repeatable read;

che permette di bloccare l’accesso alle risorse lette ed aggiornate dal programma.

Qualsiasi anomalia di sistema o nella logica applicativa inibisce la produzione della

fattura, viene visualizzata (se è attiva la flag di debug dell’applicazione) e sempre

registrata nell’apposita tabella di supporto.

Le misure da fatturare vengono estratte utilizzando la vista Vw_MisureRilevate ed il

cursore estrai_misure.

Declare estrai_misure cursor for

74

Page 75: Elaborato Tesi

SELECT [Tar_Codice],[Prl_Codice],[Tar_CodiceAlgoritmo],

[Prl_DataInizioRilevazione],[Prl_DataFineRilevazione],

[Pta_codiceIVA],[Tar_ApplicaSconti],[Tar_CodiceTipoMisura]

FROM [DB_Fatturazione].[dbo].[vw_MisureRilevate]

WHERE Pta_CodiceCliente = @CodiceCliente and Prl_Fatturabile = 1

and Prl_Fatturato = 0 and Pta_TariffaDaFatt = 1

Ogni algoritmo di fatturazione eseguito deve:

estrarre lo stato contrattuale;

eseguire le opportune verifiche di congruità dello stato contrattuale e della

misura da fatturare;

memorizzare lo stato contrattuale così come si presenta, prima del calcolo;

determinare l’eventuale presenza ed applicabilità di sconti;

determinare il prezzo o i prezzi da applicare alla misura; effettuarne la

valorizzazione;

scrivere i dettagli di fatturazione, che sono di tre livelli;

o dettaglio a livello di prezzo;

o dettaglio a livello di decorrenza tariffaria;

o dettaglio a livello di tariffa

gli sconti sono applicati solamente al dettaglio a livello di tariffa;

aggiornare lo stato cliente;

aggiornare il periodo di rilevazione misure a fatturato;

aggiornare la fattura e l’imposta.

ScriviErrore

Procedura che è richiamata ogni qual volta si verifica un errore per registrarlo nella

tabella ErroriFatturazione. Segue la chiamata standard alla procedura:

if @@error <> 0

begin

if @MessaggiFatt = 1 print 'Fatturazione: Errore select @AliquotaIVA'

rollback transaction fatturazione;

execute @Error_Status = ScriviErrore @CodiceCliente, 199, 'S',

'Fatturazione','Errore select @AliquotaIVA'

Return -1

end

La variabile @MessaggiFatt viene impostata all’inizio dell’applicazione e, se attiva,

determina la visualizzazione di tutti i messaggi relativi alla logica del software e ad

eventuali errori che vengono comunque sempre registrati nella tabella ErroriFatturazione.

75

Page 76: Elaborato Tesi

Scrivi Dettaglio

Procedura che viene eseguita dagli algoritmi di calcolo ogni qual volta si tratta di

registrare un dettaglio di fatturazione. Si occupa esclusivamente della funzione di “insert”

in tabella DettaglioFatt. Riceve tutte le informazioni dal chiamante, non esegue alcun tipo

di calcolo.

AggiornaFattura

È utilizzata per aggiornare i campi “totale imponibile”, “totale imposta” e “totale fattura”

del record fattura; viene richiamata dagli algoritmi di fatturazione al termine del calcolo

degli importi dovuti. E’ utilizzata anche per aggiornare il dettaglio IVA.

Algoritmo01

Procedura che implementa il seguente algoritmo di fatturazione: moltiplicazione della

misura rilevata per il prezzo unitario (espresso in €/unità di misura). Il calcolo deve

essere anche rapportato al numero di giorni ai quali è riferita la misura;

Algoritmo03

Procedura che implementa il seguente algoritmo di fatturazione: 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). La

costante moltiplicativa viene letta dallo stato contrattuale, deve sempre esistere per questo

algoritmo, può eventualmente essere unitaria; in tal caso l’algoritmo calcola il semplice

prodotto del numero di giorni rilevati * il prezzo unitario. Set @totaleImpFascia = @totaleImpFascia + round(@mesidafatt *

@zPrz_Prezzo * @Moltiplicatore,2)

Algoritmo02

Procedura che implementa il seguente algoritmo di fatturazione: suddivisione del

consumo in scaglioni a riempimento, e quindi applicazione di prezzi diversi per fascia.

Questo algoritmo è molto simile all’algoritmo04 che sarà descritto a breve. Varia il

metodo utilizzato per determinare il consumo da applicare alla fascia tariffaria, che si

fonda sul confronto con il totale già consumato nel periodo di fatturazione corrente

(@ConsumoCorr):

if @ConsumoCorr < @zPrz_LimiteSuperiore

Begin

set @ConsumoMaxFascia = @ConsumoCorr + @ConsumoResiduo

if @ConsumoMaxFascia <= @zPrz_LimiteSuperiore

76

Page 77: Elaborato Tesi

begin

set @ConsumoPerFascia = @ConsumoResiduo

set @ConsumoCorr = @ConsumoCorr + @ConsumoResiduo

set @consumoResiduo = 0

end

else

begin

set @ConsumoPerFascia = @zPrz_LimiteSuperiore - @ConsumoCorr

set @consumoResiduo = @ConsumoMaxFascia - @zPrz_LimiteSuperiore

set @ConsumoCorr = @zPrz_LimiteSuperiore

end

…………

Algoritmo04

Procedura che implementa il seguente algoritmo di fatturazione: suddivisione del

consumo in scaglioni proporzionali, e quindi applicazione di prezzi diversi per fascia.

Lo scaglionamento del consumo viene calcolato attraverso un cursore che legge in

sequenza ordinata tutte le fasce di prezzo da applicare. Determina prima il consumo

massimo giornaliero della fascia applicando la seguente formula:

consumo massimo giornaliero = consumo totale fascia / 365gg

e consumo massimo applicabile = consumo massimo giornaliero * totale giorni da

fatturare.

In sintesi l’applicativo esegue la seguente operazione:

set @ConsumoMaxFascia = round(@giornidafatt * (@zPrz_LimiteSuperiore -

@zPrz_LimiteInferiore) / 365,@nrcifre)

Il consumo per fascia è quindi calcolato con il seguente blocco d’istruzioni.

if @ConsumoResiduo <= @ConsumoMaxFascia

begin

set @ConsumoPerFascia = @ConsumoResiduo

set @consumoResiduo = 0

end

else

begin

set @ConsumoPerFascia = @ConsumoMaxFascia

set @consumoResiduo = @ConsumoResiduo - @ConsumoMaxFascia

end

Il blocco di codice che esegue la valorizzazione è il seguente:--

77

Page 78: Elaborato Tesi

--

********************************************************************

-- calcolo i prezzi da applicare al periodo

--

set @ConsumoResiduo = @ConsumoPerDecorrenza

Declare estrai_prezzi cursor for

SELECT [Prz_CodiceFasciaTariffaria]

,[Prz_LimiteInferiore]

,[Prz_LimiteSuperiore]

,[Prz_Prezzo]

,[Prz_VoceFattura]

FROM [DB_Fatturazione].[dbo].[Prezzo]

WHERE [Prz_CodiceTariffa] = @CodiceTariffa and

[Prz_CodiceVarTariffa] = @zPvt_CodicePeriodoValidità

ORDER BY [Prz_CodiceTariffa], [Prz_CodiceVarTariffa],

[Prz_CodiceFasciaTariffaria];

Open estrai_prezzi;

Fetch next from estrai_prezzi into

@zPrz_CodiceFasciaTariffaria,

@zPrz_LimiteInferiore,

@zPrz_LimiteSuperiore,

@zPrz_Prezzo,

@zPrz_VoceFattura;

WHILE @@FETCH_STATUS = 0

BEGIN

if @MessaggiFatt = 1 print 'Ciclo prezzo. Codice fascia ' +

ltrim(str(@zPrz_CodiceFasciaTariffaria)) + ' min ' +

ltrim(str(@zPrz_LimiteInferiore,10,@nrcifre)) + ' max ' +

ltrim(str(@zPrz_LimiteSuperiore,10,@nrcifre))

+ ' prz ' + ltrim(str(@zPrz_Prezzo,18,8)) + ' consumo ' +

ltrim(str(@ConsumoResiduo,10,@nrcifre))

--- determino il consumo massimo per la fascia in modo proporzionale:

--- x : giornidafatt = volumedellafascia : 365

set @ConsumoMaxFascia = round(@giornidafatt * (@zPrz_LimiteSuperiore -

@zPrz_LimiteInferiore) / 365,@nrcifre)

if @ConsumoResiduo <= @ConsumoMaxFascia

begin

set @ConsumoPerFascia = @ConsumoResiduo

78

Page 79: Elaborato Tesi

set @consumoResiduo = 0

end

else

begin

set @ConsumoPerFascia = @ConsumoMaxFascia

set @consumoResiduo = @ConsumoResiduo - @ConsumoMaxFascia

end

Set @totaleImpFascia = @totaleImpFascia + round(@zPrz_Prezzo *

@ConsumoPerFascia,2)

set @totaleImpVarTar = @totaleImpVarTar + round(@zPrz_Prezzo *

@ConsumoPerFascia,2)

Set @totaleImpTariff = @totaleImpTariff + round(@zPrz_Prezzo *

@ConsumoPerFascia,2)

--

-- scrittura dettagli di fatturazione

--

………

Set @totaleImpFascia = 0

Fetch next from estrai_prezzi into

@zPrz_CodiceFasciaTariffaria,

@zPrz_LimiteInferiore,

@zPrz_LimiteSuperiore,

@zPrz_Prezzo,

@zPrz_VoceFattura;

END -- fine fetch su estrai-prezzi

Close estrai_prezzi;

Deallocate estrai_prezzi;

79

Page 80: Elaborato Tesi

5. Conclusioni

L’obiettivo del progetto è la realizzazione di un sistema di fatturazione di consumi e

servizi flessibile e generalizzato. Sono stati studiati e gestiti i servizi di fornitura di gas

metano, acqua potabile ed energia elettrica. La difficoltà principale è stata la ricerca

degli elementi che questi servizi hanno in comune con l’obiettivo di disegnare un sistema

flessibile in grado di adattarsi alle diverse esigenze.

La flessibilità del sistema è stata raggiunta implementando un “livello applicativo”

configurabile, caratterizzato dalle seguenti entità:

a) il tipo di servizio (acqua, gas, energia ed eventuali altri servizi);

a) la tariffa;

c) le caratteristiche del sistema di tariffazione (cioè lo stato contrattuale);

d) il tipo di misura;

e) l’algoritmo di calcolo da utilizzare per la valorizzazione della misura.

Il prodotto gestisce tre diversi tipi di misure:

a) le misure di fenomeni fisici che variano con continuità nel tempo, indispensabili per

operare con i consumi di acqua, gas ed energia elettrica;

b) le misure di grandezze discrete, da utilizzare per sviluppi futuri;

c) le misure di intervalli temporali, da utilizzare per eventuali sviluppi futuri.

Sono stati realizzati i seguenti algoritmi di calcolo che, associati ai vari tipi di misura,

permettono di gestire un ampio spettro di esigenze di fatturazione per i servizi di vendita

di gas, acqua ed energia elettrica:

a) moltiplicazione della misura rilevata per il prezzo unitario;

b) moltiplicazione del numero di giorni (o mesi) del periodo di rilevazione per il prezzo

unitario ed eventualmente per un attributo che rappresenta un parametro indicativo del

servizio;

c) suddivisione del consumo in scaglioni a riempimento e quindi applicazione di prezzi

diversi per fascia;

d) suddivisione del consumo in scaglioni proporzionali e quindi applicazione di prezzi

diversi per fascia;

La separazione dell’algoritmo di calcolo dalla tariffa, la gestione dello stato contrattuale e

l’estensione del concetto di misura rendono il prodotto flessibile e facilmente

implementabile. Eventuali sviluppi futuri, infatti, potrebbero essere la fatturazione di

80

Page 81: Elaborato Tesi

consumi telefonici, il cui calcolo è basato sulla misura d’intervalli temporali e, di tasse ed

imposte comunali determinate sulla base di parametri quali la superficie abitativa o un

numero di persone.

L’obiettivo prefissato quindi può ritenersi ampiamente raggiunto:

a) vengono gestiti tutti i tipi di servizio presi in considerazione;

b) il sistema si adatta con facilità a nuove esigenze configurando opportunamente il

“livello applicativo”;

c) lo sviluppo di nuove tecniche di calcolo non gestite comporta l’implementazione di

nuovi moduli e non la modifica del codice esistente.

L’applicazione riceve in input la data di scadenza della fattura ed il codice univoco del

cliente da fatturare, quindi esamina le tariffe da applicare, lo stato contrattuale e le misure

rilevate. Per ogni coppia “misura rilevata – tariffa da applicare” viene eseguito l’algoritmo

di calcolo specifico che aggiorna il dettaglio IVA, la testata della fattura e genera i

dettagli di fatturazione nei quali sono specificati tutti gli attributi che hanno contribuito a

generare l’importo fatturato. Tutte le anomalie sono registrate in una tabella di sistema ed

eventualmente visualizzate nella pagina dei messaggi di esecuzione della procedura di

SQL Server (in funzione di una variabile software). A fronte di una qualsiasi anomalia è

inoltre eseguito il “rollback” della transazione ed inibita la creazione del documento.

Per visualizzare il documento prodotto è stato predisposto un VBS che genera un file

Excel contenente i dati identificativi del cliente e della fattura, il riepilogo IVA, quello

riguardante le tariffe applicate ed il dettaglio di calcolo comprensivo delle fasce di prezzo

e delle variazioni tariffarie.

Il lavoro svolto può essere così quantificato:

a) 43 tabelle;

b) 15 viste;

c) 8 stored procedures;

d) Circa 5.900 righe di codice in Transact SQL;

e) Circa 450 righe di codice VB Script.

Resta da sviluppare l’interfaccia utente che potrebbe essere un portale Web ovvero un

applicativo in ambiente Windows. La fattura può essere visualizzata sviluppando

opportunamente il foglio Excel utilizzato per il test del sistema oppure facendo ricorso a

tecnologie più idonee alla gestione di documenti di natura fiscale.

E’ inoltre indispensabile un test completo ed esaustivo della procedura che deve

prevedere tutte le combinazioni di servizi, algoritmi, tipi di misura, applicazione di sconti

e modalità di fatturazione.

81

Page 82: Elaborato Tesi

6. Bibliografia

Atzeni P., Ceri S., Paraboschi S., Torlone R., Basi di dati Modelli e linguaggi di

interrogazione, McGraw-Hill

Ramez A. Elmasri, Shamkant B. Navathe, Sistemi di basi di dati Complementi 4°

edizione Addison Wesley 4° edizione febbraio 2005

Fuggetta , Ghezzi, Morasca, Morzenti, Pezzè, Ingegneria del Software, Progettazione,

Sviluppo e Verifica, Mondadori Informatica

http://msdn.microsoft.com

http://www.estenergy.it

http://www.cogeme.net

http://www.autorita.energia.it/

http://www.iride-energia.it/

http://www.irisacqua.it/

82

Page 83: Elaborato Tesi

Appendice A – Contenuto del Compact Disk allegato

Il CD allegato contiene i seguenti files:

Questo documento in formato Microsoft Word 2003 e in formato pdf.

I seguenti documenti in formato Microsoft Word 2003 e pdf:

o Appendice B – Documentazione scaricata da Internet

o Appendice C - Schema logico relazionale

o Appendice D – Configurazione stato contrattuale

La presentazione in formato Powerpoint: presentazione.ppt

Il backup del data base in formato SQL Server 2005

La fattura in formato Excel e lo script Report.VBS per la generazione del file

Excel.

Lo script CreaDB.SQL per la creazione del Data Base

83