Przejdź do treści
Strona główna » Blog » Aplikacja Pelikan

Aplikacja Pelikan

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.

Panel zarządzania uprawnieniami systemu

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.

Formularz ustawiania hasła

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.

Główny widok Kontrahentów

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.

Szczegóły kontrahenta

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.

Główny widok tabeli zleceń

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.
Widok szczegółu zlecenia
Widok wygenerowanego potwierdzenia mailowego zlecenia

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.

Widok formularza

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.

Panel informacji o zleconym wyrobie

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.

Widok podsumowania finansowego

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.

notatki-zrzut
Przemodelowany widok zlecenia z opcją dodawania notatek

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.

wyszukiwarka-zrzut
Multiwyszukiwarka

Wykres finansów w funkcji czasu

Dodano wykres planowanego planu sprzedaży na podstawie danych wprowadzonych w ramach zleceń.

wykres finanse-zrzut
Wykres finansów w funkcji czasu

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ć.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

W celu świadczenia usług na najwyższym poziomie stosuję pliki cookies, które będą zamieszczane w Państwa urządzeniu (komputerze, laptopie, smartfonie). W każdym momencie mogą Państwo dokonać zmiany ustawień Państwa przeglądarki internetowej i wyłączyć opcję zapisu plików cookies. Ze szczegółowymi informacjami dotyczącymi cookies na tej stronie można się zapoznać tutaj: View more
Ustawienia ciasteczek
Akceptuj
Blokuj
Polityka prywatności
Polityka prywatności & ciasteczka
Nazwa ciasteczka Aktywny

Polityka prywatności opisuje zasady przetwarzania przezE MNIE informacji na Twój temat, w tym danych osobowych oraz ciasteczek, czyli tzw. cookies.


1. Informacje ogólne

  1. Niniejsza polityka dotyczy Serwisu www, funkcjonującego pod adresem url: www.wojciechsiwek.pl
  2. Operatorem serwisu oraz Administratorem danych osobowych jest: Wojciech Siwek
  3. Adres kontaktowy poczty elektronicznej operatora: wojciech.siwek.programista@gmail.com
  4. Operator jest Administratorem Twoich danych osobowych w odniesieniu do danych podanych dobrowolnie w Serwisie.
  5. Serwis wykorzystuje dane osobowe w następujących celach:
    • Prowadzenie systemu komentarzy
    • Obsługa zapytań przez formularz
  6. Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniu w następujący sposób:
    1. Poprzez dobrowolnie wprowadzone w formularzach dane, które zostają wprowadzone do systemów Operatora.
    2. Poprzez zapisywanie w urządzeniach końcowych plików cookie (tzw. „ciasteczka”).

2. Wybrane metody ochrony danych stosowane przez Operatora

  1. Miejsca logowania i wprowadzania danych osobowych są chronione w warstwie transmisji (certyfikat SSL). Dzięki temu dane osobowe i dane logowania, wprowadzone na stronie, zostają zaszyfrowane w komputerze użytkownika i mogą być odczytane jedynie na docelowym serwerze.
  2. Hasła użytkowników są przechowywane w postaci hashowanej. Funkcja hashująca działa jednokierunkowo - nie jest możliwe odwrócenie jej działania, co stanowi obecnie współczesny standard w zakresie przechowywania haseł użytkowników.
  3. Operator okresowo zmienia swoje hasła administracyjne.
  4. W celu ochrony danych Operator regularnie wykonuje kopie bezpieczeństwa.
  5. Istotnym elementem ochrony danych jest regularna aktualizacja wszelkiego oprogramowania, wykorzystywanego przez Operatora do przetwarzania danych osobowych, co w szczególności oznacza regularne aktualizacje komponentów programistycznych.

3. Hosting

  1. Serwis jest hostowany (technicznie utrzymywany) na serwera operatora: NETMARK.

4. Twoje prawa i dodatkowe informacje o sposobie wykorzystania danych

  1. W niektórych sytuacjach Administrator ma prawo przekazywać Twoje dane osobowe innym odbiorcom, jeśli będzie to niezbędne do wykonania zawartej z Tobą umowy lub do zrealizowania obowiązków ciążących na Administratorze. Dotyczy to takich grup odbiorców:
    • operatorzy pocztowi
    • operatorzy systemu komentarzy
    • upoważnieni pracownicy i współpracownicy, którzy korzystają z danych w celu realizacji celu działania strony
  2. Twoje dane osobowe przetwarzane przez Administratora nie dłużej, niż jest to konieczne do wykonania związanych z nimi czynności określonych osobnymi przepisami (np. o prowadzeniu rachunkowości). W odniesieniu do danych marketingowych dane nie będą przetwarzane dłużej niż przez 3 lata.
  3. Przysługuje Ci prawo żądania od Administratora:
    • dostępu do danych osobowych Ciebie dotyczących,
    • ich sprostowania,
    • usunięcia,
    • ograniczenia przetwarzania,
    • oraz przenoszenia danych.
  4. Przysługuje Ci prawo do złożenia sprzeciwu w zakresie przetwarzania wskazanego w pkt 3.3 c) wobec przetwarzania danych osobowych w celu wykonania prawnie uzasadnionych interesów realizowanych przez Administratora, w tym profilowania, przy czym prawo sprzeciwu nie będzie mogło być wykonane w przypadku istnienia ważnych prawnie uzasadnionych podstaw do przetwarzania, nadrzędnych wobec Ciebie interesów, praw i wolności, w szczególności ustalenia, dochodzenia lub obrony roszczeń.
  5. Na działania Administratora przysługuje skarga do Prezesa Urzędu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa.
  6. Podanie danych osobowych jest dobrowolne, lecz niezbędne do obsługi Serwisu.
  7. W stosunku do Ciebie mogą być podejmowane czynności polegające na zautomatyzowanym podejmowaniu decyzji, w tym profilowaniu w celu świadczenia usług w ramach zawartej umowy oraz w celu prowadzenia przez Administratora marketingu bezpośredniego.
  8. Dane osobowe nie są przekazywane od krajów trzecich w rozumieniu przepisów o ochronie danych osobowych. Oznacza to, że nie przesyłamy ich poza teren Unii Europejskiej.

