Narzędzia użytkownika

Narzędzia witryny


interfejs_uzytkownika_lms-ui

LMS'owy Interfejs Użytkownika to panel administracyjny do tworzenia i zarządzania bazą klientów i komputerów dostępny za pomocą przeglądarki internetowej. Umożliwia wprowadzanie danych komputerów, przypisanie ich do klientów i sieci. Definiowanie opłat i zarządzanie finansami sieci, Szybkie wyszukiwanie danych o klientach i ich sprzęcie. Sporządzanie korespondencji seryjnej do klientów, definiowanie praw dostępu dla użytkowników i ich haseł. Ponadto daje możliwość przeglądania statystyk wykorzystania łącza, a także tworzenia kopii bazy danych oraz zarządzania konfiguracją usług na serwerze. LMS-UI posiada także wiele innych możliwości, które w tym rozdziale zostaną opisane.

3.1. Logowanie

Po wpisaniu w przeglądarce adresu do strony z LMS'em, powita cię ekran logowania. Musisz podać właściwy login oraz hasło. Hasła w bazie danych przechowywane są w formie zaszyfrowanej. Jeżeli jest to twoje pierwsze logowanie i nie masz jeszcze założonego konta, zostaniesz przekierowany do modułu tworzenia kont użytkowników. W tym momencie będziesz miał tylko dostęp do tego jednego modułu.

3.2. Administracja

Po zalogowaniu do LMS'a znajdziesz się w module (menu) administracji systemem LMS. Tutaj znajdziesz niezbędne informacje o systemie. Będziesz mógł zarządzać użytkownikami i tworzyć/odtwarzać kopie bazy danych. Z menu po lewej stronie wybierasz interesujący cię moduł. Możesz również dokonać zmiany hasła, wylogować się lub szybko przejść do informacji o kliencie i komputerze. W polach szybkiego wyszukiwania, oprócz id klienta lub komputera, możesz podawać nazwisko, nazwę, fragment adresu, telefon, email, adres IP lub MAC. W przypadku gdy w bazie znajduje się więcej klientów pasujących do szukanych danych zostaną wyświetlone informacje tylko o jednym kliencie lub komputerze.

3.2.1. Informacje

To panel, na którym znajdują się podstawowe informacje na temat naszego systemu: wersja LMS i jego składników, informacje o prawach autorskich, wersja jądra i uptime serwera, dane statystyczne o klientach i komputerach, bieżące informacje o aktywności komputerów i stanie finansów sieci. Ponadto znajdziesz tu przydatne LMS'owe linki.

3.2.2. Użytkownicy

Panel 'Użytkownicy' służy do zarządzania kontami użytkowników, czyli osób korzystających z LMS'a, zakładania i przeglądania ich kont, zmiany haseł i definiowania praw dostępu. Prawa dostępu zostały szczegółowo opisane w rozdziale Prawa dostępu. Po wybraniu menu 'Użytkownicy' zobaczysz listę wszystkich użytkowników z informacją o ostatnim logowaniu. Kliknięcie na pozycji z listy spowoduje wyświetlenie informacji szczegółowych o danym koncie, w tym o zdefiniowanych prawach dostępu. W każdej chwili możliwa jest zmiana danych i uprawnień za pomocą przycisku 'Edytuj'. Aby założyć nowe konto użytkownika skorzystaj z górnego menu 'Nowy użytkownik'.

3.2.3. Nowy użytkownik

Aby dodać nowe konto użytkownika należy podać login, nazwisko/imię oraz hasło, które nie może być puste. Pozostałe dane nie są wymagane. „Dozwolone hosty” to lista adresów IP hostów lub sieci oddzielonych przecinkiem, z których dany użytkownik może się logować do systemu (podobnie do opcji konfiguracyjnej 'allow_from'). Jeśli lista ta jest pusta system nie dokonuje sprawdzenia adresu IP. Poniżej można zaznaczyć uprawnienia dostępu do systemu. Jeżeli wszystkie pola pozostawisz puste, użytkownikowi przypisany zostanie 'Pełen dostęp'. Pole „Powiadomienia” określa jakiego typu powiadomienia (np. z helpdesku) mają być wysyłane do użytkownika. Aby skorzystać z powiadomień należy też podać adres e-mail i/lub numer telefonu.

3.2.4. Kopie zapasowe

Z panelu 'Kopie zapasowe' możesz zarządzać kopiami awaryjnymi danych z bazy LMSa. Kopia bazy to plik tekstowy zawierający zapytania SQL i dane z wszystkich tabel w bazie, zapisywany w katalogu zdefiniowanym w sekcji [directories] lms.ini zmienną backup_dir.

Domyślnie kopie zapisywane są w katalogu lms/backups dostępnym przez przeglądarkę, dlatego dobrze było by przenieść go w inne miejsce.

Sporządzone kopie można w każdej chwili przeglądać, usuwać lub zapisywać na lokalnym dysku. Kliknięcie na ikonkę Odtwórz spowoduje wyczyszczenie bieżącej bazy danych i załadowanie do niej danych z wybranego pliku kopii. Tuż przed odtworzeniem tworzona jest kopia aktualnej bazy danych. Odtworzenie bazy danych z kopii jest możliwe tylko wtedy gdy została ona utworzona na tej samej wersji LMSa.

3.3. Klienci

Tutaj zarządzasz danymi klientów twojej sieci i ich finansami, ale także ich komputerami. Możesz na przykład jednym kliknięciem odłączyć wszystkie komputery klienta.

Do automatycznego odłączania komputerów klientów, których bilans jest poniżej zadanej wartości służy skrypt lms-cutoff.

3.3.1. Lista

Po wejściu do panelu 'Klienci' ukaże się lista klientów, którą możesz filtrować według wybranych kryteriów (statusu, grupy lub sieci) lub sortować klikając na nazwie kolumny. Na liście ikona żarówki informuje o statusie podłączenia komputerów klienta, a ikona znaku drogowego o statusie ostrzeżeń. Kliknięcie na nich zmienia status na przeciwny w stosunku do wszystkich komputerów danego klienta. Gdy klient nie posiada przypisanych żadnych komputerów ikony te zostaną zamienione znakiem wykrzyknika.

U klientów z saldem ujemnym pojawia się link „Rozlicz”, pozwalający na zaksięgowanie jednym kliknięciem wpłaty równoważącej ujemne saldo.

Kliknięcie na wybranym kliencie spowoduje przejście do panelu z informacjami szczegółowymi o nim i przypisanych mu komputerach, taryfach oraz operacjach finansowych. Tam też możesz modyfikować dane klienta, definiować opłaty abonamentowe i zaksięgować wpłatę lub obciążenie jego rachunku.

3.3.2. Nowy klient

Dodając nowego klienta podajesz jego nazwisko/nazwę i dane teleadresowe oraz status (podłączony/oczekujący/zainteresowany).

Często zgłaszane jest błędne kapitalizowanie narodowych znaków diakrytycznych. Odpowiedzialny za to jest serwer bazy danych i rozwiązania należy szukać w jego konfiguracji.

3.3.3. Szukaj

Możliwe jest wyszukiwanie klientów (także usuniętych) wg zadanych kryteriów. Moduł ten, od pola szybkiego wyszukiwania z menu po lewej stronie, oprócz tego, że jest bardziej rozbudowany i pozwala wyszukiwać wg wielu kryteriów, różni się także tym, że zwraca listę klientów spełniających podane kryteria.

3.3.4. Grupy

Tutaj zarządzasz grupami klientów. Po kliknięciu menu 'Grupy' ukaże ci się lista grup z podstawowymi informacjami o grupach. Klikając na wybranej grupie przejdziesz do modułu, w którym możesz zmienić dane tej sieci, przeglądać oraz przypisywać klientów do grup.

3.3.5. Nowa grupa

Grupa powinna posiadać unikalną nazwę, składającą się z liter, cyfr, znaku myślnika lub podkreślenia. Ponieważ grupy wykorzystywane są w skryptach w nazwie nie może być znaku spacji.

3.3.6. Powiadomienia

Tutaj można „hurtowo” przypisać treść wiadomości administracyjnej (powiadomienia) klientom, których wybiera się z listy w lewym oknie. Treść przypisuje się klientom, natomiast aby wiadomość zostałą wyświetlona w przeglądarce internetowej na komputrerze klienta należy ją włączyć dla wybranych komputerów. Włączenie jak i wyłączenie powiadomień wszystkim komputerom należącym do wybranych klientów jest możliwe w tym miejscu.

3.3.7. Raporty

