Raporty niestandardowe

Odoo jest wyposażone w wydajny i łatwy w użyciu framework raportowania. Silnik pozwala tworzyć nowe raporty, takie jak raporty podatkowe lub bilanse i rachunki zysków i strat ze specyficznymi grupowaniami i układami.

Ważne

Aktywuj tryb dewelopera, aby uzyskać dostęp do interfejsu tworzenia raportów księgowych.

Aby utworzyć nowy raport, otwórz aplikację Księgowość i przejdź do Konfiguracja ‣ Raporty księgowe. Stąd możesz utworzyć raport główny lub wariant.

Raporty główne

Raporty główne można uznać za ogólne, neutralne raporty księgowe. Służą jako modele, na których budowane są lokalne wersje księgowe. Jeśli raport nie ma raportu głównego, jest sam uważany za raport główny.

Example

Raport podatkowy dla Belgii i USA będzie używał tej samej wersji ogólnej jako podstawy i dostosuje ją do krajowych przepisów.

Podczas tworzenia nowego raportu głównego musisz utworzyć dla niego pozycję menu. Aby to zrobić, otwórz raport i w tym samym raporcie kliknij ikonę (Działania), a następnie wybierz Utwórz pozycję menu. Odśwież stronę; raport jest teraz dostępny w Księgowość ‣ Raportowanie.

Informacja

Przypadki wymagające utworzenia nowego raportu głównego są rzadkie, takie jak sytuacja, gdy organy podatkowe kraju wymagają nowego i specyficznego rodzaju raportu.

Warianty

Warianty są wersjami raportów głównych specyficznymi dla poszczególnych krajów i dlatego zawsze odnoszą się do raportu głównego. Aby utworzyć wariant, wybierz raport ogólny (główny) w polu Raport główny podczas tworzenia nowego raportu.

Gdy raport główny jest otwierany z jednego z głównych menu aplikacji księgowej, wszystkie jego warianty są wyświetlane w selektorze wariantów w prawym górnym rogu widoku.

Example

Na poniższym obrazku Raport VAT (BE) jest wariantem głównego Ogólnego raportu podatkowego.

Wiersze raportu

Po utworzeniu raportu (głównego lub wariantu) musisz wypełnić go wierszami raportu. Możesz utworzyć nowy, klikając Dodaj wiersz, lub zmodyfikować istniejący wiersz raportu, klikając na niego. Wszystkie wiersze raportu wymagają Nazwy i mogą mieć opcjonalny dodatkowy Kod (wybrany przez ciebie), jeśli chcesz użyć ich wartości w formułach.

Opcje wierszy silnika.

Wyrażenia

Każdy wiersz raportu może zawierać jedno lub wiele wyrażeń. Wyrażenia można postrzegać jako podzmienne potrzebne przez wiersz raportu. Aby utworzyć wyrażenie, kliknij Dodaj wiersz wewnątrz wiersza raportu.

Tworząc wyrażenie, musisz przypisać Etykietę używaną do odwoływania się do tego wyrażenia. Dlatego musi być ona unikalna wśród wyrażeń każdego wiersza. Należy również wskazać Silnik obliczeń oraz Formułę. Silnik określa, jak interpretowane są twoje formuły i podformuły. W razie potrzeby możliwe jest mieszanie wyrażeń używających różnych silników obliczeń w tym samym wierszu.

Informacja

W zależności od silnika mogą być również wymagane podformuły.

Silnik «Odoo Domain»

W tym silniku formuła jest interpretowana jako domena Odoo skierowana na obiekty account.move.line.

Podformuła pozwala zdefiniować, w jaki sposób pozycje księgowe pasujące do domeny są używane do obliczenia wartości wyrażenia:

sum

Wynik jest sumą wszystkich sald pasujących pozycji księgowych.

sum_if_pos

Wynik jest sumą wszystkich sald pasujących pozycji księgowych, jeśli ta kwota jest dodatnia. W przeciwnym razie wynosi 0.

sum_if_neg

