System zarządzania firmĄ OMEGA

Transkrypt

System zarządzania firmĄ OMEGA
System zarządzania firmą
OMEGA
Wrocław, 25.11.2009
Politechnika Wrocławska
Zastosowanie baz danych – laboratorium
Paweł Porombka 148955
Prowadzący: dr inż. Olgierd Unold
Termin: ŚR/P, 15:15
1. Opis mini świata
1.1. Ogólne założenia
Projekt dotyczy stworzenia systemu do zarządzania hurtownią artykułów budowlanych, która
równocześnie jest producentem większości oferowanych produktów – rozprowadza produkty
innych producentów. Firma działa tylko Polsce. Posiada około 50 klientów, gdzie ta liczba może
wzrosnąć w kolejnych latach. Klienci mogą składać zamówienia lub zamówienia mogą być składane
w ich imieniu przez pracowników firmy. Każdy z pracowników posiada przyporządkowanych do
niego klientów (jednego bądź wielu), których zamówieniami się zajmuje (weryfikuje, ewentualnie
poprawia). Każde zamówienie najpierw zostaje utworzone przez klienta, bądź pracownika. Na takim
etapie zarówno klient jak i pracownik mogą dokonywać wciąż edycji zamówień (status „w trakcie
edycji” - E). Gdy zamówienie jest gotowe zostaje zatwierdzone przez osobę, która je składa i w tym
momencie klient nie może już dokonywać edycji takiego zamówienia (status „zaakceptowane” - A).
Możliwość edycji nadal ma konkretny pracownik przydzielony do klienta, a logistyk w swoim panelu
widzi, że powstało nowe zamówienie zaakceptowane, którego jeszcze nie może on realizować –
gdyż nie zostało zamknięte. Na tym etapie pracownik sprawdza, czy stany magazynowe pozwalają
zrealizować zamówienie i jeżeli tak, to rezerwuje konkretne produkty i zmienia status zamówienia
na „Zamknięte” - C. W tym momencie zamówienie jest widoczne dla logistyka, który może je wpisać
do swojego planu dostaw, obsługiwanego przez firmę zewnętrzną. Jeżeli zamówienie zostaje
wysłane logistyk zmienia jego status na „w drodze do klienta” - P. W chwili dostarczenia
zamówienia na miejsce, firma transportowa informuje o wykonaniu zlecenia, w wyniku czego
logistyk zmienia status zamówienia na „zrealizowane” - R. Na każdym z etapów realizacji
zamówienia, przed wysłaniem produktów, główny administrator, ma możliwość wprowadzania
dowolnych zmian w zamówieniu.
Każde zamówienie składa się co najmniej jednego produktu, będącego w ofercie hurtowni. Każdy z
pracowników ma ściśle określone uprawnienia (np. składanie zamówień). Dodatkowo całą firmą
zarządza jej dyrektor, który może dokonywać dowolnych zmian na pewnych etapach realizacji
zamówień (administrator), oraz w dowolnej chwili zmienić status zamówienia (gdyż są sytuacje, że
ktoś błędnie zatwierdził zamówienie).
1.2. Środowisko implementacji
Projekt zostanie wykonany przy użyciu narzędzi NuSphere PhpED 5.2, Adobe Dreamweaver CS4, w
języku PHP 5.0.2, z wykorzystaniem szablonów Smarty. Baza danych zostanie zaprojektowana w
oparciu o technologię MySQL (typ MyISAM), stosując narzędzia EMS SQL Manager 2007 for MySQL
oraz MySQL Workbench 5.1 OSS. Do stworzenia interfejsu graficznego zostanie wykorzystany Adobe
Photoshop CS4, Corel Paint Shop Pro Photo XII.
1.3. Otoczenie produktu
System będzie pracował w średniej wielkości hurtowni. Musi być na tyle intuicyjny, by klienci
składający zamówienia chcieli z niego korzystać. Jeżeli klient będzie mógł szybko, łatwo i wygodnie
złożyć zamówienie, będzie chciał korzystać z usług tej hurtowni. System musi również na tyle
uprościć proces zarządzania zamówieniami w firmie, aby zminimalizować możliwość wystąpienia
błędów w realizacji zleceń klienta, oraz znacznie przyspieszyć proces tej realizacji. Z tego powodu
produkt będzie działał w sieci Internet, z dostępem przez przeglądarkę sieciową. Aplikacja będzie się
2
znajdowała na serwerze hurtowni, która będzie odpowiedzialna za konserwację. Ze względu na
możliwość nieautoryzowanego dostępu, zostanie wykonane zabezpieczenie w postaci panelu
logowania użytkowników. Istotną cechą systemu będzie możliwość zdalnego dostępu wielu
użytkowników równocześnie (aplikacja współbieżna), powoduje to konieczność stworzenia
dodatkowego podsystemu wzajemnych wykluczeń (blokad rekordów). Aplikacja będzie zatem
wielostanowiskowa. Połączyć się z systemem będzie mógł każdy, dla kogo stworzono konto, przy
czym każdy użytkownik ma tylko określone prawa, np. klienci widzą tylko swoje zamówienia,
pracownicy swoich klientów i ich zamówienia. Wstępnie przewidywane są 4 typy stanowisk:
administrator, logistyk, pracownik firmy, klient. Aplikacja będzie skonstruowana w taki sposób, by
umożliwić przyszłą rozbudowę.
Aktualnie na rynku znajduje się wiele rozwiązań w postaci systemów ERP (Systemy Zarządzania
Przedsiębiorstwem), które oferują ogromny wachlarz możliwości. Projektowany system, w
przeciwieństwie do tego typu rozwiązań oferuje podstawowe funkcjonalności, które zadowolą
większość klientów, jednocześnie minimalizując koszty. Poza tym system można znacznie łatwiej i
szybciej wdrożyć, a jego poznanie jest dużo prostsze dla przeciętnego użytkownika.
Istotny jest również fakt, że hurtownia decyduje się na informatyzację przedsiębiorstwa, co jest
krokiem naprzód. Konkurencja nadal wydaje się zostawać w tej sferze w tyle powołując się na
niewiedzę swoich klientów z zakresu obsługi komputera. Firma chce pomimo tych przeciwności
rozwijać się i wdrażać najnowsze technologie, czego przykładem jest niniejszy system.
1.4. Szacunki
Aktualnie firma obsługuje 50 klientów. Sprzedaż dotyczy produktów wytwarzanych przez samą
hurtownię oraz obejmuje 5 innych producentów (łącznie 6-ciu producentów). Znając statystyki
prowadzone przez firmę, szacujemy, że rocznie hurtownia pozyskuje około 10 nowych klientów.
Średnio miesięcznie firma otrzymuje około 3-4 zamówień od jednego klienta, co daje ok. 200 zam.
miesięcznie, zatem rocznie około 2400. Aktualnie firma zatrudnia 15 pracowników, w najbliższej
przyszłości (2 lata) firma nie planuje zwiększenia kadry pracowniczej, jednakże w celu zapewnienia
elastyczności systemu zakładamy możliwość nawet podwojenia ilości pracowników. W
perspektywie 5 lat firma może posiadać bazę 100 klientów, co daje nawet około 400 zamówień
miesięcznie (4800 rocznie). Firma aktualnie ma w ofercie 65 produktów, podzielonych na 10
kategorii. Hurtownia może rozwinąć swoją bazę produktową, w ciągu najbliższych 5 lat, do 100
pozycji. Firma ma również plany rozszerzenia oferty o produkty nowych producentów, załóżmy
elastycznie, do 100 w ciągu najbliższych 5 lat.
3
2. Opis funkcjonalny
2.1. Lista funkcji
W systemie pomimo różnych typów kont to uprawnienia decydują o dostępnych dla konkretnego
konta funkcjach, stąd lista bez podziału na konta użytkowników.