Zestaw modułów wyświetlających listy i raporty formie przyjaznej dla drukarki zawiera:

  • Lista klientów z wieloma filtrami i dowolnym sortowaniem,
  • Raport wierzytelności klienta(ów) na dany dzień,
  • Bilans klienta za wybrany okres

3.4. Komputery

Panel ten służy do zarządzania komputerami i umożliwia: przeglądanie listy komputerów, wyszukiwanie, dodawanie nowych lub usuwanie już wpisanych do bazy komputerów, a także podgląd i zmianę informacji o nich.

3.4.1. Lista

Lista komputerów, ta która pokazuje się po wejściu do panelu 'Komputery'. obejmuje wszystkie komputery w bazie. Można ją sortować klikając na nazwie dowolnej kolumny. W każdym wierszu, po prawej stronie znajdują się ikony służące kolejno do: zmiany statusu komputera [Podłącz/Odłącz], zmiany statusu ostrzeżenia [Ostrzegaj/Nie ostrzegaj], usunięcia z bazy [Usuń], wywołania panelu edycyjnego [Edytuj] oraz wyświetlenia informacji szczegółowych na temat danego komputera [Informacje]. Do panelu informacyjnego, który jest zintegrowany z panelem informacji o właścicielu komputera można także przejść klikając na podświetlonym wierszu.

3.4.2. Nowy komputer

Tutaj dodaje się nowe komputery do bazy danych. W tym celu definiujemy nazwę komputera (składającą się z liter, cyfr, znaku podkreślenia lub myślnika), jego właściciela, adres IP, adres MAC oraz status. Przy polach na adresy IP i MAC znajdują się linki do paneli, w których można wybrać dostępny adres IP oraz znaleziony w sieci MAC. Po wpisaniu danych naciśnij „Zapisz”. Przy wprowadzaniu danych dla wielu komputerów wygodnie jest zaznaczyć pole „Wywołaj ponownie…”

Aby wyszukać komputery w swojej sieci możesz skorzystać z programu nbtscan. Jeśli jest on zainstalowany w systemie, po naciśnięciu 'Skanuj' zobaczysz listę znalezionych komputerów.

Aby dodać komputer musisz mieć sieć i klienta, którym go przypiszesz.

3.4.3. Szukaj

Wyszukiwanie komputerów według zadanych kryteriów. Możesz podać całą lub fragment nazwy komputera oraz jego adresów IP i MAC.

3.4.4. Powiadomienia

Tutaj definiuje się treść wiadomości administracyjnych (powiadomień) dla klientów oraz włącza lub wyłącza je wybranym komputerom. Po lewej stronie znajduje się lista, na której komputery z włączonym powiadomieniem zaznaczone są kolorem czerwonym. Jeśli chcesz tylko zmienić/przypisać klientom treść powiadomienia, zaznacz odpowiednie komputery na liście i pozostaw puste pola 'Włącz' oraz 'Wyłącz'.

3.4.5. Raporty

Wyświetlenie list komputerów, w formacie przyjaznym dla drukarki z możliwością definiowania filtrów i sortowania podobnie jak na Liście.

3.5. Osprzęt sieciowy

W panelu przeznaczonym do ewidencji sprzętu zarządzamy strukturą sieci, urządzeniami typu switch, hub, router, serwer i połączeniami między nimi, a także przyłączonymi do nich komputerami. Każdemu urządzeniu można przypisać co najmniej jeden adres sieciowy.

3.5.1. Lista

Lista urządzeń zawiera ich nazwy i symbole, położenie i opis, a ponadto ilość dostępnych portów. Lista może być sortowana wg dowolnego parametru/kolumny. Kliknięcie na wybranym urządzeniu spowoduje wyświetlenie informacji szczegółowych o nim, gdzie możliwe jest definiowanie połączeń urządzeń i komputerów, adresów IP urządzenia oraz zamiana dwóch urządzeń.

3.5.2. Nowe urządzenie

Urządzenie sieciowe powinno posiadać unikalną nazwę. Pozostałe parametry tj. producent, model, nr seryjny, ilość portów, lokalizacja i opis są opcjonalne.

3.5.3. Szukaj

Wyszukiwanie urządzeń według zadanych kryteriów. Możesz podać całą lub fragment nazwy, adresów IP i MAC oraz innych danych.

3.5.4. Mapa

Generowanie graficznej mapy całej sieci, na podstawie danych z bazy LMS'a następuje po wybraniu opcji menu 'Mapa'. Możesz zdefiniować, które urządzenie jest nadrzędne w stosunku do pozostałych.

Do wygenerowania mapy potrzebna jest wbudowana w PHP obsługa biblioteki graficznej GD lub Ming.

Aby wybrać typ mapy musisz skorzystać z opcji map_type z sekcji phpui. Ustaw „flash” jeśli używasz biblioteki Ming, „gd” jeśli chcesz generować obrazki przy pomocy gdlib lub „openlayers” jeśli chcesz używać biblioteki OpenLayers do generowania mapy. Domyślnie (opcja nieustawiona) LMS spróbuje wykryć jaką bibliotekę masz dostępną w systemie, przy czym w pierwszej kolejności szuka możliwości wygenerowania mapy we flashu, a jak się to nie uda, to użyje GD.

Na mapie hosty wyłączone oznaczone są kolorem czarnym. Ikona z pytajnikiem oznacza, że dany komputer nie był jeszcze skanowany/włączony. Aby skorzystać z tej funkcjonalności należy, korzystając z crona, uruchamiać skrypt skanujący. Na mapie komputer traktowany jest za włączony jeśli czas ostatniego pozytywnego skanowania nie jest starszy od zadanej wartości (domyślnie 600 sekund). Parametr ten określa się przy pomocy opcji lastonline_limit w sekcji [phpui] pliku konfiguracyjnego. Powyższe odnosi się również do urządzeń z tym, że status urządzenia określa się na podstawie statusu wszystkich jego adresów. Status komputerów jest także widoczny na liście komputerów.

Do badania aktywności hostów można wykorzystać skrypt lms-fping lub demona lmsd.

3.6. Sieci IP

Tutaj definiujesz dane swojej sieci tj. pulę adresową, domenę, DNS'y, bramę, zakres DHCP. Jeżeli LMS służy ci do zarządzania wieloma sieciami lub dzielisz jedną sieć na podsieci, albo korzystasz z różnych pul adresowych tutaj jest to możliwe.

3.6.1. Lista

Lista sieci oprócz podstawowych danych o sieciach zawiera podsumowanie ilości adresów wolnych i przypisanych. Modyfikowanie właściwości sieci następuje w module dostępnym po wybraniu sieci z listy lub bezpośrednio po kliknięciu ikony [Edytuj].

Podczas edycji danych sieci możesz przeglądać listę komputerów z tej sieci, gdzie w miejscu adresu IP pojawia się nazwa komputera/urządzenia, do którego możesz przejść klikając na odpowiednim polu. Kliknięcie na polu z adresem IP przeniesie Cię do modułu dodawania nowego komputera. Znajdziesz tu także dwa przydatne linki: Porządkuj sieć służący do przeadresowania komputerów, tak aby wyeliminować luki w adresacji oraz Przeadresuj do sieci służący do przenoszenia wszystkich komputerów/urządzeń z tej sieci do innej.

3.6.2. Nowa sieć

Definiując nową sieć musisz określić jej unikalną nazwę i pulę adresową podając adres IP sieci i maskę. Pozostałe dane są opcjonalne. Interfejsy fizyczne, aliasy i vlany są rozpoznawane przez LMS, w sposób podany poniżej:

  • Interfejs fizyczny - przykład: eth0
  • Alias - przykład: eth0:1
  • Interfejs vlan o VID 19 - przykład: eth0.19
  • Pierwszy alias na interfejsie vlan o VID 19 - przykład: eth0.19:1

3.7. Finanse

Jest to właściwie wiele modułów umożliwiających zarządzanie finansami sieci. Masz możliwość definiowania taryf abonamentowych, opłat (zleceń) stałych, księgowania operacji finansowych, przeglądania bilansu i historii rachunku oraz sporządzania faktur i zestawień finansowych.

3.7.1. Lista taryf

Po wejściu do panelu 'Finanse' zobaczysz listę taryf zawierającą podstawowe informacje o nich. Klikając wybraną taryfę na liście zostaniesz przeniesiony do modułu 'Informacje o taryfie', gdzie możesz edytować jej parametry lub zamieniać klientom taryfy. W polu 'ilość klientów' podana jest liczba klientów, którym dana taryfa została przypisana oraz kolejno od lewej (w nawiasie) całkowita liczba przypisań taryfy i liczba aktywnych przypisań taryfy, uwzględniająca okresy obowiązywania.

