Sunteți pe pagina 1din 67

CAPITOLUL 6.

SISTEM INFORMATIC UTILIZND RUP


(UML) - APLICAIE PENTRU GESTIUNEA
ACTIVITII DE TURISM LA O UNITATE
HOTELIER
6.1. Analiza activitii unitii hoteliere
Activitatea de baza a hotelului este oferirea serviciilor de cazare, de
alimentaie si alte servicii ale unor ageni comerciali afiliai hotelului.
Sistemul informatic trebuie s realizeze rezervarea camerelor i
inregistrarea clienilor. Modalitatea prin care se realizeaz rezervarea,
inregistrarea, plile aferente decurg din politica de marketing i
management a hotelului.
Cerinele de baz pe care treuie a le realizeze sistemul informatic sunt
urmatoarele:
Reducerea timpului de completare a formularelor de rezervare i de
nregistrare ce trebuie completate la nregistrare i la rezervare, prin
automatizarea procesului de actualizare a disponibilului i de alocare
a camerelor;
Monitorizarea pesonalului care a facut rezervrile, nregistrrile i
diversele modificri sau anulri;
Reducerea timpului consumat cu crearea listelor cu camerelor ce
trebuie curaate, a listelor sosirilor, a situaiei tuturor camerelor;
Creterea promptitudinii n oferirea unui rspuns clientului cu privire
la disponibilitatea tipului de cazare cerut n datele cerute;
Crearea unui sistem sigur i eficient ce protejeaz mpotriva
suprarezervrii.

6.1.1. Analiza proceselor de afaceri - Nivelul cazurilor de utilizare (Use


Case View)
Din discuia cu managerii hotelului se pot deduce urmtoarele
situaii, care se concretizeaz astfel:
Gestiunea rezervrilor
Primire cereri rezervare

Stabilirea disponibilului de
camere

Acceptarea sau respingerea


cererilor de rezervare

Documentarea privind
detaliile rezervarii

personal
receptie

Gestiunea documentelor de
rezervari

Prelucrarea rapoartelor de
rezervari

Descrierea cazurilor de utilizare:


Primirea cererii de rezervare - Hotelul aplic politica rezervrilor
directe (cele de care se ocup direct hotelul): un client independent face o
rezervare telefonic, persoane sau grupuri efectueaz rezervri n scris, sau
n ambele cazuri se primesc rezervri prin fax.
Informaiile pe care agentul de rezervri trebuie s le obin de la
client pentru a rspunde promt, afirmativ sau negativ, sunt: data sosirii,
durata ederii (nr de nopi), tipul i numrul camerelor solicitate, numrul de
persoane.
Stabilirea disponibilului de camere - Dup obinearea de informaii
de la client despre durata preconizat a ederii, urmtoul pas n procesul
rezervrii este verificerea dac la data indicat este disponibil tipul de cazare
solicitat.

Acceptarea sau refuzul cererilor de rezervare - Dac


sunt
camere disponibile, cererea va fi acceptat. Agentul de rezervri va
completa apoi detaliile rezervrii ntr-un formular de rezervare.
Documentarea privind detaliile rezervrii - Dup completarea cererii
de rezervare, agentul de rezervare este responsabil de actualizarea diagramei
de camere disponibile i de completarea detaliilor rezervrii ntr-un jurnal al
hotelului.
Gestiunea documentelor de rezervare - Gestiunea documentelor de
rezervare const n clasarea rezervrilor i actualizarea acestora cnd are loc
modificarea detaliilor rezervrii.
n sistemul de rezervare manual, formularele de rezervare sunt
clasate n ordine cronologic, potrivit datei sosirii, i apoi n ordine
alfabetic, dup numele de familie al clienilor.
n cazul modificrii sau anulrii unei rezervri se completeaz un
formular de modficare anulare. Acesta se ataeaz formularului original de
rezervare. n acelai timp va fi modificat diagrama disponibilului de
camere i se vor face meiunile de rigoare n jurnal.
Prelucrarea rapoartelor de rezervri - Personalul de la recepie
trebuie s verifice formularele de rezervare i s ntocmeasc zilnic lista
sosirilor ateptate i a plecrilor preconizate.
Gestiunea cazrilor

Pregatirea pentru sosirea


clientului

Atribuirea camerei

nregistrarea
personal
receptie
Verificarea metodei de plata

nmanarea cheii si nsotirea


clientului

Descrierea cazurilor de utilizare


Pregtirea pentru sosirea clienilor - Recepionerul trebuie s aib la
dispoziie lista sosirilor i plecrilor, precum i starea i disponibilitatea
camerelor. Starea i disponibilitatea camerelor rezult din diagrama
rezervrilor.
nregistarea clienilor - La sosirea clientului se completeaz
formularul de nregistrare. Formularul de nregistrare trebuie s conin:
data sosirii, data plecrii, numarul de camere, tipul camerei, numrul
clienilor, numrul camerei, tariful pe zi, datele de identificare ale clientului
Verificarea metodei de plat - n funcie de metoda de plat sunt
necesare anumite verificri, cum ar fi verificarea card-ului.
6.1.2. Analiza structurii statice
Diagrama claselor
Formular inregistrare

Cerere rezervare
Data sosirii
Data plecarii
Tip camera
Nr persoane

Diagrama rezervarilor

Data sosirii
Ora sosirii
Data plecarii
Nr nopti
Nr camera
Tip camera
Nume
Act
Adresa
Numar clienti
Tarif pe zi

