Moduł eFaktury służy do prowadzenia elektronicznej wysyłki faktur sprzedaży oraz archiwizacji faktur zakupu. Funkcjonalność pokrywa następujące wymagania:
Dokumenty faktur widoczne podzielone są na osobne zakładki w zależności od swojego stanu:
Konfiguracji podlega zakres dokumentów które są widoczne na poszczególnych zakładkach modułu:
System działa w dwojaki sposób jeśli chodzi o podpisywanie wysyłanych faktur.
W przypadku jeśli w systemie eDokumenty istnieje tylko sam nagłówek faktury (bez załączników pdf) wtedy system wygeneruje podpisany plik pdf. Podpis zostanie umieszczony w pliku pdf.
Jeśli dokument posiada już załączniki i jeden w nich został oznaczony jako treść, system eDokumenty wygeneruje podpis jako osobny plik. Podpis zostanie umieszczony w pliku o tej samej nazwie co plik z treścią faktury. Plik podpisu zawiera rozszerzenie *.sign i może służyć późniejszej weryfikacji - szczególnie w przypadkach spornych np. przed sądem jeśli kontrahent przedstawi zmienioną wersję faktury niż oryginalnie wysłana będzie tego można łatwo dowieść posługując się plikiem podpisu.
Dla faktur korygujących wymagane jest uzyskanie potwierdzeń odbioru przez kontrahenta. Faktury oznaczone jako "Korekta" (atrybut iscorc) automatycznie przy wysyłce tworzą żądanie potwierdzenia przeczytania. Ponadto podczas odbioru maili z potwierdzeniami potrafią odczytywać zapisane dane i automatycznie zmieniać status wysłanych wcześniej korekt (patrz niżej).
Aby wyświetlić pole korekta i uzyskać pożądane zachowanie należy w pliku config.inc włączyć funkcję poprzez ustawienie wartości stałej.
define('SHOW_CORRECTION_ON_VATNOTE', TRUE);
W rezultacie na fakturze pojawi się dodatkowe pole "korekta" w prawym górnym rogu kartoteki.
Ekran modułu:
Do konfiguracji służy plik einvoices_tabs.ini w którym można ustawić wyrażenia filtrujace dokumenty pojawiające się w poszczególnych zakładkach:
[maps] Exposed = "(tpstid = 85 OR tpstid = 86) AND state_ = 1" Outgoing = "tpstid = 87 AND state_ = 1" Incoming = "tpstid = 74 AND state_ = 2" CorrectionAwaiting = "documents_view.doc_id IN (SELECT doc_id FROM vatnote) AND documents_view.tpstid = 87" CorrectionConfirmed = "documents_view.doc_id IN (SELECT doc_id FROM vatnote) AND documents_view.tpstid = 88"
Zasadniczo każda faktura przechodzi przez następujące czynności:
Import certyfikatu następuję poprzez "Ustawienia -> Panel sterowania -> Pozostałe ustawienia -> Certyfikaty pieczęci elektronicznej". Certyfikat musi być w postaci base64 w tagach -----BEGIN CERTIFICATE----- oraz -----END CERTIFICATE-----.
Podobnie dla klucza prywatnego musi on być w formacie base64 oraz w tagach -----BEGIN ENCRYPTED PRIVATE KEY----- i -----END ENCRYPTED PRIVATE KEY-----.
Jeśli użycie klucza wymaga podania hasła wymagane jest zaznaczenie pola Wymaga hasła.
Najczęściej zasilenie fakturami odbywa się z systemu ERP. Aby faktury pobrane z ERP otrzymały właściwy status należy zainicjować go w pliku apps/edokumenty/etc/sync/1_documents_map.ini
<?php /** * Tabela TYP_DOKUMENTU_HANDLOWEGO */ $documentsMap = array( 'sFVS' => array( 'document' => 'VatNote', 'state' => OUTGOING, 'dscrpt' => Translator::translate('Faktura sprzedaży'), 'tpstid' => 14, 'prtpid'=> 2 ), ); ?>
Szablony maili służących do wysyłania eFaktur wprowadza się poprzez mechanizm szablonów jako pliki szablonów html (HTML + flexy). Przykładowy wzór szablonu z kilkoma znacznikami m.in. danymi z faktury dostępny jest w katalogu tpl_default/email.
Dla kreatorów generowania i podpisywania plików PDF oraz wysyłania faktur emailem możliwe jest skonfigurowanie domyślnego statusu ustawianego dla dokumentu. W tym celu, w pliku config.inc należy określić odpowiednie identyfikatory statusów dla poniższych stałych.
Definicja domyślnego statusu dokumentu po wygenerowaniu i podpisaniu pliku PDF:
define('EINVOICE_MASS_PDF_DEFAULT_TPSTID', 28);
Definicja domyślny statusu dokumentu po wysłaniu emailem:
define('EINVOICE_MASS_EMAIL_DEFAULT_TPSTID', 30);