You are on page 1of 40

F@M

Fakultet za menadžment
Novi Sad, Vase Stajića 6

Paralelni inženjering
prodaje preko interneta u DOO „Mamma Mia“

Predmetni profesor: Student:


Prof. dr Marko Popović Ivana Petrović 24/06-3

Novi Sad, Februar 2010.godine


IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

SADRŽAJ:

1. Naziv i sedište firme.......................................................................................................3


1.1. Delokrug rada firme....................................................................................................3
1.2. Podsistem „Prodaja preko interneta“.........................................................................3
2. Analiza realnog sistema (podsistema Prodaja preko intertneta).....................................4
2.1. Klasifikaciona struktura Realnog sistema DOO Mamma Mia..................................4
2.2. Dijagram Konteksta RS..............................................................................................5
2.3. Relaciona struktura RS (Podsistem Prodaja preko interneta).....................................6
2.4. Dinamička struktura-Slučajevi primene (use cases)...................................................7
2.5. Struktura relacija.........................................................................................................8
2.6. Dijagram toka podataka RS- Obrada zahteva.............................................................9
2.6.1. Logicka struktura tokova......................................................................................10
2.6.2. Struktura skladišta podataka.................................................................................11
2.7. Dijagram toka podataka RS- Provera mogućnosti ispunjenja zahteva.....................12
2.7.1. Logicka struktura tokova......................................................................................13
2.7.2. Struktura skladišta podataka.................................................................................14
3. Ciljevi razvoja i projektovanja......................................................................................15
4. Logička struktura tokova podataka...............................................................................17
5. Pseudo kodovi :.............................................................................................................18
6. Softverska realizacija IS...............................................................................................20
6.1. Programska realizacija podsistema...........................................................................20
6.2. Realizacija skladišta podataka :................................................................................33
7. Testiranje softverske aplikacije.....................................................................................40

2
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3
1.
2. Naziv i sedište firme

DOO “Mamma Mia”


Trg Galerija 14.
Novi Sad

1.1. Delokrug
rada firme

DOO „Mamma Mia“ je osnovan davne


1991. godine i za to vreme uspeli su da
osvojimo lidersko mesto u Novom Sadu
i Vojvodini u prodaji ekskluzivne obuće,
garderobe i kožne galanterije od
Italijanskih firmi Modaruggi, Toscablu,
Lucky, Don Dup ...

Prodajni lanac sadrži pet prodajnih


mesta na ekskluzivnim lokacijama ,
četiri u Novom Sadu i jedna
novootvoren u Beogradu u TC Rodić.
Postali su brend u Novom Sadu i Vojvodini, pa je želja i cilj da osvojimo i Beogradsko tržište.
Prvi rezultati su izvanredni.

U toku je implementacija elektronskog poslovanja tj. prodaja robe preko interneta.

Iz knjiga utisaka se može zaključiti da su mušterije prezadovoljne asortimanom i ljubaznom


uslugom u prodavnicama

1.2. Podsistem „Prodaja preko interneta“

Podsistem „Prodaj preko interneta“ predstavlja kariku između klijenata (kupaca) i ostalih
posistema DOO „Mamma Mia“.
Njegova osnovna namena je omogućavanje klijetima web kupovinu, tj. kupovinu iz fotelje ali
i sagledavanje želja i ukusa tržišta.

3
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2. Analiza realnog sistema (podsistema Prodaja preko intertneta)

2.1. Klasifikaciona struktura Realnog sistema DOO Mamma Mia

MAMMA MIA

RUKOVODSTVO ZAPOSLENI WEB LAGER


PORTAL LISTA KNJIGOVODSTVO BANKA NABAVLJAČ KLIJENT

DIREKTOR
RADNJE MAGACIN

ADMINISTRACIJA TRGOVINA VOZAČ

ADMINIST. POSLOVOĐE
RADNIK RADNJI

ADMIN.WEB PRODAVCI
PORTALA

4
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.2. Dijagram Konteksta RS

Web
Klijent
E-Mail_Narudžbenica
Obaveštenje/ Dostava
Predračun 0 Mamma Mia
robe i Račun
Pošta
Prodaja preko interneta
Ažuriranje L.l.

Lager Podaci sa stanju


lista robe na zalihama
Uplata na račun Banka

5
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3
2.3. Relaciona struktura RS (Podsistem Prodaja preko interneta)

Ponuda robe preko web sajta

Obaveštenje o nemogućnosti ispunjenja zahteva

Predračun
Web
E-mail narudzbenica
Klijent
Nalog za dostavu

Uplata Web portal


Administracija Ažuriranje
PRODAJA
web sajta PREKO
INTERNETA
Roba i račun
Provera po
narudžbenici Odgovor o
proveri

Ažuriranje lager liste Lager


lista

6
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3
2.4. Dinamička struktura-Slučajevi primene (use cases)

Web Klijent se preko Ponuda robe preko web sajta upoznaje sa nuđenom robom sa Web portala
Web Klijent prilikom odabira podnosi E-mail naružbenicu Web portalu
Web portal iz E-mail naružbenice se proverava vrstu, boju, veličinu i količinu robe (Provera po narudžbenici) na Lager lista
Lager lista šalje odgovor (Odgovor o proveri) Web portalu

Možemo dobiti dva odgovora:


Slučaj 1

Lager lista šalje odgovor (Odgovor o proveri) Web portalu da ne postoji tražena roba na lageru.
Web portal šalje Obaveštenje o nemogućnosti ispunjenja zahteva Web klijentu
Web portal pravi listu neuspelih narudžbi
Slučaj 2

Web portal šalje Predračun Web Klijentu