5. Informacje w formularzach

  1. Serwis zbiera informacje podane dobrowolnie przez użytkownika, w tym dane osobowe, o ile zostaną one podane.
  2. Serwis może zapisać informacje o parametrach połączenia (oznaczenie czasu, adres IP).
  3. Serwis, w niektórych wypadkach, może zapisać informację ułatwiającą powiązanie danych w formularzu z adresem e-mail użytkownika wypełniającego formularz. W takim wypadku adres e-mail użytkownika pojawia się wewnątrz adresu url strony zawierającej formularz.
  4. Dane podane w formularzu są przetwarzane w celu wynikającym z funkcji konkretnego formularza, np. w celu dokonania procesu obsługi zgłoszenia serwisowego lub kontaktu handlowego, rejestracji usług itp. Każdorazowo kontekst i opis formularza w czytelny sposób informuje, do czego on służy.

6. Logi Administratora

  1. Informacje zachowaniu użytkowników w serwisie mogą podlegać logowaniu. Dane te są wykorzystywane w celu administrowania serwisem.

7. Istotne techniki marketingowe

  1. Operator stosuje analizę statystyczną ruchu na stronie, poprzez Google Analytics (Google Inc. z siedzibą w USA). Operator nie przekazuje do operatora tej usługi danych osobowych, a jedynie zanonimizowane informacje. Usługa bazuje na wykorzystaniu ciasteczek w urządzeniu końcowym użytkownika. W zakresie informacji o preferencjach użytkownika gromadzonych przez sieć reklamową Google użytkownik może przeglądać i edytować informacje wynikające z plików cookies przy pomocy narzędzia: https://www.google.com/ads/preferences/

8. Informacja o plikach cookies

  1. Serwis korzysta z plików cookies.
  2. Pliki cookies (tzw. „ciasteczka”) stanowią dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym Użytkownika Serwisu i przeznaczone są do korzystania ze stron internetowych Serwisu. Cookies zazwyczaj zawierają nazwę strony internetowej, z której pochodzą, czas przechowywania ich na urządzeniu końcowym oraz unikalny numer.
  3. Podmiotem zamieszczającym na urządzeniu końcowym Użytkownika Serwisu pliki cookies oraz uzyskującym do nich dostęp jest operator Serwisu.
  4. Pliki cookies wykorzystywane są w następujących celach:
    1. utrzymanie sesji użytkownika Serwisu (po zalogowaniu), dzięki której użytkownik nie musi na każdej podstronie Serwisu ponownie wpisywać loginu i hasła;
    2. realizacji celów określonych powyżej w części "Istotne techniki marketingowe";
  5. W ramach Serwisu stosowane są dwa zasadnicze rodzaje plików cookies: „sesyjne” (session cookies) oraz „stałe” (persistent cookies). Cookies „sesyjne” są plikami tymczasowymi, które przechowywane są w urządzeniu końcowym Użytkownika do czasu wylogowania, opuszczenia strony internetowej lub wyłączenia oprogramowania (przeglądarki internetowej). „Stałe” pliki cookies przechowywane są w urządzeniu końcowym Użytkownika przez czas określony w parametrach plików cookies lub do czasu ich usunięcia przez Użytkownika.
  6. Oprogramowanie do przeglądania stron internetowych (przeglądarka internetowa) zazwyczaj domyślnie dopuszcza przechowywanie plików cookies w urządzeniu końcowym Użytkownika. Użytkownicy Serwisu mogą dokonać zmiany ustawień w tym zakresie. Przeglądarka internetowa umożliwia usunięcie plików cookies. Możliwe jest także automatyczne blokowanie plików cookies Szczegółowe informacje na ten temat zawiera pomoc lub dokumentacja przeglądarki internetowej.
  7. Ograniczenia stosowania plików cookies mogą wpłynąć na niektóre funkcjonalności dostępne na stronach internetowych Serwisu.
  8. Pliki cookies zamieszczane w urządzeniu końcowym Użytkownika Serwisu wykorzystywane mogą być również przez współpracujące z operatorem Serwisu podmioty, w szczególności dotyczy to firm: Google (Google Inc. z siedzibą w USA), Facebook (Facebook Inc. z siedzibą w USA), Twitter (Twitter Inc. z siedzibą w USA).

9. Zarządzanie plikami cookies – jak w praktyce wyrażać i cofać zgodę?

  1. Jeśli użytkownik nie chce otrzymywać plików cookies, może zmienić ustawienia przeglądarki. Zastrzegamy, że wyłączenie obsługi plików cookies niezbędnych dla procesów uwierzytelniania, bezpieczeństwa, utrzymania preferencji użytkownika może utrudnić, a w skrajnych przypadkach może uniemożliwić korzystanie ze stron www
  2. W celu zarządzania ustawienia cookies wybierz z listy poniżej przeglądarkę internetową, której używasz i postępuj zgodnie z instrukcjami:
Zapisz ustawienia
Ustawienia ciasteczek