Logowanie do systemu.
Wylogowanie z systemu.






Przeglądanie listy złożonych zamówień.
Przeglądanie listy dostępnych produktów.
Przeglądanie listy klientów, pracowników, logistyków, administratorów, użytkowników.
Wyświetlanie ekranu z pełnymi danymi osobowymi, oraz ewentualnie przydzielonym
kontem użytkownika.
Filtrowanie zamówień w zależności od praw dostępu oraz klientów (filtry widoczności
zamówień).
Filtrowanie zamówień według ich statusów.
Filtrowanie użytkowników według stanowiska (logistycy, administratorzy, pracownicy…)






Sortowanie zamówień według klientów (nazwy firmy , nazwiska i imienia – grupowanie).
Sortowanie klientów według nazwy firmy , nazwiska i imienia.
Sortowanie pracowników/administratorów/logistyków według nazwiska, imienia.
Sortowanie użytkowników według nazw loginów.
Sortowanie zamówień według dat ich zaakceptowania.
Sortowanie produktów według nazw.





Składanie zamówień.
Usuwanie zamówień.
Edycja zamówień.
Zmiana statusu zamówienia (akceptacja, zamykanie, wysyłanie do klienta, zakańczanie).
Dodawanie użytkowników (dla konkretnych danych osobowych – klient, pracownik,
administrator, logistyk).
Usuwanie użytkowników.
Edycja kont użytkowników.
Nadawanie uprawnień użytkownikom (edycja).
Przydzielanie klientów do pracowników (dodawanie, usuwanie z listy).











