Sviluppo Di Una Applicazione Web Per La Gestione Di Fotografie Digitali: Il Modulo Di Amministrazione

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sviluppo Di Una Applicazione Web Per La Gestione Di Fotografie Digitali: Il Modulo Di Amministrazione as PDF for free.

More details

  • Words: 6,998
  • Pages: 78
UNIVERSITÀ

DEGLI

FACOLTÀ

INGEGNERIA

DI

STUDI

DI

TRIESTE

Corso di Laurea Triennale in Ingegneria Informatica Anno Accademico 2007/2008

Sviluppo di una applicazione web per la gestione di fotografie digitali: Il modulo di amministrazione

Laureando: Relatore: FERMEGLIA

Martina De Faveri Chiar.mo prof. Maurizio

1

Sommario 1 Introduzione:...........................................................................................4 2 Obiettivi................................................................................................. ..6 3 Stato dell’arte........................................................................................ ..8 3.1 Struttura software preesistente.........................................................8 3.2 Sistemi fotografici presenti...............................................................8 3.2 Stato attuale della rete.....................................................................9 4 Requisiti del sistema.............................................................................11 5 Progettazione del database: progettazione concettuale.......................13 5.1 Entità e relazioni principali:.............................................................14 5.2 Estensione delle entità e relazioni: .................................................14 5.3 Generalizzazioni..............................................................................16 5.3.1 Generalizzazione utente...........................................................16 5.3.2 Generalizzazione foto................................................................16 5.3.3 Generalizzazione sconto...........................................................17 5.3.4 Generalizzazione listino............................................................18 5.4 Diagramma Entità-Relazioni con le generalizzazioni.......................19 5.5 Analisi delle entità...........................................................................20 5.6 Analisi delle relazioni.......................................................................25 5.7 Schema entità relazioni con i relativi attributi finale.......................31 6 Progettazione del database: progettazione logica.................................33 6.1 Valutazione dei costi.......................................................................34 6.2 Conversione delle generalizzazione ed eliminazione delle ridondanze............................................................................................36 6.2.1 Generalizzazione Utente...........................................................36 6.2.2 Generalizzazione Foto...............................................................36 6.2.3 Generalizzazione Sconti............................................................37 6.2.4 Generalizzazione listino............................................................38 6.3 Eliminazione delle relazioni ridondanti............................................39 6.4 Eliminazione degli attributi composti..............................................40 7 Il database........................................................................................... ..41 7.1 Schema completo del database......................................................41 7.2 Le tabelle........................................................................................41 2

8 Interfaccia del progetto.........................................................................49 8.1 Installazione del sistema.................................................................49 8.2 Interfaccia principale.......................................................................49 8.3 Interfaccia di un sistema di stampa................................................50 9 Esempi di utilizzo..................................................................................52 9.1Creazione di un ordine.....................................................................52 9.2Creazione di un report di preventivo da un ordine già esistente:.....57 10 Interfaccia grafica: esempi di codice...................................................60 10.1Caricamento foto............................................................................ 60 11 Conclusioni..........................................................................................62 Appendice A ............................................................................................65 Appendice B.............................................................................................67 Bibliografia:..............................................................................................77 Contenuto CD.............................................................................. .............78

3

1 Introduzione: Lo studio fotografico Fotomauro necessitava di riprogettare completamente tutto il software che aveva, per la gestione degli ordini, dei clienti e della lavorazione delle fotografie. In particolare mi sono occupata della parte di amministrazione, quindi gestione anagrafiche e ordini in ingresso. Il risultato di questo lavoro è la creazione del database di tutto il sistema di gestione degli ordini e l’interfaccia che gli addetti del negozio utilizzeranno. L’esigenza di creazione di questo tipo di software è dovuta alla mancanza sul mercato di qualcosa che fosse marcatamente specializzato per la gestione degli ordini di fotografie di uno studio fotografico. Inoltre il software che era già in uso presentava grossi problemi di sicurezza e mancava completamente una automatizzazione di tutto il processo dall’acquisizione delle foto alla consegna al cliente. La necessità, inoltre, di offrire la possibilità di ricevere ordini via internet ha implicato la riprogettazione del tutto in modo da creare anche questa caratteristica al sistema. Per sviluppare il tutto sono stati seguiti i seguenti passi: 

Definizione dei requisiti di tutto il sistema tramite incontro con il committente del progetto

4



Studio delle piattaforme SQL Server 2008 e Visual Studio 2008, in particolare il linguaggio C#, Crystal report, necessarie per l’implementazione. (Caratteristiche richieste dal committente)



Studio della struttura del database creazione del diagramma ER



Ristrutturazione del diagramma



Creazione della struttura database in SQL con le relative store procedure



Realizzazione dell’interfaccia associata

Il software utilizzato per creare il tutto è stato il seguente: 

Microsoft Windows Server 2008, richiesto dal committente perché presente nel server acquistato



VMWare Workstation: per utilizzare la macchina virtuale con il Windows Server 2008 avente le impostazioni richieste dal sistema



Microsoft Visual Studio 2008: per la realizzazione dell’interfaccia che comunica con il database



Microsoft SQL Server 2008: per la creazione del database



Microsoft Visio: per la creazione di tutti i diagrammi presenti

5

2 Obiettivi Gli obiettivi prefissati sono i seguenti. La realizzazione di un software che potesse assolvere ai compiti di gestione dell’anagrafica e di gestione degli ordini in arrivo sia tramite il canale classico del negozio, sia tramite la nuova del canale web. In particolare gli obiettivi possono essere riassunti come segue: 

O1: Realizzazione del database: studio di tutte le caratteristiche dell’implementazione dello stesso partendo dai requisiti che il sistema necessita



O2: Verifica delle caratteristiche del database: controllo delle tavole degli accessi, ipotizzati, in modo da vedere in quali parti il database risulta maggiormente utilizzato



O3: Determinazione dell’interfaccia: studio di come l’interfaccia debba essere sviluppata e dei dati che debbano essere accessibili tramite essa dalle due strutture, quella amministrativa e quella presente sulla macchina. Infatti c’è la necessità di creare anche un’interfaccia nella quale un operatore può controllare la coda di stampa in una determinata macchina di stampa piuttosto che eliminare qualche foto dalla coda

6



O4: Controllo della funzionalità: verifica che tutti i requisiti siano stati rispettati e che il software funzioni nel modo corretto

7

