Rapoarte Personalizate¶
Odoo vine cu un cadru de raportare puternic și ușor de utilizat. Motorul permite crearea de rapoarte noi, cum ar fi rapoarte fiscale sau bilanțuri și situații ale veniturilor și cheltuielilor cu grupări și aspecte specifice.
Important
Activați modul dezvoltator pentru a accesa interfața de creare a rapoartelor contabile.
Pentru a crea un raport nou, deschideți aplicația Contabilitate și navigați la . De aici, puteți crea fie un raport rădăcină, fie o variantă.
Rapoarte rădăcină¶
Rapoartele rădăcină pot fi considerate rapoarte contabile generice, neutre. Acestea servesc drept modele pe care sunt construite versiunile de contabilitate locală. Dacă un raport nu are un raport rădăcină, este considerat a fi un raport rădăcină în sine.
Example
Un raport fiscal pentru Belgia și SUA ar folosi aceeași versiune generică ca bază și ar adapta-o pentru reglementările lor interne.
Când creați un raport rădăcină nou, trebuie să creați un element de meniu pentru acesta. Pentru a face acest lucru, deschideți raportul și, în același raport, faceți clic pe pictograma (Acțiuni), apoi selectați Creează element de meniu. Reîmprospătați pagina; raportul este acum disponibil sub .
Notă
Cazurile care necesită crearea unui nou raport rădăcină sunt rare, cum ar fi atunci când autoritățile fiscale ale unei țări solicită un tip de raport nou și specific.
Variante¶
Variantele sunt versiuni specifice țării ale rapoartelor rădăcină și, prin urmare, se referă întotdeauna la un raport rădăcină. Pentru a crea o variantă, selectați un raport generic (rădăcină) în câmpul Raport rădăcină când creați un nou raport.
Când un raport rădăcină este deschis din unul dintre meniurile principale ale aplicației de contabilitate, toate variantele sale sunt afișate în selectorul de variante din colțul din dreapta sus al vizualizării.
Example
În imaginea următoare, Raport TVA (BE) este varianta raportului rădăcină Raport fiscal generic.
Linii de raport¶
După ce ați creat un raport (fie principal, fie variantă), trebuie să îl completați cu linii de raport. Puteți crea una nouă făcând clic pe Adaugă o linie sau modifica o linie de raport existentă făcând clic pe ea. Toate liniile de raport necesită un Nume și pot avea un Cod suplimentar opțional (la alegerea dvs.) dacă doriți să utilizați valoarea lor în formule.
Expresii¶
Fiecare linie de raport poate conține una sau mai multe expresii. Expresiile pot fi privite ca sub-variabile necesare unei linii de raport. Pentru a crea o expresie, faceți clic pe Adaugă o linie în interiorul unei linii de raport.
Când creați o expresie, trebuie să atribuiți o Etichetă folosită pentru a face referire la acea expresie. Prin urmare, aceasta trebuie să fie unică printre expresiile fiecărei linii. Trebuie indicate, de asemenea, atât un Motor de calcul, cât și o Formulă. Motorul definește modul în care formula(ele) și subformula(ele) dvs. sunt interpretate. Este posibil să combinați expresii care utilizează motoare de calcul diferite sub aceeași linie, dacă este necesar.
Notă
În funcție de motor, pot fi necesare și subformulele.
Motor «Domeniu Odoo»¶
Cu acest motor, o formulă este interpretată ca un domeniu Odoo care vizează obiecte account.move.line.
Subformula vă permite să definiți cum sunt utilizate liniile de mutare care se potrivesc domeniului pentru a calcula valoarea expresiei:
sumaRezultatul este suma tuturor soldurilor liniilor de mutare potrivite.
sum_if_posRezultatul este suma tuturor soldurilor liniilor de mutare potrivite dacă această sumă este pozitivă. În caz contrar, este
0.sum_if_negRezultatul este suma tuturor soldurilor liniilor de mutare potrivite dacă această sumă este negativă. În caz contrar, este
0.count_rowsRezultatul este numărul de sub-linii ale acestei expresii. Dacă linia de raport are o valoare de grupare, aceasta va corespunde numărului de chei de grupare distincte din liniile de mișcare potrivite. În caz contrar, va fi numărul de linii de mișcare potrivite.
De asemenea, puteți pune un semn - la începutul subformulei pentru a inversa semnul rezultatului.
Motor «Agregare a altor formule»¶
Utilizați acest motor când trebuie să efectuați operații aritmetice pe sumele obținute pentru alte expresii. Formulele de aici sunt compuse din referințe la expresii separate de unul dintre cei patru operatori aritmetici de bază (adunare +, scădere -, împărțire / și înmulțire *). Pentru a face referire la o expresie, tastați codul liniei sale de raport urmat de un punct . și eticheta expresiei (ex. cod.etichetă).
Subformulele pot fi una dintre următoarele:
if_above(CUR(amount))Valoarea expresiei aritmetice va fi returnată numai dacă este mai mare decât limita furnizată. În caz contrar, rezultatul va fi
0.if_below(CUR(amount))Valoarea expresiei aritmetice va fi returnată numai dacă este mai mică decât limita furnizată. În caz contrar, rezultatul va fi
0.if_between(CUR1(amount1), CUR2(amount2))Valoarea expresiei aritmetice va fi returnată numai dacă se află strict între limitele furnizate. În caz contrar, va fi adus înapoi la limita cea mai apropiată.
if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))Valoarea expresiei aritmetice va fi returnată numai dacă valoarea expresiei indicată de codul liniei furnizate și eticheta expresiei este mai mare decât limita furnizată. În caz contrar, rezultatul va fi
0.if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))Valoarea expresiei aritmetice va fi returnată numai dacă valoarea expresiei indicată de codul liniei furnizate și eticheta expresiei este mai mică decât limita furnizată. În caz contrar, rezultatul va fi
0.
CUR este codul monedei cu majuscule, iar amount este valoarea limitei exprimată în acea monedă.
cross_report(xml_id | report_id)Utilizat pentru a potrivi o expresie dintr-un alt raport țintit de xml_id sau de ID-ul raportului însuși.
Motor «Prefix de coduri de conturi»¶
Acest motor este utilizat pentru a potrivi sumele efectuate pe conturi folosind prefixele codurilor acestor conturi ca variabile într-o expresie aritmetică.
Example
21Example
21 + 10 - 521 și 10 și scade soldul celor pe conturi cu prefixul 5.De asemenea, este posibil să ignorați o selecție de sub-prefixe.
Example
21 + 10\(101, 102) - 5\(57)101, 102 și 57.Putem aplica «sub-filtrare» pe credite și datorii folosind C și D sufixe. În acest caz, un cont va fi luat în considerare doar dacă prefixul se potrivește, și dacă totalul soldului liniei de mutare făcute pe acest cont este credit/debit.
Example
Contul 210001 are un sold de -42 și contul 210002 are un sold de 25. Formula 21D se potrivește doar cu contul 210002, și de aceea returnează 25. 210001 nu este potrivit, deoarece soldul său este credit.
Excluderile prefixului pot fi amestecate cu C și D sufixele.
Example
21D + 10\(101, 102)C - 5\(57)21 dacă este debit (D) și 10 dacă este credit (C), dar ignoră prefixele 101, 102, și scade soldul celor de pe conturi cu prefixul 5, ignorând prefixul 57.Pentru a se potrivi cu litera C sau D într-un prefix și nu-l folosi ca sufix, utilizați o excludere goală ().
Example
21D\()21D, indiferent de semnul lor de sold.Pe lângă utilizarea prefixelor de cod pentru a include conturi, le puteți asocia și cu etichete de cont. Acest lucru este util în special, de exemplu, dacă țara dvs. nu are un plan de conturi standardizat, în care același prefix poate fi utilizat în scopuri diferite de la o companie.
Example
tag(25)Dacă eticheta la care faceți referire este definită într-un fișier de date, se poate folosi un xmlid în loc de id.
Example
tag(my_module.my_tag)De asemenea, puteți utiliza expresii aritmetice cu etichete, eventual combinându-le cu selecții de prefix.
Example
tag(my_module.my_tag) + tag(42) + 1010Sufixele C și D pot fi folosite în același mod cu etichetele.
Example
tag(my_module.my_tag)CExcluderea prefixului funcționează și cu etichete.
Example
tag(my_module.my_tag)\(10)10.Motor «Valoare externă»¶
Motorul «valoare externă» este utilizat pentru a face referire la valori manuale și valori reportate. Acele valori nu sunt stocate folosind account.move.line, ci cu account.report.external.value. Fiecare dintre aceste obiecte indică direct expresia pe care o afectează, astfel încât foarte puține trebuie făcute cu privire la selecția lor aici.
Formulele pot fi una dintre următoarele:
sumaDacă rezultatul trebuie să fie suma tuturor valorilor externe în perioada.
most_recentDacă rezultatul trebuie să fie valoarea ultimei valori externe în perioada.
În plus, subformulele pot fi utilizate în două moduri:
rounding=XÎnlocuirea
Xcu un număr instruiește să rotunjească suma la X zecimale.editableIndică că această expresie poate fi editată manual, declanșând afișarea unui icon în raport, permițând utilizatorului să efectueze această acțiune.
Notă
Valorile manuale sunt create la date_to selectat în prezent în raport.
Ambele subformule pot fi amestecate prin separarea lor cu un ;.
Example
editable;rounding=2Motor «Custom Python Function»¶
Acest motor este un mijloc prin care dezvoltatorii pot introduce calcule personalizate ale expresiilor de la caz la caz. Formula este numele unei funcții python de apelat, iar subformula este o cheie de extras din dicționarul returnat de această funcție. Utilizați-l doar dacă creați un modul personalizat propriu.
Coloane¶
Rapoartele pot avea un număr nelimitat de coloane pentru afișare. Fiecare coloană primește valorile din expresiile declarate pe linii. Câmpul expression_label al coloanei dă eticheta expresiilor ale căror valori sunt afișate. Dacă o linie nu are expresie în acel câmp, atunci nimic nu este afișat pentru ea în această coloană. Dacă sunt necesare mai multe coloane, trebuie să utilizați etichete diferite de expresie.
Când utilizați funcția comparare perioadă găsită în fila Opțiuni a unui raport contabil, toate coloanele sunt repetate în și pentru fiecare perioadă.
Gruparea liniilor¶
Gruparea nestandardizată este posibilă prin adăugarea sau utilizarea câmpurilor existente pe modelul Articol jurnal, cu condiția ca aceste câmpuri să fie corelate și nestocate.
Notă
Gruparea liniilor necesită ca raportul să aibă linii de raport explicite care pot fi editate. Raporturile amânate, de exemplu, nu acceptă gruparea liniilor, deoarece folosesc linii dinamice care sunt generate.
Creeză un câmp nou pe articolul jurnal¶
Pentru a crea un câmp nestocate și corelat în modelul Articol jurnal, accesați mai întâi și faceți clic pe pictograma (eroare), apoi faceți clic pe Câmpuri. Faceți clic pe Nou pentru a crea un câmp nou și completați următoarele câmpuri:
Nume câmp: un nume tehnic pentru câmp
Etichetă câmp: eticheta care va fi afișată pentru câmp
Tip câmp: tipul de câmp la care ar trebui să indice acest câmp corelat
Stocat: Lăsați acest câmp nebifat, deoarece numai câmpurile nestocate pot fi utilizate pentru a grupa liniile.
Model corelat: Dacă tipul câmpului este one2many, many2many sau many2one, selectați modelul câmpului original după care doriți să grupați.
Definiție câmp corelat: calea tehnică către câmpul după care doriți să grupați
Example
Pentru a grupa după echipa de vânzări a partenerului comercial, setați definiția câmpului corelat la
move_id.team_id.
Grupează liniile¶
Pentru a grupa liniile, accesați fila Linii a raportului dorit, faceți clic pe linia pe care doriți să o grupați și editați câmpul Grupează după. Introduceți numele tehnic (Nume câmp) al câmpului de utilizat ca cheie de grupare.
Sfat
Pentru a găsi o listă cu toate câmpurile modelului și numele lor tehnice, accesați și faceți clic pe pictograma (bug), apoi faceți clic pe Câmpuri. Numele tehnic al fiecărui câmp este listat în coloana Numele câmpului.
Configurare raport fiscal personalizat¶
Configurare raport¶
Sfat
Toți termenii tehnici și funcțiile motorului de rapoarte Odoo sunt explicați în secțiunile anterioare ale acestei pagini. Vă recomandăm insistent să citiți aceste secțiuni înainte de a configura un raport fiscal personalizat.
Pentru a crea un raport fiscal personalizat, deschideți aplicația Contabilitate, navigați la , apoi faceți clic pe Nou:
Introduceți un nume pentru raportul dvs.
Selectați un Raport rădăcină.
În câmpul Disponibilitate, selectați Țara corespunde, apoi selectați Țara care corespunde companiei dvs.
Apoi, creați o linie de raport făcând clic pe Adaugă o linie. Odată creată, faceți clic pe acea linie de raport pentru a o configura:
Faceți clic din nou pe Adaugă o linie pentru a crea o Expresie și denumiți-o.
În fila Definiție, selectați un Motor de calcul pentru acea expresie în funcție de următoarele scenarii:
În acest scenariu, compania dvs. utilizează grile fiscale:
Selectați Etichete fiscale ca motor de calcul. Odoo utilizează acest câmp pentru a lega linia de raport de impozitele dvs.
În câmpul Formulă, introduceți identificatorul scurt al grilei (de ex.,
vat_sales_base). Odoo generează automat variantele+și-ale acestei etichete pentru a le mapa în .În câmpul Subformulă, introduceți fie
basepentru a raporta suma fără taxe, fietaxpentru a raporta suma efectivă a taxei colectate/plătite.
Repetați acest proces după necesitate. Apoi, Salvați & închideți.
Alternativ, puteți:
Selectați Aggregate Other Formulas ca motor de calcul. Odoo folosește acest câmp pentru a efectua operații matematice pe liniile deja prezente în raport, în loc să scaneze tranzacțiile brute.
În câmpul Formula, utilizați algebră de bază referind codurile liniilor dvs. (de ex.,
LINE_10 - LINE_20).
Repetați acest proces după necesitate. Apoi, Salvați & închideți.
În acest scenariu, compania dvs. nu folosește grile de taxe. În schimb, urmărește totul strict prin conturile din Cartea Mare Generală:
Selectați Prefix of Account Codes ca motor de calcul: Odoo folosește acest lucru pentru liniile care trebuie să extragă totaluri financiare. În loc să caute etichete de tranzacții, Odoo extrage soldurile active direct din planul dvs. de conturi.
În câmpul Formula, introduceți cifrele de început ale conturilor pe care doriți să le urmăriți (de ex.,
40va extrage totalul combinat al tuturor conturilor de venituri care încep cu400000,401000etc.).
Repetați acest proces după necesitate. Apoi, Salvați & închideți.
Alternativ, puteți:
Selectați Aggregate Other Formulas ca motor de calcul. Odoo folosește acest lucru pentru a calcula subtotaluri, taxe nete sau totaluri generale prin adunarea sau scăderea altor linii din raport.
În câmpul Formula, utilizați algebră de bază referind codurile liniilor dvs. (de ex.,
LINE_10 - LINE_20).
Repetați acest proces după necesitate. Apoi, Salvați & închideți.
În acest scenariu, compania dvs. necesită filtrare avansată, suprascrierea manuală de către utilizatori sau logică algoritmică complexă pe care etichetele și prefixele de conturi standard nu le pot gestiona:
Selectați Odoo Domain ca motor de calcul: Odoo folosește acest lucru pentru a ocoli complet etichetele de taxe și pentru a filtra elementele de jurnal brute (
account.move.line) folosind sintaxa standard de căutare Odoo.În câmpul Formula, introduceți un domeniu valid începând cu paranteze pătrate pentru a izola tranzacțiile scutite de taxe pentru categorii specifice de parteneri.
Alternativ, puteți:
Selectați External Value ca motor de calcul. Odoo folosește acest lucru pentru a înregistra suprascrierea manuală sau valorile de report istoric.
În câmpul Formula, introduceți fie
sum(pentru a aduna toate valorile manuale pe rapoartele multi-perioadă), fiemost_recent(pentru a afișa doar cea mai recentă valoare).În câmpul Subformula, introduceți
editablepentru a afișa o pictogramă de editare pe raportul activ, permițând utilizatorilor să modifice valoarea manual. În plus, puteți rotunji numerele introducândrounding=x.
Alternativ, puteți:
Selectați Custom Python Function ca motor de calcul. Odoo folosește acest lucru ca motor de execuție pentru a rula calcule specifice prin codare backend atunci când regulile implică tranșe progresive, bucle sau praguri pe mai multe niveluri.
În câmpul Formula, introduceți numele tehnic exact al metodei Python definite în modulul dvs. de localizare personalizat.
Repetați acest proces după necesitate. Apoi, Salvați & închideți.
În fila Options a unei Expression, completați câmpul Carry Over To cu o formulă pentru a reporta întotdeauna soldurile sau pentru a le reporta doar când suma este negativă. Lăsați acest câmp gol dacă nu doriți să utilizați această funcționalitate.
Example
if_below(EUR(0))Configurarea taxelor¶
Apoi, accesați și faceți clic pe Nou pentru a crea și configura taxe noi pentru raportul fiscal personalizat. Creați taxele pentru Vânzări și Achiziții și completați Grilele de taxe pentru toate taxele utilizând grilele de taxe corespunzătoare pe care le-ați creat anterior. În final, asigurați-vă că specificați atât un cont de taxă de plătit, cât și unul de taxă de primit pentru fiecare taxă.
Example
Închidere contabilă¶
Pentru a închide taxele, trebuie specificat un grup de taxe pentru fiecare taxă utilizată în raportul fiscal personalizat. Pentru aceasta, deschideți aplicația Contabilitate, navigați la , deschideți o taxă care necesită un grup de taxe, faceți clic pe fila Opțiuni avansate și selectați un grup în câmpul Grup de taxe. După alocare, faceți clic pe pictograma (săgeată dreapta) și setați atât un Cont de taxă de plătit, cât și un Cont de taxă de primit.
Sfat
Când totul a fost configurat, asigurați-vă că testați raportul prin crearea de facturi, chitante și note de credit utilizând taxele specifice acelui raport. În final, testați însuși închiderea contabilă.
Dacă doriți să ascundeți un anumit cont pentru a nu fi afișat în închiderea contabilă a taxelor, accesați , selectați taxa și faceți clic pe pictograma (ajustare setări). De acolo, bifați caseta Închidere contabilă taxe pentru a-i ajusta vizibilitatea.
Vedeți și