LMS umożliwia generowanie oraz przechowywanie przeróżnych dokumentów tj. faktur, dowodów wpłat oraz dokumentów nie-finansowych np. umów, protokołów. Dokumenty mogą być numerowane wg wzorców (planów) numeracyjnych zdefiniowanych przy pomocy menu Konfiguracja - Plany numeracyjne.
Poniżej przedstawiono sposób w jaki wyliczany jest podatek w LMS. Wartości wszystkich działań są zaokrąglane do dwóch miejsc po przecinku.
W bazie LMS cena jednostkowa pozycji fakturowej jest przechowywana jako wartość brutto (z podatkiem).
wartość podatku = (stawka podatku / 100) + 1
Przykład: stawka podatku VAT to 22%
wartość podatku = (22 / 100) + 1 = 1,22
cena jednostkowa netto = cena jednostkowa brutto / wartość podatku
Przykład: cena brutto metra kabla wynosi 2,56 zł, a stawka podatku VAT to 22%
cena jednostkowa netto = 2,56 zł / 1,22 = 2,10 zł
sumaryczna cena brutto = cena jednostkowa brutto * ilość sztuk
Przykład: cena brutto metra kabla wynosi 2,56 zł, ilość metrów 1366, a stawka podatku VAT to 22%
cena sumaryczna brutto = 2,56 zł * 1366 m = 3496,96 zł
cena sumaryczna netto = cena sumaryczna brutto / wartość podatku
Przykład: cena brutto metra kabla wynosi 2,56 zł, ilość metrów 1366, a stawka podatku VAT to 22%
cena sumaryczna netto = (2,56 zł * 1366 m = 3496,96 zł) / 1,22 = 2866,36 zł
LMS umożliwia wystawianie faktur automatycznie i ręcznie. Ręczne wystawienie faktury jest możliwe z menu 'Nowa faktura' w panelu 'Finanse'. Automatyczne wystawianie faktur wymaga włączenia tej opcji podczas przypisywania taryf użytkownikom. W takim wypadku zapisem faktur do bazy zajmuje się skrypt lms-payments lub demon lmsd
Do poprawnego działania i tworzenia wydruków wymagane jest ustawienie podstawowych parametrów faktury takich jak nagłówek, stopka, domyślny wystawca, miejsce wystawienia oraz konto bankowe w definicji firmy. Ponadto mamy do dyspozycji opcje sekcji [invoices] konfiguracji:
print_balance_history
Określa czy na fakturze (html) drukować listę operacji finansowych na koncie klienta. Domyślnie: nie ustawiona.
Przykład: print_balance_history = true
print_balance_history_limit
Liczba rekordów na liście operacji finansowych na fakturze. Domyślnie: 10.
Przykład: print_balance_history_limit = 20000
Podczas wydruku faktury domyślnie wyświetlany jest oryginał i kopia, można to zmienić:
default_printpage
Lista oddzielonych przecinkiem nazw stron wydruku faktur. Można użyć zdefiniowane ciągi znaków "original", "copy" i "duplicate". Domyślnie: "original,copy".
Przykład: default_printpage = "original"
Przy domyślnych ustawieniach faktury wyświetlane są w formacie html wg domyślnego szablonu. W sekcji [invoices] masz do dyspozycji jeszcze następujące opcje:
template_file
Szablon faktury, który powinien znajdować się w katalogu templates. Domyślnie: invoice.html.
Przykład: template_file = invoice-mynet.html
content_type
Content-type dla faktury. Jeżeli wpiszesz tutaj 'application/octet-stream' to przeglądarka zechce wysłać plik do zapisania na dysku, zamiast go wyświetlić. Przydatne jeśli używasz własnego szablonu, który wygeneruje np.rtf'a lub xls'a. Domyślnie: 'text/html'
Przykład: content_type = application/octet-stream
attachment_name
Można podać nazwę pliku, jako który ma zostać zapisany gotowy wydruk. Domyślnie: pusta.
Przykład: attachment_name = faktura.xls
Praktycznie każda przeglądarka internetowa ma możliwość konfiguracji wydruku, gdzie można wyłączyć funkcje takie jak drukowanie stopki i nagłówka, czy też adresu na wydruku. |
Możliwe jest także tworzenie faktur jako pliki pdf. Przypisanie opcji type z sekcji [invoices] wartości 'pdf' spowoduje, że faktury zamiast w html'u będą tworzone jako pliki "portable data format". Opcja template_file spełnia podobną rolę jak dla faktur html'owych, z tym, że posiada predefiniowane wartości: 'standard' - faktura podstawowa (odpowiednik invoice.html) i 'FT-0100' - faktura przystosowana do drukowania na drukach FT-0100 zawierających druk polecenia przelewu. W opcji template_file można także wstawić nazwę pliku php, jednak ta możliwość jest przeznaczona dla zaawansowanych użytkowników, gdyż wymaga utworzenia pliku php, a nie tak jak w przypadku faktur html'owych szablonu Smarty.
Faktury korygujące korzystają z ustawień dotyczących pozostałych faktur z sekcji [invoices]. Domyślny szablon faktury uwzględnia faktury korygujące. Jednak udostępniono opcję pozwalającą na zdefiniowanie osobnego szablonu dla korekt (pozostałe opcje są wspólne dla faktur i dla korekt):
cnote_template_file
Szablon faktury korygującej, który powinien znajdować się w katalogu templates. Domyślnie: invoice.html.
Przykład: cnote_template_file = invoice-mynet.html
LMS umożliwia automatyczne generowanie numeru konta bankowego w standardzie IBAN zawierającego ID klienta. Funkcja ta może być używana do masowej identyfikacji płatności która jako usługa znajduje się w ofercie większości banków. Aby masowa identyfikacja była możliwa, należy podpisać umowę z bankiem z której potrzebne nam będą:
Numer rozliczeniowy banku
zawsze stały dla każdego banku, złożony z 8 cyfr
Identyfikator rachunku
identyfikator naszego wirtualnego rachunku, złożony z 4 cyfr
Od tej pory jeśli używamy faktur PDF z szablonem FT-0100, lub drukujemy bloczki przelewu/wpłaty z menu Finanse -> Wydruki -> Faktury -> Drukuj polecenia przelewu/wpłaty, każdy wydruk będzie zawierał unikalny numer konta z zawartym ID naszego klienta. ID klienta zostanie dodane na końcu, oraz poprzedzone odpowiednia ilością zer. Suma kontrolna będzie wyliczana automatycznie. Więcej o IBAN w Wikipedii
Dane do druków polecenia przelewu brane są z danych firmy do której przypisany jest dany klient. Tytuł płatności można ustawić przy użyciu opcji 'pay_title' w sekcji [finances]. Dotyczy to zarówno wydruków poleceń przelewu dostępnych w Finanse -> Wydruki jak i wydruków faktur typu FT-0100.
Dokumenty kasowe, ze względu na swoją specyfikę, posiadają podobne opcje konfiguracyjne jak faktury.
Przy domyślnych ustawieniach dokumenty kasowe wyświetlane są w formacie html wg domyślnego szablonu. Dla dowodów wpłaty oraz wypłaty przewidziano wspólny szablon wydruku. W sekcji [receipts] masz do dyspozycji jeszcze następujące opcje:
template_file
Szablon dowodu wpłaty/wypłaty, który powinien znajdować się w katalogu templates. Domyślnie: receipt.html.
Przykład: template_file = mytempl/receipt.html
content_type
Content-type dla druku. Jeżeli wpiszesz tutaj 'application/octet-stream' to przeglądarka zechce wysłać plik do zapisania na dysku, zamiast go wyświetlić. Przydatne jeśli używasz własnego szablonu, który wygeneruje np.rtf'a lub xls'a. Domyślnie: 'text/html'
Przykład: content_type = application/octet-stream
attachment_name
Można podać nazwę pliku, jako który ma zostać zapisany gotowy wydruk. Domyślnie: pusta.
Przykład: attachment_name = receipt.xls
Możliwe jest także tworzenie dokumentów kasowych jako plików pdf. Przypisanie opcji type z sekcji [receipts] wartości 'pdf' spowoduje, że dowody zamiast w html'u będą tworzone jako pliki "portable data format". Opcja template_file spełnia podobną rolę jak dla wydruków html'owych z tym, że posiada predefiniowaną wartość: 'standard' - wydruk podstawowy (odpowiednik receipt.html). W opcji template_file można także wstawić nazwę pliku php, jednak ta możliwość jest przeznaczona dla zaawansowanych użytkowników, gdyż wymaga utworzenia pliku php, a nie tak jak w przypadku html'a szablonu Smarty.
Przy domyślnych ustawieniach noty wyświetlane są w formacie html wg domyślnego szablonu. W sekcji [notes] masz do dyspozycji następujące opcje:
template_file
Szablon noty, który powinien znajdować się w katalogu templates. Domyślnie: note.html.
Przykład: template_file = mytempl/note.html
content_type
Content-type dla druku. Jeżeli wpiszesz tutaj 'application/octet-stream' to przeglądarka zechce wysłać plik do zapisania na dysku, zamiast go wyświetlić. Przydatne jeśli używasz własnego szablonu, który wygeneruje np.rtf'a lub xls'a. Domyślnie: 'text/html'
Przykład: content_type = application/octet-stream
attachment_name
Można podać nazwę pliku, jako który ma zostać zapisany gotowy wydruk. Domyślnie: pusta.
Przykład: attachment_name = receipt.xls
Oprócz dokumentów finansowych w LMSie można przechowywać dokumenty takie jak umowy, protokoły, aneksy i inne. Każemu klientowi można przypisać dowolną liczbę dokumentów na zakładce 'Dokumenty klienta' w panelu 'Informacje o kliencie' lub poprzez menu 'Dokumenty'. Pliki z dokumentami przechowywane są poza bazą danych (o czym należy pamiętać robiąc backupy) w katalogu określonym zmienną 'doc_dir' w sekcji [directories] pliku konfiguracyjnego.
Dokumenty mogą być importowane do systemu jako gotowe pliki, ale także tworzone według szablonów przy użyciu zdefiniowanych kreatorów. Tutaj system daje duże możliwości konfiguracji. W katalogu documents/templates/default znajduje się domyślny kreator dokumentu (szablon i silnik). Użytkownik może utworzyć dowolną liczbę własnych kreatorów dokumentów, które należy umieścić w katalogu documents/templates/.
Każdy kreator powinien zawierać plik info.php o określonej strukturze:
<?php $engine = array( 'name' => 'default', // nazwa (katalogu) kreatora, małe litery i cyfry 'engine' => 'default', // katalog z silnikiem (engine.php) // można używać silników z innych kreatorów 'template' => 'template.html', // plik szablonu (w katalogu 'name') 'title' => trans('Default document'), // opis, który będzie wyświetlany w LMS-UI 'content_type' => 'text/html', // typ pliku wynikowego 'output' => 'default.html', // nazwa pliku wynikowego 'plugin' => 'plugin', // nazwa pliku pluginu (w katalogu 'name') 'post-action' => 'post-action', // plik PHP wykonywany po dodaniu dokumentu (w transakcji) ); ?>Plik info.php opisuje kreatora i jest jedynym wymaganym plikiem. Do utworzenia dokumentu potrzebny jest silnik (plik o nazwie engine.php). Można utworzyć własny silnik lub skorzystać z innego, ustawiając zmienną 'engine' na nazwę kreatora, którego silnik chcemy wykorzystać. Nie ma zatem wymogu tworzenia własnego silnika dla każdego nowego kreatora, wystarczy utworzyć szablon 'template' i plik info.php.
Zmienna plugin określa nazwę pliku php odpowiedzialnego za wyświetlenie dodatkowych pól w formularzu tworzenia nowego dokumentu. Plugin może ponadto zawierać obsługę błędów dla tych pól. Po dodaniu dokumentu wykonywany jest skrypt PHP określony w zmiennej post-action. Prosty przykład pluginu i post-akcji przedstawiono w przykładowym domyślnym dokumencie.
Poprzedni | Spis treści | Następny |
Upgrade | Początek rozdziału | Baza podziału terytorialnego (TERYT) |