3 Stato dell’arte 3.1 Struttura software preesistente Il software che attualmente è presente nei sistemi dello studio per la parte di interfaccia è stata sviluppato interamente in Microsoft VB.NET 2005 mentre per quello che riguarda il database è stato realizzato con Access 2000. Il software si presentava creato solo per la gestione tramite un terminale presente vicino alla cassa e non dava la possibilità di controllare gli ordini arrivati via web. La gestione dei vari sistemi di stampa non era automatica ma prevedeva il prelevamento manuale da un server interno al sistema delle foto. Inoltre la gestione degli ordini era completamente manuale, prevedeva il controllo da parte dell’operatore se era necessario del fotoritocco piuttosto l’avanzamento dell’ordine in fase di stampa. Inoltre non presentava validazione degli utenti che utilizzavano la macchina, quindi tutte le persone che vi accedevano avevano gli stessi diritti. Le foto nel sistema venivano salvate in chiaro e chiunque raggiungeva la macchina poteva accederci, questo implica un problema di sicurezza nel trattamento delle foto che risultano comunque come dati personali sensibili dei clienti. Inoltre la parte di fatturazione e gestione economica è già implementata in un sistema separato che non desiderano modificare.

3.2 Sistemi fotografici presenti I sistemi di stampa professionali, intesi come l’insieme degli apparati tecnologici finalizzati alla realizzazione di stampe su carte fotografiche hanno un fortissimo 8

impatto su l’intero progetto da sviluppare. Infatti sono i sistemi che impongono i maggiori vincoli, quali i sistemi operativi, la possibilità di comunicazione. Lo studio fotografico dispone di tre principali sistemi di stampa: -

Frontier (Fujifilm): progettato per stampare i formati classici

-

LPS2 (Noritsu): utilizzato come plotter e per stampe su carte particolari

-

JOTA Album (Durst): per creare gli album libro

In questo modo i vari formati di stampa vengono divisi tra queste macchine una delle quali, l’ultima è utilizzata in modo minore rispetto alle altre.

3.2 Stato attuale della rete Lo studio fotografico presenta una ventina di periferiche di rete, collegate tra loro tramite uno switch che rappresenta una tipica topologia a stella. I nodi che compongono la rete che consentono un collegamento a piena banda, nodi gigabit, vengono collegati direttamente a questo switch, mentre gli altri sono collegati su uno switch, 10/100 Mb, a cascata. Tutti i nodi sono collegati a quest’ultimi sono riferiti a macchinari che hanno poco traffico dati, come particolari stampanti, oppure terminali poco utilizzati. Gli indirizzi dei nodi sono di tipo stati e pre assegnati di classe c. I cablaggi sono tutti cavi UTP cat. 5E.

9

Router Server HP ML370TG4

Switch NETGEAR 10/100/1000 16 porte

Switch NETGEAR 10/100 16 porte

Switch NETGEAR 10/100 16 porte

Area periferiche di stampa

Figura 3.1: Schema di massima della rete dello studio fotografico

10

4 Requisiti del sistema In questo capitolo si tratterà sommariamente quali sono i compiti di questo sistema richiesti dal committente. In prima cosa sono state definite le tipologie di interfacce a cui gli operatori dello studio erano a contatto. Essenzialmente sono di due tipi, quella rivolta all’amministrazione degli ordini e dei clienti e quella presente sul computer collegato ad ogni macchina che permette la visualizzazione dello stato di stampa e degli ordini. In primis il modulo di amministrazione avrà le seguenti funzionalità: 

Impostazione delle tipologie di carta disponibili per i vari formati e per i vari sistemi di stampa: è possibile quando si inserisce un ordine la scelta del formato, comprendente anche le varie tipologie di carta in modo da ottenere pressoché la totalità dei formati disponibili nello studio.



Definizione dei listini prezzo: modifica dei listini prezzo in modo da adeguarsi nel tempo e all’aggiunta di nuovi formati di stampa.



Definizioni delle classi di sconto: definire sia classi di sconto in base alla persona, ad esempio se è un fotografo associato che abitualmente acquista grandi quantità di foto, oppure in base all’acquisto di carte prepagate, quest’ultime consentono di acquistare determinate quantità di un prefissato

11

formato in modo da ottenere degli sconti, ogni cliente può avere più prepagate in base alla tipologia di formati che normalmente stampa. 

Introduzione degli ordini nuovi in arrivo in negozio: inserimento degli ordini pervenuti in negozio tramite una interfaccia.



Visualizzazione degli ordini per utente: controllo degli ordini inseriti di un determinato utente mediante l’inserimento dei dati di quest’ultimo



Ottenimento preventivo: all’atto dell’esecuzione dell’ordine oppure di un ordine già inserito è possibile visualizzarne il prezzo dell’intera operazione.



Visualizzazione galleria: il fotografo ha una collezione di fotografie che ha raggruppato in gallerie tematiche, o in base agli eventi, che propone ai clienti, ad un prezzo maggiorato, perché sono di proprietà esclusiva del fotografo. Per invogliare l’acquisto di queste foto c’è la possibilità di visionarle e decidere quali acquistare.

12

5 Progettazione del database: progettazione concettuale

In questo capitolo si affronterà la creazione del database dal punto di vista concettuale analizzandone le entità e le relazioni coinvolte, in modo da determinare la struttura base. Si procederà nel seguente modo: 

Determinazione delle entità e relazioni principali



Estensione dello schema scheletro base in modo da raffinare le entità e le relazioni



Ricerca di eventuali generalizzazioni



Ottenimento dello schema entità relazioni finale



Esamina delle entità



Esamina delle relazioni



Realizzazione dello schema con gli attributi

13

5.1 Entità e relazioni principali:

UTENTE

ORDINA

FOTO

PROPRIETA’

TIPOLOGIA

Figura 5.1: Schema delle entità e relazioni principali Nella figura 5.1 possiamo vedere le relazioni e le entità principali, le quali sottendo al processo di registrazione di un nuovo ordine. Un utente chiede al servizio fotografico di preparare determinate stampe, anche di diverse tipologie, di alcune foto e in base alle proprietà di quest’ultime vengono gestite in modo diverso dal personale e con macchinari diversi. Tutti le entità sono tra loro indipendenti e le relazioni esistono solo quando c’è un legame tra foto e tipologia e utente e foto.

5.2 Estensione delle entità e relazioni:

14

POSSIEDE

PREPAGATA

TIPO

PAGA

UTENTE

ORDINA

LISTINO

FOTO

PROPRIETA’

FORMATO

TIPOLOGIA

MODALITA’ STAMPA

SCONTO

STAMPANTE

PREZZO

Figura 5.2: Schema delle entità e relazioni esteso In questo schema (figura 5.2) si mette in evidenza le relazioni secondarie che regolano il db. Come si può notare ogni utente appartiene ad una determinata categoria la quale presenta una particolare tipologia di sconto, ad esempio grande acquirente oppure fotografo associato. Dopo aver determinato a quale categoria di utente, sia tramite i dati che tramite la prepagata eventualmente posseduta, si procede all’ordine e alla determinazione del compenso spettante al fotografo dopo l’elaborazione dell’ordine. Il metodo delle prepagate è stato introdotto per poter agevolare gli ordini via internet e premiare con copie extra clienti che comprano anticipatamente una grande quantità di copie di un determinato formato. All’accettazione dell’ordine, dopo la verifica del pagamento o dell’eventuale acconto dato in negozio, si procede con la catalogazione delle foto in modo da renderle univocamente reperibili dalla tipologia di macchina che le dovrà elaborare. Potrebbe essere necessario l’elaborazione della stessa immagine da parte di diverse macchine perché essa venga riprodotta su supporti diversi. Ad ogni tipologia di formato, dalla fototessera al più elaborato su cuscino, presenta un prezzo preciso, che solo determinati sconti creati per ciascuna persona; oppure sconti grandi quantità

