Szablony wydruku
Edycja oraz tworzenie własnych szablonów
System szablonów wydruku w programie FakturaLight wykorzystuje XHTML i CSS jako podstawowy sposób definiowania struktury oraz wyglądu dokumentów. Do generowania dynamicznych (zmiennych) fragmentów szablonów został wykorzystany silnik inja pantor.
Obsługiwane znaczniki XHTML i CSS
Obsługa XHTML i CSS jest ograniczona do następujących znaczników i właściwości:
XHTML:
- Podstawowa struktura:
<html>
,<head>
,<body>
- Elementy blokowe i inline:
<div>
,<span>
,<p>
,<br>
- Listy:
<ul>
,<ol>
,<li>
- Linki i obrazy:
<a href="">
,<img src="" alt="">
- Tabele:
<table>
,<tr>
,<td>
,<th>
,<thead>
,<tbody>
- Elementy tekstowe:
<b>
,<i>
,<strong>
,<em>
- Elementy strukturalne:
<hr>
CSS:
- Właściwości tekstowe:
color
,background-color
,font-family
,font-size
,font-weight
,font-style
,text-decoration
,text-align
,vertical-align
- Box model:
margin
,padding
,border
(podstawowe style i kolory),width
,height
- Wyświetlanie:
display: block
,inline
,none
,float
- Style list:
list-style-type
- Właściwości tła:
background-image
,background-repeat
,background-size
,background-position
- Właściwości ramek:
border-top
,border-bottom
,border-right
,border-collapse
- Właściwości tekstu:
white-space
(nowrap, pre)
Ograniczenia:
- ❌ Brak wsparcia dla skryptów (JavaScript)
- ❌ Brak zaawansowanych właściwości CSS3 (flexbox, grid, animacje)
- ❌ Brak pseudo-klas i pseudo-elementów (
:hover
,:before
,:after
) - ❌ Brak zaawansowanych selektorów CSS (np. selektorów potomków,
atrybutów,
nth-child
) - ❌ Brak obsługi elementów takich jak
<iframe>
,<object>
,<embed>
- ⚠️ Wymagana poprawna, zamknięta składnia XHTML (np.
<br />
zamiast<br>
)
Budowa szablonów
Szablony składają się z plików HTML oraz CSS z osadzonymi dyrektywami inja, które pozwalają na:
- Dynamiczne wstawianie danych -
{{ zmienna }}
- Warunkowe wyświetlanie -
{% if warunek %}...{% else %}...{% endif %}
- Pętle -
{% for element in lista %}...{% endfor %}
- Włączanie innych szablonów -
{% include "plik.html" %}
- Manipulacię danymi przez funkcje wbudowane -
upper()
,lower()
,capitalize()
,length()
,join()
,split()
,default()
,exists()
,existsIn()
,at()
,max()
,min()
,round()
,odd()
,even()
,divisibleBy()
,int()
,float()
- Dziedziczenie szablonów - obsługa
{% extends %}
i{% block %}
Szczegółowy opis wszystkich dostępnych funkcji i możliwości silnika inja znajdziesz w oficjalnej dokumentacji inja pantor.
Oprócz standardowych funkcji inja, system został rozbudowany o następujące metody:
-
format_date(date, format)
Formatuje datę według podanego wzorca.
{{ format_date(invoice.issue_date, "dd.MM.yyyy") }}
-
_(text)
Tłumaczy tekst na aktualny język. Tłumaczenia można modyfikować w ustawieniach programu.
{{ _("Data wystawienia") }}
-
if_empty(value, fallback)
Zwraca fallback jeśli wartość jest pusta.
{{ if_empty(document.issuer.postal_city, document.issuer.city) }}
-
join(array, separator, key)
Łączy elementy tablicy z separatorem, używając określonego klucza.
{{ join(orders, ", ", "number") }}
-
split(string, separator)
Dzieli string na tablicę.
{% set numberParts = split(advance.number, " ") %}
-
max(value1, value2)
Zwraca większą wartość.
{{ max(default(calculated_widths.summary,0), default(calculated_widths.brutto-value-column,0)) }}
Rozszerzona została także obsługa HTML o specjalne atrybuty pozwalające na kontrolę drukowania tła oraz reset licznika stron:
-
data-bg-first-page-only
Kontroluje czy tło ma być drukowane tylko na pierwszej stronie:
<div data-bg-first-page-only="true"> <!-- Tło będzie widoczne tylko na pierwszej stronie --> </div>
-
data-stick-bg-to-page-side
Rozciąga krawędzie tła do brzegu strony (z pominięciem marginesów):
<div data-stick-bg-to-page-side="left top right"> <!-- Tło rozciągnięte do lewej, górnerj i prawej krawędzi strony --> </div> <div data-stick-bg-to-page-side="bottom"> <!-- Tło rozciągnięte do dolnej krawędzi strony --> </div>
-
data-reset-page-count
Resetuje licznik stron - numery stron będą liczone od nowa:
<div data-reset-page-count="true"> <!-- Od tego miejsca strony będą numerowane od 1 --> </div>
Struktura plików
Pliki z szablonami dla wszystkich typów dokumentów muszą znajdować się we wspólnym folderze. Program ładuje odpowiednie pliki HTML w zależności od rodzaju drukowanego dokumentu. Lista plików wykorzystywana przez parser z podziałem na typ drukowanego dokumentu przedstawia się następująco:
Pliki szablonu faktury:
invoice.html
- główny plik szablonuinvoice_body.html
- zawartość fakturyinvoice_top.html
- nagłówek z logo i danymi fakturyinvoice_contractors.html
- sekcja kontrahentówinvoice_items_table.html
- tabela pozycji fakturyinvoice_items_summary_table.html
- podsumowanie według stawek VATinvoice_bottom.html
- podsumowanie i miejsca na podpisyinvoice_signatures.html
- podpisyinvoice_styles.css
- style CSS
Pliki szablonu zamówienia:
order.html
- główny plik szablonuorder_body.html
- zawartość zamówieniaorder_top.html
- nagłówek z logo i danymi zamówieniaorder_contractors.html
- sekcja kontrahentóworder_items_table.html
- tabela pozycji zamówieniaorder_items_summary_table.html
- podsumowanie według stawek VATorder_bottom.html
- podsumowanie i miejsca na podpisyorder_styles.css
- style CSS
Pliki szablonu zestawień:
sheet.html
- główny plik szablonusheet_footer.html
- stopka zestawieniasheet_styles.css
- style CSS
Pliki szablonu dokumentów magazynowych:
stock_document.html
- główny plik szablonustock_document_body.html
- zawartość dokumentu magazynowegostock_document_top.html
- nagłówek z logo i danymi dokumentustock_document_contractors.html
- sekcja kontrahentówstock_document_items_table.html
- tabela pozycji dokumentustock_document_items_summary_table.html
- podsumowanie według stawek VATstock_document_bottom.html
- podsumowanie i miejsca na podpisystock_document_signatures.html
- podpisystock_document_styles.css
- style CSS
Pliki szablonu raportów kasowych:
cash_report.html
- główny plik szablonucash_report_body.html
- zawartość raportu kasowegocash_report_top.html
- nagłówek z logo i danymi raportucash_report_items_table.html
- tabela pozycji raportucash_report_summary_table.html
- podsumowanie raportucash_report_footer.html
- stopka raportucash_report_signatures.html
- podpisycash_report_styles.css
- style CSS
Pliki szablonu not księgowych:
accounting_note.html
- główny plik szablonuaccounting_note_body.html
- zawartość noty księgowejaccounting_note_top.html
- nagłówek z logo i danymi notyaccounting_note_contractors.html
- sekcja kontrahentówaccounting_note_items_table.html
- tabela pozycji notyaccounting_note_bottom.html
- podsumowanie i miejsca na podpisyaccounting_note_signatures.html
- podpisyaccounting_note_styles.css
- style CSS
Pliki współdzielone:
contractors.html
- sekcja z danymi kontrahentówitems_table.html
- tabela pozycjistyles.css
- podstawowe stylecalculated_styles.css
- dynamiczne style dla tabeli z podsumowaniem według stawek VAT.
Dostęp do danych w szablonach
Dane umożliwiające wygenerowanie wydruku dostępne są w plikach
szablonów jako obiekty JSON. Aby odwołać się do konkretnych informacji,
należy użyć notacji kropkowej - na przykład invoice.number
oznacza numer faktury, a invoice.contractor.name
to nazwa
kontrahenta. Obiekty JSON dostępne w poszczególnych szablonach:
Współdzielony obiekt ustawień wydruku, dostępny w każdym pliku
{
"print_options": {
"logo": "data:image/png;base64,...", // Logo firmy w formacie base64
"print_footer": true, // Czy drukować stopkę
"print_vat_always": true, // Czy zawsze drukować VAT (nawet dla zwolnionych)
"print_pkwiu": true, // Czy drukować kody PKWiU/CN
"print_extra_decimlas_in_count": true, // Czy drukować dodatkowe miejsca dziesiętne w ilości
"print_order_number_in_invoices": true, // Czy drukować numer zamówienia w fakturach
"print_exchange_rate": true, // Czy drukować kurs waluty
"print_discount": true, // Czy drukować rabaty
"print_percent_discount": true, // Czy drukować rabaty procentowe
"print_volume_discount": true, // Czy drukować rabaty kwotowe
"print_contractor_phone_number": true, // Czy drukować telefon kontrahenta
"print_recipient_nip": true, // Czy drukować NIP odbiorcy
"print_payment_qr_code": true, // Czy drukować kod QR do płatności
"print_unit": true, // Czy drukować jednostki miary
"print_count": true, // Czy drukować ilość dla danej pozycji
"print_brutto_price": true, // Czy drukować ceny brutto
"print_netto_price": true, // Czy drukować ceny netto
"print_payment_date": true, // Czy drukować termin zapłaty
"print_payment_date_paid": true, // Czy drukować informację o tym czy faktura jest opłacona
"print_paid_and_remaining_amount": true, // Czy drukować kwoty zapłacono i pozostało do zapłaty
"print_transaction_date_on_advances": false, // Czy drukować datę transakcji na zaliczkach
"print_transaction_date": true, // Czy drukować datę transakcji
"print_price_on_stock_document": true, // Czy drukować ceny na dokumentach magazynowych
"print_jpk_flags": true, // Czy drukować oznaczenia JPK
"print_payment_demand_signature": true, // Czy drukować miejsce na podpis wierzyciela na wezwaniu do zapłaty
"signature_type": "SignatureType_PrintAllIfOneNotEmpty", // Typ wyświetlania podpisów, dostępe wartości: Signature_PrintAllIfOneNotEmpty lub Signature_PrintOnlyNotEmpty
"stock_document_wz_type": "SellBrutto", // Jaki typ cen drukować na dokumencie WZ. Dostępne wartości: SellBrutto, SellNetto, PurchaseNetto
"footer": { // Stopka ze zdefiniowanymi krawędziami
"top_left": "Nazwa firmy", // Lewy górny róg
"top_right": "NIP: 1234567890", // Prawy górny róg
"bottom_left": "Tel.: +48 123 456 789", // Lewy dolny róg
"bottom_right": "Strona {{ current_page }} z {{ pages_total }}" // Prawy dolny róg
}
}
}
Obiekt dostępny w szablonie faktury
{
"invoice": {
"type": "vat", // Typ faktury (vat, pro forma, zaliczkowa, itp.)
"type_name": "Faktura", // Nazwa typu faktury do wyświetlenia
"sale_type": "wdt", // Typ sprzedaży (krajowa, WDT, exportowa, OSS itp.)
"number": "FV/2024/001", // Numer faktury
"issue_place": "Warszawa", // Miejsce wystawienia faktury
"issue_date": "2024-01-15", // Data wystawienia faktury
"transaction_date": "2024-01-15", // Data zakończenia dostawy/usługi
"transaction_date_as_month": "styczeń 2024", // Data transakcji jako miesiąc (dla faktur miesięcznych)
"payment_date": "2024-02-15", // Termin zapłaty
"payment_date_days": 7, // Liczba dni do zapłaty
"payment_method": "przelew", // Sposób zapłaty (przelew, gotówka, karta)
"custom_related_document_name": "umowa", // Nazwa powiązanego dokumentu (np. umowa nr 5/2026)
"payment_received_date": "2024-01-20", // Data otrzymania płatności
"advance_received_date": "2024-01-20", // Data otrzymania zaliczki
"fiscalization_time": "2024-01-15 10:30:00", // Czas fiskalizacji
"fiscalization_header_number": "123456", // Numer nagłówka fiskalnego nadawany przez drukarkę fiskalną
"currency": "PLN", // Waluta faktury
"currency_rate": "4,2600", // Kurs waluty
"currency_rate_date": "2024-01-15", // Data kursu waluty
"margin_type": "procedura marży dla biur podróży",// Typ marży (dla faktur marża)
"reverse_charge": false, // Czy zastosowano odwrotne obciążenie VAT
"split_payment": false, // Czy zastosowano mechanizm podzielonej płatności
"is_payment_date_paid": false, // Czy faktura została opłacona
"vat_exemption": false, // Czy faktura jest zwolniona z VAT
"vat_exemption_reason": "", // Podstawa zwolnienia z VAT
"has_items_from_order": false, // Czy faktura zaliczkowa zawiera pozycje z zamówienia
"has_discount": false, // Czy faktura ma rabaty
"correction_reason": "zwrot", // Przyczyna korekty (dla faktur korygujących)
"brutto_value_in_words": "jeden tysiąc złotych", // Wartość brutto słownie
"is_refund": false, // Czy to faktura dotycząca zwrotu (ujemna wartość faktury)
"signature_issuer": "Jan Kowalski", // Podpis wystawcy faktury
"signature_recipient": "Anna Nowak", // Podpis odbiorcy faktury
"jpk_flags": "GTU_01, GTU_02, FP...", // Oznaczenia JPK (Jednolity Plik Kontrolny)
"notes": "Uwagi do faktury", // Uwagi do faktury
"bdo": "000123456", // Numer BDO (Baza Danych Odpadowych)
"ksef_gate": "test", // Brama KSeF (test, prod)
"ksef_number": "2024/01/15/0001/123456789", // Numer KSeF
"ksef_session_number": "2024-01-15T10:30:00", // Numer sesji KSeF
"ksef_upload_date": "2024-01-15 10:30:00", // Data wysłania do KSeF
"ksef_approval_date": "2024-01-15 10:31:00", // Data zatwierdzenia przez KSeF
"ksef_hash": "abc123def456", // Hash dokumentu KSeF
"ksef_url": "https://ksef.gov.pl/web/verify/...", // URL weryfikacji KSeF
"ksef_qr_code": "data:image/svg+xml;base64,...", // Kod QR KSeF
// Rachunek bankowy
"account": { // Dane rachunku bankowego
"number": "12 1234 5678 9012 3456 7890 1234", // Numer rachunku bankowego
"bank": "PKO Bank Polski", // Nazwa banku
"swift": "BPKOPLPW", // Kod SWIFT
"bank_with_swift": "PKO Bank Polski (BPKOPLPW)" // Nazwa banku z kodem SWIFT
},
"vat_account": {...}, // Dane rachunku do VAT (struktura jak account)
// Dane nabywcy
"contractor": {
"name": "Firma XYZ Sp. z o.o.", // Nazwa wyświetlana (nazwa firmy lub jeśli pusta to imię i nazwisko)
"company_name": "Firma XYZ Sp. z o.o.", // Nazwa firmy
"address": "ul. Przykładowa 123", // Adres (ulica i numer)
"postal_code": "00-001", // Kod pocztowy
"postal_city": "Warszawa", // Miasto pocztowe
"city": "Warszawa", // Miasto
"country": "Polska", // Nazwa kraju
"country_code": "PL", // Kod kraju (ISO)
"nip": "1234567890", // Numer NIP
"regon": "123456789", // Numer REGON
"pesel": "", // Numer PESEL (dla osób fizycznych)
"passport": "", // Numer paszportu (dla cudzoziemców)
"eori": "", // Numer EORI (dla handlu UE)
"extra_number_type": "regon", // Typ dodatkowego numeru (regon, pesel, passport, eori)
"phone_number": "+48 123 456 789", // Numer telefonu
"email": "kontakt@firma.pl", // Adres email
"legal_entity": true, // Czy podmiot prawny (true) czy osoba fizyczna (false)
"first_name": "", // Imię (dla osób fizycznych)
"surname": "", // Nazwisko (dla osób fizycznych)
"house_number": "123", // Numer domu
"apartment_number": "45", // Numer mieszkania
"street": "ul. Przykładowa", // Nazwa ulicy
"gln": "1234567890123", // Numer GLN (Global Location Number)
"voivodeship": "Mazowieckie", // Województwo
"county": "Warszawa", // Powiat
"community": "Warszawa", // Gmina
"role": "contractor" // Rola w dokumencie (contractor, recipient, issuer, factor, payer, jst_issuer, jst_recipient, vat_group_issuer, vat_group_recipient)
},
"issuer": {...}, // Dane wystawcy faktury (struktura jak contractor)
"recipient": {...}, // Dane odbiorcy (struktura jak contractor)
// Pozycje faktury
"items": [ // Pozycje faktury (tablica)
{
"name": "Produkt A", // Nazwa towaru lub usługi
"count": "10,00", // Ilość
"unit": "szt.", // Jednostka miary
"pkwiu": "25.62.1", // Kod PKWiU/CN
"netto_price": "100,00", // Cena jednostkowa netto
"brutto_price": "123,00", // Cena jednostkowa brutto
"percent_discount": "10,00", // Rabat procentowy
"netto_discount": "10,00", // Rabat kwotowy netto
"brutto_discount": "12,30", // Rabat kwotowy brutto
"netto_value": "900,00", // Wartość netto pozycji
"tax_rate": "23%", // Nazwa stawki VAT
"tax_value": "207,00", // Kwota VAT
"brutto_value": "1107,00", // Wartość brutto pozycji
"code": "PROD001", // Kod produktu
"barcode": "1234567890123", // Kod kreskowy
"catalog_number": "CAT001", // Numer katalogowy
"producer": "Producent XYZ", // Nazwa producenta
"fiscal_name": "Nazwa fiskalna", // Nazwa fiskalna
"description": "Opis produktu", // Opis produktu
"netto_weight": "1,50000", // Waga netto
"brutto_weight": "2,00000", // Waga brutto
"netto_value_before_discount": "1000,00", // Wartość netto przed rabatem
"brutto_value_before_discount": "1230,00", // Wartość brutto przed rabatem
"netto_discount_value": "100,00", // Wartość rabatu netto
"brutto_discount_value": "123,00", // Wartość rabatu brutto
"purchase_netto_price": "80,00", // Cena zakupu netto
"purchase_brutto_price": "98,40", // Cena zakupu brutto
"purchase_netto_value": "800,00", // Wartość zakupu netto
"purchase_brutto_value": "984,00", // Wartość zakupu brutto
"gtu": "GTU_01", // Oznaczenie GTU (Grupa Towarów i Usług)
"jpk_procedure": "WSTO_EE", // Procedura JPK
"pkob": "PKOB_01", // Kod PKOB
"attachment_15": false, // Procedura z załącznika 15 ustawy o VAT (mechanizm podzielonej płatności)
"excise_value": "0,00", // Wartość akcyzy
"user_field_1": "Pole użytkownika 1", // Pole użytkownika 1
"user_field_2": "Pole użytkownika 2", // Pole użytkownika 2
"user_field_3": "Pole użytkownika 3", // Pole użytkownika 3
"user_field_4": "Pole użytkownika 4", // Pole użytkownika 4
"user_field_5": "Pole użytkownika 5", // Pole użytkownika 5
"user_field_6": "Pole użytkownika 6", // Pole użytkownika 6
"user_field_7": "Pole użytkownika 7", // Pole użytkownika 7
"user_field_8": "Pole użytkownika 8", // Pole użytkownika 8
"user_field_9": "Pole użytkownika 9", // Pole użytkownika 9
"user_field_10": "Pole użytkownika 10", // Pole użytkownika 10
"user_field_11": "Pole użytkownika 11", // Pole użytkownika 11
"user_field_12": "Pole użytkownika 12", // Pole użytkownika 12
"user_field_13": "Pole użytkownika 13", // Pole użytkownika 13
"user_field_14": "Pole użytkownika 14", // Pole użytkownika 14
"user_field_15": "Pole użytkownika 15", // Pole użytkownika 15
"images": ["data:image/jpg;hash,abc123"] // Zdjęcia produktu
}
],
// Podsumowanie
"summary": { // Podsumowanie według stawek VAT
"tax_rates": [ // Podsumowanie według stawek VAT w walucie faktury
{
"netto_value": "900,00", // Wartość netto dla stawki
"tax_value": "207,00", // Kwota VAT dla stawki
"brutto_value": "1107,00", // Wartość brutto dla stawki
"tax_rate": "23%" // Nazwa stawki VAT
}
],
"tax_rates_pln": [ // Podsumowanie według stawek VAT w PLN
{
"netto_value": "900,00", // Wartość netto w PLN
"tax_value": "207,00", // Kwota VAT w PLN
"brutto_value": "1107,00", // Wartość brutto w PLN
"tax_rate": "23%" // Stawka VAT
}
],
"total_netto_value": "900,00", // Suma wartości netto w walucie faktury
"total_netto_value_pln": "900,00", // Suma wartości netto w PLN
"total_tax_value": "207,00", // Suma kwot VAT w walucie faktury
"total_tax_value_pln": "207,00", // Suma kwot VAT w PLN
"total_brutto_value": "1107,00", // Suma wartości brutto w walucie faktury
"total_brutto_value_pln": "1107,00" // Suma wartości brutto w PLN
},
// Płatność
"paid_value": { // Wartość zapłacona
"value": "500,00", // Wartość z uwzględnieniem znaku
"value_abs": "500,00", // Wartość bezwzględna
"currency": "PLN", // Waluta
"value_pln": "500,00", // Wartość w PLN
"value_pln_abs": "500,00" // Wartość bezwzględna w PLN
},
// Pozostała płatność
"remaining_value": { // Wartość pozostała do zapłaty
"value": "607,00", // Wartość z uwzględnieniem znaku
"value_abs": "607,00", // Wartość bezwzględna
"currency": "PLN", // Waluta
"value_pln": "607,00", // Wartość w PLN
"value_pln_abs": "607,00" // Wartość bezwzględna w PLN
},
// Poprzednie zaliczki (tablica)
"previous_advances": [
{
"number": "FV/2024/001", // Numer faktury zaliczkowej
"issue_date": "2024-01-10", // Data wystawienia zaliczki
"brutto_value": { // Wartość brutto zaliczki
"value": "500,00", // Wartość z uwzględnieniem znaku
"value_abs": "500,00", // Wartość bezwzględna
"currency": "PLN", // Waluta
"value_pln": "500,00", // Wartość w PLN
"value_pln_abs": "500,00" // Wartość bezwzględna w PLN
}
}
],
"additional_descriptions": [ // Dodatkowe opisy (tablica)
{
"key": "Opis dodatkowy", // Klucz opisu
"value": "Wartość dodatkowego opisu" // Wartość opisu
}
]
},
"annotation": "Annotation_Original", // Adnotacja dokumentu (Annotation_Original, Annotation_Copy, Annotation_Duplicate, Annotation_OriginalAndCopy)
"language": "pl", // Język dokumentu (pl, en, cs, fi, fr, es, nl, de, ru, sv, uk, it i wszystkie pary języków pl_*)
"duplicate_date": "2024-01-20", // Data duplikatu (jęzeli zaznaczona opcja w podglądzie wydruku)
"corrected_invoice": { // Korygowana
"number": "FV/2024/001", // Numer korygowanej faktury
"issue_date": "2024-01-15", // Data wystawienia korygowanej faktury
"items": [...] // Pozycje korygowanej faktury (struktura jak invoice.items)
},
"original_corrected_invoice": { // Pierwotna faktura korygowana
// Struktura jak corrected_invoice (ma znaczenie w przypadku kilku korekt)
},
"previous_correction_invoices": [ // Poprzednie faktury korygujące
// Tablica obiektów o strukturze jak invoice
],
"orders": [ // Tablica powiązanych zamówień
// Tablica obiektów o strukturze jak order
],
"stock_documents": [ // Tablica powiązanych dokumentów magazynowych
// Tablica obiektów o strukturze jak stock_document
],
},
Obiekt dostępny w szablonie zamówienia
{
"order": {
"type": "OrderType_Order", // Typ dokumentu (OrderType_Order, OrderType_Offer, OrderType_SupplierOrder)
"type_name": "Zamówienie", // Nazwa typu dokumentu (Zamówienie, Oferta, Zamowienie do dostawcy)
"sale_type": "Export", // Typ sprzedaży (krajowa, WDT, exportowa, OSS itp.)
"number": "Z/2024/001", // Numer zamówienia
"issue_date": "2024-01-10", // Data wystawienia
"transaction_date": "2024-01-15", // Termin realizacji
"transaction_date_days": 5, // Termin realizacji jako liczba dni
"currency": "PLN", // Waluta
"currency_rate": "1,0000", // Kurs waluty
"currency_rate_date": "2024-01-10", // Data kursu waluty
"has_discount": false, // Czy ma rabaty
"account": {...}, // Rachunek bankowy (struktura jak invoice.account)
"vat_account": {...}, // Rachunek VAT (struktura jak invoice.vat_account)
"notes": "Uwagi do zamówienia", // Uwagi
"recipient": {...}, // Odbiorca (struktura jak invoice.contractor)
"contractor": {...}, // Kontrahent (struktura jak invoice.contractor)
"issuer": {...}, // Wystawca (struktura jak invoice.contractor)
"bdo": "000123456", // Numer BDO
"items": [...], // Pozycje zamówienia (struktura jak invoice.items)
"paid_value": {...}, // Wartość zapłacona (struktura jak invoice.brutto_value)
"remaining_value": {...}, // Wartość pozostała do zapłaty (struktura jak invoice.brutto_value)
"summary": {...} // Podsumowanie według stawek VAT (struktura jak invoice.summary)
}
}
Obiekt dostępny w szablonie dokumentu magazynowego
{
"stock_document": {
"type": "StockDocumentType_WZ", // Typ dokumentu (StockDocumentType_PZ, StockDocumentType_WZ, StockDocumentType_MM, StockDocumentType_PW, StockDocumentType_RW)
"type_name": "Wydanie magazynowe", // Nazwa typu dokumentu
"number": "WZ/2024/001", // Numer dokumentu magazynowego
"issue_place": "Warszawa", // Miejsce wystawienia
"issue_date": "2024-01-15", // Data wystawienia
"transaction_date": "2024-01-15", // Data transakcji
"currency": "PLN", // Waluta
"currency_rate": "1,0000", // Kurs waluty
"currency_rate_date": "2024-01-15", // Data kursu waluty
"brutto_value_in_words": "jeden tysiąc złotych",// Wartość brutto słownie
"notes": "Uwagi do dokumentu", // Uwagi
"bdo": "", // Numer BDO
"recipient": {...}, // Odbiorca (struktura jak invoice.contractor)
"contractor": {...}, // Kontrahent (struktura jak invoice.contractor)
"issuer": {...}, // Wystawca (struktura jak invoice.contractor)
"items": [...], // Pozycje dokumentu (struktura jak invoice.items)
"is_correction": false, // Czy to korekta
"stock_name": "Magazyn główny", // Nazwa magazynu
"source_stock_name": "Magazyn źródłowy", // Nazwa magazynu źródłowego (dla MM)
"signature_issuer": "Jan Kowalski", // Podpis wystawcy
"signature_recipient": "Anna Nowak", // Podpis odbiorcy
"invoice_number": "FV/2024/001", // Numer powiązanej faktury
"summary": { // Podsumowanie
"total_netto_value": "900,00", // Suma wartości netto sprzedaży
"total_brutto_value": "1107,00", // Suma wartości brutto sprzedaży
"total_purchase_netto_value": "800,00", // Suma wartości netto zakupu
"total_purchase_brutto_value": "984,00", // Suma wartości brutto zakupu
"total_count": "10,00" // Suma ilości
}
}
}
Obiekt dostępny w szablonie raportu kasowego
{
"cash_report": {
"date": "2024-01-15", // Data raportu
"count_in": 5, // Liczba wpłat
"count_out": 3, // Liczba wypłat
"type": "CashReportType_Daily", // Typ raportu
"number": "RK/2024/001", // Numer raportu
"begin_date": "2024-01-15", // Data początkowa
"end_date": "2024-01-15", // Data końcowa
"total_in": "1500,00", // Suma wpłat
"total_out": "800,00", // Suma wypłat
"begin_balance": "1000,00", // Saldo początkowe
"end_balance": "1700,00", // Saldo końcowe
"items": [ // Pozycje raportu
{
"date": "2024-01-15", // Data operacji
"number": "OP/2024/001", // Numer operacji
"description": "Wpłata gotówkowa", // Opis operacji
"value_in": "500,00", // Wartość wpłaty
"value_out": "0,00" // Wartość wypłaty
}
]
},
"company_info": {...}, // Informacje o firmie (struktura jak invoice.contractor)
"print_company_info": true // Czy drukować informacje o firmie
}
Obiekt JSON dostępny w szablonie noty księgowej
{
"accounting_note": {
"number": "NK/2024/001", // Numer noty księgowej
"issue_date": "2024-01-15", // Data wystawienia
"payment_date": "2024-01-15", // Termin płatności
"payment_method": "przelew", // Sposób płatności
"currency": "PLN", // Waluta
"account": {...}, // Rachunek bankowy (struktura jak invoice.account)
"signature_issuer": "Jan Kowalski", // Podpis wystawcy
"signature_recipient": "Anna Nowak", // Podpis odbiorcy
"notes": "Uwagi do noty księgowej", // Uwagi
"contractor": {...}, // Kontrahent (struktura jak invoice.contractor)
"issuer": {...}, // Wystawca (struktura jak invoice.contractor)
"total_credit": "1107,00", // Suma uznania
"total_debit": "1107,00", // Suma obciążenia
"bdo": "", // Numer BDO
"items": [ // Pozycje noty księgowej
{
"name": "Sprzedaż towarów", // Nazwa pozycji
"credit": "1107,00", // Wartość uznania
"debit": "0,00" // Wartość obciążenia
}
]
}
}
Uniwersalny obiekt dostępny w szablonach zestawień, stanów magazynowych i inwentaryzacji.
{
"title": "Stany magazynowe na dzień: 15.01.2024", // Tytuł raportu/zestawienia
"date": "2024-01-15", // Data raportu/zestawienia
"all_stocks": true, // Czy wszystkie magazyny
"from_nature_list": false, // Czy spis z natury
"stocks": ["Magazyn główny", "Magazyn pomocniczy"], // Lista magazynów, których dotyczy wydruk
"header": [ // Nagłówek tabeli
{
"name": "Nazwa", // Nazwa kolumny
"type": "text", // Typ kolumny (text, number)
"total": "" // Suma wartości dla kolumny, jeżeli jest typu number
},
{
"name": "Cena",
"type": "number",
"total": "100,00"
}
],
"rows": [ // Wiersze tabeli
["Produkt A", "100,00"]
],
"company_info": {...}, // Informacje o firmie (struktura jak invoice.contractor)
"print_company_info": false // Czy drukować informacje o firmie
}
Tworzenie własnych szablonów
Tworzenie własnych szablonów najlepiej rozpocząć od eksportu jednego
z szablonów wbudowanych i późniejszej jego modyfikacji. W tym celu
należy kliknąć Ustawienia
->
Ustawienia programu
, następnie
Ustawienia wydruku
, zaznaczyć wybrany szablon i kliknąć
Eksportuj
.
Aby skorzystać utworzonego szablonu, należy go zaimportować klikając
przycisk Importuj
-> Z katalogu
i
wybierając folder z szablonem.