Dodawanie, usuwanie i edycja danych osobowych klientów.
Dodawanie, usuwanie i edycja danych osobowych pracowników.
Dodawanie, usuwanie i edycja danych osobowych administratorów.
Dodawanie, usuwanie i edycja danych osobowych logistyków.
Dodawanie, usuwanie i edycja produktów w bazie danych.
Wybieranie produktów z listy i dodawanie ich do zamówienia podczas składania
zamówienia.
4
2.2. Hierarchia funkcji
1. Zarządzanie zamówieniami oraz produktami
1.1. Składanie zamówień
a) Zmiana statusu zamówienia (akceptacja, zamykanie, wysyłanie do klienta, zakańczanie)
1.2. Usuwanie zamówień
1.3. Edycja zamówień
a) Zmiana statusu zamówienia (akceptacja, zamykanie, wysyłanie do klienta, zakańczanie)
1.4. Przeglądanie listy złożonych zamówień
1.5. Przeglądanie listy produktów
1.6. Przeglądanie listy producentów
1.7. Dodawanie, usuwanie produktów w bazie danych
1.8. Dodawanie i usuwanie, edycja danych producentów
1.9. Wybieranie produktów z listy i dodawanie ich do zamówienia podczas składania zamówienia
1.10. Filtrowanie zamówień w zależności od praw dostępu
1.11. Filtrowanie i sortowanie zamówień wg klientów (nazwy firmy , nazwiska i imienia)
1.12. Filtrowanie zamówień według ich statusów
1.13. Filtrowanie zamówień według dat ich zaakceptowania
1.14. Filtrowanie produktów według nazw i producentów
1.15. Sortowanie producentów wg (nazwy firmy , nazwiska i imienia)
2. Obsługa kont użytkowników
2.1. Logowanie do systemu
2.2. Wylogowanie z systemu
2.3. Dodawanie użytkowników
(dla konkretnych danych osobowych – klient, pracownik, administrator, logistyk)
2.4. Usuwanie użytkowników
2.5. Edycja kont użytkowników
2.6. Nadawanie uprawnień użytkownikom (edycja)
2.7. Przydzielanie klientów do pracowników (dodawanie, usuwanie z listy)
2.8. Przeglądanie listy klientów, pracowników, logistyków, administratorów, użytkowników
2.9. Wyświetlanie ekranu z pełnymi danymi osobowymi, oraz kontem użytkownika
2.10. Filtrowanie użytkowników według stanowiska (logistycy, administratorzy, pracownicy,
klienci)
2.11. Sortowanie klientów według nazwy firmy , nazwiska i imienia
2.12. Sortowanie pracowników/administratorów/logistyków według nazwiska, imienia
2.13. Sortowanie użytkowników według nazw loginów
5
3. Model koncepcyjny
3.1. Lista encji (8)
3.1.1. Zamówienie
 #Id_Zamówienie
 *Id_Klient
 *Id_Blokada (identyfikator rekordu blokady w TabBlokady, dla użytkownika)
 CzasRealizacji (ile dni mamy na realizację zamówienia)
 Status (w jakim stanie jest zamówienie: złożone, w trakcie edycji, wysłane…)
 ZmianaAdresu (znak „T”-tak, lub „N”-nie, inf. że podano nowy adres dostawy)
 DataZłożenia
 DataRealizacji
 NrFaktury
 Uwagi
