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,

295
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
Celem bazy danych, jest zapewnienie obsługi pizzerii. **Indeks:** s444337
Baza danych, pozwala na zbieranie zamówień, tworzenie produktów, śledzenie ilości składników oraz obsługi zakupów.
Celem bazy danych, jest zapewnienie obsługi pizzerii.
## Diagram związków encji Baza danych, pozwala na zbieranie zamówień, tworzenie produktów, śledzenie ilości składników oraz obsługę zakupów.
![](https://git.wmi.amu.edu.pl/s444337/projekt-bazy-danych-pizza-fat/raw/master/schemat_bazy.png) ### Diagram związków encji
## Model relacyjny (RM) ![](https://git.wmi.amu.edu.pl/s444337/projekt-bazy-danych-pizza-fat/raw/master/schemat_bazy.png)
**klucz własny** ### Model relacyjny (RM)
*klucz obcy*
**klucz własny**
zamowienia { *klucz obcy*
**id**
data_zamowienia zamowienia {
id_faktury **id**,
*id_klienta* [klienci.id] data_zamowienia,
} id_faktury ,
*id_klienta*
klienci { }
**id**
imie klienci {
nazwisko **id**,
miasto imie,
ulica nazwisko,
nr_domu miasto,
nr_mieszkania ulica,
nazwa_firmy nr_domu,
nip nr_mieszkania,
} nazwa_firmy,
nip,
dostawcy { }
**id**
nazwa_firmy dostawcy {
nip **id**,
miasto nazwa_firmy,
ulica nip,
nr_domu miasto,
nr_mieszkania ulica,
} nr_domu,
nr_mieszkania,
zamowienia_wiersze { }
**id**
*zamowienie_id* [zamowienia.id] zamowienia_wiersze {
*produkt_id* [produkty.id] **id**,
ilosc *zamowienie_id*,
cena *produkt_id*,
kwota_sprzedazy ilosc,
koszt cena,
kwota_kosztu kwota_sprzedazy,
zysk koszt,
} kwota_kosztu,
zysk,
produkty { }
**id**
nazwa_produktu produkty {
cena **id**,
} nazwa_produktu,
cena,
**produkty_przepisy** { }
*produkt_id* [produkty.id]
*skladnik_id* [skladniki.id] **produkty_przepisy** {
ilosc *produkt_id*,
} *skladnik_id*,
ilosc,
skladniki { }
**id**
nazwa_skladnika skladniki {
koszt **id**,
} nazwa_skladnika,
koszt,
sladniki_transakcje { }
**id**
data_transakcji sladniki_transakcje {
*skladnik_id* [skladniki.id] **id**,
*zamowienia_wiersze_id* [zamowienia_wiersze.id] data_transakcji,
*zakupy_wiersze_id* [zakupy_wiersze.id] *skladnik_id*,
typ_transakcji *zamowienia_wiersze_id*,
ilosc *zakupy_wiersze_id*,
koszt typ_transakcji,
cena ilosc,
kwota_kosztu koszt,
kwota_sprzedazy cena,
zysk kwota_kosztu,
} kwota_sprzedazy,
zysk
zakupy { }
**id**
id_faktury zakupy {
*id_dostawcy* [dostawcy.id] **id**,
data id_faktury,
} *id_dostawcy*,
data
zakupy_wiersze { }
**id**
*id_zakupu* [zakupy.id] zakupy_wiersze {
*skladnik_id* [skladniki.id] **id**,
ilosc *id_zakupu*,
koszt *skladnik_id*,
} ilosc,
koszt
## Opis funkcjonalności }
- Dodawanie zamówień od klientów ### Opis funkcjonalności
- Dodawanie klientów do zamówienia, aby wiedzieć gdzie dostarczyć zamówienie
- Możliwość dodawanie, firm jako klientów - Dodawanie zamówień od klientów
- Wystawianie faktur, na podstawie zamówień - Dodawanie klientów do zamówienia, aby wiedzieć gdzie dostarczyć zamówienie
- Dodawanie produktów do zamówienia - Możliwość dodawania, firm jako klientów
- Kompletowanie zamówień na podstawie bazy produktów - Wystawianie faktur, na podstawie zamówień
- Definiowanie produktów, na podstawie składników np. Składu Pizzy - Dodawanie produktów do zamówienia
- Wycena kosztu pizzy w czasie rzeczywistym, na podstawie cen zakupu składników - Kompletowanie zamówień na podstawie bazy produktów
- Dodaniewanie składników, do kartoteki składników - Definiowanie produktów na podstawie składników np. Pizzy
- Wprowadzenie faktur zakupowych, oraz ilości zakupionych składników - Wycena kosztu pizzy w czasie rzeczywistym na podstawie cen zakupu składników
- Wprowadzenie dostawców składników - Dodawanie składników, do kartoteki składników
- Śledzenie transackji sprzedażowych oraz zakupowch na skłądnikach - Wprowadzanie faktur zakupowych oraz ilości zakupionych składników
- Wprowadzanie dostawców składników
## Opis logiki bazy danych - Śledzenie transakcji sprzedażowych oraz zakupowch na składnikach
# Zakup ### Opis logiki bazy danych
- 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ć. #### Zakup
- Wybieramy również dostawcę, z tabeli [dostawcy]. - 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ść.
- Po zatwierdzeniu faktury, automatycznie wprowadzają się pozycje do tabeli [składniki_transakcje] ze znakiem dodatnim. - 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].
# Sprzedaż - Po zatwierdzeniu faktury, automatycznie wprowadzają się pozycje do tabeli [składniki_transakcje] ze znakiem dodatnim.
- 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. #### Sprzedaż
- Na podstawie zamówienia, system odrazu sprawdzi czy ilość skłądników jest wystarczająca do zrealizowania zamówienia. - Klienci mogą sie rejestrować internetowo na portalu, a informacje o nich zasilą tabelę [klienci].
- 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. - 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.
- 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] - 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 przepisze ustalona cenę, oraz obliczy jaki jest koszt produktu na podstawie jego składników z ostatnich zakupów.
# Stan Magazynowy - Na podstawie zamówienia, system od razu sprawdzi czy ilość składników jest wystarczająca do zrealizowania zamówienia.
- Stan magazynowy otrzymuje się poprzez zsumowanie wszystkich transkacji z tabeli [składniki_transakcje] zgrupowanych po składniku. - 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]
# Produkty a składniki #### Stan Magazynowy
- Produkty są to pozycje oferowane do sprzedaży przez pizzerię "PizzaFat". - Stan magazynowy otrzymuje się poprzez zsumowanie wszystkich transkacji z tabeli [składniki_transakcje] zgrupowanych po składniku.
- 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. #### Produkty a składniki
- Dopuszcza się produkty skłądające się z jednego składnika np. Butelka Coli składa sie z Butelki Coli. - 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.
- Kliencie widzą skład produktu na podstawie jego składników na portalu.
- Klienci nie mogą kupić składników, tylko produkty.