Numar camera
Tip camera
Data

1
1

1
Formular rezervare
Nume
Act
Adresa
Telefon
Data sosirii
Data plecarii
Nr nopti
Tip camera
Mod plata
Ora limita
Garantare
Avans

Jurnal

Nume
Act
Adresa
T elefon
Data sosirii
Data plecarii
Nr nopti
T ip camera
Mod plata
Ora limita
Garantare
Avans

1
Formular modificare-anulare

Nume client
Data sosirii
Data plecarii
Cazarea solicitata
Tarif
Data
Modifcare/Anulare

6.1.3. Analiza dinamic


Diagramele de secven
Primirea cererii de rezervare

: Cerere
rezervare

: personal
receptie

Inregistrare()

Stabilirea disponibilului de camere

: Diagrama
rezervarilor

: personal
receptie

Verificare()
raspuns

Acceptarea sau refuzul cererilor de rezervare

: Formular
rezervare

: personal
receptie

Completare()

Documentarea privind detaliile rezervrii

: Jurnal

: personal
receptie

: Diagrama
rezervarilor

Completare()
Actualizare()

Gestiunea documentelor de rezervare

: personal
receptie

: Formular
modifi care-anulare

: Jurnal

: Diagrama
rezervarilor

Completare()

Modificare()

Actualizare()

Prelucrarea rapoartelor de rezervri

: personal
receptie

: Formular
rezervare
Consultare()
lista rezultata

nregistarea clienilor

: Formular
inregistrare

: personal
receptie

Completare()

Atribuirea camerei

: Diagrama
rezervarilor

: personal
receptie

Actualizare()

Diagramele de activitate

[ nu sunt indeplinite criteriile ]

Inregistrare cerere
rezervare

Verificare digrama
rezervari
[ sunt indeplinite criteriile ]

Completare
formular rezervare

Completare
jurnal

Actualizare
diagrama rezervari

[ nu intervin modificari /anulari ]

[ intervin modificari / anulari ]

Completare formular
modificare/anulare

Completare
jurnal

Actualizare
diagrama rezervari

[ client cu rezervare ]

[ client walk-in ]

Consultarea formularelor de
rezervare

Consultare
diagrama

Completare
formular inregistrare

Actualizare
diagrama rezervari

10

Dup analiza diagramelor de secvena diagrama claselor complet este:


Form ular inregistrare
Diagrama rezervarilor

Cerere rezervare
Data sosirii
Data plecarii
Tip camera
Nr persoane

Data sosirii
Ora sosirii
Data plecarii
Nr nopti
Nr camera
Tip camera
Nume
Act
Adresa
Numar clienti
Tarif pe zi

Numar camera
Tip cam era
Data
1

Inregsitrare()
1

1
1

Creare()
Verificare()
Actualizare()
1

Completare()

1
Formular rezervare
Nume
Act
Adresa
Telefon
Data sosirii
Data plecarii
Nr nopti
Tip camera
Mod plata
Ora limita
Garantare
Avans
Completare()
Consultare()

Jurnal
1

Nume
Act
Adresa
T elefon
Data sosirii
Data plecarii
Nr nopti
T ip camera
Mod plata
Ora limi ta
Garantare
Avans
Completare()
Modifi care()

1
Form ular modificare-anulare

Nume client
Data sosirii
Data plecarii
Cazarea solicitata
Tarif
Data
Modifcare/Anulare
Completare()

11

6.2. Modelarea sistemului de management al activitii turistice


Dup analiza problemei s-a trecut la modelarea problemei, cu scopul
de a facilita nelegerea corect, de a se elimina redundana informaiilor i a
operaiilor, de a spori timpul de efectuare a diverselor consultri i
actualizri, de a reduce timpul de ateptare a clientului.
6.2.1. Modelarea cazurilor de utilizare
Cazul principal de utilizare

Rapoarte diverse

Gestiune rezervari

personal
receptie

Rapoarte si documentatie
presosiri

Logare

Gestiune cazari

S-a modelat un caz principal de utilizare care descrie situaiile n


care personalul de la recepie interacioneaz cu aplicaia informatic. Acest
caz principal sintetizeaz, grupeaz aciunile personalului.
Spre deosebire de modelul iniial care presupunea 2 mari grupe de
activiti, acest caz propune 5 grupe.

12

1. Logare

personal
receptie

Logare

Acest caz de utilizare se refer la procesul de accesare a aplicaiei.


Conform acestui caz de utilizare singurele persoane care pot accesa
aplicaia sunt persoanele autorizate, carora le-au fost comunicate numele de
utilizator i parola de acces.

13

2. Gestiunea rezervrilor

Cerere rezervare - stabilire


disponibil

Acceptare cerere rezervare


<<extend>>
personal
receptie

Modificare rezervare

<<extend>>

Anulare rezervare

Modificare date client

Acest caz de utilizare se refer la procesul de rezervare propriu-zis.


Prezentarea cazurilor de utilizare:
Cerere rezervare - stabilire
disponibil

personal
receptie

Cazurile de utilizare iniiale: primire cerere rezervare i stabilire


disponibil camere au fost comasate n cazul numit cerere rezervare-stabilire
disponibil.
Actorul - personal recepie se ocup de primirea cererilor de
rezervare, cereri ce exprim opiunile clienilor. n aceast situaie
interaciunea actorului cu sistemul const n consultarea disponibilului de
14

camere prin verificarea dac n perioada menionat este posibil tipul da


