47
F@M 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

Paralelni inzenjering

Embed Size (px)

Citation preview

Page 1: Paralelni inzenjering

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

Paralelni inženjeringprodaje preko interneta u DOO „Mamma Mia“

Novi Sad, Februar 2010.godine

Predmetni profesor: Student:Prof. dr Marko Popović Ivana Petrović 24/06-3

Page 2: Paralelni inzenjering

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

Page 3: Paralelni inzenjering

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

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

Page 4: Paralelni inzenjering

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

DIREKTOR

KNJIGOVODSTVO BANKA

RUKOVODSTVO

NABAVLJAČ KLIJENT

ADMINIST. RADNIK

VOZAČ

POSLOVOĐE RADNJI

TRGOVINA

PRODAVCIADMIN.WEB PORTALA

ADMINISTRACIJA

ZAPOSLENI WEB PORTAL

MAGACINRADNJE

LAGER LISTA

4

Page 5: Paralelni inzenjering

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

2.2. Dijagram Konteksta RS

0 Mamma Mia

Prodaja preko interneta Pošta

Dostava robe i Račun

Web Klijent

Lager lista

E-Mail_Narudžbenica Obaveštenje/ Predračun

Ažuriranje L.l.

Podaci sa stanju robe na zalihama

BankaUplata na račun

5

Page 6: Paralelni inzenjering

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

2.3. Relaciona struktura RS (Podsistem Prodaja preko interneta)

Lager lista

Uplata

Provera po narudžbenici

Predračun

Nalog za dostavu

Web Klijent E-mail narudzbenica

Odgovor o proveri

Obaveštenje o nemogućnosti ispunjenja zahteva

Web portalPRODAJA

PREKO INTERNETA

Ponuda robe preko web sajta

Administracija

Ažuriranje lager liste

Ažuriranje web sajta

Roba i račun

6

Page 7: Paralelni inzenjering

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 portalaWeb Klijent prilikom odabira podnosi E-mail naružbenicu Web portaluWeb 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

Page 8: Paralelni inzenjering

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

Page 9: Paralelni inzenjering

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

2.6. Dijagram toka podataka RS- Obrada zahteva

E-mail narudžbenica

1 PRODAJA

Obrada zahtevaKLIJENT

D0 Narudžba

D6 Odgovori

D7 Klijenti

Odgovor

9

Page 10: Paralelni inzenjering

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

Page 11: Paralelni inzenjering

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

Page 12: Paralelni inzenjering

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

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

Provera po narudžbi

E-mail narudžbenica

1 PRODAJA

Obrada zahtevaKLIJENT

D0 Narudžba

D6 Odgovori

D7 Klijenti

Odgovor

2 PRODAJALAGER LISTA

D1 Lager Lista

Odgovor LL

12

Page 13: Paralelni inzenjering

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

Page 14: Paralelni inzenjering

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

Page 15: Paralelni inzenjering

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

Page 16: Paralelni inzenjering

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

Narudžbenica i osn. podaci o Web Klijentu

Neupela Narudž.

Narudžbe

Osnovni podaci

Predračun

Web Klijent

1.5Provera uplate

1.1Uzmi podatke o naruč. robi

1.2Provera da li postoji roba

Dijagram toka podataka

Pozitivan odgovor i Predračun

Šifra artikla,

veličina, boja i

količina

Izveštaj o postojanosti

Obaveštenje o nemogućnosti ispunjenja zahteva

Podaci o robi iz Računa

Račun i roba

D2 Predračuni

Ime Klijenta i suma uplate

Izveštaj o poredjenju uplate i predračuna

Uplata

D1 Lager lista

1.7Ažuriraj lager listu

skladišta

Rezerviši robu iz predračuna

1.3Napravi predračun

1.6Napravi račun i

spakuj robu

Račun i roba

1.4Provera zastarelih

PredračunaAžuriranje spiska

Lista zastarelih predračuna

Otkazivanje rezervacije robe iz Predračuna

