Organizator pracy na potrzeby własne.

Obrazek
Widok główny aplikacji

Pisząc tą aplikację w 2016r niewiele wiedziałem o obiektowym programowaniu.Dlatego aplikacja została napisana jeszcze strukturalnie. Z końcem 2024 zaprzestałem używania tej aplikacji wraz z końcem kariery kierowcy. W brew pozorom była dosyć rozbudowana. Miała wiele kart i funkcjonalności. Istotą sprawy było to by aplikacja spełniała swoją rolę. Kwestie frontendowe nie były najważniejsze, ponieważ aplikacja była tylko na potrzeby własne.

Głównym celem projektu było zbudowanie inteligentnego ala notatnika. Aby w ciągu dnia wprowadzać kolejno istotne adnotacje, które później będą automatycznie przetwarzane i wprowadzane do odpowiednich raportów. Na obrazku "Widok rozpoczęcia pracy" widzimy prosty widok wprowadzania daty rozpoczęcia. W widoku chciałem mieć duże przyciski ponieważ planowałem używać aplikację w tablecie 7 cali. I w taki prosty sposób wprowadzałem podstawowe dane do mini systemu.

Obrazek
Widok rozpoczęcia pracy
Obrazek
Wprowadzanie godziny rozpoczęcia pracy

Po rozpoczęciu dnia na głównym widoku program pokazywał do której godziny mogę w danym dniu pracować. Uwzględniał on wykorzystane przerwy w danym tygodniu co widać na obrazku "Widok główny aplikacji", Pauzy 9h (2). To oznacza, że mam do wykorzystania dwie przerwy o długości 9 godzin, a to oznaczało że mogę pracować 15h. Ponieważ czas pracy i odpoczynku dziennego (nocleg) musiał się zmieścić w 24h.

Jeśli licznik wskazywał by 0 w takim przypadku musiałem zastosować przerwę po pracy nie 9 a 11 godzin. Co zarazem skracało możliwość pracy do 13h. To tylko 1 z najprostszych zagadnień jak pilnowanie ile razy już skróciłem czas pracy. Sprawy komplikowały się znacznie gdy musiałem skrócić odpoczynek tygodniowy (weekend). Pełny wynosił nie mniej niż 45 godzin (często zwłaszcza za granicą weekendy były skracane do minimum 24 godzin).

Obrazek
Wprowadzanie godziny zakończenia pracy
Obrazek
Informacje o weekendach do oddania i finansach

W takim przypadku różnicę pomiędzy pełnym a skróconym odpoczynkiem tygodniowym należało oddać nie później niż do końca trzeciego tygodnia od skróconego odpoczynku tygodniowego. O tych terminach i ilościach godzin do oddania z odpowiednim uprzedzeniem aplikacja sumienne mi przypominała. Jak widać na obrazku "Informacje o weekendach do oddania i finansach" odkrywają się kolejne funkcjonalności. Choćby takie jak finanse.

Chodzi tu o stany zaliczek służbowych w trzech walutach oraz poglądowe wyliczenie wynagrodzenia. Na omawianym obrazku można zauważyć wyszukiwarkę do wyszukiwania w notatkach i "BackUp" czyli kopia zapasowa, która umożliwiała przywracanie bazy danych po awarii urządzenia. Każdego dnia po zakończeniu pracy i dokonaniu ostatnich adnotacji obraz "Zakończenie dnia" tworzyła się automatyczna kopia zapasowa.

Obrazek
Zakończenie dnia
Obrazek
Kopia zapasowa

Zachowane były 4 ostatnie sztuki kopii zapasowych a wcześniejsze automatycznie skrypt usuwał z pamięci. Pora na małą wycieczkę po aplikacji zaczynając od "Widok główny aplikacji" / 'Zrób notatkę' / przeniesie nas do karty "Wprowadzanie notatek" Tutaj widzimy tylko trzy pola do wprowadzania danych ale tutaj jedno pole ma więcej niż jedno zastosowanie. Np. W polu 'Czas' gdy znajdował się czas wtedy miały zastosowanie odpowiednie procedury.

Czyli 'Miejscowość' była wykorzystywana w zakładce "Wymiana palet" gdzie dokonano wymiany oraz jako zwykła notatka. Jeżeli w polu 'Czas' wprowadziłem słowo klucz "Agregat" wtedy w pole 'Miejscowość' wpisywałem litry zatankowanego paliwa do agregatu chłodniczego. A w pole 'Notatki' stan licznika motogodzin. Dane te wędrowały do bazy danych i później z tych danych powstawał raport. W Karcie "Wymiana palet" można zauważyć 'Miejscowość' wczytaną z pamięci.

Obrazek
Wprowadzanie notatek
Obrazek
Wymiana palet

W pole 'Uwagi' wprowadzałem nazwę firmy, w której dokonano wymiany palet. Informacje te wędrowały do osobnej tabeli w bazie i później z tych danych powstawał raport o wymianie palet. W karcie tej widać moduł do wysyłania raportu oraz podglądu wcześniejszych raportów. Moduł ten wysyłał do pracodawcy informacje o wymianie palet oraz rozliczenie wydatków służbowych. Podgląd raportów widzimy na obrazku "Podgląd raportów wymiany palet".

Po powrocie z karty "Wymiana palet" do "Głównego widoku aplikacji". Przechodzimy do 'informacje wpisy' karta "Informacje o weekendach do oddania i finansach". Z tej karty przechodzimy do 'Poprzednie wpisy' do karty "Podgląd notatek". Z poziomu tej karty wysyłałem raporty takie jak zestawienie notatek na mój adres mailowy 'Wyślij raport na mejla'.

Obrazek
Podgląd notatek
Obrazek
Podgląd terminów

Wysyłałem także rejestry przekraczania granic państw (regulacje unijne), oraz informacje o tankowaniu agregatu chłodniczego. W karcie "Widok główny aplikacji" widzimy przycisk z informacją ile dni pozostało do terminu 'Termin za 5 dni'. Przycisk przeniesie nas do karty "Podgląd terminów" gdzie zastosowałem klasycznego "CRUD" (Create, Read, Update, Delete) czyli dodawanie nowego terminu, odczyt terminów, aktualizacja (edycja) terminu, oraz usuwanie terminu.

Obrazek
Podgląd rejestrów
Obrazek
Podgląd raportów wymiany palet
Obrazek
Podpisywanie wymiany palet

Wracając do karty "Podgląd raportów wymiany palet" w tabeli 'Informacja o wymianie palet' widnieje rubryka 'Podpis'. Linki te pozwalały na podpisanie przekazania lub pobrania palet od innego kierowcy z tej samej firmy. Do podpisu wykorzystałem bibliotekę "Canvas" co można zobaczyć na obrazkach "Podpisywanie wymiany palet" oraz "Podpis w tabeli wymiany palet".

Obrazek
Podpis w tabeli wymiany palet

W karcie "Widok główny aplikacji" pozostał ostatni szczegół do opisania 'Pauza 3h', co wynika z przepisów, które można było wykorzystać w pracy. W wciągu dnia gdy miałem przerwę nie planowaną (dłuższą niż 3h) mogłem zastosować po pracy pełny łączony odpoczynek dzienny 3h + 9h, co było traktowane jako pełny 11 godzinny odpoczynek dzienny.

To już wszystko co chciałem opisać w tej aplikacji. Przedstawiłem tutaj najistotniejsze zagadnienia z mojego punktu widzenia.