cazare solicitat. Astfel, actorul ofer un rspuns promt, fr a pierde timpul
cu notarea informaiilor i cu verificrile.

Acceptare cerere rezervare

personal
receptie

Cazurile iniiale: acceptare/respingere cerere i documentare privind


detaliile rezervrii, devin acum un singur caz.
Practic, singura responsabilitate a personalului este de a furniza
aplicaiei datele rezervrii. Actualizarea disponibilului este realizat
automat, iar completarea acelui jurnal nu mai este necesar, din motive
evidente.

personal
receptie

Modificare rezervare

n diverse situaii poate interveni necesitatea modificrii datelor unei


rezervri: data sosirii sau data plecrii, n caz de neplat a garantrii se
modific rezervarea din garantat n negarantat, se poate schimba ora
limit.

personal
receptie

Anulare rezervare

De asemenea, se poate anula o rezervare.


15

Aceste dou cazuri au rezultat din cazul iniial gestiunea


documentelor de rezervare. Spre deosebire de modelul iniial, acea clasare
manual a rezervrilor nu se mai efectueaz, deoarece nu este necesar. De
asemenea, dispare necesitatea completrii acelui formular de modificareanulare. Actorul trebuie doar s fac modificarea sau anularea
corespunztoare, iar disponibilul se va actualiza automat.

personal
receptie

Modificare date client

Este un caz de utilizare introdus, deoarece informaiile despre clieni


vor fi pstrate i astfel ot interveni i modificri referitor la datele clientului.

16

3. Rapoarte i documente pre-sosiri

Generare raport cameriste

Modificare stare camere


personal
receptie
Lista disponibilitatii si starii
camerelor

Lista sosirilor
Lista rezervarilor garantate

Acest caz de utilizare apare ca urmare a modelrii a dou cazuri


iniiale: prelucrarea rapoartelor de rezervri i pregtirea pentru sosirea
clienilor.
Prezentarea cazurilor de utilizare:

Generare raport cameriste

personal
receptie

17

Un caz de utilizare nou, n care actorul personalul de la recepie


interacioneaz cu sistemul n scopul obinerii rapoartelor pentru cameriste,
privind camerele ce trebuie curate.

personal
receptie

Modificare stare camere

Un alt caz introdus ce esete rezultatul returnrii rapoartelor de ctre


cameriste cu nsemnrile de rigoare privind camerele curate. Astfel
personalul recepie modific starea camerei corespunztor: curat /
necurat.

personal
receptie

Lista disponibilitatii si starii


camerelor

Actorul poate solicita i obine la orice moment o situaie exact cu


starea camerelor. Camerele pot fi libere/curate (gata s fie distribuite),
libere/necurate (se mai numesc checked-out, necesit cel puin 30 de
minute pentru a fi curate), ocupate, blocate.

18

personal
receptie

Lista sosirilor

O alt informaie absolut necesar personalului recepie este lista


sosirilor i plecrilor, pe care, de asemenea, actorul o poate obine la orice
moment, fr a pierde timp cu verificarea acelor formularelor de rezervare.

personal
receptie

Lista rezervarilor garantate

19

4. Gestiune cazri

<<extend>>
walk-in

Inregistrare client

Modificare disponibil

personal
receptie

Emitere chitante

Eliberare camere(modificare
stare)

Prezentarea cazurilor de utilizare:

Inregistrare client

personal
receptie

Cazurile iniiale: nregistrare client i atribuire camer au devenit


unul singur, deoarece atribuirea camerei, adic modificarea strii se face
automat fr a fi necesar implicarea direct a actorului.
nregsitrarea clientului este n primul rnd o cerin legal. Dac se
face nregistrarea unui client care are o rezervare, atunci datele necesare
exist deja. Pentru clienii fr rezervare (walk-in) se furnizeaz sistemului
informaiile de nregistrare.
20

Modificare disponibil

personal
receptie

Pentru astfel de clieni personalul recepie trebuie s actualizeze i


situaia disponibilului de camere pe perioada de edere a clientului, pentru a
se evita suprarezervarea.

personal
receptie

Emitere chitante

Indiferent dac este un client cu rezervare, care a achitat o parte sau


integral sejurul, sau un client fr rezervare, la momentul nmnrii cheii
plata sejurului trebuie s fie fcut integral. Banii sunt ncasai de personalul
recepie i se emite o chitan.

21

personal
receptie

Eliberare camere(modificare
stare)

Se verific dac data plecrii corespunde cu data anunat, dac nu,


se fac modificrile de rigoare n situaia disponibilului i se modific starea
camerei n liber / necurat.

22

6.2.2. Modelarea structurii statice


Diagrama claselor
Tip camera

1
+este asociat

+are asociat Camera


1..*
1 +isi modifica starea

+determina modificarea starii

Inregistrare(jurnal)

+este generata
Client
+genereaza

+sta la baza emiterii


1

Chitanta
1
+este emisa in baza

+genereaza
1
1

+este generata
Rezervare(jurnal)

1
+modifica

Disponibil

+este modificat

Dup analiz s-a decis renunarea la unele clase i introducerea