3.7.2. Nowa taryfa

Definiując nową taryfę musisz podać unikalną nazwę, kwotę i stawkę podatku. Przy czym „zw.” w polu stawka podatku oznacza „zwolnienie z podatku”.

3.7.3. Lista płatności

Lista opłat stałych świadczonych na rzecz innych podmiotów, oprócz elementów standardowych zawiera ikonę [Nalicz], przy pomocy której można obciążyć rachunek sieci. Automatycznym naliczaniem opłat zajmuje się skrypt 'lms-payments' lub odpowiedni moduł demona lmsd. Klikając wybraną opłatę na liście zostaniesz przeniesiony do modułu 'Informacje o opłacie', gdzie możesz edytować jej parametry lub zaksięgować daną opłatę w bazie operacji finansowych.

3.7.4. Nowa płatność

Nowej opłacie stałej przypisujesz unikalną nazwę, wierzyciela oraz kwotę i dzień naliczenia.

3.7.5. Bilans finansowy

Historia operacji finansowych z podsumowaniem przychodu, rozchodu, wpłat i zobowiązań klientów. Ikona drukarki umożliwia wydruk faktury odpowiadającej danej pozycji z listy.

3.7.6. Nowa operacja

Wprowadzanie nowych operacji finansowych. Możliwe jest zaksięgowanie tej samej wpłaty lub obciążenia wielu klientom równocześnie.

Do naliczania stałych opłat abonamentowych najlepiej wykorzystywać skrypt lms-payments lub demona lmsd, które potrafią ponadto wystawiać faktury.

3.7.7. Lista faktur

Lista wystawionych faktur z możliwością wydruku wybranych faktur (ikona [Drukuj]) oraz oznaczenia faktur jako rozliczone. Faktury oznaczone jako rozliczone będą na liście wyszarzone. Faktury można filtrować wg zadanych kryteriów przy użyciu dostępnego na liście filtra.

3.7.8. Nowa faktura

Ręczne wystawianie faktury dla wybranego klienta. W pierwszej kolejności wybieramy klienta z listy, ustawiamy typ płatności i pozostałe dane takie jak termin płatności, data wystawienia, a nawet numer faktury i klikamy 'Zapisz'. Następnie możemy dodawać pozycje do faktury. 'Zapisz i drukuj' kończy edycję nowej faktury, zapisuje ją w systemie i wyświetla wydruk faktury w nowym oknie.

Konfigurację wydruków faktur opisano w rozdziale p.t. Instalacja i Konfiguracja.

3.7.9. Lista not obciążeniowych

Lista wystawionych not obciążeniowych (debetowych) z możliwością wydruku wybranych (ikona [Drukuj]) oraz oznaczenia ich jako rozliczone. Noty oznaczone jako rozliczone będą na liście wyszarzone. Noty można filtrować wg zadanych kryteriów przy użyciu dostępnego na liście filtra.

3.7.10. Nowa nota obciążeniowa

Ręczne wystawianie noty dla wybranego klienta. W pierwszej kolejności wybieramy klienta z listy, ustawiamy datę wystawienia oraz numer i klikamy 'Zapisz'. Następnie w tabelce poniżej możemy dodawać pozycje do noty. 'Zapisz i drukuj' kończy edycję nowej noty obciążeniowej, zapisuje ją w systemie i wyświetla wydruk faktury w nowym oknie.

Konfigurację wydruków not opisano w rozdziale p.t. Instalacja i Konfiguracja.

3.7.11. Rejestr kasowy

Kasę gotówkową można podzielić na rejestry np. kasa1, kasa2, kasa główna, bank itp. Na liście rejestrów znajdują się wszystkie informacje o zdefiniowanych rejestrach wraz z aktualnym stanem kasy w każdym z nich oraz podsumowaniem, które nie obejmuje rejestrów, którym włączono opcję „Wyłączenie z sumowania”.

Każdy rejestr kasowy może posiadać własną numerację dokumentów kasowych oraz uprawnienia dla użytkowników. Uprawnienie „Zapis”, przeznaczone dla zwykłych kasjerów, pozwala na odczyt oraz dodawanie nowych dokumentów dla wybranego celu:

  • klient - KP/KW dla klienta
  • przen.śr. - przeniesienie środków między kasami
  • zaliczka - dowód wypłaty zaliczki (dla użytkownika - pracownika firmy)
  • inny - KP/KW dla osoby nie będącej klientem
  • mod. - możliwość dodania pozycji w inny sposób niż wybranie z listy faktur.

Uprawnienie „Zaawansowany” daje możliwość edycji i usuwania dokumentów oraz zmiany numeru i daty wystawienia.

Na dokumenty kasowe składają się dowody wpłaty „KP” oraz wypłaty „KW”, stanowiące poświadczenia przyjęcia/wydania gotówki do/z kasy (rejestru kasowego). Lista dokumentów kasowych. do której dostajemy się klikając wybrany rejestr na liście rejestrów kasowych, może być dowolnie sortowana oraz filtrowana podobnie jak lista faktur. Masz także możliwość wydrukowania wybranych dowodów.

Z listy można przejść do edycji dokumentu. Dokonując zmian w wystawionych poświadczeniach należy zachować szczególną ostrożność, gdyż zapisanie zmian powoduje usunięcie starego poświadczenia i związanych z nim operacji oraz wstawienie nowych.

3.7.12. Nowy dokument kasowy

Podczas wystawiania dokumentu kasowego w pierwszej kolejności wybieramy rejestr kasowy i typ operacji. Następnie wybieramy z listy klienta lub wyszukujemy go wg zadanych kryteriów, ustawiamy datę i numer (najlepiej pozostawić wartości zaproponowane przez system). Istnieje możliwość wybrania innego typu operacji nie związanych z klientem lub przekazania środków do innego rejestru. Następnie klikamy 'Wybierz' aby zatwierdzić wybór. Po tym możemy dodawać dowolną ilość pozycji zawierających opis i kwotę lub wybrać je z listy nierozliczonych faktur klienta. 'Zapisz i drukuj' kończy edycję, zapisuje poświadczenie oraz wpłaty/wypłaty w systemie, przechodzi do listy dokumentów w wybranym rejestrze i wyświetla wydruk KP/KW w nowym oknie.

Konfigurację wydruków dokumentów kasowych opisano w rozdziale p.t. Instalacja i Konfiguracja.

3.7.13. Import

Import służy do zapisywania operacji finansowych z zewnętrznych systemów np. pobranych z banku bezpośrednio ze stron www lub z e-maila. Do tego celu należy napisać skrypt (parser) wrzucający dane do tabeli cashimport. Przykładem takiego zastosowania jest skrypt lms-cashimport-ingbs. Następnie po wejściu do menu Import zobaczymy listę wrzuconych operacji finansowych, które należy zatwierdzić (ewentualnie zmodyfikować) przed zapisem do systemu finansowego LMSa.

Dzięki temu modułowi możliwe jest także wczytanie płatności/przelewów z przygotowanego wcześniej pliku tekstowego. Plik taki jest czytany linia po linii i korzystając z ustawionych wyrażeń regularnych parsowany w celu wyłuskania danych dotyczących każdej płatności, potrzebnych do zapisania w bazie danych (ID klienta, kwota, itd.). Po wczytaniu pliku zostanie wyświetlona lista płatności do zatwierdzenia i/lub korekty.

Aby skrypt potrafił odczytać dane z plików w dowolnym formacie należy zdefiniować odpowiednio wyrażenia regularne w skrypcie PHP, którego lokalizację podajemy w opcji import_config sekcji phpui. Przykładowe wartości wraz z objaśnieniem dostępnych parametrów znajdują się w pliku modules/cashimportcfg.php. Domyślna konfiguracja zakłada, że dane będą miały następującą postać:

23.02.2004      Machniak Aleksander     123,45  Opłata za Internet 04/2004 ID:0013
15.02.2004      Ból Józef       123,45  Opłata za faktrę LMS/34/2004

Podczas zatwierdzania importowanych pozycji możliwe jest włączenie automatycznego oznaczania faktur jako rozliczonych, zależnie od wielkości wpłaty (i bilansu klienta). Służy do tego opcja 'cashimport_checkinvoices' z sekcji finances. Faktura (oraz jej korekty) oznaczana jest jako rozliczona jeśli wpłata (z uwzględnieniem bilansu klienta) przewyższa kwotę obciążenia wynikającą z danej faktury.

3.7.14. Eksport