Web portal šalje Nalog za dostavu Administraciji koja vrši Rezervaciju
Web Klijent vrši uplatu koju dostavlja Administraciji.
Administracija nakon Uplate vrši Dostava robe sa računom Web Klijentu
Administracija vrši Ažuriranje lager liste (Lager lista)

Nezavisno od svih ovih dešavanjava :


Administracija vrši Ažuriranje Web sajta u zavisnosti o stanju/vrsti robe na Lager listi

7
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.5. Struktura relacija

Relacija_E-mail_Narudžbenica (IDNarudzbenica, EPrezime, EIme, Ejmbg, EUlica, EBroj, EMesto, Etelefon,Email,


EArtikl,Eveličina,Eboja)

Relacija_Predračun(PŠifNarudž, PPrezime, PIme, PJmbg ,PUlica, PBroj, PMesto, PArtikl,Pveličina,Pboja,Pkoličina,Pcena, PUSuma)

Relacija_Provera_uplate (PrŠifNarudž, PrIme, PrPrezime ,PrUSuma)

8
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.6. Dijagram toka podataka RS- Obrada zahteva

Odgovor

1 PRODAJA
E-mail narudžbenica
Obrada zahteva
KLIJENT

D0 Narudžba

D6 Odgovori

D7 Klijenti

9
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.6.1. Logička struktura tokova

Tok_ E-mail narudžbenica (IDNarudzbenica, EPrezime, EIme, Ejmbg, EUlica, EBroj, EMesto, Etelefon,Email, EArtikl,Eveličina,Eboja)

Tok_odgovor (O_ IDNarudzbenica, O_Klijent, O_Artikl, O_veličina,O_boja , O_Datum, O_Odgovor)

10
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.6.2. Struktura skladišta podataka

