Spis Treści
Wstęp
Po długim czasie przerwy dodaję na stronę kolejny napisany przeze mnie projekt. Tym razem jest to lekka aplikacja do zarządzania zleceniami, która nie jest tylko projektem napisanym dla samego siebie lecz spełnia istotną funkcję w jednym z podwarszawskich przedsiębiorstw z którym jestem zawodowo związany. Zapraszam do lektury.
Aplikacja powstała w związku z potrzebą organizacji zarządzania zleceniami w przedsiębiorstwie produkcyjno-usługowym. Założenie było takie, aby stworzyć wspólną bazę zleceń dla pracowników przedsiębiorstwa, aby zawsze pracować na aktualnych danych i nie trzeba były ich powielać w wielu miejscach. Dodatkowo aplikacja miała umożliwiać szybkie wyszukiwanie danych aktywnych zleceń jak i tych archiwalnym np. pod kątem archiwalnych cen wyrobów.
Z racji na niezbyt duże skomplikowanie projektu oraz łatwość zarządzania postanowiłem napisać aplikację webową wykorzystującą framework CodeIgniter w wersji 4.
Aplikacja składa się z kilku głównych modułów:
- Kontrahenci
- Zlecenia
- Zlecone wyroby
- Finanse
- Ustawienia
Ustawienia
W związku z faktem, że z aplikacji będą korzystały różne osoby w przedsiębiorstwie z różnymi uprawnieniami zaimplementowano system kontroli dostępu oparty na mechanizmie filtrów dostępnym w ramach frameworku.
Po utworzeniu użytkownika i nadaniu mu odpowiednich uprawnień należy utworzyć hasło do systemu, które użytkownik nadaje sam podczas pierwszego logowania. W przypadku zapomnienia hasła administrator systemu może zresetować hasło do aplikacji i użytkownik będzie mógł przeprowadzić procedurę od początku.
Aplikacja umożliwia rejestrowanie zleceń w różnych walutach, które administrator systemu definiuje na początku pracy i może później dowolnie modyfikować, a także zmieniać kursy walut co będzie przekładało się na wartości przeliczane na bazową walutę jaką jest PLN. Ważne jest, że w momencie archiwizacji zlecenia do jego rekordu zapisywana jest również wartość kursu wymiany, który był aktualnie ustawiony w systemie.
Kontrahenci
Aplikacja umożliwia zarządzanie kontrahentami, poprzez ich dodawanie, edycję wyświetlanie danych o zleceniach aktualnie zrealizowanych jak i tych już zarchiwizowanych.
Po kliknięciu w alias kontrahenta system zwraca podstawowe informacje o kontrahencie jak i listę wszystkich jego zleceń. Listę tę można przeszukiwać po dowolnej wartości znajdującej się w tabeli poprzez użycie pola szukaj oraz sortować po dowolnej kolumnie.
Zlecenia
Moduł ten zawiera informacje o wszystkich zleceniach i został podzielony na dwie podkategorie: zlecenia aktywne i zlecenia archiwalne. Główny widok wyświetla listę zleceń i również możliwe jest przeszukiwanie po dowolnej wartości w tabeli a także sortowanie po dowolnej kolumnie.
Z poziomu tabeli można łatwo przejść do szczegółów kontrahenta, który dane zlecenie zamawiał a także wyświetlić szczegóły zlecenia takie jak :
- Zlecone wyroby,
- Podsumowanie finansowe zlecenia (jeśli jest w innej walucie niż PLN to wyświetli się w obydwu walutach uwzględniając aktualnie ustawiony kurs)
- Załączone pliki,
- Możliwość generowania potwierdzenia zlecenia do przekopiowania np do e-mail w języku polskim i angielskim.
Wspomniany wcześniej system kontroli dostępu umożliwia zablokowanie wybranym użytkownikom możliwości edycji, usuwania i dodawania zleceń czy oddzielnie zablokować nawet ich podglądanie. Cenną funkcją jet możliwość podpinania pod zlecenie np papierowych czy podpisanych przez kontrahentów zleceń z dodatkowymi adnotacjami czy korektami naniesionymi w trakcie realizacji zlecenia. System na potrzeby przedsiębiorstwa został skonfigurowany tak aby można było podpinać tylko pliki z rozszerzeniami .pdf, .jpg. .png czy .tiff oraz o rozmiarze nie przekraczającym 5 MB.
Zlecone Wyroby
Osobnym sporym modułem jest moduł zleconych wyrobów. Zawiera on możliwość przypisywania do zleceń konkretnych pozycji ze zlecenia, a także co istotne śledzenia aktualnego statusu wyrobu. Dla każdej pozycji możliwe jest również ustawienie indywidualnego rabatu od ceny bazowej, a także ustawienie odrębnego terminu wykonania czy indywidualnych notatek.
Kadrze kierowniczej zależało aby można było w szybki sposób określić na jakim etapie wytwarzania jest dany wyrób. W tym celu podzielono proces wytwarzania na kilka etapów:
- Przyjęcie do realizacji (przed opracowaniem technologicznym)
- Opracowane technologiczne (przed rozpoczeciem produkcji)
- W produkcji
- Ukończono (wysłano lub wypełniono dokumenty dostawy)
Przy każdej pozycji w zleceniu lub w zbiorczej tabeli z pozycjami z wielu zleceń znajduje się pole opcji umożliwiającymi zmianę statusu pozycji ze zlecenia. Dział technologiczny posiada uprawnienie opracowywania technologii, dział produkcji rozpoczynania produkcji, a dział wysyłki możliwość odznaczenia pozycji jako wykonanej. Dla każdego etapu możliwe jest dodanie uwagi czy adnotacji, które można wyświetlić wchodząc w szczegóły każdej pozycji. Dodatkowo system wyświetla kto i kiedy wykonał ostatnią zmianę na każdym etapie wytwarzania.
W momencie kiedy wszystkie pozycje zlecenia są ukończone, czyli ilość wyrobów wysłanych jest co najmniej tak duża jak ilość wyrobów zamówiona to wówczas zlecenie może zostać poddane archiwizacji. Zlecenie zarchiwizowane nie może już zostać w żaden sposób zedytowane czy usunięte.
Finanse
Moduł ten zawiera prostą funkcjonalność umożliwiającą przeglądanie sumarycznych wartości zleceń pogrupowanych wg kontrahenta w wybranym okresie czasu. Istnieją 3 predefiniowane okresy a także możliwość ustalenia własnego zakresu dat.
Kilka informacji technicznych
Aplikacja powstała w oparciu o framework CodeIgniter 4 i dodatkowo zostały w niej użyte takie rozwiązania jak Bootstrap, chart.js, czy datatable.net. Aplikacja nie potrzebuje do poprawnego działania połączenia z internetem więc istnieje możliwość zainstalowania jej na lokalnym serwerze i udostępnienia jej w sieci lokalnej co zwiększa bezpieczeństwo danych przechowywanych w systemie.
UPDATE 1
Aplikacja została wzbogacona o nowe funkcje:
Dodawanie notatek do zleceń
Na potrzeby lepszego przepływu informacji dowolny użytkownik może dodawać notatki do zlecenia oraz usuwać tylko swoje, wcześniej dodane notatki.
Multiwyszukiwarka
W celu szybszego poruszania się po danych zaimplemenotowano wyszukiwarkę, która przeszukuje bazę danych w zakresie zleceń, pozycji w zleceniach oraz kontrahentów. Wyszukiwarka dostępna jest z dowolnego miejsca w systemie z obszaru sidepanelu.
Wykres finansów w funkcji czasu
Dodano wykres planowanego planu sprzedaży na podstawie danych wprowadzonych w ramach zleceń.
Poprawienie interfejsu
Na potrzeby poprawy estetyki aplikacji, a także usability dokonano kilku zmian w wyglądzie interfejsu.
Raport z aktualnego statusu zlecenia
Na podstawie wszystkich danych wprowadzanych w ramach zlecenia, a także pozycji ze zleceń , generowany jest prosty raport, który łatwo można zapisać do pliku PDF bądź też wydrukować.