15

5.3 Generalizzazioni 5.3.1 Generalizzazione utente

UTENTE

CLIENTE

FOTOGRAFO

Figura 5.3: Schema della generalizzazione utente Questa generalizzazione, riportata in figura 5.3, è dovuta alla possibilità di introduzione delle fotografie sia da parte dell’utente che effettua l’ordine sia da parte del fotografo proprietario del negozio, in modo da poter vendere anche foto di eventi di particolare rilievo, quali la Bavisela o concerti importanti, realizzate dallo stesso. Quest’ultime foto faranno parte di una serie di gallerie tematiche accessibili dai clienti in negozio tramite terminale oppure tramite il web con una serie di fotogallery, e potranno decidere quale formato desiderano e in quante copie, procedendo all’acquisto nello stesso modo nel quale viene fatto qualora le foto vengano caricate dagli stessi. Questo tipo di generalizzazione è di tipo totale ed esclusiva infatti tutti gli utenti posso essere divisi in queste due categorie la cui appartenenza ad una esclude automaticamente la possibilità di essere nell’altra, e non esistono ulteriori categorie nelle quali suddividere gli utenti. 5.3.2 Generalizzazione foto

16

FOTO

GALLERIA

FOTO UTENTE

Figura 5.4: Schema generalizzazione foto Nella generalizzazione riportata nella figura 5.4, si può vedere come le foto sia di due categorie distinte con proprietà ben diverse. Le foto possono essere di tipo privato e correlate ad un preciso ordine, quelle inserite dall’utente in fase della creazione della richiesta, oppure di tipo pubblico, visibili e acquistabili da tutti gli utenti, che solitamente fanno parte di una raccolta creata dal gestore del negozio, che raccoglie tutte le sue foto più rappresentative degli eventi che ha seguito. La tipologia in cui rientra questa generalizzazione è quella delle totali ed esclusive, infatti le foto che un cliente porta nello studio sono di proprietà dello stesso e quindi non vengono pubblicate nelle gallerie pubbliche a meno che il fotografo non ne acquisti i diritti (a questo punto diventano di proprietà del fotografo). Inoltre non esistono ulteriori categorie in cui suddividere le immagini catalogate nel database, se non le due sovra citate. 5.3.3 Generalizzazione sconto

SCONTO

PERSONALE

FORMATO

17

Figura 5.5 : Generalizzazione dell’entità sconto Questa generalizzazione scaturisce dalla necessità di creare tipologie di sconto diverse in base alla persona, esempio un fotografo affiliato oppure un cliente affezionato. Inoltre vengono effettuati degli sconti se vengono comprati determinati formati in grande quantità, quindi questi sconti non sono effettuati su tutti gli acquisti di quella determinata persona, ma solo su quel determinato formato.

5.3.4 Generalizzazione listino

LISTINO

LISTINO GALLERIA

LISTINO FOTO

Figura 5.6 : Generalizzazione dell’entità listino Questa generalizzazione nasce dalla necessità di definire un prezzo diverso per una foto appartenente ad una galleria creata dal fotografo, nella quale si debbono pagare anche i diritti di utilizzo dell’immagine, da quelle caricate da un cliente, che non necessitano di particolari sovrapprezzi.

18

5.4 Diagramma Entità-Relazioni con le generalizzazioni

19

LISTINO GALLERIA POSSIEDE

PREPAGATA

TIPO

PAGA

UTENTE

ORDINA

LISTINO FOTO

LISTINO

FOTO

PROPRIETA’

FORMATO

PREZZO

MODALITA’ STAMPA

CLIENTE

FOTOGRAFO

GALLERIA

FOTO UTENTE STAMPANTE

TIPOLOGIA

SCONTO

PERSONALE

FORMATO

Figura 5.7: schema ER con le generalizzazioni In questo schema, figura 5.7, si può vedere come interagiscono le generalizzazioni con l’estensione dello schema entità relazioni precedentemente ampliato.

5.5 Analisi delle entità Ora si procederà alla stesura delle caratteristiche di ciascuna entità, in modo da terminare gli attributi di ciascuna. 20

Entità utente

UTENTE ID

Codice che identifica UNIVOCAMENTE il cliente CHIAVE PRIMARIA

Anagrafica

Questo attributo consente la registrazione delle informazioni personali dell’utente. ATTRIBUTO COMPOSTO: all’interno di esso troviamo molti campi quali il nome, cognome, data di nascita, luogo di nascita…

Anagrafica_Domicilio

Questo attributo facoltativo consente di indicare un indirizzo diverso per la spedizione della merce ATTRIBUTO COMPOSTO

Registrazione_Utente

Se l’anagrafica è stata controllata in modo da evitare la spedizione incontrollata della merce

Identificativo_Utente

Per la connessione tramite web identificativo nome utente e password ATTRIBUTO COMPOSTO

Entità sconto personale SCONTO PERSONALE ID

Codice che identifica univocamente la tipologia di sconto personale 21

CHIAVE PRIMARIA Nome_Sconto

Nome rappresentativo dello sconto

Sconto

Percentuale di sconto

Descrizione

Descrizione della tipologia di sconto con particolari riguardardanti la loro attivazione

Entità sconto formato SCONTO FORMATO ID

Codice che identifica univocamente la tipologia di sconto sul particolate tipo di formato CHIAVE PRIMARIA

Nome_Sconto

Nome rappresentativo dello sconto

Sconto

Percentuale di sconto

Descrizione

Descrizione della tipologia di sconto in base alla quantità di copie di un determinato formato, con eventuali particolarità

Entità prepagata PREPAGATA ID

Codice che identifica in maniera univoca la tipologia di prepagata

Nome_Prepagata

Nome rappresentativo della prepagata

Formato

Formato alla quale è riferito la prepagata

Quantità

Numero di foto disponibili, di un particolare formato con

22

questa tipologia di prepagata Prezzo

Costo della carta prepagata

Entità Formato FORMATO ID

Codice che identifica in maniera univoca la tipologia di formato presente CHIAVE PRIMARIA

Nome_Formato

Nome della tipologia di formato

Caratteristiche_Formato

Attributo che identifica la tipologia di formato mediante le sue caratteristiche, questo è un ATTRIBUTO COMPOSTO che raccoglie l’altezza eccetera

Risoluzioni_Formato