altora.
Cerere rezervare dispare datorit faptului c nu mai are nici o
utilitate.
Formularul de rezervare este singurul document care conine toat
informaia relevant despre un client potenial i cererea lui de cazare. De
asemenea, multe din informaiile din formular sunt trecute n jurnalul
hotelului, ceea ce presupune un consum mai mare de timp. De asemenea se
dorete pstrarea informaiilor despre clienii hotelului, astfel apar noi clase:
client i rezervare, i dispare clasa jurnal.
Diagrama rezervrilor se transform n disponibil, camera i tip
camer care nu ine evidena tuturor camerelor, ci doar a numrului total de
camere de fiecare tip.
Formularul de modificare-anulare dispare i ea, ca urmare a faptului
c se vor introduce noi atribute n clasa rezervare, care s permit efectuarea
operaiei de anulare i datorit unor noi metode ce vor permite modificri
asupra rezervrii.
Formular nregistrare devine nregistrare care are mai puine
atribute, deoarece prin crearea clasei client anumite informaii nu mai sunt
dublate.

23

Clasele modelate cu atributele corespunztoare sunt:


Tip camera
tip_cam
tarif
descriere

Camera
1

+are asociat
1..*

+este asociat

nr_cam
tip_cam
stare
mentiuni

+isi modifica starea

1
+determina modificarea starii

Client

id
act
nume
adresa
telefon
mentiuni

+genereaza

+este generata

+genereaza

nr_inreg
nr_rez
id
data_s
data_p
nr_nopti
nr_cam

+sta la baza emiterii

Chitanta
1

+este emisa in baza

1
+este generata

24

Inregistrare(jurnal)

Rezervare(jurnal)
nr_rez
id
data_s
data_p
nr_nopti
tip_cam
mod_plata
garantare
avans
anulata

Disponibil
1
+modifica

1
+este modificat

data
sg
db
tw
ap

nr_chit
nr_inreg

6.2.3. Modelarea structurii dinamice


Diagramele de secven i de colaborare
Logare

:Utilizator

: personal
receptie

logare()

val idare()

raspuns

2: validare()

1: logare()

:Utilizator

3: raspuns
: personal receptie

Se refer la cazul de utilizare Logare. Personalul trebuie s se logeze


nainte de a putea face orice consultare sau actualizare. Astfel se poate ti
cine a accesat aplicaia, i n caz de erori se cunoate din cauza cui a
survenit eroarea. Se realizeaz validarea numelui de utilizator i a parolei. n
funcie de rspuns se accept sau nu accesul la aplicaie.

25

Cerere rezervare stabilire disponibil

: p e rso na l rece pti e

: Dis ponibil

cons ultare()
ras puns

1: consul tare()

: Di sponi bil

2: raspuns
: personal receptie

Se refer la cazul de utilizare general Gestiunea rezervrilor, cazul


particular Stabilire disponibil. nainte de a face o rezervare sau o nregistrare
pentru un client fr rezervare, personalul trebuie s verifice dac la data
dorit exit tipul de camer dorit. n funcie de rspunsul furnizat de sistem
se ofer i rspunsul clientului.

26

Acceptare cerere rezervare

: Client

: personal recepti e

: Rezervare(jurnal)

: Disponibil

verificare_existenta()
raspuns
creare_client()
creare_rezervare()
decrementare()
raspuns

1: veri fi care_existenta()
3: creare_cli ent()

: Client
: personal receptie

6: raspuns

2: raspuns

4: creare_rezervare()

5: decrementare()
: Rezervare(jurnal )

: Di sponibil

Se refer la cazul de utilizare particular Acceptare cerere rezervare.


n momentul n care se ofer un rspuns pozitiv clientului, se trece la
nregistrarea rezervrii. Primul pas const n verificarea existenei clientului.
Dac acesta nu exist, datele sale vor fi salvate. Se trece la inregistrarea
rezervrii propriu-zise. La momentul salvarii automat va fi decremetat
disponibilul pentru zilele i tipul de camer cerute.

27

Modificare rezervare

: Rezervare(jurnal)

: personal receptie

modificare_rezervare()

: Disponibil

incrementare()

decrementare()

raspuns

1: modi fi care_rezervare()
: Rezervare(jurnal)
: personal receptie

: Di sponi bil

4: raspuns

2: incrementare()
3: decrementare()

Se refer la cazul de utilizare particular Modificare rezervare. n


diverse momente pot interveni schimbri referitor la zilele de sejur sau la
tipul de camer. n funcie de aceste modificri disponibilul poate fi
incremetat sau decremetat. Actualizarea disponibilului are loc automat.

28

Anulare rezervare

: Rezervare(jurnal)

: personal receptie

anulare_rezervare()

: Disponibil

incrementare

raspuns

1: anulare_rezervare()
: Rezervare(j urnal )
: personal recepti e 3: raspuns

2: incrementare
: Disponi bil

Se refer la cazul de utilizare Anulare rezervare. n momentul


anularii unei rezervri, disponibilul este actualizate automat, pentru zilele i
tipul de camer pentru care fusese fcut rezervarea.

29

Modificare date client

: Client

: personal receptie

modificare_date()
raspuns

1: modi fi care_date()

: personal receptie

: Client

2: raspuns

n momentul n care personalul de la recepie constat o nepotrivire


ntre unele date referitor la un client acesta poate modifca acele date (ex.:
modifcare adresa, telefon de contact)

30

Generare raport cameriste

: Camera

: personal receptie

selectare_camere()
raspuns

1: selectare_camere()

: personal receptie

: Camera

2: raspuns

Se refer la cazul general de utilizare Rapoarte i documente presosiri. n fiecare zi trebuie generat un raport, ce rezult din consultarea strii
camerelor. Camerele ce au starea Libere Necuraate, vor aparea in acel
raport, raport ce va fi transmis personalului ce se ocup cu ntreinearea.