Narudžba (IDNarudzbenica(C8), S_Klijent(C6), Datum(DATE),EArtikl(N10),Eveličina(N2),Eboja(C10)


Primarni ključ IDNarudzbenica

Odgovori (IDNarudzbenica (C8), S_Klijent(C6), EArtikl(N10), Eveličina(N2), Eboja(C10), Datum(DATE),


Odgovor(C30))
Primarni ključ IDNarudzbenica

Klijenti (S_Klijent(C6), Ime(C15) , Prezime(C20), Telefonlijenta(N 12,0), JMBG(C13),e_mail(C30),


Ulica(C20),Broj(N3),Mesto(C20))
Primarni ključ S_Klijent

11
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.7. Dijagram toka podataka RS- Provera mogućnosti ispunjenja zahteva

Odgovor LL
D6 Odgovori

Odgovor

1 PRODAJA 2 PRODAJA
E-mail narudžbenica LAGER LISTA
Obrada zahteva
KLIJENT

Provera po
narudžbi
D0 Narudžba

D1 Lager Lista

D7 Klijenti

12
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.7.1. Logicka struktura tokova

Tok_ E-mail narudžbenica (IDNarudzbenica, EPrezime, EIme, Ejmbg, EUlica, EBroj, EMesto, Etelefon,Email, EArtikl,Eveličina,Eboja)

Tok_odgovor (O_ IDNarudzbenica, O_Klijent, O_Artikl, O_veličina,O_boja , O_Datum, O_Odgovor)

Tok_ Provera po narudžbi (IDNarudzbenica, EArtikl,Eveličina,Eboja)

Tok_odgovor LL (O_ IDNarudzbenica, O_Datum, O_Odgovor)

13
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

2.7.2. Struktura skladišta podataka

Narudžba (IDNarudzbenica(C8), S_Klijent(C6), Datum(DATE),EArtikl(N10),Eveličina(N2),Eboja(C10)


Primarni ključ IDNarudzbenica

Odgovori (IDNarudzbenica (C8), S_Klijent(C6), EArtikl(N10), Eveličina(N2), Eboja(C10), Datum(DATE),


Odgovor(C30))
Primarni ključ IDNarudzbenica

Klijenti (S_Klijent(C6), Ime(C15) , Prezime(C20), TelefonKlijenta(N 12,0), JMBG(C13),e_mail(C30),


Ulica(C20),Broj(N3),Mesto(C20))
Primarni ključ S_Klijent

Lager Lista (LagerListaID(C8), EArtikl(N10), Eveličina(N2), Eboja(C10), ERezervisano(Yes/No), Edatum_R(DATE))


Primarni ključ LagerListaID

14
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

3. Ciljevi razvoja i projektovanja

Cilj projektovanja ovog sistema je radi reklamiranja firme i mogućnosti boljeg uvida u izbor artikala.
Danas veliki broj ljudi koristi internet radi dobijanja informacija koje su im potrebne, a našim sajtom oni bi imali uvid u naš velik izbor
modela.Samim tim mi dobijamo veći broj kupaca koji će doći do radnje i kupiti odabrani model, a ako ovaj projekat zaživi moći će
kupovati tu istu robu preko interneta..

15
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Dijagram toka podataka

Pozitivan odgovor i Predračun Uplata


Web Klijent
Obaveštenje o nemogućnosti ispunjenja zahteva
D7 Klijenti
D3 Lista neuspelih narudž.
Narudžbenica i osn. Neupela Narudž.
podaci o Web Klijentu D6 Odgovori

1.1 1.2 1.3 1.5


Uzmi podatke Provera da li Uspešna
Napravi predračun Provera uplate
o naruč. robi postoji roba Narudž.

Šifra Izveštaj o Predračun


Narudžbe artikla, postojanosti Ime Klijenta i suma uplate
veličina,
boja i
Osnovni količina
podaci Rezerviši robu iz Izveštaj o poredjenju uplate i predračuna
predračuna
D0 Narudžbe D1 Lager lista
D2 Predračuni
Lista zastarelih
predračuna
D7 Klijenti
Podaci o robi
Podaci o robi iz
Računa 1.4 iz Predračuna
Provera zastarelih
Ažuriranje spiska Predračuna
Otkazivanje rezervacije robe iz Predračuna

Račun i roba
Račun i roba
1.7 1.6
Ažuriraj lager listu D5 Lista faktura Napravi račun i D4 Plaćeni predračuni
Račun i roba
skladišta spakuj robu
Generisanje 16
računa
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3
4. Logička struktura tokova podataka

Tok_ E-mail narudžbenica (IDNarudzbenica, EPrezime, EIme, Ejmbg, EUlica, EBroj, EMesto, Etelefon,Email, EArtikl,Eveličina,Eboja)

Tok_ Predračun (IDNarudzbenica, PPrezime, PIme, PJmbg ,PUlica, PBroj, PMesto, PArtikl,Pveličina,Pboja,Pkoličina,Pcena,PUSuma)

17
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

5. Pseudo kodovi :
- PK 1.2
Provera u Lager listi

Get Narudzbu
Traži Artikl u Lager listi
If postoji Artikl
If postoji Boja, Veličina i Količina
Get detalje Artikl
Else
Pošalji obaveštenje o nemogućnosti ispunjenja
Put Artikl u Listu neuspelih narudžbi
End if
Else
Pošalji obaveštenje o nemogućnosti ispunjenja
Put Artikl u Listu neuspelih narudžbi
End if
End

- PK 1.4
Provera zastarelih Predračuna

Traži Datum u Spisku Predračuna


If (Datum iz Spiska Predračuna+10 dana)<= Today(Datum)
Get Predračun
Oslobodi Lager Listu po stavkama iz Predračuna
End

18
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

- PK 1.5
Provera Uplate

Traži Ime_Klijenta u Spisku Predračuna


If postoji Ime_Klijenta
If Uplaćena_Suma=Suma_Predračun
Get Predračun
Else
Obaveštenje o nepostojanju takvog Predračuna (Postoji Klijent ne postoji Suma-Proveriti sa Administracijom)
End
Else
Obaveštenje o nepostojanju takvog Klijenta u Predračunaima
End

19
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

3. Softverska realizacija IS

3.1. Programska realizacija podsistema


- programski code (VBA):

Form: EmailNarudzba

Code
1 VERSION 1.0 CLASS
2 BEGIN
3 MultiUse = -1 'True
4 END
5 Attribute VB_Name = "Form_EmailNarudzba"
6 Attribute VB_GlobalNameSpace = False
7 Attribute VB_Creatable = True
8 Attribute VB_PredeclaredId = True
9 Attribute VB_Exposed = False
10 Option Compare Database
11
12
13
14
15
16 Private Sub Command34_Click()
17 Refresh
18 If (IsNumeric([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica)) Then
19 If ([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica > 0) And
(IsNumeric(Me.BrojNarudzbe)) Then
20 Me.ww = 1
21 Me.ImaNarudzbe = "Da"
22 DoCmd.Save
23 End If
24 ElseIf (IsNumeric(Me.BrojNarudzbe)) Then
25 Me.ww = 0
26 Me.ImaNarudzbe = "Ne"
27 Beep
28 MsgBox "Imate gresku u unosu", vbExclamation, "UPOZORENJE"
29 End If
30 End Sub
31
32 Private Sub Command9_Click()
33 On Error GoTo Err_Command9_Click
34
35
36 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
37
38 Exit_Command9_Click:
39 Exit Sub
40
41 Err_Command9_Click:
42 MsgBox Err.Description
43 Resume Exit_Command9_Click
44
45 End Sub
46 Private Sub Command14_Click()
47 On Error GoTo Err_Command14_Click
48
49
50 DoCmd.Close
51
52 Exit_Command14_Click:
53 Exit Sub
54
55 Err_Command14_Click:

20
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

56 MsgBox Err.Description
57 Resume Exit_Command14_Click
58
59 End Sub
60
61
62
63
64 Private Sub Command28_Click()
65 On Error GoTo Err_Command28_Click
66
67
68 DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
69 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
70
71 Exit_Command28_Click:
72 Exit Sub
73
74 Err_Command28_Click:
75 MsgBox Err.Description
76 Resume Exit_Command28_Click
77
78 End Sub
79
80
81 Private Sub Form_Current()
82 Refresh
83 If (IsNumeric([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica)) Then
84 If ([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica > 0) And
(IsNumeric(Me.BrojNarudzbe)) Then
85 Me.ww = 1
86 Me.ImaNarudzbe = "Da"
87 End If
88 ElseIf (IsNumeric(Me.BrojNarudzbe)) Then
89 Me.ww = 0
90 Me.ImaNarudzbe = "Ne"
91 End If
92 End Sub

Form: Klijent subform

Code
1 VERSION 1.0 CLASS
2 BEGIN
3 MultiUse = -1 'True
4 END
5 Attribute VB_Name = "Form_Klijent subform"
6 Attribute VB_GlobalNameSpace = False
7 Attribute VB_Creatable = True
8 Attribute VB_PredeclaredId = True
9 Attribute VB_Exposed = False
10 Option Compare Database
11
12 Private Sub Command18_Click()
13 Command24_Click
14 If (Not IsNull(Me.IDKlijenta)) Then
15 Forms!EmailNarudzba!IDKlijenta = Me!IDKlijent
16 End If
17 'Forms!EmailNarudzba![Narudzba subform].Form!IdArtikla = 2
18 End Sub
19
20 Private Sub Command21_Click()
21 On Error GoTo Err_Command21_Click
22
23
24 Screen.PreviousControl.SetFocus
25 DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70

21
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

26
27 Exit_Command21_Click:
28 Exit Sub
29
30 Err_Command21_Click:
31 MsgBox Err.Description
32 Resume Exit_Command21_Click
33
34 End Sub
35 Private Sub Command22_Click()
36 On Error GoTo Err_Command22_Click
37
38
39 DoCmd.GoToRecord , , acNewRec
40
41 Exit_Command22_Click:
42 Exit Sub
43
44 Err_Command22_Click:
45 MsgBox Err.Description
46 Resume Exit_Command22_Click
47
48 End Sub
49 Private Sub Command24_Click()
50 On Error GoTo Err_Command24_Click
51
52
53 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
54
55 Exit_Command24_Click:
56 Exit Sub
57
58 Err_Command24_Click:
59 MsgBox Err.Description
60 Resume Exit_Command24_Click
61
62 End Sub
63 Private Sub Command25_Click()
64 On Error GoTo Err_Command25_Click
65
66
67 DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
68 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
69
70 Exit_Command25_Click:
71 Exit Sub
72
73 Err_Command25_Click:
74 MsgBox Err.Description
75 Resume Exit_Command25_Click
76
77 End Sub

Form: Naslovna

Code
1 VERSION 1.0 CLASS
2 BEGIN
3 MultiUse = -1 'True
4 END
5 Attribute VB_Name = "Form_Naslovna"
6 Attribute VB_GlobalNameSpace = False
7 Attribute VB_Creatable = True
8 Attribute VB_PredeclaredId = True
9 Attribute VB_Exposed = False
10 Option Compare Database
11
12 Private Sub Command26_Click()
13 On Error GoTo Err_Command26_Click

22
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

14
15
16 DoCmd.Quit
17
18 Exit_Command26_Click:
19 Exit Sub
20
21 Err_Command26_Click:
22 MsgBox Err.Description
23 Resume Exit_Command26_Click
24
25 End Sub

Form: PregledRezervisanih

Code
1 VERSION 1.0 CLASS
2 BEGIN
3 MultiUse = -1 'True
4 END
5 Attribute VB_Name = "Form_PregledRezervisanih"
6 Attribute VB_GlobalNameSpace = False
7 Attribute VB_Creatable = True
8 Attribute VB_PredeclaredId = True
9 Attribute VB_Exposed = False
10 Option Compare Database
11
12 Private Sub Command11_Click()
13 On Error GoTo Err_Command11_Click
14
15
16 Screen.PreviousControl.SetFocus
17 DoCmd.FindNext
18
19 Exit_Command11_Click:
20 Exit Sub
21
22 Err_Command11_Click:
23 MsgBox Err.Description
24 Resume Exit_Command11_Click
25
26 End Sub
27
28 Private Sub RezObav_Click()
29
30 On Error GoTo RezObav_Click_Err
31 DoCmd.OpenQuery "OznaciNegativnePretrage", acViewNormal, acEdit
32 DoCmd.OpenQuery "OznacireRezervacije", acViewNormal, acEdit
33 If (Me.brojArtikala = Me.BrUsp) And (Me.brojArtikala > 0) Then
34 ' Ako je broj artikala u Narudzbenici jednak broju artikala u selektovanom delu iz
Lager liste , a da pri tom taj broj veci od 0 tada smo uspesno odradili Rezervaciju za
celu narudzbenicu i saljemo pozitivan odgovor sa predracunom
35 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 2
36 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit
37 ElseIf (Me.brojArtikala > Me.BrUsp) And (Me.BrUsp > 0) Then
38 ' Ako je broj artikala iy Narudzbenice veci od broja artikala selektovanih iz
Lagerliste, a da pri tom broj selektovanih iz LL je veci od 0, tada smo delimicno odradili
rezervaciju. Tako oznacimi tu narudzbu a selektovane artikle stavljamo upredracun i
saljemo delimicno pozitivan odgovor.
39 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 7
40 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit
41 Else
42 ' Ako nije nista od gore ponudjenog onda je Negativan odgovor tj Narudzbenicu ne
mozemo ispostovani i saljemo takav odgovor.
43 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 4
44 DoCmd.OpenReport "Negativan Odgovor", acViewPreview, "", "", acNormal
45

23
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

46 ' DoCmd.SendObject acReport, "Negativan Odgovor", "SnapshotFormat(*.snp)",


Me.EMail, "", "", "Odgovor Mamma Mia", "Postovani", False, ""
47
48
49
50 End If
51 Me.DatumObrade = Date
52 Refresh
53
54
55 RezObav_Click_Exit:
56 Exit Sub
57
58 RezObav_Click_Err:
59 MsgBox Error$
60 Resume RezObav_Click_Exit
61
62
63
64
65
66
67
68
69 End Sub

Form: Rezervacija

Code
1 VERSION 1.0 CLASS
2 BEGIN
3 MultiUse = -1 'True
4 END
5 Attribute VB_Name = "Form_Rezervacija"
6 Attribute VB_GlobalNameSpace = False
7 Attribute VB_Creatable = True
8 Attribute VB_PredeclaredId = True
9 Attribute VB_Exposed = False
10 Option Compare Database
11
12 Private Sub Command11_Click()
13 On Error GoTo Err_Command11_Click
14
15
16 Screen.PreviousControl.SetFocus
17 DoCmd.FindNext
18
19 Exit_Command11_Click:
20 Exit Sub
21
22 Err_Command11_Click:
23 MsgBox Err.Description
24 Resume Exit_Command11_Click
25
26 End Sub
27
28 Private Sub RezObav_Click()
29
30 On Error GoTo RezObav_Click_Err
31 Forms!Rezervacija![EmailNarudzba subform].Form!DatumObrade = Date
32
33
34 If Me.Stanje = 1 Then
35 DoCmd.OpenQuery "OznaciNegativnePretrage", acViewNormal, acEdit
36 DoCmd.OpenQuery "OznacireRezervacije", acViewNormal, acEdit
37 If (Me.brojArtikala = Me.BrUsp) And (Me.brojArtikala > 0) Then
38 ' Ako je broj artikala u Narudzbenici jednak broju artikala u selektovanom delu iz
Lager liste , a da pri tom taj broj veci od 0 tada smo uspesno odradili Rezervaciju za
celu narudzbenicu i saljemo pozitivan odgovor sa predracunom

24
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

39 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 2
40 DoCmd.OpenQuery "PozivPredracun", acViewNormal, acEdit
41 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit
42 DoCmd.OpenReport "Pozitivan Odgovor", acViewPreview, "", "", acNormal
43 ElseIf (Me.brojArtikala > Me.BrUsp) And (Me.BrUsp > 0) Then
44 ' Ako je broj artikala iz Narudzbenice veci od broja artikala selektovanih iz
Lagerliste, a da pri tom broj selektovanih iz LL je veci od 0, tada smo delimicno odradili
rezervaciju. Tako oznacimi tu narudzbu a selektovane artikle stavljamo u predracun i
saljemo delimicno pozitivan odgovor.
45 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 7
46 DoCmd.OpenQuery "PozivPredracun", acViewNormal, acEdit
47 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit
48 DoCmd.OpenReport "Pozitivan Odgovor", acViewPreview, "", "", acNormal
49 Else
50 ' Ako nije nista od gore ponudjenog onda je Negativan odgovor tj Narudzbenicu ne
mozemo ispostovani i saljemo takav odgovor.
51 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 4
52 DoCmd.OpenReport "Negativan Odgovor", acViewPreview, "", "", acNormal
53
54
55
56 End If
57
58 Refresh
59 Requery
60 Refresh
61
62 End If
63 RezObav_Click_Exit:
64 Exit Sub
65
66 RezObav_Click_Err:
67 MsgBox Error$
68 Resume RezObav_Click_Exit
69
70
71
72
73
74
75
76
77 End Sub
78 Private Sub Command37_Click()
79 On Error GoTo Err_Command37_Click
80
81
82 DoCmd.Close
83
84 Exit_Command37_Click:
85 Exit Sub
86
87 Err_Command37_Click:
88 MsgBox Err.Description
89 Resume Exit_Command37_Click
90
91 End Sub

Form: RezPredracuni

Code
1 VERSION 1.0 CLASS
2 BEGIN
3 MultiUse = -1 'True
4 END
5 Attribute VB_Name = "Form_RezPredracuni"
6 Attribute VB_GlobalNameSpace = False

25
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

8 Attribute VB_PredeclaredId = True


9 Attribute VB_Exposed = False
10 Option Compare Database
11 Option Explicit
12
13 Private Sub Command20_Click()
14 On Error GoTo Err_Command20_Click
15
16
17 Screen.PreviousControl.SetFocus
18 DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
19
20 Exit_Command20_Click:
21 Exit Sub
22
23 Err_Command20_Click:
24 MsgBox Err.Description
25 Resume Exit_Command20_Click
26
27 End Sub
28 Private Sub Command23_Click()
29 On Error GoTo Err_Command23_Click
30
31
32 DoCmd.Close
33
34 Exit_Command23_Click:
35 Exit Sub
36
37 Err_Command23_Click:
38 MsgBox Err.Description
39 Resume Exit_Command23_Click
40
41 End Sub

- Macro

Macro: Macro1

Actions
Name Condition Action Argument Value
SetValue Item: [Forms]![EmailNarudzba]!
[IDKlijenta]

Expression: [Forms]![Klijent
subform]![IDKlijenta]

Macro: Macro2

Actions
Name Condition Action Argument Value
GoToRecord Object Type: Form

Object Name: EmailNarudzba


Record: New
Offset:

26
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Macro: Macro3

Actions
Name Condition Action Argument Value
SetValue Item: [Forms]![Rezervacija]!
[EmailNarud
zba subform].[Form]![Stanje]

Expression: 5

Macro: Max

Actions
Name Condition Action Argument Value
Maximize

Macro: Novi

Actions
Name Condition Action Argument Value
GoToRecord Object Type: Table

Object Name: Klijent


Record: New
Offset:

Macro: OpenRez

Actions
Name Condition Action Argument Value
OpenForm Form Name: Rezervacija

View: Form
Filter Name:
Where Condition:
Data Mode: -1
Window Mode: Normal

27
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Macro: OpenUnosNar

Name Condition Action Argument Value


OpenForm Form Name: EmailNarudzba

View: Form
Filter Name:
Where Condition:
Data Mode: -1
Window Mode: Normal

Macro: Otvori Artikle

Actions
Name Condition Action Argument Value
OpenForm Form Name: Artikal

View: Form
Filter Name:
Where Condition:
Data Mode: -1
Window Mode: Normal

Macro: OtvoriLL

Actions
Name Condition Action Argument Value
OpenForm Form Name: Lager Lista Full

View: Form
Filter Name:
Where Condition:
Data Mode: -1
Window Mode: Normal

Macro: PokreniUpMakro

Actions
Name Condition Action Argument Value
OpenQuery Query Name: OznaciNegativnePretrage

View: Datasheet
Data Mode: Edit

OpenQuery Query Name: OznacireRezervacije

View: Datasheet
Data Mode: Edit

28
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Macro: POSALJI

Actions
Name Condition Action Argument Value
SendObject Object Type: Report

Object Name: Negativan Odgovor


Output Format: SnapshotFormat(*.snp)
To: =[Reports]![Negativan
Odgovor]![EMail]
Cc:
Bcc:
Subject: Odgovor
Message Text: Postovani,
Edit Message: No
Template File:

Macro: Pregled

Actions
Name Condition Action Argument Value
OpenForm Form Name: RezPredracuni

View: Form
Filter Name:
Where Condition:
Data Mode: -1
Window Mode: Normal

Macro: PregledSvih

Actions
Name Condition Action Argument Value
OpenForm Form Name: PregledRezervisanih

View: Form
Filter Name:
Where Condition:
Data Mode: -1
Window Mode: Normal

Macro: Proveri

Actions
Name Condition Action Argument Value
OpenQuery Query Name: ImaLiNarudzbi

View: Datasheet
Data Mode: Edit

29
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

- Query SQL

Query: BrojacTrazenih

SQL
SELECT Narudzba.IDEmailNarudzbenica, Count(Narudzba.IDEmailNarudzbenica) AS
CountOfIDEmailNarudzbenica
FROM Narudzba
GROUP BY Narudzba.IDEmailNarudzbenica;

Query: BrojacUspesnih

SQL
SELECT ProveriDaLiMoze.IDEmailNarudzbenica, Count(ProveriDaLiMoze.IDEmailNarudzbenica) AS
CountOfIDEmailNarudzbenica
FROM ProveriDaLiMoze
GROUP BY ProveriDaLiMoze.IDEmailNarudzbenica;

Query: DodajUPredracun

SQL
INSERT INTO [Predracun-lista] ( IDPredracun, IDNarudzbe, Boja, Velicina, Marka, Suma, Artikal )
SELECT Predracun.IDPredracun, Narudzba.IDEmailNarudzbenica, Narudzba.Boja, Narudzba.Velicina,
Artikal.Marka, Artikal.Cena, Narudzba.IdArtikla
FROM Artikal INNER JOIN (Predracun INNER JOIN Narudzba ON
Predracun.IDNarudzbe=Narudzba.IDEmailNarudzbenica) ON Artikal.IDArtikla=Narudzba.IdArtikla
GROUP BY Predracun.IDPredracun, Narudzba.IDEmailNarudzbenica, Narudzba.Boja, Narudzba.Velicina,
Artikal.Marka, Artikal.Cena, Narudzba.Stanje, Narudzba.ID, Narudzba.IdArtikla
HAVING (((Narudzba.IDEmailNarudzbenica)=Forms!Rezervacija!BrojNaru) And ((Narudzba.Stanje)=8));

Query Parameters
Name Type
Forms!Rezervacija!BrojNaru Text

Query: ImaLiNarudzbi

SQL
SELECT Narudzba.IDEmailNarudzbenica, Count(Narudzba.IDEmailNarudzbenica) AS
CountOfIDEmailNarudzbenica, EmailNarudzba.BrojNarudzbe
FROM EmailNarudzba LEFT JOIN Narudzba ON
EmailNarudzba.BrojNarudzbe=Narudzba.IDEmailNarudzbenica
GROUP BY Narudzba.IDEmailNarudzbenica, EmailNarudzba.BrojNarudzbe

Query Parameters
Name Type
Forms!EmailNarudzba!BrojN Text
arudzbe

Query: Lager Lista Full

SQL

30
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

FROM LagerLista INNER JOIN Artikal ON LagerLista.IDArtikla=Artikal.IDArtikla;

Query: OsnovniPodaci

SQL
SELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.Datum, Klijent.EIme, Klijent.EPrezime,
Klijent.Ejmbg, Klijent.EUlica, Klijent.EBroj, Klijent.EMesto, Klijent.ETelefon, Klijent.EMail
FROM Klijent RIGHT JOIN EmailNarudzba ON Klijent.IDKlijent=EmailNarudzba.IDKlijentaK
WHERE (((EmailNarudzba.BrojNarudzbe)=Forms!Rezervacija!BrojNaru));

Query Parameters
Name Type
Forms!Rezervacija!BrojNaru Text

Query: OsnovniPodaciPredracun

SQL
SELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.Datum, Klijent.EIme, Klijent.EPrezime,
Klijent.Ejmbg, Klijent.EUlica, Klijent.EBroj, Klijent.EMesto, Klijent.ETelefon, Klijent.EMail,
Predracun.IDPredracun, Predracun.IDNarudzbe
FROM Predracun INNER JOIN (Klijent RIGHT JOIN EmailNarudzba ON
Klijent.IDKlijent=EmailNarudzba.IDKlijentaK) ON Predracun.IDNarudzbe=EmailNarudzba.BrojNarudzbe
WHERE (((EmailNarudzba.BrojNarudzbe)=Forms!Rezervacija!BrojNaru));

Query Parameters
Name Type
Forms!Rezervacija!BrojNaru Text

Query: OznaciNegativnePretrage

SQL
UPDATE Narudzba LEFT JOIN LagerLista ON (Narudzba.IdArtikla = LagerLista.IDArtikla) AND
(Narudzba.Boja = LagerLista.IDBoja) AND (Narudzba.Velicina = LagerLista.Velicina) SET Narudzba.Stanje
= 4, Narudzba.DatumObrade = Date()
WHERE (((Narudzba.IDEmailNarudzbenica)=[Forms]![Rezervacija]![BrojNaru]) AND ((LagerLista.IDArtikla)
Is Null) AND ((LagerLista.IDBoja) Is Null) AND ((LagerLista.Velicina) Is Null));

Query Parameters
Name Type
[Forms]![Rezervacija]![BrojN Text
aru]

Query: OznacireRezervacije

SQL
UPDATE Narudzba INNER JOIN LagerLista ON (Narudzba.IdArtikla = LagerLista.IDArtikla) AND
(Narudzba.Boja = LagerLista.IDBoja) AND (Narudzba.Velicina = LagerLista.Velicina) SET Narudzba.Stanje
= 8, Narudzba.DatumObrade = Date(), LagerLista.RezervisanoKomada = [RezervisanoKomada]+1
WHERE (((Narudzba.IDEmailNarudzbenica)=[Forms]![Rezervacija]![BrojNaru]) AND (([Kolicina]-
[RezervisanoKomada])>0));

31
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Query Parameters
Name Type
[Forms]![Rezervacija]![BrojN Text
aru]

Query: PozivPredracun

SQL
INSERT INTO Predracun ( IDNarudzbe, IDKlijent, Ukupno )
SELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.IDKlijentaK, Sum(Artikal.Cena) AS SumOfCena
FROM (EmailNarudzba LEFT JOIN Narudzba ON
EmailNarudzba.BrojNarudzbe=Narudzba.IDEmailNarudzbenica) LEFT JOIN Artikal ON
Narudzba.IdArtikla=Artikal.IDArtikla
GROUP BY EmailNarudzba.BrojNarudzbe, EmailNarudzba.IDKlijentaK, EmailNarudzba.Stanje,
Narudzba.Stanje

Query Parameters
Name Type
Forms!Rezervacija!BrojNaru Text

Query: Predd

SQL
SELECT EmailNarudzba.BrojNarudzbe, Predracun.IDPredracun, Predracun.Artikal, Predracun.Suma
FROM EmailNarudzba INNER JOIN Predracun ON EmailNarudzba.BrojNarudzbe =

Query Parameters
Name Type
Predracun.Artikal Text
Predracun.Suma Text

Query: Predracun1

SQL
SELECT [Predracun-lista].IDPredracun, [Predracun-lista].IDNarudzbe, [Predracun-lista].Artikal, [Predracun-
lista].Suma, [Predracun-lista].Velicina, [Predracun-lista].Marka, Vrsta.Vrsta, Boja.Boja
FROM Boja RIGHT JOIN (Vrsta RIGHT JOIN ([Predracun-lista] LEFT JOIN Artikal ON [Predracun-
lista].Artikal=Artikal.IDArtikla) ON Vrsta.IDVrsta=Artikal.Vrsta) ON Boja.IDBoja=[Predracun-lista].Boja;

Query: ProveriDaLiMoze

SQL
SELECT Narudzba.IDEmailNarudzbenica, LagerLista.Kolicina, LagerLista.Velicina, LagerLista.IDArtikla,
Narudzba.DatumObrade, LagerLista.RezervisanoKomada, [Kolicina]-[RezervisanoKomada] AS Slobodno,
Boja.Boja, Stanje.Stanje
FROM Stanje INNER JOIN (Boja INNER JOIN (LagerLista INNER JOIN Narudzba ON
(LagerLista.IDArtikla=Narudzba.IdArtikla) AND (LagerLista.IDBoja=Narudzba.Boja) AND
(LagerLista.Velicina=Narudzba.Velicina)) ON Boja.IDBoja=LagerLista.IDBoja) ON
Stanje.IDStanje=Narudzba.Stanje
WHERE ((([Kolicina]-[RezervisanoKomada])>0));

32
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Query: Query1

SQL
SELECT Vrsta.Vrsta, Narudzba.IdArtikla, Narudzba.Velicina, Artikal.Marka, Narudzba.ID,
Narudzba.IDEmailNarudzbenica, Boja.Boja
FROM (Artikal LEFT JOIN Vrsta ON Artikal.Vrsta=Vrsta.IDVrsta) RIGHT JOIN (Boja RIGHT JOIN
Narudzba ON Boja.IDBoja=Narudzba.Boja) ON Artikal.IDArtikla=Narudzba.IdArtikla;

Query: Query2

SQL
SELECT EmailNarudzba.*
FROM EmailNarudzba;

Query: Query3

SQL
SELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.Datum, EmailNarudzba.IDKlijentaK,
Narudzba.IdArtikla, Narudzba.Boja, Narudzba.Boja, Narudzba.Velicina
FROM EmailNarudzba INNER JOIN Narudzba ON EmailNarudzba.BrojNarudzbe =
Narudzba.IDEmailNarudzbenica;

Query: RezPredracuni

SQL
SELECT EmailNarudzba.DatumObrade, EmailNarudzba.BrojNarudzbe, Predracun.IDPredracun,
Klijent.EIme, Klijent.EPrezime, Klijent.ETelefon, Predracun.Ukupno, Stanje.Stanje
FROM ((EmailNarudzba INNER JOIN Predracun ON
EmailNarudzba.BrojNarudzbe=Predracun.IDNarudzbe) INNER JOIN Klijent ON
Predracun.IDKlijent=Klijent.IDKlijent) INNER JOIN Stanje ON EmailNarudzba.Stanje=Stanje.IDStanje
WHERE (((EmailNarudzba.Stanje)=2)) OR (((EmailNarudzba.Stanje)=7));

Realizacija skladišta podataka :


- skladišta podataka

Table: Artikal

Columns
Name Type Size

IDArtikla Long Integer 4


Marka Text 50
Vrsta Long Integer 4
Cena Currency 8

Table Indexes
Name Number of Fields

IDArtikla 1
Fields:

33
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

IDArtikla Ascending
PrimaryKey 1
Fields:
IDArtikla Ascending
VrstaArtikal 1
Fields:
Vrsta Ascending

Table: Boja

Columns
Name Type Size

IDBoja Long Integer 4


Boja Text 10

Table Indexes
Name Number of Fields

BojaBoja 1
Fields:
Boja Ascending
IDBoje 1
Fields:
IDBoja Ascending
PrimaryKey 1
Fields:
IDBoja Ascending

Table: EmailNarudzba

Columns
Name Type Size

BrojNarudzbe Long Integer 4


Datum Date/Time 8
IDKlijentaK Long Integer 4
Stanje Long Integer 4
DatumObrade Date/Time 8
ImaLi Text 50

Table Indexes
Name Number of Fields

IDKlijenta 1
Fields:
IDKlijentaK Ascending
KlijentEmailNarudzba 1
Fields:
IDKlijentaK Ascending
PrimaryKey 1
Fields:
BrojNarudzbe Ascending
StanjeEmailNarudzba 1
Fields:
Stanje Ascending

Table: Klijent

34
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Columns
Name Type Size

IDKlijent Long Integer 4


EIme Text 15
EPrezime Text 20
Ejmbg Text 13
EUlica Text 25
EBroj Long Integer 4
EMesto Text 10
ETelefon Text 19
EMail Text 50

Table Indexes
Name Number of Fields

IDKlijent 1
Fields:
IDKlijent Ascending
PrimaryKey 1
Fields:
IDKlijent Ascending

Table: LagerLista

Columns
Name Type Size

ID Long Integer 4
IDArtikla Long Integer 4
IDBoja Long Integer 4
Velicina Long Integer 4
Kolicina Long Integer 4
RezervisanoKomada Long Integer 4

Table Indexes
Name Number of Fields

ArtikalLagerLista 1
Fields:
IDArtikla Ascending
BojaLagerLista 1
Fields:
IDBoja Ascending
ID 1
Fields:
ID Ascending
IdArtikla 1
Fields:
IDArtikla Ascending
IdBoja 1
Fields:
IDBoja Ascending
PrimaryKey 3
Fields:
IDArtikla Ascending

35
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

IDBoja Ascending
Velicina Ascending

Table: Narudzba

Columns
Name Type Size

ID Long Integer 4
IDEmailNarudzbenica Long Integer 4
IdArtikla Long Integer 4
Boja Long Integer 4
Velicina Long Integer 4
Stanje Long Integer 4
DatumObrade Date/Time 8

Table Indexes
Name Number of Fields

ArtikalNarudzba 1
Fields:
IdArtikla Ascending
EmailNarudzbaNarudzba 1
Fields:
IDEmailNarudzbenica Ascending
ID 1
Fields:
ID Ascending
IDEmailNarudzbenica 1
Fields:
IDEmailNarudzbenica Ascending
PrimaryKey 2
Fields:
ID Ascending
IDEmailNarudzbenica Ascending
StanjeNarudzba 1
Fields:
Stanje Ascending

Table: Predracun

Columns
Name Type
Size

IDPredracun Long Integer 4


IDNarudzbe Long Integer 4
Datum placanja-isteka rezervacije Text 50
IDKlijent Long Integer 4
Ukupno Currency 8

Table Indexes
Name Number of Fields

IDKlijent 1
Fields:
IDKlijent Ascending
IDNarudzbe 1

36
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

Fields:
IDNarudzbe Ascending
IDPredracun 1
Fields:
IDPredracun Ascending
PrimaryKey 1
Fields:
IDPredracun Ascending

Table: Predracun-lista

Columns
Name Type
Size

Rb Long Integer 4
IDPredracun Long Integer 4
IDNarudzbe Long Integer 4
Datum placanja-isteka rezervacije Text 50
Artikal Long Integer 4
Suma Long Integer 4
Boja Long Integer 4
Velicina Long Integer 4
Marka Text 50

Table Indexes
Name Number of Fields

ArtikalPredracun-lista 1
Fields:
Artikal Ascending
IDNarudzbe 1
Fields:
IDNarudzbe Ascending
IDPredracun 1
Fields:
IDPredracun Ascending
PrimaryKey 1
Fields:
Rb Ascending

Table: Stanje

Columns
Name Type
Size

IDStanje Long Integer 4


Stanje Text 50

Table Indexes
Name Number of Fields

IDStanje 1
Fields:
IDStanje Ascending
PrimaryKey 1
Fields:
IDStanje Ascending

37
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

StanjeStanje 1
Fields:
Stanje Ascending

Table: Vrsta

Columns
Name Type
Size

IDVrsta Long Integer 4


Vrsta Text 20

Table Indexes
Name Number of Fields

IDVrsta 1
Fields:
IDVrsta Ascending
PrimaryKey 1
Fields:
IDVrsta Ascending
VrstaVrsta 1
Fields:
Vrsta Ascending

38
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

- relacije između skladišta – relationships

39
IVANA PETROVIĆ PARALELNI INŽENJERING BROJ INDEXA 24/06-3

4. Testiranje softverske aplikacije

Testiranje urađeno sa reprezentativnim uzoru podataka,uzimajući u obzir sve moguće sitacije i vrste
podataka. Takođe izvršeno i testiranje pravilnog izračunavanja i evidentiranja unetih podataka.
U tok testiranjasve nepavilnosti su otklonjene,

40

You might also like