Raccoglie tutte le risoluzioni minime e massime ch ele foto inviate devono avere per essere processate con quel determinato formato. ATTRIBUTO COMPOSTO che raccoglie altezze e larghezze, massime minime ed ottimali

Entità foto FOTO ID

Attributo che identifica in modo univoco la foto caricata nel sistema. CHIAVE PRIMARIA

Nome_Foto

Il nome del file della foto

File

Il caricamento della foto nel database

Entità Foto galleria FOTO GALLERIA ID

Attributo che identifica in modo univoco la galleria a cui

23

appartengono determinate foto. CHIAVE PRIMARIA Nome_Galleria

Il nome della galleria fotografica

Descrizione

Descrizione sommaria della tipologia di galleria fotografica

Data

Data di inserimento della galleria fotografica

Entità listino foto LISTINO FOTO ID

Attributo che identifica univocamente il prezzo applicato ad un determinato articolo . CHIAVE PRIMARIA

Prezzo

Costo dell’acquisto di questa tipologia di stampa

Entità listino galleria LISTINO GALLERIA ID

Attributo che identifica univocamente il prezzo applicato ad una determinata galleria . CHIAVE PRIMARIA

Prezzo

Costo dell’acquisto di una stampa di questa determinata galleria

24

Entità Stampante STAMPANTE ID

Attributo che identifica in modo inequivocabile la stampante . CHIAVE PRIMARIA

Nome

Nome del macchinario di stampa

DNS

Indirizzo della macchina

5.6 Analisi delle relazioni Qui si procede con la descrizione delle relazioni che intercorrono nel database e delle loro proprietà ed eventuali attributi. Relazione ordina ORDINA Descrizione relazione

Questa relazione lega gli utenti alle foto che decidono di ordinare

Cardinalità

MOLTI A MOLTI: Lega tutti gli utenti alle foto che hanno ordinato

Attributi

-

Data ordine: si definisce così la data di creazione dell’ordine

-

Data consegna: viene definita dall’addetto all’elaborazione dell’ordine in base alle caratteristiche delle stampe da effettuare

Relazione possiede POSSIEDE

25

Descrizione relazione

Questa relazione lega gli utenti alle carte prepagate che possono possedere, infatti un utente può avere molte prepagate, una per formato, ed ad una tipologia di prepagate possono corrispondere

Cardinalità

MOLTI A MOLTI: in questo caso si legano i vari tipi di prepagata ai vari utenti che le possiedono

Attributi

-

Credito residuo: definisce la quantità di credito che la carta ancora ha al suo interno dopo i vari ordini effettuati dai clienti

Relazione paga PAGA Descrizione relazione

Questa relazione lega una determinata prepagata ad una serie di foto appartenenti ad un formato ordinate da un cliente

Cardinalità

UNO A MOLTI: lega una prepagata ad alcune foto di un determinato ordine

Attributi

Non presenta attributi

Relazione tipo

TIPO Descrizione relazione

Questa relazione lega il formato alle varie prepagate che si differenziano per la quantità di foto di quel determinato formato che possono contenere. Esempio i diversi tagli di ricarica

26

Cardinalità

UNO A MOLTI: lega un formato con diverse prepagate

Attributi

Non presenta attributi

Relazione proprietà PROPRIETA’ Descrizione relazione

Questa relazione lega ciascuna foto che si desidera stampare

Cardinalità

UNO A MOLTI: ogni foto può essere legata ai vari formati in cui si desidera la stampa

Attributi

-

Copie: numero di copie che si vuole di quella foto in quel determinato formato

Relazione modalità stampa MODALITA’ STAMPA Descrizione relazione

Questa relazione lega un determinato formato ad una determinata stampante

Cardinalità

UNO A MOLTI: più formati possono essere stampati da una stampante ben definita

Attributi

Non presenta attributi

27

Relazione prezzo PREZZO Descrizione relazione

Questa relazione lega un determinato formato al suo prezzo

Cardinalità

UNO A UNO: ciascun formato deve essere collegato ad un determinato prezzo

Attributi

Non presenta attributi

Relazione prezzo galleria PREZZO GALLERIA Descrizione relazione

Questa relazione lega la galleria ad una determinato prezzo presente nel listino

Cardinalità

UNO A UNO: ciascuna galleria ha un determinato prezzo in base al formato in cui si desidera la stampa

Attributi

Non presenta attributi

28

29

30

5.7 Schema entità relazioni con i relativi attributi finale Figura 5.8: Lo schema entità e relazioni finale

Nell’immagine sopra riportata possiamo vedere lo schema finale ricavato dall’analisi concettuale dei requisiti del database. In questa fase si vedono ancora presenti delle

31

generalizzazioni che poi nella fase di progettazione logica si procederà ad eliminare utilizzando diverse tecniche.

32

6 Progettazione del database: progettazione logica

In questa fase si parte dallo schema finale, entità relazioni, ottenuto dalla progettazione logica e si procede con l’eliminazione di eventuali parti non implementabili e la valutazione della funzionalità del database così realizzato. Verrà seguito il seguente schema: 

Valutazione dei costi delle operazioni possibile nel database



Eliminazione delle ridondanze presenti nel database



Conversione delle generalizzazioni ed eliminazione delle ridondanze presenti



Gestione degli attributi composti

Una volta analizzati i punti elencati precedentemente si otterrà lo schema definitivo del database che può essere implementato in SQL Server.

33

6.1 Valutazione dei costi Ogni singola operazione eseguita sul database ha una determinata frequenza di ripetizione che influenza il grado di utilizzo di determinate funzioni piuttosto che tabelle insistenti in un database. Grazie a questa analisi possiamo valutare quali sono le funzioni più importanti. Non tutte le operazioni che si possono ipotizzare su questo tipo di database non debbono essere realizzabili dall’utente, infatti se quest’ultimo elimina informazioni importanti è possibile che venga a crearsi la presenza di dati inconsistenti all’interno del database oppure, nel peggiore dei casi, l’impossibilità di accedere ad alcuni dati per perdita di integrità. Un esempio di una operazioni che non può essere effettuata da un utente è, per esempio, l’eliminazione di un formato, anche se attualmente non più presente in catalogo, perché tutti gli ordini creati in precedenza che possiedono come formato foto tra quelle ordinate quest’ultimo, non sarà possibile ottenere per esempio una copia della fattura oppure determinare il prezzo per quella foto. Anche il listino prezzi diventerà inconsistente perché legato a formati foto non più esistenti. Piuttosto di eliminare sarebbe meglio indicare come non utilizzato, magari mediante una indicazione vero falso, in modo da non creare incongruenze. Ciascuna operazione che si intende effettuare nel database può essere di diverse tipologie quali: interattiva, se l’operazione deve essere eseguita direttamente dall’utente, quali ad esempio inserimenti ed eliminazioni; batch, azioni che vengono eseguite in automatico dal sistema senza la necessità che l’utente intervenga direttamente. Nella tabella sottostante vediamo indicate le varie operazioni che vengono eseguite nel database, la loro tipologia e la frequenza ipotetica di esecuzione. Si vedrà come queste rispettino la legge dell’80/20 cioè il 20% delle operazioni fatte su un database sono quelle che coprono l’80% del totale delle operazioni. Questo deriva dal fatto che ci sono alcune operazioni la cui esecuzione è molto rara perché poco utilizzate.