31

Modificare stare camer

: Camera

: personal recepti e

modificare_stare()
raspuns

1: modificare_stare()

: personal receptie

: Camera

2: raspuns

Se refer la cazul general de utilizare Rapoarte i documente


presosiri. n urma acelui raport generat anterior, camerele ce au fost curate
vor fi actualizate prin modificarea starii n Libere Curate.

32

Lista disponibilitatii si starii camerelor

: Camera

: personal receptie

raport_grup()
raspuns

1: raport_grup()

: personal receptie

: Camera

2: raspuns

Se refer la cazul general de utilizare Rapoarte i documente


presosiri. n orice moment se poate obine o situaie a tuturor camerelor,
reflectat ntr-un raport de grup.

33

Lista sosirilor

: Rezervare(jurnal)

: personal receptie

generare_lista()
raspuns

1: generare_lista()

: personal recepti e

: Rezervare(jurnal)

2: raspuns

La orice moment, personalul de la recepie poate avea o vziune clar


asupra sosirilor preconizate pentru o anumit zi.

34

Lista rezervrilor garantate

: Rezervare(jurnal)

: personal receptie

generare()
raspuns

1: generare()

: personal recepti e

: Rezervare(jurnal)

2: raspuns

Dat fiind faptul ca exit o mare diferen ntre rezervrile garntate i


cele negarantate, trebuie s se cunoasc exact dac aceste rezervri garantate
au fost confirmate. Astfel cu o zi nainte de o dat de sosire preconizat se
genereaz o list cu rezervrile garantate pentru a fi transmis
departamentului contabilitate spre confirmare.

35

nregsitrare client

: Rezervare(jurnal)

: personal recepti e

: Inregistrare(jurnal)

: Camera

verificare()
raspuns
creare_inregistrare()
modificare_stare()

raspuns

1: veri fi care()
: Rezervare(jurnal)
: personal receptie

2: raspuns

5: raspuns
3: creare_i nregi strare()
4: modi ficare_stare()
: Inregi strare(j urnal)

: Camera

Se refer la cazul de utilizare particular nregistrare client cu


rezervare. Personalul de la recepie verific dac clientul care a sosit la acea
dat are facut rezervarea. Dac datele corespund se creaz automat
nregistrarea i atrubuirea camerei n funcie de tipul solicitat n rezervare.

36

: Client

: personal receptie

: Inregistrare(jurnal)

: Disponibil

: Camera

verificare_existenta()
raspuns

creare_client()

creare_inregistrare()
decrementare()

modificare_stare()

raspuns

1: verificare_existenta()
3: creare_client()

: Client
: personal receptie

7: raspuns

: Camera

2: raspuns

4: creare_inregistrare()

6: modi ficare_stare()

5: decrementare()
: Inregi strare(j urnal )

: Disponibi l

37

Se refer la cazul de utilizare particular nregistrare client fr


rezervare. Personalul de la recepie va verifica dac clientul a mai fost
nregistrat. Dac nu a fost atunci se nregistreaz datele clientului. Dac
clientul exit, se trece la crearea nregistrrii, automat se face actualizarea
diponibilului i la atribuirea camerei.
Emitere chitante

1: consultare()
: Inregistrare(jurnal)

2:

: personal receptie 8: raspuns

9: emi tere_chitanta()

3:

: Chitanta

4:
: Tip
camera

: Rezervare(jurnal )

: Client
6:

10: raspuns

38

7:

5:

: Inregistrare(jurnal)

: Client

: Rezervare(jurnal)

: Tip camera

: Chitanta

: personal receptie

consultare()

raspuns

emitere_chitanta()

raspuns

39

Eliberare camere

: Inregistrare(jurnal)

: personal receptie

: Client

: Disponibil

: Camera

consultare()
consultare

incrementare()

modificare_satre()

raspuns

: Inregi strare(j urnal )


1: consultare()
4: modi ficare_satre()
5: raspuns

: personal receptie

3: increm entare()
2: consultare

: Client

40

: Disponi bi l

: Camera

Diagramele de activtate ale sistemului conceput pentru managementul


activitii turistice

41

42

Dup analiza acestor diagrame obinem descrierea complet a


claselor:

Camera

Tip camera
tip_cam : VARCHAR2
tarif : NUMBER
descriere : VARCHAR2
initializare()

nr_cam : NUMERIC
tip_cam : VARCHAR2
stare : VARCHAR2
mentiuni : VARCHAR2
initializare()
raport_grup()
selectare_camere()
modificare_stare()

Client

id : NUMBER
act : VARCHAR2
nume : VARCHAR2
adresa : VARCHAR2
telefon : VARCHAR2
mentiuni : VARCHAR2
creare_client()
verificare_existenta()
modificare_date()

43

Rezervare(jurnal)

nr_rez : NUMBER
id : NUMBER
data_s : DATE
data_p : DATE
nr_nopti : NUMBER (2)
tip_cam : VARCHAR2
mod_plata : VARCHAR2
garantare : VARCHAR2
avans : NUMBER
anulata : VARCHAR2
creare_rezervare()
modificare_rezervare()
anulare_rezervare()
generare_lista()
verificare()

Disponibil

data : DATE
sg : NUMBER
db : NUMBER
tw : NUMBER
ap : NUMBER
initializare()
consultare()
decrementare()
incremetare()

44

Inregistrare(jurnal)
nr_inreg : NUMBER
nr_rez : NUMBER
id : NUMBER
data_s : DATE
data_p : DATE
nr_nopti : NUMBER
nr_cam : NUMBER

