### Projekt bazy danych pizzerii - PizzaFat
Tutuł projektu: Pizzeria - PizzaFat
Autor: Cezary Pukownik
Indeks: s444337
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.
## Diagram związków encji
![](https://git.wmi.amu.edu.pl/s444337/projekt-bazy-danych-pizza-fat/raw/master/schemat_bazy.png)
## Model relacyjny (RM)
**klucz własny**
*klucz obcy*
zamowienia {
**id**
data_zamowienia
id_faktury
*id_klienta* [klienci.id]
}
klienci {
**id**
imie
nazwisko
miasto
ulica
nr_domu
nr_mieszkania
nazwa_firmy
nip
}
dostawcy {
**id**
nazwa_firmy
nip
miasto
ulica
nr_domu
nr_mieszkania
}
zamowienia_wiersze {
**id**
*zamowienie_id* [zamowienia.id]
*produkt_id* [produkty.id]
ilosc
cena
kwota_sprzedazy
koszt
kwota_kosztu
zysk
}
produkty {
**id**
nazwa_produktu
cena
}
**produkty_przepisy** {
*produkt_id* [produkty.id]
*skladnik_id* [skladniki.id]
ilosc
}
skladniki {
**id**
nazwa_skladnika
koszt
}
sladniki_transakcje {
**id**
data_transakcji
*skladnik_id* [skladniki.id]
*zamowienia_wiersze_id* [zamowienia_wiersze.id]
*zakupy_wiersze_id* [zakupy_wiersze.id]
typ_transakcji
ilosc
koszt
cena
kwota_kosztu
kwota_sprzedazy
zysk
}
zakupy {
**id**
id_faktury
*id_dostawcy* [dostawcy.id]
data
}
zakupy_wiersze {
**id**
*id_zakupu* [zakupy.id]
*skladnik_id* [skladniki.id]
ilosc
koszt
}
## Opis funkcjonalności
- Dodawanie zamówień od klientów
- Dodawanie klientów do zamówienia, aby wiedzieć gdzie dostarczyć zamówienie
- Możliwość dodawanie, firm jako klientów
- Wystawianie faktur, na podstawie zamówień
- Dodawanie produktów do zamówienia
- Kompletowanie zamówień na podstawie bazy produktów
- Definiowanie produktów, na podstawie składników np. Składu Pizzy
- Wycena kosztu pizzy w czasie rzeczywistym, na podstawie cen zakupu składników
- Dodaniewanie składników, do kartoteki składników
- Wprowadzenie faktur zakupowych, oraz ilości zakupionych składników
- Wprowadzenie dostawców składników
- Śledzenie transackji sprzedażowych oraz zakupowch na skłądnikach
## Opis logiki bazy danych
# 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ść.
- 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ć.
- Wybieramy również dostawcę, z tabeli [dostawcy].
- Po zatwierdzeniu faktury, automatycznie wprowadzają się pozycje do tabeli [składniki_transakcje] ze znakiem dodatnim.
# 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.
- 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.
- Na podstawie zamówienia, system odrazu sprawdzi czy ilość skłądników jest wystarczająca do zrealizowania zamówienia.
- 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.
- 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]
# Stan Magazynowy
- Stan magazynowy otrzymuje się poprzez zsumowanie wszystkich transkacji z tabeli [składniki_transakcje] zgrupowanych po składniku.
# Produkty a składniki
- 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)
- 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.