34

OPERAZIONE

TIPOLOGIA

FREQUENZA

Inserimento nuovo cliente

Interattiva

1 volta al giorno

Modifica cliente

Interattiva

1 volta ogni 6 mesi

Cancellazione cliente

Interattiva

1 volta l’anno

Inserimento formato

Interattiva

1 volta l’anno

Modifica formato

Interattiva

1 volta l’anno

Inserimento listino

Interattiva

4 volte l’anno

Modifica listino

Interattiva

1 volta l’anno

Eliminazione voce listino

Interattiva

4 volte l’anno

Nuovo ordine

Interattiva

6 volte al giorno

Cancellazione ordine

Interattiva

1 volta al mese

Inserimento foto

Interattiva

20 volte al giorno

Cancellazione foto

Interattiva

1 volta al mese

Inserimento galleria

Interattiva

1 volta ogni 6 mesi

Cancellazione galleria

Interattiva

1 volta all’anno

Inserimento tipologia

Interattiva

1 volta all’anno

Interattiva

1 volta l’anno

Nuova prepagata

Interattiva

1 volta al mese

Cancella prepagata

Interattiva

1 volta all’anno

prepagata Cancellazione tipologia prepagata

35

6.2 Conversione delle generalizzazione ed eliminazione delle ridondanze Ora si procede con il raffinamento del diagramma in modo da eliminare le generalizzazioni. 6.2.1 Generalizzazione Utente Per questa generalizzazione si può tranquillamente eliminare introducendo un campo che identifichi la differenza tra un utente cliente e il fotografo che inserisce le foto nelle gallerie. Quindi con un campo chiamato ruolo si possono determinare le possibilità di azione degli utenti registrati.

UTENTE ID Anagrafica Anagrafica Domicilio Registrazione utente Identificazione utente Ruolo

CLIENTE

/ / /

UTENTE

FOTOGRAFO

Figura 6.1: La generalizzazione prima e come viene risolta

6.2.2 Generalizzazione Foto Questa generalizzazione viene eliminata introducendo una relazione tra l’entità foto e l’entità galleria. In questo modo si crea una relazione 0 a 1 in modo che una foto può oppure no appartenere ad una galleria, e ad una galleria possono appartenere diverse foto.

36

FOTO

GALLERIA

FOTO UTENTE

Figura 6.2: Generalizzazione foto

FOTO

APPARTIENE

GALLERIA

ID

ID

Nomefoto Foto

Nome galleria Descrizione Data

Figura 6.3: Risoluzione della generalizzazione foto

6.2.3 Generalizzazione Sconti Vengono create due entità una per lo sconto derivante da una rilevante quantità di un determinato formato di foto, una per lo sconto per una determinata persona su tutti gli acquisti che compie. In questo modo si elimina la generalizzazione e vengono create due nuove relazioni, una che lega l’utente con lo sconto personale, che può anche non esistere, un’altra che lega il tipo di formato e una determinata prepagata.

37

SCONTO

PERSONALE

FORMATO

Figura 6.4: Generalizzazione sconto AGEVOLAZIO NE

UTENTE

SCONTO

Figura 6.5: Relazione utente sconto Percentuale sconto

PREPAGATA

SCONTO

FORMATO

Figura 6.6: Relazione prepagata formato

6.2.4 Generalizzazione listino Questa generalizzazione viene risolta lasciano nell’entità listino solo un prezzo il quale poi in base al formato che verrà diviso in formato normale o galleria, quindi il formato viene diviso in due il quale poi viene collegato alle rispettive foto. Inoltre il prezzo della galleria non è soggetto a sconti in base alla quantità acquistata.

38

LISTINO GALLERIA

LISTINO FOTO

ID Prezzo

LISTINO

LISTINO

Figura 6.7: Trasformazione della generalizzazione listino

6.3 Eliminazione delle relazioni ridondanti In primo luogo si è passati all’esaminare il caso qui sotto riportato nella figura 8:

POSSIEDE

PREPAGATA

PAGA

UTENTE

ORDINA

FOTO

Figura 6.8: relazioni implicante l’azione di ordinazione di un nuovo quantitativo di foto Come possiamo vedere la relazione che lega l’utente a paga è ridondante perché già l’utente è legato ad una determinata tipologia di prepagata la quale a sua volta è legata ad una formato quindi ad alcune foto, oppure ad una. Quindi abbiamo al trasformazione della ridondanza nel modo seguente:

39

POSSIEDE

PREPAGATA

PAGA

UTENTE

ORDINA

FOTO

Figura 6.9: ristrutturazione dello schema

6.4 Eliminazione degli attributi composti Si è cercato di creare delle entità a loro stanti per gli attributi composti, per esempio con la divisione tra l’anagrafica consueta, e la non obbligatoria del domicilio. In questo modo si è evitato di appesantire la tabella ed evitare scritture inutili. All’interno dell’entità utente comunque rimane la consueta anagrafica.

UTENTE

SPEDIZIONE

DOMICILIO

Figura 6.10: eliminazione dell’attributo composto anagrafica domicilio Nello stesso modo per i formati le risoluzioni sono state messe in una entità diversa in modo da evitare di sovraccaricare la tabella.

FORMATI

CARATTERIS TICHE

RISOLUZIONI

Figura 6.11: realizzazione dell’entità risoluzioni

40

7 Il database In questo capitolo si tratterà dello schema finale del database e della sua struttura. Inoltre si analizzeranno sommariamente le tabelle che lo compongono.

7.1 Schema completo del database Lo schema completo si trova nell’appendice A per motivi di grandezza.

7.2 Le tabelle Tabella anagrafica

41

Figura 7.1: Tabella anagrafica Questa tabella raccoglie i dati principali anagrafici del cliente, inoltre raccoglie le credenziali di accesso tramite web. Con il campo stato si definisce la tipologia di cliente e quindi lo sconto al quale avrebbe diritto. Tabella Utenti domicilio

Figura 7.2: Tabella domicili Questa tabella raccoglie i dati facoltativi su un eventuale recapito alternativo al quale spedire la merce ordinata. Tabella Utenti ruoli

Figura 7.3: Tabella utenti ruoli Tabella di sponda utilizzata per definire le tipologie di ruolo che un utente ha per esempio gli sconti fatti solo sulla persona e non anche sulla tipologia di formato posseduto.

42

Tabella Ruoli

Figura 7.4: Tabella ruoli Tabella che raccoglie il nome della tipologia di sconto e nella descrizione le sconto ottenibile appartenendo a quella determinata categoria. Non solo posso essere definite categorie per la velocizzazione del processo di elaborazione dell’ordine. Tabella Provincia