creare_inregistrare()
consultare()

Uti lizator

Cine

nume : VARCHAR2
parola : VARCHAR2

nume : VARCHAR2
data_log : DATE

initializare()
logare()
v alidare()

creare_inregistrare()

Chitanta
nr_chi t : NUM BER
nr_inreg : NUMBER
emitere_chitanta()

45

6.3 - Proiectarea de sistem


6.3.1. Proiectarea componentelor sistemului
Sistemul conceput are ca principale componente:
Schema bazei de date;
Procedurile i funciile responsabile de validri, de algorimii ce
asigur eliminarea suprarezervrii, eliminarea unor erori de
actualizare;
Interfaa cu utilizatorul ce comunic cu celelalte dou componente,
formnd aplicaia de gestiune.
Diagrama de componente
Componente
Proceduri si functii stocate

<<Schema>>
HOTEL

<<Application>>
Gestiune
hoteliera

46

6.3.2. Schema conceptual a bazei de date rezultat din diagrama claselor


<<RelationalTable>>

Tip camera

tip_cam : VARCHAR2
tarif : NUMBER
descriere : VARCHAR2

<<RelationalTable>>

Camera

<<FK>>
tip_cam : Camera

nr_cam : NUMERIC
tip_cam : VARCHAR2
stare : VARCHAR2
mentiuni : VARCHAR2
<<FK>>

nr_cam : Inregistrare(jurnal)

<<RelationalTable>>

<<RelationalTable>>

Client

id : NUMBER
act : VARCHAR2
nume : VARCHAR2
adresa : VARCHAR2
telefon : VARCHAR2
mentiuni : VARCHAR2

Inregistrare(jurnal)
<<FK>>

id : Client

nr_inreg : NUMBER
nr_rez : NUMBER
id : NUMBER
data_s : DATE
data_p : DATE
nr_nopti : NUMBER
nr_cam : NUMBER

<<RelationalTable>>

<<FK>>
nr_inreg : Inregistrare(jurnal)

Chitanta

nr_chit : NUMBER
nr_inreg : NUMBER

nr_rez : Rezerv are(jurnal)

<<RelationalTable>>

Rezervare(jurnal)

<<FK>>

id : Client

nr_rez : NUMBER
id : NUMBER
data_s : DATE
data_p : DATE
nr_nopti : NUMBER (2)
tip_cam : VARCHAR2
mod_plata : VARCHAR2
garantare : VARCHAR2
avans : NUMBER
anulata : VARCHAR2

<<FK>>

<<RelationalTable>>

Disponibil

data : DATE
sg : NUMBER
db : NUMBER
tw : NUMBER
ap : NUMBER

47

6.3.3. Modelul interfeei cu utilizatorul

Personal recepie

Personal recepie
Logare

Consultare disponibil

Ecran Disponibil

Ecran Logare/ Ecran principal


Logare

Validare

Consultare

Disponibil

Utilizator

Personal recepie
Inregistrare
rezervare nou

Verificare_exitenta Creare_client

Ecran Rezervare noua


Verificare_exitenta

Client

48

Creare_client

Client

Creare_rezervare

Rezervare

Decrementare

Disponibil

Personal recepie

Personal recepie

Modificare stare camere curaate

Ecran Modificare stare camere


Modificare_stare

Camera

Verificare

Modificare
rezervare

Ecran Modificare rezervare


Verificare

Decrementare

Modificare_rezervare

Rezervare

Disponibil

Personal recepie
Generare_lista

Ecran Lista rezervari


garantate
Generare_lista

Rezervare

49

Personal recepie
Inregistrare
client walk-in

Verificare_exitenta

Creare_client

Ecran nregistrare walk-in


Creare_client

Verificare_exitenta

Client

Client

Creare_inregistrare

Inregistrare

Decrementare Modificare_stare

Disponibil

Camera

Personal recepie
Inregistrare
client cu rezervare

Verificare

Ecran nregistrare client cu rezervare


Verificare

Rezervare

50

Creare_inregistrare

Inregistrare

Modificare_stare

Camera

Personal recepie

Personal recepie

Anulare rezervare

Selectare_camere

Ecran Anulare rezervare

Ecran Raport personal intreinere


Selectare_camere

Anulare_rezervare

Rezervare

Incrementare

Camera

Disponibil

Personal recepie

Personal recepie

Raport_grup

Generare lista

Ecran Lista Camere

Ecran Lista sosiri

Raport_grup

Generare_lista

Camera

Rezervare

Personal recepie
Consultare

Emitere chitanta

Ecran Emitere chitanta


Consultare

Inregistrare

Consultare

Consultare

Tip

Rezervare

Client

Eliberare_chitanta

51

Chitanta

Personal recepie
Eliberare camera

Ecran Eliberare camera


Consultare

Inregistrare

52

Consultare

Client

Incrementare

Disponibil

Modificare stare

Camera

6.4. Prezentarea aplicaiei