3.1.2.



3.1.3.





3.1.4.














Lista Produktów
#Id_Zamówienia
*Id_Produkt
Ilość
Produkt
#Id_Produkt
*Id_Producent (identyfikator producenta produktu)
Cena (cena jednostkowa netto produktu)
Jednostka (jednostka w jakiej domyślnie sprzedawany jest produkt, np. szt.)
Nazwa
Producent
#Id_Producent
KodPocztowy (Pięciocyfrowy bez myślnika)
NIP
PESEL
REGON
Tel
Imie
Nazwisko
Miejscowosc (miejsce zamieszkania)
Poczta (miejscowość gdzie znajduje się poczta)
Email
Adres
Firma (nazwa firmy producenta)
Uwagi (ewentualne dodatkowe informacje)
6
3.1.5.




















Użytkownik
#Id_Użytkownik
*Id_Blokada (identyfikator rekordu blokady w TabBlokady, dla użytkownika)
*Id_Stanowisko (indentyfikator stanowiska – pracownik, administrator…)
Logowanie (Ostatnia data/gdzina logowania użytkownika do systemu)
StatusPrawny (dane osobowe)
KodPocztowy (dane osobowe)
NIP (dane osobowe)
PESEL (dane osobowe)
REGON (dane osobowe)
Uprawnienia (lista typu 1.0.0.0.1.0.1.1.0.0.0, gdzie 1 to pozwolenie, 0 jego brak)
Tel (dane osobowe)
Login (nazwa użytkownika)
Imie (dane osobowe)
Haslo
Nazwisko (dane osobowe)
Miejscowosc (dane osobowe)
Poczta (dane osobowe)
Email (dane osobowe)
Adres (dane osobowe)
Firma (dane osobowe)
3.1.6. Stanowisko
 #Id_Stanowisko (identyfikator – klucz gł.)
 Nazwa (krótka nazwa stanowiska)
3.1.7. Przydzielenie
 #Id_Klient (Identyfikator klienta przydzielonego do pracownika )
 *Id_Pracownik (identyfikator pracownika, któremu przydzielono klientów)
3.1.8. Uprawnienie
 #Id_Uprawnienie
 Nazwa
 Opis
# - klucz główny (PRIMARY)
* - klucz obcy (FOREIGN)
7
3.2. Diagram koncepcyjny
Na Rys.3.2.1 przedstawiono diagram koncepcyjny zaprojektowanej bazy danych.
Rys.3.2.1. Diagram koncepcyjny
8
4. Model relacyjny
4.1. Tabele
W modelu relacyjny uwzględniona została dodatkowa encja – TabBlokady,
odpowiadająca za zabezpieczenie rekordów przed błędami, wynikającymi z
wielodostępu do rekordów pewnych tabel (encji). Tabele zawierające klucz obcy
Id_Blokada zawierają właśnie rekordy, do których może mieć dostęp tylko jeden
użytkownik równocześnie (w trakcie edycji).
4.1.1. TabZamowienia
Atrybut
Id_Zamowienie
Id_Klient
Id_Blokada
CzasRealizacji
Status
DataZlozenia
DtaRealizacji
NrFaktury
Uwagi
Typ
Klucz główny

INT
INT
BIGINT
TINYINT
CHAR(1)
DATE
DATE
CHAR(14)
MEDIUMTEXT
Klucz obcy
Atrybut
Id_Zamowienie
Id_Produkt
Ilosc
Typ
INT
INT
FLOAT
Atrybut
Id_Produkt
Id_Producent
Cena
Jednostka
Nazwa
Typ
Klucz główny