Figura 7.5: Tabella Provincia Utilizzata per semplificare l’immissione tramite una combo box della provincia desiderata in modo da non doverla immettere tutte le volte a mano. Tabella Stato

Figura 7.6: Tabella Stato Utilizzata per semplificare l’immissione tramite una combo box degli stati desiderati.

43

Tabella foto

Figura 7.7: Tabella foto Permette l’inserimento di una nuova foto, che essa sia di galleria o normale permettendo di determinarne le caratteristiche e l’utente che l’ha inserita. La foto viene poi caricata nel campo foto in modo che ne rimanga una copia sul database. Tabella Gallerie

Figura 7.8.: Tabella gallerie Tabella che riassume le caratteristiche principali della galleria con la relativa data di creazione. Tabella Ordini:

44

Figura 7.9: Tabella ordini In questa tabella viene definita la data d’ordine , quella di consegna e l’utente il quale ha fatto l’ordine. Inoltre è stato indicato un eventuale numero per indicare eventualmente una cronologia con altri ordini. Tabella Ordini Foto

Figura 7.10: Tabella ordini foto Questa tabella di sponda unisce un determinato ordine con una particolare foto la quale può essere stampata con diversi formati, e quindi con il relativo formato. In particolare si definiscono il numero di copie che si intendono effettuare. Tabella Sconti

Figura 7.12: Tabella Sconti Tabella che definisce le classi di sconto su un determinato formato.

45

Tabella Utenti Sconti

Figura 7.13: Tabella utenti sconti Tabella di sponda creata per determinare uno sconto su un particolare formato per un particolare cliente. Tabella Formati

Figura 7.14: Tabella formati Definisce i formati delle vari fotografie con le loro caratteristiche e la tipologia di carta. Tabella Formati Risoluzioni

Figura 7.15: Tabella Formati risoluzioni

46

Qui vengono indicate le specifiche particolari dei vari formati.

Tabella Prepagate Quantità

Figura 7.16: Tabella Prepagate Quantità Tabella che definisce il riferimento di una determinata tipologia di prepagata ad un utente in modo che se ne possa verificare dopo le operazioni il credito residuo. Tabella Prepagate

Figura 7.17: Tabella Prepagate Tabella che identifica e caratterizza ciascun tipo di prepagata. Tabella Sistema Stampa

47

Figura 7.18: Tabella Sistema stampa Identifica ciascun sistema di stampa con i formati da lui supportati e ne caratterizza i parametri principali di funzionamento. Tabella Listino

Figura 7.19: Tabella Listino La tabella consente la definizione dei vari prezzi di listino per ciascun tipo di formato.

48

8 Interfaccia del progetto In questo capitolo si prenderà in esame l’interfaccia utente del progetto. Principalmente si analizzerà l’interfaccia principale, e di una interfaccia presente su un pc alla quale è collegata una delle macchine stampanti.

8.1 Installazione del sistema Questo progetto non prevede grossi problemi di installazione se non l’accortezza da parte del sistemista che prevederà gli accessi di creare i giusti login con i reali diritti per ciascuna tipologia di persona che avrà a che fare con il sistema. Infatti alcune store procedure, in particolare quelle che prevedono la cancellazione di dati, devono essere eseguite solo da personale che sia a conoscenza dei rischi che l’esecuzione di un tale comando comporta. Per questo si necessita di una accurata gestione degli accessi e dei permessi.

8.2 Interfaccia principale Le funzionalità dell’interfaccia principale sono quelle dell’amministrazione delle attività, che vanno dalla gestione dell’anagrafica alla introduzione di nuovi ordini che vengono richiesti in negozio. Deve permettere l’accesso alle funzionalità più importanti tralasciando al parte operativa ad altre interfacce poste vicino alle macchine dedite alla stampa. Principalmente le funzioni importanti che debbono essere implementate sono le seguenti: 

Gestione dell’anagrafica

49



Gestione degli ordini



Gestione del listino



Visualizzazione delle gallerie ai clienti

PAGINA INIZIALE

ANAGRAFICA

NUOVA ANAGRAFICA

MODIFICA ANAGRAFICA

LISTINO

NUOVA PREPAGATA

ELIMINA PREPAGATA

NUOVO

MODIFICA

INSERIMENTO NOME UTENTE

ORDINI

NUOVO ORDINE

VISUALIZZA ORDINE

ELIMINA ORDINE

GALLERIA

PREVENTIVO

VISUALIZZA

MODIFICA

Figura 8.1: Schema delle funzioni principali dell’interfaccia

8.3 Interfaccia di un sistema di stampa Questa interfaccia risulta meno articolata di quella principale, infatti presenta solo le seguenti funzioni: 

Eliminazione di una foto dalla coda di stampa



Controllo della coda di stampa

50

L’eliminazione della foto dalla coda di stampa implica la sua cancellazione dal dataset il quale poi potrà essere letto da un’altra applicazione che permette la lettura da parte della macchina stampante della coda di stampa. La sua interfaccia risulterà essere la seguente:

Figura 8.2: Interfaccia grafica della stampante

51

9 Esempi di utilizzo 9.1Creazione di un ordine

Figura 9.1: Form di autenticazione Per prima cosa l’operatore del negozio si trova di fronte alla necessità di inserire le proprie credenziali le quali permettono l’assegnazione delle operazioni che è possibile effettuare. Qualora il login sia erroneo apparirà una finestra di errore come quella che segue

52

Figura 9.2: Finestra di errore Una volta tornati alla finestra di autenticazione si ha la possibilità di decidere se continuare oppure abbandonare il programma. Se il login ha successo apparirà la form principale la quale consente di selezionare l’attività desiderata. Se si vuole inserire una nuova anagrafica cliente basta procedere nel modo che segue:

53

Figura 9.3: Form principale modifica angrafica Selezionando nuova anagrafica apparirà una schermata come segue:

54

Figura 9.4: Form anagrafica La form qui sopra riportata, fig. 9.4, è utilizzata per inserire i dati relativi al cliente. Se quest’ultimo richiede la spedizione in un luogo diverso dalla residenza, necessaria per la fatturazione, basta spuntare il relativo capo per permettere l’inserimento dell’eventuale indirizzo alternativo. Se l’utente è già registrato nel sistema non è necessario il passo sopradescritto quindi si passa al punto successivo con l’inserimento dei dati del nuovo ordine. Se le foto desiderate appartengono solo ad una galleria già esistente basta spuntare e si ottiene la sparizione del tasto carica foto e si apre direttamente una form nella quale basta selezionare la foto della galleria, la quantità e il formato e si può procedere con l’acquisto.

55

Figura 9.5: Inserimento nuovo ordine Nel caso invece le foto siano dell’utente e si necessiti del caricamento basta premere il pulsante relativo ed apparirà la form che segue, figura 9.6.