Eksport danych finansowych do systemów zewnętrznych polega na generowaniu plików tekstowych zawierających dane pobrane wg zdefiniowanych filtrów. Dla każdego dokumentu tworzony jest rekord w pliku tekstowym. Format rekordu ustala użytkownik korzystając ze zmiennych.

Konfiguracji eksportu dokonujemy w pliku, którego lokalizację podajemy w opcji export_config sekcji phpui. Przykładowe wartości wraz z objaśnieniem dostępnych parametrów znajdują się w pliku modules/exportcfg.php. Najlepiej więc jest zapisać jego kopię i w niej dokonywać stosownych zmian.

Każdej pozycji Rejestru Sprzedaży (każdej fakturze) odpowiada jeden rekord w pliku wyjściowym. W przypadku Raportu Kasowego rekordem jest pozycja dokumentu kasowego.

3.7.15. Raporty

Wydruki zestawień finansowych obejmują:

  • Historia operacji finansowych obejmujący operacje finansowe za dany okres z możliwością użycia rozbudowanego filtra.
  • Historia operacji klienta na dany okres.
  • Rejestr sprzedaży, czyli zestawienie faktur na dany okres.
  • Raport kasowy, czyli zestawienie dokumentów kasowych za dany okres, całościowe lub z wybranego rejestru albo dla wybranego kasjera.
  • Faktury - wydruk wszystkich lub wybranego klienta za dany okres (z wyborem oryginał/kopia) lub wygenerowanie PDFa z danymi potrzebnymi do zadruku standardowych dwuodcinkowych formularzy przelewu/wpłaty z potwierdzeniem.
  • Formularze przelewu - wydruk PDFa z danymi przeznaczonymi do zadruku standardowych czteroodcinkowych formularzy przelewu/wpłaty.
  • Łączny przychód bezrachunkowy sieci w danym okresie.
  • Raport wierzytelności na dany dzień, dla wszystkich lub wybranego klienta.
  • Historia importu płatności z danego okres z możliwością wyboru źródła importu.

3.8. Dokumenty

Dokumenty niefinansowe można znaleźć bezpośrednio w zakładce klienta oraz w menu 'Dokumenty'. LMS umożliwia przechowywanie gotowych dokumentów w dowolnym formacie oraz tworzenie ich wg zdefiniowanych własnych szablonów. Zwłaszcza funkcjonalność szablonów jest ciekawa, gdyż umożliwia tworzenie rozbudowanych wtyczek, których działanie nie musi ograniczać się tylko do wygenerowania wydruku.

3.8.1. Lista

Lista zawiera podstawowe informacje o wszystkich dokumentach takie jak numer, tytuł, typ, datę utworzenia, daty obowiązywania oraz nazwę/nazwisko i imię klienta. Prosty filtr umożliwia przeszukiwanie wg typu dokumentu lub klienta.

3.8.2. Nowy dokument

Dokumenty można tworzyć na podstawie szablonów utworzonych według zasad opisanych w rozdziale Dokumenty pozostałe. Mogą to być także już gotowe pliki, które zostaną zapisane na serwerze. Podczas tworzenia/zapisu dokumentu należy nadać mu tytuł oraz typ oraz wybrać klienta. Można określić daty obowiązywania oraz dodatkowy opis. Dokumenty mogą być numerowane według dowolnie zdefiniowanych w systemie planów numeracyjnych.

3.8.3. Generator dokumentów

Generator umożliwia utworzenie dokumentów wg wybranego szablonu dla wybranej grupy klientów. Opcja 'Drukuj' umożliwia jednocześnie wydruk wygenerowanych dokumentów pod warunkiem, że są to dokumenty HTML.

Z uwagi na wydajność zaleca się korzystanie ze zoptymalizowanych pod kątem generatora szablonów oraz nie drukowania większej ilości dokumentów (może to prowadzić do zawieszenia przeglądarki).

3.8.4. Prawa dostępu

Tutaj możesz zdefiniować prawa dostępu (odczyt, tworzenie, zatwierdzanie, edycja, usuwanie) użytkowników do wybranych typów dokumentów.

3.9. Hosting

Zarządzanie różnymi usługami na serwerze jest teraz możliwe. Funkcjonalność ta jest przeznaczona dla zaawansowanych użytkowników. Wymaga znajomości tych usług i ich konfiguracji w celu korzystania z bazy danych.

W LMSie można utworzyć pięć rodzajów kont: shell (1), poczta (2), www (4), ftp (8) i sql (16). W nawiasach podano numeryczne wewnętrzne oznaczenie typu konta w bazie. Konta mogą być wielotypowe. Przykładowo, jeśli zdefiniujesz konto shell+poczta+ftp w bazie zostanie zapisana cyfra 11. Oznacza to, że do rozpoznawania typu konta w warunkach WHERE zapytań SQL należy stosować sumowanie binarne (jak na przykładach w dalszej części rozdziału).

Masz także możliwość definiowania domen i aliasów.

3.9.1. Konta

Na liście przedstawione są podstawowe informacje o kontach. Możliwe jest dowolne sortowanie listy poprzez kliknięcie nazwy kolumny oraz filtrowanie wg zadanych kryteriów. Przejście do edycji danych konta następuje po wybraniu ikony [Edytuj]. Użytkownik ma także prawo do zmiany hasła.

3.9.2. Nowe konto

Definiując dane konto musisz podać login, hasło, wybrać domenę, wybrać typ konta oraz przypisać klienta (lub utworzyć tzw. konto systemowe). Data ważności konta jest opcjonalna. Pozostawienie pustego pola z datą oznacza, że konto nigdy nie wygasa.

Masz możliwość zdefiniować dowolny katalog domowy użytkownika (konta). Opcja konfiguracyjna homedir_prefix w sekcji [phpui] zawiera prefix katalogu domowego, domyślnie ustawiony na wartość „/home/”.

3.9.3. Aliasy

Konta (głównie mailowe) mogą posiadać dowolną ilość aliasów. Administrator serwera pocztowego może przekierować (lokalnie) pocztę z wszystkich aliasów do jednego konta. Na liście aliasów przedstawione są podstawowe informacje o nich i o kontach na które aliasy te wskazują. Możliwe jest dowolne sortowanie listy poprzez kliknięcie nazwy kolumny oraz filtrowanie wg zadanych kryteriów.

3.9.4. Nowy alias

Tworząc alias definiujesz dla niego login i domenę oraz cel. Celem może być jedno lub więcej istniejących kont. Uwaga: aby utworzyć alias do konta, które znajduje się na obcym serwerze należy utworzyć konto i podać adres przekierowania.

3.9.5. Domeny

Obecnie LMS może bezpośrednio zarządzać serwerem PowerDNS z mysql/pqsl backend. LMS teraz posiada pełne wsparcie dla większości funkcji serwera PowerDNS. Ma pełnie wsparcie dla domen typu: master, slave i native. Na liście domen przedstawione są podstawowe informacje o zdefiniowanych domenach jak nazwa, typ, właściciel. Możliwe jest dowolne sortowanie listy poprzez kliknięcie nazwy kolumny lub poprzez pierwszą literę nazwy domeny. Możliwa jest edycja podstawowych danych domeny po wybraniu ikony [Edytuj]. Zaawansowana edycja rekordów domeny odbywa się poprzez wybranie ikony [Informacje] a następnie [Rekordy]. Możliwa wtedy jest pełna konfiguracja wszystkich rekordów opisujących daną domenę. Każda zmiana rekordu zapisana w bazie danych LMS np.: edycja, dodanie lub usunięcie rekordu automatycznie zwiększa licznik domeny o 1. Każda zmiana jest także automatycznie dostrzegana przez serwer PowerDNS. Aby taka wspópraca była możliwa należy w bazie danych LMS założyć dodatkowego użytkownika z uprawieniami SELECT, INSERT, UPDATE, DELETE dla tabel domains, records oraz SELECT dla tabeli supermaster.

3.9.6. Nowa domena

Dane domeny zawierają nazwę, opis, typ (master, slave, native), adres ip serwera www, adres ip serwera pocztowego, adres ip głównego serwera nazw (jeśli wybrano typ slave) i inne parametry, których wartości domyślne ustawione są w sekcji [zones]. Domena może zostać przypisana do klienta.

3.9.7. Szukaj

Wyszukiwanie kont, aliasów i domen według zadanych kryteriów.

3.9.8. Przykłady

Poniżej opisano sposób intergracji LMS z serwerem PowerDNS.

Przykład 3-1. Domeny. Konfiguracja PowerDNS.