INT
INT
FLOAT
VARCHAR(15)
VARCHAR(180)
Klucz obcy
Atrybut
Id_Producent
KodPocztowy
NIP
PESEL
REGON
Tel
Imie
Nazwisko
Miejscowosc
Poczta
Email
Adres
Typ
INT
CHAR(5)
CHAR(10)
CHAR(11)
CHAR(14)
VARCHAR(17)
VARCHAR(20)
VARCHAR(35)
VARCHAR(45)
VARCHAR(45)
VARCHAR(50)
VARCHAR(55)
Klucz obcy
NULL



Bez znaku








4.1.2. TabListaProduktow
Klucz główny

Klucz obcy
NULL

Bez znaku



4.1.3. TabProdukty
NULL
Bez znaku



NULL
Bez znaku


4.1.4. TabProducenci
Klucz główny











9
Firma
Uwagi
VARCHAR(80)
MEDIUMTEXT

4.1.5. TabUzytkownicy
Atrybut
Id_Uzytkownik
Id_Blokada
Id_Stanowisko
Logowanie
StatusPrawny
KodPocztowy
NIP
PESEL
REGON
Uprawnienia
Tel
Login
Imie
Haslo
Nazwisko
Miejscowosc
Poczta
Email
Adres
Firma
Typ
Klucz główny

INT
BIGINT
CHAR(1)
DATETIME
CHAR(1)
CHAR(5)
CHAR(10)
CHAR(11)
CHAR(14)
CHAR(29)
VARCHAR(17)
VARCHAR(20)
VARCHAR(20)
VARCHAR(35)
VARCHAR(35)
VARCHAR(45)
VARCHAR(45)
VARCHAR(50)
VARCHAR(55)
VARCHAR(80)
Klucz obcy
NULL


Bez znaku














4.1.6. TabPrzydzielenia
Atrybut
Id_Klient
Id_Pracownik
Typ
INT
INT
Klucz główny

Klucz obcy
NULL
Atrybut
Id_Stanowisko
Nazwa
Typ
Klucz główny

INT
VARCHAR(45)
Klucz obcy
NULL
Bez znaku

Atrybut
Typ
NULL
Bez znaku
Id_Uprawnienie
Nazwa
Opis
TINYINT
VARCHAR(200)
MEDIUMTEXT
Klucz
obcy
Atrybut
Typ
Id_Blokada
Locked
LockUserId
LockTime
LockDelay
BIGINT
CHAR(1)
INT
DATETIME
SMALLINT

Bez znaku


4.1.7. TabStanowiska
4.1.8. TabUprawnienia
4.1.9.
Klucz
główny



TabBlokady
Klucz główny

Klucz
obcy
NULL
Bez znaku