D3 Lista neuspelih narudž.

D5 Lista faktura D4 Plaćeni predračuni

Račun i roba

Podaci o robi iz Predračuna

Generisanje računa

D0 Narudžbe

D6 Odgovori

D7 Klijenti

Uspešna Narudž.

D7 Klijenti

16

Page 17: Paralelni inzenjering

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

Page 18: Paralelni inzenjering

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

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

Get NarudzbuTraži Artikl u Lager listiIf postoji Artikl

If postoji Boja, Veličina i Količina Get detalje Artikl

ElsePošalji obaveštenje o nemogućnosti ispunjenja

Put Artikl u Listu neuspelih narudžbiEnd if

Else Pošalji obaveštenje o nemogućnosti ispunjenja Put Artikl u Listu neuspelih narudžbi

End ifEnd

- PK 1.4Provera zastarelih Predračuna

Traži Datum u Spisku PredračunaIf (Datum iz Spiska Predračuna+10 dana)<= Today(Datum)

Get Predračun Oslobodi Lager Listu po stavkama iz Predračuna

End

18

Page 19: Paralelni inzenjering

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

- PK 1.5Provera Uplate

Traži Ime_Klijenta u Spisku PredračunaIf postoji Ime_Klijenta

If Uplaćena_Suma=Suma_PredračunGet Predračun

ElseObaveštenje o nepostojanju takvog Predračuna (Postoji Klijent ne postoji Suma-Proveriti sa Administracijom)

EndElse Obaveštenje o nepostojanju takvog Klijenta u PredračunaimaEnd

19

Page 20: Paralelni inzenjering

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

3. Softverska realizacija IS

3.1. Programska realizacija podsistema- programski code (VBA):

Form: EmailNarudzba

Code1 VERSION 1.0 CLASS2 BEGIN3 MultiUse = -1 'True4 END5 Attribute VB_Name = "Form_EmailNarudzba"6 Attribute VB_GlobalNameSpace = False7 Attribute VB_Creatable = True8 Attribute VB_PredeclaredId = True9 Attribute VB_Exposed = False