Przygotowanie bazy danych na której działa LMS do współpracy z serwerem PowerDNS.

Dodajemy użytkownika powerdns o uprawnieniach ograniczonych do tabel domains i records.

GRANT SELECT, INSERT, UPDATE, DELETE ON lms.domains TO 'powerdns'@'adres-serwera-dns' IDENTIFIED BY 'hasło';
GRANT SELECT, INSERT, UPDATE, DELETE ON lms.records TO 'powerdns'@'adres-serwera-dns' IDENTIFIED BY 'hasło';

Instalujemy pakiety: pdns, pdns-backend, pdns-recursor.

W dystrybucjach Centos, Fedora, RedHat:

yum install pdns pdns-backend pdns-recursor

Edytujemy plik /etc/pdns/pdns.conf dodając:

launch=gmysql
gmysql-dbname=lms #wpisz właściwą nazwę bazy danych na której pracuje lms
gmysql-host=adres-serwera-sql #podaj adres ip lub nazwę serwera na którym pracuje bazy danych
gmysql-password=hasło
gmysql-user=powerdns
master=yes 
slave=yes
recursor=127.0.0.1:5300
allow-recursion=127.0.0.0/8, 192.168.0.1/24 

Gdzie 192.168.0.1 to przykładowa sieć. Po przecinku należy dodać własne sieci z których
serwer ma obsługiwać zapytania rekurencyjne.

Edytujemy plik /etc/pdns-recursor/recursor.conf dodając:

allow-from=127.0.0.0/8 
local-address=127.0.0.1
local-port=5300

Następnie:

chkconfig --levels 235 pdns-recursor on
chkconfig --levels 235 pdns on

service pdns-recursor start
service pdns start

Na Debianie:

apt-get install pdns-server pdns-backend-mysql pdns-recursor

Edytujemy plik  /etc/powerdns/pdns.conf dodając:

launch=gmysql

Edytujemy /etc/powerdns/pdns.d/pdns.local dodając: 

gmysql-dbname=lms #wpisz właściwą nazwę bazy danych na której pracuje lms
gmysql-host=adres-serwera-sql #podaj adres ip lub nazwę serwera na którym pracuje bazy danych
gmysql-password=hasło
gmysql-user=powerdns
master=yes 
slave=yes

Edytujemy plik /etc/powerdns/recursor.conf      dodając:

allow-from=127.0.0.0/8 
local-address=127.0.0.1
local-port=5300

Następnie 

/etc/init.d/pdns start
/etc/init.d/pdns-recursor start

Poniższy listing zawiera istotne fragmenty pliku konfiguracyjnego demona proftpd (w wersji 1.2.10) umożliwiający przechowywanie danych o kontach ftp w bazie LMSa. Przykład zawiera konfigurację dla bazy danych PostgreSQL, w komentarzach podano rozwiązania dla MySQLa:

Przykład 3-2. Hosting. Konfiguracja proftpd.

  ServerName    "LMS FTP Server"
  
  #nazwa_bazy@host:port klient hasło
  SQLConnectInfo lms@localhost:5432 lms mypassword
  
  SQLAuthTypes Crypt Plaintext
  SQLUserInfo passwd login password uid NULL home NULL
  RequireValidShell off
  SQLAuthenticate users
  
  # utworzenie katalogu domowego gdy nie istnieje
  SQLHomedirOnDemand on
  
  # komunikat przy logowaniu
  SQLShowInfo PASS "230" "Last login: %{getlastlogin}"
  SQLLog PASS setlastlogin
  
  # SQLNamedQuery getlastlogin SELECT "CASE lastlogin WHEN 0 THEN '' ELSE FROM_UNIXTIME(lastlogin) END FROM passwd WHERE login='%u'"
  # SQLNamedQuery setlastlogin UPDATE "lastlogin=UNIX_TIMESTAMP() WHERE login='%u'" passwd 
  SQLNamedQuery getlastlogin SELECT "CASE lastlogin WHEN 0 THEN '' ELSE lastlogin::abstime::timestamp::text END FROM passwd WHERE login='%u'"
  SQLNamedQuery setlastlogin UPDATE "lastlogin=EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)) WHERE login='%u'" passwd
  
  # Sprawdzamy datę ważności konta oraz ograniczamy szukanie do kont ftp
  # SQLUserWhereClause "type & 8 = 8 AND (expdate = 0 OR expdate > UNIX_TIMESTAMP())"
  SQLUserWhereClause "type & 8 = 8 AND (expdate = 0 OR expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)))"

W kolejnym przykładzie przedstawimy jak skonfigurować serwer Postfix 2.1.1 oraz Cyrus-SASL 2.1.19, Courier-IMAP/POP3 3.0.4, aby korzystały z bazy danych LMSa. LMS'owe konta będą kontami wirtualnymi, a poczta przechowywana będzie w formacie Maildir.

Ponieważ hasła w LMS'ie są szyfrowane, wymagane jest zainstalowanie SASL'a z łatą pozwalającą na to. W komentarzach podano wartości opcji charakterystycznych dla bazy MySQL. Listing zawiera tylko opcje bezpośrednio związane z bazą danych:

Przykład 3-3. Konta. Konfiguracja serwera pocztowego (postfix+sasl+courier).

smtpd.conf
# Plik smtpd.conf (Cyrus-SASL):

pwcheck_method: auxprop
password_format: crypt
mech_list: login plain
sql_user: lms
sql_passwd: hasło
sql_hostnames: localhost
sql_database: lms
# MySQL
#sql_engine: mysql
#sql_select: SELECT p.password FROM passwd p, domains d WHERE p.domainid = d.id
#       AND p.login='%u' AND d.name ='%r' AND p.type & 2 = 2 
#       AND (p.expdate = 0 OR p.expdate > UNIX_TIMESTAMP())
# PostgreSQL
sql_engine: pgsql
sql_select: SELECT p.password FROM passwd p, domains d WHERE p.domainid = d.id
        AND p.login='%u' AND d.name ='%r' AND p.type & 2 = 2 
        AND (p.expdate = 0 OR p.expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)))

# authpgsqlrc (lub authmysqlrc) (Courier):

# użytkownik postfix (właściciel katalogu z pocztą)
#MYSQL_UID_FIELD '1004'
PGSQL_UID_FIELD '1004'
# grupa postfix (właściciel katalogu z pocztą)
#MYSQL_GID_FIELD '1004'
PGSQL_GID_FIELD '1004'
#MYSQL_PORT             3306
PGSQL_PORT              5432
#MYSQL_USERNAME         lms
PGSQL_USERNAME          lms
#MYSQL_PASSWORD         hasło
PGSQL_PASSWORD          hasło
#MYSQL_DATABASE         lms
PGSQL_DATABASE          lms
#MYSQL_SELECT_CLAUSE SELECT p.login, \
#       p.password, '', 104, 104, '/var/spool/mail/virtual', \
#       CONCAT(d.name,'/', p.login, '/'), '', p.login, '' \
#       FROM passwd p, domains d WHERE p.domainid = d.id \
#       AND p.login = '$(local_part)' AND d.name = '$(domain)' \
#       AND p.type & 2 = 2 AND (p.expdate = 0 OR p.expdate > UNIX_TIMESTAMP())
PGSQL_SELECT_CLAUSE SELECT p.login, \
        p.password, '', 104, 104, '/var/spool/mail/virtual', \
        d.name || '/' || p.login ||'/', '', p.login, '' \
        FROM passwd p, domains d WHERE p.domainid = d.id 
        AND p.login = '$(local_part)' AND d.name = '$(domain)' \
        AND p.type & 2 = 2 \
        AND (p.expdate = 0 OR p.expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)))

# main.cf (Postfix):

virtual_mailbox_base = /var/spool/mail/virtual
virtual_mailbox_domains = pgsql:/etc/postfix/virtual_domains_maps.cf
virtual_mailbox_maps = pgsql:/etc/postfix/virtual_mailbox_maps.cf
virtual_alias_maps = pgsql:/etc/postfix/virtual_alias_maps.cf
recipient_bcc_maps = pgsql:/etc/postfix/recipient_bcc_maps.cf

# virtual_domains_maps.cf (Postfix):

user = lms
password = hasło
hosts = localhost
dbname = lms
#pgSQL i MySQL
query = SELECT name FROM domains WHERE name = '%s'

# virtual_mailbox_maps.cf (Postfix):

user = lms
password = hasło
hosts = localhost
dbname = lms