Figura 9.6: Caricamento immagini

56

Dopo l’inserimento del numero di copie e il formato desiderato premendo il pulsante preventivo si otterrà il prezzo dell’ordine altrimenti si può procedere col caricamento e con la definizione del metodo di pagamento con la finestra che segue, fig 9.7.

Figura 9.7: Selezione metodo di pagamento Se il credito della prepagata intestata al cliente risulti con credito inferiore a quello necessario all’acquisto si prevede un messaggio d’errore e la possibilità di selezionare il pagamento della differenza o in negozio o tramite l’acquisto di una nuova prepagata.

9.2Creazione di un report di preventivo da un ordine già esistente:

57

Figura 9.8: Finestra principale Per prima cosa si apre la form principale, se è già stato autenticato l’utilizzatore del programma, figura 1, nella quale troviamo la sottoscheda ordini. Da qui si procede con la selezione di preventivo. Da qui si apre una finestra nella quale ci viene richiesto di inserire il nome e cognome dell’utente da cercare, figura 9.8. Da qui se non ci sono ambiguità di nome ci appaiono le date degli ordini, altrimenti una finestra che ci fa scegliere quale dei due utenti.

Figura 9.9: Form di ricerca ordine Selezionando una data precisa di ordine ci apparirà il preventivo in Crystal Report corrispondente, figura 9.10.

58

Figura 9.10: Report del preventivo dell’ordine

59

10 Interfaccia grafica: esempi di codice 10.1Caricamento foto Il codice che segue rappresenta una parte particolare del sistema quella del caricamento delle foto. Infatti si tratta dell’interfacciamento con la store procedure di riferimento e la trasformazione del file in una serie di byte, tramite la classe filestream in modo da poterlo inserire in un campo varchar (MAX) ed essere salvato nel database Carica immagini (interfacciamento con la store procedure e connessione al database) public void CaricaImmagini(int IdUtente, int IDOrdine, Byte file, string galleria, string copie, string nomefile, string IDFormato) { this.IdUtente=IdUtente; this.file = file; this.galleria = galleria; this.IDOrdine = IDOrdine; this.nomefile = nomefile; this.IDFormato = IDFormato; SqlConnection cn = new SqlConnection(connSQL); SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = "InserisciFoto"; cmd.Parameters.Add("@Id", SqlDbType.Int); cn.Open(); cmd.Parameters["@IDUtente"].Value = IdUtente;

60

cmd.Parameters("@IDOrdine").Value = IDOrdine; cmd.Parameters("@Foto").Value = file; cmd.Parameters("@IDGalleria").Value = galleria; cmd.Parameters("@Copie").Value = copie; cmd.Parameters("@NomeFile").Value = nomefile; cmd.Parameters("@IDFormato").Value = IDFormato; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; cmd.ExecuteNonQuery(); cn.Close(); }

Carica immagini (creazione dei dati da passare poi alla store procedure) private void CaricaImmagini_Load(object sender, EventArgs e, int idutente, int idordine) { string ind = Path.Text; this.idutente = idutente; this.idordine = idordine; for ( int i = 0; i < dataGridView1.Rows.Count; i++){ object cella = dataGridView1.Rows[i].Cells[0].Value; string cella1 = Convert.ToString(cella); string a = (ind + '\\' + cella1); FileStream fs = new FileStream(a); Byte[] temp = new Byte(fs.Length); fs.Read(temp, 0, fs.Length); fs.Close(); object cellaaa = dataGridView1.Rows[i].Cells[1].Value; string formato1 = Convert.ToString(cellaaa); object cellabb = dataGridView1.Rows[i].Cells[2].Value; string copie1 = Convert.ToString(cellabb); object cellacc = dataGridView1.Rows[i].Cells[3].Value; string galleria1 = Convert.ToString(cellacc); CaricaImmagini(idutente, idordine, temp, galleria, copie, cella1, IDFormato); } }

Tutti gli altri metodi dell’interfaccia grafica insistono soprattutto nella parte della creazione delle connessioni con il database quindi ritengo superfluo descriverle una per una.

61

11 Conclusioni Gli obiettivi richiesti dal committente sono stati di massima raggiunti, infatti il progetto rispecchia le caratteristiche da lui desiderate. Raggiungimento degli obiettivi: 

Definizione dei requisiti di tutto il sistema tramite incontro con il committente del progetto: raggiunto



Studio delle piattaforme SQL Server 2008 e Visual Studio 2008, in particolare il linguaggio C#, Crystal report, necessarie per l’implementazione. (Caratteristiche richieste dal committente): raggiunto



Studio della struttura del database creazione del diagramma ER: raggiunto



Ristrutturazione del diagramma: raggiunto



Creazione della struttura database in SQL con le relative store procedure: raggiunto



Realizzazione dell’interfaccia associata: raggiunto

62

Questo progetto però ancora non è stato testato nel reale sistema lavorativo, ma solo tramite il software a mia disposizione. La fase successiva sarà infatti di riunirlo con gli altri pezzi costruiti da altre persone in modo da vedere se l’intero sistema funziona, eventualmente controllare che i requisiti nel tempo non siano variati. Eventuali sviluppi futuri potrebbero essere l’integrazione con il sistema realizzato con quello di fatturazione, che ad ora risulta separato e quindi necessita di un doppio inserimento dei dati dei compensi ricavati dai vari ordini effettuati.

63

64

Appendice A

65

66

Appendice B Store procedure create Visualizzazione stati ALTER PROCEDURE [dbo].[VisualizzaStati] AS BEGIN

SELECT IDStato, NomeStato FROM Tbl_Stato END

Visualizzazione sconti ALTER PROCEDURE [dbo].[VisualizzaSconti] AS BEGIN

SELECT IdSconti, Descrizione FROM Tbl_Sconti END

Visualizzazione Ruoli ALTER PROCEDURE [dbo].[VisualizzaRuoli]

AS BEGIN

SELECT Id_Ruoli, Nome FROM Tbl_Ruoli END

67

Visualizzazione Provincia ALTER PROCEDURE [dbo].[VisualizzaProvincia] AS BEGIN

SELECT IDProvincia, NomeProvincia FROM Tbl_Provincia END

Visualizzazione Prepagate ALTER PROCEDURE [dbo].[VisualizzaPrepagate]

AS BEGIN

SELECT Nome, ID FROM Tbl_Prepagate END

Visualizzazione Ordini ALTER PROCEDURE [dbo].[VisualizzaOrdini] AS BEGIN

SELECT IdOrdine, DataOra, IdUtente FROM Tbl_Ordine END

Visualizzazione Listino ALTER PROCEDURE [dbo].[VisualizzaListino] AS

68

BEGIN SELECT Tbl_Listino.IdFormato, Tbl_Listino.Prezzo, Tbl_Formati.Tipo FROM Tbl_Listino,Tbl_Formati WHERE Tbl_Formati.ID = Tbl_Listino.IdFormato END