10
4.2. Diagram ERD
Na Rys.4.2.1 przedstawiono diagram relacyjny zaprojektowanej bazy danych.
Rys.4.2.1. Diagram relacyjny
11
4.3. Indeksy
4.3.1. TabZamowienia
Indeks
PRIMARY
idxBlokada
idxKlient
idxStatus
Typ
PRIMARY
FOREIGN
FOREIGN
INDEX
Powiązane kolumny
Id_Zamowienie
Id_Blokada
Id_Klient
Status
Indeks
PRIMARY
Typ
PRIMARY
FOREIGN
FOREIGN
Powiązane kolumny
Id_Zamowienie
Id_Produkt
Id_Produkt
Id_Zamowienie
Indeks
PRIMARY
idxProducent
idxSortByName
Typ
PRIMARY
FOREIGN
INDEX
Powiązane kolumny
Id_Produkt
Id_Producent
Nazwa
Indeks
PRIMARY
idxSortByName
Typ
PRIMARY
INDEX
Powiązane kolumny
Id_Produkt
Firma
Nazwisko
Imie
4.3.2. TabListaProduktow
idxProdukt
idxZamowienie
4.3.3. TabProdukty
4.3.4. TabProducenci
4.3.5. TabUzytkownicy
Indeks
PRIMARY
idxBlokada
idxStanowisko
idxSortByName
Typ
PRIMARY
FOREIGN
FOREIGN
INDEX
4.3.6. TabPrzydzielenia
Powiązane kolumny
Id_Uzytkownik
Id_Blokada
Id_Stanowisko
Firma
Nazwisko
Imie
Indeks
PRIMARY
idxPracownik
idxKlient
Typ
PRIMARY
FOREIGN
FOREIGN
Powiązane kolumny
Id_Klient
Id_Pracownik
Id_Klient
Indeks
PRIMARY
Typ
PRIMARY
Powiązane kolumny
Id_Stanowisko
4.3.7. TabStanowiska
12
4.3.8. TabUprawnienia
Indeks
PRIMARY
Typ
PRIMARY
Powiązane kolumny
Id_Uprawnienie
Indeks
PRIMARY
Typ
PRIMARY
Powiązane kolumny
Id_Blokada
4.3.9.
TabBlokady
5. Mała instrukcja obsługi
System OMEGA został zaprojektowany w taki sposób, by ułatwić zarządzanie zarówno
zamówieniami, jak i zasobami ludzkimi. Jeżeli chodzi o zamówienia system oferuje
możliwość składania zamówień drogą logowania do systemu i wyboru odpowiedniej
opcji. Poniżej znajduje się ekran systemu logowania. Wpisujemy, otrzymane od
administratora systemu, login i hasło użytkownika, które pozwolą zalogować się do
systemu.
Rys.5.1. Ekran logowania do systemu
Kolejny krok to szybkie zapoznanie się z panel użytkownika, który tak naprawdę
stanowi właściwy system (Rys.5.2). Po lewej stronie widoku oknie przeglądarki widzimy
menu główne do zarządzania dostępnymi dla naszego konta opcjami. Może to być moduł
zamówień, gdzie składamy zamówienia, przeglądamy je i edytujemy. Może to być moduł
użytkowników, gdzie administrator zarządza kontami użytkowników i wiele innych.
Aktualnie zajmiemy się kontem użytkownika o typie „klient”. Chodzi tutaj o pokazanie
stosowania systemu w praktyce. Zatem kliknijmy w menu na opcję „Złóż zamówienie”.
Mamy przed sobą łady formularz, którym się posłużymy (Rys.5.3). Mamy do dyspozycji
możliwość wyszukiwania produktów po nazwach oraz dynamiczne dodawanie ich do
listy, gdzie możemy ją dowolnie customizować. Na uwagę zasługuje sposób obsługi tego
formularza, nie wybranie żadnych produktów i próba zatwierdzenia zamówienia
natychmiast jest sygnalizowana. Jest to autorska walidacja, formularzy, której
wykonanie trwało niezwykle długo, czego efekty widzimy.
13
Rys.5.2. Widok panelu użytkownika - zwężony
Rys.5.3. Formularz zamówienia
14
Mamy do dyspozycji oczywiście listingi wszystkich rekordów, do których zalogowany
użytkownik ma dostęp – przykład dla zamówień przedstawia Rys.5.4. Oczywiście
widzimy dostępne również dodatkowe opcje z racji tego, że zalogowany jest
administrator, który posiada dodatkowe uprawnienia do wszystkiego, co można zrobić
w systemie.
Rys.5.4. Tabela rekordów - zamówienia
Niektóre z pól rekordów tabel stanowią linki do pewnych funkcjonalności, najeżdżając
myszką na link możemy się dowiedzieć do czego służy. Taka koncepcja jest stosowana w
całym systemie. Jeżeli chodzi o tabele dodatkowo po prawej stronie często pojawiają się
ikonki pudełek, które oznaczają możliwość edycji pewnych danych (rekordów), co
również jest opisane podpowiedzią.
Na koniec wspomnę tylko o samym sposobie użytkowania systemu na co dzień. System
tak naprawdę opisany przez drogę, jaką pokonuje produkt. Najpierw zamówienie
zostaje złożone prze klienta, bądź pracownika w imieniu jednego z klientów mu
przydzielonych. Następnie zamówienie po skończeniu tworzenia i zatwierdzeniu
otrzymuje status „w trakcie edycji” – E, dopiero po jego zatwierdzeniu podczas edycji
zamówienia lub w tabeli otrzymuje status „zaakceptowane” – A i trafia do logistyka lub
pracownika, który się dalej nim zajmuje. Któraś z tych dwóch osób ustala czas po jakim
zostanie zrealizowane zamówienie i ustawia ten czas w widoku tabeli zamówień. Ten
czas jest informacją dla klienta, że zamówienie zostanie zrealizowane maksymalnie w
ciągu iluś dni od daty złożenia. Kolejny krok to wysłanie zamówienia – nadanie mu
statusu „w drodze do klienta” lub „wysłane” – W. Gdy zamówienie dociera do klienta,
logistyk zatwierdza zamówienie, jako „zakończone” – X. Taki proces powtarza się dla
każdego zamówienia.
15
6. SQL – skrypty
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#ZESTAW PRZYKŁADOWYCH SKRYPTÓW SQL ZASTOSOWANYCH W SYSTEMIE
#Informacje na temat wybranego użytkownika
#Pominieto Super-Uzytkowników, gdyż nie jest tio wymagane
#podczas wyświetlania danych dla normalnego użytkownika systemu
SELECT
u.Id_Uzytkownik AS id, u.Id_Stanowisko, u.Logowanie AS lo,
u.KodPocztowy AS kp, u.Nip AS n, u.Pesel AS pes, u.Regon AS reg,
u.Tel AS t, u.Login AS l, u.Miejscowosc AS m, u.Poczta AS pocz,
u.Email AS e,
IF(ISNULL(u.Imie), '', u.Imie) AS i,
IF(ISNULL(u.Nazwisko), '', u.Nazwisko) AS naz,
IF(ISNULL(u.Firma), '', u.Firma) AS f,
st.Nazwa AS stan,
(SELECT COUNT(*) FROM tabprzydzielenia przyd
WHERE przyd.Id_Pracownik=u.Id_Uzytkownik) AS pk
FROM tabuzytkownicy u
LEFT JOIN tabstanowiska st ON u.Id_Stanowisko=st.Id_Stanowisko
WHERE u.Id_Stanowisko!='S'
ORDER BY CONCAT(n,i,f);
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
#Zestaw zamówień, które zostały złożone - zaakceptowane wraz
#z dołączonymi zestawami przyporządkowanych produktów
SELECT
z.Id_Zamowienie AS id_zam, z.Status, z.DataZlozenia AS dz,
z.Id_Klient,
z.Status AS s, z.Kwota AS k,
z.DataZlozenia AS dz, z.Uwagi AS uw, z.NowyAdres AS na,
u.Firma AS f, u.Miejscowosc AS m, u.Adres AS a,
u.Imie AS im, u.Nazwisko AS naz,
u.KodPocztowy AS kp, u.Poczta AS pocz,
tp.*, p.Cena AS c, p.Jednostka AS j, p.Nazwa AS n
37.
38.
39.
40.
41.
#Dane dla zamowienia o id=19
SELECT
z.Id_Zamowienie AS id, z.Id_Klient,
z.Status AS s, z.Kwota AS k,
z.DataZlozenia AS dz, z.Uwagi AS uw, z.NowyAdres AS na,
FROM tabzamowienia z
LEFT JOIN tabuzytkownicy u ON z.Id_Klient=u.Id_Uzytkownik
LEFT JOIN tablistaproduktow tp ON z.Id_Zamowienie=tp.Id_Zamowienie
LEFT JOIN tabprodukty p ON tp.Id_Produkt=p.Id_Produkt
WHERE z.Status!='E';
16
42.
43.
44.
45.
46.
47.
u.Firma AS f, u.Miejscowosc AS m, u.Adres AS a,
u.Imie AS im, u.Nazwisko AS naz,
u.KodPocztowy AS kp, u.Poczta AS pocz
FROM tabzamowienia z
LEFT JOIN tabuzytkownicy u ON z.Id_Klient=u.Id_Uzytkownik
WHERE z.Id_Zamowienie=19
48.
49.
50.
51.
52.
53.
#Zestawy list produktów do poprzednich zamówień - tutaj osobno
#Produkty do info zamówienia - tutaj tylko dla zamówienie o id=19
SELECT tp.*, p.Cena AS c, p.Jednostka AS j, p.Nazwa AS n
FROM tablistaproduktow tp
LEFT JOIN tabprodukty p ON tp.Id_Produkt=p.Id_Produkt
WHERE tp.Id_Zamowienie=19;
17