10 Option Compare Database111213141516 Private Sub Command34_Click()17 Refresh18 If (IsNumeric([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica)) Then19 If ([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica > 0) And

(IsNumeric(Me.BrojNarudzbe)) Then20 Me.ww = 121 Me.ImaNarudzbe = "Da"22 DoCmd.Save23 End If24 ElseIf (IsNumeric(Me.BrojNarudzbe)) Then25 Me.ww = 026 Me.ImaNarudzbe = "Ne"27 Beep28 MsgBox "Imate gresku u unosu", vbExclamation, "UPOZORENJE"29 End If30 End Sub3132 Private Sub Command9_Click()33 On Error GoTo Err_Command9_Click343536 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer703738 Exit_Command9_Click:39 Exit Sub4041 Err_Command9_Click:42 MsgBox Err.Description43 Resume Exit_Command9_Click44 45 End Sub46 Private Sub Command14_Click()47 On Error GoTo Err_Command14_Click484950 DoCmd.Close5152 Exit_Command14_Click:53 Exit Sub5455 Err_Command14_Click:56 MsgBox Err.Description57 Resume Exit_Command14_Click

20

Page 21: Paralelni inzenjering

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

59 End Sub6061626364 Private Sub Command28_Click()65 On Error GoTo Err_Command28_Click666768 DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer7069 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer707071 Exit_Command28_Click:72 Exit Sub7374 Err_Command28_Click:75 MsgBox Err.Description76 Resume Exit_Command28_Click77 78 End Sub798081 Private Sub Form_Current()82 Refresh83 If (IsNumeric([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica)) Then84 If ([ImaLiNarudzbi subform].Form!CountOfIDEmailNarudzbenica > 0) And

(IsNumeric(Me.BrojNarudzbe)) Then85 Me.ww = 186 Me.ImaNarudzbe = "Da"87 End If88 ElseIf (IsNumeric(Me.BrojNarudzbe)) Then89 Me.ww = 090 Me.ImaNarudzbe = "Ne"91 End If92 End Sub

Form: Klijent subform

Code1 VERSION 1.0 CLASS2 BEGIN3 MultiUse = -1 'True4 END5 Attribute VB_Name = "Form_Klijent subform"6 Attribute VB_GlobalNameSpace = False7 Attribute VB_Creatable = True8 Attribute VB_PredeclaredId = True9 Attribute VB_Exposed = False

10 Option Compare Database1112 Private Sub Command18_Click()13 Command24_Click14 If (Not IsNull(Me.IDKlijenta)) Then15 Forms!EmailNarudzba!IDKlijenta = Me!IDKlijent16 End If17 'Forms!EmailNarudzba![Narudzba subform].Form!IdArtikla = 218 End Sub1920 Private Sub Command21_Click()21 On Error GoTo Err_Command21_Click222324 Screen.PreviousControl.SetFocus25 DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer702627 Exit_Command21_Click:28 Exit Sub2930 Err_Command21_Click:

21

Page 22: Paralelni inzenjering

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

32 Resume Exit_Command21_Click33 34 End Sub35 Private Sub Command22_Click()36 On Error GoTo Err_Command22_Click373839 DoCmd.GoToRecord , , acNewRec4041 Exit_Command22_Click:42 Exit Sub4344 Err_Command22_Click:45 MsgBox Err.Description46 Resume Exit_Command22_Click47 48 End Sub49 Private Sub Command24_Click()50 On Error GoTo Err_Command24_Click515253 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer705455 Exit_Command24_Click:56 Exit Sub5758 Err_Command24_Click:59 MsgBox Err.Description60 Resume Exit_Command24_Click61 62 End Sub63 Private Sub Command25_Click()64 On Error GoTo Err_Command25_Click656667 DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer7068 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer706970 Exit_Command25_Click:71 Exit Sub7273 Err_Command25_Click:74 MsgBox Err.Description75 Resume Exit_Command25_Click76 77 End Sub

Form: Naslovna

Code1 VERSION 1.0 CLASS2 BEGIN3 MultiUse = -1 'True4 END5 Attribute VB_Name = "Form_Naslovna"6 Attribute VB_GlobalNameSpace = False7 Attribute VB_Creatable = True8 Attribute VB_PredeclaredId = True9 Attribute VB_Exposed = False

10 Option Compare Database1112 Private Sub Command26_Click()13 On Error GoTo Err_Command26_Click141516 DoCmd.Quit1718 Exit_Command26_Click:19 Exit Sub2021 Err_Command26_Click:

22

Page 23: Paralelni inzenjering

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

23 Resume Exit_Command26_Click24 25 End Sub

Form: PregledRezervisanih

Code1 VERSION 1.0 CLASS2 BEGIN3 MultiUse = -1 'True4 END5 Attribute VB_Name = "Form_PregledRezervisanih"6 Attribute VB_GlobalNameSpace = False7 Attribute VB_Creatable = True8 Attribute VB_PredeclaredId = True9 Attribute VB_Exposed = False

10 Option Compare Database1112 Private Sub Command11_Click()13 On Error GoTo Err_Command11_Click141516 Screen.PreviousControl.SetFocus17 DoCmd.FindNext1819 Exit_Command11_Click:20 Exit Sub2122 Err_Command11_Click:23 MsgBox Err.Description24 Resume Exit_Command11_Click25 26 End Sub2728 Private Sub RezObav_Click()2930 On Error GoTo RezObav_Click_Err31 DoCmd.OpenQuery "OznaciNegativnePretrage", acViewNormal, acEdit32 DoCmd.OpenQuery "OznacireRezervacije", acViewNormal, acEdit33 If (Me.brojArtikala = Me.BrUsp) And (Me.brojArtikala > 0) Then34 ' 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 = 236 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit37 ElseIf (Me.brojArtikala > Me.BrUsp) And (Me.BrUsp > 0) Then38 ' 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 = 740 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit41 Else42 ' 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 = 444 DoCmd.OpenReport "Negativan Odgovor", acViewPreview, "", "", acNormal45 46 ' DoCmd.SendObject acReport, "Negativan Odgovor",

"SnapshotFormat(*.snp)", Me.EMail, "", "", "Odgovor Mamma Mia", "Postovani", False, ""

47 48 49

23

Page 24: Paralelni inzenjering

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

51 Me.DatumObrade = Date52 Refresh535455 RezObav_Click_Exit:56 Exit Sub5758 RezObav_Click_Err:59 MsgBox Error$60 Resume RezObav_Click_Exit616263646566676869 End Sub

Form: Rezervacija

Code1 VERSION 1.0 CLASS2 BEGIN3 MultiUse = -1 'True4 END5 Attribute VB_Name = "Form_Rezervacija"6 Attribute VB_GlobalNameSpace = False7 Attribute VB_Creatable = True8 Attribute VB_PredeclaredId = True9 Attribute VB_Exposed = False

10 Option Compare Database1112 Private Sub Command11_Click()13 On Error GoTo Err_Command11_Click141516 Screen.PreviousControl.SetFocus17 DoCmd.FindNext1819 Exit_Command11_Click:20 Exit Sub2122 Err_Command11_Click:23 MsgBox Err.Description24 Resume Exit_Command11_Click25 26 End Sub2728 Private Sub RezObav_Click()2930 On Error GoTo RezObav_Click_Err31 Forms!Rezervacija![EmailNarudzba subform].Form!DatumObrade = Date323334 If Me.Stanje = 1 Then35 DoCmd.OpenQuery "OznaciNegativnePretrage", acViewNormal, acEdit36 DoCmd.OpenQuery "OznacireRezervacije", acViewNormal, acEdit37 If (Me.brojArtikala = Me.BrUsp) And (Me.brojArtikala > 0) Then38 ' 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

39 Forms!Rezervacija![EmailNarudzba subform].Form!Stanje = 240 DoCmd.OpenQuery "PozivPredracun", acViewNormal, acEdit41 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit42 DoCmd.OpenReport "Pozitivan Odgovor", acViewPreview, "", "", acNormal43 ElseIf (Me.brojArtikala > Me.BrUsp) And (Me.BrUsp > 0) Then44 ' Ako je broj artikala iz Narudzbenice veci od broja artikala selektovanih iz

24

Page 25: Paralelni inzenjering

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

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 = 746 DoCmd.OpenQuery "PozivPredracun", acViewNormal, acEdit47 DoCmd.OpenQuery "DodajUPredracun", acViewNormal, acEdit48 DoCmd.OpenReport "Pozitivan Odgovor", acViewPreview, "", "", acNormal49 Else50 ' 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 = 452 DoCmd.OpenReport "Negativan Odgovor", acViewPreview, "", "", acNormal53 54 55 56 End If5758 Refresh59 Requery60 Refresh6162 End If63 RezObav_Click_Exit:64 Exit Sub6566 RezObav_Click_Err:67 MsgBox Error$68 Resume RezObav_Click_Exit697071727374757677 End Sub78 Private Sub Command37_Click()79 On Error GoTo Err_Command37_Click808182 DoCmd.Close8384 Exit_Command37_Click:85 Exit Sub8687 Err_Command37_Click:88 MsgBox Err.Description89 Resume Exit_Command37_Click90 91 End Sub

Form: RezPredracuni

Code1 VERSION 1.0 CLASS2 BEGIN3 MultiUse = -1 'True4 END5 Attribute VB_Name = "Form_RezPredracuni"6 Attribute VB_GlobalNameSpace = False7 Attribute VB_Creatable = True8 Attribute VB_PredeclaredId = True9 Attribute VB_Exposed = False

10 Option Compare Database11 Option Explicit12

25

Page 26: Paralelni inzenjering

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

14 On Error GoTo Err_Command20_Click151617 Screen.PreviousControl.SetFocus18 DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer701920 Exit_Command20_Click:21 Exit Sub2223 Err_Command20_Click:24 MsgBox Err.Description25 Resume Exit_Command20_Click26 27 End Sub28 Private Sub Command23_Click()29 On Error GoTo Err_Command23_Click303132 DoCmd.Close3334 Exit_Command23_Click:35 Exit Sub3637 Err_Command23_Click:38 MsgBox Err.Description39 Resume Exit_Command23_Click40 41 End Sub

- Macro

Macro: Macro1

ActionsName Condition Action Argument Value

SetValue Item: [Forms]![EmailNarudzba]![IDKlijenta]

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

Macro: Macro2

ActionsName Condition Action Argument Value

GoToRecord Object Type: Form

Object Name: EmailNarudzbaRecord: NewOffset:

Macro: Macro3

ActionsName Condition Action Argument Value

SetValue Item: [Forms]![Rezervacija]![EmailNarud

26

Page 27: Paralelni inzenjering

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

zba subform].[Form]![Stanje]

Expression: 5

Macro: Max

ActionsName Condition Action Argument Value

Maximize

Macro: Novi

ActionsName Condition Action Argument Value

GoToRecord Object Type: Table

Object Name: KlijentRecord: NewOffset:

Macro: OpenRez

ActionsName Condition Action Argument Value

OpenForm Form Name: Rezervacija

View: FormFilter Name: Where Condition: Data Mode: -1Window Mode: Normal

Macro: OpenUnosNar

Name Condition Action Argument Value

OpenForm Form Name: EmailNarudzba

27

Page 28: Paralelni inzenjering

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

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

Macro: Otvori Artikle

ActionsName Condition Action Argument Value

OpenForm Form Name: Artikal

View: FormFilter Name: Where Condition: Data Mode: -1Window Mode: Normal

Macro: OtvoriLL

ActionsName Condition Action Argument Value

OpenForm Form Name: Lager Lista Full

View: FormFilter Name: Where Condition: Data Mode: -1Window Mode: Normal

Macro: PokreniUpMakro

ActionsName Condition Action Argument Value

OpenQuery Query Name: OznaciNegativnePretrage

View: DatasheetData Mode: Edit

OpenQuery Query Name: OznacireRezervacije

View: DatasheetData Mode: Edit

Macro: POSALJI

ActionsName Condition Action Argument Value

SendObject Object Type: Report

Object Name: Negativan OdgovorOutput Format: SnapshotFormat(*.snp)To: =[Reports]![Negativan

28

Page 29: Paralelni inzenjering

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

Odgovor]![EMail]Cc: Bcc: Subject: OdgovorMessage Text: Postovani,Edit Message: NoTemplate File:

Macro: Pregled

ActionsName Condition Action Argument Value

OpenForm Form Name: RezPredracuni

View: FormFilter Name: Where Condition: Data Mode: -1Window Mode: Normal

Macro: PregledSvih

ActionsName Condition Action Argument Value

OpenForm Form Name: PregledRezervisanih

View: FormFilter Name: Where Condition: Data Mode: -1Window Mode: Normal

Macro: Proveri

ActionsName Condition Action Argument Value

OpenQuery Query Name: ImaLiNarudzbi

View: DatasheetData Mode: Edit

- Query SQL

Query: BrojacTrazenih

SQLSELECT Narudzba.IDEmailNarudzbenica, Count(Narudzba.IDEmailNarudzbenica) AS CountOfIDEmailNarudzbenicaFROM NarudzbaGROUP BY Narudzba.IDEmailNarudzbenica;

Query: BrojacUspesnih29

Page 30: Paralelni inzenjering

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

SQLSELECT ProveriDaLiMoze.IDEmailNarudzbenica, Count(ProveriDaLiMoze.IDEmailNarudzbenica)

AS CountOfIDEmailNarudzbenicaFROM ProveriDaLiMozeGROUP BY ProveriDaLiMoze.IDEmailNarudzbenica;

Query: DodajUPredracun

SQLINSERT INTO [Predracun-lista] ( IDPredracun, IDNarudzbe, Boja, Velicina, Marka, Suma, Artikal )SELECT Predracun.IDPredracun, Narudzba.IDEmailNarudzbenica, Narudzba.Boja,

Narudzba.Velicina, Artikal.Marka, Artikal.Cena, Narudzba.IdArtiklaFROM Artikal INNER JOIN (Predracun INNER JOIN Narudzba ON Predracun.IDNarudzbe=Narudzba.IDEmailNarudzbenica) ON

Artikal.IDArtikla=Narudzba.IdArtiklaGROUP BY Predracun.IDPredracun, Narudzba.IDEmailNarudzbenica, Narudzba.Boja,

Narudzba.Velicina, Artikal.Marka, Artikal.Cena, Narudzba.Stanje, Narudzba.ID, Narudzba.IdArtiklaHAVING (((Narudzba.IDEmailNarudzbenica)=Forms!Rezervacija!BrojNaru) And

((Narudzba.Stanje)=8));

Query Parameters

Name TypeForms!Rezervacija!BrojNaru Text

Query: ImaLiNarudzbi

SQLSELECT Narudzba.IDEmailNarudzbenica, Count(Narudzba.IDEmailNarudzbenica) AS CountOfIDEmailNarudzbenica, EmailNarudzba.BrojNarudzbeFROM EmailNarudzba LEFT JOIN Narudzba ON EmailNarudzba.BrojNarudzbe=Narudzba.IDEmailNarudzbenicaGROUP BY Narudzba.IDEmailNarudzbenica, EmailNarudzba.BrojNarudzbe

Query Parameters

Name TypeForms!EmailNarudzba!BrojN Textarudzbe

Query: Lager Lista Full

SQLSELECT LagerLista.*, Artikal.Marka, Artikal.Vrsta, Artikal.CenaFROM LagerLista INNER JOIN Artikal ON LagerLista.IDArtikla=Artikal.IDArtikla;

Query: OsnovniPodaci

SQLSELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.Datum, Klijent.EIme, Klijent.EPrezime, Klijent.Ejmbg, Klijent.EUlica, Klijent.EBroj, Klijent.EMesto, Klijent.ETelefon, Klijent.EMailFROM Klijent RIGHT JOIN EmailNarudzba ON Klijent.IDKlijent=EmailNarudzba.IDKlijentaKWHERE (((EmailNarudzba.BrojNarudzbe)=Forms!Rezervacija!BrojNaru));

30

Page 31: Paralelni inzenjering

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

Query Parameters

Name TypeForms!Rezervacija!BrojNaru Text

Query: OsnovniPodaciPredracun

SQLSELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.Datum, Klijent.EIme, Klijent.EPrezime, Klijent.Ejmbg, Klijent.EUlica, Klijent.EBroj, Klijent.EMesto, Klijent.ETelefon, Klijent.EMail, Predracun.IDPredracun, Predracun.IDNarudzbeFROM Predracun INNER JOIN (Klijent RIGHT JOIN EmailNarudzba ON Klijent.IDKlijent=EmailNarudzba.IDKlijentaK) ON

Predracun.IDNarudzbe=EmailNarudzba.BrojNarudzbeWHERE (((EmailNarudzba.BrojNarudzbe)=Forms!Rezervacija!BrojNaru));

Query Parameters

Name TypeForms!Rezervacija!BrojNaru Text

Query: OznaciNegativnePretrage

SQLUPDATE 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 Textaru]

Query: OznacireRezervacije

SQLUPDATE 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]+1WHERE (((Narudzba.IDEmailNarudzbenica)=[Forms]![Rezervacija]![BrojNaru]) AND (([Kolicina]-[RezervisanoKomada])>0));

Query Parameters

Name Type[Forms]![Rezervacija]![BrojN Textaru]

Query: PozivPredracun

31

Page 32: Paralelni inzenjering

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

SQLINSERT INTO Predracun ( IDNarudzbe, IDKlijent, Ukupno )SELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.IDKlijentaK, Sum(Artikal.Cena) AS

SumOfCenaFROM (EmailNarudzba LEFT JOIN Narudzba ON EmailNarudzba.BrojNarudzbe=Narudzba.IDEmailNarudzbenica) LEFT JOIN Artikal ON Narudzba.IdArtikla=Artikal.IDArtiklaGROUP BY EmailNarudzba.BrojNarudzbe, EmailNarudzba.IDKlijentaK, EmailNarudzba.Stanje, Narudzba.Stanje

Query Parameters

Name TypeForms!Rezervacija!BrojNaru Text

Query: Predd

SQLSELECT EmailNarudzba.BrojNarudzbe, Predracun.IDPredracun, Predracun.Artikal,

Predracun.SumaFROM EmailNarudzba INNER JOIN Predracun ON EmailNarudzba.BrojNarudzbe =

Query Parameters

Name TypePredracun.Artikal TextPredracun.Suma Text

Query: Predracun1

SQLSELECT [Predracun-lista].IDPredracun, [Predracun-lista].IDNarudzbe, [Predracun-lista].Artikal,

[Predracun-lista].Suma, [Predracun-lista].Velicina, [Predracun-lista].Marka, Vrsta.Vrsta, Boja.BojaFROM 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

SQLSELECT Narudzba.IDEmailNarudzbenica, LagerLista.Kolicina, LagerLista.Velicina,

LagerLista.IDArtikla, Narudzba.DatumObrade, LagerLista.RezervisanoKomada, [Kolicina]-[RezervisanoKomada] AS

Slobodno, Boja.Boja, Stanje.StanjeFROM 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.StanjeWHERE ((([Kolicina]-[RezervisanoKomada])>0));

Query: Query1

SQLSELECT Vrsta.Vrsta, Narudzba.IdArtikla, Narudzba.Velicina, Artikal.Marka, Narudzba.ID, Narudzba.IDEmailNarudzbenica, Boja.BojaFROM (Artikal LEFT JOIN Vrsta ON Artikal.Vrsta=Vrsta.IDVrsta) RIGHT JOIN (Boja RIGHT JOIN

32

Page 33: Paralelni inzenjering

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

Narudzba ON Boja.IDBoja=Narudzba.Boja) ON Artikal.IDArtikla=Narudzba.IdArtikla;

Query: Query2

SQLSELECT EmailNarudzba.*FROM EmailNarudzba;

Query: Query3

SQLSELECT EmailNarudzba.BrojNarudzbe, EmailNarudzba.Datum, EmailNarudzba.IDKlijentaK, Narudzba.IdArtikla, Narudzba.Boja, Narudzba.Boja, Narudzba.VelicinaFROM EmailNarudzba INNER JOIN Narudzba ON EmailNarudzba.BrojNarudzbe = Narudzba.IDEmailNarudzbenica;

Query: RezPredracuni

SQLSELECT EmailNarudzba.DatumObrade, EmailNarudzba.BrojNarudzbe, Predracun.IDPredracun, Klijent.EIme, Klijent.EPrezime, Klijent.ETelefon, Predracun.Ukupno, Stanje.StanjeFROM ((EmailNarudzba INNER JOIN Predracun ON EmailNarudzba.BrojNarudzbe=Predracun.IDNarudzbe) INNER JOIN Klijent ON Predracun.IDKlijent=Klijent.IDKlijent) INNER JOIN Stanje ON

EmailNarudzba.Stanje=Stanje.IDStanjeWHERE (((EmailNarudzba.Stanje)=2)) OR (((EmailNarudzba.Stanje)=7));

5.1. Realizacija skladišta podataka :- skladišta podataka

Table: Artikal

Columns

Name Type Size

IDArtikla Long Integer 4Marka Text 50Vrsta Long Integer 4Cena Currency 8

Table IndexesName Number of Fields

IDArtikla 1Fields:IDArtikla Ascending

PrimaryKey 1Fields:IDArtikla Ascending

VrstaArtikal 1Fields:Vrsta Ascending

33

Page 34: Paralelni inzenjering

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

Table: Boja

Columns

Name Type Size

IDBoja Long Integer 4Boja Text 10

Table IndexesName Number of Fields

BojaBoja 1Fields:Boja Ascending

IDBoje 1Fields:IDBoja Ascending

PrimaryKey 1Fields:IDBoja Ascending

Table: EmailNarudzba

Columns

Name Type Size

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

Table IndexesName Number of Fields

IDKlijenta 1Fields:IDKlijentaK Ascending

KlijentEmailNarudzba 1Fields:IDKlijentaK Ascending

PrimaryKey 1Fields:BrojNarudzbe Ascending

StanjeEmailNarudzba 1Fields:Stanje Ascending

Table: Klijent

Columns

Name Type Size

IDKlijent Long Integer 4EIme Text 15EPrezime Text 20Ejmbg Text 13EUlica Text 25EBroj Long Integer 4

34

Page 35: Paralelni inzenjering

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

EMesto Text 10ETelefon Text 19EMail Text 50

Table IndexesName Number of Fields

IDKlijent 1Fields:IDKlijent Ascending

PrimaryKey 1Fields:IDKlijent Ascending

Table: LagerLista

Columns

Name Type Size

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

Table IndexesName Number of Fields

ArtikalLagerLista 1Fields:IDArtikla Ascending

BojaLagerLista 1Fields:IDBoja Ascending

ID 1Fields:ID Ascending

IdArtikla 1Fields:IDArtikla Ascending

IdBoja 1Fields:IDBoja Ascending

PrimaryKey 3Fields:IDArtikla AscendingIDBoja AscendingVelicina Ascending

Table: Narudzba

Columns

Name Type Size

35

Page 36: Paralelni inzenjering

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

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

Table IndexesName Number of Fields

ArtikalNarudzba 1Fields:IdArtikla Ascending

EmailNarudzbaNarudzba 1Fields:IDEmailNarudzbenica Ascending

ID 1Fields:ID Ascending

IDEmailNarudzbenica 1Fields:IDEmailNarudzbenica Ascending

PrimaryKey 2Fields:ID AscendingIDEmailNarudzbenica Ascending

StanjeNarudzba 1Fields:Stanje Ascending

Table: Predracun

Columns

Name TypeSize

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

Table IndexesName Number of Fields

IDKlijent 1Fields:IDKlijent Ascending

IDNarudzbe 1Fields:IDNarudzbe Ascending

IDPredracun 1Fields:IDPredracun Ascending

PrimaryKey 1Fields:IDPredracun Ascending

Table: Predracun-lista

Columns

36

Page 37: Paralelni inzenjering

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

Name TypeSize

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

Table IndexesName Number of Fields

ArtikalPredracun-lista 1Fields:Artikal Ascending

IDNarudzbe 1Fields:IDNarudzbe Ascending

IDPredracun 1Fields:IDPredracun Ascending

PrimaryKey 1Fields:Rb Ascending

Table: Stanje

Columns

Name TypeSize

IDStanje Long Integer 4Stanje Text 50

Table IndexesName Number of Fields

IDStanje 1Fields:IDStanje Ascending

PrimaryKey 1Fields:IDStanje Ascending

StanjeStanje 1Fields:Stanje Ascending

Table: Vrsta

Columns

Name TypeSize

IDVrsta Long Integer 4

37

Page 38: Paralelni inzenjering

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

Vrsta Text 20

Table IndexesName Number of Fields

IDVrsta 1Fields:IDVrsta Ascending

PrimaryKey 1Fields:IDVrsta Ascending

VrstaVrsta 1Fields:Vrsta Ascending

38

Page 39: Paralelni inzenjering

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

- relacije između skladišta – relationships

39

Page 40: Paralelni inzenjering

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