Crearea tabelelor bazei de date
create table tip(tip_cam varchar2(2) primary key,
tarif number(3), descriere varchar2(50));
create table camera(nr_cam number(2) primary key, tip_cam varchar2(2),
stare varchar2(2), mentiuni varchar2(50),foreign key (tip_cam) references
tip(tip_cam));
create table client(id number(4) primary key, act varchar2(30),
nume varchar2(50), adresa varchar2(100), tel varchar2(20),mentiuni
varchar2(50));
create table disponibil(data date , sg number(2),
db number(2), tw number(2), ap number(2))
create table rezervare(nr_rez number(5) primary key, id number(4),
data_s date, data_p date, nr_nopti number(2),tip_cam varchar2(2),
mod_plata varchar(10), garantare varchar2(2), avans number(4), anulata
varchar2(2), foreign key (id) references client(id));
create table inregistrare(nr_inreg number(5) primary key,
nr_rez number(5) , id number(4),
data_s date, data_p date,
nr_nopti number(2),nr_cam number(2),
foreign key (nr_rez) references rezervare(nr_rez),
foreign key (id) references client(id),
foreign key (nr_cam) references camera(nr_cam))
create table utilizator(nume varchar2(10) primary key,parola varchar2(30))
create table cine(nume varchar2(10) , data_log varchar2(20))
create table chitanta(nr_chit number (5) primary key, nr_inreg number(5)
foreign key (nr_inreg) references inregistrare(nr_inreg))

53

Realizarea interfetei cu utilizatorul


Ecranul principal logare:

Se valideaz numele de utilizator i parola pentru a avea acces la aplicaie.


Buton INTRA
declare
cursor par is select nume,parola
from utilizator
where nume=:validare.nume and parola=:validare.parola;
vnume utilizator.nume%type;
vparola utilizator.parola%type;
gasit boolean;
mi_id MenuItem;
data varchar2(20);
begin
open par;
fetch par into vnume,vparola;
gasit:=par%found;
if not gasit then
message ('Acest utilizator nu exista!');
Clear_Form(No_Validate);
else
data:=to_char(sysdate,'dd-mon-yyyy hh24:mi:ss');
insert into cine values(:validare.nume,data);
commit;
show_view('acces')
;
end if;
close par;
end;

54

Ecranul principal acces permis:

Dac validarea numelui de utilizator i a parolei s-a realizat cu


succes, pe ecranul principal apar opiunile aplicaiei.
Buton FORM
call_form('D:\proiect_diploma\...');
Buton RAPORT
DECLARE
V_URL VARCHAR2(2000);
BEGIN
V_URL:='http://ana:8888/reports/rwservlet?
report=d:\proiect_diploma\....jsp&desformat=htmlcss&destype=cache&use
rid=ANNA/STUD@oracle9i&&paramform=no';
WEB.SHOW_DOCUMENT(V_URL,'_BLANK');
END;

55

Ecran Verificare disponibil:

Mesaj de eroare la ncercarea de a edita cmpurile, deoarece aceast


interfat permite doar consultarea disponibilui, nu i modificarea lui.
On-error
DECLARE
errnum NUMBER := ERROR_CODE;
errtxt VARCHAR2(80) := ERROR_TEXT;
errtyp VARCHAR2(3) := ERROR_TYPE;
BEGIN
if errnum = 40200 THEN
message('Campurile nu sunt editabile');
else
Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
RAISE Form_Trigger_Failure;
end if;
END;

56

Ecran REZERVARE

Pre-form
default_value(' ','global.vb3');
:global.vb3:=0;
Pre-insert
declare
cursor next_rez is select secrez.nextval from dual;
begin
open next_rez;
fetch next_rez into :rezervare.nr_rez;
close next_rez;
end;
When-tab-page-changed
declare
tb_lb varchar2(30);
v_nr_rez number(6);
begin
:global.id3:=:client.id;
tb_lb:=Get_tab_page_property('REZERVARE',label);
if tb_lb='REZERVARE' then
57

:rezervare.id:=:global.id3;
end if;
end;
Buton Prima
go_block('client');
if :system.CURSOR_RECORD='1'THEN
message('PRIMA INREGISTRARE');
ELSE
first_record;
END IF;
Buton Ultima
go_block('client');
if :system.LAST_RECORD='TRUE'THEN
message('ULTIMA INREGISTRARE');
ELSE
LAST_record;
END IF;
Buton Inainte
go_block('client');
IF :SYSTEM.LAST_RECORD='TRUE' THEN
MESSAGE('ULTIMA INREGISTRARE');
ELSE
NEXT_RECORD;
END IF;
Buton Inapoi
go_block('client');
IF :SYSTEM.CURSOR_RECORD='1' THEN
MESSAGE('PRIMA INREGISTRARE');
ELSE
PREVIOUS_RECORD;
END IF;
Buton Salvare
declare
v_s rezervare.data_s%type;
v_p rezervare.data_p%type;
v_t rezervare.tip_cam%type;
58

alert_button NUMBER;
begin
v_s:=:rezervare.data_s;
v_p:=:rezervare.data_p;
v_t:=:rezervare.tip_cam;
--IF :System.Record_Status ='INSERT' THEN
if :global.vb3=0 then
if v_t='SG' then
update disponibil
set SG=SG-1
where data between v_s and v_p;
else
if v_t='DB' then
update disponibil
set DB=DB-1
where data between v_s and v_p;
else
if v_t='TW' then
update disponibil
set TW=TW-1
where data between v_s and v_p;
else
update disponibil
set AP=AP-1
where data between v_s and v_p;
end if;
end if;
end if;
:rezervare.anulata:='NU';
commit_form;
else
SET_ALERT_PROPERTY('ALERTSALVARE',
ALERT_MESSAGE_TEXT, 'Ati facut deja salvarea!' );
alert_button:=SHOW_ALERT('ALERTSALVARE');
Clear_Form(No_Validate);
end if;
:global.vb3:=1;
end;
59

