This commit is contained in:
Cezary Pukownik 2019-06-10 13:36:34 +02:00
commit abe567c564
2 changed files with 152 additions and 145 deletions

View File

@ -1,3 +1,5 @@
CREATE DATABASE PizzaFat;
CREATE TABLE 'zamowienia' CREATE TABLE 'zamowienia'
( (
'id' int PRIMARY KEY, 'id' int PRIMARY KEY,

171
README.md
View File

@ -1,145 +1,150 @@
### Projekt bazy danych pizzerii - PizzaFat # Projekt bazy danych pizzerii - PizzaFat
Tutuł projektu: Pizzeria - PizzaFat **Tutuł projektu:** Pizzeria - PizzaFat
Autor: Cezary Pukownik
Indeks: s444337 **Autor:** Cezary Pukownik
**Indeks:** s444337
Celem bazy danych, jest zapewnienie obsługi pizzerii. Celem bazy danych, jest zapewnienie obsługi pizzerii.
Baza danych, pozwala na zbieranie zamówień, tworzenie produktów, śledzenie ilości składników oraz obsługi zakupów. Baza danych, pozwala na zbieranie zamówień, tworzenie produktów, śledzenie ilości składników oraz obsługę zakupów.
## Diagram związków encji ### Diagram związków encji
![](https://git.wmi.amu.edu.pl/s444337/projekt-bazy-danych-pizza-fat/raw/master/schemat_bazy.png) ![](https://git.wmi.amu.edu.pl/s444337/projekt-bazy-danych-pizza-fat/raw/master/schemat_bazy.png)
## Model relacyjny (RM) ### Model relacyjny (RM)
**klucz własny** **klucz własny**
*klucz obcy* *klucz obcy*
zamowienia { zamowienia {
**id** **id**,
data_zamowienia data_zamowienia,
id_faktury id_faktury ,
*id_klienta* [klienci.id] *id_klienta*
} }
klienci { klienci {
**id** **id**,
imie imie,
nazwisko nazwisko,
miasto miasto,
ulica ulica,
nr_domu nr_domu,
nr_mieszkania nr_mieszkania,
nazwa_firmy nazwa_firmy,
nip nip,
} }
dostawcy { dostawcy {
**id** **id**,
nazwa_firmy nazwa_firmy,
nip nip,
miasto miasto,
ulica ulica,
nr_domu nr_domu,
nr_mieszkania nr_mieszkania,
} }
zamowienia_wiersze { zamowienia_wiersze {
**id** **id**,
*zamowienie_id* [zamowienia.id] *zamowienie_id*,
*produkt_id* [produkty.id] *produkt_id*,
ilosc ilosc,
cena cena,
kwota_sprzedazy kwota_sprzedazy,
koszt koszt,
kwota_kosztu kwota_kosztu,
zysk zysk,
} }
produkty { produkty {
**id** **id**,
nazwa_produktu nazwa_produktu,
cena cena,
} }
**produkty_przepisy** { **produkty_przepisy** {
*produkt_id* [produkty.id] *produkt_id*,
*skladnik_id* [skladniki.id] *skladnik_id*,
ilosc ilosc,
} }
skladniki { skladniki {
**id** **id**,
nazwa_skladnika nazwa_skladnika,
koszt koszt,
} }
sladniki_transakcje { sladniki_transakcje {
**id** **id**,
data_transakcji data_transakcji,
*skladnik_id* [skladniki.id] *skladnik_id*,
*zamowienia_wiersze_id* [zamowienia_wiersze.id] *zamowienia_wiersze_id*,
*zakupy_wiersze_id* [zakupy_wiersze.id] *zakupy_wiersze_id*,
typ_transakcji typ_transakcji,
ilosc ilosc,
koszt koszt,
cena cena,
kwota_kosztu kwota_kosztu,
kwota_sprzedazy kwota_sprzedazy,
zysk zysk
} }
zakupy { zakupy {
**id** **id**,
id_faktury id_faktury,
*id_dostawcy* [dostawcy.id] *id_dostawcy*,
data data
} }
zakupy_wiersze { zakupy_wiersze {
**id** **id**,
*id_zakupu* [zakupy.id] *id_zakupu*,
*skladnik_id* [skladniki.id] *skladnik_id*,
ilosc ilosc,
koszt koszt
} }
## Opis funkcjonalności ### Opis funkcjonalności
- Dodawanie zamówień od klientów - Dodawanie zamówień od klientów
- Dodawanie klientów do zamówienia, aby wiedzieć gdzie dostarczyć zamówienie - Dodawanie klientów do zamówienia, aby wiedzieć gdzie dostarczyć zamówienie
- Możliwość dodawanie, firm jako klientów - Możliwość dodawania, firm jako klientów
- Wystawianie faktur, na podstawie zamówień - Wystawianie faktur, na podstawie zamówień
- Dodawanie produktów do zamówienia - Dodawanie produktów do zamówienia
- Kompletowanie zamówień na podstawie bazy produktów - Kompletowanie zamówień na podstawie bazy produktów
- Definiowanie produktów, na podstawie składników np. Składu Pizzy - Definiowanie produktów na podstawie składników np. Pizzy
- Wycena kosztu pizzy w czasie rzeczywistym, na podstawie cen zakupu składników - Wycena kosztu pizzy w czasie rzeczywistym na podstawie cen zakupu składników
- Dodaniewanie składników, do kartoteki składników - Dodawanie składników, do kartoteki składników
- Wprowadzenie faktur zakupowych, oraz ilości zakupionych składników - Wprowadzanie faktur zakupowych oraz ilości zakupionych składników
- Wprowadzenie dostawców składników - Wprowadzanie dostawców składników
- Śledzenie transackji sprzedażowych oraz zakupowch na skłądnikach - Śledzenie transakcji sprzedażowych oraz zakupowch na składnikach
## Opis logiki bazy danych ### Opis logiki bazy danych
# Zakup #### Zakup
- Tabelami do których prowadza się dane są tabele [zakupu] i [zakupy_wiersze]. Do tabeli zakupy wprowadzamy ogólne dane o fakturze zakupowej. Do tabeli [zakupy_wiersze] wprowadzamy dokładne pozycje skłądników oraz ich ilość. - Tabelami do których prowadza się dane są tabele [zakupy] i [zakupy_wiersze]. Do tabeli zakupy wprowadzamy ogólne dane o fakturze zakupowej. Do tabeli [zakupy_wiersze] wprowadzamy dokładne pozycje składników oraz ich ilość.
- Dostępne skadniki wybieramy z tabeli [skladniki], która wcześniej została uzupełniona on potrzebne skłądniki. W razie braku składniku w kartotece składników, należy go dodać. - Dostępne składniki wybieramy z tabeli [skladniki], która wcześniej została uzupełniona on potrzebne składniki. W razie braku składniku w kartotece składników, należy go dodać.
- Wybieramy również dostawcę, z tabeli [dostawcy]. - Wybieramy również dostawcę, z tabeli [dostawcy].
- Po zatwierdzeniu faktury, automatycznie wprowadzają się pozycje do tabeli [składniki_transakcje] ze znakiem dodatnim. - Po zatwierdzeniu faktury, automatycznie wprowadzają się pozycje do tabeli [składniki_transakcje] ze znakiem dodatnim.
# Sprzedaż #### Sprzedaż
- Zamówienia są importowane ze strony internetowej, gdzie klienci pizzerii mogą złożyć zamówienie, lub wprowadzane ręcznie przez personel przy zamówieniu telefonicznym oraz osobistym. - Klienci mogą sie rejestrować internetowo na portalu, a informacje o nich zasilą tabelę [klienci].
- Jesli klient zamawia na dowóz, wybiera się jego adres z kartoteki kleintów (tabela [klienci]), lub zostawia się puste pola w przypadku zamówienia na miejscu. - Zamówienia są importowane ze strony internetowej, gdzie klienci pizzerii mogą złożyć zamówienie, lub wprowadzane ręcznie przez personel przy zamówieniu telefonicznym lub osobistym.
- Na podstawie zamówienia, system odrazu sprawdzi czy ilość skłądników jest wystarczająca do zrealizowania zamówienia. - Jeśli klient zamawia na dowóz telefonicznie lub osobiście, dodaje się klienta do kartoteki klientów i uzupełnia się dane dostawy w tabeli [klienci], lub wybiera się klienta detalicznego w przypadku zamówienia na miejscu.
- W tabeli [zamowienia_wiersze] wybiera się produkty z tabeli [produkty], i wpisuje ich ilość. System automatycznie przpeisze ustalona cenę, oraz obliczy jaki jest koszt produktu na podstawie jego skłądników z ostatnich zakupów. - W tabeli [zamowienia_wiersze] wybiera się produkty z tabeli [produkty], i wpisuje ich ilość. System automatycznie przepisze ustalona cenę, oraz obliczy jaki jest koszt produktu na podstawie jego składników z ostatnich zakupów.
- Po zatwierdzniu zamówienia, w tabeli [składniki_transakcje] odejmuje sią się odpowiednie składniki, w odpowiedniej ilości poprzed ich definicję w tabeli [produkty_przepisy] - Na podstawie zamówienia, system od razu sprawdzi czy ilość składników jest wystarczająca do zrealizowania zamówienia.
- Po zatwierdzniu zamówienia, w tabeli [składniki_transakcje] dopisuje się odpowiednie rekordy składników z ilością ze stakiem ujemnym, w ilości poprzez ich definicję z tabeli [produkty_przepisy]
# Stan Magazynowy #### Stan Magazynowy
- Stan magazynowy otrzymuje się poprzez zsumowanie wszystkich transkacji z tabeli [składniki_transakcje] zgrupowanych po składniku. - Stan magazynowy otrzymuje się poprzez zsumowanie wszystkich transkacji z tabeli [składniki_transakcje] zgrupowanych po składniku.
# Produkty a składniki #### Produkty a składniki
- Produkty są to pozycje oferowane do sprzedaży przez pizzerię "PizzaFat". - Produkty są to pozycje oferowane do sprzedaży przez pizzerię "PizzaFat".
- Każdy produkt skłąda się ze skłądników. np (Pizza Salami: Mąka, Drożdze, Sól, Ser, Pomidor, Salami) - Każdy produkt skłąda się ze skłądników. np (Pizza Salami: Mąka, Drożdze, Sól, Ser, Pomidor, Salami)
- Definiuje się ilość każdego skłądnika potrzebnego do wyprodukowania produktu. - Definiuje się ilość każdego skłądnika potrzebnego do wyprodukowania produktu.
- Dopuszcza się produkty skłądające się z jednego składnika np. Butelka Coli składa sie z Butelki Coli. - Dopuszcza się produkty skłądające się z jednego składnika np. Butelka Coli składa sie z Butelki Coli.
- Kliencie widzą skład produktu na podstawie jego składników na portalu.
- Klienci nie mogą kupić składników, tylko produkty.