30 maja 2007
Wojciech Mruczkiewicz, numer indeksu 71344
Bartosz Żyliński, numer indeksu 78881
Informatyzacja Przedsiębiorstw. Sprawozdanie z modułu Kadry i Płace.
Spis Treści
Wstęp
Sprawozdanie to przedstawia efekt naszej pracy z modułem Kadry i Płace programu Symfonia. Żeby móc pracować z programem Symfonia stworzyliśmy firmę M&Z-KP. Nasza firma zatrudnia dwóch pracowników: Wojciecha Mruczkiewicza oraz Bartosza Żylińskiego. Obaj pracownicy zarabiają po 1000zł brutto. Jeden z pracowników otrzymuje premię za brak nieobecności spowodowanych chorobą.
Sprawozdanie zawiera zrzuty ekranów różnych raportów dla poszczególnych pracowników. Ograniczyliśmy się do pojedynczych zrzutów by zachować czytelność. Poszczególne raporty dla drugiego pracownika wyglądają tak samo, jedynie różniąc się danymi osobowymi. Jeden z raportów został stworzony przez nas, dlatego do niego jest dołączony kod raportu oraz opis działania.
Umowa o pracę
Dokument ten został wygenerowany automatycznie przy pomocy funkcji raportów programu Symfonia.
Umowa o pracę dla pracownika Wojtek Mruczkiewicz.
Szkolenie BHP zatrudnionego pracownika
Zaświadczenie o ukończeniu szkolenia z BHP dla pracownika Wojciech Mruczkiewicz.
Skrócona lista płac pracowników
Lista pracowników została wygenerowana, podobnie jak reszta dokumentów, przy pomocy raportów. W tym momencie tworzenia raportów żaden z pracowników nie posiadał jeszcze premii, obydwoje mają taką samą pensję.
Skrócona lista płac pracowników.
Lista nominałów potrzebnych do wypłaty
Lista nominałów jest taka sama dla obydwóch pracowników, każdy z nich ma taką samą pensję.
Lista nominałów potrzebnych do wypłaty.
Paski dla pracowników na podstawie rozbudowanej listy płac
Paski dla pracowników.
PIT-11 wygenerowany dla pracownika Mruczkiewicz Wojtek za rok 2007
PIT-11 za rok 2007 dla pracownika Wojciech Mruczkiewicz.
Definicja własnego raportu - raport o przydziale miejsca parkingowego
W celu wygenerowania własnego raportu użyto wbudowanego języka skryptów programu Symfonia. Celem raportu jest poinformowanie pracownika o przyznaniu mu miejsca parkingowego oraz poinformowaniu go o dalszych krokach niezbędnych do skorzystania z niego. Listing definicji raportu zaprezentowany jest poniżej.
#define __WOJTEK
#include "interprt.sci"
int sub OnCommandWojtek(int id, int msg)
Save
endsub
int sub CallSub()
InfoPrac prac
string ulica
string miejsce_park
Pracownik(prac, idprac)
variables.set("GMINA", prac.stGmina)
variables.set("MIASTO", prac.stMiasto)
ulica = prac.stUlica
if (prac.stNrDomu) then
ulica = ulica + " " + prac.stNrDomu
endif
if (prac.stNrLokalu) then
ulica = ulica + " m. " + prac.stNrLokalu
endif
variables.set("ULICA", ulica)
if (prac.Paszport == 0) then
variables.set("DOWOD", "dowodem osobistym")
else
variables.set("DOWOD", "paszportem")
endif
if (prac.Plec == "K") then
variables.set("PLEC", "Pani")
variables.set("PLEC2", "Pani")
else
if (prac.Plec == "M") then
variables.set("PLEC", "Pan")
variables.set("PLEC2", "Panu")
else
variables.set("PLEC", "Pan(i)")
variables.set("PLEC2", "Panu(i)")
endif
endif
variables.set("DOWODNR", prac.NrDowOs)
variables.set("DOWODWYDANY", prac.WydanyPrzez)
variables.set("PESEL", prac.PESEL)
variables.set("URODZ", prac.DataUrodz)
FORM "Przydział miejsca parkingowego", 250, 120
Text "Numer miejsca parkingowego:", 10, 10, 230, 20
Edit "Numer miejsca parkingowego:", miejsce_park, 10, 30, 230, 20
Button "O&K", 70, 60, 100, 24, -1
ExecForm OnCommandWojtek
variables.set("MIEJSCE", miejsce_park)
endsub
Zasoby:
<call Przygotuj>
<body leftmargin=70 topmargin=60 rightmargin=50 bottommargin=40>
<frame halign=left valign=top width=90% height=12% border=0>
<center><br><br><br><br><br><strong><font face=Garamond
size=80>Przydział miejsca parkingowego</font></strong>
</frame>
<left>
<frame halign=left valign=bottom width=90% height=12% border=0>
<table border=0 cellpadding=10><tr><td width=22%><td width=50%>
<font face=Garamond size=40>
<br><br><br><br> Z radością informujemy, że <PRINT PLEC> {Dane
osobowe.imię} {Dane osobowe.nazwisko} otrzymuje przydział miejsca
parkingowego nr <PRINT MIEJSCE>!
<br><br> Dzięki temu, iż mieszka <PRINT PLEC> w gminie <PRINT GMINA>,
mieście <PRINT MIASTO> na ulicy <PRINT ULICA>, co jest wystarczająco
daleko, oraz temu iż posiada <PRINT PLEC> samochód zarząd naszej firmy
postanowił przydzielić <PRINT PLEC2> własne miejsce parkingowe.
<br><br> Aby by je wykorzystać, musi <PRINT PLEC> zgłosić się z
<PRINT DOWOD> o numerze <PRINT DOWODNR> wydanym przez <PRINT
DOWODWYDANY> do szefa parkingu firmowego. Jednocześnie potwierdzi <PRINT
PLEC> w ten sposób swój PESEL - <PRINT PESEL> oraz datę urodzenia -
<PRINT URODZ>.
<br><br> Życzymy przyjemności w korzystaniu z parkingu.</font>
<td width=18%></table>
</frame>
<right>
<frame halign=left valign=bottom width=90% height=32% border=0>
<table border=0 cellpadding=10><tr><td width=22%><td width=50%>
<br><br><br><br>
<font face=Garamond size=40>Z poważaniem<br>zarząd firmy</font>
<td width=18%></table>
</frame>
</body>
Raport został stworzony na podstawie zmodyfikowanego kwestionariusza osobowego. Usunięte została jednak jego większa część. Z uwagi na to, iż wystąpiły problemy podczas odczytu wartości zamiennych innych niż związanymi z danymi osobowymi, użyto skryptowego języka raportów.
Procedura CallSub jest wywoływana na samym początku skryptu, poprzez tag call. Pobiera ona wartości pracownika do mapy variables (z tej mapy pobierane są zmienne w tagu print, wykorzystywanym przy odwoływaniu się do zmiennych). W zależności od płci pracownika, raport wyświetla różne zwroty osobowe (Pan, Pani, Panu). Również potwierdzenie danych osobowych na dowodzie tożsamości jest zależne od jego typu (paszport albo dowód osobisty).
Numer przydzielonego miejsca parkingowego jest pobierany z okienka dialogowego wyświetlanego przed wykonaniem raportu. Procedura OnCommandWojtek jest czysto pomocnicza i służy do aktualizacji zmiennej lokalnej odpowiedzialnej za przechowanie numery przydzielonego miejsca parkingowego.
Zmodyfikowano wyświetlaną czcionkę oraz układ marginesów. Użyto czcionkę Garamond. Zmienne przechowujące dane personalne użytkownika wyświetlane są za pomocą tagu print.
Na rysunku 7 przedstawiony jest przykładowy wydruk takiego raportu. W czerwonej ramce zaznaczono elementy, które zmieniają się dynamicznie.
Przykładowy raport o przydziale miejsca parkingowego.
Definicje eksportu danych do modułu Finanse i Księgowość
Aby zintegrować moduł Kadry i płace z modułem Finanse i Księgowość wygenerowany plik, tekstowy służący właśnie do takiego eksportu. Jego zawartość przedstawiona jest poniżej. W pliku tym uwzględniona jest premia dla jednego z pracowników.
Dokument{
NrKolejny =0
Nazwa =PŁACE 04/2007
Treść = kwiecień 2007 otwarty
DataDok =2007-05-29
DataOper =2007-05-29
DataWpływu =2007-05-29
Kwota =7170.0600
Kontrahent =0
KontrahentFK =0
NIP =
Sygnatura =Admin
SaldoPRK =0.0000
SaldoZRK =0.0000
KontoKasy =
NazwaKor =
DataKor =
ObsługujJak =DP
Zapis{
ZAP/ZAK =P
WN/MA =WN
Kwota =2066.3000
Konto =230
NumerDokDlaRK =numer = 0
IdDlaRozl =1
Opis =do wypłaty w kasie (całość) i inne
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =K
WN/MA =MA
Kwota =713.8700
Konto =100
NumerDokDlaRK =numer = 0
IdDlaRozl =2
Opis =do wypłaty w kasie (całość)
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =K
WN/MA =MA
Kwota =1091.4300
Konto =234
NumerDokDlaRK =numer = 0
IdDlaRozl =7
Opis =składka na ub. społ. finans. przez ubezpieczonego i inne
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =K
WN/MA =MA
Kwota =261.0000
Konto =220-2
NumerDokDlaRK =numer = 0
IdDlaRozl =8
Opis =zaliczka na p. doch. odprowadzona do US
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =P
WN/MA =WN
Kwota =4239.5100
Konto =405
NumerDokDlaRK =numer = 0
IdDlaRozl =3
Opis =kwota brutto (z uwzgl. zasiłków)
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =K
WN/MA =MA
Kwota =4239.5100
Konto =230
NumerDokDlaRK =numer = 0
IdDlaRozl =4
Opis =kwota brutto (z uwzgl. zasiłków)
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =P
WN/MA =WN
Kwota =864.2500
Konto =406
NumerDokDlaRK =numer = 0
IdDlaRozl =5
Opis =składka na FGŚP za pracownika i inne
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =K
WN/MA =MA
Kwota =864.2500
Konto =220-3
NumerDokDlaRK =numer = 0
IdDlaRozl =6
Opis =składka na FGŚP za pracownika i inne
ZapisRównoległy =0
}
Zapis{
ZAP/ZAK =P
WN/MA =WN
Kwota =864.2500
Konto =220-3
NumerDokDlaRK =numer = 0
IdDlaRozl =9
Opis =składka na FGŚP za pracownika i inne
ZapisRównoległy =1
}
Zapis{
ZAP/ZAK =K
WN/MA =MA
Kwota =2216.6800
Konto =100
NumerDokDlaRK =numer = 0
IdDlaRozl =10
Opis =składka na FGŚP za pracownika i inne
ZapisRównoległy =1
}
Zapis{
ZAP/ZAK =K
WN/MA =WN
Kwota =1091.4300
Konto =234
NumerDokDlaRK =numer = 0
IdDlaRozl =11
Opis =składka na ub. społ. finans. przez ubezpieczonego i inne
ZapisRównoległy =1
}
Zapis{
ZAP/ZAK =K
WN/MA =WN
Kwota =261.0000
Konto =220-2
NumerDokDlaRK =numer = 0
IdDlaRozl =12
Opis =zaliczka na p. doch. odprowadzona do US
ZapisRównoległy =1
}
}
Pasek wynagrodzeń z wypłacaną premią, uzależnioną od liczby dni choroby
Po dodaniu premii jednemu z pracowników jego pasek wynagrodzeń przedstawia się tak, jak na rysunku 8. Pracownik opuścił dwa dni z powodu choroby. Jego premia spadła więc do 75% kwoty bazowej (3000zł) i wynosi 2250zł.
Pasek pracownika po uwzględnieniu bonusów.
Wnioski i uwagi
Ponieważ żaden z nas nie miał kontaktu z innym modułem kadrowo-płacowym, dlatego skupimy się jedynie na module Symfonii. Od strony interfejsu użytkownika program posiada dosyć mało intuicyjny interfejs, wiele opcji jest trudno dostępnych, pochowanych lub umieszczonych jedynie pod prawym przyciskiem myszki. Sam wygląd tego interfejsu w dzisiejszych czasach raczej odpycha użytkownika.
Od strony informatycznej wyczuwalna jest pewna archaiczność programu. Baza danych programu jest wewnętrznym formatem aplikacji, dane są trzymane bezpośrednio w plikach dyskowych. Jest to sprzeczne z nowoczesnymi trendami. Podobnie język definiowania raportów. Sam język skryptowy, oparty na języku BASIC jest całkiem niezłym rozwiązaniem, ale już składnia języka użytego do prezentacji graficznej (opartego o język HTML) jest bardzo amatorskim rozwiązaniem.
Rzuca się także fakt usilnego tworzenia kopii zapasowych na dyskietkach, które są już zdecydowanie przestarzałym nośnikiem.
Jednak oprócz tych wad aplikacja sprawuje się dobrze i z niewielkim doświadczeniem można jej używać w pracy. Zagadnienie obsługi przedsiębiorstwa jest skomplikowane same w sobie oraz generuje dużą liczbę sytuacji wyjątkowych w księgowaniu. Symfonia z pewnością wspomaga ten proces. Wyczuwalne jest duże przywiązanie do szczegółów w wielu częściach aplikacji, co jest z pewnością wymogiem stawianym przez dziedzinę księgowości.
W celu wdrożenia modułu kadrowo-płacowego w firmie należy przeprowadzić szereg szkoleń dla pracowników firmy. Jeżeli firma nie posiadała wcześniej żadnego modułu kadrowo-płacowego i jej pracownicy nie mają doświadczenia w obsłudze takich modułów, szkolenia muszą być pełne i prowadzone od samych podstaw. Jeżeli firma wymienia starszą wersję na nowszą lub zmienia dostawcę modułu kadrowo-płacowego, w szczególności należy położyć nacisk na różnice pomiędzy wersjami modułu. Dobrą formą przeprowadzenia szkoleń są odpowiednie prezentacje. Należy przygotować tyle różnych prezentacji ile różnych grup pracowników będzie korzystało z modułu. Ilość grup pracowników zależy od ich zakresów obowiązków realizowanych w module. Należy również przygotować zestaw ćwiczeń do samodzielnej realizacji przez pracowników w celu ugruntowania zdobytej wiedzy podczas prowadzonego szkolenia. Po każdym szkoleniu powinno odbyć się sprawdzenie wiedzy pracowników na temat modułu. W tym celu należy przygotować testy sprawdzające umiejętność pracy z modułem. Osobom z pozytywnym zdaniem testów wystawia się zaświadczenia ukończenia szkolenia lub wydania certyfikatów, jeżeli szkolenie prowadziła firma zewnętrzna posiadająca uprawnienia do wydania takich certyfikatów. Wymaga to przygotowania odpowiednich dokumentów przez firmę. Osobom zajmującym się pracami administracyjno-konserwującymi modułu należy udostępnić pełną dokumentację techniczną modułu oraz dokładne omówienie architektury modułu. Jeżeli firma posiada odpowiednie środki finansowe to powinna zatrudnić specjalistyczną firmę zajmującą się wdrożeniami. Skorzystanie z usług i doświadczenia ekspertów w tej dziedzinie znacznie przyspieszy czas wdrożenia a jego efekty będą zdecydowanie lepsze.
14