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