Wynikiem jest suma wszystkich sald dopasowanych pozycji księgowych, jeśli kwota ta jest ujemna. W przeciwnym razie wynosi 0.

count_rows

Wynikiem jest liczba podwierszy tego wyrażenia. Jeśli wiersz raportu ma wartość grupowania, będzie to odpowiadać liczbie różnych kluczy grupowania w dopasowanych wierszach księgowych. W przeciwnym razie będzie to liczba dopasowanych wierszy księgowych.

Możesz również umieścić znak - na początku podformuły, aby odwrócić znak wyniku.

Wiersz wyrażenia w raporcie wierszowym

Silnik «Tax Tags»

Formuła utworzona dla tego silnika składa się z nazwy używanej do dopasowania tagów podatkowych. Jeśli takie tagi nie istnieją podczas tworzenia wyrażenia, zostaną utworzone.

Podczas ewaluacji wyrażenia obliczanie wyrażenia można w przybliżeniu wyrazić jako: (kwota pozycji księgowych z tagiem +`**)** `- (kwota pozycji księgowych z tagiem `-`).

Example

Jeśli formuła to tag_name, silnik dopasowuje tagi podatkowe +tag_name i -tag_name, tworząc je w razie potrzeby. Aby dalej ilustrować: dwa tagi są dopasowane przez formułę. Jeśli formuła to A, będzie wymagała (i utworzy, jeśli to konieczne) tagów +A i -A.

Silnik «Aggregate Other Formulas»

Użyj tego silnika, gdy musisz wykonać operacje arytmetyczne na kwotach uzyskanych dla innych wyrażeń. Formuły tutaj składają się z odniesień do wyrażeń oddzielonych jednym z czterech podstawowych operatorów arytmetycznych (dodawanie +, odejmowanie -, dzielenie / i mnożenie *). Aby odwołać się do wyrażenia, wpisz kod wiersza raportu, a następnie kropkę . i etykietę wyrażenia (np. kod.etykieta).

Podformuły mogą mieć jedną z następujących postaci:

if_above(CUR(amount))

Wartość wyrażenia arytmetycznego zostanie zwrócona tylko wtedy, gdy jest większa od podanej granicy. W przeciwnym razie wynik będzie wynosić 0.

if_below(CUR(amount))

Wartość wyrażenia arytmetycznego zostanie zwrócona tylko wtedy, gdy jest niższa od podanej granicy. W przeciwnym razie wynik będzie wynosić 0.

if_between(CUR1(amount1), CUR2(amount2))

Wartość wyrażenia arytmetycznego zostanie zwrócona tylko wtedy, gdy jest ściśle między podanymi granicami. W przeciwnym razie zostanie przybliżona do najbliższej granicy.

if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

Wartość wyrażenia arytmetycznego zostanie zwrócona tylko wtedy, gdy wartość wyrażenia oznaczonego przez podany kod wiersza i etykietę wyrażenia jest większa od podanej granicy. W przeciwnym razie wynik będzie wynosić 0.

if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

Wartość wyrażenia arytmetycznego zostanie zwrócona tylko wtedy, gdy wartość wyrażenia oznaczonego podanym kodem wiersza i etykietą wyrażenia jest niższa niż podana granica. W przeciwnym razie wynikiem będzie 0.

CUR to kod waluty wielkimi literami, a amount to kwota granicy wyrażona w tej walucie.

cross_report(xml_id | report_id)

Służy do dopasowania wyrażenia z innego raportu wskazywanego przez xml_id lub sam identyfikator raportu.

Silnik «Prefix of Account Codes»

Ten silnik jest używany do dopasowania kwot dokonanych na kontach przy użyciu prefiksów kodów tych kont jako zmiennych w wyrażeniu arytmetycznym.

Example

21
Wyrażenia arytmetyczne mogą być również pojedynczym prefiksem, tak jak tutaj.

Example

21 + 10 - 5
Ta formuła dodaje salda pozycji księgowych dokonanych na kontach, których kody zaczynają się od 21 i 10, a następnie odejmuje saldo pozycji na kontach z prefiksem 5.

Można również zignorować wybrane pod-prefiksy.

Example

21 + 10\(101, 102) - 5\(57)
Ta formuła działa w ten sam sposób co poprzedni przykład, ale ignoruje prefiksy 101, 102 i 57.

Można zastosować „pod-filtrowanie” na kredytach i debetach używając sufiksów C i D. W tym przypadku konto będzie uwzględnione tylko wtedy, gdy jego prefiks pasuje i jeśli całkowite saldo pozycji księgowych dokonanych na tym koncie jest kredytowe/debetowe.

Example

Konto 210001 ma saldo -42, a konto 210002 ma saldo 25. Formuła 21D pasuje tylko do konta 210002, a zatem zwraca 25. 210001 nie jest dopasowane, ponieważ jego saldo jest kredytowe.

Wykluczenia prefiksów można łączyć z sufiksami C i D.

Example

21D + 10\(101, 102)C - 5\(57)
Ta formuła dodaje salda pozycji księgowych dokonanych na kontach, których kod zaczyna się od 21, jeśli jest debetowe (D) i 10, jeśli jest kredytowe (C), ale ignoruje prefiksy 101, 102, a następnie odejmuje saldo pozycji na kontach z prefiksem 5, ignorując prefiks 57.

Aby dopasować literę C lub D w prefiksie i nie używać jej jako sufiksu, użyj pustego wykluczenia ().

Example

21D\()
Ta formuła dopasowuje konta, których kod zaczyna się od 21D, niezależnie od znaku ich salda.

Oprócz używania prefiksów kodów do uwzględniania kont, można je również dopasowywać za pomocą tagów kont. Jest to szczególnie przydatne, na przykład, gdy w Twoim kraju brakuje ustandaryzowanego planu kont, gdzie ten sam prefiks może być używany do różnych celów w różnych firmach.

Example

tag(25)
Ta formuła dopasowuje konta, których powiązane tagi zawierają ten z id 25.

Jeśli tag, do którego się odwołujesz, jest zdefiniowany w pliku danych, można użyć xmlid zamiast id.

Example

tag(my_module.my_tag)
Ta formuła dopasowuje konta, których powiązane tagi zawierają tag oznaczony jako my_module.my_tag.

Możesz również używać wyrażeń arytmetycznych z tagami, ewentualnie łącząc je z selekcją prefiksów.

Example

tag(my_module.my_tag) + tag(42) + 10
Salda kont otagowanych jako my_module.my_tag zostaną zsumowane z saldami kont powiązanych z tagiem o ID 42 oraz kontami z prefiksem kodu 10

Sufiksy C i D mogą być używane w ten sam sposób z tagami.

Example

tag(my_module.my_tag)C
Ta formuła dopasowuje konta z tagiem my_module.my_tag i saldem kredytowym.

Wykluczenie prefiksu działa również z tagami.

Example

tag(my_module.my_tag)\(10)
Ta formuła dopasowuje konta z tagiem my_module.my_tag i kodem niezaczynającym się od 10.

Silnik «External Value»

Silnik «external value» służy do odwoływania się do wartości ręcznych i wartości przeniesienia. Te wartości nie są przechowywane za pomocą account.move.line, ale za pomocą account.report.external.value. Każdy z tych obiektów bezpośrednio wskazuje na wyrażenie, na które wpływa, więc bardzo niewiele trzeba zrobić w kwestii ich wyboru tutaj.

Formuły mogą być jedną z następujących:

sum

Jeśli wynik ma być sumą wszystkich wartości zewnętrznych w okresie.

most_recent

Jeśli wynik ma być wartością najnowszej wartości zewnętrznej w okresie.

Ponadto podformuły mogą być użyte na dwa sposoby:

rounding=X

Zastąpienie X liczbą powoduje zaokrąglenie kwoty do X miejsc po przecinku.

editable

Wskazuje, że to wyrażenie może być edytowane ręcznie, wywołując wyświetlenie ikony w raporcie, pozwalając użytkownikowi wykonać tę akcję.

Informacja

Wartości ręczne są tworzone w dacie date_to aktualnie wybranej w raporcie.

Obie podformuły mogą być mieszane poprzez oddzielenie ich średnikiem ;.

Example

editable;rounding=2
jest poprawną podformułą łączącą oba zachowania.

Silnik «Custom Python Function»

Ten silnik jest sposobem dla deweloperów na wprowadzenie niestandardowego obliczania wyrażeń w poszczególnych przypadkach. Formuła to nazwa funkcji pythona do wywołania, a podformuła to klucz do pobrania ze słownika zwróconego przez tę funkcję. Używaj go tylko wtedy, gdy tworzysz własny moduł niestandardowy.

Kolumny

Raporty mogą mieć nieokreśloną liczbę kolumn do wyświetlenia. Każda kolumna pobiera swoje wartości z wyrażeń zadeklarowanych w wierszach. Pole expression_label kolumny podaje etykietę wyrażeń, których wartość jest wyświetlana. Jeśli wiersz nie ma wyrażenia w tym polu, to nic nie jest wyświetlane dla niego w tej kolumnie. Jeśli wymaganych jest wiele kolumn, należy użyć różnych etykiet wyrażeń.

Kolumny raportu.

Podczas korzystania z funkcji porównania okresów znajdującej się w zakładce Opcje raportu księgowego, wszystkie kolumny są powtarzane w każdym okresie i dla każdego okresu.

Grupowanie wierszy

Niestandardowe grupowanie jest możliwe poprzez dodanie lub użycie istniejących pól w modelu Pozycja dziennika, pod warunkiem że pola są powiązane i niezapisane.

Informacja

Grupowanie wierszy wymaga, aby raport posiadał jawne wiersze raportu, które można edytować. Raporty odroczone, na przykład, nie obsługują grupowania wierszy, ponieważ używają dynamicznych wierszy, które są generowane.

Utwórz nowe pole w pozycji dziennika

Aby utworzyć nieprzechowywane, powiązane pole w modelu Pozycja dziennika, najpierw przejdź do Księgowość ‣ Pozycje dziennika i kliknij ikonę (bug), następnie kliknij Pola. Kliknij Nowy, aby utworzyć nowe pole i wypełnij następujące pola:

  • Nazwa pola: nazwa techniczna pola

  • Etykieta pola: etykieta wyświetlana dla pola

  • Typ pola: typ pola, na który powinno wskazywać to powiązane pole

  • Przechowywane: Pozostaw to pole niezaznaczone, ponieważ tylko pola nieprzechowywane mogą być używane do grupowania wierszy.

  • Powiązany model: Jeśli typ pola to one2many, many2many lub many2one, wybierz model oryginalnego pola, według którego chcesz grupować.

  • Definicja powiązanego pola: ścieżka techniczna do pola, według którego chcesz grupować

    Example

    Aby grupować według zespołu sprzedaży partnera handlowego, ustaw definicję powiązanego pola na move_id.team_id.

Grupuj wiersze

Aby zgrupować wiersze, przejdź do zakładki Wiersze żądanego raportu, kliknij wiersz, który chcesz zgrupować, i edytuj pole Grupuj według. Wprowadź nazwę techniczną (Nazwa pola) pola do użycia jako klucz grupowania.

Wskazówka

Aby znaleźć listę wszystkich pól modelu i ich nazw technicznych, przejdź do Księgowość ‣ Pozycje dziennika i kliknij ikonę (bug), następnie kliknij Pola. Nazwa techniczna każdego pola jest wymieniona w kolumnie Nazwa pola.

Konfiguracja niestandardowego raportu podatkowego

Konfiguracja raportu

Wskazówka

Wszystkie terminy techniczne i funkcje silnika raportów Odoo są wyjaśnione w poprzednich sekcjach tej strony. Zdecydowanie zalecamy przeczytanie tych sekcji przed skonfigurowaniem niestandardowego raportu podatkowego.

Aby utworzyć niestandardowy raport podatkowy, otwórz aplikację Księgowość, przejdź do Konfiguracja ‣ Raporty księgowe, a następnie kliknij Nowy:

  • Wprowadź nazwę dla swojego raportu.

  • Wybierz Raport główny.

  • W polu Dostępność wybierz Kraj odpowiada, a następnie wybierz Kraj odpowiadający Twojej firmie.

Następnie utwórz linię raportu, klikając Dodaj linię. Po utworzeniu kliknij tę linię raportu, aby ją skonfigurować:

  • Kliknij ponownie Dodaj linię, aby utworzyć Wyrażenie i nadaj mu nazwę.

  • W zakładce Definicja wybierz Silnik obliczeń dla tego wyrażenia w zależności od następujących scenariuszy:

W tym scenariuszu Twoja firma używa siatek podatkowych:

  • Wybierz Tagi podatkowe jako silnik obliczeń. Odoo używa tego pola do powiązania linii raportu z Twoimi podatkami.

  • W polu Formuła wpisz swój krótki identyfikator siatki (np. vat_sales_base). Odoo automatycznie generuje warianty + i - tego tagu, które możesz zmapować w Konfiguracja ‣ Podatki.

  • W polu Podformuła wpisz base, aby raportować kwotę netto, lub tax, aby raportować faktyczną kwotę podatku pobraną/zapłaconą.

Powtórz ten proces według potrzeb. Następnie kliknij Zapisz i zamknij.

Alternatywnie możesz:

  • Wybierz Agreguj inne formuły jako silnik obliczeń. Odoo używa tego pola do wykonywania obliczeń matematycznych na wierszach już obecnych w raporcie, zamiast skanowania surowych transakcji.

  • W polu Formuła użyj podstawowej algebry odwołującej się do kodów wierszy (np. LINE_10 - LINE_20).

Powtórz ten proces według potrzeb. Następnie kliknij Zapisz i zamknij.

Na karcie Opcje Wyrażenia wypełnij pole Przenieś do formułą, aby zawsze przenosić salda lub przenosić je tylko wtedy, gdy kwota jest ujemna. Pozostaw to pole puste, jeśli nie chcesz używać tej funkcji.

Example

if_below(EUR(0))
Ta formuła przeniesie tylko kwoty poniżej 0,00 EUR.

Konfiguracja podatku

Następnie przejdź do Konfiguracja ‣ Podatki i kliknij Nowy, aby utworzyć i skonfigurować nowe podatki dla niestandardowego raportu podatkowego. Utwórz podatki dla Sprzedaży i Zakupów oraz wypełnij Siatki podatkowe dla wszystkich podatków, używając odpowiadających siatek podatkowych utworzonych wcześniej. Na koniec upewnij się, że określisz zarówno rachunek zobowiązań podatkowych, jak i rachunek należności podatkowych dla każdego podatku.

Example

Konfiguracja siatek podatkowych.

Zapis zamykający

Aby zamknąć podatki, grupa podatkowa musi być określona dla każdego podatku użytego w niestandardowym raporcie podatkowym. W tym celu otwórz aplikację Księgowość, przejdź do Konfiguracja ‣ Podatki, otwórz podatek wymagający grupy podatkowej, kliknij zakładkę Opcje zaawansowane i wybierz grupę w polu Grupa podatkowa. Po przypisaniu kliknij ikonę (strzałka w prawo) i ustaw zarówno Rachunek zobowiązań podatkowych, jak i Rachunek należności podatkowych.

Wskazówka

  • Gdy wszystko zostanie skonfigurowane, przetestuj raport, tworząc faktury, rachunki i noty kredytowe z użyciem podatków specyficznych dla tego raportu. Na koniec przetestuj sam zapis zamykający.

  • Jeśli chcesz ukryć określone konto w zapisie zamykającym podatki, przejdź do Konfiguracja ‣ Podatki, wybierz podatek i kliknij ikonę (ustawienia dostosowania). Następnie zaznacz pole Zapis zamykający podatki, aby dostosować jego widoczność.

Zobacz także

Zamykanie podatków