Visualizzazione Galleria ALTER PROCEDURE [dbo].[VisualizzaGallerieNome]

AS BEGIN

SELECT ID_Gallerie, Titolo FROM Tbl_Gallerie END

Visualizzazione Foto ALTER PROCEDURE [dbo].[VisualizzaFoto] @IDUtente int

AS BEGIN

SELECT Id_Foto, NomeFile, Foto FROM Tbl_Foto where IdUtente = @IDUtente END

Visualizzazione Formati ALTER PROCEDURE [dbo].[VisualizzaFormati] AS

69

BEGIN SELECT ID, Tipo FROM Tbl_Formati END

Visualizzazione Preventivo ALTER PROCEDURE [dbo].[Report] @Id as int AS BEGIN SELECT Tbl_OrdiniFoto.IDFormato, Tbl_OrdiniFoto.Copie, Tbl_Listino.Prezzo, Tbl_Formati.Tipo FROM Tbl_OrdiniFoto, Tbl_Listino, Tbl_Formati WHERE Tbl_OrdiniFoto.IDOrdine = @Id AND Tbl_Listino.IDFormato= Tbl_OrdiniFoto.IDFormato AND Tbl_Formati.ID= Tbl_OrdiniFoto.IDFormato END

Ottieni ID ALTER PROCEDURE [dbo].[OttieniID] @Cognome nvarchar (50), @Nome nvarchar (50)

AS BEGIN

SELECT ID FROM Tbl_Anagrafica WHERE Cognome = @Cognome and Nome = @Nome END

Inserimento nome utente ALTER PROCEDURE [dbo].[NomeUtente]

70

@NomeUtente nvarchar (50), @Password nvarchar (50), @ID int AS BEGIN

UPDATE Tbl_Anagrafica SET NomeUtente = @NomeUtente, [Password]= @Password WHERE ID=@ID END

Inserimento tipologia prepagata ALTER PROCEDURE [dbo].[InserisciTipologiaPrepagata] @Nome nvarchar (50), @IDFormato int, @Quantità int, @Prezzo money

AS BEGIN Insert into Tbl_Prepagate (Nome, ID, Quantità, Prezzo) values (@Nome, @IDFormato, @Quantità, @Prezzo)

END

Inserimento nuova prepagata ALTER PROCEDURE [dbo].[InserisciPrepagata] @IDUtente int, @IDPrepagata int

71

AS BEGIN Declare @rimanenza as money set @rimanenza = (Select Prezzo From Tbl_Prepagate Where ID = @IDPrepagata) Insert into Tbl_PrepagateQuantita (IDUtente, IDPrepagata, Rimanenza) values (@IDUtente, @IDPrepagata, @rimanenza)

END

Inserimento nuovo ordine ALTER PROCEDURE [dbo].[InserisciOrdine] @IDUtente int, @Numero int, @DataConsegna datetime

AS BEGIN Declare @oracorrente as datetime set @oracorrente= getdate () Insert into Tbl_Ordini (IdUtente, DataOra, Numero, ConsegnaEntroIl) values (@IDUtente, @oracorrente, @Numero, @DataConsegna)

END

Inserimento listino ALTER PROCEDURE [dbo].[InserisciListino] @IDFormato int, 72

@Prezzo money, @PrezzoGalleria money AS BEGIN

Insert into Tbl_Listino (IdFormato, Prezzo, PrezzoGalleria) values (@IDFormato, @Prezzo, @PrezzoGalleria) END

Inserimento nuova galleria ALTER PROCEDURE [dbo].[InserisciGalleria] @Titolo nvarchar (50), @Descrizione nvarchar (200)

AS BEGIN Declare @oracorrente as datetime set @oracorrente= getdate () Insert into Tbl_Galleria (Titolo, Data, Descrizione) values (@Titolo, @oracorrente, @Descrizione)

END

Inserimento nuova foto ALTER PROCEDURE [dbo].[InserisciFoto] @IDUtente int, @IDGalleria int = NULL, @NomeFile nvarchar (50),

73

@IDFormato int, @Formato nvarchar (50), @Foto varbinary (MAX), @Copie int, @IDOrdine int AS BEGIN

Declare @a int Insert into Tbl_Foto (IdUtente, IdGalleria, NomeFile, Formato, Foto) values (@IDUtente, @IDGalleria, @NomeFile, @Formato, @Foto) set @a = @@IDENTITY -- per ritornare l'ultimo valore del contatore Insert into Tbl_OrdiniFoto (IdOrdine, IdFoto, IdFormato, Copie) values (@IDOrdine,@a, @IDFormato, @Copie)

END

Inserimento nuova anagrafica ALTER PROCEDURE [dbo].[InsAnagrafica] @Cognome nvarchar (50), @Nome nvarchar (50), @Data datetime, @LuogoDiN nvarchar (50) = null, @Sesso nvarchar (1), @Email nvarchar (50), @Telefono nvarchar (50), @Via nvarchar (50), @NumeroC int = null,

74

@Citta nvarchar (50), @Provincia nvarchar (2), @CAP nvarchar (10) = null, @Stato nvarchar (50) = null, @Sconto nvarchar (50) = null AS BEGIN Declare @s int Declare @a int set @s = (select IdSconti from tbl_Sconti where Descrizione = @Sconto) -se c'è solo un valore in un solo campo

Insert into Tbl_Anagrafica (Cognome, Nome, DataDiNascita, LuogoDiNascita, Sesso, Email, Telefono, Via, NumeroCivico, Città, Provincia, CAP, Stato) values (@Cognome, @Nome, @Data, @LuogoDiN, @Sesso, @Email, @Telefono, @Via, @NumeroC, @Citta, @Provincia, @CAP, @Stato) set @a = @@IDENTITY -- per ritornare l'ultimo valore del contatore Insert into Tbl_UtentiSconti (IdUtente, IdSconto) values (@a, @s)

END

Cancella anagrafica ALTER PROCEDURE [dbo].[CancellaAnagrafica] @ID int AS BEGIN

75

DELETE Tbl_Angrafica WHERE ID=@ID END

76

Bibliografia: [Marco Ferrero, 2008] Marco Ferrero SQL, Apogeo [Nadia Bianchi, Alessandro Valli, 2002] c# reference, McGrawHill [Autori Vari, 2007] SQL Server, Guida per l’amministratore di rete, Hoepli [Sharp John, 2008] Microsoft Visual C# 2008 passo per passo, Mondadori Informatica [MSDN, 2009] http://msdn.microsoft.com/it-it/default.aspx (referenze per le classi) [Maurizio Fermeglia, 2009]Dispense del professor Maurizio Fermeglia su Store Procedure e stesura requisiti database

77

Contenuto CD •

Tesi.docx



Tesi.pdf



Presentazione.pptx



Presentazione.pdf



Cartella contenente interfaccia e database

78

Related Documents