Podgląd formuł modułu płacowego w systemie erp

Wstęp

System erp którym zarządzam, w module kadrowo-płacowym posiada mechanizm formuł, przy pomocy których możemy napisać formułę obliczającą wartość danego składnika płacowego. Formuły są pisane w specjalnym języku, utworzonym przez autorów systemu erp.

Przykładowa formuła wygląda tak:

F.zapamietaj_wart('gnorm',
F.plac_akt_wart(Z.P.00050,1.0000)*
8.0000*F.kadr_wart(G.NREWID,Z.K.01000,-1.0000,F.data_akt_listy(),F.kon_mies(F.data_akt_listy())));

F.wykonaj_jesli(
F.porown_wyr(
F.duze_litery(F.kadr_kod(G.NREWID,Z.K.00591,-1.0000,
F.data_akt_listy(),F.kon_mies(F.data_akt_listy()))),'T','='),
F.zapamietaj_wart('gnorm',
F.il_godz_kod(F.data_akt_listy(),F.kon_mies(F.data_akt_listy()),'R',
F.kadr_kod(G.NREWID,Z.K.00590,-1.0000,F.data_akt_listy(),F.kon_mies(F.data_akt_listy())))));

F.zwroc_wart('gnorm') 

W formule można wyróżnić następujące elementy:

  • F.xxx – funkcje udostępnione przez autorów systemu
  • G.xxx – zmienne globalne
  • Z.P.xxxxx – składniki płacowe
  • Z.K.xxxxx – dane kadrowe

Podczas wprowadzania zmian w formułach brakowało mi możliwości sprawdzenia, w jakich składnikach występuje interesujący mnie składnik, np. mam składnik “liczba godzin roboczych” i chcę uzyskać listę wszystkich składników, w formułach których ten składnik występuje. Niestety system erp nie zapewnia takiego mechanizmu.

Dlatego napisałem program, którego opis zamieszczam poniżej.

Opis programu

Aby odczytać formułę z bazy danych należy użyć dedykowanej procedury sql. Ponieważ wczytanie wszystkich formuł zajmuje kilkanaście sekund, postanowiłem że będę je przechowywał we własnej bazie danych, a odczytywanie formuł z systemu erp oraz zapis do mojej bazy będzie następował po wywołaniu przeze mnie odpowiedniej funkcji. Dzięki temu przeglądanie jest szybsze oraz dodatkowo nie obciążam produkcyjnego serwera sql.

Strona główna aplikacji wygląda następująco:

Przycisk “wczytaj z erp” powoduje odczytanie wszystkich formuł z systemu erp i zapisanie ich do mojej bazy danych.

W tabeli widać przykładowe składniki płacowe, linki do formuł oraz, na czym mi zależało, link do składników zależnych, czyli składników płacowych, w których występuje dany składnik. Po kliknięciu wyświetla się następujący ekran:

Z tego ekranu także mogę podejrzeć formuły wypisanych składników.

Podgląd formuły wygląda tak:

Aby ułatwić czytanie dodałem podświetlanie składników płacowych oraz danych kadrowych, dodatkowo po najechaniu kursorem na podświetloną daną pojawia się jej opis.