Buton Rezervare noua


BEGIN
Clear_Form(No_Validate);
:global.vb3:=0 ;
END;
On-message
DECLARE
alert_button NUMBER;
lv_errtype VARCHAR2(3) := MESSAGE_TYPE;
lv_errcod NUMBER := MESSAGE_CODE;
lv_errtxt VARCHAR2(80) := MESSAGE_TEXT;
BEGIN
IF lv_errcod = 40400 THEN

60

SET_ALERT_PROPERTY('ALERTTRANZACTIE',
ALERT_MESSAGE_TEXT,'Numarul rezervarii este: '||:rezervare.nr_rez);
alert_button := Show_Alert('ALERTTRANZACTIE');
else
if lv_errcod = 40350 THEN
message('Nu exista nici un nume asemanator!!');
else
Message(lv_errtype||'-'||to_char(lv_errcod)||': '||lv_errtxt);
RAISE Form_Trigger_Failure;
end if;
END IF;
IF form_fatal OR form_failure THEN
raise form_trigger_failure;
END IF;
END;
On-error
DECLARE
errnum NUMBER := ERROR_CODE;
errtxt VARCHAR2(80) := ERROR_TEXT;
errtyp VARCHAR2(3) := ERROR_TYPE;
BEGIN
if errnum = 40401 THEN
message('Nu ati efectuat modificari!');
else
if errnum = 40202 THEN
message('Nu ati completat formularul!');
else
Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
RAISE Form_Trigger_Failure;
end if;
end if;
END;

61

Ecran Inregistrare client cu rezervare

Buton SALVARE
declare
v_s inregistrare.data_s%type;
v_p inregistrare.data_p%type;
v_t rezervare.tip_cam%type;
v_c inregistrare.nr_cam%type;
alert_button NUMBER;
gasit boolean;
v_nr_rez inregistrare.nr_rez%type;
cursor cr is select nr_rez from inregistrare
where nr_rez=:client_rezervare.nr_rez;
begin
v_s:=:CLIENT_REZERVARE.data_s;
v_p:=:CLIENT_REZERVARE.data_p;
v_t:=:CLIENT_REZERVARE.tip_cam;
v_c:=:inregistrare.nr_cam;
:inregistrare.data_p:=:client_rezervare.data_p;
62

:inregistrare.data_s:=:client_rezervare.data_s;
:inregistrare.nr_rez:=:client_rezervare.nr_rez;
:inregistrare.id:=:client_rezervare.id;
if :client_rezervare.nr_rez is not NULL then
open cr;
fetch cr into v_nr_rez;
gasit:=cr%found;
if gasit then
message ('Aceasta rezervare a fost deja inregsitrata!');
--raise form_trigger_failure;
Clear_Form(No_Validate);
else
if :global.vb4=0 then
update camera
set stare ='O'
where nr_cam=v_c;
commit_form;
else
SET_ALERT_PROPERTY('ALERTSALVARE',
ALERT_MESSAGE_TEXT, 'Ati facut deja salvarea!' );
alert_button:=SHOW_ALERT('ALERTSALVARE');
Clear_Form(No_Validate);
end if;
end if;
else message('Nu ati completat formularul!');
end if;
close cr;
:global.vb4:=1;
end;

63

Ecran Eliberare camrera

Buton CHECK OUT


declare
v_p inregistrare.data_p%type;
v_t camera.tip_cam%type;
v_c inregistrare.nr_cam%type;
alert_button NUMBER;
begin
v_p:=:inregistrare.data_p;
v_c:=:inregistrare.nr_cam;
v_t:=:inregistrare.tip;
if :global.vb10=0 then
if v_t='SG' then
update disponibil
set SG=SG+1
where data=v_p;
else
if v_t='DB' then
update disponibil
set DB=DB+1
where data=v_p;
64

else
if v_t='TW' then
update disponibil
set TW=TW+1
where data=v_p;
else
update disponibil
set AP=AP+1
where data=v_p;
end if;
end if;
end if;
update camera
set stare ='LN'
where nr_cam=v_c;
commit_form;
:global.vb10:=1;
else
:global.vb10:=0;
SET_ALERT_PROPERTY('ALERTSALVARE',
ALERT_MESSAGE_TEXT, 'Ati facut deja salvarea!' );
alert_button:=SHOW_ALERT('ALERTSALVARE');
end if;
Clear_Form(No_Validate);
end;

65

Ecran Emitere Chitanta

Buton Emite
declare
v_n chitanta.nr_inreg%type;
alert_button NUMBER;
gasit boolean;
v_nr_rez inregistrare.nr_inreg%type;
cursor cr is select nr_inreg from chitanta
where nr_inreg=:inregistrare.nr_inreg;
begin
v_n:=:inregistrare.nr_inreg;
open cr;
fetch cr into v_nr_rez;
gasit:=cr%found;
if gasit then
message ('Acest sejur a fost deja facturat!');
--raise form_trigger_failure;
Clear_Form(No_Validate);
else
if :global.vb20=0 then
66

:chitanta.nr_inreg:=v_n;
commit_form;
else
SET_ALERT_PROPERTY('ALERTSALVARE',
ALERT_MESSAGE_TEXT, 'Ati facut deja facturarea!' );
alert_button:=SHOW_ALERT('ALERTSALVARE');
Clear_Form(No_Validate);
end if;
end if;
close cr;
:global.vb20:=1;
end;

67

S-ar putea să vă placă și