# MySQL
#query = SELECT CONCAT(d.name,'/', p.login, '/') 
#       FROM passwd p, domains d WHERE p.domainid = d.id
#       AND p.login = '%u' AND d.name = '%d' 
#       AND p.type & 2 = 2 AND (p.expdate = 0 OR p.expdate > UNIX_TIMESTAMP())
# PostgresSQL
query = SELECT d.name || '/' || p.login || '/' 
        FROM passwd p, domains d WHERE p.domainid = d.id
        AND p.login = '%u' AND d.name = '%d' 
        AND p.type & 2 = 2 
        AND (p.expdate = 0 OR p.expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)))

# virtual_alias_maps.cf (Postfix):

user = lms
password = hasło
hosts = localhost
dbname = lms
# MySQL
#query = SELECT p.mail_forward
#       FROM passwd p
#       JOIN domains d ON (p.domainid = d.id)
#       WHERE p.login = '%u' AND d.name = '%d'
#               AND p.type & 2 = 2 AND p.mail_forward != ''
#               AND (p.expdate = 0 OR p.expdate > UNIX_TIMESTAMP())
#       UNION
#       SELECT CASE WHEN aa.mail_forward != '' THEN aa.mail_forward ELSE CONCAT(p.login, '@', pd.name) END
#       FROM aliases a
#       JOIN domains ad ON (a.domainid = ad.id)
#       JOIN aliasassignments aa ON (aa.aliasid = a.id)
#       LEFT JOIN passwd p ON (aa.accountid = p.id AND (p.expdate = 0 OR p.expdate > UNIX_TIMESTAMP()))
#       LEFT JOIN domains pd ON (p.domainid = pd.id)
#       WHERE a.login = '%u' AND ad.name = '%d'
#               AND (aa.mail_forward != '' OR p.id IS NOT NULL)
# PostgreSQL    
query = SELECT p.mail_forward
        FROM passwd p
        JOIN domains d ON (p.domainid = d.id)
        WHERE p.login = '%u' AND d.name = '%d'
                AND p.type & 2 = 2 AND p.mail_forward != ''
                AND (p.expdate = 0 OR p.expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)))
        UNION
        SELECT CASE WHEN aa.mail_forward != '' THEN aa.mail_forward ELSE p.login || '@' || pd.name END
        FROM aliases a
        JOIN domains ad ON (a.domainid = ad.id)
        JOIN aliasassignments aa ON (aa.aliasid = a.id)
        LEFT JOIN passwd p ON (aa.accountid = p.id
                AND (p.expdate = 0 OR p.expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))))
        LEFT JOIN domains pd ON (p.domainid = pd.id)
        WHERE a.login = '%u' AND ad.name = '%d'
                AND (aa.mail_forward != '' OR p.id IS NOT NULL)

# recipient_bcc_maps.cf (Postfix):

user = lms
password = hasło
hosts = localhost
dbname = lms
# MySQL
#query = SELECT p.mail_bcc FROM passwd p, domains d 
#       WHERE p.domainid = d.id
#           AND p.login = '%u' AND d.name = '%d'
#               AND p.type & 2 = 2
#               AND p.mail_bcc != ''
#               AND (p.expdate = 0 OR p.expdate > UNIX_TIMESTAMP())
# PostgreSQL
query = SELECT p.mail_bcc FROM passwd p, domains d 
        WHERE p.domainid = d.id
                AND p.login = '%u' AND d.name = '%d'
                AND p.type & 2 = 2
                AND p.mail_bcc != ''
                AND (p.expdate = 0 OR p.expdate > EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0)))

Następny przykład podesłany przez bart'a przedstawia instalację i konfigurację serwera pure-ftpd w dystrybucji Gentoo z wykorzystaniem bazy danych MySQL.

Przykład 3-4. Konta. Konfiguracja pure-ftpd. No to zaczynamy od instalacji serwera pure-ftpd. Pod Gentoo wygląda to tak:

bart # emerge pure-ftpd -av
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild   R   ] net-ftp/pure-ftpd-1.0.20-r1  -caps -ldap +mysql +pam -postgres +ssl +vchroot 459 kB
Total size of downloads: 459 kB

Co do innych systemów to każdy chyba wie jak się instaluje pakiety w swoim systemie, a jeżeli nie to pozostaje kompilacja ze źródeł. Po zainstalowaniu przechodzimy do stworzenia pliku, który będzie odpowiadał za łączenie się z bazą LMS'a. Tworzymy plik /etc/pureftpd-mysql.conf, który to powinien zawierać minimum:

MYSQLServer     localhost (adres serwera bazy danych - domyślnie 'localhost')
MYSQLPort       3306 (port na którym działa serwer MySql - domyślnie '3306')
MYSQLSocket     /var/run/mysqld/mysqld.sock (
MYSQLUser       lms (nazwa usera z dostępem do bazy)
MYSQLPassword   hasło (tutaj należy podać hasło)
MYSQLDatabase   lms (nazwa bazy danych)
MYSQLCrypt      crypt (sposób przechowywania haseł)
MYSQLGetPW      SELECT password FROM passwd WHERE login="\L" (pobieranie hasła dla usera)
MYSQLGetUID     SELECT uid FROM passwd WHERE login="\L" (pobieranie uid dla usera)
MYSQLGetGID     SELECT gid FROM passwd WHERE login="\L" (pobieranie gid dla usera)
MYSQLGetDir     SELECT home FROM passwd WHERE login="\L" (pobieranie nazwy katalogu domowego dla usera)
MySQLGetQTASZ   SELECT quota_ftp FROM passwd WHERE login="\L" (quota czyli pojemność konta w MB - podając w lms-ui 10 oznacza to pojemność 10MB)

Teraz pozostaje nam już tylko konfiguracja serwera pure-ftpd. (w gentoo plik konfiguracyjny mieści się w /etc/conf.d/pure-ftpd) a więc:

## Najpierw odkomentujmy tę linię, ponieważ inaczej serwer nie będzie chciał wystartować
IS_CONFIGURED="yes"
## Tutaj podajemy adres naszego serwera i port na którym ma nasłuchiwać
SERVER="-S www.nasza.domena.pl,21"
## Określamy ilość jednoczesnych połączeń do serwera oraz ilość połączeń z tego samego IP
## To już chyba każdy według potrzeb
MAX_CONN="-c 50"
MAX_CONN_IP="-C 2"
## Startujemy daemona w tle
DAEMON="-B"
## Ustalamy procentową zajętość dysku/partycji kiedy serwer powinien przestać zezwalać na przyjmowanie danych
DISK_FULL="-k 90%"
## Jeżeli serwer jest za NATem odkomentuj tę linię
#USE_NAT="-N"
## Autoryzacja ma być pobierana z bazy LMS'a - podajemy ścieżkę do stworzonego przez nas wcześniej pliku
AUTH="-l mysql:/etc/pureftpd-mysql.conf"
## Pozostałe opcje w moim wypadku są takie
MISC_OTHER="-A -x -j"

3.10. Wiadomości

Wiadomości to miejsce z którego możesz rozsyłać do klientów spam w postaci wiadomości e-mail lub sms.

3.10.1. Lista

Lista wiadomości zawiera historię wysłanych wiadomości. Możesz ją dowolnie przeszukiwać korzystając z filtra. Kliknięcie wiersza wiadomości powoduje przejście do strony ze szczegółowymi informacjami o wiadomości tj. treści, nadawcy. Strona ta zawiera również listę odbiorców wiadomości wraz ze statusem wysyłki.

3.10.2. Nowa wiadomość

Aby wysłać wiadomość należy wybrać grupę docelową przy pomocy dostępnych filtrów określających status klienta, sieć, grupę, typ łącza, itp. Należy również wybrać typ wiadomości, podać jej temat (wymagany również dla smsów) i treść.

W treści wiadomości można używać zmiennych, w miejsce których zostaną podstawione dane właściwe dla każdego z odbiorców:

  • %customer - nazwisko/nazwa i imię klienta
  • %balance - kwota bilansu (ze znakiem)
  • %cid - ID klienta
  • %pin - PIN klienta
  • %last_10_in_a_table - lista ostatnich 10 operacji na koncie klienta
  • %bankaccount - numer konta bankowego

3.10.3. Konfiguracja

Serwer musi być odpowiednio skonfigurowany do użycia PEAR::Mail dla mailingu. Jeżeli korzystasz z serwera pocztowego na zdalnym hoście będziesz musiał ustawić opcje smtp_host, smtp_port, smtp_username, smtp_password.

Poniżej znajduje się lista opcji konfiguracyjnych związanych z wysyłaniem wiadomości pocztowych. Opcje te umieszczone są w sekcji mail.

Konfiguracja wiadomości SMS jest bardziej rozbudowana. Przede wszystkim należy zdefiniować z jakiej usługi będziemy korzystać. Czy będzie to bramka smsowa, czy jakieś oprogramowanie zainstalowane na serwerze (np. gnokii, smstools). Konfiguracji dokonujemy w sekcji sms.

3.11. Przeładowanie

Menu 'Przeładowanie' służy do zarządzania usługami na serwerach/routerach poprzez „włączanie” żądania przeładowania dla LMS-MGC lub demona lmsd.

Jeżeli korzystasz z LMS-MGC kliknięcie na menu 'Przeładowanie' spowoduje uruchomienie generatora plików konfiguracyjnych LMS-MGC, który wygeneruje zdefiniowaną konfigurację i przeładuje usługi (zależnie od zdefiniowanej opcji reload_execcmd).

Zachowanie menu 'Przeładowanie' jest zależne od ustawienia opcji reload_type. Jeśli zdefiniowałeś zapytanie SQL w opcji reload_sqlquery zostanie ono wykonane. Jeżeli zdefiniowałeś hosty możesz wybrać z listy, na których z nich chcesz dokonać przeładowania. W takim wypadku zapytania sql lub komendy zostaną wykonane dla każdego hosta, przy czym definiując je możesz skorzystać ze zmiennej '%host', pod którą zostanie podstawiona właściwa nazwa hosta.

Więcej informacji znajdziesz w rozdziałach dotyczących LMS-MGC oraz demona.

3.12. Statystyki

Interfejs do przeglądania statystyk wykorzystania łącza w postaci prostych wykresów jest dostępny w menu 'Statystyki'. Dane statystyk zawierają ilość danych wysyłanych i pobieranych z Internetu (na danym interfejsie) dla każdego komputera. Korzystając z górnego menu możesz szybko wygenerować statystyki z ostatniej godziny, ostatniego dnia, ostatnich 30 dni lub ostatniego roku.

Zapisem danych do bazy zajmuje się skrypt lms-traffic, albo demon lmsd.

3.12.1. Filtr

Przed wygenerowaniem wykresu możesz zdefiniować parametry określające okres jaki ma być brany pod uwagę, ograniczyć do jednej sieci (jeśli masz ich więcej), ilości komputerów oraz posortować odpowiednio wyniki (na przykład według downloadu).

3.12.2. Kompaktowanie

W zależności od wybranej przez klienta częstotliwości zapisu, może nastąpić szybki przyrost danych w bazie, co spowoduje zwiększenie czasu oczekiwania na rysowanie wykresów. Z tego powodu w menu 'Kompaktowanie' udostępniono możliwość zmniejszenia rozmiarów bazy statystyk bez utraty danych. Wybierając poziom dokładności danych, dane zostaną uśrednione w następujący sposób:

  • Poziom Niski (low): dane z poprzedniego dnia i starsze, zostaną uśrednione do jednego dnia, czyli jeśli do bazy zapisywane były z częstotliwością 10 minut, to 6*24 wpisów zostanie zastąpione jednym.
  • Poziom Średni (medium): dane starsze niż miesiąc zostaną uśrednione do jednego dnia.
  • Poziom Wysoki (high): dane starsze niż miesiąc zostaną uśrednione do jednej godziny.

Kompaktowanie bazy danych jest procesem nieodwracalnym.

Możliwe jest kompaktowanie bazy danych z wykorzystaniem cron'a. Stronę kompaktowania można wywołać (uruchomić) bezpośrednio w przeglądarce, np. w następujący sposób:

links -dump \
"http://lms/?m=trafficdbcompact&level=low&removeold=1&removedeleted=1&loginform[login]=login&loginform[pwd]=pass&override=1     

3.12.3. Raporty

Obecnie masz możliwość wydruku statystyk klienta z wybranego miesiąca. Na wydruku będą statystyki podane w formie tabelarycznej z podziałem na dni wraz z podsumowaniem pobranych/wysłanych danych i średnimi prędkościami.

3.13. Helpdesk

Helpdesk (inaczej Request Tracker) to system obsługi zgłoszeń. W systemie można prowadzić bazę wszystkich zgłoszeń i zapytań klientów sieci, ale także osób które nie są wpisane do bazy LMS'a. Zgłoszenia można pogrupować w kategorie (kolejki) i wyszukiwać wg zadanych kryteriów. Do każdej kolejki można zdefiniować uprawnienia dla użytkowników.

W menu po lewej stronie znajduje się pole szybkiego wyszukiwania zgłoszenia, w którym można podawać jego ID lub nazwisko zgłaszającego je klienta. W drugim przypadku zostanie wyświetlona lista wszystkich zgłoszeń danego klienta.

Każde zgłoszenie posiada historię, na którą składają się wiadomości od użytkowników i klientów. Administrator może wysłać swoją wiadomość do klienta, klikając 'Wyślij' podczas dodawania wiadomości. (Należy podać e-mail odbiorcy. Adresem nadawcy będzie adres kolejki, a jeśli jest pusty, adres użytkownika). Wszystkie wiadomości także te wysłane, zostają zapisane w historii zgłoszenia. Zgłoszenie może mieć cztery stany: nowy, otwarty, rozwiązany i martwy.

Skrypt lms-rtparser został stworzony aby umożliwić obsługę systemu i przesyłanie zgłoszeń pocztą elektroniczną.

3.13.1. Lista kolejek

Na liście kolejek znajdują się podstawowe informacje i statystyki zgłoszeń. Kliknięcie na wybranej kolejce powoduje wyświetlenie listy zgłoszeń. Stąd można także przejść do informacji szczegółowych (w tym także uprawnieniach) o kolejce lub usunąć wybraną kolejkę. Usunięcie kolejki spowoduje także usunięcie zgłoszeń z bazy danych przypisanych do niej.

3.13.2. Nowa kolejka

Kolejka (kategoria) posiada nazwę, opcjonalny opis oraz opcjonalny adres poczty elektronicznej, który używany jest do korespondencji. W tabeli 'Uprawnienia' definiuje się prawa do danej kolejki, które mają moc większą od ogólnych uprawnień użytkowników tzn. jeśli user nie ma praw do danej kolejki, to nawet jeśli ma 'pełny dostęp' zgłoszeń w tej kolejce nie zobaczy. Prawo zapisu pozwala na edycję i dodawanie zgłoszeń i wiadomości. Prawo 'Usuwanie' pozwala na usuwanie wiadomości i zgłoszeń. Prawo 'Powiadomienia' służy do otrzymywania informacji o nowych zgłoszeniach. Jeżeli włączono opcję 'newticket_notify' wszyscy użytkownicy z tym uprawnieniem będą otrzymywać emailowe powiadomienia o nowych zgłoszeniach do przedmiotowej kolejki. Wszystkie prawa „wyższe” od prawa 'Odczyt' zawierają uprawnienie do odczytu wiadomości.

3.13.3. Wyszukiwanie

Wyszukiwanie zgłoszeń polega na wybraniu z bazy zgłoszeń spełniających wszystkie podane kryteria (warunek AND, nie OR). Możesz podać temat, właściciela, kolejkę, status i zgłaszającego. Klientów sieci wybieraj z listy, dla pozostałych należy podać Nazwisko/Imię i/lub e-mail.

3.13.4. Nowe zgłoszenie

Dodając nowe zgłoszenie należy określić dla niego temat, treść, wybrać kolejkę oraz zgłaszającego klienta. Osoby spoza sieci wpisujemy w polach Nazwisko i Imię. Opcjonalnie, jeśli wiadomość została zgłoszona pocztą elektroniczną podajemy adres e-mail (także dla klienta zapisanego w bazie).

3.13.5. Raporty

Tutaj mamy możliwość wydruku list zgłoszeń lub statystyk helpdesku:

  • Lista zgłoszeń z filtrami kolejki, statusu i klienta oraz możliwością określenia granicy dni,
  • Statystyki zgłoszeń z możliwością wyboru kolejki oraz wartości granicznych.

3.14. Terminarz

Terminarz, to tzw. organizer czasu, czyli miejsce gdzie każdy użytkownik może prowadzić własny kalendarz. Wprowadzone zadania (zdarzenia) mogą być również dostępne dla wszystkich i mieć przypisanych dowolnych klientów, co pozwala np. na zarządzanie ekipami serwisowymi. Dodatkiem do Terminarza jest skrypt lms-reminder, służący do przypominania użytkownikom o zaplanowanych na dany dzień zadaniach.

3.14.1. Terminarz (Lista zadań)

Terminarz przedstawia listę dni od dnia wybranego z podręcznego kalendarzyka. Ilość dni na liście określa opcja timetable_days_forward domyślnie ustawiona na 7 dni. Z poziomu listy można wydrukować plan dnia lub przejść do edycji zdarzenia.

3.14.2. Nowe zdarzenie

Dodając do Terminarza nowe zadania musisz określić krótki tytuł oraz dzień i godzinę (zakres godzin). Pozostałe pola są opcjonalne. Zaznaczenie opcji 'prywatne' spowoduje ukrycie zadania przed wszystkimi użytkownikami oprócz tego, który je dodał do Terminarza. Właściwość ta pozwala na prowadzenie przez każdego użytkownika własnego, prywatnego kalendarza.

3.14.3. Szukaj

Wyszukując w Terminarzu zadania możemy określić zakres dat, poszukiwanego klienta, klienta lub fragment tekstu, znajdującego się w tytule, opisie lub notatce do zadania. Na liście zadań zostaną wyświetlone zadania spełniające wszystkie podane kryteria.

3.15. Konfiguracja

3.15.1. Interfejs Użytkownika

3.15.1.1. Podstawy

Począwszy od wersji 1.5.3 możliwa jest konfiguracja interfejsu użytkownika także poprzez LMS-UI. Opcje przechowywane są w bazie danych i należy je przenieść z pliku lms.ini. W celu automatycznego przeniesienia konfiguracji do bazy danych kliknij na linku znajdującym się na pustej liście opcji konfiguracyjnych.

Opcje konfigurowane w LMS-UI mają większy priorytet od tych zapisanych w lms.ini, co oznacza, że plik konfiguracyjny jest także odczytywany, ale wartości zmiennych z tego pliku nadpisywane są wartościami zapisanymi w bazie danych.

Demon odczytuje niektóre opcje konfiguracyjne UI tylko z bazy danych, dlatego zaleca się przechowywanie konfiguracji w bazie zamiast w pliku ini.

Aby dodać nową opcję kliknij link 'Dodaj opcję'. Aby wyedytować parametry opcji kliknij na jej rekord. Zostaniesz przeniesiony do formularza edycyjnego. Zmiana statusu opcji oznacza włączenie/wyłączenie jej działania, co polega na przypisaniu jej wartości domyślnej (jeżeli taką posiada).

3.15.1.2. Lista opcji konfiguracyjnych

Pełną listę opcji konfiguracyjnych można znaleźć w dziale dla dociekliwych.

3.15.2. Stawki podatkowe

Przed rozpoczęciem pracy z systemem finansowym należy zdefiniować stawki podatkowe jakich będziemy używać. Na liście znajdują się wszystkie dane stawek. Możliwa jest edycja stawki podatkowej, przy czym należy pamiętać, że system nie pozwoli na zmianę wartości stawki, jeżeli została ona użyta w przeszłości. Nie możliwe jest także usunięcie takiej stawki.

Link 'Dodaj stawkę' przenosi do formularza definiowania nowej stawki procentowej. Etykieta stawki jest wyświetlana na listach wyboru oraz w szablonie faktury. Wartość stawki to liczba od 0 do 100 z dokładnością do dwóch miejsc po przecinku. Status opodatkowania jest wykorzystywany do wyróżnienia stawki zwolnionej z podatku, czyli wszystkie pozostałe stawki powinny mieć włączone 'opodatkowanie'.

Stawkę, która będzie domyślnie zaznaczona na listach wyboru można zdefiniować przy pomocy opcji default_taxrate w sekcji [phpui]

3.15.3. Plany numeracyjne

Wszystkim dokumentom generowanym przez system LMS można nadawać dowolną numerację wg zdefiniowanych wzorów (planów). Możliwe jest używanie różnych numeracji w obrębie jednego typu dokumentów. Dla każdego typu można zdefiniować jeden plan domyślny (ważne w przypadku faktur wystawianych automatycznie, skrypty/demon muszą wiedzieć na jakiej numeracji mają być oparte nowo tworzone dokumenty).

Do każdego planu należy przypisać także okres numeracyjny, czyli przedział czasowy w jakim zachowywana jest ciągłość numeracji. Przy przejściu do nowego okresu numeracja zostanie wyzerowana. Można zdefiniować numerację jednodniową, tygodniową (od poniedziałku do niedzieli), miesięczną, kwartalną oraz roczną.

Na liście planów numeracyjnych znajdują się wszystkie niezbędne informacje o planach wraz z przykładowym numerem oraz liczbą dokumentów utworzonych przy ich użyciu. Poprzez link 'Dodaj plan' przechodzi się do interfejsu dodawania planu. Edycji można dokonać klikając na wybrany rekord na liście. Usunięcie planu numeracyjnego jest możliwe tylko wtedy gdy nie dotyczy on żadnego istniejącego dokumentu.

Szablon numeru to dowolny ciąg znaków, który zawiera specjalne symbole (specyfikatory) znane z funkcji strftime. Szczegóły użycia oraz wykaz wszystkich symboli można znaleźć w manualu PHP. Podstawowym i jedynym wymaganym symbolem w szablonie jest symbol '%N', za który zostanie podstawiony numer wewnętrzny dokumentu. Pozostałe symbole wynikają z daty wystawienia dokumentu. A oto najczęściej używane z nich:

  • %N - liczba dziesiętna określająca numer dokumentu
  • %[1-9]N - j.w. ale z zerami wiodącymi, np. '%4N' dla liczby 12 zwróci '0012'
  • %I - dodatkowy numer (działa tylko z dokumentami kasowymi)
  • %Y - rok jako liczba dziesiętna z wiekiem włącznie
  • %y - rok jako liczba dziesiętna bez uwzględnienia wieku (00 do 99)
  • %m - miesiąc jako liczba dziesiętna (01 do 12)
  • %b - skrótowa nazwa miesiąca zgodnie z lokalizacją

Jeżeli w systemie nie zdefiniowano planów numeracyjnych dokumenty będą numerowane wg wzorca '%N/LMS/%Y' z okresem rocznym.

3.15.4. Firmy (Oddziały)

Firmy (Oddziały) służą do grupowania klientów. Powinieneś zdefiniować przynajmniej jedną firmę. Masz możliwość podania nazwy skróconej i pełnej firmy, jej adresu, konta bankowego (lub prefiksu konta płatności masowych) oraz danych do fakturowania. Zablokowanie firmy uniemożliwia jej przypisanie do klienta.

3.15.5. Hosty

Tutaj definiuje się hosty które będą współpracowały z LMSem, czyli komputery (routery, serwery) pobierające konfigurację z bazy LMSa, na których będą uruchamiane skrypty lub demon lmsd.

Nazwa każdego hosta musi być unikalna i zaleca się aby odpowiadała rzeczywistej nazwie maszyny, którą można uzyskać uruchamiając polecenie hostname na każdej z tych maszyn (zakładając, że są to komputery z u*ixem).

3.15.6. Demon

Po zdefiniowaniu hostów można rozpocząć konfigurację demona lmsd. Konfiguracja jest bardziej szczegółowo opisana w rozdziale dotyczącym demona.

3.15.7. Źródła importu

Import płatności może odbywać się z wielu źródeł (banków). W tym miejscu definiuje się ich nazwy, co umożliwia późniejsze przeszukiwanie wpłat wg źródła. Źródło można ustawić również dla wpłat klientów poza importem. Dokonując importu płatności masz możliwość wyboru źródła. Możliwe jest automatyczne określenie źródła, w tym celu należy przypisać identyfikator źródła do wzorca w konfiguracji importu.

3.15.8. Promocje

W tym miejscu mamy możliwość definiowania schematów promocji. Schemat określa kwotę oraz sposób płatności abonamentu przez cały okres trwania promocji. Definiujemy tutaj jeden lub wiele okresów o dowolnej długości i mamy możliwość określenia kwoty abonamentu oraz sposobu naliczania. Po okresie promocyjnym abonament będzie naliczany w normalnej (określonej w taryfie) kwocie. Ponadto możemy określić kwotę opłaty aktywacyjnej oraz dodatkowej taryfy doliczanej do abonamentu po okresie promocyjnym.

Zdefiniowane schematy/promocje będą widoczne na liście wyboru w formularzu nowego zobowiązania. Wybranie schematu i taryfy spowoduje utworzenie odpowiedniej liczby zobowiązań wynikającej ze zdefiniowanych w schemacie okresów.

interfejs_uzytkownika_lms-ui.txt · ostatnio zmienione: 2012/12/04 00:00 (edycja zewnętrzna)